{"version":3,"file":"FilterStack.uWs67EpN.mjs","names":["useState","_Fragment"],"sources":["https:/framerusercontent.com/modules/zPdVZYzz1kgdqz2ELz7v/M5j4eITeblUwuSILakAr/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":"yNAauM,SAAgB,EAAY,EAAU,CAAC,MAAO,IAAO,CAAyD,GAAU,IAAS,OAAY,OAAoB,EAAK,EAAU,CAAC,GAAG,EAAM,EAAsD,GAAK,CAAC,EAAW,EAAc,CAACA,EAAS,IAAI,KAA2jC,OAAtjC,MAAc,CAAC,IAAM,EAAG,IAAI,gBAAgB,EAAO,SAAS,QAAc,EAAK,EAAG,IAAI,SAAS,MAAM,KAAK,IAAI,GAAG,EAAE,QAAQ,OAAO,UAAU,EAAE,CAAC,EAAc,IAAI,IAAI,GAAQ,EAAC,EAAE,EAA0D,MAAc,CAAC,IAAM,EAAM,SAAS,cAAc,IAAI,EAAM,aAAa,GAAG,CAAC,EAAM,OAAO,IAAM,EAAM,MAAM,KAAK,EAAM,UAAuD,GAAO,EAAM,KAAK,CAAC,IAAM,EAAM,SAAS,EAAM,MAAM,oBAAoB,IAAI,IAAI,IAAU,EAAK,EAAM,MAAM,kBAAkB,GAAG,MAAM,KAAK,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,QAAM,OAAK,AAAE,EAAqB,EAAM,MAAM,EAAE,IAAI,EAAM,EAAE,aAAa,eAAe,MAAM,EAAM,EAAE,aAAa,eAAe,OAAyB,EAAM,QAAQ,GAAM,CAAC,GAAK,CAAC,OAAK,CAAC,EAAM,EAAK,aAAa,eAAqB,EAAK,EAAW,OAAO,GAAG,MAAM,KAAK,GAAY,MAAM,GAAG,EAAK,SAAS,IAAI,EAAK,UAAU,OAAO,SAAS,CAAC,EAAO,GAAoB,EAAM,QAAQ,GAAM,EAAM,YAAY,GAAQ,EAAC,CAAC,EAAW,EAAM,UAAU,EAAgF,EAAMC,EAAU,CAAC,SAAS,CAAc,EAAK,EAAU,CAAC,GAAG,EAAM,EAAe,EAAK,QAAQ,CAAC,SAAS;uBACnoD,EAAM,UAAU;kBACrB,EAAE,CAAC,CAAG,CAAE"}