UNPKG

comics

Version:

1 lines 16.3 kB
{"ast":null,"code":"\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = initializeBuildWatcher;\n\nvar _router = _interopRequireDefault(require(\"../router\"));\n\nfunction initializeBuildWatcher() {\n var shadowHost = document.createElement('div');\n shadowHost.id = '__next-prerender-indicator'; // Make sure container is fixed and on a high zIndex so it shows\n\n shadowHost.style.position = 'fixed';\n shadowHost.style.bottom = '20px';\n shadowHost.style.right = '10px';\n shadowHost.style.width = 0;\n shadowHost.style.height = 0;\n shadowHost.style.zIndex = 99998;\n shadowHost.style.transition = 'all 100ms ease';\n document.body.appendChild(shadowHost);\n var shadowRoot;\n var prefix = '';\n\n if (shadowHost.attachShadow) {\n shadowRoot = shadowHost.attachShadow({\n mode: 'open'\n });\n } else {\n // If attachShadow is undefined then the browser does not support\n // the Shadow DOM, we need to prefix all the names so there\n // will be no conflicts\n shadowRoot = shadowHost;\n prefix = '__next-prerender-indicator-';\n } // Container\n\n\n var container = createContainer(prefix);\n shadowRoot.appendChild(container); // CSS\n\n var css = createCss(prefix);\n shadowRoot.appendChild(css);\n var expandEl = container.querySelector('a');\n var closeEl = container.querySelector(\"#\".concat(prefix, \"close\")); // State\n\n var dismissKey = '__NEXT_DISMISS_PRERENDER_INDICATOR';\n var dismissUntil = parseInt(window.localStorage.getItem(dismissKey), 10);\n var dismissed = dismissUntil > new Date().getTime();\n var isVisible = !dismissed && window.__NEXT_DATA__.nextExport;\n\n function updateContainer() {\n if (isVisible) {\n container.classList.add(\"\".concat(prefix, \"visible\"));\n } else {\n container.classList.remove(\"\".concat(prefix, \"visible\"));\n }\n }\n\n var expandedClass = \"\".concat(prefix, \"expanded\");\n var toggleTimeout;\n\n var toggleExpand = function toggleExpand() {\n var expand = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n clearTimeout(toggleTimeout);\n toggleTimeout = setTimeout(function () {\n if (expand) {\n expandEl.classList.add(expandedClass);\n closeEl.style.display = 'flex';\n } else {\n expandEl.classList.remove(expandedClass);\n closeEl.style.display = 'none';\n }\n }, 50);\n };\n\n closeEl.addEventListener('click', function () {\n var oneHourAway = new Date().getTime() + 1 * 60 * 60 * 1000;\n window.localStorage.setItem(dismissKey, oneHourAway + '');\n isVisible = false;\n updateContainer();\n });\n closeEl.addEventListener('mouseenter', function () {\n return toggleExpand();\n });\n closeEl.addEventListener('mouseleave', function () {\n return toggleExpand(false);\n });\n expandEl.addEventListener('mouseenter', function () {\n return toggleExpand();\n });\n expandEl.addEventListener('mouseleave', function () {\n return toggleExpand(false);\n });\n\n _router[\"default\"].events.on('routeChangeComplete', function () {\n isVisible = window.next.isPrerendered;\n updateContainer();\n });\n\n updateContainer();\n}\n\nfunction createContainer(prefix) {\n var container = document.createElement('div');\n container.id = \"\".concat(prefix, \"container\");\n container.innerHTML = \"\\n <button id=\\\"\".concat(prefix, \"close\\\" title=\\\"Hide indicator for session\\\">\\n <span>\\xD7</span>\\n </button>\\n <a href=\\\"https://nextjs.org/docs#automatic-static-optimization-indicator\\\" target=\\\"_blank\\\" rel=\\\"noreferrer\\\">\\n <div id=\\\"\").concat(prefix, \"icon-wrapper\\\">\\n <svg width=\\\"15\\\" height=\\\"20\\\" viewBox=\\\"0 0 60 80\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n <path d=\\\"M36 3L30.74 41H8L36 3Z\\\" fill=\\\"black\\\"/>\\n <path d=\\\"M25 77L30.26 39H53L25 77Z\\\" fill=\\\"black\\\"/>\\n <path d=\\\"M13.5 33.5L53 39L47.5 46.5L7 41.25L13.5 33.5Z\\\" fill=\\\"black\\\"/>\\n </svg>\\n Prerendered Page\\n </div>\\n </a>\\n \");\n return container;\n}\n\nfunction createCss(prefix) {\n var css = document.createElement('style');\n css.textContent = \"\\n #\".concat(prefix, \"container {\\n position: absolute;\\n display: none;\\n bottom: 10px;\\n right: 15px;\\n }\\n\\n #\").concat(prefix, \"close {\\n top: -10px;\\n right: -10px;\\n border: none;\\n width: 18px;\\n height: 18px;\\n color: #333333;\\n font-size: 16px;\\n cursor: pointer;\\n display: none;\\n position: absolute;\\n background: #ffffff;\\n border-radius: 100%;\\n align-items: center;\\n flex-direction: column;\\n justify-content: center;\\n }\\n\\n #\").concat(prefix, \"container a {\\n color: inherit;\\n text-decoration: none;\\n width: 15px;\\n height: 23px;\\n overflow: hidden;\\n\\n border-radius: 3px;\\n background: #fff;\\n color: #000;\\n font: initial;\\n cursor: pointer;\\n letter-spacing: initial;\\n text-shadow: initial;\\n text-transform: initial;\\n visibility: initial;\\n font-size: 14px;\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\\n\\n padding: 4px 2px;\\n align-items: center;\\n box-shadow: 0 11px 40px 0 rgba(0, 0, 0, 0.25), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\\n\\n display: flex;\\n transition: opacity 0.1s ease, bottom 0.1s ease, width 0.3s ease;\\n animation: \").concat(prefix, \"fade-in 0.1s ease-in-out;\\n }\\n\\n #\").concat(prefix, \"icon-wrapper {\\n width: 140px;\\n height: 20px;\\n display: flex;\\n flex-shrink: 0;\\n align-items: center;\\n position: relative;\\n }\\n\\n #\").concat(prefix, \"icon-wrapper svg {\\n flex-shrink: 0;\\n margin-right: 3px;\\n }\\n\\n #\").concat(prefix, \"container a.\").concat(prefix, \"expanded {\\n width: 135px;\\n }\\n\\n #\").concat(prefix, \"container.\").concat(prefix, \"visible {\\n display: flex;\\n bottom: 10px;\\n opacity: 1;\\n }\\n\\n @keyframes \").concat(prefix, \"fade-in {\\n from {\\n bottom: 0px;\\n opacity: 0;\\n }\\n to {\\n bottom: 10px;\\n opacity: 1;\\n }\\n }\\n \");\n return css;\n}","map":{"version":3,"sources":["../../../client/dev/prerender-indicator.js"],"names":["shadowHost","document","prefix","shadowRoot","mode","container","createContainer","css","createCss","expandEl","closeEl","dismissKey","dismissUntil","parseInt","window","dismissed","isVisible","expandedClass","toggleExpand","expand","clearTimeout","toggleTimeout","setTimeout","oneHourAway","updateContainer","Router"],"mappings":"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","sourcesContent":["import Router from '../router'\n\nexport default function initializeBuildWatcher() {\n const shadowHost = document.createElement('div')\n shadowHost.id = '__next-prerender-indicator'\n // Make sure container is fixed and on a high zIndex so it shows\n shadowHost.style.position = 'fixed'\n shadowHost.style.bottom = '20px'\n shadowHost.style.right = '10px'\n shadowHost.style.width = 0\n shadowHost.style.height = 0\n shadowHost.style.zIndex = 99998\n shadowHost.style.transition = 'all 100ms ease'\n\n document.body.appendChild(shadowHost)\n\n let shadowRoot\n let prefix = ''\n\n if (shadowHost.attachShadow) {\n shadowRoot = shadowHost.attachShadow({ mode: 'open' })\n } else {\n // If attachShadow is undefined then the browser does not support\n // the Shadow DOM, we need to prefix all the names so there\n // will be no conflicts\n shadowRoot = shadowHost\n prefix = '__next-prerender-indicator-'\n }\n\n // Container\n const container = createContainer(prefix)\n shadowRoot.appendChild(container)\n\n // CSS\n const css = createCss(prefix)\n shadowRoot.appendChild(css)\n\n const expandEl = container.querySelector('a')\n const closeEl = container.querySelector(`#${prefix}close`)\n\n // State\n const dismissKey = '__NEXT_DISMISS_PRERENDER_INDICATOR'\n const dismissUntil = parseInt(window.localStorage.getItem(dismissKey), 10)\n const dismissed = dismissUntil > new Date().getTime()\n\n let isVisible = !dismissed && window.__NEXT_DATA__.nextExport\n\n function updateContainer() {\n if (isVisible) {\n container.classList.add(`${prefix}visible`)\n } else {\n container.classList.remove(`${prefix}visible`)\n }\n }\n const expandedClass = `${prefix}expanded`\n let toggleTimeout\n\n const toggleExpand = (expand = true) => {\n clearTimeout(toggleTimeout)\n\n toggleTimeout = setTimeout(() => {\n if (expand) {\n expandEl.classList.add(expandedClass)\n closeEl.style.display = 'flex'\n } else {\n expandEl.classList.remove(expandedClass)\n closeEl.style.display = 'none'\n }\n }, 50)\n }\n\n closeEl.addEventListener('click', () => {\n const oneHourAway = new Date().getTime() + 1 * 60 * 60 * 1000\n window.localStorage.setItem(dismissKey, oneHourAway + '')\n isVisible = false\n updateContainer()\n })\n closeEl.addEventListener('mouseenter', () => toggleExpand())\n closeEl.addEventListener('mouseleave', () => toggleExpand(false))\n expandEl.addEventListener('mouseenter', () => toggleExpand())\n expandEl.addEventListener('mouseleave', () => toggleExpand(false))\n\n Router.events.on('routeChangeComplete', () => {\n isVisible = window.next.isPrerendered\n updateContainer()\n })\n updateContainer()\n}\n\nfunction createContainer(prefix) {\n const container = document.createElement('div')\n container.id = `${prefix}container`\n container.innerHTML = `\n <button id=\"${prefix}close\" title=\"Hide indicator for session\">\n <span>×</span>\n </button>\n <a href=\"https://nextjs.org/docs#automatic-static-optimization-indicator\" target=\"_blank\" rel=\"noreferrer\">\n <div id=\"${prefix}icon-wrapper\">\n <svg width=\"15\" height=\"20\" viewBox=\"0 0 60 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M36 3L30.74 41H8L36 3Z\" fill=\"black\"/>\n <path d=\"M25 77L30.26 39H53L25 77Z\" fill=\"black\"/>\n <path d=\"M13.5 33.5L53 39L47.5 46.5L7 41.25L13.5 33.5Z\" fill=\"black\"/>\n </svg>\n Prerendered Page\n </div>\n </a>\n `\n return container\n}\n\nfunction createCss(prefix) {\n const css = document.createElement('style')\n css.textContent = `\n #${prefix}container {\n position: absolute;\n display: none;\n bottom: 10px;\n right: 15px;\n }\n\n #${prefix}close {\n top: -10px;\n right: -10px;\n border: none;\n width: 18px;\n height: 18px;\n color: #333333;\n font-size: 16px;\n cursor: pointer;\n display: none;\n position: absolute;\n background: #ffffff;\n border-radius: 100%;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n }\n\n #${prefix}container a {\n color: inherit;\n text-decoration: none;\n width: 15px;\n height: 23px;\n overflow: hidden;\n\n border-radius: 3px;\n background: #fff;\n color: #000;\n font: initial;\n cursor: pointer;\n letter-spacing: initial;\n text-shadow: initial;\n text-transform: initial;\n visibility: initial;\n font-size: 14px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n\n padding: 4px 2px;\n align-items: center;\n box-shadow: 0 11px 40px 0 rgba(0, 0, 0, 0.25), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\n\n display: flex;\n transition: opacity 0.1s ease, bottom 0.1s ease, width 0.3s ease;\n animation: ${prefix}fade-in 0.1s ease-in-out;\n }\n\n #${prefix}icon-wrapper {\n width: 140px;\n height: 20px;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n position: relative;\n }\n\n #${prefix}icon-wrapper svg {\n flex-shrink: 0;\n margin-right: 3px;\n }\n\n #${prefix}container a.${prefix}expanded {\n width: 135px;\n }\n\n #${prefix}container.${prefix}visible {\n display: flex;\n bottom: 10px;\n opacity: 1;\n }\n\n @keyframes ${prefix}fade-in {\n from {\n bottom: 0px;\n opacity: 0;\n }\n to {\n bottom: 10px;\n opacity: 1;\n }\n }\n `\n\n return css\n}\n"]},"metadata":{},"sourceType":"script"}