PageSourceSearch

https://www.bretagne-reisen.de/app/dist/crt-bretagne/addons/woody-…ai-itinerary-pois-controller.2dce389938.mjs

js bretagne-reisen.de collected 2026-10-02 07:08:07 UTC 2,368 bytes, 1 lines download raw bytes

1import i from"woody_library_woody_controller";class a extends i{#t=null;#s=null;#e=null;#o=null;constructor(o){super(o)}init(o){super.init(o),this.el.dataset.poisMapName?(this.#t=document.querySelectorAll("woody-map[data-name='"+this.el.dataset.poisMapName+"']"),!this.#t||this.#t.length<1?console.warn("HawwwaiIntineraryPoisController - showOnMap - no maps found in DOM with data-name='"+this.el.dataset.poisMapName+"'"):this.#t.forEach(t=>{t.addEventListener("pinclick",e=>{this.showOnList(e.detail)})})):console.warn("HawwwaiIntineraryPoisControllerController - data-pois-map-name attribut is missed"),this.#e=this.el.querySelectorAll("[data-pois-role='intersection_target']"),this.#e.length>0&&(this.#o=new IntersectionObserver(t=>{t.forEach(e=>{e.isIntersecting&&this.showOnMap(e.target)})},{threshold:.75}),this.#e.forEach(t=>this.#o.observe(t))),this.#s=this.el.querySelectorAll("[data-pois-role='button_target']"),this.#s.length>0&&this.#s.forEach(t=>{t.addEventListener("click",e=>{e.preventDefault(),this.showOnMap(e.currentTarget)}),t.addEventListener("keypress",e=>{e.preventDefault(),(e.keyCode==13||e.keyCode==32)&&this.showOnMap(e.currentTarget)})})}showOnMap(o){document.dispatchEvent(new CustomEvent("openItineraryReveal")),o.dataset.poisMapPointLat&&o.dataset.poisMapPointLng?this.#t&&this.#t.length>0&&this.#t.forEach(t=>{t?.loaded?t.setSelectedPinIndexForLocation(o.dataset.poisMapPointLat,o.dataset.poisMapPointLng,!0,!1):t.addEventListener("ready",()=>{t.setSelectedPinIndexForLocation(o.dataset.poisMapPointLat,o.dataset.poisMapPointLng,!0,!1)})}):console.warn("HawwwaiIntineraryPoisControllerController - showOnMap - data-pois-map-point-lat and data-pois-map-point-lng attributs are missed on target")}async showOnList(o){this.#o&&this.#e.forEach(t=>this.#o.unobserve(t));for(let t=0;t<this.#e.length;t++){const e=this.#e[t];if(parseFloat(e.dataset.poisMapPointLat)===parseFloat(o.lat)&&parseFloat(e.dataset.poisMapPointLng)===parseFloat(o.lon)){this.scrollTo(e),await new Promise(s=>setTimeout(s,500));break}}this.#o&&this.#e.forEach(t=>this.#o.observe(t))}scrollTo(o,t=200){const e=this.getCoords(o).top;e>t&&window.scrollTo({top:e-t,behavior:"smooth"})}getCoords(o){let t=o.getBoundingClientRect();return{top:t.top+window.scrollY,right:t.right+window.scrollX,bottom:t.bottom+window.scrollY,left:t.left+window.scrollX}}}export{a as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.