1import{a0 as V,ag as q,f as u,c1 as k,D as E,F as U,G as j,J as $,u as i,bc as K,aB as Y,c2 as W,a9 as X,c3 as Z,af as ee,a as te,w as O,r as _,a4 as se,E as L,P as N,b_ as re,aK as ae,I as ne,b$ as oe,S as ue,U as le}from"./vendor-a0789617.js";import{u as Q,l as ie,m as ce,a1 as pe,Y as de,n as ve,a2 as fe,a as me,_ as ge}from"./index-a0a0e1a1.js";import{N as B,_ as he}from"./currency-6a946cb1.js";import{g as M}from"./lodash-86ed0c75.js";import{u as _e}from"./useScrollObserver-6a7bd712.js";import"./axios-bb6ee5b8.js";import"./vee-validate-daa3561c.js";import"./swiper-ade697ba.js";/*! @license Third-party license notices: /dist/velux-marketing/client/THIRD_PARTY_NOTICES.txt */const ye=V({__name:"CourseItem",props:{course:{},currency:{}},setup(y){const r=y,{course:n,currency:p}=X(r),f=Q(),{formatCurrencyValue:m}=Z(),{t}=q(),d=u(()=>`${(f?.sitecoreContext?.requestUrl||"/").replace(/\/$/,"")}/${n.value.id}`),C=u(()=>[{src:n.value.image||"",alt:n.value.Title||"N/A"}]),c=u(()=>t("Feature/Courses/Learn More")),v=u(()=>{const e=[],h=b(),x=R();return h&&e.push({label:t("Feature/Courses/CourseDuration"),value:h}),n.value.isSellable?e.push({label:t("Feature/Courses/Price"),value:`${x} ${t("Feature/Courses/VAT")}`}):e.push({label:t("Feature/Courses/Price"),value:t("Feature/Courses/Free")}),e}),g={architect:"Feature/Courses/Account Group Tag/Architect",dealer:"Feature/Courses/Account Group Tag/Dealer",installer:"Feature/Courses/Account Group Tag/Installer",internal:"Feature/Courses/Account Group Tag/Internal",school:"Feature/Courses/Account Group Tag/School"},F=u(()=>n.value.userGroup?.map(e=>({text:g[e.toLowerCase()]?t(g[e.toLowerCase()]):e}))||[]),b=()=>{const e=Number.parseFloat(n?.value?.durationLength||"0");if(e<=0)return"";const h=n.value.durationUnit||"",x=(()=>{switch(n.value.durationUnit){case"hours":return t("Feature/Courses/Hours");case"minutes":return t("Feature/Courses/Minutes");default:return h}})();return n.value.durationUnit?`${e} ${x}`:e.toString()},R=()=>{const e=Number.parseFloat(n.value.Price||"0");if(e<=0)return"";const h=k(f?.sitecoreContext?.language||"en"),x=p.value?p:k(B);return m(e,x,h)};return(e,h)=>(E(),U(i(W),{title:i(n).Title,description:i(n).description,tags:F.value,media:C.value,"media-props":{isFlowboxEnabled:!0},class:"col-span-2 sm:col-span-6 md:col-span-8 lg:col-span-6","is-card-clickable":""},{list:j(()=>[$(i(K),{items:v.value,variant:"label",layout:"horizontal",size:"s"},null,8,["items"])]),button:j(()=>[$(i(Y),{href:d.value,text:c.value,variant:"tertiary"},null,8,["href","text"])]),_:1},8,["title","description","tags","media"]))}}),Ce=y=>{const r=ee(),n=_({}),p=_(!1),f=t=>{const d=Object.entries(t),C=Object.fromEntries(d.map(([c,v])=>[c,v.join("|")]));r.push({query:C})},m=t=>{const d=Object.keys(t);return Object.fromEntries(d.map(c=>[c,t[c]?.split("|")]))};return te(()=>{const t=r.currentRoute.value.query;n.value=m(t),p.value=!0}),O(()=>r.currentRoute.value.query,t=>{const d=m(t);y(d)}),{updateQueryParams:f,initialFilters:n,isRoutingInitialized:p}},P=(y,r)=>`${y}||${r}`,Fe=({uid:y})=>{const r=_([]),n=l=>{const o=Object.entries(l).flatMap(([a,s])=>Array.isArray(s)?s.map(A=>P(a,A)):P(a,s));JSON.stringify(r.value)!==JSON.stringify(o)&&(r.value=o)},p=ie(),{updateQueryParams:f,initialFilters:m,isRoutingInitialized:t}=Ce(n),{logErrorMessage:d}=ce(),C=_(!1),c=_(!1),v=_([]),g=_(null),F=Q(),b=u(()=>M(F,"sitecoreContext.language")||"en"),R=u(()=>M(F,"sitecoreContext.itemPath")||"/"),e=u(()=>r.value.reduce((o,a)=>{const[s,A]=a.split("||");return o[s]||(o[s]=[]),o[s].push(A),o},{})),h=u(()=>{const l=pe,o=Object.fromEntries(Object.entries(e.value).filter(([a])=>l.includes(a)).map(([a,s])=>[a,s?.join("|")]));return new URLSearchParams(o)}),x=async()=>{const l=`${p.apiHost}/sitecore/api/layout/placeholder`;if(c.value&&g.value&&g.value.abort(),!r.value.length&&!m.value){v.value=[];return}c.value=!0,g.value=new AbortController;const o=`${l}?placeholderName=main&${h.value.toString()}&sc_apikey=${p.sitecoreApiKey}&item=${R.value}&sc_lang=${b.value}`;let a;try{a=await ve(o,void 0,void 0,g.value.signal)}catch(s){s instanceof Error&&s.name===fe?g.value=null:d({message:"Error while fetching courses data.",componentName:"Courses VDS"}),c.value=!1;return}if(a.status===200&&a.data){const s=a.data?.elements?.find(A=>A?.uid===y);v.value=s?.fields?.courses||[]}c.value=!1,g.value=null},D=()=>{C.value&&x(),t.value&&(C.value=!0)},I=()=>{const l=Object.entries(m.value).flatMap(([o,a])=>Array.isArray(a)?a.map(s=>P(o,s)):P(o,a));r.value=l},G=l=>{const[o,a]=l.split("||"),s=r.value.indexOf(l);s===-1&&o==="format"&&a?.toLowerCase()==="webinar"&&(r.value=r.value.filter(A=>{const[S]=A.split("||");return S!=="location"&&S!==de.locations})),s>-1?r.value.splice(s,1):r.value.push(l)};return O(m,I,{deep:!0}),O(r,D,{deep:!0}),O(e,()=>f(e.value),{deep:!0}),{handleFilterChange:G,isLoading:c,filteredCourses:v,activeFiltersByGroup:e,initialFilters:m}},be=["id","data-section-name"],xe={class:"vlx-grid"},Ae={class:"col-span-full sm:col-span-5"},Ie={class:"col-span-full sm:col-span-18 sm:col-start-7 relative"},Re={key:0,class:"absolute top-0 inset-0 w-full !z-10"},we={class:"fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2"},Ee={class:"vlx-grid"},z=12,Oe=V({__name:"CoursesVDS",props:{rendering:{default:()=>({uid:"",datasourceHasLanguageVersion:""})},params:{},fields:{default:()=>({courses:[],filters:{},metadata:{currency:B}})}},setup(y){const r=y,{rendering:n,fields:p}=r,{uid:f}=n,{renderingIndex:m}=me(),{isMobile:t}=se(),{t:d}=q(),{wrapper:C,isBottomVisible:c}=_e(f),v=_(1),{handleFilterChange:g,isLoading:F,filteredCourses:b,activeFiltersByGroup:R}=Fe({uid:f}),e=u(()=>p.courses||[]),h=u(()=>p.filters||{}),x=u(()=>p.metadata?.currency||B),D=u(()=>R.value&&Object.keys(R.value).length>0),I=_(e.value),G=u(()=>I.value.slice(0,v.value*z)),l=_(!1),o=u(()=>!l.value||F.value),a=u(()=>!t.value),s=u(()=>F.value?null:b.value.length||D.value?b.value.length:e.value.length||0),A=()=>{v.value=1},S=()=>{b.value.length>0||D.value?I.value=b.value:I.value=e.value,A()},J=()=>{l.value=!1,S()},H=w=>
1{l.value=!0,g(w)};return O([c,I],([w])=>{w&&I.value.length>v.value*z&&(v.value+=1)}),O([b,a],([,w])=>{w&&S()}),(w,Se)=>(E(),L("section",{id:i(f),ref_key:"wrapper",ref:C,"data-section-name":i(m)(i(f)).id,class:"vlx-container"},[N("div",xe,[N("div",Ae,[$(he,{filters:h.value,"items-count":s.value,"active-filters-by-group":i(R),"is-apply-button-disabled":o.value,onFilterChange:H,onApplyFilters:J},null,8,["filters","items-count","active-filters-by-group","is-apply-button-disabled"])]),N("div",Ie,[i(F)?(E(),L("div",Re,[$(i(ae),{open:"",variant:"white","transparency-mode":"opaque"},{default:j(()=>[N("div",we,[$(i(re),{size:"m"})])]),_:1})])):ne("",!0),N("div",Ee,[!I.value.length&&!i(F)?(E(),U(i(oe),{key:0,title:i(d)("Feature/Courses/NoResult"),message:i(d)("Feature/Courses/NoResultExplain"),class:"col-span-full"},null,8,["title","message"])):(E(!0),L(ue,{key:1},le(G.value,T=>(E(),U(ye,{key:T.id,course:T,currency:x.value},null,8,["course","currency"]))),128))])])])],8,be))}});const Be=ge(Oe,[["__scopeId","data-v-b9c0f3b5"]]);export{Be 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.