PageSourceSearch

https://www.popularmechanics.com/_assets/fre/scopes/hdm/_next/static/chunks/33089.211ecf3184f376c6.js

js popularmechanics.com collected 2026-09-24 07:16:28 UTC 46,357 bytes, 28 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4506,5935,11785,16411,22261,26887,28316,33089,34166,44642,49268,56547,67023,71649,76818,82125,89404,94030],{19025:(e,t,r)=>{"use strict";let i;r.d(t,{A:()=>u});var s=((i=s||{}).MP4="video/mp4",i.AVI="video/avi",i.OGG="video/ogg",i.M3U8="m3u8",i.WEBM="video/webm",i.MOV="video/quicktime",i.WMV="video/x-ms-wmv",i.MPEG="video/mpeg",i),n=r(19939),a=r(71055),l=r(55837),o=r(7751),d=class{constructor(){(0,n.a)(this,"player",null)}setup(e){this.player=e}async play(){return this.player?.element.play()}pause(){this.player?.element.pause()}setSrc(e){this.player&&this.player.setSrc(e)}getCurrentVideo(){return this.player?.store.getState().video??void 0}destroy(){this.player=null}};function u({onError:e,onReady:t,children:r}){let{_setPlayerInitialized:i}=(0,l.y)(),s=(0,l.p)(),n=(0,l.r)(),c=(0,a.useRef)(!1);return(0,a.useEffect)(()=>{var r,a;let l,o,u,p,h,m,g,y;if(!s||c.current)return;let f=n;if(!f&&s.element.src&&(l=(a=r=s.element.src).includes(".m3u8")||a.includes(".HLS"),o=/\.(mp4|m4a|m4p|m4b|m4r|m4v)$/i.test(a),u=/\.avi$/i.test(a),p=/\.(ogg|ogv)$/i.test(a),h=/\.webm$/i.test(a),m=/\.(mov|qt)$/i.test(a),g=/\.wmv$/i.test(a),y=/\.(mpeg|mpg)$/i.test(a),f={id:r,sources:[{src:r,type:(l?"m3u8":o?"video/mp4":u?"video/avi":p?"video/ogg":h?"video/webm":m?"video/quicktime":g?"video/x-ms-wmv":y?"video/mpeg":null)||"video/mp4",displayName:"Default"}]}),!f)return;let v=new d;s.provider=v,s.element.src?s.setSrc(s.element.src):s.setVideo(f);let b=window.videoPlayerManager;b&&(b.initPlayer(s),i(!0)),c.current=!0,e&&s.events.on("error",t=>{e(t.error??Error("Unknown player error"))}),t?.(v)},[s,n,i,e,t]),(0,o.Y)(o.FK,{children:r})}},19939:(e,t,r)=>{"use strict";r.d(t,{a:()=>s});var i=Object.defineProperty,s=(e,t,r)=>{let s;return(s="symbol"!=typeof t?t+"":t)in e?i(e,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[s]=r}},30362:(e,t,r)=>{"use strict";r.d(t,{Rg:()=>y,ZG:()=>i,hR:()=>s,vy:()=>n});let i=((h={})[h.default=0]="default",h[h.parser=1]="parser",h[h.traverse=3]="traverse",h[h.render=4]="render",h[h.DEFAULT=0]="DEFAULT",h[h.PARSER=1]="PARSER",h[h.TRAVERSE=3]="TRAVERSE",h[h.RENDER=4]="RENDER",h),s=((m={}).default="default",m.html="html",m.markdown="markdown",m.DEFAULT="default",m.HTML="html",m.MARKDOWN="markdown",m),n=((g={}).default="default",g.react="react",g.preact="preact",g.html="html",g.markdown="markdown",g.DEFAULT="default",g.REACT="react",g.PREACT="preact",g.HTML="html",g.MARKDOWN="markdown",g),a=Symbol("pluginOptions");function l(e){let t=e;for(;t&&t.default&&"object"==typeof t.default&&!Array.isArray(t.default);){if(Object.keys(t.default).some(e=>!isNaN(Number(e))))return t.default;t=t.default}return t&&t.default||t}function o(e,t,r){return void 0===r?`${e}:${t}`:`${e}:${t}:${r}`}function d(e,t,r,i){if(void 0!==e.id){let s,n=(...t)=>e(...t);return Object.defineProperty(n,"name",{value:e.name,configurable:!0}),(s=e.displayName)&&Object.defineProperty(n,"displayName",{value:s,configurable:!0}),n.key=t,n.id=globalThis.crypto?.randomUUID(),n.options=i,r?n.src=r:e.src&&(n.src=e.src),n}return e.key=t,e.id=globalThis.crypto?.randomUUID(),e.options=i,r&&(e.src=r),e}function u({target:e,source:t,pluginName:r,pluginOptions:i}){Object.entries(t).forEach(([t,s])=>{let n;"function"==typeof s&&"name"!==t&&(Number.isNaN(n="number"==typeof t?t:Number(t))||0!==n&&1!==n&&3!==n&&4!==n)&&(e[t]||(e[t]=[]),e[t].push(d(s,t,r,i)))})}function c({target:e,phaseBag:t,pluginName:r,pluginOptions:i}){Object.entries(t).forEach(([t,s])=>{"function"==typeof s&&(e[t]||(e[t]=[]),e[t].push(d(s,t,r,i)))})}function p({bag:e,renderer:t,pluginName:r,pluginOptions:i,target:s}){if(!e||"object"!=typeof e||Array.isArray(e)||(("default"===t||"react"===t||"preact"===t)&&u({target:s,source:e,pluginName:r,pluginOptions:i}),"default"===t))return;let n=e[t];!n||"object"!=typeof n||Array.isArray(n)||u({target:s,source:n,pluginName:r,pluginOptions:i})}var h,m,g,y=class{plugins;callbacks={};loading={};constructor(e){this.plugins=function(e){let t={1:[],3:[],4:[],0:[]},r=Object.keys(t);
1return r.splice(r.indexOf("0"),1),e.forEach(e=>{if(!e)return;if(Array.isArray(e)){if(!e.length)return;if("function"!=typeof e[0]){let t;try{t=JSON.stringify(e[0])}catch{[t]=e}console.error("The first argument in the array should be a function returning a dynamic import. Plugin will be skipped.",`The value is: ${t}`);return}if(e[1]?.constructor!==Object)console.warn(`Missing options object for plugin: 
2
3${e[0]}.
4
5Add "phase", "options", and/or "name" keys or remove the array wrapper.`);else if(e[1].phase){let{phase:r}=e[1];if(t[r]){t[r].push(e),Object.defineProperty(t[r],"enabled",{enumerable:!1,value:!0});return}console.warn(`Invalid phase "${r}" for plugin: 
6
7${e[0]}.
8
9Valid phases: PHASES.parser, PHASES.traverse, PHASES.render.
10
11Switching to "PHASES.default".`)}else void 0===e[1].options&&void 0===e[1].phase&&void 0===e[1].name&&console.warn(`Missing options "phase", "options", and "name" for plugin: 
12
13${e[0]}.
14
15Add at least one or remove the array wrapper.`)}else if("function"!=typeof e){let t;try{t=JSON.stringify(e)}catch{t=e}console.error("The first argument should be a function returning a dynamic import. Plugin will be skipped.",`The value is: ${t}`);return}let i=t[0].push(e)-1;r.forEach(e=>t[e].push(i))}),r.forEach(e=>{t[Number(e)].enabled||(t[e]=[])}),t}(e)}async process(e=0,{format:t="html",renderer:r}={}){await this.load(e);let i=4===e?r??"react":void 0,s=o(e,t,i);return void 0===this.callbacks[s]?this.sort(e,t,i)||{}:this.callbacks[s]}async load(e){let t=this.plugins[e].length>0?e:0;if(0!==t&&this.hasSharedIndexes(t)&&await this.ensureSharedLoaded(),0===t)return this.ensureSharedLoaded();let r=this.loading[t];if(r)return r;let i=this.runLoad(t);return this.loading[t]=i,i}hasSharedIndexes(e){return this.plugins[e].some(e=>"number"==typeof e)}ensureSharedLoaded(){let e=this.loading[0];if(e)return e;let t=this.runLoad(0);return this.loading[0]=t,t}async runLoad(e){let t=[];return this.plugins[e].forEach((e,r)=>{if("number"==typeof e)return;let i=e,s={},n;if(Array.isArray(e)&&([i,s,n]=[e[0],e[1]?.options||{},e[1]?.name]),"function"!=typeof i)return;
15let a=Promise.resolve(i()).then(l).then(e=>({response:e,options:s,configName:n,index:r})).catch(e=>Promise.reject({err:e,index:r}));t.push(a)}),Promise.allSettled(t).then(t=>{t.forEach(t=>{if("fulfilled"===t.status){let{index:r,options:i,configName:s}=t.value,{response:n}=t.value;if("function"==typeof n&&(n=n(i)),!n)return;if("function"==typeof n.then)return void console.error("Error: plugins should not return a promise");let l={...n};s&&!l.name&&(l.name=s),Object.defineProperty(l,a,{value:i,enumerable:!1,configurable:!0}),this.plugins[e][r]=l}else{let{err:r,index:i}=t.reason;console.error("Error from loading plugin",r),this.plugins[e][i]=void 0}})}).catch(t=>{console.error("Error in loader.load allSettled promise",t),this.plugins[e]=[]})}sort(e,t="html",r){if(0===e)return!1;let i=4===e?r??"react":"default",s=o(e,t,4===e?i:void 0);if(void 0!==this.callbacks[s])return!1;let n=this.plugins[e];if(!n)return!1;let l=n.length?n:this.plugins[0],d={},h=!1;return l.forEach(r=>{let s=isNaN(Number(r))?r:this.plugins[0][Number(r)];s&&(h=!0,function({plugin:e,phase:t,format:r,renderer:i,target:s}){let n=e.name,l=e[a]||{};if(4===t){if(p({bag:e[t],renderer:i,pluginName:n,pluginOptions:l,target:s}),"default"===r)return;let a=e[r];if(!a||"object"!=typeof a||Array.isArray(a))return;p({bag:a[t],renderer:i,pluginName:n,pluginOptions:l,target:s});return}u({target:s,source:e,pluginName:n,pluginOptions:l});let o=e[t];
15if(o&&"object"==typeof o&&c({target:s,phaseBag:o,pluginName:n,pluginOptions:l}),"default"===r)return;let d=e[r];if(!d||"object"!=typeof d||Array.isArray(d))return;u({target:s,source:d,pluginName:n,pluginOptions:l});let h=d[t]??d[String(t)];h&&"object"==typeof h&&c({target:s,phaseBag:h,pluginName:n,pluginOptions:l})}({plugin:s,phase:e,format:t,renderer:i,target:d}))}),!!h&&(this.callbacks[s]=d,this.callbacks[s])}}},49268:(e,t,r)=>{"use strict";r.d(t,{Bonsai:()=>o,PHASES:()=>i.ZG,State:()=>s.Uw});var i=r(30362),s=r(50956),n=r(62654);let a=[[()=>Promise.all([r.e(67748),r.e(34082)]).then(r.bind(r,34082)),{phase:i.ZG.parser}]],l=[()=>Promise.all([r.e(37254),r.e(42718)]).then(r.bind(r,86104)),{phase:i.ZG.parser}];var o=class{dom;loader;nodeHandler;traverseHandlers;parser;markdownParser;callbacks;markdownCallbacks;prepared;preparedTraverse;preparedMarkdownParse;nodeAdapter;parserOptions;markdownOptions;handlerOptions;sanitizeTreeUrls;singleRun;name;resolveOptions({plugins:e=[],callbacks:t={},nodeAdapter:r={},parserOptions:i={},markdownOptions:s={},handlerOptions:n={},sanitizeTreeUrls:a=!1,internalPlugins:l=!0,singleRun:o=!0,name:d}){let u,c=(u={},d&&u[d]||u);return{plugins:c?.plugins||e,callbacks:c?.callbacks||t,nodeAdapter:c?.nodeAdapter||r,parserOptions:c?.parserOptions||i,markdownOptions:c?.markdownOptions||s,handlerOptions:c?.handlerOptions||n,sanitizeTreeUrls:c?.sanitizeTreeUrls??a,internalPlugins:c?.internalPlugins??l,singleRun:c?.singleRun??o,name:d}}constructor({plugins:e=[],callbacks:t={},nodeAdapter:r={},parserOptions:s={},markdownOptions:n={},handlerOptions:o={},sanitizeTreeUrls:d=!1,internalPlugins:u=!0,singleRun:c=!0,name:p}={}){let h=this.resolveOptions({plugins:e,callbacks:t,nodeAdapter:r,parserOptions:s,markdownOptions:n,handlerOptions:o,sanitizeTreeUrls:d,internalPlugins:u,singleRun:c,name:p}),m=[...h.internalPlugins?a:[],...h.markdownOptions.embedInHtml?[l]:[],...h.plugins];this.loader=new i.Rg(m),this.callbacks=h.callbacks,this.nodeAdapter=h.nodeAdapter,this.parserOptions=h.parserOptions,this.markdownOptions=h.markdownOptions,this.handlerOptions=h.handlerOptions,this.sanitizeTreeUrls=h.sanitizeTreeUrls,this.prepared={},this.preparedTraverse={},this.traverseHandlers={},this.singleRun=h.singleRun,this.name=h.name}async prepare(e){let t=this.prepared[e];if(t)return t;let r=this.prepareParse();this.prepared[e]=r;try{let t=await r;return this.prepared[e]=t,t}catch(t){throw delete this.prepared[e],t}}async prepareParse(){this.callbacks[i.ZG.parser]=await this.loader.process(i.ZG.parser,{format:i.hR.html});let{BonsaiParser:e}=await Promise.all([r.e(67748),r.e(4462)]).then(r.bind(r,4462));return e}async prepareParseMarkdown(){let e=this.preparedMarkdownParse;if(e)return e;let t=(async()=>{this.markdownCallbacks=await this.loader.process(i.ZG.parser,{format:i.hR.markdown});let{MarkdownParser:e}=await Promise.all([r.e(37254),r.e(75174)]).then(r.bind(r,52304));return e})();this.preparedMarkdownParse=t;try{let e=await t;return this.preparedMarkdownParse=e,e}catch(e){throw this.preparedMarkdownParse=void 0,e}}async prepareTraverse(e=i.hR.html){let t=String(e),s=this.preparedTraverse[t];if(s)return s;let n=(async()=>{let t=await this.loader.process(i.ZG.traverse,{format:e});e===i.hR.html&&(this.callbacks[i.ZG.traverse]=t);let{rebuild:s}=await Promise.resolve().then(r.bind(r,62654));return{callbacks:t,rebuild:s}})();this.preparedTraverse[t]=n;try{let e=await n;return this.preparedTraverse[t]=e,e}catch(e){throw delete this.preparedTraverse[t],e}}static async parseDOM(e,t){let{HTMLParser:i,DomHandler:s}=await Promise.all([r.e(67748),r.e(4462)]).then(r.bind(r,4462)),n=new s(void 0,t);return new i(n,t).end(e),n.root.children}async parse(e,t,r){let s=await this.prepare(i.ZG.parser),n,a=()=>new s(this.callbacks[i.ZG.parser],{parserOptions:this.parserOptions,handlerOptions:this.handlerOptions,nodeAdapter:this.nodeAdapter,state:r,format:i.hR.html,sanitizeTreeUrls:this.sanitizeTreeUrls,markdownOptions:this.markdownOptions,getMarkdownCallbacks:()=>this.prepareParseMarkdown().then(()=>this.markdownCallbacks??{})});this.singleRun?(this.parser||=a(),(n=this.parser).nodeHandler.setState(r)):n=a();let l=await n.parse(e,t);return this.singleRun&&(this.dom=l),l}async parseMarkdown(e,t,r){let s=await this.prepareParseMarkdown(),n,a=()=>new s(this.markdownCallbacks??{}
15,{handlerOptions:this.handlerOptions,nodeAdapter:this.nodeAdapter,state:r,format:i.hR.markdown,markdownOptions:this.markdownOptions,sanitizeTreeUrls:this.sanitizeTreeUrls});this.singleRun?(this.markdownParser||=a(),(n=this.markdownParser).nodeHandler.setState(r)):n=a();let l=await n.parse(e,t);return this.singleRun&&(this.dom=l),l}async createMarkdownStream(e,t){let r=(await this.prepareParseMarkdown()).createStream(this.markdownCallbacks??{},{handlerOptions:this.handlerOptions,nodeAdapter:this.nodeAdapter,state:t,format:i.hR.markdown,markdownOptions:this.markdownOptions,sanitizeTreeUrls:this.sanitizeTreeUrls},e);if(!this.singleRun)return r;let s=e=>(this.dom=e.dom,e);return{get nodeHandler(){return r.nodeHandler},write:async e=>s(await r.write(e)),end:async e=>s(await r.end(e)),abort:()=>r.abort()}}async *parseMarkdownStream(e,t,r){let i=await this.createMarkdownStream(t,r);try{for await(let t of e)yield await i.write(t);yield await i.end()}finally{i.abort()}}async getRenderCallbacks({format:e=i.hR.html,renderer:t=i.vy.react}={}){let r=await this.loader.process(i.ZG.render,{format:e,renderer:t});return e===i.hR.html&&t===i.vy.react&&(this.callbacks[i.ZG.render]=r),r}async traverse(e,t,a,l){let o,{rebuild:d}=await Promise.resolve().then(r.bind(r,62654)),u=d(e,l),c=(o=u?.format)===i.hR.html||o===i.hR.markdown?o:i.hR.html,{callbacks:p}=await this.prepareTraverse(c),{adapter:h={}}=u,m,g=()=>new s.ZT(p,{...this.handlerOptions,nodeAdapter:h,state:a,format:c});if(this.singleRun){let e=String(c);this.traverseHandlers[e]||(this.traverseHandlers[e]=g()),m=this.traverseHandlers[e],this.nodeHandler=m,m.setState(a),m.setNodeAdapter(h)}else m=g();m.setContext(t||{});try{await m.handleNodes(u.children),await m.processRegistry(),this.sanitizeTreeUrls&&(0,n.QR)(u,h);let{state:e}=m;return Object.defineProperty(u,"state",{writable:!0,value:e}),this.singleRun&&(this.dom=u),u}finally{m.resetDocument()}}}},50956:(e,t,r)=>{"use strict";r.d(t,{ZT:()=>T,Uw:()=>O,Bz:()=>E}),(g=y||(y={})).Root="root",g.Text="text",g.Directive="directive",g.Comment="comment",g.Script="script",g.Style="style",g.Tag="tag",g.CDATA="cdata",g.Doctype="doctype",y.Root,y.Text,y.Directive,y.Comment,y.Script,y.Style,y.Tag,y.CDATA,y.Doctype;class i{parent=null;prev=null;next=null;startIndex=null;endIndex=null;get parentNode(){return this.parent}set parentNode(e){this.parent=e}get previousSibling(){return this.prev}set previousSibling(e){this.prev=e}get nextSibling(){return this.next}set nextSibling(e){this.next=e}cloneNode(e=!1){return h(this,e)}}class s extends i{data;constructor(e){super(),this.data=e}get nodeValue(){return this.data}set nodeValue(e){this.data=e}}class n extends s{type=y.Text;get nodeType(){return 3}}class a extends s{type=y.Comment;get nodeType(){return 8}}class l extends s{type=y.Directive;name;constructor(e,t){super(t),this.name=e}get nodeType(){return 1}"x-name";"x-publicId";"x-systemId"}class o extends i{children;constructor(e){super(),this.children=e}get firstChild(){return this.children[0]??null}get lastChild(){return this.children.length>0?this.children[this.children.length-1]:null}get childNodes(){return this.children}set childNodes(e){this.children=e}}class d extends o{type=y.CDATA;get nodeType(){return 4}}class u extends o{type=y.Root;get nodeType(){return 9}}class c extends o{name;attribs;type;constructor(e,t,r=[],i="script"===e?y.Script:"style"===e?y.Style:y.Tag){super(r),this.name=e,this.attribs=t,this.type=i}get nodeType(){return 1}get tagName(){return this.name}set tagName(e){this.name=e}get attributes(){return Object.keys(this.attribs).map(e=>({name:e,value:this.attribs[e],namespace:this["x-attribsNamespace"]?.[e],prefix:this["x-attribsPrefix"]?.[e]}))}namespace;"x-attribsNamespace";"x-attribsPrefix"}function p(e){return e.type===y.Comment}function h(e,t=!1){let r;if(e.type===y.Text)r=new n(e.data);else if(p(e))r=new a(e.data);else if(e.type===y.Tag||e.type===y.Script||e.type===y.Style){let i=t?m(e.children):[],s=new c(e.name,{...e.attribs},i);for(let e of i)e.parent=s;null!=e.namespace&&(s.namespace=e.namespace),e["x-attribsNamespace"]&&(s["x-attribsNamespace"]={...e["x-attribsNamespace"]}),e["x-attribsPrefix"]&&(s["x-attribsPrefix"]={...e["x-attribsPrefix"]}),r=s}else if(e.type===y.CDATA){let i=t?m(e.children):[],s=new d(i);for(let e of i)e.parent=s;r=s}else if(e.type===y.Root){let i=t?m(e.children):[],s=new u(i);for(let e of i)e.parent=s;e["x-mode"]&&(s["x-mode"]=e["x-mode"]),r=s}else if(e.type===y.Directive){let t=new l(e.name,e.data);null!=e["x-name"]&&(t["x-name"]=e["x-name"],t["x-publicId"]=e["x-publicId"],t["x-systemId"]=e["x-systemId"]),r=t}else throw Error(`Not implemented yet: ${e.type}`);return r.startIndex=e.startIndex,r.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(r.sourceCodeLocation=e.sourceCodeLocation),r}function m(e){let t=e.map(e=>h(e,!0));for(let e=1;e<t.length;e++)t[e].prev=t[e-1],t[e-1].next=t[e];return t}var g,y,f=r(85102);let v=r.n(f)()("@media-platforms/bonsai-collector"),{error:b}=console;var w=class extends Map{ids;#e=new Set;async processQueries(e={}){let t=[];this.forEach((r,i)=>{if(i&&"AsyncFunction"===i.constructor.name){let s=r.filter(e=>!e?.controller?.signal?.aborted);return t.push(i(s,e))}let s=Promise.resolve();return r.forEach(t=>{s=s.then(()=>i?.controller?.signal?.aborted?Promise.resolve():t(i,e).then((t={})=>e.addNodeData(i,t)))}),t.push(s)}),this.ids&&this.ids.length&&(this.ids=[],this.#e.clear()),await Promise.allSettled(t).then(e=>{let t=Array.from(this.entries());e.forEach((e,r)=>{if("rejected"===e.status){let i=t[r],s=" from a plugin";if(i){let[e,t]=i;if(e&&e.constructor?.name==="AsyncFunction"){let e=t?.[0]?.controller?.callback;e?.src&&(s=` (from plugin: ${e.src})`)}else{let t=e?.controller?.callback;
15t?.src&&(s=` (from plugin: ${t.src})`)}}b(`Async query${s} caused an error`,e.reason)}})}).catch(e=>{v("Error processing queries",e)})}registerAsync=(e,t)=>{if("AsyncFunction"!==t.constructor.name){let e=`
16
17"registerAsync" only accepts an async function as a callback.
18
19`;throw b(e),Error(e)}let r=this.get(e);r?r.push(t):this.set(e,[t])};registerAsyncAll=(e,t)=>{if("AsyncFunction"!==t.constructor.name){let e=`
20
21"registerAsyncAll" only accepts an async function as a callback.
22
23`;throw b(e),Error(e)}let r=this.get(t);if(!r){this.ids?!this.ids.length&&this.#e.size&&this.#e.clear():(this.ids=[],this.#e.clear());let{controller:t}=e,r=t?.callback??{};if(r.id){if(this.#e.has(r.id)){let e=`
24
25"registerAsyncAll"${r.src?` (from plugin: ${r.src})`:" from a plugin"} already registered a method for this callback.
26	The method has to be same for every call
27
28`;throw b(e),Error(e)}this.ids.push(r.id),this.#e.add(r.id)}}r?r.push(e):this.set(t,[e])}};function k(e){return"object"==typeof e&&!!e&&!Array.isArray(e)}let{warn:P}=console;var S=class{callback;fingerprint;previousFingerprint;fingerprintHistory;lineage;signal;constructor(){this.signal={aborted:!1,node:null,replacement:null}}setCallback(e){this.callback=e}abort(e=null){this.signal.aborted||(this.signal.node=e,this.signal.aborted=!0)}createFingerprintHistory(e=[]){return this.fingerprintHistory=e,this.fingerprintHistory}createLineage(e=[]){return this.lineage=e,this.lineage}clear(){delete this.signal.node,this.fingerprintHistory=null}fingerprintNode(e){return JSON.stringify(function e(t){return k(t)||Array.isArray(t)?Array.isArray(t)?t.map(t=>Array.isArray(t)||k(t)?e(t):t):Object.keys(t).sort().map(r=>[r,e(t[r])]):t}(this.toFingerprintNode(e)))}toFingerprintNode(e){let t={type:e.type,name:e.name,tagName:e.tagName,data:e.data,attribs:e.attribs,properties:e.properties,_data:e._data};return e.children?.length&&(t.children=e.children.map(e=>this.toFingerprintNode(e))),t}compareFingerprints(e,t){return this.fingerprint&&e===this.fingerprint?(P("This is the same node"),!1):t.includes(e)?(P("New node is in history"),!1):(t.push(e),!0)}compareNodeFingerprint(e,t){let r=this.fingerprintHistory||this.createFingerprintHistory();this.previousFingerprint&&(r.push(this.previousFingerprint),delete this.previousFingerprint),this.fingerprint=this.fingerprintNode(e);let i=this.fingerprintNode(t);return this.compareFingerprints(i,r)}};let A=["parent","prev","next","state","adapter"];function E(e,t={}){let r={};return Object.entries(e).forEach(([e,i])=>{let s=t[e]??e;!1!==s&&(A.includes(e)?Object.defineProperty(r,s,{writable:!0,configurable:!0,value:i}):r[s]=i,s!==e&&Object.defineProperty(r,e,{writable:!0,configurable:!0,value:r[s]}))}),r}var O=class extends Map{setIfMissing(e,t,r={}){if(this.has(e))return this.get(e);let{process:i=!1}=r,s=i&&"function"==typeof t?t(...Array.isArray(i)?i:[]):t;return this.set(e,s),s}deleteKeys(e=[]){e.forEach(e=>this.delete(e))}};let{error:x}=console;function R(e){return Object.defineProperty(e,"controller",{value:new S}),e}function N(e){return!!e&&"function"==typeof e.then}function C(e,t){let r=e.src?` (from plugin: ${e.src})`:" from a plugin";x(`Callback "${e.key}"${r} caused an error`,t)}var T=class{registry;callbackRegistry;callbacks;callbackOptions;format;collector;detachedCallbacks;boundAsyncAllQueries;state;parser;nodeAdapter;maxRegistryPasses;maxDerivedNodeDepth;constructor(e,{nodeAdapter:t={},state:r=new Map,parser:i=null,maxRegistryPasses:s=100,maxDerivedNodeDepth:l=100,format:o}={}){let d=r instanceof O?r:new O([...r]);this.state=d,this.parser=i,this.format=o,this.registry=new Set,this.callbackRegistry=new Map,this.callbacks=e,this.nodeAdapter=t,this.maxRegistryPasses=s,this.maxDerivedNodeDepth=l,this.collector=new w,this.detachedCallbacks=new WeakSet,this.boundAsyncAllQueries=new WeakMap;let{registerAsync:u,registerAsyncAll:h}=this.collector;this.callbackOptions={registerAsync:u,registerAsyncAll:h,createElement:(e,t,r)=>{let i=new c(e,t||void 0,r||void 0),s=E(i,this.nodeAdapter);return Array.isArray(s.children)||Object.defineProperty(s,"children",{writable:!0,enumerable:!1,
28configurable:!0,value:i.children}),s},createDataElement:(e,t)=>{let r="comment"===e?new a(t):new n(t);return E(p(r)?r:new n(t),this.nodeAdapter)},addNodeData:(e,t)=>(e._data=e._data?{...e._data,...t}:t,e._data),detachCallback:e=>{let{callback:t}=e.controller;this.detachedCallbacks.add(t)},state:d,parser:i,format:o,options:{}}}getCallbackOptions(e){let t=e?.options??{},r=this.format??this.callbackOptions.format,i=e??this.callbackOptions;return{...this.callbackOptions,format:r,options:t,registerAsync:(e,i)=>{this.collector.registerAsync(e,async(e,s)=>i(e,{...s,format:r,options:t}))},registerAsyncAll:(e,s)=>{let n=this.boundAsyncAllQueries.get(i);n||(n=new WeakMap,this.boundAsyncAllQueries.set(i,n));let a=n.get(s);a||(a=async(e,i)=>s(e,{...i,format:r,options:t}),n.set(s,a)),this.collector.registerAsyncAll(e,a)}}}reset(){this.registry.clear()}resetDocument(){this.reset(),this.callbackRegistry.clear(),this.collector.clear()}onend(){let e=this.callbacks.onend;e&&e.forEach(e=>{e(this.getCallbackOptions(e),e)})}setContext(e={}){this.callbackOptions.context=e}setStreamContext(e){this.callbackOptions.stream=e}setState(e=new Map){let t=e instanceof O?e:new O([...e]);this.state=t,this.callbackOptions.state=t}setNodeAdapter(e={}){this.nodeAdapter=e}handleNode(e,t){let r=this.filterCachedCallbacks(e),i=e.controller?e:R(e);if(r)return this.invokeCallbacks({callbacks:r,node:i,shouldAwait:t})}handleNodes(e,t=null,r=0){let i=!1,s=e=>{t&&t(e),i=e};for(let n=r;n<e.length;n++){let r=e[n];if(r.children&&r.children.length){let a=this.handleNodes(r.children,s);if(i)return i=!1,Promise.resolve(a).then(()=>{let a=this.handleNode(r,s);if(i)return i=!1,Promise.resolve(a).then(()=>this.handleNodes(e,t,n+1)).then(()=>e);let l=this.handleNodes(e,t,n+1);return N(l)?l.then(()=>e):e});let l=this.handleNode(r,s);if(i)return i=!1,Promise.resolve(l).then(()=>this.handleNodes(e,t,n+1)).then(()=>e)}else{let a=this.handleNode(r,s);if(i)return i=!1,Promise.resolve(a).then(()=>this.handleNodes(e,t,n+1)).then(()=>e)}}return e}filterCachedCallbacks(e){let t=this.callbacks[e[this.nodeAdapter.name||"name"]],r=this.callbacks[e[this.nodeAdapter.type||"type"]];return t?r?{primary:t,secondary:r}:{primary:t}:r?{primary:r}:void 0}invokeCallbacks({callbacks:e,node:t,shouldAwait:r}){let{controller:i}=t,s=Array.isArray(e)?{primary:e}:e,n=()=>{if(!i.signal.node)return;let e=i.signal.node,s=e.controller?e:R(i.signal.node),{controller:n}=s,{callback:a}=t.controller,l=i.lineage?[...i.lineage]:[];if(null!=a.id&&l.push({id:a.id,key:a.key,src:a.src}),l.length>this.maxDerivedNodeDepth){let e=a.src?` (from plugin: ${a.src})`:" from a plugin";return"function"==typeof r&&r(!0),Promise.reject(Error(`Callback "${a.key}"${e} exceeded maxDerivedNodeDepth (${this.maxDerivedNodeDepth}). Lineage: ${l.map(({key:e,src:t})=>`${e||"unknown"}${t?`(${t})`:""}`).join(" -> ")}.`))}n.createLineage(l);let o=function e(t,r,i=[]){return(t.type===r||t.name===r)&&i.push(t),t.children&&t.children.length&&t.children.forEach(t=>{e(t,r,i)}),i}(s,a.key);if(o.length){let e=this.callbackRegistry.get(a.id);e||(e=new Set,this.callbackRegistry.set(a.id,e)),o.forEach(t=>e.add(t))}i.fingerprintHistory?n.fingerprintHistory=i.fingerprintHistory:(n.createFingerprintHistory(),n.previousFingerprint=n.fingerprintNode(t)),i.clear(),i.signal.replacement=s,this.registry.add(s)},a=e=>{let{primary:t,secondary:r}=s;return e<t.length?t[e]:r[e-t.length]},l=s.primary.length+(s.secondary?.length||0),o=(e=0)=>{for(let s=e;s<l;s++){let e=a(s);if(!this.detachedCallbacks.has(e)){i.setCallback(e);try{if(this.parser||i.fingerprintHistory||i.createFingerprintHistory(),function(e,t,r,i){if(null==t.id||!r?.length)return!1;let s=e[i.name||"name"],n=e[i.type||"type"];return r.some(({id:e,key:r})=>e===t.id&&(!r||r===s||r===n))}(t,e,i.lineage,this.nodeAdapter))continue;let a=this.callbackRegistry.get(e.id);if(a?.has(t))continue;a?a.add(t):this.callbackRegistry.set(e.id,new Set([t]));let l=e(t,this.getCallbackOptions(e));if(N(l))return"function"==typeof r&&r(!0),l.then(()=>i.signal.aborted?n():o(s+1),t=>(C(e,t),i.signal.aborted?n():o(s+1)))}catch(t){C(e,t)}if(i.signal.aborted)break}}return n()};return o()}async processRegistry(e=0){let t=e;for(;this.registry.size||this.collector.size;){if(t>=this.maxRegistryPasses)throw Error(`NodeHandler exceeded maxRegistryPasses (${this.maxRegistryPasses}). Pending nodes: ${this.registry.size}. Pending async collectors: ${this.collector.size}.`);let e=Array.from(this.registry.keys());this.reset(),e.length&&await this.handleNodes(e),this.collector.size&&(await this.collector.processQueries(this.callbackOptions),this.collector.clear()),t++}return this.onend()}}},53133:()=>{},55837:(e,t,r)=>{"use strict";r.d(t,{a:()=>l,b:()=>o,c:()=>d,d:()=>u,e:()=>c,f:()=>p,g:()=>h,h:()=>m,j:()=>g,l:()=>y,p:()=>f,q:()=>v,r:()=>b,s:()=>w,t:()=>k,u:()=>P,v:()=>S,w:()=>A,x:()=>E,y:()=>O});var i=r(75602);r(71055);var s={xxs:[20,30],xs:[30,40.625],sm:[40.625,48],smd:[61.25,61.25],md:[48,64],lg:[64,73.75],xlg:[73.75,75],xxlg:[75,90],xxxlg:[90,100],xxxxlg:[100]};!function(e=s,t="sm"){let r=Object.keys(e),i=r.indexOf(t);i>=0&&r.slice(0,i)}();var n=Object.freeze([]);function a(e){return e.video?.markers?e.video.markers:e.playlist?.videos[e.currentPlaylistIndex]?.markers??n}function l(){return(0,i.a)(e=>e.isPlaying)}function o(){return(0,i.a)(e=>e.isPaused)}function d(){return(0,i.a)(e=>e.hasStartedPlaying)}function u(){return(0,i.a)(e=>e.isBuffering)}function c(){return(0,i.a)(e=>e.isMuted)}function p(){return(0,i.a)(e=>e.volume)}function h(){return(0,i.a)(e=>e.currentTime)}function m(){return(0,i.a)(e=>e.duration)}function g(){return(0,i.a)(e=>e.error)}function y(){return(0,i.a)(e=>e.isLivestream)}function f(){return(0,i.a)(e=>e.player)}function v(){return(0,i.a)(e=>e.isPlayerInitialized)}function b(){return(0,i.a)(e=>e.video)}function w(){return(0,i.a)(e=>e.playlist)}function k(){return(0,i.a)(e=>e.currentPlaylistIndex)}function P(){return(0,i.a)(e=>e.videoLoading)}function S(){return(0,i.a)(e=>e.videoError)}function A(){return(0,i.a)(e=>e.autoplay)}function E(){return(0,i.a)(a)}function O(){return(0,i.a)(e=>e.actions)}},57038:(e,t,r)=>{"use strict";let i,s,n,a,l;r.d(t,{A:()=>R});var o=r(94602),d=r(19939),u=r(71055),c=r(58898),p=r(7751),h=e=>crypto.getRandomValues(new Uint8Array(e)),m=((e,t=21)=>((e,t,r)=>{let i=256-256%e.length;if(256===i){let i=e.length-1;return (s=t)=>{if(!s)return"";let n="";for(;;){let t=r(s),a=s;for(;a--;)if((n+=e[t[a]&i]).length>=s)return n}}}let s=Math.ceil(409.6*t/i);return (n=t)=>{if(!n)return"";let a="";for(;;){let t=r(s),l=s;for(;l--;)if(t[l]<i&&(a+=e[t[l]%e.length]).length>=n)return a}}})(e,0|t,h))("1234567890abcdefghijklmnopqrstuvwxyz",10),g=class{constructor(e){(0,d.a)(this,"eventCallbacks"),(0,d.a)(this,"logger"),this.eventCallbacks={},this.logger=e}on(e,t){let r=m(),i=`${e}${o.g}${r}`;return e in this.eventCallbacks?this.eventCallbacks[e][r]=t:this.eventCallbacks[e]={[r]:t},i}one(e,t){let r=this.on(e,e=>{r&&this.unsubscribe(r),t(e)});return r}emit(e,t){return this.logger&&"timeupdate"!==e&&this.logger.log(e,t||{}),e in this.eventCallbacks&&(Object.values(this.eventCallbacks[e]).forEac
28h(r=>{r({type:e,timestamp:new Date().getTime(),...t||{}})}),!0)}unsubscribe(e){let t,r=-1!==(t=e.lastIndexOf(o.g))&&{eventName:e.substring(0,t),callbackKey:e.substring(t+1)};if(!1===r)return!1;let{eventName:i,callbackKey:s}=r;return!!this.eventCallbacks[i]&&s in this.eventCallbacks[i]&&(delete this.eventCallbacks[i][s],!0)}getEventsSubscribedTo(){return Object.keys(this.eventCallbacks).filter(e=>Object.keys(this.eventCallbacks[e]).length>0)}getSubscriptionIds(e){return e in this.eventCallbacks?Object.keys(this.eventCallbacks[e]).map(t=>`${e}|${t}`):[]}unsubscribeFromAll(){this.eventCallbacks={}}},y={player:null,isPlayerInitialized:!1,isPlaying:!1,isPaused:!0,hasStartedPlaying:!1,isBuffering:!1,isMuted:!0,volume:1,currentTime:0,duration:0,isFullscreen:!1,error:null,isLivestream:!1,isLivestreamLocked:!1,aspectRatio:o.j,breakpoints:o.k,autoplay:!1,video:null,playlist:null,currentPlaylistIndex:0,videoLoading:!0,videoError:null},f=(e={})=>{var t;let r,i,s,n,a,l,o;return t=(r=(t,r)=>({...y,...e,actions:{_syncState:e=>t(e),_setPlayerInitialized:e=>t({isPlayerInitialized:e}),_setVideoData:({video:e,playlist:i})=>{t({video:void 0!==e?e:r().video,playlist:void 0!==i?i:r().playlist})},_appendToPlaylist:e=>{let i=r().playlist;i&&t({playlist:{...i,videos:[...i.videos,...e]}})},_setVideoLoading:e=>t({videoLoading:e}),_setVideoError:e=>t({videoError:e}),_setCurrentPlaylistIndex:e=>t({currentPlaylistIndex:e})}}),(e,t,i)=>{let s=i.subscribe;return i.subscribe=(e,t,r)=>{let n=e;if(t){let s=r?.equalityFn||Object.is,a=e(i.getState());n=r=>{let i=e(r);if(!s(a,i)){let e=a;t(a=i,e)}},r?.fireImmediately&&t(a,a)}return s(n)},r(e,t)}),s=new Set,l={setState:n=(e,t)=>{let r="function"==typeof e?e(i):e;if(!Object.is(r,i)){let e=i;i=t??("object"!=typeof r||null===r)?r:Object.assign({},i,r),s.forEach(t=>t(i,e))}},getState:a=()=>i,getInitialState:()=>o,subscribe:e=>(s.add(e),()=>s.delete(e))},o=i=t(n,a,l),l},v=class{constructor({logger:e=null,levels:t=["error","warn"]}={}){(0,d.a)(this,"logger"),(0,d.a)(this,"_levels"),this.logger=e,this._levels=t}get levels(){return this._levels}isLogAllLevel(){return this.levels.includes("log")||this.levels.includes("*")}checkLevel(e){return!!(this.levels?.includes(e)||this.levels?.includes("*"))}process(e,...t){if(this.logger)try{this.logger[e](...t)}catch(e){console.warn("This custom logger call is not supported",...t,e)}else this.checkLevel(e)&&console[e](...t)}log(...e){this.process("log",...e)}info(...e){this.process("info",...e)}warn(...e){this.process("warn",...e)}error(...e){this.process("error",...e)}},b=class{constructor(e){(0,d.a)(this,"enabled"),(0,d.a)(this,"subscriptions"),(0,d.a)(this,"eventEmitter"),(0,d.a)(this,"_queue"),this.subscriptions=new Set,this.eventEmitter=e,this.enabled=!0,this._queue=[]}get isEnabled(){return this.enabled}get queue(){return this._queue}enqueue(e){this._queue.push(e)}disable(){this.enabled=!1,this.subscriptions.forEach(e=>{this.eventEmitter.unsubscribe(e),this.subscriptions.delete(e)})}flush(){this._queue=[]}subscribe(e){if(!this.enabled)return!1;let t=this.eventEmitter.on(e,e=>this.enqueue(e));return t&&this.subscriptions.add(t),!0}},w=((i=w||{}).CHROME="Chrome",i.CHROMIUM="Chromium",i.SAFARI="Safari",i.EDGE="Edge",i.FIREFOX="Firefox",i),k="",P=((s=P||{}).MP4="video/mp4",s.AVI="video/avi",s.OGG="video/ogg",s.M3U8="m3u8",s.WEBM="video/webm",s.MOV="video/quicktime",s.WMV="video/x-ms-wmv",s.MPEG="video/mpeg",s),S=class e{constructor(t,r){(0,d.a)(this,"_uuid"),(0,d.a)(this,"_settings"),(0,d.a)(this,"_provider"),(0,d.a)(this,"events"),(0,d.a)(this,"eventQueue"),(0,d.a)(this,"element"),(0,d.a)(this,"logger"),(0,d.a)(this,"_videoWrapper"),(0,d.a)(this,"_plugins"),(0,d.a)(this,"_autoplaySubscriptionId"),(0,d.a)(this,"store"),(0,d.a)(this,"_cleanupStoreSync"),(0,d.a)(this,"_cleanupStoreSubscription"),(0,d.a)(this,"_isAppendingToPlaylist",!1),e.setVersion(),this.logger=new v(r?.loggerSettings),this._uuid=`video-player-${m()}`,this._plugins=new Map,this.element=t,this.element.id=this._uuid,this.element.classList.add("player"),this._settings={...o.i,...r},this._provider=this.settings.provider;let i=void 0===r.muted||r.muted,s=i?0:r.volume??1;t.muted=i,t.volume=s,this.events=new g(this.logger),this.eventQueue=new b(this.events),this._videoWrapper=r.videoWrapper??this.addWrapper(t),this._videoWrapper.classList.add("video-player-wrapper");let n={player:this,isMuted:i,volume:s,aspectRatio:r.aspectRatio||o.j,breakpoints:r.breakpoints??o.k};r.store?(this.store=r.store,this.store.setState({...n,autoplay:r.autoplay??this.store.getState().autoplay})):this.store=f({...n,video:r.video??null,playlist:r.playlist??null,autoplay:r.autoplay??!1}),this._cleanupStoreSync=function(e,t,r){let i=t.getState().actions._syncState,s=()=>{i({isPlaying:!0,isPaused:!1,hasStartedPlaying:!0})},n=()=>{i({isPlaying:!1,isPaused:!0})},a=()=>{i({currentTime:e.currentTime})},l=()=>{let r=e.duration||0,s=e.seekable,n=t.getState();if(n.isLivestreamLocked)return void i({duration:r});let a=n.isLivestream||r===1/0||s.length>0&&s.start(0)>1;i({duration:r,isLivestream:a})},o=()=>{i({volume:e.volume,isMuted:e.muted})},d=()=>{i({isBuffering:!0})},u=()=>{i({isBuffering:!1})},c=()=>{let t=e.error;i({error:t?Error(t.message):null})},p=()=>{i({isFullscreen:document.fullscreenElement===r})},h=t.subscribe((e,t)=>{e.isLivestream!==t.isLivestream&&(e.isLivestream?r.classList.add("livestream"):r.classList.remove("livestream"))});return e.addEventListener("play",s),e.addEventListener("pause",n),e.addEventListener("timeupdate",a),e.addEventListener("durationchange",l),e.addEventListener("loadedmetadata",l),e.addEventListener("volumechange",o),e.addEventListener("waiting",d),e.addEventListener("canplay",u),e.addEventListener("error",c),document.addEventListener("fullscreenchange",p),()=>{h(),e.removeEventListener("play",s),e.removeEventListener("pause",n),e.removeEventListener("timeupdate",a),e.removeEventListener("durationchange",l),e.removeEventListener("loadedmetadata",l),e.removeEventListener("volumechange",o),e.removeEventListener("waiting",d),e.removeEventListener("canplay",u),e.removeEventListener("error",c),document.removeEventListener("fullscreenchange",p)}}(this.element,this.store,this._videoWrapper)}static setVersion(){"u">typeof window&&window.videoPlayerManager&&window.videoPlayerManager.setVersion("VideoPlayer",e.VERSION)}static getBrowser(){return function(){if("u">typeof window&&""===k){let e=window?.navigator?.userAgent||"",t=/Firefox/i.test(e),r=/Edg/i.test(e),i=/Chromium/i.test(e),s=/Chrome/i.test(e)&&!r&&!i,n=/Safari/i.test(e)&&!s&&!i;if(t)return k="Firefox","Firefox";if(r)return k="Edge","Edge";if(i)return k="Chromium","Chromium";if(s)return k="Chrome","Chrome";if(n)return k="Safari","Safari"}return k}()}get videoWrapper(){return this._videoWrapper}get uuid(){return this._uuid}get settings(){return this._settings}set settings(e){void 0!==e.muted&&(this.element.muted=e.muted),void 0!==e.volume&&(this.element.volume=e.volume),(void 0!==e.video||void 0!==e.playlist)&&(void 0!==e.video&&this.store.setState({video:e.video}),void 0!==e.playlist&&this.store.setState({playlist:e.playlist}
28)),void 0!==e.autoplay&&this.store.setState({autoplay:e.autoplay}),this.logger.warn("[Deprecated] Mutating player.settings after construction is deprecated. This will be split into an initial config object and the rest will be managed by the store. Use player.store.getState() to access the live state.");let{video:t,playlist:r,muted:i,volume:s,...n}=e;this._settings={...this._settings,...n}}set provider(e){this._provider=e}get provider(){return this._provider||this._settings.provider}get plugins(){return this._plugins}registerPlugin(e,t){this._plugins.set(e,t)}async play(){this.provider?await this.provider.play():await this.element.play()}async togglePlay(){this.isPaused()?await this.play():this.pause()}pause(){this.provider?this.provider.pause():this.element.pause()}isPaused(){return this.element.paused}duration(){return this.element.duration}currentTime(){return this.element.currentTime}setCurrentTime(e){this.element.currentTime=e}getCurrentVideo(){return this.provider?.getCurrentVideo()}unmute(e){"number"==typeof e?this.setVolume(e):this.setVolume(1),this.element.muted=!1}mute(){this.setVolume(0),this.element.muted=!0}isMuted(){return this.element.muted||0===this.element.volume}volume(){return"number"!=typeof this.element.volume?+!this.isMuted():this.element.volume}setVolume(e){this.element.volume=e}autoplay(e=!1){if(this._autoplaySubscriptionId&&(this.events.unsubscribe(this._autoplaySubscriptionId),this._autoplaySubscriptionId=void 0),!0===e)this.element.autoplay=!0;else if("any"===e){let e=this.events.on("loadstart",()=>{this.element.play().catch(()=>(this.element.muted=!0,this.play())).catch(e=>{this.logger.warn("Autoplay failed after retrying with muted playback",e)})});e&&(this._autoplaySubscriptionId=e)}else this.element.removeAttribute("autoplay");this.store.setState({autoplay:e})}aspectRatio(e){if(e){/^\d+:\d+$/.test(e)||(e=o.j);let[t,r]=e.split(":");if(t&&r){let[i,s]=this.store.getState().aspectRatio.split(":");this.videoWrapper.classList.remove(`aspect-ratio-${i}-${s}`),this.videoWrapper.classList.add(`aspect-ratio-${t}-${r}`),this.store.setState({aspectRatio:e})}}return this.store.getState().aspectRatio}addWrapper(e){let t=document.createElement("div");return e.parentNode?.insertBefore(t,e),t.appendChild(e),t}setupStoreSubscription(){let e=this.store.subscribe(e=>e.video?.id??null,e=>{let t=this.store.getState().video;null!==e&&null!==t&&this.setVideo(t)}),t=this.store.subscribe(e=>e.playlist?.id??null,e=>{let t=this.store.getState().playlist;null===e||null===t||this._isAppendingToPlaylist||this.setPlaylist(t)});this._cleanupStoreSubscription=()=>{e(),t()}}setupEvents(){let e=this.settings.events?.customEvents||[];new Set([...o.h,...e]).forEach(e=>{this.element.addEventListener(e,()=>{this.events.emit(e)})})}handleProviderSetupError(e){let t=e instanceof Error?e:Error(String(e));this.logger.error("Video player provider setup failed",t),this.events.emit("error",{error:t,isFatal:!0})}initPlayer(){this.element?.parentElement?.setAttribute("aria-label","Video Player"),this.setupEvents(),this.autoplay(this.store.getState().autoplay),this.aspectRatio(this.settings.aspectRatio??this.store.getState().aspectRatio),this.element.controls=!0===this._settings.controls;try{let e=this.provider?.setup(this);Promise.resolve(e).catch(e=>{this.handleProviderSetupError(e)})}catch(e){this.handleProviderSetupError(e)}this.setupStoreSubscription()}on(e,t){return this.events.on(e,t)}unsubscribe(e){return this.events.unsubscribe(e)}destroy(){this._autoplaySubscriptionId&&(this.events.unsubscribe(this._autoplaySubscriptionId),this._autoplaySubscriptionId=void 0),this._cleanupStoreSync?.(),this._cleanupStoreSubscription?.(),this?.provider?.destroy()}setSrc(e){let t,r,i,s,n,a,l,o,d=(t=e.includes(".m3u8")||e.includes(".HLS"),r=/\.(mp4|m4a|m4p|m4b|m4r|m4v)$/i.test(e),i=/\.avi$/i.test(e),s=/\.(ogg|ogv)$/i.test(e),n=/\.webm$/i.test(e),a=/\.(mov|qt)$/i.test(e),l=/\.wmv$/i.test(e),o=/\.(mpeg|mpg)$/i.test(e),{id:e,sources:[{src:e,type:(t?"m3u8":r?"video/mp4":i?"video/avi":s?"video/ogg":n?"video/webm":a?"video/quicktime":l?"video/x-ms-wmv":o?"video/mpeg":null)||"video/mp4",displayName:"Default"}]});"function"==typeof this.provider?.setVideo?this.setVideo(d):(this.element.setAttribute("src",e),this.store.setState({video:d}))}setVideo(e){let t=void 0!==e.isLivestream;this.store.setState({video:e,isLivestream:e.isLivestream??!1,isLivestreamLocked:t}),"function"==typeof this.provider?.setVideo&&(this.provider.setVideo(e),this.events.emit(o.f,{video:e}))}setPlaylist(e,t=0){this.store.setState({playlist:e}),"function"==typeof this.provider?.setPlaylist&&(this.provider.setPlaylist(e,t),this.events.emit(o.f,{playlist:e}))}appendToPlaylist(e,t){this._isAppendingToPlaylist=!0,this.store.getState().actions._appendToPlaylist(e),this._isAppendingToPlaylist=!1,"function"==typeof this.provider?.appendToPlaylist&&(this.provider.appendToPlaylist(e,t),this.events.emit(o.f,{videos:e}))}setPlayerVisibility(e){this.element.style.visibility=e?"visible":"hidden"}};(0,d.a)(S,"VERSION","1.6.7");var A=((n=A||{}).LOG="log",n.INFO="info",n.WARN="warn",n.ERROR="error",n),E=((a=E||{}).ALL="*",a),O=((l=O||{}).NewInstance="newInstance",l),x=class{constructor(){(0,d.a)(this,"_instances",[]),(0,d.a)(this,"events"),(0,d.a)(this,"eventQueue"),(0,d.a)(this,"versions",{}),this.events=new g,this.eventQueue=new b(this.events),"u">typeof window&&!window[o.b]&&(window[o.b]=this,window[o.b].versions={},window.dispatchEvent(new CustomEvent(o.c,{detail:this})))}registerPlayer(e){this.instances.push(e),this.events.emit(o.e,{videoPlayer:e})}setVersion(e,t){"u">typeof window&&window[o.b]&&(window[o.b].versions[e]=t)}initPlayerElement(e,t){let r=new S(e,t);return this.registerPlayer(r),this.initPlayer(r),this.events.emit(o.d,{videoPlayer:r}),r}initPlayer(e){e.initPlayer(),this.events.emit(o.d,{videoPlayer:e})}get numberOfPlayers(){return this.instances.length}get instances(){return this._instances}};function R({wrapperClassName:e,wrapperProps:t={},controls:r,onReady:i,children:s,className:n,aspectRatio:a,video:l,playlist:d,initialPlaylistIndex:h,src:m,muted:g,autoPlay:y,poster:v,loggerSettings:b,playsInl
28ine:w=!0,...k}){let P=(0,u.useRef)(null),A=(0,u.useRef)(null),E=(0,u.useRef)(null),O=(0,u.useRef)(!1),N=g??!0,[C]=(0,u.useState)(()=>f({isMuted:N,volume:+!N,aspectRatio:a||void 0,autoplay:y??!1,video:l??null,playlist:d??null}));return(0,u.useEffect)(()=>{if(!P.current||O.current)return;O.current=!0;let e=window[o.b]??new x,t="boolean"==typeof r?r:void 0,s=new S(P.current,{videoWrapper:A.current??void 0,muted:g??!0,...void 0!==t?{controls:t}:{},autoplay:y??!1,loggerSettings:b,aspectRatio:a,video:l??void 0,playlist:d??void 0,store:C});E.current=s,e.registerPlayer(s),i?.(s)},[]),(0,u.useEffect)(()=>()=>{E.current&&(E.current.logger.warn("Destroying Player Instance:",E.current.uuid),E.current.destroy(),E.current=null)},[]),(0,u.useEffect)(()=>{void 0!==m&&E.current&&E.current.setSrc(m)},[m]),(0,u.useEffect)(()=>{let e=E.current;if(e){if(d&&d.videos?.length>0)return void e.setPlaylist(d,h??0);if(l&&"string"==typeof l.id)return void e.setVideo(l);(d||l)&&e.logger.warn("Invalid video or playlist prop",{video:l,playlist:d})}},[d,l,h]),(0,u.useEffect)(()=>{E.current&&void 0!==g&&(g?E.current.mute():E.current.unmute())},[g]),(0,u.useEffect)(()=>{E.current&&void 0!==y&&E.current.autoplay(y)},[y]),(0,p.FD)("div",{ref:A,className:e,...t,children:[(0,p.Y)("video",{ref:P,className:n,muted:g,...!0===y&&{autoPlay:!0},poster:v,playsInline:w,controls:!0===r,style:{height:"100%",width:"100%"},...k}),(0,p.FD)(c.a.Provider,{value:C,children:["function"==typeof r&&E.current&&r({videoPlayer:E.current}),s]})]})}},58377:(e,t,r)=>{"use strict";let i,s;r.d(t,{Qb:()=>a}),r(83061);var n=((i=n||{}).LOG="log",i.INFO="info",i.WARN="warn",i.ERROR="error",i),a=((s=a||{}).ALL="*",s)},58898:(e,t,r)=>{"use strict";r.d(t,{a:()=>s,b:()=>n});var i=r(71055),s=(0,i.createContext)(null);function n(){let e=(0,i.useContext)(s);if(!e)throw Error("usePlayerStoreContext must be used within a VideoPlayer component");return e}},75191:(e,t,r)=>{"use strict";let i;r.d(t,{M:()=>o});var s=r(93682),n=r(71055);function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach(function(t){(0,s.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let o=e=>{let t={unsupported:i=!("u">typeof navigator&&"connection"in navigator)||!("effectiveType"in navigator.connection),effectiveConnectionType:i?e:navigator.connection.effectiveType},{0:r,1:s}=(0,n.useState)(t);return(0,n.useEffect)(()=>{if(!i){let e=navigator.connection,t=()=>{s({effectiveConnectionType:e.effectiveType})};return e.addEventListener("change",t),()=>{e.removeEventListener("change",t)}}},[]),l(l({},r),{},{setNetworkStatus:s})}},75602:(e,t,r)=>{"use strict";r.d(t,{a:()=>n});var i=r(58898),s=r(71055);function n(e){return function(e,t=e=>e){let r=s.default.useSyncExternalStore(e.subscribe,s.default.useCallback(()=>t(e.getState()),[e,t]),s.default.useCallback(()=>t(e.getInitialState()),[e,t]));return s.default.useDebugValue(r),r}((0,i.b)(),e)}},83061:(e,t,r)=>{},94602:(e,t,r)=>{"use strict";let i;r.d(t,{a:()=>s,b:()=>n,c:()=>a,d:()=>l,e:()=>o,f:()=>d,g:()=>u,h:()=>c,i:()=>p,j:()=>h,k:()=>m});var s=((i=s||{}).Abort="abort",i.CanPlay="canplay",i.CanPlayThrough="canplaythrough",i.DurationChange="durationchange",i.Emptied="emptied",i.Ended="ended",i.Error="error",i.LoadedData="loadeddata",i.LoadedMetadata="loadedmetadata",i.LoadStart="loadstart",i.Pause="pause",i.Play="play",i.Playing="playing",i.RateChange="ratechange",i.Resize="resize",i.Seeked="seeked",i.Seeking="seeking",i.Stalled="stalled",i.Suspend="suspend",i.VolumeChange="volumechange",i.Waiting="waiting",i.TimeUpdate="timeupdate",i),n="videoPlayerManager",a="videoPlayerManagerInit",l="videoPlayerInit",o="videoPlayerRegistered",d="videoPlaylistUpdated",u="|",c=Object.values(s),p={autoplay:!0,muted:!0,loop:!0},h="16:9",m={mobile:767,tablet:980}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.