aboutsummaryrefslogtreecommitdiffstats
path: root/demo/dist/demo.js.map
blob: 604de15faca6112e62391777dd22fadf118f6b1c (plain)
1
{"version":3,"file":"demo.js","sources":["demo/src/js/demo.js"],"sourcesContent":["// ==========================================================================\n// Plyr.io demo\n// This code is purely for the https://plyr.io website\n// Please see readme.md in the root or github.com/sampotts/plyr\n// ==========================================================================\n\ndocument.addEventListener('DOMContentLoaded', () => {\n    if (window.shr) {\n        window.shr.setup({\n            count: {\n                classname: 'button__count',\n            },\n        });\n    }\n\n    // Setup tab focus\n    const tabClassName = 'tab-focus';\n\n    // Remove class on blur\n    document.addEventListener('focusout', event => {\n        event.target.classList.remove(tabClassName);\n    });\n\n    // Add classname to tabbed elements\n    document.addEventListener('keydown', event => {\n        if (event.keyCode !== 9) {\n            return;\n        }\n\n        // Delay the adding of classname until the focus has changed\n        // This event fires before the focusin event\n        window.setTimeout(() => {\n            document.activeElement.classList.add(tabClassName);\n        }, 0);\n    });\n\n    // Setup the player\n    const player = new window.Plyr('#player', {\n        debug: true,\n        title: 'View From A Blue Moon',\n        iconUrl: '../dist/plyr.svg',\n        keyboard: {\n            global: true,\n        },\n        tooltips: {\n            controls: true,\n        },\n        captions: {\n            active: true,\n        },\n        controls: ['play-large', 'play', 'progress', 'current-time', 'mute', 'volume', 'captions', 'settings', 'fullscreen', 'pip', 'airplay'],\n        keys: {\n            google: 'AIzaSyDrNwtN3nLH_8rjCmu5Wq3ZCm4MNAVdc0c',\n        },\n    });\n\n    // Expose for testing\n    window.player = player;\n\n    // Setup type toggle\n    const buttons = document.querySelectorAll('[data-source]');\n    const types = {\n        video: 'video',\n        audio: 'audio',\n        youtube: 'youtube',\n        vimeo: 'vimeo',\n    };\n    let currentType = window.location.hash.replace('#', '');\n    const historySupport = window.history && window.history.pushState;\n\n    // Toggle class on an element\n    function toggleClass(element, className, state) {\n        if (element) {\n            element.classList[state ? 'add' : 'remove'](className);\n        }\n    }\n\n    // Set a new source\n    function newSource(type, init) {\n        // Bail if new type isn't known, it's the current type, or current type is empty (video is default) and new type is video\n        if (!(type in types) || (!init && type === currentType) || (!currentType.length && type === types.video)) {\n            return;\n        }\n\n        switch (type) {\n            case types.video:\n                player.source = {\n                    type: 'video',\n                    title: 'View From A Blue Moon',\n                    sources: [\n                        {\n                            src: 'media/View_From_A_Blue_Moon_Trailer-HD.mp4',\n                            type: 'video/mp4',\n                        },\n                    ],\n                    poster: 'media/View_From_A_Blue_Moon_Trailer-HD.jpg',\n                    tracks: [\n                        {\n                            kind: 'captions',\n                            label: 'English',\n                            srclang: 'en',\n                            src: 'media/View_From_A_Blue_Moon_Trailer-HD.en.vtt',\n                            default: true,\n                        },\n                        {\n                            kind: 'captions',\n                            label: 'French',\n                            srclang: 'fr',\n                            src: 'media/View_From_A_Blue_Moon_Trailer-HD.fr.vtt',\n                        },\n                    ],\n                };\n\n                break;\n\n            case types.audio:\n                player.source = {\n                    type: 'audio',\n                    title: 'Kishi Bashi – “It All Began With A Burst”',\n                    sources: [\n                        {\n                            src: 'https://cdn.plyr.io/static/demo/Kishi_Bashi_-_It_All_Began_With_a_Burst.mp3',\n                            type: 'audio/mp3',\n                        },\n                        {\n                            src: 'https://cdn.plyr.io/static/demo/Kishi_Bashi_-_It_All_Began_With_a_Burst.ogg',\n                            type: 'audio/ogg',\n                        },\n                    ],\n                };\n\n                break;\n\n            case types.youtube:\n                player.source = {\n                    type: 'video',\n                    title: 'View From A Blue Moon',\n                    sources: [\n                        {\n                            src: 'https://youtube.com/watch?v=bTqVqk7FSmY',\n                            provider: 'youtube',\n                        },\n                    ],\n                };\n\n                break;\n\n            case types.vimeo:\n                player.source = {\n                    type: 'video',\n                    sources: [\n                        {\n                            src: 'https://vimeo.com/76979871',\n                            provider: 'vimeo',\n                        },\n                    ],\n                };\n\n                break;\n\n            default:\n                break;\n        }\n\n        // Set the current type for next time\n        currentType = type;\n\n        // Remove active classes\n        Array.from(buttons).forEach(button => toggleClass(button.parentElement, 'active', false));\n\n        // Set active on parent\n        toggleClass(document.querySelector(`[data-source=\"${type}\"]`), 'active', true);\n\n        // Show cite\n        Array.from(document.querySelectorAll('.plyr__cite')).forEach(cite => {\n            cite.setAttribute('hidden', '');\n        });\n        document.querySelector(`.plyr__cite--${type}`).removeAttribute('hidden');\n    }\n\n    // Bind to each button\n    Array.from(buttons).forEach(button => {\n        button.addEventListener('click', () => {\n            const type = button.getAttribute('data-source');\n\n            newSource(type);\n\n            if (historySupport) {\n                window.history.pushState({ type }, '', `#${type}`);\n            }\n        });\n    });\n\n    // List for backwards/forwards\n    window.addEventListener('popstate', event => {\n        if (event.state && 'type' in event.state) {\n            newSource(event.state.type);\n        }\n    });\n\n    // On load\n    if (historySupport) {\n        const video = !currentType.length;\n\n        // If there's no current type set, assume video\n        if (video) {\n            currentType = types.video;\n        }\n\n        // Replace current history state\n        if (currentType in types) {\n            window.history.replaceState(\n                {\n                    type: currentType,\n                },\n                '',\n                video ? '' : `#${currentType}`\n            );\n        }\n\n        // If it's not video, load the source\n        if (currentType !== types.video) {\n            newSource(currentType, true);\n        }\n    }\n});\n\n// Google analytics\n// For demo site (https://plyr.io) only\n/* eslint-disable */\nif (window.location.host === 'plyr.io') {\n    (function(i, s, o, g, r, a, m) {\n        i.GoogleAnalyticsObject = r;\n        i[r] =\n            i[r] ||\n            function() {\n                (i[r].q = i[r].q || []).push(arguments);\n            };\n        i[r].l = 1 * new Date();\n        a = s.createElement(o);\n        m = s.getElementsByTagName(o)[0];\n        a.async = 1;\n        a.src = g;\n        m.parentNode.insertBefore(a, m);\n    })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');\n    window.ga('create', 'UA-40881672-11', 'auto');\n    window.ga('send', 'pageview');\n}\n/* eslint-enable */\n"],"names":["document","addEventListener","toggleClass","element","className","state","classList","newSource","type","init","types","currentType","length","video","source","audio","youtube","vimeo","from","buttons","forEach","button","parentElement","querySelector","querySelectorAll","setAttribute","removeAttribute","window","shr","setup","target","remove","event","keyCode","setTimeout","activeElement","add","player","Plyr","location","hash","replace","historySupport","history","pushState","getAttribute","replaceState","host","i","s","o","g","r","a","m","GoogleAnalyticsObject","q","push","arguments","l","Date","createElement","getElementsByTagName","async","src","parentNode","insertBefore","ga"],"mappings":"AAMAA,SAASC,iBAAiB,mBAAoB,oBAiEjCC,EAAYC,EAASC,EAAWC,GACjCF,KACQG,UAAUD,EAAQ,MAAQ,UAAUD,YAK3CG,EAAUC,EAAMC,MAEfD,KAAQE,IAAYD,GAAQD,IAASG,KAAkBA,EAAYC,QAAUJ,IAASE,EAAMG,eAI1FL,QACCE,EAAMG,QACAC,aACG,cACC,sCAGM,kDACC,qBAGN,2DAGM,iBACC,kBACE,SACJ,yDACI,SAGH,iBACC,iBACE,SACJ,8DAOhBJ,EAAMK,QACAD,aACG,cACC,4EAGM,mFACC,kBAGD,mFACC,0BAOjBJ,EAAMM,UACAF,aACG,cACC,sCAGM,mDACK,wBAOrBJ,EAAMO,QACAH,aACG,sBAGO,sCACK,aAYhBN,QAGRU,KAAKC,GAASC,QAAQ,mBAAUlB,EAAYmB,EAAOC,cAAe,UAAU,OAGtEtB,SAASuB,+BAA+Bf,QAAW,UAAU,SAGnEU,KAAKlB,SAASwB,iBAAiB,gBAAgBJ,QAAQ,cACpDK,aAAa,SAAU,eAEvBF,8BAA8Bf,GAAQkB,gBAAgB,WA1K/DC,OAAOC,YACAA,IAAIC,wBAEQ,4BASd5B,iBAAiB,WAAY,cAC5B6B,OAAOxB,UAAUyB,OAJN,wBAQZ9B,iBAAiB,UAAW,YACX,IAAlB+B,EAAMC,gBAMHC,WAAW,oBACLC,cAAc7B,UAAU8B,IAhBpB,cAiBd,SAIDC,EAAS,IAAIV,OAAOW,KAAK,kBACpB,QACA,gCACE,qCAEG,uBAGE,qBAGF,aAED,aAAc,OAAQ,WAAY,eAAgB,OAAQ,SAAU,WAAY,WAAY,aAAc,MAAO,wBAEhH,oDAKTD,OAASA,MAGVlB,EAAUnB,SAASwB,iBAAiB,iBACpCd,SACK,cACA,gBACE,gBACF,SAEPC,EAAcgB,OAAOY,SAASC,KAAKC,QAAQ,IAAK,IAC9CC,EAAiBf,OAAOgB,SAAWhB,OAAOgB,QAAQC,mBAiHlD1B,KAAKC,GAASC,QAAQ,cACjBnB,iBAAiB,QAAS,eACvBO,EAAOa,EAAOwB,aAAa,iBAEvBrC,GAENkC,UACOC,QAAQC,WAAYpC,QAAQ,OAAQA,cAMhDP,iBAAiB,WAAY,YAC5B+B,EAAM3B,OAAS,SAAU2B,EAAM3B,SACrB2B,EAAM3B,MAAMG,QAK1BkC,EAAgB,KACV7B,GAASF,EAAYC,OAGvBC,MACcH,EAAMG,OAIpBF,KAAeD,UACRiC,QAAQG,mBAEDnC,GAEV,GACAE,EAAQ,OAASF,GAKrBA,IAAgBD,EAAMG,SACZF,GAAa,MAQN,YAAzBgB,OAAOY,SAASQ,iBACNC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,KACtBC,sBAYoE,OAXtE,GACIP,EAAA,IACA,YACKA,EAAA,GAAKQ,EAAIR,EAAA,GAAKQ,OAASC,KAAKC,cAErC,GAAKC,EAAI,EAAI,IAAIC,OACbX,EAAEY,cAKW,YAJbZ,EAAEa,qBAIW,UAJa,KAC5BC,MAAQ,IACRC,IAEyB,4CADzBC,WAAWC,aAAab,EAAGC,IAC9B3B,OAAQ3B,iBACJmE,GAAG,SAAU,iBAAkB,eAC/BA,GAAG,OAAQ"}