{"version":3,"file":"default/js/experience/assets/twitchVideoTile.js","mappings":";;;;;;AAAA;;AAEa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,UAAU;AACV;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,CAAC","sources":["webpack://sfra-startup-kit/./cartridges/app_core_page_designer/cartridge/client/default/js/experience/assets/twitchVideoTile.js"],"sourcesContent":["/* eslint-env jquery */\n\n\"use strict\";\n\nconst initTwitchAPI = () => {\n let currentScriptTag = document.getElementById(\"twitch-iframe-api\");\n\n if (!currentScriptTag) {\n var tag = document.createElement(\"script\"),\n firstScriptTag = document.getElementsByTagName(\"script\")[0];\n\n tag.id = \"twitch-iframe-api\";\n tag.src = \"https://embed.twitch.tv/embed/v1.js\";\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n }\n};\n\nconst startVideo = ($videoPlayer, videoId, channel, showChat, isMuted) => {\n let playerTag = $videoPlayer[0].querySelector(\".video-player\");\n\n try {\n if (videoId) {\n // autoplay is true because we want the video to start playing as soon as the player is ready\n new window.Twitch.Embed(playerTag, {\n width: \"100%\",\n height: \"100%\",\n video: videoId,\n autoplay: true,\n muted: isMuted\n });\n } else if (channel) {\n // autoplay is true because we want the video to start playing as soon as the player is ready\n new window.Twitch.Embed(playerTag, {\n width: \"100%\",\n height: \"100%\",\n channel: channel,\n layout: showChat ? \"video-with-chat\" : \"video\",\n autoplay: true,\n muted: isMuted\n });\n } else {\n return false;\n }\n\n return true;\n } catch {\n return false;\n }\n};\n\nlet currentTwitchPlayer = null;\n\nconst initPlayer = ($videoPlayer) => {\n const videoId = $videoPlayer.data(\"video-id\");\n const channelName = $videoPlayer.data(\"video-channel-name\");\n const showChat = $videoPlayer.data(\"video-show-chat\");\n const isMuted = $videoPlayer.data(\"video-muted\");\n\n if (!$videoPlayer.hasClass(\"player-initialized\")) {\n initTwitchAPI();\n\n setTimeout(() => {\n const videoStarted = startVideo($videoPlayer, videoId, channelName, showChat, isMuted);\n if (!videoStarted) {\n initPlayer($videoPlayer);\n return;\n }\n $videoPlayer.addClass(\"player-initialized\");\n\n // Pause the currently playing video player\n if (currentTwitchPlayer && currentTwitchPlayer !== $videoPlayer) {\n currentTwitchPlayer.removeClass(\"player-initialized\");\n currentTwitchPlayer.find(\".video-player\").empty();\n currentTwitchPlayer = null;\n }\n\n currentTwitchPlayer = $videoPlayer;\n }, 1000);\n }\n};\n\n(function () {\n $(\".video-twitch\").each((index, player) => {\n const $videoPlayer = $(player);\n const isAutoplay = $videoPlayer.data(\"video-auto-play\");\n\n if (isAutoplay) {\n initPlayer($videoPlayer);\n }\n });\n\n $(\".video-twitch\").on(\"click\", function (ev) {\n const $videoPlayer = $(ev.target).parents(\".video-twitch\");\n initPlayer($videoPlayer);\n });\n})();\n"],"names":[],"sourceRoot":""}