{
  "version": 3,
  "sources": ["../app/client.ts"],
  "sourcesContent": ["import type { HomeClientComponentElement } from \"../.check24-home/types/client\";\n\nimport allianz from \"./assets/logo_allianz.svg\";\nimport axa from \"./assets/logo_axa.svg\";\nimport mapfre from \"./assets/logo_mapfre.svg\";\nimport pelayo from \"./assets/logo_pelayo.svg\";\nimport qualitas from \"./assets/logo_qualitas.svg\";\nimport reale from \"./assets/logo_reale.svg\";\nimport cleverea from \"./assets/logo_cleverea.svg\";\nimport verti from \"./assets/logo_verti.svg\";\nimport divina from \"./assets/logo_divina.svg\";\nimport booking from \"./assets/logo_booking.svg\";\nimport expedia from \"./assets/logo_expedia.svg\";\nimport agoda from \"./assets/logo_agoda.svg\";\nimport smyrooms from \"./assets/logo_smyrooms.webp\";\nimport destinia from \"./assets/logo_destinia.svg\";\nimport hotelopia from \"./assets/logo_hotelopia.svg\";\nimport stayforlong from \"./assets/logo_stayforlong.webp\";\nimport nhHoteles from \"./assets/logo_nh_hoteles.webp\";\nimport h10 from \"./assets/logo_h10.svg\";\nimport avis from \"./assets/logo_avis.svg\";\nimport europcar from \"./assets/logo_europcar.svg\";\nimport hertz from \"./assets/logo_hertz.svg\";\nimport rentalcars from \"./assets/logo_rental.svg\";\nimport tui from \"./assets/logo_tui.svg\";\nimport bsp from \"./assets/logo_bsp.svg\";\nimport enterprise from \"./assets/logo_enterprise.svg\";\nimport sixt from \"./assets/logo_sixt.svg\";\nimport budget from \"./assets/logo_budget.svg\";\n\ntype Partner = { name: string; src: string };\n\nconst GROUPS: Partner[][] = [\n  [\n    [\"Allianz\", allianz], [\"AXA\", axa], [\"Mapfre\", mapfre],\n    [\"Pelayo\", pelayo], [\"Qualitas\", qualitas], [\"Reale\", reale],\n    [\"Cleverea\", cleverea], [\"Verti\", verti], [\"Divina\", divina],\n  ].map(([name, src]) => ({ name, src })),\n  [\n    [\"Booking.com\", booking], [\"Expedia\", expedia], [\"Agoda\", agoda],\n    [\"Smyrooms\", smyrooms], [\"Destinia\", destinia], [\"Hotelopia\", hotelopia],\n    [\"Stayforlong\", stayforlong], [\"NH Hoteles\", nhHoteles], [\"H10\", h10],\n  ].map(([name, src]) => ({ name, src })),\n  [\n    [\"AVIS\", avis], [\"Europcar\", europcar], [\"Hertz\", hertz],\n    [\"Rentalcars\", rentalcars], [\"TUI Cars\", tui], [\"BSP seguros\", bsp],\n    [\"Enterprise\", enterprise], [\"Sixt\", sixt], [\"Budget\", budget],\n  ].map(([name, src]) => ({ name, src })),\n];\n\nconst desktopPartners = GROUPS.flatMap(group => group.slice(0, 6));\n\nconst STYLES = `\n:host{display:block;width:100%;max-width:1280px;margin-inline:auto;box-sizing:border-box;font-family:Inter,sans-serif;color:#181818;contain:inline-size}*,*::before,*::after{box-sizing:border-box}.partners{width:100%}.title{margin:0 0 16px;text-align:left;font-size:24px;line-height:28px;font-weight:700}.desktop-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.partner{display:flex;align-items:center;justify-content:center;width:100%;height:74px;padding:12px;border:0;border-radius:10px;background:#fff;box-shadow:0 0 8px rgba(0,0,0,.16)}.partner img{display:block;max-width:90px;max-height:40px;width:auto;height:auto;object-fit:contain}.mobile-slider{display:none}.dots{display:none;justify-content:center;gap:8px;margin-top:16px}.dot{appearance:none;display:block;flex:0 0 8px;width:8px;min-width:8px;max-width:8px;height:8px;min-height:8px;max-height:8px;margin:0;padding:0;border:0;border-radius:50%;background:#c7cbd1;cursor:pointer}.dot[aria-current=true]{background:#0563c1}@media(max-width:768px){.title{margin-bottom:16px;font-size:20px;line-height:24px}.desktop-grid{display:none}.mobile-slider{display:block;width:100%;margin:0;padding:8px 0 8px 8px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;touch-action:pan-x}.mobile-slider::-webkit-scrollbar{display:none}.slides{display:flex;width:100%}.slide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 8px;flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}.partner{height:64px;padding:8px}.partner img{max-width:78px;max-height:34px}.dots{display:flex;margin-top:14px}}@media(max-width:360px){.partner{height:58px}.partner img{max-width:70px;max-height:30px}}\n`;\n\nconst partnerCard = ({ name, src }: Partner) => `<div class=\"partner\"><img src=\"${new URL(src, import.meta.url).href}\" alt=\"${name}\" loading=\"lazy\"></div>`;\nconst PARTNERS_SPACING_OVERRIDE = `.desktop-grid { gap: 8px; padding-right: 8px; }`;\n\nclass Check24EsPartners extends HTMLElement implements HomeClientComponentElement {\n  private activeSlide = 0;\n  private shadow = this.attachShadow({ mode: \"closed\" });\n\n  connectedCallback(): void {\n    this.style.height = window.matchMedia(\"(max-width: 360px)\").matches ? \"268px\" : window.matchMedia(\"(max-width: 768px)\").matches ? \"286px\" : \"290px\";\n    this.render();\n  }\n\n  private render(): void {\n    this.shadow.innerHTML = `<style>${STYLES}${PARTNERS_SPACING_OVERRIDE}</style><section class=\"partners\" aria-label=\"Comparamos m\u00E1s de 70 compa\u00F1\u00EDas\"><h2 class=\"title\">Comparamos m\u00E1s de 70 compa\u00F1\u00EDas</h2><div class=\"desktop-grid\">${desktopPartners.map(partnerCard).join(\"\")}</div><div class=\"mobile-slider\"><div class=\"slides\">${GROUPS.map(group => `<div class=\"slide\">${group.map(partnerCard).join(\"\")}</div>`).join(\"\")}</div></div><div class=\"dots\" role=\"tablist\" aria-label=\"Paginaci\u00F3n de proveedores\">${GROUPS.map((_, index) => `<button class=\"dot\" type=\"button\" aria-label=\"Ir a compa\u00F1\u00EDas ${index + 1}\" aria-current=\"${index === this.activeSlide}\" data-slide=\"${index}\"></button>`).join(\"\")}</div></section>`;\n    this.shadow.querySelectorAll<HTMLButtonElement>(\".dot\").forEach(button => button.addEventListener(\"click\", () => this.goTo(Number(button.dataset.slide))));\n    this.shadow.querySelector<HTMLElement>(\".mobile-slider\")?.addEventListener(\"scroll\", this.onMobileScroll, { passive: true });\n  }\n\n  private goTo(index: number): void {\n    this.activeSlide = index;\n    const slider = this.shadow.querySelector<HTMLElement>(\".mobile-slider\");\n    slider?.scrollTo({ left: this.slideWidth() * index, behavior: \"smooth\" });\n    this.updateDots();\n  }\n\n  private onMobileScroll = (event: Event): void => {\n    const slider = event.currentTarget as HTMLElement;\n    const nextSlide = Math.round(slider.scrollLeft / this.slideWidth());\n    if (nextSlide !== this.activeSlide) {\n      this.activeSlide = nextSlide;\n      this.updateDots();\n    }\n  };\n\n  private updateDots(): void {\n    this.shadow.querySelectorAll<HTMLButtonElement>(\".dot\").forEach((dot, dotIndex) => dot.setAttribute(\"aria-current\", String(dotIndex === this.activeSlide)));\n  }\n\n  private slideWidth(): number {\n    return this.shadow.querySelector<HTMLElement>(\".slide\")?.getBoundingClientRect().width ?? 0;\n  }\n}\n\ncustomElements.define(\"check24-es-partners\", Check24EsPartners);\n"],
  "mappings": "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",
  "names": ["GROUPS", "logo_allianz_default", "logo_axa_default", "logo_mapfre_default", "logo_pelayo_default", "logo_qualitas_default", "logo_reale_default", "logo_cleverea_default", "logo_verti_default", "logo_divina_default", "name", "src", "logo_booking_default", "logo_expedia_default", "logo_agoda_default", "logo_smyrooms_default", "logo_destinia_default", "logo_hotelopia_default", "logo_stayforlong_default", "logo_nh_hoteles_default", "logo_h10_default", "logo_avis_default", "logo_europcar_default", "logo_hertz_default", "logo_rental_default", "logo_tui_default", "logo_bsp_default", "logo_enterprise_default", "logo_sixt_default", "logo_budget_default", "desktopPartners", "group", "STYLES", "partnerCard", "PARTNERS_SPACING_OVERRIDE", "Check24EsPartners", "event", "slider", "nextSlide", "_", "index", "button", "dot", "dotIndex"]
}
