!function(){"use strict";var e=window.window.searchAndFilter.frontend.packages.core,t=window.window.searchAndFilter.frontend.packages.core.hooks,n=window.searchAndFilter.frontend.packages.hooks,o=window.searchAndFilter.frontend.packages.components,a=window.searchAndFilter.frontend.packages.utils;function s(){}function c(e,t=s){const n={},o={nodes:{}};return e&&(o.nodes=r(e,null,n,t)),{getNode:function(e){return n[e]},getRoot:function(){return o}}}function r(e,t,n,o,a){const s={};return e.forEach((e=>{const c=a??e.value,l=function(e,t,n,o,a=[]){return{value:e,object:t,parent:n,nodes:a,root:o}}(e.value,e,t,c,[]);e.options&&(l.nodes=r(e.options,l,n,o,c)),e=o(e),s[e.value]=l,n[e.value]=l})),s}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let e=[];Object.keys(b).forEach((t=>{"true"===b[t]&&e.push(t)}))}),[b]);const y=function(e,n=s){return(0,t.useMemo)((()=>c(e,n)),[e])}(e,v("checkbox")),{getNode:w,getRoot:O}=y,x=O();function C(e){return Object.keys(e.nodes).length>0}function j(e,t,n){const o=e.nodes;let s={};const c=[];if(C(e)){c.push(e);const n=Object.keys(o);n.forEach((e=>{const n=o[e];s=(0,a.mergeObjects)(s,j(n,t))}));const l={true:0,false:0,mixed:0},u=n.length,i={};n.forEach((e=>{const t=o[e].value,n=s[t];l[n]++})),l.true===u?(s[e.value]="true",i[e.value]="true"):l.false===u?(s[e.value]="false",i[e.value]="false"):(s[e.value]="mixed",i[e.value]="mixed",r={[e.value]:s},m((e=>(0,a.mergeObjects)(e,r))))}else t.has(e.value)?s[e.value]="true":s[e.value]="false";var r;return s}function I(e,t,n="all"){let o=(0,a.cloneArray)(e);const s=t.nodes;return Object.keys(s).forEach((t=>{const a=s[t];C(a)?(o=o.concat(I(e,a,n)),o.push(a.value)):("all"===n||b[a.value]===n)&&o.push(a.value)})),o}return(0,t.useLayoutEffect)((()=>{h(f.current,e)||m({}),f.current=e,x.nodes&&Object.keys(x.nodes).forEach((e=>{const t=j(x.nodes[e],new Set(n));k((e=>(0,a.mergeObjects)(e,t)))}))}),[x]),(0,t.useLayoutEffect)((()=>{const e=new Set(n),t=[];!function(e,t,n){for(const o of e)t.has(o)||n(o);for(const o of t)e.has(o)||n(o)}(l.current,e,(e=>{const n=w(e);n&&!t.includes(n.root)&&t.push(n.root)})),l.current=e,t.forEach((t=>{const n=j(w(t),e);k((e=>(0,a.mergeObjects)(e,n)))}))}),[n]),[b,e=>{const t=g[e]??!1,s=w(e),c=C(s),l=c&&t?i:u,h=b[e]??"false",f=(0,o.checkableGetNextState)(l,h),v=(0,a.cloneArray)(n);if(c)"true"===f?(I([],s).forEach((e=>{p(v,e)})),p(v,e)):"false"===f?(I([],s).forEach((e=>{d(v,e)})),d(v,e)):"mixed"===f&&(Object.keys(g[e]).forEach((t=>{"true"===g[e][t]&&p(v,t)})),d(v,e)),r(v);else{if("true"===f){p(v,e);let t=s;for(;t;){let n=!0;Object.keys(t.nodes).forEach((t=>{t!==e&&"true"!==b[t]&&(n=!1)})),n&&p(v,t.value),t=t.parent}}else if("false"===f){d(v,e);let t=s;for(;t.parent;)t=t.parent,d(v,t.value)}else"mixed"===f&&d(v,e);r(v)}}]}function p(e,t){-1===e.indexOf(t)&&e.push(t)}function d(e,t){const n=e.indexOf(t);-1!==n&&e.splice(n,1)}const v=e=>t=>(t.id=(0,n.generateInputId)(e,(0,n.getInstanceId)(g)),t),b=({type:n,options:s,value:c,onChange:r,showLabel:i,label:h,isInteractive:f,...v})=>{const[b,k]=function(e,n){const[s,c]=(0,t.useState)({});return(0,t.useLayoutEffect)((()=>{const t={},n=new Set(e);for(const e of n)n.has(e)&&(t[e]="true");c(t)}),[e]),[s,t=>{const c=u,r=s[t]??"false",l=(0,o.checkableGetNextState)(c,r),i=(0,a.cloneArray)(e);"true"===l?p(i,t):d(i,t),n(i)}]}(c,r);return(0,e.h)(o.CheckableSkeleton,l({},v,{type:"checkbox",options:s,value:c,onChange:r,checkableState:b,onUpdateOption:k,CheckableOptionComponent:g,showLabel:i,label:h,isInteractive:f}))},k=({options:t,value:n,onChange:a,showLabel:s,label:c,isInteractive:r,...u})=>{const[i,h]=f(t,n,a);return(0,e.h)(o.CheckableSkeleton,l({},u,{type:"checkbox",options:t,value:n,onChange:a,checkableState:i,onUpdateOption:h,CheckableOptionComponent:g,showLabel:s,label:c,isInteractive:r}))},g=({option:t,type:a,onUpdate:s,isInteractive:c=!0,checkedState:r="false",groupId:l,countLabel:u,showCount:i})=>{const{label:h,value:f,id:p}=t,d=t.options||[],v=(0,n.useInstanceId)(g),b=(0,n.generateInputId)(a,l,p??v),k="search-filter-input-"+a,m="true"===r||"mixed"===r,y=m?" "+k+"--is-active":"",w=d?.length>0;let O="";"true"===r?O="-checked":"mixed"===r&&(O="-mixed");const x=`#sf-svg-${a}${O}`;let C="";return d&&(C=d.map((e=>e.id)).join(",")),(0,e.h)("div",{className:k+y,"data-option-value":f},(0,e.h)("input",{id:b,type:a,readOnly:!c,tabIndex:c?null:-1,className:"search-filter-input-"+a+"__input",onChange:e=>{e.preventDefault(),s(f)},checked:m,name:b,"aria-checked":r,"aria-controls":""!==C?C:void 0,value:f}),(0,e.h)("label",{htmlFor:b,className:"search-filter-input-"+a+"__container",onClick:e=>{c||e.preventDefault()}},(0,e.h)("span",{className:"search-filter-input-"+a+"__control","aria-hidden":"true"},(0,e.h)("svg",null,(0,e.h)("use",{xlinkHref:x}))),(0,e.h)("span",{className:"search-filter-input-"+a+"__label"},h,u?(0,e.h)("span",{className:"search-filter-input-"+a+"__count"},u):null)),w&&(0,e.h)(o.CheckableOptions,{type:a,options:d,isInteractive:c,showCount:i}))};g.templateVars=["value","label","uid",["hasChildren",{type:"control"}],"checkedState","activeClass","svgLink",["options",{type:"list",depth:10,child:{type:"object",props:["value","label",{name:"options",type:"list"}]}}]],(0,window.searchAndFilter.frontend.packages.registry.register)(["packages","components"],"CheckboxControl",(t=>"yes"===t.hierarchical?(0,e.h)(k,t):(0,e.h)(b,t)))}();