1(function($){'use strict';var $body,$container,$track,$gestures,$frameChrome,$top,$flash,$playState,$live,$navPrev,$navNext,$muteBtn,$muteLabel,$viewPill,$progressBar,$progressFill,$coach;var $railCol,$railLike,$railComment,$railView;var flashOffTimer=null;var soundHintInTimer=null;var soundHintOutTimer=null;var coachArmTimer=null;var coachOffTimer=null;var coachArmed=!1;var posts=[];var slides=[];var currentIndex=0;var transitioning=!1;var navLocked=!1;var userMuted=!1;var unmuteSucceeded=!1;var openerEl=null;var touchStartY=null;var touchStartTime=0;var dragging=!1;var dragDeltaPx=0;var dragBaseIndex=0;var suppressTap=!1;var autoplayRefused=!1;var lastPlayStateText=null;var wheelAcc=0;var wheelLastAt=0;var wheelFiredAt=0;var wheelLock=!1;var pollTimer=null;var slidesViewed=null;var suppressEmbedTier=!1;var lastAnalyticsAt={};var TRANSITION_MS=320;var WHEEL_THRESHOLD=40;var WHEEL_GAP_MS=160;var WHEEL_MIN_INTERVAL_MS=450;var SWIPE_THRESHOLD_PX=60;var SWIPE_MAX_DURATION_MS=600;var DRAG_START_PX=6;var DRAG_SNAP_AREA_FRACTION=0.5;var NAV_COOLDOWN_MS=420;var START_TIMEOUT_MS=4000;var CHROME_POLL_MS=250;var ANALYTICS_THROTTLE_MS=250;var FLASH_OUT_MS=100;var FLASH_GLYPH_PX=40;var MUTE_HINT_IN_MS=350;var MUTE_HINT_OUT_MS=4500;var COACH_ARM_MS=350;var COACH_AUTO_MS=3200;var COACH_STORAGE_KEY='sbi-qs-coach-swipe';var PULL_CLOSE_PX=140;var PULL_FOLLOW_RATIO=0.35;var MUTED_FIRST=!1;var NO_CAPS={mute:!1,playPause:!1,progress:!1};var FULL_CAPS={mute:!0,playPause:!0,progress:!0};function log(){if(!(window.sbiQuickScroll&&window.sbiQuickScroll.debug))return;try{console.log.apply(console,['[SBI Swipe View]'].concat([].slice.call(arguments)))}catch(e){}} 2function prefersReducedMotion(){return!!(window.matchMedia&&window.matchMedia('(prefers-reduced-motion: reduce)').matches)} 3function hasKeyboardAffordance(){if(!window.matchMedia)return!0;return!!window.matchMedia('(hover: hover) and (pointer: fine)').matches} 4var FIT_CONTAIN_RATIO=(9/16)*1.04;function mediaIntrinsic(node){if(!node)return null;var w=node.videoWidth||node.naturalWidth||0;var h=node.videoHeight||node.naturalHeight||0;return(w>0&&h>0)?{w:w,h:h}:null} 5function applyFit(slide){if(!slide||!slide.frame)return;var node=slide.stage&&slide.stage.querySelector('.sbi-qs-video, .sbi-qs-poster');var dims=mediaIntrinsic(node);if(!dims){slide.frame.removeAttribute('data-fit');return} 6var wider=(dims.w/dims.h)>FIT_CONTAIN_RATIO;if(wider){slide.frame.setAttribute('data-fit','contain')}else{slide.frame.removeAttribute('data-fit')} 7if(slide.backdrop)slide.backdrop.style.display=wider?'':'none'} 8function isHttpUrl(u){return typeof u==='string'&&/^https?:\/\//i.test(u)} 9function safeMediaSrc(u){if(typeof u!=='string'||!u)return'';if(/^https?:\/\//i.test(u))return u;return/^[a-z][a-z0-9+.\-]*:/i.test(u)?'':u} 10function safeCssUrl(u){var src=safeMediaSrc(u);if(!src)return'';if(/["'()\\\s]|[\x00-\x1f]/.test(src))return'';return src} 11var IG_HANDLE_RE=/^[A-Za-z0-9._]{1,30}$/;function profileUrlForHandle(handle){if(typeof handle!=='string'||!IG_HANDLE_RE.test(handle))return'';return'https://www.instagram.com/'+handle+'/'} 12function hueForHandle(handle){var str=typeof handle==='string'?handle:'';var h=0;for(var i=0;i<str.length;i++){h=((h<<5)-h+str.charCodeAt(i))|0} 13return Math.abs(h)%360} 14function formatCaptionText(raw){if(typeof raw!=='string')return'';return raw.replace(/<br\s*\/?\s*>/gi,'\n')} 15function parseCount(raw){if(raw===undefined||raw===null||raw==='')return null;var n=parseInt(raw,10);return isNaN(n)||n<0?null:n} 16function formatCount(n){if(n<1000)return String(n);if(n<999500){var k=n/1000;return(k>=100?Math.round(k):Math.round(k*10)/10)+'K'} 17var m=n/1000000;return(m>=100?Math.round(m):Math.round(m*10)/10)+'M'} 18function countNoun(kind,n){if(kind==='likes')return n===1?'like':'likes';return n===1?'comment':'comments'} 19function exactCount(n){try{return n.toLocaleString()}catch(e){return String(n)}} 20var IG_PERMALINK_RE=/^https:\/\/(?:www\.)?instagram\.com\/(?:reel|tv|p)\/[A-Za-z0-9_-]+\/?$/i;function isValidInstagramPermalink(u){return typeof u==='string'&&IG_PERMALINK_RE.test(u)} 21function embedUrlForPermalink(permalink){if(!isValidInstagramPermalink(permalink))return'';var withSlash=permalink.charAt(permalink.length-1)==='/'?permalink:permalink+'/';return withSlash+'embed/'} 22function el(tag,className,attrs){var node=document.createElement(tag);if(className)node.className=className;
22if(attrs){Object.keys(attrs).forEach(function(k){node.setAttribute(k,attrs[k])})} 23return node} 24function emitAnalytics(name,payload){var now=Date.now();if(lastAnalyticsAt[name]&&(now-lastAnalyticsAt[name])<ANALYTICS_THROTTLE_MS)return;lastAnalyticsAt[name]=now;log('analytics:',name,payload);try{$(document).trigger('sbi_swipeview:'+name,[payload])}catch(e){}} 25function isReelAnchor($a){return($a.attr('data-media-type')||'').toLowerCase()==='reels'} 26function feedHasLightboxDisabled($feed){var flags=(($feed.attr('data-sbi-flags')||'')).split(',');return flags.indexOf('lightboxdisabled')!==-1} 27function isDispatchSuppressed($a,$feed){var $link=$a.closest('.sbi_link');if($link.hasClass('sbi_disable_lightbox'))return!0;if($link.hasClass('sbi_link_customizer'))return!0;if($feed.hasClass('sbi_moderation_mode'))return!0;if(feedHasLightboxDisabled($feed))return!0;return!1} 28function feedSuppressesEmbedTier($feed){var flags=(($feed.attr('data-sbi-flags')||'')).split(',');return flags.indexOf('gdpr')!==-1&&flags.indexOf('overri
28deBlockCDN')===-1} 29function collectReelsFromFeed($feed){var items=[];$feed.find('a.sbi_link_area[data-lightbox-sbi]').each(function(){var $a=$(this);if(!isReelAnchor($a))return;if(isDispatchSuppressed($a,$feed))return;items.push({id:$a.attr('data-id')||'',permalink:$a.attr('data-url')||'',videoSrc:$a.attr('data-video')||'',poster:$a.attr('href')||'',caption:$a.attr('data-title')||'',username:$a.attr('data-user')||'',avatar:$a.attr('data-avatar')||'',likes:parseCount($a.attr('data-likes')),comments:parseCount($a.attr('data-comments'))})});return items} 30var RAIL_ICON_PATHS={likes:['M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1-1.1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 21l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8z'],comments:['M12 3a9 9 0 0 0-7.6 13.8L3 21l4.4-1.3A9 9 0 1 0 12 3z'],share:['M22 2L11 13','M22 2l-7 20-4-9-9-4z'],view:[]};var RAIL_ICON_PAINT={fill:'none',stroke:'currentColor','stroke-width':'1.8','stroke-linecap':'round','stroke-linejoin':'round'};var IG_MARK_SHAPES=[{tag:'rect',attrs:{x:'3',y:'3',width:'18',height:'18',rx:'5'}},{tag:'circle',attrs:{cx:'12',cy:'12',r:'4'}},{tag:'circle',attrs:{cx:'17.4',cy:'6.6',r:'1.2',fill:'currentColor',stroke:'none'}}];var IG_MARK_PAINT={fill:'none',stroke:'currentColor','stroke-width':'2','stroke-linecap':'round','stroke-linejoin':'round'};function svgRoot(size,viewBox){var svg=document.createElementNS('http://www.w3.org/2000/svg','svg');svg.setAttribute('viewBox',viewBox||'0 0 24 24');svg.setAttribute('width',String(size));svg.setAttribute('height',String(size));svg.setAttribute('aria-hidden','true');svg.setAttribute('focusable','false');return svg} 31function svgShape(tag,attrs,paint){var node=document.createElementNS('http://www.w3.org/2000/svg',tag);Object.keys(paint||{}).forEach(function(k){node.setAttribute(k,paint[k])});Object.keys(attrs||{}).forEach(function(k){node.setAttribute(k,attrs[k])});return node} 32function buildRailIcon(kind,size){var svg=svgRoot(size||26);if(kind==='view'){IG_MARK_SHAPES.forEach(function(shape){svg.appendChild(svgShape(shape.tag,shape.attrs,IG_MARK_PAINT))});return svg}(RAIL_ICON_PATHS[kind]||[]).forEach(function(d){svg.appendChild(svgShape('path',{d:d},RAIL_ICON_PAINT))});return svg} 33function verifiedPoints(){var pts=[];for(var i=0;i<24;i++){var r=(i%2)?8.4:10;var a=i*Math.PI/12;pts.push((12+r*Math.cos(a)).toFixed(2)+','+(12+r*Math.sin(a)).toFixed(2))} 34return pts.join(' ')} 35function buildVerifiedIcon(){var svg=svgRoot(14);svg.setAttribute('class','sbi-qs-verified');svg.setAttribute('aria-hidden','false');svg.setAttribute('role','img');svg.setAttribute('aria-label','Verified');svg.appendChild(svgShape('polygon',{points:verifiedPoints(),fill:'#0095f6'},{}));svg.appendChild(svgShape('path',{d:'M7.8 12.4l2.7 2.6 5.7-5.8',fill:'none',stroke:'#fff','stroke-width':'2.2','stroke-linecap':'round','stroke-linejoin':'round'},{}));return svg} 36var CONTROL_ICON_PATHS={close:[{d:'M6 6l12 12M18 6L6 18',fill:'none',stroke:'currentColor','stroke-width':'2.4','stroke-linecap':'round'}],chevronUp:[{d:'M6 15l6-6 6 6',fill:'none',stroke:'currentColor','stroke-width':'2.2','stroke-linecap':'round','stroke-linejoin':'round'}],chevronDown:[{d:'M6 9l6 6 6-6',fill:'none',stroke:'currentColor','stroke-width':'2.2','stroke-linecap':'round','stroke-linejoin':'round'}],play:[{d:'M8.5 5.5v13l10.5-6.5z',fill:'currentColor',stroke:'currentColor','stroke-width':'2.5','stroke-linejoin':'round'}],volumeOn:[{d:'M11 5L6 9H2v6h4l5 4V5z',fill:'none',stroke:'currentColor','stroke-width':'1.8','stroke-linecap':'round','stroke-linejoin':'round'},{d:'M15.5 8.5a5 5 0 0 1 0 7M18.7 5.3a9.5 9.5 0 0 1 0 13.4',fill:'none',stroke:'currentColor','stroke-width':'1.8','stroke-linecap':'round','stroke-linejoin':'round'}],volumeOff:[{d:'M11 5L6 9H2v6h4l5 4V5z',fill:'none',stroke:'currentColor','stroke-width':'1.8','stroke-linecap':'round','stroke-linejoin':'round'},{d:'M22 9l-6 6M16 9l6 6',fill:'none',stroke:'currentColor','stroke-width':'1.8','stroke-linecap':'round','stroke-linejoin':'round'}]};var SWIPE_HAND_SHAPES=[{tag:'path',attrs:{d:'M22 6v30'}},{tag:'path',attrs:{d:'M12 16l10-10 10 10'}},{tag:'circle',attrs:{cx:'22',cy:'52',r:'6',fill:'#fff',stroke:'none'}}];function buildSwipeHand(){var svg=svgRoot(0,'0 0 44 64');svg.removeAttribute('width');svg.removeAttribute('height');svg.setAttribute('class','sbi-qs-coach-hand');SWIPE_HAND_SHAPES.forEach(function(shape){svg.appendChild(svgShape(shape.tag,shape.attrs,{fill:'none',stroke:'#fff','stroke-width':'2.4','stroke-linecap':'round','stroke-linejoin':'round'}))});return svg} 37function buildControlIcon(name,size){var specs=CONTROL_ICON_PATHS[name]||[];var svg=svgRoot(size||22);
37specs.forEach(function(spec){var path=document.createElementNS('http://www.w3.org/2000/svg','path');path.setAttribute('fill','currentColor');Object.keys(spec).forEach(function(k){path.setAttribute(k,spec[k])});svg.appendChild(path)});return svg} 38function setControlIcon($btn,name,size){var node=$btn&&$btn[0];if(!node)return;var svgs=node.querySelectorAll('svg');for(var i=0;i<svgs.length;i++)node.removeChild(svgs[i]);node.insertBefore(buildControlIcon(name,size),node.firstChild)} 39function buildContainer(){if($container&&$container.length)return;$container=$(el('div','sbi-qs-overlay',{role:'dialog','aria-modal':'true','aria-label':'Reels viewer','aria-keyshortcuts':'Space ArrowUp ArrowDown',tabindex:'-1','data-muted':'true','data-paused':'false'}));var closeBtn=el('button','sbi-qs-close',{type:'button','aria-label':'Close reels viewer','data-sbi-qs-tip':'Close Esc'});closeBtn.appendChild(buildControlIcon('close',22));var viewport=el('div','sbi-qs-viewport');var track=el('div','sbi-qs-track');viewport.appendChild(track);var gestures=el('div','sbi-qs-gesture',{'aria-hidden':'true'});var frameChrome=el('div','sbi-qs-framechrome');var top=el('div','sbi-qs-top');var muteBtn=el('button','sbi-qs-mute',{type:'button','data-act':'mute','aria-label':'Unmute','data-state':'off'});muteBtn.appendChild(buildControlIcon('volumeOff',20));var muteLabel=el('span','sbi-qs-mute-label',{'aria-hidden':'true'});muteLabel.textContent='Tap to unmute';muteBtn.appendChild(muteLabel);var viewPill=el('a','sbi-qs-view-on-ig',{target:'_blank',rel:'noopener noreferrer'});viewPill.appendChild(buildRailIcon('view',16));var pillLabel=document.createElement('span');pillLabel.textContent='View on Instagram';viewPill.appendChild(pillLabel);top.appendChild(muteBtn);top.appendChild(viewPill);var progress=el('div','sbi-qs-progress',{role:'progressbar','aria-label':'Playback progress','aria-valuemin':'0','aria-valuemax':'100','aria-valuenow':'0'});var progressFill=el('i','sbi-qs-progress-fill');progress.appendChild(progressFill);var flash=el('div','sbi-qs-flash',{'aria-hidden':'true'});flash.appendChild(buildControlIcon('play',FLASH_GLYPH_PX));frameChrome.appendChild(top);frameChrome.appendChild(flash);frameChrome.appendChild(progress);var nav=el('div','sbi-qs-nav',{'aria-hidden':'false'});var navPrev=el('button','sbi-qs-nav-prev',{type:'button','data-nav':'prev','aria-label':'Previous reel','data-sbi-qs-tip':'Previous â / K'});navPrev.appendChild(buildControlIcon('chevronUp',24));var navNext=el('button','sbi-qs-nav-next',{type:'button','data-nav':'next','aria-label':'Next reel','data-sbi-qs-tip':'Next â / J'});navNext.appendChild(buildControlIcon('chevronDown',24));nav.appendChild(navPrev);nav.appendChild(navNext);var railCol=buildRail();var live=el('div','sbi-screenreader sbi-qs-live',{role:'status','aria-live':'polite','aria-atomic':'true'});var playState=el('div','sbi-screenreader sbi-qs-playstate',{role:'status','aria-live':'polite','aria-atomic':'true'});var coach=el('div','sbi-qs-coach',{'aria-hidden':'true'});var coachInner=el('div','sbi-qs-coach-inner');var coachText=document.createElement('span');coachText.textContent='Swipe up for next';coachInner.appendChild(coachText);coachInner.appendChild(buildSwipeHand());coach.appendChild(coachInner);$container.append(viewport,gestures,frameChrome,nav,railCol,live,playState,coach,closeBtn);$body.append($container);$track=$container.find('.sbi-qs-track');$gestures=$container.find('.sbi-qs-gesture');$frameChrome=$container.find('.sbi-qs-framechrome');$top=$container.find('.sbi-qs-top');$flash=$container.find('.sbi-qs-flash');$playState=$container.find('.sbi-qs-playstate');$live=$container.find('.sbi-qs-live');$navPrev=$container.find('[data-nav="prev"]');$navNext=$container.find('[data-nav="next"]');$muteBtn=$container.find('[data-act="mute"]');$muteLabel=$container.find('.sbi-qs-mute-label');$viewPill=$container.find('.sbi-qs-view-on-ig');$progressBar=$container.find('.sbi-qs-progress');$progressFill=$container.find('.sbi-qs-progress-fill');$coach=$container.find('.sbi-qs-coach');$railCol=$container.find('.sbi-qs-railcol');$container.on('click','.sbi-qs-close',close);$muteBtn.on('click',toggleMute);$navPrev.on('click',onNavClick);$navNext.on('click',onNavClick);$gestures[0].addEventListener('wheel',onWheel,{passive:!1});$gestures[0].addEventListener('touchstart',onTouchStart,{passive:!0});$gestures[0].addEventListener('touchmove',onTouchMove,{passive:!1});$gestures[0].addEventListener('touchend',onTouchEnd,{passive:!0});$gestures[0].addEventListener('touchcancel',onTouchCancel,{passive:!0});$gestures.on('click',onGestureClick)} 40function buildRailItem(spec){var node=el(spec.tag,'sbi-qs-act'+(spec.modifier?' '+spec.modifier:''),spec.attrs||{});if(spec.tag==='button')node.type='button';if(spec.tag==='a'){node.target='_blank';node.rel='noopener noreferrer'} 41if(spec.href)node.href=spec.href;node.appendChild(buildRailIcon(spec.icon,28));if(spec.label){var label=el('span','sbi-qs-act-label',{'aria-hidden':'true'});label.textContent=spec.label;node.appendChild(label)}else{var count=el('b','sbi-qs-act-count',{'aria-hidden':'true'});
41if(spec.count!==null&&spec.count!==undefined){count.textContent=formatCount(spec.count)} 42node.appendChild(count)} 43return node} 44function buildRail(){var col=el('div','sbi-qs-railcol');var rail=el('div','sbi-qs-rail');$railLike=$(buildRailItem({tag:'div',icon:'likes',count:null,modifier:'sbi-qs-act-like',attrs:{role:'img','aria-label':''}}));$railComment=$(buildRailItem({tag:'a',icon:'comments',count:null,attrs:{'aria-label':'View comments on Instagram'}}));$railView=$(buildRailItem({tag:'a',icon:'view',count:null,label:'View',modifier:'sbi-qs-act-view',attrs:{'aria-label':'View on Instagram'}}));rail.appendChild($railLike[0]);rail.appendChild($railComment[0]);rail.appendChild($railView[0]);col.appendChild(rail);$railLike[0].hidden=!0;$railComment[0].hidden=!0;$railView[0].hidden=!0;col.hidden=!0;return col} 45function updateRail(post){if(!$railCol||!$railCol.length)return;var safeHref=(post&&isHttpUrl(post.permalink))?post.permalink:'';var likes=post?post.likes:null;var comments=post?post.comments:null;var hasLikes=likes!==null&&likes!==undefined;setRailItem($railLike,hasLikes,{count:hasLikes?formatCount(likes):'',label:hasLikes?exactCount(likes)+' '+countNoun('likes',likes):''});var hasComments=comments!==null&&comments!==undefined;setRailItem($railComment,!!safeHref,{href:safeHref,count:hasComments?formatCount(comments):'',label:hasComments?exactCount(comments)+' '+countNoun('comments',comments)+' â view on Instagram':'View comments on Instagram'});setRailItem($railView,!!safeHref,{href:safeHref,label:'View on Instagram'});var anyVisible=!$railLike[0].hidden||!$railComment[0].hidden||!$railView[0].hidden;$railCol[0].hidden=!anyVisible} 46function setRailItem($item,visible,spec){var node=$item&&$item[0];if(!node)return;node.hidden=!visible;if(spec.href!==undefined){if(spec.href)node.href=spec.href;else node.removeAttribute('href')} 47if(spec.label!==undefined)node.setAttribute('aria-label',spec.label);if(spec.count!==undefined){var countNode=node.querySelector('.sbi-qs-act-count');if(countNode)countNode.textContent=spec.count}} 48function setRailTravel(pxDelta,animate){var node=$railCol&&$railCol[0];if(!node)return;var px=pxDelta||0;var instant=!animate||prefersReducedMotion();node.style.transitionDuration=instant?'0ms':TRANSITION_MS+'ms';node.style.transform=px?'translateY('+px+'px)':''} 49var CAPTION_TOKEN_RE=/#[\wÃ-ÉÐ-Ó¿]+/g;function appendCaptionText(target,raw){var text=formatCaptionText(raw);var last=0;var m;CAPTION_TOKEN_RE.lastIndex=0;while((m=CAPTION_TOKEN_RE.exec(text))!==null){if(m.index>last)target.appendChild(document.createTextNode(text.slice(last,m.index)));var tag=el('span','sbi-qs-tag');tag.textContent=m[0];target.appendChild(tag);last=m.index+m[0].length} 50if(last<text.length)target.appendChild(document.createTextNode(text.slice(last)))} 51function buildSlideChrome(post,frame){var posterUrl=safeCssUrl(post.poster);var backdrop=null;if(posterUrl){backdrop=el('div','sbi-qs-backdrop',{'aria-hidden':'true'});backdrop.style.backgroundImage='url("'+posterUrl+'")';backdrop.style.display='none';frame.appendChild(backdrop)} 52var host=el('div','sbi-qs-mediahost');frame.appendChild(host);frame.appendChild(el('div','sbi-qs-spinner',{'aria-hidden':'true'}));var fail=el('div','sbi-qs-fail');var failText=el('span','sbi-qs-fail-text');failText.textContent='Video unavailable';fail.appendChild(failText);var failHref=isHttpUrl(post.permalink)?post.permalink:'';if(failHref){var failLink=el('a','sbi-qs-fail-link',{target:'_blank',rel:'noopener noreferrer'});failLink.href=failHref;failLink.appendChild(buildRailIcon('view',16));var failLabel=document.createElement('span');failLabel.textContent='Open on Instagram';failLink.appendChild(failLabel);fail.appendChild(failLink)} 53frame.appendChild(fail);frame.appendChild(el('div','sbi-qs-scrim',{'aria-hidden':'true'}));var bottom=el('div','sbi-qs-bottom');var profileUrl=profileUrlForHandle(post.username);if(post.username||post.avatar){var row=el('div','sbi-qs-authorrow');var author=el(profileUrl?'a':'div','sbi-qs-author');if(profileUrl){author.href=profileUrl;author.target='_blank';author.rel='noopener noreferrer';author.setAttribute('aria-label','@'+post.username+' on Instagram')}
54var safeAvatar=safeMediaSrc(post.avatar);if(safeAvatar){var avatarImg=el('img','sbi-qs-avatar',{alt:''});avatarImg.src=safeAvatar;avatarImg.addEventListener('error',function(){var repl=buildAvatarFallback(post.username);if(avatarImg.parentNode)avatarImg.parentNode.replaceChild(repl,avatarImg)});author.appendChild(avatarImg)}else{author.appendChild(buildAvatarFallback(post.username))} 55if(post.username){var handle=el('span','sbi-qs-handle');var handleText=el('span','sbi-qs-handle-text');handleText.textContent='@'+post.username;handle.appendChild(handleText);if(post.verified)handle.appendChild(buildVerifiedIcon());author.appendChild(handle)} 56row.appendChild(author);if(profileUrl){var follow=el('a','sbi-qs-follow',{target:'_blank',rel:'noopener noreferrer','aria-label':'Follow @'+post.username+' on Instagram'});follow.href=profileUrl;follow.textContent='Follow';row.appendChild(follow)} 57bottom.appendChild(row)} 58if(post.caption){var caption=el('p','sbi-qs-caption');var captionText=el('span','sbi-qs-caption-text');appendCaptionText(captionText,post.caption);caption.appendChild(captionText);var moreBtn=el('button','sbi-qs-caption-more',{type:'button','aria-expanded':'false'});moreBtn.textContent='more';moreBtn.addEventListener('click',function(){var expanded=caption.classList.toggle('sbi-qs-caption-expanded');moreBtn.setAttribute('aria-expanded',expanded?'true':'false');moreBtn.textContent=expanded?'less':'more';if(!expanded)captionText.scrollTop=0});caption.appendChild(moreBtn);bottom.appendChild(caption)} 59frame.appendChild(bottom);return{host:host,backdrop:backdrop}} 60function buildAvatarFallback(username){var node=el('span','sbi-qs-avatar sbi-qs-avatar-fallback',{'aria-hidden':'true'});var name=typeof username==='string'?username:'';node.style.setProperty('--sbi-qs-avatar-hue',String(hueForHandle(name)));node.textContent=name?name.charAt(0):'';return node} 61function renderPosts(){$track.empty();slides=[];posts.forEach(function(post,i){var article=el('article','sbi-qs-post',{'data-index':String(i),'aria-roledescription':'reel','aria-label':'Reel '+(i+1)+' of '+posts.length});var frame=el('div','sbi-qs-media');article.appendChild(frame);var built=buildSlideChrome(post,frame);$track[0].appendChild(article);slides.push({post:post,article:article,stage:built.host,frame:frame,backdrop:built.backdrop,tier:-1,inst:null,caps:NO_CAPS,watchdog:null,playingSeen:!1,terminalReported:!1,warm:!1})})} 62function tierCanPlay(tierIndex,post){if(tierIndex===0)return!!safeMediaSrc(post.videoSrc);if(tierIndex===1)return!suppressEmbedTier&&!!embedUrlForPermalink(post.permalink);return!0} 63function nextChainIndex(fromIndex,post){for(var i=fromIndex;i<=2;i++){if(tierCanPlay(i,post))return i} 64return 2} 65function clearWatchdog(slide){if(slide.watchdog){clearTimeout(slide.watchdog);slide.watchdog=null}} 66function armWatchdog(slide,index){clearWatchdog(slide);
66if(slide.playingSeen)return;slide.watchdog=setTimeout(function(){if(index!==currentIndex||slide.playingSeen)return;var terminal=slide.tier>=2;emitAnalytics('swipeview_playback_stalled',{index:index,adapter:tierName(slide.tier),terminal:terminal});if(!terminal){handleAdapterEvent(slide,index,'error',{reason:'no-start'})}},START_TIMEOUT_MS)} 67function tierName(tierIndex){return tierIndex===0?'native-video':(tierIndex===1?'ig-reel-embed':'poster-link')} 68function instantiateTier(slide,index,fromTier){clearWatchdog(slide);slide.playingSeen=!1;if(slide.inst&&slide.inst.destroy)slide.inst.destroy();slide.inst=null;slide.stage.innerHTML='';var tier=nextChainIndex(fromTier,slide.post);slide.tier=tier;if(slide.frame){slide.frame.setAttribute('data-tier',tier>=2?'terminal':tierName(tier));slide.frame.removeAttribute('data-fit');slide.frame.removeAttribute('data-buffering')} 69if(tier===0){slide.caps=FULL_CAPS;slide.inst=instantiateNativeVideo(slide,index)}else if(tier===1){slide.caps=NO_CAPS;slide.inst=instantiateEmbed(slide,index)}else{slide.caps=NO_CAPS;slide.inst=instantiatePosterLink(slide,index);if(!slide.terminalReported){slide.terminalReported=!0;emitAnalytics('swipeview_terminal_tier',{index:index,adapter:'poster-link'})}}} 70function handleAdapterEvent(slide,index,kind,detail){if(slide&&slide.warm)return;if(kind==='error'){var from=tierName(slide.tier);var toTier=nextChainIndex(slide.tier+1,slide.post);var to=toTier>slide.tier?tierName(toTier):null;emitAnalytics('swipeview_playback_fallback',{index:index,from:from,to:to,reason:(detail&&detail.reason)||'load-error'});instantiateTier(slide,index,slide.tier+1);if(index===currentIndex)activateSlide(index,!0);return} 71if(kind==='playing'){slide.playingSeen=!0;clearWatchdog(slide);
71if(index===currentIndex)updateChrome();return} 72if(kind==='ended'){if(index===currentIndex&&slide.inst&&slide.inst.restart)slide.inst.restart();return} 73if(kind==='autoplay_blocked'){emitAnalytics('swipeview_autoplay_blocked',{index:index,intended:detail&&detail.intended});if(index===currentIndex&&detail&&detail.intended==='unmuted'){autoplayRefused=!0;updateChrome();startSoundHint()} 74return}} 75function noteUnmuteSucceeded(){unmuteSucceeded=!0} 76function primeForAudio(v){if(!v||!v.src)return;try{v.muted=!0;var p=v.play();v.pause();if(p&&typeof p.catch==='function')p.catch(function(){})}catch(e){}} 77function attemptPlay(v,slide,index,muted){v.muted=muted;var p=v.play();if(!p||typeof p.catch!=='function')return;if(!muted&&typeof p.then==='function'){p.then(function(){if(!v.muted)noteUnmuteSucceeded()},function(){})} 78p.catch(function(){if(!muted){v.muted=!0;handleAdapterEvent(slide,index,'autoplay_blocked',{intended:'unmuted'});v.play().catch(function(){handleAdapterEvent(slide,index,'autoplay_blocked',{intended:'muted'})})}else{handleAdapterEvent(slide,index,'autoplay_blocked',{intended:'muted'})}})} 79function instantiateNativeVideo(slide,index){var v=document.createElement('video');var src=safeMediaSrc(slide.post.videoSrc);v.src=src;var poster=safeMediaSrc(slide.post.poster);if(poster)v.poster=poster;v.muted=!0;v.playsInline=!0;v.setAttribute('playsinline','');v.loop=!1;v.preload='metadata';v.className='sbi-qs-video';if(!slide.warm)primeForAudio(v);v.addEventListener('error',function(){handleAdapterEvent(slide,index,'error',{reason:'media-load-failed'})});v.addEventListener('loadedmetadata',function(){applyFit(slide)});v.addEventListener('waiting',function(){setBuffering(slide,!0)});v.addEventListener('stalled',function(){setBuffering(slide,!0)});v.addEventListener('canplay',function(){setBuffering(slide,!1)});v.addEventListener('playing',function(){setBuffering(slide,!1);handleAdapterEvent(slide,index,'playing')});v.addEventListener('ended',function(){handleAdapterEvent(slide,index,'ended')});v.addEventListener('volumechange',function(){if(index===currentIndex)updateMuteChrome()});slide.stage.appendChild(v);return{name:'native-video',el:v,play:function(opts){var wantMuted=!opts||opts.muted!==!1;v.preload='auto';attemptPlay(v,slide,index,wantMuted)},pause:function(){v.pause()},setMuted:function(m){if(m){v.muted=!0}else{attemptPlay(v,slide,index,!1)}},isPlaying:function(){return!v.paused&&!v.ended},isMuted:function(){return v.muted},progress:function(){return{current:v.currentTime||0,duration:v.duration||0}},restart:function(){try{v.currentTime=0}catch(e){} 80attemptPlay(v,slide,index,v.muted)},destroy:function(){try{v.pause();v.removeAttribute('src');v.load()}catch(e){}v.remove()}}} 81function instantiateEmbed(slide,index){var embedSrc=embedUrlForPermalink(slide.post.permalink);var frame=document.createElement('iframe');frame.src=embedSrc;frame.allow='autoplay; encrypted-media; picture-in-picture';frame.referrerPolicy='strict-origin-when-cross-origin';frame.setAttribute('scrolling','no');frame.setAttribute('title','Instagram embed');frame.className='sbi-qs-embed';var loaded=!1;frame.addEventListener('load',function(){loaded=!0;handleAdapterEvent(slide,index,'playing')});slide.stage.appendChild(frame);return{name:'ig-reel-embed',el:frame,play:function(){},pause:function(){},setMuted:function(){},isPlaying:function(){return loaded},isMuted:function(){return!1},progress:function(){return null},restart:function(){},destroy:function(){frame.src='about:blank';frame.remove()}}} 82function instantiatePosterLink(slide,index){var poster=safeMediaSrc(slide.post.poster);if(poster){var img=document.createElement('img');img.className='sbi-qs-poster';img.src=poster;img.alt='';img.addEventListener('load',function(){applyFit(slide)});slide.stage.appendChild(img)} 83handleAdapterEvent(slide,index,'playing');return{name:'poster-link',play:function(){},pause:function(){},setMuted:function(){},isPlaying:function(){return!0},isMuted:function(){return!0},progress:function(){return null},restart:function(){},destroy:function(){}}} 84function ensureSlideMedia(index){var slide=slides[index];if(!slide)return;if(slide.warm)releaseWarmSlide(slide);
84if(slide.tier!==-1)return;instantiateTier(slide,index,0)} 85var PREWARM_OFFSETS=[1,-1];var TIER_TRANSPORT={0:'media-element',1:'iframe',2:'link'};function tierIsPrewarmable(tierIndex){return TIER_TRANSPORT[tierIndex]==='media-element'} 86function prewarmLevel(){var conn=navigator.connection;if(conn&&conn.saveData===!0)return'none';if(conn&&conn.saveData===!1&&conn.effectiveType==='4g')return'buffer';return'metadata'} 87function isWithinPrewarmWindow(index,activeIndex){if(index===activeIndex)return!0;for(var k=0;k<PREWARM_OFFSETS.length;k++){if(index===activeIndex+PREWARM_OFFSETS[k])return!0} 88return!1} 89function releaseWarmSlide(slide){if(!slide||!slide.warm)return;clearWatchdog(slide);if(slide.inst&&slide.inst.destroy)slide.inst.destroy();slide.inst=null;slide.caps=NO_CAPS;slide.tier=-1;slide.playingSeen=!1;slide.warm=!1;if(slide.stage)slide.stage.innerHTML=''} 90function releaseWarmOutsideWindow(activeIndex){slides.forEach(function(slide,i){if(!slide.warm)return;if(isWithinPrewarmWindow(i,activeIndex))return;releaseWarmSlide(slide)})} 91function prewarmSlide(index,level){var slide=slides[index];if(!slide)return;if(slide.tier!==-1)return;var tier=nextChainIndex(0,slide.post);if(!tierIsPrewarmable(tier))return;slide.warm=!0;instantiateTier(slide,index,0);if(level!=='buffer')return;if(slide.inst&&slide.inst.el)slide.inst.el.preload='auto'} 92function prewarmAdjacent(activeIndex){releaseWarmOutsideWindow(activeIndex);var level=prewarmLevel();if(level==='none')return;for(var k=0;k<PREWARM_OFFSETS.length;k++){prewarmSlide(activeIndex+PREWARM_OFFSETS[k],level)}} 93function setTrackOffset(vhOffset,pxDelta){var node=$track&&$track[0];if(!node)return;var d=pxDelta||0;var offset=function(unit){var base=vhOffset+unit;if(d===0)return base;return'calc('+base+(d<0?' - '+Math.abs(d):' + '+d)+'px)'};node.style.transform='translate3d(0, '+offset('vh')+', 0)';node.style.transform='translate3d(0, '+offset('dvh')+', 0)'} 94function goToIndex(newIndex,opts){opts=opts||{};if(transitioning)return;if(newIndex<0||newIndex>=posts.length)return;currentIndex=newIndex;if(slidesViewed)slidesViewed.add(currentIndex);transitioning=!0;var instant=opts.smooth===!1||prefersReducedMotion();var translateY=-newIndex*100;$track.css('transition',instant?'none':'transform '+TRANSITION_MS+'ms cubic-bezier(0.22, 0.61, 0.36, 1)');setTrackOffset(translateY);setRailTravel(0,!1);updateChrome();activateSlide(newIndex,!1);var settle=instant?0:TRANSITION_MS;setTimeout(function(){transitioning=!1},settle)} 95function navigate(delta){if(navLocked)return;var target=currentIndex+delta;if(target<0||target>=posts.length)return;navLocked=!0;setTimeout(function(){navLocked=!1},NAV_COOLDOWN_MS);clearFlash();goToIndex(target);emitAnalytics(delta>0?'swipeview_next':'swipeview_prev',{index:currentIndex})} 96function realMuted(){var slide=slides[currentIndex];var inst=slide&&slide.inst;return inst&&inst.isMuted?inst.isMuted():!0} 97function updateMuteChrome(){var slide=slides[currentIndex];var caps=(slide&&slide.caps)||NO_CAPS;var muted=realMuted();$muteBtn.prop('disabled',!caps.mute);setControlIcon($muteBtn,muted?'volumeOff':'volumeOn',20);$muteBtn.attr('aria-label',muted?'Unmute':'Mute');$muteBtn.attr('data-state',muted?'off':'on');$container.attr('data-muted',muted?'true':'false');if(!(caps.mute&&muted&&autoplayRefused&&!userMuted&&!unmuteSucceeded)){stopSoundHint()}} 98function startSoundHint(){stopSoundHint();var slide=slides[currentIndex];var caps=(slide&&slide.caps)||NO_CAPS;if(!caps.mute||!autoplayRefused||userMuted||unmuteSucceeded||!realMuted())return;soundHintInTimer=setTimeout(function(){soundHintInTimer=null;if(!realMuted()||userMuted||unmuteSucceeded)return;$muteBtn.addClass('sbi-qs-mute-hinting');soundHintOutTimer=setTimeout(function(){soundHintOutTimer=null;$muteBtn.removeClass('sbi-qs-mute-hinting')},MUTE_HINT_OUT_MS-MUTE_HINT_IN_MS)},MUTE_HINT_IN_MS)} 99function stopSoundHint(){if(soundHintInTimer){clearTimeout(soundHintInTimer);soundHintInTimer=null} 100if(soundHintOutTimer){clearTimeout(soundHintOutTimer);soundHintOutTimer=null} 101if($muteBtn&&$muteBtn.length)$muteBtn.removeClass('sbi-qs-mute-hinting')}
102function updateChrome(){announceLive((currentIndex+1)+' of '+posts.length);$container.find('.sbi-qs-post').each(function(){var active=this.getAttribute('data-index')===String(currentIndex);this.classList.toggle('sbi-qs-post-active',active);this.inert=!active});var slide=slides[currentIndex];var post=slide&&slide.post;var caps=(slide&&slide.caps)||NO_CAPS;$progressBar.css('display',caps.progress?'':'none');var href=post&&isHttpUrl(post.permalink)?post.permalink:'';if(href){$viewPill.attr('href',href).removeAttr('aria-disabled')}else{$viewPill.attr('href','#').attr('aria-disabled','true')} 103updateRail(post);$navPrev.prop('disabled',currentIndex<=0);$navNext.prop('disabled',currentIndex>=posts.length-1);updateMuteChrome();syncPlayState()} 104function announceLive(text){if(!$live||!$live.length)return;if($live[0].textContent===text)return;$live[0].textContent=text} 105function activateSlide(index,reactivateOnly){ensureSlideMedia(index);slides.forEach(function(slide,i){if(!slide.inst)return;if(i===index){slide.inst.play({muted:userMuted});armWatchdog(slide,i)}else if(!reactivateOnly){clearWatchdog(slide);slide.inst.pause()}});updateChrome();syncCaptionExpansion(index);applyFit(slides[index]);startSoundHint();prewarmAdjacent(index)} 106function syncCaptionExpansion(activeIndex){slides.forEach(function(slide,i){if(!slide.article)return;var cap=slide.article.querySelector('.sbi-qs-caption');var text=slide.article.querySelector('.sbi-qs-caption-text');var btn=slide.article.querySelector('.sbi-qs-caption-more');if(!cap||!text||!btn)return;if(i!==activeIndex){cap.classList.remove('sbi-qs-caption-expanded');text.scrollTop=0;btn.setAttribute('aria-expanded','false');btn.textContent='more';return} 107if(!cap.classList.contains('sbi-qs-caption-expanded')){if(text.scrollWidth>text.clientWidth+1){cap.classList.add('sbi-qs-caption-has-more')}else{cap.classList.remove('sbi-qs-caption-has-more')}}})} 108function toggleMute(){var slide=slides[currentIndex];if(!slide||!slide.caps||!slide.caps.mute)return;var shouldUnmute=realMuted();userMuted=!shouldUnmute;if(slide.inst&&slide.inst.setMuted)slide.inst.setMuted(!shouldUnmute);stopSoundHint();updateChrome();dismissCoach();emitAnalytics(shouldUnmute?'swipeview_unmuted':'swipeview_muted',{index:currentIndex})} 109function setPaused(paused){if(!$container||!$container.length)return;var was=$container.attr('data-paused')==='true';if(was===paused)return;$container.attr('data-paused',paused?'true':'false');if(flashOffTimer){clearTimeout(flashOffTimer);flashOffTimer=null} 110if(paused){$flash.removeClass('sbi-qs-flash-on');return} 111$flash.addClass('sbi-qs-flash-on');flashOffTimer=setTimeout(function(){flashOffTimer=null;$flash.removeClass('sbi-qs-flash-on')},FLASH_OUT_MS)} 112function clearFlash(){if(flashOffTimer){clearTimeout(flashOffTimer);flashOffTimer=null} 113if($flash&&$flash.length)$flash.removeClass('sbi-qs-flash-on');if($container&&$container.length)$container.attr('data-paused','false')} 114function coachAlreadySeen(){try{return!!(window.localStorage&&window.localStorage.getItem(COACH_STORAGE_KEY)==='1')}catch(e){return!1}} 115function markCoachSeen(){try{if(window.localStorage)window.localStorage.setItem(COACH_STORAGE_KEY,'1')}catch(e){}} 116function maybeShowCoach(){if(hasKeyboardAffordance())return;if(coachAlreadySeen())return;if(!$coach||!$coach.length)return;$coach.addClass('sbi-qs-coach-visible');markCoachSeen();coachArmed=!1;coachArmTimer=setTimeout(function(){coachArmTimer=null;coachArmed=!0},COACH_ARM_MS);coachOffTimer=setTimeout(dismissCoach,COACH_AUTO_MS)} 117function dismissCoach(){if(coachOffTimer){clearTimeout(coachOffTimer);coachOffTimer=null} 118if(!coachArmed&&$coach&&$coach.hasClass('sbi-qs-coach-visible')){coachOffTimer=setTimeout(dismissCoach,COACH_ARM_MS);return} 119if(coachArmTimer){clearTimeout(coachArmTimer);coachArmTimer=null} 120coachArmed=!1;if($coach&&$coach.length)$coach.removeClass('sbi-qs-coach-visible')} 121function setBuffering(slide,on){if(!slide||!slide.frame)return;if(on){slide.frame.setAttribute('data-buffering','true')}else{slide.frame.removeAttribute('data-buffering')}} 122var lastProgressFraction=null;var PROGRESS_JUMP_EPSILON=0.02;function setProgress(fraction,forceJump){var node=$progressFill&&$progressFill[0];if(!node)return;var f=fraction;if(!(f>=0))f=0;if(f>1)f=1;var jump=!!forceJump||lastProgressFraction===null||f<lastProgressFraction-PROGRESS_JUMP_EPSILON;lastProgressFraction=f;$progressFill.toggleClass('sbi-qs-progress-fill-jump',jump);node.style.transform='scaleX('+f+')'} 123function announcePlayState(text){if(text===lastPlayStateText)return;lastPlayStateText=text;if($playState&&$playState.length)$playState[0].textContent=text} 124function syncPlayState(){var slide=slides[currentIndex];var caps=(slide&&slide.caps)||NO_CAPS;if(!caps.playPause||!slide||!slide.inst||!slide.inst.isPlaying){announcePlayState('');setPaused(!1);return} 125var playing=slide.inst.isPlaying();announcePlayState(playing?'Playing':'Paused');setPaused(!playing)} 126function onNavClick(e){var btn=e&&(e.currentTarget||e.target);var dir=btn&&btn.getAttribute?btn.getAttribute('data-nav'):null;if(dir!=='prev'&&dir!=='next')return;dismissCoach();navigate(dir==='next'?1:-1)}
127function stageRect(){var slide=slides[currentIndex];if(!slide||!slide.frame)return null;var box=slide.frame.getBoundingClientRect();return(box.width>0&&box.height>0)?box:null} 128function pointInRect(x,y,box){return!!box&&x>=box.left&&x<=box.right&&y>=box.top&&y<=box.bottom} 129function rectHasArea(box){return!!box&&box.width>0&&box.height>0} 130function pointIsInControlDeadSpace(x,y){var nav=$container.find('.sbi-qs-nav').get(0);var navBox=nav?nav.getBoundingClientRect():null;if(rectHasArea(navBox)&&pointInRect(x,y,navBox))return!0;var railcol=$container.find('.sbi-qs-railcol').get(0);var railBox=railcol?railcol.getBoundingClientRect():null;if(rectHasArea(railBox)&&pointInRect(x,y,railBox))return!0;return!1} 131function clickIsOnBackdrop(x,y){var stage=stageRect();if(!stage)return!1;if(pointInRect(x,y,stage))return!1;if(pointIsInControlDeadSpace(x,y))return!1;return!0} 132function onGestureClick(e){if(suppressTap){suppressTap=!1;return} 133if(e&&typeof e.clientX==='number'&&typeof e.clientY==='number'){if(pointIsInControlDeadSpace(e.clientX,e.clientY))return;if(clickIsOnBackdrop(e.clientX,e.clientY)){close();return}} 134togglePlay()} 135function togglePlay(){var slide=slides[currentIndex];if(!slide||!slide.inst)return;dismissCoach();if(slide.caps&&!slide.caps.playPause)return;var willPlay=!(slide.inst.isPlaying&&slide.inst.isPlaying());if(!willPlay){clearWatchdog(slide);slide.inst.pause()}else{slide.inst.play({muted:userMuted});armWatchdog(slide,currentIndex)} 136updateChrome()} 137function onWheel(e){e.preventDefault();if(e.ctrlKey)return;var now=Date.now();var gap=now-wheelLastAt;if(gap>WHEEL_GAP_MS){wheelAcc=0;wheelLock=!1} 138wheelLastAt=now;if(wheelLock)return;if(now-wheelFiredAt<WHEEL_MIN_INTERVAL_MS)return;wheelAcc+=e.deltaY;if(Math.abs(wheelAcc)<WHEEL_THRESHOLD)return;var dir=wheelAcc>0?1:-1;wheelAcc=0;wheelLock=!0;wheelFiredAt=now;dismissCoach();navigate(dir)} 139function resetWheel(){wheelAcc=0;wheelLastAt=0;wheelFiredAt=0;wheelLock=!1} 140function slideHeightPx(){var slide=slides[currentIndex];var h=(slide&&slide.article)?slide.article.offsetHeight:0;return h>0?h:(window.innerHeight||0)} 141function clampDragDelta(fingerDy){var h=slideHeightPx();var d=fingerDy;if(h>0)d=Math.max(-h,Math.min(h,d));if(dragBaseIndex>=posts.length-1&&d<0)return 0;if(dragBaseIndex<=0&&d>0){return Math.min(d*PULL_FOLLOW_RATIO,PULL_CLOSE_PX+20)} 142return d} 143function resetDrag(){suppressTap=dragging;touchStartY=null;dragging=!1;dragDeltaPx=0} 144function settleBack(){var instant=prefersReducedMotion();$track.css('transition',instant?'none':'transform '+TRANSITION_MS+'ms cubic-bezier(0.22, 0.61, 0.36, 1)');setTrackOffset(-currentIndex*100,0);setRailTravel(0,!instant)} 145function onTouchStart(e){if(!e.touches||e.touches.length!==1){if(touchStartY!==null){var wasDragging=dragging;resetDrag();if(wasDragging)settleBack()} 146return} 147if(transitioning||navLocked){touchStartY=null;return} 148touchStartY=e.touches[0].clientY;touchStartTime=Date.now();dragging=!1;dragDeltaPx=0;dragBaseIndex=currentIndex} 149function onTouchMove(e){if(touchStartY===null)return;if(!e.touches||e.touches.length!==1)return;var fingerDy=e.touches[0].clientY-touchStartY;if(!dragging){if(Math.abs(fingerDy)<DRAG_START_PX)return;dragging=!0;dismissCoach();$track.css('transition','none')} 150e.preventDefault();dragDeltaPx=clampDragDelta(fingerDy);setTrackOffset(-dragBaseIndex*100,dragDeltaPx);setRailTravel(dragDeltaPx,!1)} 151function onTouchEnd(e){if(touchStartY===null)return;var endY=(e.changedTouches&&e.changedTouches[0])?e.changedTouches[0].clientY:touchStartY;var dy=touchStartY-endY;var dt=Date.now()-touchStartTime;var wasDragging=dragging;var trackDelta=dragDeltaPx;resetDrag();var isFlick=dt<=SWIPE_MAX_DURATION_MS&&Math.abs(dy)>=SWIPE_THRESHOLD_PX;if(!wasDragging){if(!isFlick)return;dismissCoach();navigate(dy>0?1:-1);return} 152if(pullToCloseArmed(-dy)){emitAnalytics('swipeview_pull_close',{index:currentIndex});close();return} 153var h=slideHeightPx();var moved=Math.abs(trackDelta);var areaSaysAdvance=h>0&&moved>h*DRAG_SNAP_AREA_FRACTION;if(moved>0&&(areaSaysAdvance||isFlick)){navigate(trackDelta<0?1:-1)}else{settleBack()}} 154function pullToCloseArmed(downwardPx){if(currentIndex!==0)return!1;if(transitioning)return!1;return downwardPx>PULL_CLOSE_PX} 155function onTouchCancel(){if(touchStartY===null)return;var wasDragging=dragging;resetDrag();if(wasDragging)settleBack()} 156function onKeydown(e){if(!$container||!$container.hasClass('sbi-qs-active'))return;switch(e.key){case 'Escape':e.preventDefault();close();break;case 'ArrowDown':case 'PageDown':case 'j':case 'J':e.preventDefault();dismissCoach();navigate(1);break;case 'ArrowUp':case 'PageUp':case 'k':case 'K':e.preventDefault();dismissCoach();navigate(-1);break;case ' ':e.preventDefault();togglePlay();break;case 'm':case 'M':toggleMute();break;case 'Tab':trapFocus(e);break}} 157function focusables(){var items=$container.find('.sbi-qs-mute:not([disabled]), .sbi-qs-view-on-ig:not([aria-disabled="true"]), .sbi-qs-nav-prev:not([disabled]), .sbi-qs-nav-next:not([disabled]), .sbi-qs-close').toArray();var $active=$container.find('.sbi-qs-post-active');if($active.length){items=items.concat($active.find('a[href], button:not([disabled])').toArray())} 158items=items.concat($container.find('.sbi-qs-railcol a[href]').toArray());return items.filter(function(node){return node.offsetParent!==null||node===document.activeElement})} 159function trapFocus(e){var items=focusables();if(!items.length)return;var i=items.indexOf(document.activeElement);e.preventDefault();var next=e.shiftKey?(i<=0?items.length-1:i-1):(i===items.length-1||i===-1?0:i+1);items[next].focus()} 160function open(feedPosts,startIndex,opener,embedSuppressed){if($container&&$container.hasClass('sbi-qs-active'))return;posts=feedPosts;if(!posts.length)return;suppressEmbedTier=!!embedSuppressed;slidesViewed=new Set();buildContainer();renderPosts();transitioning=!1;navLocked=!1;resetDrag();suppressTap=!1;clearFlash();stopSoundHint();resetWheel();lastPlayStateText=null;lastProgressFraction=null;userMuted=!1;unmuteSucceeded=!1;autoplayRefused=MUTED_FIRST;openerEl=opener||null;$container.attr('data-muted','true');$container.attr('data-paused','false');$body.addClass('sbi-qs-scroll-locked');$container.addClass('sbi-qs-active');
160currentIndex=Math.max(0,Math.min(startIndex||0,posts.length-1));slidesViewed.add(currentIndex);goToIndex(currentIndex,{smooth:!1});pollTimer=setInterval(tick,CHROME_POLL_MS);maybeShowCoach();requestAnimationFrame(function(){$container.addClass('sbi-qs-visible');var closeBtn=$container.find('.sbi-qs-close').get(0);if(closeBtn)closeBtn.focus()});emitAnalytics('swipeview_opened',{index:currentIndex,total:posts.length})} 161function close(){if(!$container||!$container.length||!$container.hasClass('sbi-qs-active'))return;clearInterval(pollTimer);pollTimer=null;slides.forEach(function(slide){clearWatchdog(slide);if(slide.inst&&slide.inst.destroy)slide.inst.destroy();slide.inst=null;slide.tier=-1;slide.warm=!1});$container.removeClass('sbi-qs-active sbi-qs-visible');$body.removeClass('sbi-qs-scroll-locked');resetDrag();clearFlash();stopSoundHint();dismissCoach();resetWheel();emitAnalytics('swipeview_closed',{index:currentIndex,slides_viewed:slidesViewed?slidesViewed.size:0});if(openerEl&&typeof openerEl.focus==='function')openerEl.focus();openerEl=null} 162function tick(){var slide=slides[currentIndex];if(!slide||!slide.inst){setProgress(0,!0);return} 163if(slide.inst.progress){var p=slide.inst.progress();var frac=(p&&p.duration>0)?(p.current/p.duration):0;setProgress(frac);$progressBar.attr('aria-valuenow',String(Math.round(frac*100)))}else{setProgress(0,!0)} 164updateMuteChrome();syncPlayState();syncCaptionExpansion(currentIndex)} 165$(function(){$body=$('body');var enabled=(window.sbiQuickScroll&&window.sbiQuickScroll.enabled)||$body.hasClass('sbi-qs-enabled');if(!enabled)return;log('active â intercepting Reels clicks');document.addEventListener('keydown',onKeydown,!0);document.addEventListener('click',function(e){var a=e.target&&e.target.closest?e.target.closest('a.sbi_link_area[data-lightbox-sbi]'):null;if(!a)return;var $a=$(a);if(!isReelAnchor($a))return;var $feed=$a.closest('.sbi');if(!$feed.length)return;if(isDispatchSuppressed($a,$feed))return;var reels=collectReelsFromFeed($feed);if(!reels.length)return;var clickedId=$a.attr('data-id');var index=0;for(var i=0;i<reels.length;i++){if(reels[i].id===clickedId){index=i;break}} 166if(reels[index]&&reels[index].id!==clickedId)return;e.preventDefault();e.stopImmediatePropagation();log('opening viewer',clickedId,'at',index,'/',reels.length);open(reels,index,a,feedSuppressesEmbedTier($feed))},!0)})})(jQuery)
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.