{ "version": 3, "sources": ["../../javascript/pwa_install.js"], "sourcesContent": ["// PWA\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6848\u5185\uFF08layouts/_install_guide_btn\u3001layouts/_install_guide\uFF09\n// Turbo\u306E\u753B\u9762\u9077\u79FB\u3067\u518D\u5B9F\u884C\u3055\u308C\u306A\u3044\u3088\u3046\u3001application.html.erb\u306E\u3067\u8AAD\u307F\u8FBC\u3080\u3053\u3068\nconst PWA_INSTALL_GUIDE_COOKIE = 'pwa_install_guide_hidden';\nconst PWA_INSTALL_GUIDE_DISMISS_DAYS = 30; // \u00D7\u3067\u9589\u3058\u305F\u5F8C\u306B\u8868\u793A\u3057\u306A\u3044\u65E5\u6570\nconst PWA_INSTALL_GUIDE_INSTALLED_DAYS = 365; // \u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F\u3068\u5224\u5B9A\u3057\u305F\u5F8C\u306B\u8868\u793A\u3057\u306A\u3044\u65E5\u6570\nlet pwaDeferredPrompt = null;\n\nfunction pwaIsStandalone() {\n return window.matchMedia('(display-mode: standalone)').matches || window.navigator.standalone === true;\n}\n\nfunction pwaSetGuideHiddenCookie(value, days) {\n document.cookie = PWA_INSTALL_GUIDE_COOKIE + '=' + value + '; max-age=' + (days * 86400) + '; path=/; SameSite=Lax';\n}\n\nfunction pwaSendEvent(name, params) {\n if (typeof gtag == 'function') {\n gtag('event', name, params || {});\n }\n}\n\nfunction pwaRemoveGuideBtns() {\n document.querySelectorAll('.pwa_install_guide_btn_wrap').forEach(el => {\n el.remove();\n });\n}\n\n// Android\u7B49\u3067\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u78BA\u8A8D\u3092\u51FA\u305B\u308B\u5834\u5408\u306E\u307F\u30DC\u30BF\u30F3\u3092\u8868\u793A\nfunction pwaRefreshPromptBtn() {\n const btn = document.getElementById('pwa_install_prompt_btn');\n if (btn) {\n btn.classList.toggle('nonedisp', !pwaDeferredPrompt);\n }\n}\n\nwindow.addEventListener('beforeinstallprompt', (e) => {\n // \u6848\u5185\u30DC\u30BF\u30F3\u8868\u793A\u4E2D\u306E\u307F\u30D6\u30E9\u30A6\u30B6\u6A19\u6E96\u306E\u6848\u5185\u3092\u6291\u6B62\u3057\u3001\u30E2\u30FC\u30C0\u30EB\u306E\u30DC\u30BF\u30F3\u304B\u3089\u8868\u793A\u3059\u308B\n if (document.querySelector('.pwa_install_guide_btn_wrap')) {\n e.preventDefault();\n }\n pwaDeferredPrompt = e;\n pwaRefreshPromptBtn();\n});\n\nwindow.addEventListener('appinstalled', () => {\n pwaDeferredPrompt = null;\n pwaSetGuideHiddenCookie('installed', PWA_INSTALL_GUIDE_INSTALLED_DAYS);\n pwaRemoveGuideBtns();\n pwaRefreshPromptBtn();\n pwaSendEvent('pwa_appinstalled');\n});\n\ndocument.addEventListener('click', (e) => {\n if (e.target.closest('.pwa_install_guide_open')) {\n pwaSendEvent('pwa_install_guide_open');\n } else if (e.target.closest('.pwa_install_guide_close')) {\n pwaSetGuideHiddenCookie('dismissed', PWA_INSTALL_GUIDE_DISMISS_DAYS);\n pwaRemoveGuideBtns();\n pwaSendEvent('pwa_install_guide_close');\n } else if (e.target.closest('#pwa_install_prompt_btn') && pwaDeferredPrompt) {\n const deferredPrompt = pwaDeferredPrompt;\n // prompt()\u306F1\u56DE\u3057\u304B\u547C\u3079\u306A\u3044\u305F\u3081\u7834\u68C4\u3059\u308B\n pwaDeferredPrompt = null;\n pwaRefreshPromptBtn();\n deferredPrompt.prompt();\n deferredPrompt.userChoice.then(choice => {\n pwaSendEvent('pwa_install_prompt', { outcome: choice.outcome });\n });\n }\n});\n\ndocument.addEventListener('turbo:load', () => {\n if (pwaIsStandalone()) {\n // \u30DB\u30FC\u30E0\u753B\u9762\u304B\u3089\u8D77\u52D5\u4E2D\u306F\u6848\u5185\u4E0D\u8981\uFF08iOS\u306FSafari\u3068Cookie\u304C\u5225\u306E\u305F\u3081\u3001Safari\u5074\u306E\u8868\u793A\u306B\u306F\u5F71\u97FF\u3057\u306A\u3044\uFF09\n pwaSetGuideHiddenCookie('installed', PWA_INSTALL_GUIDE_INSTALLED_DAYS);\n pwaRemoveGuideBtns();\n try {\n if (!sessionStorage.getItem('pwa_standalone_launch_sent')) {\n sessionStorage.setItem('pwa_standalone_launch_sent', '1');\n pwaSendEvent('pwa_standalone_launch');\n }\n } catch (e) {}\n } else if (document.cookie.split('; ').some(c => c.indexOf(PWA_INSTALL_GUIDE_COOKIE + '=') === 0)) {\n // Turbo\u306E\u30AD\u30E3\u30C3\u30B7\u30E5\u304B\u3089\u5FA9\u5143\u3055\u308C\u305F\u30DA\u30FC\u30B8\u306B\u6B8B\u3063\u3066\u3044\u308B\u5834\u5408\n pwaRemoveGuideBtns();\n }\n pwaRefreshPromptBtn();\n});\n"], "mappings": "MAEA,IAAMA,EAA2B,2BAGjC,IAAIC,EAAoB,KAExB,SAASC,GAAkB,CACzB,OAAO,OAAO,WAAW,4BAA4B,EAAE,SAAW,OAAO,UAAU,aAAe,EACpG,CAEA,SAASC,EAAwBC,EAAOC,EAAM,CAC5C,SAAS,OAASC,EAA2B,IAAMF,EAAQ,aAAgBC,EAAO,MAAS,wBAC7F,CAEA,SAASE,EAAaC,EAAMC,EAAQ,CAC9B,OAAO,MAAQ,YACjB,KAAK,QAASD,EAAMC,GAAU,CAAC,CAAC,CAEpC,CAEA,SAASC,GAAqB,CAC5B,SAAS,iBAAiB,6BAA6B,EAAE,QAAQC,GAAM,CACrEA,EAAG,OAAO,CACZ,CAAC,CACH,CAGA,SAASC,GAAsB,CAC7B,IAAMC,EAAM,SAAS,eAAe,wBAAwB,EACxDA,GACFA,EAAI,UAAU,OAAO,WAAY,CAACZ,CAAiB,CAEvD,CAEA,OAAO,iBAAiB,sBAAwB,GAAM,CAEhD,SAAS,cAAc,6BAA6B,GACtD,EAAE,eAAe,EAEnBA,EAAoB,EACpBW,EAAoB,CACtB,CAAC,EAED,OAAO,iBAAiB,eAAgB,IAAM,CAC5CX,EAAoB,KACpBE,EAAwB,YAAa,GAAgC,EACrEO,EAAmB,EACnBE,EAAoB,EACpBL,EAAa,kBAAkB,CACjC,CAAC,EAED,SAAS,iBAAiB,QAAU,GAAM,CACxC,GAAI,EAAE,OAAO,QAAQ,yBAAyB,EAC5CA,EAAa,wBAAwB,UAC5B,EAAE,OAAO,QAAQ,0BAA0B,EACpDJ,EAAwB,YAAa,EAA8B,EACnEO,EAAmB,EACnBH,EAAa,yBAAyB,UAC7B,EAAE,OAAO,QAAQ,yBAAyB,GAAKN,EAAmB,CAC3E,IAAMa,EAAiBb,EAEvBA,EAAoB,KACpBW,EAAoB,EACpBE,EAAe,OAAO,EACtBA,EAAe,WAAW,KAAKC,GAAU,CACvCR,EAAa,qBAAsB,CAAE,QAASQ,EAAO,OAAQ,CAAC,CAChE,CAAC,CACH,CACF,CAAC,EAED,SAAS,iBAAiB,aAAc,IAAM,CAC5C,GAAIb,EAAgB,EAAG,CAErBC,EAAwB,YAAa,GAAgC,EACrEO,EAAmB,EACnB,GAAI,CACG,eAAe,QAAQ,4BAA4B,IACtD,eAAe,QAAQ,6BAA8B,GAAG,EACxDH,EAAa,uBAAuB,EAExC,OAAS,EAAG,CAAC,CACf,MAAW,SAAS,OAAO,MAAM,IAAI,EAAE,KAAKS,GAAKA,EAAE,QAAQV,EAA2B,GAAG,IAAM,CAAC,GAE9FI,EAAmB,EAErBE,EAAoB,CACtB,CAAC", "names": ["PWA_INSTALL_GUIDE_COOKIE", "pwaDeferredPrompt", "pwaIsStandalone", "pwaSetGuideHiddenCookie", "value", "days", "PWA_INSTALL_GUIDE_COOKIE", "pwaSendEvent", "name", "params", "pwaRemoveGuideBtns", "el", "pwaRefreshPromptBtn", "btn", "deferredPrompt", "choice", "c"] }