{"version":3,"file":"ShowOnBrowserBack.D80Z2dsG.mjs","names":["React.forwardRef","_Fragment","useRef","GLOBAL_FLAG","BROWSER_BACK_EVENT","useState"],"sources":["https:/framerusercontent.com/modules/bniZcNhtKAI6rA0fxW6J/THELkXLAWyb8Gu18q5jW/YBaghjExl.js","https:/framerusercontent.com/modules/ORfK5mpdgw0NNoWE64nZ/tRnN1Fk59EJByGNyqQ2l/TextMaker.js","https:/framerusercontent.com/modules/X7fKw3g6UeAF4FJgMlwX/gItweN7RGoIgTuD5AMS9/TextWithDots.js","https:/framerusercontent.com/modules/sBipuit9nlZsC6W97BpD/5YTtKbbvMPtnDKCeYXgs/AutoRedirect.js","https:/framerusercontent.com/modules/Knm7UkAx1YSj6TvqeUlf/Wpho6jMUeBzCVpEBe9GH/ShowOnBrowserBack.js"],"sourcesContent":["// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,useSVGTemplate,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const Base=/*#__PURE__*/forwardRef(function(props,ref){return /*#__PURE__*/_jsx(\"svg\",{...props,ref:ref,children:props.children});});const MotionSVG=motion.create(Base);const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(MotionSVG,{...rest,layoutId:layoutId,ref:ref,children:children}):/*#__PURE__*/_jsx(\"svg\",{...rest,ref:ref,children:children});});const svg='<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 0 0 L 0 12.5\" fill=\"transparent\" height=\"12.5px\" id=\"InYKHyHwf\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--1335ju, 1.5)\" stroke=\"var(--18mrqx2, rgb(0, 0, 0))\" transform=\"translate(12 5.75)\" width=\"1px\"/><path d=\"M 12.5 0 L 0 0\" fill=\"transparent\" height=\"1px\" id=\"pfQxqOaIQ\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--1335ju, 1.5)\" stroke=\"var(--18mrqx2, rgb(0, 0, 0))\" transform=\"translate(5.75 12)\" width=\"12.5px\"/></svg>';const getProps=({dots,height,id,stroke,width,width1,...props})=>{return{...props,BKVe8Pgvw:dots??props.BKVe8Pgvw??1,fICyAUQY1:stroke??props.fICyAUQY1??\"rgb(0, 0, 0)\",lKf_CQTz5:width1??props.lKf_CQTz5??1.5};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,fICyAUQY1,lKf_CQTz5,BKVe8Pgvw,...restProps}=getProps(props);const href=useSVGTemplate(\"3450492020\",svg);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-yowRG\",className),layoutId:layoutId,ref:ref,role:\"presentation\",style:{\"--1335ju\":lKf_CQTz5,\"--18mrqx2\":fICyAUQY1,...style},viewBox:\"0 0 24 24\",children:/*#__PURE__*/_jsx(\"use\",{href:href})});});const css=[`.framer-yowRG { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"fICyAUQY1\":\"stroke\",\"lKf_CQTz5\":\"width1\",\"BKVe8Pgvw\":\"dots\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Plus\",\"color\":{\"type\":\"variable\",\"value\":\"18mrqx2\"},\"set\":{\"localId\":\"vectorSet/SuYHhKUZG\",\"id\":\"SuYHhKUZG\",\"moduleId\":\"EqX8thWQjdZcOB1c6p5N\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-yowRG\");Icon.displayName=\"Plus\";export default Icon;addPropertyControls(Icon,{fICyAUQY1:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Stroke\",type:ControlType.Color},lKf_CQTz5:{defaultValue:1.5,displayStepper:true,hidden:false,max:4,min:0,step:.5,title:\"Width\",type:ControlType.Number},BKVe8Pgvw:{defaultValue:1,displayStepper:true,hidden:true,max:4,min:1,title:\"Dots\",type:ControlType.Number}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"24\",\"framerVector\":\"{\\\"name\\\":\\\"Plus\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"18mrqx2\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/SuYHhKUZG\\\",\\\"id\\\":\\\"SuYHhKUZG\\\",\\\"moduleId\\\":\\\"EqX8thWQjdZcOB1c6p5N\\\"}}\",\"framerDisableUnlink\":\"true\",\"framerIntrinsicHeight\":\"24\",\"framerVariables\":\"{\\\"fICyAUQY1\\\":\\\"stroke\\\",\\\"lKf_CQTz5\\\":\\\"width1\\\",\\\"BKVe8Pgvw\\\":\\\"dots\\\"}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect}from\"react\";/**\n * Text marker overrides:\n * - Author highlights with **double-asterisk** syntax.\n * - Deterministically pick a hand-drawn variant per match.\n */const MARKER_COLORS={yellow:\"rgba(255, 255, 0, 0.8)\",blue:\"rgba(0, 128, 255, 0.5)\",pink:\"rgba(255, 182, 193, 0.8)\",green:\"rgba(144, 238, 144, 0.8)\",orange:\"rgba(255, 195, 0, 0.8)\",red:\"rgba(255, 0, 0, 0.5)\",purple:\"rgba(174, 136, 255, 0.5)\",mint:\"rgba(102, 230, 188, 0.45)\",sky:\"rgba(125, 211, 252, 0.5)\",lime:\"rgba(190, 242, 100, 0.5)\",peach:\"rgba(255, 201, 166, 0.55)\",lavender:\"rgba(204, 179, 255, 0.5)\",gray:\"rgba(156, 163, 175, 0.4)\",navy:\"rgba(59, 130, 246, 0.35)\",teal:\"rgba(45, 212, 191, 0.45)\",magenta:\"rgba(244, 114, 182, 0.45)\"};const HAND_DRAWN_SWIPE_PATHS=[\"M3 10 C4 8, 6 7, 8 7 C24 6, 40 6, 56 7 C72 8, 86 7, 95 9 C97 10, 98 12, 98 14 C99 21, 99 28, 98 35 C98 37, 97 39, 95 40 C86 41, 72 40, 56 39 C40 40, 24 41, 8 40 C6 40, 4 39, 3 37 C2 30, 2 23, 2 16 C2 13, 2 11, 3 10 Z\",\"M4 9 C5 8, 6 7, 8 7 C25 6, 41 6, 57 7 C73 8, 87 7, 94 8 C96 9, 97 11, 97 13 C98 20, 98 27, 97 34 C97 37, 96 39, 94 40 C87 41, 73 40, 57 39 C41 40, 25 41, 9 40 C7 40, 5 39, 4 37 C3 30, 3 23, 3 16 C3 13, 3 10, 4 9 Z\",\"M3 11 C4 9, 6 8, 8 8 C24 7, 40 7, 56 8 C71 9, 85 8, 94 10 C96 11, 97 13, 97 15 C98 22, 98 29, 97 36 C96 38, 95 40, 93 41 C84 42, 70 41, 55 40 C39 41, 23 42, 8 41 C6 41, 4 40, 3 38 C2 31, 2 24, 2 17 C2 14, 2 12, 3 11 Z\",\"M2 10 C4 8, 6 7, 9 7 C25 6, 42 6, 58 7 C73 8, 87 7, 96 9 C98 10, 99 13, 99 15 C99 22, 99 29, 99 36 C99 38, 98 40, 96 41 C88 42, 73 41, 58 40 C42 41, 26 42, 10 41 C7 41, 5 40, 3 38 C2 31, 2 24, 2 17 C2 14, 2 11, 2 10 Z\",\"M4 12 C5 10, 7 9, 9 9 C26 8, 42 8, 58 9 C74 10, 88 9, 95 11 C97 12, 98 14, 98 16 C99 23, 99 30, 98 37 C98 39, 97 41, 95 42 C88 43, 74 42, 58 41 C42 42, 26 43, 10 42 C8 42, 6 41, 4 39 C3 32, 3 25, 3 18 C3 15, 3 13, 4 12 Z\",\"M3 9 C4 8, 6 7, 8 7 C24 6, 40 6, 56 7 C72 9, 86 8, 94 10 C96 11, 97 13, 97 15 C98 22, 98 29, 98 36 C98 38, 97 40, 95 41 C87 42, 72 41, 56 40 C40 41, 24 42, 9 41 C7 41, 5 40, 4 38 C3 31, 3 24, 3 17 C3 14, 3 11, 3 9 Z\"];const HAND_DRAWN_SWIPE_ROTATIONS=[-5.2,-4.4,-4.8,-6.3,-3.9,-5.7];function hashString(value){let hash=0;for(let index=0;index<value.length;index+=1){hash=hash*31+value.charCodeAt(index)>>>0;}return hash;}function getMarkerVariantIndex(textContent,elementIndex,matchIndex){const base=hashString(textContent);return(base+elementIndex*17+matchIndex*31)%HAND_DRAWN_SWIPE_PATHS.length;}function createMarkerSvgDataUri(fillColor,pathData,rotationDeg){const svg=`<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 52' preserveAspectRatio='none'><g transform='rotate(${rotationDeg} 50 26)'><path fill='${fillColor}' d='${pathData}'/></g></svg>`;return`url(\"data:image/svg+xml,${encodeURIComponent(svg)}\")`;}function createMarkerHOC(backgroundColor){const variantBackgrounds=HAND_DRAWN_SWIPE_PATHS.map((path,index)=>createMarkerSvgDataUri(backgroundColor,path,HAND_DRAWN_SWIPE_ROTATIONS[index]));return function(Component){return props=>{const variantCss=variantBackgrounds.map((backgroundImage,index)=>`\n.${props.className} mark.marker-variant-${index} span {\n  background-image: ${backgroundImage};\n}`).join(\"\\n\");useEffect(()=>{if(typeof document===\"undefined\")return;const elements=document.querySelectorAll(`.${props.className}`);elements.forEach((element,elementIndex)=>{const originalHTML=element.innerHTML;let matchIndex=0;// \"**...**\" を <mark><span>...</span></mark> に変換\nconst updatedHTML=originalHTML.replace(/\\*\\*(.+?)\\*\\*/g,(_,match)=>{const variant=getMarkerVariantIndex(String(match),elementIndex,matchIndex);matchIndex+=1;return`<mark class=\"marker-swipe marker-variant-${variant}\"><span>${match}</span></mark>`;});element.innerHTML=updatedHTML;});},[props]);return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n.${props.className} mark {\n  background: transparent;\n}\n\n.${props.className} mark.marker-swipe span {\n  display: inline;\n  background-repeat: no-repeat;\n  background-size: 100% 100%;\n  background-position: center calc(100% - 0.01em);\n  -webkit-box-decoration-break: clone;\n  box-decoration-break: clone;\n  padding: 0.14em 0.16em 0.16em;\n  margin: -0.08em -0.06em;\n  color: inherit;\n}\n${variantCss}\n`}),/*#__PURE__*/_jsx(Component,{...props})]});};};}export function withYellowMarker(Component){return createMarkerHOC(MARKER_COLORS.yellow)(Component);}export function withBlueMarker(Component){return createMarkerHOC(MARKER_COLORS.blue)(Component);}export function withPinkMarker(Component){return createMarkerHOC(MARKER_COLORS.pink)(Component);}export function withGreenMarker(Component){return createMarkerHOC(MARKER_COLORS.green)(Component);}export function withOrangeMarker(Component){return createMarkerHOC(MARKER_COLORS.orange)(Component);}export function withRedMarker(Component){return createMarkerHOC(MARKER_COLORS.red)(Component);}export function withPurpleMarker(Component){return createMarkerHOC(MARKER_COLORS.purple)(Component);}export function withMintMarker(Component){return createMarkerHOC(MARKER_COLORS.mint)(Component);}export function withSkyMarker(Component){return createMarkerHOC(MARKER_COLORS.sky)(Component);}export function withLimeMarker(Component){return createMarkerHOC(MARKER_COLORS.lime)(Component);}export function withPeachMarker(Component){return createMarkerHOC(MARKER_COLORS.peach)(Component);}export function withLavenderMarker(Component){return createMarkerHOC(MARKER_COLORS.lavender)(Component);}export function withGrayMarker(Component){return createMarkerHOC(MARKER_COLORS.gray)(Component);}export function withNavyMarker(Component){return createMarkerHOC(MARKER_COLORS.navy)(Component);}export function withTealMarker(Component){return createMarkerHOC(MARKER_COLORS.teal)(Component);}export function withMagentaMarker(Component){return createMarkerHOC(MARKER_COLORS.magenta)(Component);}\nexport const __FramerMetadata__ = {\"exports\":{\"withYellowMarker\":{\"type\":\"reactHoc\",\"name\":\"withYellowMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withPeachMarker\":{\"type\":\"reactHoc\",\"name\":\"withPeachMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withNavyMarker\":{\"type\":\"reactHoc\",\"name\":\"withNavyMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withPinkMarker\":{\"type\":\"reactHoc\",\"name\":\"withPinkMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withTealMarker\":{\"type\":\"reactHoc\",\"name\":\"withTealMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withPurpleMarker\":{\"type\":\"reactHoc\",\"name\":\"withPurpleMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withOrangeMarker\":{\"type\":\"reactHoc\",\"name\":\"withOrangeMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSkyMarker\":{\"type\":\"reactHoc\",\"name\":\"withSkyMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRedMarker\":{\"type\":\"reactHoc\",\"name\":\"withRedMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLimeMarker\":{\"type\":\"reactHoc\",\"name\":\"withLimeMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withGrayMarker\":{\"type\":\"reactHoc\",\"name\":\"withGrayMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withGreenMarker\":{\"type\":\"reactHoc\",\"name\":\"withGreenMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLavenderMarker\":{\"type\":\"reactHoc\",\"name\":\"withLavenderMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMintMarker\":{\"type\":\"reactHoc\",\"name\":\"withMintMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMagentaMarker\":{\"type\":\"reactHoc\",\"name\":\"withMagentaMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withBlueMarker\":{\"type\":\"reactHoc\",\"name\":\"withBlueMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TextMaker.map","import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";/* ==================================================================\n   TextWithDots - 日本語傍点（圏点）による強調表示\n   ==================================================================\n\n   テキスト内の[[...]]記法を文字単位で黒丸（●）傍点付きに変換し、\n   日本語組版の伝統的な強調手法を実現するCode Override\n\n   v1.1.0: 直接実装パターン（Framer認識対応版）\n   各export関数内で処理ロジックを完全に内包\n   ================================================================== */// 小サイズの黒丸（4px）\nexport function withDotsSmall(Component){return props=>{const processDotsInChildren=children=>{if(typeof children===\"string\"){// [[]]を含む場合はdangerouslySetInnerHTMLで処理\nif(children.includes(\"[[\")){const html=children.replace(/\\[\\[([^\\]]+)\\]\\]/g,(_match,content)=>{return content.split(\"\").map(char=>{if(char===\" \"||char===\"　\")return char;return`<ruby>${char}<rt style=\"font-size: 4px !important; font-weight: 900 !important; position: relative !important; top: -4px !important;\">●</rt></ruby>`;}).join(\"\");});return /*#__PURE__*/_jsx(\"span\",{dangerouslySetInnerHTML:{__html:html}});}return children;}if(/*#__PURE__*/React.isValidElement(children)){const element=children;return /*#__PURE__*/React.cloneElement(element,{...element.props,children:processDotsInChildren(element.props.children)});}if(Array.isArray(children)){return children.map(child=>processDotsInChildren(child));}return children;};const newChildren=processDotsInChildren(props.children);return /*#__PURE__*/_jsx(Component,{...props,children:newChildren});};}// 中サイズの黒丸（8px）\nexport function withDotsMedium(Component){return props=>{const processDotsInChildren=children=>{if(typeof children===\"string\"){if(children.includes(\"[[\")){const html=children.replace(/\\[\\[([^\\]]+)\\]\\]/g,(_match,content)=>{return content.split(\"\").map(char=>{if(char===\" \"||char===\"　\")return char;return`<ruby>${char}<rt style=\"font-size: 8px !important; font-weight: 900 !important; position: relative !important; top: -4px !important;\">●</rt></ruby>`;}).join(\"\");});return /*#__PURE__*/_jsx(\"span\",{dangerouslySetInnerHTML:{__html:html}});}return children;}if(/*#__PURE__*/React.isValidElement(children)){const element=children;return /*#__PURE__*/React.cloneElement(element,{...element.props,children:processDotsInChildren(element.props.children)});}if(Array.isArray(children)){return children.map(child=>processDotsInChildren(child));}return children;};const newChildren=processDotsInChildren(props.children);return /*#__PURE__*/_jsx(Component,{...props,children:newChildren});};}// 大サイズの黒丸（14px）\nexport function withDotsLarge(Component){return props=>{const processDotsInChildren=children=>{if(typeof children===\"string\"){if(children.includes(\"[[\")){const html=children.replace(/\\[\\[([^\\]]+)\\]\\]/g,(_match,content)=>{return content.split(\"\").map(char=>{if(char===\" \"||char===\"　\")return char;return`<ruby>${char}<rt style=\"font-size: 14px !important; font-weight: 900 !important; position: relative !important; top: -4px !important;\">●</rt></ruby>`;}).join(\"\");});return /*#__PURE__*/_jsx(\"span\",{dangerouslySetInnerHTML:{__html:html}});}return children;}if(/*#__PURE__*/React.isValidElement(children)){const element=children;return /*#__PURE__*/React.cloneElement(element,{...element.props,children:processDotsInChildren(element.props.children)});}if(Array.isArray(children)){return children.map(child=>processDotsInChildren(child));}return children;};const newChildren=processDotsInChildren(props.children);return /*#__PURE__*/_jsx(Component,{...props,children:newChildren});};}\nexport const __FramerMetadata__ = {\"exports\":{\"withDotsMedium\":{\"type\":\"reactHoc\",\"name\":\"withDotsMedium\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withDotsLarge\":{\"type\":\"reactHoc\",\"name\":\"withDotsLarge\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withDotsSmall\":{\"type\":\"reactHoc\",\"name\":\"withDotsSmall\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TextWithDots.map","/**\n * AutoRedirect v1.22.0\n * 自動リダイレクトコードコンポーネント\n *\n * 特徴:\n * - 透明コンポーネント（配置するだけで動作）\n * - Property Controlsで設定可能\n * - sourceパラメータ対応（?source=header_cta）\n * - source別URLマッピング（クリック箇所追跡・MCV判定対応）\n * - GTM連携（sendBeacon確実送信、mcvDataオブジェクトで一括送信）\n * - Framer Custom Event連携: GTMイベントと同じタイミングでFramerのCustom Eventを発火（useTracking・TrackingId未設定なら無効／後方互換・v1.20.0）\n * - CaregiverDualDiagnosis連携: URLパラメータ優先、localStorageフォールバックで年代(target)を取得\n * - ブラウザバック検知: 外部サイトからブラウザバックで戻った場合にリダイレクトをスキップ\n *   （v1.21.0: 実行済みフラグをページ別キーで保存＝リダイレクトページを2段経由しても上書きされない。\n *    判定は「back_forward + このURLで実際に読み込まれた + ドキュメントごとに1回」の厳密なバック着地判定。\n *    Framer内SPA遷移での再訪問は通常どおりリダイレクト）\n * - BFCache対応: モバイルChrome等のBack-Forward Cache復元時もpageshowイベントで検知\n * - リファラ削除: rel=\"noreferrer\"でリダイレクト時にリファラを送信しない\n * - URLパラメータ引き継ぎ: fbclid/gclid/UTM等を自動でリダイレクト先に付与（v1.14.0）\n * - ParamKeeper連携: 保存済みパラメータ補完とASPクリックトークン付与（v1.19.1）\n * - storage安全化: sessionStorage/localStorageが使えない環境でも継続動作（v1.15.1）\n *\n * 使用シーン:\n * - 中間ページでカウントダウン後に外部サイトへ自動遷移\n * - LP上の複数CTAからのクリック箇所追跡\n * - カスタムイベント方式でのMCV判定\n * - ブラウザバック時に別コンテンツを表示（ShowOnBrowserBack Overrideと連携）\n *\n * パフォーマンス最適化:\n * - スタイルオブジェクト静的定義\n * - useRef活用で再レンダー最小化\n * - sendBeaconでGTMイベント確実送信\n */import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget,useTracking}from\"framer\";import{useEffect,useRef}from\"react\";// sessionStorageキー（v1.21.0: ページ別キー）\n// 全リダイレクトページで1枠を共有すると、リダイレクトページを2段経由したときに\n// 後のリダイレクトが前の記録を上書きし、戻り道の前段ページでバック検知が外れて\n// 再リダイレクトしてしまうため、パスごとに独立したキーで保存する。\n// ※旧キー（autoredirect_executed / autoredirect_path）は読み書きしない。\n//   AutoRedirectByOSが旧キーを使い続けているため、削除もしない（干渉回避）\nconst STORAGE_KEY_PREFIX=\"autoredirect_executed:\";const storageKeyForPath=path=>STORAGE_KEY_PREFIX+path;// このドキュメントで「ドキュメント読み込みによるバック着地」を既に処理したか（v1.21.0）\n// 本物のバック着地は毎回新しいドキュメント読み込み（＝モジュール再評価）なので自然にリセットされる。\n// Framer内のSPA遷移ではモジュールが生存し続けるため、同一ドキュメント内での再マウント\n// （バック着地→LPへSPA遷移→CTAで再訪問）をバック扱いしないためのワンショットガード\nlet backArrivalHandled=false;// このドキュメント内で直近にpopstate（戻る/進むによる履歴移動）が起きた時刻（v1.21.0）\n// Framer内のルーティングは「リンククリック＝pushState起点」「戻る/進む＝popstate起点」なので、\n// マウントが履歴移動の直後ならバック着地として扱う。\n// BFCacheでSPAドキュメントごと復元された後、同一ドキュメント内の戻るで\n// 前段のリダイレクトページに着地するケース（2段リダイレクトの戻り道）がこれに当たる。\n// 一部の旧ブラウザはページ読み込み時にpopstateを発火するため、読み込み直後1秒間は記録しない\nlet lastPopstateAt=-Infinity;if(typeof window!==\"undefined\"&&typeof performance!==\"undefined\"){window.addEventListener(\"popstate\",()=>{if(performance.now()>1e3){lastPopstateAt=performance.now();}});}// popstate発火からこの時間内のマウントを「履歴移動によるマウント」とみなす\n// （popstate→ルーター再レンダー→マウントは通常100ms前後。余裕を持たせつつ、\n// 　履歴移動後にユーザーがリンクをクリックして遷移するには短すぎる幅にする）\nconst POPSTATE_MOUNT_WINDOW_MS=1e3;const wasMountedByHistoryTraversal=()=>{if(typeof performance===\"undefined\")return false;return performance.now()-lastPopstateAt<POPSTATE_MOUNT_WINDOW_MS;};// グローバルフラグ名（Code Overrideから参照）\nconst GLOBAL_FLAG=\"__BROWSER_BACK_DETECTED__\";// カスタムイベント名\nconst BROWSER_BACK_EVENT=\"browserBackDetected\";// ================================================================================\n// 静的スタイル（再生成防止）\n// ================================================================================\nconst TRANSPARENT_STYLE={width:\"100%\",height:\"100%\",pointerEvents:\"none\",opacity:0,position:\"absolute\"};const normalizeParamName=name=>{return name?.trim()??\"\";};const getFallbackParam=(params,name)=>{const normalizedName=normalizeParamName(name);const lowerName=normalizedName.toLowerCase();return params[normalizedName]||params[lowerName]||null;};// ================================================================================\n// ユーティリティ\n// ================================================================================\n/**\n * GTM dataLayerにイベントをプッシュ\n * sendBeaconを優先使用（リダイレクト直前でも確実に送信）\n */const pushGtmEvent=(eventName,data)=>{if(typeof window===\"undefined\")return;const eventData={event:eventName,...data};const redirectUrl=typeof data.redirect_url===\"string\"?data.redirect_url:typeof data.mcvData?.redirect_url===\"string\"?data.mcvData.redirect_url:undefined;// 1. 通常のdataLayer.push\nif(window.dataLayer){window.dataLayer.push(eventData);}// 2. sendBeaconでバックアップ送信（GTM未ロード時やリダイレクト直前対策）\n// Google Analyticsのcollect URLに直接送信\nif(window.ga&&typeof navigator.sendBeacon===\"function\"){try{const tracker=window.ga.getAll?.()[0];if(tracker){tracker.send(\"event\",{eventCategory:\"redirect\",eventAction:eventName,eventLabel:redirectUrl,transport:\"beacon\"});}}catch{// GA未設定の場合は無視\n}}};/**\n * URLパラメータを取得（source + UTM + カスタム）\n */const getUrlParams=(customParamNames,fallbackParams={})=>{if(typeof window===\"undefined\"){return{source:null,utm_source:null,utm_medium:null,utm_campaign:null,utm_term:null,utm_content:null,custom:{}};}const params=new URLSearchParams(window.location.search);const getParamWithFallback=name=>{return params.get(name)||getFallbackParam(fallbackParams,name);};// カスタムパラメータを取得\nconst custom={};customParamNames.forEach(name=>{const value=getParamWithFallback(name);if(value){custom[name]=value;}});return{source:getParamWithFallback(\"source\"),utm_source:getParamWithFallback(\"utm_source\"),utm_medium:getParamWithFallback(\"utm_medium\"),utm_campaign:getParamWithFallback(\"utm_campaign\"),utm_term:getParamWithFallback(\"utm_term\"),utm_content:getParamWithFallback(\"utm_content\"),custom};};/**\n * URLの簡易バリデーション\n */const isValidUrl=url=>{try{const parsed=new URL(url);return parsed.protocol===\"http:\"||parsed.protocol===\"https:\";}catch{return false;}};/**\n * 現在のURLパラメータをリダイレクト先URLに引き継ぐ（v1.14.0）\n * fbclid, gclid, UTM等の広告パラメータを自動で付与\n * ParamKeeper helperのクリックトークンを任意の付与先パラメータ名にセット\n * 通常の引き継ぎパラメータは、リダイレクト先に既に存在する場合は上書きしない\n */const EXCLUDED_PARAMS=new Set([\"framer_variant\",\"fbc\"]);const LINE_YAHOO_CLICK_PARAM_NAMES=new Set([\"_ly_c\",\"lyc\",\"_ly_su\",\"lysu\",\"_ly_r\",\"lyr\"]);const isYahooDisplayAdsYclid=value=>{return/^(?:\\d{10,13}\\.)?YJAD/i.test(String(value||\"\").trim());};const ASP_CLICK_TOKEN_SEGMENT_PATTERN=/(?:^|\\.)(agc|agb|agw|amf|att|ams|alc|als|alr|ald|ayc)_/gi;const YAHOO_DISPLAY_TOKEN_PREFIXES=new Set([\"ayc\",\"alc\",\"als\",\"alr\"]);const safeDecodeToken=value=>{try{return decodeURIComponent(value);}catch{return value;}};const isBlockedYahooDisplayTokenSegment=segment=>{const prefixMatch=/^([a-z]+)_/i.exec(segment);if(!prefixMatch)return false;const prefix=prefixMatch[1].toLowerCase();if(!YAHOO_DISPLAY_TOKEN_PREFIXES.has(prefix))return false;const segmentValue=segment.slice(prefix.length+1);const decodedValue=safeDecodeToken(segmentValue);return isYahooDisplayAdsYclid(segmentValue)||isYahooDisplayAdsYclid(decodedValue);};const sanitizeAspClickToken=value=>{const normalizedValue=value.trim();if(!normalizedValue)return\"\";const matches=[];ASP_CLICK_TOKEN_SEGMENT_PATTERN.lastIndex=0;let match;while(match=ASP_CLICK_TOKEN_SEGMENT_PATTERN.exec(normalizedValue)){matches.push({delimiterStart:match.index,segmentStart:match.index+(match[0].startsWith(\".\")?1:0)});}if(matches.length===0){return isYahooDisplayAdsYclid(normalizedValue)?\"\":normalizedValue;}const head=normalizedValue.slice(0,matches[0].delimiterStart);const segments=matches.map((item,index)=>{const nextItem=matches[index+1];return normalizedValue.slice(item.segmentStart,nextItem?.delimiterStart??normalizedValue.length);});const sanitizedSegments=segments.filter(segment=>!isBlockedYahooDisplayTokenSegment(segment));if(sanitizedSegments.length===segments.length)return normalizedValue;if(sanitizedSegments.length===0)return\"\";return head?`${head}.${sanitizedSegments.join(\".\")}`:sanitizedSegments.join(\".\");};const isExcludedParam=key=>{return EXCLUDED_PARAMS.has(key.toLowerCase());};const isLineYahooClickParamName=key=>{return LINE_YAHOO_CLICK_PARAM_NAMES.has(key.toLowerCase());};const shouldForwardParam=(key,value)=>{const normalizedKey=normalizeParamName(key);const normalizedValue=value.trim();const lowerKey=normalizedKey.toLowerCase();if(!normalizedKey||!normalizedValue)return false;if(isExcludedParam(normalizedKey))return false;if(lowerKey===\"yclid\"&&isYahooDisplayAdsYclid(normalizedValue)){return false;}if(isLineYahooClickParamName(normalizedKey)&&isYahooDisplayAdsYclid(normalizedValue)){return false;}return true;};const getFramerParamKeeper=()=>{if(typeof window===\"undefined\")return null;const keeper=window.FramerParamKeeper;return keeper&&typeof keeper===\"object\"?keeper:null;};const readKeeperParams=()=>{const keeper=getFramerParamKeeper();if(!keeper||typeof keeper.getParams!==\"function\")return{};try{return keeper.getParams()||{};}catch{return{};}};const getAspClickTokenFromKeeper=(targetUrl,aspParameter)=>{const keeper=getFramerParamKeeper();if(!keeper||typeof keeper.getAspClickToken!==\"function\")return\"\";try{const options={url:targetUrl};const normalizedAspParameter=normalizeParamName(aspParameter);if(normalizedAspParameter)options.aspParameter=normalizedAspParameter;return keeper.getAspClickToken(options)||\"\";}catch{return\"\";}};const appendCurrentParams=(baseUrl,forwardedRedirectParamName=\"\",// v1.22.0: リダイレクト先に渡さないパラメータ（診断→リダイレクトページの出し分け用 ws/fac 等を\n// クライアントのアフィリエイトURLへ流さないための除外。現在URL由来の引き継ぎだけが対象）\nexcludeForward=new Set)=>{if(!baseUrl)return baseUrl;if(typeof window===\"undefined\")return baseUrl;const currentParams=new URLSearchParams(window.location.search);const keeperParams=readKeeperParams();try{const url=new URL(baseUrl);const redirectParamName=normalizeParamName(forwardedRedirectParamName);if(redirectParamName&&!isExcludedParam(redirectParamName)){const clickToken=sanitizeAspClickToken(getAspClickTokenFromKeeper(baseUrl,redirectParamName));if(clickToken&&shouldForwardParam(redirectParamName,clickToken)){url.searchParams.set(redirectParamName,clickToken);}}currentParams.forEach((value,key)=>{if(excludeForward.has(key.toLowerCase()))return;if(!url.searchParams.has(key)&&shouldForwardParam(key,value)){url.searchParams.set(key,value);}});Object.entries(keeperParams).forEach(([key,value])=>{if(!url.searchParams.has(key)&&shouldForwardParam(key,value)){url.searchParams.set(key,value);}});return url.toString();}catch{return baseUrl;}};const getStorageItem=(storageType,key)=>{if(typeof window===\"undefined\")return null;try{const storage=storageType===\"local\"?window.localStorage:window.sessionStorage;return storage.getItem(key);}catch{return null;}};const setSessionStorageItem=(key,value)=>{if(typeof window===\"undefined\")return;try{window.sessionStorage.setItem(key,value);}catch{// sessionStorage使用不可の場合は無視\n}};/**\n * このドキュメントが実際に読み込まれたURLのpathnameを返す（v1.21.0）\n * Framer内のSPA遷移後はlocation.pathnameと食い違うため、\n * 「バック着地が自ページ宛てだったか」の判定に使う。\n * 取得できない環境（レガシーAPIのみ・URLパース不能等）はnull＝判定スキップで従来挙動\n */const getNavigationEntryPathname=()=>{if(typeof window===\"undefined\"||typeof performance===\"undefined\"){return null;}try{const navEntries=performance.getEntriesByType(\"navigation\");if(navEntries.length>0){const name=navEntries[0].name;if(name)return new URL(name).pathname;}}catch{// 取得不能時はnull\n}return null;};/**\n * ブラウザバック（back_forward）でページに来たかどうかを検知\n * モダンブラウザ: PerformanceNavigationTiming API\n * レガシー: performance.navigation.type\n */const isBrowserBack=()=>{if(typeof window===\"undefined\"||typeof performance===\"undefined\"){return false;}// モダンブラウザ（推奨）\ntry{const navEntries=performance.getEntriesByType(\"navigation\");if(navEntries.length>0){const navEntry=navEntries[0];if(navEntry.type===\"back_forward\"){return true;}}}catch{// フォールバックへ\n}// レガシーブラウザ\ntry{if(performance.navigation&&performance.navigation.type===2){return true;}}catch{// 無視\n}return false;};// ================================================================================\n// メインコンポーネント\n// ================================================================================\n/**\n * AutoRedirect - 透明な自動リダイレクトコンポーネント\n *\n * ページに配置するだけで、指定秒数後に自動でリダイレクトします。\n * カウントダウン表示は別途Framerでデザインしてください。\n */export function AutoRedirect({redirectUrl=\"https://example.com\",delaySeconds=5,gtmEventName=\"auto_redirect\",sourceMappings=[],customParams=[],forwardedRedirectParamName=\"\",excludeForwardParams=\"ws,fac\",enableBackDetection=false,gtmOverrideRules=[],redirectTrackingId=\"\",backDetectedTrackingId=\"\"}){// Framer Custom Event発火用（useTrackingはトップレベルで取得）\n// GTMイベントと同じタイミングでFramerのCustom Eventを発火する\nconst track=useTracking();// 多重実行防止\nconst hasRedirected=useRef(false);// 初期化済みフラグ（StrictMode対策）\nconst isInitialized=useRef(false);// タイマーID保持\nconst timerRef=useRef(null);useEffect(()=>{// Framerキャンバス（編集画面）では実行しない\nif(RenderTarget.current()===RenderTarget.canvas)return;// SSR対策\nif(typeof window===\"undefined\")return;// 現在のパス\nconst currentPath=window.location.pathname;// Framer Custom Eventを安全に発火（IDが空なら何もしない＝後方互換）\nconst fireFramerEvent=trackingId=>{if(!trackingId)return;try{track(trackingId);}catch{// track未対応環境（キャンバス等）では無視\n}};// 多重実行防止\nif(hasRedirected.current)return;// StrictMode対策（2回目の実行をスキップ）\nif(isInitialized.current)return;isInitialized.current=true;// URLパラメータ取得（source + UTM + カスタム）\n// ※ブラウザバック検知の前に取得（GTMイベントで使用するため）\nconst customParamNames=customParams.map(p=>p.paramName).filter(Boolean);const keeperParams=readKeeperParams();const params=getUrlParams(customParamNames,keeperParams);const source=params.source||\"direct\";const getLatestParams=()=>{return getUrlParams(customParamNames,readKeeperParams());};const resolveRedirectUrl=latestParams=>{let resolvedUrl=redirectUrl;if(latestParams.source&&sourceMappings?.length>0){const mapping=sourceMappings.find(m=>m.source===latestParams.source);if(mapping?.redirectUrl){resolvedUrl=mapping.redirectUrl;}}return resolvedUrl;};// 年代を取得（CaregiverDualDiagnosis連携）\n// ※ブラウザバック検知の前に取得（GTMイベントで使用するため）\n// 1. URLパラメータから取得（優先）\n// 2. localStorageから取得（フォールバック）\nlet caregiverTargetAge=\"\";const urlTarget=new URLSearchParams(window.location.search).get(\"target\");if(urlTarget){caregiverTargetAge=urlTarget;}else{caregiverTargetAge=getStorageItem(\"local\",\"caregiver_target_age\")||\"\";}// バック検知フラグはページ別キー（v1.21.0）。パス照合はキー自体に織り込まれている\nconst backFlagKey=storageKeyForPath(currentPath);const wasRedirected=enableBackDetection&&getStorageItem(\"session\",backFlagKey)===\"true\";// 本物の「バック着地」判定（v1.21.0）＝リダイレクト実行済みページに、以下いずれかで到達:\n// (a) ドキュメント読み込みによるバック着地\n//     1. ナビゲーション種別が back_forward\n//     2. このドキュメントが実際に読み込まれたURLが自ページ\n//        （LP等で読み込まれたドキュメントからSPA遷移で来た場合は不一致＝バックではない）\n//     3. このドキュメントでまだ読み込み分のバック着地を処理していない\n//        （バック着地後にSPA遷移でLPへ行き、CTAで再訪問した場合を除外）\n// (b) 同一ドキュメント内の履歴移動（popstate）直後のマウント\n//     （BFCache復元後、戻るで前段リダイレクトページへ同一ドキュメント内遷移するケース）\nconst entryPathname=getNavigationEntryPathname();const loadedOnThisPath=entryPathname===null||entryPathname===currentPath;const arrivedByDocumentLoad=isBrowserBack()&&loadedOnThisPath&&!backArrivalHandled;const isValidBrowserBack=enableBackDetection&&wasRedirected&&(arrivedByDocumentLoad||wasMountedByHistoryTraversal());if(!isValidBrowserBack){window[GLOBAL_FLAG]=false;}// ブラウザバック検知\nif(isValidBrowserBack){// このドキュメントの読み込み分バック着地を処理済みにする（v1.21.0）\n// フラグ自体は消費しない＝セッション中、本物のバック着地では毎回コンテンツを出せる。\n// SPA再訪問（CTAクリック）の誤判定は loadedOnThisPath + backArrivalHandled +\n// 「popstate直後のマウントのみ許可」で防ぐ\nbackArrivalHandled=true;// GTMイベント発火（ブラウザバック検知）\npushGtmEvent(\"browser_back_detected\",{mcvData:{source:source,target:caregiverTargetAge,utm_source:params.utm_source||\"\",utm_medium:params.utm_medium||\"\",utm_campaign:params.utm_campaign||\"\",utm_term:params.utm_term||\"\",utm_content:params.utm_content||\"\",...params.custom}});// Framer Custom Event発火（GTMイベントと同じタイミング）\nfireFramerEvent(backDetectedTrackingId);window[GLOBAL_FLAG]=true;// カスタムイベント発火（Code Overrideへ通知）\nwindow.dispatchEvent(new CustomEvent(BROWSER_BACK_EVENT));// リダイレクトしない\n// アンマウント時（SPA遷移で他ページへ移動時）にグローバルフラグをクリアする。\n// ShowOnBrowserBackのuseLayoutEffectはこのuseEffectより先に走るため、\n// ここで消しておかないと再訪問時に残留フラグを読んで隠しコンテンツが出たままになる\nreturn()=>{window[GLOBAL_FLAG]=false;};}// BFCache復元対応: pageshowイベント監視\n// モバイルChrome等ではBFCacheからページが復元されるとuseEffectが再実行されない\n// pageshowイベント（event.persisted === true）でBFCache復元を検知\nconst handlePageShow=event=>{if(!event.persisted)return;// 通常ロードは無視\nif(!enableBackDetection)return;// BFCacheから復元された = ブラウザバック\n// ページ別キーなのでパス照合は不要（v1.21.0）。フラグは消費しない\nconst wasRedirected=getStorageItem(\"session\",backFlagKey)===\"true\";if(wasRedirected){const latestParams=getLatestParams();const latestSource=latestParams.source||\"direct\";// GTMイベント発火（ブラウザバック検知）\npushGtmEvent(\"browser_back_detected\",{mcvData:{source:latestSource,target:caregiverTargetAge,utm_source:latestParams.utm_source||\"\",utm_medium:latestParams.utm_medium||\"\",utm_campaign:latestParams.utm_campaign||\"\",utm_term:latestParams.utm_term||\"\",utm_content:latestParams.utm_content||\"\",...latestParams.custom}});// Framer Custom Event発火（GTMイベントと同じタイミング）\nfireFramerEvent(backDetectedTrackingId);window[GLOBAL_FLAG]=true;// カスタムイベント発火（Code Overrideへ通知）\nwindow.dispatchEvent(new CustomEvent(BROWSER_BACK_EVENT));}};window.addEventListener(\"pageshow\",handlePageShow);// タイマー設定\ntimerRef.current=setTimeout(()=>{if(hasRedirected.current)return;hasRedirected.current=true;const latestParams=getLatestParams();const latestSource=latestParams.source||\"direct\";const finalUrl=resolveRedirectUrl(latestParams);if(!finalUrl||!isValidUrl(finalUrl)){console.warn(\"[AutoRedirect] Invalid URL:\",finalUrl);return;}// GTMイベント名を決定（overrideルールをチェック）\nlet finalEventName=gtmEventName;if(gtmOverrideRules?.length>0){const currentUrlParams=new URLSearchParams(window.location.search);for(const rule of gtmOverrideRules){if(rule.paramName&&rule.paramValue&&rule.altEventName){if(currentUrlParams.get(rule.paramName)===rule.paramValue){finalEventName=rule.altEventName;break;}}}}// GTMイベント送信（mcvDataオブジェクトにまとめて送信）\npushGtmEvent(finalEventName,{mcvData:{redirect_url:finalUrl,source:latestSource,target:caregiverTargetAge,utm_source:latestParams.utm_source||\"\",utm_medium:latestParams.utm_medium||\"\",utm_campaign:latestParams.utm_campaign||\"\",utm_term:latestParams.utm_term||\"\",utm_content:latestParams.utm_content||\"\",...latestParams.custom}});// Framer Custom Event発火（GTMイベントと同じタイミング／リダイレクト直前）\nfireFramerEvent(redirectTrackingId);// ブラウザバック検知用フラグを保存（ページ別キー・v1.21.0）\nif(enableBackDetection){setSessionStorageItem(backFlagKey,\"true\");}// リダイレクト実行（リファラなし）\n// 現在のURLパラメータを引き継ぎ（fbclid, gclid, UTM等）\n// 必要に応じてParamKeeper helperのトークンを指定パラメータに付与\n// rel=\"noreferrer\"のリンクを動的生成してクリック\nconst link=document.createElement(\"a\");link.href=appendCurrentParams(finalUrl,forwardedRedirectParamName,new Set((excludeForwardParams||\"\").split(\",\").map(k=>k.trim().toLowerCase()).filter(Boolean)));link.rel=\"noreferrer\";link.click();},delaySeconds*1e3);// クリーンアップ\nreturn()=>{if(timerRef.current){clearTimeout(timerRef.current);timerRef.current=null;}window.removeEventListener(\"pageshow\",handlePageShow);window[GLOBAL_FLAG]=false;};},[])// 空の依存配列 - 初回マウント時のみ実行\n;// 完全に透明なコンポーネント\nreturn /*#__PURE__*/_jsx(\"div\",{style:TRANSPARENT_STYLE});}// ================================================================================\n// Property Controls\n// ================================================================================\naddPropertyControls(AutoRedirect,{redirectUrl:{type:ControlType.String,title:\"デフォルトURL\",defaultValue:\"https://example.com\",placeholder:\"https://...\",description:\"sourceマッピングにない場合のデフォルトURL\"},delaySeconds:{type:ControlType.Number,title:\"遅延秒数\",defaultValue:5,min:0,max:60,step:1,displayStepper:true},gtmEventName:{type:ControlType.String,title:\"GTMイベント名\",defaultValue:\"auto_redirect\",placeholder:\"auto_redirect\",description:\"mcvDataオブジェクトで送信\"},sourceMappings:{type:ControlType.Array,title:\"Source別URL設定\",control:{type:ControlType.Object,controls:{source:{type:ControlType.String,title:\"Source値\",placeholder:\"header_cta\"},redirectUrl:{type:ControlType.String,title:\"リダイレクト先URL\",placeholder:\"https://...\"}}},defaultValue:[]},customParams:{type:ControlType.Array,title:\"カスタムパラメータ\",control:{type:ControlType.Object,controls:{paramName:{type:ControlType.String,title:\"パラメータ名\",placeholder:\"age\"}}},defaultValue:[],description:\"mcvDataに含めるパラメータ名を指定\"},forwardedRedirectParamName:{type:ControlType.String,title:\"ASP付与パラメータ\",defaultValue:\"\",placeholder:\"id1\",description:\"FramerParamKeeper.getAspClickToken()の値をセットするパラメータ名。空ならASPトークン付与は無効\"},excludeForwardParams:{type:ControlType.String,title:\"遷移先に渡さないパラメータ\",defaultValue:\"ws,fac\",description:\"カンマ区切り。ここに挙げたURLパラメータはリダイレクト先へ引き継がない（既定 ws,fac＝診断がリダイレクトページの一押し出し分け用に付ける回答パラメータ。クライアントのアフィリエイトURLに流さないための除外）。空にすると全パラメータを従来どおり引き継ぐ\"},enableBackDetection:{type:ControlType.Boolean,title:\"ブラウザバック検知\",defaultValue:false,description:\"ONにするとブラウザバックで戻った場合にリダイレクトをスキップ。ShowOnBrowserBack Overrideと連携\"},gtmOverrideRules:{type:ControlType.Array,title:\"GTMイベント上書き\",control:{type:ControlType.Object,controls:{paramName:{type:ControlType.String,title:\"パラメータ名\",placeholder:\"source\"},paramValue:{type:ControlType.String,title:\"パラメータ値\",placeholder:\"header_cta\"},altEventName:{type:ControlType.String,title:\"代替イベント名\",placeholder:\"auto_redirect_alt\"}}},defaultValue:[],description:\"条件に合致した場合、リダイレクト時のGTMイベント名を差し替えます\"},redirectTrackingId:{type:ControlType.TrackingId,title:\"リダイレクトCustom Event\",defaultValue:\"\",description:\"リダイレクト時にGTMイベントと同時に発火するFramer Custom Event。空なら発火しない\"},backDetectedTrackingId:{type:ControlType.TrackingId,title:\"バック検知Custom Event\",defaultValue:\"\",description:\"ブラウザバック検知時にGTMイベントと同時に発火するFramer Custom Event。空なら発火しない\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"AutoRedirect\":{\"type\":\"reactComponent\",\"name\":\"AutoRedirect\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AutoRedirect.map","/**\n * ShowOnBrowserBack v1.11.0\n * ブラウザバック検知用 Code Override\n *\n * AutoRedirectコンポーネントと連携して使用します。\n * - ShowOnBrowserBack: ブラウザバック時に要素を表示\n * - HideOnBrowserBack: ブラウザバック時に要素を非表示\n *\n * 使用方法:\n * 1. AutoRedirectの「ブラウザバック検知」をONにする\n * 2. 通常時のコンテンツに HideOnBrowserBack を適用\n * 3. ブラウザバック時のコンテンツに ShowOnBrowserBack を適用\n *\n * 重要: LP側のリンクは絶対URL（https://...）で設定してください。\n * FramerのSPA遷移を避けることで、ブラウザバック検知が正しく動作します。\n *\n * BFCache対応:\n * モバイルChrome等ではBFCacheからページが復元されるとuseLayoutEffectが再実行されない。\n * pageshowイベント（event.persisted === true）でBFCache復元を検知して表示切り替え。\n */import{jsx as _jsx}from\"react/jsx-runtime\";import{useState,useLayoutEffect}from\"react\";// AutoRedirect.tsxと同じ定数\nconst GLOBAL_FLAG=\"__BROWSER_BACK_DETECTED__\";const BROWSER_BACK_EVENT=\"browserBackDetected\";/**\n * ブラウザバック時に要素を表示する Override\n *\n * 通常時は非表示（visibility: hidden）\n * ブラウザバック検知時に表示（visibility: visible）\n */export function ShowOnBrowserBack(Component){return props=>{const[isVisible,setIsVisible]=useState(false);useLayoutEffect(()=>{// SSR対策\nif(typeof window===\"undefined\")return;// 初期状態: グローバルフラグで判定\nconst flagIsSet=window[GLOBAL_FLAG]===true;setIsVisible(flagIsSet);// イベントリスナー（AutoRedirectからのブラウザバック通知を受信）\nconst handleBrowserBack=()=>setIsVisible(true);window.addEventListener(BROWSER_BACK_EVENT,handleBrowserBack);// BFCache復元対応: pageshowイベント監視\n// モバイルChrome等ではBFCacheからページが復元されるとuseLayoutEffectが再実行されない\nconst handlePageShow=event=>{if(event.persisted&&window[GLOBAL_FLAG]){setIsVisible(true);}};window.addEventListener(\"pageshow\",handlePageShow);return()=>{window.removeEventListener(BROWSER_BACK_EVENT,handleBrowserBack);window.removeEventListener(\"pageshow\",handlePageShow);};},[]);return /*#__PURE__*/_jsx(Component,{...props,style:{...props.style,visibility:isVisible?\"visible\":\"hidden\",opacity:isVisible?1:0,height:isVisible?\"auto\":0,overflow:isVisible?\"visible\":\"hidden\",pointerEvents:isVisible?\"auto\":\"none\"}});};}/**\n * ブラウザバック時に要素を非表示にする Override\n *\n * 通常時は表示（visibility: visible）\n * ブラウザバック検知時に非表示（visibility: hidden）\n */export function HideOnBrowserBack(Component){return props=>{const[isHidden,setIsHidden]=useState(false);useLayoutEffect(()=>{// SSR対策\nif(typeof window===\"undefined\")return;// 初期状態: グローバルフラグで判定\nconst flagIsSet=window[GLOBAL_FLAG]===true;setIsHidden(flagIsSet);// イベントリスナー（AutoRedirectからのブラウザバック通知を受信）\nconst handleBrowserBack=()=>setIsHidden(true);window.addEventListener(BROWSER_BACK_EVENT,handleBrowserBack);// BFCache復元対応: pageshowイベント監視\n// モバイルChrome等ではBFCacheからページが復元されるとuseLayoutEffectが再実行されない\nconst handlePageShow=event=>{if(event.persisted&&window[GLOBAL_FLAG]){setIsHidden(true);}};window.addEventListener(\"pageshow\",handlePageShow);return()=>{window.removeEventListener(BROWSER_BACK_EVENT,handleBrowserBack);window.removeEventListener(\"pageshow\",handlePageShow);};},[]);return /*#__PURE__*/_jsx(Component,{...props,style:{...props.style,visibility:isHidden?\"hidden\":\"visible\",opacity:isHidden?0:1,height:isHidden?0:\"auto\",overflow:isHidden?\"hidden\":\"visible\",pointerEvents:isHidden?\"none\":\"auto\"}});};}\nexport const __FramerMetadata__ = {\"exports\":{\"HideOnBrowserBack\":{\"type\":\"reactHoc\",\"name\":\"HideOnBrowserBack\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ShowOnBrowserBack\":{\"type\":\"reactHoc\",\"name\":\"ShowOnBrowserBack\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ShowOnBrowserBack.map"],"mappings":"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"}