PageSourceSearch

https://laakeinfo.fi/assets/SearchBar-BykBRiWQ.js

js laakeinfo.fi collected 2026-09-24 20:43:38 UTC 11,012 bytes, 1 lines download raw bytes

1import{r as e}from"./rolldown-runtime-hePW80VL.js";import{S as t}from"./vidstack-CMig48EW.js";import{B as n,C as r,D as i,E as a,G as o,M as s,O as c,S as l,Z as u,_ as d,at as f,b as p,ct as m,dt as h,et as g,ft as _,g as v,nt as y,ot as b,st as x,tt as S,w as C,x as w,y as ee}from"./vendor-jl6IHjNA.js";import{i as T,r as E,t as D}from"./queryMutator-B04V1wJR.js";import{i as O,r as k}from"./langStore-DPOWbGWq.js";var A=e(t(),1),j={searchActive:!1,searchString:``,query:``},M=x((e,t)=>({open:!1,openedInLocation:null,searchActive:!1,searchString:``,query:``,isStillAtOpenedLocation:()=>t().openedInLocation===window.location.pathname,setOpen:t=>e(t?{open:!0,openedInLocation:window.location.pathname}:{...j,open:!1}),setSearchString:t=>e({searchString:t}),setQuery:t=>e({query:t}),setSearchActive:t=>e({searchActive:t})})),N=(e,t)=>{let n={queryKey:t};for(let t of Object.keys(e))t!==`queryKey`&&Object.defineProperty(n,t,{enumerable:!0,configurable:!0,get:()=>e[t]});return n},P=e=>{let t=new URLSearchParams;Object.entries(e||{}).forEach(([e,n])=>{n!==void 0&&t.append(e,n===null?`null`:String(n))});let n=t.toString();return n.length>0?`/api/v1/search?${n}`:`/api/v1/search`},F=async(e,t)=>E(P(e),{...t,method:`GET`}),I=e=>[`/api/v1/search`,...e?[e]:[]],te=(e,t)=>{let{query:n,request:r}=t??{},i=n?.queryKey??I(e);return D({queryKey:i,queryFn:({signal:t})=>F(e,{signal:t,...r}),...n})};function ne(e,t,n){let r=te(e,t);return N(o(r,n),r.queryKey)}var L=x(e=>({ref:(0,A.createRef)(),setRef:t=>e(()=>({ref:t})),topNavOpen:!1,setTopNavOpen:t=>e(()=>({topNavOpen:t}))})),R=e=>{if(!e?.current){console.warn(`[HeaderStore] Invalid ref provided, cannot set header ref`);return}L.getState().setRef(e)},z=()=>L.getState().ref,B=()=>{let e=L.getState().topNavOpen;L.getState().setTopNavOpen(!e)},V={displayMobileOnly:`_displayMobileOnly_8etvj_6`,mobileTitle:`_mobileTitle_8etvj_6`,results:`_results_8etvj_13`,resultTitle:`_resultTitle_8etvj_13`,secondaryResultTitle:`_secondaryResultTitle_8etvj_13`,dialogOverlay:`_dialogOverlay_8etvj_39`,isFullscreen:`_isFullscreen_8etvj_47`,content:`_content_8etvj_55`,searchBarRoot:`_searchBarRoot_8etvj_60`,hiddenTriggerWrapper:`_hiddenTriggerWrapper_8etvj_86`,dialogContentWrapper:`_dialogContentWrapper_8etvj_106`,popoverContentWrapper:`_popoverContentWrapper_8etvj_125`,supportText:`_supportText_8etvj_132`,resultsWrapper:`_resultsWrapper_8etvj_138`,resultsInner:`_resultsInner_8etvj_165`,isNoDocument:`_isNoDocument_8etvj_213`,noResults:`_noResults_8etvj_225`},H=f(),U=e=>{M.getState().setOpen(e)},{setSearchString:W,setQuery:G,setSearchActive:K}=M.getState(),q=s(e=>{G(e),K(!0)},300),J={supportText:`search-support-text`,loading:`search-loading`,error:`search-error`,results:`search-results`,noResults:`search-no-results`},Y=()=>{let{t:e}=n();return(0,H.jsx)(`div`,{className:V.supportText,children:(0,H.jsx)(`p`,{children:e(`Search:SupportText`)})})},X=({isLoading:e,isFetching:t,isError:r,error:i})=>{let{t:a}=n();return e&&t?(0,H.jsx)(`div`,{className:V.supportText,role:`status`,"aria-live":`polite`,id:J.loading,children:(0,H.jsx)(`p`,{children:a(`Common:Loading`)})}):r?(console.log(`error`,i),(0,H.jsxs)(`div`,{className:V.supportText,role:`status`,"aria-live":`assertive`,id:J.error,children:[(0,H.jsx)(`p`,{children:a(`Error:UnexpectedError`)}),(0,H.jsx)(`p`,{children:i?.message})]})):(0,H.jsx)(H.Fragment,{})},re=({data:e,onClose:t,searchResultRef:n})=>{let r=_(),i=e=>{let n=M.getState().searchString;t(),O.trackSearchItemClickEvent(()=>({documentId:e.id,documentTitle:e.title,topLevelSubstances:e.secondaryTitle,searchString:n}))},a=(t,a)=>{if(t.key===`ArrowDown`)t.preventDefault(),n.current[a+1]?.focus();else if(t.key===`ArrowUp`)t.preventDefault(),n.current[a-1]?.focus();else if(t.key===`Enter`){let o=n.current[a],s=e?.[a];o&&s&&(t.preventDefault(),i(s),r(s.isNoDocument?`/documents/no-document/${s.id}`:`/documents/${s.id}`,{state:{eventSource:T.Search,isKeyboardNavigation:!0}}))}};return e?.map((e,t)=>(0,H.jsx)(`li`,{tabIndex:-1,children:(0,H.jsxs)(m,{ref:e=>{n.current[t]=e},role:`option`,to:e.isNoDocument?`/documents/no-document/${e.id}`:`/documents/${e.id}`,state:{eventSource:T.Search},tabIndex:0,onClick:()=>i(e),onKeyDown:e=>a(e,t),children:[(0,H.jsx)(`span`,{className:S({[V.resultTitle]:!0,[V.isNoDocument]:e.isNoDocument}),children:e.title}),(0,H.jsx)(`br`,{}),(0,H.jsx)(`span`,{className:S({[V.secondaryResultTitle]:!0,[V.isNoDocument]:e.isNoDocument}),children:e.secondaryTitle})]})},e.id))},ie=()=>{let{t:e}=n();return(0,H.jsx)(`li`,{children:(0,H.jsx)(`span`,{className:V.noResults,children:e(`Search:NoResults`)})})},ae=({data:e,isFetching:t,isSuccess:r,searchResultRef:i,onClose:a})=>{let{t:o}=n();return r?(0,H.jsx)(`div`,{className:V.resultsWrapper,"aria-busy":t,children:(0,H.jsx)(`div`,{className:V.results,children:(0,H.jsx)(`div`,{className:V.resultsInner,children:e&&e.length>0?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{id:J.results,className:`sr-only`,children:o(`Search:Results`,{count:e.length})}),(0,H.jsx)(`ul`,{role:`listbox`,children:(0,H.jsx)(re,{searchResultRef:i,data:e,onClose:a})})]}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{id:J.noResults,className:`sr-only`,children:o(`Search:NoResults`)}),(0,H.jsx)(`ul`,{role:`listbox`,children:(0,H.jsx)(ie,{})})]})})})}):(0,H.jsx)(H.Fragment,{})},oe=({className:e,children:t,inputRef:r,onClose:i,panelRef:a})=>{let{uiLangCode:o}=k(),{t:s}=n(),c=(0,A.useRef)([]),[l,f,p]=M(v(e=>[e.query,e.searchString,e.searchActive])),m=ne({searchTerm:l,language:o},{query:{enabled:l.length>=3}});(0,A.useEffect)(()=>()=>q.cancel(),[]);let h=e=>{let t=e.target.value;g(t)},g=e=>{W(e),e.trim().length>=3?q(e):(K(!1),q.cancel())},_=e=>
1{e.key===`ArrowDown`&&(e.preventDefault(),c.current[0]?.focus()),e.key===`Tab`&&f.trim().length<3&&(e.preventDefault(),i())},y=[!f&&J.supportText,m.isLoading&&J.loading,m.isError&&J.error,m.isSuccess&&m.data&&m.data.data.length>0&&J.results,!m.data?.data?.length&&J.noResults].filter(Boolean).join(` `);return(0,H.jsxs)(`div`,{ref:a,className:S(V.content,e),children:[(0,H.jsxs)(`div`,{className:V.displayMobileOnly,children:[(0,H.jsx)(`h4`,{className:V.mobileTitle,children:`Haku`}),(0,H.jsx)(u,{label:s(`Common:Close`),intent:`neutral`,displayType:`static`,variant:`transparent`,onClick:i})]}),(0,H.jsx)(`div`,{children:(0,H.jsx)(d,{ref:r,id:`main-search-input`,"aria-describedby":y,name:`searchText`,type:`text`,iconLeft:`Search`,value:f,displayType:`static`,variant:`solid`,autoComplete:`off`,role:`searchbox`,labelText:s(`Search:Placeholder`),onChange:h,onKeyDown:_})}),(0,H.jsx)(`div`,{id:`search-support-text`,children:(0,H.jsx)(Y,{})}),(0,H.jsx)(X,{isLoading:m.isLoading,isError:m.isError,isFetching:m.isFetching,error:m.error}),p&&(0,H.jsx)(ae,{data:m.data?.data,isFetching:m.isFetching,isSuccess:m.isSuccess,searchResultRef:c,onClose:i}),t]})},Z=({isFullscreen:e=!1,children:t,className:i,container:a,contentId:o,focusRef:c,panelRef:u,triggerRef:d,...f})=>{let{t:m}=n(),h=M(e=>e.open),_=b().getRootElement(),v=a??z()?.current,y=(0,A.useRef)(null),x=(0,A.useRef)(null),C=c??y,T=u??x,[E,D]=(0,A.useState)(0);!e&&h&&!_&&console.warn(`[SearchDialog] No portal container found. Please ensure that OverlayHost is rendered in the component tree.`);let O=e?_:v;(0,A.useLayoutEffect)(()=>{if(!h||!T.current||e)return;let t=()=>{if(!T.current)return;let e=T.current.getBoundingClientRect();D(Math.floor(window.innerHeight-e.top))};t();let n=s(()=>{t()},100);return window.addEventListener(`resize`,n),()=>{window.removeEventListener(`resize`,n),n.cancel()}},[h,T,e]);let k=e=>{e.preventDefault(),C.current?.focus()},j=e=>{M.getState().isStillAtOpenedLocation()&&(e.preventDefault(),d?.current?.focus())};return(0,H.jsx)(ee,{open:h,onOpenChange:U,children:(0,H.jsx)(l,{container:O,children:(0,H.jsx)(w,{className:S(V.dialogOverlay,e&&V.isFullscreen,i),style:{"--search-dialog-available-height":`${E}px`},children:(0,H.jsx)(`div`,{className:`layout-container`,children:(0,H.jsx)(`div`,{className:`layout-row`,children:(0,H.jsxs)(`div`,{className:`layout-col-xl-8 layout-col-start-xl-3 layout-col-md-10 layout-col-start-md-2`,children:[(0,H.jsx)(g,{asChild:!0,children:(0,H.jsx)(r,{children:m(`Search:Search`)})}),(0,H.jsx)(p,{id:o,className:V.dialogContentWrapper,...f,"aria-describedby":void 0,onOpenAutoFocus:k,onCloseAutoFocus:j,children:t})]})})})})})})},se=({children:e,className:t,contentId:n,anchor:r,focusRef:o,triggerRef:s,...l})=>{let u=M(e=>e.open),d=(0,A.useRef)(null),f=o??d,p=y().getRootElement();u&&!p&&console.warn(`[SearchPopover] No portal container found. Please ensure that PopoverHost is rendered in the component tree.`);let m=e=>{e.preventDefault(),f.current?.focus()},h=e=>{M.getState().isStillAtOpenedLocation()&&(e.preventDefault(),s?.current?.focus())};return(0,H.jsxs)(c,{open:u,onOpenChange:U,children:[(0,H.jsx)(C,{asChild:!0,children:r}),(0,H.jsx)(i,{container:p,children:(0,H.jsx)(a,{id:n,className:S(V.popoverContentWrapper,t),...l,"aria-describedby":void 0,side:`bottom`,align:`center`,sideOffset:-72,sticky:`always`,avoidCollisions:!1,onOpenAutoFocus:m,onCloseAutoFocus:h,children:e})})]})},Q=(e=768)=>{let[t,n]=(0,A.useState)(window.innerWidth<e);return(0,A.useEffect)(()=>{let t=()=>n(window.innerWidth<e);return window.addEventListener(`resize`,t),()=>window.removeEventListener(`resize`,t)},[e]),t},$=({anchorInput:e=!1})=>{let{t}=n(),r=M(e=>e.open),i=Q(),a=(0,A.useRef)(null),o=(0,A.useRef)(null),s=(0,A.useRef)(null),c=h();(0,A.useEffect)(()=>{M.getState().setOpen(!1)},[c]);let l=e?`search-popover`:`search-dialog`,u=()=>{U(!1)},f=()=>{U(!0)},p=e=>{if(!r){if(e&&`key`in e&&e.key!==`Enter`&&e.key!==` `)return!1;U(!0)}},m=(0,H.jsx)(oe,{inputRef:a,panelRef:o,onClose:u});if(e){let e=(0,H.jsx)(d,{ref:a,disabled:!0,id:`main-search-home-input`,labelText:t(`Search:Placeholder`),iconLeft:`Search`,variant:`overlay-dark`,displayType:`static`,tabIndex:-1,onFocus:f});return(0,H.jsx)(`div`,{ref:s,className:V.searchBarRoot,id:`open-search`,role:`button`,"aria-label":t(`Search:Open`),"aria-expanded":r,"aria-controls":r?l:void 0,"aria-haspopup":`dialog`,tabIndex:0,onKeyDown:p,onClick:p,children:i?(0,H.jsxs)(H.Fragment,{children:[e,r&&(0,H.jsx)(Z,{isFullscreen:i,focusRef:a,panelRef:o,triggerRef:s,children:m})]}):(0,H.jsx)(se,{focusRef:a,triggerRef:s,anchor:(0,H.jsx)(`div`,{inert:!0,children:e}),children:m})})}let g=(0,H.jsx)(d,{ref:a,disabled:!0,compact:!0,"aria-label":t(`Search:Placeholder`),displayType:`static`,iconLeft:`Search`,id:`main-search-header-input`,placeholder:t(`Search:Placeholder`),size:`small`,tabIndex:-1,variant:`overlay-dark`,onFocus:f});return(0,H.jsxs)(`div`,{ref:s,className:V.searchBarRoot,id:`open-search`,role:`button`,"aria-label":t(`Search:Open`),"aria-expanded":r,"aria-controls":r?l:void 0,"aria-haspopup":`dialog`,tabIndex:0,onKeyDown:p,onClick:p,children:[g,r&&(0,H.jsx)(Z,{isFullscreen:i,focusRef:a,panelRef:o,triggerRef:s,children:m})]})},ce=()=>(0,H.jsx)($,{anchorInput:!1}),le=()=>(0,H.jsx)($,{anchorInput:!0});export{L as a,B as i,le as n,M as o,R as r,ce as t};

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.