{"version":3,"file":"FilterStack.BoJOuzyo.mjs","names":["useState","_Fragment"],"sources":["https:/framerusercontent.com/modules/MMmD7tIbcuZtl0S9S4f5/RcEskQ1WZvRmZGqdbLXF/FilterStack.js"],"sourcesContent":["/* ------------------------------------------------------------------\n   FilterStack – 親 Stack 用オーバーライド\n   ---------------------------------------------------------------\n   ✔ 子フレームの aria-label から\n       keys=キー1,キー2;order=N\n     をパースして初期ソート & 絞り込み\n   ✔ URL クエリ\n       /result?keys=キー1,キー2\n     を読み取り AND 条件でフィルタ\n   使い方\n   1. 子フレームに aria-label をセット\n        aria-label=\"keys=低資金派,初心者向け;order=1\"\n   2. 親 Stack にこの FilterStack をアタッチ\n------------------------------------------------------------------ */\"use client\";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useEffect}from\"react\";export function FilterStack(Component){return props=>{/* ---------- SSR スキップ ------------------------------ */if(typeof window===\"undefined\")return /*#__PURE__*/_jsx(Component,{...props});/* ---------- URL → アクティブキー --------------------- */const[activeKeys,setActiveKeys]=useState(new Set);useEffect(()=>{const qs=new URLSearchParams(window.location.search);const keys=qs.get(\"keys\")?.split(\",\").map(k=>k.trim()).filter(Boolean)??[];setActiveKeys(new Set(keys));},[]);/* ---------- DOM 反映 -------------------------------- */useEffect(()=>{const layer=document.querySelector(`.${props.className}`);if(!layer)return;const cards=Array.from(layer.children);/* aria-label → { order, keys[] } 抽出 */const parse=(label=\"\")=>{const order=parseInt(label.match(/order=([0-9]+)/)?.[1]||\"0\",10);const keys=label.match(/keys=([^;]+)/)?.[1].split(\",\").map(k=>k.trim())||[];return{order,keys};};/* 1) order 昇順ソート */cards.sort((a,b)=>parse(a.getAttribute(\"aria-label\")).order-parse(b.getAttribute(\"aria-label\")).order);/* 2) keys フィルタ */cards.forEach(card=>{const{keys}=parse(card.getAttribute(\"aria-label\"));const show=activeKeys.size===0||Array.from(activeKeys).every(k=>keys.includes(k));card.classList.toggle(\"hidden\",!show);});/* 3) 並べ替え後に再配置 */cards.forEach(card=>layer.appendChild(card));},[activeKeys,props.className]);/* ---------- render ---------------------------------- */return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(Component,{...props}),/*#__PURE__*/_jsx(\"style\",{children:`\n                    .${props.className} .hidden { display: none; }\n                `})]});};}\nexport const __FramerMetadata__ = {\"exports\":{\"FilterStack\":{\"type\":\"reactHoc\",\"name\":\"FilterStack\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FilterStack.map"],"mappings":"2IAauM,SAAgB,EAAY,EAAU,CAAC,MAAO,IAAO,CAAyD,GAAU,IAAS,OAAY,OAAoB,EAAK,EAAU,CAAC,GAAG,EAAM,CAAC,CAAqD,GAAK,CAAC,EAAW,GAAeA,EAAS,IAAI,IAAI,CAAujC,OAAtjC,MAAc,CAAsD,IAAM,EAAlD,IAAI,gBAAgB,EAAO,SAAS,OAAO,CAAe,IAAI,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,GAAG,EAAE,MAAM,CAAC,CAAC,OAAO,QAAQ,EAAE,EAAE,CAAC,EAAc,IAAI,IAAI,EAAK,CAAC,EAAG,EAAE,CAAC,CAAyD,MAAc,CAAC,IAAM,EAAM,SAAS,cAAc,IAAI,EAAM,YAAY,CAAC,GAAG,CAAC,EAAM,OAAO,IAAM,EAAM,MAAM,KAAK,EAAM,SAAS,CAA8C,GAAO,EAAM,MAAyJ,CAAC,MAAxI,SAAS,EAAM,MAAM,iBAAiB,GAAG,IAAI,IAAI,GAAG,CAA0F,KAA9E,EAAM,MAAM,eAAe,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAmB,EAAuB,EAAM,MAAM,EAAE,IAAI,EAAM,EAAE,aAAa,aAAa,CAAC,CAAC,MAAM,EAAM,EAAE,aAAa,aAAa,CAAC,CAAC,MAAM,CAAmB,EAAM,QAAQ,GAAM,CAAC,GAAK,CAAC,QAAM,EAAM,EAAK,aAAa,aAAa,CAAC,CAAO,EAAK,EAAW,OAAO,GAAG,MAAM,KAAK,EAAW,CAAC,MAAM,GAAG,EAAK,SAAS,EAAE,CAAC,CAAC,EAAK,UAAU,OAAO,SAAS,CAAC,EAAK,EAAG,CAAmB,EAAM,QAAQ,GAAM,EAAM,YAAY,EAAK,CAAC,EAAG,CAAC,EAAW,EAAM,UAAU,CAAC,CAA+E,EAAMC,EAAU,CAAC,SAAS,CAAc,EAAK,EAAU,CAAC,GAAG,EAAM,CAAC,CAAc,EAAK,QAAQ,CAAC,SAAS;uBACnoD,EAAM,UAAU;kBACrB,CAAC,CAAC,CAAC,CAAC,uBAF2I,IAAsC"}