PageSourceSearch

https://watcharees.com/cdn/shop/t/92/assets/curved-text.js?v=158299385405468649231776185660

js watcharees.com collected 2026-10-10 01:25:56 UTC 4,016 bytes, 2 lines download raw bytes

1window.ThemeSection_curvedText=(text,wave_width,wave_height,direction,speed,enable_animation)=>({text,direction,text_offset:0,speed,wave_width,intensity_percentage:100,wave_height,viewport_width:window.innerWidth,enable_animation,path:"",straight_path:"",total_text_spans:0,original_span:null,threshold:0,has_shadow:!1,previous_window_width:0,get text_length(){return this.$refs.textMeasure.getBoundingClientRect().width},get wave_intensity(){return this.intensity_percentage*(this.wave_height-this.wave_mid_point)/100+this.wave_mid_point},get wave_mid_point(){return this.wave_height/2},get half_wave_width(){return this.wave_width/2},get total_text_span_length(){return this.total_text_spans*this.text_length},get total_path_length(){return this.$refs.path.getTotalLength()},get threshold(){return this.direction==="ltr"?0:this.total_text_span_length/2},init(){this.$refs.shadowTextPath!==void 0&&(this.has_shadow=!0),this.createPath(),this.$nextTick(()=>{this.calculateText(),this.play()});const mql=window.matchMedia("(min-width: 990px)");mql.onchange=e=>{this.reInit()},this.previous_window_width=window.innerWidth;const resizeHandler=debounce(this.resizeComplete.bind(this),300);window.addEventListener("resize",event=>{let window_width=window.innerWidth;window_width!==this.previous_window_width&&(this.paused=!0,this.previous_window_width=window_width)}),window.addEventListener("resize",resizeHandler)},resizeComplete(){window.innerWidth>this.viewport_width?this.reInit():this.paused&&this.play()},reInit(){this.paused=!0,this.$refs.textPath.innerHTML="",this.viewport_width=window.innerWidth,this.text_offset=0,this.createPath(),this.$nextTick(()=>{this.calculateText(),this.play()})},pause(){requestAnimationFrame(()=>{setTimeout(()=>{this.paused=!0},0)})},play(){window.matchMedia("(prefers-reduced-motion: reduce)").matches||!enable_animation||requestAnimationFrame(()=>{setTimeout(()=>{this.paused=!1,requestAnimationFrame(this.animate.bind(this))},0)})},createPath(){this.start_point=this.wave_width*2*-1,this.wave_segments=Math.ceil(this.viewport_width*3/this.wave_width)+1,this.first_control_point=this.start_point+this.half_wave_width,this.path="M"+this.start_point+" "+this.wave_mid_point;let point=this.start_point;for(let i=0;i<this.wave_segments;i++)point=point+this.wave_width,i===0?this.path+=" Q"+(this.start_point+this.half_wave_width)+" "+this.wave_intensity+", "+point+" "+this.wave_mid_point:this.path+=" T"+point+" "+this.wave_mid_point},calculateText(){this.total_text_spans=Math.ceil(this.total_path_length/this.text_length),this.total_text_spans=this.total_text_spans%2!==0?this.total_text_spans+1:this.total_text_spans;let tspanElement;for(let i=0;i<this.total_text_spans;i++)tspanElement=document.createElementNS("http://www.w3.org/2000/svg","tspan"),tspanElement.innerHTML=this.text,tspanElement.setAttribute("alignment-baseline","middle"),tspanElement.setAttribute("aria-hidden","true"),this.$refs.textPath.appendChild(tspanElement),this.has_shadow&&(tspanElement=document.createElementNS("http://www.w3.org/2000/svg","tspan"),tspanElement.innerHTML=this.text,tspanElement.setAttribute("alignment-baseline","middle"),tspanElement.setAttribute("aria-hidden","true"),this.$refs.shadowTextPath.appendChild(tspanElement));this.$nextTick(()=>{this.direction==="ltr"&&(this.text_offset=this.total_text_span_length/2*-1)})},animate(){this.text_offset+=1*this.speed,this.text_offset>this.threshold&&(this.direction==="ltr"?this.text_offset=this.total_text_span_length/2*-1:this.text_offset=0),this.direction==="ltr"?(this.$refs.textPath.setAttribute("startOffset",this.text_offset),this.has_shadow&&this.$refs.shadowTextPath.setAttribute("startOffset",this.text_offset)):(this.$refs.textPath.setAttribute("startOffset",-this.text_offset),this.has_shadow&&this.$refs.shadowTextPath.setAttribute("startOffset",-this.text_offset)),this.paused||requestAnimationFrame(this.animate.bind(this))}});
2//# sourceMappingURL=/cdn/shop/t/92/assets/curved-text.js.map?v=158299385405468649231776185660

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.