1import{d as te,j as ae,s as c,a4 as ne,G as re,o,a as m,w as F,f as se,l as T,e as g,T as ie,F as U,r as le,a2 as oe,a3 as ue,b as E,p as S,a9 as A,ab as z,O as ce,y,L as de}from"./DMtessBZ.js";import{_ as ve}from"./QIb6b4iM.js";import{r as M}from"./Cp4Bn3Gd.js";import{_ as fe}from"./Cf0S3ejt.js";import{a as me}from"./CbrWtI4L.js";import"./Bl2doV56.js";import"./Bgg_6lzn.js";import"./DkAyK1Zo.js";import"./D0XYUB9l.js";import"./BwtUVm71.js";import"./CA2yd7Ic.js";import"./CXHmLyPE.js";import"./DgJuzMOI.js";import"./Drq524Xm.js";function pe(r){return r.match!==void 0}function D(r,_){if(pe(r)){const u=r.match==="all"?"every":"some";return r.rules[u](B=>D(B,_))}const s=_[r.id]??[];switch(r.operator){case"equal":return s.includes(String(r.value));case"notEqual":return!s.includes(String(r.value));case"includesAny":return Array.isArray(r.value)&&r.value.some(u=>s.includes(u));case"notIncludesAny":return Array.isArray(r.value)&&!r.value.some(u=>s.includes(u));case"isEmpty":return s.length===0;case"isNotEmpty":return s.length>0;default:return!0}}function _e(r,_){const s={};if(!r?.length)return s;for(const u of r){const p=D(u.when,_)?u.then:u.otherwise??[];for(const n of p){const d=s[n.id]??(s[n.id]={});switch(n.action){case"setVisibility":d.hidden=!n.payload;break;case"setOptions":d.options=n.payload;break;case"setValue":d.value=Array.isArray(n.payload)?n.payload:[String(n.payload)];break;case"setRequired":d.required=!!n.payload;break}}}return s}const he={class:"c-filter-form__layout"},ye={class:"c-filter-form__main"},be={key:0,class:"c-filter-form__progress"},ge={key:0,class:"c-filter-form__back"},ke={key:1,class:"c-filter-form__next"},we={key:2,class:"c-filter-form__submit"},G="filter",Le=te({__name:"FilterForm",props:{elements:{},buttons:{},conditionalLogic:{}},emits:["submit","edit"],setup(r,{emit:_}){const s=r,u=_,p=ae("trinity-url-update",null)?.namespace(G)??null,n=ce({}),d=y(null),H=y(null),v=y([0]),V=y(!1),k=y(!1),b=y(!0),C=s.elements.length,f=c(()=>v.value[v.value.length-1]),I=c(()=>f.value===C-1),J=c(()=>s.elements[f.value]),$=c(()=>J.value?.data?.progressBar),K=c(()=>$.value?$.value.current/$.value.total*100:(f.value+1)/C*100);function P(t){return s.buttons?.find(a=>a?.[t])?.[t]}const N=c(()=>P("next")),O=c(()=>P("prev")),h=c(()=>P("submit"));ne(()=>{for(const t of s.elements)for(const a of t.data.elements??[]){const e=a.data;e?.id&&(e.activeFilters?.length&&(n[e.id]=e.activeFilters),p&&e.activeFilters?.length&&!p.states[e.id]?.length&&p.set(e.id,e.activeFilters))}}),c(()=>(x.value[f.value]?.data.elements??[]).some(a=>(a.data?.validation??[]).some(e=>e.type==="not_allowed"&&!M(e,n[a.data.id]??a.data.activeFilters??[]))));function q(){const a=(x.value[f.value].data.elements??[]).every(e=>e.data?.validation?.length?e.data.validation.every(i=>M(i,n[e.data.id]??e.data.activeFilters??[])):!0);return a||(k.value=!0),a}async function L(){await de(),d.value?.querySelector(".c-filter-item.is-error")?.scrollIntoView({behavior:"smooth",block:"center"})}async function Q(){if(!I.value){if(!q()){L();return}k.value=!1,b.value=!1,await new Promise(t=>setTimeout(t,200)),v.value=[...v.value,f.value+1],d.value?.scrollIntoView({behavior:"smooth",block:"start"}),b.value=!0}}async function W(){v.value.length>1&&(k.value=!1,b.value=!1,await new Promise(t=>setTimeout(t,200)),v.value=v.value.slice(0,-1),b.value=!0)}function X(t,a,e){a==="filter-change"&&(e.values?.length?n[e.id]=e.values:delete n[e.id],p?.set(e.id,e.values))}function Y(t){const a=n,e=[];for(const[l,w]of Object.entries(a))w.length&&e.push(`${G}[${encodeURIComponent(l)}]=${encodeURIComponent(w.join(","))}`);if(!e.length)return t;const i=t.includes("?")?"&":"?";return`${t}${i}${e.join("&")}`}function j(){if(!q()){L();return}const t=h.value?.data?.href??h.value?.data?.url;if(t){window.location.href=Y(t);return}u("submit")}const R=c(()=>_e(s.conditionalLogic,n)),x=c(()=>s.elements.map((t,a)=>({...t,data:{...t.data,elements:(t.data.elements??[]).map(e=>{const i=e?.data?.id;if(!i)return e;const l=R.value[i];return l?.hidden?null:{...e,data:{...e.data,...l?.options!==void 0?{options:l.options}:{},...l?.value!==void 0?{activeFilters:l.value}:{}
1,...l?.required!==void 0?{validation:Z(e.data.validation,l.required)}:{},forceValidate:k.value&&a===f.value}}}).filter(e=>e!==null)}})));re(R,t=>{for(const[a,e]of Object.entries(t)){if(e.value===void 0)continue;const i=n[a]??[];i.length===e.value.length&&i.every((w,ee)=>w===e.value[ee])||(n[a]=e.value,p?.set(a,e.value))}},{deep:!0});function Z(t,a){const e=t??[],i=e.some(l=>l.type==="not_blank");return a&&!i?[...e,{type:"not_blank",message:"Pflichtfeld"}]:!a&&i?e.filter(l=>l.type!=="not_blank"):e}return(t,a)=>(o(),m("div",{ref_key:"wizardEl",ref:d,class:"c-filter-form"},[F("div",he,[F("div",ye,[se(C)>1?(o(),m("div",be,[T(me,{val:K.value,textPosition:"bottom"},null,8,["val"])])):g("",!0),F("div",{class:ie(["c-filter-form__content",{"is-fading":!b.value}])},[(o(!0),m(U,null,le(x.value,(e,i)=>oe((o(),m("div",{key:i,class:"c-filter-form__step-content"},[T(ve,{elements:e.data.elements,label:e.data.stepLabel,onEventHandler:X},null,8,["elements","label"])])),[[ue,f.value===i]])),128))],2),F("div",{ref_key:"actionsEl",ref:H,class:"c-filter-form__actions"},[v.value.length>1?(o(),m("div",ge,[O.value?(o(),E(A,S({key:0},O.value.data,{disabled:V.value,onClick:W}),null,16,["disabled"])):g("",!0)])):g("",!0),I.value?(o(),m("div",we,[h.value?(o(),m(U,{key:0},[h.value.type==="base-link"?(o(),E(fe,S({key:0},h.value.data,{onClick:z(j,["prevent"])}),null,16)):(o(),E(A,S({key:1},h.value.data,{disabled:V.value,onClick:z(j,["prevent"])}),null,16,["disabled"]))],64)):g("",!0)])):(o(),m("div",ke,[N.value?(o(),E(A,S({key:0},N.value.data,{disabled:V.value,onClick:Q}),null,16,["disabled"])):g("",!0)]))],512)])])],512))}});export{Le 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.