{"version":3,"file":"js/1738.1ed32a9b73f71fcc.js","mappings":"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","sources":["webpack://@sazka/web/./js/app/lotteries/quick-lotteries--new/components/quick-lotteries-live-stream/use-ql-live-stream.ts","webpack://@sazka/web/./js/app/lotteries/streaming/stream.ts","webpack://@sazka/web/../../libs/utils/debounce.ts","webpack://@sazka/web/../../libs/utils/sazka-alert.ts","webpack://@sazka/web/./js/app/lotteries/streaming/streaming-lib.js","webpack://@sazka/web/./js/app/lotteries/quick-lotteries--new/components/quick-lotteries-live-stream/_ql-live-stream.vue?49f6","webpack://@sazka/web/./js/app/lotteries/quick-lotteries--new/components/quick-lotteries-live-stream/_ql-live-stream.vue","webpack://@sazka/web/./js/app/lotteries/quick-lotteries--new/components/quick-lotteries-live-stream/_ql-live-stream.vue?6ef3"],"sourcesContent":["import { openLotteryVideoStream } from \"@/lotteries/streaming/stream\";\r\nimport { nextTick, Ref, ref } from \"vue\";\r\n\r\nexport const isLiveStreamOpen = ref(false);\r\n\r\nlet currentStream = null;\r\n\r\nexport const useLotteryStream = (el: Ref<HTMLElement>) => {\r\n    const streamPlaying = ref<boolean>(false);\r\n    let close = null;\r\n\r\n    const obj = {\r\n        start,\r\n        stop,\r\n        streamPlaying,\r\n    };\r\n\r\n    function start() {\r\n        if (currentStream) {\r\n            currentStream.stop();\r\n        }\r\n        currentStream = obj;\r\n        streamPlaying.value = true;\r\n        nextTick(async () => {\r\n            try {\r\n                close = (await openLotteryVideoStream(el.value)).close;\r\n            } catch (e) {\r\n                streamPlaying.value = false;\r\n            }\r\n        });\r\n    }\r\n    function stop() {\r\n        if (close) {\r\n            close();\r\n            streamPlaying.value = false;\r\n        }\r\n    }\r\n\r\n    return obj;\r\n};\r\n","import \"@/lotteries/streaming/streaming-lib\";\r\nimport { httpClient } from \"@sazka/utils/http-clients/http-client\";\r\nimport { ResponsiveUtils } from \"@sazka/utils/responsive-utils\";\r\nimport { sazkaAlert } from \"@sazka/utils/sazka-alert\";\r\nimport { StreamPlayerDefinition } from \"./stream-player-definition\";\r\n\r\ndeclare function loadPlayerWithData(data: any, options: any): void;\r\nconst functionsBitMap = 66319802; // with pause status\r\n// const functionsBitMap = 402857; // without pause status\r\n// const functionsBitMap = 402857; // with seek bar\r\n// const functionsBitMap = 66846719; // nothing\r\n\r\nconst url =\r\n    environment.env == \"Production\"\r\n        ? \"https://apps.quickmedia.tv/api/playerembed?id=78078\"\r\n        : \"https://apps-test.quickmedia.tv/api/playerembed?id=78078\";\r\n\r\nlet streamData: any;\r\n\r\nconst getStreamData = () => {\r\n    return new Promise(async (res, rej) => {\r\n        if (streamData) res(streamData);\r\n        try {\r\n            const response = await httpClient.get(url);\r\n            streamData = response.data;\r\n            res(streamData);\r\n        } catch (e) {\r\n            rej(e);\r\n        }\r\n    });\r\n};\r\n\r\nconst isBlockedTime = () => {\r\n    const now = new Date();\r\n    return now.getHours() == 0 && now.getMinutes() == 0 && now.getSeconds() < 10;\r\n};\r\n\r\nexport const openLotteryVideoStream = (container: HTMLElement, dontCloseOnMidnight = false) => {\r\n    return new Promise<StreamPlayerDefinition>(async (res, rej) => {\r\n        let player: any;\r\n        let interval: number;\r\n        const close = () => {\r\n            container.innerHTML = \"\";\r\n            if (interval) {\r\n                clearInterval(interval);\r\n                interval = null;\r\n            }\r\n        };\r\n        if (!dontCloseOnMidnight) {\r\n            interval = window.setInterval(() => {\r\n                if (isBlockedTime()) {\r\n                    close();\r\n                    sazkaAlert(\r\n                        \"Technická přestávka\",\r\n                        \"Z důvodu technické přestávky bude další slosování rychlých loterií až v 00:10.\"\r\n                    );\r\n                }\r\n            }, 5000);\r\n        }\r\n\r\n        const setVideoQuality = (resolution: 432 | 576 | 720 | 1080) => {\r\n            if (!player) return;\r\n            player.triggerCommand(\"setVideoQuality\", resolution);\r\n        };\r\n\r\n        const toggleConfiguration = () => {\r\n            if (!player) return;\r\n            player.triggerCommand(\"toggleConfigurator\");\r\n        };\r\n\r\n        const toggleFullscreen = () => {\r\n            if (!player) return;\r\n            player.triggerCommand(\"toggleFullscreen\");\r\n        };\r\n\r\n        try {\r\n            const streamData = await getStreamData();\r\n            window[\"onPlayerInitialized\"] = function () {\r\n                player = (this as any)?.instance;\r\n\r\n                if (player?.events) {\r\n                    player.events.onMediaChanged(() => {\r\n                        player.localSettings.setPlayedTime(player.mediaInfos[0].identity, 0);\r\n                    });\r\n\r\n                    player.events.onMediaLoad(() => {\r\n                        if (ResponsiveUtils.isMobile()) {\r\n                            setVideoQuality(576);\r\n                        }\r\n                    });\r\n                }\r\n\r\n                const video = player._videoElement as HTMLVideoElement;\r\n                video.playsInline = true;\r\n                video.autoplay = true;\r\n                video.muted = true;\r\n\r\n                if (ResponsiveUtils.isMobile() && ResponsiveUtils.isIos()) {\r\n                    // not working correctly on iOS - due to fullscreen conflict\r\n                    video.onpause = () => video.play();\r\n                }\r\n\r\n                res({\r\n                    close,\r\n                    setVideoQuality,\r\n                    toggleConfiguration,\r\n                    toggleFullscreen,\r\n                });\r\n            };\r\n\r\n            loadPlayerWithData(streamData, {\r\n                embed: container,\r\n                settings: { playerVisibilities: functionsBitMap },\r\n            });\r\n        } catch (e) {\r\n            rej(e);\r\n        }\r\n    });\r\n};\r\n","/**\r\n * Debounce function - use like this:\r\n * var handler = debounce(function(){ do the work}, 100);\r\n * $(window).scroll(handler);\r\n * @param func callback function\r\n * @param wait time in milliseconds to wait\r\n * @param immediate\r\n */\r\n\r\ntype CallbackFunction = (...args: any[]) => any;\r\n\r\nexport function debounce<T extends CallbackFunction>(func: T, wait: number, immediate = false) {\r\n    let timeout: number | null;\r\n\r\n    return function (this: ThisParameterType<T>, ...args: Parameters<T>) {\r\n        /* eslint-disable @typescript-eslint/no-this-alias */\r\n        const context = this;\r\n        const later = function () {\r\n            timeout = null;\r\n            if (!immediate) func.apply(context, args);\r\n        };\r\n        const callNow = immediate && !timeout;\r\n        clearTimeout(timeout as number);\r\n        timeout = window.setTimeout(later, wait);\r\n        if (callNow) func.apply(context, args);\r\n    };\r\n}\r\n","/**\r\n * @deprecated Use showAlert a DS component\r\n */\r\nexport const sazkaAlert = (\r\n    title: string,\r\n    text: string = null,\r\n    linkText: string = null,\r\n    link: string = null,\r\n    buttonText = \"OK\",\r\n    customHtml = \"\",\r\n    hasExtraButton = true,\r\n    errorCode?: number\r\n): Promise<boolean> => {\r\n    return new Promise((resolve) => {\r\n        const heading = $(\r\n            `<h2 class=\"sazka-alert__title\" style=\"visibility:hidden; display:inline-block;\">${title}</h2>`\r\n        );\r\n        $(\"body\").append(heading);\r\n        const maxWidth = Math.max(heading.width(), 300);\r\n        heading.remove();\r\n\r\n        const template = `\r\n        <div class=\"modal fade sazka-alert\" tabindex=\"-1\" role=\"dialog\" aria-hidden=\"true\">\r\n            <div class=\"modal-dialog modal-dialog-centered\">\r\n                <div class=\"modal-content modal-content--without-close\">\r\n                    ${errorCode ? `<span class='sazka-alert__ecode'>ecode: ${errorCode}</span>` : \"\"}\r\n                    <h2 class=\"sazka-alert__title\">${title}</h2>\r\n                    ${text ? `<p class=\"sazka-alert__text\" style=\"max-width: ${maxWidth}px;\">${text}</p>` : \"\"}\r\n                    <div class=\"sazka-alert__button-group\">\r\n                        ${linkText ? `<a class=\"btn btn-primary sazka-alert--btn\" href=\"${link}\">${linkText}</a>` : \"\"}\r\n                        ${\r\n                            hasExtraButton\r\n                                ? `<button type=\"button\" class=\"btn ${\r\n                                      linkText ? \"btn-outline-primary\" : \"btn-primary\"\r\n                                  }\" data-dismiss=\"modal\">${buttonText}</button>`\r\n                                : \"\"\r\n                        }\r\n                    </div>\r\n                    ${customHtml}\r\n                </div>\r\n            </div>\r\n        </div>`;\r\n\r\n        const $modal = $(template);\r\n        $(\"body\").append($modal);\r\n        $modal.modal(\"show\");\r\n        $modal.find(\".sazka-alert--btn\").on(\"click\", () => {\r\n            resolve(false);\r\n            $modal.modal(\"hide\");\r\n        });\r\n        $modal.on(\"hidden.bs.modal\", () => {\r\n            $modal.modal(\"dispose\").remove();\r\n            if ($(\".modal:visible\").length) {\r\n                $(\"body\").addClass(\"modal-open\");\r\n            }\r\n            resolve(true);\r\n        });\r\n    });\r\n};\r\n","/* eslint-disable */\r\n(function (window, $) {\r\n    \"use strict\";\r\n    var dirtyApiUrl = \"https://api.quickmedia.tv\",\r\n        apiUrl =\r\n            dirtyApiUrl.indexOf(\"http:\") === 0 && window.location.protocol === \"https:\"\r\n                ? \"https:\" + dirtyApiUrl.substring(5)\r\n                : dirtyApiUrl,\r\n        head = document.getElementsByTagName(\"head\")[0] || document.documentElement;\r\n    function prepareSmart(embedId, assetId, customerToken, ip, stream, embedQuery, settings) {\r\n        var player = createPlayer(embedId, ip, settings);\r\n        player.videoInfos[0] = {\r\n            assetId: assetId,\r\n            customerToken: customerToken,\r\n            stream: stream,\r\n            lazyLoading: false,\r\n        };\r\n        loadPlayerToObject(player, buildPlayerEmbedUrl(player, 0, embedQuery));\r\n        return player;\r\n    }\r\n    function createPlayer(embedId, ip, settings) {\r\n        settings = settings || {};\r\n        settings[\"userHostAddress\"] = settings[\"userHostAddress\"] || ip;\r\n        writeSettingsDefaults(settings);\r\n        var player = { embedId: embedId, settings: settings, videoInfos: [] };\r\n        writePlayerDefaults(player);\r\n        return player;\r\n    }\r\n    function writeSettingsDefaults(settings) {\r\n        if (!(\"embedPolyfill\" in settings)) {\r\n            settings.embedPolyfill = true;\r\n        }\r\n    }\r\n    function writePlayerDefaults(player) {\r\n        if (!(\"embedId\" in player) && !(\"embed\" in player)) {\r\n            player.embed = document.getElementsByTagName(\"body\")[0];\r\n        }\r\n    }\r\n    function loadPlayerToObject(player, url) {\r\n        return crossDomainAjax(url, function (data) {\r\n            window.loadPlayerWithData(data, player);\r\n        });\r\n    }\r\n    function buildPlayerEmbedUrl(player, index, embedQuery) {\r\n        var browserLang = (navigator.languages || [navigator.language || navigator.userLanguage])[0],\r\n            language = player.settings[\"language\"] || browserLang,\r\n            region = player.settings[\"region\"],\r\n            token = createToken(player.videoInfos[index].customerToken, language, region),\r\n            url =\r\n                apiUrl +\r\n                \"/json/player-embed?assetId=\" +\r\n                player.videoInfos[index].assetId +\r\n                \"&token=\" +\r\n                token +\r\n                (player.videoInfos[index].stream !== undefined\r\n                    ? \"&streamGroup=\" + player.videoInfos[index].stream\r\n                    : \"\");\r\n        url += getEmbedQueryPart(\"userHostAddress\", player.settings);\r\n        url += getEmbedQueryPart(\"autoplay\", player.settings);\r\n        url += getEmbedQueryPart(\"stretching\", player.settings);\r\n        url += getEmbedQueryPart(\"preload\", player.settings);\r\n        if (embedQuery) {\r\n            url += \"&\" + embedQuery;\r\n        }\r\n        return url;\r\n    }\r\n    function createToken(customerToken, language, region) {\r\n        return customerToken + \";;;1.0;;\" + (language || \"\") + \";\" + (region || \"\") + \";\";\r\n    }\r\n    function getEmbedQueryPart(key, dictionary, defaultValue) {\r\n        var part = \"\";\r\n        if (typeof dictionary === \"object\" && key in dictionary) {\r\n            part = \"&\" + key + \"=\" + encodeURIComponent(dictionary[key]);\r\n        } else if (defaultValue) {\r\n            part = \"&\" + key + \"=\" + encodeURIComponent(defaultValue);\r\n        }\r\n        return part;\r\n    }\r\n    function crossDomainAjax(url, successCallback) {\r\n        $.support.cors = true;\r\n        var deferred = $.Deferred();\r\n        if (\"XDomainRequest\" in window && window.XDomainRequest !== null) {\r\n            var xdr = new XDomainRequest();\r\n            xdr.open(\"get\", url);\r\n            xdr.onload = function () {\r\n                var dom = new ActiveXObject(\"Microsoft.XMLDOM\"),\r\n                    JSON = $.parseJSON(xdr.responseText);\r\n                dom.async = false;\r\n                if (JSON === null || typeof JSON === \"undefined\") {\r\n                    JSON = $.parseJSON(data.firstChild.textContent);\r\n                }\r\n                deferred.resolve(JSON);\r\n                successCallback(JSON);\r\n            };\r\n            xdr.onerror = function () {\r\n                deferred.reject(arguments);\r\n            };\r\n            xdr.send();\r\n        } else if (\r\n            navigator.userAgent.indexOf(\"MSIE\") !== -1 &&\r\n            parseInt(navigator.userAgent.match(/MSIE ([\\d.]+)/)[1], 10) < 8\r\n        ) {\r\n            return false;\r\n        } else {\r\n            $.ajax({\r\n                url: url,\r\n                cache: false,\r\n                dataType: \"json\",\r\n                type: \"GET\",\r\n                success: function (data, success) {\r\n                    deferred.resolve(data);\r\n                    successCallback(data);\r\n                },\r\n                error: function () {\r\n                    deferred.reject(arguments);\r\n                },\r\n            });\r\n        }\r\n        return deferred.promise();\r\n    }\r\n    function loadPlayerWithData(data, player) {\r\n        player = player || {};\r\n        writePlayerDefaults(player);\r\n        player.settings = player.settings || {};\r\n        writeSettingsDefaults(player.settings);\r\n        for (var key in data.cssFiles) {\r\n            var css = data.cssFiles[key];\r\n            if (document.getElementsByName(css).length === 0) {\r\n                var el = document.createElement(\"link\");\r\n                el.setAttribute(\"href\", css);\r\n                el.setAttribute(\"name\", css);\r\n                el.setAttribute(\"rel\", \"stylesheet\");\r\n                head.appendChild(el);\r\n            }\r\n        }\r\n        if (data.jsFiles.length > 0) {\r\n            if (data.type >= 10) {\r\n                onLoadedScripts(data, player);\r\n                window.setTimeout(scriptLoader.bind(null, data.jsFiles));\r\n            } else {\r\n                var lastScriptElement = scriptLoader(data.jsFiles);\r\n                if (lastScriptElement) {\r\n                    lastScriptElement.onload = function () {\r\n                        onLoadedScripts(data, player);\r\n                    };\r\n                } else {\r\n                    onLoadedScripts(data, player);\r\n                }\r\n            }\r\n        } else {\r\n            onLoadedScripts(data, player);\r\n        }\r\n\r\n        return player;\r\n    }\r\n    function onLoadedScripts(data, player) {\r\n        if (player.settings.embedPolyfill && data.type >= 10) {\r\n            var fncToWrap = window[\"onPlayerInitialized\"];\r\n            if (fncToWrap !== onPlayerInitialized_polyfilled) {\r\n                window[\"onPlayerInitialized_wrapped\"] = fncToWrap;\r\n                window.onPlayerInitialized = onPlayerInitialized_polyfilled;\r\n            }\r\n        }\r\n        var smartObj = player.embed || document.getElementById(player.embedId);\r\n        smartObj.innerHTML = data.code\r\n            ? data.code.replace(\r\n                  \"data-embed-javascript-placeholder\",\r\n                  player.settings[\"hidden\"] ? 'data-main-panel-render-css-class-name=\"player--hidden\"' : \"\"\r\n              )\r\n            : \"\";\r\n        var re = /<script\\b[^>]*>([\\s\\S]*?)<\\/script>/gm;\r\n        var match, el;\r\n        while ((match = re.exec(data.code))) {\r\n            el = document.createElement(\"script\");\r\n            el.text = match[1];\r\n            head.appendChild(el);\r\n        }\r\n        el = document.createElement(\"script\");\r\n        el.text = data.script\r\n            .replace(/<script>/g, \"\")\r\n            .replace(/<\\/script>/g, \"\")\r\n            .replace(/<script type=\"text\\/javascript\">/g, \"\");\r\n        var lastQMPlayerId = window[\"lastQMPlayerId\"],\r\n            minLogLevel = player.settings[\"minLogLevel\"];\r\n        if (data.type == 1 && minLogLevel) {\r\n            var logFlashVars =\r\n                'log_enabled: \"true\", log_level: \"' +\r\n                minLogLevel +\r\n                '\", log_appenders: \"trace,js\", ' +\r\n                'log_appender_trace: \"TraceAppender\", log_appender_trace_format: \"%25date %25level [%25class] - %25message\", log_appender_trace_level: \"' +\r\n                minLogLevel +\r\n                '\", ' +\r\n                'log_appender_js: \"BufferedJavaScriptAppender\", log_appender_js_function: \"log\", log_appender_js_level: \"' +\r\n                minLogLevel +\r\n                '\", log_appender_js_filter: \"vuplayer\", ';\r\n            el.text = el.text.replace(\"var flashvars = {\", \"var flashvars = {\" + logFlashVars);\r\n        } else if (data.type >= 10 && lastQMPlayerId) {\r\n            var target = document.getElementById(lastQMPlayerId);\r\n            setDataAttribute(target, player.settings, \"plugins\", \"plugins\");\r\n            setDataAttribute(target, player.settings, \"embed-key\", \"embedKey\");\r\n            setDataAttribute(target, player.settings, \"player-visibilities\", \"playerVisibilities\");\r\n            setDataAttribute(target, player.settings, \"get-configurations-url\", \"getConfigurationsUrl\");\r\n            setDataAttribute(target, player.settings, \"get-localizations-url\", \"getLocalizationsUrl\");\r\n            setDataAttribute(target, player.settings, \"lang\", \"lang\");\r\n            setDataAttribute(target, player.settings, \"min-log-level\", \"minLogLevel\");\r\n        }\r\n        head.appendChild(el);\r\n        if (typeof window[data.load] !== \"undefined\") {\r\n            player.playerObject = window[data.load]();\r\n            player.resize = function (width, height) {\r\n                if (width === undefined || height === undefined) {\r\n                    var $embed = $(this.embed || \"#\" + this.embedId);\r\n                    height = $embed.height();\r\n                    width = $embed.width();\r\n                }\r\n                if (player.playerObject && \"setSize\" in player.playerObject) player.playerObject.setSize(width, height);\r\n            };\r\n            if (player.playerObject && \"setSize\" in player.playerObject) {\r\n                var $embed = $(player.embed || \"#\" + player.embedId);\r\n                player.playerObject.setSize($embed.width(), $embed.height());\r\n            }\r\n        }\r\n    }\r\n    function onPlayerInitialized_polyfilled(id, data) {\r\n        var playerPolyfill = createPlayerEmbedPolyfill(data, this),\r\n            el = document.getElementById(id);\r\n        el[\"content\"] = { vuPlayer: playerPolyfill };\r\n        this.videoElement.addEventListener(\"play\", playerPolyfill.onVideoStarted.bind(playerPolyfill));\r\n        this.videoElement.addEventListener(\"playing\", playerPolyfill.onVideoPlaying.bind(playerPolyfill));\r\n        this.videoElement.addEventListener(\"paused\", playerPolyfill.onVideoPaused.bind(playerPolyfill));\r\n        this.videoElement.addEventListener(\"ended\", playerPolyfill.onVideoFinished.bind(playerPolyfill));\r\n        if (window[\"onPlayerInitialized_wrapped\"]) {\r\n            window.onPlayerInitialized_wrapped.apply(playerPolyfill, arguments);\r\n        }\r\n        playerPolyfill.onPlaylistLoaded.apply(playerPolyfill, arguments);\r\n    }\r\n    function setDataAttribute(target, obj, dataAttributeName, objPropertyName) {\r\n        var objValue = obj[objPropertyName];\r\n        if (objValue) {\r\n            target.setAttribute(\"data-\" + dataAttributeName, objValue);\r\n        }\r\n    }\r\n    function createPlayerEmbedPolyfill(data, instance) {\r\n        return {\r\n            data: data,\r\n            instance: instance,\r\n            listenersByEventType: [],\r\n            addPlaybackEventListener: function (eventType, listener) {\r\n                eventType = eventType || \"*\";\r\n                var v = this.listenersByEventType[eventType];\r\n                if (!v) {\r\n                    v = [];\r\n                    this.listenersByEventType[eventType] = v;\r\n                }\r\n                v.push(listener);\r\n            },\r\n            removePlaybackEventListener: function (eventType, listener) {\r\n                eventType = eventType || \"*\";\r\n                var v = this.listenersByEventType[eventType];\r\n                if (v) {\r\n                    var index = -1;\r\n                    for (var i = 0; i < v.length; i++) {\r\n                        if (v[i] === listener) {\r\n                            index = i;\r\n                            break;\r\n                        }\r\n                    }\r\n                    if (index >= 0) v.splice(index, 1);\r\n                }\r\n            },\r\n            sendEvent: function (eventName) {\r\n                this.callFunctions(eventName, eventName);\r\n                this.callFunctions(\"*\", eventName);\r\n            },\r\n            callFunctions: function (type, eventName) {\r\n                var v = this.listenersByEventType[type];\r\n                if (v) {\r\n                    for (var i = 0; i < v.length; i++) {\r\n                        try {\r\n                            var arr = v[i].split(\".\");\r\n                            var func = window[arr[0]];\r\n                            for (var j = 1; j < arr.length; j++) {\r\n                                if (func) func = func[arr[j]];\r\n                            }\r\n                            if (func) {\r\n                                var event = {\r\n                                    target: this.instance.uniqueId,\r\n                                    type: eventName,\r\n                                    context: null,\r\n                                };\r\n                                func.call(this, event);\r\n                            }\r\n                        } catch (e) {}\r\n                    }\r\n                }\r\n            },\r\n            onPlaylistLoaded: function () {\r\n                this.sendEvent(\"PlaylistLoaded\");\r\n            },\r\n            onVideoStarted: function () {\r\n                this.sendEvent(\"VideoStarted\");\r\n            },\r\n            onVideoPlaying: function () {\r\n                this.sendEvent(\"VideoPlaying\");\r\n            },\r\n            onVideoPaused: function () {\r\n                this.sendEvent(\"VideoPaused\");\r\n            },\r\n            onVideoFinished: function () {\r\n                this.sendEvent(\"VideoFinished\");\r\n            },\r\n            setOptions: function () {\r\n                var arr = Array.prototype.slice.call(arguments);\r\n                for (var i = 0; i < arr.length; i++) {\r\n                    var pair = arr[i],\r\n                        pos = pair.indexOf(\"=\");\r\n                    if (pos > 0) {\r\n                        var key = pair.substr(0, pos).trim(),\r\n                            value = pair.substr(1 + pos).trim();\r\n                        if (key === \"e\") key = \"binaryOptions\";\r\n                        if (key === \"AutoPlay\") value = stringToBoolean(value || \"\");\r\n                        this.data[key] = value;\r\n                    }\r\n                }\r\n            },\r\n            setOption: function (name, value, itemIdentifier) {\r\n                this.data[name] = value;\r\n            },\r\n            play: function () {\r\n                this.triggerCommand(\"play\");\r\n            },\r\n            pause: function () {\r\n                this.triggerCommand(\"pause\");\r\n            },\r\n            stop: function () {\r\n                this.triggerCommand(\"stop\");\r\n            },\r\n            seek: function (time) {\r\n                this.triggerCommand(\"accurateSeek\", time);\r\n            },\r\n            currentTime: (function (instance) {\r\n                return function () {\r\n                    return instance.videoElement.currentTime;\r\n                };\r\n            })(instance),\r\n            state: (function (instance) {\r\n                return function () {\r\n                    return instance.embedElement.firstChild.className;\r\n                };\r\n            })(instance),\r\n            triggerCommand: (function (instance) {\r\n                return function (commandName, value) {\r\n                    var triggered = instance.triggerCommand && instance.triggerCommand(commandName, value);\r\n                    if (!triggered) {\r\n                        console.warn(\"Failed to trigger \" + commandName + \" event\");\r\n                    }\r\n                };\r\n            })(instance),\r\n            isTriggerCommandSupported: (function (instance) {\r\n                return function () {\r\n                    return !!instance.triggerCommand;\r\n                };\r\n            })(instance),\r\n        };\r\n    }\r\n    function stringToBoolean(string) {\r\n        switch (string.toLowerCase().trim()) {\r\n            case \"true\":\r\n            case \"yes\":\r\n            case \"1\":\r\n                return true;\r\n            case \"false\":\r\n            case \"no\":\r\n            case \"0\":\r\n                return false;\r\n            default:\r\n                return null;\r\n        }\r\n    }\r\n    function scriptLoader(r) {\r\n        var allScriptTags = document.getElementsByTagName(\"script\");\r\n        for (var i = 0; i < r.length; i++) {\r\n            var src = r[i],\r\n                srcPos = src.indexOf(dynamicJsPlayer) > 0 ? 1 : src.indexOf(dynamicSwfPlayer) ? 2 : 0;\r\n            for (var j = 0; j < allScriptTags.length; j++) {\r\n                var scriptTag = allScriptTags[j];\r\n                if (\r\n                    scriptTag.src &&\r\n                    (scriptTag.src === src || (srcPos && scriptTag.src.indexOf(dynamicPlayers[srcPos - 1]) > 0))\r\n                ) {\r\n                    r.splice(i, 1);\r\n                    break;\r\n                }\r\n            }\r\n        }\r\n        var e = document,\r\n            t = \"script\";\r\n        function n() {\r\n            for (; d[0] && \"loaded\" === d[0][f]; ) (c = d.shift()), (c[o] = !i.parentNode.insertBefore(c, i));\r\n        }\r\n        var a;\r\n        for (var s, c, d = [], k = e.scripts[0], o = \"onreadystatechange\", f = \"readyState\"; (s = r.shift()); )\r\n            (a = e.createElement(t)),\r\n                \"async\" in k\r\n                    ? ((a.async = !1), e.head.appendChild(a))\r\n                    : k[f]\r\n                    ? (d.push(a), (a[o] = n))\r\n                    : e.write(\"<\" + t + ' src=\"' + s + '\" defer></' + t + \">\"),\r\n                (a.src = s);\r\n        return a;\r\n    }\r\n    var dynamicJsPlayer = \"/player.min.js\",\r\n        dynamicSwfPlayer = \"/player.min.swf\",\r\n        dynamicPlayers = [dynamicJsPlayer, dynamicSwfPlayer];\r\n    window[\"prepareSmart\"] = prepareSmart;\r\n    window[\"createToken\"] = createToken;\r\n    window[\"buildPlayerEmbedUrl\"] = buildPlayerEmbedUrl;\r\n    window[\"loadPlayerToObject\"] = loadPlayerToObject;\r\n    window[\"loadPlayerWithData\"] = loadPlayerWithData;\r\n})(window, undefined);\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, Transition as _Transition, withCtx as _withCtx, Teleport as _Teleport, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n  key: 0,\n  class: \"ql-live-stream__modal\"\n}\nconst _hoisted_2 = { class: \"ql-live-stream__modal-body bs-container\" }\n\nimport { nextTick, onBeforeUnmount, onMounted, reactive, ref, watch } from \"vue\";\r\nimport { isLiveStreamOpen, useLotteryStream } from \"./use-ql-live-stream\";\r\nimport { useStackedModals } from \"@sazka/utils/composables/use-stacked-modals\";\r\nimport DsButton from \"@sazka/design-system/src/button/ds-button.vue\";\r\nimport { debounce } from \"@sazka/utils/debounce\";\r\n\r\nconst closeButtonPositionOffset = 16;\r\n\nexport default /*@__PURE__*/_defineComponent({\n  __name: '_ql-live-stream',\n  setup(__props) {\n\r\nconst { addToStackedModals, removeFromStackedModals } = useStackedModals();\r\nconst streamContainerRef = ref<HTMLElement>(null);\r\n\r\nconst closeButtonRef = ref<InstanceType<typeof DsButton>>(null);\r\nconst closeButtonPositionClass = reactive({\r\n    top: true,\r\n    left: false,\r\n    inside: false,\r\n});\r\n\r\nconst setCloseButtonPosition = () => {\r\n    if (!isLiveStreamOpen.value) return;\r\n    const streamContainerRect = streamContainerRef.value.getBoundingClientRect();\r\n    const closeButtonRect = closeButtonRef.value.rootElement.getBoundingClientRect();\r\n\r\n    if (closeButtonRect.height <= streamContainerRect.y - closeButtonPositionOffset) {\r\n        if (!closeButtonPositionClass.top) {\r\n            closeButtonPositionClass.left = closeButtonPositionClass.inside = false;\r\n            closeButtonPositionClass.top = true;\r\n        }\r\n    } else if (closeButtonRect.width <= window.innerWidth - streamContainerRect.right - closeButtonPositionOffset) {\r\n        if (!closeButtonPositionClass.left) {\r\n            closeButtonPositionClass.top = closeButtonPositionClass.inside = false;\r\n            closeButtonPositionClass.left = true;\r\n        }\r\n    } else if (!closeButtonPositionClass.inside) {\r\n        closeButtonPositionClass.top = closeButtonPositionClass.left = false;\r\n        closeButtonPositionClass.inside = true;\r\n    }\r\n};\r\n\r\nconst resizeEventHandlerDebounced = debounce(setCloseButtonPosition, 50);\r\nonMounted(() => {\r\n    window.addEventListener(\"resize\", resizeEventHandlerDebounced);\r\n});\r\n\r\nonBeforeUnmount(() => {\r\n    window.removeEventListener(\"resize\", resizeEventHandlerDebounced);\r\n});\r\n\r\nconst closeStreamDialog = () => {\r\n    isLiveStreamOpen.value = false;\r\n};\r\n\r\nconst keyDownEventHandler = (e: KeyboardEvent) => {\r\n    if (e.key === \"Escape\") {\r\n        closeStreamDialog();\r\n    }\r\n};\r\n\r\nconst stream = useLotteryStream(streamContainerRef);\r\nwatch(isLiveStreamOpen, (newIsLiveStreamOpen, oldIsLiveStreamOpen) => {\r\n    if (newIsLiveStreamOpen && !oldIsLiveStreamOpen) {\r\n        addToStackedModals();\r\n        window.addEventListener(\"keydown\", keyDownEventHandler);\r\n        stream.start();\r\n\r\n        nextTick(() => {\r\n            setCloseButtonPosition();\r\n        });\r\n    } else if (!newIsLiveStreamOpen && oldIsLiveStreamOpen) {\r\n        removeFromStackedModals();\r\n        window.removeEventListener(\"keydown\", keyDownEventHandler);\r\n        stream.stop();\r\n    }\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n  return (_openBlock(), _createBlock(_Teleport, { to: \"body\" }, [\n    _createVNode(_Transition, { name: \"ql-live-stream\" }, {\n      default: _withCtx(() => [\n        (_unref(isLiveStreamOpen))\n          ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n              _createElementVNode(\"div\", {\n                class: \"ql-live-stream__modal-background\",\n                onClick: closeStreamDialog\n              }),\n              _createElementVNode(\"div\", _hoisted_2, [\n                _createVNode(DsButton, {\n                  type: \"interaction\",\n                  theme: \"dark\",\n                  class: _normalizeClass([\"ql-live-stream__modal-close\", closeButtonPositionClass]),\n                  ref_key: \"closeButtonRef\",\n                  ref: closeButtonRef,\n                  \"aria-label\": \"Zavřít\",\n                  \"icon-left\": \"cross\",\n                  onClick: _cache[0] || (_cache[0] = ($event: any) => (closeStreamDialog()))\n                }, null, 8, [\"class\"]),\n                _createElementVNode(\"div\", {\n                  class: \"ql-live-stream__stream\",\n                  ref_key: \"streamContainerRef\",\n                  ref: streamContainerRef\n                }, null, 512)\n              ])\n            ]))\n          : _createCommentVNode(\"\", true)\n      ]),\n      _: 1\n    })\n  ]))\n}\n}\n\n})","<template>\r\n    <Teleport to=\"body\">\r\n        <Transition name=\"ql-live-stream\">\r\n            <div class=\"ql-live-stream__modal\" v-if=\"isLiveStreamOpen\">\r\n                <div class=\"ql-live-stream__modal-background\" @click=\"closeStreamDialog\"></div>\r\n                <div class=\"ql-live-stream__modal-body bs-container\">\r\n                    <DsButton\r\n                        type=\"interaction\"\r\n                        theme=\"dark\"\r\n                        class=\"ql-live-stream__modal-close\"\r\n                        :class=\"closeButtonPositionClass\"\r\n                        ref=\"closeButtonRef\"\r\n                        aria-label=\"Zavřít\"\r\n                        icon-left=\"cross\"\r\n                        @click=\"closeStreamDialog()\"\r\n                    />\r\n\r\n                    <div class=\"ql-live-stream__stream\" ref=\"streamContainerRef\"></div>\r\n                </div>\r\n            </div>\r\n        </Transition>\r\n    </Teleport>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { nextTick, onBeforeUnmount, onMounted, reactive, ref, watch } from \"vue\";\r\nimport { isLiveStreamOpen, useLotteryStream } from \"./use-ql-live-stream\";\r\nimport { useStackedModals } from \"@sazka/utils/composables/use-stacked-modals\";\r\nimport DsButton from \"@sazka/design-system/src/button/ds-button.vue\";\r\nimport { debounce } from \"@sazka/utils/debounce\";\r\n\r\nconst { addToStackedModals, removeFromStackedModals } = useStackedModals();\r\nconst streamContainerRef = ref<HTMLElement>(null);\r\n\r\nconst closeButtonRef = ref<InstanceType<typeof DsButton>>(null);\r\nconst closeButtonPositionOffset = 16;\r\nconst closeButtonPositionClass = reactive({\r\n    top: true,\r\n    left: false,\r\n    inside: false,\r\n});\r\n\r\nconst setCloseButtonPosition = () => {\r\n    if (!isLiveStreamOpen.value) return;\r\n    const streamContainerRect = streamContainerRef.value.getBoundingClientRect();\r\n    const closeButtonRect = closeButtonRef.value.rootElement.getBoundingClientRect();\r\n\r\n    if (closeButtonRect.height <= streamContainerRect.y - closeButtonPositionOffset) {\r\n        if (!closeButtonPositionClass.top) {\r\n            closeButtonPositionClass.left = closeButtonPositionClass.inside = false;\r\n            closeButtonPositionClass.top = true;\r\n        }\r\n    } else if (closeButtonRect.width <= window.innerWidth - streamContainerRect.right - closeButtonPositionOffset) {\r\n        if (!closeButtonPositionClass.left) {\r\n            closeButtonPositionClass.top = closeButtonPositionClass.inside = false;\r\n            closeButtonPositionClass.left = true;\r\n        }\r\n    } else if (!closeButtonPositionClass.inside) {\r\n        closeButtonPositionClass.top = closeButtonPositionClass.left = false;\r\n        closeButtonPositionClass.inside = true;\r\n    }\r\n};\r\n\r\nconst resizeEventHandlerDebounced = debounce(setCloseButtonPosition, 50);\r\nonMounted(() => {\r\n    window.addEventListener(\"resize\", resizeEventHandlerDebounced);\r\n});\r\n\r\nonBeforeUnmount(() => {\r\n    window.removeEventListener(\"resize\", resizeEventHandlerDebounced);\r\n});\r\n\r\nconst closeStreamDialog = () => {\r\n    isLiveStreamOpen.value = false;\r\n};\r\n\r\nconst keyDownEventHandler = (e: KeyboardEvent) => {\r\n    if (e.key === \"Escape\") {\r\n        closeStreamDialog();\r\n    }\r\n};\r\n\r\nconst stream = useLotteryStream(streamContainerRef);\r\nwatch(isLiveStreamOpen, (newIsLiveStreamOpen, oldIsLiveStreamOpen) => {\r\n    if (newIsLiveStreamOpen && !oldIsLiveStreamOpen) {\r\n        addToStackedModals();\r\n        window.addEventListener(\"keydown\", keyDownEventHandler);\r\n        stream.start();\r\n\r\n        nextTick(() => {\r\n            setCloseButtonPosition();\r\n        });\r\n    } else if (!newIsLiveStreamOpen && oldIsLiveStreamOpen) {\r\n        removeFromStackedModals();\r\n        window.removeEventListener(\"keydown\", keyDownEventHandler);\r\n        stream.stop();\r\n    }\r\n});\r\n</script>\r\n","import script from \"./_ql-live-stream.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./_ql-live-stream.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__"],"names":["isLiveStreamOpen","ref","currentStream","useLotteryStream","el","streamPlaying","close","obj","start","stop","value","nextTick","async","openLotteryVideoStream","e","functionsBitMap","url","environment","env","streamData","getStreamData","Promise","res","rej","response","httpClient","get","data","isBlockedTime","now","Date","getHours","getMinutes","getSeconds","container","dontCloseOnMidnight","player","interval","innerHTML","clearInterval","window","setInterval","sazkaAlert","setVideoQuality","resolution","triggerCommand","toggleConfiguration","toggleFullscreen","_player","this","instance","events","onMediaChanged","localSettings","setPlayedTime","mediaInfos","identity","onMediaLoad","ResponsiveUtils","isMobile","video","_videoElement","playsInline","autoplay","muted","isIos","onpause","play","loadPlayerWithData","embed","settings","playerVisibilities","debounce","func","wait","immediate","timeout","args","context","later","apply","callNow","clearTimeout","setTimeout","title","text","linkText","link","buttonText","customHtml","hasExtraButton","errorCode","resolve","heading","$","append","maxWidth","Math","max","width","remove","template","$modal","modal","find","on","length","addClass","dirtyApiUrl","apiUrl","indexOf","location","protocol","substring","head","document","getElementsByTagName","documentElement","prepareSmart","embedId","assetId","customerToken","ip","stream","embedQuery","createPlayer","videoInfos","lazyLoading","loadPlayerToObject","buildPlayerEmbedUrl","writeSettingsDefaults","writePlayerDefaults","embedPolyfill","crossDomainAjax","index","browserLang","navigator","languages","language","userLanguage","region","token","createToken","undefined","getEmbedQueryPart","key","dictionary","defaultValue","part","encodeURIComponent","successCallback","support","cors","deferred","Deferred","XDomainRequest","xdr","open","onload","dom","ActiveXObject","JSON","parseJSON","responseText","firstChild","textContent","onerror","reject","arguments","send","userAgent","parseInt","match","ajax","cache","dataType","type","success","error","promise","cssFiles","css","getElementsByName","createElement","setAttribute","appendChild","jsFiles","onLoadedScripts","scriptLoader","bind","lastScriptElement","fncToWrap","onPlayerInitialized_polyfilled","onPlayerInitialized","smartObj","getElementById","code","replace","re","exec","script","lastQMPlayerId","minLogLevel","logFlashVars","target","setDataAttribute","load","playerObject","resize","height","$embed","setSize","id","playerPolyfill","createPlayerEmbedPolyfill","vuPlayer","videoElement","addEventListener","onVideoStarted","onVideoPlaying","onVideoPaused","onVideoFinished","onPlayerInitialized_wrapped","onPlaylistLoaded","dataAttributeName","objPropertyName","objValue","listenersByEventType","addPlaybackEventListener","eventType","listener","v","push","removePlaybackEventListener","i","splice","sendEvent","eventName","callFunctions","arr","split","j","event","uniqueId","call","setOptions","Array","prototype","slice","pair","pos","substr","trim","stringToBoolean","setOption","name","itemIdentifier","pause","seek","time","currentTime","state","embedElement","className","commandName","triggered","console","warn","isTriggerCommandSupported","string","toLowerCase","r","allScriptTags","src","srcPos","dynamicJsPlayer","dynamicSwfPlayer","scriptTag","dynamicPlayers","a","t","n","d","f","c","shift","o","parentNode","insertBefore","s","k","scripts","write","_hoisted_1","class","_hoisted_2","closeButtonPositionOffset","_defineComponent","__name","setup","__props","addToStackedModals","removeFromStackedModals","useStackedModals","streamContainerRef","closeButtonRef","closeButtonPositionClass","reactive","top","left","inside","setCloseButtonPosition","streamContainerRect","getBoundingClientRect","closeButtonRect","rootElement","y","innerWidth","right","resizeEventHandlerDebounced","onMounted","onBeforeUnmount","removeEventListener","closeStreamDialog","keyDownEventHandler","watch","newIsLiveStreamOpen","oldIsLiveStreamOpen","_ctx","_cache","_openBlock","_createBlock","_Teleport","to","_createVNode","_Transition","default","_withCtx","_unref","_createElementBlock","_createElementVNode","onClick","DsButton","theme","_normalizeClass","ref_key","$event","_createCommentVNode","_","__exports__"],"sourceRoot":""}