@revolugo/elements 5.5.3-beta.9 → 5.5.3-rc.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/revolugo.0.min.css +5 -0
  2. package/dist/css/revolugo.1.min.css +1 -0
  3. package/dist/css/revolugo.11.min.css +1 -0
  4. package/dist/css/revolugo.12.min.css +1 -0
  5. package/dist/css/revolugo.13.min.css +1 -0
  6. package/dist/css/revolugo.14.min.css +1 -0
  7. package/dist/css/revolugo.15.min.css +1 -0
  8. package/dist/css/revolugo.16.min.css +1 -0
  9. package/dist/css/revolugo.17.min.css +1 -0
  10. package/dist/css/revolugo.18.min.css +1 -0
  11. package/dist/css/revolugo.19.min.css +1 -0
  12. package/dist/css/revolugo.2.min.css +1 -0
  13. package/dist/css/revolugo.20.min.css +1 -0
  14. package/dist/css/revolugo.21.min.css +1 -0
  15. package/dist/css/revolugo.22.min.css +1 -0
  16. package/dist/css/revolugo.23.min.css +1 -0
  17. package/dist/css/revolugo.24.min.css +1 -0
  18. package/dist/css/revolugo.25.min.css +1 -0
  19. package/dist/css/revolugo.26.min.css +1 -0
  20. package/dist/css/revolugo.27.min.css +1 -0
  21. package/dist/css/revolugo.28.min.css +1 -0
  22. package/dist/css/revolugo.29.min.css +1 -0
  23. package/dist/css/revolugo.30.min.css +1 -0
  24. package/dist/css/revolugo.31.min.css +1 -0
  25. package/dist/css/revolugo.32.min.css +1 -0
  26. package/dist/css/revolugo.33.min.css +1 -0
  27. package/dist/css/revolugo.34.min.css +1 -0
  28. package/dist/css/revolugo.4.min.css +1 -0
  29. package/dist/css/revolugo.5.min.css +1 -0
  30. package/dist/css/revolugo.6.min.css +1 -0
  31. package/dist/css/revolugo.7.min.css +1 -0
  32. package/dist/css/revolugo.fonts.min.css +1 -0
  33. package/dist/fonts/amenities.2aad1d12.woff +0 -0
  34. package/dist/fonts/amenities.9adae269.ttf +0 -0
  35. package/dist/fonts/amenities.a9bf50f8.svg +42 -0
  36. package/dist/fonts/amenities.bd6b3a4a.eot +0 -0
  37. package/dist/fonts/beds.2b8e38c8.svg +12 -0
  38. package/dist/img/apst.c1092975.png +0 -0
  39. package/dist/img/apst.ec7669f2.png +0 -0
  40. package/dist/img/atout-france.72107e30.png +0 -0
  41. package/dist/img/atout-france.df038f22.png +0 -0
  42. package/dist/img/revolugo.179c459d.png +0 -0
  43. package/dist/img/revolugo.e0879dcc.png +0 -0
  44. package/dist/img/stripe.405543e2.png +0 -0
  45. package/dist/img/stripe.c3e16f9f.png +0 -0
  46. package/dist/index.min.js +1 -65
  47. package/dist/revolugo.0.min.js +18 -0
  48. package/dist/revolugo.1.min.js +1 -0
  49. package/dist/revolugo.11.min.js +134 -0
  50. package/dist/revolugo.12.min.js +19 -0
  51. package/dist/revolugo.13.min.js +14 -0
  52. package/dist/revolugo.14.min.js +19 -0
  53. package/dist/revolugo.15.min.js +139 -0
  54. package/dist/revolugo.16.min.js +14 -0
  55. package/dist/revolugo.17.min.js +14 -0
  56. package/dist/revolugo.18.min.js +1 -0
  57. package/dist/revolugo.19.min.js +1 -0
  58. package/dist/revolugo.2.min.js +1 -0
  59. package/dist/revolugo.20.min.js +1 -0
  60. package/dist/revolugo.21.min.js +116 -0
  61. package/dist/revolugo.22.min.js +1 -0
  62. package/dist/revolugo.23.min.js +1 -0
  63. package/dist/revolugo.24.min.js +1 -0
  64. package/dist/revolugo.25.min.js +1 -0
  65. package/dist/revolugo.26.min.js +1 -0
  66. package/dist/revolugo.27.min.js +1 -0
  67. package/dist/revolugo.28.min.js +116 -0
  68. package/dist/revolugo.29.min.js +1 -0
  69. package/dist/revolugo.30.min.js +1 -0
  70. package/dist/revolugo.31.min.js +1 -0
  71. package/dist/revolugo.32.min.js +1 -0
  72. package/dist/revolugo.33.min.js +1 -0
  73. package/dist/revolugo.34.min.js +1 -0
  74. package/dist/revolugo.35.min.js +1 -0
  75. package/dist/revolugo.36.min.js +1 -0
  76. package/dist/revolugo.4.min.js +1 -0
  77. package/dist/revolugo.5.min.js +1 -0
  78. package/dist/revolugo.6.min.js +1 -0
  79. package/dist/revolugo.7.min.js +1 -0
  80. package/dist/revolugo.en-US.min.js +1 -0
  81. package/dist/revolugo.fonts.min.js +1 -0
  82. package/dist/revolugo.fr-FR.min.js +1 -0
  83. package/dist/revolugo.min.js +7 -257
  84. package/package.json +32 -25
  85. package/dist/css/fonts.css +0 -1
  86. package/dist/css/revolugo.bdaterangepicker.DEh20utH.css +0 -1
  87. package/dist/css/revolugo.bhotelroomsdetails.4XsxkvH7.css +0 -1
  88. package/dist/css/revolugo.bhotelsearchbar.dwYB1gUC.css +0 -1
  89. package/dist/css/revolugo.bookingdetailssidebar.tDtXpaIj.css +0 -1
  90. package/dist/css/revolugo.bphoneinput.Kq_-XiGI.css +0 -1
  91. package/dist/css/revolugo.bstarrating.nzH7iii4.css +0 -1
  92. package/dist/css/revolugo.btag.Bdbqb_8a.css +0 -1
  93. package/dist/css/revolugo.common.BSIsYREh.css +0 -1
  94. package/dist/css/revolugo.creditcardform.BGPUxkRC.css +0 -1
  95. package/dist/css/revolugo.creditcardpayment.0MNnDloZ.css +0 -1
  96. package/dist/css/revolugo.currencypicker.BRYsKdMu.css +0 -1
  97. package/dist/css/revolugo.fullbookingflow.BHV7_MhK.css +0 -1
  98. package/dist/css/revolugo.hotel-offer.CEd50mBT.css +0 -1
  99. package/dist/css/revolugo.hoteldescriptionview.9ofE1uWG.css +0 -1
  100. package/dist/css/revolugo.hoteloffersmap.0LnWfOu_.css +0 -1
  101. package/dist/css/revolugo.hoteloffersview.MWOmwEwv.css +0 -1
  102. package/dist/css/revolugo.hotelroomofferlist.xJfKaofV.css +0 -1
  103. package/dist/css/revolugo.hotelroomoffersbookingflow.PPEIqHuM.css +0 -1
  104. package/dist/css/revolugo.hotelroomoffersview.B8Y-2QYc.css +0 -1
  105. package/dist/css/revolugo.index.BMkl7a3p.css +0 -1
  106. package/dist/css/revolugo.index.CFW4Oklv.css +0 -1
  107. package/dist/css/revolugo.index.vq4xksqn.css +0 -1
  108. package/dist/css/revolugo.langpicker.B3TsOwUq.css +0 -1
  109. package/dist/css/revolugo.parsed-height.Xzhpy3D3.css +0 -1
  110. package/dist/css/revolugo.parsed-props.C3kOvm7T.css +0 -1
  111. package/dist/css/revolugo.prebookform.DBm2B4rS.css +0 -1
  112. package/dist/css/revolugo.revolugo-config.Dg8v1l3c.css +0 -5
  113. package/dist/css/revolugo.storybooktoolbar.CVnww0dZ.css +0 -1
  114. package/dist/css/revolugo.termsandconditions.DV2YnGzG.css +0 -1
  115. package/dist/css/revolugo.valert.BzcMswjJ.css +0 -1
  116. package/dist/css/revolugo.vautocomplete.OMX_yAge.css +0 -1
  117. package/dist/css/revolugo.vbadge.CiK_DSkI.css +0 -1
  118. package/dist/css/revolugo.vbtn.By46MJOU.css +0 -1
  119. package/dist/css/revolugo.vcard.DmB53ZNL.css +0 -1
  120. package/dist/css/revolugo.vchip.BdAdP6lC.css +0 -1
  121. package/dist/css/revolugo.vdialog.C02Cvwul.css +0 -1
  122. package/dist/css/revolugo.vexpansionpanelheader.B2eKo8Lo.css +0 -1
  123. package/dist/css/revolugo.vinput.SfhpXNi0.css +0 -1
  124. package/dist/css/revolugo.vitemgroup.EbHsz8Rr.css +0 -1
  125. package/dist/css/revolugo.vlistitem.BzwNE1YK.css +0 -1
  126. package/dist/css/revolugo.vmenu.BKE0IO4q.css +0 -1
  127. package/dist/css/revolugo.vselect.DljSkk6y.css +0 -1
  128. package/dist/css/revolugo.vsheet.Dtdo2Rps.css +0 -1
  129. package/dist/css/revolugo.vskeletonloader.BpGoaAbZ.css +0 -1
  130. package/dist/css/revolugo.vslidegroup.D5TIbmaw.css +0 -1
  131. package/dist/css/revolugo.vsnackbar.DTAXPYkr.css +0 -1
  132. package/dist/css/revolugo.vtextfield.BliJY6uv.css +0 -1
  133. package/dist/css/revolugo.vtoolbar.DQsezjcM.css +0 -1
  134. package/dist/css/revolugo.vtooltip.B_oOB9pj.css +0 -1
  135. package/dist/css/revolugo.vuetify.BpIoHlAi.css +0 -1
  136. package/dist/css/revolugo.webcomponentwrapper.BRZRuwZ0.css +0 -1
  137. package/dist/index.es.min.js +0 -14187
  138. package/dist/index.es.min.js.map +0 -1
  139. package/dist/index.min.js.map +0 -1
  140. package/dist/revolugo.banktransferdetails.CbUr_kHV.min.js +0 -105
  141. package/dist/revolugo.bbreakfastoptionbadge.DND6bz7J.min.js +0 -62
  142. package/dist/revolugo.bdaterangepicker.DwXWu7y_.min.js +0 -1351
  143. package/dist/revolugo.bformattedamount.D4xCyTcv.min.js +0 -82
  144. package/dist/revolugo.bhotelroomsdetails.8yoNt-KM.min.js +0 -213
  145. package/dist/revolugo.bhotelsearchbar.Dm84Zzn5.min.js +0 -446
  146. package/dist/revolugo.booking-api-client.Du5goV4n.min.js +0 -7672
  147. package/dist/revolugo.bookingdetailssidebar.AR2t6BHt.min.js +0 -28
  148. package/dist/revolugo.bookingdetailssidebar.DY-YF6-6.min.js +0 -242
  149. package/dist/revolugo.bookingmanager.KlY3kOLa.min.js +0 -404
  150. package/dist/revolugo.bphoneinput.Qc_UlGIL.min.js +0 -1935
  151. package/dist/revolugo.bpricesummaryskeleton.BAzD7raP.min.js +0 -47
  152. package/dist/revolugo.breakpoint-service.CwWRBzMQ.min.js +0 -65
  153. package/dist/revolugo.bstarrating.B-PUaeDZ.min.js +0 -173
  154. package/dist/revolugo.btag.DD6eI8G4.min.js +0 -68
  155. package/dist/revolugo.cancellationpoliciesbadge.BTwUNf7h.min.js +0 -76
  156. package/dist/revolugo.cancellationpoliciesbadge.DA_X-aEr.min.js +0 -28
  157. package/dist/revolugo.cancellationpolicieslist.BweNL3Zh.min.js +0 -316
  158. package/dist/revolugo.cancellationpolicieslist.XF-OE6mm.min.js +0 -28
  159. package/dist/revolugo.common.D4pnatuu.min.js +0 -34
  160. package/dist/revolugo.creditcardform.B0ZACL31.min.js +0 -28
  161. package/dist/revolugo.creditcardform.Bmpk72uW.min.js +0 -2047
  162. package/dist/revolugo.creditcardpayment.DDAlWRp0.min.js +0 -28
  163. package/dist/revolugo.creditcardpayment.Dnr2WHEp.min.js +0 -288
  164. package/dist/revolugo.currencypicker.BxCxn4FE.min.js +0 -122
  165. package/dist/revolugo.currencypickerbtn.D8fIyw_x.min.js +0 -121
  166. package/dist/revolugo.currencypickerbtn.DoEdhphF.min.js +0 -28
  167. package/dist/revolugo.dialog-attach.05NirMLv.min.js +0 -27
  168. package/dist/revolugo.en-us.BP-UxrRq.min.js +0 -1171
  169. package/dist/revolugo.event-bus.CYLYgD3Y.min.js +0 -37
  170. package/dist/revolugo.fr-fr.CF_knN5b.min.js +0 -1177
  171. package/dist/revolugo.fullbookingflow.BROGdW-q.min.js +0 -239
  172. package/dist/revolugo.hotel-offer.JfkzuZyf.min.js +0 -608
  173. package/dist/revolugo.hoteldescriptionview.C9XjZcdv.min.js +0 -2174
  174. package/dist/revolugo.hoteldescriptionview.wVex0D_a.min.js +0 -28
  175. package/dist/revolugo.hotelofferitemlayout.BrulX_X4.min.js +0 -64
  176. package/dist/revolugo.hotelofferlist.CcITpxz4.min.js +0 -28
  177. package/dist/revolugo.hotelofferlist.DJ8B6BpP.min.js +0 -3450
  178. package/dist/revolugo.hotelofferrequestcreator.CiNpCqiH.min.js +0 -225
  179. package/dist/revolugo.hoteloffersearchmenu.CnVV4htq.min.js +0 -54
  180. package/dist/revolugo.hoteloffersmap.C1N5EZ0d.min.js +0 -28
  181. package/dist/revolugo.hoteloffersmap.gHrmWy8H.min.js +0 -8737
  182. package/dist/revolugo.hoteloffersview.BCvASsRk.min.js +0 -157
  183. package/dist/revolugo.hoteloffersview.DfbOUEie.min.js +0 -28
  184. package/dist/revolugo.hotelroomofferlist.BS32D6Sj.min.js +0 -28
  185. package/dist/revolugo.hotelroomofferlist.BltT6U-0.min.js +0 -1336
  186. package/dist/revolugo.hotelroomofferrequestcreator.CbISsNdn.min.js +0 -225
  187. package/dist/revolugo.hotelroomoffersbookingflow.D5iNQyH9.min.js +0 -679
  188. package/dist/revolugo.hotelroomoffersearchmenu.Bsg_FnJp.min.js +0 -29
  189. package/dist/revolugo.hotelroomoffersearchmenu.DqVQ1oKf.min.js +0 -38
  190. package/dist/revolugo.hotelroomoffersview.4NC1efEJ.min.js +0 -124
  191. package/dist/revolugo.hotelroomoffersview.DfmNWUJQ.min.js +0 -28
  192. package/dist/revolugo.i18n.DF3U6VhD.min.js +0 -11263
  193. package/dist/revolugo.index.A8BtC3Nq.min.js +0 -322
  194. package/dist/revolugo.index.BEcLuOn-.min.js +0 -281
  195. package/dist/revolugo.index.BUUmIL9V.min.js +0 -68
  196. package/dist/revolugo.index.BwvidmNu.min.js +0 -128
  197. package/dist/revolugo.index.CQC_pZJn.min.js +0 -15
  198. package/dist/revolugo.index.CcRooNT6.min.js +0 -270
  199. package/dist/revolugo.index.Cn5YTzy6.min.js +0 -43
  200. package/dist/revolugo.index.Cn8GgIte.min.js +0 -142
  201. package/dist/revolugo.index.DTZNxZHf.min.js +0 -9
  202. package/dist/revolugo.index.DfBSjbYu.min.js +0 -42
  203. package/dist/revolugo.index.GdvjICDR.min.js +0 -13
  204. package/dist/revolugo.index.owaXEEBO.min.js +0 -9
  205. package/dist/revolugo.index.sTY3URQu.min.js +0 -390
  206. package/dist/revolugo.index.tY8MFB9m.min.js +0 -161
  207. package/dist/revolugo.langpicker.yr7wtnZM.min.js +0 -103
  208. package/dist/revolugo.langpickerbtn.4XN3tTRs.min.js +0 -28
  209. package/dist/revolugo.langpickerbtn.BHhYWwCD.min.js +0 -111
  210. package/dist/revolugo.localizedformat.Wox_NThB.min.js +0 -47
  211. package/dist/revolugo.parsed-height.DRzHRmIo.min.js +0 -2492
  212. package/dist/revolugo.parsed-props.B_x1Ob04.min.js +0 -95
  213. package/dist/revolugo.prebookform.BeSJk0ad.min.js +0 -28
  214. package/dist/revolugo.prebookform.DZMMJst9.min.js +0 -484
  215. package/dist/revolugo.revolugo-config.Bs_HF2Eu.min.js +0 -1707
  216. package/dist/revolugo.roominglisteditor.BpdFoplV.min.js +0 -201
  217. package/dist/revolugo.roominglisteditor.DxmH3gRW.min.js +0 -28
  218. package/dist/revolugo.sentry.Bc7mnscp.min.js +0 -12146
  219. package/dist/revolugo.store.DPvvq0Rz.min.js +0 -1718
  220. package/dist/revolugo.storybooktoolbar.C_y4Nf-_.min.js +0 -300
  221. package/dist/revolugo.termsandconditions.BIHsJaCg.min.js +0 -27
  222. package/dist/revolugo.termsandconditions.D2C1eZuC.min.js +0 -162
  223. package/dist/revolugo.typed-mixins.B_7wrdes.min.js +0 -8
  224. package/dist/revolugo.valert.CMzvSBzo.min.js +0 -194
  225. package/dist/revolugo.vautocomplete.C-5OLCEj.min.js +0 -255
  226. package/dist/revolugo.vbadge.xQq9jf9W.min.js +0 -172
  227. package/dist/revolugo.vbtn.CP4AezmI.min.js +0 -286
  228. package/dist/revolugo.vcard.Cy5A2_pV.min.js +0 -80
  229. package/dist/revolugo.vchip.BcIMSmkF.min.js +0 -157
  230. package/dist/revolugo.vdialog.BAexO59W.min.js +0 -341
  231. package/dist/revolugo.vexpansionpanelheader.D9ENep1_.min.js +0 -263
  232. package/dist/revolugo.vform.oeljK9Tu.min.js +0 -98
  233. package/dist/revolugo.vinput.CDpcVlCU.min.js +0 -509
  234. package/dist/revolugo.vitemgroup.DyY_3pfW.min.js +0 -168
  235. package/dist/revolugo.vlistitem.CrJxrMpP.min.js +0 -204
  236. package/dist/revolugo.vmenu.CtMz9t6s.min.js +0 -349
  237. package/dist/revolugo.vselect.UcLk_jBF.min.js +0 -859
  238. package/dist/revolugo.vsheet.C1tyLBBd.min.js +0 -120
  239. package/dist/revolugo.vskeletonloader.CMMMMGzf.min.js +0 -172
  240. package/dist/revolugo.vslidegroup.BXF0FLd1.min.js +0 -650
  241. package/dist/revolugo.vsnackbar.xIK_rBpB.min.js +0 -178
  242. package/dist/revolugo.vtextfield.D2qOTbGQ.min.js +0 -438
  243. package/dist/revolugo.vtoolbar.D3HhuFrj.min.js +0 -364
  244. package/dist/revolugo.vtooltip.B7xN8tzo.min.js +0 -168
  245. package/dist/revolugo.vuetify.yojzDMFk.min.js +0 -865
  246. package/dist/revolugo.watch-list.cR2ZEwBA.min.js +0 -44
  247. package/dist/revolugo.webcomponentwrapper.-wnE6sKX.min.js +0 -777
@@ -1,1336 +0,0 @@
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