{"version":3,"file":"FilterStack2.DNtiTALr.mjs","names":["useState","_Fragment"],"sources":["https:/framerusercontent.com/modules/PiG3wBK0y1nQIR58knmE/WSg9eHFrWTaGSy6XdYvL/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":"qJAauM,SAAgB,EAAY,EAAU,CAAC,MAAO,IAAO,CAAyD,GAAU,IAAS,OAAY,OAAoB,EAAK,EAAU,CAAC,GAAG,CAAK,CAAC,EAAsD,GAAK,CAAC,EAAW,GAAeA,EAAS,IAAI,GAAG,EAAwjC,OAAtjC,MAAc,CAAsD,IAAM,EAAK,IAAnD,gBAAgB,EAAO,SAAS,MAAoB,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,OAAO,GAAG,CAAC,EAAE,EAAc,IAAI,IAAI,CAAI,CAAC,CAAE,EAAE,CAAC,CAAC,EAA0D,MAAc,CAAC,IAAM,EAAM,SAAS,cAAc,IAAI,EAAM,WAAW,EAAE,GAAG,CAAC,EAAM,OAAO,IAAM,EAAM,MAAM,KAAK,EAAM,QAAQ,EAA+C,GAAO,EAAM,MAAyJ,CAAC,MAAxI,SAAS,EAAM,MAAM,gBAAgB,CAAC,GAAG,IAAI,IAAI,EAA2F,EAAE,KAA9E,EAAM,MAAM,cAAc,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAmB,GAAwB,EAAM,MAAM,EAAE,IAAI,EAAM,EAAE,aAAa,YAAY,CAAC,CAAC,CAAC,MAAM,EAAM,EAAE,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,EAAoB,EAAM,QAAQ,GAAM,CAAC,GAAK,CAAC,QAAM,EAAM,EAAK,aAAa,YAAY,CAAC,EAAQ,EAAK,EAAW,OAAO,GAAG,MAAM,KAAK,CAAU,CAAC,CAAC,MAAM,GAAG,EAAK,SAAS,CAAC,CAAC,EAAE,EAAK,UAAU,OAAO,SAAS,CAAC,CAAI,CAAE,CAAC,EAAoB,EAAM,QAAQ,GAAM,EAAM,YAAY,CAAI,CAAC,CAAE,EAAE,CAAC,EAAW,EAAM,SAAS,CAAC,EAAgF,EAAMC,EAAU,CAAC,SAAS,CAAc,EAAK,EAAU,CAAC,GAAG,CAAK,CAAC,EAAe,EAAK,QAAQ,CAAC,SAAS;uBACnoD,EAAM,UAAU;iBACtB,CAAC,CAAC,CAAC,CAAC,CAAE,CAAE,qBAFuI,IAAsC"}