{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/js/libs/youtube/lite-yt-embed.js","webpack:///./src/js/pages/tech-safety.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","63","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","LiteYTEmbed","kind","url","as","linkEl","document","createElement","rel","href","head","append","preconnected","addPrefetch","add","listener","w3","addEventListener","removeEventListener","attachEvent","detachEvent","iframe","$this","frameId","func","args","queue","domReady","readyState","console","log","clearInterval","poller","contentWindow","newfunc","JSON","stringify","postMessage","ready","event","id","checkcount","loopStatus","setInterval","messageEvent","runPlayerState","e","parse","undefined","info","playerState","playbackRate","callPlayer","runOnceReady","source","tmp","this","videoId","getAttribute","src","urlPaths","split","getLast","replace","error","playBtnEl","querySelector","playLabel","textContent","trim","style","backgroundImage","posterUrl","type","classList","playBtnLabelEl","className","warmConnections","once","addIframe","params","URLSearchParams","has","iframeEl","allowKey","title","allow","allowFullscreen","test","navigator","userAgent","toString","onload","setTimeout","set","requestFullScreen","mozRequestFullScreen","webkitRequestFullScreen","encodeURIComponent","focus","HTMLElement","customElements","define","$","swiperMeasure","swiperExtremelyPassive","swiperExtremelyActive","scrollToextremelyActive","initWindowWidth","outerWidth","on","stop","animate","scrollTop","offset","top","Swiper","slidesPerView","centeredSlides","spaceBetween","observer","observeParents","centerInsufficientSlides","navigation","nextEl","prevEl","breakpoints","768","1140","autoHeight","transitionEnd","active","activeIndex","trigger","thisIndex","attr","closest","find","removeClass","addClass","slideTo","1024","isVideo","slides","previousIndex","activeSlide","nowActiveNav","dataset","parent","prev","$scrollNav","pos","position","left","posWidth","width","scrollLeft","nowActiveNavID","hide","show","navID","initSwiperExtremelyActive"],"mappings":"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","file":"js/techSafety.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t63: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([718,0]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","/**\r\n * A lightweight youtube embed. Still should feel the same to the user, just MUCH faster to initialize and paint.\r\n *\r\n * Thx to these as the inspiration\r\n * https://storage.googleapis.com/amp-vs-non-amp/youtube-lazy.html\r\n * https://autoplay-youtube-player.glitch.me/\r\n *\r\n * Once built it, I also found these:\r\n * https://github.com/ampproject/amphtml/blob/master/extensions/amp-youtube (πŸ‘πŸ‘)\r\n * https://github.com/Daugilas/lazyYT\r\n * https://github.com/vb/lazyframe\r\n */\r\nclass LiteYTEmbed extends HTMLElement {\r\n connectedCallback() {\r\n this.videoId = this.getAttribute('videoid');\r\n this.src = this.getAttribute('src');\r\n if (this.src) {\r\n const urlPaths = this.src.split('/');\r\n const getLast = urlPaths[urlPaths.length - 1];\r\n // https://www.youtube.com/watch?v=9wSBXkQSLUI or https://www.youtube.com/embed/QIy5Aw_VPK8\r\n this.videoId = getLast.replace('watch?v=', '');\r\n } else if (this.videoId) {\r\n this.videoId = this.getAttribute('videoid');\r\n } else {\r\n console.error('Attribute src or videoId');\r\n return;\r\n }\r\n let playBtnEl = this.querySelector('.lty-playbtn');\r\n // A label for the button takes priority over a [playlabel] attribute on the custom-element\r\n this.playLabel = (playBtnEl && playBtnEl.textContent.trim()) || this.getAttribute('playlabel') || 'Play';\r\n\r\n /**\r\n * Lo, the youtube placeholder image! (aka the thumbnail, poster image, etc)\r\n *\r\n * See https://github.com/paulirish/lite-youtube-embed/blob/master/youtube-thumbnail-urls.md\r\n *\r\n * TODO: Do the sddefault->hqdefault fallback\r\n * - When doing this, apply referrerpolicy (https://github.com/ampproject/amphtml/pull/3940)\r\n * TODO: Consider using webp if supported, falling back to jpg\r\n */\r\n if (!this.style.backgroundImage) {\r\n this.posterUrl = `https://i.ytimg.com/vi/${this.videoId}/hqdefault.jpg`;\r\n // Warm the connection for the poster image\r\n LiteYTEmbed.addPrefetch('preload', this.posterUrl, 'image');\r\n\r\n this.style.backgroundImage = `url(\"${this.posterUrl}\")`;\r\n }\r\n\r\n // Set up play button, and its visually hidden label\r\n if (!playBtnEl) {\r\n playBtnEl = document.createElement('button');\r\n playBtnEl.type = 'button';\r\n playBtnEl.classList.add('lty-playbtn');\r\n this.append(playBtnEl);\r\n }\r\n if (!playBtnEl.textContent) {\r\n const playBtnLabelEl = document.createElement('span');\r\n playBtnLabelEl.className = 'lyt-visually-hidden';\r\n playBtnLabelEl.textContent = this.playLabel;\r\n playBtnEl.append(playBtnLabelEl);\r\n }\r\n\r\n // On hover (or tap), warm up the TCP connections we're (likely) about to use.\r\n this.addEventListener('pointerover', LiteYTEmbed.warmConnections, { once: true });\r\n\r\n // Once the user clicks, add the real iframe and drop our play button\r\n // TODO: In the future we could be like amp-youtube and silently swap in the iframe during idle time\r\n // We'd want to only do this for in-viewport or near-viewport ones: https://github.com/ampproject/amphtml/pull/5003\r\n // eslint-disable-next-line no-unused-vars\r\n this.addEventListener('click', (e) => this.addIframe());\r\n }\r\n\r\n // // TODO: Support the the user changing the [videoid] attribute\r\n // attributeChangedCallback() {\r\n // }\r\n\r\n /**\r\n * Add a to the head\r\n */\r\n static addPrefetch(kind, url, as) {\r\n const linkEl = document.createElement('link');\r\n linkEl.rel = kind;\r\n linkEl.href = url;\r\n if (as) {\r\n linkEl.as = as;\r\n }\r\n document.head.append(linkEl);\r\n }\r\n\r\n /**\r\n * Begin pre-connecting to warm up the iframe load\r\n * Since the embed's network requests load within its iframe,\r\n * preload/prefetch'ing them outside the iframe will only cause double-downloads.\r\n * So, the best we can do is warm up a few connections to origins that are in the critical path.\r\n *\r\n * Maybe `` would work, but it's unsupported: http://crbug.com/593267\r\n * But TBH, I don't think it'll happen soon with Site Isolation and split caches adding serious complexity.\r\n */\r\n static warmConnections() {\r\n if (LiteYTEmbed.preconnected) return;\r\n\r\n // The iframe document and most of its subresources come right off youtube.com\r\n LiteYTEmbed.addPrefetch('preconnect', 'https://www.youtube-nocookie.com');\r\n // The botguard script is fetched off from google.com\r\n LiteYTEmbed.addPrefetch('preconnect', 'https://www.google.com');\r\n\r\n // Not certain if these ad related domains are in the critical path. Could verify with domain-specific throttling.\r\n LiteYTEmbed.addPrefetch('preconnect', 'https://googleads.g.doubleclick.net');\r\n LiteYTEmbed.addPrefetch('preconnect', 'https://static.doubleclick.net');\r\n\r\n LiteYTEmbed.preconnected = true;\r\n }\r\n\r\n static messageEvent(add, listener) {\r\n const w3 = add ? window.addEventListener : window.removeEventListener;\r\n if (w3) {\r\n w3('message', listener, !1);\r\n } else if (add) {\r\n window.attachEvent('onmessage', listener);\r\n } else {\r\n window.detachEvent('onmessage', listener);\r\n }\r\n }\r\n\r\n static callPlayer(iframe, $this, frameId, func, args) {\r\n // eslint-disable-next-line no-param-reassign\r\n if (!$this.queue) $this.queue = {};\r\n let queue = $this.queue[frameId];\r\n const domReady = document.readyState === 'complete';\r\n if (domReady && !iframe) {\r\n // DOM is ready and iframe does not exist. Log a message\r\n console.log(`callPlayer: Frame not found; id=${frameId}`);\r\n if (queue) {\r\n clearInterval(queue.poller);\r\n }\r\n } else if (func === 'listening') {\r\n // Sending the \"listener\" message to the frame, to request status updates\r\n if (iframe && iframe.contentWindow) {\r\n const newfunc = `{\"event\":\"listening\",\"id\": ${JSON.stringify(frameId)}}`;\r\n iframe.contentWindow.postMessage(newfunc, '*');\r\n }\r\n } else if ((!queue || !queue.ready) && (\r\n !domReady || (iframe && !iframe.contentWindow) || typeof func === 'function')) {\r\n if (!queue) {\r\n queue = [];\r\n // eslint-disable-next-line no-param-reassign\r\n $this.queue[frameId] = [];\r\n }\r\n queue.push([func, args]);\r\n if (!('poller' in queue)) {\r\n // keep polling until the document and frame is ready\r\n queue.poller = setInterval(() => {\r\n LiteYTEmbed.callPlayer(iframe, $this, frameId, 'listening');\r\n }, 250);\r\n // Add a global \"message\" event listener, to catch status updates:\r\n LiteYTEmbed.messageEvent(1, function runOnceReady(e) {\r\n if (e.source === iframe.contentWindow) {\r\n // Assume that the player is ready if we receive a\r\n // message from the iframe\r\n clearInterval(queue.poller);\r\n queue.ready = true;\r\n LiteYTEmbed.messageEvent(0, runOnceReady);\r\n console.log(queue);\r\n\r\n const tmp = queue.shift();\r\n LiteYTEmbed.callPlayer(iframe, $this, frameId, tmp[0], tmp[1]);\r\n }\r\n }, false);\r\n }\r\n } else if (iframe && iframe.contentWindow) {\r\n // When a function is supplied, just call it (like \"onYouTubePlayerReady\")\r\n console.log(`func:${func}`);\r\n if (func.call) {\r\n func();\r\n return;\r\n }\r\n iframe.contentWindow.postMessage(JSON.stringify({\r\n event: 'command',\r\n func,\r\n args: args || [],\r\n id: frameId,\r\n }), '*');\r\n // εˆ©η”¨ζͺ’ζŸ₯ζ’₯放狀態來播放影片\r\n if (func !== 'playVideo') {\r\n return;\r\n }\r\n LiteYTEmbed.checkcount = 0;\r\n const loopStatus = setInterval(() => {\r\n iframe.contentWindow.postMessage(JSON.stringify({\r\n event: 'command',\r\n func: 'getPlayerState',\r\n }), '*');\r\n iframe.contentWindow.postMessage(JSON.stringify({\r\n event: 'command',\r\n func: 'playVideo',\r\n }), '*');\r\n }, 250);\r\n LiteYTEmbed.messageEvent(1, function runPlayerState(e) {\r\n const data = JSON.parse(e.data);\r\n console.log(data);\r\n if (data.info !== undefined && data.info !== null && (data.info.playerState === 1 || data.info.playbackRate === 1)) {\r\n LiteYTEmbed.checkcount += 1;\r\n if (LiteYTEmbed.checkcount > 2) {\r\n clearInterval(loopStatus);\r\n LiteYTEmbed.messageEvent(0, runPlayerState);\r\n }\r\n }\r\n }, false);\r\n }\r\n }\r\n\r\n addIframe() {\r\n if (this.querySelector('iframe') !== null) {\r\n return;\r\n }\r\n const params = new URLSearchParams(this.getAttribute('params') || []);\r\n if (!params.has('autoplay')) {\r\n params.append('autoplay', '1');\r\n }\r\n\r\n const iframeEl = document.createElement('iframe');\r\n let id = this.getAttribute('iframeId');\r\n if (!id) {\r\n id = this.videoId;\r\n }\r\n iframeEl.id = id;\r\n //\r\n const allowKey = 'accelerometer; encrypted-media; gyroscope; picture-in-picture; autoplay;';\r\n // iframeEl.width = 560;\r\n // iframeEl.height = 315;\r\n // No encoding necessary as [title] is safe. https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html#:~:text=Safe%20HTML%20Attributes%20include\r\n iframeEl.title = this.playLabel;\r\n iframeEl.allow = allowKey;\r\n iframeEl.allowFullscreen = true;\r\n // mobile autoplay not work\r\n const self = this;\r\n if (/Android|webOS|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)\r\n || params.get('autoplay').toString() === '0') {\r\n iframeEl.onload = () => {\r\n iframeEl.contentWindow.postMessage(JSON.stringify({\r\n event: 'command',\r\n func: 'playVideo',\r\n }), '*');\r\n setTimeout(() => {\r\n iframeEl.allow = allowKey.replace('autoplay;', '');\r\n }, 1000);\r\n };\r\n }\r\n\r\n if (/iPhone|iPad|iPod/i.test(navigator.userAgent)) {\r\n LiteYTEmbed.callPlayer(iframeEl, self, self.videoId, 'playVideo');\r\n } else if (params.get('playsinline').toString() === '0') {\r\n if (!params.has('fs')) {\r\n params.append('fs', '1');\r\n } else {\r\n params.set('fs', '1');\r\n }\r\n iframeEl.onload = () => {\r\n iframeEl.contentWindow.postMessage(JSON.stringify({\r\n event: 'command',\r\n func: 'playVideo',\r\n }), '*');\r\n setTimeout(() => {\r\n const requestFullScreen = iframeEl.requestFullScreen || iframeEl.mozRequestFullScreen || iframeEl.webkitRequestFullScreen;\r\n if (requestFullScreen) {\r\n requestFullScreen.bind(iframeEl)();\r\n }\r\n }, 1000);\r\n };\r\n }\r\n\r\n // AFAIK, the encoding here isn't necessary for XSS, but we'll do it only because this is a URL\r\n // https://stackoverflow.com/q/64959723/89484\r\n iframeEl.src = `https://www.youtube.com/embed/${encodeURIComponent(this.videoId)}?${params.toString()}`;\r\n this.append(iframeEl);\r\n\r\n this.classList.add('lyt-activated');\r\n\r\n // Set focus for a11y\r\n this.querySelector('iframe').focus();\r\n }\r\n}\r\n// Register custom element\r\ncustomElements.define('lite-youtube', LiteYTEmbed);\r\n","/* eslint-disable no-unused-vars */\r\nimport Swiper from 'swiper/js/swiper';\r\nimport '~/sass/pages/tech-safety.scss';\r\nimport '~/js/libs/youtube/lite-yt-embed.css';\r\nimport '@/libs/youtube/lite-yt-embed';\r\n\r\nconst { $ } = window;\r\n\r\nlet swiperAdvantage = null;\r\nlet swiperMeasure = null;\r\nlet swiperExtremelyPassive = null;\r\nlet swiperExtremelyActive = null;\r\n\r\n\r\nfunction initAdvantageSwipers() {\r\n swiperAdvantage = new Swiper('#safety-info .swiper-info .swiper-container', {\r\n slidesPerView: 1,\r\n centeredSlides: true,\r\n spaceBetween: 0,\r\n observer: true,\r\n observeParents: true,\r\n centerInsufficientSlides: true,\r\n navigation: {\r\n nextEl: '#safety-info .swiper-info .swiper-button-next',\r\n prevEl: '#safety-info .swiper-info .swiper-button-prev',\r\n },\r\n breakpoints: {\r\n 768: {\r\n slidesPerView: 3,\r\n centeredSlides: false,\r\n },\r\n 1140: {\r\n slidesPerView: 4,\r\n centeredSlides: false,\r\n },\r\n },\r\n });\r\n}\r\n\r\nfunction initMeasureSwipers() {\r\n swiperMeasure = new Swiper('#measure .swiper-container', {\r\n slidesPerView: 1,\r\n centeredSlides: true,\r\n observer: true,\r\n observeParents: true,\r\n autoHeight: true,\r\n navigation: {\r\n nextEl: '#measure .swiper-button-next',\r\n prevEl: '#measure .swiper-button-prev',\r\n },\r\n on: {\r\n transitionEnd() {\r\n const active = swiperMeasure.activeIndex;\r\n console.log(active);\r\n console.log($(`[data-nav=\"measure\"].nav-link[data-index=${active}]`));\r\n if ($(`[data-nav=\"measure\"].nav-link[data-index=${active}]`).length === 1) {\r\n $(`[data-nav=\"measure\"].nav-link[data-index=${active}]`).trigger('click');\r\n }\r\n },\r\n },\r\n });\r\n $('#measure .scroll-menu-list.fancyboxSlide .nav-link').on('click', function popIndex() {\r\n const thisIndex = $(this).attr('data-index');\r\n $(this).closest('.scroll-menu-list').find('.nav-link').removeClass('active');\r\n $(this).addClass('active');\r\n console.log(thisIndex);\r\n swiperMeasure.slideTo(thisIndex, 500, false);\r\n });\r\n}\r\n\r\nfunction initSwiperExtremelyActive() {\r\n if ($('#extremely-active .swiper-wrapper').length > 0) {\r\n // const tag = document.createElement('script');\r\n // tag.src = 'https://www.youtube.com/iframe_api';\r\n // const firstScriptTag = document.getElementsByTagName('script')[0];\r\n // firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n\r\n // 3. This function creates an