File: C:/Users/fred/AppData/Local/Microsoft/OneDrive/26.168.0830.0006/WebAssets/static/views/theater.js
preloadIcons("Video24Regular","Warning24Regular","ChevronLeft20Regular","ChevronRight20Regular","Play20Regular","Pause20Regular","Speaker220Regular","SpeakerMute20Regular"),function(){"use strict";var P=ViewLib.ThemeSync,g=ViewLib.Thumbnail,S=[],m=[],c=-1;function k(e){if(!e&&e!==0)return"";var t=Math.round(e/1e3),r=Math.floor(t/3600),i=Math.floor(t%3600/60),o=t%60;return r>0?r+":"+String(i).padStart(2,"0")+":"+String(o).padStart(2,"0"):i+":"+String(o).padStart(2,"0")}function C(e){if(isNaN(e))return"0:00";e=Math.round(e);var t=Math.floor(e/3600),r=Math.floor(e%3600/60),i=e%60;return t>0?t+":"+String(r).padStart(2,"0")+":"+String(i).padStart(2,"0"):r+":"+String(i).padStart(2,"0")}function y(e,t){if(!e||!t)return"";var r=Math.max(e,t);return r>=3840?"4K":r>=1920?"1080p":r>=1280?"720p":r>=854?"480p":e+"x"+t}function E(e){return e?e.replace(/\.[^.]+$/,"").replace(/[_-]+/g," "):"Untitled Video"}function b(e){return Od4Shared.DateFormat.formatAsRecorded(e,{year:"numeric",month:"long",day:"numeric"},Od4Strings.resolveLocale())||e||""}function B(e){if(!e)return null;try{return new Date(e).getFullYear()}catch{return null}}function R(e){var t=document.createElement("div");return t.textContent=e,t.innerHTML}function _(){return ViewLib.SQL.query("SELECT mp.driveItemId AS id, mp.name, json_extract(mp.photo, '$.takenDateTime') AS date, json_extract(mp.video, '$.width') AS width, json_extract(mp.video, '$.height') AS height, json_extract(mp.video, '$.duration') AS duration, tm.id AS thumbnailId FROM media_properties mp LEFT JOIN thumbnailCache.thumbnail_metadata tm ON tm.driveItemId = mp.driveItemId WHERE mp.video IS NOT NULL AND mp.isTombstoned = 0 ORDER BY json_extract(mp.photo, '$.takenDateTime') DESC")}function O(e){var t=e.length,r=0,i={};e.forEach(function(L){L.duration&&(r+=L.duration);var F=B(L.date);F&&(i[F]=!0)});var o=Math.round(r/1e3),a=Math.floor(o/3600),d=Math.floor(o%3600/60),s=a>0?a+"h "+d+"m":d+"m",l=Object.keys(i).sort(),f=l.length>1?l[0]+"\u2013"+l[l.length-1]:l[0]||"",v=document.createElement("div");return v.className="stats-bar",v.innerHTML='<span class="accent">'+t+"</span> videos"+(r>0?' · <span class="accent">'+s+"</span> total":"")+(f?" · "+f:""),v}function H(e){var t=document.createElement("div");return t.className="hero",t.innerHTML='<div class="hero-bg-blur" style="background-image:url('+g.buildThumbnailUrl(e.thumbnailId)+')"></div><div class="hero-bg" style="background-image:url('+g.buildThumbnailUrl(e.thumbnailId)+')"></div><div class="hero-gradient"></div><div class="hero-content"><div class="hero-title">'+R(E(e.name))+'</div><div class="hero-meta">'+(e.duration?'<span class="hero-badge">'+k(e.duration)+"</span>":"")+(y(e.width,e.height)?'<span class="hero-badge">'+y(e.width,e.height)+"</span>":"")+'<span class="hero-date">'+b(e.date)+'</span></div><button class="hero-play-btn">▶ Play</button></div>',t.addEventListener("click",function(){V([e],0)}),t}function U(e){var t=document.createElement("div");t.className="video-card";var r=y(e.width,e.height);return t.innerHTML='<div class="video-card-thumb"><img src="'+g.buildThumbnailUrl(e.thumbnailId)+'" alt="" loading="lazy">'+(e.duration?'<span class="video-card-duration">'+k(e.duration)+"</span>":"")+'</div><div class="video-card-info"><div class="video-card-title">'+R(E(e.name))+'</div><div class="video-card-date">'+b(e.date)+"</div>"+(r?'<span class="video-card-res">'+r+"</span>":"")+"</div>",t}function Y(e,t){if(!t.length)return null;var r=document.createElement("div");r.className="row-section";var i=document.createElement("div");i.className="row-header",i.innerHTML=e+' <span class="row-count">('+t.length+")</span>",r.appendChild(i);var o=document.createElement("div");o.className="row-carousel";var a=document.createElement("div");a.className="row-track",t.forEach(function(l,f){var v=U(l);v.addEventListener("click",function(){V(t,f)}),a.appendChild(v)});var d=document.createElement("button");d.className="row-arrow start",ensureIcon(d,"ChevronLeft20Regular"),d.addEventListener("click",function(l){l.stopPropagation(),a.scrollBy({left:-600,behavior:"smooth"})});var s=document.createElement("button");return s.className="row-arrow end",ensureIcon(s,"ChevronRight20Regular"),s.addEventListener("click",function(l){l.stopPropagation(),a.scrollBy({left:600,behavior:"smooth"})}),o.appendChild(d),o.appendChild(a),o.appendChild(s),r.appendChild(o),r}function j(e){var t=[];t.push({title:"Recent Videos",videos:e.slice(0,20)});var r={};e.forEach(function(a){var d=B(a.date);d&&(r[d]||(r[d]=[]),r[d].push(a))}),Object.keys(r).sort(function(a,d){return d-a}).forEach(function(a){t.push({title:a,videos:r[a]})});var i=e.filter(function(a){return a.duration&&a.duration>3e5});i.length&&t.push({title:"Long Videos (> 5 min)",videos:i});var o=e.filter(function(a){return a.duration&&a.duration<3e4});return o.length&&t.push({title:"Short Clips (< 30 sec)",videos:o}),t}function $(e){var t=document.getElementById("app");if(t.innerHTML="",!e.length){var r=document.createElement("div");r.className="empty-state";var i=document.createElement("div");i.className="empty-state-icon",ensureIcon(i,"Video24Regular","icon-xl");var o=document.createElement("h2");o.textContent="No Videos Found";var a=document.createElement("p");a.textContent="Your library doesn't contain any videos yet, or they haven't been synced.",r.append(i,o,a),t.appendChild(r),window.parent!==window&&window.parent.postMessage({type:"view-ready"},"*");return}t.appendChild(O(e)),t.appendChild(H(e[Math.floor(Math.random()*e.length)]));var d=document.createElement("div");d.className="rows-container",j(e).forEach(function(s){var l=Y(s.title,s.videos);l&&d.appendChild(l)}),t.appendChild(d),window.parent!==window&&window.parent.postMessage({type:"view-ready"},"*")}var u=document.getElementById("playerOverlay"),n=document.getElementById("playerVideo"),I=document.getElementById("playerPlayBtn"),T=document.getElementById("playerSeekBar"),q=document.getElementById("playerSeekFill"),W=document.getElementById("playerTime"),M=document.getElementById("playerVolume"),w=document.getElementById("playerMuteBtn"),z=document.getElementById("playerFullscreenBtn"),G=document.getElementById("playerCloseBtn"),N=document.getElementById("playerPrev"),x=document.getElementById("playerNext"),X=document.getElementById("playerTitle"),J=document.getElementById("playerDate"),D=null;function V(e,t){m=e,c=t,h(e[t]),u.classList.add("active"),document.body.style.overflow="hidden",p()}function A(){n.pause(),n.removeAttribute("src"),n.load(),u.classList.remove("active"),u.classList.remove("controls-hidden"),document.body.style.overflow="",c=-1}function K(e){var t=e.id;if(!t)return null;if(e.videoContentDriveItemId&&(t=e.videoContentDriveItemId),typeof t=="string"&&t.indexOf("lid:")===0)return OD4_API_ORIGIN+"/SharePoint/_api/v2.1/drives/local/items/LocalId_"+t.slice(4)+"/content";var r=window.ViewLib.Ids.contentDriveId({driveId:e.driveId,driveItemId:t});if(r&&t){var i="https://my.microsoftpersonalcontent.com/personal/"+r;return OD4_API_ORIGIN+"/SharePoint/_api/v2.1/drives/"+r+"/items/"+t+"/content?siteUrl="+encodeURIComponent(i)}return null}function h(e){var t=K(e);if(!t){console.warn("Cannot build video URL for",e.id);return}n.src=t,n.load(),n.play().catch(function(){}),X.textContent=E(e.name),J.textContent=b(e.date),Q()}function Q(){N.disabled=c<=0,x.disabled=c>=m.length-1}function p(){u.classList.remove("controls-hidden"),clearTimeout(D),D=setTimeout(function(){n.paused||u.classList.add("controls-hidden")},3e3)}n.addEventListener("timeupdate",function(){n.duration&&(q.style.width=n.currentTime/n.duration*100+"%",W.textContent=C(n.currentTime)+" / "+C(n.duration))}),n.addEventListener("play",function(){ensureIcon(I,"Pause20Regular"),p()}),n.addEventListener("pause",function(){ensureIcon(I,"Play20Regular"),u.classList.remove("controls-hidden")}),n.addEventListener("ended",function(){c<m.length-1&&(c++,h(m[c]))}),I.addEventListener("click",function(){n.paused?n.play().catch(function(){}):n.pause()}),T.addEventListener("click",function(e){if(n.duration){var t=T.getBoundingClientRect();n.currentTime=(e.clientX-t.left)/t.width*n.duration}}),M.addEventListener("input",function(){n.volume=parseFloat(M.value),n.muted=!1,ensureIcon(w,n.volume>0?"Speaker220Regular":"SpeakerMute20Regular")}),w.addEventListener("click",function(){n.muted=!n.muted,ensureIcon(w,n.muted?"SpeakerMute20Regular":"Speaker220Regular")}),z.addEventListener("click",function(){document.fullscreenElement?document.exitFullscreen():u.requestFullscreen().catch(function(){})}),G.addEventListener("click",A),N.addEventListener("click",function(){c>0&&(c--,h(m[c]))}),x.addEventListener("click",function(){c<m.length-1&&(c++,h(m[c]))}),u.addEventListener("mousemove",p),document.addEventListener("keydown",function(e){if(u.classList.contains("active"))switch(e.key){case" ":e.preventDefault(),n.paused?n.play().catch(function(){}):n.pause();break;case"ArrowLeft":e.preventDefault(),n.currentTime=Math.max(0,n.currentTime-10),p();break;case"ArrowRight":e.preventDefault(),n.currentTime=Math.min(n.duration||0,n.currentTime+10),p();break;case"f":case"F":document.fullscreenElement?document.exitFullscreen():u.requestFullscreen().catch(function(){});break;case"Escape":A();break}}),n.addEventListener("click",function(){n.paused?n.play().catch(function(){}):n.pause()}),document.addEventListener("wheel",function(e){e.target.closest(".row-track")&&Math.abs(e.deltaY)>Math.abs(e.deltaX)&&(e.preventDefault(),window.scrollBy(0,e.deltaY))},{passive:!1}),P.listenForShellThemeChanges(),_().then(function(e){S=e,$(S)}).catch(function(e){console.error("Failed to load videos:",e);var t=document.getElementById("app"),r=document.createElement("div");r.className="empty-state";var i=document.createElement("div");i.className="empty-state-icon",ensureIcon(i,"Warning24Regular","icon-xl");var o=document.createElement("h2");o.textContent="Error Loading Videos";var a=document.createElement("p");a.textContent=e.message,r.append(i,o,a),t.appendChild(r)})}();