
$(function(){var navbarBg=$(".navbar-background");var navbarBgEl=navbarBg[0];var rowSecondary=$(".row-secondary");var rowSecondaryEl=rowSecondary[0];var secondaryPanel=rowSecondaryEl?rowSecondaryEl.querySelector(".navbar-panel"):null;var padEnd=40;var colorStart=40;var colorEnd=120;function updateScrollState(){var y=window.scrollY;var padProgress=Math.min(1,y/padEnd);var colorProgress=y<=colorStart?0:Math.min(1,(y-colorStart)/(colorEnd-colorStart));if(y>colorStart){navbarBg.addClass("scrolled");rowSecondary.addClass("scrolled");}else{navbarBg.removeClass("scrolled");rowSecondary.removeClass("scrolled");}
if(rowSecondaryEl){if(navbarBgEl.classList.contains("compact")){rowSecondaryEl.style.top="";}else{var baseTop=parseInt(getComputedStyle(document.documentElement).getPropertyValue('--navbar-height-base'));var topOffset=12*(1-padProgress);rowSecondaryEl.style.top=(baseTop+topOffset)+"px";}}
var pad=6*(1-padProgress);if(colorProgress<1){var alpha=0.92*colorProgress;var blur=16*colorProgress;navbarBgEl.style.backgroundColor="rgba(6,6,32,"+alpha+")";navbarBgEl.style.backdropFilter="blur("+blur+"px)";navbarBgEl.style.webkitBackdropFilter="blur("+blur+"px)";navbarBgEl.style.padding=pad+"px 0";}else{navbarBgEl.style.backgroundColor="";navbarBgEl.style.backdropFilter="";navbarBgEl.style.webkitBackdropFilter="";navbarBgEl.style.padding="";}
if(rowSecondaryEl){if(colorProgress<1){var wAlpha=0.92*colorProgress;var sBlur=16-8*colorProgress;var shadow=0.1*colorProgress;var borderAlpha=0.12*(1-colorProgress);rowSecondaryEl.style.backgroundColor="rgba(255,255,255,"+wAlpha+")";rowSecondaryEl.style.backdropFilter="blur("+sBlur+"px)";rowSecondaryEl.style.webkitBackdropFilter="blur("+sBlur+"px)";rowSecondaryEl.style.boxShadow="0 1px 0 0 rgba(0,0,0,"+shadow+")";if(secondaryPanel){secondaryPanel.style.borderColor="rgba(255,255,255,"+borderAlpha+")";}}else{rowSecondaryEl.style.backgroundColor="";rowSecondaryEl.style.backdropFilter="";rowSecondaryEl.style.webkitBackdropFilter="";rowSecondaryEl.style.boxShadow="";if(secondaryPanel){secondaryPanel.style.borderColor="";}}}}
$(window).on("scroll",updateScrollState);updateScrollState();var titleBig=document.querySelector(".title-big");if(titleBig){var compactObserver=new IntersectionObserver(function(entries){entries.forEach(function(entry){if(entry.isIntersecting){navbarBg.removeClass("compact");}else{if(entry.boundingClientRect.top<0){navbarBg.addClass("compact");}}
updateScrollState();});},{threshold:0,rootMargin:"-"+getComputedStyle(document.documentElement).getPropertyValue('--navbar-height-base').trim()+" 0px 0px 0px"});compactObserver.observe(titleBig);}
var navbg=$(".navbar-background");var initialHeight=navbg.height();var address=document.location.pathname;if(address.startsWith("/tutorials")){$(".level1 #tutorials").addClass("active");}else{$(".level1 #docs").addClass("active");}
var refs=$(".level2 .menu-item a");var items=$(".level2 .menu-item");if(address.includes("#")){address=address.split('#')[0];}
var matching=[];refs.each(function(i){var local=$(this).attr("dir")?$(this).attr("dir"):$(this).attr("href");if(local!=null){local=local.split(".")[0];if(address.includes(local)){matching.push({href:local,item:items[i]});}
$(this).click(function(){items.removeClass('active');items[i].classList.add("active");});}});matching=matching.sort((a,b)=>{let aMatches=address.includes(a.href);let bMatches=address.includes(b.href);if(aMatches===bMatches){return a.href.localeCompare(b.href);}
return aMatches?-1:1;}).reverse();if(matching.length>0){var value=matching[0].href;for(var m of matching){if(m.href==value){m.item.classList.add("active");}}}});$(function(){var tooltips=$(".btn-tooltip");tooltips.each(function(i,e){$(e).parent().mouseenter(function(){$(e).attr("active","true")}).mouseleave(function(){$(e).attr("active",null);});});});$(function(){const sections=$(".section h2[id], .sect2 h3[id]");sections.each(function(index,el){var t=$(el).append(`
      <span class="copy-link">
        <svg xmlns="http://www.w3.org/2000/svg" class="icon-link" width="18" height="18" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
          <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
          <path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" />
          <path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" />
        </svg>
      </span>
      <span class="copy-confirmation"/>
    `);$(el).find('.copy-link').on('click',e=>{var url=window.location.href;if(url.indexOf('#')>-1){url=url.split('#')[0];}
const textToCopy=url+"#"+el.id;var myTemporaryInputElement=document.createElement("input");myTemporaryInputElement.type="text";myTemporaryInputElement.value=textToCopy;document.body.appendChild(myTemporaryInputElement);myTemporaryInputElement.select();document.execCommand("Copy");document.body.removeChild(myTemporaryInputElement);console.log('Copied link:'+textToCopy)
var confirmation=$(el).find('.copy-confirmation');confirmation.attr('active','true');setTimeout(()=>confirmation.attr('active','false'),1000);});});});$(function(){var scrollTargets=$(".section h2, .section h3");var bar=$(".navbar-background")
var useBar=bar.length>0
var scrollButtons=$(".scroll-action");var filteredTargets=[];scrollButtons.each(function(index,ele){var target;var expected=$(ele).attr("data-target")
for(var i=0;i<scrollTargets.length;++i){var targetEl=scrollTargets[i];if(targetEl.id===expected){target=targetEl;filteredTargets.push(targetEl);break;}}
if(target){$(ele).click(function(){if(useBar){window.scrollTo({top:target.offsetTop-(useBar?bar.height():0),behavior:"smooth"})}
else{target.scrollIntoView({behavior:"smooth"});}})}});scrollTargets=$(filteredTargets);var progressElement=$(".navbar-background .progress");var useBarAsProgress=useBar?progressElement.length>0:false;var scrollTargetGroupsStart=[];var scrollButtonGroups=[];$(".scroll-group").each(function(gid,ele){var targetRef=$(ele).attr("data-target")
for(var i=0;i<scrollTargets.length;++i){if(scrollTargets[i].id===targetRef){scrollTargetGroupsStart.push(scrollTargets[i]);scrollButtonGroups.push(ele);break;}}});$('.scroll-top-page button').on('click',()=>window.scrollTo({top:0,behavior:'smooth',}));if(scrollTargets.length>0){var first=scrollTargets[0];$(window).on('scroll',function(e){var padding=useBar?bar.height()+200:200;$(".scroll-show-target").attr("active",first.getBoundingClientRect().top<padding?"true":null);if(useBarAsProgress){scrollTargets.each(function(i,ele){var itempos=ele.getBoundingClientRect().top;var index=i=="length"?scrollTargets.length:i;if(itempos>0&&itempos<padding){var progress=i/scrollTargets.length;var inv=1.0-progress;progressElement.css("width",(inv*100)+"%");}});}
var lastTg=null;var selectedElement=null;for(var i=0;i<scrollTargetGroupsStart.length;++i){var top=scrollTargetGroupsStart[i].getBoundingClientRect().top;if(top<=padding){if((lastTg!=null&&top>lastTg.getBoundingClientRect().top)||lastTg==null){lastTg=scrollTargetGroupsStart[i];}}}
for(var i=0;i<scrollButtonGroups.length;++i){var $e=$(scrollButtonGroups[i]);if(lastTg!=null&&$e.attr('data-target')===lastTg.id){$e.addClass("opened");selectedElement=scrollButtonGroups[i];}
else{$e.removeClass("opened");}}
var selectedTarget=lastTg;lastTg=null;for(var i=0;i<scrollTargets.length;++i){var top=scrollTargets[i].getBoundingClientRect().top
if(top<=padding){if((lastTg!=null&&top>lastTg.getBoundingClientRect().top)||lastTg==null){lastTg=scrollTargets[i];}}}
var toActive=null;for(var i=0;i<scrollButtons.length;++i){var $e=$(scrollButtons[i]);if(lastTg!=null&&$e.attr("data-target")===lastTg.id){if(toActive)
toActive.attr("active",null);toActive=$e;}
else{$e.attr("active",null);}}
if(toActive)
toActive.attr("active","true");});}});$(function(){function indexOfMin(arr){if(arr.length===0){return-1;}
var min=arr[0];var minIndex=0;for(var i=1;i<arr.length;i++){if(arr[i]<min){minIndex=i;min=arr[i];}}
return minIndex;}
function distances(offset,elements){var dists=[]
elements.each(function(index,ele){var itempos=ele.getBoundingClientRect().top;dists.push(Math.abs(offset-itempos));});return dists;}
var bar=$(".navbar-background")
var useBar=false;var upBtn=$(".navigation-buttons .up.prev-slide");var downBtn=$(".navigation-buttons .down.next-slide");var targets=$(".section h2, .section h3");function upScroll(){var padding=useBar?bar.height()+200:200;var topOffset=(useBar?bar.height()+80:80);var current=indexOfMin(distances(padding,targets));var target=targets[current>0?current-1:current];window.scrollTo({top:target.offsetTop-topOffset,behavior:"smooth"});}
function downScroll(){var padding=useBar?bar.height()+200:200;var topOffset=(useBar?bar.height()+80:80);var current=indexOfMin(distances(padding,targets));var target=targets[current+1<targets.length?current+1:current];window.scrollTo({top:target.offsetTop-topOffset,behavior:"smooth"});}
upBtn.on("click",upScroll);downBtn.on("click",downScroll);$(".navigation-buttons .up.page-start").on('click',()=>{var topOffset=(useBar?bar.height()+80:80);window.scrollTo({top:targets[0].offsetTop-topOffset,behavior:"smooth"});});$(".navigation-buttons .down.page-end").on('click',()=>{var topOffset=(useBar?bar.height()+80:80);window.scrollTo({top:targets[targets.length-1].offsetTop-topOffset,behavior:"smooth"});});$(window).keyup(function(e){if(e.keyCode==37){upBtn.click();}
else if(e.keyCode==39){downBtn.click();}});});$(function(){const $target=$('.stick-bottom-above');const target=$target[0];const stickEnd=$($target.attr('data-above'))[0];const bottomOffset=$target.attr('data-offset');function viewportYDistance(){const rect=stickEnd.getBoundingClientRect();return rect.top-window.innerHeight;}
function getOffsetLeft(elem){const src=elem;var offsetLeft=0;do{if(!isNaN(elem.offsetLeft)){offsetLeft+=elem.offsetLeft;}}while(elem=elem.offsetParent);console.log(offsetLeft);return offsetLeft;}
const definedPosType=$target.css('position');const definedBottom=$target.css('bottom');const definedLeft=$target.css('left');var fixedLeft=getOffsetLeft(target.parentElement);window.onresize=function(){$target.css('position',definedPosType);$target.css('left',definedLeft);$target.css('bottom',definedBottom);fixedLeft=getOffsetLeft(target.parentElement);$target.css('position','fixed');$target.css('left',fixedLeft);$target.css('bottom',bottomOffset);updatePosition();}
function updatePosition(){$target.css('position','fixed');$target.css('left',fixedLeft);$target.css('bottom',bottomOffset);const h=viewportYDistance();if(h<=0){$target.css('bottom','calc('+bottomOffset+' + '+(-h)+'px)');}}
$(window).scroll(updatePosition);updatePosition();});$(function(){var tooltips=$(".btn-tooltip");tooltips.each(function(i,e){$(e).parent().mouseenter(function(){$(e).attr("active","true")}).mouseleave(function(){$(e).attr("active",null);});});});document.addEventListener('DOMContentLoaded',()=>{const carousels=document.querySelectorAll('.carousel-widget');carousels.forEach(carousel=>{initCarousel(carousel);});});function initCarousel(carousel){const track=carousel.querySelector('.carousel-track');const slides=Array.from(track.children);const wrapper=carousel.querySelector('.carousel-wrapper');const viewport=carousel.querySelector('.carousel-viewport');const navigationWrapper=document.createElement('div');navigationWrapper.className='navigation-wrapper';const controlsContainer=document.createElement('div');controlsContainer.className='carousel-controls';const prevButton=document.createElement('button');prevButton.className='carousel-btn prev';prevButton.setAttribute('aria-label','Previous Slide');prevButton.innerHTML='&#10094;';const nextButton=document.createElement('button');nextButton.className='carousel-btn next';nextButton.setAttribute('aria-label','Next Slide');nextButton.innerHTML='&#10095;';const contentContainer=document.createElement('div');contentContainer.className='carousel-content';const stepIndicator=document.createElement('div');stepIndicator.className='step-indicator';stepIndicator.innerHTML='Step <span class="current-step">1</span>/<span class="total-steps">4</span>';const currentStepEl=stepIndicator.querySelector('.current-step');const totalStepsEl=stepIndicator.querySelector('.total-steps');const descEl=document.createElement('p');descEl.className='step-description';contentContainer.appendChild(descEl);const dotsContainer=carousel.querySelector('.carousel-dots');controlsContainer.appendChild(prevButton);if(dotsContainer){if(dotsContainer.parentNode)dotsContainer.parentNode.removeChild(dotsContainer);controlsContainer.appendChild(dotsContainer);}
controlsContainer.appendChild(nextButton);navigationWrapper.appendChild(controlsContainer);navigationWrapper.appendChild(stepIndicator);carousel.insertBefore(contentContainer,wrapper);carousel.insertBefore(navigationWrapper,contentContainer);let currentIndex=0;totalStepsEl.textContent=slides.length;slides.forEach((_,index)=>{const dot=document.createElement('div');dot.classList.add('dot');if(index===0)dot.classList.add('active');dot.addEventListener('click',()=>{goToSlide(index);});dotsContainer.appendChild(dot);});const dots=Array.from(dotsContainer.children);function adjustContentHeight(){const tempDiv=document.createElement('div');tempDiv.className='carousel-content';tempDiv.style.visibility='hidden';tempDiv.style.position='absolute';tempDiv.style.width=getComputedStyle(contentContainer).width;const p=document.createElement('p');p.className='step-description';tempDiv.appendChild(p);document.body.appendChild(tempDiv);let maxHeight=0;slides.forEach(slide=>{p.innerHTML=slide.getAttribute('data-desc');const height=p.offsetHeight;if(height>maxHeight)maxHeight=height;});document.body.removeChild(tempDiv);if(maxHeight>0){descEl.style.minHeight=`${maxHeight}px`;}}
adjustContentHeight();window.addEventListener('resize',adjustContentHeight);const images=track.querySelectorAll('img');const updateDimensions=()=>{let maxWidth=0;let maxHeight=0;images.forEach(img=>{if(img.naturalWidth>0){const match=img.src.match(/@(\d+)x\.[a-zA-Z0-9]+($|\?)/);const scaleFactor=match?parseInt(match[1],10):1;const w=img.naturalWidth/scaleFactor;const h=img.naturalHeight/scaleFactor;img.style.width=`${w}px`;img.style.height=`${h}px`;if(w>maxWidth)maxWidth=w;if(h>maxHeight)maxHeight=h;}});if(maxWidth>0&&maxHeight>0){viewport.style.width=`${maxWidth}px`;viewport.style.height=`${maxHeight}px`;goToSlide(currentIndex);}};images.forEach(img=>{if(img.complete){updateDimensions();}else{img.onload=updateDimensions;}});function updateContent(index){const slide=slides[index];const desc=slide.getAttribute('data-desc');descEl.style.opacity=0;setTimeout(()=>{descEl.innerHTML=desc;currentStepEl.textContent=index+1;descEl.style.opacity=1;},200);}
function updateDots(index){dots.forEach(dot=>dot.classList.remove('active'));dots[index].classList.add('active');}
function updateButtons(index){prevButton.disabled=index===0;nextButton.disabled=index===slides.length-1;if(index===0){prevButton.classList.add('disabled');}else{prevButton.classList.remove('disabled');}
if(index===slides.length-1){nextButton.classList.add('disabled');}else{nextButton.classList.remove('disabled');}}
function goToSlide(index){if(index<0||index>=slides.length)return;currentIndex=index;const amountToMove=-100*currentIndex;track.style.transform=`translateX(${amountToMove}%)`;updateDots(currentIndex);updateContent(currentIndex);updateButtons(currentIndex);}
nextButton.addEventListener('click',()=>{goToSlide(currentIndex+1);});prevButton.addEventListener('click',()=>{goToSlide(currentIndex-1);});updateContent(0);goToSlide(0);}