OwlCyberSecurity - MANAGER
Edit File: p-406404a6.js.map
{"version":3,"names":["loadHLS","config","selector","src","preload","Promise","async","resolve","reject","window","Hls","hasOwnProperty","setTimeout","isSupported","autoStartLoad","includes","wp","blocks","hls","hooks","applyFilters","capLevelToPlayerSize","loadSource","on","Events","LEVEL_SWITCHED","event","data","span","closest","querySelector","autoLevelEnabled","innerHTML","levels","level","height","MANIFEST_PARSED","availableQualities","map","l","unshift","startLevel","findIndex","qty","parseInt","prestoPlayer","hls_start_level","quality","default","options","forced","onChange","newQuality","prestoHLS","currentLevel","forEach","levelIndex","console","log","attachMedia","player","PrestoPlayer","firstPlay","startLoad","off","subtitleTrack","currentTrack","canPlayType"],"sources":["src/components/core/player/functions/hls.js"],"sourcesContent":["import PrestoPlayer from './presto-player';\n\nconst loadHLS = ({ config, selector, src, preload }) => {\n return new Promise(async (resolve, reject) => {\n if (!window.Hls) {\n while (!window.hasOwnProperty('Hls')) await new Promise(resolve => setTimeout(resolve, 50));\n }\n\n if (window.Hls.isSupported()) {\n // should we autoload start\n let autoStartLoad = !['metadata', 'none'].includes(preload);\n\n // always autoload in admin for preview\n if (wp?.blocks) {\n autoStartLoad = true;\n }\n\n // maybe don't auto start load depending on performance parameter\n var hls = new window.Hls(\n window?.wp?.hooks?.applyFilters?.(\n 'presto.hlsSettings',\n {\n autoStartLoad,\n capLevelToPlayerSize: true,\n }\n )\n );\n\n hls.loadSource(src);\n\n // update menu container to dynamically display quality\n hls.on(window.Hls.Events.LEVEL_SWITCHED, (event, data) => {\n var span = selector.closest('.presto-player__wrapper').querySelector(\".plyr__menu__container [data-plyr='quality'][value='0'] span\");\n if (hls.autoLevelEnabled) {\n span.innerHTML = `AUTO (${hls.levels[data.level].height}p)`;\n } else {\n span.innerHTML = `AUTO`;\n }\n });\n\n // From the m3u8 playlist, hls parses the manifest and returns\n // all available video qualities. This is important, in this approach,\n // we will have one source on the Plyr player.\n hls.on(window.Hls.Events.MANIFEST_PARSED, function (event, data) {\n // Transform available levels into an array of integers (height values).\n var availableQualities = hls.levels.map(function (l) {\n return l.height;\n });\n availableQualities.unshift(0); //prepend 0 to quality array;\n\n // do start level\n const startLevel = (availableQualities || []).findIndex(qty => qty === parseInt(window?.prestoPlayer?.hls_start_level));\n hls.startLevel = startLevel ? startLevel - 1 : 2;\n\n // Add new qualities to option\n config.quality = {\n default: 0,\n options: availableQualities,\n // this ensures Plyr to use Hls to update quality level\n forced: true,\n onChange: function (newQuality) {\n if (newQuality === 0) {\n prestoHLS.currentLevel = -1; //Enable AUTO quality if option.value = 0\n } else {\n prestoHLS.levels.forEach(function (level, levelIndex) {\n if (level.height === newQuality) {\n console.log('Found quality match with ' + newQuality);\n prestoHLS.currentLevel = levelIndex;\n }\n });\n }\n },\n };\n\n // attach media and make our HLS options available globally\n hls.attachMedia(selector);\n window.prestoHLS = hls;\n\n // Initialize player\n const player = new PrestoPlayer(selector, { ...config });\n player.hls = hls;\n\n // make sure we start loading on the first play\n const firstPlay = () => {\n hls.startLoad(-1);\n player.off('waiting', firstPlay);\n };\n player.on('waiting', firstPlay);\n\n // Handle changing captions\n player.on('languagechange', () => {\n // Caption support is still flaky. See: https://github.com/sampotts/plyr/issues/994\n setTimeout(() => (hls.subtitleTrack = player.currentTrack), 50);\n });\n\n return resolve(player);\n });\n\n return;\n } else if (selector.canPlayType('application/vnd.apple.mpegurl')) {\n return resolve(new PrestoPlayer(selector, { ...config }));\n }\n\n return resolve(new PrestoPlayer(selector, { ...config }));\n });\n};\n\nexport default loadHLS;\n"],"mappings":"oFAEK,MAACA,EAAU,EAAGC,SAAQC,WAAUC,MAAKC,aACjC,IAAIC,SAAQC,MAAOC,EAASC,KACjC,IAAKC,OAAOC,IAAK,CACf,OAAQD,OAAOE,eAAe,aAAc,IAAIN,SAAQE,GAAWK,WAAWL,EAAS,KAC7F,CAEI,GAAIE,OAAOC,IAAIG,cAAe,CAE5B,IAAIC,GAAiB,CAAC,WAAY,QAAQC,SAASX,GAGnD,GAAIY,IAAIC,OAAQ,CACdH,EAAgB,IACxB,CAGM,IAAII,EAAM,IAAIT,OAAOC,IACnBD,QAAQO,IAAIG,OAAOC,eACjB,qBACA,CACEN,gBACAO,qBAAsB,QAK5BH,EAAII,WAAWnB,GAGfe,EAAIK,GAAGd,OAAOC,IAAIc,OAAOC,gBAAgB,CAACC,EAAOC,KAC/C,IAAIC,EAAO1B,EAAS2B,QAAQ,2BAA2BC,cAAc,gEACrE,GAAIZ,EAAIa,iBAAkB,CACxBH,EAAKI,UAAY,SAASd,EAAIe,OAAON,EAAKO,OAAOC,UAC3D,KAAe,CACLP,EAAKI,UAAY,MAC3B,KAMMd,EAAIK,GAAGd,OAAOC,IAAIc,OAAOY,iBAAiB,SAAUV,EAAOC,GAEzD,IAAIU,EAAqBnB,EAAIe,OAAOK,KAAI,SAAUC,GAChD,OAAOA,EAAEJ,MACnB,IACQE,EAAmBG,QAAQ,GAG3B,MAAMC,GAAcJ,GAAsB,IAAIK,WAAUC,GAAOA,IAAQC,SAASnC,QAAQoC,cAAcC,mBACtG5B,EAAIuB,WAAaA,EAAaA,EAAa,EAAI,EAG/CxC,EAAO8C,QAAU,CACfC,QAAS,EACTC,QAASZ,EAETa,OAAQ,KACRC,SAAU,SAAUC,GAClB,GAAIA,IAAe,EAAG,CACpBC,UAAUC,cAAgB,CACxC,KAAmB,CACLD,UAAUpB,OAAOsB,SAAQ,SAAUrB,EAAOsB,GACxC,GAAItB,EAAMC,SAAWiB,EAAY,CAC/BK,QAAQC,IAAI,4BAA8BN,GAC1CC,UAAUC,aAAeE,CAC3C,CACA,GACA,CACA,GAIQtC,EAAIyC,YAAYzD,GAChBO,OAAO4C,UAAYnC,EAGnB,MAAM0C,EAAS,IAAIC,EAAa3D,EAAU,IAAKD,IAC/C2D,EAAO1C,IAAMA,EAGb,MAAM4C,EAAY,KAChB5C,EAAI6C,WAAW,GACfH,EAAOI,IAAI,UAAWF,EAAU,EAElCF,EAAOrC,GAAG,UAAWuC,GAGrBF,EAAOrC,GAAG,kBAAkB,KAE1BX,YAAW,IAAOM,EAAI+C,cAAgBL,EAAOM,cAAe,GAAG,IAGjE,OAAO3D,EAAQqD,EACvB,IAEM,MACN,MAAW,GAAI1D,EAASiE,YAAY,iCAAkC,CAChE,OAAO5D,EAAQ,IAAIsD,EAAa3D,EAAU,IAAKD,IACrD,CAEI,OAAOM,EAAQ,IAAIsD,EAAa3D,EAAU,IAAKD,IAAU,W"}