{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/js/components/my-vehicle-video-extent.js","webpack:///./src/js/pages/my-vehicle-video.js","webpack:///./src/js/libs/youtube/lite-yt-embed.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","36","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","$","String","format","args","this","arguments","undefined","reg","RegExp","replace","currentDatas","typesData","currentType","setYoutubeHtml","datas","htmlYoutube","forEach","item","html","getData","car","ajax","url","type","dataType","success","returnCode","address","fail","e","console","log","initDatas","urlParameterCar","sParam","getParaFromUrl","parameter","unescape","sURLVariables","location","search","substring","split","sParameterName","GetURLParameter","typeHtml","val","txt","document","on","typ","find","x","filter","setTimeout","carhtml","isInit","ready","LiteYTEmbed","kind","as","linkEl","createElement","rel","href","head","append","preconnected","addPrefetch","add","listener","w3","addEventListener","removeEventListener","attachEvent","detachEvent","iframe","$this","frameId","func","queue","domReady","readyState","clearInterval","poller","contentWindow","newfunc","JSON","stringify","postMessage","event","id","checkcount","loopStatus","setInterval","messageEvent","runPlayerState","parse","info","playerState","playbackRate","callPlayer","runOnceReady","source","tmp","videoId","getAttribute","src","urlPaths","getLast","error","playBtnEl","querySelector","playLabel","textContent","trim","style","backgroundImage","posterUrl","classList","playBtnLabelEl","className","warmConnections","once","addIframe","params","URLSearchParams","has","iframeEl","allowKey","title","allow","allowFullscreen","test","navigator","userAgent","toString","onload","set","requestFullScreen","mozRequestFullScreen","webkitRequestFullScreen","encodeURIComponent","focus","HTMLElement","customElements","define"],"mappings":"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","file":"js/myVehicleVideo.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\t36: 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([1070,0]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","const { $ } = window;\r\n\r\n// todo 移動至共用元件\r\n// eslint-disable-next-line no-extend-native\r\nString.prototype.format = function format(args) {\r\n let result = this;\r\n if (arguments.length > 0) {\r\n if (arguments.length === 1 && typeof args === 'object') {\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const key in args) {\r\n if (args[key] !== undefined) {\r\n const reg = new RegExp(`({${key}})`, 'g');\r\n result = result.replace(reg, args[key]);\r\n }\r\n }\r\n } else {\r\n for (let i = 0; i < arguments.length; i += 1) {\r\n // eslint-disable-next-line prefer-rest-params\r\n if (arguments[i] !== undefined) {\r\n const reg = new RegExp(`({[${i}]})`, 'g');\r\n // eslint-disable-next-line prefer-rest-params\r\n result = result.replace(reg, arguments[i]);\r\n }\r\n }\r\n }\r\n }\r\n return result;\r\n};\r\n\r\nconst carHtmlFormat = '{val}';\r\nconst typesHtmlFormat = '{val}';\r\nconst youtubeHtmlFormat = `
\r\n
{tag}
\r\n
\r\n
\r\n \r\n \r\n
\r\n

{title}

\r\n
\r\n
`;\r\nlet currentDatas = [];\r\nlet typesData = [];\r\nlet currentType = '-1';\r\n\r\nfunction setYoutubeHtml(datas) {\r\n let htmlYoutube = '';\r\n datas.forEach((item) => {\r\n htmlYoutube += youtubeHtmlFormat.format(item);\r\n });\r\n $('#linkdatas').html(htmlYoutube);\r\n}\r\n\r\nfunction getData() {\r\n const car = $('#carSelect').html();\r\n $.ajax({\r\n url: 'api/my_vehicle_video.ashx',\r\n type: 'POST',\r\n dataType: 'json',\r\n data: { car },\r\n success: (result) => {\r\n if (result.returnCode === '0000') {\r\n currentDatas = result.datas;\r\n setYoutubeHtml(result.datas);\r\n $.address.value(`?car=${car}`);\r\n }\r\n },\r\n }).fail((e) => {\r\n console.log('error', e);\r\n });\r\n}\r\n\r\n// $.address.parameter 這邊抓不到,故改用substring\r\nfunction GetURLParameter(sParam) {\r\n const getParaFromUrl = $.address.parameter('car');\r\n if (getParaFromUrl !== '' && getParaFromUrl !== undefined) {\r\n return unescape(getParaFromUrl);\r\n }\r\n const sPageURL = window.location.search.substring(1);\r\n const sURLVariables = sPageURL.split('&');\r\n for (let i = 0; i < sURLVariables.length; i += 1) {\r\n const sParameterName = sURLVariables[i].split('=');\r\n if (sParameterName[0] === sParam) {\r\n return unescape(sParameterName[1]);\r\n }\r\n }\r\n}\r\n\r\nexport function initDatas() {\r\n const urlParameterCar = GetURLParameter('car');\r\n $.ajax({\r\n url: 'api/my_vehicle_video_init.ashx?type=types',\r\n type: 'POST',\r\n dataType: 'json',\r\n data: {},\r\n success: (result) => {\r\n if (result.returnCode === '0000') {\r\n let typeHtml = '';\r\n result.datas.forEach((item) => {\r\n typeHtml += typesHtmlFormat.format({ val: item.txt });\r\n });\r\n $('#types').html(typeHtml);\r\n $('#typeSelect').html(result.datas[0].txt);\r\n typesData = result.datas;\r\n }\r\n },\r\n }).fail((e) => {\r\n console.log('error', e);\r\n });\r\n\r\n $(document).on('click', '.typeClass', function click() {\r\n const val = $(this).html();\r\n $('#typeSelect').html(val);\r\n const typ = typesData.find((x) => x.txt === val);\r\n let datas = [];\r\n if (typ.val !== currentType) {\r\n currentType = typ.val;\r\n if (typ.val === '-1') {\r\n datas = currentDatas;\r\n } else {\r\n datas = currentDatas.filter((x) => x.type === typ.val);\r\n }\r\n setYoutubeHtml(datas);\r\n }\r\n setTimeout(() => {\r\n const car = $('#carSelect').html();\r\n $.address.value(`?car=${car}`);\r\n }, 500);\r\n });\r\n $(document).on('click', '.carClass', function click() {\r\n const val = $(this).html();\r\n $('#carSelect').html(val);\r\n $('#typeSelect').html(typesData[0].txt);\r\n currentType = '-1';\r\n getData();\r\n });\r\n\r\n $.ajax({\r\n url: 'api/my_vehicle_video_init.ashx',\r\n type: 'POST',\r\n dataType: 'json',\r\n data: {},\r\n success: (result) => {\r\n console.log(result);\r\n if (result.returnCode === '0000') {\r\n const { datas } = result;\r\n let carhtml = '';\r\n datas.forEach((item) => {\r\n carhtml += carHtmlFormat.format({ val: item.car });\r\n });\r\n $('#cars').html(carhtml);\r\n if (datas.length > 0) {\r\n let isInit = false;\r\n datas.forEach((item) => {\r\n if (urlParameterCar === item.car) {\r\n $('#carSelect').html(item.car);\r\n isInit = true;\r\n }\r\n });\r\n if (isInit === false) {\r\n $('#carSelect').html(datas[0].car);\r\n }\r\n getData();\r\n }\r\n }\r\n },\r\n }).fail((e) => {\r\n console.log('error', e);\r\n });\r\n}\r\n\r\nexport default {\r\n initDatas,\r\n};\r\n","import '~/sass/pages/my-vehicle-video.scss';\r\nimport { initDatas } from '@/components/my-vehicle-video-extent';\r\nimport '~/js/libs/youtube/lite-yt-embed.css';\r\nimport '@/libs/youtube/lite-yt-embed';\r\n\r\nconst { $ } = window;\r\n$(document).ready(() => {\r\n initDatas();\r\n});\r\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"],"sourceRoot":""}