PageSourceSearch

https://www.wikicampers.fr/build/2957.d514b1f1.js

js wikicampers.fr collected 2026-09-24 11:52:57 UTC 5,799 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunk=globalThis.webpackChunk||[]).push([[2957],{12957(e,t,i){i.d(t,{default:()=>n});var s=i(7809);const n=class extends s.xI{static targets=["barRow","presetsRow"];static values={collapseAfter:{type:Number,default:48},expandBefore:{type:Number,default:8},recollapseDistance:{type:Number,default:120}};connect(){this.media=window.matchMedia("(min-width: 1024px)"),this.header=document.querySelector('header[data-slot="header"]'),this.card=this.element.querySelector('[data-slot="searchBar"]'),this.compact=!1,this.pinnedAt=null,this.expanding=!1,this.ticking=!1,this.onScroll=this.onScroll.bind(this),this.measure=this.measure.bind(this),this.interceptFieldClick=this.interceptFieldClick.bind(this),this.onFocusOut=this.onFocusOut.bind(this),this.panel=this.element.querySelector('[data-search--bar-target="panelPopover"] dialog'),this.panelObserver=new MutationObserver(()=>this.onPanelToggle()),this.panel&&this.panelObserver.observe(this.panel,{attributes:!0,attributeFilter:["open"]}),window.addEventListener("scroll",this.onScroll,{passive:!0}),window.addEventListener("resize",this.measure,{passive:!0}),this.media.addEventListener("change",this.measure),this.card?.addEventListener("click",this.interceptFieldClick,!0),this.card?.addEventListener("focusout",this.onFocusOut),this.measure()}disconnect(){window.removeEventListener("scroll",this.onScroll),window.removeEventListener("resize",this.measure),this.media.removeEventListener("change",this.measure),this.card?.removeEventListener("click",this.interceptFieldClick,!0),this.card?.removeEventListener("focusout",this.onFocusOut),this.panelObserver.disconnect(),clearTimeout(this.reopenTimer),this.element.removeEventListener("transitionend",this.onExpanded),document.documentElement.removeAttribute("data-search-compact")}onScroll(){this.ticking||(this.ticking=!0,requestAnimationFrame(()=>{this.ticking=!1,this.update()}))}measure(){this.compact||(this.element.style.setProperty("--search-bar-row-height",`${this.barRowTarget.offsetHeight}px`),this.lockExpandedSizes());const e=this.presetsRowTarget.offsetTop-4,t=this.header?.offsetHeight??0,i=this.barRowTarget.offsetTop+this.barRowTarget.offsetHeight/2;this.element.style.setProperty("--search-compact-shift",`${e}px`),this.element.style.setProperty("--search-compact-backdrop-scale",""+Math.max(0,this.element.offsetHeight-e)/this.element.offsetHeight),this.element.style.setProperty("--search-compact-lift",e-i-t/2+"px"),this.update()}update(){const e=window.scrollY;if(!this.media.matches||e<=this.expandBeforeValue)return this.pinnedAt=null,void this.setCompact(!1);if(!this.compact&&!this.isPanelOpen()){if(null!==this.pinnedAt){if(Math.abs(e-this.pinnedAt)<this.recollapseDistanceValue)return;this.pinnedAt=null}e>this.collapseAfterValue&&this.setCompact(!0)}}interceptFieldClick(e){if(!this.compact)return;const t=e.target.closest("[data-search-field]");t&&(e.preventDefault(),e.stopPropagation(),document.activeElement?.blur(),this.pinnedAt=window.scrollY,this.expanding=!0,this.setCompact(!1),this.afterExpand(()=>t.click()))}afterExpand(e){clearTimeout(this.reopenTimer),this.element.removeEventListener("transitionend",this.onExpanded);let t=!1;const i=()=>{t||("none"===getComputedStyle(this.element).transform?(t=!0,this.expanding=!1,clearTimeout(this.reopenTimer),this.element.removeEventListener("transitionend",this.onExpanded),requestAnimationFrame(e)):this.reopenTimer=setTimeout(i,60))};this.onExpanded=e=>{e.target===this.element&&"transform"===e.propertyName&&i()},this.element.addEventListener("transitionend",this.onExpanded),this.reopenTimer=setTimeout(i,600)}isPanelOpen(){return Boolean(this.panel?.open)}onPanelToggle(){this.isPanelOpen()||this.recollapse()}onFocusOut(e){this.card.contains(e.relatedTarget)||this.isPanelOpen()||this.recollapse()}recollapse(){null===this.pinnedAt||this.expanding||requestAnimationFrame(()=>{this.isPanelOpen()||null===this.pinnedAt||this.expanding||(this.pinnedAt=null,this.update())})}setCompact(e){this.compact!==e&&(e&&this.fitCard(),this.compact=e,this.element.toggleAttribute("data-compact",e),document.documentElement.toggleAttribute("data-search-compact",e),this.dispatch("change",{detail:{compact:e}}))}lockExpandedSizes(){if(!this.card)return;for(const e of this.card.querySelectorAll("[data-search-field]"))e.style.removeProperty("--search-field-expanded-width");for(const e of this.card.querySelectorAll("[data-search-field]"))e.style.setProperty("--search-field-expanded-width",`${e.offsetWidth}px`);const e=this.card.querySelector('[data-slot="submitLabel"]');e&&(e.style.removeProperty("--search-submit-label-width"),e.style.setProperty("--search-submit-label-width",`${Math.ceil(e.scrollWidth)}px`))}fitCard(){if(!this.card)return;let e=60;for(const t of this.card.querySelectorAll("[data-search-field]")){const i=Math.ceil(this.fieldTextWidth(t)+24+this.clearButtonWidth(t));t.style.setProperty("--search-field-width",`${i}px`),e+=i}this.card.style.setProperty("--search-compact-width",`${e}px`)}fieldTextWidth(e){const t=e.querySelector("input");if(t){const e=getComputedStyle(t),i=t.value?e.fontWeight:700;return this.measureText(t.value||t.placeholder,`${i} ${e.fontSize} ${e.fontFamily}`)}const i=e.querySelector('[data-slot="fieldBody"] > :not([data-slot="fieldLabel"])');if(!i)return 0;const s=document.createRange();return s.selectNodeContents(i),s.getBoundingClientRect().width}clearButtonWidth(e){const t=e.querySelector('[data-search--bar-target$="Clear"]');
1if(!t?.offsetWidth)return 0;const i=getComputedStyle(e);return t.offsetWidth+Number.parseFloat(getComputedStyle(t).marginRight)+Number.parseFloat(i.columnGap)}measureText(e,t){this.canvas??=document.createElement("canvas");const i=this.canvas.getContext("2d");return i.font=t,i.measureText(e).width}}}}]);

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.