{"version":3,"file":"ShowOnBrowserBack.CvnsZoAI.mjs","names":["mask","SVG","getProps","Icon","mask","SVG","getProps","Icon","mask","SVG","getProps","Icon","useRef","p","GLOBAL_FLAG","BROWSER_BACK_EVENT","wasRedirected","savedPath","useState"],"sources":["https:/framerusercontent.com/modules/4fDbmyb3C6kdd9BrWv91/axQdQTvxjGUwQYvq0Ujj/RbvDwQuAH.js","https:/framerusercontent.com/modules/ET0cwUH5xqdy0cJSjqzY/GC0myzy3uLw6ryC6gWS1/ho6vs058A.js","https:/framerusercontent.com/modules/ReztmAokVeGw5cg0fyR4/PkNHNh4lufyZ2t9oLCCz/h9XMT5BNQ.js","https:/framerusercontent.com/modules/sRQNFuncgCbM0DJTn2fE/fqWOSNQ22on8LCQipl2C/jdQVX1jb4.js","https:/framerusercontent.com/modules/HYQZ3C22BjausdQIlZFd/APXALZA2GhrzzHtWzELL/AutoRedirect.js","https:/framerusercontent.com/modules/NqW8kUe5QgNqHGlVs4Wn/Hul3vztgfkNHIEB7XuXR/ShowOnBrowserBack.js"],"sourcesContent":["// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 13.862 2.237 L 15.549 0.549 C 16.281 -0.183 17.469 -0.183 18.201 0.549 C 18.933 1.281 18.933 2.469 18.201 3.201 L 7.582 13.82 C 7.053 14.348 6.401 14.737 5.685 14.95 L 3 15.75 L 3.8 13.065 C 4.013 12.349 4.402 11.697 4.931 11.168 Z M 13.862 2.237 L 16.5 4.875 M 15 11.75 L 15 16.5 C 15 17.743 13.993 18.75 12.75 18.75 L 2.25 18.75 C 1.007 18.75 0 17.743 0 16.5 L 0 6 C 0 4.757 1.007 3.75 2.25 3.75 L 7 3.75\" fill=\"transparent\" height=\"18.750002609024047px\" id=\"hlAS0dEIy\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" stroke=\"var(--szd5nr, black)\" transform=\"translate(3 2.25)\" width=\"18.750025px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,id,stroke,width,...props})=>{return{...props,YmfIrZ3Ez:stroke??props.YmfIrZ3Ez??\"rgb(0, 0, 0)\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,YmfIrZ3Ez,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-MHmy2\",className),layoutId:layoutId,ref:ref,style:{\"--szd5nr\":YmfIrZ3Ez,...style}});});const css=[`.framer-MHmy2 { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--szd5nr); 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 {\"YmfIrZ3Ez\":\"stroke\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Pencil Square\",\"color\":{\"type\":\"variable\",\"value\":\"szd5nr\"},\"set\":{\"localId\":\"vectorSet/kNBkgkDkJ\",\"id\":\"kNBkgkDkJ\",\"moduleId\":\"DyJDRQD0f0RPOu0ZYoEG\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-MHmy2\");Icon.displayName=\"Pencil Square\";export default Icon;addPropertyControls(Icon,{YmfIrZ3Ez:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Stroke\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"24\",\"framerVariables\":\"{\\\"YmfIrZ3Ez\\\":\\\"stroke\\\"}\",\"framerDisableUnlink\":\"true\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerVector\":\"{\\\"name\\\":\\\"Pencil Square\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"szd5nr\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/kNBkgkDkJ\\\",\\\"id\\\":\\\"kNBkgkDkJ\\\",\\\"moduleId\\\":\\\"DyJDRQD0f0RPOu0ZYoEG\\\"}}\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"24\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 2.658 6.654 C 2.386 8.738 2.22 10.856 2.167 13.001 C 5.063 14.21 7.818 15.691 10.399 17.411 C 12.98 15.691 15.734 14.21 18.63 13.001 C 18.578 10.856 18.412 8.738 18.14 6.654 M 2.658 6.654 C 1.783 6.36 0.896 6.089 0 5.841 C 3.245 3.566 6.726 1.605 10.399 0 C 14.072 1.605 17.553 3.566 20.798 5.841 C 19.902 6.089 19.015 6.36 18.14 6.654 M 2.658 6.654 C 5.345 7.557 7.933 8.678 10.399 9.996 C 12.865 8.678 15.452 7.557 18.14 6.654 M 5.149 11.507 C 5.563 11.507 5.899 11.172 5.899 10.757 C 5.899 10.343 5.563 10.007 5.149 10.007 C 4.735 10.007 4.399 10.343 4.399 10.757 C 4.399 11.172 4.735 11.507 5.149 11.507 Z M 5.149 11.507 L 5.149 7.832 C 6.84 6.781 8.593 5.818 10.399 4.951 M 3.392 16.5 C 4.563 15.329 5.149 13.793 5.149 12.257 L 5.149 10.757\" fill=\"transparent\" height=\"17.411049873352052px\" id=\"PF2WP5Z8w\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" stroke=\"var(--szd5nr, black)\" transform=\"translate(1.601 3.493)\" width=\"20.79793px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,id,stroke,width,...props})=>{return{...props,YmfIrZ3Ez:stroke??props.YmfIrZ3Ez??\"rgb(0, 0, 0)\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,YmfIrZ3Ez,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-4cSXw\",className),layoutId:layoutId,ref:ref,style:{\"--szd5nr\":YmfIrZ3Ez,...style}});});const css=[`.framer-4cSXw { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--szd5nr); 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 {\"YmfIrZ3Ez\":\"stroke\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Academic Cap\",\"color\":{\"type\":\"variable\",\"value\":\"szd5nr\"},\"set\":{\"localId\":\"vectorSet/kNBkgkDkJ\",\"id\":\"kNBkgkDkJ\",\"moduleId\":\"DyJDRQD0f0RPOu0ZYoEG\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-4cSXw\");Icon.displayName=\"Academic Cap\";export default Icon;addPropertyControls(Icon,{YmfIrZ3Ez:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Stroke\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"24\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"24\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerVariables\":\"{\\\"YmfIrZ3Ez\\\":\\\"stroke\\\"}\",\"framerDisableUnlink\":\"true\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerVector\":\"{\\\"name\\\":\\\"Academic Cap\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"szd5nr\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/kNBkgkDkJ\\\",\\\"id\\\":\\\"kNBkgkDkJ\\\",\\\"moduleId\\\":\\\"DyJDRQD0f0RPOu0ZYoEG\\\"}}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 2.731 8.875 L 0 0 C 6.615 1.922 12.759 4.951 18.217 8.875 C 12.759 12.799 6.615 15.829 0 17.751 Z M 2.731 8.875 L 10.231 8.875\" fill=\"transparent\" height=\"17.75069px\" id=\"uZV2gPRgr\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" stroke=\"var(--szd5nr, black)\" transform=\"translate(3.269 3.125)\" width=\"18.2167px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,id,stroke,width,...props})=>{return{...props,YmfIrZ3Ez:stroke??props.YmfIrZ3Ez??\"rgb(0, 0, 0)\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,YmfIrZ3Ez,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-sQNpM\",className),layoutId:layoutId,ref:ref,style:{\"--szd5nr\":YmfIrZ3Ez,...style}});});const css=[`.framer-sQNpM { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--szd5nr); 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 {\"YmfIrZ3Ez\":\"stroke\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Paper Airplane\",\"color\":{\"type\":\"variable\",\"value\":\"szd5nr\"},\"set\":{\"localId\":\"vectorSet/kNBkgkDkJ\",\"id\":\"kNBkgkDkJ\",\"moduleId\":\"DyJDRQD0f0RPOu0ZYoEG\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-sQNpM\");Icon.displayName=\"Paper Airplane\";export default Icon;addPropertyControls(Icon,{YmfIrZ3Ez:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Stroke\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"true\",\"framerContractVersion\":\"1\",\"framerVector\":\"{\\\"name\\\":\\\"Paper Airplane\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"szd5nr\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/kNBkgkDkJ\\\",\\\"id\\\":\\\"kNBkgkDkJ\\\",\\\"moduleId\\\":\\\"DyJDRQD0f0RPOu0ZYoEG\\\"}}\",\"framerIntrinsicHeight\":\"24\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerVariables\":\"{\\\"YmfIrZ3Ez\\\":\\\"stroke\\\"}\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"24\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 12.75 16.128 C 13.583 16.37 14.464 16.5 15.375 16.5 C 16.854 16.5 18.253 16.158 19.496 15.548 C 19.499 15.491 19.5 15.433 19.5 15.375 C 19.5 13.097 17.653 11.25 15.375 11.25 C 13.957 11.25 12.706 11.966 11.964 13.055 M 12.75 16.128 L 12.75 16.125 C 12.75 15.012 12.465 13.966 11.964 13.055 M 12.75 16.128 C 12.75 16.163 12.75 16.199 12.749 16.234 C 10.887 17.355 8.707 18 6.375 18 C 4.044 18 1.863 17.355 0.001 16.234 C 0 16.198 0 16.162 0 16.125 C 0 12.604 2.854 9.75 6.375 9.75 C 8.783 9.75 10.879 11.085 11.964 13.055 M 9.75 3.375 C 9.75 5.239 8.239 6.75 6.375 6.75 C 4.511 6.75 3 5.239 3 3.375 C 3 1.511 4.511 0 6.375 0 C 8.239 0 9.75 1.511 9.75 3.375 Z M 18 5.625 C 18 7.075 16.825 8.25 15.375 8.25 C 13.925 8.25 12.75 7.075 12.75 5.625 C 12.75 4.175 13.925 3 15.375 3 C 16.825 3 18 4.175 18 5.625 Z\" fill=\"transparent\" height=\"18px\" id=\"SIB_V6rej\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" stroke=\"var(--szd5nr, black)\" transform=\"translate(2.25 3)\" width=\"19.500000158691407px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,id,stroke,width,...props})=>{return{...props,YmfIrZ3Ez:stroke??props.YmfIrZ3Ez??\"rgb(0, 0, 0)\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,YmfIrZ3Ez,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-ygtxO\",className),layoutId:layoutId,ref:ref,style:{\"--szd5nr\":YmfIrZ3Ez,...style}});});const css=[`.framer-ygtxO { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--szd5nr); 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 {\"YmfIrZ3Ez\":\"stroke\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Users\",\"color\":{\"type\":\"variable\",\"value\":\"szd5nr\"},\"set\":{\"localId\":\"vectorSet/kNBkgkDkJ\",\"id\":\"kNBkgkDkJ\",\"moduleId\":\"DyJDRQD0f0RPOu0ZYoEG\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-ygtxO\");Icon.displayName=\"Users\";export default Icon;addPropertyControls(Icon,{YmfIrZ3Ez:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Stroke\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"24\",\"framerIntrinsicHeight\":\"24\",\"framerVariables\":\"{\\\"YmfIrZ3Ez\\\":\\\"stroke\\\"}\",\"framerDisableUnlink\":\"true\",\"framerImmutableVariables\":\"true\",\"framerVector\":\"{\\\"name\\\":\\\"Users\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"szd5nr\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/kNBkgkDkJ\\\",\\\"id\\\":\\\"kNBkgkDkJ\\\",\\\"moduleId\\\":\\\"DyJDRQD0f0RPOu0ZYoEG\\\"}}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * AutoRedirect v1.15.1\n * 自動リダイレクトコードコンポーネント\n *\n * 特徴:\n * - 透明コンポーネント（配置するだけで動作）\n * - Property Controlsで設定可能\n * - sourceパラメータ対応（?source=header_cta）\n * - source別URLマッピング（クリック箇所追跡・MCV判定対応）\n * - GTM連携（sendBeacon確実送信、mcvDataオブジェクトで一括送信）\n * - CaregiverDualDiagnosis連携: URLパラメータ優先、localStorageフォールバックで年代(target)を取得\n * - ブラウザバック検知: 外部サイトからブラウザバックで戻った場合にリダイレクトをスキップ\n * - BFCache対応: モバイルChrome等のBack-Forward Cache復元時もpageshowイベントで検知\n * - リファラ削除: rel=\"noreferrer\"でリダイレクト時にリファラを送信しない\n * - URLパラメータ引き継ぎ: fbclid/gclid/UTM等を自動でリダイレクト先に付与（v1.14.0）\n * - ランダム分岐: 全体の指定割合を別URLへランダムに振り分け（v1.15.0）\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}from\"framer\";import{useEffect,useRef}from\"react\";// sessionStorageキー\nconst STORAGE_KEY=\"autoredirect_executed\";const STORAGE_PATH_KEY=\"autoredirect_path\";// グローバルフラグ名（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\"};// ================================================================================\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=>{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);// カスタムパラメータを取得\nconst custom={};customParamNames.forEach(name=>{const value=params.get(name);if(value){custom[name]=value;}});return{source:params.get(\"source\"),utm_source:params.get(\"utm_source\"),utm_medium:params.get(\"utm_medium\"),utm_campaign:params.get(\"utm_campaign\"),utm_term:params.get(\"utm_term\"),utm_content:params.get(\"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 * リダイレクト先に既に存在するパラメータは上書きしない\n */const EXCLUDED_PARAMS=new Set([\"framer_variant\"]);const appendCurrentParams=baseUrl=>{if(!baseUrl)return baseUrl;if(typeof window===\"undefined\")return baseUrl;const currentParams=new URLSearchParams(window.location.search);if(currentParams.size===0)return baseUrl;try{const url=new URL(baseUrl);currentParams.forEach((value,key)=>{if(!url.searchParams.has(key)&&!EXCLUDED_PARAMS.has(key)){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にランダム振り分け\n * 無効な設定時は既存URLをそのまま返す\n */const applyRandomRedirect=(baseUrl,percentage,alternateUrl)=>{if(!alternateUrl||percentage<=0)return baseUrl;const normalizedPercentage=Math.min(Math.max(percentage,0),100);if(Math.random()*100>=normalizedPercentage)return baseUrl;if(!isValidUrl(alternateUrl)){console.warn(\"[AutoRedirect] Invalid random redirect URL:\",alternateUrl);return baseUrl;}return alternateUrl;};/**\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=[],enableBackDetection=false,gtmOverrideRules=[],randomRedirectPercentage=0,randomRedirectUrl=\"\"}){// 多重実行防止\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;// 多重実行防止\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 params=getUrlParams(customParamNames);const source=params.source||\"direct\";// 年代を取得（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\")||\"\";}// ここでいう別ページ遷移は、外部サイトからではなくFramer内の別ページからの遷移を指す。\n// ブラウザバック連携は ShowOnBrowserBack.tsx の説明どおり、絶対URLでのアクセスを推奨。\nconst savedPath=enableBackDetection?getStorageItem(\"session\",STORAGE_PATH_KEY):null;const wasRedirected=enableBackDetection&&getStorageItem(\"session\",STORAGE_KEY)===\"true\";const isValidBrowserBack=enableBackDetection&&isBrowserBack()&&wasRedirected&&savedPath===currentPath;if(!isValidBrowserBack){window[GLOBAL_FLAG]=false;}// ブラウザバック検知\nif(isValidBrowserBack){// 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}});window[GLOBAL_FLAG]=true;// カスタムイベント発火（Code Overrideへ通知）\nwindow.dispatchEvent(new CustomEvent(BROWSER_BACK_EVENT));// リダイレクトしない\nreturn;}// リダイレクト先URL決定\nlet finalUrl=redirectUrl;// sourceMappingsからマッチするURLを検索\nif(params.source&&sourceMappings?.length>0){const mapping=sourceMappings.find(m=>m.source===params.source);if(mapping?.redirectUrl){finalUrl=mapping.redirectUrl;}}finalUrl=applyRandomRedirect(finalUrl,randomRedirectPercentage,randomRedirectUrl);// URLバリデーション\nif(!finalUrl||!isValidUrl(finalUrl)){console.warn(\"[AutoRedirect] Invalid URL:\",finalUrl);return;}// BFCache復元対応: pageshowイベント監視\n// モバイルChrome等ではBFCacheからページが復元されるとuseEffectが再実行されない\n// pageshowイベント（event.persisted === true）でBFCache復元を検知\nconst handlePageShow=event=>{if(!event.persisted)return;// 通常ロードは無視\nif(!enableBackDetection)return;// BFCacheから復元された = ブラウザバック\nconst wasRedirected=getStorageItem(\"session\",STORAGE_KEY)===\"true\";const savedPath=getStorageItem(\"session\",STORAGE_PATH_KEY);// 同じパスからのブラウザバックのみ検知（別ページからの再訪問は除外）\nif(wasRedirected&&savedPath===currentPath){// 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}});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;// 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: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}});// ブラウザバック検知用フラグを保存（パスも一緒に保存）\nif(enableBackDetection){setSessionStorageItem(STORAGE_KEY,\"true\");setSessionStorageItem(STORAGE_PATH_KEY,currentPath);}// リダイレクト実行（リファラなし）\n// 現在のURLパラメータを引き継ぎ（fbclid, gclid, UTM等）\n// rel=\"noreferrer\"のリンクを動的生成してクリック\nconst link=document.createElement(\"a\");link.href=appendCurrentParams(finalUrl);link.rel=\"noreferrer\";link.click();},delaySeconds*1e3);// クリーンアップ\nreturn()=>{if(timerRef.current){clearTimeout(timerRef.current);timerRef.current=null;}window.removeEventListener(\"pageshow\",handlePageShow);};},[])// 空の依存配列 - 初回マウント時のみ実行\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に含めるパラメータ名を指定\"},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イベント名を差し替えます\"},randomRedirectPercentage:{type:ControlType.Number,title:\"ランダム分岐%\",defaultValue:0,min:0,max:100,step:1,displayStepper:true,description:\"全体のうち指定割合だけ別URLへ振り分けます\"},randomRedirectUrl:{type:ControlType.String,title:\"分岐先URL\",defaultValue:\"\",placeholder:\"https://...\",description:\"ランダム分岐%に当たった場合のリダイレクト先URL\"}});\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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"}