@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,2492 @@
1
+ import { q as Bt, J as T, h as x, y as nt, d as rt, K as C, k as kt, j as G, E as D } from "./revolugo.revolugo-config.Bs_HF2Eu.min.js";
2
+ import { V as h, o as Rt, I as wt, d as St, e as Ot, P as Y, Q as Tt, R as It, A as j, S as q, N as at } from "./revolugo.i18n.DF3U6VhD.min.js";
3
+ import { C as Ft } from "./revolugo.cancellationpoliciesbadge.BTwUNf7h.min.js";
4
+ import { H as Vt } from "./revolugo.hotelofferitemlayout.BrulX_X4.min.js";
5
+ import { B as At } from "./revolugo.bbreakfastoptionbadge.DND6bz7J.min.js";
6
+ import { m as B, C as I, T as ot, n as m, h as Dt, B as Et, l as b, _ as v, a as u } from "./revolugo.webcomponentwrapper.-wnE6sKX.min.js";
7
+ import { _ as l } from "./revolugo.vbtn.CP4AezmI.min.js";
8
+ import { S as Lt, _ as g } from "./revolugo.index.sTY3URQu.min.js";
9
+ import { B as Nt } from "./revolugo.bhotelroomsdetails.8yoNt-KM.min.js";
10
+ import { B as Ht } from "./revolugo.hotelroomofferlist.BltT6U-0.min.js";
11
+ import { a as Pt, b as zt, B as Wt } from "./revolugo.bstarrating.B-PUaeDZ.min.js";
12
+ import { B as Ut } from "./revolugo.btag.DD6eI8G4.min.js";
13
+ import { H as Gt, B as Yt, b as jt, c as qt } from "./revolugo.hoteldescriptionview.CgZ1B-Xq.min.js";
14
+ import { b as M } from "./revolugo.breakpoint-service.CwWRBzMQ.min.js";
15
+ import { d as lt } from "./revolugo.dialog-attach.05NirMLv.min.js";
16
+ import { a as ct, d as $, g as d, F as c, P as K, R as X, b as Z, D as w } from "./revolugo.store.DPvvq0Rz.min.js";
17
+ import { H as Kt } from "./revolugo.hotelroomoffersview.DPbW5Ndi.min.js";
18
+ import { b as E, c as Xt, a as Zt, m as Jt, _ as Qt } from "./revolugo.hotel-offer.JfkzuZyf.min.js";
19
+ import { e as te, a as ee } from "./revolugo.index.Cn8GgIte.min.js";
20
+ import { O as ie, _ as se } from "./revolugo.vdialog.BAexO59W.min.js";
21
+ import { _ as k } from "./revolugo.vcard.Cy5A2_pV.min.js";
22
+ import { V as P, a as z, b as ne } from "./revolugo.index.owaXEEBO.min.js";
23
+ import { _ as ut } from "./revolugo.vtooltip.B7xN8tzo.min.js";
24
+ import { a as re, V as H, b as ae } from "./revolugo.index.DTZNxZHf.min.js";
25
+ import { _ as oe } from "./revolugo.vautocomplete.C-5OLCEj.min.js";
26
+ import { B as ht } from "./revolugo.bformattedamount.D4xCyTcv.min.js";
27
+ import { V as J } from "./revolugo.vinput.CDpcVlCU.min.js";
28
+ import { L as Q } from "./revolugo.index.BEcLuOn-.min.js";
29
+ import { C as dt, R as le, T as ce } from "./revolugo.vuetify.yojzDMFk.min.js";
30
+ import { _ as tt } from "./revolugo.vtextfield.D2qOTbGQ.min.js";
31
+ import { _ as O } from "./revolugo.parsed-props.B_x1Ob04.min.js";
32
+ import { _ as F } from "./revolugo.vmenu.CtMz9t6s.min.js";
33
+ import { _ as V } from "./revolugo.vbadge.xQq9jf9W.min.js";
34
+ import { D as ue, a as he } from "./revolugo.index.A8BtC3Nq.min.js";
35
+ import { R as de } from "./revolugo.index.tY8MFB9m.min.js";
36
+ import { Y as _, U as y } from "./revolugo.booking-api-client.Du5goV4n.min.js";
37
+ import { B as L } from "./revolugo.vitemgroup.DyY_3pfW.min.js";
38
+ import { a as me } from "./revolugo.vlistitem.CrJxrMpP.min.js";
39
+ import { a as pe } from "./revolugo.vtoolbar.D3HhuFrj.min.js";
40
+ import { S as fe, a as ve } from "./revolugo.index.BUUmIL9V.min.js";
41
+ import { M as mt } from "./revolugo.vslidegroup.BXF0FLd1.min.js";
42
+ function Ct(e) {
43
+ try {
44
+ if (typeof document < "u") {
45
+ window.REVOLUGO_ELEMENTS_STYLES = window.REVOLUGO_ELEMENTS_STYLES || {
46
+ sheets: [],
47
+ components: []
48
+ };
49
+ const t = import.meta.url, i = t.slice(0, t.lastIndexOf("/") + 1) + e;
50
+ window.REVOLUGO_ELEMENTS_STYLES.sheets.push(i);
51
+ for (const s of REVOLUGO_ELEMENTS_STYLES.components)
52
+ s(i);
53
+ if (e.indexOf("fonts") >= 0) {
54
+ const s = document.createElement("link");
55
+ s.rel = "stylesheet", linK.href = i, document.head.appendChild(s);
56
+ }
57
+ }
58
+ } catch (t) {
59
+ console.error("[revolugo-elements] ", t);
60
+ }
61
+ }
62
+ const ge = B(L, I).extend({
63
+ name: "v-list-item-group",
64
+ provide() {
65
+ return {
66
+ isInGroup: !0,
67
+ listItemGroup: this
68
+ };
69
+ },
70
+ computed: {
71
+ classes() {
72
+ return {
73
+ ...L.options.computed.classes.call(this),
74
+ "v-list-item-group": !0
75
+ };
76
+ }
77
+ },
78
+ methods: {
79
+ genData() {
80
+ return this.setTextColor(this.color, {
81
+ ...L.options.methods.genData.call(this),
82
+ attrs: {
83
+ role: "listbox"
84
+ }
85
+ });
86
+ }
87
+ }
88
+ }), _e = B(E, I).extend({
89
+ name: "v-btn-toggle",
90
+ props: {
91
+ backgroundColor: String,
92
+ borderless: Boolean,
93
+ dense: Boolean,
94
+ group: Boolean,
95
+ rounded: Boolean,
96
+ shaped: Boolean,
97
+ tile: Boolean
98
+ },
99
+ computed: {
100
+ classes() {
101
+ return {
102
+ ...E.options.computed.classes.call(this),
103
+ "v-btn-toggle": !0,
104
+ "v-btn-toggle--borderless": this.borderless,
105
+ "v-btn-toggle--dense": this.dense,
106
+ "v-btn-toggle--group": this.group,
107
+ "v-btn-toggle--rounded": this.rounded,
108
+ "v-btn-toggle--shaped": this.shaped,
109
+ "v-btn-toggle--tile": this.tile,
110
+ ...this.themeClasses
111
+ };
112
+ }
113
+ },
114
+ methods: {
115
+ genData() {
116
+ const e = this.setTextColor(this.color, {
117
+ ...E.options.methods.genData.call(this)
118
+ });
119
+ return this.group ? e : this.setBackgroundColor(this.backgroundColor, e);
120
+ }
121
+ }
122
+ }), N = B(
123
+ J,
124
+ Q
125
+ /* @vue/component */
126
+ ).extend({
127
+ name: "v-slider",
128
+ directives: {
129
+ ClickOutside: dt
130
+ },
131
+ mixins: [Q],
132
+ props: {
133
+ disabled: Boolean,
134
+ inverseLabel: Boolean,
135
+ max: {
136
+ type: [Number, String],
137
+ default: 100
138
+ },
139
+ min: {
140
+ type: [Number, String],
141
+ default: 0
142
+ },
143
+ step: {
144
+ type: [Number, String],
145
+ default: 1
146
+ },
147
+ thumbColor: String,
148
+ thumbLabel: {
149
+ type: [Boolean, String],
150
+ default: void 0,
151
+ validator: (e) => typeof e == "boolean" || e === "always"
152
+ },
153
+ thumbSize: {
154
+ type: [Number, String],
155
+ default: 32
156
+ },
157
+ tickLabels: {
158
+ type: Array,
159
+ default: () => []
160
+ },
161
+ ticks: {
162
+ type: [Boolean, String],
163
+ default: !1,
164
+ validator: (e) => typeof e == "boolean" || e === "always"
165
+ },
166
+ tickSize: {
167
+ type: [Number, String],
168
+ default: 2
169
+ },
170
+ trackColor: String,
171
+ trackFillColor: String,
172
+ value: [Number, String],
173
+ vertical: Boolean
174
+ },
175
+ data: () => ({
176
+ app: null,
177
+ oldValue: null,
178
+ thumbPressed: !1,
179
+ mouseTimeout: -1,
180
+ isFocused: !1,
181
+ isActive: !1,
182
+ noClick: !1,
183
+ startOffset: 0
184
+ }),
185
+ computed: {
186
+ classes() {
187
+ return {
188
+ ...J.options.computed.classes.call(this),
189
+ "v-input__slider": !0,
190
+ "v-input__slider--vertical": this.vertical,
191
+ "v-input__slider--inverse-label": this.inverseLabel
192
+ };
193
+ },
194
+ internalValue: {
195
+ get() {
196
+ return this.lazyValue;
197
+ },
198
+ set(e) {
199
+ e = isNaN(e) ? this.minValue : e;
200
+ const t = this.roundValue(Math.min(Math.max(e, this.minValue), this.maxValue));
201
+ t !== this.lazyValue && (this.lazyValue = t, this.$emit("input", t));
202
+ }
203
+ },
204
+ trackTransition() {
205
+ return this.thumbPressed ? this.showTicks || this.stepNumeric ? "0.1s cubic-bezier(0.25, 0.8, 0.5, 1)" : "none" : "";
206
+ },
207
+ minValue() {
208
+ return parseFloat(this.min);
209
+ },
210
+ maxValue() {
211
+ return parseFloat(this.max);
212
+ },
213
+ stepNumeric() {
214
+ return this.step > 0 ? parseFloat(this.step) : 0;
215
+ },
216
+ inputWidth() {
217
+ const e = (this.roundValue(this.internalValue) - this.minValue) / (this.maxValue - this.minValue) * 100;
218
+ return isNaN(e) ? 0 : e;
219
+ },
220
+ trackFillStyles() {
221
+ const e = this.vertical ? "bottom" : "left", t = this.vertical ? "top" : "right", i = this.vertical ? "height" : "width", s = this.$vuetify.rtl ? "auto" : "0", n = this.$vuetify.rtl ? "0" : "auto", a = this.isDisabled ? `calc(${this.inputWidth}% - 10px)` : `${this.inputWidth}%`;
222
+ return {
223
+ transition: this.trackTransition,
224
+ [e]: s,
225
+ [t]: n,
226
+ [i]: a
227
+ };
228
+ },
229
+ trackStyles() {
230
+ const e = this.vertical ? this.$vuetify.rtl ? "bottom" : "top" : this.$vuetify.rtl ? "left" : "right", t = this.vertical ? "height" : "width", i = "0px", s = this.isDisabled ? `calc(${100 - this.inputWidth}% - 10px)` : `calc(${100 - this.inputWidth}%)`;
231
+ return {
232
+ transition: this.trackTransition,
233
+ [e]: i,
234
+ [t]: s
235
+ };
236
+ },
237
+ showTicks() {
238
+ return this.tickLabels.length > 0 || !!(!this.isDisabled && this.stepNumeric && this.ticks);
239
+ },
240
+ numTicks() {
241
+ return Math.ceil((this.maxValue - this.minValue) / this.stepNumeric);
242
+ },
243
+ showThumbLabel() {
244
+ return !this.isDisabled && !!(this.thumbLabel || this.$scopedSlots["thumb-label"]);
245
+ },
246
+ computedTrackColor() {
247
+ if (!this.isDisabled)
248
+ return this.trackColor ? this.trackColor : this.isDark ? this.validationState : this.validationState || "primary lighten-3";
249
+ },
250
+ computedTrackFillColor() {
251
+ if (!this.isDisabled)
252
+ return this.trackFillColor ? this.trackFillColor : this.validationState || this.computedColor;
253
+ },
254
+ computedThumbColor() {
255
+ return this.thumbColor ? this.thumbColor : this.validationState || this.computedColor;
256
+ }
257
+ },
258
+ watch: {
259
+ min(e) {
260
+ const t = parseFloat(e);
261
+ t > this.internalValue && this.$emit("input", t);
262
+ },
263
+ max(e) {
264
+ const t = parseFloat(e);
265
+ t < this.internalValue && this.$emit("input", t);
266
+ },
267
+ value: {
268
+ handler(e) {
269
+ this.internalValue = e;
270
+ },
271
+ immediate: !0
272
+ }
273
+ },
274
+ mounted() {
275
+ this.app = this.$el.closest("[data-app]") || Bt("Missing v-app or a non-body wrapping element with the [data-app] attribute", this);
276
+ },
277
+ methods: {
278
+ genDefaultSlot() {
279
+ const e = [this.genLabel()], t = this.genSlider();
280
+ return this.inverseLabel ? e.unshift(t) : e.push(t), e.push(this.genProgress()), e;
281
+ },
282
+ genSlider() {
283
+ return this.$createElement("div", {
284
+ class: {
285
+ "v-slider": !0,
286
+ "v-slider--horizontal": !this.vertical,
287
+ "v-slider--vertical": this.vertical,
288
+ "v-slider--focused": this.isFocused,
289
+ "v-slider--active": this.isActive,
290
+ "v-slider--disabled": this.isDisabled,
291
+ "v-slider--readonly": this.isReadonly,
292
+ ...this.themeClasses
293
+ },
294
+ directives: [{
295
+ name: "click-outside",
296
+ value: this.onBlur
297
+ }],
298
+ on: {
299
+ click: this.onSliderClick,
300
+ mousedown: this.onSliderMouseDown,
301
+ touchstart: this.onSliderMouseDown
302
+ }
303
+ }, this.genChildren());
304
+ },
305
+ genChildren() {
306
+ return [this.genInput(), this.genTrackContainer(), this.genSteps(), this.genThumbContainer(this.internalValue, this.inputWidth, this.isActive, this.isFocused, this.onFocus, this.onBlur)];
307
+ },
308
+ genInput() {
309
+ return this.$createElement("input", {
310
+ attrs: {
311
+ value: this.internalValue,
312
+ id: this.computedId,
313
+ disabled: !0,
314
+ readonly: !0,
315
+ tabindex: -1,
316
+ ...this.$attrs
317
+ }
318
+ // on: this.genListeners(), // TODO: do we need to attach the listeners to input?
319
+ });
320
+ },
321
+ genTrackContainer() {
322
+ const e = [this.$createElement("div", this.setBackgroundColor(this.computedTrackColor, {
323
+ staticClass: "v-slider__track-background",
324
+ style: this.trackStyles
325
+ })), this.$createElement("div", this.setBackgroundColor(this.computedTrackFillColor, {
326
+ staticClass: "v-slider__track-fill",
327
+ style: this.trackFillStyles
328
+ }))];
329
+ return this.$createElement("div", {
330
+ staticClass: "v-slider__track-container",
331
+ ref: "track"
332
+ }, e);
333
+ },
334
+ genSteps() {
335
+ if (!this.step || !this.showTicks)
336
+ return null;
337
+ const e = parseFloat(this.tickSize), t = T(this.numTicks + 1), i = this.vertical ? "bottom" : this.$vuetify.rtl ? "right" : "left", s = this.vertical ? this.$vuetify.rtl ? "left" : "right" : "top";
338
+ this.vertical && t.reverse();
339
+ const n = t.map((a) => {
340
+ const r = [];
341
+ this.tickLabels[a] && r.push(this.$createElement("div", {
342
+ staticClass: "v-slider__tick-label"
343
+ }, this.tickLabels[a]));
344
+ const o = a * (100 / this.numTicks), p = this.$vuetify.rtl ? 100 - this.inputWidth < o : o < this.inputWidth;
345
+ return this.$createElement("span", {
346
+ key: a,
347
+ staticClass: "v-slider__tick",
348
+ class: {
349
+ "v-slider__tick--filled": p
350
+ },
351
+ style: {
352
+ width: `${e}px`,
353
+ height: `${e}px`,
354
+ [i]: `calc(${o}% - ${e / 2}px)`,
355
+ [s]: `calc(50% - ${e / 2}px)`
356
+ }
357
+ }, r);
358
+ });
359
+ return this.$createElement("div", {
360
+ staticClass: "v-slider__ticks-container",
361
+ class: {
362
+ "v-slider__ticks-container--always-show": this.ticks === "always" || this.tickLabels.length > 0
363
+ }
364
+ }, n);
365
+ },
366
+ genThumbContainer(e, t, i, s, n, a, r = "thumb") {
367
+ const o = [this.genThumb()], p = this.genThumbLabelContent(e);
368
+ return this.showThumbLabel && o.push(this.genThumbLabel(p)), this.$createElement("div", this.setTextColor(this.computedThumbColor, {
369
+ ref: r,
370
+ key: r,
371
+ staticClass: "v-slider__thumb-container",
372
+ class: {
373
+ "v-slider__thumb-container--active": i,
374
+ "v-slider__thumb-container--focused": s,
375
+ "v-slider__thumb-container--show-label": this.showThumbLabel
376
+ },
377
+ style: this.getThumbContainerStyles(t),
378
+ attrs: {
379
+ role: "slider",
380
+ tabindex: this.isDisabled ? -1 : this.$attrs.tabindex ? this.$attrs.tabindex : 0,
381
+ "aria-label": this.$attrs["aria-label"] || this.label,
382
+ "aria-valuemin": this.min,
383
+ "aria-valuemax": this.max,
384
+ "aria-valuenow": this.internalValue,
385
+ "aria-readonly": String(this.isReadonly),
386
+ "aria-orientation": this.vertical ? "vertical" : "horizontal"
387
+ },
388
+ on: {
389
+ focus: n,
390
+ blur: a,
391
+ keydown: this.onKeyDown
392
+ }
393
+ }), o);
394
+ },
395
+ genThumbLabelContent(e) {
396
+ return this.$scopedSlots["thumb-label"] ? this.$scopedSlots["thumb-label"]({
397
+ value: e
398
+ }) : [this.$createElement("span", [String(e)])];
399
+ },
400
+ genThumbLabel(e) {
401
+ const t = x(this.thumbSize), i = this.vertical ? `translateY(20%) translateY(${Number(this.thumbSize) / 3 - 1}px) translateX(55%) rotate(135deg)` : "translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)";
402
+ return this.$createElement(te, {
403
+ props: {
404
+ origin: "bottom center"
405
+ }
406
+ }, [this.$createElement("div", {
407
+ staticClass: "v-slider__thumb-label-container",
408
+ directives: [{
409
+ name: "show",
410
+ value: this.isFocused || this.isActive || this.thumbLabel === "always"
411
+ }]
412
+ }, [this.$createElement("div", this.setBackgroundColor(this.computedThumbColor, {
413
+ staticClass: "v-slider__thumb-label",
414
+ style: {
415
+ height: t,
416
+ width: t,
417
+ transform: i
418
+ }
419
+ }), [this.$createElement("div", e)])])]);
420
+ },
421
+ genThumb() {
422
+ return this.$createElement("div", this.setBackgroundColor(this.computedThumbColor, {
423
+ staticClass: "v-slider__thumb"
424
+ }));
425
+ },
426
+ getThumbContainerStyles(e) {
427
+ const t = this.vertical ? "top" : "left";
428
+ let i = this.$vuetify.rtl ? 100 - e : e;
429
+ return i = this.vertical ? 100 - i : i, {
430
+ transition: this.trackTransition,
431
+ [t]: `${i}%`
432
+ };
433
+ },
434
+ onSliderMouseDown(e) {
435
+ var t;
436
+ if (e.preventDefault(), this.oldValue = this.internalValue, this.isActive = !0, !((t = e.target) === null || t === void 0) && t.matches(".v-slider__thumb-container, .v-slider__thumb-container *")) {
437
+ this.thumbPressed = !0;
438
+ const a = e.target.getBoundingClientRect(), r = "touches" in e ? e.touches[0] : e;
439
+ this.startOffset = this.vertical ? r.clientY - (a.top + a.height / 2) : r.clientX - (a.left + a.width / 2);
440
+ } else
441
+ this.startOffset = 0, window.clearTimeout(this.mouseTimeout), this.mouseTimeout = window.setTimeout(() => {
442
+ this.thumbPressed = !0;
443
+ }, 300);
444
+ const i = C ? {
445
+ passive: !0,
446
+ capture: !0
447
+ } : !0, s = C ? {
448
+ passive: !0
449
+ } : !1, n = "touches" in e;
450
+ this.onMouseMove(e), this.app.addEventListener(n ? "touchmove" : "mousemove", this.onMouseMove, s), nt(this.app, n ? "touchend" : "mouseup", this.onSliderMouseUp, i), this.$emit("start", this.internalValue);
451
+ },
452
+ onSliderMouseUp(e) {
453
+ e.stopPropagation(), window.clearTimeout(this.mouseTimeout), this.thumbPressed = !1;
454
+ const t = C ? {
455
+ passive: !0
456
+ } : !1;
457
+ this.app.removeEventListener("touchmove", this.onMouseMove, t), this.app.removeEventListener("mousemove", this.onMouseMove, t), this.$emit("mouseup", e), this.$emit("end", this.internalValue), rt(this.oldValue, this.internalValue) || (this.$emit("change", this.internalValue), this.noClick = !0), this.isActive = !1;
458
+ },
459
+ onMouseMove(e) {
460
+ e.type === "mousemove" && (this.thumbPressed = !0), this.internalValue = this.parseMouseMove(e);
461
+ },
462
+ onKeyDown(e) {
463
+ if (!this.isInteractive)
464
+ return;
465
+ const t = this.parseKeyDown(e, this.internalValue);
466
+ t == null || t < this.minValue || t > this.maxValue || (this.internalValue = t, this.$emit("change", t));
467
+ },
468
+ onSliderClick(e) {
469
+ if (this.noClick) {
470
+ this.noClick = !1;
471
+ return;
472
+ }
473
+ this.$refs.thumb.focus(), this.onMouseMove(e), this.$emit("change", this.internalValue);
474
+ },
475
+ onBlur(e) {
476
+ this.isFocused = !1, this.$emit("blur", e);
477
+ },
478
+ onFocus(e) {
479
+ this.isFocused = !0, this.$emit("focus", e);
480
+ },
481
+ parseMouseMove(e) {
482
+ const t = this.vertical ? "top" : "left", i = this.vertical ? "height" : "width", s = this.vertical ? "clientY" : "clientX", {
483
+ [t]: n,
484
+ [i]: a
485
+ } = this.$refs.track.getBoundingClientRect(), r = "touches" in e ? e.touches[0][s] : e[s];
486
+ let o = Math.min(Math.max((r - n - this.startOffset) / a, 0), 1) || 0;
487
+ return this.vertical && (o = 1 - o), this.$vuetify.rtl && (o = 1 - o), parseFloat(this.min) + o * (this.maxValue - this.minValue);
488
+ },
489
+ parseKeyDown(e, t) {
490
+ if (!this.isInteractive)
491
+ return;
492
+ const {
493
+ pageup: i,
494
+ pagedown: s,
495
+ end: n,
496
+ home: a,
497
+ left: r,
498
+ right: o,
499
+ down: p,
500
+ up: R
501
+ } = kt;
502
+ if (![i, s, n, a, r, o, p, R].includes(e.keyCode))
503
+ return;
504
+ e.preventDefault();
505
+ const A = this.stepNumeric || 1, W = (this.maxValue - this.minValue) / A;
506
+ if ([r, o, p, R].includes(e.keyCode)) {
507
+ const xt = (this.$vuetify.rtl ? [r, R] : [o, R]).includes(e.keyCode) ? 1 : -1, $t = e.shiftKey ? 3 : e.ctrlKey ? 2 : 1;
508
+ t = t + xt * A * $t;
509
+ } else if (e.keyCode === a)
510
+ t = this.minValue;
511
+ else if (e.keyCode === n)
512
+ t = this.maxValue;
513
+ else {
514
+ const U = e.keyCode === s ? 1 : -1;
515
+ t = t - U * A * (W > 100 ? W / 10 : 10);
516
+ }
517
+ return t;
518
+ },
519
+ roundValue(e) {
520
+ if (!this.stepNumeric)
521
+ return e;
522
+ const t = this.step.toString().trim(), i = t.indexOf(".") > -1 ? t.length - t.indexOf(".") - 1 : 0, s = this.minValue % this.stepNumeric, n = Math.round((e - s) / this.stepNumeric) * this.stepNumeric + s;
523
+ return parseFloat(Math.min(n, this.maxValue).toFixed(i));
524
+ }
525
+ }
526
+ }), ye = B(ve("left", ["isActive", "isMobile", "miniVariant", "expandOnHover", "permanent", "right", "temporary", "width"]), I, ue, mt, ie, fe, ot), be = ye.extend({
527
+ name: "v-navigation-drawer",
528
+ directives: {
529
+ ClickOutside: dt,
530
+ Resize: le,
531
+ Touch: ce
532
+ },
533
+ provide() {
534
+ return {
535
+ isInNav: this.tag === "nav"
536
+ };
537
+ },
538
+ props: {
539
+ bottom: Boolean,
540
+ clipped: Boolean,
541
+ disableResizeWatcher: Boolean,
542
+ disableRouteWatcher: Boolean,
543
+ expandOnHover: Boolean,
544
+ floating: Boolean,
545
+ height: {
546
+ type: [Number, String],
547
+ default() {
548
+ return this.app ? "100vh" : "100%";
549
+ }
550
+ },
551
+ miniVariant: Boolean,
552
+ miniVariantWidth: {
553
+ type: [Number, String],
554
+ default: 56
555
+ },
556
+ permanent: Boolean,
557
+ right: Boolean,
558
+ src: {
559
+ type: [String, Object],
560
+ default: ""
561
+ },
562
+ stateless: Boolean,
563
+ tag: {
564
+ type: String,
565
+ default() {
566
+ return this.app ? "nav" : "aside";
567
+ }
568
+ },
569
+ temporary: Boolean,
570
+ touchless: Boolean,
571
+ width: {
572
+ type: [Number, String],
573
+ default: 256
574
+ },
575
+ value: null
576
+ },
577
+ data: () => ({
578
+ isMouseover: !1,
579
+ touchArea: {
580
+ left: 0,
581
+ right: 0
582
+ },
583
+ stackMinZIndex: 6
584
+ }),
585
+ computed: {
586
+ /**
587
+ * Used for setting an app value from a dynamic
588
+ * property. Called from applicationable.js
589
+ */
590
+ applicationProperty() {
591
+ return this.right ? "right" : "left";
592
+ },
593
+ classes() {
594
+ return {
595
+ "v-navigation-drawer": !0,
596
+ "v-navigation-drawer--absolute": this.absolute,
597
+ "v-navigation-drawer--bottom": this.bottom,
598
+ "v-navigation-drawer--clipped": this.clipped,
599
+ "v-navigation-drawer--close": !this.isActive,
600
+ "v-navigation-drawer--fixed": !this.absolute && (this.app || this.fixed),
601
+ "v-navigation-drawer--floating": this.floating,
602
+ "v-navigation-drawer--is-mobile": this.isMobile,
603
+ "v-navigation-drawer--is-mouseover": this.isMouseover,
604
+ "v-navigation-drawer--mini-variant": this.isMiniVariant,
605
+ "v-navigation-drawer--custom-mini-variant": Number(this.miniVariantWidth) !== 56,
606
+ "v-navigation-drawer--open": this.isActive,
607
+ "v-navigation-drawer--open-on-hover": this.expandOnHover,
608
+ "v-navigation-drawer--right": this.right,
609
+ "v-navigation-drawer--temporary": this.temporary,
610
+ ...this.themeClasses
611
+ };
612
+ },
613
+ computedMaxHeight() {
614
+ if (!this.hasApp)
615
+ return null;
616
+ const e = this.$vuetify.application.bottom + this.$vuetify.application.footer + this.$vuetify.application.bar;
617
+ return this.clipped ? e + this.$vuetify.application.top : e;
618
+ },
619
+ computedTop() {
620
+ if (!this.hasApp)
621
+ return 0;
622
+ let e = this.$vuetify.application.bar;
623
+ return e += this.clipped ? this.$vuetify.application.top : 0, e;
624
+ },
625
+ computedTransform() {
626
+ return this.isActive ? 0 : this.isBottom || this.right ? 100 : -100;
627
+ },
628
+ computedWidth() {
629
+ return this.isMiniVariant ? this.miniVariantWidth : this.width;
630
+ },
631
+ hasApp() {
632
+ return this.app && !this.isMobile && !this.temporary;
633
+ },
634
+ isBottom() {
635
+ return this.bottom && this.isMobile;
636
+ },
637
+ isMiniVariant() {
638
+ return !this.expandOnHover && this.miniVariant || this.expandOnHover && !this.isMouseover;
639
+ },
640
+ isMobile() {
641
+ return !this.stateless && !this.permanent && mt.options.computed.isMobile.call(this);
642
+ },
643
+ reactsToClick() {
644
+ return !this.stateless && !this.permanent && (this.isMobile || this.temporary);
645
+ },
646
+ reactsToMobile() {
647
+ return this.app && !this.disableResizeWatcher && !this.permanent && !this.stateless && !this.temporary;
648
+ },
649
+ reactsToResize() {
650
+ return !this.disableResizeWatcher && !this.stateless;
651
+ },
652
+ reactsToRoute() {
653
+ return !this.disableRouteWatcher && !this.stateless && (this.temporary || this.isMobile);
654
+ },
655
+ showOverlay() {
656
+ return !this.hideOverlay && this.isActive && (this.isMobile || this.temporary);
657
+ },
658
+ styles() {
659
+ const e = this.isBottom ? "translateY" : "translateX";
660
+ return {
661
+ height: x(this.height),
662
+ top: this.isBottom ? "auto" : x(this.computedTop),
663
+ maxHeight: this.computedMaxHeight != null ? `calc(100% - ${x(this.computedMaxHeight)})` : void 0,
664
+ transform: `${e}(${x(this.computedTransform, "%")})`,
665
+ width: x(this.computedWidth)
666
+ };
667
+ }
668
+ },
669
+ watch: {
670
+ $route: "onRouteChange",
671
+ isActive(e) {
672
+ this.$emit("input", e);
673
+ },
674
+ /**
675
+ * When mobile changes, adjust the active state
676
+ * only when there has been a previous value
677
+ */
678
+ isMobile(e, t) {
679
+ !e && this.isActive && !this.temporary && this.removeOverlay(), !(t == null || !this.reactsToResize || !this.reactsToMobile) && (this.isActive = !e);
680
+ },
681
+ permanent(e) {
682
+ e && (this.isActive = !0);
683
+ },
684
+ showOverlay(e) {
685
+ e ? this.genOverlay() : this.removeOverlay();
686
+ },
687
+ value(e) {
688
+ if (!this.permanent) {
689
+ if (e == null) {
690
+ this.init();
691
+ return;
692
+ }
693
+ e !== this.isActive && (this.isActive = e);
694
+ }
695
+ },
696
+ expandOnHover: "updateMiniVariant",
697
+ isMouseover(e) {
698
+ this.updateMiniVariant(!e);
699
+ }
700
+ },
701
+ beforeMount() {
702
+ this.init();
703
+ },
704
+ methods: {
705
+ calculateTouchArea() {
706
+ const e = this.$el.parentNode;
707
+ if (!e)
708
+ return;
709
+ const t = e.getBoundingClientRect();
710
+ this.touchArea = {
711
+ left: t.left + 50,
712
+ right: t.right - 50
713
+ };
714
+ },
715
+ closeConditional() {
716
+ return this.isActive && !this._isDestroyed && this.reactsToClick;
717
+ },
718
+ genAppend() {
719
+ return this.genPosition("append");
720
+ },
721
+ genBackground() {
722
+ const e = {
723
+ height: "100%",
724
+ width: "100%",
725
+ src: this.src
726
+ }, t = this.$scopedSlots.img ? this.$scopedSlots.img(e) : this.$createElement(pe, {
727
+ props: e
728
+ });
729
+ return this.$createElement("div", {
730
+ staticClass: "v-navigation-drawer__image"
731
+ }, [t]);
732
+ },
733
+ genDirectives() {
734
+ const e = [{
735
+ name: "click-outside",
736
+ value: {
737
+ handler: () => {
738
+ this.isActive = !1;
739
+ },
740
+ closeConditional: this.closeConditional,
741
+ include: this.getOpenDependentElements
742
+ }
743
+ }];
744
+ return !this.touchless && !this.stateless && e.push({
745
+ name: "touch",
746
+ value: {
747
+ parent: !0,
748
+ left: this.swipeLeft,
749
+ right: this.swipeRight
750
+ }
751
+ }), e;
752
+ },
753
+ genListeners() {
754
+ const e = {
755
+ mouseenter: () => this.isMouseover = !0,
756
+ mouseleave: () => this.isMouseover = !1,
757
+ transitionend: (t) => {
758
+ if (t.target !== t.currentTarget)
759
+ return;
760
+ this.$emit("transitionend", t);
761
+ const i = document.createEvent("UIEvents");
762
+ i.initUIEvent("resize", !0, !1, window, 0), window.dispatchEvent(i);
763
+ }
764
+ };
765
+ return this.miniVariant && (e.click = () => this.$emit("update:mini-variant", !1)), e;
766
+ },
767
+ genPosition(e) {
768
+ const t = G(this, e);
769
+ return t && this.$createElement("div", {
770
+ staticClass: `v-navigation-drawer__${e}`
771
+ }, t);
772
+ },
773
+ genPrepend() {
774
+ return this.genPosition("prepend");
775
+ },
776
+ genContent() {
777
+ return this.$createElement("div", {
778
+ staticClass: "v-navigation-drawer__content"
779
+ }, this.$slots.default);
780
+ },
781
+ genBorder() {
782
+ return this.$createElement("div", {
783
+ staticClass: "v-navigation-drawer__border"
784
+ });
785
+ },
786
+ init() {
787
+ this.permanent ? this.isActive = !0 : this.stateless || this.value != null ? this.isActive = this.value : this.temporary || (this.isActive = !this.isMobile);
788
+ },
789
+ onRouteChange() {
790
+ this.reactsToRoute && this.closeConditional() && (this.isActive = !1);
791
+ },
792
+ swipeLeft(e) {
793
+ this.isActive && this.right || (this.calculateTouchArea(), !(Math.abs(e.touchendX - e.touchstartX) < 100) && (this.right && e.touchstartX >= this.touchArea.right ? this.isActive = !0 : !this.right && this.isActive && (this.isActive = !1)));
794
+ },
795
+ swipeRight(e) {
796
+ this.isActive && !this.right || (this.calculateTouchArea(), !(Math.abs(e.touchendX - e.touchstartX) < 100) && (!this.right && e.touchstartX <= this.touchArea.left ? this.isActive = !0 : this.right && this.isActive && (this.isActive = !1)));
797
+ },
798
+ /**
799
+ * Update the application layout
800
+ */
801
+ updateApplication() {
802
+ if (!this.isActive || this.isMobile || this.temporary || !this.$el)
803
+ return 0;
804
+ const e = Number(this.miniVariant ? this.miniVariantWidth : this.width);
805
+ return isNaN(e) ? this.$el.clientWidth : e;
806
+ },
807
+ updateMiniVariant(e) {
808
+ this.expandOnHover && this.miniVariant !== e && this.$emit("update:mini-variant", e);
809
+ }
810
+ },
811
+ render(e) {
812
+ const t = [this.genPrepend(), this.genContent(), this.genAppend(), this.genBorder()];
813
+ return (this.src || G(this, "img")) && t.unshift(this.genBackground()), e(this.tag, this.setBackgroundColor(this.color, {
814
+ class: this.classes,
815
+ style: this.styles,
816
+ directives: this.genDirectives(),
817
+ on: this.genListeners()
818
+ }), t);
819
+ }
820
+ }), Me = N.extend({
821
+ name: "v-range-slider",
822
+ props: {
823
+ value: {
824
+ type: Array,
825
+ default: () => [0, 0]
826
+ }
827
+ },
828
+ data() {
829
+ return {
830
+ activeThumb: null,
831
+ lazyValue: this.value
832
+ };
833
+ },
834
+ computed: {
835
+ classes() {
836
+ return {
837
+ ...N.options.computed.classes.call(this),
838
+ "v-input--range-slider": !0
839
+ };
840
+ },
841
+ internalValue: {
842
+ get() {
843
+ return this.lazyValue;
844
+ },
845
+ set(e) {
846
+ let t = e.map((i = 0) => this.roundValue(Math.min(Math.max(i, this.minValue), this.maxValue)));
847
+ if (t[0] > t[1] || t[1] < t[0]) {
848
+ if (this.activeThumb !== null) {
849
+ const i = this.activeThumb === 1 ? 0 : 1;
850
+ this.$refs[`thumb_${i}`].focus();
851
+ }
852
+ t = [t[1], t[0]];
853
+ }
854
+ this.lazyValue = t, rt(t, this.value) || this.$emit("input", t), this.validate();
855
+ }
856
+ },
857
+ inputWidth() {
858
+ return this.internalValue.map((e) => (this.roundValue(e) - this.minValue) / (this.maxValue - this.minValue) * 100);
859
+ }
860
+ },
861
+ methods: {
862
+ getTrackStyle(e, t, i = 0, s = 0) {
863
+ const n = this.vertical ? this.$vuetify.rtl ? "top" : "bottom" : this.$vuetify.rtl ? "right" : "left", a = this.vertical ? "height" : "width", r = `calc(${e}% + ${i}px)`, o = `calc(${t}% + ${s}px)`;
864
+ return {
865
+ transition: this.trackTransition,
866
+ [n]: r,
867
+ [a]: o
868
+ };
869
+ },
870
+ getIndexOfClosestValue(e, t) {
871
+ return Math.abs(e[0] - t) < Math.abs(e[1] - t) ? 0 : 1;
872
+ },
873
+ genInput() {
874
+ return T(2).map((e) => {
875
+ const t = N.options.methods.genInput.call(this);
876
+ return t.data = t.data || {}, t.data.attrs = t.data.attrs || {}, t.data.attrs.value = this.internalValue[e], t.data.attrs.id = `input-${e ? "max" : "min"}-${this._uid}`, t;
877
+ });
878
+ },
879
+ genTrackContainer() {
880
+ const e = [], t = this.isDisabled ? 10 : 0, i = [{
881
+ class: "v-slider__track-background",
882
+ color: this.computedTrackColor,
883
+ styles: [0, this.inputWidth[0], 0, -t]
884
+ }, {
885
+ class: this.isDisabled ? "v-slider__track-background" : "v-slider__track-fill",
886
+ color: this.isDisabled ? this.computedTrackColor : this.computedTrackFillColor,
887
+ styles: [this.inputWidth[0], Math.abs(this.inputWidth[1] - this.inputWidth[0]), t, t * -2]
888
+ }, {
889
+ class: "v-slider__track-background",
890
+ color: this.computedTrackColor,
891
+ styles: [this.inputWidth[1], Math.abs(100 - this.inputWidth[1]), t, -t]
892
+ }];
893
+ return this.$vuetify.rtl && i.reverse(), e.push(...i.map((s) => this.$createElement("div", this.setBackgroundColor(s.color, {
894
+ staticClass: s.class,
895
+ style: this.getTrackStyle(...s.styles)
896
+ })))), this.$createElement("div", {
897
+ staticClass: "v-slider__track-container",
898
+ ref: "track"
899
+ }, e);
900
+ },
901
+ genChildren() {
902
+ return [this.genInput(), this.genTrackContainer(), this.genSteps(), T(2).map((e) => {
903
+ const t = this.internalValue[e], i = (o) => {
904
+ this.isFocused = !0, this.activeThumb = e, this.$emit("focus", o);
905
+ }, s = (o) => {
906
+ this.isFocused = !1, this.activeThumb = null, this.$emit("blur", o);
907
+ }, n = this.inputWidth[e], a = this.isActive && this.activeThumb === e, r = this.isFocused && this.activeThumb === e;
908
+ return this.genThumbContainer(t, n, a, r, i, s, `thumb_${e}`);
909
+ })];
910
+ },
911
+ reevaluateSelected(e) {
912
+ this.activeThumb = this.getIndexOfClosestValue(this.internalValue, e);
913
+ const t = `thumb_${this.activeThumb}`;
914
+ this.$refs[t].focus();
915
+ },
916
+ onSliderMouseDown(e) {
917
+ var t;
918
+ const i = this.parseMouseMove(e);
919
+ if (this.reevaluateSelected(i), this.oldValue = this.internalValue, this.isActive = !0, !((t = e.target) === null || t === void 0) && t.matches(".v-slider__thumb-container, .v-slider__thumb-container *")) {
920
+ this.thumbPressed = !0;
921
+ const r = e.target.getBoundingClientRect(), o = "touches" in e ? e.touches[0] : e;
922
+ this.startOffset = this.vertical ? o.clientY - (r.top + r.height / 2) : o.clientX - (r.left + r.width / 2);
923
+ } else
924
+ this.startOffset = 0, window.clearTimeout(this.mouseTimeout), this.mouseTimeout = window.setTimeout(() => {
925
+ this.thumbPressed = !0;
926
+ }, 300);
927
+ const s = C ? {
928
+ passive: !0,
929
+ capture: !0
930
+ } : !0, n = C ? {
931
+ passive: !0
932
+ } : !1, a = "touches" in e;
933
+ this.onMouseMove(e), this.app.addEventListener(a ? "touchmove" : "mousemove", this.onMouseMove, n), nt(this.app, a ? "touchend" : "mouseup", this.onSliderMouseUp, s), this.$emit("start", this.internalValue);
934
+ },
935
+ onSliderClick(e) {
936
+ if (!this.isActive) {
937
+ if (this.noClick) {
938
+ this.noClick = !1;
939
+ return;
940
+ }
941
+ const t = this.parseMouseMove(e);
942
+ this.reevaluateSelected(t), this.setInternalValue(t), this.$emit("change", this.internalValue);
943
+ }
944
+ },
945
+ onMouseMove(e) {
946
+ const t = this.parseMouseMove(e);
947
+ e.type === "mousemove" && (this.thumbPressed = !0), this.activeThumb === null && (this.activeThumb = this.getIndexOfClosestValue(this.internalValue, t)), this.setInternalValue(t);
948
+ },
949
+ onKeyDown(e) {
950
+ if (this.activeThumb === null)
951
+ return;
952
+ const t = this.parseKeyDown(e, this.internalValue[this.activeThumb]);
953
+ t != null && (this.setInternalValue(t), this.$emit("change", this.internalValue));
954
+ },
955
+ setInternalValue(e) {
956
+ this.internalValue = this.internalValue.map((t, i) => i === this.activeThumb ? e : Number(t));
957
+ }
958
+ }
959
+ }), xe = B(I, he, de, Lt, ot).extend({
960
+ name: "v-rating",
961
+ props: {
962
+ backgroundColor: {
963
+ type: String,
964
+ default: "accent"
965
+ },
966
+ color: {
967
+ type: String,
968
+ default: "primary"
969
+ },
970
+ clearable: Boolean,
971
+ dense: Boolean,
972
+ emptyIcon: {
973
+ type: String,
974
+ default: "$ratingEmpty"
975
+ },
976
+ fullIcon: {
977
+ type: String,
978
+ default: "$ratingFull"
979
+ },
980
+ halfIcon: {
981
+ type: String,
982
+ default: "$ratingHalf"
983
+ },
984
+ halfIncrements: Boolean,
985
+ hover: Boolean,
986
+ length: {
987
+ type: [Number, String],
988
+ default: 5
989
+ },
990
+ readonly: Boolean,
991
+ size: [Number, String],
992
+ value: {
993
+ type: Number,
994
+ default: 0
995
+ },
996
+ iconLabel: {
997
+ type: String,
998
+ default: "$vuetify.rating.ariaLabel.icon"
999
+ }
1000
+ },
1001
+ data() {
1002
+ return {
1003
+ hoverIndex: -1,
1004
+ internalValue: this.value
1005
+ };
1006
+ },
1007
+ computed: {
1008
+ directives() {
1009
+ return this.readonly || !this.ripple ? [] : [{
1010
+ name: "ripple",
1011
+ value: {
1012
+ circle: !0
1013
+ }
1014
+ }];
1015
+ },
1016
+ iconProps() {
1017
+ const {
1018
+ dark: e,
1019
+ large: t,
1020
+ light: i,
1021
+ medium: s,
1022
+ small: n,
1023
+ size: a,
1024
+ xLarge: r,
1025
+ xSmall: o
1026
+ } = this.$props;
1027
+ return {
1028
+ dark: e,
1029
+ large: t,
1030
+ light: i,
1031
+ medium: s,
1032
+ size: a,
1033
+ small: n,
1034
+ xLarge: r,
1035
+ xSmall: o
1036
+ };
1037
+ },
1038
+ isHovering() {
1039
+ return this.hover && this.hoverIndex >= 0;
1040
+ }
1041
+ },
1042
+ watch: {
1043
+ internalValue(e) {
1044
+ e !== this.value && this.$emit("input", e);
1045
+ },
1046
+ value(e) {
1047
+ this.internalValue = e;
1048
+ }
1049
+ },
1050
+ methods: {
1051
+ createClickFn(e) {
1052
+ return (t) => {
1053
+ if (this.readonly)
1054
+ return;
1055
+ const i = this.genHoverIndex(t, e);
1056
+ this.clearable && this.internalValue === i ? this.internalValue = 0 : this.internalValue = i;
1057
+ };
1058
+ },
1059
+ createProps(e) {
1060
+ const t = {
1061
+ index: e,
1062
+ value: this.internalValue,
1063
+ click: this.createClickFn(e),
1064
+ isFilled: Math.floor(this.internalValue) > e,
1065
+ isHovered: Math.floor(this.hoverIndex) > e
1066
+ };
1067
+ return this.halfIncrements && (t.isHalfHovered = !t.isHovered && (this.hoverIndex - e) % 1 > 0, t.isHalfFilled = !t.isFilled && (this.internalValue - e) % 1 > 0), t;
1068
+ },
1069
+ genHoverIndex(e, t) {
1070
+ let i = this.isHalfEvent(e);
1071
+ return this.halfIncrements && this.$vuetify.rtl && (i = !i), t + (i ? 0.5 : 1);
1072
+ },
1073
+ getIconName(e) {
1074
+ const t = this.isHovering ? e.isHovered : e.isFilled, i = this.isHovering ? e.isHalfHovered : e.isHalfFilled;
1075
+ return t ? this.fullIcon : i ? this.halfIcon : this.emptyIcon;
1076
+ },
1077
+ getColor(e) {
1078
+ if (this.isHovering) {
1079
+ if (e.isHovered || e.isHalfHovered)
1080
+ return this.color;
1081
+ } else if (e.isFilled || e.isHalfFilled)
1082
+ return this.color;
1083
+ return this.backgroundColor;
1084
+ },
1085
+ isHalfEvent(e) {
1086
+ if (this.halfIncrements) {
1087
+ const t = e.target && e.target.getBoundingClientRect();
1088
+ if (t && e.pageX - t.left < t.width / 2)
1089
+ return !0;
1090
+ }
1091
+ return !1;
1092
+ },
1093
+ onMouseEnter(e, t) {
1094
+ this.runDelay("open", () => {
1095
+ this.hoverIndex = this.genHoverIndex(e, t);
1096
+ });
1097
+ },
1098
+ onMouseLeave() {
1099
+ this.runDelay("close", () => this.hoverIndex = -1);
1100
+ },
1101
+ genItem(e) {
1102
+ const t = this.createProps(e);
1103
+ if (this.$scopedSlots.item)
1104
+ return this.$scopedSlots.item(t);
1105
+ const i = {
1106
+ click: t.click
1107
+ };
1108
+ return this.hover && (i.mouseenter = (s) => this.onMouseEnter(s, e), i.mouseleave = this.onMouseLeave, this.halfIncrements && (i.mousemove = (s) => this.onMouseEnter(s, e))), this.$createElement(g, this.setTextColor(this.getColor(t), {
1109
+ attrs: {
1110
+ "aria-label": this.$vuetify.lang.t(this.iconLabel, e + 1, Number(this.length))
1111
+ },
1112
+ directives: this.directives,
1113
+ props: this.iconProps,
1114
+ on: i
1115
+ }), [this.getIconName(t)]);
1116
+ }
1117
+ },
1118
+ render(e) {
1119
+ const t = T(Number(this.length)).map((i) => this.genItem(i));
1120
+ return e("div", {
1121
+ staticClass: "v-rating",
1122
+ class: {
1123
+ "v-rating--readonly": this.readonly,
1124
+ "v-rating--dense": this.dense
1125
+ }
1126
+ }, t);
1127
+ }
1128
+ });
1129
+ var f = /* @__PURE__ */ ((e) => (e.HotelDescriptionViewDialog = "HotelDescriptionViewDialog", e.HotelRoomOfferList = "HotelRoomOfferList", e.HotelRoomOffersViewDialog = "HotelRoomOffersViewDialog", e.RoomsDetails = "RoomsDetails", e))(f || {});
1130
+ const $e = {
1131
+ HotelDescriptionViewDialog: !1,
1132
+ HotelRoomOfferList: !1,
1133
+ HotelRoomOffersViewDialog: !1,
1134
+ RoomsDetails: !0
1135
+ }, Ce = {
1136
+ name: "BBtnCloseDialog"
1137
+ };
1138
+ var Be = function() {
1139
+ var t = this, i = t._self._c;
1140
+ return t._self._setupProxy, i(l, t._b({ staticClass: "close-btn v-window__next", attrs: { dark: "", icon: "" } }, "v-btn", t.$attrs, !1), [i(g, [t._v("fa-times")])], 1);
1141
+ }, ke = [], Re = /* @__PURE__ */ m(
1142
+ Ce,
1143
+ Be,
1144
+ ke,
1145
+ !1,
1146
+ null,
1147
+ "95318f12",
1148
+ null,
1149
+ null
1150
+ );
1151
+ const we = Re.exports, Se = {
1152
+ adultCount: {
1153
+ type: Number
1154
+ },
1155
+ checkInDate: {
1156
+ type: String
1157
+ },
1158
+ compact: {
1159
+ type: Boolean
1160
+ },
1161
+ features: {
1162
+ default: () => $e,
1163
+ type: Object
1164
+ },
1165
+ hideAction: {
1166
+ default: !1,
1167
+ type: Boolean
1168
+ },
1169
+ hotelOffer: {
1170
+ required: !0,
1171
+ type: Object
1172
+ },
1173
+ imageCountLimit: {
1174
+ type: Number
1175
+ },
1176
+ isNoLongerAvail: {
1177
+ default: !1,
1178
+ type: Boolean
1179
+ },
1180
+ nightCount: {
1181
+ type: Number
1182
+ },
1183
+ singleOffer: {
1184
+ default: !1,
1185
+ type: Boolean
1186
+ }
1187
+ }, pt = {
1188
+ clickable: {
1189
+ default: !1,
1190
+ type: Boolean
1191
+ },
1192
+ height: { type: String },
1193
+ imageUrls: { type: Array },
1194
+ lazy: {
1195
+ default: 0,
1196
+ type: Number
1197
+ },
1198
+ limit: {
1199
+ default: 80,
1200
+ type: Number
1201
+ },
1202
+ rounded: { type: Boolean },
1203
+ showThumbnails: { type: Boolean },
1204
+ slide: { type: Number },
1205
+ thumbnailUrls: { type: Array },
1206
+ thumbnailsHeight: {
1207
+ type: [String, Number]
1208
+ },
1209
+ width: { type: String }
1210
+ }, et = (e) => {
1211
+ if (!e)
1212
+ return {
1213
+ val: 0
1214
+ };
1215
+ const t = /(-?[\d.]+)([%a-z]*)/u.exec(e.toString());
1216
+ return !t || !t[1] ? {
1217
+ val: 0
1218
+ } : {
1219
+ unit: t[2],
1220
+ val: Number.parseInt(t[1])
1221
+ };
1222
+ };
1223
+ h.extend({
1224
+ name: "BImageCarousel",
1225
+ components: {
1226
+ "b-image-carousel-thumbnails": Xt
1227
+ },
1228
+ model: {
1229
+ prop: "slide",
1230
+ event: "change"
1231
+ },
1232
+ props: pt,
1233
+ data() {
1234
+ return {
1235
+ currentSlide: this.slide || 0,
1236
+ isActive: !1,
1237
+ isVisible: !1
1238
+ };
1239
+ },
1240
+ computed: {
1241
+ imagesToLoad() {
1242
+ if (!this.isVisible)
1243
+ return [];
1244
+ if (this.lazy === 0)
1245
+ return [this.currentSlide];
1246
+ const e = this.imageUrls.length;
1247
+ return this.lazy < 0 ? Array.from({ length: e }, (t, i) => i) : Array.from(
1248
+ { length: 2 * this.lazy + 1 },
1249
+ (t, i) => (this.currentSlide + i + e - this.lazy) % e
1250
+ );
1251
+ },
1252
+ totalHeight() {
1253
+ const e = et(this.height);
1254
+ if (!e)
1255
+ return "0px";
1256
+ const t = et(
1257
+ this.showThumbnails && this.imageUrls.length > 1 && this.thumbnailsHeight || void 0
1258
+ );
1259
+ if (!t)
1260
+ return e.val + (e.unit || "px");
1261
+ const i = e.unit || t.unit || "px";
1262
+ return e.val + t.val + (i === "px" ? 4 : 0) + i;
1263
+ }
1264
+ },
1265
+ watch: {
1266
+ slide(e) {
1267
+ this.currentSlide = e;
1268
+ }
1269
+ },
1270
+ mounted() {
1271
+ document.addEventListener("keyup", (e) => {
1272
+ this.isActive && (e.key === "ArrowLeft" ? this.moveSlide(-1) : e.key === "ArrowRight" && this.moveSlide(1));
1273
+ });
1274
+ },
1275
+ methods: {
1276
+ moveSlide(e) {
1277
+ const t = this.imageUrls.length;
1278
+ this.currentSlide = (t + this.currentSlide + e) % t, this.onCarouselChange();
1279
+ },
1280
+ onCarouselChange() {
1281
+ this.$emit("change", this.currentSlide), this.isActive = !0;
1282
+ },
1283
+ onClick() {
1284
+ this.$emit("click", this.currentSlide), this.clickable && (this.isActive = !1);
1285
+ },
1286
+ onClickOutside() {
1287
+ this.isActive = !1;
1288
+ },
1289
+ onIntersect(e) {
1290
+ this.isVisible = e[0].isIntersecting;
1291
+ }
1292
+ }
1293
+ });
1294
+ const Oe = {
1295
+ ...Rt(pt, "imageUrls"),
1296
+ hotelOffer: {
1297
+ required: !0,
1298
+ type: Object
1299
+ },
1300
+ imageCountLimit: {
1301
+ type: Number
1302
+ }
1303
+ }, Te = h.extend({
1304
+ name: "HotelOfferItem",
1305
+ components: {
1306
+ BImageCarousel: Zt
1307
+ },
1308
+ mixins: [M],
1309
+ props: Oe,
1310
+ store: ct,
1311
+ computed: {
1312
+ hotelId() {
1313
+ return this.hotelOffer.id;
1314
+ },
1315
+ hotelImages() {
1316
+ return this.$store.get("hotelImages/images", this.hotelId);
1317
+ },
1318
+ imageUrls() {
1319
+ return Jt({
1320
+ hotelImages: this.hotelImages,
1321
+ images: this.hotelOffer.images
1322
+ });
1323
+ },
1324
+ carouselStyle() {
1325
+ return {
1326
+ borderTopLeftRadius: "0px",
1327
+ borderBottomLeftRadius: "0px",
1328
+ borderTopRightRadius: "0px"
1329
+ };
1330
+ }
1331
+ },
1332
+ async mounted() {
1333
+ await $("hotelImages/retrieveHotelImages", {
1334
+ hotelId: this.hotelId,
1335
+ locale: this.config.lang
1336
+ });
1337
+ }
1338
+ });
1339
+ var Ie = function() {
1340
+ var s, n;
1341
+ var t = this, i = t._self._c;
1342
+ return t._self._setupProxy, i("b-image-carousel", { style: t.carouselStyle, attrs: { clickable: "", height: t.height, "image-urls": ((n = (s = t.imageUrls) == null ? void 0 : s.lowres) == null ? void 0 : n.slice(0, t.imageCountLimit)) || [], lazy: 2, limit: 15, rounded: "", width: t.width } });
1343
+ }, Fe = [], Ve = /* @__PURE__ */ m(
1344
+ Te,
1345
+ Ie,
1346
+ Fe,
1347
+ !1,
1348
+ null,
1349
+ null,
1350
+ null,
1351
+ null
1352
+ );
1353
+ const Ae = Ve.exports, De = h.extend({
1354
+ name: "HotelOfferItem",
1355
+ components: {
1356
+ BBreakfastOptionBadge: At,
1357
+ BBreakpointObserver: Dt,
1358
+ BBtnCloseDialog: we,
1359
+ BErrorOverlay: Et,
1360
+ HotelOfferItemCarousel: Ae,
1361
+ BPriceSummary: Ht,
1362
+ BHotelRoomsDetails: Nt,
1363
+ BStarRating: Pt,
1364
+ BTag: Ut,
1365
+ BTripAdvisorRatingWidget: zt,
1366
+ CancellationPoliciesBadge: Ft,
1367
+ HotelDescriptionView: Gt,
1368
+ HotelOfferItemLayout: Vt,
1369
+ HotelRoomOffersView: Kt,
1370
+ BReviewRating: Wt,
1371
+ BTravelTimes: Yt
1372
+ },
1373
+ mixins: [
1374
+ M,
1375
+ lt,
1376
+ b("components/RevolugoElements/HotelOfferItem")
1377
+ ],
1378
+ store: ct,
1379
+ props: Se,
1380
+ data() {
1381
+ return {
1382
+ showAdditionalContent: !1,
1383
+ mountAdditionalContent: !1,
1384
+ toggleDialog: !1
1385
+ };
1386
+ },
1387
+ computed: {
1388
+ adultCountLocal() {
1389
+ return this.adultCount || this.$store.get("hotelOfferRequest/adultCount");
1390
+ },
1391
+ checkInDateLocal() {
1392
+ return this.checkInDate || this.$store.get("hotelOfferRequest/checkInDate");
1393
+ },
1394
+ dialogComponentName() {
1395
+ if (this.features[f.HotelRoomOffersViewDialog])
1396
+ return "hotel-room-offers-view";
1397
+ if (this.features[f.HotelDescriptionViewDialog])
1398
+ return "hotel-description-view";
1399
+ },
1400
+ formattedDistance() {
1401
+ return this.hotelOffer.distance ? Math.round(this.hotelOffer.distance / 1e3 * 100) / 100 : 0;
1402
+ },
1403
+ hotelId() {
1404
+ return this.hotelOffer.id;
1405
+ },
1406
+ hotelOfferRequest() {
1407
+ return this.$store.get("hotelOfferRequest");
1408
+ },
1409
+ hotelRoomOffer() {
1410
+ return this.hotelOffer.hotelRoomOffers[0];
1411
+ },
1412
+ isTaxIncluded() {
1413
+ return this.hotelRoomOffer.taxes ? this.hotelRoomOffer.taxes.length === 0 : !0;
1414
+ },
1415
+ isRefundable() {
1416
+ return wt({
1417
+ bookingDatetime: St().format(),
1418
+ cancellationPolicies: this.hotelRoomOffer.cancellationPolicies,
1419
+ checkInDate: this.checkInDateLocal,
1420
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1421
+ timezone: this.hotelOffer.timezone
1422
+ }) === 0;
1423
+ },
1424
+ hotelImages() {
1425
+ return this.$store.get("hotelImages/images", this.hotelId);
1426
+ },
1427
+ nightCountLocal() {
1428
+ return this.nightCount || this.$store.get("hotelOfferRequest/nightCount");
1429
+ },
1430
+ roomCount() {
1431
+ var e;
1432
+ return ((e = this.hotelRoomOffer) == null ? void 0 : e.hotelRooms.reduce(
1433
+ (t, i) => t + (i.count || 0),
1434
+ 0
1435
+ )) || 0;
1436
+ },
1437
+ bigTags() {
1438
+ var e, t;
1439
+ return ((t = (e = this.hotelOffer) == null ? void 0 : e.tags) == null ? void 0 : t.filter((i) => i.name.length > 30)) || [];
1440
+ },
1441
+ smallTags() {
1442
+ var e, t;
1443
+ return ((t = (e = this.hotelOffer) == null ? void 0 : e.tags) == null ? void 0 : t.filter((i) => i.name.length <= 30)) || [];
1444
+ },
1445
+ venueTravelTimes() {
1446
+ var e;
1447
+ return (e = this.hotelOffer) == null ? void 0 : e.venues;
1448
+ }
1449
+ },
1450
+ mounted() {
1451
+ this.features[f.HotelRoomOffersViewDialog] && window.RevolugoElements.eventBus.$on(
1452
+ D.BOOKING_POLICY_CREATED,
1453
+ () => {
1454
+ setTimeout(() => {
1455
+ this.toggleDialog = !1;
1456
+ }, 350);
1457
+ }
1458
+ );
1459
+ },
1460
+ methods: {
1461
+ onHotelOfferItemClick() {
1462
+ window.RevolugoElements.eventBus.$emit(
1463
+ D.HOTEL_OFFERS_ITEM_CLICK,
1464
+ this.hotelOffer
1465
+ ), this.features[f.HotelRoomOfferList] ? this.showAdditionalContent ? (this.showAdditionalContent = !1, setTimeout(() => {
1466
+ this.mountAdditionalContent = !1;
1467
+ }, 500)) : (this.mountAdditionalContent = !0, this.$nextTick(() => {
1468
+ this.showAdditionalContent = !0;
1469
+ })) : (this.features[f.HotelDescriptionViewDialog] || this.features[f.HotelRoomOffersViewDialog]) && (this.toggleDialog = !0);
1470
+ },
1471
+ onHotelOfferItemTitleClick() {
1472
+ window.RevolugoElements.eventBus.$emit(
1473
+ D.HOTEL_OFFERS_ITEM_CLICK,
1474
+ this.hotelOffer
1475
+ ), this.toggleDialog = !0, this.features[f.HotelRoomOffersViewDialog] && (this.showAdditionalContent = !1, this.mountAdditionalContent = !1);
1476
+ }
1477
+ }
1478
+ });
1479
+ var Ee = function() {
1480
+ var t = this, i = t._self._c;
1481
+ return t._self._setupProxy, i("hotel-offer-item-layout", { staticClass: "hover-card", attrs: { compact: t.compact, "is-rooms-details-visible": t.features.RoomsDetails }, on: { click: t.onHotelOfferItemClick }, scopedSlots: t._u([{ key: "hotel-description-view-dialog", fn: function() {
1482
+ return [t.dialogComponentName ? i(se, { staticClass: "z-index-over-map", attrs: { attach: t.$dialogAttach, light: "", scrollable: "", transition: "slide-x-reverse-transition" }, model: { value: t.toggleDialog, callback: function(s) {
1483
+ t.toggleDialog = s;
1484
+ }, expression: "toggleDialog" } }, [i("b-btn-close-dialog", { nativeOn: { click: function(s) {
1485
+ t.toggleDialog = !1;
1486
+ } } }), i("b-breakpoint-observer", { attrs: { "at-root": "" } }, [i(k, { attrs: { tile: "" } }, [i(P, [i(t.dialogComponentName, t._b({ tag: "component", staticClass: "pt-2 pa-md-6", attrs: { "hotel-id": t.hotelId } }, "component", t.hotelOfferRequest, !1))], 1)], 1)], 1)], 1) : t._e()];
1487
+ }, proxy: !0 }, { key: "carousel", fn: function() {
1488
+ return [i(Qt, { attrs: { height: t.features.RoomsDetails ? "175px" : "140px", width: !t.$breakpointService.xs && !t.compact ? "175px" : "100%" } }, [i("hotel-offer-item-carousel", { attrs: { height: t.features.RoomsDetails ? "175px" : "140px", "hotel-offer": t.hotelOffer, "image-count-limit": t.imageCountLimit, width: !t.$breakpointService.xs && !t.compact ? "175px" : "100%" } })], 1)];
1489
+ }, proxy: !0 }, { key: "heading", fn: function() {
1490
+ var s;
1491
+ return [t.dialogComponentName && t.features.HotelRoomOfferList ? [i(ut, { attrs: { attach: (s = t.$el) == null ? void 0 : s.parent, bottom: "" }, scopedSlots: t._u([{ key: "activator", fn: function({ on: n }) {
1492
+ return [i("span", t._g({ staticClass: "hotel-name subtitle-1 font-weight-black mr-1 primary--text cursor-pointer", on: { click: function(a) {
1493
+ return a.stopPropagation(), t.onHotelOfferItemTitleClick.apply(null, arguments);
1494
+ } } }, n), [t._v(" " + t._s(t.hotelOffer.name) + " ")])];
1495
+ } }], null, !1, 3153989022) }, [t._v(" " + t._s(t.$t("HotelOfferItem.openDialogTooltip", { value: t.formattedDistance })) + " ")])] : [i("span", { staticClass: "hotel-name subtitle-1 font-weight-black mr-1 primary--text cursor-pointer" }, [t._v(" " + t._s(t.hotelOffer.name) + " ")])], i("b-star-rating", { attrs: { count: t.hotelOffer.rating } })];
1496
+ }, proxy: !0 }, { key: "review-rating", fn: function() {
1497
+ return [i("b-review-rating", { attrs: { features: {
1498
+ ReviewRatingDetails: !1
1499
+ }, hotel: t.hotelOffer } })];
1500
+ }, proxy: !0 }, { key: "distance", fn: function() {
1501
+ return [isNaN(t.formattedDistance) ? t._e() : i("span", { staticClass: "grey--text text--darken-2 text-caption mt-n1 d-block" }, [t._v(" " + t._s(t.$t("HotelOfferItem.distance", { value: t.formattedDistance })) + " ")]), t.venueTravelTimes ? i("b-travel-times", { staticClass: "my-n1", attrs: { "venue-travel-times": t.venueTravelTimes } }) : t._e()];
1502
+ }, proxy: !0 }, { key: "big-tags", fn: function() {
1503
+ return t._l(t.bigTags, function(s, n) {
1504
+ return i("div", { key: n, staticClass: "align-self-center d-inline-flex flex-wrap", style: { gap: "0.3em" } }, [i("b-tag", { attrs: { color: s.bg, "pre-icon": `fa-${s.faIcon}`, "text-color": s.color, "tooltip-content": s.description } }, [t._v(" " + t._s(s.name) + " ")])], 1);
1505
+ });
1506
+ }, proxy: !0 }, { key: "tags", fn: function() {
1507
+ return t._l(t.smallTags, function(s, n) {
1508
+ return i("div", { key: n, staticClass: "align-self-center d-inline-flex flex-wrap", style: { gap: "0.3em" } }, [i("b-tag", { attrs: { color: s.bg, "pre-icon": `fa-${s.faIcon}`, "text-color": s.color, "tooltip-content": s.description } }, [t._v(" " + t._s(s.name) + " ")])], 1);
1509
+ });
1510
+ }, proxy: !0 }, { key: "breakfast-option-badge", fn: function() {
1511
+ return [t.hotelRoomOffer.breakfastOption === "INCLUDED" ? i("b-breakfast-option-badge", { attrs: { "breakfast-option": t.hotelRoomOffer.breakfastOption } }) : t._e()];
1512
+ }, proxy: !0 }, t.isRefundable ? { key: "cancellation-policies-badge", fn: function() {
1513
+ return [i("cancellation-policies-badge", { attrs: { "cancellation-policies": t.hotelRoomOffer.cancellationPolicies, "check-in-date": t.checkInDateLocal, timezone: t.hotelOffer.timezone } })];
1514
+ }, proxy: !0 } : null, { key: "package-details", fn: function() {
1515
+ return [i("b-hotel-rooms-details", { attrs: { "hotel-rooms": t.hotelRoomOffer.hotelRooms } })];
1516
+ }, proxy: !0 }, { key: "price-summary", fn: function() {
1517
+ return [t.hotelRoomOffer.price ? i("div", [i("b-price-summary", { attrs: { "adult-count": t.adultCountLocal, "is-starting-price": "", "is-tax-included": t.isTaxIncluded, "night-count": t.nightCountLocal, price: t.hotelRoomOffer.price, "room-count": t.roomCount, "round-mode": "round" } })], 1) : t._e()];
1518
+ }, proxy: !0 }, { key: "footer", fn: function() {
1519
+ return [i("div", { staticClass: "footer white" }, [t.isNoLongerAvail ? i("b-error-overlay", { scopedSlots: t._u([{ key: "title", fn: function() {
1520
+ return [t._v(" " + t._s(t.$t("HotelOfferItem.noLongerAvailable")) + " ")];
1521
+ }, proxy: !0 }], null, !1, 2439747837) }) : t.mountAdditionalContent ? i(ee, [i("div", { directives: [{ name: "show", rawName: "v-show", value: t.features.HotelRoomOfferList && t.showAdditionalContent, expression: "features.HotelRoomOfferList && showAdditionalContent" }], staticClass: "mt-2", staticStyle: { cursor: "auto" } }, [t.mountAdditionalContent ? t._t("default") : t._e()], 2)]) : t._e()], 1)];
1522
+ }, proxy: !0 }], null, !0) });
1523
+ }, Le = [], Ne = /* @__PURE__ */ m(
1524
+ De,
1525
+ Ee,
1526
+ Le,
1527
+ !1,
1528
+ null,
1529
+ "9898fa06",
1530
+ null,
1531
+ null
1532
+ );
1533
+ const $s = Ne.exports;
1534
+ var ft = /* @__PURE__ */ ((e) => (e.DEBUG = "DEBUG", e.ERROR = "ERROR", e.INFO = "INFO", e.WARN = "WARN", e))(ft || {});
1535
+ function S(e, t = "INFO") {
1536
+ switch (t) {
1537
+ case "DEBUG": {
1538
+ console.log(`[DEBUG] ${e}`);
1539
+ break;
1540
+ }
1541
+ case "INFO": {
1542
+ console.log(`[INFO] ${e}`);
1543
+ break;
1544
+ }
1545
+ case "WARN": {
1546
+ console.warn(`[WARN] ${e}`);
1547
+ break;
1548
+ }
1549
+ case "ERROR": {
1550
+ console.error(`[ERROR] ${e}`);
1551
+ break;
1552
+ }
1553
+ default: {
1554
+ console.log(`[${ft[t]}] ${e}`);
1555
+ break;
1556
+ }
1557
+ }
1558
+ }
1559
+ const He = {
1560
+ debug: (e) => S(
1561
+ e,
1562
+ "DEBUG"
1563
+ /* DEBUG */
1564
+ ),
1565
+ info: (e) => S(
1566
+ e,
1567
+ "INFO"
1568
+ /* INFO */
1569
+ ),
1570
+ warn: (e) => S(
1571
+ e,
1572
+ "WARN"
1573
+ /* WARN */
1574
+ ),
1575
+ error: (e) => S(
1576
+ e,
1577
+ "ERROR"
1578
+ /* ERROR */
1579
+ )
1580
+ }, Pe = {
1581
+ compact: {
1582
+ type: Boolean,
1583
+ default: !0
1584
+ },
1585
+ isFlat: {
1586
+ type: Boolean,
1587
+ default: !0
1588
+ },
1589
+ outlined: {
1590
+ type: Boolean,
1591
+ default: !1
1592
+ },
1593
+ withDetails: {
1594
+ type: Boolean,
1595
+ default: !1
1596
+ },
1597
+ value: {
1598
+ type: Object,
1599
+ default: null
1600
+ },
1601
+ locationContext: {
1602
+ type: Object,
1603
+ default: null
1604
+ }
1605
+ }, ze = h.extend({
1606
+ name: "BSearchLocationInput",
1607
+ mixins: [b("components/ui/BSearchLocationInput")],
1608
+ props: Pe,
1609
+ data() {
1610
+ return {
1611
+ selectedLocation: this.value,
1612
+ locations: [],
1613
+ loading: !1,
1614
+ searchInput: ""
1615
+ };
1616
+ },
1617
+ watch: {
1618
+ value(e) {
1619
+ this.selectLocation(e);
1620
+ },
1621
+ selectedLocation(e) {
1622
+ this.$emit("input", e);
1623
+ },
1624
+ async searchInput(e) {
1625
+ if (!e) {
1626
+ this.locations = [];
1627
+ return;
1628
+ }
1629
+ await this.searchLocations();
1630
+ }
1631
+ },
1632
+ mounted() {
1633
+ this.$nextTick(() => {
1634
+ var e, t;
1635
+ this.searchInput = ((t = (e = this.selectedLocation) == null ? void 0 : e.raw) == null ? void 0 : t.title) || "";
1636
+ });
1637
+ },
1638
+ methods: {
1639
+ searchLocations: Ot(
1640
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1641
+ async function() {
1642
+ var t, i;
1643
+ try {
1644
+ this.loading = !0;
1645
+ const n = {
1646
+ q: this.searchInput,
1647
+ apiKey: jt,
1648
+ maxresults: 10
1649
+ };
1650
+ this.locationContext && (n.at = `${(t = this.locationContext) == null ? void 0 : t.latitude},${(i = this.locationContext) == null ? void 0 : i.longitude}`);
1651
+ const a = await qt.get("https://geocode.search.hereapi.com/v1/geocode", {
1652
+ params: n
1653
+ }).then((r) => {
1654
+ var o;
1655
+ return (o = r.data) == null ? void 0 : o.items;
1656
+ });
1657
+ return this.locations = a.map((r) => ({
1658
+ title: Y([
1659
+ r.address.houseNumber,
1660
+ r.address.street
1661
+ ]).join(" "),
1662
+ subtitle: Y([
1663
+ r.address.postalCode,
1664
+ r.address.city,
1665
+ r.address.countryName
1666
+ ]).join(", "),
1667
+ longitude: r.position.lng,
1668
+ latitude: r.position.lat,
1669
+ raw: r
1670
+ })), this.loading = !1, this.locations;
1671
+ } catch (s) {
1672
+ return He.error(s), this.loading = !1, [];
1673
+ }
1674
+ },
1675
+ 500,
1676
+ {
1677
+ trailing: !0
1678
+ }
1679
+ ),
1680
+ selectLocation(e) {
1681
+ this.selectedLocation = e;
1682
+ },
1683
+ getSelection(e) {
1684
+ var t;
1685
+ return (t = e == null ? void 0 : e.raw) == null ? void 0 : t.title;
1686
+ }
1687
+ }
1688
+ });
1689
+ var We = function() {
1690
+ var t = this, i = t._self._c;
1691
+ return t._self._setupProxy, i(oe, { staticClass: "search-location-input", attrs: { "append-icon": "", attach: "", dense: t.compact, flat: t.isFlat, "hide-details": !t.withDetails, "hide-no-data": "", "item-text": "raw.title", items: t.locations, label: t.$t("BSearchLocationInput.placeholder"), loading: t.loading, "no-filter": "", outlined: t.outlined, "prepend-inner-icon": "fa-solid fa-magnifying-glass", "return-object": "", "search-input": t.searchInput, solo: !t.outlined, value: t.getSelection(t.selectedLocation) }, on: { "update:searchInput": function(s) {
1692
+ t.searchInput = s;
1693
+ }, "update:search-input": function(s) {
1694
+ t.searchInput = s;
1695
+ } }, scopedSlots: t._u([{ key: "item", fn: function({ item: s }) {
1696
+ return [i(re, { on: { click: function(n) {
1697
+ return t.selectLocation(s);
1698
+ } } }, [i(H, [t._v(t._s(s.title))]), i(ae, [t._v(t._s(s.subtitle))])], 1)];
1699
+ } }]) });
1700
+ }, Ue = [], Ge = /* @__PURE__ */ m(
1701
+ ze,
1702
+ We,
1703
+ Ue,
1704
+ !1,
1705
+ null,
1706
+ null,
1707
+ null,
1708
+ null
1709
+ );
1710
+ const Cs = Ge.exports, Ye = 25, vt = {
1711
+ currency: {
1712
+ required: !0,
1713
+ type: String
1714
+ },
1715
+ disabled: {
1716
+ default: !1,
1717
+ type: Boolean
1718
+ },
1719
+ isLoading: {
1720
+ default: !1,
1721
+ type: Boolean
1722
+ },
1723
+ priceMax: {
1724
+ default: 10,
1725
+ type: Number
1726
+ },
1727
+ priceMin: {
1728
+ default: 5,
1729
+ type: Number
1730
+ },
1731
+ stepCount: {
1732
+ type: Number,
1733
+ default: Ye
1734
+ },
1735
+ value: {
1736
+ type: Array
1737
+ }
1738
+ }, it = (e, t) => {
1739
+ const s = t - e, n = s / 40, r = 10 ** (Math.floor(Math.log10(n)) - 1), o = Math.round(n / r) * r, p = Math.max(o, s / 40);
1740
+ return Math.floor(p);
1741
+ }, je = h.extend({
1742
+ name: "BFilterByPrice",
1743
+ components: { BFormattedAmount: ht },
1744
+ mixins: [M],
1745
+ props: vt,
1746
+ data() {
1747
+ return {
1748
+ inputMax: Math.max(...this.value) || this.priceMax,
1749
+ inputMin: Math.min(...this.value) || this.priceMin,
1750
+ modelMax: Math.max(...this.value) || this.priceMax,
1751
+ modelMin: Math.min(...this.value) || this.priceMin,
1752
+ rangeSliderModel: [
1753
+ Math.min(...this.value) || this.priceMin,
1754
+ Math.max(...this.value) || this.priceMax
1755
+ ],
1756
+ step: it(this.priceMin, this.priceMax)
1757
+ };
1758
+ },
1759
+ computed: {
1760
+ getChartBarHeight() {
1761
+ return (e) => `${Math.log(e + 1) / Math.log(Math.max(...this.priceHistogram)) * 40}px`;
1762
+ },
1763
+ currencySymbol() {
1764
+ return Tt(this.currency);
1765
+ },
1766
+ hotelOffersCurrency: d("hotelOffers/hotelOffersCurrency"),
1767
+ priceHistogram: d("hotelOffers/priceHistogram"),
1768
+ validPriceRange() {
1769
+ return It([this.priceMin, this.priceMax]);
1770
+ }
1771
+ },
1772
+ watch: {
1773
+ rangeSliderModel(e) {
1774
+ this.inputMin = e[0], this.inputMax = e[1];
1775
+ },
1776
+ value: {
1777
+ handler(e) {
1778
+ this.modelMin = e[0] || this.priceMin, this.modelMax = e[1] || this.priceMax, this.inputMin = this.modelMin, this.inputMax = this.modelMax, this.rangeSliderModel = [this.modelMin, this.modelMax];
1779
+ },
1780
+ deep: !0,
1781
+ immediate: !0
1782
+ }
1783
+ },
1784
+ created() {
1785
+ this.$watch(
1786
+ () => [this.priceMin, this.priceMax],
1787
+ () => {
1788
+ this.step = it(this.priceMin, this.priceMax);
1789
+ }
1790
+ );
1791
+ },
1792
+ methods: {
1793
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1794
+ onInputMaxBlur(e) {
1795
+ var t;
1796
+ this.modelMax = Math.max(
1797
+ Math.min(this.validPriceRange[1], Math.ceil((t = e.target) == null ? void 0 : t.value)),
1798
+ this.validPriceRange[0]
1799
+ ), this.inputMax = this.modelMax, this.rangeSliderModel = [this.modelMin, this.modelMax], this.$emit("input", [this.modelMin, this.modelMax]);
1800
+ },
1801
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1802
+ onInputMinBlur(e) {
1803
+ var t;
1804
+ this.modelMin = Math.min(
1805
+ Math.max(this.validPriceRange[0], Math.ceil((t = e.target) == null ? void 0 : t.value)),
1806
+ this.validPriceRange[1]
1807
+ ), this.inputMin = this.modelMin, this.rangeSliderModel = [this.modelMin, this.modelMax], this.$emit("input", [this.modelMin, this.modelMax]);
1808
+ },
1809
+ onInputMaxClear() {
1810
+ this.inputMax = this.validPriceRange[1], this.modelMax = this.inputMax, this.rangeSliderModel = [this.modelMin, this.modelMax], this.$emit("input", [this.modelMin, this.modelMax]);
1811
+ },
1812
+ onInputMinClear() {
1813
+ this.inputMin = this.validPriceRange[0], this.modelMin = this.inputMin, this.rangeSliderModel = [this.modelMin, this.modelMax], this.$emit("input", [this.modelMin, this.modelMax]);
1814
+ },
1815
+ onSliderEnd() {
1816
+ this.modelMin = this.rangeSliderModel[0], this.modelMax = this.rangeSliderModel[1], this.$emit("input", [this.modelMin, this.modelMax]);
1817
+ }
1818
+ }
1819
+ });
1820
+ var qe = function() {
1821
+ var t = this, i = t._self._c;
1822
+ return t._self._setupProxy, i("div", { staticStyle: { "max-width": "400px" } }, [i(v, { attrs: { "no-gutters": "" } }, [i(u, [i(P, { staticClass: "filter-price-slider pa-0", class: t.disabled && "cursor-not-allowed" }, [t.isLoading ? [i("ul", { staticClass: "chart" }, [t._l(Array.from(
1823
+ { length: 30 },
1824
+ () => Math.random() * 35 + 5
1825
+ ), function(s, n) {
1826
+ return [i("li", { key: n }, [i("span", { staticClass: "loader" })])];
1827
+ })], 2)] : [i("ul", { staticClass: "chart" }, [t._l(t.priceHistogram, function(s, n) {
1828
+ return [i("li", { key: n }, [i("span", { style: { height: t.getChartBarHeight(s), width: "95%" } })])];
1829
+ })], 2)], i(Me, { ref: "range-slider", attrs: { disabled: t.disabled || t.isLoading, max: t.validPriceRange[1], min: t.validPriceRange[0], readonly: t.disabled || t.isLoading, step: t.step, "thumb-label": !1, "track-color": "#e2e2e2" }, on: { end: t.onSliderEnd }, model: { value: t.rangeSliderModel, callback: function(s) {
1830
+ t.rangeSliderModel = s;
1831
+ }, expression: "rangeSliderModel" } })], 2)], 1)], 1), i(v, { staticClass: "mt-10", attrs: { "no-gutters": "" } }, [i(u, [i(tt, { ref: "price-min", attrs: { "append-icon": t.$isCurrentBreakpointBelow("sm") ? null : "fa-circle-xmark", dense: "", disabled: t.disabled || t.isLoading, label: "Min", max: t.inputMax, min: t.validPriceRange[0], outlined: "", prefix: t.currencySymbol, step: t.step, type: "number" }, on: { blur: t.onInputMinBlur, "click:append": t.onInputMinClear }, model: { value: t.inputMin, callback: function(s) {
1832
+ t.inputMin = s;
1833
+ }, expression: "inputMin" } })], 1), i(u, { staticClass: "d-flex align-center", attrs: { cols: "2" } }, [i(O)], 1), i(u, [i(tt, { ref: "price-max", attrs: { "append-icon": t.$isCurrentBreakpointBelow("sm") ? null : "fa-circle-xmark", dense: "", disabled: t.disabled || t.isLoading, label: "Max", max: t.validPriceRange[1], min: t.inputMin, outlined: "", prefix: t.currencySymbol, step: t.step, type: "number" }, on: { blur: t.onInputMaxBlur, "click:append": t.onInputMaxClear }, model: { value: t.inputMax, callback: function(s) {
1834
+ t.inputMax = s;
1835
+ }, expression: "inputMax" } })], 1)], 1)], 1);
1836
+ }, Ke = [], Xe = /* @__PURE__ */ m(
1837
+ je,
1838
+ qe,
1839
+ Ke,
1840
+ !1,
1841
+ null,
1842
+ "bc63ec9f",
1843
+ null,
1844
+ null
1845
+ );
1846
+ const gt = Xe.exports, Ze = h.extend({
1847
+ name: "BFilterByPriceMenu",
1848
+ components: {
1849
+ BFilterByPrice: gt,
1850
+ BFormattedAmount: ht
1851
+ },
1852
+ mixins: [b("components/ui/BFilterByPriceMenu"), M],
1853
+ props: vt,
1854
+ data() {
1855
+ return {
1856
+ isMenuOpen: !1,
1857
+ model: this.value
1858
+ };
1859
+ },
1860
+ computed: {
1861
+ configCurrency() {
1862
+ return this.config.currency ?? j.EUR.code;
1863
+ },
1864
+ currencies() {
1865
+ return Object.values(j);
1866
+ },
1867
+ currencySymbol() {
1868
+ var e;
1869
+ return (e = this.currencies.find(
1870
+ (t) => t.code === this.configCurrency
1871
+ )) == null ? void 0 : e.symbol;
1872
+ },
1873
+ formattedPriceMin() {
1874
+ return q({
1875
+ amount: this.model[0] || this.priceMin,
1876
+ currency: this.config.currency,
1877
+ locale: this.config.lang
1878
+ });
1879
+ },
1880
+ formattedPriceMax() {
1881
+ return q({
1882
+ amount: this.model[1] || this.priceMax,
1883
+ currency: this.config.currency,
1884
+ locale: this.config.lang
1885
+ });
1886
+ },
1887
+ formattedPriceRange() {
1888
+ return `${this.formattedPriceMin} - ${this.formattedPriceMax}`;
1889
+ }
1890
+ },
1891
+ watch: {
1892
+ value: {
1893
+ deep: !0,
1894
+ immediate: !0,
1895
+ handler(e) {
1896
+ this.model = e;
1897
+ }
1898
+ }
1899
+ },
1900
+ methods: {
1901
+ onApply() {
1902
+ this.$emit("input", this.model), this.isMenuOpen = !1;
1903
+ },
1904
+ onCancel() {
1905
+ this.model = this.value, this.isMenuOpen = !1;
1906
+ },
1907
+ onReset() {
1908
+ this.isMenuOpen = !1, this.$emit("reset");
1909
+ }
1910
+ }
1911
+ });
1912
+ var Je = function() {
1913
+ var t = this, i = t._self._c;
1914
+ return t._self._setupProxy, i(F, t._b({ attrs: { attach: t.$parent.$el, "close-on-click": "", "close-on-content-click": !1, "max-width": "400px", "offset-overflow": "", "offset-y": "", "open-on-click": "" }, scopedSlots: t._u([{ key: "activator", fn: function({ on: s }) {
1915
+ var n;
1916
+ return [i(V, { staticStyle: { cursor: "pointer" }, attrs: { color: "grey", icon: "fa-times", overlap: "", value: !!t.formattedPriceRange }, nativeOn: { click: function(a) {
1917
+ return t.onReset.apply(null, arguments);
1918
+ } } }, [i(ut, { attrs: { attach: (n = t.$el) == null ? void 0 : n.parent, bottom: "", color: "grey darken-3" }, scopedSlots: t._u([{ key: "activator", fn: function({ on: a }) {
1919
+ return [i(l, t._g({ staticClass: "white--text", attrs: { color: "grey", elevation: 0, outlined: "", small: "" } }, {
1920
+ ...s,
1921
+ ...a
1922
+ }), [i("span", [i("b", [t._v(" " + t._s(t.currencySymbol))])])])];
1923
+ } }], null, !0) }, [t.priceMin !== 0 && t.priceMax !== 0 ? [t._v(" " + t._s(t.formattedPriceRange) + " ")] : t._e()], 2)], 1)];
1924
+ } }]), model: { value: t.isMenuOpen, callback: function(s) {
1925
+ t.isMenuOpen = s;
1926
+ }, expression: "isMenuOpen" } }, "v-menu", t.$attrs, !1), [i(k, { attrs: { elevation: "0" } }, [i("div", { staticClass: "text-center px-10 pt-4" }, [i("p", { staticClass: "font-weight-bold" }, [t._v(" " + t._s(t.$t("BFilterByPriceMenu.title")) + " ")]), i("b-filter-by-price", t._b({ model: { value: t.model, callback: function(s) {
1927
+ t.model = s;
1928
+ }, expression: "model" } }, "b-filter-by-price", t.$props, !1))], 1), i(z, { staticClass: "justify-end mt-2" }, [i(l, { staticClass: "text-right", attrs: { color: "primary", elevation: "0", small: "", text: "" }, on: { click: t.onCancel } }, [t._v(" " + t._s(t.$t("BFilterByPriceMenu.cancel")) + " ")]), i(l, { staticClass: "text-right", attrs: { color: "error", elevation: "0", loading: t.isLoading, small: "", text: "" }, on: { click: t.onReset } }, [t._v(" " + t._s(t.$t("BFilterByPriceMenu.reset")) + " ")]), i(l, { staticClass: "text-right", attrs: { color: "success", elevation: "0", loading: t.isLoading, small: "" }, on: { click: t.onApply } }, [t._v(" " + t._s(t.$t("BFilterByPriceMenu.apply")) + " ")])], 1)], 1)], 1);
1929
+ }, Qe = [], ti = /* @__PURE__ */ m(
1930
+ Ze,
1931
+ Je,
1932
+ Qe,
1933
+ !1,
1934
+ null,
1935
+ "38487da2",
1936
+ null,
1937
+ null
1938
+ );
1939
+ const ei = ti.exports, ii = {
1940
+ value: {
1941
+ type: [Number, void 0]
1942
+ },
1943
+ disabled: { type: Boolean }
1944
+ }, si = h.extend({
1945
+ name: "BFilterByReview",
1946
+ props: ii,
1947
+ computed: {
1948
+ model: {
1949
+ get() {
1950
+ return this.value;
1951
+ },
1952
+ set(e) {
1953
+ this.$emit("input", e);
1954
+ }
1955
+ },
1956
+ reviewRatingItems() {
1957
+ return [
1958
+ {
1959
+ label: "3+",
1960
+ value: 3
1961
+ },
1962
+ {
1963
+ label: "3.5+",
1964
+ value: 3.5
1965
+ },
1966
+ {
1967
+ label: "4+",
1968
+ value: 4
1969
+ },
1970
+ {
1971
+ label: "4.5+",
1972
+ value: 4.5
1973
+ }
1974
+ ];
1975
+ }
1976
+ }
1977
+ });
1978
+ var ni = function() {
1979
+ var t = this, i = t._self._c;
1980
+ return t._self._setupProxy, i(_e, { staticClass: "d-flex flex-row justify-center", model: { value: t.model, callback: function(s) {
1981
+ t.model = s;
1982
+ }, expression: "model" } }, t._l(t.reviewRatingItems, function(s, n) {
1983
+ return i(l, { key: n, staticClass: "px-0", class: t.disabled && "cursor-not-allowed", attrs: { color: "primary", disabled: t.disabled, outlined: "", small: "", value: s.value } }, [t._v(" " + t._s(s.label) + " ")]);
1984
+ }), 1);
1985
+ }, ri = [], ai = /* @__PURE__ */ m(
1986
+ si,
1987
+ ni,
1988
+ ri,
1989
+ !1,
1990
+ null,
1991
+ null,
1992
+ null,
1993
+ null
1994
+ );
1995
+ const _t = ai.exports, yt = {
1996
+ value: {
1997
+ type: [Number, void 0]
1998
+ },
1999
+ disabled: { type: Boolean }
2000
+ };
2001
+ h.extend({
2002
+ name: "BFilterByReview",
2003
+ props: yt,
2004
+ computed: {
2005
+ model: {
2006
+ get() {
2007
+ return this.value;
2008
+ },
2009
+ set(e) {
2010
+ this.$emit("input", e);
2011
+ }
2012
+ },
2013
+ reviewRatingItems() {
2014
+ return [
2015
+ {
2016
+ label: "3+",
2017
+ value: 3
2018
+ },
2019
+ {
2020
+ label: "3.5+",
2021
+ value: 3.5
2022
+ },
2023
+ {
2024
+ label: "4+",
2025
+ value: 4
2026
+ },
2027
+ {
2028
+ label: "4.5+",
2029
+ value: 4.5
2030
+ }
2031
+ ];
2032
+ }
2033
+ }
2034
+ });
2035
+ const oi = {
2036
+ isLoading: {
2037
+ default: !1,
2038
+ type: Boolean
2039
+ },
2040
+ value: { ...yt.value }
2041
+ }, li = h.extend({
2042
+ name: "BFilterByReviewMenu",
2043
+ components: { BFilterByReview: _t },
2044
+ mixins: [b("components/ui/BFilterByReviewMenu"), M],
2045
+ props: oi,
2046
+ data() {
2047
+ return {
2048
+ isMenuOpen: !1,
2049
+ model: this.value
2050
+ };
2051
+ },
2052
+ watch: {
2053
+ value: {
2054
+ immediate: !0,
2055
+ handler(e) {
2056
+ this.model = e;
2057
+ }
2058
+ }
2059
+ },
2060
+ methods: {
2061
+ closeMenu() {
2062
+ this.isMenuOpen = !1;
2063
+ },
2064
+ onApply() {
2065
+ this.closeMenu(), this.$emit("input", this.model);
2066
+ },
2067
+ onCancel() {
2068
+ this.model = this.value, this.closeMenu();
2069
+ },
2070
+ onReset() {
2071
+ this.closeMenu(), this.$emit("reset");
2072
+ }
2073
+ }
2074
+ });
2075
+ var ci = function() {
2076
+ var t = this, i = t._self._c;
2077
+ return t._self._setupProxy, i(F, t._b({ attrs: { attach: t.$parent.$el, bottom: "", "close-on-content-click": !1, "content-class": "pa-0", "nudge-left": "130%", "offset-y": "", "open-on-click": "" }, scopedSlots: t._u([{ key: "activator", fn: function({ on: s }) {
2078
+ return [i(V, { staticStyle: { cursor: "pointer" }, attrs: { color: "grey", icon: "fa-times", overlap: "", value: !!t.value }, nativeOn: { click: function(n) {
2079
+ return t.onReset.apply(null, arguments);
2080
+ } } }, [i(l, t._g({ staticClass: "white--text", attrs: { color: "grey", elevation: 0, outlined: "", small: "" } }, s), [i("span", [i("b", [t._v(t._s(t.value) + "+")])])])], 1)];
2081
+ } }]), model: { value: t.isMenuOpen, callback: function(s) {
2082
+ t.isMenuOpen = s;
2083
+ }, expression: "isMenuOpen" } }, "v-menu", t.$attrs, !1), [i(k, { attrs: { elevation: "0" } }, [i("div", { staticClass: "text-center px-10 py-4" }, [i("p", { staticClass: "font-weight-bold" }, [t._v(" " + t._s(t.$t("BFilterByReviewMenu.title")) + " ")]), i("b-filter-by-review", { attrs: { disabled: t.isLoading }, model: { value: t.value, callback: function(s) {
2084
+ t.value = s;
2085
+ }, expression: "value" } })], 1), i(z, { staticClass: "justify-end pa-2" }, [i(l, { staticClass: "text-right", attrs: { color: "primary", elevation: "0", small: "", text: "" }, on: { click: t.closeMenu } }, [t._v(" " + t._s(t.$t("BFilterByReviewMenu.cancel")) + " ")]), i(l, { staticClass: "text-right", attrs: { color: "error", elevation: "0", small: "", text: "" }, on: { click: t.onReset } }, [t._v(" " + t._s(t.$t("BFilterByReviewMenu.reset")) + " ")]), i(l, { staticClass: "text-right", attrs: { color: "success", elevation: "0", small: "" }, on: { click: t.onApply } }, [t._v(" " + t._s(t.$t("BFilterByReviewMenu.apply")) + " ")])], 1)], 1)], 1);
2086
+ }, ui = [], hi = /* @__PURE__ */ m(
2087
+ li,
2088
+ ci,
2089
+ ui,
2090
+ !1,
2091
+ null,
2092
+ "07d0a70a",
2093
+ null,
2094
+ null
2095
+ );
2096
+ const di = hi.exports, mi = {
2097
+ value: {
2098
+ type: [Number, String]
2099
+ },
2100
+ disabled: { type: Boolean }
2101
+ }, pi = h.extend({
2102
+ name: "BFilterByStar",
2103
+ props: mi,
2104
+ computed: {
2105
+ color() {
2106
+ return this.disabled ? "grey lighten-1" : "orange";
2107
+ },
2108
+ model: {
2109
+ get() {
2110
+ return Number(this.value.split(",").at(0));
2111
+ },
2112
+ set(e) {
2113
+ const t = at(e, 6).join(",");
2114
+ this.$emit("input", t);
2115
+ }
2116
+ }
2117
+ }
2118
+ });
2119
+ var fi = function() {
2120
+ var t = this, i = t._self._c;
2121
+ return t._self._setupProxy, i(xe, { class: t.disabled && "cursor-not-allowed", attrs: { "background-color": t.color, color: t.color, dense: "", disabled: t.disabled, "empty-icon": "$ratingEmpty", hover: "", readonly: t.disabled, size: "24" }, model: { value: t.model, callback: function(s) {
2122
+ t.model = s;
2123
+ }, expression: "model" } });
2124
+ }, vi = [], gi = /* @__PURE__ */ m(
2125
+ pi,
2126
+ fi,
2127
+ vi,
2128
+ !1,
2129
+ null,
2130
+ null,
2131
+ null,
2132
+ null
2133
+ );
2134
+ const bt = gi.exports, Mt = {
2135
+ value: {
2136
+ type: [Number, String]
2137
+ },
2138
+ disabled: { type: Boolean }
2139
+ };
2140
+ h.extend({
2141
+ name: "BFilterByStar",
2142
+ props: Mt,
2143
+ computed: {
2144
+ color() {
2145
+ return this.disabled ? "grey lighten-1" : "orange";
2146
+ },
2147
+ model: {
2148
+ get() {
2149
+ return Number(this.value.split(",").at(0));
2150
+ },
2151
+ set(e) {
2152
+ const t = at(e, 6).join(",");
2153
+ this.$emit("input", t);
2154
+ }
2155
+ }
2156
+ }
2157
+ });
2158
+ const _i = {
2159
+ isLoading: {
2160
+ type: Boolean,
2161
+ default: !1
2162
+ },
2163
+ value: { ...Mt.value }
2164
+ }, yi = h.extend({
2165
+ name: "BFilterByStarMenu",
2166
+ components: { BFilterByStar: bt },
2167
+ mixins: [b("components/ui/BFilterByStarMenu"), M],
2168
+ props: _i,
2169
+ data() {
2170
+ return {
2171
+ isMenuOpen: !1,
2172
+ model: this.value
2173
+ };
2174
+ },
2175
+ watch: {
2176
+ value: {
2177
+ immediate: !0,
2178
+ handler(e) {
2179
+ this.model = e;
2180
+ }
2181
+ }
2182
+ },
2183
+ methods: {
2184
+ closeMenu() {
2185
+ this.isMenuOpen = !1;
2186
+ },
2187
+ onApply() {
2188
+ this.closeMenu(), this.$emit("input", this.model);
2189
+ },
2190
+ onCancel() {
2191
+ this.model = this.value, this.isMenuOpen = !1;
2192
+ },
2193
+ onReset() {
2194
+ this.closeMenu(), this.$emit("reset");
2195
+ }
2196
+ }
2197
+ });
2198
+ var bi = function() {
2199
+ var t = this, i = t._self._c;
2200
+ return t._self._setupProxy, i(F, t._b({ attrs: { attach: t.$parent.$el, "close-on-content-click": !1, "content-class": "pa-0", "nudge-left": "100%", "offset-overflow": "", "offset-y": "", "open-on-click": "" }, scopedSlots: t._u([{ key: "activator", fn: function({ on: s }) {
2201
+ return [i(V, { staticStyle: { cursor: "pointer" }, attrs: { color: "grey", icon: "fa-times", overlap: "", value: !!t.model }, nativeOn: { click: function(n) {
2202
+ return t.onReset.apply(null, arguments);
2203
+ } } }, [i(l, t._g({ staticClass: "white--text", attrs: { color: "grey", elevation: 0, outlined: "", small: "" } }, s), [i("span", [i("span", [t._v(t._s(t.value.split(",")[0]))]), t.model ? [i(g, { attrs: { id: "star-icon" } }, [t._v(" fa-solid fa-star ")])] : t._e()], 2)])], 1)];
2204
+ } }]), model: { value: t.isMenuOpen, callback: function(s) {
2205
+ t.isMenuOpen = s;
2206
+ }, expression: "isMenuOpen" } }, "v-menu", t.$attrs, !1), [i(k, { attrs: { elevation: "0" } }, [i("div", { staticClass: "text-center px-10 py-4" }, [i("p", { staticClass: "font-weight-bold" }, [t._v(" " + t._s(t.$t("BFilterByStarMenu.title")) + " ")]), i("b-filter-by-star", { model: { value: t.model, callback: function(s) {
2207
+ t.model = s;
2208
+ }, expression: "model" } })], 1), i(z, { staticClass: "justify-end pa-2" }, [i(l, { staticClass: "text-right", attrs: { color: "primary", elevation: "0", small: "", text: "" }, on: { click: t.onCancel } }, [t._v(" " + t._s(t.$t("BFilterByStarMenu.cancel")) + " ")]), i(l, { staticClass: "text-right", attrs: { color: "error", elevation: "0", small: "", text: "" }, on: { click: t.onReset } }, [t._v(" " + t._s(t.$t("BFilterByStarMenu.reset")) + " ")]), i(l, { staticClass: "text-right", attrs: { color: "success", elevation: "0", small: "" }, on: { click: t.onApply } }, [t._v(" " + t._s(t.$t("BFilterByStarMenu.apply")) + " ")])], 1)], 1)], 1);
2209
+ }, Mi = [], xi = /* @__PURE__ */ m(
2210
+ yi,
2211
+ bi,
2212
+ Mi,
2213
+ !1,
2214
+ null,
2215
+ "4d9bbf7d",
2216
+ null,
2217
+ null
2218
+ );
2219
+ const $i = xi.exports, Ci = {
2220
+ attach: {
2221
+ type: [Boolean, Element],
2222
+ default: !0
2223
+ },
2224
+ value: {
2225
+ required: !0,
2226
+ type: Object
2227
+ }
2228
+ }, Bi = h.extend({
2229
+ name: "BSortByMenu",
2230
+ mixins: [b("components/ui/BSortByMenu")],
2231
+ props: Ci,
2232
+ data() {
2233
+ return {
2234
+ items: [
2235
+ {
2236
+ value: _.TopPicks,
2237
+ direction: y.Asc
2238
+ },
2239
+ {
2240
+ value: _.Distance,
2241
+ direction: y.Asc
2242
+ },
2243
+ {
2244
+ value: _.Price,
2245
+ direction: y.Asc
2246
+ },
2247
+ {
2248
+ value: _.Price,
2249
+ direction: y.Desc
2250
+ },
2251
+ {
2252
+ value: _.Rating,
2253
+ direction: y.Asc
2254
+ },
2255
+ {
2256
+ value: _.Rating,
2257
+ direction: y.Desc
2258
+ },
2259
+ {
2260
+ value: _.ReviewRating,
2261
+ direction: y.Desc
2262
+ }
2263
+ ],
2264
+ isMenuOpen: !1
2265
+ };
2266
+ },
2267
+ computed: {
2268
+ model: {
2269
+ get() {
2270
+ const e = this.items.findIndex(
2271
+ (t) => t.value === this.value.value && t.direction === this.value.direction
2272
+ );
2273
+ return e === -1 ? 0 : e;
2274
+ },
2275
+ set(e) {
2276
+ this.$emit("input", this.items[e], c.SORT_BY);
2277
+ }
2278
+ }
2279
+ }
2280
+ });
2281
+ var ki = function() {
2282
+ var t = this, i = t._self._c;
2283
+ return t._self._setupProxy, i(F, { attrs: { attach: t.attach, eager: "", left: "", "offset-y": "", origin: "top left", transition: "scroll-y-transition" }, scopedSlots: t._u([{ key: "activator", fn: function({ on: s, attrs: n }) {
2284
+ return [i(l, t._g(t._b({ attrs: { color: "secondary", elevation: 0, small: "" } }, "v-btn", n, !1), s), [i("span", [t.$t(
2285
+ `BSortByMenu.options.${t.items[t.model].value}.${t.value.direction}.icon`
2286
+ ).length ? i(g, { staticClass: "mr-1", class: t.$t(
2287
+ `BSortByMenu.options.${t.items[t.model].value}.${t.value.direction}.style`
2288
+ ), attrs: { size: "12" } }, [t._v(" " + t._s(t.$t(`BSortByMenu.options.${t.items[t.model].value}.${t.value.direction}.icon`)) + " ")]) : t._e(), t._v(" " + t._s(t.$t(`BSortByMenu.options.${t.items[t.model].value}.name`)) + " "), i(g, { attrs: { size: "10" } }, [t._v(" fa-chevron-down ")])], 1)])];
2289
+ } }]), model: { value: t.isMenuOpen, callback: function(s) {
2290
+ t.isMenuOpen = s;
2291
+ }, expression: "isMenuOpen" } }, [i(ge, { staticClass: "b-sort-by-list white pa-0", attrs: { mandatory: "" }, model: { value: t.model, callback: function(s) {
2292
+ t.model = s;
2293
+ }, expression: "model" } }, [i(H, { staticClass: "pt-2" }, [i("small", { staticClass: "px-4 font-weight-bold" }, [t._v(t._s(t.$t("BSortByMenu.prefix")))])]), t._l(t.items, function(s, n) {
2294
+ return i(me, { key: n, staticClass: "px-3" }, [i(H, [i("small", { staticClass: "grey--text text--darken-3" }, [t.$t(`BSortByMenu.options.${s.value}.${s.direction}.icon`).length ? i(g, { staticClass: "grey--text text--darken-3", class: t.$t(`BSortByMenu.options.${s.value}.${s.direction}.style`), staticStyle: { "min-width": "24px" }, attrs: { size: "14" } }, [t._v(" " + t._s(t.$t(`BSortByMenu.options.${s.value}.${s.direction}.icon`)) + " ")]) : t._e(), t._v(" " + t._s(t.$t(`BSortByMenu.options.${s.value}.name`)) + " " + t._s(t.$t(`BSortByMenu.options.${s.value}.${s.direction}.wording`)) + " ")], 1)])], 1);
2295
+ })], 2)], 1);
2296
+ }, Ri = [], wi = /* @__PURE__ */ m(
2297
+ Bi,
2298
+ ki,
2299
+ Ri,
2300
+ !1,
2301
+ null,
2302
+ "90bc84a5",
2303
+ null,
2304
+ null
2305
+ );
2306
+ const Si = wi.exports, Oi = {
2307
+ isLoading: {
2308
+ default: !1,
2309
+ type: Boolean
2310
+ },
2311
+ small: {
2312
+ default: !0,
2313
+ type: Boolean
2314
+ },
2315
+ withSort: {
2316
+ default: !0,
2317
+ type: Boolean
2318
+ }
2319
+ }, Ti = h.extend({
2320
+ name: "BHotelOffersFiltersBar",
2321
+ components: {
2322
+ BSortByMenu: Si,
2323
+ BFilterByPrice: gt,
2324
+ BFilterByPriceMenu: ei,
2325
+ BFilterByStar: bt,
2326
+ BFilterByStarMenu: $i,
2327
+ BFilterByReview: _t,
2328
+ BFilterByReviewMenu: di
2329
+ },
2330
+ mixins: [
2331
+ M,
2332
+ lt,
2333
+ b("components/ui/BHotelOffersFilterBar")
2334
+ ],
2335
+ props: Oi,
2336
+ data() {
2337
+ return {
2338
+ FILTER_NAMES: c,
2339
+ isDialogOpen: !1,
2340
+ filterByPriceModel: K,
2341
+ filterByReviewRatingModel: X,
2342
+ filterByStarRatingModel: Z,
2343
+ priceUpdatedByUser: !1
2344
+ };
2345
+ },
2346
+ computed: {
2347
+ activeFiltersNumber: d("hotelOffers/activeFiltersNumber"),
2348
+ areFiltersActive: d("hotelOffers/areFiltersActive"),
2349
+ filters: d("hotelOffers/filters"),
2350
+ hotelOfferRequest: d("hotelOfferRequest"),
2351
+ isPriceFilterActive: d("hotelOffers/isPriceFilterActive"),
2352
+ isResetButtonVisible() {
2353
+ var e, t;
2354
+ return ((e = this.filters[c.SORT_BY]) == null ? void 0 : e.value) !== ((t = w[c.SORT_BY]) == null ? void 0 : t.value) || this.isStarRatingFilterActive || this.isReviewRatingFilterActive || this.isPriceFilterActive;
2355
+ },
2356
+ isStarRatingFilterActive: d(
2357
+ "hotelOffers/isStarRatingFilterActive"
2358
+ ),
2359
+ isReviewRatingFilterActive: d(
2360
+ "hotelOffers/isReviewRatingFilterActive"
2361
+ ),
2362
+ priceHistogramStepCount: d("hotelOffers/priceHistogramStepCount"),
2363
+ priceMax: d("hotelOffers/getPriceMax"),
2364
+ priceMin: d("hotelOffers/getPriceMin"),
2365
+ sortByModel: {
2366
+ get() {
2367
+ return this.filters[c.SORT_BY];
2368
+ },
2369
+ async set(e) {
2370
+ await $("hotelOffers/saveFilters", {
2371
+ ...this.filters,
2372
+ [c.SORT_BY]: e
2373
+ });
2374
+ }
2375
+ }
2376
+ },
2377
+ watch: {
2378
+ filters: {
2379
+ deep: !0,
2380
+ immediate: !0,
2381
+ handler() {
2382
+ this.syncFilters();
2383
+ }
2384
+ }
2385
+ },
2386
+ methods: {
2387
+ onCancel() {
2388
+ this.syncFilters(), this.isDialogOpen = !1;
2389
+ },
2390
+ async onSaveFilters() {
2391
+ await $("hotelOffers/saveFilters", {
2392
+ ...this.filters,
2393
+ [c.RATING]: this.filterByStarRatingModel,
2394
+ [c.REVIEW_RATING]: this.filterByReviewRatingModel,
2395
+ [c.PRICE]: [
2396
+ this.filterByPriceModel[0] === this.priceMin ? 0 : this.filterByPriceModel[0],
2397
+ this.filterByPriceModel[1] === this.priceMax ? 0 : this.filterByPriceModel[1]
2398
+ ]
2399
+ }), this.isDialogOpen = !1;
2400
+ },
2401
+ async resetPriceFilter() {
2402
+ await $("hotelOffers/saveFilters", {
2403
+ ...this.filters,
2404
+ [c.PRICE]: K
2405
+ });
2406
+ },
2407
+ async resetStarRatingFilter() {
2408
+ await $("hotelOffers/saveFilters", {
2409
+ ...this.filters,
2410
+ [c.RATING]: Z
2411
+ });
2412
+ },
2413
+ async resetReviewRatingFilter() {
2414
+ await $("hotelOffers/saveFilters", {
2415
+ ...this.filters,
2416
+ [c.REVIEW_RATING]: X
2417
+ });
2418
+ },
2419
+ onResetFilters() {
2420
+ this.filterByPriceModel = w[c.PRICE], this.filterByStarRatingModel = w[c.RATING], this.filterByReviewRatingModel = w[c.REVIEW_RATING];
2421
+ },
2422
+ syncFilters() {
2423
+ this.filterByPriceModel = this.filters[c.PRICE], this.filterByStarRatingModel = this.filters[c.RATING], this.filterByReviewRatingModel = this.filters[c.REVIEW_RATING];
2424
+ }
2425
+ }
2426
+ });
2427
+ var Ii = function() {
2428
+ var t = this, i = t._self._c;
2429
+ return t._self._setupProxy, i("div", [i(be, { attrs: { absolute: "", "overlay-opacity": "0.3", temporary: "", width: t.$isCurrentBreakpointBelow("sm") ? "100%" : "auto" }, model: { value: t.isDialogOpen, callback: function(s) {
2430
+ t.isDialogOpen = s;
2431
+ }, expression: "isDialogOpen" } }, [i(k, { attrs: { elevation: "0", light: "" } }, [i(ne, { staticClass: "py-1", staticStyle: { "background-color": "#fff", "z-index": "1", position: "fixed", top: "0", width: "100%" } }, [i(v, [i(u, { attrs: { cols: "auto" } }, [i(l, { attrs: { icon: "" }, on: { click: t.onCancel } }, [i(g, [t._v(" fa fa-arrow-left ")])], 1), i("small", {}, [t._v(" " + t._s(t.$t("BHotelFiltersMenu.filterBy")) + " ")])], 1), i(u, { attrs: { align: "end" } }, [i(l, { staticClass: "mr-2", attrs: { color: "primary", small: "", text: "" }, on: { click: t.onCancel } }, [t._v(" " + t._s(t.$t("BHotelFiltersMenu.cancel")) + " ")]), i(l, { staticClass: "mr-2", attrs: { color: "error", small: "", text: "" }, on: { click: t.onResetFilters } }, [t._v(" " + t._s(t.$t("BHotelFiltersMenu.reset")) + " ")]), i(l, { attrs: { color: "success", elevation: "0", small: "" }, on: { click: t.onSaveFilters } }, [t._v(" " + t._s(t.$t("BHotelFiltersMenu.apply")) + " ")])], 1)], 1)], 1), i(O, { staticClass: "mt-11" }), i(P, [i(v, [i(u, { staticClass: "px-8", attrs: { align: "center", cols: "12" } }, [i("p", { staticClass: "font-weight-bold" }, [t._v(" " + t._s(t.$t("BHotelFiltersMenu.price")) + " ")]), i("b-filter-by-price", { attrs: { currency: t.config.currency, "is-loading": t.isLoading, "price-max": t.priceMax, "price-min": t.priceMin, "step-count": t.priceHistogramStepCount }, model: { value: t.filterByPriceModel, callback: function(s) {
2432
+ t.filterByPriceModel = s;
2433
+ }, expression: "filterByPriceModel" } })], 1)], 1), i(O, { staticClass: "my-6 mx-12" }), i(v, [i(u, { attrs: { align: "center", cols: "12" } }, [i("p", { staticClass: "font-weight-bold" }, [t._v(" " + t._s(t.$t("BHotelFiltersMenu.star")) + " ")]), i("b-filter-by-star", { model: { value: t.filterByStarRatingModel, callback: function(s) {
2434
+ t.filterByStarRatingModel = s;
2435
+ }, expression: "filterByStarRatingModel" } })], 1)], 1), i(O, { staticClass: "my-6 mx-12" }), i(v, [i(u, { staticClass: "py-4", attrs: { align: "center", cols: "12" } }, [i("p", { staticClass: "font-weight-bold" }, [t._v(" " + t._s(t.$t("BHotelFiltersMenu.review")) + " ")]), i("b-filter-by-review", { model: { value: t.filterByReviewRatingModel, callback: function(s) {
2436
+ t.filterByReviewRatingModel = s;
2437
+ }, expression: "filterByReviewRatingModel" } })], 1)], 1)], 1)], 1)], 1), i(v, { staticClass: "pa-2", attrs: { justify: "space-between" } }, [i(u, { attrs: { cols: "auto" } }, [i(v, { attrs: { dense: "" } }, [i(u, [i(V, { staticStyle: { cursor: "pointer" }, attrs: { bordered: "", color: "secondary", content: t.activeFiltersNumber, icon: "fa-times", overlap: "", value: t.activeFiltersNumber } }, [i(l, { attrs: { color: "secondary", elevation: 0, small: t.small }, on: { click: function(s) {
2438
+ t.isDialogOpen = !0;
2439
+ } } }, [i(g, { staticClass: "mr-1", attrs: { size: "14" } }, [t._v(" fa-sliders ")]), t._v(t._s(t.$t("BHotelFiltersMenu.filters")) + " ")], 1)], 1)], 1), t.isPriceFilterActive ? i(u, { staticClass: "mx-1" }, [i("b-filter-by-price-menu", { attrs: { currency: t.config.currency, "is-loading": t.isLoading, "price-max": t.priceMax, "price-min": t.priceMin, "step-count": t.priceHistogramStepCount }, on: { input: t.onSaveFilters, reset: t.resetPriceFilter }, model: { value: t.filterByPriceModel, callback: function(s) {
2440
+ t.filterByPriceModel = s;
2441
+ }, expression: "filterByPriceModel" } })], 1) : t._e(), t.isStarRatingFilterActive ? i(u, { staticClass: "mx-1" }, [i("b-filter-by-star-menu", { on: { input: t.onSaveFilters, reset: t.resetStarRatingFilter }, model: { value: t.filterByStarRatingModel, callback: function(s) {
2442
+ t.filterByStarRatingModel = s;
2443
+ }, expression: "filterByStarRatingModel" } })], 1) : t._e(), t.isReviewRatingFilterActive ? i(u, { staticClass: "mx-1" }, [i("b-filter-by-review-menu", { on: { input: t.onSaveFilters, reset: t.resetReviewRatingFilter }, model: { value: t.filterByReviewRatingModel, callback: function(s) {
2444
+ t.filterByReviewRatingModel = s;
2445
+ }, expression: "filterByReviewRatingModel" } })], 1) : t._e()], 1)], 1), t.withSort ? i(u, { attrs: { cols: "auto" } }, [i("b-sort-by-menu", { attrs: { attach: t.$el, "filter-key": t.FILTER_NAMES.SORT_BY, left: "" }, model: { value: t.sortByModel, callback: function(s) {
2446
+ t.sortByModel = s;
2447
+ }, expression: "sortByModel" } })], 1) : t._e()], 1)], 1);
2448
+ }, Fi = [], Vi = /* @__PURE__ */ m(
2449
+ Ti,
2450
+ Ii,
2451
+ Fi,
2452
+ !1,
2453
+ null,
2454
+ "c0c65af1",
2455
+ null,
2456
+ null
2457
+ );
2458
+ const Bs = Vi.exports;
2459
+ function Ai(e) {
2460
+ return /^([+-]?\d*\.?\d+([Ee][+-]?\d+)?|[+-]?\d*\.?\d+)(px|em|rem|vw|vh|vmin|vmax|%|cm|mm|in|pt|pc|ch|ex|q)$/u.test(
2461
+ e
2462
+ );
2463
+ }
2464
+ function st(e) {
2465
+ if (e)
2466
+ return typeof e == "number" ? `${e}px` : typeof e == "string" && (Ai(e) || e.startsWith("var")) ? e : Number.isNaN(e) ? "100%" : `${e}px`;
2467
+ }
2468
+ const ks = h.extend({
2469
+ data() {
2470
+ return {
2471
+ parsedHeight: st(this.height)
2472
+ };
2473
+ },
2474
+ watch: {
2475
+ height: {
2476
+ immediate: !0,
2477
+ handler(e) {
2478
+ this.parsedHeight = st(e);
2479
+ }
2480
+ }
2481
+ }
2482
+ });
2483
+ Ct("css/revolugo.parsed-height.Xzhpy3D3.css");
2484
+ export {
2485
+ Cs as B,
2486
+ $e as H,
2487
+ f as a,
2488
+ Bs as b,
2489
+ $s as c,
2490
+ ks as p
2491
+ };
2492
+ //# sourceMappingURL=revolugo.parsed-height.D0Du6OpW.min.js.map