@revolugo/elements 5.5.1-beta.4 → 5.5.1-beta.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (244) hide show
  1. package/dist/css/fonts.css +1 -0
  2. package/dist/css/revolugo.bdaterangepicker.DEh20utH.css +1 -0
  3. package/dist/css/revolugo.bhotelroomsdetails.4XsxkvH7.css +1 -0
  4. package/dist/css/revolugo.bhotelsearchbar.dwYB1gUC.css +1 -0
  5. package/dist/css/revolugo.bookingdetailssidebar.tDtXpaIj.css +1 -0
  6. package/dist/css/revolugo.bphoneinput.Kq_-XiGI.css +1 -0
  7. package/dist/css/revolugo.bstarrating.nzH7iii4.css +1 -0
  8. package/dist/css/revolugo.btag.Bdbqb_8a.css +1 -0
  9. package/dist/css/revolugo.common.BSIsYREh.css +1 -0
  10. package/dist/css/revolugo.creditcardform.BGPUxkRC.css +1 -0
  11. package/dist/css/revolugo.creditcardpayment.CGjlL8Fn.css +1 -0
  12. package/dist/css/revolugo.currencypicker.BRYsKdMu.css +1 -0
  13. package/dist/css/revolugo.fullbookingflow.BHV7_MhK.css +1 -0
  14. package/dist/css/revolugo.hotel-offer.Di9LJKMP.css +1 -0
  15. package/dist/css/revolugo.hoteldescriptionview.9ofE1uWG.css +1 -0
  16. package/dist/css/revolugo.hoteloffersmap.CqAdVDJK.css +1 -0
  17. package/dist/css/revolugo.hoteloffersview.MWOmwEwv.css +1 -0
  18. package/dist/css/revolugo.hotelroomofferlist.DrGyKJ-m.css +1 -0
  19. package/dist/css/revolugo.hotelroomoffersbookingflow.DGFt0C9n.css +1 -0
  20. package/dist/css/revolugo.hotelroomoffersview.B8Y-2QYc.css +1 -0
  21. package/dist/css/revolugo.index.BMkl7a3p.css +1 -0
  22. package/dist/css/revolugo.index.CFW4Oklv.css +1 -0
  23. package/dist/css/revolugo.index.DXv5c7NS.css +1 -0
  24. package/dist/css/revolugo.langpicker.B3TsOwUq.css +1 -0
  25. package/dist/css/revolugo.parsed-height.B92--uJb.css +1 -0
  26. package/dist/css/revolugo.parsed-props.C3kOvm7T.css +1 -0
  27. package/dist/css/revolugo.prebookform.CDnZmw8F.css +1 -0
  28. package/dist/css/revolugo.revolugo-config.Dg8v1l3c.css +5 -0
  29. package/dist/css/revolugo.storybooktoolbar.CVnww0dZ.css +1 -0
  30. package/dist/css/revolugo.termsandconditions.DV2YnGzG.css +1 -0
  31. package/dist/css/revolugo.valert.BzcMswjJ.css +1 -0
  32. package/dist/css/revolugo.vautocomplete.OMX_yAge.css +1 -0
  33. package/dist/css/revolugo.vbadge.CiK_DSkI.css +1 -0
  34. package/dist/css/revolugo.vbtn.By46MJOU.css +1 -0
  35. package/dist/css/revolugo.vcard.DmB53ZNL.css +1 -0
  36. package/dist/css/revolugo.vchip.BdAdP6lC.css +1 -0
  37. package/dist/css/revolugo.vdialog.C02Cvwul.css +1 -0
  38. package/dist/css/revolugo.vexpansionpanelheader.B2eKo8Lo.css +1 -0
  39. package/dist/css/revolugo.vinput.SfhpXNi0.css +1 -0
  40. package/dist/css/revolugo.vitemgroup.EbHsz8Rr.css +1 -0
  41. package/dist/css/revolugo.vlistitem.BzwNE1YK.css +1 -0
  42. package/dist/css/revolugo.vmenu.BKE0IO4q.css +1 -0
  43. package/dist/css/revolugo.vselect.DljSkk6y.css +1 -0
  44. package/dist/css/revolugo.vsheet.Dtdo2Rps.css +1 -0
  45. package/dist/css/revolugo.vskeletonloader.BpGoaAbZ.css +1 -0
  46. package/dist/css/revolugo.vslidegroup.D5TIbmaw.css +1 -0
  47. package/dist/css/revolugo.vsnackbar.DTAXPYkr.css +1 -0
  48. package/dist/css/revolugo.vtextfield.BliJY6uv.css +1 -0
  49. package/dist/css/revolugo.vtoolbar.DQsezjcM.css +1 -0
  50. package/dist/css/revolugo.vtooltip.B_oOB9pj.css +1 -0
  51. package/dist/css/revolugo.vuetify.BpIoHlAi.css +1 -0
  52. package/dist/css/revolugo.webcomponentwrapper.BRZRuwZ0.css +1 -0
  53. package/dist/index.min.js +1 -1
  54. package/dist/revolugo.banktransferdetails.TOmjiXZR.min.js +105 -0
  55. package/dist/revolugo.bbreakfastoptionbadge.DLXUsKPT.min.js +62 -0
  56. package/dist/revolugo.bdaterangepicker.7NUNlis2.min.js +1351 -0
  57. package/dist/revolugo.bformattedamount.Dc8LzYGF.min.js +82 -0
  58. package/dist/revolugo.bhotelroomsdetails.eOyOwnAD.min.js +213 -0
  59. package/dist/revolugo.bhotelsearchbar.DOHhe3TX.min.js +446 -0
  60. package/dist/revolugo.booking-api-client.X4zQkiOB.min.js +7401 -0
  61. package/dist/revolugo.bookingdetailssidebar.CEY9IR4f.min.js +242 -0
  62. package/dist/revolugo.bookingdetailssidebar.DfTGBYJB.min.js +28 -0
  63. package/dist/revolugo.bookingmanager.DNUFwv12.min.js +405 -0
  64. package/dist/revolugo.bphoneinput.Br-vaDMp.min.js +1928 -0
  65. package/dist/revolugo.bpricesummaryskeleton.ClIqB4J7.min.js +47 -0
  66. package/dist/revolugo.breakpoint-service.D8BYVuhM.min.js +65 -0
  67. package/dist/revolugo.bstarrating.DiUm_HYr.min.js +173 -0
  68. package/dist/revolugo.btag.CIEhEBjO.min.js +68 -0
  69. package/dist/revolugo.cancellationpoliciesbadge.DA1ttyly.min.js +92 -0
  70. package/dist/revolugo.cancellationpoliciesbadge.DlnZtyvy.min.js +28 -0
  71. package/dist/revolugo.cancellationpolicieslist.B2qQfSYF.min.js +28 -0
  72. package/dist/revolugo.cancellationpolicieslist.Epleki08.min.js +317 -0
  73. package/dist/revolugo.common.BJWUn2e4.min.js +34 -0
  74. package/dist/revolugo.creditcardform.Bu6_7ofn.min.js +2049 -0
  75. package/dist/revolugo.creditcardform.DcClnh_a.min.js +28 -0
  76. package/dist/revolugo.creditcardpayment.CbaChkRQ.min.js +288 -0
  77. package/dist/revolugo.creditcardpayment.DI_HEYqJ.min.js +28 -0
  78. package/dist/revolugo.currencypicker.BSlgtEoO.min.js +122 -0
  79. package/dist/revolugo.currencypickerbtn.7qOgbsX9.min.js +121 -0
  80. package/dist/revolugo.currencypickerbtn.CdikX9zL.min.js +28 -0
  81. package/dist/revolugo.dialog-attach.BQO5FkC9.min.js +27 -0
  82. package/dist/revolugo.en-us.BwPQZpD-.min.js +1171 -0
  83. package/dist/revolugo.event-bus.CYLYgD3Y.min.js +37 -0
  84. package/dist/revolugo.fr-fr.CV4yETNm.min.js +1177 -0
  85. package/dist/revolugo.fullbookingflow.CDyj-aGX.min.js +239 -0
  86. package/dist/revolugo.hotel-offer.CR8IxHwp.min.js +605 -0
  87. package/dist/revolugo.hoteldescriptionview.BsXp2DO0.min.js +2174 -0
  88. package/dist/revolugo.hoteldescriptionview.Dgujk17L.min.js +28 -0
  89. package/dist/revolugo.hotelofferitemlayout.BGchkGCk.min.js +64 -0
  90. package/dist/revolugo.hotelofferlist.BhEtuSnS.min.js +3779 -0
  91. package/dist/revolugo.hotelofferlist.CXzRERpd.min.js +28 -0
  92. package/dist/revolugo.hotelofferrequestcreator.nQKrw9L-.min.js +225 -0
  93. package/dist/revolugo.hoteloffersearchmenu.BSSWc9vs.min.js +54 -0
  94. package/dist/revolugo.hoteloffersmap.CruXegXR.min.js +28 -0
  95. package/dist/revolugo.hoteloffersmap.Ds6H46qe.min.js +8704 -0
  96. package/dist/revolugo.hoteloffersview.CmV7-knD.min.js +157 -0
  97. package/dist/revolugo.hoteloffersview.CwFVsPVB.min.js +28 -0
  98. package/dist/revolugo.hotelroomofferlist.KGh2bZlF.min.js +28 -0
  99. package/dist/revolugo.hotelroomofferlist.vmuFzhGq.min.js +1332 -0
  100. package/dist/revolugo.hotelroomofferrequestcreator.DY3rndSD.min.js +225 -0
  101. package/dist/revolugo.hotelroomoffersbookingflow.GfwzQwYS.min.js +679 -0
  102. package/dist/revolugo.hotelroomoffersearchmenu.-rqE8IeB.min.js +29 -0
  103. package/dist/revolugo.hotelroomoffersearchmenu.DU1yNXhD.min.js +38 -0
  104. package/dist/revolugo.hotelroomoffersview.CLzeULYt.min.js +28 -0
  105. package/dist/revolugo.hotelroomoffersview.DUvsXEW6.min.js +124 -0
  106. package/dist/revolugo.i18n.BIDah4Hr.min.js +10901 -0
  107. package/dist/revolugo.index.BDqD4brj.min.js +43 -0
  108. package/dist/revolugo.index.BNslhUAH.min.js +270 -0
  109. package/dist/revolugo.index.BPR3XlHM.min.js +281 -0
  110. package/dist/revolugo.index.BafzMKRk.min.js +13 -0
  111. package/dist/revolugo.index.C66sAn8l.min.js +9 -0
  112. package/dist/revolugo.index.CY4z9JfD.min.js +15 -0
  113. package/dist/revolugo.index.Ce9_ljIe.min.js +9 -0
  114. package/dist/revolugo.index.CkzsvJ2p.min.js +42 -0
  115. package/dist/revolugo.index.CpH3TNHO.min.js +128 -0
  116. package/dist/revolugo.index.CpYsLCUP.min.js +161 -0
  117. package/dist/revolugo.index.DAkBpJ0g.min.js +322 -0
  118. package/dist/revolugo.index.DB1SmBiZ.min.js +68 -0
  119. package/dist/revolugo.index.DxSal0Ur.min.js +142 -0
  120. package/dist/revolugo.index.xbcOdM2R.min.js +390 -0
  121. package/dist/revolugo.langpicker.OTjhdYDg.min.js +103 -0
  122. package/dist/revolugo.langpickerbtn.BHBnbjzr.min.js +111 -0
  123. package/dist/revolugo.langpickerbtn.DVcSp2Mc.min.js +28 -0
  124. package/dist/revolugo.localizedformat.C4ez1VLt.min.js +47 -0
  125. package/dist/revolugo.min.js +257 -7
  126. package/dist/revolugo.parsed-height.HSQ0HFwq.min.js +2338 -0
  127. package/dist/revolugo.parsed-props.Ccc23KVa.min.js +95 -0
  128. package/dist/revolugo.prebookform.CBdhp1Ho.min.js +484 -0
  129. package/dist/revolugo.prebookform.zB3DlqQ-.min.js +28 -0
  130. package/dist/revolugo.revolugo-config.CYwmIqDC.min.js +1707 -0
  131. package/dist/revolugo.roominglisteditor.CdPRLvnh.min.js +28 -0
  132. package/dist/revolugo.roominglisteditor.l155VeBJ.min.js +201 -0
  133. package/dist/revolugo.sentry.CuQ4Sj_P.min.js +10989 -0
  134. package/dist/revolugo.store.DRsWr71l.min.js +2497 -0
  135. package/dist/revolugo.storybooktoolbar.DZnWfHfa.min.js +300 -0
  136. package/dist/revolugo.termsandconditions.CJuS8MAh.min.js +162 -0
  137. package/dist/revolugo.termsandconditions.D4d8z_MH.min.js +27 -0
  138. package/dist/revolugo.typed-mixins.CArk-fZ7.min.js +8 -0
  139. package/dist/revolugo.valert.CMZED-c0.min.js +194 -0
  140. package/dist/revolugo.vautocomplete.D3T_xfxG.min.js +255 -0
  141. package/dist/revolugo.vbadge.DeYbu4pg.min.js +172 -0
  142. package/dist/revolugo.vbtn.D9xoQSTX.min.js +286 -0
  143. package/dist/revolugo.vcard.DHZXDqHw.min.js +80 -0
  144. package/dist/revolugo.vchip.D3O8VSDc.min.js +157 -0
  145. package/dist/revolugo.vdialog.CCHO0Kwj.min.js +341 -0
  146. package/dist/revolugo.vexpansionpanelheader.Cg2GtTNc.min.js +263 -0
  147. package/dist/revolugo.vform.CrSmhAkR.min.js +98 -0
  148. package/dist/revolugo.vinput.CvIrgPFc.min.js +509 -0
  149. package/dist/revolugo.vitemgroup.Ck0f83Cn.min.js +168 -0
  150. package/dist/revolugo.vlistitem.JpcvcaOl.min.js +204 -0
  151. package/dist/revolugo.vmenu.gGPsb28L.min.js +349 -0
  152. package/dist/revolugo.vselect.CceNNGVQ.min.js +859 -0
  153. package/dist/revolugo.vsheet.CJx8SWuo.min.js +120 -0
  154. package/dist/revolugo.vskeletonloader.U6iWK-eN.min.js +172 -0
  155. package/dist/revolugo.vslidegroup.B6kWFCKq.min.js +650 -0
  156. package/dist/revolugo.vsnackbar.CTWUo3sL.min.js +178 -0
  157. package/dist/revolugo.vtextfield.CH3y216m.min.js +438 -0
  158. package/dist/revolugo.vtoolbar.DwKf2KKn.min.js +364 -0
  159. package/dist/revolugo.vtooltip.B8PTr53D.min.js +168 -0
  160. package/dist/revolugo.vuetify.CjZ8kF3V.min.js +865 -0
  161. package/dist/revolugo.watch-list.CU-vo_n9.min.js +44 -0
  162. package/dist/revolugo.webcomponentwrapper.B_LKAOR9.min.js +783 -0
  163. package/package.json +1 -1
  164. package/dist/css/revolugo.0.min.css +0 -5
  165. package/dist/css/revolugo.1.min.css +0 -1
  166. package/dist/css/revolugo.11.min.css +0 -1
  167. package/dist/css/revolugo.12.min.css +0 -1
  168. package/dist/css/revolugo.13.min.css +0 -1
  169. package/dist/css/revolugo.14.min.css +0 -1
  170. package/dist/css/revolugo.15.min.css +0 -1
  171. package/dist/css/revolugo.16.min.css +0 -1
  172. package/dist/css/revolugo.17.min.css +0 -1
  173. package/dist/css/revolugo.18.min.css +0 -1
  174. package/dist/css/revolugo.19.min.css +0 -1
  175. package/dist/css/revolugo.2.min.css +0 -1
  176. package/dist/css/revolugo.20.min.css +0 -1
  177. package/dist/css/revolugo.21.min.css +0 -1
  178. package/dist/css/revolugo.22.min.css +0 -1
  179. package/dist/css/revolugo.23.min.css +0 -1
  180. package/dist/css/revolugo.24.min.css +0 -1
  181. package/dist/css/revolugo.25.min.css +0 -1
  182. package/dist/css/revolugo.26.min.css +0 -1
  183. package/dist/css/revolugo.27.min.css +0 -1
  184. package/dist/css/revolugo.28.min.css +0 -1
  185. package/dist/css/revolugo.29.min.css +0 -1
  186. package/dist/css/revolugo.30.min.css +0 -1
  187. package/dist/css/revolugo.31.min.css +0 -1
  188. package/dist/css/revolugo.32.min.css +0 -1
  189. package/dist/css/revolugo.33.min.css +0 -1
  190. package/dist/css/revolugo.34.min.css +0 -1
  191. package/dist/css/revolugo.4.min.css +0 -1
  192. package/dist/css/revolugo.5.min.css +0 -1
  193. package/dist/css/revolugo.6.min.css +0 -1
  194. package/dist/css/revolugo.7.min.css +0 -1
  195. package/dist/css/revolugo.fonts.min.css +0 -1
  196. package/dist/fonts/amenities.2aad1d12.woff +0 -0
  197. package/dist/fonts/amenities.9adae269.ttf +0 -0
  198. package/dist/fonts/amenities.a9bf50f8.svg +0 -42
  199. package/dist/fonts/amenities.bd6b3a4a.eot +0 -0
  200. package/dist/fonts/beds.2b8e38c8.svg +0 -12
  201. package/dist/img/apst.c1092975.png +0 -0
  202. package/dist/img/apst.ec7669f2.png +0 -0
  203. package/dist/img/atout-france.72107e30.png +0 -0
  204. package/dist/img/atout-france.df038f22.png +0 -0
  205. package/dist/img/revolugo.179c459d.png +0 -0
  206. package/dist/img/revolugo.e0879dcc.png +0 -0
  207. package/dist/img/stripe.405543e2.png +0 -0
  208. package/dist/img/stripe.c3e16f9f.png +0 -0
  209. package/dist/revolugo.0.min.js +0 -18
  210. package/dist/revolugo.1.min.js +0 -1
  211. package/dist/revolugo.11.min.js +0 -134
  212. package/dist/revolugo.12.min.js +0 -19
  213. package/dist/revolugo.13.min.js +0 -14
  214. package/dist/revolugo.14.min.js +0 -19
  215. package/dist/revolugo.15.min.js +0 -139
  216. package/dist/revolugo.16.min.js +0 -14
  217. package/dist/revolugo.17.min.js +0 -14
  218. package/dist/revolugo.18.min.js +0 -1
  219. package/dist/revolugo.19.min.js +0 -1
  220. package/dist/revolugo.2.min.js +0 -1
  221. package/dist/revolugo.20.min.js +0 -1
  222. package/dist/revolugo.21.min.js +0 -116
  223. package/dist/revolugo.22.min.js +0 -1
  224. package/dist/revolugo.23.min.js +0 -1
  225. package/dist/revolugo.24.min.js +0 -1
  226. package/dist/revolugo.25.min.js +0 -1
  227. package/dist/revolugo.26.min.js +0 -1
  228. package/dist/revolugo.27.min.js +0 -1
  229. package/dist/revolugo.28.min.js +0 -116
  230. package/dist/revolugo.29.min.js +0 -1
  231. package/dist/revolugo.30.min.js +0 -1
  232. package/dist/revolugo.31.min.js +0 -1
  233. package/dist/revolugo.32.min.js +0 -1
  234. package/dist/revolugo.33.min.js +0 -1
  235. package/dist/revolugo.34.min.js +0 -1
  236. package/dist/revolugo.35.min.js +0 -1
  237. package/dist/revolugo.36.min.js +0 -1
  238. package/dist/revolugo.4.min.js +0 -1
  239. package/dist/revolugo.5.min.js +0 -1
  240. package/dist/revolugo.6.min.js +0 -1
  241. package/dist/revolugo.7.min.js +0 -1
  242. package/dist/revolugo.en-US.min.js +0 -1
  243. package/dist/revolugo.fonts.min.js +0 -1
  244. package/dist/revolugo.fr-FR.min.js +0 -1
@@ -0,0 +1,1332 @@
1
+ import { o as v, r as w, s as C } from "./revolugo.booking-api-client.X4zQkiOB.min.js";
2
+ import { d as y, b as Q, a as Y } from "./revolugo.store.DRsWr71l.min.js";
3
+ import { h as J, H as X } from "./revolugo.hotelroomofferrequestcreator.DY3rndSD.min.js";
4
+ import { V as u, I as Z, d as R, F as I, s as tt } from "./revolugo.i18n.BIDah4Hr.min.js";
5
+ import { k as O, h as d, E as et } from "./revolugo.revolugo-config.CYwmIqDC.min.js";
6
+ import { C as ot } from "./revolugo.cancellationpoliciesbadge.DA1ttyly.min.js";
7
+ import { a as E, B as st } from "./revolugo.bpricesummaryskeleton.ClIqB4J7.min.js";
8
+ import { b as H } from "./revolugo.breakpoint-service.D8BYVuhM.min.js";
9
+ import { m as k, T as B, C as A, l as p, n as f, _ as a, a as r, B as S, d as N } from "./revolugo.webcomponentwrapper.B_LKAOR9.min.js";
10
+ import { _ as m } from "./revolugo.vskeletonloader.U6iWK-eN.min.js";
11
+ import { B as z } from "./revolugo.bbreakfastoptionbadge.DLXUsKPT.min.js";
12
+ import { B as D, f as it } from "./revolugo.bformattedamount.Dc8LzYGF.min.js";
13
+ import { B as V } from "./revolugo.btag.CIEhEBjO.min.js";
14
+ import { S as rt } from "./revolugo.index.CpYsLCUP.min.js";
15
+ import { V as at } from "./revolugo.vinput.CvIrgPFc.min.js";
16
+ import { T as nt, R as lt } from "./revolugo.vuetify.CjZ8kF3V.min.js";
17
+ import { d as ct } from "./revolugo.index.DxSal0Ur.min.js";
18
+ import { a as $, _ as x } from "./revolugo.vbtn.D9xoQSTX.min.js";
19
+ import { R as F, f as ut, _ } from "./revolugo.index.xbcOdM2R.min.js";
20
+ import { B as M } from "./revolugo.bhotelroomsdetails.eOyOwnAD.min.js";
21
+ import { _ as ft } from "./revolugo.vtooltip.B8PTr53D.min.js";
22
+ import { _ as mt } from "./revolugo.vselect.CceNNGVQ.min.js";
23
+ import { C as ht, a as dt } from "./revolugo.cancellationpolicieslist.Epleki08.min.js";
24
+ import { _ as c, p as pt } from "./revolugo.parsed-props.Ccc23KVa.min.js";
25
+ /* empty css */
26
+ import { _ as _t } from "./revolugo.valert.CMZED-c0.min.js";
27
+ import { w as gt } from "./revolugo.watch-list.CU-vo_n9.min.js";
28
+ import { B as g, V as P, a as L } from "./revolugo.vslidegroup.B6kWFCKq.min.js";
29
+ import { S as yt } from "./revolugo.index.DB1SmBiZ.min.js";
30
+ import { B as kt } from "./revolugo.vitemgroup.Ck0f83Cn.min.js";
31
+ import { P as bt, _ as vt } from "./revolugo.index.BPR3XlHM.min.js";
32
+ function W(o) {
33
+ try {
34
+ if (typeof document < "u") {
35
+ window.REVOLUGO_ELEMENTS_STYLES = window.REVOLUGO_ELEMENTS_STYLES || {
36
+ sheets: [],
37
+ components: []
38
+ };
39
+ const t = import.meta.url, e = t.slice(0, t.lastIndexOf("/") + 1) + o;
40
+ window.REVOLUGO_ELEMENTS_STYLES.sheets.push(e);
41
+ for (const s of REVOLUGO_ELEMENTS_STYLES.components)
42
+ s(e);
43
+ if (o.indexOf("fonts") >= 0) {
44
+ const s = document.createElement("link");
45
+ s.rel = "stylesheet", linK.href = e, document.head.appendChild(s);
46
+ }
47
+ }
48
+ } catch (t) {
49
+ console.error("[revolugo-elements] ", t);
50
+ }
51
+ }
52
+ const Rt = rt.extend({
53
+ name: "v-switch",
54
+ directives: {
55
+ Touch: nt
56
+ },
57
+ props: {
58
+ inset: Boolean,
59
+ loading: {
60
+ type: [Boolean, String],
61
+ default: !1
62
+ },
63
+ flat: {
64
+ type: Boolean,
65
+ default: !1
66
+ }
67
+ },
68
+ computed: {
69
+ classes() {
70
+ return {
71
+ ...at.options.computed.classes.call(this),
72
+ "v-input--selection-controls v-input--switch": !0,
73
+ "v-input--switch--flat": this.flat,
74
+ "v-input--switch--inset": this.inset
75
+ };
76
+ },
77
+ attrs() {
78
+ return {
79
+ "aria-checked": String(this.isActive),
80
+ "aria-disabled": String(this.isDisabled),
81
+ role: "switch"
82
+ };
83
+ },
84
+ // Do not return undefined if disabled,
85
+ // according to spec, should still show
86
+ // a color when disabled and active
87
+ validationState() {
88
+ if (this.hasError && this.shouldValidate)
89
+ return "error";
90
+ if (this.hasSuccess)
91
+ return "success";
92
+ if (this.hasColor !== null)
93
+ return this.computedColor;
94
+ },
95
+ switchData() {
96
+ return this.setTextColor(this.loading ? void 0 : this.validationState, {
97
+ class: this.themeClasses
98
+ });
99
+ }
100
+ },
101
+ methods: {
102
+ genDefaultSlot() {
103
+ return [this.genSwitch(), this.genLabel()];
104
+ },
105
+ genSwitch() {
106
+ const {
107
+ title: o,
108
+ ...t
109
+ } = this.attrs$;
110
+ return this.$createElement("div", {
111
+ staticClass: "v-input--selection-controls__input"
112
+ }, [this.genInput("checkbox", {
113
+ ...this.attrs,
114
+ ...t
115
+ }), this.genRipple(this.setTextColor(this.validationState, {
116
+ directives: [{
117
+ name: "touch",
118
+ value: {
119
+ left: this.onSwipeLeft,
120
+ right: this.onSwipeRight
121
+ }
122
+ }]
123
+ })), this.$createElement("div", {
124
+ staticClass: "v-input--switch__track",
125
+ ...this.switchData
126
+ }), this.$createElement("div", {
127
+ staticClass: "v-input--switch__thumb",
128
+ ...this.switchData
129
+ }, [this.genProgress()])]);
130
+ },
131
+ genProgress() {
132
+ return this.$createElement(ct, {}, [this.loading === !1 ? null : this.$slots.progress || this.$createElement($, {
133
+ props: {
134
+ color: this.loading === !0 || this.loading === "" ? this.color || "primary" : this.loading,
135
+ size: 16,
136
+ width: 2,
137
+ indeterminate: !0
138
+ }
139
+ })]);
140
+ },
141
+ onSwipeLeft() {
142
+ this.isActive && this.onChange();
143
+ },
144
+ onSwipeRight() {
145
+ this.isActive || this.onChange();
146
+ },
147
+ onKeydown(o) {
148
+ (o.keyCode === O.left && this.isActive || o.keyCode === O.right && !this.isActive) && this.onChange();
149
+ }
150
+ }
151
+ }), Ct = k(
152
+ g,
153
+ yt,
154
+ B
155
+ /* @vue/component */
156
+ ).extend({
157
+ name: "v-tabs-bar",
158
+ provide() {
159
+ return {
160
+ tabsBar: this
161
+ };
162
+ },
163
+ computed: {
164
+ classes() {
165
+ return {
166
+ ...g.options.computed.classes.call(this),
167
+ "v-tabs-bar": !0,
168
+ "v-tabs-bar--is-mobile": this.isMobile,
169
+ // TODO: Remove this and move to v-slide-group
170
+ "v-tabs-bar--show-arrows": this.showArrows,
171
+ ...this.themeClasses
172
+ };
173
+ }
174
+ },
175
+ watch: {
176
+ items: "callSlider",
177
+ internalValue: "callSlider",
178
+ $route: "onRouteChange"
179
+ },
180
+ methods: {
181
+ callSlider() {
182
+ this.isBooted && this.$emit("call:slider");
183
+ },
184
+ genContent() {
185
+ const o = g.options.methods.genContent.call(this);
186
+ return o.data = o.data || {}, o.data.staticClass += " v-tabs-bar__content", o;
187
+ },
188
+ onRouteChange(o, t) {
189
+ if (this.mandatory)
190
+ return;
191
+ const e = this.items, s = o.path, i = t.path;
192
+ let n = !1, h = !1;
193
+ for (const l of e)
194
+ if (l.to === i ? h = !0 : l.to === s && (n = !0), n && h)
195
+ break;
196
+ !n && h && (this.internalValue = void 0);
197
+ }
198
+ },
199
+ render(o) {
200
+ const t = g.options.render.call(this, o);
201
+ return t.data.attrs = {
202
+ role: "tablist"
203
+ }, t;
204
+ }
205
+ }), q = P.extend({
206
+ name: "v-tabs-items",
207
+ props: {
208
+ mandatory: {
209
+ type: Boolean,
210
+ default: !1
211
+ }
212
+ },
213
+ computed: {
214
+ classes() {
215
+ return {
216
+ ...P.options.computed.classes.call(this),
217
+ "v-tabs-items": !0
218
+ };
219
+ },
220
+ isDark() {
221
+ return this.rootIsDark;
222
+ }
223
+ },
224
+ methods: {
225
+ getValue(o, t) {
226
+ return o.id || kt.options.methods.getValue.call(this, o, t);
227
+ }
228
+ }
229
+ }), Ot = k(A).extend({
230
+ name: "v-tabs-slider",
231
+ render(o) {
232
+ return o("div", this.setBackgroundColor(this.color, {
233
+ staticClass: "v-tabs-slider"
234
+ }));
235
+ }
236
+ }), xt = k(A, bt, B), Bt = xt.extend().extend({
237
+ name: "v-tabs",
238
+ directives: {
239
+ Resize: lt
240
+ },
241
+ props: {
242
+ activeClass: {
243
+ type: String,
244
+ default: ""
245
+ },
246
+ alignWithTitle: Boolean,
247
+ backgroundColor: String,
248
+ centerActive: Boolean,
249
+ centered: Boolean,
250
+ fixedTabs: Boolean,
251
+ grow: Boolean,
252
+ height: {
253
+ type: [Number, String],
254
+ default: void 0
255
+ },
256
+ hideSlider: Boolean,
257
+ iconsAndText: Boolean,
258
+ mobileBreakpoint: [String, Number],
259
+ nextIcon: {
260
+ type: String,
261
+ default: "$next"
262
+ },
263
+ optional: Boolean,
264
+ prevIcon: {
265
+ type: String,
266
+ default: "$prev"
267
+ },
268
+ right: Boolean,
269
+ showArrows: [Boolean, String],
270
+ sliderColor: String,
271
+ sliderSize: {
272
+ type: [Number, String],
273
+ default: 2
274
+ },
275
+ vertical: Boolean
276
+ },
277
+ data() {
278
+ return {
279
+ resizeTimeout: 0,
280
+ slider: {
281
+ height: null,
282
+ left: null,
283
+ right: null,
284
+ top: null,
285
+ width: null
286
+ },
287
+ transitionTime: 300
288
+ };
289
+ },
290
+ computed: {
291
+ classes() {
292
+ return {
293
+ "v-tabs--align-with-title": this.alignWithTitle,
294
+ "v-tabs--centered": this.centered,
295
+ "v-tabs--fixed-tabs": this.fixedTabs,
296
+ "v-tabs--grow": this.grow,
297
+ "v-tabs--icons-and-text": this.iconsAndText,
298
+ "v-tabs--right": this.right,
299
+ "v-tabs--vertical": this.vertical,
300
+ ...this.themeClasses
301
+ };
302
+ },
303
+ isReversed() {
304
+ return this.$vuetify.rtl && this.vertical;
305
+ },
306
+ sliderStyles() {
307
+ return {
308
+ height: d(this.slider.height),
309
+ left: this.isReversed ? void 0 : d(this.slider.left),
310
+ right: this.isReversed ? d(this.slider.right) : void 0,
311
+ top: this.vertical ? d(this.slider.top) : void 0,
312
+ transition: this.slider.left != null ? null : "none",
313
+ width: d(this.slider.width)
314
+ };
315
+ },
316
+ computedColor() {
317
+ return this.color ? this.color : this.isDark && !this.appIsDark ? "white" : "primary";
318
+ }
319
+ },
320
+ watch: {
321
+ alignWithTitle: "callSlider",
322
+ centered: "callSlider",
323
+ centerActive: "callSlider",
324
+ fixedTabs: "callSlider",
325
+ grow: "callSlider",
326
+ iconsAndText: "callSlider",
327
+ right: "callSlider",
328
+ showArrows: "callSlider",
329
+ vertical: "callSlider",
330
+ "$vuetify.application.left": "onResize",
331
+ "$vuetify.application.right": "onResize",
332
+ "$vuetify.rtl": "onResize"
333
+ },
334
+ mounted() {
335
+ if (typeof ResizeObserver < "u") {
336
+ const o = new ResizeObserver(() => {
337
+ this.onResize();
338
+ });
339
+ o.observe(this.$el), this.$on("hook:destroyed", () => {
340
+ o.disconnect();
341
+ });
342
+ }
343
+ this.$nextTick(() => {
344
+ window.setTimeout(this.callSlider, 30);
345
+ });
346
+ },
347
+ methods: {
348
+ callSlider() {
349
+ return this.hideSlider || !this.$refs.items || !this.$refs.items.selectedItems.length ? (this.slider.width = 0, !1) : (this.$nextTick(() => {
350
+ const o = this.$refs.items.selectedItems[0];
351
+ if (!o || !o.$el) {
352
+ this.slider.width = 0, this.slider.left = 0;
353
+ return;
354
+ }
355
+ const t = o.$el;
356
+ this.slider = {
357
+ height: this.vertical ? t.scrollHeight : Number(this.sliderSize),
358
+ left: this.vertical ? 0 : t.offsetLeft,
359
+ right: this.vertical ? 0 : t.offsetLeft + t.offsetWidth,
360
+ top: t.offsetTop,
361
+ width: this.vertical ? Number(this.sliderSize) : t.scrollWidth
362
+ };
363
+ }), !0);
364
+ },
365
+ genBar(o, t) {
366
+ const e = {
367
+ style: {
368
+ height: d(this.height)
369
+ },
370
+ props: {
371
+ activeClass: this.activeClass,
372
+ centerActive: this.centerActive,
373
+ dark: this.dark,
374
+ light: this.light,
375
+ mandatory: !this.optional,
376
+ mobileBreakpoint: this.mobileBreakpoint,
377
+ nextIcon: this.nextIcon,
378
+ prevIcon: this.prevIcon,
379
+ showArrows: this.showArrows,
380
+ value: this.internalValue
381
+ },
382
+ on: {
383
+ "call:slider": this.callSlider,
384
+ change: (s) => {
385
+ this.internalValue = s;
386
+ }
387
+ },
388
+ ref: "items"
389
+ };
390
+ return this.setTextColor(this.computedColor, e), this.setBackgroundColor(this.backgroundColor, e), this.$createElement(Ct, e, [this.genSlider(t), o]);
391
+ },
392
+ genItems(o, t) {
393
+ return o || (t.length ? this.$createElement(q, {
394
+ props: {
395
+ value: this.internalValue
396
+ },
397
+ on: {
398
+ change: (e) => {
399
+ this.internalValue = e;
400
+ }
401
+ }
402
+ }, t) : null);
403
+ },
404
+ genSlider(o) {
405
+ return this.hideSlider ? null : (o || (o = this.$createElement(Ot, {
406
+ props: {
407
+ color: this.sliderColor
408
+ }
409
+ })), this.$createElement("div", {
410
+ staticClass: "v-tabs-slider-wrapper",
411
+ style: this.sliderStyles
412
+ }, [o]));
413
+ },
414
+ onResize() {
415
+ this._isDestroyed || (clearTimeout(this.resizeTimeout), this.resizeTimeout = window.setTimeout(this.callSlider, 0));
416
+ },
417
+ parseNodes() {
418
+ let o = null, t = null;
419
+ const e = [], s = [], i = this.$slots.default || [], n = i.length;
420
+ for (let h = 0; h < n; h++) {
421
+ const l = i[h];
422
+ if (l.componentOptions)
423
+ switch (l.componentOptions.Ctor.options.name) {
424
+ case "v-tabs-slider":
425
+ t = l;
426
+ break;
427
+ case "v-tabs-items":
428
+ o = l;
429
+ break;
430
+ case "v-tab-item":
431
+ e.push(l);
432
+ break;
433
+ default:
434
+ s.push(l);
435
+ }
436
+ else
437
+ s.push(l);
438
+ }
439
+ return {
440
+ tab: s,
441
+ slider: t,
442
+ items: o,
443
+ item: e
444
+ };
445
+ }
446
+ },
447
+ render(o) {
448
+ const {
449
+ tab: t,
450
+ slider: e,
451
+ items: s,
452
+ item: i
453
+ } = this.parseNodes();
454
+ return o("div", {
455
+ staticClass: "v-tabs",
456
+ class: this.classes,
457
+ directives: [{
458
+ name: "resize",
459
+ modifiers: {
460
+ quiet: !0
461
+ },
462
+ value: this.onResize
463
+ }]
464
+ }, [this.genBar(t, e), this.genItems(s, i)]);
465
+ }
466
+ }), St = k(
467
+ F,
468
+ // Must be after routable
469
+ // to overwrite activeClass
470
+ ut("tabsBar"),
471
+ B
472
+ ), $t = St.extend().extend().extend({
473
+ name: "v-tab",
474
+ props: {
475
+ ripple: {
476
+ type: [Boolean, Object],
477
+ default: !0
478
+ },
479
+ tabValue: {
480
+ required: !1
481
+ }
482
+ },
483
+ data: () => ({
484
+ proxyClass: "v-tab--active"
485
+ }),
486
+ computed: {
487
+ classes() {
488
+ return {
489
+ "v-tab": !0,
490
+ ...F.options.computed.classes.call(this),
491
+ "v-tab--disabled": this.disabled,
492
+ ...this.groupClasses
493
+ };
494
+ },
495
+ value() {
496
+ if (this.tabValue != null)
497
+ return this.tabValue;
498
+ let o = this.to || this.href;
499
+ return o == null ? o : (this.$router && this.to === Object(this.to) && (o = this.$router.resolve(this.to, this.$route, this.append).href), o.replace("#", ""));
500
+ }
501
+ },
502
+ methods: {
503
+ click(o) {
504
+ if (this.disabled) {
505
+ o.preventDefault();
506
+ return;
507
+ }
508
+ this.href && this.href.indexOf("#") > -1 && o.preventDefault(), o.detail && this.$el.blur(), this.$emit("click", o), this.to || this.toggle();
509
+ },
510
+ toggle() {
511
+ (!this.isActive || !this.tabsBar.mandatory && !this.to) && this.$emit("change");
512
+ }
513
+ },
514
+ render(o) {
515
+ const {
516
+ tag: t,
517
+ data: e
518
+ } = this.generateRouteLink();
519
+ return e.attrs = {
520
+ ...e.attrs,
521
+ "aria-selected": String(this.isActive),
522
+ role: "tab",
523
+ tabindex: this.disabled ? -1 : 0
524
+ }, e.on = {
525
+ ...e.on,
526
+ keydown: (s) => {
527
+ s.keyCode === O.enter && this.click(s), this.$emit("keydown", s);
528
+ }
529
+ }, o(t, e, this.$slots.default);
530
+ }
531
+ }), T = L.extend({
532
+ name: "v-tab-item",
533
+ props: {
534
+ id: String
535
+ },
536
+ methods: {
537
+ genWindowItem() {
538
+ const o = L.options.methods.genWindowItem.call(this);
539
+ return o.data.domProps = o.data.domProps || {}, o.data.domProps.id = this.id || this.value, o;
540
+ }
541
+ }
542
+ }), wt = {
543
+ adultCount: {
544
+ type: Number,
545
+ default: 0
546
+ },
547
+ isStartingPrice: { type: Boolean },
548
+ isTaxIncluded: {
549
+ type: Boolean,
550
+ default: !0
551
+ },
552
+ nightCount: {
553
+ type: Number,
554
+ default: 1
555
+ },
556
+ price: {
557
+ type: Number,
558
+ required: !0
559
+ },
560
+ roomCount: {
561
+ type: Number,
562
+ default: 1
563
+ },
564
+ roundMode: {
565
+ type: String
566
+ }
567
+ }, It = u.extend({
568
+ name: "BPriceSummary",
569
+ components: { BFormattedAmount: D },
570
+ mixins: [p("components/ui/BPriceSummary")],
571
+ props: wt,
572
+ computed: {
573
+ mainPrice() {
574
+ return this.nightCount <= 0 || this.roomCount <= 0 ? this.price : this.price / this.roomCount / this.nightCount;
575
+ }
576
+ }
577
+ });
578
+ var Pt = function() {
579
+ var t = this, e = t._self._c;
580
+ return t._self._setupProxy, e("div", { staticClass: "text-right" }, [e("span", { staticClass: "d-inline-block mb-n3" }, [t.isStartingPrice ? e("small", { staticClass: "grey--text text--darken-3" }, [t._v(t._s(t.$t("BPriceSummary.from")) + " ")]) : t._e(), e("b", { staticClass: "text-h6 grey--text text--darken-3" }, [e("b-formatted-amount", { attrs: { amount: t.mainPrice, "round-mode": t.roundMode } })], 1)]), t.nightCount <= 0 && t.roomCount > 0 ? [e("span", { staticClass: "my-0 text-caption grey--text text--darken-3 d-block" }, [t._v(" " + t._s(t.$t("BPriceSummary.summary", { rooms: t.$tc("BPriceSummary.rooms", t.roomCount) })) + " ")])] : t.nightCount > 1 || t.roomCount > 1 ? [e("span", { staticClass: "my-0 text-caption grey--text text--darken-3 d-block" }, [e("b", [e("b-formatted-amount", { attrs: { amount: t.price, "round-mode": t.roundMode } })], 1), t._v(" " + t._s(t.$t("BPriceSummary.total")) + " " + t._s(t.$t("BPriceSummary.summary", { rooms: t.$tc("BPriceSummary.rooms", t.roomCount) })) + " ")])] : t._e(), e(ft, { staticClass: "text-left", attrs: { attach: t.$el, top: "" }, scopedSlots: t._u([{ key: "activator", fn: function({ on: s, attrs: i }) {
581
+ return [e("span", t._g(t._b({ staticClass: "text-caption mt-n1 d-block" }, "span", i, !1), s), [t.isTaxIncluded ? [t._v(" " + t._s(t.$t("BPriceSummary.taxIncluded")) + " "), e(_, { attrs: { "x-small": "" } }, [t._v("fa-info-circle")])] : [t._v(" " + t._s(t.$t("BPriceSummary.taxNotIncluded")) + " ")]], 2)];
582
+ } }]) }, [e("span", [t._v(t._s(t.$t("BPriceSummary.taxInfo")))])])], 2);
583
+ }, Lt = [], Tt = /* @__PURE__ */ f(
584
+ It,
585
+ Pt,
586
+ Lt,
587
+ !1,
588
+ null,
589
+ null,
590
+ null,
591
+ null
592
+ );
593
+ const G = Tt.exports, Et = u.extend({
594
+ name: "HotelRoomOfferLayout",
595
+ components: {
596
+ BPriceSummarySkeleton: E
597
+ },
598
+ mixins: [H],
599
+ props: {
600
+ boilerplate: { type: Boolean }
601
+ }
602
+ });
603
+ var Ht = function() {
604
+ var t = this, e = t._self._c;
605
+ return t._self._setupProxy, e(a, { staticClass: "px-2 py-3 pa-sm-4 px-md-3", attrs: { "no-gutters": "" } }, [e(r, { attrs: { "align-self": "start", cols: "12", lg: "6", md: "7", sm: "7" } }, [e(a, { attrs: { "no-gutters": "" } }, [e(r, { attrs: { cols: "12" } }, [t._t("room-details", function() {
606
+ return [e(m, { staticClass: "mt-1", attrs: { boilerplate: t.boilerplate, height: "14px", tile: "", type: "text", width: "180px" } }), e(m, { attrs: { boilerplate: t.boilerplate, height: "12px", tile: "", type: "text", width: "120px" } })];
607
+ })], 2), e(r, { staticClass: "text-left d-flex flex-wrap mt-2", style: { gap: "0.3em" }, attrs: { "align-self": "start", cols: "12" } }, [t._t("breakfast-option")], 2)], 1)], 1), e(r, { staticClass: "text-right mt-sm-0 mt-2", attrs: { "align-self": "end", lg: "6", md: "5", sm: "5" } }, [t._t("package-type"), t._t("price-summary", function() {
608
+ return [e("b-price-summary-skeleton", { staticClass: "mt-2", attrs: { boilerplate: t.boilerplate } })];
609
+ }), e("div", { staticClass: "d-flex justify-end" }, [t._t("action", function() {
610
+ return [e(m, { attrs: { boilerplate: t.boilerplate, height: "28px", tile: "", type: "image", width: t.$isCurrentBreakpointBelow("sm") ? "100%" : "130px" } })];
611
+ })], 2)], 2)], 1);
612
+ }, At = [], Nt = /* @__PURE__ */ f(
613
+ Et,
614
+ Ht,
615
+ At,
616
+ !1,
617
+ null,
618
+ null,
619
+ null,
620
+ null
621
+ );
622
+ const b = Nt.exports, zt = {
623
+ isLoading: { type: Boolean },
624
+ price: { type: Number },
625
+ value: { type: Boolean }
626
+ }, Dt = u.extend({
627
+ name: "BBreakfastSwitch",
628
+ components: {
629
+ BTag: V
630
+ },
631
+ mixins: [p("components/ui/BBreakfastSwitch")],
632
+ props: zt,
633
+ data() {
634
+ return {
635
+ valueLocal: this.value
636
+ };
637
+ },
638
+ computed: {
639
+ formattedPrice() {
640
+ return it({
641
+ amount: this.price,
642
+ currency: this.config.currency,
643
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
644
+ locale: this.config.lang
645
+ });
646
+ }
647
+ },
648
+ watch: {
649
+ valueLocal(o) {
650
+ this.$emit("input", o);
651
+ }
652
+ }
653
+ });
654
+ var Vt = function() {
655
+ var t = this, e = t._self._c;
656
+ return t._self._setupProxy, e(Rt, { staticClass: "ma-0 pa-0 breakfast-switch d-inline-block", attrs: { dense: "", inset: "", loading: t.isLoading && "success" }, scopedSlots: t._u([{ key: "label", fn: function() {
657
+ return [e("div", { staticClass: "text-caption ml-n3" }, [e(_, { attrs: { size: "12" } }, [t._v(" fa-coffee ")]), t._v(" "), e("span", [t._v(t._s(t.$t("BBreakfastSwitch.title")) + " ")]), e("span", { domProps: { innerHTML: t._s(
658
+ t.$tc("BBreakfastSwitch.price", t.formattedPrice).replace(
659
+ /\s/gu,
660
+ "&nbsp;"
661
+ )
662
+ ) } })], 1)];
663
+ }, proxy: !0 }]), model: { value: t.valueLocal, callback: function(s) {
664
+ t.valueLocal = s;
665
+ }, expression: "valueLocal" } });
666
+ }, Ft = [], Mt = /* @__PURE__ */ f(
667
+ Dt,
668
+ Vt,
669
+ Ft,
670
+ !1,
671
+ null,
672
+ "48b60373",
673
+ null,
674
+ null
675
+ );
676
+ const U = Mt.exports, K = u.extend({
677
+ data() {
678
+ return {
679
+ bookingState: "IDLE"
680
+ /* IDLE */
681
+ };
682
+ },
683
+ computed: {
684
+ isFetchingBookingPolicies() {
685
+ return this.bookingState === "FETCHING_BOOKING_POLICIES";
686
+ },
687
+ isBookingPoliciesSuccessful() {
688
+ return this.bookingState === "BOOKING_POLICIES_FETCHED";
689
+ },
690
+ isBookingPoliciesUnavailable() {
691
+ return this.bookingState === "UNAVAILABLE";
692
+ }
693
+ },
694
+ methods: {
695
+ async createBookingPolicy({
696
+ addBreakfast: o,
697
+ hotelRoomOfferId: t,
698
+ hotelId: e
699
+ }) {
700
+ this.bookingState = "FETCHING_BOOKING_POLICIES";
701
+ try {
702
+ await y("hotelRoomOffers/createBookingPolicies", {
703
+ addBreakfast: o,
704
+ hotelRoomOfferId: t,
705
+ hotelId: e
706
+ }), this.bookingState = "BOOKING_POLICIES_FETCHED", setTimeout(() => {
707
+ this.bookingState = "IDLE";
708
+ }, 1.5 * 1e3);
709
+ } catch {
710
+ this.bookingState = "UNAVAILABLE";
711
+ }
712
+ }
713
+ }
714
+ }), qt = {
715
+ breakfastCount: {
716
+ type: Number
717
+ },
718
+ breakfastOption: {
719
+ type: String
720
+ },
721
+ breakfastPricePerGuestPerNight: {
722
+ type: Number
723
+ },
724
+ currency: { type: String },
725
+ cancellationPolicies: { type: Array },
726
+ hotelId: { type: String },
727
+ hotelRooms: { type: Array },
728
+ id: { type: String },
729
+ isLoading: { type: Boolean },
730
+ price: { type: Number },
731
+ sourceMarket: { type: String },
732
+ type: { type: String },
733
+ packageType: { type: String },
734
+ count: { type: Number },
735
+ value: { type: Number }
736
+ }, Gt = u.extend({
737
+ name: "HotelRoomOfferItem",
738
+ components: {
739
+ BBreakfastOptionBadge: z,
740
+ BBreakfastSwitch: U,
741
+ CancellationPoliciesBadge: ot,
742
+ BErrorOverlay: S,
743
+ BFormattedAmount: D,
744
+ BPriceSummary: G,
745
+ BHotelRoomsDetails: M,
746
+ BTag: V,
747
+ HotelRoomOfferItemLayout: b
748
+ },
749
+ mixins: [
750
+ p("components/RevolugoElements/HotelRoomOfferItem"),
751
+ H,
752
+ K
753
+ ],
754
+ props: qt,
755
+ store: Q,
756
+ data() {
757
+ return {
758
+ addBreakfast: this.breakfastCount && this.breakfastCount > 0 || !1
759
+ };
760
+ },
761
+ computed: {
762
+ adultCount() {
763
+ var o;
764
+ return (o = this.hotelRoomOfferRequest) == null ? void 0 : o.adultCount;
765
+ },
766
+ checkInDate() {
767
+ var o;
768
+ return (o = this.hotelRoomOfferRequest) == null ? void 0 : o.checkInDate;
769
+ },
770
+ nightCount() {
771
+ return this.$store.get("hotelRoomOfferRequest/nightCount", this.hotelId);
772
+ },
773
+ hotelTimezone() {
774
+ return this.$store.get("hotelRoomOffers/hotelTimezone", this.hotelId);
775
+ },
776
+ roomCount() {
777
+ return this.hotelRooms.reduce((o, t) => o + (t.count || 0), 0);
778
+ },
779
+ countOptions() {
780
+ return this.count ? Z(this.count + 1) : [];
781
+ },
782
+ hotelRoomOfferRequest() {
783
+ return this.$store.get(
784
+ "hotelRoomOfferRequest/hotelRoomOfferRequest",
785
+ this.hotelId
786
+ );
787
+ },
788
+ packageTypeTagColor() {
789
+ switch (this.packageType) {
790
+ case v.Cheapest:
791
+ return "red";
792
+ case v.BestMatch:
793
+ case v.MatchingRoomCount:
794
+ return "purple";
795
+ default:
796
+ return "";
797
+ }
798
+ },
799
+ selectedQuantity: {
800
+ get() {
801
+ return this.value;
802
+ },
803
+ set(o) {
804
+ this.$emit("input", o);
805
+ }
806
+ }
807
+ },
808
+ watch: {
809
+ addBreakfast(o) {
810
+ this.$emit("breakfast-change", {
811
+ hotelId: this.hotelId,
812
+ id: this.id,
813
+ addBreakfast: o
814
+ });
815
+ }
816
+ },
817
+ methods: {
818
+ onHotelRoomOfferClick() {
819
+ this.$eventBus.$emit(et.HOTEL_ROOM_OFFERS_BTN_CLICK, this.$props), this.createBookingPolicy({
820
+ addBreakfast: this.addBreakfast,
821
+ hotelRoomOfferId: this.id,
822
+ hotelId: this.hotelId
823
+ });
824
+ }
825
+ }
826
+ });
827
+ var Ut = function() {
828
+ var t = this, e = t._self._c;
829
+ return t._self._setupProxy, e("div", { staticClass: "position-relative" }, [e("hotel-room-offer-item-layout", { key: "is-available", scopedSlots: t._u([{ key: "room-details", fn: function() {
830
+ return [e("b-hotel-rooms-details", { attrs: { "hotel-rooms": t.hotelRooms } })];
831
+ }, proxy: !0 }, { key: "package-type", fn: function() {
832
+ return [t.type === "PACKAGE" && t.packageType !== "REGULAR" ? [e("b-tag", { staticClass: "mb-3", attrs: { color: t.packageTypeTagColor, outlined: "" }, scopedSlots: t._u([{ key: "description", fn: function() {
833
+ return [t._v(" " + t._s(t.$tc(`HotelRoomOfferItem.packageTypes.${t.packageType}.description`, t.adultCount)) + " ")];
834
+ }, proxy: !0 }], null, !1, 2153503966) }, [t._v(" " + t._s(t.$tc(`HotelRoomOfferItem.packageTypes.${t.packageType}.title`, t.adultCount)) + " ")])] : t._e()];
835
+ }, proxy: !0 }, { key: "breakfast-option", fn: function() {
836
+ return [e("cancellation-policies-badge", { attrs: { "cancellation-policies": t.cancellationPolicies, "check-in-date": t.checkInDate, timezone: t.hotelTimezone } }), e("b-breakfast-option-badge", { attrs: { "breakfast-option": t.breakfastOption } }), t.type !== "HOTEL_ROOM" && t.breakfastOption === "OPTIONAL" ? e("div", [e("b-breakfast-switch", { staticClass: "mt-3 pl-1", attrs: { "is-loading": t.isLoading, price: t.breakfastPricePerGuestPerNight }, model: { value: t.addBreakfast, callback: function(s) {
837
+ t.addBreakfast = s;
838
+ }, expression: "addBreakfast" } })], 1) : t._e()];
839
+ }, proxy: !0 }, { key: "price-summary", fn: function() {
840
+ return [t.type === "HOTEL_ROOM" ? [e(a, { staticClass: "mt-md-8", attrs: { "no-gutters": "" } }, [e(r, [e("b-price-summary", { staticClass: "text-right", attrs: { "adult-count": 1, "night-count": t.nightCount, price: t.price, "room-count": 1 } })], 1)], 1), e(a, { attrs: { align: "end", "no-gutters": "" } }, [e(r, { staticClass: "d-flex justify-end", attrs: { align: "end" } }, [e("div", [e(mt, { staticClass: "item-count mt-2", attrs: { attach: "", dense: "", "hide-details": "", items: t.countOptions, "menu-props": {
841
+ minWidth: "125px"
842
+ }, outlined: "", value: 0 }, scopedSlots: t._u([{ key: "item", fn: function({ item: s }) {
843
+ return [e("span", { staticClass: "text-caption" }, [t._v(t._s(s) + " "), s ? [t._v("("), e("b-formatted-amount", { attrs: { amount: s * t.price } }), t._v(")")] : t._e()], 2)];
844
+ } }], null, !1, 41009295), model: { value: t.selectedQuantity, callback: function(s) {
845
+ t.selectedQuantity = s;
846
+ }, expression: "selectedQuantity" } })], 1)])], 1)] : [e("b-price-summary", { staticClass: "text-right", attrs: { "adult-count": t.type === "PACKAGE" ? t.adultCount : 0, "night-count": t.type === "PACKAGE" ? t.nightCount : 0, price: t.price, "room-count": t.type === "PACKAGE" ? t.roomCount : 0, "round-mode": "round" } })]];
847
+ }, proxy: !0 }, { key: "action", fn: function() {
848
+ return [t.type === "PACKAGE" ? e(x, { staticClass: "text-none font-weight-bold book-btn w-100 w-sm-auto", attrs: { color: t.isBookingPoliciesSuccessful ? "success" : "primary", disabled: t.isFetchingBookingPolicies || t.isBookingPoliciesUnavailable || t.isLoading, elevation: "0", loading: t.isFetchingBookingPolicies, small: "" }, on: { click: t.onHotelRoomOfferClick } }, [t.isBookingPoliciesSuccessful ? t._e() : e("span", [t._v(t._s(t.$t("HotelRoomOfferItem.book")))]), e(_, { directives: [{ name: "show", rawName: "v-show", value: t.isBookingPoliciesSuccessful, expression: "isBookingPoliciesSuccessful" }], staticClass: "position-absolute" }, [t._v(" fa-check ")])], 1) : e("span")];
849
+ }, proxy: !0 }]) }), t.isLoading ? e(N, { staticClass: "mx-n4", attrs: { absolute: "", color: "grey lighten-4", opacity: "0.75" } }, [e($, { attrs: { color: "primary", indeterminate: "", size: "64" } })], 1) : t._e(), t.isBookingPoliciesUnavailable ? e("b-error-overlay", { attrs: { "margin-top": 16 }, scopedSlots: t._u([{ key: "title", fn: function() {
850
+ return [t._v(" " + t._s(t.$t("HotelRoomOfferItem.unavailable.title")) + " ")];
851
+ }, proxy: !0 }, { key: "description", fn: function() {
852
+ return [t._v(" " + t._s(t.$t("HotelRoomOfferItem.unavailable.description")) + " ")];
853
+ }, proxy: !0 }], null, !1, 3630660745) }) : t._e()], 1);
854
+ }, Kt = [], jt = /* @__PURE__ */ f(
855
+ Gt,
856
+ Ut,
857
+ Kt,
858
+ !1,
859
+ null,
860
+ "1975c271",
861
+ null,
862
+ null
863
+ );
864
+ const j = jt.exports, Wt = u.extend({
865
+ name: "BBasketSummaryLayout",
866
+ components: {
867
+ BPriceSummarySkeleton: E,
868
+ BHotelRoomsDetailsSkeleton: st
869
+ }
870
+ });
871
+ var Qt = function() {
872
+ var t = this, e = t._self._c;
873
+ return t._self._setupProxy, e(a, { staticClass: "px-2" }, [e(r, [e(a, [e(r, [e("div", { staticClass: "subtitle-1 font-weight-black primary--text d-flex justify-end" }, [t._t("title", function() {
874
+ return [e(m, { attrs: { height: "18px", tile: "", type: "heading", width: "200px" } })];
875
+ })], 2)])], 1), e(a, [e(r, [e("div", { staticClass: "caption d-flex justify-end py-2" }, [t._t("adult-count", function() {
876
+ return [e(m, { attrs: { tile: "", type: "text", width: "150px" } })];
877
+ })], 2), e("div", { staticClass: "mt-3 d-flex justify-start align-center font-weight-bold pb-2" }, [t._t("secondary-title", function() {
878
+ return [e(m, { attrs: { height: "18px", tile: "", type: "heading", width: "150px" } })];
879
+ })], 2)])], 1), t._t("hotel-rooms", function() {
880
+ return [e("div", { staticClass: "pt-4" }, [t._l(2, function(s) {
881
+ return [e("div", { key: `item-skeleton-${s}` }, [e(a, { attrs: { align: "center" } }, [e(r, { attrs: { cols: "auto" } }, [e("b-hotels-rooms-details-skeleton")], 1)], 1)], 1), e(c, { key: "divider-skeleton-" + s, staticClass: "pb-2" })];
882
+ })], 2)];
883
+ }), e(a, [e(r, [t._t("breakfast-option")], 2)], 1), e(a, { attrs: { "no-gutters": "" } }, [e(r, [t._t("price-summary", function() {
884
+ return [e("b-price-summary-skeleton")];
885
+ })], 2)], 1), e(a, [e(r, { staticClass: "py-0" }, [t._t("errors")], 2)], 1), e(a, [e(r, { staticClass: "pb-0" }, [t._t("button", function() {
886
+ return [e(m, { attrs: { height: "38px", tile: "", type: "heading", width: "100%" } })];
887
+ })], 2)], 1), e(a, [e(r, [t._t("cancellation-policies", function() {
888
+ return [e(m, { attrs: { tile: "", type: "paragraph", width: "100%" } })];
889
+ })], 2)], 1)], 2)], 1);
890
+ }, Yt = [], Jt = /* @__PURE__ */ f(
891
+ Wt,
892
+ Qt,
893
+ Yt,
894
+ !1,
895
+ null,
896
+ null,
897
+ null,
898
+ null
899
+ );
900
+ const Xt = Jt.exports, Zt = {
901
+ adultCount: { type: Number },
902
+ checkInDate: { type: String },
903
+ checkOutDate: { type: String },
904
+ currency: { type: String },
905
+ hotelTimezone: { type: String },
906
+ hotelRoomOffer: { type: Object },
907
+ isLoading: { type: Boolean },
908
+ isSubmitting: { type: Boolean },
909
+ isSuccessful: { type: Boolean }
910
+ }, te = u.extend({
911
+ name: "BBasketSummary",
912
+ components: {
913
+ BBasketSummaryLayout: Xt,
914
+ BBreakfastOptionBadge: z,
915
+ BBreakfastSwitch: U,
916
+ CancellationPoliciesList: ht,
917
+ BPriceSummary: G,
918
+ BHotelRoomsDetails: M
919
+ },
920
+ mixins: [p("components/ui/BBasketSummary")],
921
+ props: Zt,
922
+ data() {
923
+ var o, t;
924
+ return {
925
+ addBreakfast: ((o = this.hotelRoomOffer) == null ? void 0 : o.breakfastCount) && ((t = this.hotelRoomOffer) == null ? void 0 : t.breakfastCount) > 0 || !1
926
+ };
927
+ },
928
+ computed: {
929
+ breakfastOption() {
930
+ var o;
931
+ return (o = this.hotelRoomOffer) == null ? void 0 : o.breakfastOption;
932
+ },
933
+ isBreakfastIncluded() {
934
+ return this.hotelRoomOffer.breakfastOption === w.Included;
935
+ },
936
+ isBreakfastOptionnal() {
937
+ return this.hotelRoomOffer.breakfastOption === w.Optional;
938
+ },
939
+ nightCount() {
940
+ return !this.hotelRoomOffer || !this.checkOutDate || !this.checkInDate ? 0 : R(this.checkOutDate).diff(R(this.checkInDate), "day");
941
+ },
942
+ roomCount() {
943
+ var o;
944
+ return I((o = this.hotelRoomOffer) == null ? void 0 : o.hotelRooms, "count");
945
+ },
946
+ sanitizedCancellationPolicies() {
947
+ var o;
948
+ return dt(
949
+ Y({
950
+ bookingDatetime: R().format(),
951
+ cancellationPolicies: (o = this.hotelRoomOffer) == null ? void 0 : o.cancellationPolicies,
952
+ checkInDate: this.checkInDate,
953
+ timezone: this.hotelTimezone
954
+ })
955
+ );
956
+ },
957
+ totalOccupancy() {
958
+ var o;
959
+ return I(
960
+ (o = this.hotelRoomOffer) == null ? void 0 : o.hotelRooms,
961
+ (t) => t.count * t.occupancy
962
+ );
963
+ }
964
+ },
965
+ watch: {
966
+ addBreakfast(o) {
967
+ this.$emit("breakfast-change", o);
968
+ }
969
+ }
970
+ });
971
+ var ee = function() {
972
+ var t = this, e = t._self._c;
973
+ return t._self._setupProxy, e("div", [[t.isLoading ? e(N, { staticClass: "mx-n3", attrs: { absolute: "", color: "grey lighten-4", opacity: "0.75" } }, [e($, { attrs: { color: "primary", indeterminate: "", size: "64" } })], 1) : t._e(), e("b-basket-summary-layout", { key: "filled-up", scopedSlots: t._u([{ key: "title", fn: function() {
974
+ return [[e("span", [t._v(t._s(t.$t("BBasketSummary.title")))])]];
975
+ }, proxy: !0 }, { key: "adult-count", fn: function() {
976
+ return [[t.hotelRoomOffer ? e("span", { domProps: { innerHTML: t._s(t.$tc("BBasketSummary.totalOccupancy", t.totalOccupancy)) } }) : e("span", [t._v(t._s(t.$t("BBasketSummary.noSelection")) + " " + t._s(t.currency))])]];
977
+ }, proxy: !0 }, { key: "secondary-title", fn: function() {
978
+ return [[t.hotelRoomOffer ? [t._v(" " + t._s(t.$t("BBasketSummary.yourSelection")) + " ")] : e("span")]];
979
+ }, proxy: !0 }, { key: "hotel-rooms", fn: function() {
980
+ return [t.hotelRoomOffer ? [t._l(t.hotelRoomOffer.hotelRooms, function(s, i) {
981
+ return [e("div", { key: `room-${i}` }, [e(a, [e(r, { staticClass: "d-flex justify-space-between", attrs: { cols: "12" } }, [e("b-hotel-rooms-details", { class: {
982
+ "mt-n4": i >= 1
983
+ }, attrs: { "hotel-rooms": [s] } }), e(x, { class: {
984
+ "mt-n4": i >= 1
985
+ }, attrs: { color: "red", icon: "", text: "" }, on: { click: function(n) {
986
+ return t.$emit("delete-room", s);
987
+ } } }, [e(_, [t._v("fa-times")])], 1)], 1)], 1), e(c, { key: `divider-${i}`, staticClass: "my-2" })], 1)];
988
+ })] : [e("span")]];
989
+ }, proxy: !0 }, { key: "breakfast-option", fn: function() {
990
+ return [t.breakfastOption ? [e(a, { attrs: { "no-gutters": "" } }, [e(r, [e("b-breakfast-option-badge", { staticClass: "mr-n1", attrs: { "breakfast-option": t.breakfastOption, price: t.hotelRoomOffer.breakfastPricePerGuestPerNight } })], 1)], 1), t.isBreakfastOptionnal ? e(a, { staticClass: "mt-2", attrs: { "no-gutters": "" } }, [e(r, { staticClass: "mb-2 mt-xl-0" }, [e("b-breakfast-switch", { attrs: { loading: t.isLoading && "success", price: t.hotelRoomOffer.breakfastPricePerGuestPerNight }, model: { value: t.addBreakfast, callback: function(s) {
991
+ t.addBreakfast = s;
992
+ }, expression: "addBreakfast" } })], 1)], 1) : t._e()] : t._e()];
993
+ }, proxy: !0 }, { key: "price-summary", fn: function() {
994
+ return [[e("b-price-summary", { attrs: { "night-count": 0, price: t.hotelRoomOffer ? t.hotelRoomOffer.price : 0, "room-count": t.roomCount } })]];
995
+ }, proxy: !0 }, { key: "errors", fn: function() {
996
+ return [[t.totalOccupancy && t.totalOccupancy < t.adultCount ? [e(_t, { staticClass: "mb-0", attrs: { color: "red", dense: "", outlined: "" } }, [e("p", { staticClass: "caption font-weight-bold text-center my-0 red--text rounded" }, [t._v(" " + t._s(t.$t("BBasketSummary.insufficientTotalOccupancy", { t: t.totalOccupancy, a: t.adultCount })) + " ")])])] : t._e()]];
997
+ }, proxy: !0 }, { key: "button", fn: function() {
998
+ return [[e(x, { staticClass: "text-none font-weight-bold", attrs: { block: "", color: t.isSuccessful ? "success" : "primary", disabled: !t.hotelRoomOffer, loading: t.isSubmitting }, on: { click: function(s) {
999
+ return t.$emit("submit");
1000
+ } } }, [t.isSuccessful ? t._e() : e("span", [t._v(t._s(t.$t("BBasketSummary.book")))]), e(_, { directives: [{ name: "show", rawName: "v-show", value: t.isSuccessful, expression: "isSuccessful" }], staticClass: "position-absolute" }, [t._v(" fa-check ")])], 1)]];
1001
+ }, proxy: !0 }, { key: "cancellation-policies", fn: function() {
1002
+ return [[t.hotelRoomOffer && t.hotelRoomOffer.cancellationPolicies.length ? e("cancellation-policies-list", { staticClass: "caption", attrs: { "cancellation-policies": t.sanitizedCancellationPolicies, "check-in-date": t.checkInDate, timezone: t.hotelTimezone } }) : e("span")]];
1003
+ }, proxy: !0 }]) })]], 2);
1004
+ }, oe = [], se = /* @__PURE__ */ f(
1005
+ te,
1006
+ ee,
1007
+ oe,
1008
+ !1,
1009
+ null,
1010
+ null,
1011
+ null,
1012
+ null
1013
+ );
1014
+ const ie = se.exports, re = {
1015
+ hotelId: { type: String }
1016
+ }, ae = u.extend({
1017
+ name: "HotelRoomOfferBasket",
1018
+ components: {
1019
+ BBasketSummary: ie,
1020
+ HotelRoomOfferItem: j,
1021
+ HotelRoomOfferItemLayout: b
1022
+ },
1023
+ mixins: [K],
1024
+ props: re,
1025
+ data() {
1026
+ return {
1027
+ basketContent: [],
1028
+ addBreakfast: !1,
1029
+ newCreatedPackage: void 0,
1030
+ isLoading: !1
1031
+ };
1032
+ },
1033
+ computed: {
1034
+ adultCount() {
1035
+ var o;
1036
+ return (o = this.hotelRoomOfferRequest) == null ? void 0 : o.adultCount;
1037
+ },
1038
+ currency() {
1039
+ return window.RevolugoElements.config.currency;
1040
+ },
1041
+ hotelTimezone() {
1042
+ return this.$store.get("hotelRoomOffers/hotelTimezone", this.hotelId);
1043
+ },
1044
+ hotelRoomOfferRequest() {
1045
+ return this.$store.get(
1046
+ "hotelRoomOfferRequest/hotelRoomOfferRequest",
1047
+ this.hotelId
1048
+ );
1049
+ },
1050
+ hotelRoomOffers() {
1051
+ var o, t;
1052
+ return (t = (o = this.$store.get("hotelRoomOffers/hotelRoomOffers", this.hotelId)) == null ? void 0 : o.offers) == null ? void 0 : t.filter(
1053
+ (e) => e.type === C.HotelRoom
1054
+ );
1055
+ }
1056
+ },
1057
+ watch: {
1058
+ async addBreakfast(o, t) {
1059
+ o !== t && await this.createHotelRoomOfferPackage();
1060
+ },
1061
+ basketContent: {
1062
+ immediate: !1,
1063
+ deep: !0,
1064
+ handler(o) {
1065
+ o.reduce(
1066
+ (e, s) => e + s.count,
1067
+ 0
1068
+ ) === 0 ? this.newCreatedPackage = void 0 : this.createHotelRoomOfferPackage();
1069
+ }
1070
+ }
1071
+ },
1072
+ mounted() {
1073
+ this.hotelRoomOffers && (this.basketContent = this.hotelRoomOffers.map((o) => ({
1074
+ count: 0,
1075
+ hotelRoomOfferId: o.id,
1076
+ hotelRoomId: o.hotelRooms[0].id
1077
+ })));
1078
+ },
1079
+ methods: {
1080
+ async createHotelRoomOfferPackage() {
1081
+ var t;
1082
+ this.isLoading = !0;
1083
+ const o = this.basketContent.map((e) => ({
1084
+ count: e.count,
1085
+ hotelRoomOfferId: e.hotelRoomOfferId
1086
+ })).filter((e) => e.count > 0);
1087
+ try {
1088
+ this.newCreatedPackage = await ((t = this.bookingApiClient) == null ? void 0 : t.hotelRoomOffers.create({
1089
+ body: {
1090
+ addBreakfast: this.addBreakfast,
1091
+ currency: this.currency,
1092
+ hotelRoomOffers: o
1093
+ }
1094
+ }));
1095
+ } catch (e) {
1096
+ throw this.isLoading = !1, e;
1097
+ }
1098
+ this.isLoading = !1;
1099
+ },
1100
+ onBasketUpdate(o, t) {
1101
+ const e = {
1102
+ count: t,
1103
+ hotelRoomOfferId: o.id,
1104
+ hotelRoomId: o.hotelRooms[0].id
1105
+ }, s = this.basketContent.findIndex(
1106
+ (i) => i.hotelRoomOfferId === e.hotelRoomOfferId
1107
+ );
1108
+ s === -1 ? t === 0 ? tt(this.basketContent, s, e) : this.basketContent.splice(s, 1) : this.basketContent.push(e);
1109
+ },
1110
+ onBreakfastChange(o) {
1111
+ this.addBreakfast = o;
1112
+ },
1113
+ onDeleteRoom(o) {
1114
+ const t = this.basketContent.findIndex(
1115
+ (e) => e.hotelRoomId === o.id
1116
+ );
1117
+ this.basketContent[t].count = 0;
1118
+ },
1119
+ async onSubmit() {
1120
+ var o;
1121
+ (o = this.newCreatedPackage) != null && o.hotelRoomOffer.id && (this.isLoading = !0, await this.createBookingPolicy({
1122
+ addBreakfast: this.addBreakfast,
1123
+ hotelRoomOfferId: this.newCreatedPackage.hotelRoomOffer.id,
1124
+ hotelId: this.hotelId
1125
+ }), await this.createHotelRoomOfferPackage(), this.isLoading = !1);
1126
+ }
1127
+ }
1128
+ });
1129
+ var ne = function() {
1130
+ var t = this, e = t._self._c;
1131
+ return t._self._setupProxy, e(a, { attrs: { "no-gutters": "" } }, [e(r, { attrs: { cols: "12", md: "8" } }, [t.hotelRoomOffers.length && t.basketContent.length ? [t._l(t.hotelRoomOffers, function(s, i) {
1132
+ return [i > 0 ? e(c, { key: "divider" + i }) : t._e(), e("hotel-room-offer-item", t._b({ key: s.id, model: { value: t.basketContent[i].count, callback: function(n) {
1133
+ t.$set(t.basketContent[i], "count", n);
1134
+ }, expression: "basketContent[index].count" } }, "hotel-room-offer-item", s, !1))];
1135
+ })] : t._e()], 2), e(c, { staticClass: "d-none d-md-block", attrs: { vertical: "" } }), e(r, { staticClass: "mt-3", attrs: { cols: "12", md: "4" } }, [e(c, { staticClass: "d-block d-md-none my-2" }), e("b-basket-summary", t._b({ attrs: { "adult-count": t.adultCount, "hotel-timezone": t.hotelTimezone, "is-loading": t.isLoading, "is-submitting": t.isFetchingBookingPolicies, "is-successful": t.isBookingPoliciesSuccessful }, on: { "breakfast-change": t.onBreakfastChange, "delete-room": t.onDeleteRoom, submit: t.onSubmit } }, "b-basket-summary", t.newCreatedPackage, !1))], 1)], 1);
1136
+ }, le = [], ce = /* @__PURE__ */ f(
1137
+ ae,
1138
+ ne,
1139
+ le,
1140
+ !1,
1141
+ null,
1142
+ "6b78efda",
1143
+ null,
1144
+ null
1145
+ );
1146
+ const ue = ce.exports, fe = {
1147
+ boilerplateSkeleton: {
1148
+ type: Boolean
1149
+ },
1150
+ itemCount: {
1151
+ type: Number,
1152
+ default: 3
1153
+ },
1154
+ type: {
1155
+ type: String
1156
+ }
1157
+ }, me = u.extend({
1158
+ name: "HotelRoomOfferListEmpty",
1159
+ components: {
1160
+ BErrorOverlay: S,
1161
+ HotelRoomOfferItemLayout: b
1162
+ },
1163
+ mixins: [p("components/RevolugoElements/HotelRoomOfferListEmpty")],
1164
+ props: fe
1165
+ });
1166
+ var he = function() {
1167
+ var t = this, e = t._self._c;
1168
+ return t._self._setupProxy, e("div", [t._l(t.itemCount, function(s) {
1169
+ return [s > 1 ? e(c, { key: "divider-" + s }) : t._e(), e("hotel-room-offer-item-layout", { key: s, class: { "mt-0": s === 1, "mb-0": s === 3 }, attrs: { boilerplate: t.boilerplateSkeleton } })];
1170
+ }), t.type ? e("b-error-overlay", { scopedSlots: t._u([{ key: "title", fn: function() {
1171
+ return [t._v(" " + t._s(t.$t(`HotelRoomOfferListEmpty.${t.type}.title`)) + " ")];
1172
+ }, proxy: !0 }, { key: "description", fn: function() {
1173
+ return [t._v(" " + t._s(t.$t(`HotelRoomOfferListEmpty.${t.type}.description`)) + " ")];
1174
+ }, proxy: !0 }], null, !1, 3905598665) }) : t._e()], 2);
1175
+ }, de = [], pe = /* @__PURE__ */ f(
1176
+ me,
1177
+ he,
1178
+ de,
1179
+ !1,
1180
+ null,
1181
+ null,
1182
+ null,
1183
+ null
1184
+ );
1185
+ const _e = pe.exports, ge = {
1186
+ OnlyMatchingRoomCount: !1
1187
+ }, ye = {
1188
+ ...J,
1189
+ features: {
1190
+ default: () => ge,
1191
+ type: [Object, String]
1192
+ },
1193
+ limit: {
1194
+ default: () => 0,
1195
+ type: Number
1196
+ }
1197
+ }, ke = X.extend({
1198
+ name: "HotelRoomOfferList",
1199
+ components: {
1200
+ BErrorOverlay: S,
1201
+ HotelRoomOfferItem: j,
1202
+ HotelRoomOfferListEmpty: _e,
1203
+ HotelRoomOfferItemLayout: b,
1204
+ HotelRoomOfferBasket: ue
1205
+ },
1206
+ mixins: [
1207
+ p("components/RevolugoElements/HotelRoomOfferList"),
1208
+ gt(
1209
+ ["bookingApiClient", "config.currency", "config.lang"],
1210
+ "retrieveHotelRoomOffers"
1211
+ ),
1212
+ pt({
1213
+ fallbackValue: {
1214
+ OnlyMatchingRoomCount: !1
1215
+ },
1216
+ propsName: "features"
1217
+ })
1218
+ ],
1219
+ props: ye,
1220
+ data() {
1221
+ return {
1222
+ tab: null,
1223
+ tabItems: ["packageHotelRoomOffers", "hotelRoomHotelRoomOffers"]
1224
+ };
1225
+ },
1226
+ computed: {
1227
+ hasError() {
1228
+ var o, t;
1229
+ return !!((o = this.hotelRoomOfferRequest) != null && o.hasError || (t = this.hotelRoomOffersLocal) != null && t.hasError);
1230
+ },
1231
+ hotelRoomOfferRequest() {
1232
+ return this.$store.get(
1233
+ "hotelRoomOfferRequest/hotelRoomOfferRequest",
1234
+ this.hotelId
1235
+ );
1236
+ },
1237
+ hotelRoomOffersLocal() {
1238
+ return this.$store.get("hotelRoomOffers/hotelRoomOffers", this.hotelId);
1239
+ },
1240
+ isLoading() {
1241
+ var o, t;
1242
+ return !!((o = this.hotelRoomOffersLocal) != null && o.isPolling) && !!((t = this.packageHotelRoomOffers) != null && t.length);
1243
+ },
1244
+ packageHotelRoomOffers() {
1245
+ var t, e;
1246
+ const o = (e = (t = this.hotelRoomOffersLocal) == null ? void 0 : t.offers) == null ? void 0 : e.filter((s) => s.type === C.Package).filter((s) => {
1247
+ var i, n;
1248
+ return (i = this.features) != null && i.OnlyMatchingRoomCount ? this.countRooms(s) === ((n = this.hotelRoomOfferRequest) == null ? void 0 : n.roomCount) : !0;
1249
+ });
1250
+ return (o == null ? void 0 : o.slice(0, this.limit || o.length)) || [];
1251
+ },
1252
+ hotelRoomHotelRoomOffers() {
1253
+ var o, t;
1254
+ return ((t = (o = this.hotelRoomOffersLocal) == null ? void 0 : o.offers) == null ? void 0 : t.filter(
1255
+ (e) => e.type === C.HotelRoom
1256
+ )) || [];
1257
+ },
1258
+ showSkeleton() {
1259
+ var o, t, e, s;
1260
+ return !((o = this.hotelRoomOfferRequest) != null && o.id) || (!!((t = this.hotelRoomOfferRequest) != null && t.isFetching) || !!((e = this.hotelRoomOffersLocal) != null && e.isPolling)) && !((s = this.packageHotelRoomOffers) != null && s.length);
1261
+ }
1262
+ },
1263
+ watch: {
1264
+ "hotelRoomOfferRequest.id": {
1265
+ immediate: !0,
1266
+ async handler() {
1267
+ await this.retrieveHotelRoomOffers();
1268
+ }
1269
+ }
1270
+ },
1271
+ methods: {
1272
+ countRooms(o) {
1273
+ return o.hotelRooms.reduce((t, e) => t + e.count, 0);
1274
+ },
1275
+ async retrieveHotelRoomOffers() {
1276
+ var o;
1277
+ if (!((o = this.hotelRoomOfferRequest) != null && o.id)) {
1278
+ await y("hotelRoomOffers/resetHotelRoomOffers", {
1279
+ hotelId: this.hotelId
1280
+ });
1281
+ return;
1282
+ }
1283
+ await y("hotelRoomOffers/retrieveHotelRoomOffers", {
1284
+ hotelId: this.hotelId,
1285
+ hotelRoomOfferRequestId: this.hotelRoomOfferRequest.id
1286
+ });
1287
+ },
1288
+ async onBreakfastChange({
1289
+ hotelId: o,
1290
+ id: t,
1291
+ addBreakfast: e
1292
+ }) {
1293
+ await y("hotelRoomOffers/reifyHotelRoomOffer", {
1294
+ hotelId: o,
1295
+ id: t,
1296
+ addBreakfast: e
1297
+ });
1298
+ }
1299
+ }
1300
+ });
1301
+ var be = function() {
1302
+ var t = this, e = t._self._c;
1303
+ return t._self._setupProxy, e("div", { staticClass: "white" }, [t.isBookingApiClientDefined ? [t.hasError ? e("hotel-room-offer-list-empty", { key: "error", attrs: { boilerplate: "", type: "internalError" } }) : t.showSkeleton ? [e("hotel-room-offer-list-empty", { key: "skeleton" })] : t.packageHotelRoomOffers && t.packageHotelRoomOffers.length ? [t.hotelRoomHotelRoomOffers.length ? t._e() : e("div"), t.isLoading ? e(vt, { staticClass: "loader position-absolute", attrs: { color: "secondary", indeterminate: "" } }) : t._e(), t.hotelRoomHotelRoomOffers && t.hotelRoomHotelRoomOffers.length ? [e(Bt, { attrs: { grow: "" }, model: { value: t.tab, callback: function(s) {
1304
+ t.tab = s;
1305
+ }, expression: "tab" } }, [t._l(t.tabItems, function(s) {
1306
+ return [e($t, { key: s }, [t._v(" " + t._s(t.$t(`HotelRoomOfferList.${s}.title`)) + " ")]), e(c, { key: `divider-${s}`, attrs: { vertical: "" } })];
1307
+ })], 2), e(q, { staticClass: "overflow-visible", model: { value: t.tab, callback: function(s) {
1308
+ t.tab = s;
1309
+ }, expression: "tab" } }, [e(T, { staticClass: "pt-3" }, [t._l(t.packageHotelRoomOffers, function(s, i) {
1310
+ return [i > 0 ? e(c, { key: "divider" + i }) : t._e(), e("hotel-room-offer-item", t._b({ key: s.id, on: { "breakfast-change": t.onBreakfastChange } }, "hotel-room-offer-item", s, !1))];
1311
+ })], 2), e(T, { staticClass: "pt-3 pb-5" }, [e("hotel-room-offer-basket", { attrs: { "hotel-id": t.hotelId } })], 1)], 1)] : [t._l(t.packageHotelRoomOffers, function(s, i) {
1312
+ return [i > 0 ? e(c, { key: "divider" + i }) : t._e(), e("hotel-room-offer-item", t._b({ key: s.id, on: { "breakfast-change": t.onBreakfastChange } }, "hotel-room-offer-item", s, !1))];
1313
+ })]] : !t.packageHotelRoomOffers || !t.packageHotelRoomOffers.length ? [e("hotel-room-offer-list-empty", { key: "skeleton", attrs: { "boilerplate-skeleton": "", type: "noResults" } })] : t._e()] : void 0], 2);
1314
+ }, ve = [], Re = /* @__PURE__ */ f(
1315
+ ke,
1316
+ be,
1317
+ ve,
1318
+ !1,
1319
+ null,
1320
+ "b5b94f3b",
1321
+ null,
1322
+ null
1323
+ );
1324
+ const to = Re.exports;
1325
+ W("css/revolugo.hotelroomofferlist.DrGyKJ-m.css");
1326
+ export {
1327
+ G as B,
1328
+ to as H,
1329
+ ge as a,
1330
+ ye as h
1331
+ };
1332
+ //# sourceMappingURL=revolugo.hotelroomofferlist.vmuFzhGq.min.js.map