@revolugo/elements 5.5.2 → 5.5.3-beta.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (247) 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.0MNnDloZ.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.CEd50mBT.css +1 -0
  15. package/dist/css/revolugo.hoteldescriptionview.9ofE1uWG.css +1 -0
  16. package/dist/css/revolugo.hoteloffersmap.0LnWfOu_.css +1 -0
  17. package/dist/css/revolugo.hoteloffersview.MWOmwEwv.css +1 -0
  18. package/dist/css/revolugo.hotelroomofferlist.xJfKaofV.css +1 -0
  19. package/dist/css/revolugo.hotelroomoffersbookingflow.PPEIqHuM.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.vq4xksqn.css +1 -0
  24. package/dist/css/revolugo.langpicker.B3TsOwUq.css +1 -0
  25. package/dist/css/revolugo.parsed-height.Xzhpy3D3.css +1 -0
  26. package/dist/css/revolugo.parsed-props.C3kOvm7T.css +1 -0
  27. package/dist/css/revolugo.prebookform.DBm2B4rS.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.es.min.js +14187 -0
  54. package/dist/index.es.min.js.map +1 -0
  55. package/dist/index.min.js +65 -1
  56. package/dist/index.min.js.map +1 -0
  57. package/dist/revolugo.banktransferdetails.CbUr_kHV.min.js +105 -0
  58. package/dist/revolugo.bbreakfastoptionbadge.DND6bz7J.min.js +62 -0
  59. package/dist/revolugo.bdaterangepicker.DwXWu7y_.min.js +1351 -0
  60. package/dist/revolugo.bformattedamount.D4xCyTcv.min.js +82 -0
  61. package/dist/revolugo.bhotelroomsdetails.8yoNt-KM.min.js +213 -0
  62. package/dist/revolugo.bhotelsearchbar.Dm84Zzn5.min.js +446 -0
  63. package/dist/revolugo.booking-api-client.Du5goV4n.min.js +7672 -0
  64. package/dist/revolugo.bookingdetailssidebar.AR2t6BHt.min.js +28 -0
  65. package/dist/revolugo.bookingdetailssidebar.DY-YF6-6.min.js +242 -0
  66. package/dist/revolugo.bookingmanager.KlY3kOLa.min.js +404 -0
  67. package/dist/revolugo.bphoneinput.Qc_UlGIL.min.js +1935 -0
  68. package/dist/revolugo.bpricesummaryskeleton.BAzD7raP.min.js +47 -0
  69. package/dist/revolugo.breakpoint-service.CwWRBzMQ.min.js +65 -0
  70. package/dist/revolugo.bstarrating.B-PUaeDZ.min.js +173 -0
  71. package/dist/revolugo.btag.DD6eI8G4.min.js +68 -0
  72. package/dist/revolugo.cancellationpoliciesbadge.BTwUNf7h.min.js +76 -0
  73. package/dist/revolugo.cancellationpoliciesbadge.DA_X-aEr.min.js +28 -0
  74. package/dist/revolugo.cancellationpolicieslist.BweNL3Zh.min.js +316 -0
  75. package/dist/revolugo.cancellationpolicieslist.XF-OE6mm.min.js +28 -0
  76. package/dist/revolugo.common.D4pnatuu.min.js +34 -0
  77. package/dist/revolugo.creditcardform.B0ZACL31.min.js +28 -0
  78. package/dist/revolugo.creditcardform.Bmpk72uW.min.js +2047 -0
  79. package/dist/revolugo.creditcardpayment.DDAlWRp0.min.js +28 -0
  80. package/dist/revolugo.creditcardpayment.Dnr2WHEp.min.js +288 -0
  81. package/dist/revolugo.currencypicker.BxCxn4FE.min.js +122 -0
  82. package/dist/revolugo.currencypickerbtn.D8fIyw_x.min.js +121 -0
  83. package/dist/revolugo.currencypickerbtn.DoEdhphF.min.js +28 -0
  84. package/dist/revolugo.dialog-attach.05NirMLv.min.js +27 -0
  85. package/dist/revolugo.en-us.BP-UxrRq.min.js +1171 -0
  86. package/dist/revolugo.event-bus.CYLYgD3Y.min.js +37 -0
  87. package/dist/revolugo.fr-fr.CF_knN5b.min.js +1177 -0
  88. package/dist/revolugo.fullbookingflow.CC5Cr4mW.min.js +239 -0
  89. package/dist/revolugo.hotel-offer.JfkzuZyf.min.js +608 -0
  90. package/dist/revolugo.hoteldescriptionview.CgZ1B-Xq.min.js +2174 -0
  91. package/dist/revolugo.hoteldescriptionview.D60l6OVK.min.js +28 -0
  92. package/dist/revolugo.hotelofferitemlayout.BrulX_X4.min.js +64 -0
  93. package/dist/revolugo.hotelofferlist.DdGDJ98f.min.js +3450 -0
  94. package/dist/revolugo.hotelofferlist.fY3RjtDV.min.js +28 -0
  95. package/dist/revolugo.hotelofferrequestcreator.CiNpCqiH.min.js +225 -0
  96. package/dist/revolugo.hoteloffersearchmenu.CnVV4htq.min.js +54 -0
  97. package/dist/revolugo.hoteloffersmap.4JNdP5O9.min.js +28 -0
  98. package/dist/revolugo.hoteloffersmap.aZoZz_HS.min.js +8737 -0
  99. package/dist/revolugo.hoteloffersview.BomM2SbH.min.js +157 -0
  100. package/dist/revolugo.hoteloffersview.KXkG1ly6.min.js +28 -0
  101. package/dist/revolugo.hotelroomofferlist.BS32D6Sj.min.js +28 -0
  102. package/dist/revolugo.hotelroomofferlist.BltT6U-0.min.js +1336 -0
  103. package/dist/revolugo.hotelroomofferrequestcreator.CbISsNdn.min.js +225 -0
  104. package/dist/revolugo.hotelroomoffersbookingflow.Bg4fSE31.min.js +679 -0
  105. package/dist/revolugo.hotelroomoffersearchmenu.Bsg_FnJp.min.js +29 -0
  106. package/dist/revolugo.hotelroomoffersearchmenu.DqVQ1oKf.min.js +38 -0
  107. package/dist/revolugo.hotelroomoffersview.BtEWE9PO.min.js +28 -0
  108. package/dist/revolugo.hotelroomoffersview.DPbW5Ndi.min.js +124 -0
  109. package/dist/revolugo.i18n.DF3U6VhD.min.js +11263 -0
  110. package/dist/revolugo.index.A8BtC3Nq.min.js +322 -0
  111. package/dist/revolugo.index.BEcLuOn-.min.js +281 -0
  112. package/dist/revolugo.index.BUUmIL9V.min.js +68 -0
  113. package/dist/revolugo.index.BwvidmNu.min.js +128 -0
  114. package/dist/revolugo.index.CQC_pZJn.min.js +15 -0
  115. package/dist/revolugo.index.CcRooNT6.min.js +270 -0
  116. package/dist/revolugo.index.Cn5YTzy6.min.js +43 -0
  117. package/dist/revolugo.index.Cn8GgIte.min.js +142 -0
  118. package/dist/revolugo.index.DTZNxZHf.min.js +9 -0
  119. package/dist/revolugo.index.DfBSjbYu.min.js +42 -0
  120. package/dist/revolugo.index.GdvjICDR.min.js +13 -0
  121. package/dist/revolugo.index.owaXEEBO.min.js +9 -0
  122. package/dist/revolugo.index.sTY3URQu.min.js +390 -0
  123. package/dist/revolugo.index.tY8MFB9m.min.js +161 -0
  124. package/dist/revolugo.langpicker.yr7wtnZM.min.js +103 -0
  125. package/dist/revolugo.langpickerbtn.4XN3tTRs.min.js +28 -0
  126. package/dist/revolugo.langpickerbtn.BHhYWwCD.min.js +111 -0
  127. package/dist/revolugo.localizedformat.Wox_NThB.min.js +47 -0
  128. package/dist/revolugo.min.js +257 -7
  129. package/dist/revolugo.parsed-height.D0Du6OpW.min.js +2492 -0
  130. package/dist/revolugo.parsed-props.B_x1Ob04.min.js +95 -0
  131. package/dist/revolugo.prebookform.BeSJk0ad.min.js +28 -0
  132. package/dist/revolugo.prebookform.DZMMJst9.min.js +484 -0
  133. package/dist/revolugo.revolugo-config.Bs_HF2Eu.min.js +1707 -0
  134. package/dist/revolugo.roominglisteditor.BpdFoplV.min.js +201 -0
  135. package/dist/revolugo.roominglisteditor.DxmH3gRW.min.js +28 -0
  136. package/dist/revolugo.sentry.Bc7mnscp.min.js +12146 -0
  137. package/dist/revolugo.store.DPvvq0Rz.min.js +1718 -0
  138. package/dist/revolugo.storybooktoolbar.C_y4Nf-_.min.js +300 -0
  139. package/dist/revolugo.termsandconditions.BIHsJaCg.min.js +27 -0
  140. package/dist/revolugo.termsandconditions.D2C1eZuC.min.js +162 -0
  141. package/dist/revolugo.typed-mixins.B_7wrdes.min.js +8 -0
  142. package/dist/revolugo.valert.CMzvSBzo.min.js +194 -0
  143. package/dist/revolugo.vautocomplete.C-5OLCEj.min.js +255 -0
  144. package/dist/revolugo.vbadge.xQq9jf9W.min.js +172 -0
  145. package/dist/revolugo.vbtn.CP4AezmI.min.js +286 -0
  146. package/dist/revolugo.vcard.Cy5A2_pV.min.js +80 -0
  147. package/dist/revolugo.vchip.BcIMSmkF.min.js +157 -0
  148. package/dist/revolugo.vdialog.BAexO59W.min.js +341 -0
  149. package/dist/revolugo.vexpansionpanelheader.D9ENep1_.min.js +263 -0
  150. package/dist/revolugo.vform.oeljK9Tu.min.js +98 -0
  151. package/dist/revolugo.vinput.CDpcVlCU.min.js +509 -0
  152. package/dist/revolugo.vitemgroup.DyY_3pfW.min.js +168 -0
  153. package/dist/revolugo.vlistitem.CrJxrMpP.min.js +204 -0
  154. package/dist/revolugo.vmenu.CtMz9t6s.min.js +349 -0
  155. package/dist/revolugo.vselect.UcLk_jBF.min.js +859 -0
  156. package/dist/revolugo.vsheet.C1tyLBBd.min.js +120 -0
  157. package/dist/revolugo.vskeletonloader.CMMMMGzf.min.js +172 -0
  158. package/dist/revolugo.vslidegroup.BXF0FLd1.min.js +650 -0
  159. package/dist/revolugo.vsnackbar.xIK_rBpB.min.js +178 -0
  160. package/dist/revolugo.vtextfield.D2qOTbGQ.min.js +438 -0
  161. package/dist/revolugo.vtoolbar.D3HhuFrj.min.js +364 -0
  162. package/dist/revolugo.vtooltip.B7xN8tzo.min.js +168 -0
  163. package/dist/revolugo.vuetify.yojzDMFk.min.js +865 -0
  164. package/dist/revolugo.watch-list.cR2ZEwBA.min.js +44 -0
  165. package/dist/revolugo.webcomponentwrapper.-wnE6sKX.min.js +777 -0
  166. package/package.json +24 -32
  167. package/dist/css/revolugo.0.min.css +0 -5
  168. package/dist/css/revolugo.1.min.css +0 -1
  169. package/dist/css/revolugo.11.min.css +0 -1
  170. package/dist/css/revolugo.12.min.css +0 -1
  171. package/dist/css/revolugo.13.min.css +0 -1
  172. package/dist/css/revolugo.14.min.css +0 -1
  173. package/dist/css/revolugo.15.min.css +0 -1
  174. package/dist/css/revolugo.16.min.css +0 -1
  175. package/dist/css/revolugo.17.min.css +0 -1
  176. package/dist/css/revolugo.18.min.css +0 -1
  177. package/dist/css/revolugo.19.min.css +0 -1
  178. package/dist/css/revolugo.2.min.css +0 -1
  179. package/dist/css/revolugo.20.min.css +0 -1
  180. package/dist/css/revolugo.21.min.css +0 -1
  181. package/dist/css/revolugo.22.min.css +0 -1
  182. package/dist/css/revolugo.23.min.css +0 -1
  183. package/dist/css/revolugo.24.min.css +0 -1
  184. package/dist/css/revolugo.25.min.css +0 -1
  185. package/dist/css/revolugo.26.min.css +0 -1
  186. package/dist/css/revolugo.27.min.css +0 -1
  187. package/dist/css/revolugo.28.min.css +0 -1
  188. package/dist/css/revolugo.29.min.css +0 -1
  189. package/dist/css/revolugo.30.min.css +0 -1
  190. package/dist/css/revolugo.31.min.css +0 -1
  191. package/dist/css/revolugo.32.min.css +0 -1
  192. package/dist/css/revolugo.33.min.css +0 -1
  193. package/dist/css/revolugo.34.min.css +0 -1
  194. package/dist/css/revolugo.4.min.css +0 -1
  195. package/dist/css/revolugo.5.min.css +0 -1
  196. package/dist/css/revolugo.6.min.css +0 -1
  197. package/dist/css/revolugo.7.min.css +0 -1
  198. package/dist/css/revolugo.fonts.min.css +0 -1
  199. package/dist/fonts/amenities.2aad1d12.woff +0 -0
  200. package/dist/fonts/amenities.9adae269.ttf +0 -0
  201. package/dist/fonts/amenities.a9bf50f8.svg +0 -42
  202. package/dist/fonts/amenities.bd6b3a4a.eot +0 -0
  203. package/dist/fonts/beds.2b8e38c8.svg +0 -12
  204. package/dist/img/apst.c1092975.png +0 -0
  205. package/dist/img/apst.ec7669f2.png +0 -0
  206. package/dist/img/atout-france.72107e30.png +0 -0
  207. package/dist/img/atout-france.df038f22.png +0 -0
  208. package/dist/img/revolugo.179c459d.png +0 -0
  209. package/dist/img/revolugo.e0879dcc.png +0 -0
  210. package/dist/img/stripe.405543e2.png +0 -0
  211. package/dist/img/stripe.c3e16f9f.png +0 -0
  212. package/dist/revolugo.0.min.js +0 -18
  213. package/dist/revolugo.1.min.js +0 -1
  214. package/dist/revolugo.11.min.js +0 -134
  215. package/dist/revolugo.12.min.js +0 -19
  216. package/dist/revolugo.13.min.js +0 -14
  217. package/dist/revolugo.14.min.js +0 -19
  218. package/dist/revolugo.15.min.js +0 -139
  219. package/dist/revolugo.16.min.js +0 -14
  220. package/dist/revolugo.17.min.js +0 -14
  221. package/dist/revolugo.18.min.js +0 -1
  222. package/dist/revolugo.19.min.js +0 -1
  223. package/dist/revolugo.2.min.js +0 -1
  224. package/dist/revolugo.20.min.js +0 -1
  225. package/dist/revolugo.21.min.js +0 -116
  226. package/dist/revolugo.22.min.js +0 -1
  227. package/dist/revolugo.23.min.js +0 -1
  228. package/dist/revolugo.24.min.js +0 -1
  229. package/dist/revolugo.25.min.js +0 -1
  230. package/dist/revolugo.26.min.js +0 -1
  231. package/dist/revolugo.27.min.js +0 -1
  232. package/dist/revolugo.28.min.js +0 -116
  233. package/dist/revolugo.29.min.js +0 -1
  234. package/dist/revolugo.30.min.js +0 -1
  235. package/dist/revolugo.31.min.js +0 -1
  236. package/dist/revolugo.32.min.js +0 -1
  237. package/dist/revolugo.33.min.js +0 -1
  238. package/dist/revolugo.34.min.js +0 -1
  239. package/dist/revolugo.35.min.js +0 -1
  240. package/dist/revolugo.36.min.js +0 -1
  241. package/dist/revolugo.4.min.js +0 -1
  242. package/dist/revolugo.5.min.js +0 -1
  243. package/dist/revolugo.6.min.js +0 -1
  244. package/dist/revolugo.7.min.js +0 -1
  245. package/dist/revolugo.en-US.min.js +0 -1
  246. package/dist/revolugo.fonts.min.js +0 -1
  247. package/dist/revolugo.fr-FR.min.js +0 -1
@@ -0,0 +1,1336 @@
1
+ import { B as v, M as w, S as C } from "./revolugo.booking-api-client.Du5goV4n.min.js";
2
+ import { d as y, a as Q } from "./revolugo.store.DPvvq0Rz.min.js";
3
+ import { h as Y, H as J } from "./revolugo.hotelroomofferrequestcreator.CbISsNdn.min.js";
4
+ import { V as u, N as X, d as R, J as I, v as Z, s as tt } from "./revolugo.i18n.DF3U6VhD.min.js";
5
+ import { k as O, h as d, E as et } from "./revolugo.revolugo-config.Bs_HF2Eu.min.js";
6
+ import { C as ot } from "./revolugo.cancellationpoliciesbadge.BTwUNf7h.min.js";
7
+ import { a as E, B as st } from "./revolugo.bpricesummaryskeleton.BAzD7raP.min.js";
8
+ import { b as H } from "./revolugo.breakpoint-service.CwWRBzMQ.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.-wnE6sKX.min.js";
10
+ import { _ as m } from "./revolugo.vskeletonloader.CMMMMGzf.min.js";
11
+ import { B as z } from "./revolugo.bbreakfastoptionbadge.DND6bz7J.min.js";
12
+ import { B as D, f as it } from "./revolugo.bformattedamount.D4xCyTcv.min.js";
13
+ import { B as V } from "./revolugo.btag.DD6eI8G4.min.js";
14
+ import { S as rt } from "./revolugo.index.tY8MFB9m.min.js";
15
+ import { V as at } from "./revolugo.vinput.CDpcVlCU.min.js";
16
+ import { T as nt, R as lt } from "./revolugo.vuetify.yojzDMFk.min.js";
17
+ import { d as ct } from "./revolugo.index.Cn8GgIte.min.js";
18
+ import { a as $, _ as x } from "./revolugo.vbtn.CP4AezmI.min.js";
19
+ import { R as M, f as ut, _ } from "./revolugo.index.sTY3URQu.min.js";
20
+ import { B as F } from "./revolugo.bhotelroomsdetails.8yoNt-KM.min.js";
21
+ import { _ as ft } from "./revolugo.vtooltip.B7xN8tzo.min.js";
22
+ import { _ as mt } from "./revolugo.vselect.UcLk_jBF.min.js";
23
+ import { C as ht, a as dt } from "./revolugo.cancellationpolicieslist.BweNL3Zh.min.js";
24
+ import { _ as c, p as pt } from "./revolugo.parsed-props.B_x1Ob04.min.js";
25
+ /* empty css */
26
+ import { _ as _t } from "./revolugo.valert.CMzvSBzo.min.js";
27
+ import { w as gt } from "./revolugo.watch-list.cR2ZEwBA.min.js";
28
+ import { B as g, V as P, a as L } from "./revolugo.vslidegroup.BXF0FLd1.min.js";
29
+ import { S as yt } from "./revolugo.index.BUUmIL9V.min.js";
30
+ import { B as kt } from "./revolugo.vitemgroup.DyY_3pfW.min.js";
31
+ import { P as bt, _ as vt } from "./revolugo.index.BEcLuOn-.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
+ M,
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
+ ...M.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(), t.isTaxIncluded ? [e("span", { staticClass: "text-caption mt-n1 d-block" }, [t._v(" " + t._s(t.$t("BPriceSummary.taxIncluded")) + " ")])] : [e(ft, { staticClass: "text-left", attrs: { 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._v(" " + t._s(t.$t("BPriceSummary.taxIncluded")) + " "), e(_, { attrs: { "x-small": "" } }, [t._v("fa-info-circle")])], 1)];
582
+ } }]) }, [e("span", { staticClass: "tooltip-content" }, [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
+ "8f5bdbba",
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
+ }, Mt = [], Ft = /* @__PURE__ */ f(
667
+ Dt,
668
+ Vt,
669
+ Mt,
670
+ !1,
671
+ null,
672
+ "48b60373",
673
+ null,
674
+ null
675
+ );
676
+ const U = Ft.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
+ taxes: { type: Array },
732
+ sourceMarket: { type: String },
733
+ type: { type: String },
734
+ packageType: { type: String },
735
+ count: { type: Number },
736
+ value: { type: Number }
737
+ }, Gt = u.extend({
738
+ name: "HotelRoomOfferItem",
739
+ components: {
740
+ BBreakfastOptionBadge: z,
741
+ BBreakfastSwitch: U,
742
+ CancellationPoliciesBadge: ot,
743
+ BErrorOverlay: S,
744
+ BFormattedAmount: D,
745
+ BPriceSummary: G,
746
+ BHotelRoomsDetails: F,
747
+ BTag: V,
748
+ HotelRoomOfferItemLayout: b
749
+ },
750
+ mixins: [
751
+ p("components/RevolugoElements/HotelRoomOfferItem"),
752
+ H,
753
+ K
754
+ ],
755
+ props: qt,
756
+ store: Q,
757
+ data() {
758
+ return {
759
+ addBreakfast: this.breakfastCount && this.breakfastCount > 0 || !1
760
+ };
761
+ },
762
+ computed: {
763
+ adultCount() {
764
+ var o;
765
+ return (o = this.hotelRoomOfferRequest) == null ? void 0 : o.adultCount;
766
+ },
767
+ checkInDate() {
768
+ var o;
769
+ return (o = this.hotelRoomOfferRequest) == null ? void 0 : o.checkInDate;
770
+ },
771
+ nightCount() {
772
+ return this.$store.get("hotelRoomOfferRequest/nightCount", this.hotelId);
773
+ },
774
+ hotelTimezone() {
775
+ return this.$store.get("hotelRoomOffers/hotelTimezone", this.hotelId);
776
+ },
777
+ roomCount() {
778
+ return this.hotelRooms.reduce((o, t) => o + (t.count || 0), 0);
779
+ },
780
+ countOptions() {
781
+ return this.count ? X(this.count + 1) : [];
782
+ },
783
+ isTaxIncluded() {
784
+ return this.taxes ? this.taxes.length === 0 : !0;
785
+ },
786
+ hotelRoomOfferRequest() {
787
+ return this.$store.get(
788
+ "hotelRoomOfferRequest/hotelRoomOfferRequest",
789
+ this.hotelId
790
+ );
791
+ },
792
+ packageTypeTagColor() {
793
+ switch (this.packageType) {
794
+ case v.Cheapest:
795
+ return "red";
796
+ case v.BestMatch:
797
+ case v.MatchingRoomCount:
798
+ return "purple";
799
+ default:
800
+ return "";
801
+ }
802
+ },
803
+ selectedQuantity: {
804
+ get() {
805
+ return this.value;
806
+ },
807
+ set(o) {
808
+ this.$emit("input", o);
809
+ }
810
+ }
811
+ },
812
+ watch: {
813
+ addBreakfast(o) {
814
+ this.$emit("breakfast-change", {
815
+ hotelId: this.hotelId,
816
+ id: this.id,
817
+ addBreakfast: o
818
+ });
819
+ }
820
+ },
821
+ methods: {
822
+ onHotelRoomOfferClick() {
823
+ this.$eventBus.$emit(et.HOTEL_ROOM_OFFERS_BTN_CLICK, this.$props), this.createBookingPolicy({
824
+ addBreakfast: this.addBreakfast,
825
+ hotelRoomOfferId: this.id,
826
+ hotelId: this.hotelId
827
+ });
828
+ }
829
+ }
830
+ });
831
+ var Ut = function() {
832
+ var t = this, e = t._self._c;
833
+ 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() {
834
+ return [e("b-hotel-rooms-details", { attrs: { "hotel-rooms": t.hotelRooms } })];
835
+ }, proxy: !0 }, { key: "package-type", fn: function() {
836
+ 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() {
837
+ return [t._v(" " + t._s(t.$tc(`HotelRoomOfferItem.packageTypes.${t.packageType}.description`, t.adultCount)) + " ")];
838
+ }, proxy: !0 }], null, !1, 2153503966) }, [t._v(" " + t._s(t.$tc(`HotelRoomOfferItem.packageTypes.${t.packageType}.title`, t.adultCount)) + " ")])] : t._e()];
839
+ }, proxy: !0 }, { key: "breakfast-option", fn: function() {
840
+ 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) {
841
+ t.addBreakfast = s;
842
+ }, expression: "addBreakfast" } })], 1) : t._e()];
843
+ }, proxy: !0 }, { key: "price-summary", fn: function() {
844
+ 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, "is-local-city-tax-included": t.isLocalCityTaxIncluded, "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": {
845
+ minWidth: "125px"
846
+ }, outlined: "", value: 0 }, scopedSlots: t._u([{ key: "item", fn: function({ item: s }) {
847
+ 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)];
848
+ } }], null, !1, 41009295), model: { value: t.selectedQuantity, callback: function(s) {
849
+ t.selectedQuantity = s;
850
+ }, expression: "selectedQuantity" } })], 1)])], 1)] : [e("b-price-summary", { staticClass: "text-right", attrs: { "adult-count": t.type === "PACKAGE" ? t.adultCount : 0, "is-tax-included": t.isTaxIncluded, "night-count": t.type === "PACKAGE" ? t.nightCount : 0, price: t.price, "room-count": t.type === "PACKAGE" ? t.roomCount : 0, "round-mode": "round" } })]];
851
+ }, proxy: !0 }, { key: "action", fn: function() {
852
+ 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")];
853
+ }, 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() {
854
+ return [t._v(" " + t._s(t.$t("HotelRoomOfferItem.unavailable.title")) + " ")];
855
+ }, proxy: !0 }, { key: "description", fn: function() {
856
+ return [t._v(" " + t._s(t.$t("HotelRoomOfferItem.unavailable.description")) + " ")];
857
+ }, proxy: !0 }], null, !1, 3630660745) }) : t._e()], 1);
858
+ }, Kt = [], jt = /* @__PURE__ */ f(
859
+ Gt,
860
+ Ut,
861
+ Kt,
862
+ !1,
863
+ null,
864
+ "6d9e6093",
865
+ null,
866
+ null
867
+ );
868
+ const j = jt.exports, Wt = u.extend({
869
+ name: "BBasketSummaryLayout",
870
+ components: {
871
+ BPriceSummarySkeleton: E,
872
+ BHotelRoomsDetailsSkeleton: st
873
+ }
874
+ });
875
+ var Qt = function() {
876
+ var t = this, e = t._self._c;
877
+ 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() {
878
+ return [e(m, { attrs: { height: "18px", tile: "", type: "heading", width: "200px" } })];
879
+ })], 2)])], 1), e(a, [e(r, [e("div", { staticClass: "caption d-flex justify-end py-2" }, [t._t("adult-count", function() {
880
+ return [e(m, { attrs: { tile: "", type: "text", width: "150px" } })];
881
+ })], 2), e("div", { staticClass: "mt-3 d-flex justify-start align-center font-weight-bold pb-2" }, [t._t("secondary-title", function() {
882
+ return [e(m, { attrs: { height: "18px", tile: "", type: "heading", width: "150px" } })];
883
+ })], 2)])], 1), t._t("hotel-rooms", function() {
884
+ return [e("div", { staticClass: "pt-4" }, [t._l(2, function(s) {
885
+ 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" })];
886
+ })], 2)];
887
+ }), e(a, [e(r, [t._t("breakfast-option")], 2)], 1), e(a, { attrs: { "no-gutters": "" } }, [e(r, [t._t("price-summary", function() {
888
+ return [e("b-price-summary-skeleton")];
889
+ })], 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() {
890
+ return [e(m, { attrs: { height: "38px", tile: "", type: "heading", width: "100%" } })];
891
+ })], 2)], 1), e(a, [e(r, [t._t("cancellation-policies", function() {
892
+ return [e(m, { attrs: { tile: "", type: "paragraph", width: "100%" } })];
893
+ })], 2)], 1)], 2)], 1);
894
+ }, Yt = [], Jt = /* @__PURE__ */ f(
895
+ Wt,
896
+ Qt,
897
+ Yt,
898
+ !1,
899
+ null,
900
+ null,
901
+ null,
902
+ null
903
+ );
904
+ const Xt = Jt.exports, Zt = {
905
+ adultCount: { type: Number },
906
+ checkInDate: { type: String },
907
+ checkOutDate: { type: String },
908
+ currency: { type: String },
909
+ hotelTimezone: { type: String },
910
+ hotelRoomOffer: { type: Object },
911
+ isLoading: { type: Boolean },
912
+ isSubmitting: { type: Boolean },
913
+ isSuccessful: { type: Boolean }
914
+ }, te = u.extend({
915
+ name: "BBasketSummary",
916
+ components: {
917
+ BBasketSummaryLayout: Xt,
918
+ BBreakfastOptionBadge: z,
919
+ BBreakfastSwitch: U,
920
+ CancellationPoliciesList: ht,
921
+ BPriceSummary: G,
922
+ BHotelRoomsDetails: F
923
+ },
924
+ mixins: [p("components/ui/BBasketSummary")],
925
+ props: Zt,
926
+ data() {
927
+ var o, t;
928
+ return {
929
+ addBreakfast: ((o = this.hotelRoomOffer) == null ? void 0 : o.breakfastCount) && ((t = this.hotelRoomOffer) == null ? void 0 : t.breakfastCount) > 0 || !1
930
+ };
931
+ },
932
+ computed: {
933
+ breakfastOption() {
934
+ var o;
935
+ return (o = this.hotelRoomOffer) == null ? void 0 : o.breakfastOption;
936
+ },
937
+ isBreakfastIncluded() {
938
+ return this.hotelRoomOffer.breakfastOption === w.Included;
939
+ },
940
+ isBreakfastOptionnal() {
941
+ return this.hotelRoomOffer.breakfastOption === w.Optional;
942
+ },
943
+ nightCount() {
944
+ return !this.hotelRoomOffer || !this.checkOutDate || !this.checkInDate ? 0 : R(this.checkOutDate).diff(R(this.checkInDate), "day");
945
+ },
946
+ roomCount() {
947
+ var o;
948
+ return I((o = this.hotelRoomOffer) == null ? void 0 : o.hotelRooms, "count");
949
+ },
950
+ sanitizedCancellationPolicies() {
951
+ var o;
952
+ return dt(
953
+ Z({
954
+ bookingDatetime: R().format(),
955
+ cancellationPolicies: (o = this.hotelRoomOffer) == null ? void 0 : o.cancellationPolicies,
956
+ checkInDate: this.checkInDate,
957
+ timezone: this.hotelTimezone
958
+ })
959
+ );
960
+ },
961
+ totalOccupancy() {
962
+ var o;
963
+ return I(
964
+ (o = this.hotelRoomOffer) == null ? void 0 : o.hotelRooms,
965
+ (t) => t.count * t.occupancy
966
+ );
967
+ }
968
+ },
969
+ watch: {
970
+ addBreakfast(o) {
971
+ this.$emit("breakfast-change", o);
972
+ }
973
+ }
974
+ });
975
+ var ee = function() {
976
+ var t = this, e = t._self._c;
977
+ 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() {
978
+ return [[e("span", [t._v(t._s(t.$t("BBasketSummary.title")))])]];
979
+ }, proxy: !0 }, { key: "adult-count", fn: function() {
980
+ 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))])]];
981
+ }, proxy: !0 }, { key: "secondary-title", fn: function() {
982
+ return [[t.hotelRoomOffer ? [t._v(" " + t._s(t.$t("BBasketSummary.yourSelection")) + " ")] : e("span")]];
983
+ }, proxy: !0 }, { key: "hotel-rooms", fn: function() {
984
+ return [t.hotelRoomOffer ? [t._l(t.hotelRoomOffer.hotelRooms, function(s, i) {
985
+ 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: {
986
+ "mt-n4": i >= 1
987
+ }, attrs: { "hotel-rooms": [s] } }), e(x, { class: {
988
+ "mt-n4": i >= 1
989
+ }, attrs: { color: "red", icon: "", text: "" }, on: { click: function(n) {
990
+ return t.$emit("delete-room", s);
991
+ } } }, [e(_, [t._v("fa-times")])], 1)], 1)], 1), e(c, { key: `divider-${i}`, staticClass: "my-2" })], 1)];
992
+ })] : [e("span")]];
993
+ }, proxy: !0 }, { key: "breakfast-option", fn: function() {
994
+ 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) {
995
+ t.addBreakfast = s;
996
+ }, expression: "addBreakfast" } })], 1)], 1) : t._e()] : t._e()];
997
+ }, proxy: !0 }, { key: "price-summary", fn: function() {
998
+ return [[e("b-price-summary", { attrs: { "night-count": 0, price: t.hotelRoomOffer ? t.hotelRoomOffer.price : 0, "room-count": t.roomCount } })]];
999
+ }, proxy: !0 }, { key: "errors", fn: function() {
1000
+ 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()]];
1001
+ }, proxy: !0 }, { key: "button", fn: function() {
1002
+ 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) {
1003
+ return t.$emit("submit");
1004
+ } } }, [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)]];
1005
+ }, proxy: !0 }, { key: "cancellation-policies", fn: function() {
1006
+ 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")]];
1007
+ }, proxy: !0 }]) })]], 2);
1008
+ }, oe = [], se = /* @__PURE__ */ f(
1009
+ te,
1010
+ ee,
1011
+ oe,
1012
+ !1,
1013
+ null,
1014
+ null,
1015
+ null,
1016
+ null
1017
+ );
1018
+ const ie = se.exports, re = {
1019
+ hotelId: { type: String }
1020
+ }, ae = u.extend({
1021
+ name: "HotelRoomOfferBasket",
1022
+ components: {
1023
+ BBasketSummary: ie,
1024
+ HotelRoomOfferItem: j,
1025
+ HotelRoomOfferItemLayout: b
1026
+ },
1027
+ mixins: [K],
1028
+ props: re,
1029
+ data() {
1030
+ return {
1031
+ basketContent: [],
1032
+ addBreakfast: !1,
1033
+ newCreatedPackage: void 0,
1034
+ isLoading: !1
1035
+ };
1036
+ },
1037
+ computed: {
1038
+ adultCount() {
1039
+ var o;
1040
+ return (o = this.hotelRoomOfferRequest) == null ? void 0 : o.adultCount;
1041
+ },
1042
+ currency() {
1043
+ return window.RevolugoElements.config.currency;
1044
+ },
1045
+ hotelTimezone() {
1046
+ return this.$store.get("hotelRoomOffers/hotelTimezone", this.hotelId);
1047
+ },
1048
+ hotelRoomOfferRequest() {
1049
+ return this.$store.get(
1050
+ "hotelRoomOfferRequest/hotelRoomOfferRequest",
1051
+ this.hotelId
1052
+ );
1053
+ },
1054
+ hotelRoomOffers() {
1055
+ var o, t;
1056
+ return (t = (o = this.$store.get("hotelRoomOffers/hotelRoomOffers", this.hotelId)) == null ? void 0 : o.offers) == null ? void 0 : t.filter(
1057
+ (e) => e.type === C.HotelRoom
1058
+ );
1059
+ }
1060
+ },
1061
+ watch: {
1062
+ async addBreakfast(o, t) {
1063
+ o !== t && await this.createHotelRoomOfferPackage();
1064
+ },
1065
+ basketContent: {
1066
+ immediate: !1,
1067
+ deep: !0,
1068
+ handler(o) {
1069
+ o.reduce(
1070
+ (e, s) => e + s.count,
1071
+ 0
1072
+ ) === 0 ? this.newCreatedPackage = void 0 : this.createHotelRoomOfferPackage();
1073
+ }
1074
+ }
1075
+ },
1076
+ mounted() {
1077
+ this.hotelRoomOffers && (this.basketContent = this.hotelRoomOffers.map((o) => ({
1078
+ count: 0,
1079
+ hotelRoomOfferId: o.id,
1080
+ hotelRoomId: o.hotelRooms[0].id
1081
+ })));
1082
+ },
1083
+ methods: {
1084
+ async createHotelRoomOfferPackage() {
1085
+ var t;
1086
+ this.isLoading = !0;
1087
+ const o = this.basketContent.map((e) => ({
1088
+ count: e.count,
1089
+ hotelRoomOfferId: e.hotelRoomOfferId
1090
+ })).filter((e) => e.count > 0);
1091
+ try {
1092
+ this.newCreatedPackage = await ((t = this.bookingApiClient) == null ? void 0 : t.hotelRoomOffers.create({
1093
+ body: {
1094
+ addBreakfast: this.addBreakfast,
1095
+ currency: this.currency,
1096
+ hotelRoomOffers: o
1097
+ }
1098
+ }));
1099
+ } catch (e) {
1100
+ throw this.isLoading = !1, e;
1101
+ }
1102
+ this.isLoading = !1;
1103
+ },
1104
+ onBasketUpdate(o, t) {
1105
+ const e = {
1106
+ count: t,
1107
+ hotelRoomOfferId: o.id,
1108
+ hotelRoomId: o.hotelRooms[0].id
1109
+ }, s = this.basketContent.findIndex(
1110
+ (i) => i.hotelRoomOfferId === e.hotelRoomOfferId
1111
+ );
1112
+ s === -1 ? t === 0 ? tt(this.basketContent, s, e) : this.basketContent.splice(s, 1) : this.basketContent.push(e);
1113
+ },
1114
+ onBreakfastChange(o) {
1115
+ this.addBreakfast = o;
1116
+ },
1117
+ onDeleteRoom(o) {
1118
+ const t = this.basketContent.findIndex(
1119
+ (e) => e.hotelRoomId === o.id
1120
+ );
1121
+ this.basketContent[t].count = 0;
1122
+ },
1123
+ async onSubmit() {
1124
+ var o;
1125
+ (o = this.newCreatedPackage) != null && o.hotelRoomOffer.id && (this.isLoading = !0, await this.createBookingPolicy({
1126
+ addBreakfast: this.addBreakfast,
1127
+ hotelRoomOfferId: this.newCreatedPackage.hotelRoomOffer.id,
1128
+ hotelId: this.hotelId
1129
+ }), await this.createHotelRoomOfferPackage(), this.isLoading = !1);
1130
+ }
1131
+ }
1132
+ });
1133
+ var ne = function() {
1134
+ var t = this, e = t._self._c;
1135
+ 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) {
1136
+ 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) {
1137
+ t.$set(t.basketContent[i], "count", n);
1138
+ }, expression: "basketContent[index].count" } }, "hotel-room-offer-item", s, !1))];
1139
+ })] : 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);
1140
+ }, le = [], ce = /* @__PURE__ */ f(
1141
+ ae,
1142
+ ne,
1143
+ le,
1144
+ !1,
1145
+ null,
1146
+ "6b78efda",
1147
+ null,
1148
+ null
1149
+ );
1150
+ const ue = ce.exports, fe = {
1151
+ boilerplateSkeleton: {
1152
+ type: Boolean
1153
+ },
1154
+ itemCount: {
1155
+ type: Number,
1156
+ default: 3
1157
+ },
1158
+ type: {
1159
+ type: String
1160
+ }
1161
+ }, me = u.extend({
1162
+ name: "HotelRoomOfferListEmpty",
1163
+ components: {
1164
+ BErrorOverlay: S,
1165
+ HotelRoomOfferItemLayout: b
1166
+ },
1167
+ mixins: [p("components/RevolugoElements/HotelRoomOfferListEmpty")],
1168
+ props: fe
1169
+ });
1170
+ var he = function() {
1171
+ var t = this, e = t._self._c;
1172
+ return t._self._setupProxy, e("div", [t._l(t.itemCount, function(s) {
1173
+ 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 } })];
1174
+ }), t.type ? e("b-error-overlay", { scopedSlots: t._u([{ key: "title", fn: function() {
1175
+ return [t._v(" " + t._s(t.$t(`HotelRoomOfferListEmpty.${t.type}.title`)) + " ")];
1176
+ }, proxy: !0 }, { key: "description", fn: function() {
1177
+ return [t._v(" " + t._s(t.$t(`HotelRoomOfferListEmpty.${t.type}.description`)) + " ")];
1178
+ }, proxy: !0 }], null, !1, 3905598665) }) : t._e()], 2);
1179
+ }, de = [], pe = /* @__PURE__ */ f(
1180
+ me,
1181
+ he,
1182
+ de,
1183
+ !1,
1184
+ null,
1185
+ null,
1186
+ null,
1187
+ null
1188
+ );
1189
+ const _e = pe.exports, ge = {
1190
+ OnlyMatchingRoomCount: !1
1191
+ }, ye = {
1192
+ ...Y,
1193
+ features: {
1194
+ default: () => ge,
1195
+ type: [Object, String]
1196
+ },
1197
+ limit: {
1198
+ default: () => 0,
1199
+ type: Number
1200
+ }
1201
+ }, ke = J.extend({
1202
+ name: "HotelRoomOfferList",
1203
+ components: {
1204
+ BErrorOverlay: S,
1205
+ HotelRoomOfferItem: j,
1206
+ HotelRoomOfferListEmpty: _e,
1207
+ HotelRoomOfferItemLayout: b,
1208
+ HotelRoomOfferBasket: ue
1209
+ },
1210
+ mixins: [
1211
+ p("components/RevolugoElements/HotelRoomOfferList"),
1212
+ gt(
1213
+ ["bookingApiClient", "config.currency", "config.lang"],
1214
+ "retrieveHotelRoomOffers"
1215
+ ),
1216
+ pt({
1217
+ fallbackValue: {
1218
+ OnlyMatchingRoomCount: !1
1219
+ },
1220
+ propsName: "features"
1221
+ })
1222
+ ],
1223
+ props: ye,
1224
+ data() {
1225
+ return {
1226
+ tab: null,
1227
+ tabItems: ["packageHotelRoomOffers", "hotelRoomHotelRoomOffers"]
1228
+ };
1229
+ },
1230
+ computed: {
1231
+ hasError() {
1232
+ var o, t;
1233
+ return !!((o = this.hotelRoomOfferRequest) != null && o.hasError || (t = this.hotelRoomOffersLocal) != null && t.hasError);
1234
+ },
1235
+ hotelRoomOfferRequest() {
1236
+ return this.$store.get(
1237
+ "hotelRoomOfferRequest/hotelRoomOfferRequest",
1238
+ this.hotelId
1239
+ );
1240
+ },
1241
+ hotelRoomOffersLocal() {
1242
+ return this.$store.get("hotelRoomOffers/hotelRoomOffers", this.hotelId);
1243
+ },
1244
+ isLoading() {
1245
+ var o, t;
1246
+ return !!((o = this.hotelRoomOffersLocal) != null && o.isPolling) && !!((t = this.packageHotelRoomOffers) != null && t.length);
1247
+ },
1248
+ packageHotelRoomOffers() {
1249
+ var t, e;
1250
+ const o = (e = (t = this.hotelRoomOffersLocal) == null ? void 0 : t.offers) == null ? void 0 : e.filter((s) => s.type === C.Package).filter((s) => {
1251
+ var i, n;
1252
+ return (i = this.features) != null && i.OnlyMatchingRoomCount ? this.countRooms(s) === ((n = this.hotelRoomOfferRequest) == null ? void 0 : n.roomCount) : !0;
1253
+ });
1254
+ return (o == null ? void 0 : o.slice(0, this.limit || o.length)) || [];
1255
+ },
1256
+ hotelRoomHotelRoomOffers() {
1257
+ var o, t;
1258
+ return ((t = (o = this.hotelRoomOffersLocal) == null ? void 0 : o.offers) == null ? void 0 : t.filter(
1259
+ (e) => e.type === C.HotelRoom
1260
+ )) || [];
1261
+ },
1262
+ showSkeleton() {
1263
+ var o, t, e, s;
1264
+ 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);
1265
+ }
1266
+ },
1267
+ watch: {
1268
+ "hotelRoomOfferRequest.id": {
1269
+ immediate: !0,
1270
+ async handler() {
1271
+ await this.retrieveHotelRoomOffers();
1272
+ }
1273
+ }
1274
+ },
1275
+ methods: {
1276
+ countRooms(o) {
1277
+ return o.hotelRooms.reduce((t, e) => t + e.count, 0);
1278
+ },
1279
+ async retrieveHotelRoomOffers() {
1280
+ var o;
1281
+ if (!((o = this.hotelRoomOfferRequest) != null && o.id)) {
1282
+ await y("hotelRoomOffers/resetHotelRoomOffers", {
1283
+ hotelId: this.hotelId
1284
+ });
1285
+ return;
1286
+ }
1287
+ await y("hotelRoomOffers/retrieveHotelRoomOffers", {
1288
+ hotelId: this.hotelId,
1289
+ hotelRoomOfferRequestId: this.hotelRoomOfferRequest.id
1290
+ });
1291
+ },
1292
+ async onBreakfastChange({
1293
+ hotelId: o,
1294
+ id: t,
1295
+ addBreakfast: e
1296
+ }) {
1297
+ await y("hotelRoomOffers/reifyHotelRoomOffer", {
1298
+ hotelId: o,
1299
+ id: t,
1300
+ addBreakfast: e
1301
+ });
1302
+ }
1303
+ }
1304
+ });
1305
+ var be = function() {
1306
+ var t = this, e = t._self._c;
1307
+ 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) {
1308
+ t.tab = s;
1309
+ }, expression: "tab" } }, [t._l(t.tabItems, function(s) {
1310
+ return [e($t, { key: s }, [t._v(" " + t._s(t.$t(`HotelRoomOfferList.${s}.title`)) + " ")]), e(c, { key: `divider-${s}`, attrs: { vertical: "" } })];
1311
+ })], 2), e(q, { staticClass: "overflow-visible", model: { value: t.tab, callback: function(s) {
1312
+ t.tab = s;
1313
+ }, expression: "tab" } }, [e(T, { staticClass: "pt-3" }, [t._l(t.packageHotelRoomOffers, function(s, i) {
1314
+ 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))];
1315
+ })], 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) {
1316
+ 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))];
1317
+ })]] : !t.packageHotelRoomOffers || !t.packageHotelRoomOffers.length ? [e("hotel-room-offer-list-empty", { key: "skeleton", attrs: { "boilerplate-skeleton": "", type: "noResults" } })] : t._e()] : void 0], 2);
1318
+ }, ve = [], Re = /* @__PURE__ */ f(
1319
+ ke,
1320
+ be,
1321
+ ve,
1322
+ !1,
1323
+ null,
1324
+ "b5b94f3b",
1325
+ null,
1326
+ null
1327
+ );
1328
+ const to = Re.exports;
1329
+ W("css/revolugo.hotelroomofferlist.xJfKaofV.css");
1330
+ export {
1331
+ G as B,
1332
+ to as H,
1333
+ ge as a,
1334
+ ye as h
1335
+ };
1336
+ //# sourceMappingURL=revolugo.hotelroomofferlist.BltT6U-0.min.js.map