PageSourceSearch

https://candy.ai/assets/application-8e0f15c7ab8015fa09b9283587ea3992a13e25d296abc53659a4a68d93893d7e.js

js candy.ai collected 2026-09-26 02:59:33 UTC 1,886,553 bytes, 442 lines download raw bytes

1(()=>{var tL=Object.create;var Mf=Object.defineProperty;var iL=Object.getOwnPropertyDescriptor;var sL=Object.getOwnPropertyNames;var rL=Object.getPrototypeOf,aL=Object.prototype.hasOwnProperty;var vi=(i,s,r)=>()=>{if(r)throw r[0];try{return i&&(s=i(i=0)),s}catch(a){throw r=[a],a}};var nL=(i,s)=>()=>{try{return s||i((s={exports:{}}).exports,s),s.exports}catch(r){throw s=0,r}},vy=(i,s)=>{for(var r in s)Mf(i,r,{get:s[r],enumerable:!0})},oL=(i,s,r,a)=>{if(s&&typeof s=="object"||typeof s=="function")for(let n of sL(s))!aL.call(i,n)&&n!==r&&Mf(i,n,{get:()=>s[n],enumerable:!(a=iL(s,n))||a.enumerable});return i};var lL=(i,s,r)=>(r=i!=null?tL(rL(i)):{},oL(s||!i||!i.__esModule?Mf(r,"default",{value:i,enumerable:!0}):r,i));var ts,In=vi(()=>{ts={logger:typeof console<"u"?console:void 0,WebSocket:typeof WebSocket<"u"?WebSocket:void 0}});var $e,js=vi(()=>{In();$e={log(...i){this.enabled&&(i.push(Date.now()),ts.logger.log("[ActionCable]",...i))}}});var Dr,An,Rr,Pn,gv=vi(()=>{js();Dr=()=>new Date().getTime(),An=i=>(Dr()-i)/1e3,Rr=class{constructor(s){this.visibilityDidChange=this.visibilityDidChange.bind(this),this.connection=s,this.reconnectAttempts=0}start(){this.isRunning()||(this.startedAt=Dr(),delete this.stoppedAt,this.startPolling(),addEventListener("visibilitychange",this.visibilityDidChange),$e.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`))}stop(){this.isRunning()&&(this.stoppedAt=Dr(),this.stopPolling(),removeEventListener("visibilitychange",this.visibilityDidChange),$e.log("ConnectionMonitor stopped"))}isRunning(){return this.startedAt&&!this.stoppedAt}recordMessage(){this.pingedAt=Dr()}recordConnect(){this.reconnectAttempts=0,delete this.disconnectedAt,$e.log("ConnectionMonitor recorded connect")}recordDisconnect(){this.disconnectedAt=Dr(),$e.log("ConnectionMonitor recorded disconnect")}startPolling(){this.stopPolling(),this.poll()}stopPolling(){clearTimeout(this.pollTimeout)}poll(){this.pollTimeout=setTimeout(()=>{this.reconnectIfStale(),this.poll()},this.getPollInterval())}getPollInterval(){let{staleThreshold:s,reconnectionBackoffRate:r}=this.constructor,a=Math.pow(1+r,Math.min(this.reconnectAttempts,10)),l=(this.reconnectAttempts===0?1:r)*Math.random();return s*1e3*a*(1+l)}reconnectIfStale(){this.connectionIsStale()&&($e.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${An(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`),this.reconnectAttempts++,this.disconnectedRecently()?$e.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${An(this.disconnectedAt)} s`):($e.log("ConnectionMonitor reopening"),this.connection.reopen()))}get refreshedAt(){return this.pingedAt?this.pingedAt:this.startedAt}connectionIsStale(){return An(this.refreshedAt)>this.constructor.staleThreshold}disconnectedRecently(){return this.disconnectedAt&&An(this.disconnectedAt)<this.constructor.staleThreshold}visibilityDidChange(){document.visibilityState==="visible"&&setTimeout(()=>{(this.connectionIsStale()||!this.connection.isOpen())&&($e.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`),this.connection.reopen())},200)}};Rr.staleThreshold=6;Rr.reconnectionBackoffRate=.15;Pn=Rr});var Nr,mv=vi(()=>{Nr={message_types:{welcome:"welcome",disconnect:"disconnect",ping:"ping",confirmation:"confirm_subscription",rejection:"reject_subscription"},disconnect_reasons:{unauthorized:"unauthorized",invalid_request:"invalid_request",server_restart:"server_restart",remote:"remote"},default_mount_path:"/cable",protocols:["actioncable-v1-json","actioncable-unsupported"]}});var Ur,pv,mk,Zy,Hr,Vn,fv=vi(()=>{In();gv();mv();js();({message_types:Ur,protocols:pv}=Nr),mk=pv.slice(0,pv.length-1),Zy=[].indexOf,Hr=class{constructor(s){this.open=this.open.bind(this),this.consumer=s,this.subscriptions=this.consumer.subscriptions,this.monitor=new Pn(this),this.disconnected=!0}send(s){return this.isOpen()?(this.webSocket.send(JSON.stringify(s)),!0):!1}open(){if(this.isActive())return $e.log(`Attempted to open WebSocket, but existing socket is ${this.get
1State()}`),!1;{let s=[...pv,...this.consumer.subprotocols||[]];return $e.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${s}`),this.webSocket&&this.uninstallEventHandlers(),this.webSocket=new ts.WebSocket(this.consumer.url,s),this.installEventHandlers(),this.monitor.start(),!0}}close({allowReconnect:s}={allowReconnect:!0}){if(s||this.monitor.stop(),this.isOpen())return this.webSocket.close()}reopen(){if($e.log(`Reopening WebSocket, current state is ${this.getState()}`),this.isActive())try{return this.close()}catch(s){$e.log("Failed to reopen WebSocket",s)}finally{$e.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`),setTimeout(this.open,this.constructor.reopenDelay)}else return this.open()}getProtocol(){if(this.webSocket)return this.webSocket.protocol}isOpen(){return this.isState("open")}isActive(){return this.isState("open","connecting")}triedToReconnect(){return this.monitor.reconnectAttempts>0}isProtocolSupported(){return Zy.call(mk,this.getProtocol())>=0}isState(...s){return Zy.call(s,this.getState())>=0}getState(){if(this.webSocket){for(let s in ts.WebSocket)if(ts.WebSocket[s]===this.webSocket.readyState)return s.toLowerCase()}return null}installEventHandlers(){for(let s in this.events){let r=this.events[s].bind(this);this.webSocket[`on${s}`]=r}}uninstallEventHandlers(){for(let s in this.events)this.webSocket[`on${s}`]=function(){}}};Hr.reopenDelay=500;Hr.prototype.events={message(i){if(!this.isProtocolSupported())return;let{identifier:s,message:r,reason:a,reconnect:n,type:l}=JSON.parse(i.data);switch(this.monitor.recordMessage(),l){case Ur.welcome:return this.triedToReconnect()&&(this.reconnectAttempted=!0),this.monitor.recordConnect(),this.subscriptions.reload();case Ur.disconnect:return $e.log(`Disconnecting. Reason: ${a}`),this.close({allowReconnect:n});case Ur.ping:return null;case Ur.confirmation:return this.subscriptions.confirmSubscription(s),this.reconnectAttempted?(this.reconnectAttempted=!1,this.subscriptions.notify(s,"connected",{reconnected:!0})):this.subscriptions.notify(s,"connected",{reconnected:!1});case Ur.rejection:return this.subscriptions.reject(s);default:return this.subscriptions.notify(s,"received",r)}},open(){if($e.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`),this.disconnected=!1,!this.isProtocolSupported())return $e.log("Protocol is unsupported. Stopping monitor and disconnecting."),this.close({allowReconnect:!1})},close(i){if($e.log("WebSocket onclose event"),!this.disconnected)return this.disconnected=!0,this.monitor.recordDisconnect(),this.subscriptions.notifyAll("disconnected",{willAttemptReconnect:this.monitor.isRunning()})},error(){$e.log("WebSocket onerror event")}};Vn=Hr});var pk,vs,vv=vi(()=>{pk=function(i,s){if(s!=null)for(let r in s){let a=s[r];i[r]=a}return i},vs=class{constructor(s,r={},a){this.consumer=s,this.identifier=JSON.stringify(r),pk(this,a)}perform(s,r={}){return r.action=s,this.send(r)}send(s){return this.consumer.send({command:"message",identifier:this.identifier,data:JSON.stringify(s)})}unsubscribe(){return this.consumer.subscriptions.remove(this)}}});var Tv,Mn,bv=vi(()=>{js();Tv=class{constructor(s){this.subscriptions=s,this.pendingSubscriptions=[]}guarantee(s){this.pendingSubscriptions.indexOf(s)==-1?($e.log(`SubscriptionGuarantor guaranteeing ${s.identifier}`),this.pendingSubscriptions.push(s)):$e.log(`SubscriptionGuarantor already guaranteeing ${s.identifier}`),this.startGuaranteeing()}forget(s){$e.log(`SubscriptionGuarantor forgetting ${s.identifier}`),this.pendingSubscriptions=this.pendingSubscriptions.filter(r=>r!==s)}startGuaranteeing(){this.stopGuaranteeing(),this.retrySubscribing()}stopGuaranteeing(){clearTimeout(this.retryTimeout)}retrySubscribing(){this.retryTimeout=setTimeout(()=>{this.subscriptions&&typeof this.subscriptions.subscribe=="function"&&this.pendingSubscriptions.map(s=>{$e.log(`SubscriptionGuarantor resubscribing ${s.identifier}`),this.subscriptions.subscribe(s)})},500)}},Mn=Tv});var Ts,yv=vi(()=>{vv();bv();js();Ts=class{constructor(s){this.consumer=s,this.guarantor=new Mn(this),this.subscriptions=[]}create(s,r){let a=s,n=typeof a=="object"?a:{channel:a},l=new vs(this.consumer,n,r);return this.add(l)}add(s){return this.subscriptions.push(s),this.consumer.ensureActiveConnection(),this.notify(s,"initialized"),this.subscribe(s),s}remove(s){return this.forget(s),this.findAll(s.identifier).length||this.sendCommand(s,"unsubscribe"),s}reject(s){return this.findAll(s).map(r=>(this.forget(r),this.notify(r,"rejected"),r))}forget(s){return this.guarantor.forget(s),this.subscriptions=this.subscriptions.filter(r=>r!==s),s}findAll(s){return this.subscriptions.filter(r=>r.identifier===s)}reload(){return this.subscriptions.map(s=>this.subscribe(s))}notifyAll(s,...r){return this.subscriptions.map(a=>this.notify(a,s,...r))}notify(s,r,...a){let n;
1return typeof s=="string"?n=this.findAll(s):n=[s],n.map(l=>typeof l[r]=="function"?l[r](...a):void 0)}subscribe(s){this.sendCommand(s,"subscribe")&&this.guarantor.guarantee(s)}confirmSubscription(s){$e.log(`Subscription confirmed ${s}`),this.findAll(s).map(r=>this.guarantor.forget(r))}sendCommand(s,r){let{identifier:a}=s;return this.consumer.send({command:r,identifier:a})}}});function Sv(i){if(typeof i=="function"&&(i=i()),i&&!/^wss?:/i.test(i)){let s=document.createElement("a");return s.href=i,s.href=s.href,s.protocol=s.protocol.replace("http","ws"),s.href}else return i}var Ks,eS=vi(()=>{fv();yv();Ks=class{constructor(s){this._url=s,this.subscriptions=new Ts(this),this.connection=new Vn(this),this.subprotocols=[]}get url(){return Sv(this._url)}send(s){return this.connection.send(s)}connect(){return this.connection.open()}disconnect(){return this.connection.close({allowReconnect:!1})}ensureActiveConnection(){if(!this.connection.isActive())return this.connection.open()}addSubProtocol(s){this.subprotocols=[...this.subprotocols,s]}}});var iS={};vy(iS,{Connection:()=>Vn,ConnectionMonitor:()=>Pn,Consumer:()=>Ks,INTERNAL:()=>Nr,Subscription:()=>vs,SubscriptionGuarantor:()=>Mn,Subscriptions:()=>Ts,adapters:()=>ts,createConsumer:()=>fk,createWebSocketURL:()=>Sv,getConfig:()=>tS,logger:()=>$e});function fk(i=tS("url")||Nr.default_mount_path){return new Ks(i)}function tS(i){let s=document.head.querySelector(`meta[name='action-cable-${i}']`);if(s)return s.getAttribute("content")}var sS=vi(()=>{fv();gv();eS();mv();vv();yv();bv();In();js()});var vw=nL((ha,ah)=>{typeof document<"u"&&typeof navigator<"u"&&(function(i,s){typeof ha=="object"&&typeof ah<"u"?ah.exports=s():typeof define=="function"&&define.amd?define(s):(i=typeof globalThis<"u"?globalThis:i||self,i.lottie=s())})(ha,(function(){"use strict";var i="http://www.w3.org/2000/svg",s="",r=!1,a=-999999,n=function(h){r=!!h},l=function(){return r},d=function(h){s=h},m=function(){return s};function v(o){return document.createElement(o)}function E(o,h){var c,g=o.length,f;for(c=0;c<g;c+=1){f=o[c].prototype;for(var p in f)Object.prototype.hasOwnProperty.call(f,p)&&(h.prototype[p]=f[p])}}function D(o,h){return Object.getOwnPropertyDescriptor(o,h)}function R(o){function h(){}return h.prototype=o,h}var W=(function(){function o(h){this.audios=[],this.audioFactory=h,this._volume=1,this._isMuted=!1}return o.prototype={addAudio:function(c){this.audios.push(c)},pause:function(){var c,g=this.audios.length;for(c=0;c<g;c+=1)this.audios[c].pause()},resume:function(){var c,g=this.audios.length;for(c=0;c<g;c+=1)this.audios[c].resume()},setRate:function(c){var g,f=this.audios.length;for(g=0;g<f;g+=1)this.audios[g].setRate(c)},createAudio:function(c){return this.audioFactory?this.audioFactory(c):window.Howl?new window.Howl({src:[c]}):{isPlaying:!1,play:function(){this.isPlaying=!0},seek:function(){this.isPlaying=!1},playing:function(){},rate:function(){},setVolume:function(){}}},setAudioFactory:function(c){this.audioFactory=c},setVolume:function(c){this._volume=c,this._updateVolume()},mute:function(){this._isMuted=!0,this._updateVolume()},unmute:function(){this._isMuted=!1,this._updateVolume()},getVolume:function(){return this._volume},_updateVolume:function(){var c,g=this.audios.length;for(c=0;c<g;c+=1)this.audios[c].volume(this._volume*(this._isMuted?0:1))}},function(){return new o}})(),Q=(function(){function o(c,g){var f=0,p=[],y;switch(c){case"int16":case"uint8c":y=1;break;default:y=1.1;break}for(f=0;f<g;f+=1)p.push(y);return p}function h(c,g){return c==="float32"?new Float32Array(g):c==="int16"?new Int16Array(g):c==="uint8c"?new Uint8ClampedArray(g):o(c,g)}return typeof Uint8ClampedArray=="function"&&typeof Float32Array=="function"?h:o})();function X(o){return Array.apply(null,{length:o})}function ie(o){"@babel/helpers - typeof";return ie=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(h){return typeof h}:function(h){return h&&typeof Symbol=="function"&&h.constructor===Symbol&&h!==Symbol.prototype?"symbol":typeof h},ie(o)}var ce=!0,oe=null,Z=null,se="",J=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),ee=!1,re=Math.pow,he=M
vendor: 43,238 bytes, lines 1-2
1ath.sqrt,ge=Math.floor,le=Math.max,Te=Math.min,Le={};(function(){var o=["abs","acos","acosh","asin","asinh","atan","atanh","atan2","ceil","cbrt","expm1","clz32","cos","cosh","exp","floor","fround","hypot","imul","log","log1p","log2","log10","max","min","pow","random","round","sign","sin","sinh","sqrt","tan","tanh","trunc","E","LN10","LN2","LOG10E","LOG2E","PI","SQRT1_2","SQRT2"],h,c=o.length;for(h=0;h<c;h+=1)Le[o[h]]=Math[o[h]]})();function ze(){return{}}Le.random=Math.random,Le.abs=function(o){var h=ie(o);if(h==="object"&&o.length){var c=X(o.length),g,f=o.length;for(g=0;g<f;g+=1)c[g]=Math.abs(o[g]);return c}return Math.abs(o)};var Qe=150,_e=Math.PI/180,Lt=.5519;function Tt(o){ee=!!o}function bt(o){return ee?Math.round(o):o}function Ps(o){o.style.position="absolute",o.style.top=0,o.style.left=0,o.style.display="block",o.style.transformOrigin="0 0",o.style.webkitTransformOrigin="0 0",o.style.backfaceVisibility="visible",o.style.webkitBackfaceVisibility="visible",o.style.transformStyle="preserve-3d",o.style.webkitTransformStyle="preserve-3d",o.style.mozTransformStyle="preserve-3d"}function dr(o,h,c,g){this.type=o,this.currentTime=h,this.totalTime=c,this.direction=g<0?-1:1}function ff(o,h){this.type=o,this.direction=h<0?-1:1}function ur(o,h,c,g){this.type=o,this.currentLoop=c,this.totalLoops=h,this.direction=g<0?-1:1}function qa(o,h,c){this.type=o,this.firstFrame=h,this.totalFrames=c}function kb(o,h){this.type=o,this.target=h}function tE(o,h){this.type="renderFrameError",this.nativeError=o,this.currentTime=h}function iE(o){this.type="configError",this.nativeError=o}function Y_(o,h){this.type=o,this.nativeError=h}var Ft=(function(){var o=0;return function(){return o+=1,se+"__lottie_element_"+o}})();function vf(o,h,c){var g,f,p,y,k,S,P,_;switch(y=Math.floor(o*6),k=o*6-y,S=c*(1-h),P=c*(1-k*h),_=c*(1-(1-k)*h),y%6){case 0:g=c,f=_,p=S;break;case 1:g=P,f=c,p=S;break;case 2:g=S,f=c,p=_;break;case 3:g=S,f=P,p=c;break;case 4:g=_,f=S,p=c;break;case 5:g=c,f=S,p=P;break;default:break}return[g,f,p]}function Tf(o,h,c){var g=Math.max(o,h,c),f=Math.min(o,h,c),p=g-f,y,k=g===0?0:p/g,S=g/255;switch(g){case f:y=0;break;case o:y=h-c+p*(h<c?6:0),y/=6*p;break;case h:y=c-o+p*2,y/=6*p;break;case c:y=o-h+p*4,y/=6*p;break;default:break}return[y,k,S]}function xb(o,h){var c=Tf(o[0]*255,o[1]*255,o[2]*255);return c[1]+=h,c[1]>1?c[1]=1:c[1]<=0&&(c[1]=0),vf(c[0],c[1],c[2])}function Ib(o,h){var c=Tf(o[0]*255,o[1]*255,o[2]*255);return c[2]+=h,c[2]>1?c[2]=1:c[2]<0&&(c[2]=0),vf(c[0],c[1],c[2])}function Ab(o,h){var c=Tf(o[0]*255,o[1]*255,o[2]*255);return c[0]+=h/360,c[0]>1?c[0]-=1:c[0]<0&&(c[0]+=1),vf(c[0],c[1],c[2])}var X_=(function(){var o=[],h,c;for(h=0;h<256;h+=1)c=h.toString(16),o[h]=c.length===1?"0"+c:c;return function(g,f,p){return g<0&&(g=0),f<0&&(f=0),p<0&&(p=0),"#"+o[g]+o[f]+o[p]}})(),sE=function(h){ce=!!h},rE=function(){return ce},aE=function(h){oe=h},$a=function(){return oe},Q_=function(h){Z=h},Pb=function(){return Z},Ga=function(h){Qe=h},gr=function(){return Qe},nE=function(h){se=h},J_=function(){return se};function Ie(o){return document.createElementNS(i,o)}function bf(o){"@babel/helpers - typeof";return bf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(h){return typeof h}:function(h){return h&&typeof Symbol=="function"&&h.constructor===Symbol&&h!==Symbol.prototype?"symbol":typeof h},bf(o)}var mr=(function(){var o=1,h=[],c,g,f={onmessage:function(){},postMessage:function(B){c({data:B})}},p={postMessage:function(B){f.onmessage({data:B})}};function y(L){if(window.Worker&&window.Blob&&l()){var B=new Blob(["var _workerSelf = self; self.onmessage = ",L.toString()],{type:"text/javascript"}),N=URL.createObjectURL(B);return new Worker(N)}return c=L,f}function k(){g||(g=y(function(B){function N(){function G(ae,I){var F,b,w=ae.length,z,q,fe,Ce;for(b=0;b<w;b+=1)if(F=ae[b],"ks"in F&&!F.completed){if(F.completed=!0,F.hasMask){var xe=F.masksProperties;for(q=xe.length,z=0;z<q;z+=1)if(xe[z].pt.k.i)V(xe[z].pt.k);else for(Ce=xe[z].pt.k.length,fe=0;fe<Ce;fe+=1)xe[z].pt.k[fe].s&&V(xe[z].pt.k[fe].s[0]),xe[z].pt.k[fe].e&&V(xe[z].pt.k[fe].e[0])}F.ty===0?(F.layers=C(F.refId,I),G(F.layers,I)):F.ty===4?x(F.shapes):F.ty===5&&Ae(F)}}function M(ae,I){if(ae){var F=0,b=ae.length;for(F=0;F<b;F+=1)ae[F].t===1&&(ae[F].data.layers=C(ae[F].data.refId,I),G(ae[F].data.layers,I))}}function A(ae,I){for(var F=0,b=I.length;F<b;){if(I[F].id===ae)return I[F];F+=1}return null}function C(ae,I){var F=A(ae,I);return F?F.layers.__used?JSON.parse(JSON.stringify(F.layers)):(F.layers.__used=!0,F.layers):null}function x(ae){var I,F=ae.length,b,w;for(I=F-1;I>=0;I-=1)if(ae[I].ty==="sh")if(ae[I].ks.k.i)V(ae[I].ks.k);else for(w=ae[I].ks.k.length,b=0;b<w;b+=1)ae[I].ks.k[b].s&&V(ae[I].ks.k[b].s[0]),ae[I].ks.k[b].e&&V(ae[I].ks.k[b].e[0]);else ae[I].ty==="gr"&&x(ae[I].it)}function V(ae){var I,F=ae.i.length;for(I=0;I<F;I+=1)ae.i[I][0]+=ae.v[I][0],ae.i[I][1]+=ae.v[I][1],ae.o[I][0]+=ae.v[I][0],ae.o[I][1]+=ae.v[I][1]}function U(ae,I){var F=I?I.split("."):[100,100,100];return ae[0]>F[0]?!0:F[0]>ae[0]?!1:ae[1]>F[1]?!0:F[1]>ae[1]?!1:ae[2]>F[2]?!0:F[2]>ae[2]?!1:null}var j=(function(){var ae=[4,4,14];function I(b){var w=b.t.d;b.t.d={k:[{s:w,t:0}]}}function F(b){var w,z=b.length;for(w=0;w<z;w+=1)b[w].ty===5&&I(b[w])}return function(b){if(U(ae,b.v)&&(F(b.layers),b.assets)){var w,z=b.assets.length;for(w=0;w<z;w+=1)b.assets[w].layers&&F(b.assets[w].layers)}}})(),Y=(function(){var ae=[4,7,99];return function(I){if(I.chars&&!U(ae,I.v)){var F,b=I.chars.length;for(F=0;F<b;F+=1){var w=I.chars[F];w.data&&w.data.shapes&&(x(w.data.shapes),w.data.ip=0,w.data.op=99999,w.data.st=0,w.data.sr=1,w.data.ks={p:{k:[0,0],a:0},s:{k:[100,100],a:0},a:{k:[0,0],a:0},r:{k:0,a:0},o:{k:100,a:0}},I.chars[F].t||(w.data.shapes.push({ty:"no"}),w.data.shapes[0].it.push({p:{k:[0,0],a:0},s:{k:[100,100],a:0},a:{k:[0,0],a:0},r:{k:0,a:0},o:{k:100,a:0},sk:{k:0,a:0},sa:{k:0,a:0},ty:"tr"})))}}}})(),ne=(function(){var ae=[5,7,15];function I(b){var w=b.t.p;typeof w.a=="number"&&(w.a={a:0,k:w.a}),typeof w.p=="number"&&(w.p={a:0,k:w.p}),typeof w.r=="number"&&(w.r={a:0,k:w.r})}function F(b){var w,z=b.length;for(w=0;w<z;w+=1)b[w].ty===5&&I(b[w])}return function(b){if(U(ae,b.v)&&(F(b.layers),b.assets)){var w,z=b.assets.length;for(w=0;w<z;w+=1)b.assets[w].layers&&F(b.assets[w].layers)}}})(),ke=(function(){var ae=[4,1,9];function I(b){var w,z=b.length,q,fe;for(w=0;w<z;w+=1)if(b[w].ty==="gr")I(b[w].it);else if(b[w].ty==="fl"||b[w].ty==="st")if(b[w].c.k&&b[w].c.k[0].i)for(fe=b[w].c.k.length,q=0;q<fe;q+=1)b[w].c.k[q].s&&(b[w].c.k[q].s[0]/=255,b[w].c.k[q].s[1]/=255,b[w].c.k[q].s[2]/=255,b[w].c.k[q].s[3]/=255),b[w].c.k[q].e&&(b[w].c.k[q].e[0]/=255,b[w].c.k[q].e[1]/=255,b[w].c.k[q].e[2]/=255,b[w].c.k[q].e[3]/=255);else b[w].c.k[0]/=255,b[w].c.k[1]/=255,b[w].c.k[2]/=255,b[w].c.k[3]/=255}function F(b){var w,z=b.length;for(w=0;w<z;w+=1)b[w].ty===4&&I(b[w].shapes)}return function(b){if(U(ae,b.v)&&(F(b.layers),b.assets)){var w,z=b.assets.length;for(w=0;w<z;w+=1)b.assets[w].layers&&F(b.assets[w].layers)}}})(),Se=(function(){var ae=[4,4,18];function I(b){var w,z=b.length,q,fe;for(w=z-1;w>=0;w-=1)if(b[w].ty==="sh")if(b[w].ks.k.i)b[w].ks.k.c=b[w].closed;else for(fe=b[w].ks.k.length,q=0;q<fe;q+=1)b[w].ks.k[q].s&&(b[w].ks.k[q].s[0].c=b[w].closed),b[w].ks.k[q].e&&(b[w].ks.k[q].e[0].c=b[w].closed);else b[w].ty==="gr"&&I(b[w].it)}function F(b){var w,z,q=b.length,fe,Ce,xe,Ne;for(z=0;z<q;z+=1){if(w=b[z],w.hasMask){var Ue=w.masksProperties;for(Ce=Ue.length,fe=0;fe<Ce;fe+=1)if(Ue[fe].pt.k.i)Ue[fe].pt.k.c=Ue[fe].cl;else for(Ne=Ue[fe].pt.k.length,xe=0;xe<Ne;xe+=1)Ue[fe].pt.k[xe].s&&(Ue[fe].pt.k[xe].s[0].c=Ue[fe].cl),Ue[fe].pt.k[xe].e&&(Ue[fe].pt.k[xe].e[0].c=Ue[fe].cl)}w.ty===4&&I(w.shapes)}}return function(b){if(U(ae,b.v)&&(F(b.layers),b.assets)){var w,z=b.assets.length;for(w=0;w<z;w+=1)b.assets[w].layers&&F(b.assets[w].layers)}}})();function de(ae){ae.__complete||(ke(ae),j(ae),Y(ae),ne(ae),Se(ae),G(ae.layers,ae.assets),M(ae.chars,ae.assets),ae.__complete=!0)}function Ae(ae){ae.t.a.length===0&&"m"in ae.t.p}var be={};return be.completeData=de,be.checkColors=ke,be.checkChars=Y,be.checkPathProperties=ne,be.checkShapes=Se,be.completeLayers=G,be}if(p.dataManager||(p.dataManager=N()),p.assetLoader||(p.assetLoader=(function(){function G(A){var C=A.getResponseHeader("content-type");return C&&A.responseType==="json"&&C.indexOf("json")!==-1||A.response&&bf(A.response)==="object"?A.response:A.response&&typeof A.response=="string"?JSON.parse(A.response):A.responseText?JSON.parse(A.responseText):null}function M(A,C,x,V){var U,j=new XMLHttpRequest;try{j.responseType="json"}catch{}j.onreadystatechange=function(){if(j.readyState===4)if(j.status===200)U=G(j),x(U);else try{U=G(j),x(U)}catch(Y){V&&V(Y)}};try{j.open(["G","E","T"].join(""),A,!0)}catch{j.open(["G","E","T"].join(""),C+"/"+A,!0)}j.send()}return{load:M}})()),B.data.type==="loadAnimation")p.assetLoader.load(B.data.path,B.data.fullPath,function(G){p.dataManager.completeData(G),p.postMessage({id:B.data.id,payload:G,status:"success"})},function(){p.postMessage({id:B.data.id,status:"error"})});else if(B.data.type==="complete"){var O=B.data.animation;p.dataManager.completeData(O),p.postMessage({id:B.data.id,payload:O,status:"success"})}else B.data.type==="loadData"&&p.assetLoader.load(B.data.path,B.data.fullPath,function(G){p.postMessage({id:B.data.id,payload:G,status:"success"})},function(){p.postMessage({id:B.data.id,status:"error"})})}),g.onmessage=function(L){var B=L.data,N=B.id,O=h[N];h[N]=null,B.status==="success"?O.onComplete(B.payload):O.onError&&O.onError()})}function S(L,B){o+=1;var N="processId_"+o;return h[N]={onComplete:L,onError:B},N}function P(L,B,N){k();var O=S(B,N);g.postMessage({type:"loadAnimation",path:L,fullPath:window.location.origin+window.location.pathname,id:O})}function _(L,B,N){k();var O=S(B,N);g.postMessage({type:"loadData",path:L,fullPath:window.location.origin+window.location.pathname,id:O})}function K(L,B,N){k();var O=S(B,N);g.postMessage({type:"complete",animation:L,id:O})}return{loadAnimation:P,loadData:_,completeAnimation:K}})(),oE=(function(){var o=(function(){var M=v("canvas");M.width=1,M.height=1;var A=M.getContext("2d");return A.fillStyle="rgba(0,0,0,0)",A.fillRect(0,0,1,1),M})();function h(){this.loadedAssets+=1,this.loadedAssets===this.totalImages&&this.loadedFootagesCount===this.totalFootages&&this.imagesLoadedCb&&this.imagesLoadedCb(null)}function c(){this.loadedFootagesCount+=1,this.loadedAssets===this.totalImages&&this.loadedFootagesCount===this.totalFootages&&this.imagesLoadedCb&&this.imagesLoadedCb(null)}function g(M,A,C){var x="";if(M.e)x=M.p;else if(A){var V=M.p;V.indexOf("images/")!==-1&&(V=V.split("/")[1]),x=A+V}else x=C,x+=M.u?M.u:"",x+=M.p;return x}function f(M){var A=0,C=setInterval(function(){var x=M.getBBox();(x.width||A>500)&&(this._imageLoaded(),clearInterval(C)),A+=1}.bind(this),50)}function p(M){var A=g(M,this.assetsPath,this.path),C=Ie("image");J?this.testImageLoaded(C):C.addEventListener("load",this._imageLoaded,!1),C.addEventListener("error",function(){x.img=o,this._imageLoaded()}.bind(this),!1),C.setAttributeNS("http://www.w3.org/1999/xlink","href",A),this._elementHelper.append?this._elementHelper.append(C):this._elementHelper.appendChild(C);var x={img:C,assetData:M};return x}function y(M){var A=g(M,this.assetsPath,this.path),C=v("img");C.crossOrigin="anonymous",C.addEventListener("load",this._imageLoaded,!1),C.addEventListener("error",function(){x.img=o,this._imageLoaded()}.bind(this),!1),C.src=A;var x={img:C,assetData:M};return x}function k(M){var A={assetData:M},C=g(M,this.assetsPath,this.path);return mr.loadData(C,function(x){A.img=x,this._footageLoaded()}.bind(this),function(){A.img={},this._footageLoaded()}.bind(this)),A}function S(M,A){this.imagesLoadedCb=A;var C,x=M.length;for(C=0;C<x;C+=1)M[C].layers||(!M[C].t||M[C].t==="seq"?(this.totalImages+=1,this.images.push(this._createImageData(M[C]))):M[C].t===3&&(this.totalFootages+=1,this.images.push(this.createFootageData(M[C]))))}function P(M){this.path=M||""}function _(M){this.assetsPath=M||""}function K(M){for(var A=0,C=this.images.length;A<C;){if(this.images[A].assetData===M)return this.images[A].img;A+=1}return null}function L(){this.imagesLoadedCb=null,this.images.length=0}function B(){return this.totalImages===this.loadedAssets}function N(){return this.totalFootages===this.loadedFootagesCount}function O(M,A){M==="svg"?(this._elementHelper=A,this._createImageData=this.createImageData.bind(this)):this._createImageData=this.createImgData.bind(this)}function G(){this._imageLoaded=h.bind(this),this._footageLoaded=c.bind(this),this.testImageLoaded=f.bind(this),this.createFootageData=k.bind(this),this.assetsPath="",this.path="",this.totalImages=0,this.totalFootages=0,this.loadedAssets=0,this.loadedFootagesCount=0,this.imagesLoadedCb=null,this.images=[]}return G.prototype={loadAssets:S,setAssetsPath:_,setPath:P,loadedImages:B,loadedFootages:N,destroy:L,getAsset:K,createImgData:y,createImageData:p,imageLoaded:h,footageLoaded:c,setCacheType:O},G})();function Vb(){}Vb.prototype={triggerEvent:function(h,c){if(this._cbs[h])for(var g=this._cbs[h],f=0;f<g.length;f+=1)g[f](c)},addEventListener:function(h,c){return this._cbs[h]||(this._cbs[h]=[]),this._cbs[h].push(c),function(){this.removeEventListener(h,c)}.bind(this)},removeEventListener:function(h,c){if(!c)this._cbs[h]=null;else if(this._cbs[h]){for(var g=0,f=this._cbs[h].length;g<f;)this._cbs[h][g]===c&&(this._cbs[h].splice(g,1),g-=1,f-=1),g+=1;this._cbs[h].length||(this._cbs[h]=null)}}};var lE=(function(){function o(h){for(var c=h.split(`\r
2`),g={},f,p=0,y=0;y<c.length;y+=1)f=c[y].split(":"),f.length===2&&(g[f[0]]=f[1].trim(),p+=1);if(p===0)throw new Error;return g}return function(h){for(var c=[],g=0;g<h.length;g+=1){var f=h[g],p={time:f.tm,duration:f.dr};try{p.payload=JSON.parse(h[g].cm)}catch{try{p.payload=o(h[g].cm)}catch{p.payload={name:h[g].cm}}}c.push(p)}return c}})(),hE=(function(){function o(h){this.compositions.push(h)}return function(){function h(c){for(var g=0,f=this.compositions.length;g<f;){if(this.compositions[g].data&&this.compositions[g].data.nm===c)return this.compositions[g].prepareFrame&&this.compositions[g].data.xt&&this.compositions[g].prepareFrame(this.currentFrame),this.compositions[g].compInterface;g+=1}return null}return h.compositions=[],h.currentFrame=0,h.registerComposition=o,h}})(),pr={},cE=function(h,c){pr[h]=c};function dE(o){return pr[o]}function uE(){if(pr.canvas)return"canvas";for(var o in pr)if(pr[o])return o;return""}function Wa(o){"@babel/helpers - typeof";return Wa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(h){return typeof h}:function(h){return h&&typeof Symbol=="function"&&h.constructor===Symbol&&h!==Symbol.prototype?"symbol":typeof h},Wa(o)}var we=function(){this._cbs=[],this.name="",this.path="",this.isLoaded=!1,this.currentFrame=0,this.currentRawFrame=0,this.firstFrame=0,this.totalFrames=0,this.frameRate=0,this.frameMult=0,this.playSpeed=1,this.playDirection=1,this.playCount=0,this.animationData={},this.assets=[],this.isPaused=!0,this.autoplay=!1,this.loop=!0,this.renderer=null,this.animationID=Ft(),this.assetsPath="",this.timeCompleted=0,this.segmentPos=0,this.isSubframeEnabled=rE(),this.segments=[],this._idle=!0,this._completedLoop=!1,this.projectInterface=hE(),this.imagePreloader=new oE,this.audioController=W(),this.markers=[],this.configAnimation=this.configAnimation.bind(this),this.onSetupError=this.onSetupError.bind(this),this.onSegmentComplete=this.onSegmentComplete.bind(this),this.drawnFrameEvent=new dr("drawnFrame",0,0,0),this.expressionsPlugin=$a()};E([Vb],we),we.prototype.setParams=function(o){(o.wrapper||o.container)&&(this.wrapper=o.wrapper||o.container);var h="svg";o.animType?h=o.animType:o.renderer&&(h=o.renderer);var c=dE(h);this.renderer=new c(this,o.rendererSettings),this.imagePreloader.setCacheType(h,this.renderer.globalData.defs),this.renderer.setProjectInterface(this.projectInterface),this.animType=h,o.loop===""||o.loop===null||o.loop===void 0||o.loop===!0?this.loop=!0:o.loop===!1?this.loop=!1:this.loop=parseInt(o.loop,10),this.autoplay="autoplay"in o?o.autoplay:!0,this.name=o.name?o.name:"",this.autoloadSegments=Object.prototype.hasOwnProperty.call(o,"autoloadSegments")?o.autoloadSegments:!0,this.assetsPath=o.assetsPath,this.initialSegment=o.initialSegment,o.audioFactory&&this.audioController.setAudioFactory(o.audioFactory),o.animationData?this.setupAnimation(o.animationData):o.path&&(o.path.lastIndexOf("\\")!==-1?this.path=o.path.substr(0,o.path.lastIndexOf("\\")+1):this.path=o.path.substr(0,o.path.lastIndexOf("/")+1),this.fileName=o.path.substr(o.path.lastIndexOf("/")+1),this.fileName=this.fileName.substr(0,this.fileName.lastIndexOf(".json")),mr.loadAnimation(o.path,this.configAnimation,this.onSetupError))},we.prototype.onSetupError=function(){this.trigger("data_failed")},we.prototype.setupAnimation=function(o){mr.completeAnimation(o,this.configAnimation)},we.prototype.setData=function(o,h){h&&Wa(h)!=="object"&&(h=JSON.parse(h));var c={wrapper:o,animationData:h},g=o.attributes;c.path=g.getNamedItem("data-animation-path")?g.getNamedItem("data-animation-path").value:g.getNamedItem("data-bm-path")?g.getNamedItem("data-bm-path").value:g.getNamedItem("bm-path")?g.getNamedItem("bm-path").value:"",c.animType=g.getNamedItem("data-anim-type")?g.getNamedItem("data-anim-type").value:g.getNamedItem("data-bm-type")?g.getNamedItem("data-bm-type").value:g.getNamedItem("bm-type")?g.getNamedItem("bm-type").value:g.getNamedItem("data-bm-renderer")?g.getNamedItem("data-bm-renderer").value:g.getNamedItem("bm-renderer")?g.getNamedItem("bm-renderer").value:uE()||"canvas";var f=g.getNamedItem("data-anim-loop")?g.getNamedItem("data-anim-loop").value:g.getNamedItem("data-bm-loop")?g.getNamedItem("data-bm-loop").value:g.getNamedItem("bm-loop")?g.getNamedItem("bm-loop").value:"";f==="false"?c.loop=!1:f==="true"?c.loop=!0:f!==""&&(c.loop=parseInt(f,10));var p=g.getNamedItem("data-anim-autoplay")?g.getNamedItem("data-anim-autoplay").value:g.getNamedItem("data-bm-autoplay")?g.getNamedItem("data-bm-autoplay").value:g.getNamedItem("bm-autoplay")?g.getNamedItem("bm-autoplay").value:!0;c.autoplay=p!=="false",c.name=g.getNamedItem("data-name")?g.getNamedItem("data-name").value:g.getNamedItem("data-bm-name")?g.getNamedItem("data-bm-name").value:g.getNamedItem("bm-name")?g.getNamedItem("bm-name").value:"";var y=g.getNamedItem("data-anim-prerender")?g.getNamedItem("data-anim-prerender").value:g.getNamedItem("data-bm-prerender")?g.getNamedItem("data-bm-prerender").value:g.getNamedItem("bm-prerender")?g.getNamedItem("bm-prerender").value:"";y==="false"&&(c.prerender=!1),c.path?this.setParams(c):this.trigger("destroy")},we.prototype.includeLayers=function(o){o.op>this.animationData.op&&(this.animationData.op=o.op,this.totalFrames=Math.floor(o.op-this.animationData.ip));var h=this.animationData.layers,c,g=h.length,f=o.layers,p,y=f.length;for(p=0;p<y;p+=1)for(c=0;c<g;){if(h[c].id===f[p].id){h[c]=f[p];break}c+=1}if((o.chars||o.fonts)&&(this.renderer.globalData.fontManager.addChars(o.chars),this.renderer.globalData.fontManager.addFonts(o.fonts,this.renderer.globalData.defs)),o.assets)for(g=o.assets.length,c=0;c<g;c+=1)this.animationData.assets.push(o.assets[c]);this.animationData.__complete=!1,mr.completeAnimation(this.animationData,this.onSegmentComplete)},we.prototype.onSegmentComplete=function(o){this.animationData=o;var h=$a();h&&h.initExpressions(this),this.loadNextSegment()},we.prototype.loadNextSegment=function(){var o=this.animationData.segments;if(!o||o.length===0||!this.autoloadSegments){this.trigger("data_ready"),this.timeCompleted=this.totalFrames;return}var h=o.shift();this.timeCompleted=h.time*this.frameRate;var c=this.path+this.fileName+"_"+this.segmentPos+".json";this.segmentPos+=1,mr.loadData(c,this.includeLayers.bind(this),function(){this.trigger("data_failed")}.bind(this))},we.prototype.loadSegments=function(){var o=this.animationData.segments;o||(this.timeCompleted=this.totalFrames),this.loadNextSegment()},we.prototype.imagesLoaded=function(){this.trigger("loaded_images"),this.checkLoaded()},we.prototype.preloadImages=function(){this.imagePreloader.setAssetsPath(this.assetsPath),this.imagePreloader.setPath(this.path),this.imagePreloader.loadAssets(this.animationData.assets,this.imagesLoaded.bind(this))},we.prototype.configAnimation=function(o){if(this.renderer)try{this.animationData=o,this.initialSegment?(this.totalFrames=Math.floor(this.initialSegment[1]-this.initialSegment[0]),this.firstFrame=Math.round(this.initialSegment[0])):(this.totalFrames=Math.floor(this.animationData.op-this.animationData.ip),this.firstFrame=Math.round(this.animationData.ip)),this.renderer.configAnimation(o),o.assets||(o.assets=[]),this.assets=this.animationData.assets,this.frameRate=this.animationData.fr,this.frameMult=this.animationData.fr/1e3,this.renderer.searchExtraCompositions(o.assets),this.markers=lE(o.markers||[]),this.trigger("config_ready"),this.preloadImages(),this.loadSegments(),this.updaFrameModifier(),this.waitForFontsLoaded(),this.isPaused&&this.audioController.pause()}catch(h){this.triggerConfigError(h)}},we.prototype.waitForFontsLoaded=function(){this.renderer&&(this.renderer.globalData.fontManager.isLoaded?this.checkLoaded():setTimeout(this.waitForFontsLoaded.bind(this),20))},we.prototype.checkLoaded=function(){if(!this.isLoaded&&this.renderer.globalData.fontManager.isLoaded&&(this.imagePreloader.loadedImages()||this.renderer.rendererType!=="canvas")&&this.imagePreloader.loadedFootages()){this.isLoaded=!0;var o=$a();o&&o.initExpressions(this),this.renderer.initItems(),setTimeout(function(){this.trigger("DOMLoaded")}.bind(this),0),this.gotoFrame(),this.autoplay&&this.play()}},we.prototype.resize=function(o,h){var c=typeof o=="number"?o:void 0,g=typeof h=="number"?h:void 0;this.renderer.updateContainerSize(c,g)},we.prototype.setSubframe=function(o){this.isSubframeEnabled=!!o},we.prototype.gotoFrame=function(){this.currentFrame=this.isSubframeEnabled?this.currentRawFrame:~~this.currentRawFrame,this.timeCompleted!==this.totalFrames&&this.currentFrame>this.timeCompleted&&(this.currentFrame=this.timeCompleted),this.trigger("enterFrame"),this.renderFrame(),this.trigger("drawnFrame")},we.prototype.renderFrame=function(){if(!(this.isLoaded===!1||!this.renderer))try{this.expressionsPlugin&&this.expressionsPlugin.resetFrame(),this.renderer.renderFrame(this.currentFrame+this.firstFrame)}catch(o){this.triggerRenderFrameError(o)}},we.prototype.play=function(o){o&&this.name!==o||this.isPaused===!0&&(this.isPaused=!1,this.trigger("_play"),this.audioController.resume(),this._idle&&(this._idle=!1,this.trigger("_active")))},we.prototype.pause=function(o){o&&this.name!==o||this.isPaused===!1&&(this.isPaused=!0,this.trigger("_pause"),this._idle=!0,this.trigger("_idle"),this.audioController.pause())},we.prototype.togglePause=function(o){o&&this.name!==o||(this.isPaused===!0?this.play():this.pause())},we.prototype.stop=function(o){o&&this.name!==o||(this.pause(),this.playCount=0,this._completedLoop=!1,this.setCurrentRawFrameValue(0))},we.prototype.getMarkerData=function(o){for(var h,c=0;c<this.markers.length;c+=1)if(h=this.markers[c],h.payload&&h.payload.name===o)return h;return null},we.prototype.goToAndStop=function(o,h,c){if(!(c&&this.name!==c)){var g=Number(o);if(isNaN(g)){var f=this.getMarkerData(o);f&&this.goToAndStop(f.time,!0)}else h?this.setCurrentRawFrameValue(o):this.setCurrentRawFrameValue(o*this.frameModifier);this.pause()}},we.prototype.goToAndPlay=function(o,h,c){if(!(c&&this.name!==c)){var g=Number(o);if(isNaN(g)){var f=this.getMarkerData(o);f&&(f.duration?this.playSegments([f.time,f.time+f.duration],!0):this.goToAndStop(f.time,!0))}else this.goToAndStop(g,h,c);this.play()}},we.prototype.advanceTime=function(o){if(!(this.isPaused===!0||this.isLoaded===!1)){var h=this.currentRawFrame+o*this.frameModifier,c=!1;h>=this.totalFrames-1&&this.frameModifier>0?!this.loop||this.playCount===this.loop?this.checkSegments(h>this.totalFrames?h%this.totalFrames:0)||(c=!0,h=this.totalFrames-1):h>=this.totalFrames?(this.playCount+=1,this.checkSegments(h%this.totalFrames)||(this.setCurrentRawFrameValue(h%this.totalFrames),this._completedLoop=!0,this.trigger("loopComplete"))):this.setCurrentRawFrameValue(h):h<0?this.checkSegments(h%this.totalFrames)||(this.loop&&!(this.playCount--<=0&&this.loop!==!0)?(this.setCurrentRawFrameValue(this.totalFrames+h%this.totalFrames),this._completedLoop?this.trigger("loopComplete"):this._completedLoop=!0):(c=!0,h=0)):this.setCurrentRawFrameValue(h),c&&(this.setCurrentRawFrameValue(h),this.pause(),this.trigger("complete"))}},we.prototype.adjustSegment=function(o,h){this.playCount=0,o[1]<o[0]?(this.frameModifier>0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(-1)),this.totalFrames=o[0]-o[1],this.timeCompleted=this.totalFrames,this.firstFrame=o[1],this.setCurrentRawFrameValue(this.totalFrames-.001-h)):o[1]>o[0]&&(this.frameModifier<0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(1)),this.totalFrames=o[1]-o[0],this.timeCompleted=this.totalFrames,this.firstFrame=o[0],this.setCurrentRawFrameValue(.001+h)),this.trigger("segmentStart")},we.prototype.setSegment=function(o,h){var c=-1;this.isPaused&&(this.currentRawFrame+this.firstFrame<o?c=o:this.currentRawFrame+this.firstFrame>h&&(c=h-o)),this.firstFrame=o,this.totalFrames=h-o,this.timeCompleted=this.totalFrames,c!==-1&&this.goToAndStop(c,!0)},we.prototype.playSegments=function(o,h){if(h&&(this.segments.length=0),Wa(o[0])==="object"){var c,g=o.length;for(c=0;c<g;c+=1)this.segments.push(o[c])}else this.segments.push(o);this.segments.length&&h&&this.adjustSegment(this.segments.shift(),0),this.isPaused&&this.play()},we.prototype.resetSegments=function(o){this.segments.length=0,this.segments.push([this.animationData.ip,this.animationData.op]),o&&this.checkSegments(0)},we.prototype.checkSegments=function(o){return this.segments.length?(this.adjustSegment(this.segments.shift(),o),!0):!1},we.prototype.destroy=function(o){o&&this.name!==o||!this.renderer||(this.renderer.destroy(),this.imagePreloader.destroy(),this.trigger("destroy"),this._cbs=null,this.onEnterFrame=null,this.onLoopComplete=null,this.onComplete=null,this.onSegmentStart=null,this.onDestroy=null,this.renderer=null,this.expressionsPlugin=null,this.imagePreloader=null,this.projectInterface=null)},we.prototype.setCurrentRawFrameValue=function(o){this.currentRawFrame=o,this.gotoFrame()},we.prototype.setSpeed=function(o){this.playSpeed=o,this.updaFrameModifier()},we.prototype.setDirection=function(o){this.playDirection=o<0?-1:1,this.updaFrameModifier()},we.prototype.setLoop=function(o){this.loop=o},we.prototype.setVolume=function(o,h){h&&this.name!==h||this.audioController.setVolume(o)},we.prototype.getVolume=function(){return this.audioController.getVolume()},we.prototype.mute=function(o){o&&this.name!==o||this.audioController.mute()},we.prototype.unmute=function(o){o&&this.name!==o||this.audioController.unmute()},we.prototype.updaFrameModifier=function(){this.frameModifier=this.frameMult*this.playSpeed*this.playDirection,this.audioController.setRate(this.playSpeed*this.playDirection)},we.prototype.getPath=function(){return this.path},we.prototype.getAssetsPath=function(o){var h="";if(o.e)h=o.p;else if(this.assetsPath){var c=o.p;c.indexOf("images/")!==-1&&(c=c.split("/")[1]),h=this.assetsPath+c}else h=this.path,h+=o.u?o.u:"",h+=o.p;return h},we.prototype.getAssetData=function(o){for(var h=0,c=this.assets.length;h<c;){if(o===this.assets[h].id)return this.assets[h];h+=1}return null},we.prototype.hide=function(){this.renderer.hide()},we.prototype.show=function(){this.renderer.show()},we.prototype.getDuration=function(o){return o?this.totalFrames:this.totalFrames/this.frameRate},we.prototype.updateDocumentData=function(o,h,c){try{var g=this.renderer.getElementByPath(o);g.updateDocumentData(h,c)}catch{}},we.prototype.trigger=function(o){if(this._cbs&&this._cbs[o])switch(o){case"enterFrame":this.triggerEvent(o,new dr(o,this.currentFrame,this.totalFrames,this.frameModifier));break;case"drawnFrame":this.drawnFrameEvent.currentTime=this.currentFrame,this.drawnFrameEvent.totalTime=this.totalFrames,this.drawnFrameEvent.direction=this.frameModifier,this.triggerEvent(o,this.drawnFrameEvent);break;case"loopComplete":this.triggerEvent(o,new ur(o,this.loop,this.playCount,this.frameMult));break;case"complete":this.triggerEvent(o,new ff(o,this.frameMult));break;case"segmentStart":this.triggerEvent(o,new qa(o,this.firstFrame,this.totalFrames));break;case"destroy":this.triggerEvent(o,new kb(o,this));break;default:this.triggerEvent(o)}o==="enterFrame"&&this.onEnterFrame&&this.onEnterFrame.call(this,new dr(o,this.currentFrame,this.totalFrames,this.frameMult)),o==="loopComplete"&&this.onLoopComplete&&this.onLoopComplete.call(this,new ur(o,this.loop,this.playCount,this.frameMult)),o==="complete"&&this.onComplete&&this.onComplete.call(this,new ff(o,this.frameMult)),o==="segmentStart"&&this.onSegmentStart&&this.onSegmentStart.call(this,new qa(o,this.firstFrame,this.totalFrames)),o==="destroy"&&this.onDestroy&&this.onDestroy.call(this,new kb(o,this))},we.prototype.triggerRenderFrameError=function(o){var h=new tE(o,this.currentFrame);this.triggerEvent("error",h),this.onError&&this.onError.call(this,h)},we.prototype.triggerConfigError=function(o){var h=new iE(o,this.currentFrame);this.triggerEvent("error",h),this.onError&&this.onError.call(this,h)};var gt=(function(){var o={},h=[],c=0,g=0,f=0,p=!0,y=!1;function k(I){for(var F=0,b=I.target;F<g;)h[F].animation===b&&(h.splice(F,1),F-=1,g-=1,b.isPaused||K()),F+=1}function S(I,F){if(!I)return null;for(var b=0;b<g;){if(h[b].elem===I&&h[b].elem!==null)return h[b].animation;b+=1}var w=new we;return L(w,I),w.setData(I,F),w}function P(){var I,F=h.length,b=[];for(I=0;I<F;I+=1)b.push(h[I].animation);return b}function _(){f+=1,ke()}function K(){f-=1}function L(I,F){I.addEventListener("destroy",k),I.addEventListener("_active",_),I.addEventListener("_idle",K),h.push({elem:F,animation:I}),g+=1}function B(I){var F=new we;return L(F,null),F.setParams(I),F}function N(I,F){var b;for(b=0;b<g;b+=1)h[b].animation.setSpeed(I,F)}function O(I,F){var b;for(b=0;b<g;b+=1)h[b].animation.setDirection(I,F)}function G(I){var F;for(F=0;F<g;F+=1)h[F].animation.play(I)}function M(I){var F=I-c,b;for(b=0;b<g;b+=1)h[b].animation.advanceTime(F);c=I,f&&!y?window.requestAnimationFrame(M):p=!0}function A(I){c=I,window.requestAnimationFrame(M)}function C(I){var F;for(F=0;F<g;F+=1)h[F].animation.pause(I)}function x(I,F,b){var w;for(w=0;w<g;w+=1)h[w].animation.goToAndStop(I,F,b)}function V(I){var F;for(F=0;F<g;F+=1)h[F].animation.stop(I)}function U(I){var F;for(F=0;F<g;F+=1)h[F].animation.togglePause(I)}function j(I){var F;for(F=g-1;F>=0;F-=1)h[F].animation.destroy(I)}function Y(I,F,b){var w=[].concat([].slice.call(document.getElementsByClassName("lottie")),[].slice.call(document.getElementsByClassName("bodymovin"))),z,q=w.length;for(z=0;z<q;z+=1)b&&w[z].setAttribute("data-bm-type",b),S(w[z],I);if(F&&q===0){b||(b="svg");var fe=document.getElementsByTagName("body")[0];fe.innerText="";var Ce=v("div");Ce.style.width="100%",Ce.style.height="100%",Ce.setAttribute("data-bm-type",b),fe.appendChild(Ce),S(Ce,I)}}function ne(){var I;for(I=0;I<g;I+=1)h[I].animation.resize()}function ke(){!y&&f&&p&&(window.requestAnimationFrame(A),p=!1)}function Se(){y=!0}function de(){y=!1,ke()}function Ae(I,F){var b;for(b=0;b<g;b+=1)h[b].animation.setVolume(I,F)}function be(I){var F;for(F=0;F<g;F+=1)h[F].animation.mute(I)}function ae(I){var F;for(F=0;F<g;F+=1)h[F].animation.unmute(I)}return o.registerAnimation=S,o.loadAnimation=B,o.setSpeed=N,o.setDirection=O,o.play=G,o.pause=C,o.stop=V,o.togglePause=U,o.searchAnimations=Y,o.resize=ne,o.goToAndStop=x,o.destroy=j,o.freeze=Se,o.unfreeze=de,o.setVolume=Ae,o.mute=be,o.unmute=ae,o.getRegisteredAnimations=P,o})(),fr=(function(){var o={};o.getBezierEasing=c;var h={};function c(A,C,x,V,U){var j=U||("bez_"+A+"_"+C+"_"+x+"_"+V).replace(/\./g,"p");if(h[j])return h[j];var Y=new M([A,C,x,V]);return h[j]=Y,Y}var g=4,f=.001,p=1e-7,y=10,k=11,S=1/(k-1),P=typeof Float32Array=="function";function _(A,C){return 1-3*C+3*A}function K(A,C){return 3*C-6*A}function L(A){return 3*A}function B(A,C,x){return((_(C,x)*A+K(C,x))*A+L(C))*A}function N(A,C,x){return 3*_(C,x)*A*A+2*K(C,x)*A+L(C)}function O(A,C,x,V,U){var j,Y,ne=0;do Y=C+(x-C)/2,j=B(Y,V,U)-A,j>0?x=Y:C=Y;while(Math.abs(j)>p&&++ne<y);return Y}function G(A,C,x,V){for(var U=0;U<g;++U){var j=N(C,x,V);if(j===0)return C;var Y=B(C,x,V)-A;C-=Y/j}return C}function M(A){this._p=A,this._mSampleValues=P?new Float32Array(k):new Array(k),this._precomputed=!1,this.get=this.get.bind(this)}return M.prototype={get:function(C){var x=this._p[0],V=this._p[1],U=this._p[2],j=this._p[3];return this._precomputed||this._precompute(),x===V&&U===j?C:C===0?0:C===1?1:B(this._getTForX(C),V,j)},_precompute:function(){var C=this._p[0],x=this._p[1],V=this._p[2],U=this._p[3];this._precomputed=!0,(C!==x||V!==U)&&this._calcSampleValues()},_calcSampleValues:function(){for(var C=this._p[0],x=this._p[2],V=0;V<k;++V)this._mSampleValues[V]=B(V*S,C,x)},_getTForX:function(C){for(var x=this._p[0],V=this._p[2],U=this._mSampleValues,j=0,Y=1,ne=k-1;Y!==ne&&U[Y]<=C;++Y)j+=S;--Y;var ke=(C-U[Y])/(U[Y+1]-U[Y]),Se=j+ke*S,de=N(Se,x,V);return de>=f?G(C,Se,x,V):de===0?Se:O(C,j,j+S,x,V)}},o})(),Mb=(function(){function o(h){return h.concat(X(h.length))}return{double:o}})(),ja=(function(){return function(o,h,c){var g=0,f=o,p=X(f),y={newElement:k,release:S};function k(){var P;return g?(g-=1,P=p[g]):P=h(),P}function S(P){g===f&&(p=Mb.double(p),f*=2),c&&c(P),p[g]=P,g+=1}return y}})(),_b=(function(){function o(){return{addedLength:0,percents:Q("float32",gr()),lengths:Q("float32",gr())}}return ja(8,o)})(),Bb=(function(){function o(){return{lengths:[],totalLength:0}}function h(c){var g,f=c.lengths.length;for(g=0;g<f;g+=1)_b.release(c.lengths[g]);c.lengths.length=0}return ja(8,o,h)})();function gE(){var o=Math;function h(L,B,N,O,G,M){var A=L*O+B*G+N*M-G*O-M*L-N*B;return A>-.001&&A<.001}function c(L,B,N,O,G,M,A,C,x){if(N===0&&M===0&&x===0)return h(L,B,O,G,A,C);var V=o.sqrt(o.pow(O-L,2)+o.pow(G-B,2)+o.pow(M-N,2)),U=o.sqrt(o.pow(A-L,2)+o.pow(C-B,2)+o.pow(x-N,2)),j=o.sqrt(o.pow(A-O,2)+o.pow(C-G,2)+o.pow(x-M,2)),Y;return V>U?V>j?Y=V-U-j:Y=j-U-V:j>U?Y=j-U-V:Y=U-V-j,Y>-1e-4&&Y<1e-4}var g=(function(){return function(L,B,N,O){var G=gr(),M,A,C,x,V,U=0,j,Y=[],ne=[],ke=_b.newElement();for(C=N.length,M=0;M<G;M+=1){for(V=M/(G-1),j=0,A=0;A<C;A+=1)x=re(1-V,3)*L[A]+3*re(1-V,2)*V*N[A]+3*(1-V)*re(V,2)*O[A]+re(V,3)*B[A],Y[A]=x,ne[A]!==null&&(j+=re(Y[A]-ne[A],2)),ne[A]=Y[A];j&&(j=he(j),U+=j),ke.percents[M]=V,ke.lengths[M]=U}return ke.addedLength=U,ke}})();function f(L){var B=Bb.newElement(),N=L.c,O=L.v,G=L.o,M=L.i,A,C=L._length,x=B.lengths,V=0;for(A=0;A<C-1;A+=1)x[A]=g(O[A],O[A+1],G[A],M[A+1]),V+=x[A].addedLength;return N&&C&&(x[A]=g(O[A],O[0],G[A],M[0]),V+=x[A].addedLength),B.totalLength=V,B}function p(L){this.segmentLength=0,this.points=new Array(L)}function y(L,B){this.partialLength=L,this.point=B}var k=(function(){var L={};return function(B,N,O,G){var M=(B[0]+"_"+B[1]+"_"+N[0]+"_"+N[1]+"_"+O[0]+"_"+O[1]+"_"+G[0]+"_"+G[1]).replace(/\./g,"p");if(!L[M]){var A=gr(),C,x,V,U,j,Y=0,ne,ke,Se=null;B.length===2&&(B[0]!==N[0]||B[1]!==N[1])&&h(B[0],B[1],N[0],N[1],B[0]+O[0],B[1]+O[1])&&h(B[0],B[1],N[0],N[1],N[0]+G[0],N[1]+G[1])&&(A=2);var de=new p(A);for(V=O.length,C=0;C<A;C+=1){for(ke=X(V),j=C/(A-1),ne=0,x=0;x<V;x+=1)U=re(1-j,3)*B[x]+3*re(1-j,2)*j*(B[x]+O[x])+3*(1-j)*re(j,2)*(N[x]+G[x])+re(j,3)*N[x],ke[x]=U,Se!==null&&(ne+=re(ke[x]-Se[x],2));ne=he(ne),Y+=ne,de.points[C]=new y(ne,ke),Se=ke}de.segmentLength=Y,L[M]=de}return L[M]}})();function S(L,B){var N=B.percents,O=B.lengths,G=N.length,M=ge((G-1)*L),A=L*B.addedLength,C=0;if(M===G-1||M===0||A===O[M])return N[M];for(var x=O[M]>A?-1:1,V=!0;V;)if(O[M]<=A&&O[M+1]>A?(C=(A-O[M])/(O[M+1]-O[M]),V=!1):M+=x,M<0||M>=G-1){if(M===G-1)return N[M];V=!1}return N[M]+(N[M+1]-N[M])*C}function P(L,B,N,O,G,M){var A=S(G,M),C=1-A,x=o.round((C*C*C*L[0]+(A*C*C+C*A*C+C*C*A)*N[0]+(A*A*C+C*A*A+A*C*A)*O[0]+A*A*A*B[0])*1e3)/1e3,V=o.round((C*C*C*L[1]+(A*C*C+C*A*C+C*C*A)*N[1]+(A*A*C+C*A*A+A*C*A)*O[1]+A*A*A*B[1])*1e3)/1e3;return[x,V]}var _=Q("float32",8);function K(L,B,N,O,G,M,A){G<0?G=0:G>1&&(G=1);var C=S(G,A);M=M>1?1:M;var x=S(M,A),V,U=L.length,j=1-C,Y=1-x,ne=j*j*j,ke=C*j*j*3,Se=C*C*j*3,de=C*C*C,Ae=j*j*Y,be=C*j*Y+j*C*Y+j*j*x,ae=C*C*Y+j*C*x+C*j*x,I=C*C*x,F=j*Y*Y,b=C*Y*Y+j*x*Y+j*Y*x,w=C*x*Y+j*x*x+C*Y*x,z=C*x*x,q=Y*Y*Y,fe=x*Y*Y+Y*x*Y+Y*Y*x,Ce=x*x*Y+Y*x*x+x*Y*x,xe=x*x*x;for(V=0;V<U;V+=1)_[V*4]=o.round((ne*L[V]+ke*N[V]+Se*O[V]+de*B[V])*1e3)/1e3,_[V*4+1]=o.round((Ae*L[V]+be*N[V]+ae*O[V]+I*B[V])*1e3)/1e3,_[V*4+2]=o.round((F*L[V]+b*N[V]+w*O[V]+z*B[V])*1e3)/1e3,_[V*4+3]=o.round((q*L[V]+fe*N[V]+Ce*O[V]+xe*B[V])*1e3)/1e3;return _}return{getSegmentsLength:f,getNewSegment:K,getPointInSegment:P,buildBezierData:k,pointOnLine2D:h,pointOnLine3D:c}}var gi=gE(),ls=a,Ob=Math.abs;function Fb(o,h){var c=this.offsetTime,g;this.propType==="multidimensional"&&(g=Q("float32",this.pv.length));for(var f=h.lastIndex,p=f,y=this.keyframes.length-1,k=!0,S,P,_;k;){if(S=this.keyframes[p],P=this.keyframes[p+1],p===y-1&&o>=P.t-c){S.h&&(S=P),f=0;break}if(P.t-c>o){f=p;break}p<y-1?p+=1:(f=0,k=!1)}_=this.keyframesMetadata[p]||{};var K,L,B,N,O,G,M=P.t-c,A=S.t-c,C;if(S.to){_.bezierData||(_.bezierData=gi.buildBezierData(S.s,P.s||S.e,S.to,S.ti));var x=_.bezierData;if(o>=M||o<A){var V=o>=M?x.points.length-1:0;for(L=x.points[V].point.length,K=0;K<L;K+=1)g[K]=x.points[V].point[K]}else{_.__fnct?G=_.__fnct:(G=fr.getBezierEasing(S.o.x,S.o.y,S.i.x,S.i.y,S.n).get,_.__fnct=G),B=G((o-A)/(M-A));var U=x.segmentLength*B,j,Y=h.lastFrame<o&&h._lastKeyframeIndex===p?h._lastAddedLength:0;for(O=h.lastFrame<o&&h._lastKeyframeIndex===p?h._lastPoint:0,k=!0,N=x.points.length;k;){if(Y+=x.points[O].partialLength,U===0||B===0||O===x.points.length-1){for(L=x.points[O].point.length,K=0;K<L;K+=1)g[K]=x.points[O].point[K];break}else if(U>=Y&&U<Y+x.points[O+1].partialLength){for(j=(U-Y)/x.points[O+1].partialLength,L=x.points[O].point.length,K=0;K<L;K+=1)g[K]=x.points[O].point[K]+(x.points[O+1].point[K]-x.points[O].point[K])*j;break}O<N-1?O+=1:k=!1}h._lastPoint=O,h._lastAddedLength=Y-x.points[O].partialLength,h._lastKeyframeIndex=p}}else{var ne,ke,Se,de,Ae;if(y=S.s.length,C=P.s||S.e,this.sh&&S.h!==1)if(o>=M)g[0]=C[0],g[1]=C[1],g[2]=C[2];else if(o<=A)g[0]=S.s[0],g[1]=S.s[1],g[2]=S.s[2];else{var be=Db(S.s),ae=Db(C),I=(o-A)/(M-A);pE(g,mE(be,ae,I))}else for(p=0;p<y;p+=1)S.h!==1&&(o>=M?B=1:o<A?B=0:(S.o.x.constructor===Array?(_.__fnct||(_.__fnct=[]),_.__fnct[p]?G=_.__fnct[p]:(ne=S.o.x[p]===void 0?S.o.x[0]:S.o.x[p],ke=S.o.y[p]===void 0?S.o.y[0]:S.o.y[p],Se=S.i.x[p]===void 0?S.i.x[0]:S.i.x[p],de=S.i.y[p]===void 0?S.i.y[0]:S.i.y[p],G=fr.getBezierEasing(ne,ke,Se,de).get,_.__fnct[p]=G)):_.__fnct?G=_.__fnct:(ne=S.o.x,ke=S.o.y,Se=S.i.x,de=S.i.y,G=fr.getBezierEasing(ne,ke,Se,de).get,S.keyframeMetadata=G),B=G((o-A)/(M-A)))),C=P.s||S.e,Ae=S.h===1?S.s[p]:S.s[p]+(C[p]-S.s[p])*B,this.propType==="multidimensional"?g[p]=Ae:g=Ae}return h.lastIndex=f,g}function mE(o,h,c){var g=[],f=o[0],p=o[1],y=o[2],k=o[3],S=h[0],P=h[1],_=h[2],K=h[3],L,B,N,O,G;return B=f*S+p*P+y*_+k*K,B<0&&(B=-B,S=-S,P=-P,_=-_,K=-K),1-B>1e-6?(L=Math.acos(B),N=Math.sin(L),O=Math.sin((1-c)*L)/N,G=Math.sin(c*L)/N):(O=1-c,G=c),g[0]=O*f+G*S,g[1]=O*p+G*P,g[2]=O*y+G*_,g[3]=O*k+G*K,g}function pE(o,h){var c=h[0],g=h[1],f=h[2],p=h[3],y=Math.atan2(2*g*p-2*c*f,1-2*g*g-2*f*f),k=Math.asin(2*c*g+2*f*p),S=Math.atan2(2*c*p-2*g*f,1-2*c*c-2*f*f);o[0]=y/_e,o[1]=k/_e,o[2]=S/_e}function Db(o){var h=o[0]*_e,c=o[1]*_e,g=o[2]*_e,f=Math.cos(h/2),p=Math.cos(c/2),y=Math.cos(g/2),k=Math.sin(h/2),S=Math.sin(c/2),P=Math.sin(g/2),_=f*p*y-k*S*P,K=k*S*y+f*p*P,L=k*p*y+f*S*P,B=f*S*y-k*p*P;return[K,L,B,_]}function Rb(){var o=this.comp.renderedFrame-this.offsetTime,h=this.keyframes[0].t-this.offsetTime,c=this.keyframes[this.keyframes.length-1].t-this.offsetTime;if(!(o===this._caching.lastFrame||this._caching.lastFrame!==ls&&(this._caching.lastFrame>=c&&o>=c||this._caching.lastFrame<h&&o<h))){this._caching.lastFrame>=o&&(this._caching._lastKeyframeIndex=-1,this._caching.lastIndex=0);var g=this.interpolateValue(o,this._caching);this.pv=g}return this._caching.lastFrame=o,this.pv}function Ka(o){var h;if(this.propType==="unidimensional")h=o*this.mult,Ob(this.v-h)>1e-5&&(this.v=h,this._mdf=!0);else for(var c=0,g=this.v.length;c<g;)h=o[c]*this.mult,Ob(this.v[c]-h)>1e-5&&(this.v[c]=h,this._mdf=!0),c+=1}function za(){if(!(this.elem.globalData.frameId===this.frameId||!this.effectsSequence.length)){if(this.lock){this.setVValue(this.pv);return}this.lock=!0,this._mdf=this._isFirstFrame;var o,h=this.effectsSequence.length,c=this.kf?this.pv:this.data.k;for(o=0;o<h;o+=1)c=this.effectsSequence[o](c);this.setVValue(c),this._isFirstFrame=!1,this.lock=!1,this.frameId=this.elem.globalData.frameId}}function Ya(o){this.effectsSequence.push(o),this.container.addDynamicProperty(this)}function fE(o,h,c,g){this.propType="unidimensional",this.mult=c||1,this.data=h,this.v=c?h.k*c:h.k,this.pv=h.k,this._mdf=!1,this.elem=o,this.container=g,this.comp=o.comp,this.k=!1,this.kf=!1,this.vel=0,this.effectsSequence=[],this._isFirstFrame=!0,this.getValue=za,this.setVValue=Ka,this.addEffect=Ya}function vE(o,h,c,g){this.propType="multidimensional",this.mult=c||1,this.data=h,this._mdf=!1,this.elem=o,this.container=g,this.comp=o.comp,this.k=!1,this.kf=!1,this.frameId=-1;var f,p=h.k.length;for(this.v=Q("float32",p),this.pv=Q("float32",p),this.vel=Q("float32",p),f=0;f<p;f+=1)this.v[f]=h.k[f]*this.mult,this.pv[f]=h.k[f];this._isFirstFrame=!0,this.effectsSequence=[],this.getValue=za,this.setVValue=Ka,this.addEffect=Ya}function TE(o,h,c,g){this.propType="unidimensional",this.keyframes=h.k,this.keyframesMetadata=[],this.offsetTime=o.data.st,this.frameId=-1,this._caching={lastFrame:ls,lastIndex:0,value:0,_lastKeyframeIndex:-1},this.k=!0,this.kf=!0,this.data=h,this.mult=c||1,this.elem=o,this.container=g,this.comp=o.comp,this.v=ls,this.pv=ls,this._isFirstFrame=!0,this.getValue=za,this.setVValue=Ka,this.interpolateValue=Fb,this.effectsSequence=[Rb.bind(this)],this.addEffect=Ya}function bE(o,h,c,g){this.propType="multidimensional";var f,p=h.k.length,y,k,S,P;for(f=0;f<p-1;f+=1)h.k[f].to&&h.k[f].s&&h.k[f+1]&&h.k[f+1].s&&(y=h.k[f].s,k=h.k[f+1].s,S=h.k[f].to,P=h.k[f].ti,(y.length===2&&!(y[0]===k[0]&&y[1]===k[1])&&gi.pointOnLine2D(y[0],y[1],k[0],k[1],y[0]+S[0],y[1]+S[1])&&gi.pointOnLine2D(y[0],y[1],k[0],k[1],k[0]+P[0],k[1]+P[1])||y.length===3&&!(y[0]===k[0]&&y[1]===k[1]&&y[2]===k[2])&&gi.pointOnLine3D(y[0],y[1],y[2],k[0],k[1],k[2],y[0]+S[0],y[1]+S[1],y[2]+S[2])&&gi.pointOnLine3D(y[0],y[1],y[2],k[0],k[1],k[2],k[0]+P[0],k[1]+P[1],k[2]+P[2]))&&(h.k[f].to=null,h.k[f].ti=null),y[0]===k[0]&&y[1]===k[1]&&S[0]===0&&S[1]===0&&P[0]===0&&P[1]===0&&(y.length===2||y[2]===k[2]&&S[2]===0&&P[2]===0)&&(h.k[f].to=null,h.k[f].ti=null));this.effectsSequence=[Rb.bind(this)],this.data=h,this.keyframes=h.k,this.keyframesMetadata=[],this.offsetTime=o.data.st,this.k=!0,this.kf=!0,this._isFirstFrame=!0,this.mult=c||1,this.elem=o,this.container=g,this.comp=o.comp,this.getValue=za,this.setVValue=Ka,this.interpolateValue=Fb,this.frameId=-1;
2var _=h.k[0].s.length;for(this.v=Q("float32",_),this.pv=Q("float32",_),f=0;f<_;f+=1)this.v[f]=ls,this.pv[f]=ls;this._caching={lastFrame:ls,lastIndex:0,value:Q("float32",_)},this.addEffect=Ya}var me=(function(){function o(c,g,f,p,y){g.sid&&(g=c.globalData.slotManager.getProp(g));var k;if(!g.k.length)k=new fE(c,g,p,y);else if(typeof g.k[0]=="number")k=new vE(c,g,p,y);else switch(f){case 0:k=new TE(c,g,p,y);break;case 1:k=new bE(c,g,p,y);break;default:break}return k.effectsSequence.length&&y.addDynamicProperty(k),k}var h={getProp:o};return h})();function yt(){}yt.prototype={addDynamicProperty:function(h){this.dynamicProperties.indexOf(h)===-1&&(this.dynamicProperties.push(h),this.container.addDynamicProperty(this),this._isAnimated=!0)},iterateDynamicProperties:function(){this._mdf=!1;var h,c=this.dynamicProperties.length;for(h=0;h<c;h+=1)this.dynamicProperties[h].getValue(),this.dynamicProperties[h]._mdf&&(this._mdf=!0)},initDynamicPropertyContainer:function(h){this.container=h,this.dynamicProperties=[],this._mdf=!1,this._isAnimated=!1}};var hs=(function(){function o(){return Q("float32",2)}return ja(8,o)})();function wi(){this.c=!1,this._length=0,this._maxLength=8,this.v=X(this._maxLength),this.o=X(this._maxLength),this.i=X(this._maxLength)}wi.prototype.setPathData=function(o,h){this.c=o,this.setLength(h);for(var c=0;c<h;)this.v[c]=hs.newElement(),this.o[c]=hs.newElement(),this.i[c]=hs.newElement(),c+=1},wi.prototype.setLength=function(o){for(;this._maxLength<o;
vendor: 74,305 bytes, line 2
2)this.doubleArrayLength();this._length=o},wi.prototype.doubleArrayLength=function(){this.v=this.v.concat(X(this._maxLength)),this.i=this.i.concat(X(this._maxLength)),this.o=this.o.concat(X(this._maxLength)),this._maxLength*=2},wi.prototype.setXYAt=function(o,h,c,g,f){var p;switch(this._length=Math.max(this._length,g+1),this._length>=this._maxLength&&this.doubleArrayLength(),c){case"v":p=this.v;break;case"i":p=this.i;break;case"o":p=this.o;break;default:p=[];break}(!p[g]||p[g]&&!f)&&(p[g]=hs.newElement()),p[g][0]=o,p[g][1]=h},wi.prototype.setTripleAt=function(o,h,c,g,f,p,y,k){this.setXYAt(o,h,"v",y,k),this.setXYAt(c,g,"o",y,k),this.setXYAt(f,p,"i",y,k)},wi.prototype.reverse=function(){var o=new wi;o.setPathData(this.c,this._length);var h=this.v,c=this.o,g=this.i,f=0;this.c&&(o.setTripleAt(h[0][0],h[0][1],g[0][0],g[0][1],c[0][0],c[0][1],0,!1),f=1);var p=this._length-1,y=this._length,k;for(k=f;k<y;k+=1)o.setTripleAt(h[p][0],h[p][1],g[p][0],g[p][1],c[p][0],c[p][1],k,!1),p-=1;return o},wi.prototype.length=function(){return this._length};var kt=(function(){function o(){return new wi}function h(f){var p=f._length,y;for(y=0;y<p;y+=1)hs.release(f.v[y]),hs.release(f.i[y]),hs.release(f.o[y]),f.v[y]=null,f.i[y]=null,f.o[y]=null;f._length=0,f.c=!1}function c(f){var p=g.newElement(),y,k=f._length===void 0?f.v.length:f._length;for(p.setLength(k),p.c=f.c,y=0;y<k;y+=1)p.setTripleAt(f.v[y][0],f.v[y][1],f.o[y][0],f.o[y][1],f.i[y][0],f.i[y][1],y);return p}var g=ja(4,o,h);return g.clone=c,g})();function yf(){this._length=0,this._maxLength=4,this.shapes=X(this._maxLength)}yf.prototype.addShape=function(o){this._length===this._maxLength&&(this.shapes=this.shapes.concat(X(this._maxLength)),this._maxLength*=2),this.shapes[this._length]=o,this._length+=1},yf.prototype.releaseShapes=function(){var o;for(o=0;o<this._length;o+=1)kt.release(this.shapes[o]);this._length=0};var Vs=(function(){var o={newShapeCollection:f,release:p},h=0,c=4,g=X(c);function f(){var y;return h?(h-=1,y=g[h]):y=new yf,y}function p(y){var k,S=y._length;for(k=0;k<S;k+=1)kt.release(y.shapes[k]);y._length=0,h===c&&(g=Mb.double(g),c*=2),g[h]=y,h+=1}return o})(),Xa=(function(){var o=-999999;function h(M,A,C){var x=C.lastIndex,V,U,j,Y,ne,ke,Se,de,Ae,be=this.keyframes;if(M<be[0].t-this.offsetTime)V=be[0].s[0],j=!0,x=0;else if(M>=be[be.length-1].t-this.offsetTime)V=be[be.length-1].s?be[be.length-1].s[0]:be[be.length-2].e[0],j=!0;else{for(var ae=x,I=be.length-1,F=!0,b,w,z;F&&(b=be[ae],w=be[ae+1],!(w.t-this.offsetTime>M));)ae<I-1?ae+=1:F=!1;if(z=this.keyframesMetadata[ae]||{},j=b.h===1,x=ae,!j){if(M>=w.t-this.offsetTime)de=1;else if(M<b.t-this.offsetTime)de=0;else{var q;z.__fnct?q=z.__fnct:(q=fr.getBezierEasing(b.o.x,b.o.y,b.i.x,b.i.y).get,z.__fnct=q),de=q((M-(b.t-this.offsetTime))/(w.t-this.offsetTime-(b.t-this.offsetTime)))}U=w.s?w.s[0]:b.e[0]}V=b.s[0]}for(ke=A._length,Se=V.i[0].length,C.lastIndex=x,Y=0;Y<ke;Y+=1)for(ne=0;ne<Se;ne+=1)Ae=j?V.i[Y][ne]:V.i[Y][ne]+(U.i[Y][ne]-V.i[Y][ne])*de,A.i[Y][ne]=Ae,Ae=j?V.o[Y][ne]:V.o[Y][ne]+(U.o[Y][ne]-V.o[Y][ne])*de,A.o[Y][ne]=Ae,Ae=j?V.v[Y][ne]:V.v[Y][ne]+(U.v[Y][ne]-V.v[Y][ne])*de,A.v[Y][ne]=Ae}function c(){var M=this.comp.renderedFrame-this.offsetTime,A=this.keyframes[0].t-this.offsetTime,C=this.keyframes[this.keyframes.length-1].t-this.offsetTime,x=this._caching.lastFrame;return x!==o&&(x<A&&M<A||x>C&&M>C)||(this._caching.lastIndex=x<M?this._caching.lastIndex:0,this.interpolateShape(M,this.pv,this._caching)),this._caching.lastFrame=M,this.pv}function g(){this.paths=this.localShapeCollection}function f(M,A){if(M._length!==A._length||M.c!==A.c)return!1;var C,x=M._length;for(C=0;C<x;C+=1)if(M.v[C][0]!==A.v[C][0]||M.v[C][1]!==A.v[C][1]||M.o[C][0]!==A.o[C][0]||M.o[C][1]!==A.o[C][1]||M.i[C][0]!==A.i[C][0]||M.i[C][1]!==A.i[C][1])return!1;return!0}function p(M){f(this.v,M)||(this.v=kt.clone(M),this.localShapeCollection.releaseShapes(),this.localShapeCollection.addShape(this.v),this._mdf=!0,this.paths=this.localShapeCollection)}function y(){if(this.elem.globalData.frameId!==this.frameId){if(!this.effectsSequence.length){this._mdf=!1;return}if(this.lock){this.setVValue(this.pv);return}this.lock=!0,this._mdf=!1;var M;this.kf?M=this.pv:this.data.ks?M=this.data.ks.k:M=this.data.pt.k;var A,C=this.effectsSequence.length;for(A=0;A<C;A+=1)M=this.effectsSequence[A](M);this.setVValue(M),this.lock=!1,this.frameId=this.elem.globalData.frameId}}function k(M,A,C){this.propType="shape",this.comp=M.comp,this.container=M,this.elem=M,this.data=A,this.k=!1,this.kf=!1,this._mdf=!1;var x=C===3?A.pt.k:A.ks.k;this.v=kt.clone(x),this.pv=kt.clone(this.v),this.localShapeCollection=Vs.newShapeCollection(),this.paths=this.localShapeCollection,this.paths.addShape(this.v),this.reset=g,this.effectsSequence=[]}function S(M){this.effectsSequence.push(M),this.container.addDynamicProperty(this)}k.prototype.interpolateShape=h,k.prototype.getValue=y,k.prototype.setVValue=p,k.prototype.addEffect=S;function P(M,A,C){this.propType="shape",this.comp=M.comp,this.elem=M,this.container=M,this.offsetTime=M.data.st,this.keyframes=C===3?A.pt.k:A.ks.k,this.keyframesMetadata=[],this.k=!0,this.kf=!0;var x=this.keyframes[0].s[0].i.length;this.v=kt.newElement(),this.v.setPathData(this.keyframes[0].s[0].c,x),this.pv=kt.clone(this.v),this.localShapeCollection=Vs.newShapeCollection(),this.paths=this.localShapeCollection,this.paths.addShape(this.v),this.lastFrame=o,this.reset=g,this._caching={lastFrame:o,lastIndex:0},this.effectsSequence=[c.bind(this)]}P.prototype.getValue=y,P.prototype.interpolateShape=h,P.prototype.setVValue=p,P.prototype.addEffect=S;var _=(function(){var M=Lt;function A(C,x){this.v=kt.newElement(),this.v.setPathData(!0,4),this.localShapeCollection=Vs.newShapeCollection(),this.paths=this.localShapeCollection,this.localShapeCollection.addShape(this.v),this.d=x.d,this.elem=C,this.comp=C.comp,this.frameId=-1,this.initDynamicPropertyContainer(C),this.p=me.getProp(C,x.p,1,0,this),this.s=me.getProp(C,x.s,1,0,this),this.dynamicProperties.length?this.k=!0:(this.k=!1,this.convertEllToPath())}return A.prototype={reset:g,getValue:function(){this.elem.globalData.frameId!==this.frameId&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties(),this._mdf&&this.convertEllToPath())},convertEllToPath:function(){var x=this.p.v[0],V=this.p.v[1],U=this.s.v[0]/2,j=this.s.v[1]/2,Y=this.d!==3,ne=this.v;ne.v[0][0]=x,ne.v[0][1]=V-j,ne.v[1][0]=Y?x+U:x-U,ne.v[1][1]=V,ne.v[2][0]=x,ne.v[2][1]=V+j,ne.v[3][0]=Y?x-U:x+U,ne.v[3][1]=V,ne.i[0][0]=Y?x-U*M:x+U*M,ne.i[0][1]=V-j,ne.i[1][0]=Y?x+U:x-U,ne.i[1][1]=V-j*M,ne.i[2][0]=Y?x+U*M:x-U*M,ne.i[2][1]=V+j,ne.i[3][0]=Y?x-U:x+U,ne.i[3][1]=V+j*M,ne.o[0][0]=Y?x+U*M:x-U*M,ne.o[0][1]=V-j,ne.o[1][0]=Y?x+U:x-U,ne.o[1][1]=V+j*M,ne.o[2][0]=Y?x-U*M:x+U*M,ne.o[2][1]=V+j,ne.o[3][0]=Y?x-U:x+U,ne.o[3][1]=V-j*M}},E([yt],A),A})(),K=(function(){function M(A,C){this.v=kt.newElement(),this.v.setPathData(!0,0),this.elem=A,this.comp=A.comp,this.data=C,this.frameId=-1,this.d=C.d,this.initDynamicPropertyContainer(A),C.sy===1?(this.ir=me.getProp(A,C.ir,0,0,this),this.is=me.getProp(A,C.is,0,.01,this),this.convertToPath=this.convertStarToPath):this.convertToPath=this.convertPolygonToPath,this.pt=me.getProp(A,C.pt,0,0,this),this.p=me.getProp(A,C.p,1,0,this),this.r=me.getProp(A,C.r,0,_e,this),this.or=me.getProp(A,C.or,0,0,this),this.os=me.getProp(A,C.os,0,.01,this),this.localShapeCollection=Vs.newShapeCollection(),this.localShapeCollection.addShape(this.v),this.paths=this.localShapeCollection,this.dynamicProperties.length?this.k=!0:(this.k=!1,this.convertToPath())}return M.prototype={reset:g,getValue:function(){this.elem.globalData.frameId!==this.frameId&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties(),this._mdf&&this.convertToPath())},convertStarToPath:function(){var C=Math.floor(this.pt.v)*2,x=Math.PI*2/C,V=!0,U=this.or.v,j=this.ir.v,Y=this.os.v,ne=this.is.v,ke=2*Math.PI*U/(C*2),Se=2*Math.PI*j/(C*2),de,Ae,be,ae,I=-Math.PI/2;I+=this.r.v;var F=this.data.d===3?-1:1;for(this.v._length=0,de=0;de<C;de+=1){Ae=V?U:j,be=V?Y:ne,ae=V?ke:Se;var b=Ae*Math.cos(I),w=Ae*Math.sin(I),z=b===0&&w===0?0:w/Math.sqrt(b*b+w*w),q=b===0&&w===0?0:-b/Math.sqrt(b*b+w*w);b+=+this.p.v[0],w+=+this.p.v[1],this.v.setTripleAt(b,w,b-z*ae*be*F,w-q*ae*be*F,b+z*ae*be*F,w+q*ae*be*F,de,!0),V=!V,I+=x*F}},convertPolygonToPath:function(){var C=Math.floor(this.pt.v),x=Math.PI*2/C,V=this.or.v,U=this.os.v,j=2*Math.PI*V/(C*4),Y,ne=-Math.PI*.5,ke=this.data.d===3?-1:1;for(ne+=this.r.v,this.v._length=0,Y=0;Y<C;Y+=1){var Se=V*Math.cos(ne),de=V*Math.sin(ne),Ae=Se===0&&de===0?0:de/Math.sqrt(Se*Se+de*de),be=Se===0&&de===0?0:-Se/Math.sqrt(Se*Se+de*de);Se+=+this.p.v[0],de+=+this.p.v[1],this.v.setTripleAt(Se,de,Se-Ae*j*U*ke,de-be*j*U*ke,Se+Ae*j*U*ke,de+be*j*U*ke,Y,!0),ne+=x*ke}this.paths.length=0,this.paths[0]=this.v}},E([yt],M),M})(),L=(function(){function M(A,C){this.v=kt.newElement(),this.v.c=!0,this.localShapeCollection=Vs.newShapeCollection(),this.localShapeCollection.addShape(this.v),this.paths=this.localShapeCollection,this.elem=A,this.comp=A.comp,this.frameId=-1,this.d=C.d,this.initDynamicPropertyContainer(A),this.p=me.getProp(A,C.p,1,0,this),this.s=me.getProp(A,C.s,1,0,this),this.r=me.getProp(A,C.r,0,0,this),this.dynamicProperties.length?this.k=!0:(this.k=!1,this.convertRectToPath())}return M.prototype={convertRectToPath:function(){var C=this.p.v[0],x=this.p.v[1],V=this.s.v[0]/2,U=this.s.v[1]/2,j=Te(V,U,this.r.v),Y=j*(1-Lt);this.v._length=0,this.d===2||this.d===1?(this.v.setTripleAt(C+V,x-U+j,C+V,x-U+j,C+V,x-U+Y,0,!0),this.v.setTripleAt(C+V,x+U-j,C+V,x+U-Y,C+V,x+U-j,1,!0),j!==0?(this.v.setTripleAt(C+V-j,x+U,C+V-j,x+U,C+V-Y,x+U,2,!0),this.v.setTripleAt(C-V+j,x+U,C-V+Y,x+U,C-V+j,x+U,3,!0),this.v.setTripleAt(C-V,x+U-j,C-V,x+U-j,C-V,x+U-Y,4,!0),this.v.setTripleAt(C-V,x-U+j,C-V,x-U+Y,C-V,x-U+j,5,!0),this.v.setTripleAt(C-V+j,x-U,C-V+j,x-U,C-V+Y,x-U,6,!0),this.v.setTripleAt(C+V-j,x-U,C+V-Y,x-U,C+V-j,x-U,7,!0)):(this.v.setTripleAt(C-V,x+U,C-V+Y,x+U,C-V,x+U,2),this.v.setTripleAt(C-V,x-U,C-V,x-U+Y,C-V,x-U,3))):(this.v.setTripleAt(C+V,x-U+j,C+V,x-U+Y,C+V,x-U+j,0,!0),j!==0?(this.v.setTripleAt(C+V-j,x-U,C+V-j,x-U,C+V-Y,x-U,1,!0),this.v.setTripleAt(C-V+j,x-U,C-V+Y,x-U,C-V+j,x-U,2,!0),this.v.setTripleAt(C-V,x-U+j,C-V,x-U+j,C-V,x-U+Y,3,!0),this.v.setTripleAt(C-V,x+U-j,C-V,x+U-Y,C-V,x+U-j,4,!0),this.v.setTripleAt(C-V+j,x+U,C-V+j,x+U,C-V+Y,x+U,5,!0),this.v.setTripleAt(C+V-j,x+U,C+V-Y,x+U,C+V-j,x+U,6,!0),this.v.setTripleAt(C+V,x+U-j,C+V,x+U-j,C+V,x+U-Y,7,!0)):(this.v.setTripleAt(C-V,x-U,C-V+Y,x-U,C-V,x-U,1,!0),this.v.setTripleAt(C-V,x+U,C-V,x+U-Y,C-V,x+U,2,!0),this.v.setTripleAt(C+V,x+U,C+V-Y,x+U,C+V,x+U,3,!0)))},getValue:function(){this.elem.globalData.frameId!==this.frameId&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties(),this._mdf&&this.convertRectToPath())},reset:g},E([yt],M),M})();function B(M,A,C){var x;if(C===3||C===4){var V=C===3?A.pt:A.ks,U=V.k;U.length?x=new P(M,A,C):x=new k(M,A,C)}else C===5?x=new L(M,A):C===6?x=new _(M,A):C===7&&(x=new K(M,A));return x.k&&M.addDynamicProperty(x),x}function N(){return k}function O(){return P}var G={};return G.getShapeProp=B,G.getConstructorFunction=N,G.getKeyframedConstructorFunction=O,G})();var xt=(function(){var o=Math.cos,h=Math.sin,c=Math.tan,g=Math.round;function f(){return this.props[0]=1,this.props[1]=0,this.props[2]=0,this.props[3]=0,this.props[4]=0,this.props[5]=1,this.props[6]=0,this.props[7]=0,this.props[8]=0,this.props[9]=0,this.props[10]=1,this.props[11]=0,this.props[12]=0,this.props[13]=0,this.props[14]=0,this.props[15]=1,this}function p(b){if(b===0)return this;var w=o(b),z=h(b);return this._t(w,-z,0,0,z,w,0,0,0,0,1,0,0,0,0,1)}function y(b){if(b===0)return this;var w=o(b),z=h(b);return this._t(1,0,0,0,0,w,-z,0,0,z,w,0,0,0,0,1)}function k(b){if(b===0)return this;var w=o(b),z=h(b);return this._t(w,0,z,0,0,1,0,0,-z,0,w,0,0,0,0,1)}function S(b){if(b===0)return this;var w=o(b),z=h(b);return this._t(w,-z,0,0,z,w,0,0,0,0,1,0,0,0,0,1)}function P(b,w){return this._t(1,w,b,1,0,0)}function _(b,w){return this.shear(c(b),c(w))}function K(b,w){var z=o(w),q=h(w);return this._t(z,q,0,0,-q,z,0,0,0,0,1,0,0,0,0,1)._t(1,0,0,0,c(b),1,0,0,0,0,1,0,0,0,0,1)._t(z,-q,0,0,q,z,0,0,0,0,1,0,0,0,0,1)}function L(b,w,z){return!z&&z!==0&&(z=1),b===1&&w===1&&z===1?this:this._t(b,0,0,0,0,w,0,0,0,0,z,0,0,0,0,1)}function B(b,w,z,q,fe,Ce,xe,Ne,Ue,mt,Rt,pi,Nt,St,jt,We){return this.props[0]=b,this.props[1]=w,this.props[2]=z,this.props[3]=q,this.props[4]=fe,this.props[5]=Ce,this.props[6]=xe,this.props[7]=Ne,this.props[8]=Ue,this.props[9]=mt,this.props[10]=Rt,this.props[11]=pi,this.props[12]=Nt,this.props[13]=St,this.props[14]=jt,this.props[15]=We,this}function N(b,w,z){return z=z||0,b!==0||w!==0||z!==0?this._t(1,0,0,0,0,1,0,0,0,0,1,0,b,w,z,1):this}function O(b,w,z,q,fe,Ce,xe,Ne,Ue,mt,Rt,pi,Nt,St,jt,We){var ye=this.props;if(b===1&&w===0&&z===0&&q===0&&fe===0&&Ce===1&&xe===0&&Ne===0&&Ue===0&&mt===0&&Rt===1&&pi===0)return ye[12]=ye[12]*b+ye[15]*Nt,ye[13]=ye[13]*Ce+ye[15]*St,ye[14]=ye[14]*Rt+ye[15]*jt,ye[15]*=We,this._identityCalculated=!1,this;var Li=ye[0],ji=ye[1],ki=ye[2],fi=ye[3],xi=ye[4],Ii=ye[5],Ut=ye[6],Ki=ye[7],zi=ye[8],ri=ye[9],Yi=ye[10],ai=ye[11],gs=ye[12],an=ye[13],nn=ye[14],on=ye[15];return ye[0]=Li*b+ji*fe+ki*Ue+fi*Nt,ye[1]=Li*w+ji*Ce+ki*mt+fi*St,ye[2]=Li*z+ji*xe+ki*Rt+fi*jt,ye[3]=Li*q+ji*Ne+ki*pi+fi*We,ye[4]=xi*b+Ii*fe+Ut*Ue+Ki*Nt,ye[5]=xi*w+Ii*Ce+Ut*mt+Ki*St,ye[6]=xi*z+Ii*xe+Ut*Rt+Ki*jt,ye[7]=xi*q+Ii*Ne+Ut*pi+Ki*We,ye[8]=zi*b+ri*fe+Yi*Ue+ai*Nt,ye[9]=zi*w+ri*Ce+Yi*mt+ai*St,ye[10]=zi*z+ri*xe+Yi*Rt+ai*jt,ye[11]=zi*q+ri*Ne+Yi*pi+ai*We,ye[12]=gs*b+an*fe+nn*Ue+on*Nt,ye[13]=gs*w+an*Ce+nn*mt+on*St,ye[14]=gs*z+an*xe+nn*Rt+on*jt,ye[15]=gs*q+an*Ne+nn*pi+on*We,this._identityCalculated=!1,this}function G(b){var w=b.props;return this.transform(w[0],w[1],w[2],w[3],w[4],w[5],w[6],w[7],w[8],w[9],w[10],w[11],w[12],w[13],w[14],w[15])}function M(){return this._identityCalculated||(this._identity=!(this.props[0]!==1||this.props[1]!==0||this.props[2]!==0||this.props[3]!==0||this.props[4]!==0||this.props[5]!==1||this.props[6]!==0||this.props[7]!==0||this.props[8]!==0||this.props[9]!==0||this.props[10]!==1||this.props[11]!==0||this.props[12]!==0||this.props[13]!==0||this.props[14]!==0||this.props[15]!==1),this._identityCalculated=!0),this._identity}function A(b){for(var w=0;w<16;){if(b.props[w]!==this.props[w])return!1;w+=1}return!0}function C(b){var w;for(w=0;w<16;w+=1)b.props[w]=this.props[w];return b}function x(b){var w;for(w=0;w<16;w+=1)this.props[w]=b[w]}function V(b,w,z){return{x:b*this.props[0]+w*this.props[4]+z*this.props[8]+this.props[12],y:b*this.props[1]+w*this.props[5]+z*this.props[9]+this.props[13],z:b*this.props[2]+w*this.props[6]+z*this.props[10]+this.props[14]}}function U(b,w,z){return b*this.props[0]+w*this.props[4]+z*this.props[8]+this.props[12]}function j(b,w,z){return b*this.props[1]+w*this.props[5]+z*this.props[9]+this.props[13]}function Y(b,w,z){return b*this.props[2]+w*this.props[6]+z*this.props[10]+this.props[14]}function ne(){var b=this.props[0]*this.props[5]-this.props[1]*this.props[4],w=this.props[5]/b,z=-this.props[1]/b,q=-this.props[4]/b,fe=this.props[0]/b,Ce=(this.props[4]*this.props[13]-this.props[5]*this.props[12])/b,xe=-(this.props[0]*this.props[13]-this.props[1]*this.props[12])/b,Ne=new xt;return Ne.props[0]=w,Ne.props[1]=z,Ne.props[4]=q,Ne.props[5]=fe,Ne.props[12]=Ce,Ne.props[13]=xe,Ne}function ke(b){var w=this.getInverseMatrix();return w.applyToPointArray(b[0],b[1],b[2]||0)}function Se(b){var w,z=b.length,q=[];for(w=0;w<z;w+=1)q[w]=ke(b[w]);return q}function de(b,w,z){var q=Q("float32",6);if(this.isIdentity())q[0]=b[0],q[1]=b[1],q[2]=w[0],q[3]=w[1],q[4]=z[0],q[5]=z[1];else{var fe=this.props[0],Ce=this.props[1],xe=this.props[4],Ne=this.props[5],Ue=this.props[12],mt=this.props[13];q[0]=b[0]*fe+b[1]*xe+Ue,q[1]=b[0]*Ce+b[1]*Ne+mt,q[2]=w[0]*fe+w[1]*xe+Ue,q[3]=w[0]*Ce+w[1]*Ne+mt,q[4]=z[0]*fe+z[1]*xe+Ue,q[5]=z[0]*Ce+z[1]*Ne+mt}return q}function Ae(b,w,z){var q;return this.isIdentity()?q=[b,w,z]:q=[b*this.props[0]+w*this.props[4]+z*this.props[8]+this.props[12],b*this.props[1]+w*this.props[5]+z*this.props[9]+this.props[13],b*this.props[2]+w*this.props[6]+z*this.props[10]+this.props[14]],q}function be(b,w){if(this.isIdentity())return b+","+w;var z=this.props;return Math.round((b*z[0]+w*z[4]+z[12])*100)/100+","+Math.round((b*z[1]+w*z[5]+z[13])*100)/100}function ae(){for(var b=0,w=this.props,z="matrix3d(",q=1e4;b<16;)z+=g(w[b]*q)/q,z+=b===15?")":",",b+=1;return z}function I(b){var w=1e4;return b<1e-6&&b>0||b>-1e-6&&b<0?g(b*w)/w:b}function F(){var b=this.props,w=I(b[0]),z=I(b[1]),q=I(b[4]),fe=I(b[5]),Ce=I(b[12]),xe=I(b[13]);return"matrix("+w+","+z+","+q+","+fe+","+Ce+","+xe+")"}return function(){this.reset=f,this.rotate=p,this.rotateX=y,this.rotateY=k,this.rotateZ=S,this.skew=_,this.skewFromAxis=K,this.shear=P,this.scale=L,this.setTransform=B,this.translate=N,this.transform=O,this.multiply=G,this.applyToPoint=V,this.applyToX=U,this.applyToY=j,this.applyToZ=Y,this.applyToPointArray=Ae,this.applyToTriplePoints=de,this.applyToPointStringified=be,this.toCSS=ae,this.to2dCSS=F,this.clone=C,this.cloneFromProps=x,this.equals=A,this.inversePoints=Se,this.inversePoint=ke,this.getInverseMatrix=ne,this._t=this.transform,this.isIdentity=M,this._identity=!0,this._identityCalculated=!1,this.props=Q("float32",16),this.reset()}})();function Sf(o){"@babel/helpers - typeof";return Sf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(h){return typeof h}:function(h){return h&&typeof Symbol=="function"&&h.constructor===Symbol&&h!==Symbol.prototype?"symbol":typeof h},Sf(o)}var qe={},Qa="__[STANDALONE]__",Nb="__[ANIMATIONDATA]__",Ub="";function yE(o){d(o)}function Hb(){Qa===!0?gt.searchAnimations(Nb,Qa,Ub):gt.searchAnimations()}function SE(o){sE(o)}function wE(o){nE(o)}function CE(o){return Qa===!0&&(o.animationData=JSON.parse(Nb)),gt.loadAnimation(o)}function EE(o){if(typeof o=="string")switch(o){case"high":Ga(200);break;default:case"medium":Ga(50);break;case"low":Ga(10);break}else!isNaN(o)&&o>1&&Ga(o);gr()>=50?Tt(!1):Tt(!0)}function LE(){return typeof navigator<"u"}function kE(o,h){o==="expressions"&&aE(h)}function xE(o){switch(o){case"propertyFactory":return me;case"shapePropertyFactory":return Xa;case"matrix":return xt;default:return null}}qe.play=gt.play,qe.pause=gt.pause,qe.setLocationHref=yE,qe.togglePause=gt.togglePause,qe.setSpeed=gt.setSpeed,qe.setDirection=gt.setDirection,qe.stop=gt.stop,qe.searchAnimations=Hb,qe.registerAnimation=gt.registerAnimation,qe.loadAnimation=CE,qe.setSubframeRendering=SE,qe.resize=gt.resize,qe.goToAndStop=gt.goToAndStop,qe.destroy=gt.destroy,qe.setQuality=EE,qe.inBrowser=LE,qe.installPlugin=kE,qe.freeze=gt.freeze,qe.unfreeze=gt.unfreeze,qe.setVolume=gt.setVolume,qe.mute=gt.mute,qe.unmute=gt.unmute,qe.getRegisteredAnimations=gt.getRegisteredAnimations,qe.useWebWorker=n,qe.setIDPrefix=wE,qe.__getFactory=xE,qe.version="5.13.0";function IE(){document.readyState==="complete"&&(clearInterval(VE),Hb())}function AE(o){for(var h=qb.split("&"),c=0;c<h.length;c+=1){var g=h[c].split("=");if(decodeURIComponent(g[0])==o)return decodeURIComponent(g[1])}return null}var qb="";if(Qa){var $b=document.getElementsByTagName("script"),PE=$b.length-1,Gb=$b[PE]||{src:""};qb=Gb.src?Gb.src.replace(/^[^\?]+\??/,""):"",Ub=AE("renderer")}var VE=setInterval(IE,100);try{!((typeof ha>"u"?"undefined":Sf(ha))==="object"&&typeof ah<"u")&&!(typeof define=="function"&&define.amd)&&(window.bodymovin=qe)}catch{}var Ui=(function(){var o={},h={};o.registerModifier=c,o.getModifier=g;function c(f,p){h[f]||(h[f]=p)}function g(f,p,y){return new h[f](p,y)}return o})();function Qt(){}Qt.prototype.initModifierProperties=function(){},Qt.prototype.addShapeToModifier=function(){},Qt.prototype.addShape=function(o){if(!this.closed){o.sh.container.addDynamicProperty(o.sh);var h={shape:o.sh,data:o,localShapeCollection:Vs.newShapeCollection()};this.shapes.push(h),this.addShapeToModifier(h),this._isAnimated&&o.setAsAnimated()}},Qt.prototype.init=function(o,h){this.shapes=[],this.elem=o,this.initDynamicPropertyContainer(o),this.initModifierProperties(o,h),this.frameId=a,this.closed=!1,this.k=!1,this.dynamicProperties.length?this.k=!0:this.getValue(!0)},Qt.prototype.processKeys=function(){this.elem.globalData.frameId!==this.frameId&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties())},E([yt],Qt);function si(){}E([Qt],si),si.prototype.initModifierProperties=function(o,h){this.s=me.getProp(o,h.s,0,.01,this),this.e=me.getProp(o,h.e,0,.01,this),this.o=me.getProp(o,h.o,0,0,this),this.sValue=0,this.eValue=0,this.getValue=this.processKeys,this.m=h.m,this._isAnimated=!!this.s.effectsSequence.length||!!this.e.effectsSequence.length||!!this.o.effectsSequence.length},si.prototype.addShapeToModifier=function(o){o.pathsData=[]},si.prototype.calculateShapeEdges=function(o,h,c,g,f){var p=[];h<=1?p.push({s:o,e:h}):o>=1?p.push({s:o-1,e:h-1}):(p.push({s:o,e:1}),p.push({s:0,e:h-1}));var y=[],k,S=p.length,P;for(k=0;k<S;k+=1)if(P=p[k],!(P.e*f<g||P.s*f>g+c)){var _,K;P.s*f<=g?_=0:_=(P.s*f-g)/c,P.e*f>=g+c?K=1:K=(P.e*f-g)/c,y.push([_,K])}return y.length||y.push([0,0]),y},si.prototype.releasePathsData=function(o){var h,c=o.length;for(h=0;h<c;h+=1)Bb.release(o[h]);return o.length=0,o},si.prototype.processShapes=function(o){var h,c;if(this._mdf||o){var g=this.o.v%360/360;if(g<0&&(g+=1),this.s.v>1?h=1+g:this.s.v<0?h=0+g:h=this.s.v+g,this.e.v>1?c=1+g:this.e.v<0?c=0+g:c=this.e.v+g,h>c){var f=h;h=c,c=f}h=Math.round(h*1e4)*1e-4,c=Math.round(c*1e4)*1e-4,this.sValue=h,this.eValue=c}else h=this.sValue,c=this.eValue;var p,y,k=this.shapes.length,S,P,_,K,L,B=0;if(c===h)for(y=0;y<k;y+=1)this.shapes[y].localShapeCollection.releaseShapes(),this.shapes[y].shape._mdf=!0,this.shapes[y].shape.paths=this.shapes[y].localShapeCollection,this._mdf&&(this.shapes[y].pathsData.length=0);else if(c===1&&h===0||c===0&&h===1){if(this._mdf)for(y=0;y<k;y+=1)this.shapes[y].pathsData.length=0,this.shapes[y].shape._mdf=!0}else{var N=[],O,G;for(y=0;y<k;y+=1)if(O=this.shapes[y],!O.shape._mdf&&!this._mdf&&!o&&this.m!==2)O.shape.paths=O.localShapeCollection;else{if(p=O.shape.paths,P=p._length,L=0,!O.shape._mdf&&O.pathsData.length)L=O.totalShapeLength;else{for(_=this.releasePathsData(O.pathsData),S=0;S<P;S+=1)K=gi.getSegmentsLength(p.shapes[S]),_.push(K),L+=K.totalLength;O.totalShapeLength=L,O.pathsData=_}B+=L,O.shape._mdf=!0}var M=h,A=c,C=0,x;for(y=k-1;y>=0;y-=1)if(O=this.shapes[y],O.shape._mdf){for(G=O.localShapeCollection,G.releaseShapes(),this.m===2&&k>1?(x=this.calculateShapeEdges(h,c,O.totalShapeLength,C,B),C+=O.totalShapeLength):x=[[M,A]],P=x.length,S=0;S<P;S+=1){M=x[S][0],A=x[S][1],N.length=0,A<=1?N.push({s:O.totalShapeLength*M,e:O.totalShapeLength*A}):M>=1?N.push({s:O.totalShapeLength*(M-1),e:O.totalShapeLength*(A-1)}):(N.push({s:O.totalShapeLength*M,e:O.totalShapeLength}),N.push({s:0,e:O.totalShapeLength*(A-1)}));var V=this.addShapes(O,N[0]);if(N[0].s!==N[0].e){if(N.length>1){var U=O.shape.paths.shapes[O.shape.paths._length-1];if(U.c){var j=V.pop();this.addPaths(V,G),V=this.addShapes(O,N[1],j)}else this.addPaths(V,G),V=this.addShapes(O,N[1])}this.addPaths(V,G)}}O.shape.paths=G}}},si.prototype.addPaths=function(o,h){var c,g=o.length;for(c=0;c<g;c+=1)h.addShape(o[c])},si.prototype.addSegment=function(o,h,c,g,f,p,y){f.setXYAt(h[0],h[1],"o",p),f.setXYAt(c[0],c[1],"i",p+1),y&&f.setXYAt(o[0],o[1],"v",p),f.setXYAt(g[0],g[1],"v",p+1)},si.prototype.addSegmentFromArray=function(o,h,c,g){h.setXYAt(o[1],o[5],"o",c),h.setXYAt(o[2],o[6],"i",c+1),g&&h.setXYAt(o[0],o[4],"v",c),h.setXYAt(o[3],o[7],"v",c+1)},si.prototype.addShapes=function(o,h,c){var g=o.pathsData,f=o.shape.paths.shapes,p,y=o.shape.paths._length,k,S,P=0,_,K,L,B,N=[],O,G=!0;for(c?(K=c._length,O=c._length):(c=kt.newElement(),K=0,O=0),N.push(c),p=0;p<y;p+=1){for(L=g[p].lengths,c.c=f[p].c,S=f[p].c?L.length:L.length+1,k=1;k<S;k+=1)if(_=L[k-1],P+_.addedLength<h.s)P+=_.addedLength,c.c=!1;else if(P>h.e){c.c=!1;break}else h.s<=P&&h.e>=P+_.addedLength?(this.addSegment(f[p].v[k-1],f[p].o[k-1],f[p].i[k],f[p].v[k],c,K,G),G=!1):(B=gi.getNewSegment(f[p].v[k-1],f[p].v[k],f[p].o[k-1],f[p].i[k],(h.s-P)/_.addedLength,(h.e-P)/_.addedLength,L[k-1]),this.addSegmentFromArray(B,c,K,G),G=!1,c.c=!1),P+=_.addedLength,K+=1;if(f[p].c&&L.length){if(_=L[k-1],P<=h.e){var M=L[k-1].addedLength;h.s<=P&&h.e>=P+M?(this.addSegment(f[p].v[k-1],f[p].o[k-1],f[p].i[0],f[p].v[0],c,K,G),G=!1):(B=gi.getNewSegment(f[p].v[k-1],f[p].v[0],f[p].o[k-1],f[p].i[0],(h.s-P)/M,(h.e-P)/M,L[k-1]),this.addSegmentFromArray(B,c,K,G),G=!1,c.c=!1)}else c.c=!1;P+=_.addedLength,K+=1}if(c._length&&(c.setXYAt(c.v[O][0],c.v[O][1],"i",O),c.setXYAt(c.v[c._length-1][0],c.v[c._length-1][1],"o",c._length-1)),P>h.e)break;p<y-1&&(c=kt.newElement(),G=!0,N.push(c),K=0)}return N};function vr(){}E([Qt],vr),vr.prototype.initModifierProperties=function(o,h){this.getValue=this.processKeys,this.amount=me.getProp(o,h.a,0,null,this),this._isAnimated=!!this.amount.effectsSequence.length},vr.prototype.processPath=function(o,h){var c=h/100,g=[0,0],f=o._length,p=0;for(p=0;p<f;p+=1)g[0]+=o.v[p][0],g[1]+=o.v[p][1];g[0]/=f,g[1]/=f;var y=kt.newElement();y.c=o.c;var k,S,P,_,K,L;for(p=0;p<f;p+=1)k=o.v[p][0]+(g[0]-o.v[p][0])*c,S=o.v[p][1]+(g[1]-o.v[p][1])*c,P=o.o[p][0]+(g[0]-o.o[p][0])*-c,_=o.o[p][1]+(g[1]-o.o[p][1])*-c,K=o.i[p][0]+(g[0]-o.i[p][0])*-c,L=o.i[p][1]+(g[1]-o.i[p][1])*-c,y.setTripleAt(k,S,P,_,K,L,p);return y},vr.prototype.processShapes=function(o){var h,c,g=this.shapes.length,f,p,y=this.amount.v;if(y!==0){var k,S;for(c=0;c<g;c+=1){if(k=this.shapes[c],S=k.localShapeCollection,!(!k.shape._mdf&&!this._mdf&&!o))for(S.releaseShapes(),k.shape._mdf=!0,h=k.shape.paths.shapes,p=k.shape.paths._length,f=0;f<p;f+=1)S.addShape(this.processPath(h[f],y));k.shape.paths=k.localShapeCollection}}this.dynamicProperties.length||(this._mdf=!1)};var wf=(function(){var o=[0,0];function h(S){var P=this._mdf;this.iterateDynamicProperties(),this._mdf=this._mdf||P,this.a&&S.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.s&&S.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.sk&&S.skewFromAxis(-this.sk.v,this.sa.v),this.r?S.rotate(-this.r.v):S.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.data.p.s?this.data.p.z?S.translate(this.px.v,this.py.v,-this.pz.v):S.translate(this.px.v,this.py.v,0):S.translate(this.p.v[0],this.p.v[1],-this.p.v[2])}function c(S){if(this.elem.globalData.frameId!==this.frameId){if(this._isDirty&&(this.precalculateMatrix(),this._isDirty=!1),this.iterateDynamicProperties(),this._mdf||S){var P;if(this.v.cloneFromProps(this.pre.props),this.appliedTransformations<1&&this.v.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations<2&&this.v.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.sk&&this.appliedTransformations<3&&this.v.skewFromAxis(-this.sk.v,this.sa.v),this.r&&this.appliedTransformations<4?this.v.rotate(-this.r.v):!this.r&&this.appliedTransformations<4&&this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.autoOriented){var _,K;if(P=this.elem.globalData.frameRate,this.p&&this.p.keyframes&&this.p.getValueAtTime)this.p._caching.lastFrame+this.p.offsetTime<=this.p.keyframes[0].t?(_=this.p.getValueAtTime((this.p.keyframes[0].t+.01)/P,0),K=this.p.getValueAtTime(this.p.keyframes[0].t/P,0)):this.p._caching.lastFrame+this.p.offsetTime>=this.p.keyframes[this.p.keyframes.length-1].t?(_=this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length-1].t/P,0),K=this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length-1].t-.05)/P,0)):(_=this.p.pv,K=this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime-.01)/P,this.p.offsetTime));else if(this.px&&this.px.keyframes&&this.py.keyframes&&this.px.getValueAtTime&&this.py.getValueAtTime){_=[],K=[];var L=this.px,B=this.py;L._caching.lastFrame+L.offsetTime<=L.keyframes[0].t?(_[0]=L.getValueAtTime((L.keyframes[0].t+.01)/P,0),_[1]=B.getValueAtTime((B.keyframes[0].t+.01)/P,0),K[0]=L.getValueAtTime(L.keyframes[0].t/P,0),K[1]=B.getValueAtTime(B.keyframes[0].t/P,0)):L._caching.lastFrame+L.offsetTime>=L.keyframes[L.keyframes.length-1].t?(_[0]=L.getValueAtTime(L.keyframes[L.keyframes.length-1].t/P,0),_[1]=B.getValueAtTime(B.keyframes[B.keyframes.length-1].t/P,0),K[0]=L.getValueAtTime((L.keyframes[L.keyframes.length-1].t-.01)/P,0),K[1]=B.getValueAtTime((B.keyframes[B.keyframes.length-1].t-.01)/P,0)):(_=[L.pv,B.pv],K[0]=L.getValueAtTime((L._caching.lastFrame+L.offsetTime-.01)/P,L.offsetTime),K[1]=B.getValueAtTime((B._caching.lastFrame+B.offsetTime-.01)/P,B.offsetTime))}else K=o,_=K;this.v.rotate(-Math.atan2(_[1]-K[1],_[0]-K[0]))}this.data.p&&this.data.p.s?this.data.p.z?this.v.translate(this.px.v,this.py.v,-this.pz.v):this.v.translate(this.px.v,this.py.v,0):this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2])}this.frameId=this.elem.globalData.frameId}}function g(){if(this.appliedTransformations=0,this.pre.reset(),!this.a.effectsSequence.length)this.pre.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations=1;else return;if(!this.s.effectsSequence.length)this.pre.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.appliedTransformations=2;else return;if(this.sk)if(!this.sk.effectsSequence.length&&!this.sa.effectsSequence.length)this.pre.skewFromAxis(-this.sk.v,this.sa.v),this.appliedTransformations=3;else return;this.r?this.r.effectsSequence.length||(this.pre.rotate(-this.r.v),this.appliedTransformations=4):!this.rz.effectsSequence.length&&!this.ry.effectsSequence.length&&!this.rx.effectsSequence.length&&!this.or.effectsSequence.length&&(this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.appliedTransformations=4)}function f(){}function p(S){this._addDynamicProperty(S),this.elem.addDynamicProperty(S),this._isDirty=!0}function y(S,P,_){if(this.elem=S,this.frameId=-1,this.propType="transform",this.data=P,this.v=new xt,this.pre=new xt,this.appliedTransformations=0,this.initDynamicPropertyContainer(_||S),P.p&&P.p.s?(this.px=me.getProp(S,P.p.x,0,0,this),this.py=me.getProp(S,P.p.y,0,0,this),P.p.z&&(this.pz=me.getProp(S,P.p.z,0,0,this))):this.p=me.getProp(S,P.p||{k:[0,0,0]},1,0,this),P.rx){if(this.rx=me.getProp(S,P.rx,0,_e,this),this.ry=me.getProp(S,P.ry,0,_e,this),this.rz=me.getProp(S,P.rz,0,_e,this),P.or.k[0].ti){var K,L=P.or.k.length;for(K=0;K<L;K+=1)P.or.k[K].to=null,P.or.k[K].ti=null}this.or=me.getProp(S,P.or,1,_e,this),this.or.sh=!0}else this.r=me.getProp(S,P.r||{k:0},0,_e,this);P.sk&&(this.sk=me.getProp(S,P.sk,0,_e,this),this.sa=me.getProp(S,P.sa,0,_e,this)),this.a=me.getProp(S,P.a||{k:[0,0,0]},1,0,this),this.s=me.getProp(S,P.s||{k:[100,100,100]},1,.01,this),P.o?this.o=me.getProp(S,P.o,0,.01,S):this.o={_mdf:!1,v:1},this._isDirty=!0,this.dynamicProperties.length||this.getValue(!0)}y.prototype={applyToMatrix:h,getValue:c,precalculateMatrix:g,autoOrient:f},E([yt],y),y.prototype.addDynamicProperty=p,y.prototype._addDynamicProperty=yt.prototype.addDynamicProperty;function k(S,P,_){return new y(S,P,_)}return{getTransformProperty:k}})();function mi(){}E([Qt],mi),mi.prototype.initModifierProperties=function(o,h){this.getValue=this.processKeys,this.c=me.getProp(o,h.c,0,null,this),this.o=me.getProp(o,h.o,0,null,this),this.tr=wf.getTransformProperty(o,h.tr,this),this.so=me.getProp(o,h.tr.so,0,.01,this),this.eo=me.getProp(o,h.tr.eo,0,.01,this),this.data=h,this.dynamicProperties.length||this.getValue(!0),this._isAnimated=!!this.dynamicProperties.length,this.pMatrix=new xt,this.rMatrix=new xt,this.sMatrix=new xt,this.tMatrix=new xt,this.matrix=new xt},mi.prototype.applyTransforms=function(o,h,c,g,f,p){var y=p?-1:1,k=g.s.v[0]+(1-g.s.v[0])*(1-f),S=g.s.v[1]+(1-g.s.v[1])*(1-f);o.translate(g.p.v[0]*y*f,g.p.v[1]*y*f,g.p.v[2]),h.translate(-g.a.v[0],-g.a.v[1],g.a.v[2]),h.rotate(-g.r.v*y*f),h.translate(g.a.v[0],g.a.v[1],g.a.v[2]),c.translate(-g.a.v[0],-g.a.v[1],g.a.v[2]),c.scale(p?1/k:k,p?1/S:S),c.translate(g.a.v[0],g.a.v[1],g.a.v[2])},mi.prototype.init=function(o,h,c,g){for(this.elem=o,this.arr=h,this.pos=c,this.elemsData=g,this._currentCopies=0,this._elements=[],this._groups=[],this.frameId=-1,this.initDynamicPropertyContainer(o),this.initModifierProperties(o,h[c]);c>0;)c-=1,this._elements.unshift(h[c]);this.dynamicProperties.length?this.k=!0:this.getValue(!0)},mi.prototype.resetElements=function(o){var h,c=o.length;for(h=0;h<c;h+=1)o[h]._processed=!1,o[h].ty==="gr"&&this.resetElements(o[h].it)},mi.prototype.cloneElements=function(o){var h=JSON.parse(JSON.stringify(o));return this.resetElements(h),h},mi.prototype.changeGroupRender=function(o,h){var c,g=o.length;for(c=0;c<g;c+=1)o[c]._render=h,o[c].ty==="gr"&&this.changeGroupRender(o[c].it,h)},mi.prototype.processShapes=function(o){var h,c,g,f,p,y=!1;if(this._mdf||o){var k=Math.ceil(this.c.v);if(this._groups.length<k){for(;this._groups.length<k;){var S={it:this.cloneElements(this._elements),ty:"gr"};S.it.push({a:{a:0,ix:1,k:[0,0]},nm:"Transform",o:{a:0,ix:7,k:100},p:{a:0,ix:2,k:[0,0]},r:{a:1,ix:6,k:[{s:0,e:0,t:0},{s:0,e:0,t:1}]},s:{a:0,ix:3,k:[100,100]},sa:{a:0,ix:5,k:0},sk:{a:0,ix:4,k:0},ty:"tr"}),this.arr.splice(0,0,S),this._groups.splice(0,0,S),this._currentCopies+=1}this.elem.reloadShapes(),y=!0}p=0;var P;for(g=0;g<=this._groups.length-1;g+=1){if(P=p<k,this._groups[g]._render=P,this.changeGroupRender(this._groups[g].it,P),!P){var _=this.elemsData[g].it,K=_[_.length-1];K.transform.op.v!==0?(K.transform.op._mdf=!0,K.transform.op.v=0):K.transform.op._mdf=!1}p+=1}this._currentCopies=k;var L=this.o.v,B=L%1,N=L>0?Math.floor(L):Math.ceil(L),O=this.pMatrix.props,G=this.rMatrix.props,M=this.sMatrix.props;this.pMatrix.reset(),this.rMatrix.reset(),this.sMatrix.reset(),this.tMatrix.reset(),this.matrix.reset();var A=0;if(L>0){for(;A<N;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),A+=1;B&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,B,!1),A+=B)}else if(L<0){for(;A>N;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!0),A-=1;B&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,-B,!0),A-=B)}g=this.data.m===1?0:this._currentCopies-1,f=this.data.m===1?1:-1,p=this._currentCopies;for(var C,x;p;){if(h=this.elemsData[g].it,c=h[h.length-1].transform.mProps.v.props,x=c.length,h[h.length-1].transform.mProps._mdf=!0,h[h.length-1].transform.op._mdf=!0,h[h.length-1].transform.op.v=this._currentCopies===1?this.so.v:this.so.v+(this.eo.v-this.so.v)*(g/(this._currentCopies-1)),A!==0){for((g!==0&&f===1||g!==this._currentCopies-1&&f===-1)&&this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),this.matrix.transform(G[0],G[1],G[2],G[3],G[4],G[5],G[6],G[7],G[8],G[9],G[10],G[11],G[12],G[13],G[14],G[15]),this.matrix.transform(M[0],M[1],M[2],M[3],M[4],M[5],M[6],M[7],M[8],M[9],M[10],M[11],M[12],M[13],M[14],M[15]),this.matrix.transform(O[0],O[1],O[2],O[3],O[4],O[5],O[6],O[7],O[8],O[9],O[10],O[11],O[12],O[13],O[14],O[15]),C=0;C<x;C+=1)c[C]=this.matrix.props[C];this.matrix.reset()}else for(this.matrix.reset(),C=0;C<x;C+=1)c[C]=this.matrix.props[C];A+=1,p-=1,g+=f}}else for(p=this._currentCopies,g=0,f=1;p;)h=this.elemsData[g].it,c=h[h.length-1].transform.mProps.v.props,h[h.length-1].transform.mProps._mdf=!1,h[h.length-1].transform.op._mdf=!1,p-=1,g+=f;return y},mi.prototype.addShape=function(){};function Tr(){}E([Qt],Tr),Tr.prototype.initModifierProperties=function(o,h){this.getValue=this.processKeys,this.rd=me.getProp(o,h.r,0,null,this),this._isAnimated=!!this.rd.effectsSequence.length},Tr.prototype.processPath=function(o,h){var c=kt.newElement();c.c=o.c;var g,f=o._length,p,y,k,S,P,_,K=0,L,B,N,O,G,M;for(g=0;g<f;g+=1)p=o.v[g],k=o.o[g],y=o.i[g],p[0]===k[0]&&p[1]===k[1]&&p[0]===y[0]&&p[1]===y[1]?(g===0||g===f-1)&&!o.c?(c.setTripleAt(p[0],p[1],k[0],k[1],y[0],y[1],K),K+=1):(g===0?S=o.v[f-1]:S=o.v[g-1],P=Math.sqrt(Math.pow(p[0]-S[0],2)+Math.pow(p[1]-S[1],2)),_=P?Math.min(P/2,h)/P:0,G=p[0]+(S[0]-p[0])*_,L=G,M=p[1]-(p[1]-S[1])*_,B=M,N=L-(L-p[0])*Lt,O=B-(B-p[1])*Lt,c.setTripleAt(L,B,N,O,G,M,K),K+=1,g===f-1?S=o.v[0]:S=o.v[g+1],P=Math.sqrt(Math.pow(p[0]-S[0],2)+Math.pow(p[1]-S[1],2)),_=P?Math.min(P/2,h)/P:0,N=p[0]+(S[0]-p[0])*_,L=N,O=p[1]+(S[1]-p[1])*_,B=O,G=L-(L-p[0])*Lt,M=B-(B-p[1])*Lt,c.setTripleAt(L,B,N,O,G,M,K),K+=1):(c.setTripleAt(o.v[g][0],o.v[g][1],o.o[g][0],o.o[g][1],o.i[g][0],o.i[g][1],K),K+=1);return c},Tr.prototype.processShapes=function(o){var h,c,g=this.shapes.length,f,p,y=this.rd.v;if(y!==0){var k,S;for(c=0;c<g;c+=1){if(k=this.shapes[c],S=k.localShapeCollection,!(!k.shape._mdf&&!this._mdf&&!o))for(S.releaseShapes(),k.shape._mdf=!0,h=k.shape.paths.shapes,p=k.shape.paths._length,f=0;f<p;f+=1)S.addShape(this.processPath(h[f],y));k.shape.paths=k.localShapeCollection}}this.dynamicProperties.length||(this._mdf=!1)};function Ja(o,h){return Math.abs(o-h)*1e5<=Math.min(Math.abs(o),Math.abs(h))}function Cf(o){return Math.abs(o)<=1e-5}function Wb(o,h,c){return o*(1-c)+h*c}function Hi(o,h,c){return[Wb(o[0],h[0],c),Wb(o[1],h[1],c)]}function ME(o,h,c){if(o===0)return[];var g=h*h-4*o*c;if(g<0)return[];var f=-h/(2*o);if(g===0)return[f];var p=Math.sqrt(g)/(2*o);return[f-p,f+p]}function jb(o,h,c,g){return[-o+3*h-3*c+g,3*o-6*h+3*c,-3*o+3*h,o]}function Kb(o){return new at(o,o,o,o,!1)}function at(o,h,c,g,f){f&&_s(o,h)&&(h=Hi(o,g,1/3)),f&&_s(c,g)&&(c=Hi(o,g,2/3));var p=jb(o[0],h[0],c[0],g[0]),y=jb(o[1],h[1],c[1],g[1]);this.a=[p[0],y[0]],this.b=[p[1],y[1]],this.c=[p[2],y[2]],this.d=[p[3],y[3]],this.points=[o,h,c,g]}at.prototype.point=function(o){return[((this.a[0]*o+this.b[0])*o+this.c[0])*o+this.d[0],((this.a[1]*o+this.b[1])*o+this.c[1])*o+this.d[1]]},at.prototype.derivative=function(o){return[(3*o*this.a[0]+2*this.b[0])*o+this.c[0],(3*o*this.a[1]+2*this.b[1])*o+this.c[1]]},at.prototype.tangentAngle=function(o){var h=this.derivative(o);return Math.atan2(h[1],h[0])},at.prototype.normalAngle=function(o){var h=this.derivative(o);return Math.atan2(h[0],h[1])},at.prototype.inflectionPoints=function(){var o=this.a[1]*this.b[0]-this.a[0]*this.b[1];if(Cf(o))return[];var h=-.5*(this.a[1]*this.c[0]-this.a[0]*this.c[1])/o,c=h*h-1/3*(this.b[1]*this.c[0]-this.b[0]*this.c[1])/o;if(c<0)return[];var g=Math.sqrt(c);return Cf(g)?g>0&&g<1?[h]:[]:[h-g,h+g].filter(function(f){return f>0&&f<1})},at.prototype.split=function(o){if(o<=0)return[Kb(this.points[0]),this];if(o>=1)return[this,Kb(this.points[this.points.length-1])];var h=Hi(this.points[0],this.points[1],o),c=Hi(this.points[1],this.points[2],o),g=Hi(this.points[2],this.points[3],o),f=Hi(h,c,o),p=Hi(c,g,o),y=Hi(f,p,o);return[new at(this.points[0],h,f,y,!0),new at(y,p,g,this.points[3],!0)]};function zb(o,h){var c=o.points[0][h],g=o.points[o.points.length-1][h];if(c>g){var f=g;g=c,c=f}for(var p=ME(3*o.a[h],2*o.b[h],o.c[h]),y=0;y<p.length;y+=1)if(p[y]>0&&p[y]<1){var k=o.point(p[y])[h];k<c?c=k:k>g&&(g=k)}return{min:c,max:g}}at.prototype.bounds=function(){return{x:zb(this,0),y:zb(this,1)}},at.prototype.boundingBox=function(){var o=this.bounds();return{left:o.x.min,right:o.x.max,top:o.y.min,bottom:o.y.max,width:o.x.max-o.x.min,height:o.y.max-o.y.min,cx:(o.x.max+o.x.min)/2,cy:(o.y.max+o.y.min)/2}};function Za(o,h,c){var g=o.boundingBox();return{cx:g.cx,cy:g.cy,width:g.width,height:g.height,bez:o,t:(h+c)/2,t1:h,t2:c}}function Yb(o){var h=o.bez.split(.5);return[Za(h[0],o.t1,o.t),Za(h[1],o.t,o.t2)]}function _E(o,h){return Math.abs(o.cx-h.cx)*2<o.width+h.width&&Math.abs(o.cy-h.cy)*2<o.height+h.height}function br(o,h,c,g,f,p){if(_E(o,h)){if(c>=p||o.width<=g&&o.height<=g&&h.width<=g&&h.height<=g){f.push([o.t,h.t]);return}var y=Yb(o),k=Yb(h);br(y[0],k[0],c+1,g,f,p),br(y[0],k[1],c+1,g,f,p),br(y[1],k[0],c+1,g,f,p),br(y[1],k[1],c+1,g,f,p)}}at.prototype.intersections=function(o,h,c){h===void 0&&(h=2),c===void 0&&(c=7);var g=[];return br(Za(this,0,1),Za(o,0,1),0,h,g,c),g},at.shapeSegment=function(o,h){var c=(h+1)%o.length();return new at(o.v[h],o.o[h],o.i[c],o.v[c],!0)},at.shapeSegmentInverted=function(o,h){var c=(h+1)%o.length();return new at(o.v[c],o.i[c],o.o[h],o.v[h],!0)};function Ef(o,h){return[o[1]*h[2]-o[2]*h[1],o[2]*h[0]-o[0]*h[2],o[0]*h[1]-o[1]*h[0]]}function en(o,h,c,g){var f=[o[0],o[1],1],p=[h[0],h[1],1],y=[c[0],c[1],1],k=[g[0],g[1],1],S=Ef(Ef(f,p),Ef(y,k));return Cf(S[2])?null:[S[0]/S[2],S[1]/S[2]]}function Ms(o,h,c){return[o[0]+Math.cos(h)*c,o[1]-Math.sin(h)*c]}function Lf(o,h){return Math.hypot(o[0]-h[0],o[1]-h[1])}function _s(o,h){return Ja(o[0],h[0])&&Ja(o[1],h[1])}function yr(){}E([Qt],yr),yr.prototype.initModifierProperties=function(o,h){this.getValue=this.processKeys,this.amplitude=me.getProp(o,h.s,0,null,this),this.frequency=me.getProp(o,h.r,0,null,this),this.pointsType=me.getProp(o,h.pt,0,null,this),this._isAnimated=this.amplitude.effectsSequence.length!==0||this.frequency.effectsSequence.length!==0||this.pointsType.effectsSequence.length!==0};function Xb(o,h,c,g,f,p,y){var k=c-Math.PI/2,S=c+Math.PI/2,P=h[0]+Math.cos(c)*g*f,_=h[1]-Math.sin(c)*g*f;o.setTripleAt(P,_,P+Math.cos(k)*p,_-Math.sin(k)*p,P+Math.cos(S)*y,_-Math.sin(S)*y,o.length())}function BE(o,h){var c=[h[0]-o[0],h[1]-o[1]],g=-Math.PI*.5,f=[Math.cos(g)*c[0]-Math.sin(g)*c[1],Math.sin(g)*c[0]+Math.cos(g)*c[1]];return f}function OE(o,h){var c=h===0?o.length()-1:h-1,g=(h+1)%o.length(),f=o.v[c],p=o.v[g],y=BE(f,p);return Math.atan2(0,1)-Math.atan2(y[1],y[0])}function Qb(o,h,c,g,f,p,y){var k=OE(h,c),S=h.v[c%h._length],P=h.v[c===0?h._length-1:c-1],_=h.v[(c+1)%h._length],K=p===2?Math.sqrt(Math.pow(S[0]-P[0],2)+Math.pow(S[1]-P[1],2)):0,L=p===2?Math.sqrt(Math.pow(S[0]-_[0],2)+Math.pow(S[1]-_[1],2)):0;Xb(o,h.v[c%h._length],k,y,g,L/((f+1)*2),K/((f+1)*2),p)}function FE(o,h,c,g,f,p){for(var y=0;y<g;y+=1){var k=(y+1)/(g+1),S=f===2?Math.sqrt(Math.pow(h.points[3][0]-h.points[0][0],2)+Math.pow(h.points[3][1]-h.points[0][1],2)):0,P=h.normalAngle(k),_=h.point(k);Xb(o,_,P,p,c,S/((g+1)*2),S/((g+1)*2),f),p=-p}return p}yr.prototype.processPath=function(o,h,c,g){var f=o._length,p=kt.newElement();if(p.c=o.c,o.c||(f-=1),f===0)return p;var y=-1,k=at.shapeSegment(o,0);Qb(p,o,0,h,c,g,y);for(var S=0;S<f;S+=1)y=FE(p,k,h,c,g,-y),S===f-1&&!o.c?k=null:k=at.shapeSegment(o,(S+1)%f),Qb(p,o,S+1,h,c,g,y);return p},yr.prototype.processShapes=function(o){var h,c,g=this.shapes.length,f,p,y=this.amplitude.v,k=Math.max(0,Math.round(this.frequency.v)),S=this.pointsType.v;if(y!==0){var P,_;for(c=0;c<g;c+=1){if(P=this.shapes[c],_=P.localShapeCollection,!(!P.shape._mdf&&!this._mdf&&!o))for(_.releaseShapes(),P.shape._mdf=!0,h=P.shape.paths.shapes,p=P.shape.paths._length,f=0;f<p;f+=1)_.addShape(this.processPath(h[f],y,k,S));P.shape.paths=P.localShapeCollection}}this.dynamicProperties.length||(this._mdf=!1)};function kf(o,h,c){var g=Math.atan2(h[0]-o[0],h[1]-o[1]);return[Ms(o,g,c),Ms(h,g,c)]}function Bs(o,h){var c,g,f,p,y,k,S;S=kf(o.points[0],o.points[1],h),c=S[0],g=S[1],S=kf(o.points[1],o.points[2],h),f=S[0],p=S[1],S=kf(o.points[2],o.points[3],h),y=S[0],k=S[1];var P=en(c,g,f,p);P===null&&(P=g);var _=en(y,k,f,p);return _===null&&(_=y),new at(c,P,_,k)}function Jb(o,h,c,g,f){var p=h.points[3],y=c.points[0];if(g===3||_s(p,y))return p;if(g===2){var k=-h.tangentAngle(1),S=-c.tangentAngle(0)+Math.PI,P=en(p,Ms(p,k+Math.PI/2,100),y,Ms(y,k+Math.PI/2,100)),_=P?Lf(P,p):Lf(p,y)/2,K=Ms(p,k,2*_*Lt);return o.setXYAt(K[0],K[1],"o",o.length()-1),K=Ms(y,S,2*_*Lt),o.setTripleAt(y[0],y[1],y[0],y[1],K[0],K[1],o.length()),y}var L=_s(p,h.points[2])?h.points[0]:h.points[2],B=_s(y,c.points[1])?c.points[3]:c.points[1],N=en(L,p,y,B);return N&&Lf(N,p)<f?(o.setTripleAt(N[0],N[1],N[0],N[1],N[0],N[1],o.length()),N):p}function Zb(o,h){var c=o.intersections(h);return c.length&&Ja(c[0][0],1)&&c.shift(),c.length?c[0]:null}function ey(o,h){var c=o.slice(),g=h.slice(),f=Zb(o[o.length-1],h[0]);return f&&(c[o.length-1]=o[o.length-1].split(f[0])[0],g[0]=h[0].split(f[1])[1]),o.length>1&&h.length>1&&(f=Zb(o[0],h[h.length-1]),f)?[[o[0].split(f[0])[0]],[h[h.length-1].split(f[1])[1]]]:[c,g]}function DE(o){for(var h,c=1;c<o.length;c+=1)h=ey(o[c-1],o[c]),o[c-1]=h[0],o[c]=h[1];return o.length>1&&(h=ey(o[o.length-1],o[0]),o[o.length-1]=h[0],o[0]=h[1]),o}function ty(o,h){var c=o.inflectionPoints(),g,f,p,y;if(c.length===0)return[Bs(o,h)];if(c.length===1||Ja(c[1],1))return p=o.split(c[0]),g=p[0],f=p[1],[Bs(g,h),Bs(f,h)];p=o.split(c[0]),g=p[0];var k=(c[1]-c[0])/(1-c[0]);return p=p[1].split(k),y=p[0],f=p[1],[Bs(g,h),Bs(y,h),Bs(f,h)]}function Sr(){}E([Qt],Sr),Sr.prototype.initModifierProperties=function(o,h){this.getValue=this.processKeys,this.amount=me.getProp(o,h.a,0,null,this),this.miterLimit=me.getProp(o,h.ml,0,null,this),this.lineJoin=h.lj,this._isAnimated=this.amount.effectsSequence.length!==0},Sr.prototype.processPath=function(o,h,c,g){var f=kt.newElement();f.c=o.c;var p=o.length();o.c||(p-=1);var y,k,S,P=[];for(y=0;y<p;y+=1)S=at.shapeSegment(o,y),P.push(ty(S,h));if(!o.c)for(y=p-1;y>=0;y-=1)S=at.shapeSegmentInverted(o,y),P.push(ty(S,h));P=DE(P);var _=null,K=null;for(y=0;y<P.length;y+=1){var L=P[y];for(K&&(_=Jb(f,K,L[0],c,g)),K=L[L.length-1],k=0;k<L.length;k+=1)S=L[k],_&&_s(S.points[0],_)?f.setXYAt(S.points[1][0],S.points[1][1],"o",f.length()-1):f.setTripleAt(S.points[0][0],S.points[0][1],S.points[1][0],S.points[1][1],S.points[0][0],S.points[0][1],f.length()),f.setTripleAt(S.points[3][0],S.points[3][1],S.points[3][0],S.points[3][1],S.points[2][0],S.points[2][1],f.length()),_=S.points[3]}return P.length&&Jb(f,K,P[0][0],c,g),f},Sr.prototype.processShapes=function(o){var h,c,g=this.shapes.length,f,p,y=this.amount.v,k=this.miterLimit.v,S=this.lineJoin;if(y!==0){var P,_;for(c=0;c<g;c+=1){if(P=this.shapes[c],_=P.localShapeCollection,!(!P.shape._mdf&&!this._mdf&&!o))for(_.releaseShapes(),P.shape._mdf=!0,h=P.shape.paths.shapes,p=P.shape.paths._length,f=0;f<p;f+=1)_.addShape(this.processPath(h[f],y,S,k));P.shape.paths=P.localShapeCollection}}this.dynamicProperties.length||(this._mdf=!1)};function iy(o){for(var h=o.fStyle?o.fStyle.split(" "):[],c="normal",g="normal",f=h.length,p,y=0;y<f;y+=1)switch(p=h[y].toLowerCase(),p){case"italic":g="italic";break;case"bold":c="700";break;case"black":c="900";break;case"medium":c="500";break;case"regular":case"normal":c="400";break;case"light":case"thin":c="200";break;default:break}return{style:g,weight:o.fWeight||c}}var cs=(function(){var o=5e3,h={w:0,size:0,shapes:[],data:{shapes:[]}},c=[];c=c.concat([2304,2305,2306,2307,2362,2363,2364,2364,2366,2367,2368,2369,2370,2371,2372,2373,2374,2375,2376,2377,2378,2379,2380,2381,2382,2383,2387,2388,2389,2390,2391,2402,2403]);var g=127988,f=917631,p=917601,y=917626,k=65039,S=8205,P=127462,_=127487,K=["d83cdffb","d83cdffc","d83cdffd","d83cdffe","d83cdfff"];function L(I){var F=I.split(","),b,w=F.length,z=[];for(b=0;b<w;b+=1)F[b]!=="sans-serif"&&F[b]!=="monospace"&&z.push(F[b]);return z.join(",")}function B(I,F){var b=v("span");b.setAttribute("aria-hidden",!0),b.style.fontFamily=F;var w=v("span");w.innerText="giItT1WQy@!-/#",b.style.position="absolute",b.style.left="-10000px",b.style.top="-10000px",b.style.fontSize="300px",b.style.fontVariant="normal",b.style.fontStyle="normal",b.style.fontWeight="normal",b.style.letterSpacing="0",b.appendChild(w),document.body.appendChild(b);var z=w.offsetWidth;return w.style.fontFamily=L(I)+", "+F,{node:w,w:z,parent:b}}function N(){var I,F=this.fonts.length,b,w,z=F;for(I=0;I<F;I+=1)this.fonts[I].loaded?z-=1:this.fonts[I].fOrigin==="n"||this.fonts[I].origin===0?this.fonts[I].loaded=!0:(b=this.fonts[I].monoCase.node,w=this.fonts[I].monoCase.w,b.offsetWidth!==w?(z-=1,this.fonts[I].loaded=!0):(b=this.fonts[I].sansCase.node,w=this.fonts[I].sansCase.w,b.offsetWidth!==w&&(z-=1,this.fonts[I].loaded=!0)),this.fonts[I].loaded&&(this.fonts[I].sansCase.parent.parentNode.removeChild(this.fonts[I].sansCase.parent),this.fonts[I].monoCase.parent.parentNode.removeChild(this.fonts[I].monoCase.parent)));z!==0&&Date.now()-this.initTime<o?setTimeout(this.checkLoadedFontsBinded,20):setTimeout(this.setIsLoadedBinded,10)}function O(I,F){var b=document.body&&F?"svg":"canvas",w,z=iy(I);if(b==="svg"){var q=Ie("text");q.style.fontSize="100px",q.setAttribute("font-family",I.fFamily),q.setAttribute("font-style",z.style),q.setAttribute("font-weight",z.weight),q.textContent="1",I.fClass?(q.style.fontFamily="inherit",q.setAttribute("class",I.fClass)):q.style.fontFamily=I.fFamily,F.appendChild(q),w=q}else{var fe=new OffscreenCanvas(500,500).getContext("2d");fe.font=z.style+" "+z.weight+" 100px "+I.fFamily,w=fe}function Ce(xe){return b==="svg"?(w.textContent=xe,w.getComputedTextLength()):w.measureText(xe).width}return{measureText:Ce}}function G(I,F){if(!I){this.isLoaded=!0;return}if(this.chars){this.isLoaded=!0,this.fonts=I.list;return}if(!document.body){this.isLoaded=!0,I.list.forEach(function(Rt){Rt.helper=O(Rt),Rt.cache={}}),this.fonts=I.list;return}var b=I.list,w,z=b.length,q=z;for(w=0;w<z;w+=1){var fe=!0,Ce,xe;if(b[w].loaded=!1,b[w].monoCase=B(b[w].fFamily,"monospace"),b[w].sansCase=B(b[w].fFamily,"sans-serif"),!b[w].fPath)b[w].loaded=!0,q-=1;else if(b[w].fOrigin==="p"||b[w].origin===3){if(Ce=document.querySelectorAll('style[f-forigin="p"][f-family="'+b[w].fFamily+'"], style[f-origin="3"][f-family="'+b[w].fFamily+'"]'),Ce.length>0&&(fe=!1),fe){var Ne=v("style");Ne.setAttribute("f-forigin",b[w].fOrigin),Ne.setAttribute("f-origin",b[w].origin),Ne.setAttribute("f-family",b[w].fFamily),Ne.type="text/css",Ne.innerText="@font-face {font-family: "+b[w].fFamily+"; font-style: normal; src: url('"+b[w].fPath+"');}",F.appendChild(Ne)}}else if(b[w].fOrigin==="g"||b[w].origin===1){for(Ce=document.querySelectorAll('link[f-forigin="g"], link[f-origin="1"]'),xe=0;xe<Ce.length;xe+=1)Ce[xe].href.indexOf(b[w].fPath)!==-1&&(fe=!1);if(fe){var Ue=v("link");Ue.setAttribute("f-forigin",b[w].fOrigin),Ue.setAttribute("f-origin",b[w].origin),Ue.type="text/css",Ue.rel="stylesheet",Ue.href=b[w].fPath,document.body.appendChild(Ue)}}else if(b[w].fOrigin==="t"||b[w].origin===2){for(Ce=document.querySelectorAll('script[f-forigin="t"], script[f-origin="2"]'),xe=0;xe<Ce.length;xe+=1)b[w].fPath===Ce[xe].src&&(fe=!1);if(fe){var mt=v("link");mt.setAttribute("f-forigin",b[w].fOrigin),mt.setAttribute("f-origin",b[w].origin),mt.setAttribute("rel","stylesheet"),mt.setAttribute("href",b[w].fPath),F.appendChild(mt)}}b[w].helper=O(b[w],F),b[w].cache={},this.fonts.push(b[w])}q===0?this.isLoaded=!0:setTimeout(this.checkLoadedFonts.bind(this),100)}function M(I){if(I){this.chars||(this.chars=[]);var F,b=I.length,w,z=this.chars.length,q;for(F=0;F<b;F+=1){for(w=0,q=!1;w<z;)this.chars[w].style===I[F].style&&this.chars[w].fFamily===I[F].fFamily&&this.chars[w].ch===I[F].ch&&(q=!0),w+=1;q||(this.chars.push(I[F]),z+=1)}}}function A(I,F,b){for(var w=0,z=this.chars.length;w<z;){if(this.chars[w].ch===I&&this.chars[w].style===F&&this.chars[w].fFamily===b)return this.chars[w];w+=1}return(typeof I=="string"&&I.charCodeAt(0)!==13||!I)&&console&&console.warn&&!this._warned&&(this._warned=!0,console.warn("Missing character from exported characters list: ",I,F,b)),h}function C(I,F,b){var w=this.getFontByName(F),z=I;if(!w.cache[z]){var q=w.helper;if(I===" "){var fe=q.measureText("|"+I+"|"),Ce=q.measureText("||");w.cache[z]=(fe-Ce)/100}else w.cache[z]=q.measureText(I)/100}return w.cache[z]*b}function x(I){for(var F=0,b=this.fonts.length;F<b;){if(this.fonts[F].fName===I)return this.fonts[F];F+=1}return this.fonts[0]}function V(I){var F=0,b=I.charCodeAt(0);if(b>=55296&&b<=56319){var w=I.charCodeAt(1);w>=56320&&w<=57343&&(F=(b-55296)*1024+w-56320+65536)}return F}function U(I,F){var b=I.toString(16)+F.toString(16);return K.indexOf(b)!==-1}function j(I){return I===S}function Y(I){return I===k}function ne(I){var F=V(I);return F>=P&&F<=_}function ke(I){return ne(I.substr(0,2))&&ne(I.substr(2,2))}function Se(I){return c.indexOf(I)!==-1}function de(I,F){var b=V(I.substr(F,2));if(b!==g)return!1;var w=0;for(F+=2;w<5;){if(b=V(I.substr(F,2)),b<p||b>y)return!1;w+=1,F+=2}return V(I.substr(F,2))===f}function Ae(){this.isLoaded=!0}var be=function(){this.fonts=[],this.chars=null,this.typekitLoaded=0,this.isLoaded=!1,this._warned=!1,this.initTime=Date.now(),this.setIsLoadedBinded=this.setIsLoaded.bind(this),this.checkLoadedFontsBinded=this.checkLoadedFonts.bind(this)};be.isModifier=U,be.isZeroWidthJoiner=j,be.isFlagEmoji=ke,be.isRegionalCode=ne,be.isCombinedCharacter=Se,be.isRegionalFlag=de,be.isVariationSelector=Y,be.BLACK_FLAG_CODE_POINT=g;var ae={addChars:M,addFonts:G,getCharData:A,getFontByName:x,measureText:C,checkLoadedFonts:N,setIsLoaded:Ae};return be.prototype=ae,be})();function sy(o){this.animationData=o}sy.prototype.getProp=function(o){return this.animationData.slots&&this.animationData.slots[o.sid]?Object.assign(o,this.animationData.slots[o.sid].p):o};function RE(o){return new sy(o)}function tn(){}tn.prototype={initRenderable:function(){this.isInRange=!1,this.hidden=!1,this.isTransparent=!1,this.renderableComponents=[]},addRenderableComponent:function(h){this.renderableComponents.indexOf(h)===-1&&this.renderableComponents.push(h)},removeRenderableComponent:function(h){this.renderableComponents.indexOf(h)!==-1&&this.renderableComponents.splice(this.renderableComponents.indexOf(h),1)},prepareRenderableFrame:function(h){this.checkLayerLimits(h)},checkTransparency:function(){this.finalTransform.mProp.o.v<=0?!this.isTransparent&&this.globalData.renderConfig.hideOnTransparent&&(this.isTransparent=!0,this.hide()):this.isTransparent&&(this.isTransparent=!1,this.show())},checkLayerLimits:function(h){this.data.ip-this.data.st<=h&&this.data.op-this.data.st>h?this.isInRange!==!0&&(this.globalData._mdf=!0,this._mdf=!0,this.isInRange=!0,this.show()):this.isInRange!==!1&&(this.globalData._mdf=!0,this.isInRange=!1,this.hide())},renderRenderable:function(){var h,c=this.renderableComponents.length;for(h=0;h<c;h+=1)this.renderableComponents[h].renderFrame(this._isFirstFrame)},sourceRectAtTime:function(){return{top:0,left:0,width:100,height:100}},getLayerSize:function(){return this.data.ty===5?{w:this.data.textData.width,h:this.data.textData.height}:{w:this.data.width,h:this.data.height}}};var xf=(function(){var o={0:"source-over",1:"multiply",2:"screen",3:"overlay",4:"darken",5:"lighten",6:"color-dodge",7:"color-burn",8:"hard-light",9:"soft-light",10:"difference",11:"exclusion",12:"hue",13:"saturation",14:"color",15:"luminosity"};return function(h){return o[h]||""}})();function NE(o,h,c){this.p=me.getProp(h,o.v,0,0,c)}function UE(o,h,c){this.p=me.getProp(h,o.v,0,0,c)}function HE(o,h,c){this.p=me.getProp(h,o.v,1,0,c)}function qE(o,h,c){this.p=me.getProp(h,o.v,1,0,c)}function $E(o,h,c){this.p=me.getProp(h,o.v,0,0,c)}function GE(o,h,c){this.p=me.getProp(h,o.v,0,0,c)}function WE(o,h,c){this.p=me.getProp(h,o.v,0,0,c)}function jE(){this.p={}}function ry(o,h){var c=o.ef||[];this.effectElements=[];var g,f=c.length,p;for(g=0;g<f;g+=1)p=new wr(c[g],h),this.effectElements.push(p)}function wr(o,h){this.init(o,h)}E([yt],wr),wr.prototype.getValue=wr.prototype.iterateDynamicProperties,wr.prototype.init=function(o,h){this.data=o,this.effectElements=[],this.initDynamicPropertyContainer(h);var c,g=this.data.ef.length,f,p=this.data.ef;for(c=0;c<g;c+=1){switch(f=null,p[c].ty){case 0:f=new NE(p[c],h,this);break;case 1:f=new UE(p[c],h,this);break;case 2:f=new HE(p[c],h,this);break;case 3:f=new qE(p[c],h,this);break;case 4:case 7:f=new WE(p[c],h,this);break;case 10:f=new $E(p[c],h,this);break;case 11:f=new GE(p[c],h,this);break;case 5:f=new ry(p[c],h,this);break;default:f=new jE(p[c],h,this);break}f&&this.effectElements.push(f)}};function qi(){}qi.prototype={checkMasks:function(){if(!this.data.hasMask)return!1;for(var h=0,c=this.data.masksProperties.length;h<c;){if(this.data.masksProperties[h].mode!=="n"&&this.data.masksProperties[h].cl!==!1)return!0;h+=1}return!1},initExpressions:function(){var h=Pb();if(h){var c=h("layer"),g=h("effects"),f=h("shape"),p=h("text"),y=h("comp");this.layerInterface=c(this),this.data.hasMask&&this.maskManager&&this.layerInterface.registerMaskInterface(this.maskManager);var k=g.createEffectsInterface(this,this.layerInterface);this.layerInterface.registerEffectsInterface(k),this.data.ty===0||this.data.xt?this.compInterface=y(this):this.data.ty===4?(this.layerInterface.shapeInterface=f(this.shapesData,this.itemsData,this.layerInterface),this.layerInterface.content=this.layerInterface.shapeInterface):this.data.ty===5&&(this.layerInterface.textInterface=p(this),this.layerInterface.text=this.layerInterface.textInterface)}},setBlendMode:function(){var h=xf(this.data.bm),c=this.baseElement||this.layerElement;c.style["mix-blend-mode"]=h},initBaseData:function(h,c,g){this.globalData=c,this.comp=g,this.data=h,this.layerId=Ft(),this.data.sr||(this.data.sr=1),this.effectsManager=new ry(this.data,this,this.dynamicProperties)},getType:function(){return this.type},sourceRectAtTime:function(){}};function $i(){}$i.prototype={initFrame:function(){this._isFirstFrame=!1,this.dynamicProperties=[],this._mdf=!1},prepareProperties:function(h,c){var g,f=this.dynamicProperties.length;for(g=0;g<f;g+=1)(c||this._isParent&&this.dynamicProperties[g].propType==="transform")&&(this.dynamicProperties[g].getValue(),this.dynamicProperties[g]._mdf&&(this.globalData._mdf=!0,this._mdf=!0))},addDynamicProperty:function(h){this.dynamicProperties.indexOf(h)===-1&&this.dynamicProperties.push(h)}};function Gi(o,h,c){this.initFrame(),this.initRenderable(),this.assetData=h.getAssetData(o.refId),this.footageData=h.imageLoader.getAsset(this.assetData),this.initBaseData(o,h,c)}Gi.prototype.prepareFrame=function(){},E([tn,qi,$i],Gi),Gi.prototype.getBaseElement=function(){return null},Gi.prototype.renderFrame=function(){},Gi.prototype.destroy=function(){},Gi.prototype.initExpressions=function(){var o=Pb();if(o){var h=o("footage");this.layerInterface=h(this)}},Gi.prototype.getFootageData=function(){return this.footageData};function Dt(o,h,c){this.initFrame(),this.initRenderable(),this.assetData=h.getAssetData(o.refId),this.initBaseData(o,h,c),this._isPlaying=!1,this._canPlay=!1;var g=this.globalData.getAssetsPath(this.assetData);this.audio=this.globalData.audioController.createAudio(g),this._currentTime=0,this.globalData.audioController.addAudio(this),this._volumeMultiplier=1,this._volume=1,this._previousVolume=null,this.tm=o.tm?me.getProp(this,o.tm,0,h.frameRate,this):{_placeholder:!0},this.lv=me.getProp(this,o.au&&o.au.lv?o.au.lv:{k:[100]},1,.01,this)}Dt.prototype.prepareFrame=function(o){if(this.prepareRenderableFrame(o,!0),this.prepareProperties(o,!0),this.tm._placeholder)this._currentTime=o/this.data.sr;else{var h=this.tm.v;this._currentTime=h}this._volume=this.lv.v[0];var c=this._volume*this._volumeMultiplier;this._previousVolume!==c&&(this._previousVolume=c,this.audio.volume(c))},E([tn,qi,$i],Dt),Dt.prototype.renderFrame=function(){this.isInRange&&this._canPlay&&(this._isPlaying?(!this.audio.playing()||Math.abs(this._currentTime/this.globalData.frameRate-this.audio.seek())>.1)&&this.audio.seek(this._currentTime/this.globalData.frameRate):(this.audio.play(),this.audio.seek(this._currentTime/this.globalData.frameRate),this._isPlaying=!0))},Dt.prototype.show=function(){},Dt.prototype.hide=function(){this.audio.pause(),this._isPlaying=!1},Dt.prototype.pause=function(){this.audio.pause(),this._isPlaying=!1,this._canPlay=!1},Dt.prototype.resume=function(){this._canPlay=!0},Dt.prototype.setRate=function(o){this.audio.rate(o)},Dt.prototype.volume=function(o){this._volumeMultiplier=o,this._previousVolume=o*this._volume,this.audio.volume(this._previousVolume)},Dt.prototype.getBaseElement=function(){return null},Dt.prototype.destroy=function(){},Dt.prototype.sourceRectAtTime=function(){},Dt.prototype.initExpressions=function(){};function It(){}It.prototype.checkLayers=function(o){var h,c=this.layers.length,g;for(this.completeLayers=!0,h=c-1;h>=0;h-=1)this.elements[h]||(g=this.layers[h],g.ip-g.st<=o-this.layers[h].st&&g.op-g.st>o-this.layers[h].st&&this.buildItem(h)),this.completeLayers=this.elements[h]?this.completeLayers:!1;this.checkPendingElements()},It.prototype.createItem=function(o){switch(o.ty){case 2:return this.createImage(o);case 0:return this.createComp(o);case 1:return this.createSolid(o);case 3:return this.createNull(o);case 4:return this.createShape(o);case 5:return this.createText(o);case 6:return this.createAudio(o);case 13:return this.createCamera(o);case 15:return this.createFootage(o);default:return this.createNull(o)}},It.prototype.createCamera=function(){throw new Error("You're using a 3d camera. Try the html renderer.")},It.prototype.createAudio=function(o){return new Dt(o,this.globalData,this)},It.prototype.createFootage=function(o){return new Gi(o,this.globalData,this)},It.prototype.buildAllItems=function(){var o,h=this.layers.length;for(o=0;o<h;o+=1)this.buildItem(o);this.checkPendingElements()},It.prototype.includeLayers=function(o){this.completeLayers=!1;var h,c=o.length,g,f=this.layers.length;for(h=0;h<c;h+=1)for(g=0;g<f;){if(this.layers[g].id===o[h].id){this.layers[g]=o[h];break}g+=1}},It.prototype.setProjectInterface=function(o){this.globalData.projectInterface=o},It.prototype.initItems=function(){this.globalData.progressiveLoad||this.buildAllItems()},It.prototype.buildElementParenting=function(o,h,c){for(var g=this.elements,f=this.layers,p=0,y=f.length;p<y;)f[p].ind==h&&(!g[p]||g[p]===!0?(this.buildItem(p),this.addPendingElement(o)):(c.push(g[p]),g[p].setAsParent(),f[p].parent!==void 0?this.buildElementParenting(o,f[p].parent,c):o.setHierarchy(c))),p+=1},It.prototype.addPendingElement=function(o){this.pendingElements.push(o)},It.prototype.searchExtraCompositions=function(o){var h,c=o.length;for(h=0;h<c;h+=1)if(o[h].xt){var g=this.createComp(o[h]);g.initExpressions(),this.globalData.projectInterface.registerComposition(g)}},It.prototype.getElementById=function(o){var h,c=this.elements.length;for(h=0;h<c;h+=1)if(this.elements[h].data.ind===o)return this.elements[h];return null},It.prototype.getElementByPath=function(o){var h=o.shift(),c;if(typeof h=="number")c=this.elements[h];else{var g,f=this.elements.length;for(g=0;g<f;g+=1)if(this.elements[g].data.nm===h){c=this.elements[g];break}}return o.length===0?c:c.getElementByPath(o)},It.prototype.setupGlobalData=function(o,h){this.globalData.fontManager=new cs,this.globalData.slotManager=RE(o),this.globalData.fontManager.addChars(o.chars),this.globalData.fontManager.addFonts(o.fonts,h),this.globalData.getAssetData=this.animationItem.getAssetData.bind(this.animationItem),this.globalData.getAssetsPath=this.animationItem.getAssetsPath.bind(this.animationItem),this.globalData.imageLoader=this.animationItem.imagePreloader,this.globalData.audioController=this.animationItem.audioController,this.globalData.frameId=0,this.globalData.frameRate=o.fr,this.globalData.nm=o.nm,this.globalData.compSize={w:o.w,h:o.h}};var KE={TRANSFORM_EFFECT:"transformEFfect"};function Os(){}Os.prototype={initTransform:function(){var h=new xt;this.finalTransform={mProp:this.data.ks?wf.getTransformProperty(this,this.data.ks,this):{o:0},_matMdf:!1,_localMatMdf:!1,_opMdf:!1,mat:h,localMat:h,localOpacity:1},this.data.ao&&(this.finalTransform.mProp.autoOriented=!0),this.data.ty},renderTransform:function(){if(this.finalTransform._opMdf=this.finalTransform.mProp.o._mdf||this._isFirstFrame,this.finalTransform._matMdf=this.finalTransform.mProp._mdf||this._isFirstFrame,this.hierarchy){var h,c=this.finalTransform.mat,g=0,f=this.hierarchy.length;if(!this.finalTransform._matMdf)for(;g<f;){if(this.hierarchy[g].finalTransform.mProp._mdf){this.finalTransform._matMdf=!0;break}g+=1}if(this.finalTransform._matMdf)for(h=this.finalTransform.mProp.v.props,c.cloneFromProps(h),g=0;g<f;g+=1)c.multiply(this.hierarchy[g].finalTransform.mProp.v)}(!this.localTransforms||this.finalTransform._matMdf)&&(this.finalTransform._localMatMdf=this.finalTransform._matMdf),this.finalTransform._opMdf&&(this.finalTransform.localOpacity=this.finalTransform.mProp.o.v)},renderLocalTransform:function(){if(this.localTransforms){var h=0,c=this.localTransforms.length;if(this.finalTransform._localMatMdf=this.finalTransform._matMdf,!this.finalTransform._localMatMdf||!this.finalTransform._opMdf)for(;h<c;)this.localTransforms[h]._mdf&&(this.finalTransform._localMatMdf=!0),this.localTransforms[h]._opMdf&&!this.finalTransform._opMdf&&(this.finalTransform.localOpacity=this.finalTransform.mProp.o.v,this.finalTransform._opMdf=!0),h+=1;if(this.finalTransform._localMatMdf){var g=this.finalTransform.localMat;for(this.localTransforms[0].matrix.clone(g),h=1;h<c;h+=1){var f=this.localTransforms[h].matrix;g.multiply(f)}g.multiply(this.finalTransform.mat)}if(this.finalTransform._opMdf){var p=this.finalTransform.localOpacity;for(h=0;h<c;h+=1)p*=this.localTransforms[h].opacity*.01;this.finalTransform.localOpacity=p}}},searchEffectTransforms:function(){if(this.renderableEffectsManager){var h=this.renderableEffectsManager.getEffects(KE.TRANSFORM_EFFECT);if(h.length){this.localTransforms=[],this.finalTransform.localMat=new xt;var c=0,g=h.length;for(c=0;c<g;c+=1)this.localTransforms.push(h[c])}}},globalToLocal:function(h){var c=[];c.push(this.finalTransform);for(var g=!0,f=this.comp;g;)f.finalTransform?(f.data.hasMask&&c.splice(0,0,f.finalTransform),f=f.comp):g=!1;var p,y=c.length,k;for(p=0;p<y;p+=1)k=c[p].mat.applyToPointArray(0,0,0),h=[h[0]-k[0],h[1]-k[1],0];return h},mHelper:new xt};function ds(o,h,c){this.data=o,this.element=h,this.globalData=c,this.storedData=[],this.masksProperties=this.data.masksProperties||[],this.maskElement=null;var g=this.globalData.defs,f,p=this.masksProperties?this.masksProperties.length:0;this.viewData=X(p),this.solidPath="";var y,k=this.masksProperties,S=0,P=[],_,K,L=Ft(),B,N,O,G,M="clipPath",A="clip-path";for(f=0;f<p;f+=1)if((k[f].mode!=="a"&&k[f].mode!=="n"||k[f].inv||k[f].o.k!==100||k[f].o.x)&&(M="mask",A="mask"),(k[f].mode==="s"||k[f].mode==="i")&&S===0?(B=Ie("rect"),B.setAttribute("fill","#ffffff"),B.setAttribute("width",this.element.comp.data.w||0),B.setAttribute("height",this.element.comp.data.h||0),P.push(B)):B=null,y=Ie("path"),k[f].mode==="n")this.viewData[f]={op:me.getProp(this.element,k[f].o,0,.01,this.element),prop:Xa.getShapeProp(this.element,k[f],3),elem:y,lastPath:""},g.appendChild(y);else{S+=1,y.setAttribute("fill",k[f].mode==="s"?"#000000":"#ffffff"),y.setAttribute("clip-rule","nonzero");var C;if(k[f].x.k!==0?(M="mask",A="mask",G=me.getProp(this.element,k[f].x,0,null,this.element),C=Ft(),N=Ie("filter"),N.setAttribute("id",C),O=Ie("feMorphology"),O.setAttribute("operator","erode"),O.setAttribute("in","SourceGraphic"),O.setAttribute("radius","0"),N.appendChild(O),g.appendChild(N),y.setAttribute("stroke",k[f].mode==="s"?"#000000":"#ffffff")):(O=null,G=null),this.storedData[f]={elem:y,x:G,expan:O,lastPath:"",lastOperator:"",filterId:C,lastRadius:0},k[f].mode==="i"){K=P.length;var x=Ie("g");for(_=0;_<K;_+=1)x.appendChild(P[_]);var V=Ie("mask");V.setAttribute("mask-type","alpha"),V.setAttribute("id",L+"_"+S),V.appendChild(y),g.appendChild(V),x.setAttribute("mask","url("+m()+"#"+L+"_"+S+")"),P.length=0,P.push(x)}else P.push(y);k[f].inv&&!this.solidPath&&(this.solidPath=this.createLayerSolidPath()),this.viewData[f]={elem:y,lastPath:"",op:me.getProp(this.element,k[f].o,0,.01,this.element),prop:Xa.getShapeProp(this.element,k[f],3),invRect:B},this.viewData[f].prop.k||this.drawPath(k[f],this.viewData[f].prop.v,this.viewData[f])}for(this.maskElement=Ie(M),p=P.length,f=0;f<p;f+=1)this.maskElement.appendChild(P[f]);S>0&&(this.maskElement.setAttribute("id",L),this.element.maskedElement.setAttribute(A,"url("+m()+"#"+L+")"),g.appendChild(this.maskElement)),this.viewData.length&&this.element.addRenderableComponent(this)}ds.prototype.getMaskProperty=function(o){return this.viewData[o].prop},ds.prototype.renderFrame=function(o){var h=this.element.finalTransform.mat,c,g=this.masksProperties.length;for(c=0;c<g;c+=1)if((this.viewData[c].prop._mdf||o)&&this.drawPath(this.masksProperties[c],this.viewData[c].prop.v,this.viewData[c]),(this.viewData[c].op._mdf||o)&&this.viewData[c].elem.setAttribute("fill-opacity",this.viewData[c].op.v),this.masksProperties[c].mode!=="n"&&(this.viewData[c].invRect&&(this.element.finalTransform.mProp._mdf||o)&&this.viewData[c].invRect.setAttribute("transform",h.getInverseMatrix().to2dCSS()),this.storedData[c].x&&(this.storedData[c].x._mdf||o))){var f=this.storedData[c].expan;this.storedData[c].x.v<0?(this.storedData[c].lastOperator!=="erode"&&(this.storedData[c].lastOperator="erode",this.storedData[c].elem.setAttribute("filter","url("+m()+"#"+this.storedData[c].filterId+")")),f.setAttribute("radius",-this.storedData[c].x.v)):(this.storedData[c].lastOperator!=="dilate"&&(this.storedData[c].lastOperator="dilate",this.storedData[c].elem.setAttribute("filter",null)),this.storedData[c].elem.setAttribute("stroke-width",this.storedData[c].x.v*2))}},ds.prototype.getMaskelement=function(){return this.maskElement},ds.prototype.createLayerSolidPath=function(){var o="M0,0 ";return o+=" h"+this.globalData.compSize.w,o+=" v"+this.globalData.compSize.h,o+=" h-"+this.globalData.compSize.w,o+=" v-"+this.globalData.compSize.h+" ",o},ds.prototype.drawPath=function(o,h,c){var g=" M"+h.v[0][0]+","+h.v[0][1],f,p;for(p=h._length,f=1;f<p;f+=1)g+=" C"+h.o[f-1][0]+","+h.o[f-1][1]+" "+h.i[f][0]+","+h.i[f][1]+" "+h.v[f][0]+","+h.v[f][1];if(h.c&&p>1&&(g+=" C"+h.o[f-1][0]+","+h.o[f-1][1]+" "+h.i[0][0]+","+h.i[0][1]+" "+h.v[0][0]+","+h.v[0][1]),c.lastPath!==g){var y="";c.elem&&(h.c&&(y=o.inv?this.solidPath+g:g),c.elem.setAttribute("d",y)),c.lastPath=g}},ds.prototype.destroy=function(){this.element=null,this.globalData=null,this.maskElement=null,this.data=null,this.masksProperties=null};var Cr=(function(){var o={};o.createFilter=h,o.createAlphaToLuminanceFilter=c;function h(g,f){var p=Ie("filter");return p.setAttribute("id",g),f!==!0&&(p.setAttribute("filterUnits","objectBoundingBox"),p.setAttribute("x","0%"),p.setAttribute("y","0%"),p.setAttribute("width","100%"),p.setAttribute("height","100%")),p}function c(){var g=Ie("feColorMatrix");return g.setAttribute("type","matrix"),g.setAttribute("color-interpolation-filters","sRGB"),g.setAttribute("values","0 0 0 1 0  0 0 0 1 0  0 0 0 1 0  0 0 0 1 1"),g}return o})(),ay=(function(){var o={maskType:!0,svgLumaHidden:!0,offscreenCanvas:typeof OffscreenCanvas<"u"};return(/MSIE 10/i.test(navigator.userAgent)||/MSIE 9/i.test(navigator.userAgent)||/rv:11.0/i.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent))&&(o.maskType=!1),/firefox/i.test(navigator.userAgent)&&(o.svgLumaHidden=!1),o})(),sn={},ny="filter_result_";function If(o){var h,c="SourceGraphic",g=o.data.ef?o.data.ef.length:0,f=Ft(),p=Cr.createFilter(f,!0),y=0;this.filters=[];var k;for(h=0;h<g;h+=1){k=null;var S=o.data.ef[h].ty;if(sn[S]){var P=sn[S].effect;k=new P(p,o.effectsManager.effectElements[h],o,ny+y,c),c=ny+y,sn[S].countsAsEffect&&(y+=1)}k&&this.filters.push(k)}y&&(o.globalData.defs.appendChild(p),o.layerElement.setAttribute("filter","url("+m()+"#"+f+")")),this.filters.length&&o.addRenderableComponent(this)}If.prototype.renderFrame=function(o){var h,c=this.filters.length;for(h=0;h<c;h+=1)this.filters[h].renderFrame(o)},If.prototype.getEffects=function(o){var h,c=this.filters.length,g=[];for(h=0;h<c;h+=1)this.filters[h].type===o&&g.push(this.filters[h]);return g};function Z_(o,h,c){sn[o]={effect:h,countsAsEffect:c}}function Er(){}Er.prototype={initRendererElement:function(){this.layerElement=Ie("g")},createContainerElements:function(){this.matteElement=Ie("g"),this.transformedElement=this.layerElement,this.maskedElement=this.layerElement,this._sizeChanged=!1;var h=null;if(this.data.td){this.matteMasks={};var c=Ie("g");c.setAttribute("id",this.layerId),c.appendChild(this.layerElement),h=c,this.globalData.defs.appendChild(c)}else this.data.tt?(this.matteElement.appendChild(this.layerElement),h=this.matteElement,this.baseElement=this.matteElement):this.baseElement=this.layerElement;if(this.data.ln&&this.layerElement.setAttribute("id",this.data.ln),this.data.cl&&this.layerElement.setAttribute("class",this.data.cl),this.data.ty===0&&!this.data.hd){var g=Ie("clipPath"),f=Ie("path");f.setAttribute("d","M0,0 L"+this.data.w+",0 L"+this.data.w+","+this.data.h+" L0,"+this.data.h+"z");var p=Ft();if(g.setAttribute("id",p),g.appendChild(f),this.globalData.defs.appendChild(g),this.checkMasks()){var y=Ie("g");y.setAttribute("clip-path","url("+m()+"#"+p+")"),y.appendChild(this.layerElement),this.transformedElement=y,h?h.appendChild(this.transformedElement):this.baseElement=this.transformedElement}else this.layerElement.setAttribute("clip-path","url("+m()+"#"+p+")")}this.data.bm!==0&&this.setBlendMode()},renderElement:function(){this.finalTransform._localMatMdf&&this.transformedElement.setAttribute("transform",this.finalTransform.localMat.to2dCSS()),this.finalTransform._opMdf&&this.transformedElement.setAttribute("opacity",this.finalTransform.localOpacity)},destroyBaseElement:function(){this.layerElement=null,this.matteElement=null,this.maskManager.destroy()},getBaseElement:function(){return this.data.hd?null:this.baseElement},createRenderableComponents:function(){this.maskManager=new ds(this.data,this,this.globalData),this.renderableEffectsManager=new If(this),this.searchEffectTransforms()},getMatte:function(h){if(this.matteMasks||(this.matteMasks={}),!this.matteMasks[h]){var c=this.layerId+"_"+h,g,f,p,y;if(h===1||h===3){var k=Ie("mask");k.setAttribute("id",c),k.setAttribute("mask-type",h===3?"luminance":"alpha"),p=Ie("use"),p.setAttributeNS("http://www.w3.org/1999/xlink","href","#"+this.layerId),k.appendChild(p),this.globalData.defs.appendChild(k),!ay.maskType&&h===1&&(k.setAttribute("mask-type","luminance"),g=Ft(),f=Cr.createFilter(g),this.globalData.defs.appendChild(f),f.appendChild(Cr.createAlphaToLuminanceFilter()),y=Ie("g"),y.appendChild(p),k.appendChild(y),y.setAttribute("filter","url("+m()+"#"+g+")"))}else if(h===2){var S=Ie("mask");S.setAttribute("id",c),S.setAttribute("mask-type","alpha");var P=Ie("g");S.appendChild(P),g=Ft(),f=Cr.createFilter(g);var _=Ie("feComponentTransfer");_.setAttribute("in","SourceGraphic"),f.appendChild(_);var K=Ie("feFuncA");K.setAttribute("type","table"),K.setAttribute("tableValues","1.0 0.0"),_.appendChild(K),this.globalData.defs.appendChild(f);var L=Ie("rect");L.setAttribute("width",this.comp.data.w),L.setAttribute("height",this.comp.data.h),L.setAttribute("x","0"),L.setAttribute("y","0"),L.setAttribute("fill","#ffffff"),L.setAttribute("op
2acity","0"),P.setAttribute("filter","url("+m()+"#"+g+")"),P.appendChild(L),p=Ie("use"),p.setAttributeNS("http://www.w3.org/1999/xlink","href","#"+this.layerId),P.appendChild(p),ay.maskType||(S.setAttribute("mask-type","luminance"),f.appendChild(Cr.createAlphaToLuminanceFilter()),y=Ie("g"),P.appendChild(L),y.appendChild(this.layerElement),P.appendChild(y)),this.globalData.defs.appendChild(S)}this.matteMasks[h]=c}return this.matteMasks[h]},setMatte:function(h){this.matteElement&&this.matteElement.setAttribute("mask","url("+m()+"#"+h+")")}};function Fs(){}Fs.prototype={initHierarchy:function(){this.hierarchy=[],this._isParent=!1,this.checkParenting()},setHierarchy:function(h){this.hierarchy=h},setAsParent:function(){this._isParent=!0},checkParenting:function(){this.data.parent!==void 0&&this.comp.buildElementParenting(this,this.data.parent,[])}};function Lr(){}(function(){var o={initElement:function(c,g,f){this.initFrame(),this.initBaseData(c,g,f),this.initTransform(c,g,f),this.initHierarchy(),this.initRenderable(),this.initRendererElement(),this.createContainerElements(),this.createRenderableComponents(),this.createContent(),this.hide()},hide:function(){if(!this.hidden&&(!this.isInRange||this.isTransparent)){var c=this.baseElement||this.layerElement;c.style.display="none",this.hidden=!0}},show:function(){if(this.isInRange&&!this.isTransparent){if(!this.data.hd){var c=this.baseElement||this.layerElement;c.style.display="block"}this.hidden=!1,this._isFirstFrame=!0}},renderFrame:function(){this.data.hd||this.hidden||(this.renderTransform(),this.renderRenderable(),this.renderLocalTransform(),this.renderElement(),this.renderInnerContent(),this._isFirstFrame&&(this._isFirstFrame=!1))},renderInnerContent:function(){},prepareFrame:function(c){this._mdf=!1,this.prepareRenderableFrame(c),this.prepareProperties(c,this.isInRange),this.checkTransparency()},destroy:function(){this.innerElem=null,this.destroyBaseElement()}};E([tn,R(o)],Lr)})();function kr(o,h,c){this.assetData=h.getAssetData(o.refId),this.assetData&&this.assetData.sid&&(this.assetData=h.slotManager.getProp(this.assetData)),this.initElement(o,h,c),this.sourceRect={top:0,left:0,width:this.assetData.w,height:this.assetData.h}}E([qi,Os,Er,Fs,$i,Lr],kr),kr.prototype.createContent=function(){var o=this.globalData.getAssetsPath(this.assetData);this.innerElem=Ie("image"),this.innerElem.setAttribute("width",this.assetData.w+"px"),this.innerElem.setAttribute("height",this.assetData.h+"px"),this.innerElem.setAttribute("preserveAspectRatio",this.assetData.pr||this.globalData.renderConfig.imagePreserveAspectRatio),this.innerElem.setAttributeNS("http://www.w3.org/1999/xlink","href",o),this.layerElement.appendChild(this.innerElem)},kr.prototype.sourceRectAtTime=function(){return this.sourceRect};function zE(o,h){this.elem=o,this.pos=h}function oy(){}oy.prototype={addShapeToModifiers:function(h){var c,g=this.shapeModifiers.length;for(c=0;c<g;c+=1)this.shapeModifiers[c].addShape(h)},isShapeInAnimatedModifiers:function(h){for(var c=0,g=this.shapeModifiers.length;c<g;)if(this.shapeModifiers[c].isAnimatedWithShape(h))return!0;return!1},renderModifiers:function(){if(this.shapeModifiers.length){var h,c=this.shapes.length;for(h=0;h<c;h+=1)this.shapes[h].sh.reset();c=this.shapeModifiers.length;var g;for(h=c-1;h>=0&&(g=this.shapeModifiers[h].processShapes(this._isFirstFrame),!g);h-=1);}},searchProcessedElement:function(h){for(var c=this.processedElements,g=0,f=c.length;g<f;){if(c[g].elem===h)return c[g].pos;g+=1}return 0},addProcessedElement:function(h,c){for(var g=this.processedElements,f=g.length;f;)if(f-=1,g[f].elem===h){g[f].pos=c;return}g.push(new zE(h,c))},prepareFrame:function(h){this.prepareRenderableFrame(h),this.prepareProperties(h,this.isInRange)}};var ly={1:"butt",2:"round",3:"square"},hy={1:"miter",2:"round",3:"bevel"};function cy(o,h,c){this.caches=[],this.styles=[],this.transformers=o,this.lStr="",this.sh=c,this.lvl=h,this._isAnimated=!!c.k;for(var g=0,f=o.length;g<f;){if(o[g].mProps.dynamicProperties.length){this._isAnimated=!0;break}g+=1}}cy.prototype.setAsAnimated=function(){this._isAnimated=!0};function dy(o,h){this.data=o,this.type=o.ty,this.d="",this.lvl=h,this._mdf=!1,this.closed=o.hd===!0,this.pElem=Ie("path"),this.msElem=null}dy.prototype.reset=function(){this.d="",this._mdf=!1};function rn(o,h,c,g){this.elem=o,this.frameId=-1,this.dataProps=X(h.length),this.renderer=c,this.k=!1,this.dashStr="",this.dashArray=Q("float32",h.length?h.length-1:0),this.dashoffset=Q("float32",1),this.initDynamicPropertyContainer(g);var f,p=h.length||0,y;for(f=0;f<p;f+=1)y=me.getProp(o,h[f].v,0,0,this),this.k=y.k||this.k,this.dataProps[f]={n:h[f].n,p:y};this.k||this.getValue(!0),this._isAnimated=this.k}
vendor: 46,572 bytes, line 2
2rn.prototype.getValue=function(o){if(!(this.elem.globalData.frameId===this.frameId&&!o)&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties(),this._mdf=this._mdf||o,this._mdf)){var h=0,c=this.dataProps.length;for(this.renderer==="svg"&&(this.dashStr=""),h=0;h<c;h+=1)this.dataProps[h].n!=="o"?this.renderer==="svg"?this.dashStr+=" "+this.dataProps[h].p.v:this.dashArray[h]=this.dataProps[h].p.v:this.dashoffset[0]=this.dataProps[h].p.v}},E([yt],rn);function uy(o,h,c){this.initDynamicPropertyContainer(o),this.getValue=this.iterateDynamicProperties,this.o=me.getProp(o,h.o,0,.01,this),this.w=me.getProp(o,h.w,0,null,this),this.d=new rn(o,h.d||{},"svg",this),this.c=me.getProp(o,h.c,1,255,this),this.style=c,this._isAnimated=!!this._isAnimated}E([yt],uy);function gy(o,h,c){this.initDynamicPropertyContainer(o),this.getValue=this.iterateDynamicProperties,this.o=me.getProp(o,h.o,0,.01,this),this.c=me.getProp(o,h.c,1,255,this),this.style=c}E([yt],gy);function my(o,h,c){this.initDynamicPropertyContainer(o),this.getValue=this.iterateDynamicProperties,this.style=c}E([yt],my);function xr(o,h,c){this.data=h,this.c=Q("uint8c",h.p*4);var g=h.k.k[0].s?h.k.k[0].s.length-h.p*4:h.k.k.length-h.p*4;this.o=Q("float32",g),this._cmdf=!1,this._omdf=!1,this._collapsable=this.checkCollapsable(),this._hasOpacity=g,this.initDynamicPropertyContainer(c),this.prop=me.getProp(o,h.k,1,null,this),this.k=this.prop.k,this.getValue(!0)}xr.prototype.comparePoints=function(o,h){for(var c=0,g=this.o.length/2,f;c<g;){if(f=Math.abs(o[c*4]-o[h*4+c*2]),f>.01)return!1;c+=1}return!0},xr.prototype.checkCollapsable=function(){if(this.o.length/2!==this.c.length/4)return!1;if(this.data.k.k[0].s)for(var o=0,h=this.data.k.k.length;o<h;){if(!this.comparePoints(this.data.k.k[o].s,this.data.p))return!1;o+=1}else if(!this.comparePoints(this.data.k.k,this.data.p))return!1;return!0},xr.prototype.getValue=function(o){if(this.prop.getValue(),this._mdf=!1,this._cmdf=!1,this._omdf=!1,this.prop._mdf||o){var h,c=this.data.p*4,g,f;for(h=0;h<c;h+=1)g=h%4===0?100:255,f=Math.round(this.prop.v[h]*g),this.c[h]!==f&&(this.c[h]=f,this._cmdf=!o);if(this.o.length)for(c=this.prop.v.length,h=this.data.p*4;h<c;h+=1)g=h%2===0?100:1,f=h%2===0?Math.round(this.prop.v[h]*100):this.prop.v[h],this.o[h-this.data.p*4]!==f&&(this.o[h-this.data.p*4]=f,this._omdf=!o);this._mdf=!o}},E([yt],xr);function Ds(o,h,c){this.initDynamicPropertyContainer(o),this.getValue=this.iterateDynamicProperties,this.initGradientData(o,h,c)}Ds.prototype.initGradientData=function(o,h,c){this.o=me.getProp(o,h.o,0,.01,this),this.s=me.getProp(o,h.s,1,null,this),this.e=me.getProp(o,h.e,1,null,this),this.h=me.getProp(o,h.h||{k:0},0,.01,this),this.a=me.getProp(o,h.a||{k:0},0,_e,this),this.g=new xr(o,h.g,this),this.style=c,this.stops=[],this.setGradientData(c.pElem,h),this.setGradientOpacity(h,c),this._isAnimated=!!this._isAnimated},Ds.prototype.setGradientData=function(o,h){var c=Ft(),g=Ie(h.t===1?"linearGradient":"radialGradient");g.setAttribute("id",c),g.setAttribute("spreadMethod","pad"),g.setAttribute("gradientUnits","userSpaceOnUse");var f=[],p,y,k;for(k=h.g.p*4,y=0;y<k;y+=4)p=Ie("stop"),g.appendChild(p),f.push(p);o.setAttribute(h.ty==="gf"?"fill":"stroke","url("+m()+"#"+c+")"),this.gf=g,this.cst=f},Ds.prototype.setGradientOpacity=function(o,h){if(this.g._hasOpacity&&!this.g._collapsable){var c,g,f,p=Ie("mask"),y=Ie("path");p.appendChild(y);var k=Ft(),S=Ft();p.setAttribute("id",S);var P=Ie(o.t===1?"linearGradient":"radialGradient");P.setAttribute("id",k),P.setAttribute("spreadMethod","pad"),P.setAttribute("gradientUnits","userSpaceOnUse"),f=o.g.k.k[0].s?o.g.k.k[0].s.length:o.g.k.k.length;var _=this.stops;for(g=o.g.p*4;g<f;g+=2)c=Ie("stop"),c.setAttribute("stop-color","rgb(255,255,255)"),P.appendChild(c),_.push(c);y.setAttribute(o.ty==="gf"?"fill":"stroke","url("+m()+"#"+k+")"),o.ty==="gs"&&(y.setAttribute("stroke-linecap",ly[o.lc||2]),y.setAttribute("stroke-linejoin",hy[o.lj||2]),o.lj===1&&y.setAttribute("stroke-miterlimit",o.ml)),this.of=P,this.ms=p,this.ost=_,this.maskId=S,h.msElem=y}},E([yt],Ds);function py(o,h,c){this.initDynamicPropertyContainer(o),this.getValue=this.iterateDynamicProperties,this.w=me.getProp(o,h.w,0,null,this),this.d=new rn(o,h.d||{},"svg",this),this.initGradientData(o,h,c),this._isAnimated=!!this._isAnimated}E([Ds,yt],py);function YE(){this.it=[],this.prevViewData=[],this.gr=Ie("g")}function XE(o,h,c){this.transform={mProps:o,op:h,container:c},this.elements=[],this._isAnimated=this.transform.mProps.dynamicProperties.length||this.transform.op.effectsSequence.length}var fy=function(h,c,g,f){if(c===0)return"";var p=h.o,y=h.i,k=h.v,S,P=" M"+f.applyToPointStringified(k[0][0],k[0][1]);for(S=1;S<c;S+=1)P+=" C"+f.applyToPointStringified(p[S-1][0],p[S-1][1])+" "+f.applyToPointStringified(y[S][0],y[S][1])+" "+f.applyToPointStringified(k[S][0],k[S][1]);return g&&c&&(P+=" C"+f.applyToPointStringified(p[S-1][0],p[S-1][1])+" "+f.applyToPointStringified(y[0][0],y[0][1])+" "+f.applyToPointStringified(k[0][0],k[0][1]),P+="z"),P},QE=(function(){var o=new xt,h=new xt,c={createRenderFunction:g};function g(K){switch(K.ty){case"fl":return k;case"gf":return P;case"gs":return S;case"st":return _;case"sh":case"el":case"rc":case"sr":return y;case"tr":return f;case"no":return p;default:return null}}function f(K,L,B){(B||L.transform.op._mdf)&&L.transform.container.setAttribute("opacity",L.transform.op.v),(B||L.transform.mProps._mdf)&&L.transform.container.setAttribute("transform",L.transform.mProps.v.to2dCSS())}function p(){}function y(K,L,B){var N,O,G,M,A,C,x=L.styles.length,V=L.lvl,U,j,Y,ne;for(C=0;C<x;C+=1){if(M=L.sh._mdf||B,L.styles[C].lvl<V){for(j=h.reset(),Y=V-L.styles[C].lvl,ne=L.transformers.length-1;!M&&Y>0;)M=L.transformers[ne].mProps._mdf||M,Y-=1,ne-=1;if(M)for(Y=V-L.styles[C].lvl,ne=L.transformers.length-1;Y>0;)j.multiply(L.transformers[ne].mProps.v),Y-=1,ne-=1}else j=o;if(U=L.sh.paths,O=U._length,M){for(G="",N=0;N<O;N+=1)A=U.shapes[N],A&&A._length&&(G+=fy(A,A._length,A.c,j));L.caches[C]=G}else G=L.caches[C];L.styles[C].d+=K.hd===!0?"":G,L.styles[C]._mdf=M||L.styles[C]._mdf}}function k(K,L,B){var N=L.style;(L.c._mdf||B)&&N.pElem.setAttribute("fill","rgb("+ge(L.c.v[0])+","+ge(L.c.v[1])+","+ge(L.c.v[2])+")"),(L.o._mdf||B)&&N.pElem.setAttribute("fill-opacity",L.o.v)}function S(K,L,B){P(K,L,B),_(K,L,B)}function P(K,L,B){var N=L.gf,O=L.g._hasOpacity,G=L.s.v,M=L.e.v;if(L.o._mdf||B){var A=K.ty==="gf"?"fill-opacity":"stroke-opacity";L.style.pElem.setAttribute(A,L.o.v)}if(L.s._mdf||B){var C=K.t===1?"x1":"cx",x=C==="x1"?"y1":"cy";N.setAttribute(C,G[0]),N.setAttribute(x,G[1]),O&&!L.g._collapsable&&(L.of.setAttribute(C,G[0]),L.of.setAttribute(x,G[1]))}var V,U,j,Y;if(L.g._cmdf||B){V=L.cst;var ne=L.g.c;for(j=V.length,U=0;U<j;U+=1)Y=V[U],Y.setAttribute("offset",ne[U*4]+"%"),Y.setAttribute("stop-color","rgb("+ne[U*4+1]+","+ne[U*4+2]+","+ne[U*4+3]+")")}if(O&&(L.g._omdf||B)){var ke=L.g.o;for(L.g._collapsable?V=L.cst:V=L.ost,j=V.length,U=0;U<j;U+=1)Y=V[U],L.g._collapsable||Y.setAttribute("offset",ke[U*2]+"%"),Y.setAttribute("stop-opacity",ke[U*2+1])}if(K.t===1)(L.e._mdf||B)&&(N.setAttribute("x2",M[0]),N.setAttribute("y2",M[1]),O&&!L.g._collapsable&&(L.of.setAttribute("x2",M[0]),L.of.setAttribute("y2",M[1])));else{var Se;if((L.s._mdf||L.e._mdf||B)&&(Se=Math.sqrt(Math.pow(G[0]-M[0],2)+Math.pow(G[1]-M[1],2)),N.setAttribute("r",Se),O&&!L.g._collapsable&&L.of.setAttribute("r",Se)),L.s._mdf||L.e._mdf||L.h._mdf||L.a._mdf||B){Se||(Se=Math.sqrt(Math.pow(G[0]-M[0],2)+Math.pow(G[1]-M[1],2)));var de=Math.atan2(M[1]-G[1],M[0]-G[0]),Ae=L.h.v;Ae>=1?Ae=.99:Ae<=-1&&(Ae=-.99);var be=Se*Ae,ae=Math.cos(de+L.a.v)*be+G[0],I=Math.sin(de+L.a.v)*be+G[1];N.setAttribute("fx",ae),N.setAttribute("fy",I),O&&!L.g._collapsable&&(L.of.setAttribute("fx",ae),L.of.setAttribute("fy",I))}}}function _(K,L,B){var N=L.style,O=L.d;O&&(O._mdf||B)&&O.dashStr&&(N.pElem.setAttribute("stroke-dasharray",O.dashStr),N.pElem.setAttribute("stroke-dashoffset",O.dashoffset[0])),L.c&&(L.c._mdf||B)&&N.pElem.setAttribute("stroke","rgb("+ge(L.c.v[0])+","+ge(L.c.v[1])+","+ge(L.c.v[2])+")"),(L.o._mdf||B)&&N.pElem.setAttribute("stroke-opacity",L.o.v),(L.w._mdf||B)&&(N.pElem.setAttribute("stroke-width",L.w.v),N.msElem&&N.msElem.setAttribute("stroke-width",L.w.v))}return c})();function ht(o,h,c){this.shapes=[],this.shapesData=o.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.initElement(o,h,c),this.prevViewData=[]}E([qi,Os,Er,oy,Fs,$i,Lr],ht),ht.prototype.initSecondaryElement=function(){},ht.prototype.identityMatrix=new xt,ht.prototype.buildExpressionInterface=function(){},ht.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement,0,[],!0),this.filterUniqueShapes()},ht.prototype.filterUniqueShapes=function(){var o,h=this.shapes.length,c,g,f=this.stylesList.length,p,y=[],k=!1;for(g=0;g<f;g+=1){for(p=this.stylesList[g],k=!1,y.length=0,o=0;o<h;o+=1)c=this.shapes[o],c.styles.indexOf(p)!==-1&&(y.push(c),k=c._isAnimated||k);y.length>1&&k&&this.setShapesAsAnimated(y)}},ht.prototype.setShapesAsAnimated=function(o){var h,c=o.length;for(h=0;h<c;h+=1)o[h].setAsAnimated()},ht.prototype.createStyleElement=function(o,h){var c,g=new dy(o,h),f=g.pElem;if(o.ty==="st")c=new uy(this,o,g);else if(o.ty==="fl")c=new gy(this,o,g);else if(o.ty==="gf"||o.ty==="gs"){var p=o.ty==="gf"?Ds:py;c=new p(this,o,g),this.globalData.defs.appendChild(c.gf),c.maskId&&(this.globalData.defs.appendChild(c.ms),this.globalData.defs.appendChild(c.of),f.setAttribute("mask","url("+m()+"#"+c.maskId+")"))}else o.ty==="no"&&(c=new my(this,o,g));return(o.ty==="st"||o.ty==="gs")&&(f.setAttribute("stroke-linecap",ly[o.lc||2]),f.setAttribute("stroke-linejoin",hy[o.lj||2]),f.setAttribute("fill-opacity","0"),o.lj===1&&f.setAttribute("stroke-miterlimit",o.ml)),o.r===2&&f.setAttribute("fill-rule","evenodd"),o.ln&&f.setAttribute("id",o.ln),o.cl&&f.setAttribute("class",o.cl),o.bm&&(f.style["mix-blend-mode"]=xf(o.bm)),this.stylesList.push(g),this.addToAnimatedContents(o,c),c},ht.prototype.createGroupElement=function(o){var h=new YE;return o.ln&&h.gr.setAttribute("id",o.ln),o.cl&&h.gr.setAttribute("class",o.cl),o.bm&&(h.gr.style["mix-blend-mode"]=xf(o.bm)),h},ht.prototype.createTransformElement=function(o,h){var c=wf.getTransformProperty(this,o,this),g=new XE(c,c.o,h);return this.addToAnimatedContents(o,g),g},ht.prototype.createShapeElement=function(o,h,c){var g=4;o.ty==="rc"?g=5:o.ty==="el"?g=6:o.ty==="sr"&&(g=7);var f=Xa.getShapeProp(this,o,g,this),p=new cy(h,c,f);return this.shapes.push(p),this.addShapeToModifiers(p),this.addToAnimatedContents(o,p),p},ht.prototype.addToAnimatedContents=function(o,h){for(var c=0,g=this.animatedContents.length;c<g;){if(this.animatedContents[c].element===h)return;c+=1}this.animatedContents.push({fn:QE.createRenderFunction(o),element:h,data:o})},ht.prototype.setElementStyles=function(o){var h=o.styles,c,g=this.stylesList.length;for(c=0;c<g;c+=1)h.indexOf(this.stylesList[c])===-1&&!this.stylesList[c].closed&&h.push(this.stylesList[c])},ht.prototype.reloadShapes=function(){this._isFirstFrame=!0;var o,h=this.itemsData.length;for(o=0;o<h;o+=1)this.prevViewData[o]=this.itemsData[o];for(this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement,0,[],!0),this.filterUniqueShapes(),h=this.dynamicProperties.length,o=0;o<h;o+=1)this.dynamicProperties[o].getValue();this.renderModifiers()},ht.prototype.searchShapes=function(o,h,c,g,f,p,y){var k=[].concat(p),S,P=o.length-1,_,K,L=[],B=[],N,O,G;for(S=P;S>=0;S-=1){if(G=this.searchProcessedElement(o[S]),G?h[S]=c[G-1]:o[S]._render=y,o[S].ty==="fl"||o[S].ty==="st"||o[S].ty==="gf"||o[S].ty==="gs"||o[S].ty==="no")G?h[S].style.closed=o[S].hd:h[S]=this.createStyleElement(o[S],f),o[S]._render&&h[S].style.pElem.parentNode!==g&&g.appendChild(h[S].style.pElem),L.push(h[S].style);else if(o[S].ty==="gr"){if(!G)h[S]=this.createGroupElement(o[S]);else for(K=h[S].it.length,_=0;_<K;_+=1)h[S].prevViewData[_]=h[S].it[_];this.searchShapes(o[S].it,h[S].it,h[S].prevViewData,h[S].gr,f+1,k,y),o[S]._render&&h[S].gr.parentNode!==g&&g.appendChild(h[S].gr)}else o[S].ty==="tr"?(G||(h[S]=this.createTransformElement(o[S],g)),N=h[S].transform,k.push(N)):o[S].ty==="sh"||o[S].ty==="rc"||o[S].ty==="el"||o[S].ty==="sr"?(G||(h[S]=this.createShapeElement(o[S],k,f)),this.setElementStyles(h[S])):o[S].ty==="tm"||o[S].ty==="rd"||o[S].ty==="ms"||o[S].ty==="pb"||o[S].ty==="zz"||o[S].ty==="op"?(G?(O=h[S],O.closed=!1):(O=Ui.getModifier(o[S].ty),O.init(this,o[S]),h[S]=O,this.shapeModifiers.push(O)),B.push(O)):o[S].ty==="rp"&&(G?(O=h[S],O.closed=!0):(O=Ui.getModifier(o[S].ty),h[S]=O,O.init(this,o,S,h),this.shapeModifiers.push(O),y=!1),B.push(O));this.addProcessedElement(o[S],S+1)}for(P=L.length,S=0;S<P;S+=1)L[S].closed=!0;for(P=B.length,S=0;S<P;S+=1)B[S].closed=!0},ht.prototype.renderInnerContent=function(){this.renderModifiers();var o,h=this.stylesList.length;for(o=0;o<h;o+=1)this.stylesList[o].reset();for(this.renderShape(),o=0;o<h;o+=1)(this.stylesList[o]._mdf||this._isFirstFrame)&&(this.stylesList[o].msElem&&(this.stylesList[o].msElem.setAttribute("d",this.stylesList[o].d),this.stylesList[o].d="M0 0"+this.stylesList[o].d),this.stylesList[o].pElem.setAttribute("d",this.stylesList[o].d||"M0 0"))},ht.prototype.renderShape=function(){var o,h=this.animatedContents.length,c;for(o=0;o<h;o+=1)c=this.animatedContents[o],(this._isFirstFrame||c.element._isAnimated)&&c.data!==!0&&c.fn(c.data,c.element,this._isFirstFrame)},ht.prototype.destroy=function(){this.destroyBaseElement(),this.shapesData=null,this.itemsData=null};function Af(o,h,c,g,f,p){this.o=o,this.sw=h,this.sc=c,this.fc=g,this.m=f,this.p=p,this._mdf={o:!0,sw:!!h,sc:!!c,fc:!!g,m:!0,p:!0}}Af.prototype.update=function(o,h,c,g,f,p){this._mdf.o=!1,this._mdf.sw=!1,this._mdf.sc=!1,this._mdf.fc=!1,this._mdf.m=!1,this._mdf.p=!1;var y=!1;return this.o!==o&&(this.o=o,this._mdf.o=!0,y=!0),this.sw!==h&&(this.sw=h,this._mdf.sw=!0,y=!0),this.sc!==c&&(this.sc=c,this._mdf.sc=!0,y=!0),this.fc!==g&&(this.fc=g,this._mdf.fc=!0,y=!0),this.m!==f&&(this.m=f,this._mdf.m=!0,y=!0),p.length&&(this.p[0]!==p[0]||this.p[1]!==p[1]||this.p[4]!==p[4]||this.p[5]!==p[5]||this.p[12]!==p[12]||this.p[13]!==p[13])&&(this.p=p,this._mdf.p=!0,y=!0),y};function _t(o,h){this._frameId=a,this.pv="",this.v="",this.kf=!1,this._isFirstFrame=!0,this._mdf=!1,h.d&&h.d.sid&&(h.d=o.globalData.slotManager.getProp(h.d)),this.data=h,this.elem=o,this.comp=this.elem.comp,this.keysIndex=0,this.canResize=!1,this.minimumFontSize=1,this.effectsSequence=[],this.currentData={ascent:0,boxWidth:this.defaultBoxWidth,f:"",fStyle:"",fWeight:"",fc:"",j:"",justifyOffset:"",l:[],lh:0,lineWidths:[],ls:"",of:"",s:"",sc:"",sw:0,t:0,tr:0,sz:0,ps:null,fillColorAnim:!1,strokeColorAnim:!1,strokeWidthAnim:!1,yOffset:0,finalSize:0,finalText:[],finalLineHeight:0,__complete:!1},this.copyData(this.currentData,this.data.d.k[0].s),this.searchProperty()||this.completeTextData(this.currentData)}_t.prototype.defaultBoxWidth=[0,0],_t.prototype.copyData=function(o,h){for(var c in h)Object.prototype.hasOwnProperty.call(h,c)&&(o[c]=h[c]);return o},_t.prototype.setCurrentData=function(o){o.__complete||this.completeTextData(o),this.currentData=o,this.currentData.boxWidth=this.currentData.boxWidth||this.defaultBoxWidth,this._mdf=!0},_t.prototype.searchProperty=function(){return this.searchKeyframes()},_t.prototype.searchKeyframes=function(){return this.kf=this.data.d.k.length>1,this.kf&&this.addEffect(this.getKeyframeValue.bind(this)),this.kf},_t.prototype.addEffect=function(o){this.effectsSequence.push(o),this.elem.addDynamicProperty(this)},_t.prototype.getValue=function(o){if(!((this.elem.globalData.frameId===this.frameId||!this.effectsSequence.length)&&!o)){this.currentData.t=this.data.d.k[this.keysIndex].s.t;var h=this.currentData,c=this.keysIndex;if(this.lock){this.setCurrentData(this.currentData);return}this.lock=!0,this._mdf=!1;var g,f=this.effectsSequence.length,p=o||this.data.d.k[this.keysIndex].s;for(g=0;g<f;g+=1)c!==this.keysIndex?p=this.effectsSequence[g](p,p.t):p=this.effectsSequence[g](this.currentData,p.t);h!==p&&this.setCurrentData(p),this.v=this.currentData,this.pv=this.v,this.lock=!1,this.frameId=this.elem.globalData.frameId}},_t.prototype.getKeyframeValue=function(){for(var o=this.data.d.k,h=this.elem.comp.renderedFrame,c=0,g=o.length;c<=g-1&&!(c===g-1||o[c+1].t>h);)c+=1;return this.keysIndex!==c&&(this.keysIndex=c),this.data.d.k[this.keysIndex].s},_t.prototype.buildFinalText=function(o){for(var h=[],c=0,g=o.length,f,p,y=!1,k=!1,S="";c<g;)y=k,k=!1,f=o.charCodeAt(c),S=o.charAt(c),cs.isCombinedCharacter(f)?y=!0:f>=55296&&f<=56319?cs.isRegionalFlag(o,c)?S=o.substr(c,14):(p=o.charCodeAt(c+1),p>=56320&&p<=57343&&(cs.isModifier(f,p)?(S=o.substr(c,2),y=!0):cs.isFlagEmoji(o.substr(c,4))?S=o.substr(c,4):S=o.substr(c,2))):f>56319?(p=o.charCodeAt(c+1),cs.isVariationSelector(f)&&(y=!0)):cs.isZeroWidthJoiner(f)&&(y=!0,k=!0),y?(h[h.length-1]+=S,y=!1):h.push(S),c+=S.length;return h},_t.prototype.completeTextData=function(o){o.__complete=!0;var h=this.elem.globalData.fontManager,c=this.data,g=[],f,p,y,k=0,S,P=c.m.g,_=0,K=0,L=0,B=[],N=0,O=0,G,M,A=h.getFontByName(o.f),C,x=0,V=iy(A);o.fWeight=V.weight,o.fStyle=V.style,o.finalSize=o.s,o.finalText=this.buildFinalText(o.t),p=o.finalText.length,o.finalLineHeight=o.lh;var U=o.tr/1e3*o.finalSize,j;if(o.sz)for(var Y=!0,ne=o.sz[0],ke=o.sz[1],Se,de;Y;){de=this.buildFinalText(o.t),Se=0,N=0,p=de.length,U=o.tr/1e3*o.finalSize;var Ae=-1;for(f=0;f<p;f+=1)j=de[f].charCodeAt(0),y=!1,de[f]===" "?Ae=f:(j===13||j===3)&&(N=0,y=!0,Se+=o.finalLineHeight||o.finalSize*1.2),h.chars?(C=h.getCharData(de[f],A.fStyle,A.fFamily),x=y?0:C.w*o.finalSize/100):x=h.measureText(de[f],o.f,o.finalSize),N+x>ne&&de[f]!==" "?(Ae===-1?p+=1:f=Ae,Se+=o.finalLineHeight||o.finalSize*1.2,de.splice(f,Ae===f?1:0,"\r"),Ae=-1,N=0):(N+=x,N+=U);Se+=A.ascent*o.finalSize/100,this.canResize&&o.finalSize>this.minimumFontSize&&ke<Se?(o.finalSize-=1,o.finalLineHeight=o.finalSize*o.lh/o.s):(o.finalText=de,p=o.finalText.length,Y=!1)}N=-U,x=0;var be=0,ae;for(f=0;f<p;f+=1)if(y=!1,ae=o.finalText[f],j=ae.charCodeAt(0),j===13||j===3?(be=0,B.push(N),O=N>O?N:O,N=-2*U,S="",y=!0,L+=1):S=ae,h.chars?(C=h.getCharData(ae,A.fStyle,h.getFontByName(o.f).fFamily),x=y?0:C.w*o.finalSize/100):x=h.measureText(S,o.f,o.finalSize),ae===" "?be+=x+U:(N+=x+U+be,be=0),g.push({l:x,an:x,add:_,n:y,anIndexes:[],val:S,line:L,animatorJustifyOffset:0}),P==2){if(_+=x,S===""||S===" "||f===p-1){for((S===""||S===" ")&&(_-=x);K<=f;)g[K].an=_,g[K].ind=k,g[K].extra=x,K+=1;k+=1,_=0}}else if(P==3){if(_+=x,S===""||f===p-1){for(S===""&&(_-=x);K<=f;)g[K].an=_,g[K].ind=k,g[K].extra=x,K+=1;_=0,k+=1}}else g[k].ind=k,g[k].extra=0,k+=1;if(o.l=g,O=N>O?N:O,B.push(N),o.sz)o.boxWidth=o.sz[0],o.justifyOffset=0;else switch(o.boxWidth=O,o.j){case 1:o.justifyOffset=-o.boxWidth;break;case 2:o.justifyOffset=-o.boxWidth/2;break;default:o.justifyOffset=0}o.lineWidths=B;var I=c.a,F,b;M=I.length;var w,z,q=[];for(G=0;G<M;G+=1){for(F=I[G],F.a.sc&&(o.strokeColorAnim=!0),F.a.sw&&(o.strokeWidthAnim=!0),(F.a.fc||F.a.fh||F.a.fs||F.a.fb)&&(o.fillColorAnim=!0),z=0,w=F.s.b,f=0;f<p;f+=1)b=g[f],b.anIndexes[G]=z,(w==1&&b.val!==""||w==2&&b.val!==""&&b.val!==" "||w==3&&(b.n||b.val==" "||f==p-1)||w==4&&(b.n||f==p-1))&&(F.s.rn===1&&q.push(z),z+=1);c.a[G].s.totalChars=z;var fe=-1,Ce;if(F.s.rn===1)for(f=0;f<p;f+=1)b=g[f],fe!=b.anIndexes[G]&&(fe=b.anIndexes[G],Ce=q.splice(Math.floor(Math.random()*q.length),1)[0]),b.anIndexes[G]=Ce}o.yOffset=o.finalLineHeight||o.finalSize*1.2,o.ls=o.ls||0,o.ascent=A.ascent*o.finalSize/100},_t.prototype.updateDocumentData=function(o,h){h=h===void 0?this.keysIndex:h;var c=this.copyData({},this.data.d.k[h].s);c=this.copyData(c,o),this.data.d.k[h].s=c,this.recalculate(h),this.setCurrentData(c),this.elem.addDynamicProperty(this)},_t.prototype.recalculate=function(o){var h=this.data.d.k[o].s;h.__complete=!1,this.keysIndex=0,this._isFirstFrame=!0,this.getValue(h)},_t.prototype.canResizeFont=function(o){this.canResize=o,this.recalculate(this.keysIndex),this.elem.addDynamicProperty(this)},_t.prototype.setMinimumFontSize=function(o){this.minimumFontSize=Math.floor(o)||1,this.recalculate(this.keysIndex),this.elem.addDynamicProperty(this)};var JE=(function(){var o=Math.max,h=Math.min,c=Math.floor;function g(p,y){this._currentTextLength=-1,this.k=!1,this.data=y,this.elem=p,this.comp=p.comp,this.finalS=0,this.finalE=0,this.initDynamicPropertyContainer(p),this.s=me.getProp(p,y.s||{k:0},0,0,this),"e"in y?this.e=me.getProp(p,y.e,0,0,this):this.e={v:100},this.o=me.getProp(p,y.o||{k:0},0,0,this),this.xe=me.getProp(p,y.xe||{k:0},0,0,this),this.ne=me.getProp(p,y.ne||{k:0},0,0,this),this.sm=me.getProp(p,y.sm||{k:100},0,0,this),this.a=me.getProp(p,y.a,0,.01,this),this.dynamicProperties.length||this.getValue()}g.prototype={getMult:function(y){this._currentTextLength!==this.elem.textProperty.currentData.l.length&&this.getValue();var k=0,S=0,P=1,_=1;this.ne.v>0?k=this.ne.v/100:S=-this.ne.v/100,this.xe.v>0?P=1-this.xe.v/100:_=1+this.xe.v/100;var K=fr.getBezierEasing(k,S,P,_).get,L=0,B=this.finalS,N=this.finalE,O=this.data.sh;if(O===2)N===B?L=y>=N?1:0:L=o(0,h(.5/(N-B)+(y-B)/(N-B),1)),L=K(L);else if(O===3)N===B?L=y>=N?0:1:L=1-o(0,h(.5/(N-B)+(y-B)/(N-B),1)),L=K(L);else if(O===4)N===B?L=0:(L=o(0,h(.5/(N-B)+(y-B)/(N-B),1)),L<.5?L*=2:L=1-2*(L-.5)),L=K(L);else if(O===5){if(N===B)L=0;else{var G=N-B;y=h(o(0,y+.5-B),N-B);var M=-G/2+y,A=G/2;L=Math.sqrt(1-M*M/(A*A))}L=K(L)}else O===6?(N===B?L=0:(y=h(o(0,y+.5-B),N-B),L=(1+Math.cos(Math.PI+Math.PI*2*y/(N-B)))/2),L=K(L)):(y>=c(B)&&(y-B<0?L=o(0,h(h(N,1)-(B-y),1)):L=o(0,h(N-y,1))),L=K(L));if(this.sm.v!==100){var C=this.sm.v*.01;C===0&&(C=1e-8);var x=.5-C*.5;L<x?L=0:(L=(L-x)/C,L>1&&(L=1))}return L*this.a.v},getValue:function(y){this.iterateDynamicProperties(),this._mdf=y||this._mdf,this._currentTextLength=this.elem.textProperty.currentData.l.length||0,y&&this.data.r===2&&(this.e.v=this._currentTextLength);var k=this.data.r===2?1:100/this.data.totalChars,S=this.o.v/k,P=this.s.v/k+S,_=this.e.v/k+S;if(P>_){var K=P;P=_,_=K}this.finalS=P,this.finalE=_}},E([yt],g);function f(p,y,k){return new g(p,y,k)}return{getTextSelectorProp:f}})();function ZE(o,h,c){var g={propType:!1},f=me.getProp,p=h.a;this.a={r:p.r?f(o,p.r,0,_e,c):g,rx:p.rx?f(o,p.rx,0,_e,c):g,ry:p.ry?f(o,p.ry,0,_e,c):g,sk:p.sk?f(o,p.sk,0,_e,c):g,sa:p.sa?f(o,p.sa,0,_e,c):g,s:p.s?f(o,p.s,1,.01,c):g,a:p.a?f(o,p.a,1,0,c):g,o:p.o?f(o,p.o,0,.01,c):g,p:p.p?f(o,p.p,1,0,c):g,sw:p.sw?f(o,p.sw,0,0,c):g,sc:p.sc?f(o,p.sc,1,0,c):g,fc:p.fc?f(o,p.fc,1,0,c):g,fh:p.fh?f(o,p.fh,0,0,c):g,fs:p.fs?f(o,p.fs,0,.01,c):g,fb:p.fb?f(o,p.fb,0,.01,c):g,t:p.t?f(o,p.t,0,0,c):g},this.s=JE.getTextSelectorProp(o,h.s,c),this.s.t=h.s.t}function us(o,h,c){this._isFirstFrame=!0,this._hasMaskedPath=!1,this._frameId=-1,this._textData=o,this._renderType=h,this._elem=c,this._animatorsData=X(this._textData.a.length),this._pathData={},this._moreOptions={alignment:{}},this.renderedLetters=[],this.lettersChangedFlag=!1,this.initDynamicPropertyContainer(c)}us.prototype.searchProperties=function(){var o,h=this._textData.a.length,c,g=me.getProp;for(o=0;o<h;o+=1)c=this._textData.a[o],this._animatorsData[o]=new ZE(this._elem,c,this);this._textData.p&&"m"in this._textData.p?(this._pathData={a:g(this._elem,this._textData.p.a,0,0,this),f:g(this._elem,this._textData.p.f,0,0,this),l:g(this._elem,this._textData.p.l,0,0,this),r:g(this._elem,this._textData.p.r,0,0,this),p:g(this._elem,this._textData.p.p,0,0,this),m:this._elem.maskManager.getMaskProperty(this._textData.p.m)},this._hasMaskedPath=!0):this._hasMaskedPath=!1,this._moreOptions.alignment=g(this._elem,this._textData.m.a,1,0,this)},us.prototype.getMeasures=function(o,h){if(this.lettersChangedFlag=h,!(!this._mdf&&!this._isFirstFrame&&!h&&(!this._hasMaskedPath||!this._pathData.m._mdf))){this._isFirstFrame=!1;var c=this._moreOptions.alignment.v,g=this._animatorsData,f=this._textData,p=this.mHelper,y=this._renderType,k=this.renderedLetters.length,S,P,_,K,L=o.l,B,N,O,G,M,A,C,x,V,U,j,Y,ne,ke,Se;if(this._hasMaskedPath){if(Se=this._pathData.m,!this._pathData.n||this._pathData._mdf){var de=Se.v;this._pathData.r.v&&(de=de.reverse()),B={tLength:0,segments:[]},K=de._length-1;var Ae;for(Y=0,_=0;_<K;_+=1)Ae=gi.buildBezierData(de.v[_],de.v[_+1],[de.o[_][0]-de.v[_][0],de.o[_][1]-de.v[_][1]],[de.i[_+1][0]-de.v[_+1][0],de.i[_+1][1]-de.v[_+1][1]]),B.tLength+=Ae.segmentLength,B.segments.push(Ae),Y+=Ae.segmentLength;_=K,Se.v.c&&(Ae=gi.buildBezierData(de.v[_],de.v[0],[de.o[_][0]-de.v[_][0],de.o[_][1]-de.v[_][1]],[de.i[0][0]-de.v[0][0],de.i[0][1]-de.v[0][1]]),B.tLength+=Ae.segmentLength,B.segments.push(Ae),Y+=Ae.segmentLength),this._pathData.pi=B}if(B=this._pathData.pi,N=this._pathData.f.v,C=0,A=1,G=0,M=!0,U=B.segments,N<0&&Se.v.c)for(B.tLength<Math.abs(N)&&(N=-Math.abs(N)%B.tLength),C=U.length-1,V=U[C].points,A=V.length-1;N<0;)N+=V[A].partialLength,A-=1,A<0&&(C-=1,V=U[C].points,A=V.length-1);V=U[C].points,x=V[A-1],O=V[A],j=O.partialLength}K=L.length,S=0,P=0;var be=o.finalSize*1.2*.714,ae=!0,I,F,b,w,z;w=g.length;var q,fe=-1,Ce,xe,Ne,Ue=N,mt=C,Rt=A,pi=-1,Nt,St,jt,We,ye,Li,ji,ki,fi="",xi=this.defaultPropsArray,Ii;if(o.j===2||o.j===1){var Ut=0,Ki=0,zi=o.j===2?-.5:-1,ri=0,Yi=!0;for(_=0;_<K;_+=1)if(L[_].n){for(Ut&&(Ut+=Ki);ri<_;)L[ri].animatorJustifyOffset=Ut,ri+=1;Ut=0,Yi=!0}else{for(b=0;b<w;b+=1)I=g[b].a,I.t.propType&&(Yi&&o.j===2&&(Ki+=I.t.v*zi),F=g[b].s,q=F.getMult(L[_].anIndexes[b],f.a[b].s.totalChars),q.length?Ut+=I.t.v*q[0]*zi:Ut+=I.t.v*q*zi);Yi=!1}for(Ut&&(Ut+=Ki);ri<_;)L[ri].animatorJustifyOffset=Ut,ri+=1}for(_=0;_<K;_+=1){if(p.reset(),Nt=1,L[_].n)S=0,P+=o.yOffset,P+=ae?1:0,N=Ue,ae=!1,this._hasMaskedPath&&(C=mt,A=Rt,V=U[C].points,x=V[A-1],O=V[A],j=O.partialLength,G=0),fi="",ki="",Li="",Ii="",xi=this.defaultPropsArray;else{if(this._hasMaskedPath){if(pi!==L[_].line){switch(o.j){case 1:N+=Y-o.lineWidths[L[_].line];break;case 2:N+=(Y-o.lineWidths[L[_].line])/2;break;default:break}pi=L[_].line}fe!==L[_].ind&&(L[fe]&&(N+=L[fe].extra),N+=L[_].an/2,fe=L[_].ind),N+=c[0]*L[_].an*.005;var ai=0;for(b=0;b<w;b+=1)I=g[b].a,I.p.propType&&(F=g[b].s,q=F.getMult(L[_].anIndexes[b],f.a[b].s.totalChars),q.length?ai+=I.p.v[0]*q[0]:ai+=I.p.v[0]*q),I.a.propType&&(F=g[b].s,q=F.getMult(L[_].anIndexes[b],f.a[b].s.totalChars),q.length?ai+=I.a.v[0]*q[0]:ai+=I.a.v[0]*q);for(M=!0,this._pathData.a.v&&(N=L[0].an*.5+(Y-this._pathData.f.v-L[0].an*.5-L[L.length-1].an*.5)*fe/(K-1),N+=this._pathData.f.v);M;)G+j>=N+ai||!V?(ne=(N+ai-G)/O.partialLength,xe=x.point[0]+(O.point[0]-x.point[0])*ne,Ne=x.point[1]+(O.point[1]-x.point[1])*ne,p.translate(-c[0]*L[_].an*.005,-(c[1]*be)*.01),M=!1):V&&(G+=O.partialLength,A+=1,A>=V.length&&(A=0,C+=1,U[C]?V=U[C].points:Se.v.c?(A=0,C=0,V=U[C].points):(G-=O.partialLength,V=null)),V&&(x=O,O=V[A],j=O.partialLength));Ce=L[_].an/2-L[_].add,p.translate(-Ce,0,0)}else Ce=L[_].an/2-L[_].add,p.translate(-Ce,0,0),p.translate(-c[0]*L[_].an*.005,-c[1]*be*.01,0);for(b=0;b<w;b+=1)I=g[b].a,I.t.propType&&(F=g[b].s,q=F.getMult(L[_].anIndexes[b],f.a[b].s.totalChars),(S!==0||o.j!==0)&&(this._hasMaskedPath?q.length?N+=I.t.v*q[0]:N+=I.t.v*q:q.length?S+=I.t.v*q[0]:S+=I.t.v*q));for(o.strokeWidthAnim&&(jt=o.sw||0),o.strokeColorAnim&&(o.sc?St=[o.sc[0],o.sc[1],o.sc[2]]:St=[0,0,0]),o.fillColorAnim&&o.fc&&(We=[o.fc[0],o.fc[1],o.fc[2]]),b=0;b<w;b+=1)I=g[b].a,I.a.propType&&(F=g[b].s,q=F.getMult(L[_].anIndexes[b],f.a[b].s.totalChars),q.length?p.translate(-I.a.v[0]*q[0],-I.a.v[1]*q[1],I.a.v[2]*q[2]):p.translate(-I.a.v[0]*q,-I.a.v[1]*q,I.a.v[2]*q));for(b=0;b<w;b+=1)I=g[b].a,I.s.propType&&(F=g[b].s,q=F.getMult(L[_].anIndexes[b],f.a[b].s.totalChars),q.length?p.scale(1+(I.s.v[0]-1)*q[0],1+(I.s.v[1]-1)*q[1],1):p.scale(1+(I.s.v[0]-1)*q,1+(I.s.v[1]-1)*q,1));for(b=0;b<w;b+=1){if(I=g[b].a,F=g[b].s,q=F.getMult(L[_].anIndexes[b],f.a[b].s.totalChars),I.sk.propType&&(q.length?p.skewFromAxis(-I.sk.v*q[0],I.sa.v*q[1]):p.skewFromAxis(-I.sk.v*q,I.sa.v*q)),I.r.propType&&(q.length?p.rotateZ(-I.r.v*q[2]):p.rotateZ(-I.r.v*q)),I.ry.propType&&(q.length?p.rotateY(I.ry.v*q[1]):p.rotateY(I.ry.v*q)),I.rx.propType&&(q.length?p.rotateX(I.rx.v*q[0]):p.rotateX(I.rx.v*q)),I.o.propType&&(q.length?Nt+=(I.o.v*q[0]-Nt)*q[0]:Nt+=(I.o.v*q-Nt)*q),o.strokeWidthAnim&&I.sw.propType&&(q.length?jt+=I.sw.v*q[0]:jt+=I.sw.v*q),o.strokeColorAnim&&I.sc.propType)for(ye=0;ye<3;ye+=1)q.length?St[ye]+=(I.sc.v[ye]-St[ye])*q[0]:St[ye]+=(I.sc.v[ye]-St[ye])*q;if(o.fillColorAnim&&o.fc){if(I.fc.propType)for(ye=0;ye<3;ye+=1)q.length?We[ye]+=(I.fc.v[ye]-We[ye])*q[0]:We[ye]+=(I.fc.v[ye]-We[ye])*q;I.fh.propType&&(q.length?We=Ab(We,I.fh.v*q[0]):We=Ab(We,I.fh.v*q)),I.fs.propType&&(q.length?We=xb(We,I.fs.v*q[0]):We=xb(We,I.fs.v*q)),I.fb.propType&&(q.length?We=Ib(We,I.fb.v*q[0]):We=Ib(We,I.fb.v*q))}}for(b=0;b<w;b+=1)I=g[b].a,I.p.propType&&(F=g[b].s,q=F.getMult(L[_].anIndexes[b],f.a[b].s.totalChars),this._hasMaskedPath?q.length?p.translate(0,I.p.v[1]*q[0],-I.p.v[2]*q[1]):p.translate(0,I.p.v[1]*q,-I.p.v[2]*q):q.length?p.translate(I.p.v[0]*q[0],I.p.v[1]*q[1],-I.p.v[2]*q[2]):p.translate(I.p.v[0]*q,I.p.v[1]*q,-I.p.v[2]*q));if(o.strokeWidthAnim&&(Li=jt<0?0:jt),o.strokeColorAnim&&(ji="rgb("+Math.round(St[0]*255)+","+Math.round(St[1]*255)+","+Math.round(St[2]*255)+")"),o.fillColorAnim&&o.fc&&(ki="rgb("+Math.round(We[0]*255)+","+Math.round(We[1]*255)+","+Math.round(We[2]*255)+")"),this._hasMaskedPath){if(p.translate(0,-o.ls),p.translate(0,c[1]*be*.01+P,0),this._pathData.p.v){ke=(O.point[1]-x.point[1])/(O.point[0]-x.point[0]);var gs=Math.atan(ke)*180/Math.PI;O.point[0]<x.point[0]&&(gs+=180),p.rotate(-gs*Math.PI/180)}p.translate(xe,Ne,0),N-=c[0]*L[_].an*.005,L[_+1]&&fe!==L[_+1].ind&&(N+=L[_].an/2,N+=o.tr*.001*o.finalSize)}else{switch(p.translate(S,P,0),o.ps&&p.translate(o.ps[0],o.ps[1]+o.ascent,0),o.j){case 1:p.translate(L[_].animatorJustifyOffset+o.justifyOffset+(o.boxWidth-o.lineWidths[L[_].line]),0,0);break;case 2:p.translate(L[_].animatorJustifyOffset+o.justifyOffset+(o.boxWidth-o.lineWidths[L[_].line])/2,0,0);break;default:break}p.translate(0,-o.ls),p.translate(Ce,0,0),p.translate(c[0]*L[_].an*.005,c[1]*be*.01,0),S+=L[_].l+o.tr*.001*o.finalSize}y==="html"?fi=p.toCSS():y==="svg"?fi=p.to2dCSS():xi=[p.props[0],p.props[1],p.props[2],p.props[3],p.props[4],p.props[5],p.props[6],p.props[7],p.props[8],p.props[9],p.props[10],p.props[11],p.props[12],p.props[13],p.props[14],p.props[15]],Ii=Nt}k<=_?(z=new Af(Ii,Li,ji,ki,fi,xi),this.renderedLetters.push(z),k+=1,this.lettersChangedFlag=!0):(z=this.renderedLetters[_],this.lettersChangedFlag=z.update(Ii,Li,ji,ki,fi,xi)||this.lettersChangedFlag)}}},us.prototype.getValue=function(){this._elem.globalData.frameId!==this._frameId&&(this._frameId=this._elem.globalData.frameId,this.iterateDynamicProperties())},us.prototype.mHelper=new xt,us.prototype.defaultPropsArray=[],E([yt],us);function Jt(){}Jt.prototype.initElement=function(o,h,c){this.lettersChangedFlag=!0,this.initFrame(),this.initBaseData(o,h,c),this.textProperty=new _t(this,o.t,this.dynamicProperties),this.textAnimator=new us(o.t,this.renderType,this),this.initTransform(o,h,c),this.initHierarchy(),this.initRenderable(),this.initRendererElement(),this.createContainerElements(),this.createRenderableComponents(),this.createContent(),this.hide(),this.textAnimator.searchProperties(this.dynamicProperties)},Jt.prototype.prepareFrame=function(o){this._mdf=!1,this.prepareRenderableFrame(o),this.prepareProperties(o,this.isInRange)},Jt.prototype.createPathShape=function(o,h){var c,g=h.length,f,p="";for(c=0;c<g;c+=1)h[c].ty==="sh"&&(f=h[c].ks.k,p+=fy(f,f.i.length,!0,o));return p},Jt.prototype.updateDocumentData=function(o,h){this.textProperty.updateDocumentData(o,h)},Jt.prototype.canResizeFont=function(o){this.textProperty.canResizeFont(o)},Jt.prototype.setMinimumFontSize=function(o){this.textProperty.setMinimumFontSize(o)},Jt.prototype.applyTextPropertiesToMatrix=function(o,h,c,g,f){switch(o.ps&&h.translate(o.ps[0],o.ps[1]+o.ascent,0),h.translate(0,-o.ls,0),o.j){case 1:h.translate(o.justifyOffset+(o.boxWidth-o.lineWidths[c]),0,0);break;case 2:h.translate(o.justifyOffset+(o.boxWidth-o.lineWidths[c])/2,0,0);break;default:break}h.translate(g,f,0)},Jt.prototype.buildColor=function(o){return"rgb("+Math.round(o[0]*255)+","+Math.round(o[1]*255)+","+Math.round(o[2]*255)+")"},Jt.prototype.emptyProp=new Af,Jt.prototype.destroy=function(){},Jt.prototype.validateText=function(){(this.textProperty._mdf||this.textProperty._isFirstFrame)&&(this.buildNewText(),this.textProperty._isFirstFrame=!1,this.textProperty._mdf=!1)};var eL={shapes:[]};function Ci(o,h,c){this.textSpans=[],this.renderType="svg",this.initElement(o,h,c)}E([qi,Os,Er,Fs,$i,Lr,Jt],Ci),Ci.prototype.createContent=function(){this.data.singleShape&&!this.globalData.fontManager.chars&&(this.textContainer=Ie("text"))},Ci.prototype.buildTextContents=function(o){for(var h=0,c=o.length,g=[],f="";h<c;)o[h]==="\r"||o[h]==="�"?(g.push(f),f=""):f+=o[h],h+=1;return g.push(f),g},Ci.prototype.buildShapeData=function(o,h){if(o.shapes&&o.shapes.length){var c=o.shapes[0];if(c.it){var g=c.it[c.it.length-1];g.s&&(g.s.k[0]=h,g.s.k[1]=h)}}return o},Ci.prototype.buildNewText=function(){this.addDynamicProperty(this);var o,h,c=this.textProperty.currentData;this.renderedLetters=X(c?c.l.length:0),c.fc?this.layerElement.setAttribute("fill",this.buildColor(c.fc)):this.layerElement.setAttribute("fill","rgba(0,0,0,0)"),c.sc&&(this.layerElement.setAttribute("stroke",this.buildColor(c.sc)),this.layerElement.setAttribute("stroke-width",c.sw)),this.layerElement.setAttribute("font-size",c.finalSize);var g=this.globalData.fontManager.getFontByName(c.f);if(g.fClass)this.layerElement.setAttribute("class",g.fClass);else{this.layerElement.setAttribute("font-family",g.fFamily);var f=c.fWeight,p=c.fStyle;this.layerElement.setAttribute("font-style",p),this.layerElement.setAttribute("font-weight",f)}this.layerElement.setAttribute("aria-label",c.t);var y=c.l||[],k=!!this.globalData.fontManager.chars;h=y.length;var S,P=this.mHelper,_="",K=this.data.singleShape,L=0,B=0,N=!0,O=c.tr*.001*c.finalSize;if(K&&!k&&!c.sz){var G=this.textContainer,M="start";switch(c.j){case 1:M="end";break;case 2:M="middle";break;default:M="start";break}G.setAttribute("text-anchor",M),G.setAttribute("letter-spacing",O);var A=this.buildTextContents(c.finalText);for(h=A.length,B=c.ps?c.ps[1]+c.ascent:0,o=0;o<h;o+=1)S=this.textSpans[o].span||Ie("tspan"),S.textContent=A[o],S.setAttribute("x",0),S.setAttribute("y",B),S.style.display="inherit",G.appendChild(S),this.textSpans[o]||(this.textSpans[o]={span:null,glyph:null}),this.textSpans[o].span=S,B+=c.finalLineHeight;this.layerElement.appendChild(G)}else{var C=this.textSpans.length,x;for(o=0;o<h;o+=1){if(this.textSpans[o]||(this.textSpans[o]={span:null,childSpan:null,glyph:null}),!k||!K||o===0){if(S=C>o?this.textSpans[o].span:Ie(k?"g":"text"),C<=o){if(S.setAttribute("stroke-linecap","butt"),S.setAttribute("stroke-linejoin","round"),S.setAttribute("stroke-miterlimit","4"),this.textSpans[o].span=S,k){var V=Ie("g");S.appendChild(V),this.textSpans[o].childSpan=V}this.textSpans[o].span=S,this.layerElement.appendChild(S)}S.style.display="inherit"}if(P.reset(),K&&(y[o].n&&(L=-O,B+=c.yOffset,B+=N?1:0,N=!1),this.applyTextPropertiesToMatrix(c,P,y[o].line,L,B),L+=y[o].l||0,L+=O),k){x=this.globalData.fontManager.getCharData(c.finalText[o],g.fStyle,this.globalData.fontManager.getFontByName(c.f).fFamily);var U;if(x.t===1)U=new Ir(x.data,this.globalData,this);else{var j=eL;x.data&&x.data.shapes&&(j=this.buildShapeData(x.data,c.finalSize)),U=new ht(j,this.globalData,this)}if(this.textSpans[o].glyph){var Y=this.textSpans[o].glyph;this.textSpans[o].childSpan.removeChild(Y.layerElement),Y.destroy()}this.textSpans[o].glyph=U,U._debug=!0,U.prepareFrame(0),U.renderFrame(),this.textSpans[o].childSpan.appendChild(U.layerElement),x.t===1&&this.textSpans[o].childSpan.setAttribute("transform","scale("+c.finalSize/100+","+c.finalSize/100+")")}else K&&S.setAttribute("transform","translate("+P.props[12]+","+P.props[13]+")"),S.textContent=y[o].val,S.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve")}K&&S&&S.setAttribute("d",_)}for(;o<this.textSpans.length;)this.textSpans[o].span.style.display="none",o+=1;this._sizeChanged=!0},Ci.prototype.sourceRectAtTime=function(){if(this.prepareFrame(this.comp.renderedFrame-this.data.st),this.renderInnerContent(),this._sizeChanged){this._sizeChanged=!1;var o=this.layerElement.getBBox();this.bbox={top:o.y,left:o.x,width:o.width,height:o.height}}return this.bbox},Ci.prototype.getValue=function(){var o,h=this.textSpans.length,c;for(this.renderedFrame=this.comp.renderedFrame,o=0;o<h;o+=1)c=this.textSpans[o].glyph,c&&(c.prepareFrame(this.comp.renderedFrame-this.data.st),c._mdf&&(this._mdf=!0))},Ci.prototype.renderInnerContent=function(){if(this.validateText(),(!this.data.singleShape||this._mdf)&&(this.textAnimator.getMeasures(this.textProperty.currentData,this.lettersChangedFlag),this.lettersChangedFlag||this.textAnimator.lettersChangedFlag)){this._sizeChanged=!0;var o,h,c=this.textAnimator.renderedLetters,g=this.textProperty.currentData.l;h=g.length;var f,p,y;for(o=0;o<h;o+=1)g[o].n||(f=c[o],p=this.textSpans[o].span,y=this.textSpans[o].glyph,y&&y.renderFrame(),f._mdf.m&&p.setAttribute("transform",f.m),f._mdf.o&&p.setAttribute("opacity",f.o),f._mdf.sw&&p.setAttribute("stroke-width",f.sw),f._mdf.sc&&p.setAttribute("stroke",f.sc),f._mdf.fc&&p.setAttribute("fill",f.fc))}};function Pf(o,h,c){this.initElement(o,h,c)}E([kr],Pf),Pf.prototype.createContent=function(){var o=Ie("rect");o.setAttribute("width",this.data.sw),o.setAttribute("height",this.data.sh),o.setAttribute("fill",this.data.sc),this.layerElement.appendChild(o)};function Wi(o,h,c){this.initFrame(),this.initBaseData(o,h,c),this.initFrame(),this.initTransform(o,h,c),this.initHierarchy()}Wi.prototype.prepareFrame=function(o){this.prepareProperties(o,!0)},Wi.prototype.renderFrame=function(){},Wi.prototype.getBaseElement=function(){return null},Wi.prototype.destroy=function(){},Wi.prototype.sourceRectAtTime=function(){},Wi.prototype.hide=function(){},E([qi,Os,Fs,$i],Wi);function vt(){}E([It],vt),vt.prototype.createNull=function(o){return new Wi(o,this.globalData,this)},vt.prototype.createShape=function(o){return new ht(o,this.globalData,this)},vt.prototype.createText=function(o){return new Ci(o,this.globalData,this)},vt.prototype.createImage=function(o){return new kr(o,this.globalData,this)},vt.prototype.createSolid=function(o){return new Pf(o,this.globalData,this)},vt.prototype.configAnimation=function(o){this.svgElement.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.svgElement.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),this.renderConfig.viewBoxSize?this.svgElement.setAttribute("viewBox",this.renderConfig.viewBoxSize):this.svgElement.setAttribute("viewBox","0 0 "+o.w+" "+o.h),this.renderConfig.viewBoxOnly||(this.svgElement.setAttribute("width",o.w),this.svgElement.setAttribute("height",o.h),this.svgElement.style.width="100%",this.svgElement.style.height="100%",this.svgElement.style.transform="translate3d(0,0,0)",this.svgElement.style.contentVisibility=this.renderConfig.contentVisibility),this.renderConfig.width&&this.svgElement.setAttribute("width",this.renderConfig.width),this.renderConfig.height&&this.svgElement.setAttribute("height",this.renderConfig.height),this.renderConfig.className&&this.svgElement.setAttribute("class",this.renderConfig.className),this.renderConfig.id&&this.svgElement.setAttribute("id",this.renderConfig.id),this.renderConfig.focusable!==void 0&&this.svgElement.setAttribute("focusable",this.renderConfig.focusable),this.svgElement.setAttribute("preserveAspectRatio",this.renderConfig.preserveAspectRatio),this.animationItem.wrapper.appendChild(this.svgElement);var h=this.globalData.defs;this.setupGlobalData(o,h),this.globalData.progressiveLoad=this.renderConfig.progressiveLoad,this.data=o;var c=Ie("clipPath"),g=Ie("rect");g.setAttribute("width",o.w),g.setAttribute("height",o.h),g.setAttribute("x",0),g.setAttribute("y",0);var f=Ft();c.setAttribute("id",f),c.appendChild(g),this.layerElement.setAttribute("clip-path","url("+m()+"#"+f+")"),h.appendChild(c),this.layers=o.layers,this.elements=X(o.layers.length)},vt.prototype.destroy=function(){this.animationItem.wrapper&&(this.animationItem.wrapper.innerText=""),this.layerElement=null,this.globalData.defs=null;var o,h=this.layers?this.layers.length:0;for(o=0;o<h;o+=1)this.elements[o]&&this.elements[o].destroy&&this.elements[o].destroy();this.elements.length=0,this.destroyed=!0,this.animationItem=null},vt.prototype.updateContainerSize=function(){},vt.prototype.findIndexByInd=function(o){var h=0,c=this.layers.length;for(h=0;h<c;h+=1)if(this.layers[h].ind===o)return h;return-1},vt.prototype.buildItem=function(o){var h=this.elements;if(!(h[o]||this.layers[o].ty===99)){h[o]=!0;var c=this.createItem(this.layers[o]);if(h[o]=c,$a()&&(this.layers[o].ty===0&&this.globalData.projectInterface.registerComposition(c),c.initExpressions()),this.appendElementInPos(c,o),this.layers[o].tt){var g="tp"in this.layers[o]?this.findIndexByInd(this.layers[o].tp):o-1;if(g===-1)return;if(!this.elements[g]||this.elements[g]===!0)this.buildItem(g),this.addPendingElement(c);else{var f=h[g],p=f.getMatte(this.layers[o].tt);c.setMatte(p)}}}},vt.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){var o=this.pendingElements.pop();if(o.checkParenting(),o.data.tt)for(var h=0,c=this.elements.length;h<c;){if(this.elements[h]===o){var g="tp"in o.data?this.findIndexByInd(o.data.tp):h-1,f=this.elements[g],p=f.getMatte(this.layers[h].tt);o.setMatte(p);break}h+=1}}},vt.prototype.renderFrame=function(o){if(!(this.renderedFrame===o||this.destroyed)){o===null?o=this.renderedFrame:this.renderedFrame=o,this.globalData.frameNum=o,this.globalData.frameId+=1,this.globalData.projectInterface.currentFrame=o,this.globalData._mdf=!1;var h,c=this.layers.length;for(this.completeLayers||this.checkLayers(o),h=c-1;h>=0;h-=1)(this.completeLayers||this.elements[h])&&this.elements[h].prepareFrame(o-this.layers[h].st);if(this.globalData._mdf)for(h=0;h<c;h+=1)(this.completeLayers||this.elements[h])&&this.elements[h].renderFrame()}},vt.prototype.appendElementInPos=function(o,h){var c=o.getBaseElement();if(c){for(var g=0,f;g<h;)this.elements[g]&&this.elements[g]!==!0&&this.elements[g].getBaseElement()&&(f=this.elements[g].getBaseElement()),g+=1;f?this.layerElement.insertBefore(c,f):this.layerElement.appendChild(c)}},vt.prototype.hide=function(){this.layerElement.style.display="none"},vt.prototype.show=function(){this.layerElement.style.display="block"};function Ei(){}E([qi,Os,Fs,$i,Lr],Ei),Ei.prototype.initElement=function(o,h,c){this.initFrame(),this.initBaseData(o,h,c),this.initTransform(o,h,c),this.initRenderable(),this.initHierarchy(),this.initRendererElement(),this.createContainerElements(),this.createRenderableComponents(),(this.data.xt||!h.progressiveLoad)&&this.buildAllItems(),this.hide()},Ei.prototype.prepareFrame=function(o){if(this._mdf=!1,this.prepareRenderableFrame(o),this.prepareProperties(o,this.isInRange),!(!this.isInRange&&!this.data.xt)){if(this.tm._placeholder)this.renderedFrame=o/this.data.sr;else{var h=this.tm.v;h===this.data.op&&(h=this.data.op-1),this.renderedFrame=h}var c,g=this.elements.length;for(this.completeLayers||this.checkLayers(this.renderedFrame),c=g-1;c>=0;c-=1)(this.completeLayers||this.elements[c])&&(this.elements[c].prepareFrame(this.renderedFrame-this.layers[c].st),this.elements[c]._mdf&&(this._mdf=!0))}},Ei.prototype.renderInnerContent=function(){var o,h=this.layers.length;for(o=0;o<h;o+=1)(this.completeLayers||this.elements[o])&&this.elements[o].renderFrame()},Ei.prototype.setElements=function(o){this.elements=o},Ei.prototype.getElements=function(){return this.elements},Ei.prototype.destroyElements=function(){var o,h=this.layers.length;for(o=0;o<h;o+=1)this.elements[o]&&this.elements[o].destroy()},Ei.prototype.destroy=function(){this.destroyElements(),this.destroyBaseElement()};function Ir(o,h,c){this.layers=o.layers,this.supports3d=!0,this.completeLayers=!1,this.pendingElements=[],this.elements=this.layers?X(this.layers.length):[],this.initElement(o,h,c),this.tm=o.tm?me.getProp(this,o.tm,0,h.frameRate,this):{_placeholder:!0}}E([vt,Ei,Er],Ir),Ir.prototype.createComp=function(o){return new Ir(o,this.globalData,this)};function Vf(o,h){this.animationItem=o,this.layers=null,this.renderedFrame=-1,this.svgElement=Ie("svg");var c="";if(h&&h.title){var g=Ie("title"),f=Ft();g.setAttribute("id",f),g.textContent=h.title,this.svgElement.appendChild(g),c+=f}if(h&&h.description){var p=Ie("desc"),y=Ft();p.setAttribute("id",y),p.textContent=h.description,this.svgElement.appendChild(p),c+=" "+y}c&&this.svgElement.setAttribute("aria-labelledby",c);var k=Ie("defs");this.svgElement.appendChild(k);var S=Ie("g");this.svgElement.appendChild(S),this.layerElement=S,this.renderConfig={preserveAspectRatio:h&&h.preserveAspectRatio||"xMidYMid meet",imagePreserveAspectRatio:h&&h.imagePreserveAspectRatio||"xMidYMid slice",contentVisibility:h&&h.contentVisibility||"visible",progressiveLoad:h&&h.progressiveLoad||!1,hideOnTransparent:!(h&&h.hideOnTransparent===!1),viewBoxOnly:h&&h.viewBoxOnly||!1,viewBoxSize:h&&h.viewBoxSize||!1,className:h&&h.className||"",id:h&&h.id||"",focusable:h&&h.focusable,filterSize:{width:h&&h.filterSize&&h.filterSize.width||"100%",height:h&&h.filterSize&&h.filterSize.height||"100%",x:h&&h.filterSize&&h.filterSize.x||"0%",y:h&&h.filterSize&&h.filterSize.y||"0%"},width:h&&h.width,height:h&&h.height,runExpressions:!h||h.runExpressions===void 0||h.runExpressions},this.globalData={_mdf:!1,frameNum:-1,defs:k,renderConfig:this.renderConfig},this.elements=[],this.pendingElements=[],this.destroyed=!1,this.rendererType="svg"}return E([vt],Vf),Vf.prototype.createComp=function(o){return new Ir(o,this.globalData,this)},cE("svg",Vf),Ui.registerModifier("tm",si),Ui.registerModifier("pb",vr),Ui.registerModifier("rp",mi),Ui.registerModifier("rd",Tr),Ui.registerModifier("zz",yr),Ui.registerModifier("op",Sr),qe}))});var Be={};vy(Be,{FetchEnctype:()=>Qi,FetchMethod:()=>Kt,FetchRequest:()=>Zi,FetchResponse:()=>qs,FrameElement:()=>zt,FrameLoadingStyle:()=>ps,FrameRenderer:()=>Gs,PageRenderer:()=>Ws,PageSnapshot:()=>Zt,StreamActions:()=>uv,StreamElement:()=>Cn,StreamSourceElement:()=>En,cache:()=>$y,config:()=>pt,connectStreamSource:()=>Or,disconnectStreamSource:()=>Fr,fetch:()=>cv,fetchEnctypeFromString:()=>Fy,fetchMethodFromString:()=>Ln,isSafe:()=>kn,morphBodyElements:()=>Qy,morphChildren:()=>xn,morphElements:()=>Br,morphTurboFrameElements:()=>Jy,navigator:()=>
2Gy,registerAdapter:()=>Wy,renderStreamMessage:()=>Ky,session:()=>nt,setConfirmMethod:()=>Yy,setFormMode:()=>Xy,setProgressBarDelay:()=>zy,start:()=>dv,visit:()=>jy});var ps={eager:"eager",lazy:"lazy"},zt=class i extends HTMLElement{static delegateConstructor=void 0;loaded=Promise.resolve();static get observedAttributes(){return["disabled","loading","src"]}constructor(){super(),this.delegate=new i.delegateConstructor(this)}connectedCallback(){this.delegate.connect()}disconnectedCallback(){this.delegate.disconnect()}reload(){return this.delegate.sourceURLReloaded()}attributeChangedCallback(s){s=="loading"?this.delegate.loadingStyleChanged():s=="src"?this.delegate.sourceURLChanged():s=="disabled"&&this.delegate.disabledChanged()}get src(){return this.getAttribute("src")}set src(s){s?this.setAttribute("src",s):this.removeAttribute("src")}get refresh(){return this.getAttribute("refresh")}set refresh(s){s?this.setAttribute("refresh",s):this.removeAttribute("refresh")}get shouldReloadWithMorph(){return this.src&&this.refresh==="morph"}get loading(){return hL(this.getAttribute("loading")||"")}set loading(s){s?this.setAttribute("loading",s):this.removeAttribute("loading")}get disabled(){return this.hasAttribute("disabled")}set disabled(s){s?this.setAttribute("disabled",""):this.removeAttribute("disabled")}get autoscroll(){return this.hasAttribute("autoscroll")}set autoscroll(s){s?this.setAttribute("autoscroll",""):this.removeAttribute("autoscroll")}get complete(){return!this.delegate.isLoading}get isActive(){return this.ownerDocument===document&&!this.isPreview}get isPreview(){return this.ownerDocument?.documentElement?.hasAttribute("data-turbo-preview")}};function hL(i){return i.toLowerCase()==="lazy"?ps.lazy:ps.eager}var cL={enabled:!0,progressBarDelay:500,unvisitableExtensions:new Set([".7z",".aac",".apk",".avi",".bmp",".bz2",".css",".csv",".deb",".dmg",".doc",".docx",".exe",".gif",".gz",".heic",".heif",".ico",".iso",".jpeg",".jpg",".js",".json",".m4a",".mkv",".mov",".mp3",".mp4",".mpeg",".mpg",".msi",".ogg",".ogv",".pdf",".pkg",".png",".ppt",".pptx",".rar",".rtf",".svg",".tar",".tif",".tiff",".txt",".wav",".webm",".webp",".wma",".wmv",".xls",".xlsx",".xml",".zip"])};function Vr(i){if(i.getAttribute("data-turbo-eval")=="false")return i;{let s=document.createElement("script"),r=Ay();return r&&(s.nonce=r),s.textContent=i.textContent,s.async=!1,dL(s,i),s}}function dL(i,s){for(let{name:r,value:a}of s.attributes)i.setAttribute(r,a)}function uL(i){let s=document.createElement("template");return s.innerHTML=i,s.content}function Ze(i,{target:s,cancelable:r,detail:a}={}){let n=new CustomEvent(i,{cancelable:r,bubbles:!0,composed:!0,detail:a});return s&&s.isConnected?s.dispatchEvent(n):document.documentElement.dispatchEvent(n),n}function Ty(i){i.preventDefault(),i.stopImmediatePropagation()}function Ar(){return document.visibilityState==="hidden"?Ly():Ey()}function Ey(){return new Promise(i=>requestAnimationFrame(()=>i()))}function Ly(){return new Promise(i=>setTimeout(()=>i(),0))}function ky(i=""){return new DOMParser().parseFromString(i,"text/html")}function xy(i,...s){let r=gL(i,s).replace(/^\n/,"").split(`
3`),a=r[0].match(/^\s+/),n=a?a[0].length:0;return r.map(l=>l.slice(n)).join(`
4`)}function gL(i,s){return i.reduce((r,a,n)=>{let l=s[n]==null?"":s[n];return r+a+l},"")}function Ji(){return Array.from({length:36}).map((i,s)=>s==8||s==13||s==18||s==23?"-":s==14?"4":s==19?(Math.floor(Math.random()*4)+8).toString(16):Math.floor(Math.random()*16).toString(16)).join("")}function cn(i,...s){for(let r of s.map(a=>a?.getAttribute(i)))if(typeof r=="string")return r;return null}function mL(i,...s){return s.some(r=>r&&r.hasAttribute(i))}function dn(...i){for(let s of i)s.localName=="turbo-frame"&&s.setAttribute("busy",""),s.setAttribute("aria-busy","true")}function un(...i){for(let s of i)s.localName=="turbo-frame"&&s.removeAttribute("busy"),s.removeAttribute("aria-busy")}function pL(i,s=2e3){return new Promise(r=>{let a=()=>{i.removeEventListener("error",a),i.removeEventListener("load",a),r()};i.addEventListener("load",a,{once:!0}),i.addEventListener("error",a,{once:!0}),setTimeout(r,s)})}function Iy(i){switch(i){case"replace":return history.replaceState;case"advance":case"restore":return history.pushState}}function fL(i){return i=="advance"||i=="replace"||i=="restore"}function fs(...i){let s=cn("data-turbo-action",...i);return fL(s)?s:null}function ov(i){return document.querySelector(`meta[name="${i}"]`)}function gn(i){let s=ov(i);return s&&s.content}
4function Ay(){let i=ov("csp-nonce");if(i){let{nonce:s,content:r}=i;return s==""?r:s}}function vL(i,s){let r=ov(i);return r||(r=document.createElement("meta"),r.setAttribute("name",i),document.head.appendChild(r)),r.setAttribute("content",s),r}function Us(i,s){if(i instanceof Element)return i.closest(s)||Us(i.assignedSlot||i.getRootNode()?.host,s)}function lv(i){return!!i&&i.closest("[inert], :disabled, [hidden], details:not([open]), dialog:not([open])")==null&&typeof i.focus=="function"}function Py(i){return Array.from(i.querySelectorAll("[autofocus]")).find(lv)}async function TL(i,s){let r=s();i(),await Ey();let a=s();return[r,a]}function Vy(i){if(i==="_blank")return!1;if(i){for(let s of document.getElementsByName(i))if(s instanceof HTMLIFrameElement)return!1;return!0}else return!0}function My(i){let s=Us(i,"a[href], a[xlink\\:href]");if(!s||s.href.startsWith("#")||s.hasAttribute("download"))return null;let r=s.getAttribute("target");return r&&r!=="_self"?null:s}function bL(i,s){let r=null;return(...a)=>{let n=()=>i.apply(this,a);clearTimeout(r),r=setTimeout(n,s)}}var yL={"aria-disabled":{beforeSubmit:i=>{i.setAttribute("aria-disabled","true"),i.addEventListener("click",Ty)},afterSubmit:i=>{i.removeAttribute("aria-disabled"),i.removeEventListener("click",Ty)}},disabled:{beforeSubmit:i=>i.disabled=!0,afterSubmit:i=>i.disabled=!1}},_f=class{#e=null;constructor(s){Object.assign(this,s)}get submitter(){return this.#e}set submitter(s){this.#e=yL[s]||s}},SL=new _f({mode:"on",submitter:"disabled"}),pt={drive:cL,forms:SL};function wt(i){return new URL(i.toString(),document.baseURI)}function Pr(i){let s;if(i.hash)return i.hash.slice(1);if(s=i.href.match(/#(.*)$/))return s[1]}function hv(i,s){let r=s?.getAttribute("formaction")||i.getAttribute("action")||i.action;return wt(r)}function wL(i){return(kL(i).match(/\.[^.]*$/)||[])[0]||""}function CL(i,s){let r=by(s.origin+s.pathname);return by(i.href)===r||i.href.startsWith(r)}function Xi(i,s){return CL(i,s)&&!pt.drive.unvisitableExtensions.has(wL(i))}function _y(i){return wt(i.getAttribute("href")||"")}function EL(i){let s=Pr(i);return s!=null?i.href.slice(0,-(s.length+1)):i.href}function hn(i){return EL(i)}function By(i,s){return wt(i).href==wt(s).href}function LL(i){return i.pathname.split("/").slice(1)}function kL(i){return LL(i).slice(-1)[0]}function by(i){return i.endsWith("/")?i:i+"/"}var qs=class{constructor(s){this.response=s}get succeeded(){return this.response.ok}get failed(){return!this.succeeded}get clientError(){return this.statusCode>=400&&this.statusCode<=499}get serverError(){return this.statusCode>=500&&this.statusCode<=599}get redirected(){return this.response.redirected}get location(){return wt(this.response.url)}get isHTML(){return this.contentType&&this.contentType.match(/^(?:text\/([^\s;,]+\b)?html|application\/xhtml\+xml)\b/)}get statusCode(){return this.response.status}get contentType(){return this.header("Content-Type")}get responseText(){return this.response.clone().text()}get responseHTML(){return this.isHTML?this.response.clone().text():Promise.resolve(void 0)}header(s){return this.response.headers.get(s)}},Bf=class extends Set{constructor(s){super(),this.maxSize=s}add(s){if(this.size>=this.maxSize){let a=this.values().next().value;this.delete(a)}super.add(s)}},Oy=new Bf(20);function cv(i,s={}){let r=new Headers(s.headers||{}),a=Ji();return Oy.add(a),r.append("X-Turbo-Request-Id",a),window.fetch(i,{...s,headers:r})}function Ln(i){switch(i.toLowerCase()){case"get":return Kt.get;case"post":return Kt.post;case"put":return Kt.put;case"patch":return Kt.patch;case"delete":return Kt.delete}}var Kt={get:"get",post:"post",put:"put",patch:"patch",delete:"delete"};function Fy(i){switch(i.toLowerCase()){case Qi.multipart:return Qi.multipart;case Qi.plain:return Qi.plain;default:return Qi.urlEncoded}}var Qi={urlEncoded:"application/x-www-form-urlencoded",multipart:"multipart/form-data",plain:"text/plain"},Zi=class{abortController=new AbortController;#e=s=>{};constructor(s,r,a,n=new URLSearchParams,l=null,d=Qi.urlEncoded){let[m,v]=yy(wt(a),r,n,d);this.delegate=s,this.url=m,this.target=l,this.fetchOptions={credentials:"same-origin",redirect:"follow",method:r.toUpperCase(),headers:{...this.defaultHeaders}
4,body:v,signal:this.abortSignal,referrer:this.delegate.referrer?.href},this.enctype=d}get method(){return this.fetchOptions.method}set method(s){let r=this.isSafe?this.url.searchParams:this.fetchOptions.body||new FormData,a=Ln(s)||Kt.get;this.url.search="";let[n,l]=yy(this.url,a,r,this.enctype);this.url=n,this.fetchOptions.body=l,this.fetchOptions.method=a.toUpperCase()}get headers(){return this.fetchOptions.headers}set headers(s){this.fetchOptions.headers=s}get body(){return this.isSafe?this.url.searchParams:this.fetchOptions.body}set body(s){this.fetchOptions.body=s}get location(){return this.url}get params(){return this.url.searchParams}get entries(){return this.body?Array.from(this.body.entries()):[]}cancel(){this.abortController.abort()}async perform(){let{fetchOptions:s}=this;this.delegate.prepareRequest(this);let r=await this.#t(s);try{this.delegate.requestStarted(this),r.detail.fetchRequest?this.response=r.detail.fetchRequest.response:this.response=cv(this.url.href,s);let a=await this.response;return await this.receive(a)}catch(a){if(a.name!=="AbortError")throw this.#i(a)&&this.delegate.requestErrored(this,a),a}finally{this.delegate.requestFinished(this)}}async receive(s){let r=new qs(s);return Ze("turbo:before-fetch-response",{cancelable:!0,detail:{fetchResponse:r},target:this.target}).defaultPrevented?this.delegate.requestPreventedHandlingResponse(this,r):r.succeeded?this.delegate.requestSucceededWithResponse(this,r):this.delegate.requestFailedWithResponse(this,r),r}get defaultHeaders(){return{Accept:"text/html, application/xhtml+xml"}}get isSafe(){return kn(this.method)}get abortSignal(){return this.abortController.signal}acceptResponseType(s){this.headers.Accept=[s,this.headers.Accept].join(", ")}async#t(s){let r=new Promise(n=>this.#e=n),a=Ze("turbo:before-fetch-request",{cancelable:!0,detail:{fetchOptions:s,url:this.url,resume:this.#e},target:this.target});return this.url=a.detail.url,a.defaultPrevented&&await r,a}#i(s){return!Ze("turbo:fetch-request-error",{target:this.target,cancelable:!0,detail:{request:this,error:s}}).defaultPrevented}};function kn(i){return Ln(i)==Kt.get}function yy(i,s,r,a){let n=Array.from(r).length>0?new URLSearchParams(Dy(r)):i.searchParams;return kn(s)?[xL(i,n),null]:a==Qi.urlEncoded?[i,n]:[i,r]}function Dy(i){let s=[];for(let[r,a]of i)a instanceof File||s.push([r,a]);return s}function xL(i,s){let r=new URLSearchParams(Dy(s));return i.search=r.toString(),i}var Of=class{started=!1;constructor(s,r){this.delegate=s,this.element=r,this.intersectionObserver=new IntersectionObserver(this.intersect)}start(){this.started||(this.started=!0,this.intersectionObserver.observe(this.element))}stop(){this.started&&(this.started=!1,this.intersectionObserver.unobserve(this.element))}intersect=s=>{s.slice(-1)[0]?.isIntersecting&&this.delegate.elementAppearedInViewport(this.element)}},es=class{static contentType="text/vnd.turbo-stream.html";static wrap(s){return typeof s=="string"?new this(uL(s)):s}constructor(s){this.fragment=IL(s)}};function IL(i){for(let s of i.querySelectorAll("turbo-stream")){let r=document.importNode(s,!0);for(let a of r.templateElement.content.querySelectorAll("script"))a.replaceWith(Vr(a));s.replaceWith(r)}return i}var AL=i=>i,mn=class{keys=[];entries={};#e;constructor(s,r=AL){this.size=s,this.#e=r}has(s){return this.#e(s)in this.entries}get(s){if(this.has(s)){let r=this.read(s);return this.touch(s),r}}put(s,r){return this.write(s,r),this.touch(s),r}clear(){for(let s of Object.keys(this.entries))this.evict(s)}read(s){return this.entries[this.#e(s)]}write(s,r){this.entries[this.#e(s)]=r}touch(s){s=this.#e(s);let r=this.keys.indexOf(s);r>-1&&this.keys.splice(r,1),this.keys.unshift(s),this.trim()}trim(){for(let s of this.keys.splice(this.size))this.evict(s)}evict(s){delete this.entries[s]}},PL=100,Ff=class extends mn{#e=null;#t={};constructor(s=1,r=PL){super(s,hn),this.prefetchDelay=r}putLater(s,r,a){this.#e=setTimeout(()=>{r.perform(),this.put(s,r,a),this.#e=null},this.prefetchDelay)}put(s,r,a=Ry){super.put(s,r),this.#t[hn(s)]=new Date(new Date().getTime()+a)}clear(){super.clear(),this.#e&&clearTimeout(this.#e)}evict(s){super.evict(s),delete this.#t[s]}has(s){if(super.has(s)){let r=this.#t[hn(s)];return r&&r>Date.now()}else return!1}},Ry=10*1e3,Ns=new Ff,Rs={initialized:"initialized",requesting:"requesting",waiting:"waiting",receiving:"receiving",stopping:"stopping",stopped:"stopped"},pn=class i{state=Rs.initialized;static confirmMethod(s){return Promise.resolve(confirm(s))}constructor(s,r,a,n=!1){let l=FL(r,a),d=OL(BL(r,a),l),m=VL(r,a),v=DL(r,a);this.delegate=s,this.formElement=r,this.submitter=a,this.fetchRequest=new Zi(this,l,d,m,r,v),this.mustRedirect=n}get method(){return this.fetchRequest.method}set method(s){this.fetchRequest.method=s}get action(){return this.fetchRequest.url.toString()}set action(s){this.fetchRequest.url=wt(s)}get body(){return this.fetchRequest.body}get enctype(){return this.fetchRequest.enctype}get isSafe(){return this.fetchRequest.isSafe}get location(){return this.fetchRequest.url}async start(){let{initialized:s,requesting:r}=Rs,a=cn("data-turbo-confirm",this.submitter,this.formElement);
4if(!(typeof a=="string"&&!await(typeof pt.forms.confirm=="function"?pt.forms.confirm:i.confirmMethod)(a,this.formElement,this.submitter))&&this.state==s)return this.state=r,this.fetchRequest.perform()}stop(){let{stopping:s,stopped:r}=Rs;if(this.state!=s&&this.state!=r)return this.state=s,this.fetchRequest.cancel(),!0}prepareRequest(s){if(!s.isSafe){let r=ML(gn("csrf-param"))||gn("csrf-token");r&&(s.headers["X-CSRF-Token"]=r)}this.requestAcceptsTurboStreamResponse(s)&&s.acceptResponseType(es.contentType)}requestStarted(s){this.state=Rs.waiting,this.submitter&&pt.forms.submitter.beforeSubmit(this.submitter),this.setSubmitsWith(),dn(this.formElement),Ze("turbo:submit-start",{target:this.formElement,detail:{formSubmission:this}}),this.delegate.formSubmissionStarted(this)}requestPreventedHandlingResponse(s,r){Ns.clear(),this.result={success:r.succeeded,fetchResponse:r}}requestSucceededWithResponse(s,r){if(r.clientError||r.serverError){this.delegate.formSubmissionFailedWithResponse(this,r);return}if(Ns.clear(),this.requestMustRedirect(s)&&_L(r)){let a=new Error("Form responses must redirect to another location");this.delegate.formSubmissionErrored(this,a)}else this.state=Rs.receiving,this.result={success:!0,fetchResponse:r},this.delegate.formSubmissionSucceededWithResponse(this,r)}requestFailedWithResponse(s,r){this.result={success:!1,fetchResponse:r},this.delegate.formSubmissionFailedWithResponse(this,r)}requestErrored(s,r){this.result={success:!1,error:r},this.delegate.formSubmissionErrored(this,r)}requestFinished(s){this.state=Rs.stopped,this.submitter&&pt.forms.submitter.afterSubmit(this.submitter),this.resetSubmitterText(),un(this.formElement),Ze("turbo:submit-end",{target:this.formElement,detail:{formSubmission:this,...this.result}}),this.delegate.formSubmissionFinished(this)}setSubmitsWith(){if(!(!this.submitter||!this.submitsWith)){if(this.submitter.matches("button"))this.originalSubmitText=this.submitter.innerHTML,this.submitter.innerHTML=this.submitsWith;else if(this.submitter.matches("input")){let s=this.submitter;this.originalSubmitText=s.value,s.value=this.submitsWith}}}resetSubmitterText(){if(!(!this.submitter||!this.originalSubmitText)){if(this.submitter.matches("button"))this.submitter.innerHTML=this.originalSubmitText;else if(this.submitter.matches("input")){let s=this.submitter;s.value=this.originalSubmitText}}}requestMustRedirect(s){return!s.isSafe&&this.mustRedirect}requestAcceptsTurboStreamResponse(s){return!s.isSafe||mL("data-turbo-stream",this.submitter,this.formElement)}get submitsWith(){return this.submitter?.getAttribute("data-turbo-submits-with")}};function VL(i,s){let r=new FormData(i),a=s?.getAttribute("name"),n=s?.getAttribute("value");return a&&r.append(a,n||""),r}function ML(i){if(i!=null){let r=(document.cookie?document.cookie.split("; "):[]).find(a=>a.startsWith(i));if(r){let a=r.split("=").slice(1).join("=");return a?decodeURIComponent(a):void 0}}}function _L(i){return i.statusCode==200&&!i.redirected}function BL(i,s){let r=typeof i.action=="string"?i.action:null;return s?.hasAttribute("formaction")?s.getAttribute("formaction")||"":i.getAttribute("action")||r||""}function OL(i,s){let r=wt(i);return kn(s)&&(r.search=""),r}function FL(i,s){let r=s?.getAttribute("formmethod")||i.getAttribute("method")||"";return Ln(r.toLowerCase())||Kt.get}function DL(i,s){return Fy(s?.getAttribute("formenctype")||i.enctype)}var $s=class{constructor(s){this.element=s}get activeElement(){return this.element.ownerDocument.activeElement}get children(){return[...this.element.children]}hasAnchor(s){return this.getElementForAnchor(s)!=null}getElementForAnchor(s){return s?this.element.querySelector(`[id='${s}'], a[name='${s}']`):null}get isConnected(){return this.element.isConnected}get firstAutofocusableElement(){return Py(this.element)}get permanentElements(){return Uy(this.element)}getPermanentElementById(s){return Ny(this.element,s)}getPermanentElementMapForSnapshot(s){let r={};for(let a of this.permanentElements){let{id:n}=a,l=s.getPermanentElementById(n);l&&(r[n]=[a,l])}return r}};function Ny(i,s){return i.querySelector(`#${s}[data-turbo-permanent]`)}function Uy(i){return i.querySelectorAll("[id][data-turbo-permanent]")}var Mr=class{started=!1;constructor(s,r){this.delegate=s,this.eventTarget=r}start(){this.started||(this.eventTarget.addEventListener("submit",this.submitCaptured,!0),this.started=!0)}stop(){this.started&&(this.eventTarget.removeEventListener("submit",this.submitCaptured,!0),this.started=!1)}submitCaptured=()=>{this.eventTarget.removeEventListener("submit",this.submitBubbled,!1),this.eventTarget.addEventListener("submit",this.submitBubbled,!1)};submitBubbled=s=>{if(!s.defaultPrevented){let r=s.target instanceof HTMLFormElement?s.target:void 0,a=s.submitter||void 0;r&&RL(r,a)&&NL(r,a)&&this.delegate.willSubmitForm(r,a)&&(s.preventDefault(),s.stopImmediatePropagation(),this.delegate.formSubmitted(r,a))}}};function RL(i,s){return(s?.getAttribute("formmethod")||i.getAttribute("method"))!="dialog"}function NL(i,s){let r=s?.getAttribute("formtarget")||i.getAttribute("target");return Vy(r)}var fn=class{#e=s=>{};#t=s=>{};constructor(s,r){this.delegate=s,this.element=r}scrollToAnchor(s){let r=this.snapshot.getElementForAnchor(s);r?(this.focusElement(r),this.scrollToElement(r)):this.scrollToPosition({x:0,y:0})}scrollToAnchorFromLocation(s){this.scrollToAnchor(Pr(s))}scrollToElement(s){s.scrollIntoView()}focusElement(s){s instanceof HTMLElement&&(s.hasAttribute("tabindex")?s.focus():(s.setAttribute("tabindex","-1"),s.focus(),s.removeAttribute("tabindex")))}scrollToPosition({x:s,y:r}){this.scrollRoot.scrollTo(s,r)}scrollToTop(){this.scrollToPosition({x:0,y:0})}get scrollRoot(){return window}
4async render(s){let{isPreview:r,shouldRender:a,willRender:n,newSnapshot:l}=s,d=n;if(a)try{this.renderPromise=new Promise(D=>this.#e=D),this.renderer=s,await this.prepareToRenderSnapshot(s);let m=new Promise(D=>this.#t=D),v={resume:this.#t,render:this.renderer.renderElement,renderMethod:this.renderer.renderMethod};this.delegate.allowsImmediateRender(l,v)||await m,await this.renderSnapshot(s),this.delegate.viewRenderedSnapshot(l,r,this.renderer.renderMethod),this.delegate.preloadOnLoadLinksForView(this.element),this.finishRenderingSnapshot(s)}finally{delete this.renderer,this.#e(void 0),delete this.renderPromise}else d&&this.invalidate(s.reloadReason)}invalidate(s){this.delegate.viewInvalidated(s)}async prepareToRenderSnapshot(s){this.markAsPreview(s.isPreview),await s.prepareToRender()}markAsPreview(s){s?this.element.setAttribute("data-turbo-preview",""):this.element.removeAttribute("data-turbo-preview")}markVisitDirection(s){this.element.setAttribute("data-turbo-visit-direction",s)}unmarkVisitDirection(){this.element.removeAttribute("data-turbo-visit-direction")}async renderSnapshot(s){await s.render()}finishRenderingSnapshot(s){s.finishRendering()}},Df=class extends fn{missing(){this.element.innerHTML='<strong class="turbo-frame-error">Content missing</strong>'}get snapshot(){return new $s(this.element)}},vn=class{constructor(s,r){this.delegate=s,this.element=r}start(){this.element.addEventListener("click",this.clickBubbled),document.addEventListener("turbo:click",this.linkClicked),document.addEventListener("turbo:before-visit",this.willVisit)}stop(){this.element.removeEventListener("click",this.clickBubbled),document.removeEventListener("turbo:click",this.linkClicked),document.removeEventListener("turbo:before-visit",this.willVisit)}clickBubbled=s=>{this.clickEventIsSignificant(s)?this.clickEvent=s:delete this.clickEvent};linkClicked=s=>{this.clickEvent&&this.clickEventIsSignificant(s)&&this.delegate.shouldInterceptLinkClick(s.target,s.detail.url,s.detail.originalEvent)&&(this.clickEvent.preventDefault(),s.preventDefault(),this.delegate.linkClickIntercepted(s.target,s.detail.url,s.detail.originalEvent)),delete this.clickEvent};willVisit=s=>{delete this.clickEvent};clickEventIsSignificant(s){let r=s.composed?s.target?.parentElement:s.target,a=My(r)||r;return a instanceof Element&&a.closest("turbo-frame, html")==this.element}},Tn=class{started=!1;constructor(s,r){this.delegate=s,this.eventTarget=r}start(){this.started||(this.eventTarget.addEventListener("click",this.clickCaptured,!0),this.started=!0)}stop(){this.started&&(this.eventTarget.removeEventListener("click",this.clickCaptured,!0),this.started=!1)}clickCaptured=()=>{this.eventTarget.removeEventListener("click",this.clickBubbled,!1),this.eventTarget.addEventListener("click",this.clickBubbled,!1)};clickBubbled=s=>{if(s instanceof MouseEvent&&this.clickEventIsSignificant(s)){let r=s.composedPath&&s.composedPath()[0]||s.target,a=My(r);if(a&&Vy(a.target)){let n=_y(a);this.delegate.willFollowLinkToLocation(a,n,s)&&(s.preventDefault(),this.delegate.followedLinkToLocation(a,n))}}};clickEventIsSignificant(s){return!(s.target&&s.target.isContentEditable||s.defaultPrevented||s.which>1||s.altKey||s.ctrlKey||s.metaKey||s.shiftKey)}},bn=class{constructor(s,r){this.delegate=s,this.linkInterceptor=new Tn(this,r)}start(){this.linkInterceptor.start()}stop(){this.linkInterceptor.stop()}canPrefetchRequestToLocation(s,r){return!1}prefetchAndCacheRequestToLocation(s,r){}willFollowLinkToLocation(s,r,a){return this.delegate.willSubmitFormLinkToLocation(s,r,a)&&(s.hasAttribute("data-turbo-method")||s.hasAttribute("data-turbo-stream"))}followedLinkToLocation(s,r){let a=document.createElement("form"),n="hidden";for(let[R,W]of r.searchParams)a.append(Object.assign(document.createElement("input"),{type:n,name:R,value:W}));let l=Object.assign(r,{search:""});a.setAttribute("data-turbo","true"),a.setAttribute("action",l.href),a.setAttribute("hidden","");let d=s.getAttribute("data-turbo-method");d&&a.setAttribute("method",d);let m=s.getAttribute("data-turbo-frame");m&&a.setAttribute("data-turbo-frame",m);let v=fs(s);v&&a.setAttribute("data-turbo-action",v);let E=s.getAttribute("data-turbo-confirm");E&&a.setAttribute("data-turbo-confirm",E),s.hasAttribute("data-turbo-stream")&&a.setAttribute("data-turbo-stream",""),this.delegate.submittedFormLinkToLocation(s,r,a),document.body.appendChild(a),a.addEventListener("turbo:submit-end",()=>a.remove(),{once:!0}),requestAnimationFrame(()=>a.requestSubmit())}},yn=class{static async preservingPermanentElements(s,r,a){let n=new this(s,r);n.enter(),await a(),n.leave()}constructor(s,r){this.delegate=s,this.permanentElementMap=r}enter(){for(let s in this.permanentElementMap){let[r,a]=this.permanentElementMap[s];this.delegate.enteringBardo(r,a),this.replaceNewPermanentElementWithPlaceholder(a)}}leave(){for(let s in this.permanentElementMap){let[r]=this.permanentElementMap[s];this.replaceCurrentPermanentElementWithClone(r),this.replacePlaceholderWithPermanentElement(r),this.delegate.leavingBardo(r)}}replaceNewPermanentElementWithPlaceholder(s){let r=UL(s);s.replaceWith(r)}replaceCurrentPermanentElementWithClone(s){let r=s.cloneNode(!0);s.replaceWith(r)}replacePlaceholderWithPermanentElement(s){this.getPlaceholderById(s.id)?.replaceWith(s)}getPlaceholderById(s){return this.placeholders.find(r=>r.content==s)}get placeholders(){return[...document.querySelectorAll("meta[name=turbo-permanent-placeholder][content]")]}};function UL(i){let s=document.createElement("meta");return s.setAttribute("name","turbo-permanent-placeholder"),s.setAttribute("content",i.id),s}var _r=class{#e=null;static renderElement(s,r){}
4constructor(s,r,a,n=!0){this.currentSnapshot=s,this.newSnapshot=r,this.isPreview=a,this.willRender=n,this.renderElement=this.constructor.renderElement,this.promise=new Promise((l,d)=>this.resolvingFunctions={resolve:l,reject:d})}get shouldRender(){return!0}get shouldAutofocus(){return!0}get reloadReason(){}prepareToRender(){}render(){}finishRendering(){this.resolvingFunctions&&(this.resolvingFunctions.resolve(),delete this.resolvingFunctions)}async preservingPermanentElements(s){await yn.preservingPermanentElements(this,this.permanentElementMap,s)}focusFirstAutofocusableElement(){if(this.shouldAutofocus){let s=this.connectedSnapshot.firstAutofocusableElement;s&&s.focus()}}enteringBardo(s){this.#e||s.contains(this.currentSnapshot.activeElement)&&(this.#e=this.currentSnapshot.activeElement)}leavingBardo(s){s.contains(this.#e)&&this.#e instanceof HTMLElement&&(this.#e.focus(),this.#e=null)}get connectedSnapshot(){return this.newSnapshot.isConnected?this.newSnapshot:this.currentSnapshot}get currentElement(){return this.currentSnapshot.element}get newElement(){return this.newSnapshot.element}get permanentElementMap(){return this.currentSnapshot.getPermanentElementMapForSnapshot(this.newSnapshot)}get renderMethod(){return"replace"}},Gs=class extends _r{static renderElement(s,r){let a=document.createRange();a.selectNodeContents(s),a.deleteContents();let n=r,l=n.ownerDocument?.createRange();l&&(l.selectNodeContents(n),s.appendChild(l.extractContents()))}constructor(s,r,a,n,l,d=!0){super(r,a,n,l,d),this.delegate=s}get shouldRender(){return!0}async render(){await Ar(),this.preservingPermanentElements(()=>{this.loadFrameElement()}),this.scrollFrameIntoView(),await Ar(),this.focusFirstAutofocusableElement(),await Ar(),this.activateScriptElements()}loadFrameElement(){this.delegate.willRenderFrame(this.currentElement,this.newElement),this.renderElement(this.currentElement,this.newElement)}scrollFrameIntoView(){if(this.currentElement.autoscroll||this.newElement.autoscroll){let s=this.currentElement.firstElementChild,r=HL(this.currentElement.getAttribute("data-autoscroll-block"),"end"),a=qL(this.currentElement.getAttribute("data-autoscroll-behavior"),"auto");if(s)return s.scrollIntoView({block:r,behavior:a}),!0}return!1}activateScriptElements(){for(let s of this.newScriptElements){let r=Vr(s);s.replaceWith(r)}}get newScriptElements(){return this.currentElement.querySelectorAll("script")}};function HL(i,s){return i=="end"||i=="start"||i=="center"||i=="nearest"?i:s}function qL(i,s){return i=="auto"||i=="smooth"?i:s}var $L=(function(){let i=()=>{},s={morphStyle:"outerHTML",callbacks:{beforeNodeAdded:i,afterNodeAdded:i,beforeNodeMorphed:i,afterNodeMorphed:i,beforeNodeRemoved:i,afterNodeRemoved:i,beforeAttributeUpdated:i},head:{style:"merge",shouldPreserve:W=>W.getAttribute("im-preserve")==="true",shouldReAppend:W=>W.getAttribute("im-re-append")==="true",shouldRemove:i,afterHeadMorphed:i},restoreFocus:!0};function r(W,Q,X={}){W=D(W);let ie=R(Q),ce=E(W,ie,X),oe=n(ce,()=>m(ce,W,ie,Z=>Z.morphStyle==="innerHTML"?(l(Z,W,ie),Array.from(W.childNodes)):a(Z,W,ie)));return ce.pantry.remove(),oe}function a(W,Q,X){let ie=R(Q);return l(W,ie,X,Q,Q.nextSibling),Array.from(ie.childNodes)}function n(W,Q){if(!W.config.restoreFocus)return Q();let X=document.activeElement;if(!(X instanceof HTMLInputElement||X instanceof HTMLTextAreaElement))return Q();let{id:ie,selectionStart:ce,selectionEnd:oe}=X,Z=Q();return ie&&ie!==document.activeElement?.getAttribute("id")&&(X=W.target.querySelector(`[id="${ie}"]`),X?.focus()),X&&!X.selectionEnd&&oe&&X.setSelectionRange(ce,oe),Z}let l=(function(){function W(J,ee,re,he=null,ge=null){ee instanceof HTMLTemplateElement&&re instanceof HTMLTemplateElement&&(ee=ee.content,re=re.content),he||=ee.firstChild;for(let le of re.childNodes){if(he&&he!=ge){let Le=X(J,le,he,ge);if(Le){Le!==he&&ce(J,he,Le),d(Le,le,J),he=Le.nextSibling;continue}}if(le instanceof Element){let Le=le.getAttribute("id");if(J.persistentIds.has(Le)){let ze=oe(ee,Le,he,J);d(ze,le,J),he=ze.nextSibling;continue}}let Te=Q(ee,le,he,J);Te&&(he=Te.nextSibling)}for(;he&&he!=ge;){let le=he;he=he.nextSibling,ie(J,le)}}function Q(J,ee,re,he){if(he.callbacks.beforeNodeAdded(ee)===!1)return null;if(he.idMap.has(ee)){let ge=document.createElement(ee.tagName);return J.insertBefore(ge,re),d(ge,ee,he),he.callbacks.afterNodeAdded(ge),ge}else{let ge=document.importNode(ee,!0);return J.insertBefore(ge,re),he.callbacks.afterNodeAdded(ge),ge}}let X=(function(){function J(he,ge,le,Te){let Le=null,ze=ge.nextSibling,Qe=0,_e=le;for(;_e&&_e!=Te;){if(re(_e,ge)){if(ee(he,_e,ge))return _e;Le===null&&(he.idMap.has(_e)||(Le=_e))}if(Le===null&&ze&&re(_e,ze)&&(Qe++,ze=ze.nextSibling,Qe>=2&&(Le=void 0)),he.activeElementAndParents.includes(_e))break;_e=_e.nextSibling}return Le||null}function ee(he,ge,le){let Te=he.idMap.get(ge),Le=he.idMap.get(le);if(!Le||!Te)return!1;for(let ze of Te)if(Le.has(ze))return!0;return!1}function re(he,ge){let le=he,Te=ge;return le.nodeType===Te.nodeType&&le.tagName===Te.tagName&&(!le.getAttribute?.("id")||le.getAttribute?.("id")===Te.getAttribute?.("id"))}return J})();function ie(J,ee){if(J.idMap.has(ee))se(J.pantry,ee,null);else{if(J.callbacks.beforeNodeRemoved(ee)===!1)return;ee.parentNode?.removeChild(ee),J.callbacks.afterNodeRemoved(ee)}}function ce(J,ee,re){let he=ee;for(;he&&he!==re;){let ge=he;he=he.nextSibling,ie(J,ge)}return he}function oe(J,ee,re,he){let ge=he.target.getAttribute?.("id")===ee&&he.target||he.target.querySelector(`[id="${ee}"]`)||he.pantry.querySelector(`[id="${ee}"]`);return Z(ge,he),se(J,ge,re),ge}function Z(J,ee){let re=J.getAttribute("id");for(;J=J.parentNode;){let he=ee.idMap.get(J);he&&(he.delete(re),he.size||ee.idMap.delete(J))}}function se(J,ee,re){if(J.moveBefore)try{J.moveBefore(ee,re)}catch{J.insertBefore(ee,re)}else J.insertBefore(ee,re)}return W})(),d=(function(){function W(Z,se,J){return J.ignoreActive&&Z===document.activeElement?null:(J.callbacks.beforeNodeMorphed(Z,se)===!1||(Z instanceof HTMLHeadElement&&J.head.ignore||(Z instanceof HTMLHeadElement&&J.head.style!=="morph"?v(Z,se,J):(Q(Z,se,J),oe(Z,J)||l(J,Z,se))),J.callbacks.afterNodeMorphed(Z,se)),Z)}function Q(Z,se,J){let ee=se.nodeType;if(ee===1){let re=Z,he=se,ge=re.attributes,le=he.attributes;for(let Te of le)ce(Te.name,re,"update",J)||re.getAttribute(Te.name)!==Te.value&&re.setAttribute(Te.name,Te.value);for(let Te=ge.length-1;0<=Te;Te--){let Le=ge[Te];if(Le&&!he.hasAttribute(Le.name)){if(ce(Le.name,re,"remove",J))continue;re.removeAttribute(Le.name)}}oe(re,J)||X(re,he,J)}(ee===8||ee===3)&&Z.nodeValue!==se.nodeValue&&(Z.nodeValue=se.nodeValue)}function X(Z,se,J){if(Z instanceof HTMLInputElement&&se instanceof HTMLInputElement&&se.type!=="file"){let ee=se.value,re=Z.value;ie(Z,se,"checked",J),ie(Z,se,"disabled",J),se.hasAttribute("value")?re!==ee&&(ce("value",Z,"update",J)||(Z.setAttribute("value",ee),Z.value=ee)):ce("value",Z,"remove",J)||(Z.value="",Z.removeAttribute("value"))}else if(Z instanceof HTMLOptionElement&&se instanceof HTMLOptionElement)ie(Z,se,"selected",J);else if(Z instanceof HTMLTextAreaElement&&se instanceof HTMLTextAreaElement){let ee=se.value,re=Z.value;if(ce("value",Z,"update",J))return;ee!==re&&(Z.value=ee),Z.firstChild&&Z.firstChild.nodeValue!==ee&&(Z.firstChild.nodeValue=ee)}
4}function ie(Z,se,J,ee){let re=se[J],he=Z[J];if(re!==he){let ge=ce(J,Z,"update",ee);ge||(Z[J]=se[J]),re?ge||Z.setAttribute(J,""):ce(J,Z,"remove",ee)||Z.removeAttribute(J)}}function ce(Z,se,J,ee){return Z==="value"&&ee.ignoreActiveValue&&se===document.activeElement?!0:ee.callbacks.beforeAttributeUpdated(Z,se,J)===!1}function oe(Z,se){return!!se.ignoreActiveValue&&Z===document.activeElement&&Z!==document.body}return W})();function m(W,Q,X,ie){if(W.head.block){let ce=Q.querySelector("head"),oe=X.querySelector("head");if(ce&&oe){let Z=v(ce,oe,W);return Promise.all(Z).then(()=>{let se=Object.assign(W,{head:{block:!1,ignore:!0}});return ie(se)})}}return ie(W)}function v(W,Q,X){let ie=[],ce=[],oe=[],Z=[],se=new Map;for(let ee of Q.children)se.set(ee.outerHTML,ee);for(let ee of W.children){let re=se.has(ee.outerHTML),he=X.head.shouldReAppend(ee),ge=X.head.shouldPreserve(ee);re||ge?he?ce.push(ee):(se.delete(ee.outerHTML),oe.push(ee)):X.head.style==="append"?he&&(ce.push(ee),Z.push(ee)):X.head.shouldRemove(ee)!==!1&&ce.push(ee)}Z.push(...se.values());let J=[];for(let ee of Z){let re=document.createRange().createContextualFragment(ee.outerHTML).firstChild;if(X.callbacks.beforeNodeAdded(re)!==!1){if("href"in re&&re.href||"src"in re&&re.src){let he,ge=new Promise(function(le){he=le});re.addEventListener("load",function(){he()}),J.push(ge)}W.appendChild(re),X.callbacks.afterNodeAdded(re),ie.push(re)}}for(let ee of ce)X.callbacks.beforeNodeRemoved(ee)!==!1&&(W.removeChild(ee),X.callbacks.afterNodeRemoved(ee));return X.head.afterHeadMorphed(W,{added:ie,kept:oe,removed:ce}),J}let E=(function(){function W(J,ee,re){let{persistentIds:he,idMap:ge}=Z(J,ee),le=Q(re),Te=le.morphStyle||"outerHTML";if(!["innerHTML","outerHTML"].includes(Te))throw`Do not understand how to morph style ${Te}`;return{target:J,newContent:ee,config:le,morphStyle:Te,ignoreActive:le.ignoreActive,ignoreActiveValue:le.ignoreActiveValue,restoreFocus:le.restoreFocus,idMap:ge,persistentIds:he,pantry:X(),activeElementAndParents:ie(J),callbacks:le.callbacks,head:le.head}}function Q(J){let ee=Object.assign({},s);return Object.assign(ee,J),ee.callbacks=Object.assign({},s.callbacks,J.callbacks),ee.head=Object.assign({},s.head,J.head),ee}function X(){let J=document.createElement("div");return J.hidden=!0,document.body.insertAdjacentElement("afterend",J),J}function ie(J){let ee=[],re=document.activeElement;if(re?.tagName!=="BODY"&&J.contains(re))for(;re&&(ee.push(re),re!==J);)re=re.parentElement;return ee}function ce(J){let ee=Array.from(J.querySelectorAll("[id]"));return J.getAttribute?.("id")&&ee.push(J),ee}function oe(J,ee,re,he){for(let ge of he){let le=ge.getAttribute("id");if(ee.has(le)){let Te=ge;for(;Te;){let Le=J.get(Te);if(Le==null&&(Le=new Set,J.set(Te,Le)),Le.add(le),Te===re)break;Te=Te.parentElement}}}}function Z(J,ee){let re=ce(J),he=ce(ee),ge=se(re,he),le=new Map;oe(le,ge,J,re);let Te=ee.__idiomorphRoot||ee;return oe(le,ge,Te,he),{persistentIds:ge,idMap:le}}function se(J,ee){let re=new Set,he=new Map;for(let{id:le,tagName:Te}of J)he.has(le)?re.add(le):he.set(le,Te);let ge=new Set;for(let{id:le,tagName:Te}of ee)ge.has(le)?re.add(le):he.get(le)===Te&&ge.add(le);for(let le of re)ge.delete(le);return ge}return W})(),{normalizeElement:D,normalizeParent:R}=(function(){let W=new WeakSet;function Q(oe){return oe instanceof Document?oe.documentElement:oe}function X(oe){if(oe==null)return document.createElement("div");if(typeof oe=="string")return X(ce(oe));if(W.has(oe))return oe;if(oe instanceof Node){if(oe.parentNode)return new ie(oe);{let Z=document.createElement("div");return Z.append(oe),Z}}else{let Z=document.createElement("div");for(let se of[...oe])Z.append(se);return Z}}class ie{constructor(Z){this.originalNode=Z,this.realParentNode=Z.parentNode,this.previousSibling=Z.previousSibling,this.nextSibling=Z.nextSibling}get childNodes(){let Z=[],se=this.previousSibling?this.previousSibling.nextSibling:this.realParentNode.firstChild;for(;se&&se!=this.nextSibling;)Z.push(se),se=se.nextSibling;return Z}querySelectorAll(Z){return this.childNodes.reduce((se,J)=>
4{if(J instanceof Element){J.matches(Z)&&se.push(J);let ee=J.querySelectorAll(Z);for(let re=0;re<ee.length;re++)se.push(ee[re])}return se},[])}insertBefore(Z,se){return this.realParentNode.insertBefore(Z,se)}moveBefore(Z,se){return this.realParentNode.moveBefore(Z,se)}get __idiomorphRoot(){return this.originalNode}}function ce(oe){let Z=new DOMParser,se=oe.replace(/<svg(\s[^>]*>|>)([\s\S]*?)<\/svg>/gim,"");if(se.match(/<\/html>/)||se.match(/<\/head>/)||se.match(/<\/body>/)){let J=Z.parseFromString(oe,"text/html");if(se.match(/<\/html>/))return W.add(J),J;{let ee=J.firstChild;return ee&&W.add(ee),ee}}else{let ee=Z.parseFromString("<body><template>"+oe+"</template></body>","text/html").body.querySelector("template").content;return W.add(ee),ee}}return{normalizeElement:Q,normalizeParent:X}})();return{morph:r,defaults:s}})();function Br(i,s,{callbacks:r,...a}={}){$L.morph(i,s,{...a,callbacks:new Rf(r)})}function xn(i,s,r={}){Br(i,s.childNodes,{...r,morphStyle:"innerHTML"})}function Hy(i,s){return i instanceof zt&&i.shouldReloadWithMorph&&(!s||GL(i,s))&&!i.closest("[data-turbo-permanent]")}function GL(i,s){return s instanceof Element&&s.nodeName==="TURBO-FRAME"&&i.id===s.id&&(!s.getAttribute("src")||By(i.src,s.getAttribute("src")))}function qy(i){return i.parentElement.closest("turbo-frame[src][refresh=morph]")}var Rf=class{#e;constructor({beforeNodeMorphed:s}={}){this.#e=s||(()=>!0)}beforeNodeAdded=s=>!(s.id&&s.hasAttribute("data-turbo-permanent")&&document.getElementById(s.id));beforeNodeMorphed=(s,r)=>{if(s instanceof Element)return!s.hasAttribute("data-turbo-permanent")&&this.#e(s,r)?!Ze("turbo:before-morph-element",{cancelable:!0,target:s,detail:{currentElement:s,newElement:r}}).defaultPrevented:!1};beforeAttributeUpdated=(s,r,a)=>!Ze("turbo:before-morph-attribute",{cancelable:!0,target:r,detail:{attributeName:s,mutationType:a}}).defaultPrevented;beforeNodeRemoved=s=>this.beforeNodeMorphed(s);afterNodeMorphed=(s,r)=>{s instanceof Element&&Ze("turbo:morph-element",{target:s,detail:{currentElement:s,newElement:r}})}},Sn=class extends Gs{static renderElement(s,r){Ze("turbo:before-frame-morph",{target:s,detail:{currentElement:s,newElement:r}}),xn(s,r,{callbacks:{beforeNodeMorphed:(a,n)=>Hy(a,n)&&qy(a)===s?(a.reload(),!1):!0}})}async preservingPermanentElements(s){return await s()}},Nf=class i{static animationDuration=300;static get defaultCSS(){return xy`
5      .turbo-progress-bar {
6        position: fixed;
7        display: block;
8        top: 0;
9        left: 0;
10        height: 3px;
11        background: #0076ff;
12        z-index: 2147483647;
13        transition:
14          width ${i.animationDuration}ms ease-out,
15          opacity ${i.animationDuration/2}ms ${i.animationDuration/2}ms ease-in;
16        transform: translate3d(0, 0, 0);
17      }
18    `}hiding=!1;value=0;visible=!1;constructor(){this.stylesheetElement=this.createStylesheetElement(),this.progressElement=this.createProgressElement(),this.installStylesheetElement(),this.setValue(0)}show(){this.visible||(this.visible=!0,this.installProgressElement(),this.startTrickling())}hide(){this.visible&&!this.hiding&&(this.hiding=!0,this.fadeProgressElement(()=>{this.uninstallProgressElement(),this.stopTrickling(),this.visible=!1,this.hiding=!1}))}setValue(s){this.value=s,this.refresh()}installStylesheetElement(){document.head.insertBefore(this.stylesheetElement,document.head.firstChild)}installProgressElement(){this.progressElement.style.width="0",this.progressElement.style.opacity="1",document.documentElement.insertBefore(this.progressElement,document.body),this.refresh()}fadeProgressElement(s){this.progressElement.style.opacity="0",setTimeout(s,i.animationDuration*1.5)}uninstallProgressElement(){this.progressElement.parentNode&&document.documentElement.removeChild(this.progressElement)}startTrickling(){this.trickleInterval||(this.trickleInterval=window.setInterval(this.trickle,i.animationDuration))}stopTrickling(){window.clearInterval(this.trickleInterval),delete this.trickleInterval}trickle=()=>{this.setValue(this.value+Math.random()/100)};refresh(){requestAnimationFrame(()=>{this.progressElement.style.width=`${10+this.value*90}%`})}createStylesheetElement(){let s=document.createElement("style");s.type="text/css",s.textContent=i.defaultCSS;let r=Ay();return r&&(s.nonce=r),s}createProgressElement(){let s=document.createElement("div");return s.className="turbo-progress-bar",s}},Uf=class extends $s{detailsByOuterHTML=this.children.filter(s=>!zL(s)).map(s=>QL(s)).reduce((s,r)=>{let{outerHTML:a}=r,n=a in s?s[a]:{type:WL(r),tracked:jL(r),elements:[]};return{...s,[a]:{...n,elements:[...n.elements,r]}}},{});get trackedElementSignature(){return Object.keys(this.detailsByOuterHTML).filter(s=>this.detailsByOuterHTML[s].tracked).join("")}getScriptElementsNotInSnapshot(s){return this.getElementsMatchingTypeNotInSnapshot("script",s)}getStylesheetElementsNotInSnapshot(s){return this.getElementsMatchingTypeNotInSnapshot("stylesheet",s)}getElementsMatchingTypeNotInSnapshot(s,r){return Object.keys(this.detailsByOuterHTML).filter(a=>!(a in r.detailsByOuterHTML)).map(a=>this.detailsByOuterHTML[a]).filter(({type:a})=>a==s).map(({elements:[a]})=>a)}get provisionalElements(){return Object.keys(this.detailsByOuterHTML).reduce((s,r)=>{let{type:a,tracked:n,elements:l}=this.detailsByOuterHTML[r];return a==null&&!n?[...s,...l]:l.length>1?[...s,...l.slice(1)]:s},[])}getMetaValue(s){let r=this.findMetaElementByName(s);return r?r.getAttribute("content"):null}findMetaElementByName(s){return Object.keys(this.detailsByOuterHTML).reduce((r,a)=>{let{elements:[n]}=this.detailsByOuterHTML[a];return XL(n,s)?n:r},void 0|void 0)}};function WL(i){if(KL(i))return"script";if(YL(i))return"stylesheet"}function jL(i){return i.getAttribute("data-turbo-track")=="reload"}function KL(i){return i.localName=="script"}function zL(i){return i.localName=="noscript"}function YL(i){let s=i.localName;return s=="style"||s=="link"&&i.getAttribute("rel")=="stylesheet"}function XL(i,s){return i.localName=="meta"&&i.getAttribute("name")==s}function QL(i){return i.hasAttribute("nonce")&&i.setAttribute("nonce",""),i}var Zt=class i extends $s{static fromHTMLString(s=""){return this.fromDocument(ky(s))}static fromElement(s){return this.fromDocument(s.ownerDocument)}static fromDocument({documentElement:s,body:r,head:a}){return new this(s,r,new Uf(a))}constructor(s,r,a){super(r),this.documentElement=s,this.headSnapshot=a}clone(){let s=this.element.cloneNode(!0),r=this.element.querySelectorAll("select"),a=s.querySelectorAll("select");for(let[n,l]of r.entries()){let d=a[n];for(let m of d.selectedOptions)m.selected=!1;for(let m of l.selectedOptions)d.options[m.index].selected=!0}for(let n of s.querySelectorAll('input[type="password"]'))n.value="";for(let n of s.querySelectorAll("noscript"))n.remove();return new i(this.documentElement,s,this.headSnapshot)}get lang(){return this.documentElement.getAttribute("lang")}get dir(){return this.documentElement.getAttribute("dir")}get headElement(){return this.headSnapshot.element}get rootLocation(){let s=this.getSetting("root")??"/";return wt(s)}
18get cacheControlValue(){return this.getSetting("cache-control")}get isPreviewable(){return this.cacheControlValue!="no-preview"}get isCacheable(){return this.cacheControlValue!="no-cache"}get isVisitable(){return this.getSetting("visit-control")!="reload"}get prefersViewTransitions(){return(this.getSetting("view-transition")==="true"||this.headSnapshot.getMetaValue("view-transition")==="same-origin")&&!window.matchMedia("(prefers-reduced-motion: reduce)").matches}get refreshMethod(){return this.getSetting("refresh-method")}get refreshScroll(){return this.getSetting("refresh-scroll")}getSetting(s){return this.headSnapshot.getMetaValue(`turbo-${s}`)}},Hf=class{#e=!1;#t=Promise.resolve();renderChange(s,r){return s&&this.viewTransitionsAvailable&&!this.#e?(this.#e=!0,this.#t=this.#t.then(async()=>{await document.startViewTransition(r).finished})):this.#t=this.#t.then(r),this.#t}get viewTransitionsAvailable(){return document.startViewTransition}},JL={action:"advance",historyChanged:!1,visitCachedSnapshot:()=>{},willRender:!0,updateHistory:!0,shouldCacheSnapshot:!0,acceptsStreamResponse:!1,refresh:{}},ln={visitStart:"visitStart",requestStart:"requestStart",requestEnd:"requestEnd",visitEnd:"visitEnd"},Ai={initialized:"initialized",started:"started",canceled:"canceled",failed:"failed",completed:"completed"},Hs={networkFailure:0,timeoutFailure:-1,contentTypeMismatch:-2},ZL={advance:"forward",restore:"back",replace:"none"},qf=class{identifier=Ji();timingMetrics={};followedRedirect=!1;historyChanged=!1;scrolled=!1;shouldCacheSnapshot=!0;acceptsStreamResponse=!1;snapshotCached=!1;state=Ai.initialized;viewTransitioner=new Hf;constructor(s,r,a,n={}){this.delegate=s,this.location=r,this.restorationIdentifier=a||Ji();let{action:l,historyChanged:d,referrer:m,snapshot:v,snapshotHTML:E,response:D,visitCachedSnapshot:R,willRender:W,updateHistory:Q,shouldCacheSnapshot:X,acceptsStreamResponse:ie,direction:ce,refresh:oe}={...JL,...n};this.action=l,this.historyChanged=d,this.referrer=m,this.snapshot=v,this.snapshotHTML=E,this.response=D,this.isPageRefresh=this.view.isPageRefresh(this),this.visitCachedSnapshot=R,this.willRender=W,this.updateHistory=Q,this.scrolled=!W,this.shouldCacheSnapshot=X,this.acceptsStreamResponse=ie,this.direction=ce||ZL[l],this.refresh=oe}get adapter(){return this.delegate.adapter}get view(){return this.delegate.view}get history(){return this.delegate.history}get restorationData(){return this.history.getRestorationDataForIdentifier(this.restorationIdentifier)}start(){this.state==Ai.initialized&&(this.recordTimingMetric(ln.visitStart),this.state=Ai.started,this.adapter.visitStarted(this),this.delegate.visitStarted(this))}cancel(){this.state==Ai.started&&(this.request&&this.request.cancel(),this.cancelRender(),this.state=Ai.canceled)}complete(){this.state==Ai.started&&(this.recordTimingMetric(ln.visitEnd),this.adapter.visitCompleted(this),this.state=Ai.completed,this.followRedirect(),this.followedRedirect||this.delegate.visitCompleted(this))}fail(){this.state==Ai.started&&(this.state=Ai.failed,this.adapter.visitFailed(this),this.delegate.visitCompleted(this))}changeHistory(){if(!this.historyChanged&&this.updateHistory){let s=this.location.href===this.referrer?.href?"replace":this.action,r=Iy(s);this.history.update(r,this.location,this.restorationIdentifier),this.historyChanged=!0}}issueRequest(){this.hasPreloadedResponse()?this.simulateRequest():this.shouldIssueRequest()&&!this.request&&(this.request=new Zi(this,Kt.get,this.location),this.request.perform())}simulateRequest(){this.response&&(this.startRequest(),this.recordResponse(),this.finishRequest())}startRequest(){this.recordTimingMetric(ln.requestStart),this.adapter.visitRequestStarted(this)}recordResponse(s=this.response){if(this.response=s,s){let{statusCode:r}=s;Sy(r)?this.adapter.visitRequestCompleted(this):this.adapter.visitRequestFailedWithStatusCode(this,r)}}finishRequest(){this.recordTimingMetric(ln.requestEnd),this.adapter.visitRequestFinished(this)}loadResponse(){if(this.response){let{statusCode:s,responseHTML:r}=this.response;this.render(async()=>{if(this.shouldCacheSnapshot&&this.cacheSnapshot(),this.view.renderPromise&&await this.view.renderPromise,Sy(s)&&r!=null){let a=Zt.fromHTMLString(r);await this.renderPageSnapshot(a,!1),this.adapter.visitRendered(this),this.complete()}else await this.view.renderError(Zt.fromHTMLString(r),this),this.adapter.visitRendered(this),this.fail()})}}getCachedSnapshot(){let s=this.view.getCachedSnapshotForLocation(this.location)||this.getPreloadedSnapshot();if(s&&(!Pr(this.location)||s.hasAnchor(Pr(this.location)))&&(this.action=="restore"||s.isPreviewable))return s}getPreloadedSnapshot(){if(this.snapshotHTML)return Zt.fromHTMLString(this.snapshotHTML)}hasCachedSnapshot(){return this.getCachedSnapshot()!=null}loadCachedSnapshot(){let s=this.getCachedSnapshot();if(s){let r=this.shouldIssueRequest();this.render(async()=>{this.cacheSnapshot(),this.isPageRefresh?this.adapter.visitRendered(this):(this.view.renderPromise&&await this.view.renderPromise,await this.renderPageSnapshot(s,r),this.adapter.visitRendered(this),r||this.complete())})}}followRedirect(){this.redirectedToLocation&&!this.followedRedirect&&this.response?.redirected&&(this.adapter.visitProposedToLocation(this.redirectedToLocation,{action:"replace",response:this.response,shouldCacheSnapshot:!1,willRender:!1}),this.followedRedirect=!0)}prepareRequest(s){this.acceptsStreamResponse&&s.acceptResponseType(es.contentType)}
18requestStarted(){this.startRequest()}requestPreventedHandlingResponse(s,r){}async requestSucceededWithResponse(s,r){let a=await r.responseHTML,{redirected:n,statusCode:l}=r;a==null?this.recordResponse({statusCode:Hs.contentTypeMismatch,redirected:n}):(this.redirectedToLocation=r.redirected?r.location:void 0,this.recordResponse({statusCode:l,responseHTML:a,redirected:n}))}async requestFailedWithResponse(s,r){let a=await r.responseHTML,{redirected:n,statusCode:l}=r;a==null?this.recordResponse({statusCode:Hs.contentTypeMismatch,redirected:n}):this.recordResponse({statusCode:l,responseHTML:a,redirected:n})}requestErrored(s,r){this.recordResponse({statusCode:Hs.networkFailure,redirected:!1})}requestFinished(){this.finishRequest()}performScroll(){!this.scrolled&&!this.view.forceReloaded&&!this.view.shouldPreserveScrollPosition(this)&&(this.action=="restore"?this.scrollToRestoredPosition()||this.scrollToAnchor()||this.view.scrollToTop():this.scrollToAnchor()||this.view.scrollToTop(),this.scrolled=!0)}scrollToRestoredPosition(){let{scrollPosition:s}=this.restorationData;if(s)return this.view.scrollToPosition(s),!0}scrollToAnchor(){let s=Pr(this.location);if(s!=null)return this.view.scrollToAnchor(s),!0}recordTimingMetric(s){this.timingMetrics[s]=new Date().getTime()}getTimingMetrics(){return{...this.timingMetrics}}hasPreloadedResponse(){return typeof this.response=="object"}shouldIssueRequest(){return this.action=="restore"?!this.hasCachedSnapshot():this.willRender}cacheSnapshot(){this.snapshotCached||(this.view.cacheSnapshot(this.snapshot).then(s=>s&&this.visitCachedSnapshot(s)),this.snapshotCached=!0)}async render(s){this.cancelRender(),await new Promise(r=>{this.frame=document.visibilityState==="hidden"?setTimeout(()=>r(),0):requestAnimationFrame(()=>r())}),await s(),delete this.frame}async renderPageSnapshot(s,r){await this.viewTransitioner.renderChange(this.view.shouldTransitionTo(s),async()=>{await this.view.renderPage(s,r,this.willRender,this),this.performScroll()})}cancelRender(){this.frame&&(cancelAnimationFrame(this.frame),delete this.frame)}};function Sy(i){return i>=200&&i<300}var $f=class{progressBar=new Nf;constructor(s){this.session=s}visitProposedToLocation(s,r){Xi(s,this.navigator.rootLocation)?this.navigator.startVisit(s,r?.restorationIdentifier||Ji(),r):window.location.href=s.toString()}visitStarted(s){this.location=s.location,this.redirectedToLocation=null,s.loadCachedSnapshot(),s.issueRequest()}visitRequestStarted(s){this.progressBar.setValue(0),s.hasCachedSnapshot()||s.action!="restore"?this.showVisitProgressBarAfterDelay():this.showProgressBar()}visitRequestCompleted(s){s.loadResponse(),s.response.redirected&&(this.redirectedToLocation=s.redirectedToLocation)}visitRequestFailedWithStatusCode(s,r){switch(r){case Hs.networkFailure:case Hs.timeoutFailure:case Hs.contentTypeMismatch:return this.reload({reason:"request_failed",context:{statusCode:r}});default:return s.loadResponse()}}visitRequestFinished(s){}visitCompleted(s){this.progressBar.setValue(1),this.hideVisitProgressBar()}pageInvalidated(s){this.reload(s)}visitFailed(s){this.progressBar.setValue(1),this.hideVisitProgressBar()}visitRendered(s){}linkPrefetchingIsEnabledForLocation(s){return!0}formSubmissionStarted(s){this.progressBar.setValue(0),this.showFormProgressBarAfterDelay()}formSubmissionFinished(s){this.progressBar.setValue(1),this.hideFormProgressBar()}showVisitProgressBarAfterDelay(){this.visitProgressBarTimeout=window.setTimeout(this.showProgressBar,this.session.progressBarDelay)}hideVisitProgressBar(){this.progressBar.hide(),this.visitProgressBarTimeout!=null&&(window.clearTimeout(this.visitProgressBarTimeout),delete this.visitProgressBarTimeout)}showFormProgressBarAfterDelay(){this.formProgressBarTimeout==null&&(this.formProgressBarTimeout=window.setTimeout(this.showProgressBar,this.session.progressBarDelay))}hideFormProgressBar(){this.progressBar.hide(),this.formProgressBarTimeout!=null&&(window.clearTimeout(this.formProgressBarTimeout),delete this.formProgressBarTimeout)}showProgressBar=()=>{this.progressBar.show()};reload(s){Ze("turbo:reload",{detail:s}),window.location.href=(this.redirectedToLocation||this.location)?.toString()||window.location.href}get navigator(){return this.session.navigator}},Gf=class{selector="[data-turbo-temporary]";started=!1;start(){this.started||(this.started=!0,addEventListener("turbo:before-cache",this.removeTemporaryElements,!1))}stop(){this.started&&(this.started=!1,removeEventListener("turbo:before-cache",this.removeTemporaryElements,!1))}removeTemporaryElements=s=>{for(let r of this.temporaryElements)r.remove()};get temporaryElements(){return[...document.querySelectorAll(this.selector)]}},Wf=class{constructor(s,r){this.session=s,this.element=r,this.linkInterceptor=new vn(this,r),this.formSubmitObserver=new Mr(this,r)}start(){this.linkInterceptor.start(),this.formSubmitObserver.start()}stop(){this.linkInterceptor.stop(),this.formSubmitObserver.stop()}shouldInterceptLinkClick(s,r,a){return this.#t(s)}linkClickIntercepted(s,r,a){let n=this.#i(s);n&&n.delegate.linkClickIntercepted(s,r,a)}willSubmitForm(s,r){return s.closest("turbo-frame")==null&&this.#e(s,r)&&this.#t(s,r)}formSubmitted(s,r){let a=this.#i(s,r);a&&a.delegate.formSubmitted(s,r)}#e(s,r){let a=hv(s,r),n=this.element.ownerDocument.querySelector('meta[name="turbo-root"]'),l=wt(n?.content??"/");return this.#t(s,r)&&Xi(a,l)}#t(s,r){if(s instanceof HTMLFormElement?this.session.submissionIsNavigatable(s,r):this.session.elementIsNavigatable(s)){let n=this.#i(s,r);return n?n!=s.closest("turbo-frame"):!1}else return!1}#i(s,r){let a=r?.getAttribute("data-turbo-frame")||s.getAttribute("data-turbo-frame");
18if(a&&a!="_top"){let n=this.element.querySelector(`#${a}:not([disabled])`);if(n instanceof zt)return n}}},jf=class{location;restorationIdentifier=Ji();restorationData={};started=!1;currentIndex=0;constructor(s){this.delegate=s}start(){this.started||(addEventListener("popstate",this.onPopState,!1),this.currentIndex=history.state?.turbo?.restorationIndex||0,this.started=!0,this.replace(new URL(window.location.href)))}stop(){this.started&&(removeEventListener("popstate",this.onPopState,!1),this.started=!1)}push(s,r){this.update(history.pushState,s,r)}replace(s,r){this.update(history.replaceState,s,r)}update(s,r,a=Ji()){s===history.pushState&&++this.currentIndex;let n={turbo:{restorationIdentifier:a,restorationIndex:this.currentIndex}};s.call(history,n,"",r.href),this.location=r,this.restorationIdentifier=a}getRestorationDataForIdentifier(s){return this.restorationData[s]||{}}updateRestorationData(s){let{restorationIdentifier:r}=this,a=this.restorationData[r];this.restorationData[r]={...a,...s}}assumeControlOfScrollRestoration(){this.previousScrollRestoration||(this.previousScrollRestoration=history.scrollRestoration??"auto",history.scrollRestoration="manual")}relinquishControlOfScrollRestoration(){this.previousScrollRestoration&&(history.scrollRestoration=this.previousScrollRestoration,delete this.previousScrollRestoration)}onPopState=s=>{let{turbo:r}=s.state||{};if(this.location=new URL(window.location.href),r){let{restorationIdentifier:a,restorationIndex:n}=r;this.restorationIdentifier=a;let l=n>this.currentIndex?"forward":"back";this.delegate.historyPoppedToLocationWithRestorationIdentifierAndDirection(this.location,a,l),this.currentIndex=n}else this.currentIndex++,this.delegate.historyPoppedWithEmptyState(this.location)}},Kf=class{started=!1;#e=null;constructor(s,r){this.delegate=s,this.eventTarget=r}start(){this.started||(this.eventTarget.readyState==="loading"?this.eventTarget.addEventListener("DOMContentLoaded",this.#t,{once:!0}):this.#t())}stop(){this.started&&(this.eventTarget.removeEventListener("mouseenter",this.#i,{capture:!0,passive:!0}),this.eventTarget.removeEventListener("mouseleave",this.#s,{capture:!0,passive:!0}),this.eventTarget.removeEventListener("turbo:before-fetch-request",this.#a,!0),this.started=!1)}#t=()=>{this.eventTarget.addEventListener("mouseenter",this.#i,{capture:!0,passive:!0}),this.eventTarget.addEventListener("mouseleave",this.#s,{capture:!0,passive:!0}),this.eventTarget.addEventListener("turbo:before-fetch-request",this.#a,!0),this.started=!0};#i=s=>{if(gn("turbo-prefetch")==="false")return;let r=s.target;if(r.matches&&r.matches("a[href]:not([target^=_]):not([download])")&&this.#o(r)){let n=r,l=_y(n);if(this.delegate.canPrefetchRequestToLocation(n,l)){this.#e=n;let d=new Zi(this,Kt.get,l,new URLSearchParams,r);d.fetchOptions.priority="low",Ns.putLater(l,d,this.#n)}}};#s=s=>{s.target===this.#e&&this.#r()};#r=()=>{Ns.clear(),this.#e=null};#a=s=>{if(s.target.tagName!=="FORM"&&s.detail.fetchOptions.method==="GET"){let r=Ns.get(s.detail.url);r&&(s.detail.fetchRequest=r),Ns.clear()}};prepareRequest(s){let r=s.target;s.headers["X-Sec-Purpose"]="prefetch";let a=r.closest("turbo-frame"),n=r.getAttribute("data-turbo-frame")||a?.getAttribute("target")||a?.id;n&&n!=="_top"&&(s.headers["Turbo-Frame"]=n)}requestSucceededWithResponse(){}requestStarted(s){}requestErrored(s){}requestFinished(s){}requestPreventedHandlingResponse(s,r){}requestFailedWithResponse(s,r){}get#n(){return Number(gn("turbo-prefetch-cache-time"))||Ry}#o(s){return!(!s.getAttribute("href")||ek(s)||tk(s)||ik(s)||sk(s)||ak(s))}},ek=i=>i.origin!==document.location.origin||!["http:","https:"].includes(i.protocol)||i.hasAttribute("target"),tk=i=>i.pathname+i.search===document.location.pathname+document.location.search||i.href.startsWith("#"),ik=i=>{if(i.getAttribute("data-turbo-prefetch")==="false"||i.getAttribute("data-turbo")==="false")return!0;let s=Us(i,"[data-turbo-prefetch]");return!!(s&&s.getAttribute("data-turbo-prefetch")==="false")},sk=i=>{let s=i.getAttribute("data-turbo-method");return!!(s&&s.toLowerCase()!=="get"||rk(i)||i.hasAttribute("data-turbo-confirm")||i.hasAttribute("data-turbo-stream"))},rk=i=>i.hasAttribute("data-remote")||i.hasAttribute("data-behavior")||i.hasAttribute("data-confirm")||i.hasAttribute("data-method"),ak=i=>Ze("turbo:before-prefetch",{target:i,cancelable:!0}).defaultPrevented,zf=class{constructor(s){this.delegate=s}proposeVisit(s,r={}){this.delegate.allowsVisitingLocationWithAction(s,r.action)&&this.delegate.visitProposedToLocation(s,r)}startVisit(s,r,a={}){this.stop(),this.currentVisit=new qf(this,wt(s),r,{referrer:this.location,...a}),this.currentVisit.start()}submitForm(s,r){this.stop(),this.formSubmission=new pn(this,s,r,!0),this.formSubmission.start()}stop(){this.formSubmission&&(this.formSubmission.stop(),delete this.formSubmission),this.currentVisit&&(this.currentVisit.cancel(),delete this.currentVisit)}get adapter(){return this.delegate.adapter}get view(){return this.delegate.view}get rootLocation(){return this.view.snapshot.rootLocation}get history(){return this.delegate.history}formSubmissionStarted(s){typeof this.adapter.formSubmissionStarted=="function"&&this.adapter.formSubmissionStarted(s)}async formSubmissionSucceededWithResponse(s,r){if(s==this.formSubmission){let a=await r.responseHTML;if(a){let n=s.isSafe;n||this.view.clearSnapshotCache();let{statusCode:l,redirected:d}=r,v={action:this.#e(s,r),shouldCacheSnapshot:n,response:{statusCode:l,responseHTML:a,redirected:d}};this.proposeVisit(r.location,v)}}}async formSubmissionFailedWithResponse(s,r){let a=await r.responseHTML;if(a){let n=Zt.fromHTMLString(a);r.serverError?await this.view.renderError(n,this.currentVisit):await this.view.renderPage(n,!1,!0,this.currentVisit),n.refreshScroll!=="preserve"&&this.view.scrollToTop(),this.view.clearSnapshotCache()}}formSubmissionErrored(s,r){console.error(r)}formSubmissionFinished(s){typeof this.adapter.formSubmissionFinished=="function"&&this.adapter.formSubmissionFinished(s)}linkPrefetchingIsEnabledForLocation(s){return typeof this.adapter.linkPrefetchingIsEnabledForLocation=="function"?this.adapter.linkPrefetchingIsEnabledForLocation(s):!0}visitStarted(s){this.delegate.visitStarted(s)}visitCompleted(s){this.delegate.visitCompleted(s),delete this.currentVisit}locationWithActionIsSamePage(s,r){return!1}get location(){return this.history.location}get restorationIdentifier(){return this.history.restorationIdentifier}#e(s,r){let{submitter:a,formElement:n}=s;return fs(a,n)||this.#t(r)}#t(s){return s.redirected&&s.location.href===this.location?.href?"replace":"advance"}},ms={initial:0,loading:1,interactive:2,complete:3},Yf=class{stage=ms.initial;started=!1;constructor(s){this.delegate=s}start(){this.started||(this.stage==ms.initial&&(this.stage=ms.loading),document.addEventListener("readystatechange",this.interpretReadyState,!1),addEventListener("pagehide",this.pageWillUnload,!1),this.started=!0)}stop(){this.started&&(document.removeEventListener("readystatechange",this.interpretReadyState,!1),removeEventListener("pagehide",this.pageWillUnload,!1),this.started=!1)}interpretReadyState=()=>{let{readyState:s}=this;s=="interactive"?this.pageIsInteractive():s=="complete"&&this.pageIsComplete()};pageIsInteractive(){this.stage==ms.loading&&(this.stage=ms.interactive,this.delegate.pageBecameInteractive())}pageIsComplete(){this.pageIsInteractive(),this.stage==ms.interactive&&(this.stage=ms.complete,this.delegate.pageLoaded())}pageWillUnload=()=>{this.delegate.pageWillUnload()};get readyState(){return document.readyState}},Xf=class{started=!1;constructor(s){this.delegate=s}start(){this.started||(addEventListener("scroll",this.onScroll,!1),this.onScroll(),this.started=!0)}stop(){this.started&&(removeEventListener("scroll",this.onScroll,!1),this.started=!1)}onScroll=()=>{this.updatePosition({x:window.pageXOffset,y:window.pageYOffset})};updatePosition(s){this.delegate.scrollPositionChanged(s)}},Qf=class{render({fragment:s}){yn.preservingPermanentElements(this,nk(s),()=>{ok(s,()=>{lk(()=>{document.documentElement.appendChild(s)})})})}enteringBardo(s,r){r.replaceWith(s.cloneNode(!0))}leavingBardo(){}};function nk(i){let s=Uy(document.documentElement),r={};for(let a of s){let{id:n}=a;for(let l of i.querySelectorAll("turbo-stream")){let d=Ny(l.templateElement.content,n);d&&(r[n]=[a,d])}}return r}async function ok(i,s){let r=`turbo-stream-autofocus-${Ji()}`,a=i.querySelectorAll("turbo-stream"),n=hk(a),l=null;if(n&&(n.id?l=n.id:l=r,n.id=l),s(),await Ar(),(document.activeElement==null||document.activeElement==document.body)&&l){let m=document.getElementById(l);lv(m)&&m.focus(),m&&m.id==r&&m.removeAttribute("id")}}async function lk(i){let[s,r]=await TL(i,()=>document.activeElement),a=s&&s.id;if(a){let n=document.getElementById(a);lv(n)&&n!=r&&n.focus()}}function hk(i){for(let s of i){let r=Py(s.templateElement.content);if(r)return r}return null}var Jf=class{sources=new Set;#e=!1;constructor(s){this.delegate=s}start(){this.#e||(this.#e=!0,addEventListener("turbo:before-fetch-response",this.inspectFetchResponse,!1))}stop(){this.#e&&(this.#e=!1,removeEventListener("turbo:before-fetch-response",this.inspectFetchResponse,!1))}connectStreamSource(s){this.streamSourceIsConnected(s)||(this.sources.add(s),s.addEventListener("message",this.receiveMessageEvent,!1))}disconnectStreamSource(s){this.streamSourceIsConnected(s)&&(this.sources.delete(s),s.removeEventListener("message",this.receiveMessageEvent,!1))}streamSourceIsConnected(s){return this.sources.has(s)}inspectFetchResponse=s=>{let r=ck(s);r&&dk(r)&&(s.preventDefault(),this.receiveMessageResponse(r))};receiveMessageEvent=s=>
18{this.#e&&typeof s.data=="string"&&this.receiveMessageHTML(s.data)};async receiveMessageResponse(s){let r=await s.responseHTML;r&&this.receiveMessageHTML(r)}receiveMessageHTML(s){this.delegate.receivedMessageFromStream(es.wrap(s))}};function ck(i){let s=i.detail?.fetchResponse;if(s instanceof qs)return s}function dk(i){return(i.contentType??"").startsWith(es.contentType)}var Zf=class extends _r{static renderElement(s,r){let{documentElement:a,body:n}=document;a.replaceChild(r,n)}async render(){this.replaceHeadAndBody(),this.activateScriptElements()}replaceHeadAndBody(){let{documentElement:s,head:r}=document;s.replaceChild(this.newHead,r),this.renderElement(this.currentElement,this.newElement)}activateScriptElements(){for(let s of this.scriptElements){let r=s.parentNode;if(r){let a=Vr(s);r.replaceChild(a,s)}}}get newHead(){return this.newSnapshot.headSnapshot.element}get scriptElements(){return document.documentElement.querySelectorAll("script")}},Ws=class extends _r{static renderElement(s,r){document.body&&r instanceof HTMLBodyElement?document.body.replaceWith(r):document.documentElement.appendChild(r)}get shouldRender(){return this.newSnapshot.isVisitable&&this.trackedElementsAreIdentical}get reloadReason(){if(!this.newSnapshot.isVisitable)return{reason:"turbo_visit_control_is_reload"};if(!this.trackedElementsAreIdentical)return{reason:"tracked_element_mismatch"}}async prepareToRender(){this.#e(),await this.mergeHead()}async render(){this.willRender&&await this.replaceBody()}finishRendering(){super.finishRendering(),this.isPreview||this.focusFirstAutofocusableElement()}get currentHeadSnapshot(){return this.currentSnapshot.headSnapshot}get newHeadSnapshot(){return this.newSnapshot.headSnapshot}get newElement(){return this.newSnapshot.element}#e(){let{documentElement:s}=this.currentSnapshot,{dir:r,lang:a}=this.newSnapshot;a?s.setAttribute("lang",a):s.removeAttribute("lang"),r?s.setAttribute("dir",r):s.removeAttribute("dir")}async mergeHead(){let s=this.mergeProvisionalElements(),r=this.copyNewHeadStylesheetElements();this.copyNewHeadScriptElements(),await s,await r,this.willRender&&this.removeUnusedDynamicStylesheetElements()}async replaceBody(){await this.preservingPermanentElements(async()=>{this.activateNewBody(),await this.assignNewBody()})}get trackedElementsAreIdentical(){return this.currentHeadSnapshot.trackedElementSignature==this.newHeadSnapshot.trackedElementSignature}async copyNewHeadStylesheetElements(){let s=[];for(let r of this.newHeadStylesheetElements)s.push(pL(r)),document.head.appendChild(r);await Promise.all(s)}copyNewHeadScriptElements(){for(let s of this.newHeadScriptElements)document.head.appendChild(Vr(s))}removeUnusedDynamicStylesheetElements(){for(let s of this.unusedDynamicStylesheetElements)document.head.removeChild(s)}async mergeProvisionalElements(){let s=[...this.newHeadProvisionalElements];for(let r of this.currentHeadProvisionalElements)this.isCurrentElementInElementList(r,s)||document.head.removeChild(r);for(let r of s)document.head.appendChild(r)}isCurrentElementInElementList(s,r){for(let[a,n]of r.entries()){if(s.tagName=="TITLE"){if(n.tagName!="TITLE")continue;if(s.innerHTML==n.innerHTML)return r.splice(a,1),!0}if(n.isEqualNode(s))return r.splice(a,1),!0}return!1}removeCurrentHeadProvisionalElements(){for(let s of this.currentHeadProvisionalElements)document.head.removeChild(s)}copyNewHeadProvisionalElements(){for(let s of this.newHeadProvisionalElements)document.head.appendChild(s)}activateNewBody(){document.adoptNode(this.newElement),this.removeNoscriptElements(),this.activateNewBodyScriptElements()}removeNoscriptElements(){for(let s of this.newElement.querySelectorAll("noscript"))s.remove()}activateNewBodyScriptElements(){for(let s of this.newBodyScriptElements){let r=Vr(s);s.replaceWith(r)}}async assignNewBody(){await this.renderElement(this.currentElement,this.newElement)}get unusedDynamicStylesheetElements(){return this.oldHeadStylesheetElements.filter(s=>s.getAttribute("data-turbo-track")==="dynamic")}get oldHeadStylesheetElements(){return this.currentHeadSnapshot.getStylesheetElementsNotInSnapshot(this.newHeadSnapshot)}get newHeadStylesheetElements(){return this.newHeadSnapshot.getStylesheetElementsNotInSnapshot(this.currentHeadSnapshot)}get newHeadScriptElements(){return this.newHeadSnapshot.getScriptElementsNotInSnapshot(this.currentHeadSnapshot)}get currentHeadProvisionalElements(){return this.currentHeadSnapshot.provisionalElements}get newHeadProvisionalElements(){return this.newHeadSnapshot.provisionalElements}get newBodyScriptElements(){return this.newElement.querySelectorAll("script")}},wn=class extends Ws{static renderElement(s,r){Br(s,r,{callbacks:{beforeNodeMorphed:(a,n)=>Hy(a,n)&&!qy(a)?(a.reload(),!1):!0}}),Ze("turbo:morph",{detail:{currentElement:s,newElement:r}})}async preservingPermanentElements(s){return await s()}get renderMethod(){return"morph"}get shouldAutofocus(){return!1}},ev=class extends mn{constructor(s){super(s,hn)}get snapshots(){return this.entries}},tv=class extends fn{snapshotCache=new ev(10);lastRenderedLocation=new URL(location.href);forceReloaded=!1;shouldTransitionTo(s){return this.snapshot.prefersViewTransitions&&s.prefersViewTransitions}renderPage(s,r=!1,a=!0,n){let d=this.isPageRefresh(n)&&(n?.refresh?.method||this.snapshot.refreshMethod)==="morph"?wn:Ws,m=new d(this.snapshot,s,r,a);return m.shouldRender?n?.changeHistory():this.forceReloaded=!0,this.render(m)}renderError(s,r){r?.changeHistory();let a=new Zf(this.snapshot,s,!1);return this.render(a)}clearSnapshotCache(){this.snapshotCache.clear()}async cacheSnapshot(s=this.snapshot){if(s.isCacheable){this.delegate.viewWillCacheSnapshot();let{lastRenderedLocation:r}=this;await Ly();let a=s.clone();return this.snapshotCache.put(r,a),a}}getCachedSnapshotForLocation(s){return this.snapshotCache.get(s)}isPageRefresh(s){return!s||this.lastRenderedLocation.pathname===s.location.pathname&&s.action==="replace"}shouldPreserveScrollPosition(s){return this.isPageRefresh(s)&&(s?.refresh?.scroll||this.snapshot.refreshScroll)==="preserve"}get snapshot(){return Zt.fromElement(this.element)}},iv=class{selector="a[data-turbo-preload]";constructor(s,r){this.delegate=s,this.snapshotCache=r}start(){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",this.#e):this.preloadOnLoadLinksForView(document.body)}stop(){document.removeEventListener("DOMContentLoaded",this.#e)}preloadOnLoadLinksForView(s){for(let r of s.querySelectorAll(this.selector))this.delegate.shouldPreloadLink(r)&&this.preloadURL(r)}async preloadURL(s){let r=new URL(s.href);if(this.snapshotCache.has(r))return;await new Zi(this,Kt.get,r,new URLSearchParams,s).perform()}prepareRequest(s){s.headers["X-Sec-Purpose"]="prefetch"}async requestSucceededWithResponse(s,r){try{let a=await r.responseHTML,n=Zt.fromHTMLString(a);this.snapshotCache.put(s.url,n)}catch{}}requestStarted(s){}requestErrored(s){}requestFinished(s){}requestPreventedHandlingResponse(s,r){}requestFailedWithResponse(s,r){}#e=()=>{this.preloadOnLoadLinksForView(document.body)}},sv=class{constructor(s){this.session=s}clear(){this.session.clearCache()}resetCacheControl(){this.#e("")}exemptPageFromCache(){this.#e("no-cache")}exemptPageFromPreview(){this.#e("no-preview")}#e(s){vL("turbo-cache-control",s)}},rv=class{navigator=new zf(this);history=new jf(this);view=new tv(this,document.documentElement);adapter=new $f(this);
18pageObserver=new Yf(this);cacheObserver=new Gf;linkPrefetchObserver=new Kf(this,document);linkClickObserver=new Tn(this,window);formSubmitObserver=new Mr(this,document);scrollObserver=new Xf(this);streamObserver=new Jf(this);formLinkClickObserver=new bn(this,document.documentElement);frameRedirector=new Wf(this,document.documentElement);streamMessageRenderer=new Qf;cache=new sv(this);enabled=!0;started=!1;#e=150;constructor(s){this.recentRequests=s,this.preloader=new iv(this,this.view.snapshotCache),this.debouncedRefresh=this.refresh,this.pageRefreshDebouncePeriod=this.pageRefreshDebouncePeriod}start(){this.started||(this.pageObserver.start(),this.cacheObserver.start(),this.linkPrefetchObserver.start(),this.formLinkClickObserver.start(),this.linkClickObserver.start(),this.formSubmitObserver.start(),this.scrollObserver.start(),this.streamObserver.start(),this.frameRedirector.start(),this.history.start(),this.preloader.start(),this.started=!0,this.enabled=!0)}disable(){this.enabled=!1}stop(){this.started&&(this.pageObserver.stop(),this.cacheObserver.stop(),this.linkPrefetchObserver.stop(),this.formLinkClickObserver.stop(),this.linkClickObserver.stop(),this.formSubmitObserver.stop(),this.scrollObserver.stop(),this.streamObserver.stop(),this.frameRedirector.stop(),this.history.stop(),this.preloader.stop(),this.started=!1)}registerAdapter(s){this.adapter=s}visit(s,r={}){let a=r.frame?document.getElementById(r.frame):null;if(a instanceof zt){let n=r.action||fs(a);a.delegate.proposeVisitIfNavigatedWithAction(a,n),a.src=s.toString()}else this.navigator.proposeVisit(wt(s),r)}refresh(s,r={}){r=typeof r=="string"?{requestId:r}:r;let{method:a,requestId:n,scroll:l}=r,d=n&&this.recentRequests.has(n),m=s===document.baseURI;!d&&!this.navigator.currentVisit&&m&&this.visit(s,{action:"replace",shouldCacheSnapshot:!1,refresh:{method:a,scroll:l}})}connectStreamSource(s){this.streamObserver.connectStreamSource(s)}disconnectStreamSource(s){this.streamObserver.disconnectStreamSource(s)}renderStreamMessage(s){this.streamMessageRenderer.render(es.wrap(s))}clearCache(){this.view.clearSnapshotCache()}setProgressBarDelay(s){console.warn("Please replace `session.setProgressBarDelay(delay)` with `session.progressBarDelay = delay`. The function is deprecated and will be removed in a future version of Turbo.`"),this.progressBarDelay=s}set progressBarDelay(s){pt.drive.progressBarDelay=s}get progressBarDelay(){return pt.drive.progressBarDelay}set drive(s){pt.drive.enabled=s}get drive(){return pt.drive.enabled}set formMode(s){pt.forms.mode=s}get formMode(){return pt.forms.mode}get location(){return this.history.location}get restorationIdentifier(){return this.history.restorationIdentifier}get pageRefreshDebouncePeriod(){return this.#e}set pageRefreshDebouncePeriod(s){this.refresh=bL(this.debouncedRefresh.bind(this),s),this.#e=s}shouldPreloadLink(s){let r=s.hasAttribute("data-turbo-method"),a=s.hasAttribute("data-turbo-stream"),n=s.getAttribute("data-turbo-frame"),l=n=="_top"?null:document.getElementById(n)||Us(s,"turbo-frame:not([disabled])");if(r||a||l instanceof zt)return!1;{let d=new URL(s.href);return this.elementIsNavigatable(s)&&Xi(d,this.snapshot.rootLocation)}}historyPoppedToLocationWithRestorationIdentifierAndDirection(s,r,a){this.enabled?this.navigator.startVisit(s,r,{action:"restore",historyChanged:!0,direction:a}):this.adapter.pageInvalidated({reason:"turbo_disabled"})}historyPoppedWithEmptyState(s){this.history.replace(s),this.view.lastRenderedLocation=s,this.view.cacheSnapshot()}scrollPositionChanged(s){this.history.updateRestorationData({scrollPosition:s})}willSubmitFormLinkToLocation(s,r){return this.elementIsNavigatable(s)&&Xi(r,this.snapshot.rootLocation)}submittedFormLinkToLocation(){}canPrefetchRequestToLocation(s,r){return this.elementIsNavigatable(s)&&Xi(r,this.snapshot.rootLocation)&&this.navigator.linkPrefetchingIsEnabledForLocation(r)}willFollowLinkToLocation(s,r,a){return this.elementIsNavigatable(s)&&Xi(r,this.snapshot.rootLocation)&&this.applicationAllowsFollowingLinkToLocation(s,r,a)}followedLinkToLocation(s,r){let a=this.getActionForLink(s),n=s.hasAttribute("data-turbo-stream");this.visit(r.href,{action:a,acceptsStreamResponse:n})}allowsVisitingLocationWithAction(s,r){return this.applicationAllowsVisitingLocation(s)}visitProposedToLocation(s,r){wy(s),this.adapter.visitProposedToLocation(s,r)}visitStarted(s){s.acceptsStreamResponse||(dn(document.documentElement),this.view.markVisitDirection(s.direction)),wy(s.location),this.notifyApplicationAfterVisitingLocation(s.location,s.action)}visitCompleted(s){this.view.unmarkVisitDirection(),un(document.documentElement),this.notifyApplicationAfterPageLoad(s.getTimingMetrics())}willSubmitForm(s,r){let a=hv(s,r);return this.submissionIsNavigatable(s,r)&&Xi(wt(a),this.snapshot.rootLocation)}formSubmitted(s,r){this.navigator.submitForm(s,r)}pageBecameInteractive(){this.view.lastRenderedLocation=this.location,this.notifyApplicationAfterPageLoad()}
18pageLoaded(){this.history.assumeControlOfScrollRestoration()}pageWillUnload(){this.history.relinquishControlOfScrollRestoration()}receivedMessageFromStream(s){this.renderStreamMessage(s)}viewWillCacheSnapshot(){this.notifyApplicationBeforeCachingSnapshot()}allowsImmediateRender({element:s},r){let a=this.notifyApplicationBeforeRender(s,r),{defaultPrevented:n,detail:{render:l}}=a;return this.view.renderer&&l&&(this.view.renderer.renderElement=l),!n}viewRenderedSnapshot(s,r,a){this.view.lastRenderedLocation=this.history.location,this.notifyApplicationAfterRender(a)}preloadOnLoadLinksForView(s){this.preloader.preloadOnLoadLinksForView(s)}viewInvalidated(s){this.adapter.pageInvalidated(s)}frameLoaded(s){this.notifyApplicationAfterFrameLoad(s)}frameRendered(s,r){this.notifyApplicationAfterFrameRender(s,r)}applicationAllowsFollowingLinkToLocation(s,r,a){return!this.notifyApplicationAfterClickingLinkToLocation(s,r,a).defaultPrevented}applicationAllowsVisitingLocation(s){return!this.notifyApplicationBeforeVisitingLocation(s).defaultPrevented}notifyApplicationAfterClickingLinkToLocation(s,r,a){return Ze("turbo:click",{target:s,detail:{url:r.href,originalEvent:a},cancelable:!0})}notifyApplicationBeforeVisitingLocation(s){return Ze("turbo:before-visit",{detail:{url:s.href},cancelable:!0})}notifyApplicationAfterVisitingLocation(s,r){return Ze("turbo:visit",{detail:{url:s.href,action:r}})}notifyApplicationBeforeCachingSnapshot(){return Ze("turbo:before-cache")}notifyApplicationBeforeRender(s,r){return Ze("turbo:before-render",{detail:{newBody:s,...r},cancelable:!0})}notifyApplicationAfterRender(s){return Ze("turbo:render",{detail:{renderMethod:s}})}notifyApplicationAfterPageLoad(s={}){return Ze("turbo:load",{detail:{url:this.location.href,timing:s}})}notifyApplicationAfterFrameLoad(s){return Ze("turbo:frame-load",{target:s})}notifyApplicationAfterFrameRender(s,r){return Ze("turbo:frame-render",{detail:{fetchResponse:s},target:r,cancelable:!0})}submissionIsNavigatable(s,r){if(pt.forms.mode=="off")return!1;{let a=r?this.elementIsNavigatable(r):!0;return pt.forms.mode=="optin"?a&&s.closest('[data-turbo="true"]')!=null:a&&this.elementIsNavigatable(s)}}elementIsNavigatable(s){let r=Us(s,"[data-turbo]"),a=Us(s,"turbo-frame");return pt.drive.enabled||a?r?r.getAttribute("data-turbo")!="false":!0:r?r.getAttribute("data-turbo")=="true":!1}getActionForLink(s){return fs(s)||"advance"}get snapshot(){return this.view.snapshot}};function wy(i){Object.defineProperties(i,uk)}var uk={absoluteURL:{get(){return this.toString()}}},nt=new rv(Oy),{cache:$y,navigator:Gy}=nt;function dv(){nt.start()}function Wy(i){nt.registerAdapter(i)}function jy(i,s){nt.visit(i,s)}function Or(i){nt.connectStreamSource(i)}function Fr(i){nt.disconnectStreamSource(i)}function Ky(i){nt.renderStreamMessage(i)}function zy(i){console.warn("Please replace `Turbo.setProgressBarDelay(delay)` with `Turbo.config.drive.progressBarDelay = delay`. The top-level function is deprecated and will be removed in a future version of Turbo.`"),pt.drive.progressBarDelay=i}function Yy(i){console.warn("Please replace `Turbo.setConfirmMethod(confirmMethod)` with `Turbo.config.forms.confirm = confirmMethod`. The top-level function is deprecated and will be removed in a future version of Turbo.`"),pt.forms.confirm=i}function Xy(i){console.warn("Please replace `Turbo.setFormMode(mode)` with `Turbo.config.forms.mode = mode`. The top-level function is deprecated and will be removed in a future version of Turbo.`"),pt.forms.mode=i}function Qy(i,s){wn.renderElement(i,s)}function Jy(i,s){Sn.renderElement(i,s)}var gk=Object.freeze({__proto__:null,PageRenderer:Ws,PageSnapshot:Zt,FrameRenderer:Gs,fetch:cv,config:pt,session:nt,cache:$y,navigator:Gy,start:dv,registerAdapter:Wy,visit:jy,connectStreamSource:Or,disconnectStreamSource:Fr,renderStreamMessage:Ky,setProgressBarDelay:zy,setConfirmMethod:Yy,setFormMode:Xy,morphBodyElements:Qy,morphTurboFrameElements:Jy,morphChildren:xn,morphElements:Br}),av=class extends Error{},nv=class{fetchResponseLoaded=s=>Promise.resolve();#e=null;#t=()=>{};#i=!1;#s=!1;#r=new Set;#a=!1;action=null;constructor(s){this.element=s,this.view=new Df(this,this.element),this.appearanceObserver=new Of(this,this.element),this.formLinkClickObserver=new bn(this,this.element),this.linkInterceptor=new vn(this,this.element),this.restorationIdentifier=Ji(),this.formSubmitObserver=new Mr(this,this.element)}connect(){this.#i||(this.#i=!0,this.loadingStyle==ps.lazy?this.appearanceObserver.start():this.#n(),this.formLinkClickObserver.start(),this.linkInterceptor.start(),this.formSubmitObserver.start())}disconnect(){this.#i&&(this.#i=!1,this.appearanceObserver.stop(),this.formLinkClickObserver.stop(),this.linkInterceptor.stop(),this.formSubmitObserver.stop(),this.element.hasAttribute("recurse")||this.#e?.cancel())}disabledChanged(){this.disabled?this.#e?.cancel():this.loadingStyle==ps.eager&&this.#n()}sourceURLChanged(){this.#v("src")||(this.sourceURL||this.#e?.cancel(),this.element.isConnected&&(this.complete=!1),(this.loadingStyle==ps.eager||this.#s)&&this.#n())}sourceURLReloaded(){let{refresh:s,src:r}=this.element;return this.#a=r&&s==="morph",this.element.removeAttribute("complete"),this.element.src=null,this.element.src=r,this.element.loaded}loadingStyleChanged(){this.loadingStyle==ps.lazy?this.appearanceObserver.start():(this.appearanceObserver.stop(),this.#n())}async#n(){this.enabled&&this.isActive&&!this.complete&&this.sourceURL&&(this.element.loaded=this.#l(wt(this.sourceURL)),this.appearanceObserver.stop(),await this.element.loaded,this.#s=!0)}async loadResponse(s){(s.redirected||s.succeeded&&s.isHTML)&&(this.sourceURL=s.response.url);try{let r=await s.responseHTML;if(r){let a=ky(r);Zt.fromDocument(a).isVisitable?await this.#o(s,a):await this.#c(s)}}finally{this.#a=!1,this.fetchResponseLoaded=()=>Promise.resolve()}}elementAppearedInViewport(s){this.proposeVisitIfNavigatedWithAction(s,fs(s)),this.#n()}willSubmitFormLinkToLocation(s){return this.#b(s)}submittedFormLinkToLocation(s,r,a){let n=this.#f(s);n&&a.setAttribute("data-turbo-frame",n.id)}shouldInterceptLinkClick(s,r,a){return this.#b(s)}linkClickIntercepted(s,r){this.#h(s,r)}willSubmitForm(s,r){return s.closest("turbo-frame")==this.element&&this.#b(s,r)}formSubmitted(s,r){this.formSubmission&&this.formSubmission.stop(),this.formSubmission=new pn(this,s,r);let{fetchRequest:a}=this.formSubmission,n=this.#f(s,r);this.prepareRequest(a,n),this.formSubmission.start()}prepareRequest(s,r=this){s.headers["Turbo-Frame"]=r.id,this.currentNavigationElement?.hasAttribute("data-turbo-stream")&&s.acceptResponseType(es.contentType)}requestStarted(s){dn(this.element)}requestPreventedHandlingResponse(s,r){this.#t()}async requestSucceededWithResponse(s,r){await this.loadResponse(r),this.#t()}async requestFailedWithResponse(s,r){await this.loadResponse(r),this.#t()}requestErrored(s,r){console.error(r),this.#t()}requestFinished(s){un(this.element)}formSubmissionStarted({formElement:s}){dn(s,this.#f(s))}formSubmissionSucceededWithResponse(s,r){let a=this.#f(s.formElement,s.submitter);a.delegate.proposeVisitIfNavigatedWithAction(a,fs(s.submitter,s.formElement,a)),a.delegate.loadResponse(r),s.isSafe||nt.clearCache()}formSubmissionFailedWithResponse(s,r){this.element.delegate.loadResponse(r),nt.clearCache()}formSubmissionErrored(s,r){console.error(r)}formSubmissionFinished({formElement:s}){un(s,this.#f(s))}allowsImmediateRender({element:s},r){let a=Ze("turbo:before-frame-render",{target:this.element,detail
18:{newFrame:s,...r},cancelable:!0}),{defaultPrevented:n,detail:{render:l}}=a;return this.view.renderer&&l&&(this.view.renderer.renderElement=l),!n}viewRenderedSnapshot(s,r,a){}preloadOnLoadLinksForView(s){nt.preloadOnLoadLinksForView(s)}viewInvalidated(){}willRenderFrame(s,r){this.previousFrameElement=s.cloneNode(!0)}visitCachedSnapshot=({element:s})=>{let r=s.querySelector("#"+this.element.id);r&&this.previousFrameElement&&r.replaceChildren(...this.previousFrameElement.children),delete this.previousFrameElement};async#o(s,r){let a=await this.extractForeignFrameElement(r.body),n=this.#a?Sn:Gs;if(a){let l=new $s(a),d=new n(this,this.view.snapshot,l,!1,!1);this.view.renderPromise&&await this.view.renderPromise,this.changeHistory(),await this.view.render(d),this.complete=!0,nt.frameRendered(s,this.element),nt.frameLoaded(this.element),await this.fetchResponseLoaded(s)}else this.#u(s)&&this.#g(s)}async#l(s){let r=new Zi(this,Kt.get,s,new URLSearchParams,this.element);return this.#e?.cancel(),this.#e=r,new Promise(a=>{this.#t=()=>{this.#t=()=>{},this.#e=null,a()},r.perform()})}#h(s,r,a){let n=this.#f(s,a);n.delegate.proposeVisitIfNavigatedWithAction(n,fs(a,s,n)),this.#y(s,()=>{n.src=r})}proposeVisitIfNavigatedWithAction(s,r=null){if(this.action=r,this.action){let a=Zt.fromElement(s).clone(),{visitCachedSnapshot:n}=s.delegate;s.delegate.fetchResponseLoaded=async l=>{if(s.src){let{statusCode:d,redirected:m}=l,v=await l.responseHTML,D={response:{statusCode:d,redirected:m,responseHTML:v},visitCachedSnapshot:n,willRender:!1,updateHistory:!1,restorationIdentifier:this.restorationIdentifier,snapshot:a};this.action&&(D.action=this.action),nt.visit(s.src,D)}}}}changeHistory(){if(this.action){let s=Iy(this.action);nt.history.update(s,wt(this.element.src||""),this.restorationIdentifier)}}async#c(s){console.warn(`The response (${s.statusCode}) from <turbo-frame id="${this.element.id}"> is performing a full page visit due to turbo-visit-control.`),await this.#m(s.response)}#u(s){this.element.setAttribute("complete","");let r=s.response,a=async(l,d)=>{l instanceof Response?this.#m(l):nt.visit(l,d)};return!Ze("turbo:frame-missing",{target:this.element,detail:{response:r,visit:a},cancelable:!0}).defaultPrevented}#g(s){this.view.missing(),this.#d(s)}#d(s){let r=`The response (${s.statusCode}) did not contain the expected <turbo-frame id="${this.element.id}"> and will be ignored. To perform a full page visit instead, set turbo-visit-control to reload.`;throw new av(r)}async#m(s){let r=new qs(s),a=await r.responseHTML,{location:n,redirected:l,statusCode:d}=r;return nt.visit(n,{response:{redirected:l,statusCode:d,responseHTML:a}})}#f(s,r){let a=cn("data-turbo-frame",r,s)||this.element.getAttribute("target"),n=this.#S(a);return n instanceof zt?n:this.element}async extractForeignFrameElement(s){let r,a=CSS.escape(this.id);try{if(r=Cy(s.querySelector(`turbo-frame#${a}`),this.sourceURL),r)return r;if(r=Cy(s.querySelector(`turbo-frame[src][recurse~=${a}]`),this.sourceURL),r)return await r.loaded,await this.extractForeignFrameElement(r)}catch(n){return console.error(n),new zt}return null}#p(s,r){let a=hv(s,r);return Xi(wt(a),this.rootLocation)}#b(s,r){let a=cn("data-turbo-frame",r,s)||this.element.getAttribute("target");if(s instanceof HTMLFormElement&&!this.#p(s,r)||!this.enabled||a=="_top")return!1;if(a){let n=this.#S(a);if(n)return!n.disabled;if(a=="_parent")return!1}return!(!nt.elementIsNavigatable(s)||r&&!nt.elementIsNavigatable(r))}get id(){return this.element.id}get disabled(){return this.element.disabled}get enabled(){return!this.disabled}get sourceURL(){if(this.element.src)return this.element.src}set sourceURL(s){this.#T("src",()=>{this.element.src=s??null})}get loadingStyle(){return this.element.loading}get isLoading(){return this.formSubmission!==void 0||this.#t()!==void 0}get complete(){return this.element.hasAttribute("complete")}set complete(s){s?this.element.setAttribute("complete",""):this.element.removeAttribute("complete")}get isActive(){return this.element.isActive&&this.#i}get rootLocation(){let r=this.element.ownerDocument.querySelector('meta[name="turbo-root"]')?.content??"/";return wt(r)}#v(s){return this.#r.has(s)}#T(s,r){this.#r.add(s),r(),this.#r.delete(s)}#y(s,r){this.currentNavigationElement=s,r(),delete this.currentNavigationElement}#S(s){if(s!=null){let r=s==="_parent"?this.element.parentElement.closest("turbo-frame"):document.getElementById(s);if(r instanceof zt)return r}}};function Cy(i,s){if(i){let r=i.getAttribute("src");if(r!=null&&s!=null&&By(r,s))throw new Error(`Matching <turbo-frame id="${i.id}"> element has a source URL which references itself`);if(i.ownerDocument!==document&&(i=document.importNode(i,!0)),i instanceof zt)return i.connectedCallback(),i.disconnectedCallback(),i}}var uv={after(){this.removeDuplicateTargetSiblings(),this.targetElements.forEac
18h(i=>i.parentElement?.insertBefore(this.templateContent,i.nextSibling))},append(){this.removeDuplicateTargetChildren(),this.targetElements.forEach(i=>i.append(this.templateContent))},before(){this.removeDuplicateTargetSiblings(),this.targetElements.forEach(i=>i.parentElement?.insertBefore(this.templateContent,i))},prepend(){this.removeDuplicateTargetChildren(),this.targetElements.forEach(i=>i.prepend(this.templateContent))},remove(){this.targetElements.forEach(i=>i.remove())},replace(){let i=this.getAttribute("method");this.targetElements.forEach(s=>{i==="morph"?Br(s,this.templateContent):s.replaceWith(this.templateContent)})},update(){let i=this.getAttribute("method");this.targetElements.forEach(s=>{i==="morph"?xn(s,this.templateContent):(s.innerHTML="",s.append(this.templateContent))})},refresh(){let i=this.getAttribute("method"),s=this.requestId,r=this.getAttribute("scroll");nt.refresh(this.baseURI,{method:i,requestId:s,scroll:r})}},Cn=class i extends HTMLElement{static async renderElement(s){await s.performAction()}async connectedCallback(){try{await this.render()}catch(s){console.error(s)}finally{this.disconnect()}}async render(){return this.renderPromise??=(async()=>{let s=this.beforeRenderEvent;this.dispatchEvent(s)&&(await Ar(),await s.detail.render(this))})()}disconnect(){try{this.remove()}catch{}}removeDuplicateTargetChildren(){this.duplicateChildren.forEach(s=>s.remove())}get duplicateChildren(){let s=this.targetElements.flatMap(a=>[...a.children]).filter(a=>!!a.getAttribute("id")),r=[...this.templateContent?.children||[]].filter(a=>!!a.getAttribute("id")).map(a=>a.getAttribute("id"));return s.filter(a=>r.includes(a.getAttribute("id")))}removeDuplicateTargetSiblings(){this.duplicateSiblings.forEach(s=>s.remove())}get duplicateSiblings(){let s=this.targetElements.flatMap(a=>[...a.parentElement.children]).filter(a=>!!a.id),r=[...this.templateContent?.children||[]].filter(a=>!!a.id).map(a=>a.id);return s.filter(a=>r.includes(a.id))}get performAction(){if(this.action){let s=uv[this.action];if(s)return s;this.#e("unknown action")}this.#e("action attribute is missing")}get targetElements(){if(this.target)return this.targetElementsById;if(this.targets)return this.targetElementsByQuery;this.#e("target or targets attribute is missing")}get templateContent(){return this.templateElement.content.cloneNode(!0)}get templateElement(){if(this.firstElementChild===null){let s=this.ownerDocument.createElement("template");return this.appendChild(s),s}else if(this.firstElementChild instanceof HTMLTemplateElement)return this.firstElementChild;this.#e("first child element must be a <template> element")}get action(){return this.getAttribute("action")}get target(){return this.getAttribute("target")}get targets(){return this.getAttribute("targets")}get requestId(){return this.getAttribute("request-id")}#e(s){throw new Error(`${this.description}: ${s}`)}get description(){return(this.outerHTML.match(/<[^>]+>/)??[])[0]??"<turbo-stream>"}get beforeRenderEvent(){return new CustomEvent("turbo:before-stream-render",{bubbles:!0,cancelable:!0,detail:{newStream:this,render:i.renderElement}})}get targetElementsById(){let s=this.ownerDocument?.getElementById(this.target);return s!==null?[s]:[]}get targetElementsByQuery(){let s=this.ownerDocument?.querySelectorAll(this.targets);return s.length!==0?Array.prototype.slice.call(s):[]}},En=class extends HTMLElement{streamSource=null;connectedCallback(){this.streamSource=this.src.match(/^ws{1,2}:/)?new WebSocket(this.src):new EventSource(this.src),Or(this.streamSource)}disconnectedCallback(){this.streamSource&&(this.streamSource.close(),Fr(this.streamSource))}get src(){return this.getAttribute("src")||""}};zt.delegateConstructor=nv;customElements.get("turbo-frame")===void 0&&customElements.define("turbo-frame",zt);customElements.get("turbo-stream")===void 0&&customElements.define("turbo-stream",Cn);customElements.get("turbo-stream-source")===void 0&&customElements.define("turbo-stream-source",En);(()=>{let i=document.currentScript;if(!i||i.hasAttribute("data-turbo-suppress-warning"))return;let s=i.parentElement;for(;s;){if(s==document.body)return console.warn(xy`
19        You are loading Turbo from a <script> element inside the <body> element. This is probably not what you meant to do!
20
21        Load your application’s JavaScript bundle inside the <head> element instead. <script> elements in <body> are evaluated with each page change.
22
23        For more information, see: https://turbo.hotwired.dev/handbook/building#working-with-script-elements
24
25        ——
26        Suppress this warning by adding a "data-turbo-suppress-warning" attribute to: %s
27      `,i.outerHTML);s=s.parentElement}})();window.Turbo={...gk,StreamActions:uv};dv();var aS;async function vk(){return aS||rS(Tk().then(rS))}function rS(i){return aS=i}async function Tk(){let{createConsumer:i}=await Promise.resolve().then(()=>(sS(),iS));return i()}async function nS(i,s){let{subscriptions:r}=await vk();return r.create(i,s)}function qr(i){return!i||typeof i!="object"||i instanceof Date||i instanceof RegExp?i:Array.isArray(i)?i.map(qr):Object.keys(i).reduce(function(s,r){var a=r[0].toLowerCase()+r.slice(1).replace(/([A-Z]+)/g,function(n,l){return"_"+l.toLowerCase()});return s[a]=qr(i[r]),s},{})}var wv=class extends HTMLElement{static observedAttributes=["channel","signed-stream-name"];async connectedCallback(){Or(this),this.subscription=await nS(this.channel,{received:this.dispatchMessageEvent.bind(this),connected:this.subscriptionConnected.bind(this),disconnected:this.subscriptionDisconnected.bind(this)})}disconnectedCallback(){Fr(this),this.subscription&&this.subscription.unsubscribe(),this.subscriptionDisconnected()}attributeChangedCallback(){this.subscription&&(this.disconnectedCallback(),this.connectedCallback())}dispatchMessageEvent(s){let r=new MessageEvent("message",{data:s});return this.dispatchEvent(r)}
27subscriptionConnected(){this.setAttribute("connected","")}subscriptionDisconnected(){this.removeAttribute("connected")}get channel(){let s=this.getAttribute("channel"),r=this.getAttribute("signed-stream-name");return{channel:s,signed_stream_name:r,...qr({...this.dataset})}}};customElements.get("turbo-cable-stream-source")===void 0&&customElements.define("turbo-cable-stream-source",wv);function oS(i){if(i.target instanceof HTMLFormElement){let{target:s,detail:{fetchOptions:r}}=i;s.addEventListener("turbo:submit-start",({detail:{formSubmission:{submitter:a}}})=>{let n=wk(r.body)?r.body:new URLSearchParams,l=yk(a,n,s);/get/i.test(l)||(/post/i.test(l)?n.delete("_method"):n.set("_method",l),r.method="post")},{once:!0})}}function yk(i,s,r){let a=Sk(i),n=s.get("_method"),l=r.getAttribute("method")||"get";return typeof a=="string"?a:typeof n=="string"?n:l}function Sk(i){return i instanceof HTMLButtonElement||i instanceof HTMLInputElement?i.name==="_method"?i.value:i.hasAttribute("formmethod")?i.formMethod:null:null}function wk(i){return i instanceof FormData||i instanceof URLSearchParams}window.Turbo=Be;addEventListener("turbo:before-fetch-request",oS);var Cv=class{constructor(s,r,a){this.eventTarget=s,this.eventName=r,this.eventOptions=a,this.unorderedBindings=new Set}connect(){this.eventTarget.addEventListener(this.eventName,this,this.eventOptions)}disconnect(){this.eventTarget.removeEventListener(this.eventName,this,this.eventOptions)}bindingConnected(s){this.unorderedBindings.add(s)}bindingDisconnected(s){this.unorderedBindings.delete(s)}handleEvent(s){let r=Ck(s);for(let a of this.bindings){if(r.immediatePropagationStopped)break;a.handleEvent(r)}}hasBindings(){return this.unorderedBindings.size>0}get bindings(){return Array.from(this.unorderedBindings).sort((s,r)=>{let a=s.index,n=r.index;return a<n?-1:a>n?1:0})}};function Ck(i){if("immediatePropagationStopped"in i)return i;{let{stopImmediatePropagation:s}=i;return Object.assign(i,{immediatePropagationStopped:!1,stopImmediatePropagation(){this.immediatePropagationStopped=!0,s.call(this)}})}}var Ev=class{constructor(s){this.application=s,this.eventListenerMaps=new Map,this.started=!1}start(){this.started||(this.started=!0,this.eventListeners.forEach(s=>s.connect()))}stop(){this.started&&(this.started=!1,this.eventListeners.forEach(s=>s.disconnect()))}get eventListeners(){return Array.from(this.eventListenerMaps.values()).reduce((s,r)=>
27s.concat(Array.from(r.values())),[])}bindingConnected(s){this.fetchEventListenerForBinding(s).bindingConnected(s)}bindingDisconnected(s,r=!1){this.fetchEventListenerForBinding(s).bindingDisconnected(s),r&&this.clearEventListenersForBinding(s)}handleError(s,r,a={}){this.application.handleError(s,`Error ${r}`,a)}clearEventListenersForBinding(s){let r=this.fetchEventListenerForBinding(s);r.hasBindings()||(r.disconnect(),this.removeMappedEventListenerFor(s))}removeMappedEventListenerFor(s){let{eventTarget:r,eventName:a,eventOptions:n}=s,l=this.fetchEventListenerMapForEventTarget(r),d=this.cacheKey(a,n);l.delete(d),l.size==0&&this.eventListenerMaps.delete(r)}fetchEventListenerForBinding(s){let{eventTarget:r,eventName:a,eventOptions:n}=s;return this.fetchEventListener(r,a,n)}fetchEventListener(s,r,a){let n=this.fetchEventListenerMapForEventTarget(s),l=this.cacheKey(r,a),d=n.get(l);return d||(d=this.createEventListener(s,r,a),n.set(l,d)),d}createEventListener(s,r,a){let n=new Cv(s,r,a);return this.started&&n.connect(),n}fetchEventListenerMapForEventTarget(s){let r=this.eventListenerMaps.get(s);return r||(r=new Map,this.eventListenerMaps.set(s,r)),r}cacheKey(s,r){let a=[s];return Object.keys(r).sort().forEach(n=>{a.push(`${r[n]?"":"!"}${n}`)}),a.join(":")}},Ek={stop({event:i,value:s}){return s&&i.stopPropagation(),!0},prevent({event:i,value:s}){return s&&i.preventDefault(),!0},self({event:i,value:s,element:r}){return s?r===i.target:!0}},Lk=/^(?:(?:([^.]+?)\+)?(.+?)(?:\.(.+?))?(?:@(window|document))?->)?(.+?)(?:#([^:]+?))(?::(.+))?$/;function kk(i){let r=i.trim().match(Lk)||[],a=r[2],n=r[3];return n&&!["keydown","keyup","keypress"].includes(a)&&(a+=`.${n}`,n=""),{eventTarget:xk(r[4]),eventName:a,eventOptions:r[7]?Ik(r[7]):{},identifier:r[5],methodName:r[6],keyFilter:r[1]||n}}function xk(i){if(i=="window")return window;if(i=="document")return document}function Ik(i){return i.split(":").reduce((s,r)=>Object.assign(s,{[r.replace(/^!/,"")]:!/^!/.test(r)}),{})}function Ak(i){if(i==window)return"window";if(i==document)return"document"}function jv(i){return i.replace(/(?:[_-])([a-z0-9])/g,(s,r)=>r.toUpperCase())}function Lv(i){return jv(i.replace(/--/g,"-").replace(/__/g,"_"))}function Gr(i){return i.charAt(0).toUpperCase()+i.slice(1)}function vS(i){return i.replace(/([A-Z])/g,(s,r)=>`-${r.toLowerCase()}`)}function Pk(i){return i.match(/[^\s]+/g)||[]}function lS(i){return i!=null}function kv(i,s){return Object.prototype.hasOwnProperty.call(i,s)}var hS=["meta","ctrl","alt","shift"],xv=class{constructor(s,r,a,n){this.element=s,this.index=r,this.eventTarget=a.eventTarget||s,this.eventName=a.eventName||Vk(s)||_n("missing event name"),this.eventOptions=a.eventOptions||{},this.identifier=a.identifier||_n("missing identifier"),this.methodName=a.methodName||_n("missing method name"),this.keyFilter=a.keyFilter||"",this.schema=n}static forToken(s,r){return new this(s.element,s.index,kk(s.content),r)}toString(){let s=this.keyFilter?`.${this.keyFilter}`:"",r=this.eventTargetName?`@${this.eventTargetName}`:"";return`${this.eventName}${s}${r}->${this.identifier}#${this.methodName}`}shouldIgnoreKeyboardEvent(s){if(!this.keyFilter)return!1;let r=this.keyFilter.split("+");if(this.keyFilterDissatisfied(s,r))return!0;let a=r.filter(n=>!hS.includes(n))[0];return a?(kv(this.keyMappings,a)||_n(`contains unknown key filter: ${this.keyFilter}`),this.keyMappings[a].toLowerCase()!==s.key.toLowerCase()):!1}shouldIgnoreMouseEvent(s){if(!this.keyFilter)return!1;let r=[this.keyFilter];return!!this.keyFilterDissatisfied(s,r)}get params(){let s={},r=new RegExp(`^data-${this.identifier}-(.+)-param$`,"i");for(let{name:a,value:n}of Array.from(this.element.attributes)){let l=a.match(r),d=l&&l[1];d&&(s[jv(d)]=Mk(n))}return s}get eventTargetName(){return Ak(this.eventTarget)}get keyMappings(){return this.schema.keyMappings}keyFilterDissatisfied(s,r){let[a,n,l,d]=hS.map(m=>r.includes(m));return s.metaKey!==a||s.ctrlKey!==n||s.altKey!==l||s.shiftKey!==d}},cS={a:()=>"click",button:()=>"click",form:()=>"submit",details:()=>"toggle",input:i=>i.getAttribute("type")=="submit"?"click":"input",select:()=>"change",textarea:()=>"input"};function Vk(i){let s=i.tagName.toLowerCase();if(s in cS)return cS[s](i)}function _n(i){throw new Error(i)}function Mk(i){try{return JSON.parse(i)}catch{return i}}var Iv=class{constructor(s,r){this.context=s,this.action=r}get index(){return this.action.index}get eventTarget(){return this.action.eventTarget}get eventOptions(){return this.action.eventOptions}
27get identifier(){return this.context.identifier}handleEvent(s){let r=this.prepareActionEvent(s);this.willBeInvokedByEvent(s)&&this.applyEventModifiers(r)&&this.invokeWithEvent(r)}get eventName(){return this.action.eventName}get method(){let s=this.controller[this.methodName];if(typeof s=="function")return s;throw new Error(`Action "${this.action}" references undefined method "${this.methodName}"`)}applyEventModifiers(s){let{element:r}=this.action,{actionDescriptorFilters:a}=this.context.application,{controller:n}=this.context,l=!0;for(let[d,m]of Object.entries(this.eventOptions))if(d in a){let v=a[d];l=l&&v({name:d,value:m,event:s,element:r,controller:n})}else continue;return l}prepareActionEvent(s){return Object.assign(s,{params:this.action.params})}invokeWithEvent(s){let{target:r,currentTarget:a}=s;try{this.method.call(this.controller,s),this.context.logDebugActivity(this.methodName,{event:s,target:r,currentTarget:a,action:this.methodName})}catch(n){let{identifier:l,controller:d,element:m,index:v}=this,E={identifier:l,controller:d,element:m,index:v,event:s};this.context.handleError(n,`invoking action "${this.action}"`,E)}}willBeInvokedByEvent(s){let r=s.target;return s instanceof KeyboardEvent&&this.action.shouldIgnoreKeyboardEvent(s)||s instanceof MouseEvent&&this.action.shouldIgnoreMouseEvent(s)?!1:this.element===r?!0:r instanceof Element&&this.element.contains(r)?this.scope.containsElement(r):this.scope.containsElement(this.action.element)}get controller(){return this.context.controller}get methodName(){return this.action.methodName}get element(){return this.scope.element}get scope(){return this.context.scope}},Bn=class{constructor(s,r){this.mutationObserverInit={attributes:!0,childList:!0,subtree:!0},this.element=s,this.started=!1,this.delegate=r,this.elements=new Set,this.mutationObserver=new MutationObserver(a=>this.processMutations(a))}start(){this.started||(this.started=!0,this.mutationObserver.observe(this.element,this.mutationObserverInit),this.refresh())}pause(s){this.started&&(this.mutationObserver.disconnect(),this.started=!1),s(),this.started||(this.mutationObserver.observe(this.element,this.mutationObserverInit),this.started=!0)}stop(){this.started&&(this.mutationObserver.takeRecords(),this.mutationObserver.disconnect(),this.started=!1)}refresh(){if(this.started){let s=new Set(this.matchElementsInTree());for(let r of Array.from(this.elements))s.has(r)||this.removeElement(r);for(let r of Array.from(s))this.addElement(r)}}processMutations(s){if(this.started)for(let r of s)this.processMutation(r)}processMutation(s){s.type=="attributes"?this.processAttributeChange(s.target,s.attributeName):s.type=="childList"&&(this.processRemovedNodes(s.removedNodes),this.processAddedNodes(s.addedNodes))}processAttributeChange(s,r){this.elements.has(s)?this.delegate.elementAttributeChanged&&this.matchElement(s)?this.delegate.elementAttributeChanged(s,r):this.removeElement(s):this.matchElement(s)&&this.addElement(s)}processRemovedNodes(s){for(let r of Array.from(s)){let a=this.elementFromNode(r);a&&this.processTree(a,this.removeElement)}}processAddedNodes(s){for(let r of Array.from(s)){let a=this.elementFromNode(r);a&&this.elementIsActive(a)&&this.processTree(a,this.addElement)}}matchElement(s){return this.delegate.matchElement(s)}matchElementsInTree(s=this.element){return this.delegate.matchElementsInTree(s)}processTree(s,r){for(let a of this.matchElementsInTree(s))r.call(this,a)}elementFromNode(s){if(s.nodeType==Node.ELEMENT_NODE)return s}elementIsActive(s){return s.isConnected!=this.element.isConnected?!1:this.element.contains(s)}addElement(s){this.elements.has(s)||this.elementIsActive(s)&&(this.elements.add(s),this.delegate.elementMatched&&this.delegate.elementMatched(s))}removeElement(s){this.elements.has(s)&&(this.elements.delete(s),this.delegate.elementUnmatched&&this.delegate.elementUnmatched(s))}},On=class{constructor(s,r,a){this.attributeName=r,this.delegate=a,this.elementObserver=new Bn(s,this)}get element(){return this.elementObserver.element}get selector(){return`[${this.attributeName}]`}start(){this.elementObserver.start()}pause(s){this.elementObserver.pause(s)}stop(){this.elementObserver.stop()}refresh(){this.elementObserver.refresh()}get started(){return this.elementObserver.started}matchElement(s){return s.hasAttribute(this.attributeName)}matchElementsInTree(s){let r=this.matchElement(s)?[s]:[],a=Array.from(s.querySelectorAll(this.selector));return r.concat(a)}elementMatched(s){this.delegate.elementMatchedAttribute&&this.delegate.elementMatchedAttribute(s,this.attributeName)}elementUnmatched(s){this.delegate.elementUnmatchedAttribute&&this.delegate.elementUnmatchedAttribute(s,this.attributeName)}elementAttributeChanged(s,r){this.delegate.elementAttributeValueChanged&&this.attributeName==r&&this.delegate.elementAttributeValueChanged(s,r)}};function _k(i,s,r){TS(i,s).add(r)}function Bk(i,s,r){TS(i,s).delete(r),Ok(i,s)}function TS(i,s){let r=i.get(s);return r||(r=new Set,i.set(s,r)),r}function Ok(i,s){let r=i.get(s);r!=null&&r.size==0&&i.delete(s)}var Pi=class{constructor(){this.valuesByKey=new Map}get keys(){return Array.from(this.valuesByKey.keys())}get values(){return Array.from(this.valuesByKey.values()).reduce((r,a)=>r.concat(Array.from(a)),[])}get size(){return Array.from(this.valuesByKey.values()).reduce((r,a)=>r+a.size,0)}add(s,r){_k(this.valuesByKey,s,r)}delete(s,r){Bk(this.valuesByKey,s,r)}has(s,r){let a=this.valuesByKey.get(s);return a!=null&&a.has(r)}hasKey(s){return this.valuesByKey.has(s)}hasValue(s){return Array.from(this.valuesByKey.values()).some(a=>a.has(s))}getValuesForKey(s){let r=this.valuesByKey.get(s);return r?Array.from(r):[]}getKeysForValue(s){return Array.from(this.valuesByKey).filter(([r,a])=>a.has(s)).map(([r,a])=>r)}};var Av=class{constructor(s,r,a,n){this._selector=r,this.details=n,this.elementObserver=new Bn(s,this),this.delegate=a,this.matchesByElement=new Pi}get started(){return this.elementObserver.started}get selector(){return this._selector}set selector(s){this._selector=s,this.refresh()}start(){this.elementObserver.start()}pause(s){this.elementObserver.pause(s)}stop(){this.elementObserver.stop()}refresh(){this.elementObserver.refresh()}
27get element(){return this.elementObserver.element}matchElement(s){let{selector:r}=this;if(r){let a=s.matches(r);return this.delegate.selectorMatchElement?a&&this.delegate.selectorMatchElement(s,this.details):a}else return!1}matchElementsInTree(s){let{selector:r}=this;if(r){let a=this.matchElement(s)?[s]:[],n=Array.from(s.querySelectorAll(r)).filter(l=>this.matchElement(l));return a.concat(n)}else return[]}elementMatched(s){let{selector:r}=this;r&&this.selectorMatched(s,r)}elementUnmatched(s){let r=this.matchesByElement.getKeysForValue(s);for(let a of r)this.selectorUnmatched(s,a)}elementAttributeChanged(s,r){let{selector:a}=this;if(a){let n=this.matchElement(s),l=this.matchesByElement.has(a,s);n&&!l?this.selectorMatched(s,a):!n&&l&&this.selectorUnmatched(s,a)}}selectorMatched(s,r){this.delegate.selectorMatched(s,r,this.details),this.matchesByElement.add(r,s)}selectorUnmatched(s,r){this.delegate.selectorUnmatched(s,r,this.details),this.matchesByElement.delete(r,s)}},Pv=class{constructor(s,r){this.element=s,this.delegate=r,this.started=!1,this.stringMap=new Map,this.mutationObserver=new MutationObserver(a=>this.processMutations(a))}start(){this.started||(this.started=!0,this.mutationObserver.observe(this.element,{attributes:!0,attributeOldValue:!0}),this.refresh())}stop(){this.started&&(this.mutationObserver.takeRecords(),this.mutationObserver.disconnect(),this.started=!1)}refresh(){if(this.started)for(let s of this.knownAttributeNames)this.refreshAttribute(s,null)}processMutations(s){if(this.started)for(let r of s)this.processMutation(r)}processMutation(s){let r=s.attributeName;r&&this.refreshAttribute(r,s.oldValue)}refreshAttribute(s,r){let a=this.delegate.getStringMapKeyForAttribute(s);if(a!=null){this.stringMap.has(s)||this.stringMapKeyAdded(a,s);let n=this.element.getAttribute(s);if(this.stringMap.get(s)!=n&&this.stringMapValueChanged(n,a,r),n==null){let l=this.stringMap.get(s);this.stringMap.delete(s),l&&this.stringMapKeyRemoved(a,s,l)}else this.stringMap.set(s,n)}}stringMapKeyAdded(s,r){this.delegate.stringMapKeyAdded&&this.delegate.stringMapKeyAdded(s,r)}stringMapValueChanged(s,r,a){this.delegate.stringMapValueChanged&&this.delegate.stringMapValueChanged(s,r,a)}stringMapKeyRemoved(s,r,a){this.delegate.stringMapKeyRemoved&&this.delegate.stringMapKeyRemoved(s,r,a)}get knownAttributeNames(){return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)))}get currentAttributeNames(){return Array.from(this.element.attributes).map(s=>s.name)}get recordedAttributeNames(){return Array.from(this.stringMap.keys())}},Fn=class{constructor(s,r,a){this.attributeObserver=new On(s,r,this),this.delegate=a,this.tokensByElement=new Pi}get started(){return this.attributeObserver.started}start(){this.attributeObserver.start()}pause(s){this.attributeObserver.pause(s)}stop(){this.attributeObserver.stop()}refresh(){this.attributeObserver.refresh()}get element(){return this.attributeObserver.element}get attributeName(){return this.attributeObserver.attributeName}elementMatchedAttribute(s){this.tokensMatched(this.readTokensForElement(s))}elementAttributeValueChanged(s){let[r,a]=this.refreshTokensForElement(s);this.tokensUnmatched(r),this.tokensMatched(a)}elementUnmatchedAttribute(s){this.tokensUnmatched(this.tokensByElement.getValuesForKey(s))}tokensMatched(s){s.forEach(r=>this.tokenMatched(r))}tokensUnmatched(s){s.forEach(r=>this.tokenUnmatched(r))}tokenMatched(s){this.delegate.tokenMatched(s),this.tokensByElement.add(s.element,s)}tokenUnmatched(s){this.delegate.tokenUnmatched(s),this.tokensByElement.delete(s.element,s)}refreshTokensForElement(s){let r=this.tokensByElement.getValuesForKey(s),a=this.readTokensForElement(s),n=Dk(r,a).findIndex(([l,d])=>!Rk(l,d));return n==-1?[[],[]]:[r.slice(n),a.slice(n)]}readTokensForElement(s){let r=this.attributeName,a=s.getAttribute(r)||"";return Fk(a,s,r)}};function Fk(i,s,r){return i.trim().split(/\s+/).filter(a=>a.length).map((a,n)=>({element:s,attributeName:r,content:a,index:n}))}function Dk(i,s){let r=Math.max(i.length,s.length);return Array.from({length:r},(a,n)=>[i[n],s[n]])}function Rk(i,s){return i&&s&&i.index==s.index&&i.content==s.content}var Dn=class{constructor(s,r,a){this.tokenListObserver=new Fn(s,r,this),this.delegate=a,this.parseResultsByToken=new WeakMap,this.valuesByTokenByElement=new WeakMap}get started(){return this.tokenListObserver.started}start(){this.tokenListObserver.start()}stop(){this.tokenListObserver.stop()}refresh(){this.tokenListObserver.refresh()}
27get element(){return this.tokenListObserver.element}get attributeName(){return this.tokenListObserver.attributeName}tokenMatched(s){let{element:r}=s,{value:a}=this.fetchParseResultForToken(s);a&&(this.fetchValuesByTokenForElement(r).set(s,a),this.delegate.elementMatchedValue(r,a))}tokenUnmatched(s){let{element:r}=s,{value:a}=this.fetchParseResultForToken(s);a&&(this.fetchValuesByTokenForElement(r).delete(s),this.delegate.elementUnmatchedValue(r,a))}fetchParseResultForToken(s){let r=this.parseResultsByToken.get(s);return r||(r=this.parseToken(s),this.parseResultsByToken.set(s,r)),r}fetchValuesByTokenForElement(s){let r=this.valuesByTokenByElement.get(s);return r||(r=new Map,this.valuesByTokenByElement.set(s,r)),r}parseToken(s){try{return{value:this.delegate.parseValueForToken(s)}}catch(r){return{error:r}}}},Vv=class{constructor(s,r){this.context=s,this.delegate=r,this.bindingsByAction=new Map}start(){this.valueListObserver||(this.valueListObserver=new Dn(this.element,this.actionAttribute,this),this.valueListObserver.start())}stop(){this.valueListObserver&&(this.valueListObserver.stop(),delete this.valueListObserver,this.disconnectAllActions())}get element(){return this.context.element}get identifier(){return this.context.identifier}get actionAttribute(){return this.schema.actionAttribute}get schema(){return this.context.schema}get bindings(){return Array.from(this.bindingsByAction.values())}connectAction(s){let r=new Iv(this.context,s);this.bindingsByAction.set(s,r),this.delegate.bindingConnected(r)}disconnectAction(s){let r=this.bindingsByAction.get(s);r&&(this.bindingsByAction.delete(s),this.delegate.bindingDisconnected(r))}
27disconnectAllActions(){this.bindings.forEach(s=>this.delegate.bindingDisconnected(s,!0)),this.bindingsByAction.clear()}parseValueForToken(s){let r=xv.forToken(s,this.schema);if(r.identifier==this.identifier)return r}elementMatchedValue(s,r){this.connectAction(r)}elementUnmatchedValue(s,r){this.disconnectAction(r)}},Mv=class{constructor(s,r){this.context=s,this.receiver=r,this.stringMapObserver=new Pv(this.element,this),this.valueDescriptorMap=this.controller.valueDescriptorMap}start(){this.stringMapObserver.start(),this.invokeChangedCallbacksForDefaultValues()}stop(){this.stringMapObserver.stop()}get element(){return this.context.element}get controller(){return this.context.controller}getStringMapKeyForAttribute(s){if(s in this.valueDescriptorMap)return this.valueDescriptorMap[s].name}stringMapKeyAdded(s,r){let a=this.valueDescriptorMap[r];this.hasValue(s)||this.invokeChangedCallback(s,a.writer(this.receiver[s]),a.writer(a.defaultValue))}stringMapValueChanged(s,r,a){let n=this.valueDescriptorNameMap[r];s!==null&&(a===null&&(a=n.writer(n.defaultValue)),this.invokeChangedCallback(r,s,a))}stringMapKeyRemoved(s,r,a){let n=this.valueDescriptorNameMap[s];this.hasValue(s)?this.invokeChangedCallback(s,n.writer(this.receiver[s]),a):this.invokeChangedCallback(s,n.writer(n.defaultValue),a)}invokeChangedCallbacksForDefaultValues(){for(let{key:s,name:r,defaultValue:a,writer:n}of this.valueDescriptors)a!=null&&!this.controller.data.has(s)&&this.invokeChangedCallback(r,n(a),void 0)}invokeChangedCallback(s,r,a){let n=`${s}Changed`,l=this.receiver[n];if(typeof l=="function"){let d=this.valueDescriptorNameMap[s];try{let m=d.reader(r),v=a;a&&(v=d.reader(a)),l.call(this.receiver,m,v)}catch(m){throw m instanceof TypeError&&(m.message=`Stimulus Value "${this.context.identifier}.${d.name}" - ${m.message}`),m}}}get valueDescriptors(){let{valueDescriptorMap:s}=this;return Object.keys(s).map(r=>s[r])}get valueDescriptorNameMap(){let s={};return Object.keys(this.valueDescriptorMap).forEach(r=>{let a=this.valueDescriptorMap[r];s[a.name]=a}),s}hasValue(s){let r=this.valueDescriptorNameMap[s],a=`has${Gr(r.name)}`;return this.receiver[a]}},_v=class{constructor(s,r){this.context=s,this.delegate=r,this.targetsByName=new Pi}start(){this.tokenListObserver||(this.tokenListObserver=new Fn(this.element,this.attributeName,this),this.tokenListObserver.start())}stop(){this.tokenListObserver&&(this.disconnectAllTargets(),this.tokenListObserver.stop(),delete this.tokenListObserver)}tokenMatched({element:s,content:r}){this.scope.containsElement(s)&&this.connectTarget(s,r)}tokenUnmatched({element:s,content:r}){this.disconnectTarget(s,r)}connectTarget(s,r){var a;this.targetsByName.has(r,s)||(this.targetsByName.add(r,s),(a=this.tokenListObserver)===null||a===void 0||a.pause(()=>this.delegate.targetConnected(s,r)))}disconnectTarget(s,r){var a;this.targetsByName.has(r,s)&&(this.targetsByName.delete(r,s),(a=this.tokenListObserver)===null||a===void 0||a.pause(()=>this.delegate.targetDisconnected(s,r)))}disconnectAllTargets(){for(let s of this.targetsByName.keys)for(let r of this.targetsByName.getValuesForKey(s))this.disconnectTarget(r,s)}get attributeName(){return`data-${this.context.identifier}-target`}get element(){return this.context.element}get scope(){return this.context.scope}};function Wr(i,s){let r=bS(i);return Array.from(r.reduce((a,n)=>(Uk(n,s).forEach(l=>a.add(l)),a),new Set))}function Nk(i,s){return bS(i).reduce((a,n)=>(a.push(...Hk(n,s)),a),[])}function bS(i){let s=[];for(;i;)s.push(i),i=Object.getPrototypeOf(i);return s.reverse()}function Uk(i,s){let r=i[s];return Array.isArray(r)?r:[]}function Hk(i,s){let r=i[s];return r?Object.keys(r).map(a=>[a,r[a]]):[]}var Bv=class{constructor(s,r){this.started=!1,this.context=s,this.delegate=r,this.outletsByName=new Pi,this.outletElementsByName=new Pi,this.selectorObserverMap=new Map,this.attributeObserverMap=new Map}start(){this.started||(this.outletDefinitions.forEach(s=>{this.setupSelectorObserverForOutlet(s),this.setupAttributeObserverForOutlet(s)}
27),this.started=!0,this.dependentContexts.forEach(s=>s.refresh()))}refresh(){this.selectorObserverMap.forEach(s=>s.refresh()),this.attributeObserverMap.forEach(s=>s.refresh())}stop(){this.started&&(this.started=!1,this.disconnectAllOutlets(),this.stopSelectorObservers(),this.stopAttributeObservers())}stopSelectorObservers(){this.selectorObserverMap.size>0&&(this.selectorObserverMap.forEach(s=>s.stop()),this.selectorObserverMap.clear())}stopAttributeObservers(){this.attributeObserverMap.size>0&&(this.attributeObserverMap.forEach(s=>s.stop()),this.attributeObserverMap.clear())}selectorMatched(s,r,{outletName:a}){let n=this.getOutlet(s,a);n&&this.connectOutlet(n,s,a)}selectorUnmatched(s,r,{outletName:a}){let n=this.getOutletFromMap(s,a);n&&this.disconnectOutlet(n,s,a)}selectorMatchElement(s,{outletName:r}){let a=this.selector(r),n=this.hasOutlet(s,r),l=s.matches(`[${this.schema.controllerAttribute}~=${r}]`);return a?n&&l&&s.matches(a):!1}elementMatchedAttribute(s,r){let a=this.getOutletNameFromOutletAttributeName(r);a&&this.updateSelectorObserverForOutlet(a)}elementAttributeValueChanged(s,r){let a=this.getOutletNameFromOutletAttributeName(r);a&&this.updateSelectorObserverForOutlet(a)}elementUnmatchedAttribute(s,r){let a=this.getOutletNameFromOutletAttributeName(r);a&&this.updateSelectorObserverForOutlet(a)}connectOutlet(s,r,a){var n;this.outletElementsByName.has(a,r)||(this.outletsByName.add(a,s),this.outletElementsByName.add(a,r),(n=this.selectorObserverMap.get(a))===null||n===void 0||n.pause(()=>this.delegate.outletConnected(s,r,a)))}disconnectOutlet(s,r,a){var n;this.outletElementsByName.has(a,r)&&(this.outletsByName.delete(a,s),this.outletElementsByName.delete(a,r),(n=this.selectorObserverMap.get(a))===null||n===void 0||n.pause(()=>this.delegate.outletDisconnected(s,r,a)))}disconnectAllOutlets(){for(let s of this.outletElementsByName.keys)for(let r of this.outletElementsByName.getValuesForKey(s))for(let a of this.outletsByName.getValuesForKey(s))this.disconnectOutlet(a,r,s)}updateSelectorObserverForOutlet(s){let r=this.selectorObserverMap.get(s);r&&(r.selector=this.selector(s))}setupSelectorObserverForOutlet(s){let r=this.selector(s),a=new Av(document.body,r,this,{outletName:s});this.selectorObserverMap.set(s,a),a.start()}setupAttributeObserverForOutlet(s){let r=this.attributeNameForOutletName(s),a=new On(this.scope.element,r,this);this.attributeObserverMap.set(s,a),a.start()}selector(s){return this.scope.outlets.getSelectorForOutletName(s)}attributeNameForOutletName(s){return this.scope.schema.outletAttributeForScope(this.identifier,s)}getOutletNameFromOutletAttributeName(s){return this.outletDefinitions.find(r=>this.attributeNameForOutletName(r)===s)}get outletDependencies(){let s=new Pi;return this.router.modules.forEach(r=>{let a=r.definition.controllerConstructor;Wr(a,"outlets").forEach(l=>s.add(l,r.identifier))}),s}get outletDefinitions(){return this.outletDependencies.getKeysForValue(this.identifier)}get dependentControllerIdentifiers(){return this.outletDependencies.getValuesForKey(this.identifier)}get dependentContexts(){let s=this.dependentControllerIdentifiers;return this.router.contexts.filter(r=>s.includes(r.identifier))}hasOutlet(s,r){return!!this.getOutlet(s,r)||!!this.getOutletFromMap(s,r)}getOutlet(s,r){return this.application.getControllerForElementAndIdentifier(s,r)}getOutletFromMap(s,r){return this.outletsByName.getValuesForKey(r).find(a=>a.element===s)}get scope(){return this.context.scope}get schema(){return this.context.schema}get identifier(){return this.context.identifier}get application(){return this.context.application}get router(){return this.application.router}},Ov=class{constructor(s,r){this.logDebugActivity=(a,n={})=>{let{identifier:l,controller:d,element:m}=this;n=Object.assign({identifier:l,controller:d,element:m},n),this.application.logDebugActivity(this.identifier,a,n)},this.module=s,this.scope=r,this.controller=new s.controllerConstructor(this),this.bindingObserver=new Vv(this,this.dispatcher),this.valueObserver=new Mv(this,this.controller),this.targetObserver=new _v(this,this),this.outletObserver=new Bv(this,this);try{this.controller.initialize(),this.logDebugActivity("initialize")}catch(a){this.handleError(a,"initializing controller")}}connect(){this.bindingObserver.start(),this.valueObserver.start(),this.targetObserver.start(),this.outletObserver.start();try{this.controller.connect(),this.logDebugActivity("connect")}catch(s){this.handleError(s,"connecting controller")}}refresh(){this.outletObserver.refresh()}disconnect(){try{this.controller.disconnect(),this.logDebugActivity("disconnect")}catch(s){this.handleError(s,"disconnecting controller")}this.outletObserver.stop(),this.targetObserver.stop(),this.valueObserver.stop(),this.bindingObserver.stop()}get application(){return this.module.application}get identifier(){return this.module.identifier}get schema(){return this.application.schema}get dispatcher(){return this.application.dispatcher}
27get element(){return this.scope.element}get parentElement(){return this.element.parentElement}handleError(s,r,a={}){let{identifier:n,controller:l,element:d}=this;a=Object.assign({identifier:n,controller:l,element:d},a),this.application.handleError(s,`Error ${r}`,a)}targetConnected(s,r){this.invokeControllerMethod(`${r}TargetConnected`,s)}targetDisconnected(s,r){this.invokeControllerMethod(`${r}TargetDisconnected`,s)}outletConnected(s,r,a){this.invokeControllerMethod(`${Lv(a)}OutletConnected`,s,r)}outletDisconnected(s,r,a){this.invokeControllerMethod(`${Lv(a)}OutletDisconnected`,s,r)}invokeControllerMethod(s,...r){let a=this.controller;typeof a[s]=="function"&&a[s](...r)}};function qk(i){return $k(i,Gk(i))}function $k(i,s){let r=zk(i),a=Wk(i.prototype,s);return Object.defineProperties(r.prototype,a),r}function Gk(i){return Wr(i,"blessings").reduce((r,a)=>{let n=a(i);for(let l in n){let d=r[l]||{};r[l]=Object.assign(d,n[l])}return r},{})}function Wk(i,s){return Kk(s).reduce((r,a)=>{let n=jk(i,s,a);return n&&Object.assign(r,{[a]:n}),r},{})}function jk(i,s,r){let a=Object.getOwnPropertyDescriptor(i,r);if(!(a&&"value"in a)){let l=Object.getOwnPropertyDescriptor(s,r).value;return a&&(l.get=a.get||l.get,l.set=a.set||l.set),l}}var Kk=typeof Object.getOwnPropertySymbols=="function"?i=>[...Object.getOwnPropertyNames(i),...Object.getOwnPropertySymbols(i)]:Object.getOwnPropertyNames,zk=(()=>{function i(r){function a(){return Reflect.construct(r,arguments,new.target)}return a.prototype=Object.create(r.prototype,{constructor:{value:a}}),Reflect.setPrototypeOf(a,r),a}function s(){let a=i(function(){this.a.call(this)});return a.prototype.a=function(){},new a}try{return s(),i}catch{return a=>class extends a{}}})();function Yk(i){return{identifier:i.identifier,controllerConstructor:qk(i.controllerConstructor)}}var Fv=class{constructor(s,r){this.application=s,this.definition=Yk(r),this.contextsByScope=new WeakMap,this.connectedContexts=new Set}get identifier(){return this.definition.identifier}get controllerConstructor(){return this.definition.controllerConstructor}get contexts(){return Array.from(this.connectedContexts)}connectContextForScope(s){let r=this.fetchContextForScope(s);this.connectedContexts.add(r),r.connect()}disconnectContextForScope(s){let r=this.contextsByScope.get(s);r&&(this.connectedContexts.delete(r),r.disconnect())}fetchContextForScope(s){let r=this.contextsByScope.get(s);return r||(r=new Ov(this,s),this.contextsByScope.set(s,r)),r}},Dv=class{constructor(s){this.scope=s}has(s){return this.data.has(this.getDataKey(s))}get(s){return this.getAll(s)[0]}getAll(s){let r=this.data.get(this.getDataKey(s))||"";return Pk(r)}getAttributeName(s){return this.data.getAttributeNameForKey(this.getDataKey(s))}getDataKey(s){return`${s}-class`}get data(){return this.scope.data}},Rv=class{constructor(s){this.scope=s}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get(s){let r=this.getAttributeNameForKey(s);return this.element.getAttribute(r)}set(s,r){let a=this.getAttributeNameForKey(s);return this.element.setAttribute(a,r),this.get(s)}has(s){let r=this.getAttributeNameForKey(s);return this.element.hasAttribute(r)}delete(s){if(this.has(s)){let r=this.getAttributeNameForKey(s);return this.element.removeAttribute(r),!0}else return!1}getAttributeNameForKey(s){return`data-${this.identifier}-${vS(s)}`}},Nv=class{constructor(s){this.warnedKeysByObject=new WeakMap,this.logger=s}warn(s,r,a){let n=this.warnedKeysByObject.get(s);n||(n=new Set,this.warnedKeysByObject.set(s,n)),n.has(r)||(n.add(r),this.logger.warn(a,s))}};function Uv(i,s){return`[${i}~="${s}"]`}var Hv=class{constructor(s){this.scope=s}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get schema(){return this.scope.schema}has(s){return this.find(s)!=null}find(...s){return s.reduce((r,a)=>r||this.findTarget(a)||this.findLegacyTarget(a),void 0)}findAll(...s){return s.reduce((r,a)=>[...r,...this.findAllTargets(a),...this.findAllLegacyTargets(a)],[])}findTarget(s){let r=this.getSelectorForTargetName(s);return this.scope.findElement(r)}findAllTargets(s){let r=this.getSelectorForTargetName(s);return this.scope.findAllElements(r)}getSelectorForTargetName(s){let r=this.schema.targetAttributeForScope(this.identifier);return Uv(r,s)}findLegacyTarget(s){let r=this.getLegacySelectorForTargetName(s);return this.deprecate(this.scope.findElement(r),s)}findAllLegacyTargets(s){let r=this.getLegacySelectorForTargetName(s);return this.scope.findAllElements(r).map(a=>this.deprecate(a,s))}getLegacySelectorForTargetName(s){let r=`${this.identifier}.${s}`;return Uv(this.schema.targetAttribute,r)}deprecate(s,r){if(s){let{identifier:a}=this,n=this.schema.targetAttribute,l=this.schema.targetAttributeForScope(a);this.guide.warn(s,`target:${r}`,`Please replace ${n}="${a}.${r}" with ${l}="${r}". The ${n} attribute is deprecated and will be removed in a future version of Stimulus.`)}return s}get guide(){return this.scope.guide}},qv=class{constructor(s,r){this.scope=s,this.controllerElement=r}
27get element(){return this.scope.element}get identifier(){return this.scope.identifier}get schema(){return this.scope.schema}has(s){return this.find(s)!=null}find(...s){return s.reduce((r,a)=>r||this.findOutlet(a),void 0)}findAll(...s){return s.reduce((r,a)=>[...r,...this.findAllOutlets(a)],[])}getSelectorForOutletName(s){let r=this.schema.outletAttributeForScope(this.identifier,s);return this.controllerElement.getAttribute(r)}findOutlet(s){let r=this.getSelectorForOutletName(s);if(r)return this.findElement(r,s)}findAllOutlets(s){let r=this.getSelectorForOutletName(s);return r?this.findAllElements(r,s):[]}findElement(s,r){return this.scope.queryElements(s).filter(n=>this.matchesElement(n,s,r))[0]}findAllElements(s,r){return this.scope.queryElements(s).filter(n=>this.matchesElement(n,s,r))}matchesElement(s,r,a){let n=s.getAttribute(this.scope.schema.controllerAttribute)||"";return s.matches(r)&&n.split(" ").includes(a)}},$v=class i{constructor(s,r,a,n){this.targets=new Hv(this),this.classes=new Dv(this),this.data=new Rv(this),this.containsElement=l=>l.closest(this.controllerSelector)===this.element,this.schema=s,this.element=r,this.identifier=a,this.guide=new Nv(n),this.outlets=new qv(this.documentScope,r)}findElement(s){return this.element.matches(s)?this.element:this.queryElements(s).find(this.containsElement)}findAllElements(s){return[...this.element.matches(s)?[this.element]:[],...this.queryElements(s).filter(this.containsElement)]}queryElements(s){return Array.from(this.element.querySelectorAll(s))}get controllerSelector(){return Uv(this.schema.controllerAttribute,this.identifier)}get isDocumentScope(){return this.element===document.documentElement}get documentScope(){return this.isDocumentScope?this:new i(this.schema,document.documentElement,this.identifier,this.guide.logger)}},Gv=class{constructor(s,r,a){this.element=s,this.schema=r,this.delegate=a,this.valueListObserver=new Dn(this.element,this.controllerAttribute,this),this.scopesByIdentifierByElement=new WeakMap,this.scopeReferenceCounts=new WeakMap}start(){this.valueListObserver.start()}stop(){this.valueListObserver.stop()}get controllerAttribute(){return this.schema.controllerAttribute}parseValueForToken(s){let{element:r,content:a}=s;return this.parseValueForElementAndIdentifier(r,a)}parseValueForElementAndIdentifier(s,r){let a=this.fetchScopesByIdentifierForElement(s),n=a.get(r);return n||(n=this.delegate.createScopeForElementAndIdentifier(s,r),a.set(r,n)),n}elementMatchedValue(s,r){let a=(this.scopeReferenceCounts.get(r)||0)+1;this.scopeReferenceCounts.set(r,a),a==1&&this.delegate.scopeConnected(r)}elementUnmatchedValue(s,r){let a=this.scopeReferenceCounts.get(r);a&&(this.scopeReferenceCounts.set(r,a-1),a==1&&this.delegate.scopeDisconnected(r))}fetchScopesByIdentifierForElement(s){let r=this.scopesByIdentifierByElement.get(s);return r||(r=new Map,this.scopesByIdentifierByElement.set(s,r)),r}},Wv=class{constructor(s){this.application=s,this.scopeObserver=new Gv(this.element,this.schema,this),this.scopesByIdentifier=new Pi,this.modulesByIdentifier=new Map}get element(){return this.application.element}get schema(){return this.application.schema}get logger(){return this.application.logger}get controllerAttribute(){return this.schema.controllerAttribute}get modules(){return Array.from(this.modulesByIdentifier.values())}get contexts(){return this.modules.reduce((s,r)=>s.concat(r.contexts),[])}start(){this.scopeObserver.start()}stop(){this.scopeObserver.stop()}loadDefinition(s){this.unloadIdentifier(s.identifier);let r=new Fv(this.application,s);this.connectModule(r);let a=s.controllerConstructor.afterLoad;a&&a.call(s.controllerConstructor,s.identifier,this.application)}unloadIdentifier(s){let r=this.modulesByIdentifier.get(s);r&&this.disconnectModule(r)}getContextForElementAndIdentifier(s,r){let a=this.modulesByIdentifier.get(r);if(a)return a.contexts.find(n=>n.element==s)}proposeToConnectScopeForElementAndIdentifier(s,r){let a=this.scopeObserver.parseValueForElementAndIdentifier(s,r);a?this.scopeObserver.elementMatchedValue(a.element,a):console.error(`Couldn't find or create scope for identifier: "${r}" and element:`,s)}handleError(s,r,a){this.application.handleError(s,r,a)}createScopeForElementAndIdentifier(s,r){return new $v(this.schema,s,r,this.logger)}scopeConnected(s){this.scopesByIdentifier.add(s.identifier,s);let r=this.modulesByIdentifier.get(s.identifier);r&&r.connectContextForScope(s)}scopeDisconnected(s){this.scopesByIdentifier.delete(s.identifier,s);let r=this.modulesByIdentifier.get(s.identifier);r&&r.disconnectContextForScope(s)}connectModule(s){this.modulesByIdentifier.set(s.identifier,s),this.scopesByIdentifier.getValuesForKey(s.identifier).forEach(a=>s.connectContextForScope(a))}disconnectModule(s){this.modulesByIdentifier.delete(s.identifier),this.scopesByIdentifier.getValuesForKey(s.identifier).forEach(a=>s.disconnectContextForScope(a))}},Xk={controllerAttribute:"data-controller",actionAttribute:"data-action",targetAttribute:"data-target",targetAttributeForScope:i=>`data-${i}-target`,outletAttributeForScope:(i,s)=>`data-${i}-${s}
27-outlet`,keyMappings:Object.assign(Object.assign({enter:"Enter",tab:"Tab",esc:"Escape",space:" ",up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight",home:"Home",end:"End",page_up:"PageUp",page_down:"PageDown"},dS("abcdefghijklmnopqrstuvwxyz".split("").map(i=>[i,i]))),dS("0123456789".split("").map(i=>[i,i])))};function dS(i){return i.reduce((s,[r,a])=>Object.assign(Object.assign({},s),{[r]:a}),{})}var Rn=class{constructor(s=document.documentElement,r=Xk){this.logger=console,this.debug=!1,this.logDebugActivity=(a,n,l={})=>{this.debug&&this.logFormattedMessage(a,n,l)},this.element=s,this.schema=r,this.dispatcher=new Ev(this),this.router=new Wv(this),this.actionDescriptorFilters=Object.assign({},Ek)}static start(s,r){let a=new this(s,r);return a.start(),a}async start(){await Qk(),this.logDebugActivity("application","starting"),this.dispatcher.start(),this.router.start(),this.logDebugActivity("application","start")}stop(){this.logDebugActivity("application","stopping"),this.dispatcher.stop(),this.router.stop(),this.logDebugActivity("application","stop")}register(s,r){this.load({identifier:s,controllerConstructor:r})}registerActionOption(s,r){this.actionDescriptorFilters[s]=r}load(s,...r){(Array.isArray(s)?s:[s,...r]).forEach(n=>{n.controllerConstructor.shouldLoad&&this.router.loadDefinition(n)})}unload(s,...r){(Array.isArray(s)?s:[s,...r]).forEach(n=>this.router.unloadIdentifier(n))}get controllers(){return this.router.contexts.map(s=>s.controller)}getControllerForElementAndIdentifier(s,r){let a=this.router.getContextForElementAndIdentifier(s,r);return a?a.controller:null}handleError(s,r,a){var n;this.logger.error(`%s
28
29%o
30
31%o`,r,s,a),(n=window.onerror)===null||n===void 0||n.call(window,r,"",0,0,s)}logFormattedMessage(s,r,a={}){a=Object.assign({application:this},a),this.logger.groupCollapsed(`${s} #${r}`),this.logger.log("details:",Object.assign({},a)),this.logger.groupEnd()}};function Qk(){return new Promise(i=>{document.readyState=="loading"?document.addEventListener("DOMContentLoaded",()=>i()):i()})}function Jk(i){return Wr(i,"classes").reduce((r,a)=>Object.assign(r,Zk(a)),{})}function Zk(i){return{[`${i}Class`]:{get(){let{classes:s}=this;if(s.has(i))return s.get(i);{let r=s.getAttributeName(i);throw new Error(`Missing attribute "${r}"`)}}},[`${i}Classes`]:{get(){return this.classes.getAll(i)}},[`has${Gr(i)}Class`]:{get(){return this.classes.has(i)}}}}function ex(i){return Wr(i,"outlets").reduce((r,a)=>Object.assign(r,tx(a)),{})}function uS(i,s,r){return i.application.getControllerForElementAndIdentifier(s,r)}function gS(i,s,r){let a=uS(i,s,r);if(a||(i.application.router.proposeToConnectScopeForElementAndIdentifier(s,r),a=uS(i,s,r),a))return a}function tx(i){let s=Lv(i);return{[`${s}Outlet`]:{get(){let r=this.outlets.find(i),a=this.outlets.getSelectorForOutletName(i);if(r){let n=gS(this,r,i);if(n)return n;throw new Error(`The provided outlet element is missing an outlet controller "${i}" instance for host controller "${this.identifier}"`)}throw new Error(`Missing outlet element "${i}" for host controller "${this.identifier}". Stimulus couldn't find a matching outlet element using selector "${a}".`)}},[`${s}Outlets`]:{get(){let r=this.outlets.findAll(i);return r.length>0?r.map(a=>{let n=gS(this,a,i);if(n)return n;console.warn(`The provided outlet element is missing an outlet controller "${i}" instance for host controller "${this.identifier}"`,a)}).filter(a=>a):[]}},[`${s}OutletElement`]:{get(){let r=this.outlets.find(i),a=this.outlets.getSelectorForOutletName(i);if(r)return r;throw new Error(`Missing outlet element "${i}" for host controller "${this.identifier}". Stimulus couldn't find a matching outlet element using selector "${a}".`)}},[`${s}OutletElements`]:{get(){return this.outlets.findAll(i)}},[`has${Gr(s)}Outlet`]:{get(){return this.outlets.has(i)}}}}function ix(i){return Wr(i,"targets").reduce((r,a)=>Object.assign(r,sx(a)),{})}function sx(i){return{[`${i}Target`]:{get(){let s=this.targets.find(i);if(s)return s;throw new Error(`Missing target element "${i}" for "${this.identifier}" controller`)}},[`${i}Targets`]:{get(){return this.targets.findAll(i)}},[`has${Gr(i)}Target`]:{get(){return this.targets.has(i)}}}}function rx(i){let s=Nk(i,"values"),r={valueDescriptorMap:{get(){return s.reduce((a,n)=>{let l=yS(n,this.identifier),d=this.data.getAttributeNameForKey(l.key);return Object.assign(a,{[d]:l})},{})}}};return s.reduce((a,n)=>Object.assign(a,ax(n)),r)}function ax(i,s){let r=yS(i,s),{key:a,name:n,reader:l,writer:d}=r;return{[n]:{get(){let m=this.data.get(a);return m!==null?l(m):r.defaultValue},set(m){m===void 0?this.data.delete(a):this.data.set(a,d(m))}},[`has${Gr(n)}`]:{get(){return this.data.has(a)||r.hasCustomDefaultValue}}}}function yS([i,s],r){return hx({controller:r,token:i,typeDefinition:s})}function Nn(i){switch(i){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function $r(i){switch(typeof i){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(i))return"array";if(Object.prototype.toString.call(i)==="[object Object]")return"object"}function nx(i){let{controller:s,token:r,typeObject:a}=i,n=lS(a.type),l=lS(a.default),d=n&&l,m=n&&!l,v=!n&&l,E=Nn(a.type),D=$r(i.typeObject.default);if(m)return E;if(v)return D;if(E!==D){let R=s?`${s}.${r}`:r;throw new Error(`The specified default value for the Stimulus Value "${R}" must match the defined type "${E}". The provided default value of "${a.default}" is of type "${D}".`)}if(d)return E}function ox(i){let{controller:s,token:r,typeDefinition:a}=i,l=nx({controller:s,token:r,typeObject:a}),d=$r(a),m=Nn(a),v=l||d||m;if(v)return v;let E=s?`${s}.${a}`:r;throw new Error(`Unknown value type "${E}" for "${r}" value`)}function lx(i){let s=Nn(i);if(s)return mS[s];let r=kv(i,"default"),a=kv(i,"type"),n=i;if(r)return n.default;if(a){let{type:l}=n,d=Nn(l);if(d)return mS[d]}return i}function hx(i){let{token:s,typeDefinition:r}=i,a=`${vS(s)}-value`,n=ox(i);return{type:n,key:a,name:jv(a),get defaultValue(){return lx(r)},get hasCustomDefaultValue(){return $r(r)!==void 0}
31,reader:cx[n],writer:pS[n]||pS.default}}var mS={get array(){return[]},boolean:!1,number:0,get object(){return{}},string:""},cx={array(i){let s=JSON.parse(i);if(!Array.isArray(s))throw new TypeError(`expected value of type "array" but instead got value "${i}" of type "${$r(s)}"`);return s},boolean(i){return!(i=="0"||String(i).toLowerCase()=="false")},number(i){return Number(i.replace(/_/g,""))},object(i){let s=JSON.parse(i);if(s===null||typeof s!="object"||Array.isArray(s))throw new TypeError(`expected value of type "object" but instead got value "${i}" of type "${$r(s)}"`);return s},string(i){return i}},pS={default:dx,array:fS,object:fS};function fS(i){return JSON.stringify(i)}function dx(i){return`${i}`}var u=class{constructor(s){this.context=s}static get shouldLoad(){return!0}static afterLoad(s,r){}get application(){return this.context.application}get scope(){return this.context.scope}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get targets(){return this.scope.targets}get outlets(){return this.scope.outlets}get classes(){return this.scope.classes}get data(){return this.scope.data}initialize(){}connect(){}disconnect(){}dispatch(s,{target:r=this.element,detail:a={},prefix:n=this.identifier,bubbles:l=!0,cancelable:d=!0}={}){let m=n?`${n}:${s}`:s,v=new CustomEvent(m,{detail:a,bubbles:l,cancelable:d});return r.dispatchEvent(v),v}};u.blessings=[Jk,ix,rx,ex];u.targets=[];u.outlets=[];u.values={};function Ge(i,s={}){window.Sentry&&window.Sentry.captureException(i,{extra:s})}var Kv=class{static async fetchWithTurboStream(s,r={}){try{let n=await(await fetch(s,{headers:{Accept:"text/vnd.turbo-stream.html",...r.headers},...r})).text();Turbo.renderStreamMessage(n)}catch(a){throw console.error("Fetch error:",a),a}}static escapeHTML(s){let r=document.createElement("div");return s&&(r.textContent=s),r.innerHTML}static createUserMessageTemplate(s){let r=document.createElement("div");return r.id="user-generated-message",r.className="mt-5 flex justify-end text-right mb-2 user-message hidden",r.setAttribute("data-conversations--video-suggestion-target","userMessageTemplate"),r.innerHTML=`
32      <div class="relative flex-col gap-[9px] inline-flex w-auto max-w-[75%]">
33        <div class="px-4 py-2 bg-gradient-blue rounded-tl-3xl rounded-tr-3xl rounded-bl-3xl rounded-br-[4px] justify-start items-start inline-flex">
34          <div class="font-roboto text-grey-medium text-base lg:text-[15px] font-normal">
35            <p class="[word-break:break-word]">${s||""}</p>
36          </div>
37        </div>
38      </div>
39    `,r}},it=Kv;var T=Rn.start();T.debug=!1;var ux=T.handleError.bind(T);T.handleError=(i,s,r={})=>{ux(i,s,r),Ge(i,{message:s,...r})};window.Stimulus=T;window.utils=it;var Un=class extends u{static targets=["tile","section","status","category","empty","count","categoryMenu","categoryTrigger","categoryLabel"];connect(){this.status="all",this.category="all",this.filter()}selectStatus(i){this.status=i.currentTarget.dataset.status,this.filter()}selectCategory(i){this.category=i.currentTarget.value||i.currentTarget.dataset.category,this.filter(),this.hasCategoryMenuTarget&&(this.categoryMenuTarget.hidePopover(),this.categoryTriggerTarget.focus())}reset(){this.status="all",this.category="all",this.filter()}toggleCategories(i){if(i.preventDefault(),this.categoryMenuTarget.matches(":popover-open")){this.categoryMenuTarget.hidePopover();return}this.categoryMenuTarget.showPopover(),this.positionCategories(),this.categoryTargets.find(s=>s.dataset.category===this.category).focus()}categoryMenuToggled(i){this.categoryTriggerTarget.setAttribute("aria-expanded",String(i.newState==="open"))}positionCategories(){if(!this.hasCategoryMenuTarget||!this.categoryMenuTarget.matches(":popover-open"))return;let i=this.categoryTriggerTarget.getBoundingClientRect(),s=this.categoryMenuTarget;if(i.bottom<0||i.top>window.innerHeight){s.hidePopover();return}let r=Math.min(250,window.innerWidth-32),a=window.innerHeight-i.bottom-80,n=i.top-16,l=a<230&&n>a;s.style.width=`${r}px`,s.style.maxHeight=`${Math.max(100,Math.min(390,l?n:a))}
39px`,s.style.left=`${Math.max(16,Math.min(i.right-r,window.innerWidth-r-16))}px`,s.style.top=`${l?i.top-s.offsetHeight-8:i.bottom+8}px`}navigateCategories(i){if(i.key==="Tab"){this.categoryMenuTarget.hidePopover(),this.categoryTriggerTarget.focus();return}let s=this.categoryTargets.indexOf(document.activeElement),r;switch(i.key){case"ArrowDown":r=(s+1)%this.categoryTargets.length;break;case"ArrowUp":r=(s-1+this.categoryTargets.length)%this.categoryTargets.length;break;case"Home":r=0;break;case"End":r=this.categoryTargets.length-1;break;default:return}i.preventDefault(),this.categoryTargets[r].focus()}filter(){let i=0;this.tileTargets.forEach(s=>{let r=this.category==="all"||s.dataset.category===this.category,a=this.status==="all"||this.status==="collected"&&s.dataset.unlocked==="true"||this.status==="progress"&&s.dataset.inProgress==="true";s.hidden=!(r&&a),s.hidden||(i+=1)}),this.sectionTargets.forEach(s=>{s.hidden=!this.tileTargets.some(r=>s.contains(r)&&!r.hidden)}),this.statusTargets.forEach(s=>{s.setAttribute("aria-pressed",String(s.dataset.status===this.status))}),this.categoryTargets.forEach(s=>{if(s.tagName==="SELECT")s.value=this.category;else{let r=s.dataset.category===this.category;s.setAttribute(s.getAttribute("role")==="menuitemradio"?"aria-checked":"aria-pressed",String(r)),r&&this.hasCategoryLabelTarget&&(this.categoryLabelTarget.textContent=s.dataset.label)}}),this.emptyTarget.hidden=i>0,this.countTarget.textContent=i}};function gx(i,s,r){return(s=vx(s))in i?Object.defineProperty(i,s,{value:r,enumerable:!0,configurable:!0,writable:!0}):i[s]=r,i}function Mi(){return Mi=Object.assign?Object.assign.bind():function(i){for(var s=1;s<arguments.length;s++){var r=arguments[s];for(var a in r)({}).hasOwnProperty.call(r,a)&&(i[a]=r[a])}return i},Mi.apply(null,arguments)}function SS(i,s){var r=Object.keys(i);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(i);s&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(i,n).enumerable})),r.push.apply(r,a)}return r}function bi(i){for(var s=1;s<arguments.length;s++){var r=arguments[s]!=null?arguments[s]:{};s%2?SS(Object(r),!0).forEach(function(a){gx(i,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(r)):SS(Object(r)).forEach(function(a){Object.defineProperty(i,a,Object.getOwnPropertyDescriptor(r,a))})}return i}function mx(i,s){if(i==null)return{};var r,a,n=px(i,s);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(i);for(a=0;a<l.length;a++)r=l[a],s.indexOf(r)===-1&&{}.propertyIsEnumerable.call(i,r)&&(n[r]=i[r])}return n}function px(i,s){if(i==null)return{};var r={};for(var a in i)if({}
vendor: 33,731 bytes, line 39
39.hasOwnProperty.call(i,a)){if(s.indexOf(a)!==-1)continue;r[a]=i[a]}return r}function fx(i,s){if(typeof i!="object"||!i)return i;var r=i[Symbol.toPrimitive];if(r!==void 0){var a=r.call(i,s||"default");if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(i)}function vx(i){var s=fx(i,"string");return typeof s=="symbol"?s:s+""}function sT(i){"@babel/helpers - typeof";return sT=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(s){return typeof s}:function(s){return s&&typeof Symbol=="function"&&s.constructor===Symbol&&s!==Symbol.prototype?"symbol":typeof s},sT(i)}var Tx="1.15.7";function Vi(i){if(typeof window<"u"&&window.navigator)return!!navigator.userAgent.match(i)}var _i=Vi(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),ea=Vi(/Edge/i),wS=Vi(/firefox/i),Yr=Vi(/safari/i)&&!Vi(/chrome/i)&&!Vi(/android/i),lT=Vi(/iP(ad|od|hone)/i),PS=Vi(/chrome/i)&&Vi(/android/i),VS={capture:!1,passive:!1};function Fe(i,s,r){i.addEventListener(s,r,!_i&&VS)}function Oe(i,s,r){i.removeEventListener(s,r,!_i&&VS)}function Yn(i,s){if(s){if(s[0]===">"&&(s=s.substring(1)),i)try{if(i.matches)return i.matches(s);if(i.msMatchesSelector)return i.msMatchesSelector(s);if(i.webkitMatchesSelector)return i.webkitMatchesSelector(s)}catch{return!1}return!1}}function MS(i){return i.host&&i!==document&&i.host.nodeType&&i.host!==i?i.host:i.parentNode}function oi(i,s,r,a){if(i){r=r||document;do{if(s!=null&&(s[0]===">"?i.parentNode===r&&Yn(i,s):Yn(i,s))||a&&i===r)return i;if(i===r)break}while(i=MS(i))}return null}var CS=/\s+/g;function Yt(i,s,r){if(i&&s)if(i.classList)i.classList[r?"add":"remove"](s);else{var a=(" "+i.className+" ").replace(CS," ").replace(" "+s+" "," ");i.className=(a+(r?" "+s:"")).replace(CS," ")}}function Pe(i,s,r){var a=i&&i.style;if(a){if(r===void 0)return document.defaultView&&document.defaultView.getComputedStyle?r=document.defaultView.getComputedStyle(i,""):i.currentStyle&&(r=i.currentStyle),s===void 0?r:r[s];!(s in a)&&s.indexOf("webkit")===-1&&(s="-webkit-"+s),a[s]=r+(typeof r=="string"?"":"px")}}function Js(i,s){var r="";if(typeof i=="string")r=i;else do{var a=Pe(i,"transform");a&&a!=="none"&&(r=a+" "+r)}while(!s&&(i=i.parentNode));var n=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return n&&new n(r)}function _S(i,s,r){if(i){var a=i.getElementsByTagName(s),n=0,l=a.length;if(r)for(;n<l;n++)r(a[n],n);return a}return[]}function Ti(){var i=document.scrollingElement;return i||document.documentElement}function dt(i,s,r,a,n){if(!(!i.getBoundingClientRect&&i!==window)){var l,d,m,v,E,D,R;if(i!==window&&i.parentNode&&i!==Ti()?(l=i.getBoundingClientRect(),d=l.top,m=l.left,v=l.bottom,E=l.right,D=l.height,R=l.width):(d=0,m=0,v=window.innerHeight,E=window.innerWidth,D=window.innerHeight,R=window.innerWidth),(s||r)&&i!==window&&(n=n||i.parentNode,!_i))do if(n&&n.getBoundingClientRect&&(Pe(n,"transform")!=="none"||r&&Pe(n,"position")!=="static")){var W=n.getBoundingClientRect();d-=W.top+parseInt(Pe(n,"border-top-width")),m-=W.left+parseInt(Pe(n,"border-left-width")),v=d+l.height,E=m+l.width;break}while(n=n.parentNode);if(a&&i!==window){var Q=Js(n||i),X=Q&&Q.a,ie=Q&&Q.d;Q&&(d/=ie,m/=X,R/=X,D/=ie,v=d+D,E=m+R)}return{top:d,left:m,bottom:v,right:E,width:R,height:D}}}function ES(i,s,r){for(var a=rs(i,!0),n=dt(i)[s];a;){var l=dt(a)[r],d=void 0;if(r==="top"||r==="left"?d=n>=l:d=n<=l,!d)return a;if(a===Ti())break;a=rs(a,!1)}return!1}function Zs(i,s,r,a){for(var n=0,l=0,d=i.children;l<d.length;){if(d[l].style.display!=="none"&&d[l]!==Ve.ghost&&(a||d[l]!==Ve.dragged)&&oi(d[l],r.draggable,i,!1)){if(n===s)return d[l];n++}l++}return null}function hT(i,s){for(var r=i.lastElementChild;r&&(r===Ve.ghost||Pe(r,"display")==="none"||s&&!Yn(r,s));)r=r.previousElementSibling;return r||null}function ei(i,s){var r=0;if(!i||!i.parentNode)return-1;for(;i=i.previousElementSibling;)i.nodeName.toUpperCase()!=="TEMPLATE"&&i!==Ve.clone&&(!s||Yn(i,s))&&r++;return r}function LS(i){var s=0,r=0,a=Ti();if(i)do{var n=Js(i),l=n.a,d=n.d;s+=i.scrollLeft*l,r+=i.scrollTop*d}while(i!==a&&(i=i.parentNode));return[s,r]}function bx(i,s){for(var r in i)if(i.hasOwnProperty(r)){for(var a in s)if(s.hasOwnProperty(a)&&s[a]===i[r][a])return Number(r)}return-1}function rs(i,s){if(!i||!i.getBoundingClientRect)return Ti();var r=i,a=!1;do if(r.clientWidth<r.scrollWidth||r.clientHeight<r.scrollHeight){var n=Pe(r);if(r.clientWidth<r.scrollWidth&&(n.overflowX=="auto"||n.overflowX=="scroll")||r.clientHeight<r.scrollHeight&&(n.overflowY=="auto"||n.overflowY=="scroll")){if(!r.getBoundingClientRect||r===document.body)return Ti();if(a||s)return r;a=!0}}while(r=r.parentNode);return Ti()}function yx(i,s){if(i&&s)for(var r in s)s.hasOwnProperty(r)&&(i[r]=s[r]);return i}function zv(i,s){return Math.round(i.top)===Math.round(s.top)&&Math.round(i.left)===Math.round(s.left)&&Math.round(i.height)===Math.round(s.height)&&Math.round(i.width)===Math.round(s.width)}var Xr;function BS(i,s){return function(){if(!Xr){var r=arguments,a=this;r.length===1?i.call(a,r[0]):i.apply(a,r),Xr=setTimeout(function(){Xr=void 0},s)}}}function Sx(){clearTimeout(Xr),Xr=void 0}function OS(i,s,r){i.scrollLeft+=s,i.scrollTop+=r}function FS(i){var s=window.Polymer,r=window.jQuery||window.Zepto;return s&&s.dom?s.dom(i).cloneNode(!0):r?r(i).clone(!0)[0]:i.cloneNode(!0)}function DS(i,s,r){var a={};return Array.from(i.children).forEach(function(n){var l,d,m,v;if(!(!oi(n,s.draggable,i,!1)||n.animated||n===r)){var E=dt(n);a.left=Math.min((l=a.left)!==null&&l!==void 0?l:1/0,E.left),a.top=Math.min((d=a.top)!==null&&d!==void 0?d:1/0,E.top),a.right=Math.max((m=a.right)!==null&&m!==void 0?m:-1/0,E.right),a.bottom=Math.max((v=a.bottom)!==null&&v!==void 0?v:-1/0,E.bottom)}}),a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}var qt="Sortable"+new Date().getTime();function wx(){var i=[],s;return{captureAnimationState:function(){if(i=[],!!this.options.animation){var a=[].slice.call(this.el.children);a.forEach(function(n){if(!(Pe(n,"display")==="none"||n===Ve.ghost)){i.push({target:n,rect:dt(n)});var l=bi({},i[i.length-1].rect);if(n.thisAnimationDuration){var d=Js(n,!0);d&&(l.top-=d.f,l.left-=d.e)}n.fromRect=l}})}},addAnimationState:function(a){i.push(a)},removeAnimationState:function(a){i.splice(bx(i,{target:a}),1)},animateAll:function(a){var n=this;if(!this.options.animation){clearTimeout(s),typeof a=="function"&&a();return}var l=!1,d=0;i.forEach(function(m){var v=0,E=m.target,D=E.fromRect,R=dt(E),W=E.prevFromRect,Q=E.prevToRect,X=m.rect,ie=Js(E,!0);ie&&(R.top-=ie.f,R.left-=ie.e),E.toRect=R,E.thisAnimationDuration&&zv(W,R)&&!zv(D,R)&&(X.top-R.top)/(X.left-R.left)===(D.top-R.top)/(D.left-R.left)&&(v=Ex(X,W,Q,n.options)),zv(R,D)||(E.prevFromRect=D,E.prevToRect=R,v||(v=n.options.animation),n.animate(E,X,R,v)),v&&(l=!0,d=Math.max(d,v),clearTimeout(E.animationResetTimer),E.animationResetTimer=setTimeout(function(){E.animationTime=0,E.prevFromRect=null,E.fromRect=null,E.prevToRect=null,E.thisAnimationDuration=null},v),E.thisAnimationDuration=v)}),clearTimeout(s),l?s=setTimeout(function(){typeof a=="function"&&a()},d):typeof a=="function"&&a(),i=[]},animate:function(a,n,l,d){if(d){Pe(a,"transition",""),Pe(a,"transform","");var m=Js(this.el),v=m&&m.a,E=m&&m.d,D=(n.left-l.left)/(v||1),R=(n.top-l.top)/(E||1);a.animatingX=!!D,a.animatingY=!!R,Pe(a,"transform","translate3d("+D+"px,"+R+"px,0)"),this.forRepaintDummy=Cx(a),Pe(a,"transition","transform "+d+"ms"+(this.options.easing?" "+this.options.easing:"")),Pe(a,"transform","translate3d(0,0,0)"),typeof a.animated=="number"&&clearTimeout(a.animated),a.animated=setTimeout(function(){Pe(a,"transition",""),Pe(a,"transform",""),a.animated=!1,a.animatingX=!1,a.animatingY=!1},d)}}}}function Cx(i){return i.offsetWidth}function Ex(i,s,r,a){return Math.sqrt(Math.pow(s.top-i.top,2)+Math.pow(s.left-i.left,2))/Math.sqrt(Math.pow(s.top-r.top,2)+Math.pow(s.left-r.left,2))*a.animation}var zs=[],Yv={initializeByDefault:!0},ta={mount:function(s){for(var r in Yv)Yv.hasOwnProperty(r)&&!(r in s)&&(s[r]=Yv[r]);zs.forEach(function(a){if(a.pluginName===s.pluginName)throw"Sortable: Cannot mount plugin ".concat(s.pluginName," more than once")}),zs.push(s)},pluginEvent:function(s,r,a){var n=this;this.eventCanceled=!1,a.cancel=function(){n.eventCanceled=!0};var l=s+"Global";zs.forEach(function(d){r[d.pluginName]&&(r[d.pluginName][l]&&r[d.pluginName][l](bi({sortable:r},a)),r.options[d.pluginName]&&r[d.pluginName][s]&&r[d.pluginName][s](bi({sortable:r},a)))})},initializePlugins:function(s,r,a,n){zs.forEach(function(m){var v=m.pluginName;if(!(!s.options[v]&&!m.initializeByDefault)){var E=new m(s,r,s.options);E.sortable=s,E.options=s.options,s[v]=E,Mi(a,E.defaults)}});for(var l in s.options)if(s.options.hasOwnProperty(l)){var d=this.modifyOption(s,l,s.options[l]);typeof d<"u"&&(s.options[l]=d)}},getEventProperties:function(s,r){var a={};return zs.forEach(function(n){typeof n.eventProperties=="function"&&Mi(a,n.eventProperties.call(r[n.pluginName],s))}),a},modifyOption:function(s,r,a){var n;return zs.forEach(function(l){s[l.pluginName]&&l.optionListeners&&typeof l.optionListeners[r]=="function"&&(n=l.optionListeners[r].call(s[l.pluginName],a))}),n}};function Lx(i){var s=i.sortable,r=i.rootEl,a=i.name,n=i.targetEl,l=i.cloneEl,d=i.toEl,m=i.fromEl,v=i.oldIndex,E=i.newIndex,D=i.oldDraggableIndex,R=i.newDraggableIndex,W=i.originalEvent,Q=i.putSortable,X=i.extraEventProperties;if(s=s||r&&r[qt],!!s){var ie,ce=s.options,oe="on"+a.charAt(0).toUpperCase()+a.substr(1);window.CustomEvent&&!_i&&!ea?ie=new CustomEvent(a,{bubbles:!0,cancelable:!0}):(ie=document.createEvent("Event"),ie.initEvent(a,!0,!0)),ie.to=d||r,ie.from=m||r,ie.item=n||r,ie.clone=l,ie.oldIndex=v,ie.newIndex=E,ie.oldDraggableIndex=D,ie.newDraggableIndex=R,ie.originalEvent=W,ie.pullMode=Q?Q.lastPutMode:void 0;var Z=bi(bi({},X),ta.getEventProperties(a,s));for(var se in Z)ie[se]=Z[se];r&&r.dispatchEvent(ie),ce[oe]&&ce[oe].call(s,ie)}}var kx=["evt"],Ht=function(s,r){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=a.evt,l=mx(a,kx);ta.pluginEvent.bind(Ve)(s,r,bi({dragEl:ue,parentEl:st,ghostEl:Me,rootEl:Je,nextEl:Ss,lastDownEl:Wn,cloneEl:et,cloneHidden:ss,dragStarted:jr,putSortable:Ct,activeSortable:Ve.active,originalEvent:n,oldIndex:Qs,oldDraggableIndex:Qr,newIndex:Xt,newDraggableIndex:is,hideGhostForTarget:HS,unhideGhostForTarget:qS,cloneNowHidden:function(){ss=!0},cloneNowShown:function(){ss=!1},dispatchSortableEvent:function(m){Bt({sortable:r,name:m,originalEvent:n})}},l))};function Bt(i){Lx(bi({putSortable:Ct,cloneEl:et,targetEl:ue,rootEl:Je,oldIndex:Qs,oldDraggableIndex:Qr,newIndex:Xt,newDraggableIndex:is},i))}var ue,st,Me,Je,Ss,Wn,et,ss,Qs,Xt,Qr,is,Hn,Ct,Xs=!1,Xn=!1,Qn=[],bs,ni,Xv,Qv,kS,xS,jr,Ys,Jr,Zr=!1,qn=!1,jn,At,Jv=[],rT=!1,Jn=[],eo=typeof document<"u",$n=lT,IS=ea||_i?"cssFloat":"float",xx=eo&&!PS&&!lT&&"draggable"in document.createElement("div"),RS=(function(){if(eo){if(_i)return!1;var i=document.createElement("x");return i.style.cssText="pointer-events:auto",i.style.pointerEvents==="auto"}})(),NS=function(s,r){var a=Pe(s),n=parseInt(a.width)-parseInt(a.paddingLeft)-parseInt(a.paddingRight)-parseInt(a.borderLeftWidth)-parseInt(a.borderRightWidth),l=Zs(s,0,r),d=Zs(s,1,r),m=l&&Pe(l),v=d&&Pe(d),E=m&&parseInt(m.marginLeft)+parseInt(m.marginRight)+dt(l).width,D=v&&parseInt(v.marginLeft)+parseInt(v.marginRight)+dt(d).width;if(a.display==="flex")return a.flexDirection==="column"||a.flexDirection==="column-reverse"?"vertical":"horizontal";if(a.display==="grid")return a.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(l&&m.float&&m.float!=="none"){var R=m.float==="left"?"left":"right";return d&&(v.clear==="both"||v.clear===R)?"vertical":"horizontal"}return l&&(m.display==="block"||m.display==="flex"||m.display==="table"||m.display==="grid"||E>=n&&a[IS]==="none"||d&&a[IS]==="none"&&E+D>n)?"vertical":"horizontal"},Ix=function(s,r,a){var n=a?s.left:s.top,l=a?s.right:s.bottom,d=a?s.width:s.height,m=a?r.left:r.top,v=a?r.right:r.bottom,E=a?r.width:r.height;return n===m||l===v||n+d/2===m+E/2},Ax=function(s,r){var a;return Qn.some(function(n){var l=n[qt].options.emptyInsertThreshold;if(!(!l||hT(n))){var d=dt(n),m=s>=d.left-l&&s<=d.right+l,v=r>=d.top-l&&r<=d.bottom+l;if(m&&v)return a=n}}),a},US=function(s){function r(l,d){return function(m,v,E,D){var R=m.options.group.name&&v.options.group.name&&m.options.group.name===v.options.group.name;if(l==null&&(d||R))return!0;if(l==null||l===!1)return!1;if(d&&l==="clone")return l;if(typeof l=="function")return r(l(m,v,E,D),d)(m,v,E,D);var W=(d?m:v).options.group.name;return l===!0||typeof l=="string"&&l===W||l.join&&l.indexOf(W)>-1}}var a={},n=s.group;(!n||sT(n)!="object")&&(n={name:n}),a.name=n.name,a.checkPull=r(n.pull,!0),a.checkPut=r(n.put),a.revertClone=n.revertClone,s.group=a},HS=function(){!RS&&Me&&Pe(Me,"display","none")},qS=function(){!RS&&Me&&Pe(Me,"display","")};eo&&!PS&&document.addEventListener("click",function(i){if(Xn)return i.preventDefault(),i.stopPropagation&&i.stopPropagation(),i.stopImmediatePropagation&&i.stopImmediatePropagation(),Xn=!1,!1},!0);var ys=function(s){if(ue){s=s.touches?s.touches[0]:s;var r=Ax(s.clientX,s.clientY);if(r){var a={};for(var n in s)s.hasOwnProperty(n)&&(a[n]=s[n]);a.target=a.rootEl=r,a.preventDefault=void 0,a.stopPropagation=void 0,r[qt]._onDragOver(a)}}},Px=function(s){ue&&ue.parentNode[qt]._isOutsideThisEl(s.target)};function Ve(i,s){if(!(i&&i.nodeType&&i.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(i));this.el=i,this.options=s=Mi({},s),i[qt]=this;var r={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(i.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return NS(i,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(d,m){d.setData("Text",m.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:Ve.supportPointer!==!1&&"PointerEvent"in window&&(!Yr||lT),emptyInsertThreshold:5};ta.initializePlugins(this,i,r);for(var a in r)!(a in s)&&(s[a]=r[a]);US(s);for(var n in this)n.charAt(0)==="_"&&typeof this[n]=="function"&&(this[n]=this[n].bind(this));this.nativeDraggable=s.forceFallback?!1:xx,this.nativeDraggable&&(this.options.touchStartThreshold=1),s.supportPointer?Fe(i,"pointerdown",this._onTapStart):(Fe(i,"mousedown",this._onTapStart),Fe(i,"touchstart",this._onTapStart)),this.nativeDraggable&&(Fe(i,"dragover",this),Fe(i,"dragenter",this)),Qn.push(this.el),s.store&&s.store.get&&this.sort(s.store.get(this)||[]),Mi(this,wx())}Ve.prototype={constructor:Ve,_isOutsideThisEl:function(s){!this.el.contains(s)&&s!==this.el&&(Ys=null)},_getDirection:function(s,r){return typeof this.options.direction=="function"?this.options.direction.call(this,s,r,ue):this.options.direction},_onTapStart:function(s){if(s.cancelable){var r=this,a=this.el,n=this.options,l=n.preventOnFilter,d=s.type,m=s.touches&&s.touches[0]||s.pointerType&&s.pointerType==="touch"&&s,v=(m||s).target,E=s.target.shadowRoot&&(s.path&&s.path[0]||s.composedPath&&s.composedPath()[0])||v,D=n.filter;if(Rx(a),!ue&&!(/mousedown|pointerdown/.test(d)&&s.button!==0||n.disabled)&&!E.isContentEditable&&!(!this.nativeDraggable&&Yr&&v&&v.tagName.toUpperCase()==="SELECT")&&(v=oi(v,n.draggable,a,!1),!(v&&v.animated)&&Wn!==v)){if(Qs=ei(v),Qr=ei(v,n.draggable),typeof D=="function"){if(D.call(this,s,v,this)){Bt({sortable:r,rootEl:E,name:"filter",targetEl:v,toEl:a,fromEl:a}),Ht("filter",r,{evt:s}),l&&s.preventDefault();return}}else if(D&&(D=D.split(",").some(function(R){if(R=oi(E,R.trim(),a,!1),R)return Bt({sortable:r,rootEl:R,name:"filter",targetEl:v,fromEl:a,toEl:a}),Ht("filter",r,{evt:s}),!0}),D)){l&&s.preventDefault();return}n.handle&&!oi(E,n.handle,a,!1)||this._prepareDragStart(s,m,v)}}},_prepareDragStart:function(s,r,a){var n=this,l=n.el,d=n.options,m=l.ownerDocument,v;if(a&&!ue&&a.parentNode===l){var E=dt(a);if(Je=l,ue=a,st=ue.parentNode,Ss=ue.nextSibling,Wn=a,Hn=d.group,Ve.dragged=ue,bs={target:ue,clientX:(r||s).clientX,clientY:(r||s).clientY},kS=bs.clientX-E.left,xS=bs.clientY-E.top,this._lastX=(r||s).clientX,this._lastY=(r||s).clientY,ue.style["will-change"]="all",v=function(){if(Ht("delayEnded",n,{evt:s}),Ve.eventCanceled){n._onDrop();return}n._disableDelayedDragEvents(),!wS&&n.nativeDraggable&&(ue.draggable=!0),n._triggerDragStart(s,r),Bt({sortable:n,name:"choose",originalEvent:s}),Yt(ue,d.chosenClass,!0)},d.ignore.split(",").forEach(function(D){_S(ue,D.trim(),Zv)}),Fe(m,"dragover",ys),Fe(m,"mousemove",ys),Fe(m,"touchmove",ys),d.supportPointer?(Fe(m,"pointerup",n._onDrop),!this.nativeDraggable&&Fe(m,"pointercancel",n._onDrop)):(Fe(m,"mouseup",n._onDrop),Fe(m,"touchend",n._onDrop),Fe(m,"touchcancel",n._onDrop)),wS&&this.nativeDraggable&&(this.options.touchStartThreshold=4,ue.draggable=!0),Ht("delayStart",this,{evt:s}),d.delay&&(!d.delayOnTouchOnly||r)&&(!this.nativeDraggable||!(ea||_i))){if(Ve.eventCanceled){this._onDrop();return}d.supportPointer?(Fe(m,"pointerup",n._disableDelayedDrag),Fe(m,"pointercancel",n._disableDelayedDrag)):(Fe(m,"mouseup",n._disableDelayedDrag),Fe(m,"touchend",n._disableDelayedDrag),Fe(m,"touchcancel",n._disableDelayedDrag)),Fe(m,"mousemove",n._delayedDragTouchMoveHandler),Fe(m,"touchmove",n._delayedDragTouchMoveHandler),d.supportPointer&&Fe(m,"pointermove",n._delayedDragTouchMoveHandler),n._dragStartTimer=setTimeout(v,d.delay)}else v()}},_delayedDragTouchMoveHandler:function(s){var r=s.touches?s.touches[0]:s;Math.max(Math.abs(r.clientX-this._lastX),Math.abs(r.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){ue&&Zv(ue),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var s=this.el.ownerDocument;Oe(s,"mouseup",this._disableDelayedDrag),Oe(s,"touchend",this._disableDelayedDrag),Oe(s,"touchcancel",this._disableDelayedDrag),Oe(s,"pointerup",this._disableDelayedDrag),Oe(s,"pointercancel",this._disableDelayedDrag),Oe(s,"mousemove",this._delayedDragTouchMoveHandler),Oe(s,"touchmove",this._delayedDragTouchMoveHandler),Oe(s,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(s,r){r=r||s.pointerType=="touch"&&s,!this.nativeDraggable||r?this.options.supportPointer?Fe(document,"pointermove",this._onTouchMove):r?Fe(document,"touchmove",this._onTouchMove):Fe(document,"mousemove",this._onTouchMove):(Fe(ue,"dragend",this),Fe(Je,"dragstart",this._onDragStart));try{document.selection?Kn(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(s,r){if(Xs=!1,Je&&ue){Ht("dragStarted",this,{evt:r}),this.nativeDraggable&&Fe(document,"dragover",Px);var a=this.options;!s&&Yt(ue,a.dragClass,!1),Yt(ue,a.ghostClass,!0),Ve.active=this,s&&this._appendGhost(),Bt({sortable:this,name:"start",originalEvent:r})}else this._nulling()},_emulateDragOver:function(){if(ni){this._lastX=ni.clientX,this._lastY=ni.clientY,HS();for(var s=document.elementFromPoint(ni.clientX,ni.clientY),r=s;s&&s.shadowRoot&&(s=s.shadowRoot.elementFromPoint(ni.clientX,ni.clientY),s!==r);)r=s;if(ue.parentNode[qt]._isOutsideThisEl(s),r)do{if(r[qt]){var a=void 0;if(a=r[qt]._onDragOver({clientX:ni.clientX,clientY:ni.clientY,target:s,rootEl:r}),a&&!this.options.dragoverBubble)break}s=r}while(r=MS(r));qS()}},_onTouchMove:function(s){if(bs){var r=this.options,a=r.fallbackTolerance,n=r.fallbackOffset,l=s.touches?s.touches[0]:s,d=Me&&Js(Me,!0),m=Me&&d&&d.a,v=Me&&d&&d.d,E=$n&&At&&LS(At),D=(l.clientX-bs.clientX+n.x)/(m||1)+(E?E[0]-Jv[0]:0)/(m||1),R=(l.clientY-bs.clientY+n.y)/(v||1)+(E?E[1]-Jv[1]:0)/(v||1);if(!Ve.active&&!Xs){if(a&&Math.max(Math.abs(l.clientX-this._lastX),Math.abs(l.clientY-this._lastY))<a)return;this._onDragStart(s,!0)}if(Me){d?(d.e+=D-(Xv||0),d.f+=R-(Qv||0)):d={a:1,b:0,c:0,d:1,e:D,f:R};var W="matrix(".concat(d.a,",").concat(d.b,",").concat(d.c,",").concat(d.d,",").concat(d.e,",").concat(d.f,")");Pe(Me,"webkitTransform",W),Pe(Me,"mozTransform",W),Pe(Me,"msTransform",W),Pe(Me,"transform",W),Xv=D,Qv=R,ni=l}s.cancelable&&s.preventDefault()}},_appendGhost:function(){if(!Me){var s=this.options.fallbackOnBody?document.body:Je,r=dt(ue,!0,$n,!0,s),a=this.options;if($n){for(At=s;Pe(At,"position")==="static"&&Pe(At,"transform")==="none"&&At!==document;)At=At.parentNode;At!==document.body&&At!==document.documentElement?(At===document&&(At=Ti()),r.top+=At.scrollTop,r.left+=At.scrollLeft):At=Ti(),Jv=LS(At)}Me=ue.cloneNode(!0),Yt(Me,a.ghostClass,!1),Yt(Me,a.fallbackClass,!0),Yt(Me,a.dragClass,!0),Pe(Me,"transition",""),Pe(Me,"transform",""),Pe(Me,"box-sizing","border-box"),Pe(Me,"margin",0),Pe(Me,"top",r.top),Pe(Me,"left",r.left),Pe(Me,"width",r.width),Pe(Me,"height",r.height),Pe(Me,"opacity","0.8"),Pe(Me,"position",$n?"absolute":"fixed"),Pe(Me,"zIndex","100000"),Pe(Me,"pointerEvents","none"),Ve.ghost=Me,s.appendChild(Me),Pe(Me,"transform-origin",kS/parseInt(Me.style.width)*100+"% "+xS/parseInt(Me.style.height)*100+"%")}},_onDragStart:function(s,r){var a=this,n=s.dataTransfer,l=a.options;if(Ht("dragStart",this,{evt:s}),Ve.eventCanceled){this._onDrop();return}Ht("setupClone",this),Ve.eventCanceled||(et=FS(ue),et.removeAttribute("id"),et.draggable=!1,et.style["will-change"]="",this._hideClone(),Yt(et,this.options.chosenClass,!1),Ve.clone=et),a.cloneId=Kn(function(){Ht("clone",a),!Ve.eventCanceled&&(a.options.removeCloneOnHide||Je.insertBefore(et,ue),a._hideClone(),Bt({sortable:a,name:"clone"}))}),!r&&Yt(ue,l.dragClass,!0),r?(Xn=!0,a._loopId=setInterval(a._emulateDragOver,50)):(Oe(document,"mouseup",a._onDrop),Oe(document,"touchend",a._onDrop),Oe(document,"touchcancel",a._onDrop),n&&(n.effectAllowed="move",l.setData&&l.setData.call(a,n,ue)),Fe(document,"drop",a),Pe(ue,"transform","translateZ(0)")),Xs=!0,a._dragStartId=Kn(a._dragStarted.bind(a,r,s)),Fe(document,"selectstart",a),jr=!0,window.getSelection().removeAllRanges(),Yr&&Pe(document.body,"user-select","none")},_onDragOver:function(s){var r=this.el,a=s.target,n,l,d,m=this.options,v=m.group,E=Ve.active,D=Hn===v,R=m.sort,W=Ct||E,Q,X=this,ie=!1;if(rT)return;function ce(Ps,dr){Ht(Ps,X,bi({evt:s,isOwner:D,axis:Q?"vertical":"horizontal",revert:d,dragRect:n,targetRect:l,canSort:R,fromSortable:W,target:a,completed:Z,onMove:function(ur,qa){return Gn(Je,r,ue,n,ur,dt(ur),s,qa)},changed:se},dr))}function oe(){ce("dragOverAnimationCapture"),X.captureAnimationState(),X!==W&&W.captureAnimationState()}function Z(Ps){return ce("dragOverCompleted",{insertion:Ps}),Ps&&(D?E._hideClone():E._showClone(X),X!==W&&(Yt(ue,Ct?Ct.options.ghostClass:E.options.ghostClass,!1),Yt(ue,m.ghostClass,!0)),Ct!==X&&X!==Ve.active?Ct=X:X===Ve.active&&Ct&&(Ct=null),W===X&&(X._ignoreWhileAnimating=a),X.animateAll(function(){ce("dragOverAnimationComplete"),X._ignoreWhileAnimating=null}),X!==W&&(W.animateAll(),W._ignoreWhileAnimating=null)),(a===ue&&!ue.animated||a===r&&!a.animated)&&(Ys=null),!m.dragoverBubble&&!s.rootEl&&a!==document&&(ue.parentNode[qt]._isOutsideThisEl(s.target),!Ps&&ys(s)),!m.dragoverBubble&&s.stopPropagation&&s.stopPropagation(),ie=!0}function se(){Xt=ei(ue),is=ei(ue,m.draggable),Bt({sortable:X,name:"change",toEl:r,newIndex:Xt,newDraggableIndex:is,originalEvent:s})}if(s.preventDefault!==void 0&&s.cancelable&&s.preventDefault(),a=oi(a,m.draggable,r,!0),ce("dragOver"),Ve.eventCanceled)return ie;if(ue.contains(s.target)||a.animated&&a.animatingX&&a.animatingY||X._ignoreWhileAnimating===a)return Z(!1);if(Xn=!1,E&&!m.disabled&&(D?R||(d=st!==Je):Ct===this||(this.lastPutMode=Hn.checkPull(this,E,ue,s))&&v.checkPut(this,E,ue,s))){if(Q=this._getDirection(s,a)==="vertical",n=dt(ue),ce("dragOverValid"),Ve.eventCanceled)return ie;if(d)return st=Je,oe(),this._hideClone(),ce("revert"),Ve.eventCanceled||(Ss?Je.insertBefore(ue,Ss):Je.appendChild(ue)),Z(!0);var J=hT(r,m.draggable);if(!J||Bx(s,Q,this)&&!J.animated){if(J===ue)return Z(!1);if(J&&r===s.target&&(a=J),a&&(l=dt(a)),Gn(Je,r,ue,n,a,l,s,!!a)!==!1)return oe(),J&&J.nextSibling?r.insertBefore(ue,J.nextSibling):r.appendChild(ue),st=r,se(),Z(!0)}else if(J&&_x(s,Q,this)){var ee=Zs(r,0,m,!0);if(ee===ue)return Z(!1);if(a=ee,l=dt(a),Gn(Je,r,ue,n,a,l,s,!1)!==!1)return oe(),r.insertBefore(ue,ee),st=r,se(),Z(!0)}else if(a.parentNode===r){l=dt(a);var re=0,he,ge=ue.parentNode!==r,le=!Ix(ue.animated&&ue.toRect||n,a.animated&&a.toRect||l,Q),Te=Q?"top":"left",Le=ES(a,"top","top")||ES(ue,"top","top"),ze=Le?Le.scrollTop:void 0;Ys!==a&&(he=l[Te],Zr=!1,qn=!le&&m.invertSwap||ge),re=Ox(s,a,l,Q,le?1:m.swapThreshold,m.invertedSwapThreshold==null?m.swapThreshold:m.invertedSwapThreshold,qn,Ys===a);var Qe;if(re!==0){var _e=ei(ue);do _e-=re,Qe=st.children[_e];while(Qe&&(Pe(Qe,"display")==="none"||Qe===Me))}if(re===0||Qe===a)return Z(!1);Ys=a,Jr=re;var Lt=a.nextElementSibling,Tt=!1;Tt=re===1;var bt=Gn(Je,r,ue,n,a,l,s,Tt);if(bt!==!1)return(bt===1||bt===-1)&&(Tt=bt===1),rT=!0,setTimeout(Mx,30),oe(),Tt&&!Lt?r.appendChild(ue):a.parentNode.insertBefore(ue,Tt?Lt:a),Le&&OS(Le,0,ze-Le.scrollTop),st=ue.parentNode,he!==void 0&&!qn&&(jn=Math.abs(he-dt(a)[Te])),se(),Z(!0)}if(r.contains(ue))return Z(!1)}return!1},_ignoreWhileAnimating:null,_offMoveEvents:function(){Oe(document,"mousemove",this._onTouchMove),Oe(document,"touchmove",this._onTouchMove),Oe(document,"pointermove",this._onTouchMove),Oe(document,"dragover",ys),Oe(document,"mousemove",ys),Oe(document,"touchmove",ys)},_offUpEvents:function(){var s=this.el.ownerDocument;Oe(s,"mouseup",this._onDrop),Oe(s,"touchend",this._onDrop),Oe(s,"pointerup",this._onDrop),Oe(s,"pointercancel",this._onDrop),Oe(s,"touchcancel",this._onDrop),Oe(document,"selectstart",this)},_onDrop:function(s){var r=this.el,a=this.options;if(Xt=ei(ue),is=ei(ue,a.draggable),Ht("drop",this,{evt:s}),st=ue&&ue.parentNode,Xt=ei(ue),is=ei(ue,a.draggable),Ve.eventCanceled){this._nulling();return}Xs=!1,qn=!1,Zr=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),aT(this.cloneId),aT(this._dragStartId),this.nativeDraggable&&(Oe(document,"drop",this),Oe(r,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),Yr&&Pe(document.body,"user-select",""),Pe(ue,"transform",""),s&&(jr&&(s.cancelable&&s.preventDefault(),!a.dropBubble&&s.stopPropagation()),Me&&Me.parentNode&&Me.parentNode.removeChild(Me),(Je===st||Ct&&Ct.lastPutMode!=="clone")&&et&&et.parentNode&&et.parentNode.removeChild(et),ue&&(this.nativeDraggable&&Oe(ue,"dragend",this),Zv(ue),ue.style["will-change"]="",jr&&!Xs&&Yt(ue,Ct?Ct.options.ghostClass:this.options.ghostClass,!1),Yt(ue,this.options.chosenClass,!1),Bt({sortable:this,name:"unchoose",toEl:st,newIndex:null,newDraggableIndex:null,originalEvent:s}),Je!==st?(Xt>=0&&(Bt({rootEl:st,name:"add",toEl:st,fromEl:Je,originalEvent:s}),Bt({sortable:this,name:"remove",toEl:st,originalEvent:s}),Bt({rootEl:st,name:"sort",toEl:st,fromEl:Je,originalEvent:s}),Bt({sortable:this,name:"sort",toEl:st,originalEvent:s})),Ct&&Ct.save()):Xt!==Qs&&Xt>=0&&(Bt({sortable:this,name:"update",toEl:st,originalEvent:s}),Bt({sortable:this,name:"sort",toEl:st,originalEvent:s})),Ve.active&&((Xt==null||Xt===-1)&&(Xt=Qs,is=Qr),Bt({sortable:this,name:"end",toEl:st,originalEvent:s}),this.save()))),this._nulling()},_nulling:function(){Ht("nulling",this),Je=ue=st=Me=Ss=et=Wn=ss=bs=ni=jr=Xt=is=Qs=Qr=Ys=Jr=Ct=Hn=Ve.dragged=Ve.ghost=Ve.clone=Ve.active=null;var s=this.el;Jn.forEach(function(r){s.contains(r)&&(r.checked=!0)}),Jn.length=Xv=Qv=0},handleEvent:function(s){switch(s.type){case"drop":case"dragend":this._onDrop(s);break;case"dragenter":case"dragover":ue&&(this._onDragOver(s),Vx(s));break;case"selectstart":s.preventDefault();break}},toArray:function(){for(var s=[],r,a=this.el.children,n=0,l=a.length,d=this.options;n<l;n++)r=a[n],oi(r,d.draggable,this.el,!1)&&s.push(r.getAttribute(d.dataIdAttr)||Dx(r));return s},sort:function(s,r){var a={},n=this.el;this.toArray().forEach(function(l,d){var m=n.children[d];oi(m,this.options.draggable,n,!1)&&(a[l]=m)},this),r&&this.captureAnimationState(),s.forEach(function(l){a[l]&&(n.removeChild(a[l]),n.appendChild(a[l]))}),r&&this.animateAll()},save:function(){var s=this.options.store;s&&s.set&&s.set(this)},closest:function(s,r){return oi(s,r||this.options.draggable,this.el,!1)},option:function(s,r){var a=this.options;if(r===void 0)return a[s];var n=ta.modifyOption(this,s,r);typeof n<"u"?a[s]=n:a[s]=r,s==="group"&&US(a)},destroy:function(){Ht("destroy",this);var s=this.el;s[qt]=null,Oe(s,"mousedown",this._onTapStart),Oe(s,"touchstart",this._onTapStart),Oe(s,"pointerdown",this._onTapStart),this.nativeDraggable&&(Oe(s,"dragover",this),Oe(s,"dragenter",this)),Array.prototype.forEach.call(s.querySelectorAll("[draggable]"),function(r){r.removeAttribute("draggable")}),this._onDrop(),this._disableDelayedDragEvents(),Qn.splice(Qn.indexOf(this.el),1),this.el=s=null},_hideClone:function(){if(!ss){if(Ht("hideClone",this),Ve.eventCanceled)return;Pe(et,"display","none"),this.options.removeCloneOnHide&&et.parentNode&&et.parentNode.removeChild(et),ss=!0}},_showClone:function(s){if(s.lastPutMode!=="clone"){this._hideClone();return}if(ss){if(Ht("showClone",this),Ve.eventCanceled)return;ue.parentNode==Je&&!this.options.group.revertClone?Je.insertBefore(et,ue):Ss?Je.insertBefore(et,Ss):Je.appendChild(et),this.options.group.revertClone&&this.animate(ue,et),Pe(et,"display",""),ss=!1}}};function Vx(i){i.dataTransfer&&(i.dataTransfer.dropEffect="move"),i.cancelable&&i.preventDefault()}function Gn(i,s,r,a,n,l,d,m){var v,E=i[qt],D=E.options.onMove,R;return window.CustomEvent&&!_i&&!ea?v=new CustomEvent("move",{bubbles:!0,cancelable:!0}):(v=document.createEvent("Event"),v.initEvent("move",!0,!0)),v.to=s,v.from=i,v.dragged=r,v.draggedRect=a,v.related=n||s,v.relatedRect=l||dt(s),v.willInsertAfter=m,v.originalEvent=d,i.dispatchEvent(v),D&&(R=D.call(E,v,d)),R}function Zv(i){i.draggable=!1}function Mx(){rT=!1}function _x(i,s,r){var a=dt(Zs(r.el,0,r.options,!0)),n=DS(r.el,r.options,Me),l=10;return s?i.clientX<n.left-l||i.clientY<a.top&&i.clientX<a.right:i.clientY<n.top-l||i.clientY<a.bottom&&i.clientX<a.left}function Bx(i,s,r){var a=dt(hT(r.el,r.options.draggable)),n=DS(r.el,r.options,Me),l=10;return s?i.clientX>n.right+l||i.clientY>a.bottom&&i.clientX>a.left:i.clientY>n.bottom+l||i.clientX>a.right&&i.clientY>a.top}function Ox(i,s,r,a,n,l,d,m){var v=a?i.clientY:i.clientX,E=a?r.height:r.width,D=a?r.top:r.left,R=a?r.bottom:r.right,W=!1;if(!d){if(m&&jn<E*n){if(!Zr&&(Jr===1?v>D+E*l/2:v<R-E*l/2)&&(Zr=!0),Zr)W=!0;else if(Jr===1?v<D+jn:v>R-jn)return-Jr}else if(v>D+E*(1-n)/2&&v<R-E*(1-n)/2)return Fx(s)}return W=W||d,W&&(v<D+E*l/2||v>R-E*l/2)?v>D+E/2?1:-1:0}function Fx(i){return ei(ue)<ei(i)?1:-1}function Dx(i){for(var s=i.tagName+i.className+i.src+i.href+i.textContent,r=s.length,a=0;r--;)a+=s.charCodeAt(r);return a.toString(36)}function Rx(i){Jn.length=0;for(var s=i.getElementsByTagName("input"),r=s.length;r--;){var a=s[r];a.checked&&Jn.push(a)}}function Kn(i){return setTimeout(i,0)}function aT(i){return clearTimeout(i)}eo&&Fe(document,"touchmove",function(i){(Ve.active||Xs)&&i.cancelable&&i.preventDefault()});Ve.utils={on:Fe,off:Oe,css:Pe,find:_S,is:function(s,r){return!!oi(s,r,s,!1)},extend:yx,throttle:BS,closest:oi,toggleClass:Yt,clone:FS,index:ei,nextTick:Kn,cancelNextTick:aT,detectDirection:NS,getChild:Zs,expando:qt};Ve.get=function(i){return i[qt]};Ve.mount=function(){for(var i=arguments.length,s=new Array(i),r=0;r<i;r++)s[r]=arguments[r];s[0].constructor===Array&&(s=s[0]),s.forEach(function(a){if(!a.prototype||!a.prototype.constructor)throw"Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(a));a.utils&&(Ve.utils=bi(bi({},Ve.utils),a.utils)),ta.mount(a)})};Ve.create=function(i,s){return new Ve(i,s)};Ve.version=Tx;var ct=[],Kr,nT,oT=!1,eT,tT,Zn,zr;function Nx(){function i(){this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0};for(var s in this)s.charAt(0)==="_"&&typeof this[s]=="function"&&(this[s]=this[s].bind(this))}return i.prototype={dragStarted:function(r){var a=r.originalEvent;this.sortable.nativeDraggable?Fe(document,"dragover",this._handleAutoScroll):this.options.supportPointer?Fe(document,"pointermove",this._handleFallbackAutoScroll):a.touches?Fe(document,"touchmove",this._handleFallbackAutoScroll):Fe(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(r){var a=r.originalEvent;!this.options.dragOverBubble&&!a.rootEl&&this._handleAutoScroll(a)},drop:function(){this.sortable.nativeDraggable?Oe(document,"dragover",this._handleAutoScroll):(Oe(document,"pointermove",this._handleFallbackAutoScroll),Oe(document,"touchmove",this._handleFallbackAutoScroll),Oe(document,"mousemove",this._handleFallbackAutoScroll)),AS(),zn(),Sx()},nulling:function(){Zn=nT=Kr=oT=zr=eT=tT=null,ct.length=0},_handleFallbackAutoScroll:function(r){this._handleAutoScroll(r,!0)},_handleAutoScroll:function(r,a){var n=this,l=(r.touches?r.touches[0]:r).clientX,d=(r.touches?r.touches[0]:r).clientY,m=document.elementFromPoint(l,d);if(Zn=r,a||this.options.forceAutoScrollFallback||ea||_i||Yr){iT(r,this.options,m,a);var v=rs(m,!0);oT&&(!zr||l!==eT||d!==tT)&&(zr&&AS(),zr=setInterval(function(){var E=rs(document.elementFromPoint(l,d),!0);E!==v&&(v=E,zn()),iT(r,n.options,E,a)},10),eT=l,tT=d)}
39else{if(!this.options.bubbleScroll||rs(m,!0)===Ti()){zn();return}iT(r,this.options,rs(m,!1),!1)}}},Mi(i,{pluginName:"scroll",initializeByDefault:!0})}function zn(){ct.forEach(function(i){clearInterval(i.pid)}),ct=[]}function AS(){clearInterval(zr)}var iT=BS(function(i,s,r,a){if(s.scroll){var n=(i.touches?i.touches[0]:i).clientX,l=(i.touches?i.touches[0]:i).clientY,d=s.scrollSensitivity,m=s.scrollSpeed,v=Ti(),E=!1,D;nT!==r&&(nT=r,zn(),Kr=s.scroll,D=s.scrollFn,Kr===!0&&(Kr=rs(r,!0)));var R=0,W=Kr;do{var Q=W,X=dt(Q),ie=X.top,ce=X.bottom,oe=X.left,Z=X.right,se=X.width,J=X.height,ee=void 0,re=void 0,he=Q.scrollWidth,ge=Q.scrollHeight,le=Pe(Q),Te=Q.scrollLeft,Le=Q.scrollTop;Q===v?(ee=se<he&&(le.overflowX==="auto"||le.overflowX==="scroll"||le.overflowX==="visible"),re=J<ge&&(le.overflowY==="auto"||le.overflowY==="scroll"||le.overflowY==="visible")):(ee=se<he&&(le.overflowX==="auto"||le.overflowX==="scroll"),re=J<ge&&(le.overflowY==="auto"||le.overflowY==="scroll"));var ze=ee&&(Math.abs(Z-n)<=d&&Te+se<he)-(Math.abs(oe-n)<=d&&!!Te),Qe=re&&(Math.abs(ce-l)<=d&&Le+J<ge)-(Math.abs(ie-l)<=d&&!!Le);if(!ct[R])for(var _e=0;_e<=R;_e++)ct[_e]||(ct[_e]={});(ct[R].vx!=ze||ct[R].vy!=Qe||ct[R].el!==Q)&&(ct[R].el=Q,ct[R].vx=ze,ct[R].vy=Qe,clearInterval(ct[R].pid),(ze!=0||Qe!=0)&&(E=!0,ct[R].pid=setInterval(function(){a&&this.layer===0&&Ve.active._onTouchMove(Zn);var Lt=ct[this.layer].vy?ct[this.layer].vy*m:0,Tt=ct[this.layer].vx?ct[this.layer].vx*m:0;typeof D=="function"&&D.call(Ve.dragged.parentNode[qt],Tt,Lt,i,Zn,ct[this.layer].el)!=="continue"||OS(ct[this.layer].el,Tt,Lt)}.bind({layer:R}),24))),R++}while(s.bubbleScroll&&W!==v&&(W=rs(W,!1)));oT=E}},30),$S=function(s){var r=s.originalEvent,a=s.putSortable,n=s.dragEl,l=s.activeSortable,d=s.dispatchSortableEvent,m=s.hideGhostForTarget,v=s.unhideGhostForTarget;if(r){var E=a||l;m();var D=r.changedTouches&&r.changedTouches.length?r.changedTouches[0]:r,R=document.elementFromPoint(D.clientX,D.clientY);v(),E&&!E.el.contains(R)&&(d("spill"),this.onSpill({dragEl:n,putSortable:a}))}};function cT(){}cT.prototype={startIndex:null,dragStart:function(s){var r=s.oldDraggableIndex;this.startIndex=r},onSpill:function(s){var r=s.dragEl,a=s.putSortable;this.sortable.captureAnimationState(),a&&a.captureAnimationState();var n=Zs(this.sortable.el,this.startIndex,this.options);n?this.sortable.el.insertBefore(r,n):this.sortable.el.appendChild(r),this.sortable.animateAll(),a&&a.animateAll()},drop:$S};Mi(cT,{pluginName:"revertOnSpill"});function dT(){}dT.prototype={onSpill:function(s){var r=s.dragEl,a=s.putSortable,n=a||this.sortable;n.captureAnimationState(),r.parentNode&&r.parentNode.removeChild(r),n.animateAll()},drop:$S};Mi(dT,{pluginName:"removeOnSpill"});Ve.mount(new Nx);Ve.mount(dT,cT);var to=Ve;var ia=class{constructor(s){this.response=s}get statusCode(){return this.response.status}get redirected(){return this.response.redirected}get ok(){return this.response.ok}get unauthenticated(){return this.statusCode===401}get unprocessableEntity(){return this.statusCode===422}get authenticationURL(){return this.response.headers.get("WWW-Authenticate")}get contentType(){return(this.response.headers.get("Content-Type")||"").replace(/;.*$/,"")}get headers(){return this.response.headers}get html(){return this.contentType.match(/^(application|text)\/(html|xhtml\+xml)$/)?this.text:Promise.reject(new Error(`Expected an HTML response but got "${this.contentType}" instead`))}get json(){return this.contentType.match(/^application\/.*json$/)?this.responseJson||(this.responseJson=this.response.json()):Promise.reject(new Error(`Expected a JSON response but got "${this.contentType}" instead`))}get text(){return this.responseText||(this.responseText=this.response.text())}get isTurboStream(){return this.contentType.match(/^text\/vnd\.turbo-stream\.html/)}get isScript(){return this.contentType.match(/\b(?:java|ecma)script\b/)}async renderTurboStream(){if(this.isTurboStream)window.Turbo?await window.Turbo.renderStreamMessage(await this.text):console.warn("You must set `window.Turbo = Turbo` to automatically process Turbo Stream events with request.js");else return Promise.reject(new Error(`Expected a Turbo Stream response but got "${this.contentType}" instead`))}async activeScript(){if(this.isScript){let s=document.createElement("script"),r=document.querySelector("meta[name=csp-nonce]");if(r){let a=r.nonce===""?r.content:r.nonce;a&&s.setAttribute("nonce",a)}s.innerHTML=await this.text,document.body.appendChild(s)}else return Promise.reject(new Error(`Expected a Script response but got "${this.contentType}" instead`))}};var sa=class{static register(s){this.interceptor=s}static get(){return this.interceptor}static reset(){this.interceptor=void 0}};function GS(i){let s=document.cookie?document.cookie.split("; "):[],r=`${encodeURIComponent(i)}=`,a=s.find(n=>n.startsWith(r));if(a){let n=a.split("=").slice(1).join("=");if(n)return decodeURIComponent(n)}}function WS(i){let s={};for(let r in i){let a=i[r];a!==void 0&&(s[r]=a)}return s}function uT(i){let s=document.head.querySelector(`meta[name="${i}"]`);return s&&s.content}function jS(i){return[...i].reduce((s,[r,a])=>
39s.concat(typeof a=="string"?[[r,a]]:[]),[])}function KS(i,s){for(let[r,a]of s)a instanceof window.File||(i.has(r)&&!r.includes("[]")?(i.delete(r),i.set(r,a)):i.append(r,a))}var yi=class{constructor(s,r,a={}){this.method=s,this.options=a,this.originalUrl=r.toString()}async perform(){try{let n=sa.get();n&&await n(this)}catch(n){console.error(n)}let s=window.Turbo?window.Turbo.fetch:window.fetch,r=new ia(await s(this.url,this.fetchOptions));return r.unauthenticated&&r.authenticationURL?Promise.reject(window.location.href=r.authenticationURL):(r.isScript&&await r.activeScript(),(r.ok||r.unprocessableEntity)&&r.isTurboStream&&await r.renderTurboStream(),r)}addHeader(s,r){let a=this.additionalHeaders;a[s]=r,this.options.headers=a}sameHostname(){if(!this.originalUrl.startsWith("http:")&&!this.originalUrl.startsWith("https:"))return!0;try{return new URL(this.originalUrl).hostname===window.location.hostname}catch{return!0}}get fetchOptions(){return{method:this.method.toUpperCase(),headers:this.headers,body:this.formattedBody,signal:this.signal,credentials:this.credentials,redirect:this.redirect,keepalive:this.keepalive}}get headers(){let s={"X-Requested-With":"XMLHttpRequest","Content-Type":this.contentType,Accept:this.accept};return this.sameHostname()&&(s["X-CSRF-Token"]=this.csrfToken),WS(Object.assign(s,this.additionalHeaders))}get csrfToken(){return GS(uT("csrf-param"))||uT("csrf-token")}get contentType(){return this.options.contentType?this.options.contentType:this.body==null||this.body instanceof window.FormData?void 0:this.body instanceof window.File?this.body.type:"application/json"}get accept(){switch(this.responseKind){case"html":return"text/html, application/xhtml+xml";case"turbo-stream":return"text/vnd.turbo-stream.html, text/html, application/xhtml+xml";case"json":return"application/json, application/vnd.api+json";case"script":return"text/javascript, application/javascript";default:return"*/*"}}get body(){return this.options.body}get query(){let s=(this.originalUrl.split("?")[1]||"").split("#")[0],r=new URLSearchParams(s),a=this.options.query;a instanceof window.FormData?a=jS(a):a instanceof window.URLSearchParams?a=a.entries():a=Object.entries(a||{}),KS(r,a);let n=r.toString();return n.length>0?`?${n}`:""}get url(){return this.originalUrl.split("?")[0].split("#")[0]+this.query}get responseKind(){return this.options.responseKind||"html"}get signal(){return this.options.signal}get redirect(){return this.options.redirect||"follow"}get credentials(){return this.options.credentials||"same-origin"}get keepalive(){return this.options.keepalive||!1}get additionalHeaders(){return this.options.headers||{}}get formattedBody(){let s=Object.prototype.toString.call(this.body)==="[object String]";return this.headers["Content-Type"]==="application/json"&&!s?JSON.stringify(this.body):this.body}};async function Ee(i,s){return new yi("get",i,s).perform()}async function H(i,s){return new yi("post",i,s).perform()}async function ve(i,s){return new yi("patch",i,s).perform()}async function Ye(i,s){return new yi("delete",i,s).perform()}var zS=class extends u{initialize(){this.onUpdate=this.onUpdate.bind(this)}connect(){this.sortable=new to(this.element,{...this.defaultOptions,...this.options})}disconnect(){this.sortable.destroy(),this.sortable=void 0}async onUpdate({item:s,newIndex:r}){if(!s.dataset.sortableUpdateUrl)return;let a=this.resourceNameValue?`${this.resourceNameValue}[${this.paramNameValue}]`:this.paramNameValue,n=new FormData;return n.append(a,r+1),await new yi(this.methodValue,s.dataset.sortableUpdateUrl,{body:n,responseKind:this.responseKindValue}).perform()}get options(){return{animation:this.animationValue||this.defaultOptions.animation||150,handle:this.handleValue||this.defaultOptions.handle||void 0,onUpdate:this.onUpdate}}get defaultOptions(){return{}}};zS.values={resourceName:String,paramName:{type:String,default:"position"},responseKind:{type:String,default:"html"},animation:Number,handle:String,method:{type:String,default:"patch"}};var YS=zS;var io=class extends u{static values={eventName:String,eventDetail:{type:Object,default:{}}};emitEvent(){document.dispatchEvent(new CustomEvent(this.eventNameValue,{bubbles:!0,detail:this.eventDetailValue}))}};var He=class{constructor(){this.userAgent=navigator.userAgent.toLowerCase()}isSafariIOS(){return/iphone|ipad|ipod/.test(this.userAgent)&&/safari/.test(this.userAgent)&&!/crios/.test(this.userAgent)&&!/fxios/.test(this.userAgent)&&!/chrome/.test(this.userAgent)}isIOS(){return/iphone|ipad|ipod/.test(this.userAgent)}isAndroid(){return/android/.test(this.userAgent)}isMobile(){return this.isIOS()||this.isAndroid()}isChrome(){return/chrome/.test(this.userAgent)&&!/edge/.test(this.userAgent)}isSafari(){return/safari/.test(this.userAgent)&&!/chrome/.test(this.userAgent)}isPwa(){return window.matchMedia("(display-mode: standalone)").matches}};var so=class extends u{static values={particleCount:{type:Number,default:150},duration:{type:Number,default:4e3},colors:{type:Array,default:["#F97187","#9A92FF","#FCD227","#4346E6","#FF869B"]},autoStart:{type:Boolean,default:!1},scope:{type:String,default:"fullscreen"}};connect(){this.deviceDetector=new He,this.autoStartValue&&(this.autoStartValue=!1,this.burst())}disconnect(){this.#n()}get#e(){return this.deviceDetector?.isMobile()||window.innerWidth<768}get#t(){return this.scopeValue==="container"}burst(){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;let i=this.#e;this.#n(),this.#i(),this.particles=this.#s(i),this.#r(i)}#i(){this.canvas=document.createElement("canvas"),this.canvas.setAttribute("aria-hidden","true"),this.#t?(window.getComputedStyle(this.element).position==="static"&&(this.element.style.position="relative",this.originalPositionWasStatic=!0),this.canvas.style.cssText="position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;",this.canvas.width=this.element.clientWidth,this.canvas.height=this.element.clientHeight,this.element.appendChild(this.canvas),this.resizeObserver=new ResizeObserver(()=>{this.canvas&&(this.canvas.width=this.element.clientWidth,this.canvas.height=this.element.clientHeight)}),this.resizeObserver.observe(this.element)):(this.canvas.style.cssText="position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;pointer-events:none;z-index:9999;",this.canvas.width=window.innerWidth,this.canvas.height=window.innerHeight,document.body.appendChild(this.canvas),typeof this.canvas.showPopover=="function"&&(this.canvas.setAttribute("popover","manual"),this.canvas.showPopover())),this.ctx=this.canvas.getContext("2d")}#s(i){let s=[],r=this.canvas.width/2,a=this.canvas.height+20,n=i?Math.min(80,this.particleCountValue):this.particleCountValue,l=i?30:60;for(let d=0;d<n;d++){let m=i?80:140,v=i?230:200,E=(Math.random()*m+v)*Math.PI/180,D=i?32:28,R=i?18:22,W=Math.random()*R+D,Q=i?Math.random()*8+4:Math.random()*15+8,X=i?6:8,ie=i?8:12;s.push({x:r+(Math.random()-.5)*l,y:a,z:0,vx:Math.cos(E)*W*(.8+Math.random()*.4),vy:Math.sin(E)*W*(.9+Math.random()*.2),vz:-Q,size:Math.random()*ie+X,baseSize:Math.random()*ie+X,color:this.colorsValue[Math.floor(Math.random()*this.colorsValue.length)],rotation:Math.random()*360,rotationX:Math.random()*360,rotationY:Math.random()*360,rotationSpeedZ:(Math.random()-.5)*25,rotationSpeedX:(Math.random()-.5)*20,rotationSpeedY:(Math.random()-.5)*20,shape:Math.random()>.4?"circle":"rect",opacity:1,gravity:i?.35+Math.random()*.15:.6+Math.random()*.3,wobble:Math.random()*Math.PI*2,wobbleSpeed:Math.random()*.15+.05})}return s}#r(i){let s=Date.now(),r=i?this.durationValue*.8:this.durationValue,a=0,n=s,l=i?null:this.#a(),d=1e3/60,m=()=>{let v=Date.now(),E=v-s;if(E>r||!this.canvas){this.#n();return}let D=Math.min((v-n)/d,3);n=v,a++,this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),(!i||a%5===0)&&this.particles.sort((R,W)=>
39W.z-R.z),this.particles.forEach(R=>{R.vy+=R.gravity*D,R.vz+=(i?.6:.8)*D,R.x+=R.vx*D,R.y+=R.vy*D,R.z+=R.vz*D;let W=Math.pow(.985,D);R.vx*=W,R.vy*=Math.pow(.995,D),R.wobble+=R.wobbleSpeed*D,R.x+=Math.sin(R.wobble)*(i?.8:1.5)*D,R.rotation+=R.rotationSpeedZ*D,R.rotationX+=R.rotationSpeedX*D,R.rotationY+=R.rotationSpeedY*D;let Q=i?600:800,X=Q/(Q+R.z);R.size=R.baseSize*Math.max(.3,Math.min(i?2:2.5,X)),E>r*.55&&(R.opacity=Math.max(0,1-(E-r*.55)/(r*.45)));let ie=Math.abs(Math.cos(R.rotationY*Math.PI/180)),ce=Math.abs(Math.cos(R.rotationX*Math.PI/180));if(this.ctx.save(),this.ctx.globalAlpha=R.opacity,this.ctx.translate(R.x,R.y),this.ctx.rotate(R.rotation*Math.PI/180),this.ctx.scale(.3+ie*.7,.3+ce*.7),this.ctx.fillStyle=i?R.color:l[R.color],R.shape==="circle")this.ctx.beginPath(),this.ctx.arc(0,0,R.size/2,0,Math.PI*2),this.ctx.fill();else{let oe=R.size,Z=R.size*.6;this.ctx.beginPath(),this.ctx.roundRect(-oe/2,-Z/2,oe,Z,2),this.ctx.fill()}this.ctx.restore()}),this.animationId=window.requestAnimationFrame(m)};this.animationId=window.requestAnimationFrame(m)}#a(){let i={};return this.colorsValue.forEach(r=>{let a=this.ctx.createRadialGradient(-2,-2,0,0,0,10);a.addColorStop(0,this.#o(r,40)),a.addColorStop(.5,r),a.addColorStop(1,this.#l(r,30)),i[r]=a}),i}#n(){this.animationId&&(window.cancelAnimationFrame(this.animationId),this.animationId=null),this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),this.originalPositionWasStatic&&(this.element.style.position="",this.originalPositionWasStatic=!1),this.canvas&&this.canvas.remove(),this.canvas=null,this.ctx=null,this.particles=[]}#o(i,s){let r=parseInt(i.replace("#",""),16),a=Math.round(2.55*s),n=Math.min((r>>16)+a,255),l=Math.min((r>>8&255)+a,255),d=Math.min((r&255)+a,255);return`#${(1<<24|n<<16|l<<8|d).toString(16).slice(1)}`}#l(i,s){let r=parseInt(i.replace("#",""),16),a=Math.round(2.55*s),n=Math.max((r>>16)-a,0),l=Math.max((r>>8&255)-a,0),d=Math.max((r&255)-a,0);return`#${(1<<24|n<<16|l<<8|d).toString(16).slice(1)}`}};var Et=class extends u{captureError(s,r={}){let a={controller:this.identifier,element:this.element?.outerHTML?.substring(0,200),...r};Ge(s,a)}};var ro={listening:{textColor:"text-[#5E5CFF]",glowColor:"#5E5CFF",ringClasses:"ring-2 ring-[#5E5CFF]",modeIndicatorTarget:"modeIndicatorListening"},speaking:{textColor:"text-green-400",glowColor:"#21F051",ringClasses:"ring-2 ring-green-400",modeIndicatorTarget:"modeIndicatorSpeaking"},connecting:{textColor:"text-gray-400",glowColor:"#656565",ringClasses:"ring-2 ring-[#898989]",modeIndicatorTarget:"modeIndicatorConnecting"},muted:{textColor:"text-gray-400",glowColor:"#656565",ringClasses:"ring-2 ring-[#898989]",modeIndicatorTarget:"modeIndicatorMuted"}},Ux=Object.values(ro).map(i=>i.modeIndicatorTarget);function XS(i){return i.charAt(0).toUpperCase()+i.slice(1)}function QS(i,s){for(let a of Ux){let n=`has${XS(a)}Target`;i[n]&&i[`${a}Target`].classList.add("hidden")}if(!s)return;let r=`has${XS(s)}Target`;i[r]&&i[`${s}Target`].classList.remove("hidden")}function gT(i,s,...r){for(let a of[...i.classList])a.startsWith(s)&&i.classList.remove(a);i.classList.add(...r)}var ao=class extends Et{static targets=["normalCenter","normalRight","callBarCenter","callBarRight","statusText","timer","modeIndicatorConnecting","modeIndicatorListening","modeIndicatorSpeaking","modeIndicatorMuted","micOnIcon","micOffIcon","bottomGlow","bottomGlowInner","avatarRing"];show(){this.#e(!0)}hide(){this.#e(!1),this.#i(),this.#r()}setMode(i){let s=ro[i]||ro.listening;QS(this,s.modeIndicatorTarget),this.#t(s.glowColor),this.#s(s.ringClasses)}setStatus(i,s="text-gray-400"){this.hasStatusTextTarget&&(this.statusTextTarget.textContent=i,gT(this.statusTextTarget,"text-",s))}setMicMuted(i){this.hasMicOnIconTarget&&this.micOnIconTarget.classList.toggle("hidden",i),this.hasMicOffIconTarget&&this.micOffIconTarget.classList.toggle("hidden",!i)}showTimer(){this.hasTimerTarget&&this.timerTarget.classList.remove("hidden")}hideTimer(){this.hasTimerTarget&&this.timerTarget.classList.add("hidden")}updateTimer(i){this.hasTimerTarget&&(this.timerTarget.textContent=i)}#e(i){this.hasNormalCenterTarget&&(this.normalCenterTarget.classList.toggle("hidden",i),this.normalCenterTarget.classList.toggle("inline-flex",!i)),this.hasNormalRightTarget&&(this.normalRightTarget.classList.toggle("hidden",i),this.normalRightTarget.classList.toggle("flex",!i)),this.hasCallBarCenterTarget&&(this.callBarCenterTarget.classList.toggle("hidden",!i),this.callBarCenterTarget.classList.toggle("inline-flex",i)),this.hasCallBarRightTarget&&(this.callBarRightTarget.classList.toggle("hidden",!i),this.callBarRightTarget.classList.toggle("flex",i))}#t(i){this.hasBottomGlowTarget&&this.hasBottomGlowInnerTarget&&(this.bottomGlowTarget.classList.remove("hidden"),this.bottomGlowInnerTarget.style.setProperty("--glow-color",i))}#i(){this.hasBottomGlowTarget&&this.bottomGlowTarget.classList.add("hidden")}#s(i){this.hasAvatarRingTarget&&(this.#r(),this.avatarRingTarget.classList.add(...i.split(" ")))}#r(){this.hasAvatarRingTarget&&gT(this.avatarRingTarget,"ring-")}};function Hx(){return window.mixpanelDefaultProperties||{}}function $t(i={}){return{...Hx(),...i}}var qx=6,$x=.25,Gx=.75,Wx=48,JS="height 250ms ease-out",no=class extends u{static targets=["panel","content","scrim","grabber","grabberDot"];static values={profileId:String,conversationId:String,eventName:String,modeSwitchTrackUrl:String};connect(){this.isOpen=!1,this.isDragging=!1,this.dragMoved=!1,this.suppressClick=!1,this.boundDragMove=this.#e.bind(this),this.boundDragEnd=this.#t.b
39ind(this),this.boundKeydown=this.#n.bind(this),this.boundResize=this.#l.bind(this),document.addEventListener("keydown",this.boundKeydown),window.addEventListener("resize",this.boundResize),this.panelTarget.style.transition=JS,this.#r()}disconnect(){document.removeEventListener("keydown",this.boundKeydown),window.removeEventListener("resize",this.boundResize),this.#u()}toggle(i){if(this.suppressClick){this.suppressClick=!1;return}this.isOpen?this.#s():this.#i("tap",i?.detail===0)}close(){this.#s()}syncGrabberDot(){let i=this.contentTarget.querySelector("[data-notification-dot-target='dot']:not(.hidden), [data-menu-dot]:not(.hidden)");this.grabberDotTargets.forEach(s=>s.classList.toggle("hidden",!i))}dismissMenuDot(i){let s=i.currentTarget.querySelector("[data-menu-dot]");s&&s.classList.add("hidden"),this.syncGrabberDot()}dragStart(i){!i.isPrimary||i.button!==0||(this.isDragging=!0,this.dragMoved=!1,this.startY=i.clientY,this.startHeight=this.panelTarget.getBoundingClientRect().height,this.panelTarget.style.transition="none",document.addEventListener("pointermove",this.boundDragMove),document.addEventListener("pointerup",this.boundDragEnd),document.addEventListener("pointercancel",this.boundDragEnd),i.preventDefault())}#e(i){if(!this.isDragging)return;let s=i.clientY-this.startY;Math.abs(s)>qx&&(this.dragMoved=!0);let r=Math.min(Math.max(this.startHeight+s,0),this.#h());this.panelTarget.style.height=`${r}px`,this.#a(),this.scrimTarget.classList.toggle("hidden",r===0)}#t(i){if(!this.isDragging)return;if(this.#u(),this.isDragging=!1,this.panelTarget.style.transition=JS,this.suppressClick=!0,setTimeout(()=>{this.suppressClick=!1},0),i.type!=="pointerup"){this.#r();return}if(!this.dragMoved){this.isOpen?this.#s():this.#i("tap");return}let s=this.panelTarget.getBoundingClientRect().height,r=this.isOpen?Gx:$x;s>this.#h()*r?this.#i("drag"):this.#s()}#i(i,s=!1){let r=this.isOpen;this.isOpen=!0,this.#r(),s&&this.contentTarget.querySelector("button:not([disabled]), a[href]")?.focus(),r||this.#c(i)}#s(){this.isOpen=!1,this.#r()}#r(){let i=this.isOpen?this.#h():0;this.panelTarget.style.height=`${i}px`,this.contentTarget.style.maxHeight=this.isOpen?`${i}px`:"",this.panelTarget.toggleAttribute("inert",!this.isOpen),this.#a(),this.scrimTarget.classList.toggle("hidden",!this.isOpen),this.grabberTarget.setAttribute("aria-expanded",this.isOpen.toString())}#a(){this.scrimTarget.style.top=`${this.panelTarget.getBoundingClientRect().top}px`}#n(i){this.isOpen&&(i.key==="Escape"?(this.#s(),this.grabberTarget.focus()):i.key==="Tab"&&this.#o(i))}#o(i){let s=[...this.contentTarget.querySelectorAll("button:not([disabled]), a[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex='-1'])"),this.grabberTarget],r=s[0],a=s.at(-1),n=document.activeElement;!s.includes(n)||i.shiftKey&&n===r?(i.preventDefault(),(i.shiftKey?a:r).focus()):!i.shiftKey&&n===a&&(i.preventDefault(),r.focus())}#l(){this.isOpen&&!this.isDragging&&this.#r()}#h(){let i=window.innerHeight-this.panelTarget.getBoundingClientRect().top-Wx;return Math.max(Math.min(this.contentTarget.scrollHeight,i),0)}#c(i){this.modeSwitchTrackUrlValue&&H(this.modeSwitchTrackUrlValue).catch(()=>{}),!(typeof window.mixpanel>"u"||typeof window.mixpanel.track!="function")&&window.mixpanel.track(this.eventNameValue,$t({trigger:i,profile_id:this.profileIdValue,conversation_id:this.conversationIdValue}))}#u(){document.removeEventListener("pointermove",this.boundDragMove),document.removeEventListener("pointerup",this.boundDragEnd),document.removeEventListener("pointercancel",this.boundDragEnd)}};var Re=class{static _queue=Promise.resolve();static markAsShown(s){return this._queue=this._queue.then(()=>this._post(s)),this._queue}static async _post(s){try{return(await H("/user_notifications/mark_as_shown",{body:{notification_type:s},contentType:"application/json"})).ok?!0:(console.error("Failed to mark notification as shown"),!1)}catch(r){return console.error("Error marking notification as shown:",r),!1}}};var oo=class extends u{static targets=["dot"];static values={notificationType:String};async dismiss(){if(this.dismissed)return;this.dismissed=!0;let i=this.dotTargets;if(i.forEach(r=>r.classList.add("hidden")),!await Re.markAsShown(this.notificationTypeValue)){this.dismissed=!1,i.forEac
39h(r=>r.classList.remove("hidden")),this.dispatch("restored",{detail:{notificationType:this.notificationTypeValue}});return}this.dispatch("dismissed",{detail:{notificationType:this.notificationTypeValue}})}};function jx(i,s){let r;return(...a)=>{let n=this;clearTimeout(r),r=setTimeout(()=>i.apply(n,a),s)}}var ra=class extends u{initialize(){this.autogrow=this.autogrow.bind(this)}connect(){this.element.style.overflow="hidden";let s=this.resizeDebounceDelayValue;this.onResize=s>0?jx(this.autogrow,s):this.autogrow,this.autogrow(),this.element.addEventListener("input",this.autogrow),window.addEventListener("resize",this.onResize)}disconnect(){window.removeEventListener("resize",this.onResize)}autogrow(){this.element.style.height="auto",this.element.style.height=`${this.element.scrollHeight}px`}};ra.values={resizeDebounceDelay:{type:Number,default:100}};var mT=class extends u{connect(){this.class=this.hasHiddenClass?this.hiddenClass:"hidden"}toggle(){this.itemTargets.forEach(s=>{s.classList.toggle(this.class)})}show(){this.itemTargets.forEach(s=>{s.classList.remove(this.class)})}hide(){this.itemTargets.forEach(s=>{s.classList.add(this.class)})}};mT.targets=["item"],mT.classes=["hidden"];var ZS=mT;var lo=class extends ZS{static targets=["toggleIcon","item"];toggle(){super.toggle(),this.hasToggleIconTarget&&this.toggleIconTarget.classList.toggle("rotate-180")}};var ho=class extends u{block(i){i.preventDefault()}};var Kx=(i,s,r)=>
39{let a=i;return r===!0?a=`${s.identifier}:${i}`:typeof r=="string"&&(a=`${r}:${i}`),a},zx=(i,s,r)=>{let{bubbles:a,cancelable:n,composed:l}=s||{bubbles:!0,cancelable:!0,composed:!0};return s&&Object.assign(r,{originalEvent:s}),new CustomEvent(i,{bubbles:a,cancelable:n,composed:l,detail:r})};function Yx(i){let s=i.getBoundingClientRect(),r=window.innerHeight||document.documentElement.clientHeight,a=window.innerWidth||document.documentElement.clientWidth,n=s.top<=r&&s.top+s.height>0,l=s.left<=a&&s.left+s.width>0;return n&&l}var Xx={events:["click","touchend"],onlyVisible:!0,dispatchEvent:!0,eventPrefix:!0},Ot=(i,s={})=>{let r=i,{onlyVisible:a,dispatchEvent:n,events:l,eventPrefix:d}=Object.assign({},Xx,s),m=R=>{let W=s?.element||r.element;if(!(R.target instanceof Node&&W.contains(R.target)||!Yx(W)&&a)&&(r.clickOutside&&r.clickOutside(R),n)){let Q=Kx("click:outside",r,d),X=zx(Q,R,{controller:r});W.dispatchEvent(X)}},v=()=>{l?.forEach(R=>{window.addEventListener(R,m,!0)})},E=()=>{l?.forEach(R=>{window.removeEventListener(R,m,!0)})},D=r.disconnect.bind(r);return Object.assign(r,{disconnect(){E(),D()}}),v(),[v,E]};var Qx=class extends u{};Qx.debounces=[];var Jx=class extends u{};Jx.throttles=[];var co=class extends u{static targets=["toggleComponent"];static values={cssClass:String,disableClickOutside:Boolean,stopPropagation:Boolean,componentId:String};connect(){this.disableClickOutsideValue||Ot(this)}get toggleable(){return this.hasToggleComponentTarget?this.toggleComponentTarget:this.hasComponentIdValue?document.getElementById(this.componentIdValue):null}toggle(i){(i?.key===" "||i?.key==="Space")&&i.preventDefault();let s=this.toggleable;if(!s)return;let r=this.application.getControllerForElementAndIdentifier(s,"dialog");r?r.open():s.classList.toggle(this.cssClassValue),this.stopPropagationValue&&i?.stopPropagation()}close(){let i=this.toggleable;i&&i.classList.add(this.cssClassValue)}clickOutside(i){let s=this.toggleable;s&&!this.disableClickOutsideValue&&s.classList.add(this.cssClassValue)}};var uo=class extends u{static outlets=["modal"];openModal(){this.hasModalOutlet&&this.modalOutlet.openModal()}};var go=class extends u{static outlets=["dialog"];open(){this.hasDialogOutlet&&this.dialogOutlet.open()}};var mo=class extends u{static outlets=["dialog"];static values={planTitle:String,planPrice:String,planPricePeriod:String,modalSelector:String};open(){this.#e(),this.hasDialogOutlet&&this.dialogOutlet.open()}#e(){let i=this.modalSelectorValue?document.querySelector(this.modalSelectorValue):null;if(!i)return;let s=i.querySelector("[data-payment-method-modal-target='planTitle']"),r=i.querySelector("[data-payment-method-modal-target='planPrice']"),a=i.querySelector("[data-payment-method-modal-target='planPricePeriod']");s&&this.planTitleValue&&(s.textContent=this.planTitleValue),r&&this.planPriceValue&&(r.textContent=this.planPriceValue),a&&this.planPricePeriodValue&&(a.textContent=this.planPricePeriodValue)}};var Zx=["pixBankTransferButton","bankTransferButton","coingateBuyButton"],eI=["monthly","quarterly","yearly"],po=class extends u{static targets=["option","field","billingText","trigger","triggerLabel","menu"];static values={subscriptionName:String};connect(){this.#e(),this.#t(),this.boundCloseMenus=this.#a.bind(this),document.addEventListener("click",this.boundCloseMenus),this.boundKeydown=this.#r.bind(this),document.addEventListener("keydown",this.boundKeydown),this.boundPlanChanged=this.#i.bind(this),this.element.addEventListener("subscription:planChanged",this.boundPlanChanged)}disconnect(){document.removeEventListener("click",this.boundCloseMenus),document.removeEventListener("keydown",this.boundKeydown),this.element.removeEventListener("subscription:planChanged",this.boundPlanChanged)}toggle(i){let s=i.currentTarget.closest(".token-tier-select")?.querySelector('[data-token-tier-picker-target="menu"]');if(!s)return;let r=s.classList.contains("hidden");this.#a(),r&&(s.classList.remove("hidden"),i.currentTarget.setAttribute("aria-expanded","true"))}select(i){let s=parseInt(i.currentTarget.dataset.tokens,10);this.#a(),i.currentTarget.closest(".token-tier-select")?.querySelector('[data-token-tier-picker-target="trigger"]')?.focus(),s!==this.selectedTokens&&(this.selectedTokens=s,this.#c(i.currentTarget.dataset.label))}#e(){this.selectedTokens=this.#o();let i=this.#n(this.selectedTokens);i&&this.#c(i.dataset.label)}#t(){let i=new URL(window.location.href),s=parseInt(i.searchParams.get("token_tier"),10),r=this.#n(s);r&&(i.searchParams.delete("token_tier"),window.history.replaceState(window.history.state,"",i),s!==this.selectedTokens&&(this.selectedTokens=s,this.#c(r.dataset.label)))}#i(i){let s=i.detail?.planType;
39s&&!eI.includes(s)&&this.#h()?this.#s():this.#v()}#s(){this.selectedTokens=this.#l();let i=this.#n(this.selectedTokens);i&&this.#c(i.dataset.label)}#r(i){if(i.key!=="Escape")return;let s=this.triggerTargets.find(r=>r.getAttribute("aria-expanded")==="true");s&&(this.#a(),s.focus())}#a(){this.menuTargets.forEach(i=>i.classList.add("hidden")),this.triggerTargets.forEach(i=>i.setAttribute("aria-expanded","false"))}#n(i){return this.optionTargets.find(s=>parseInt(s.dataset.tokens,10)===i)}#o(){let i=this.optionTargets.find(s=>s.dataset.default==="true");return i?parseInt(i.dataset.tokens,10):null}#l(){let i=this.optionTargets.find(s=>s.dataset.base==="true");return i?parseInt(i.dataset.tokens,10):null}#h(){return this.selectedTokens&&this.selectedTokens!==this.#l()}#c(i){this.#u(i),this.#g(),this.#d(),this.#m(),this.#f(),this.#p(),this.#v()}#u(i){let s=this.#h();this.optionTargets.forEach(r=>{let a=parseInt(r.dataset.tokens,10)===this.selectedTokens;r.setAttribute("aria-selected",a?"true":"false")}),this.triggerLabelTargets.forEach(r=>{r.textContent=i}),this.triggerTargets.forEach(r=>r.classList.toggle("token-tier-trigger-active",s))}#g(){this.element.querySelectorAll("[data-token-tier-card]").forEach(i=>{let s=i.dataset[`tierPrice${this.selectedTokens}`],r=i.dataset[`tierAmount${this.selectedTokens}`],a=i.dataset[`tierModalTitle${this.selectedTokens}`],n=i.dataset[`tierComparePrice${this.selectedTokens}`];if(!s)return;let l=i.querySelector("[data-token-tier-price]");l&&(l.textContent=s);let d=i.querySelector("[data-token-tier-compare-price]");d&&n&&(d.textContent=n);let m=i.closest("[data-plan-type]");m&&r&&(m.dataset.planPrice=r),"subCardButtonPlanPriceValue"in i.dataset&&(i.dataset.subCardButtonPlanPriceValue=s,i.dataset.subCardButtonPlanTitleValue=a);let v=i.querySelector("button[data-plan-title]");v&&(v.dataset.planPrice=s,v.dataset.planTitle=a)})}#d(){this.element.querySelectorAll("[data-token-tier-current-plan]").forEach(i=>{let s=parseInt(i.dataset.tokenTierCurrentPlan,10),r=this.selectedTokens===s;i.classList.toggle("token-tier-current-locked",r),i.classList.toggle("opacity-75",r);let a=i.querySelector("[data-token-tier-current-plan-cta]");a&&(a.textContent=r?i.dataset.lockedLabel:i.dataset.unlockedLabel)})}#m(){this.#b(this.billingTextTargets,"tierBilling")}#f(){this.#b(this.element.querySelectorAll("[data-token-tier-upgrade-summary]"),"tierSummary")}
39#p(){this.#b(document.querySelectorAll(`[data-token-tier-benefit="${this.subscriptionNameValue}"]`),"tierBenefit")}#b(i,s){i.forEach(r=>{let a=r.dataset[`${s}${this.selectedTokens}`];a&&(r.textContent=a)})}#v(){let i=this.#h();this.fieldTargets.forEach(s=>{s.value=this.selectedTokens}),this.#T(i),this.#y(i)}#T(i){let s=Zx.map(r=>`[data-subscription-target="${r}"]`).join(", ");this.element.querySelectorAll(s).forEach(r=>{r.classList.toggle("token-tier-lane-hidden",i)})}#y(i){let s=`[data-token-tier-one-click-field="${this.subscriptionNameValue}"]`;document.querySelectorAll(s).forEach(r=>{r.value="tokenTierExplicit"in r.dataset?this.selectedTokens:i?this.selectedTokens:"";let a=r.closest('[data-controller~="one-click-modal"]');if(!a)return;"tokenTierBasePrices"in a.dataset||(a.dataset.tokenTierBasePrices=a.dataset.oneClickModalPricesValue||"{}");let n=JSON.parse(a.dataset.tokenTierBasePrices),l=JSON.parse(r.dataset.tokenTierPrices||"{}"),d={...n};(i||"tokenTierExplicit"in r.dataset)&&Object.keys(d).forEach(E=>{let D=l[E]?.[this.selectedTokens];D&&(d[E]=D)}),a.dataset.oneClickModalPricesValue=JSON.stringify(d);let m=this.#S(a.querySelector('[data-one-click-modal-target="planId"]')?.value),v=a.querySelector('[data-one-click-modal-target="price"]');v&&m&&d[m]&&(v.textContent=d[m])})}#S(i){return i?i.endsWith("-monthly")?"monthly":i.endsWith("-quarterly")?"quarterly":i.endsWith("-yearly")?"yearly":null:null}};var fo=class extends u{static targets=["item","indicator"];connect(){this.scrollContainer=this.element.querySelector("[data-scroll-container]"),this.scrollContainer&&(this.boundHandleScroll=this.handleScroll.bind(this),this.scrollContainer.addEventListener("scroll",this.boundHandleScroll,{passive:!0})),this.updateIndicators(0)}disconnect(){this.scrollContainer&&this.boundHandleScroll&&this.scrollContainer.removeEventListener("scroll",this.boundHandleScroll)}handleScroll(){if(!this.itemTargets.length)return;let i=this.scrollContainer,s=i.scrollLeft+i.clientWidth/2,r=0,a=1/0;this.itemTargets.forEach((n,l)=>{let d=n.offsetLeft+n.offsetWidth/2,m=Math.abs(d-s);m<a&&(a=m,r=l)}),this.updateIndicators(r)}jumpToSlide(i){let s=parseInt(i.currentTarget.dataset.index,10),r=this.itemTargets[s];r&&r.scrollIntoView({behavior:"smooth",inline:"center",block:"nearest"})}updateIndicators(i){this.indicatorTargets.forEach((s,r)=>{s.classList.toggle("opacity-100",r===i),s.classList.toggle("opacity-30",r!==i)})}};var vo=class extends u{static targets=["tab","panel","mobileTab","desktopTab"];static values={defaultTab:String,classes:Object,restoreFromStorage:{type:Boolean,default:!1}};connect(){let i=null;this.restoreFromStorageValue&&(i=this.#a());let s=i||this.defaultTabValue||this.tabTargets[0]?.dataset.tabId;s&&this.#n(this.#t(s,{eagerLoadFrames:!1})),document.addEventListener("tabs-panels:activate",this.#e)}disconnect(){document.removeEventListener("tabs-panels:activate",this.#e)}switchTab(i){i.preventDefault();let s=i.currentTarget.dataset.tabId;this.#n(this.#t(s))}activateTab(i,{persist:s=!0}={}){if(!i)return;let r=this.#t(i);s&&this.#n(r)}removeLastUsedTab(){let i=this.#o();localStorage.removeItem(i)}#e=i=>{let{tabsId:s,tabId:r}=i.detail||{},a=this.element.id||this.element.dataset.tabsId;if(s&&s!==a)return;let n=this.#g(r);this.activateTab(r),document.dispatchEvent(new CustomEvent("sidebar:show")),n&&this.#d(r)};#t(i,{eagerLoadFrames:s=!0}={}){let r=this.#s(i);return this.tabTargets.forEach(a=>{a.dataset.tabId===r?this.#l(a):this.#h(a)}),this.panelTargets.forEach(a=>{a.dataset.tabPanel===r?(this.#f(a,this.classesValue.panelInactiveClasses),this.#m(a,this.classesValue.panelActiveClasses),s&&this.#i(a)):(this.#f(a,this.classesValue.panelActiveClasses),this.#m(a,this.classesValue.panelInactiveClasses))}),r}#i(i){i.querySelectorAll('turbo-frame[loading="lazy"]').forEach(s=>s.removeAttribute("loading"))}#s(i){return this.#r(i)?i:this.#r(this.defaultTabValue)?this.defaultTabValue:this.panelTargets[0]?.dataset.tabPanel}#r(i){return this.panelTargets.some(s=>s.dataset.tabPanel===i)}#a(){let i=this.#o();return localStorage.getItem(i)}#n(i){if(!this.restoreFromStorageValue||!i)return;let s=this.#o();localStorage.setItem(s,i)}
39#o(){return`tabs_panels_${this.element.id||this.element.dataset.tabsId||"tabs"}_last_tab`}#l(i){let s=this.classesValue||{};this.#f(i,s.inactiveClasses),this.#m(i,s.activeClasses),this.#u(i,s,!0),this.#c(i,!0)}#h(i){let s=this.classesValue||{};this.#f(i,s.activeClasses),this.#m(i,s.inactiveClasses),this.#u(i,s,!1),this.#c(i,!1)}#c(i,s){i.hasAttribute("aria-selected")&&i.setAttribute("aria-selected",String(s))}#u(i,s,r){let a=i.querySelector("img"),n=i.querySelector("span");a&&(a.src=r?a.dataset.activeIcon:a.dataset.inactiveIcon),n&&(r?(this.#f(n,s.inactiveTextClasses),this.#m(n,s.activeTextClasses)):(this.#f(n,s.activeTextClasses),this.#m(n,s.inactiveTextClasses)))}#g(i){let s=(this.classesValue.activeClasses||"").trim();if(!s)return!1;let r=s.split(/\s+/);return this.tabTargets.some(a=>a.dataset.tabId!==i?!1:r.every(n=>a.classList.contains(n)))}#d(i){let s=this.panelTargets.find(r=>r.dataset.tabPanel===i);s&&(clearTimeout(s._glowFadeTimeout),clearTimeout(s._glowClearTimeout),s.style.transition="outline-color 0.4s ease-in-out",s.style.outline="4px solid rgba(255, 255, 255, 0.5)",s.style.outlineOffset="-4px",s._glowFadeTimeout=setTimeout(()=>{s.style.outlineColor="transparent",s._glowClearTimeout=setTimeout(()=>{s.style.outline="",s.style.outlineOffset="",s.style.transition=""},400)},600))}#m(i,s){if(!s||s.trim()==="")return;let r=s.trim().split(/\s+/);i.classList.add(...r)}#f(i,s){if(!s||s.trim()==="")return;let r=s.trim().split(/\s+/);i.classList.remove(...r)}};var To=class extends u{connect(){this.resize=()=>this.update(),window.addEventListener("resize",this.resize),this.update()}disconnect(){window.removeEventListener("resize",this.resize)}update(){let{scrollWidth:i,clientWidth:s,scrollLeft:r}=this.element,a=i-s>1;this.element.classList.toggle("overflow-x-auto",a);let l=a&&i-s-r>1?"linear-gradient(90deg, #000 78%, transparent 99%)":"";this.element.style.maskImage=l,this.element.style.webkitMaskImage=l}};var bo=class extends u{#e=()=>{this.element.removeAttribute("open")};connect(){document.addEventListener("turbo:before-cache",this.#e),this.dismiss=i=>{this.element.open&&!this.element.contains(i.target)&&(this.element.open=!1)},this.dismissOnEscape=i=>{i.key==="Escape"&&this.element.open&&(this.element.open=!1)},document.addEventListener("pointerdown",this.dismiss),document.addEventListener("keydown",this.dismissOnEscape)}disconnect(){document.removeEventListener("turbo:before-cache",this.#e),document.removeEventListener("pointerdown",this.dismiss),document.removeEventListener("keydown",this.dismissOnEscape)}};var yo=class extends u{static values={tabsId:String,tabId:String};connect(){this.tabsIdValue||(this.awaiting=!1,this.#e(),document.querySelector("turbo-frame[data-tab-panel-host]")&&document.addEventListener("turbo:frame-load",this.#e))}disconnect(){document.removeEventListener("turbo:frame-load",this.#e)}activate(){if(this.tabsIdValue){this.#s(this.tabsIdValue,this.tabIdValue);return}let i=this.#i(this.tabIdValue);if(i.length){i.forEach(({tabsId:s,tabId:r})=>this.#s(s,r));return}this.awaiting=!0,this.#t().forEach(s=>s.removeAttribute("loading"))}#e=()=>{let i=this.#i(this.tabIdValue),s=this.#t();this.element.classList.toggle("hidden",i.length===0&&s.length===0),this.awaiting&&(i.length?(this.awaiting=!1,setTimeout(()=>this.activate(),0)):s.length||(this.awaiting=!1))};#t(){return Array.from(document.querySelectorAll("turbo-frame[data-tab-panel-host]:not([complete])"))}#i(i){let s=document.querySelector(`[data-tab-panel="${i}"]`),r=[];for(;s;){let a=s.closest('[data-controller~="tabs-panels"]');if(!a)break;let n=a.id||a.dataset.tabsId;if(!n)return[];r.unshift({tabsId:n,tabId:s.dataset.tabPanel}),s=a.parentElement?.closest("[data-tab-panel]")}return r}#s(i,s){document.dispatchEvent(new CustomEvent("tabs-panels:activate",{detail:{tabsId:i,tabId:s}}))}};var So=class extends u{static targets=["input","count"];connect(){this.updateCharCount(),this.inputTarget.addEventListener("input",()=>this.updateCharCount())}disconnect(){this.inputTarget.removeEventListener("input",()=>this.updateCharCount())}updateCharCount(){let s=this.inputTarget.value.length;s>1e3&&(this.inputTarget.value=this.inputTarget.value.substring(0,1e3),s=1e3),this.countTarget.innerText=s}};var wo=class extends u{static get targets(){return["minHeight"]}static values={onlyMobile:{type:Boolean,default:!1}};
39connect(){this.onlyMobileValue&&!this.isMobile()||(this.minHeight=this.data.get("minHeight")||"40",this.resize(),this.element.addEventListener("input",()=>this.resize()))}disconnect(){this.element.removeEventListener("input",()=>this.resize())}resize(){this.element.style.height=`${this.minHeight}px`,this.element.scrollHeight!==0&&(this.element.style.height=`${this.element.scrollHeight}px`)}isMobile(){return window.innerWidth<1280}};var Co=class extends u{static values={content:String,location:String};connect(){this.createTooltipElement()}createTooltipElement(){this.tooltipElement=document.createElement("div");let i="text-sm",s="w-[300px]",r=this.element.getAttribute("data-tooltips-text-size-value")||i,a=this.element.getAttribute("data-tooltips-width-value")||s;this.tooltipElement.className=`tooltip hidden absolute bg-white text-black font-medium px-3 py-2 rounded-xs z-10 shadow-lg ${r} ${a}`,this.tooltipElement.innerText=this.contentValue,this.locationValue==="left"?this.tooltipElement.classList.add("right-full","top-1/2","transform","-translate-y-1/2","mr-0"):this.locationValue==="right"?this.tooltipElement.classList.add("left-full","top-1/2","transform","-translate-y-1/2","ml-2"):this.tooltipElement.classList.add("bottom-full","left-1/2","transform","-translate-x-1/2","mb-2"),this.element.appendChild(this.tooltipElement)}showTooltip(){this.tooltipElement.classList.remove("hidden")}hideTooltip(){this.tooltipElement.classList.add("hidden")}};var Eo=class extends u{static values={tooltipId:String};connect(){this.hasTooltipIdValue&&(this.tooltipElement=document.getElementById(this.tooltipIdValue),this.tooltipElement&&this.setupHoverListeners())}setupHoverListeners(){this.boundShowTooltip=this.showTooltip.bind(this),this.boundHideTooltip=this.hideTooltip.bind(this),this.element.addEventListener("mouseenter",this.boundShowTooltip),this.element.addEventListener("mouseleave",this.boundHideTooltip)}disconnect(){this.boundShowTooltip&&this.element.removeEventListener("mouseenter",this.boundShowTooltip),this.boundHideTooltip&&this.element.removeEventListener("mouseleave",this.boundHideTooltip)}showTooltip(){this.tooltipElement&&(this.positionTooltip(),this.tooltipElement.classList.remove("hidden","invisible","opacity-0"),this.tooltipElement.classList.add("visible","opacity-100"))}hideTooltip(){this.tooltipElement&&(this.tooltipElement.classList.add("hidden","invisible","opacity-0"),this.tooltipElement.classList.remove("visible","opacity-100"))}positionTooltip(){if(!this.tooltipElement)return;let i=this.element.getBoundingClientRect(),s=this.tooltipElement.classList.contains("hidden"),r=this.tooltipElement.classList.contains("invisible");this.tooltipElement.classList.remove("hidden","invisible"),this.tooltipElement.style.visibility="hidden",this.tooltipElement.style.opacity="0";let a=this.tooltipElement.getBoundingClientRect(),n=i.right+8,l=i.top+i.height/2-a.height/2;this.tooltipElement.style.left=`${n}px`,this.tooltipElement.style.top=`${l}px`,this.tooltipElement.style.visibility="",this.tooltipElement.style.opacity="",s&&this.tooltipElement.classList.add("hidden"),r&&this.tooltipElement.classList.add("invisible")}};var Lo=class extends u{static values={siteKey:String};initialize(){grecaptcha.render("recaptchaV2",{sitekey:this.siteKeyValue})}};var ko=class extends u{static targets=["submit"];static values={isSubmitting:{type:Boolean,default:!1},color:{type:String,default:"white"}};initialize(){this.boundHandlePageShow=this.#e.bind(this)}connect(){window.addEventListener("pageshow",this.boundHandlePageShow)}disconnect(){window.removeEventListener("pageshow",this.boundHandlePageShow)}#e(i){i.persisted&&this.#t()}handleClick(i){if(this.isSubmittingValue){i.preventDefault();return}let s=this.element.closest("form");if(s&&!s.checkValidity()){s.reportValidity();return}this.disableSubmitButton(),this.addLoaderToButton()}disableSubmitButton(){this.isSubmittingValue=!0,this.submitTarget.classList.add("opacity-50"),this.submitTarget.classList.add("cursor-not-allowed"),this.submitTarget.classList.remove("cursor-pointer")}addLoaderToButton(){if(this.data.get("hideLoader")==="true")return;let s=`loading-submit-${this.colorValue}`;if(!this.submitTarget.querySelector(`.${s}`)){let a=document.createElement("div");a.setAttribute("data-correction-stop-scroll","true"),a.classList.add(s),a.classList.add("ml-1"),this.submitTarget.appendChild(a)}}resetButtonState(){setTimeout(()=>{this.#t()},500)}#t(){this.isSubmittingValue=!1,this.submitTarget.classList.remove("opacity-50","cursor-not-allowed"),this.submitTarget.classList.add("cursor-pointer");let i=`loading-submit-${this.colorValue}`,s=this.submitTarget.querySelector(`.${i}`);s&&s.remove()}};var xo=class extends u{static targets=["pill"];static values={duration:{type:Number,default:700}};connect(){if(!this.hasPillTarget)return;let i=this.#t(),s=window.matchMedia("(prefers-reduced-motion: reduce)").matches;if(!i||s){this.pillTarget.remove();return}this.boundClear=()=>this.#e(),document.addEventListener("turbo:before-cache",this.boundClear),this.#i(this.pillTarget,i)}disconnect(){document.removeEventListener("turbo:before-cache",this.boundClear),this.#e()}#e(){this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.flyer?.remove(),this.flyer=null}#t(){return[document.querySelector("#navbar [data-token-display]"),...document.querySelectorAll("[data-token-display]")].find(s=>s&&s.getBoundingClientRect().width>0)||null}#i(i,s){let r=this.element.getBoundingClientRect(),a=s.getBoundingClientRect();
39this.flyer=i,i.style.left=`${r.left+r.width/2-i.offsetWidth/2}px`,i.style.top=`${r.top+r.height/2}px`,i.style.transition=`transform ${this.durationValue}ms cubic-bezier(0.4, 0, 0.2, 1), opacity ${this.durationValue}ms`,i.classList.remove("invisible");let n=a.left+a.width/2-(r.left+r.width/2),l=a.top+a.height/2-(r.top+r.height/2);requestAnimationFrame(()=>{i.style.transform=`translate(${n}px, ${l}px) scale(0.4)`,i.style.opacity="0"}),this.timeout=setTimeout(()=>this.#e(),this.durationValue)}};var Io=class extends u{static targets=["input","counter","submitButton","error"];static values={maxLength:Number,modalId:String};connect(){this.originalValue=this.inputTarget.value,this.updateCount(),this.updateButtonState(),this.modal=document.getElementById(this.modalIdValue),this.boundHandleClose=this.handleClose.bind(this),this.modal?.addEventListener("close",this.boundHandleClose)}disconnect(){this.modal?.removeEventListener("close",this.boundHandleClose)}updateCount(){let i=this.inputTarget.value.length;this.counterTarget.textContent=`${i}/${this.maxLengthValue}`,this.hasErrorTarget&&this.errorTarget.classList.add("hidden"),this.updateButtonState()}updateButtonState(){let i=this.inputTarget.value.trim(),s=i===""||i===this.originalValue||i.length>this.maxLengthValue;this.submitButtonTarget.disabled=s,this.submitButtonTarget.classList.toggle("opacity-30",s),this.submitButtonTarget.classList.toggle("cursor-not-allowed",s),this.submitButtonTarget.classList.toggle("cursor-pointer",!s)}handleSubmitEnd(i){i.detail.success?(this.originalValue=this.inputTarget.value,this.modal?.close()):(this.hasErrorTarget&&(this.errorTarget.textContent=this.errorTarget.dataset.message,this.errorTarget.classList.remove("hidden")),this.updateButtonState())}cancel(){this.modal?.close()}handleClose(){this.inputTarget.value=this.originalValue,this.updateCount()}};var Ao=class extends u{static targets=["menu","button"];toggle(){this.menuTarget.classList.toggle("hidden")}closeOnOutsideClick(i){this.element.contains(i.target)||this.menuTarget.classList.add("hidden")}};var tI=1,Po=class extends u{static targets=["label","age"];static values={regularClasses:Array,compactClasses:Array};connect(){this.resizeObserver=new ResizeObserver(i=>this.resize(i)),this.resizeObserver.observe(this.element.parentElement||this.element),document.fonts?.ready.then(()=>this.update()),this.update()}disconnect(){this.resizeObserver?.disconnect()}resize(i){let s=i[0]?.contentRect.width;s===void 0||s===this.observedWidth||(this.observedWidth=s,this.update())}update(){this.showAge(),this.useRegularFont(),this.labelOverflows()&&(this.hideAge(),this.labelOverflows()&&this.useCompactFont())}labelOverflows(){return this.labelTarget.scrollWidth>this.labelTarget.clientWidth+tI}showAge(){this.hasAgeTarget&&this.ageTarget.classList.remove("hidden")}hideAge(){this.hasAgeTarget&&this.ageTarget.classList.add("hidden")}useRegularFont(){this.labelTarget.classList.remove(...this.compactClassesValue),this.labelTarget.classList.add(...this.regularClassesValue)}useCompactFont(){this.labelTarget.classList.remove(...this.regularClassesValue),this.labelTarget.classList.add(...this.compactClassesValue)}};var Vo=class extends u{intercept(i){let s=i.target.closest("a[href]");if(!s)return;i.preventDefault();let r=s.dataset.redirectUrl||s.href;this.dispatch("request-registration",{detail:{redirectUrl:r}})}};var Mo=class extends u{static targets=["spinner"];static values={timeout:{type:Number,default:3e4}};static lockClasses=["pointer-events-none","opacity-60","cursor-wait"];connect(){this.unlock()}disconnect(){this.unlock()}click(i){if(!i.defaultPrevented){if(this.locked){i.preventDefault(),i.stopImmediatePropagation();return}this.lock()}}lock(){this.locked=!0,this.element.setAttribute("aria-busy","true"),this.element.classList.add(...this.constructor.lockClasses),this.showSpinner(),this.onFetchError=()=>this.unlock(),document.addEventListener("turbo:fetch-request-error",this.onFetchError),this.timer=setTimeout(()=>this.unlock(),this.timeoutValue)}unlock(){this.locked=!1,clearTimeout(this.timer),this.onFetchError&&(document.removeEventListener("turbo:fetch-request-error",this.onFetchError),this.onFetchError=null),this.element.removeAttribute("aria-busy"),this.element.classList.remove(...this.constructor.lockClasses),this.removeSpinner()}
39showSpinner(){if(!this.hasSpinnerTarget)return;let i=document.createElement("span");i.dataset.navigationLoaderOverlay="",i.className="ml-2 size-4 shrink-0 rounded-full border-2 border-white/30 border-t-white animate-spin",this.spinnerTarget.append(i)}removeSpinner(){this.hasSpinnerTarget&&this.spinnerTarget.querySelectorAll("[data-navigation-loader-overlay]").forEach(i=>i.remove())}};var _o=class extends u{static targets=["submit","container"];connect(){this.submitTarget.addEventListener("click",i=>{let r=`loading-submit-${this.data.get("color")||"white"}`;if(!this.submitTarget.querySelector(`.${r}`)){let n=document.createElement("div");n.classList.add(r),n.classList.add("ml-3"),n.style.position="absolute",n.style.right="10px",this.containerTarget.prepend(n)}})}};var iI="messages",pT="followingBottom";function aa(){return document.getElementById(iI)}function sI(i=aa()){return i?.dataset[pT]!=="false"}function na(i,s=aa()){if(!s)return;let r=i?"true":"false";s.dataset[pT]!==r&&(s.dataset[pT]=r)}function je({force:i=!1,behavior:s="smooth"}={}){let r=aa();if(!r)return!1;if(i)na(!0,r);else if(r.dataset.initialLoad==="true"||!sI(r))return!1;return r.scrollTo({top:r.scrollHeight,behavior:s}),!0}var rI=750,aI=50,Bo=class extends u{static targets=["premiumPhoto"];connect(){if(this.data.get("lazyLoaded")==="true"){let i=aa();i&&(i.scrollTop=i.scrollTop+aI);return}if(this.hasPremiumPhotoTarget){this.mediaScrollTimeout=setTimeout(()=>{je({behavior:"auto"})},rI);return}je()}disconnect(){this.mediaScrollTimeout&&clearTimeout(this.mediaScrollTimeout)}};var Oo=class extends u{static targets=["slide","counter","lightbox","lightboxSlide","lightboxCounter"];static values={playbackEventUrl:String};connect(){this.currentIndex=0,this.lightboxOpen=!1,this.playbackReported=!1,this.#g(),this.#r(),this.#a(),this.#n(),this.showSlide(this.currentIndex)}next(i){i?.preventDefault(),i?.stopPropagation(),!(this.totalSlides<=1)&&this.showSlide(this.currentIndex+1)}previous(i){i?.preventDefault(),i?.stopPropagation(),!(this.totalSlides<=1)&&this.showSlide(this.currentIndex-1)}openLightbox(i){!this.lightboxElement||this.totalSlides===0||this.#u(i.target)||(i.preventDefault(),this.showSlide(this.currentIndex),this.lightboxElement.classList.remove("hidden"),this.lightboxOpen=!0,document.body.classList.add("overflow-hidden"))}closeLightbox(i){i?.preventDefault(),i?.stopPropagation(),this.lightboxElement&&(this.lightboxElement.classList.add("hidden"),this.lightboxOpen=!1,this.#h(this.lightboxSlides),document.body.classList.remove("overflow-hidden"))}stopPropagation(i){i.stopPropagation()}keydown(i){if(this.lightboxOpen)switch(i.key){case"Escape":this.closeLightbox(i);break;case"ArrowRight":this.next(i);break;case"ArrowLeft":this.previous(i);break}}disconnect(){this.lightboxOpen&&document.body.classList.remove("overflow-hidden"),this.playingVideos?.forEach(i=>this.#o(i,!1)),this.playbackWatchAbort?.abort(),this.#m()}get totalSlides(){return Math.max(this.slideTargets.length,this.lightboxSlides.length)}showSlide(i){this.totalSlides!==0&&(this.currentIndex=this.#c(i),this.#e(),this.#t(),this.#i(),this.#s())}#e(){this.slideTargets.forEach((i,s)=>{i.classList.toggle("hidden",s!==this.currentIndex)})}#t(){this.lightboxSlides.forEach((i,s)=>{let r=s===this.currentIndex;i.classList.toggle("hidden",!r),i.classList.toggle("flex",r)})}#i(){let i=`${this.currentIndex+1}/${this.totalSlides}`;this.counterTargets.forEach(s=>{s.textContent=i}),this.lightboxCounters.forEach(s=>{s.textContent=i})}#s(){this.#h(this.slideTargets.filter((i,s)=>s!==this.currentIndex)),this.#h(this.lightboxSlides.filter((i,s)=>s!==this.currentIndex))}#r(){[...this.slideTargets,...this.lightboxSlides].forEach(s=>{s.querySelectorAll("video[poster]").forEach(r=>{r.addEventListener("playing",()=>r.removeAttribute("poster"),{once:!0})})})}#a(){if(!this.hasPlaybackEventUrlValue)return;[...this.slideTargets,...this.lightboxSlides].forEach(s=>{s.querySelectorAll("video").forEach(r=>{r.addEventListener("playing",()=>this.#l(),{once:!0})})})}#n(){this.playingVideos=new Set,this.playbackWatchAbort=new window.AbortController;let{signal:i}=this.playbackWatchAbort;
39[...this.slideTargets,...this.lightboxSlides].forEach(r=>{r.querySelectorAll("video").forEach(a=>{a.addEventListener("playing",()=>this.#o(a,!0),{signal:i}),a.addEventListener("pause",()=>this.#o(a,!1),{signal:i}),a.addEventListener("ended",()=>this.#o(a,!1),{signal:i})})})}#o(i,s){s!==this.playingVideos.has(i)&&(s?this.playingVideos.add(i):this.playingVideos.delete(i),window.dispatchEvent(new CustomEvent(s?"creator-vault:playback-started":"creator-vault:playback-stopped",{detail:{video:i}})))}async#l(){if(!this.playbackReported){this.playbackReported=!0;try{await H(this.playbackEventUrlValue)}catch{}}}#h(i){i.forEach(s=>{s.querySelectorAll("video").forEach(r=>{r.paused||r.pause()})})}#c(i){return(i+this.totalSlides)%this.totalSlides}#u(i){return i.closest("a, button, input, label, select, textarea, video")}#g(){if(!this.hasLightboxTarget){this.lightboxElement=null,this.lightboxSlides=[],this.lightboxCounters=[];return}this.lightboxElement=this.lightboxTarget,this.lightboxSlides=Array.from(this.lightboxElement.querySelectorAll("[data-messages--creator-vault-carousel-target~='lightboxSlide']")),this.lightboxCounters=Array.from(this.lightboxElement.querySelectorAll("[data-messages--creator-vault-carousel-target~='lightboxCounter']")),this.lightboxPlaceholder=document.createComment("creator-vault-lightbox"),this.lightboxElement.parentNode.insertBefore(this.lightboxPlaceholder,this.lightboxElement),document.body.appendChild(this.lightboxElement),this.#d()}#d(){this.boundLightboxClick=i=>{i.target.closest("[data-creator-vault-lightbox-content]")||this.closeLightbox(i)},this.boundLightboxCloseClick=i=>this.closeLightbox(i),this.boundLightboxPreviousClick=i=>this.previous(i),this.boundLightboxNextClick=i=>this.next(i),this.closeButtons=Array.from(this.lightboxElement.querySelectorAll("[data-creator-vault-lightbox-close]")),this.previousButtons=Array.from(this.lightboxElement.querySelectorAll("[data-creator-vault-lightbox-previous]")),this.nextButtons=Array.from(this.lightboxElement.querySelectorAll("[data-creator-vault-lightbox-next]")),this.lightboxElement.addEventListener("click",this.boundLightboxClick),this.closeButtons.forEach(i=>i.addEventListener("click",this.boundLightboxCloseClick)),this.previousButtons.forEach(i=>i.addEventListener("click",this.boundLightboxPreviousClick)),this.nextButtons.forEach(i=>i.addEventListener("click",this.boundLightboxNextClick))}#m(){this.lightboxElement&&(this.lightboxElement.removeEventListener("click",this.boundLightboxClick),this.closeButtons.forEach(i=>i.removeEventListener("click",this.boundLightboxCloseClick)),this.previousButtons.forEach(i=>i.removeEventListener("click",this.boundLightboxPreviousClick)),this.nextButtons.forEach(i=>i.removeEventListener("click",this.boundLightboxNextClick)),this.lightboxPlaceholder?.parentNode?(this.lightboxPlaceholder.parentNode.insertBefore(this.lightboxElement,this.lightboxPlaceholder),this.lightboxPlaceholder.remove()):this.lightboxElement.remove())}};var nI=["messages-list","lifelike-typing-indicator","loader"],oI=/^message_(?:id_)?\d+$/,Fo=class extends u{connect(){this.holding=!1,this.queue=[],this.playingVideos=new Set,this.boundIntercept=i=>this.#e(i),document.addEventListener("turbo:before-stream-render",this.boundIntercept)}disconnect(){document.removeEventListener("turbo:before-stream-render",this.boundIntercept),this.holding=!1,this.queue=[],this.playingVideos.clear()}hold(i){let s=i.detail?.video;s&&this.playingVideos.add(s),this.holding=!0}release(i){let s=i.detail?.video;if(s){if(this.playingVideos.delete(s),this.playingVideos.size>0)return}else this.playingVideos.clear();this.holding=!1,this.#t()}#e(i){if(!this.holding)return;let s=i.target;!nI.includes(s.target)&&!oI.test(s.target)||(i.preventDefault(),this.queue.push({render:i.detail.render,stream:s}))}async#t(){let i=this.queue;this.queue=[];for(let{render:s,stream:r}of i)await s(r)}};function ew(i,s){let r=document.getElementById(i);if(r){let a=`${s}`,n=new CustomEvent(a,{bubbles:!0});r.dispatchEvent(n)}}var Do=class extends u{open(){ew("premiumSubscriptionModal","show-premium-subscription-modal")}};var Ro=class extends u{static targets=["song","playIcon","pauseIcon","wrapper"];connect(){this.songTarget.addEventListener("ended",this.resetToPlay.bind(this)),this.wrapperTarget.getAttribute("data-audio-auto-play")==="true"&&this.wrapperTarget.click()}togglePlay(i){document.querySelectorAll("audio").forEach(s=>{s!==this.songTarget&&s.pause()}),document.querySelectorAll('[data-audio-target="playIcon"]').forEach(s=>{s!==this.playIconTarget&&s.classList.remove("hidden")}),document.querySelectorAll('[data-audio-target="pauseIcon"]').forEach(s=>{s!==this.pauseIconTarget&&s.classList.add("hidden")}),this.songTarget.paused?(this.songTarget.play(),this.playIconTarget.classList.add("hidden"),this.pauseIconTarget.classList.remove("hidden")):(this.songTarget.pause(),this.playIconTarget.classList.remove("hidden"),this.pauseIconTarget.classList.add("hidden"))}resetToPlay(){this.playIconTarget.classList.remove("hidden"),this.pauseIconTarget.classList.add("hidden")}};var No=class extends u{static targets=["song","playIcon","pauseIcon","wrapper","waveVideo"];static values={selectedOnly:{type:Boolean,default:!1}};connect(){this.songTarget.addEventListener("ended",this.resetToPlay.bind(this)),this.wrapperTarget.getAttribute("data-audio-v2-auto-play")==="true"&&this.wrapperTarget.click()}togglePlay(){if(document.querySelectorAll('[data-audio-v2-target="wrapper"]').forEach(i=>
39{i.classList.remove("audio-playing")}),document.querySelectorAll("audio").forEach(i=>{i!==this.songTarget&&i.pause()}),document.querySelectorAll('[data-audio-v2-target="playIcon"]').forEach(i=>{i!==this.playIconTarget&&i.classList.remove("hidden")}),document.querySelectorAll('[data-audio-v2-target="pauseIcon"]').forEach(i=>{i!==this.pauseIconTarget&&i.classList.add("hidden")}),document.querySelectorAll('[data-audio-v2-target="waveVideo"]').forEach(i=>{i.classList.add("hidden")}),this.selectedOnlyValue&&(this.resetOtherAudioElements(),this.hideOtherVisibleIcons()),this.songTarget.paused){if(this.songTarget.play(),this.playIconTarget.classList.add("hidden"),this.pauseIconTarget.classList.remove("hidden"),this.wrapperTarget.classList.add("audio-playing"),this.hasWaveVideoTarget){this.waveVideoTarget.classList.remove("hidden"),this.waveVideoTarget.currentTime=0;let i=this.waveVideoTarget.play();i&&typeof i.catch=="function"&&i.catch(()=>{})}}else this.songTarget.pause(),this.playIconTarget.classList.remove("hidden"),this.pauseIconTarget.classList.add("hidden"),this.wrapperTarget.classList.remove("audio-playing"),this.stopHideWaveformVideo()}stopHideWaveformVideo(){this.hasWaveVideoTarget&&(this.waveVideoTarget.pause(),this.waveVideoTarget.currentTime=0,this.waveVideoTarget.classList.add("hidden"))}resetToPlay(){this.playIconTarget.classList.remove("hidden"),this.pauseIconTarget.classList.add("hidden"),this.wrapperTarget.classList.remove("audio-playing"),this.stopHideWaveformVideo()}hideOtherVisibleIcons(){document.querySelectorAll('[data-audio-v2-target="playIcon"]').forEach(i=>{i!==this.playIconTarget&&i.classList.add("hidden")})}resetOtherAudioElements(){document.querySelectorAll("audio").forEach(i=>{i!==this.songTarget&&(i.currentTime=0)})}showPlayIcon(i){let s=i.detail?.containerElement;this.isInContainer(s)&&(this.wrapperTarget.classList.contains("audio-playing")?(this.playIconTarget.classList.add("hidden"),this.pauseIconTarget.classList.remove("hidden")):(this.playIconTarget.classList.remove("hidden"),this.pauseIconTarget.classList.add("hidden")))}stop(i){let s=i.detail?.containerElement;this.isInContainer(s)&&(this.songTarget.pause(),this.songTarget.currentTime=0,this.playIconTarget.classList.add("hidden"),this.pauseIconTarget.classList.add("hidden"),this.wrapperTarget.classList.remove("audio-playing"),this.stopHideWaveformVideo())}isInContainer(i){return i?i.contains(this.element):!1}};var ws=class{static stylizedMessageWithStars(s,r="default"){if(!s||typeof s!="string")return"";let a=this.escapeHtml(s),n=this.getStarColorClass(r);return a.split(`\r
40`).map(m=>this.processLine(m,n)).filter(m=>m.trim()!=="").map(m=>`<p class="[word-break:break-word]">${m}</p>`).join("")}static processLine(s,r){return s.replace(/\*(.*?)\*/g,(a,n)=>`<em class="${r}">*${n}*</em>`)}static getStarColorClass(s){switch(s){case"user":case"assistant":return"text-[#988DFC]";default:return"text-[#ffffff73]"}}static escapeHtml(s){let r=document.createElement("div");return r.textContent=s,r.innerHTML}};var Bi={PLAYING:"intimate-video-playing",STARTING:"intimate-video-starting",ENDED:"intimate-video-ended",USER_MUTED:"user-muted-audio",USER_UNMUTED:"user-unmuted-audio"};var li="video/mp4; codecs=avc1.4D401E",ti="video/mp4; codecs=av01.0.04M.08",fT;function tw(){return fT===void 0&&(fT=document.createElement("video").canPlayType(ti)!==""),fT}function Oi(i,s){if(!s||!s.url)return;let r=i.querySelector(`source[type="${ti}"]`);r&&(s.av1_url?r.src=s.av1_url:r.removeAttribute("src"));let a=i.querySelector(`source[type="${li}"]`);a&&(a.src=s.url),i.load()}var Uo=class extends u{static targets=["videoContainer","textarea","sendButton","form","messagesContainer","menuItem","chatMenuButton","chatVisibilityButton","chatEyeOnIcon","chatEyeOffIcon","widthToggleButton","expandIcon","shrinkIcon","inputArea","messagesInner","messagesList","scenesButton"];static values={videos:Array,messagesUrl:String,feedbackEnabled:Boolean,profileId:String};connect(){this.#e(),this.#t(),this.#i(),this.#s(),this.#r()}#e(){this.currentVideoIndex=0,this.isSceneChanging=!1,this.videoPool=new Map,this.activeElement=null,this.pendingTransitionCleanups=[],this.playingMoment=!1,this.playingIntimateMoment=!1,this.playingGiftMoment=!1,this.intimateVideoShouldBeMuted=!1,this.sceneVideos=null}#t(){this.isWaitingForResponse=!1,this.isChatVisible=!0,this.visibilityTimeout=null,this.isExpanded=localStorage.getItem("companions_chat_expanded")==="true",this.waitingForGiftReveal=!1,this.pendingGiftResponse=null,this.giftTypingStartedAt=null,this.giftRevealTimer=null,this.giftTimeoutTimer=null}#i(){this.messageCount=0,this.feedbackPrompted=sessionStorage.getItem("companions_feedback_prompted")==="true"}#s(){this.boundHandleStreamRender=this.#_.bind(this),document.addEventListener("turbo:before-stream-render",this.boundHandleStreamRender),this.handleBeforeVisit=this.handleBeforeVisit.bind(this),document.addEventListener("turbo:before-visit",this.handleBeforeVisit),this.boundHandleVideosUpdated=this.#S.bind(this),document.addEventListener("companions:videos-updated",this.boundHandleVideosUpdated),this.boundHandlePlayGiftVideo=this.#y.bind(this),document.addEventListener("companions:play-gift-video",this.boundHandlePlayGiftVideo)}#r(){this.#x(),this.isExpanded&&this.#A(),this.#M("instant"),requestAnimationFrame(()=>this.#M("instant")),this.hasVideoContainerTarget&&this.videosValue.length>0&&this.#c()}playMoment(i){let s=JSON.parse(i.currentTarget.dataset.momentVideos||"[]");if(s.length===0||this.isSceneChanging)return;let r=i.currentTarget.dataset.intimate==="true",a=this.playingIntimateMoment;this.playingMoment||(this.sceneVideos=[...this.videosValue]),a&&!r&&this.dispatch(Bi.ENDED,{prefix:"companions-chat"}),this.playingMoment=!0,this.playingIntimateMoment=r,r?this.#a(s):this.#n(s)}#a(i){this.dispatch(Bi.PLAYING,{prefix:"companions-chat"}),this.#o(i,!1,this.intimateVideoShouldBeMuted)}#n(i,s=!1){this.#o(i,!1,!0,s)}
40#o(i,s,r=!0,a=!1){this.#E(),this.isSceneChanging=!0,this.videosValue=i,this.currentVideoIndex=0;let n=new Set(i.map(m=>this.#u(m)));for(let[m,v]of this.videoPool)!n.has(m)&&v!==this.activeElement&&(this.#k(v),this.videoPool.delete(m));let l=s&&i.length<=1;i.forEach(m=>{let v=this.#g(m);v.loop=l,v.muted=r,v.volume=r?0:1});let d=this.videoPool.get(this.#u(i[0]));if(d.currentTime=0,a&&this.activeElement&&!this.activeElement.ended){this.activeElement.loop&&(this.activeElement.loop=!1,this.seamlessLoopDisabledFor=this.activeElement),this.activeElement.onended=()=>{this.activeElement.onended=null,this.seamlessLoopDisabledFor=null,this.#p(d)};return}if(a&&this.activeElement){this.#p(d);return}this.#b(d,()=>this.#L(d))}#l(){let i=this.playingIntimateMoment,s=this.playingGiftMoment;this.#h(),i&&this.dispatch(Bi.ENDED,{prefix:"companions-chat"}),this.deferredSceneVideos?(this.#o(this.deferredSceneVideos,!0,!0,s),this.deferredSceneVideos=null,this.sceneVideos=null):this.sceneVideos&&this.sceneVideos.length>0&&(this.#o(this.sceneVideos,!0,!0,s),this.sceneVideos=null),s&&(this.isChatVisible=!0,this.#x(),this.hasScenesButtonTarget&&this.scenesButtonTarget.classList.remove("opacity-0","pointer-events-none"),this.#M(),setTimeout(()=>{this.isWaitingForResponse=!0,this.#R(),this.#O(),this.#M(),this.giftTypingStartedAt=Date.now(),this.giftTimeoutTimer=setTimeout(()=>{this.giftTimeoutTimer=null,this.waitingForGiftReveal&&(this.#N(),this.pendingGiftResponse&&(this.pendingGiftResponse.removeAttribute("hidden"),delete this.pendingGiftResponse.dataset.messageType),this.waitingForGiftReveal=!1,this.pendingGiftResponse=null,this.giftTypingStartedAt=null,this.isWaitingForResponse=!1,this.#R(),this.#V())},3e4),this.pendingGiftResponse&&this.#$(3e3)},500))}#h(){this.playingMoment=!1,this.playingIntimateMoment=!1,this.playingGiftMoment=!1}#c(){if(this.videosValue.length===0)return;this.videosValue.forEach(s=>{let r=this.#g(s);r.loop=this.videosValue.length<=1});let i=this.videoPool.get(this.#u(this.videosValue[0]));i.oncanplay=()=>{i.oncanplay=null,this.#v(i),i.play().catch(()=>{}),this.activeElement=i},i.loop||(i.onended=()=>this.#m())}#u(i){return typeof i=="string"?i:i.h264}#g(i){let s=this.#u(i);if(this.videoPool.has(s))return this.videoPool.get(s);let r=document.createElement("video");return r.className="absolute inset-0 w-full h-full object-cover object-top opacity-0 z-0",r.muted=!0,r.playsInl
40ine=!0,r.preload="auto",r.disablePictureInPicture=!0,r.addEventListener("contextmenu",a=>a.preventDefault()),typeof i=="string"?r.src=i:(i.av1&&r.appendChild(this.#d(i.av1,ti)),r.appendChild(this.#d(i.h264,li))),this.videoContainerTarget.appendChild(r),r.load(),this.videoPool.set(s,r),r}#d(i,s){let r=document.createElement("source");return r.src=i,r.type=s,r}#m(){if(this.isSceneChanging)return;if(this.playingMoment&&this.currentVideoIndex>=this.videosValue.length-1){this.#l();return}if(this.videosValue.length<=1)return;this.currentVideoIndex=(this.currentVideoIndex+1)%this.videosValue.length;let i=this.#u(this.videosValue[this.currentVideoIndex]),s=this.videoPool.get(i);s.currentTime=0,s.readyState>=3?this.#f(s):s.oncanplay=()=>{s.oncanplay=null,this.#f(s)}}#f(i){let s=this.activeElement,r=()=>{i.onplaying=null,s&&(this.#T(s),s.pause(),s.onended=null),this.#v(i),i.onended=()=>this.#m(),this.activeElement=i};i.onplaying=r,i.play().catch(()=>r())}#p(i){this.#b(i,()=>{this.#f(i),this.isSceneChanging=!1})}#b(i,s){i.readyState>=3?s():(i.oncanplay=()=>{i.oncanplay=null,i.onerror=null,s()},i.onerror=()=>{i.oncanplay=null,i.onerror=null,this.#E(),this.isSceneChanging=!1,this.#l()})}#v(i){i.classList.remove("opacity-0","z-0"),i.classList.add("opacity-100","z-[1]")}#T(i){i.classList.remove("opacity-100","z-[1]"),i.classList.add("opacity-0","z-0")}#y(i){let{videoUrls:s}=i.detail;!s||s.length===0||(this.giftTimeoutTimer&&(clearTimeout(this.giftTimeoutTimer),this.giftTimeoutTimer=null),this.giftRevealTimer&&(clearTimeout(this.giftRevealTimer),this.giftRevealTimer=null),this.pendingGiftResponse&&(this.pendingGiftResponse.removeAttribute("hidden"),delete this.pendingGiftResponse.dataset.messageType),this.waitingForGiftReveal=!0,this.pendingGiftResponse=null,this.giftTypingStartedAt=null,this.playingMoment||(this.sceneVideos=[...this.videosValue]),this.playingMoment=!0,this.playingGiftMoment=!0,this.isChatVisible=!1,this.#x(),this.hasScenesButtonTarget&&this.scenesButtonTarget.classList.add("opacity-0","pointer-events-none"),this.#n(s,!0))}#S(i){let{videos:s}=i.detail;if(!(!s||s.length===0)){if(this.playingGiftMoment){this.deferredSceneVideos=s;return}this.playingIntimateMoment&&this.dispatch(Bi.ENDED,{prefix:"companions-chat"}),this.#h(),this.sceneVideos=null,this.#o(s,!0,!0)}}handleUserMutedAudio(){this.playingIntimateMoment&&this.videoPool.forEach(i=>this.#w(i,!1))}handleUserUnmutedAudio(){this.playingIntimateMoment&&this.videoPool.forEach(i=>this.#w(i,!0))}handleIntimateVideoStarting(i){this.intimateVideoShouldBeMuted=i.detail.shouldMute}#w(i,s){i.muted=!s,i.volume=s?1:0}#L(i){let s=this.activeElement;if(this.#I(),!s){this.#v(i),i.play().catch(()=>{}),i.loop||(i.onended=()=>this.#m()),this.activeElement=i,this.isSceneChanging=!1;return}s.classList.add("transition-opacity","duration-[350ms]","ease-out"),s.offsetHeight,s.classList.remove("opacity-100"),s.classList.add("opacity-0");let r=()=>{this.#C(s,r),s.classList.remove("z-[1]"),s.classList.add("z-0"),i.classList.remove("z-0"),i.classList.add("z-[1]"),i.classList.add("transition-opacity","duration-[350ms]","ease-out"),i.offsetHeight,i.classList.remove("opacity-0"),i.classList.add("opacity-100");let a=()=>{this.#C(i,a),s.classList.remove("transition-opacity","duration-[350ms]","ease-out"),i.classList.remove("transition-opacity","duration-[350ms]","ease-out"),i.play().catch(()=>{}),i.loop||(i.onended=()=>this.#m()),s.pause(),s.onended=null,this.activeElement=i,this.isSceneChanging=!1};i.addEventListener("transitionend",a,{once:!0}),this.pendingTransitionCleanups.push({element:i,handler:a})};s.addEventListener("transitionend",r,{once:!0}),this.pendingTransitionCleanups.push({element:s,handler:r})}#I(){this.pendingTransitionCleanups.forEach(({element:i,handler:s})=>{i.removeEventListener("transitionend",s)}),this.pendingTransitionCleanups=[]}#C(i,s){this.pendingTransitionCleanups=this.pendingTransitionCleanups.filter(r=>r.element!==i||r.handler!==s)}#E(){this.#I(),this.seamlessLoopDisabledFor&&(this.seamlessLoopDisabledFor.loop=!0,this.seamlessLoopDisabledFor=null);for(let[,i]of this.videoPool)i.classList.remove("transition-opacity","duration-[350ms]","ease-out"),i.onended=null;this.activeElement&&(this.activeElement.classList.remove("opacity-0","z-0"),this.activeElement.classList.add("opacity-100","z-[1]"))}#k(i){i.onended=null,i.oncanplay=null,i.onerror=null,i.onplaying=null,i.pause(),i.src="",i.load(),i.remove()}handleBeforeVisit(i){this.hasFeedbackEnabledValue&&this.feedbackEnabledValue&&this.shouldPromptFeedbackOnExit()&&(i.preventDefault(),this.triggerFeedbackModal(i.detail.url))}shouldPromptFeedbackOnExit(){return this.feedbackEnabledValue&&this.messageCount>=1&&!this.feedbackPrompted}triggerFeedbackModal(i){this.feedbackPrompted=!0,sessionStorage.setItem("companions_feedback_prompted","true"),this.dispatch("feedback-open-request",{detail:{url:i},bubbles:!0})}toggleChatVisibility(){this.isChatVisible=!this.isChatVisible,this.#x()}toggleChatWidth(){this.isExpanded=!this.isExpanded,localStorage.setItem("companions_chat_expanded",this.isExpanded),this.#A()}#x(){this.hasChatVisibleIconTarget&&this.hasChatHiddenIconTarget&&(this.isChatVisible?(this.chatEyeOnIconTarget.classList.remove("hidden"),this.chatEyeOffIconTarget.classList.add("hidden")):(this.chatEyeOnIconTarget.classList.add("hidden"),this.chatEyeOffIconTarget.classList.remove("hidden"))),this.isChatVisible?(this.messagesContainerTarget.classList.remove("opacity-0","pointer-events-none"),this.messagesContainerTarget.classList.add("opacity-100"),this.hasInputAreaTarget&&(this.inputAreaTarget.style.transform="translateY(0)",this.inputAreaTarget.style.visibility="visible",this.inputAreaTarget.classList.remove("pointer-events-none")),this.#M()):(this.messagesContainerTarget.classList.remove("opacity-100"),this.messagesContainerTarget.classList.add("opacity-0","pointer-events-none"),this.hasInputAreaTarget&&(this.inputAreaTarget.style.transform="translateY(150%)",this.inputAreaTarget.classList.add("pointer-events-none"),this.visibilityTimeout=setTimeout(()=>{this.isChatVisible||(this.inputAreaTarget.style.visibility="hidden")},300)))}#A(){this.hasMessagesContainerTarget&&(this.isExpanded?(this.messagesContainerTarget.classList.remove("max-h-[40%]"),this.messagesContainerTarget.classList.add("max-h-[65%]"),this.hasMessagesInnerTarget&&(this.messagesInnerTarget.classList.remove("w-[70%]","md:max-w-[270px]"),this.messagesInnerTarget.classList.add("w-[80%]","md:max-w-[310px]"))):(this.messagesContainerTarget.classList.remove("max-h-[65%]"),this.messagesContainerTarget.classList.add("max-h-[40%]"),this.hasMessagesInnerTarget&&(this.messagesInnerTarget.classList.remove("w-[80%]","md:max-w-[310px]"),this.messagesInnerTarget.classList.add("w-[70%]","md:max-w-[270px]"))),this.#B())}#B(){!this.hasExpandIconTarget||!this.hasShrinkIconTarget||(this.isExpanded?(this.expandIconTarget.classList.add("hidden"),this.shrinkIconTarget.classList.remove("hidden")):(this.expandIconTarget.classList.remove("hidden"),this.shrinkIconTarget.classList.add("hidden")))}disconnect(){this.visibilityTimeout&&clearTimeout(this.visibilityTimeout),this.giftRevealTimer&&clearTimeout(this.giftRevealTimer),this.giftTimeoutTimer&&clearTimeout(this.giftTimeoutTimer),this.pendingGiftResponse=null,document.removeEventListener("turbo:before-stream-render",this.boundHandleStreamRender),document.removeEventListener("companions:videos-updated",this.boundHandleVideosUpdated),document.removeEventListener("companions:play-gift-video",this.boundHandlePlayGiftVideo),document.removeEventListener("turbo:before-visit",this.handleBeforeVisit),this.#E();for(let[,i]of this.videoPool)this.#k(i);this.videoPool.clear(),this.activeElement=null}handleInput(){this.#V()}handleKeydown(i){i.key==="Enter"&&!i.shiftKey&&(i.preventDefault(),this.handleSend())}handleSend(){if(this.isWaitingForResponse)return;let i=this.textareaTarget.value.trim();i&&(this.isWaitingForResponse=!0,this.#R(),this.messageCount++,this.#P(i),this.#M(),this.#O(),this.#M(),this.formTarget.requestSubmit(),this.textareaTarget.value="",this.#V())}#_(i){let s=i.target.getAttribute("target"),r=i.target.getAttribute("action");if(s==="companions-messages-list"){if(r==="prepend"){let n=this.messagesContainerTarget,l=n?.scrollHeight??0,d=n?.scrollTop??0,v=(n?n.scrollHeight-n.scrollTop-n.clientHeight:0)<4,E=i.detail.render;i.detail.render=D=>{if(E(D),!n)return;if(v){n.scrollTop=n.scrollHeight;return}let R=n.scrollHeight-l;n.scrollTop=d+R};return}let a=i.detail.render;i.detail.render=n=>{a(n);let l=this.messagesListTarget?.lastElementChild;if(l?.dataset?.messageType==="gift_response_trigger"){if(this.waitingForGiftReveal){if(this.pendingGiftResponse=l,this.giftTypingStartedAt){let d=Date.now()-this.giftTypingStartedAt,m=Math.max(0,1500-d);this.#$(m)}return}l.removeAttribute("hidden"),delete l.dataset.messageType,requestAnimationFrame(()=>this.#M());return}this.#N(),this.isWaitingForResponse=!1,this.#R(),this.#V(),requestAnimationFrame(()=>this.#M())}}else s==="companions-upgrade-modal"?(this.#N(),this.#D(),this.isWaitingForResponse=!1,this.#R(),this.#V()):s==="user-registration-modal"&&(this.#N(),this.#D(),this.isWaitingForResponse=!1,this.#R(),this.#V())}#P(i){let s=document.getElementById("companions-user-message-template");if(!s)return;let r=s.content.cloneNode(!0),a=r.querySelector("[data-companions-chat-target='messageContent']");if(a){let n=ws.stylizedMessageWithStars(i,"user");a.innerHTML=n}this.hasMessagesListTarget&&this.messagesListTarget.appendChild(r)}#O(){let i=document.getElementById("companions-typing-indicator-template");if(!i)return;let s=i.content.cloneNode(!0),r=s.querySelector("div");r&&r.setAttribute("id","companions-typing-indicator"),this.hasMessagesListTarget&&this.messagesListTarget.appendChild(s)}#N(){let i=document.getElementById("companions-typing-indicator");i&&i.remove()}#$(i){this.giftRevealTimer&&clearTimeout(this.giftRevealTimer),this.giftRevealTimer=setTimeout(()=>{this.giftRevealTimer=null,this.giftTimeoutTimer&&(clearTimeout(this.giftTimeoutTimer),this.giftTimeoutTimer=null),this.#N(),this.pendingGiftResponse&&(this.pendingGiftResponse.removeAttribute("hidden"),delete this.pendingGiftResponse.dataset.messageType,this.pendingGiftResponse=null),this.waitingForGiftReveal=!1,this.giftTypingStartedAt=null,this.isWaitingForResponse=!1,this.#R(),this.#V(),requestAnimationFrame(()=>this.#M())},i)}#D(){this.hasMessagesListTarget&&this.messagesListTarget.lastElementChild&&this.messagesListTarget.lastElementChild.remove()}#M(i="smooth"){this.hasMessagesContainerTarget&&this.messagesContainerTarget.scrollTo({top:this.messagesContainerTarget.scrollHeight,behavior:i})}#V(){if(!this.hasSendButtonTarget)return;this.textareaTarget.value.trim().length>0&&!this.isWaitingForResponse?(this.sendButtonTarget.classList.remove("opacity-0","pointer-events-none"),this.sendButtonTarget.classList.add("opacity-100")):(this.sendButtonTarget.classList.remove("opacity-100"),this.sendButtonTarget.classList.add("opacity-0","pointer-events-none"))}#R(){this.hasSendButtonTarget&&(this.isWaitingForResponse?this.sendButtonTarget.classList.add("opacity-50","pointer-events-none"):this.sendButtonTarget.classList.remove("opacity-50","pointer-events-none"))}
40showMenu(){this.menuItemTargets.forEach(i=>{i.classList.toggle("hidden")})}resetConversation(){if(this.isWaitingForResponse){this.menuItemTargets.forEach(s=>{s.classList.add("hidden")});return}this.menuItemTargets.forEach(s=>{s.classList.add("hidden")});let i=document.getElementById("companions-reset-conversation-modal");i&&i.classList.remove("hidden")}};var iw="companions_audio_state",Fi={muted:"muted",unmuted:"unmuted"},Ho=class extends u{static targets=["soundIcon","mutedIcon","audio","soundButton","buttonWrapper"];static classes=["hidden"];static values={audioUrl:String,audioCloudflareId:String,intimateVideoPlaying:{type:Boolean,default:!1}};connect(){this.#e(),this.hasAudioTarget&&(this.#t(),this.#u(),this.#g())}#e(){this.isPlayingAmbientAudio=!1,this.savedAmbientMutedState=null}#t(){this.hasAudioUrlValue&&this.audioUrlValue&&(this.audioTarget.src=this.audioUrlValue)}disconnect(){this.#c()}mute(i){i?.stopPropagation(),this.#i()&&(this.#v(!0),this.intimateVideoPlayingValue?this.#s():this.#a())}unmute(i){i?.stopPropagation(),this.#i()&&(this.#v(!1),this.intimateVideoPlayingValue?this.#r():this.#n())}#i(){return this.hasAudioTarget&&this.hasSoundIconTarget&&this.hasMutedIconTarget&&this.hasSoundButtonTarget}#s(){this.savedAmbientMutedState=!0,this.dispatch(Bi.USER_MUTED,{prefix:"companions-audio"})}#r(){this.savedAmbientMutedState=!1,this.dispatch(Bi.USER_UNMUTED,{prefix:"companions-audio"})}#a(){this.audioTarget.muted=!0,this.#p(Fi.muted),this.dispatch("muted",{bubbles:!0})}#n(){this.audioTarget.muted=!1,this.#h(),this.#p(Fi.unmuted),this.dispatch("unmuted",{bubbles:!0})}handleVisibilityChange(){!this.hasAudioTarget||this.intimateVideoPlayingValue||this.#b()===Fi.muted||(document.hidden?this.audioTarget.muted=!0:this.audioTarget.muted=!1)}handleAudioUpdated(i){let{audioUrl:s,audioCloudflareId:r}=i.detail;if(!s){this.#o();return}this.audioCloudflareIdValue!==r&&this.#l(s,r)}handleIntimateVideoPlaying(){this.hasAudioTarget&&(this.intimateVideoPlayingValue=!0,this.savedAmbientMutedState===null?this.#T():this.audioTarget.muted=!0,this.#S())}handleIntimateVideoEnded(){!this.hasAudioTarget||this.savedAmbientMutedState===null||(this.intimateVideoPlayingValue=!1,this.#y())}#o(){this.#c(),this.#f(),this.audioCloudflareIdValue=null}#l(i,s){this.audioTarget.src=i,this.audioTarget.load(),this.isPlayingAmbientAudio=!1,this.audioCloudflareIdValue=s,this.#m();let r=this.#b()===Fi.muted;this.audioTarget.muted=r,r||this.#h()}#h(){!this.#d()||this.isPlayingAmbientAudio||this.audioTarget.play().then(()=>{this.isPlayingAmbientAudio=!0}).catch(()=>{})}#c(){this.hasAudioTarget&&(this.audioTarget.pause(),this.audioTarget.src="",this.isPlayingAmbientAudio=!1)}#u(){this.#b()===Fi.muted&&(this.audioTarget.muted=!0,this.hasSoundButtonTarget&&this.#v(!0))}#g(){if(!this.#d())return;this.#b()===Fi.unmuted&&this.audioTarget.play().then(()=>{this.isPlayingAmbientAudio=!0,this.unmute()}).catch(()=>{})}#d(){return this.audioTarget.src&&this.audioTarget.src!==""}#m(){this.hasButtonWrapperTarget&&this.buttonWrapperTarget.classList.remove(...this.hiddenClasses)}#f(){this.hasButtonWrapperTarget&&this.buttonWrapperTarget.classList.add(...this.hiddenClasses)}#p(i){localStorage.setItem(iw,i)}#b(){return localStorage.getItem(iw)||Fi.unmuted}#v(i){!this.hasSoundIconTarget||!this.hasMutedIconTarget||!this.hasSoundButtonTarget||(i?(this.soundIconTarget.classList.add(...this.hiddenClasses),this.mutedIconTarget.classList.remove(...this.hiddenClasses),this.soundButtonTarget.dataset.action="click->companions--audio#unmute"):(this.mutedIconTarget.classList.add(...this.hiddenClasses),this.soundIconTarget.classList.remove(...this.hiddenClasses),this.soundButtonTarget.dataset.action="click->companions--audio#mute"))}#T(){this.savedAmbientMutedState=this.audioTarget.muted,this.audioTarget.muted=!0}#y(){let i=this.savedAmbientMutedState;this.audioTarget.muted=i,this.#p(i?Fi.muted:Fi.unmuted),this.savedAmbientMutedState=null,i||this.#h(),this.#v(i)}#S(){let i=this.#w();this.dispatch(Bi.STARTING,{detail:{shouldMute:i},prefix:"companions-audio"})}#w(){return this.hasMutedIconTarget?!this.hiddenClasses.every(i=>this.mutedIconTarget.classList.contains(i)):!1}};async function Pt(){let i=navigator.userAgentData;if(!i?.getHighEntropyValues)return{userAgentDataAvailable:!1};try{let s=await i.getHighEntropyValues(["model","platform","platformVersion"]);return{userAgentDataAvailable:!0,model:s.model||null,platform:s.platform||i.platform||null,platformVersion:s.platformVersion||null}}catch{return{userAgentDataAvailable:!1}}}var qo=class extends u{static targets=["modal","feedbackForm","successMessage","likeButton","dislikeButton","feedbackText","submitButton","errorMessage"];static values={profileId:String,enabled:Boolean,submitUrl:String};connect(){this.boundHandleOutsideClick=this.handleOutsideClick.bind(this),this.boundHandleClose=this.handleClose.bind(this),this.disableSubmitButton(),this.exitFlowActive=!1,this.pendingNavigationUrl=null,this.submitted=!1,this.successTimeout=null,this.errorTimeout=null,this.modalTarget&&this.modalTarget.open&&this.modalTarget.close(),this.removeBlur()}open(){if(!this.modalTarget)return;this.modalTarget.showModal(),this.modalTarget.addEventListener("click",this.boundHandleOutsideClick),this.modalTarget.addEventListener("close",this.boundHandleClose);let i=document.getElementById("companions-container");i&&(i.style.filter="blur(4px)")}close(){this.modalTarget&&(this.modalTarget.close(),this.removeBlur())}handleClose(){let i=this.exitFlowActive,s=this.pendingNavigationUrl;this.exitFlowActive=!1,this.pendingNavigationUrl=null,this.submitted=!1,this.removeBlur(),i&&this.followUrl(s)}removeBlur(){let i=document.getElementById("companions-container");i&&(i.style.filter="none")}selectLike(){this.reactionValue="like",this.likeButtonTarget.classList.add("bg-blue-brand","text-white"),this.likeButtonTarget.classList.remove("bg-transparent","text-white/60"),this.dislikeButtonTarget.classList.add("bg-transparent","text-white/60"),this.dislikeButtonTarget.classList.remove("bg-blue-brand","text-white"),this.enableSubmitButton()}selectDislike(){this.reactionValue="dislike",this.dislikeButtonTarget.classList.add("bg-blue-brand","text-white"),this.dislikeButtonTarget.classList.remove("bg-transparent","text-white/60"),this.likeButtonTarget.classList.add("bg-transparent","text-white/60"),this.likeButtonTarget.classList.remove("bg-blue-brand","text-white"),this.enableSubmitButton()}enableSubmitButton(){this.submitButtonTarget.disabled=!1,this.submitButtonTarget.classList.remove("opacity-50","cursor-not-allowed"),this.submitButtonTarget.classList.add("hover:bg-primary/90")}disableSubmitButton(){this.submitButtonTarget.disabled=!0,this.submitButtonTarget.classList.add("opacity-50","cursor-not-allowed"),this.submitButtonTarget.classList.remove("hover:bg-primary/90")}async submitFeedback(i){if(i.preventDefault(),!(!this.reactionValue||this.submitted)){this.submitted=!0,this.disableSubmitButton();try{let s=await Pt();(await H(this.submitUrlValue,{body:JSON.stringify({companion_profile_id:this.profileIdValue,feedback_device_context:s,polymorphic_feedback:{reaction:this.reactionValue,description:this.feedbackTextTarget.value}}),contentType:"application/json"})).ok?this.showSuccessMessage():(this.showErrorMessage(),console.error("Failed to submit feedback"))}catch(s){this.showErrorMessage(),console.error("Error submitting feedback:",s)}}}showSuccessMessage(){this.feedbackFormTarget.style.display="none",this.errorMessageTarget.style.display="none",this.successMessageTarget.style.display="block",this.successTimeout&&clearTimeout(this.successTimeout),this.successTimeout=setTimeout(()=>{this.close()},2e3)}showErrorMessage(){this.submitted=!1,this.enableSubmitButton(),this.errorMessageTarget.style.display="block",this.errorTimeout&&clearTimeout(this.errorTimeout),this.errorTimeout=setTimeout(()=>{this.errorMessageTarget.style.display="none"},5e3)}handleOutsideClick(i){i.target===this.modalTarget&&this.close()}handleOpenRequest(i){let s=i.detail?.url||null;if(this.pendingNavigationUrl=s,!this.enabledValue){this.followUrl(s);return}this.exitFlowActive=!0,this.modalTarget?.open||this.open()}followUrl(i){i?window.location.href=i:window.history.back()}disconnect(){this.successTimeout&&(clearTimeout(this.successTimeout),this.successTimeout=null),this.errorTimeout&&(clearTimeout(this.errorTimeout),this.errorTimeout=null),this.hasModalTarget&&(this.modalTarget.removeEventListener("click",this.boundHandleOutsideClick),this.modalTarget.removeEventListener("close",this.boundHandleClose)),this.removeBlur()}};var $o=class extends u{static targets=["slide","container"];static values={notificationType:String,currentSlide:{type:Number,default:0}};connect(){document.body.classList.add("overflow-hidden")}disconnect(){document.body.classList.remove("overflow-hidden")}
40next(){let i=this.slideTargets,s=this.currentSlideValue;s<i.length-1&&(i[s].classList.add("hidden"),i[s+1].classList.remove("hidden"),this.currentSlideValue=s+1)}done(){this._hide(),this._markNotificationAsShown()}_hide(){this.hasContainerTarget&&this.containerTarget.classList.add("hidden"),document.body.classList.remove("overflow-hidden")}async _markNotificationAsShown(){if(this.hasNotificationTypeValue)try{await Re.markAsShown(this.notificationTypeValue)}catch{}}};var Go=class extends u{static targets=["item"];static outlets=["companions--gift-confirmation"];select(i){let s={id:i.params.giftId,name:i.params.giftName,price:i.params.giftPrice,image:i.params.giftImage},r=this.element.closest("dialog[open]");r?(r.close(),setTimeout(()=>this.#e(s),300)):this.#e(s)}#e(i){this.hasCompanionsGiftConfirmationOutlet&&this.companionsGiftConfirmationOutlet.show(i)}};var Wo=class extends u{static targets=["image","price","messageInput","sendButton","giftIdField","messageField","errorMessage"];initialize(){this.selectedGift=null}show(i){this.selectedGift=i,this.#e(),this.#i(),this.element.showModal()}close(){this.#t(),this.element.close()}beforeSubmit(){this.hasMessageFieldTarget&&this.hasMessageInputTarget&&(this.messageFieldTarget.value=this.messageInputTarget.value)}handleSubmitEnd(i){i.detail?.fetchResponse?.succeeded&&(this.close(),this.#s())}#e(){this.hasImageTarget&&this.selectedGift.image&&(this.imageTarget.src=this.selectedGift.image,this.imageTarget.classList.remove("hidden")),this.hasPriceTarget&&(this.priceTarget.textContent=this.selectedGift.price),this.hasGiftIdFieldTarget&&(this.giftIdFieldTarget.value=this.selectedGift.id),this.#t()}#t(){this.hasMessageInputTarget&&(this.messageInputTarget.value="",this.messageInputTarget.style.height="auto")}#i(){this.hasErrorMessageTarget&&(this.errorMessageTarget.textContent="",this.errorMessageTarget.classList.add("hidden"))}#s(){this.selectedGift=null,this.#t()}};var jo=class extends u{static targets=["skipButton","confirmButton"];skip(){!this.hasSkipButtonTarget||!this.hasConfirmButtonTarget||(this.skipButtonTarget.classList.add("hidden"),this.confirmButtonTarget.classList.remove("hidden"))}confirm(){this.hasConfirmButtonTarget&&(this.confirmButtonTarget.disabled=!0,this.confirmButtonTarget.classList.add("pointer-events-none"),this.confirmButtonTarget.closest("form").requestSubmit())}};var Ko=class extends u{static values={eventName:{type:String,default:"profile-review:open-feedback-modal"}};open(){document.dispatchEvent(new CustomEvent(this.eventNameValue))}};var zo=class extends u{static targets=["modal","rating","feedbackText","submitButton","successMessage","errorMessage"];static values={feedbackableId:String,feedbackableKey:{type:String,default:"profile_id"},submitUrl:String,eventName:{type:String,default:"profile-review:open-feedback-modal"},removeOnSuccess:{type:String,default:""}};connect(){this.selectedRating=null,this.boundOpen=this.open.bind(this),document.addEventListener(this.eventNameValue,this.boundOpen)}disconnect(){document.removeEventListener(this.eventNameValue,this.boundOpen)}open(i){let s=i?.detail?.feedbackableId;s&&(this.feedbackableIdValue=s),this.modalTarget.classList.remove("hidden"),this.resetForm()}close(){this.modalTarget.classList.add("hidden"),this.dispatch("closed")}closeOnBackdrop(i){i.target===this.modalTarget&&this.close()}selectRating(i){this.selectedRating=parseInt(i.currentTarget.dataset.rating),this.updateStars(this.selectedRating),this.submitButtonTarget.disabled=!1}hoverRating(i){let s=parseInt(i.currentTarget.dataset.rating);this.updateStars(s)}leaveRating(){let i=this.selectedRating?this.selectedRating:0;this.updateStars(i)}updateStars(i){this.ratingTargets.forEach(s=>{parseInt(s.dataset.rating)<=i?(s.classList.add("text-yellow-400"),s.classList.remove("text-white/40")):(s.classList.remove("text-yellow-400"),s.classList.add("text-white/40"))})}async submit(i){if(i.preventDefault(),!this.selectedRating){this.showError();return}this.submitButtonTarget.disabled=!0;try{let s=await Pt();(await H(this.submitUrlValue,{body:JSON.stringify({[this.feedbackableKeyValue]:this.feedbackableIdValue,feedback_device_context:s,polymorphic_feedback:{reaction:"rating",score:this.selectedRating,description:this.feedbackTextTarget.value}}),contentType:"application/json"})).ok?(this.showSuccess(),setTimeout(()=>
40{this.close(),this.removeOnSuccessValue.split(",").filter(Boolean).forEach(a=>{document.getElementById(a)?.remove()})},2e3)):(this.showError(),this.submitButtonTarget.disabled=!1)}catch(s){console.error("Feedback submission error:",s),this.showError(),this.submitButtonTarget.disabled=!1}}showSuccess(){this.successMessageTarget.classList.remove("hidden"),this.errorMessageTarget.classList.add("hidden")}showError(){this.errorMessageTarget.classList.remove("hidden"),this.successMessageTarget.classList.add("hidden")}resetForm(){this.selectedRating=null,this.feedbackTextTarget.value="",this.submitButtonTarget.disabled=!0,this.successMessageTarget.classList.add("hidden"),this.errorMessageTarget.classList.add("hidden"),this.ratingTargets.forEach(i=>{i.classList.remove("text-yellow-400"),i.classList.add("text-white/40")})}};var Yo=class extends u{static targets=["editForm","editInput","canEdit","messageId","editSpan","deleteConfirmationModal","deleteForm"];connect(){}editMessage(i){if(!this.canEdit(i))return;let{messageId:s,message:r}=i.target.dataset;this.setupEditForm(s,r),this.disableDeleteButton(s)}canEdit(i){return i.target.dataset.canEdit==="true"}setupEditForm(i,s){this.messageIdTarget.value=i,this.hideNewMessageForm(),this.showEditMessageForm(),this.populateEditFormWithMessage(s),this.originalMessage=s}disableDeleteButton(i){document.querySelectorAll(`#message_id_${i} .message-delete-link`).forEach(s=>{s.classList.add("opacity-50","pointer-events-none")})}enableDeleteButton(i){document.querySelectorAll(`#message_id_${i} .message-delete-link`).forEach(s=>{s.classList.remove("opacity-50","pointer-events-none")})}hideNewMessageForm(){document.getElementById("form")?.classList.add("hidden")}showNewMessageForm(){document.getElementById("form")?.classList.remove("hidden")}showEditMessageForm(){this.editFormTarget.classList.remove("hidden")}hideEditMessageForm(){this.editFormTarget.classList.add("hidden")}populateEditFormWithMessage(i){this.editSpanTarget.innerText=i,this.editInputTarget.value=i}submitForm(i){if(!this.canEdit(i)){i.preventDefault();return}let s=this.messageIdTarget.value,r=this.editInputTarget.value.trim();r===this.originalMessage?(this.enableDeleteButton(s),i.preventDefault()):this.processMessageUpdate(s,r),this.finalizeEdit()}processMessageUpdate(i,s){this.updateMessageText(i,s),this.disableMessageOptions(i),this.removeSubsequentMessages(i),this.appendLoaderInChat(),this.disableNewMessageSubmitButton()}finalizeEdit(){this.hideEditMessageForm(),this.showNewMessageForm()}closeForm(){this.hideEditMessageForm(),this.showNewMessageForm();let i=this.messageIdTarget.value;i&&this.enableDeleteButton(i)}disableNewMessageSubmitButton(){let i=document.querySelector("#message-button > button");i&&(i.style.opacity=.5,i.disabled=!0,i.classList.add("disabled"))}updateMessageText(i,s){s=it.escapeHTML(s),s=s.replace(/\*(.*?)\*/g,"<em style = 'color: #fff;opacity:0.8;'>*$1*</em>");let r=document.getElementById(`message_id_${i}`).querySelector("p");r.innerHTML=s.trim()}disableMessageOptions(i){document.querySelectorAll(".message-options button").forEach(s=>{s.style.opacity=.5,s.disabled=!0,s.classList.add("disabled")})}removeSubsequentMessages(i){let s=document.getElementById(`message_id_${i}`);for(;s&&s.nextElementSibling;)s.nextElementSibling.remove()}appendLoaderInChat(){this.appendPlaceholderLoader(),setTimeout(()=>{this.appendLoader()},3e3)}appendPlaceholderLoader(){let s=this.convertStringToHTML(`
41      <div id="loader" class="hidden">
42      </div>
43    `),r=document.getElementById("messages-list");r&&r.appendChild(s)}appendLoader(){let r=this.convertStringToHTML(`
44      <div class="justify-start items-start gap-2.5 inline-flex slow-fade py-2">
45        <div class="justify-start items-start gap-3 flex">
46          <div class="flex-col justify-start items-start gap-[9px] inline-flex">
47            <div class="px-8 py-3 bg-[#252525] rounded-tl-3xl rounded-tr-3xl rounded-bl-[4px] rounded-br-3xl justify-start items-start inline-flex">
48              <div class="snippet" data-title="dot-flashing">
49                <div class="stage">
50                  <div class="dot-flashing"></div>
51                </div>
52              </div>
53            </div>
54          </div>
55        </div>
56      </div>
57    `),a=document.getElementById("loader");a&&(a.appendChild(r),a.classList.remove("hidden"));let n=document.getElementById("messages");n&&(n.scrollTop=n.scrollHeight)}convertStringToHTML(i){let s=document.createElement("div");return s.innerHTML=i.trim(),s.firstChild}showDeleteModal(i){let{messageId:s}=i.currentTarget.dataset,r=this.deleteFormTarget.closest("form");r&&(r.action=`/destroy_message/${s}`),this.deleteConfirmationModalTarget.classList.remove("hidden")}hideDeleteModal(){this.deleteConfirmationModalTarget.classList.add("hidden")}};var Xo=class extends u{static targets=["messagesContainer","profileContainer","bannerContainer","upgradeBanner","storyMembersPopup","storyInfoPanel","desktopToggle"];connect(){this.handleClickOutsideBound=this.handleClickOutside.bind(this),document.addEventListener("click",this.handleClickOutsideBound),this._handleShowSidebar=()=>this.showSidebar(),document.addEventListener("sidebar:show",this._handleShowSidebar)}toggle(){let i=this.profileContainerTarget;!i.classList.contains("lg:w-0")?(i.classList.remove("lg:w-[30%]","lg:opacity-100"),i.classList.add("lg:w-0","lg:opacity-0","lg:overflow-hidden")):(i.classList.remove("lg:w-0","lg:opacity-0","lg:overflow-hidden"),i.classList.add("lg:w-[30%]","lg:opacity-100"))}toggleStoryInfoPanel(){window.innerWidth>1024?(this.profileContainerTarget.classList.toggle("lg:block"),this.storyInfoPanelTarget.classList.toggle("lg:hidden")):(this.messagesContainerTarget.classList.toggle("hidden"),this.profileContainerTarget.classList.toggle("hidden"),this.profileContainerTarget.classList.contains("hidden")||this.loadProfileFrame())}showSidebar(){if(this.hasDesktopToggleTarget&&this.desktopToggleTarget.offsetParent!==null){let i=this.profileContainerTarget;i.classList.contains("lg:w-0")&&(i.classList.remove("lg:w-0","lg:opacity-0","lg:overflow-hidden"),i.classList.add("lg:w-[30%]","lg:opacity-100"),this.loadProfileFrame())}else this.toggleMobile()}toggleMobile(){this.messagesContainerTarget.classList.add("hidden"),this.profileContainerTarget.classList.remove("hidden"),this.loadProfileFrame(),this.hasBannerContainerTarget&&this.bannerContainerTarget.classList.add("hidden"),this.hasUpgradeBannerTarget&&this.upgradeBannerTarget.classList.add("hidden")}loadProfileFrame(){this.profileContainerTarget.querySelector('turbo-frame[loading="lazy"]')?.removeAttribute("loading")}toggleProfileBack(){this.messagesContainerTarget.classList.remove("hidden"),this.profileContainerTarget.classList.add("hidden"),this.hasBannerContainerTarget&&this.bannerContainerTarget.classList.remove("hidden"),this.hasUpgradeBannerTarget&&this.upgradeBannerTarget.classList.remove("hidden")}toggleStoryMembers(){this.storyMembersPopupTarget.classList.toggle("hidden")}handleClickOutside(i){this.hasStoryMembersPopupTarget&&!this.storyMembersPopupTarget.classList.contains("hidden")&&this.isClickOutsideOfThePopup(i)&&this.storyMembersPopupTarget.classList.add("hidden")}isClickOutsideOfThePopup(i){return this.storyMembersPopupTarget&&!this.storyMembersPopupTarget.contains(i.target)&&!i.target.closest('[data-action="click->
57profile-toggle#toggleStoryMembers"]')}disconnect(){document.removeEventListener("click",this.handleClickOutsideBound),document.removeEventListener("sidebar:show",this._handleShowSidebar)}};var Qo=class extends u{static targets=["song","playIcon","pauseIcon","voiceIconContainer","audioButton","progressRing"];connect(){this.initializeAudioButton()}initializeAudioButton(){let i=this.hasAudioButtonTarget?this.audioButtonTarget:this.element.querySelector(".button-audio");this.progressBarEl=this.hasProgressRingTarget?this.progressRingTarget:i?.parentElement?.querySelector(".progress-ring-v2"),!(!i||!this.progressBarEl)&&(this.handleClickBound=this.onButtonClick.bind(this),i.addEventListener("click",this.handleClickBound))}disconnect(){let i=this.hasAudioButtonTarget?this.audioButtonTarget:this.element.querySelector(".button-audio");i&&this.handleClickBound&&i.removeEventListener("click",this.handleClickBound)}onButtonClick(){let i=this.progressBarEl;if(!i)return;i.classList.remove("hidden");let s=0,r=setInterval(()=>{s+=1;let a=s<=50?`inset(0% ${100-s*2}% 0% 0%)`:`inset(${(s-50)*2}% 0% 0% 0%)`;i.style.clipPath=a,s>=100&&clearInterval(r)},150)}loadAudioForPlayback(i){i.preventDefault(),this.voiceIconContainerTarget.classList.add("pointer-events-none");let s=i.currentTarget.dataset.url;it.fetchWithTurboStream(s)}};var Jo=class extends u{connect(){document.querySelectorAll("img").forEach(function(s){s.addEventListener("contextmenu",function(r){r.preventDefault()})})}};var Zo=class extends u{static targets=["panel","card"];connect(){this.onKeydown=this.onKeydown.bind(this),this.reset=this.reset.bind(this),document.addEventListener("turbo:before-cache",this.reset)}disconnect(){document.removeEventListener("turbo:before-cache",this.reset),this.reset()}open(i){i.preventDefault(),this.panelTarget.classList.remove("invisible","opacity-0","pointer-events-none"),this.panelTarget.classList.add("opacity-100"),this.cardTarget.classList.remove("translate-y-4","scale-95","opacity-0"),this.cardTarget.classList.add("translate-y-0","scale-100","opacity-100"),document.body.classList.add("overflow-hidden"),document.addEventListener("keydown",this.onKeydown)}close(){this.reset()}onKeydown(i){i.key==="Escape"&&this.close()}reset(){this.hasPanelTarget&&(this.panelTarget.classList.add("invisible","opacity-0","pointer-events-none"),this.panelTarget.classList.remove("opacity-100")),this.hasCardTarget&&(this.cardTarget.classList.add("translate-y-4","scale-95","opacity-0"),this.cardTarget.classList.remove("translate-y-0","scale-100","opacity-100")),document.body.classList.remove("overflow-hidden"),document.removeEventListener("keydown",this.onKeydown)}};var sw="all",lI=220,el=3,rw=["-rotate-6","rotate-3","-rotate-3","rotate-6"],vT=["opacity-0","translate-y-3"],TT=["opacity-0","-translate-y-2"],tl=class extends u{static targets=["card","cta","ctaChooseLabel","ctaPrice","ctaPriceAmount","ctaVideoLabel","dockIdentity","form","grid","hint","insufficientNotice","leaveDialog","option","optionInput","pileLabel","pileThumbs","placeholder","preset","presetVideo","sceneLimit","sceneList","scenePile","sceneRowTemplate","sceneSection","selectedId","selectedImage","selectedName","selectedState","selection","stepOne","stepTwo","summaryImage","summaryName","tab"];static values={maxScenes:{type:Number,default:10},costFiveSeconds:{type:Number,default:0},costTenSeconds:{type:Number,default:0},tokenBalance:{type:Number,default:0},freeMode:{type:Boolean,default:!1},paywallIntentUrl:{type:String,default:""},restoredState:{type:Object,default:null}};static classes=["activeOption","activeTab","hidden","inactiveOption","inactiveTab"];connect(){this.step=1,this.activeCategory=sw,this.scenes=[],this.sceneUid=0,this.#S(),this.#b(),this.#g(),this.#y()}disconnect(){clearTimeout(this.panelSwapTimeout),this.presetObserver?.disconnect(),this.sceneSortable?.destroy()}submit(i){if(this.step!==1){if(this.freeModeValue){i.preventDefault(),this.dispatch("openPaywall",{detail:{intent:this.#T(),retryIntent:()=>this.#T()}});return}if(this.generateSubmitted){i.preventDefault();return}this.generateSubmitted=!0,this.#d();return}i.preventDefault(),this.#t()}submitEnd(i){i.detail.success||(this.generateSubmitted=!1,this.#d())}back(){this.step===2&&(this.step=1,this.generateSubmitted=!1,this.#i(),this.#p(),this.ctaTarget.disabled=!1,this.scenePileTarget.classList.add(this.hiddenClass),this.dockIdentityTarget.classList.remove(this.hiddenClass),this.selectedImageTarget.classList.remove(this.hiddenClass),this.#v(this.stepTwoTarget,this.stepOneTarget))}filterCategory(i){this.activeCategory=i.currentTarget.dataset.category,this.tabTargets.forEac
57h(s=>{let r=s.dataset.category===this.activeCategory;s.setAttribute("aria-selected",r.toString()),r?(s.classList.remove(...this.inactiveTabClasses),s.classList.add(...this.activeTabClasses)):(s.classList.remove(...this.activeTabClasses),s.classList.add(...this.inactiveTabClasses))}),this.#e()}select(i){let s=this.selectionTargets.indexOf(i.currentTarget);this.#w(this.cardTargets[s],i.currentTarget.value)}addScene(i){if(this.scenes.length>=this.maxScenesValue)return;let s=i.currentTarget;this.sceneUid+=1,this.scenes.push({uid:this.sceneUid,key:s.dataset.presetKey,label:s.dataset.presetLabel,videoSrc:s.dataset.videoSrc,duration:5}),this.#s(this.scenes[this.scenes.length-1]),this.#a()}removeScene(i){let s=i.currentTarget.closest("[data-scene-row]"),r=Number(s.dataset.uid);this.scenes=this.scenes.filter(a=>a.uid!==r),s.remove(),this.#a()}setSceneDuration(i){let s=i.currentTarget.closest("[data-scene-row]"),r=this.scenes.find(a=>a.uid===Number(s.dataset.uid));r.duration=Number(i.currentTarget.dataset.duration),this.#r(s,r.duration),this.#a()}chooseOption(i){let s=i.currentTarget,r=s.dataset.optionGroup;this.optionTargets.filter(n=>n.dataset.optionGroup===r).forEach(n=>{n.setAttribute("aria-pressed","false"),n.classList.remove(...this.activeOptionClasses),n.classList.add(...this.inactiveOptionClasses)}),s.setAttribute("aria-pressed","true"),s.classList.remove(...this.inactiveOptionClasses),s.classList.add(...this.activeOptionClasses);let a=this.optionInputTargets.find(n=>n.dataset.optionGroup===r);a&&(a.value=s.dataset.optionValue)}#e(){this.cardTargets.forEach(i=>{let s=this.activeCategory===sw||i.dataset.category===this.activeCategory;i.classList.toggle(this.hiddenClass,!s)}),this.#C()}#t(){this.step=2,this.summaryImageTarget.src=this.selectedImageTarget.src,this.summaryImageTarget.alt=this.selectedImageTarget.alt,this.summaryNameTarget.textContent=this.selectedNameTarget.textContent,this.#i(),this.#d(),this.#p(),this.dockIdentityTarget.classList.add(this.hiddenClass),this.selectedImageTarget.classList.add(this.hiddenClass),this.scenePileTarget.classList.remove(this.hiddenClass),this.#o(),this.#v(this.stepOneTarget,this.stepTwoTarget)}#i(){this.ctaChooseLabelTarget.classList.toggle(this.hiddenClass,this.step===2),this.ctaVideoLabelTarget.classList.toggle(this.hiddenClass,this.step!==2)}#s(i){let s=this.sceneRowTemplateTarget.content.firstElementChild.cloneNode(!0);s.dataset.uid=i.uid,s.querySelector("[data-scene-label]").textContent=i.label;let r=s.querySelector("[data-scene-thumb]");if(i.videoSrc){let a=document.createElement("video");a.src=i.videoSrc,a.muted=!0,a.loop=!0,a.autoplay=!0,a.playsInline=!0,a.setAttribute("tabindex","-1"),a.className=this.freeModeValue?"h-full w-full scale-110 object-cover blur-sm":"h-full w-full object-cover",r.appendChild(a)}else r.className+=" flex items-center justify-center text-sm",r.textContent="\u{1F3AC}";this.#r(s,i.duration),this.sceneListTarget.appendChild(s)}#r(i,s){i.querySelectorAll("[data-duration]").forEach(r=>{let a=Number(r.dataset.duration)===s;r.classList.toggle("bg-gradient-pink-cta",a),r.classList.toggle("text-white",a),r.classList.toggle("bg-white/[0.06]",!a),r.classList.toggle("text-grey-light",!a)})}#a(){this.sceneSectionTarget.classList.toggle(this.hiddenClass,this.scenes.length===0),[...this.sceneListTarget.querySelectorAll("[data-scene-row]")].forEach((s,r)=>{s.querySelector("[data-scene-number]").textContent=r+1}),this.formTarget.querySelectorAll("[data-scene-input]").forEach(s=>s.remove()),this.scenes.forEach(s=>{[["scenes[][key]",s.key],["scenes[][duration]",s.duration]].forEach(([r,a])=>{let n=document.createElement("input");n.type="hidden",n.name=r,n.value=a,n.dataset.sceneInput="true",this.formTarget.appendChild(n)})}),this.#o(),this.#n(),this.#d(),this.#p()}#n(){let i=this.scenes.length>=this.maxScenesValue;this.hasSceneLimitTarget&&this.sceneLimitTarget.classList.toggle(this.hiddenClass,!i),this.presetTargets.forEach(s=>{s.disabled=i,s.classList.toggle("opacity-40",i),s.classList.toggle("saturate-50",i)})}confirmLeave(){this.leaveDialogTarget.querySelector("dialog").showModal()}scrollToScenes(){let i=this.sceneSectionTarget.getBoundingClientRect().top+window.scrollY-96;window.scrollTo({top:Math.max(i,0),behavior:"smooth"})}#o(){if(!this.hasScenePileTarget)return;let i=this.pileThumbsTarget;i.replaceChildren(),this.scenes.slice(0,el).forEach((r,a)=>{i.appendChild(this.#h(r,a))});let s=this.scenes.length-el;s>0&&i.appendChild(this.#c(s)),this.#l()}#l(){this.pileLabelTarget.textContent=this.scenes.length===0?this.scenePileTarget.dataset.emptyHint:""}#h(i,s){let r=this.#u(s);if(i.videoSrc){let n=document.createElement("video");
57n.src=i.videoSrc,n.muted=!0,n.loop=!0,n.autoplay=!0,n.playsInline=!0,n.setAttribute("tabindex","-1"),n.className=this.freeModeValue?"h-full w-full scale-110 object-cover blur-sm":"h-full w-full object-cover",r.appendChild(n)}let a=document.createElement("span");return a.className="absolute left-0.5 top-0.5 flex h-3.5 w-3.5 items-center justify-center rounded-full bg-black/60 text-[8px] font-bold text-white backdrop-blur-sm",a.textContent=s+1,r.appendChild(a),r}#c(i){let s=this.#u(el),r=document.createElement("span");return r.className="flex h-full w-full items-center justify-center text-[11px] font-bold text-grey-light",r.textContent=`+${i}`,s.appendChild(r),s}#u(i){let s=document.createElement("span");return s.className=`relative h-14 w-10 shrink-0 origin-bottom overflow-hidden rounded-lg border border-white/15 bg-black-dark/95 shadow-lg shadow-black/60 ${rw[i%rw.length]}`,i>0&&s.classList.add("-ml-3"),s.style.zIndex=el+1-i,s}#g(){this.hasSceneListTarget&&(this.sceneSortable=to.create(this.sceneListTarget,{handle:"[data-scene-handle]",animation:150,ghostClass:"opacity-30",delay:120,delayOnTouchOnly:!0,touchStartThreshold:5,onEnd:()=>{let i=[...this.sceneListTarget.querySelectorAll("[data-scene-row]")].map(s=>Number(s.dataset.uid));this.scenes.sort((s,r)=>i.indexOf(s.uid)-i.indexOf(r.uid)),this.#a()}}))}#d(){this.step===2&&(this.ctaTarget.disabled=this.generateSubmitted||this.scenes.length===0||this.#f())}#m(){return this.scenes.reduce((i,s)=>i+(s.duration===10?this.costTenSecondsValue:this.costFiveSecondsValue),0)}#f(){return this.freeModeValue?!1:this.scenes.length>0&&this.#m()>this.tokenBalanceValue}#p(){if(!this.hasCtaPriceTarget)return;let i=this.step===2&&this.scenes.length>0,s=this.#m();if(this.ctaPriceTarget.classList.toggle(this.hiddenClass,!i),this.ctaPriceTarget.classList.toggle("flex",i),i&&(this.ctaPriceAmountTarget.textContent=s),this.hasInsufficientNoticeTarget){let r=this.step===2&&this.#f();this.insufficientNoticeTarget.classList.toggle(this.hiddenClass,!r),this.insufficientNoticeTarget.classList.toggle("flex",r)}}#b(){!("IntersectionObserver"in window)||this.presetVideoTargets.length===0||(this.presetObserver=new IntersectionObserver(i=>{i.forEach(s=>{s.isIntersecting?(!s.target.src&&s.target.dataset.src&&(s.target.src=s.target.dataset.src),s.target.play().catch(()=>{})):s.target.pause()})},{threshold:.1}),this.presetVideoTargets.forEach(i=>this.presetObserver.observe(i)))}#v(i,s){clearTimeout(this.panelSwapTimeout),s.classList.remove(...TT,...vT),i.classList.add(...TT),window.scrollTo({top:0,behavior:"smooth"}),this.panelSwapTimeout=setTimeout(()=>{i.classList.add(this.hiddenClass),i.classList.remove(...TT),s.classList.add(...vT),s.classList.remove(this.hiddenClass),requestAnimationFrame(()=>{requestAnimationFrame(()=>s.classList.remove(...vT))})},lI)}#T(){return this.paywallIntentUrlValue?H(this.paywallIntentUrlValue,{body:new FormData(this.formTarget),keepalive:!0}).then(i=>i.ok).catch(()=>!1):Promise.resolve(!0)}#y(){let i=this.restoredStateValue;!i||!Array.isArray(i.scenes)||i.scenes.length===0||this.selectedIdTarget.value&&(["location","partner_ethnicity"].forEach(s=>{let r=this.optionTargets.find(a=>a.dataset.optionGroup===s&&a.dataset.optionValue===i[s]);r&&this.chooseOption({currentTarget:r})}),i.scenes.forEach(s=>{let r=this.presetTargets.find(a=>a.dataset.presetKey===s.key);if(r&&(this.addScene({currentTarget:r}),s.duration===10)){let a=this.sceneListTarget.querySelectorAll("[data-scene-row]"),n=a[a.length-1].querySelector('[data-duration="10"]');this.setSceneDuration({currentTarget:n})}}),this.scenes.length!==0&&this.#t())}#S(){let i=this.selectionTargets.findIndex(s=>s.checked);i!==-1&&this.#w(this.cardTargets[i],this.selectionTargets[i].value)}#w(i,s){this.selectedIdTarget.value=s,this.selectedNameTarget.textContent=i.dataset.characterName,this.selectedImageTarget.src=i.dataset.thumbSrc,this.selectedImageTarget.alt=i.dataset.characterName,this.selectedImageTarget.classList.remove(this.hiddenClass),this.placeholderTarget.classList.add(this.hiddenClass),this.hintTarget.classList.add(this.hiddenClass),this.selectedStateTarget.classList.remove(this.hiddenClass),this.ctaTarget.disabled=!1,this.#I()}#L(){this.selectedIdTarget.value="",this.selectedNameTarget.textContent="",this.selectedImageTarget.classList.add(this.hiddenClass),this.placeholderTarget.classList.remove(this.hiddenClass),this.hintTarget.classList.remove(this.hiddenClass),this.selectedStateTarget.classList.add(this.hiddenClass),this.ctaTarget.disabled=!0,this.#I()}#I(){if(!this.ctaTarget.dataset.redirectUrl)return;let i=new URL(this.ctaTarget.dataset.redirectUrl,window.location.origin);this.selectedIdTarget.value?i.searchParams.set("character_id",this.selectedIdTarget.value):i.searchParams.delete("character_id"),this.ctaTarget.dataset.redirectUrl=i.pathname+i.search}#C(){let i=this.selectionTargets.findIndex(s=>s.checked);i===-1||!this.cardTargets[i].classList.contains(this.hiddenClass)||(this.selectionTargets[i].checked=!1,this.#L())}};var hI=2500,cI=2600,il=class extends u{static targets=["clipDot","finalVideo","montageImage","sceneDot","stageLabel"];static values={statusUrl:String,phase:String,stitchingLabel:String};
57connect(){["scene","video"].includes(this.phaseValue)&&(this.pollTimer=setInterval(()=>this.#e(),hI)),this.montageImageTargets.length>1&&(this.montageIndex=0,this.montageTimer=setInterval(()=>this.#s(),cI)),this.hasFinalVideoTarget&&(this.finalVideoTarget.load(),this.finalVideoTarget.play().catch(()=>{}))}disconnect(){clearInterval(this.pollTimer),clearInterval(this.montageTimer)}async#e(){let i;try{let s=await Ee(this.statusUrlValue,{responseKind:"json"});if(!s.ok)return;i=await s.json}catch{return}if(i.phase!==this.phaseValue){clearInterval(this.pollTimer),Be.visit(window.location.href,{action:"replace"});return}this.phaseValue==="scene"&&this.#t(i),this.phaseValue==="video"&&this.#i(i)}#t(i){i.images.forEach(s=>{if(s.status!=="completed"||!s.url)return;let r=this.sceneDotTargets.find(d=>d.dataset.position===String(s.position));r&&(r.classList.remove("animate-pulse","bg-white/40"),r.classList.add("bg-pink-default"));let n=this.montageImageTargets.find(d=>d.dataset.position===String(s.position))?.querySelector("[data-slot-media]");if(!n||n.querySelector("img"))return;let l=document.createElement("img");l.src=s.url,l.alt="",l.className="absolute inset-0 h-full w-full scale-110 object-cover opacity-0 transition-all duration-700 ease-out",l.decoding="async",l.addEventListener("load",()=>{l.classList.remove("opacity-0","scale-110"),n.querySelector("[data-slot-pending]")?.remove(),setTimeout(()=>n.querySelector("video")?.remove(),800)}),n.appendChild(l)})}#i(i){i.clips.forEach(s=>{let r=this.clipDotTargets.find(a=>a.dataset.clipId===String(s.id));r&&(r.classList.remove("animate-pulse","bg-white/40","bg-pink-default","bg-grey-tooltip"),s.status==="completed"?r.classList.add("bg-pink-default"):s.status==="failed"?r.classList.add("bg-grey-tooltip"):r.classList.add("animate-pulse","bg-white/40"))}),i.status==="stitching"&&this.hasStageLabelTarget&&(this.stageLabelTarget.textContent=this.stitchingLabelValue)}#s(){let i=this.montageImageTargets;i[this.montageIndex].classList.replace("opacity-100","opacity-0"),this.montageIndex=(this.montageIndex+1)%i.length,i[this.montageIndex].classList.replace("opacity-0","opacity-100")}};var sl=class extends u{static targets=["card","counter","nextButton","overlay","player","prevButton"];disconnect(){document.documentElement.classList.remove("overflow-hidden")}open(i){this.index=Number(i.currentTarget.dataset.index),this.overlayTarget.classList.remove("hidden"),this.overlayTarget.classList.add("flex"),document.documentElement.classList.add("overflow-hidden"),this.#e()}close(){this.playerTarget.pause(),this.playerTarget.removeAttribute("src"),this.overlayTarget.classList.add("hidden"),this.overlayTarget.classList.remove("flex"),document.documentElement.classList.remove("overflow-hidden")}playNext(){if(this.index>=this.cardTargets.length-1){this.close();return}this.index+=1,this.#e()}playPrevious(){this.index<=0||(this.index-=1,this.#e())}keydown(i){this.overlayTarget.classList.contains("hidden")||(i.key==="Escape"&&this.close(),i.key==="ArrowRight"&&this.playNext(),i.key==="ArrowLeft"&&this.playPrevious())}#e(){let i=this.cardTargets[this.index];this.playerTarget.src=i.dataset.videoUrl,this.playerTarget.play().catch(()=>{}),this.counterTarget.textContent=`${this.index+1} / ${this.cardTargets.length}`,this.prevButtonTarget.classList.toggle("hidden",this.index===0),this.nextButtonTarget.classList.toggle("hidden",this.index===this.cardTargets.length-1)}};var rl=class extends u{static targets=["dialog"];openDialog(){this.dialogTarget.querySelector("dialog").showModal()}};var dI=2e3,al=class extends u{static values={funnelEventsUrl:String};connect(){this.openGeneration=0,this.onPageshow=i=>{i.persisted&&(this.ctaNavigating=!1)},window.addEventListener("pageshow",this.onPageshow)}disconnect(){window.removeEventListener("pageshow",this.onPageshow)}open(i){this.openGeneration+=1,this.ctaNavigating=!1,this.intentStored=i.detail?.intent,this.retryIntent=i.detail?.retryIntent,this.element.classList.remove("hidden"),document.body.classList.add("overflow-hidden")}async trackCta(i){if(!this.intentStored){this.#t("click_cta_paywall");return}if(i.preventDefault(),this.ctaNavigating)return;this.ctaNavigating=!0;let s=this.openGeneration,r=i.currentTarget.href;if(await this.#e(this.intentStored)===!1&&this.retryIntent&&await this.#e(this.retryIntent()),s===this.openGeneration){if(this.element.classList.contains("hidden")){this.ctaNavigating=!1;return}this.#t("click_cta_paywall"),window.location.assign(r)}}#e(i){return Promise.race([i,new Promise(s=>setTimeout(()=>s(!0),dI))])}#t(i){if(!this.funnelEventsUrlValue)return;let s=new FormData;s.append("event",i),H(this.funnelEventsUrlValue,{body:s,keepalive:!0}
57).catch(()=>{})}};var nl=3,aw=["-rotate-6","rotate-3","-rotate-3","rotate-6"],ol=class extends u{static targets=["slot","form","characterInput","locationInput","partnerInput","sceneInputs","submitButton","cta","ctaPrice","ctaPriceAmount","stickyBar","insufficientNotice","sceneSection","sceneList","sceneLimit","sceneHint","sceneRowTemplate","durationUnavailableNotice","sheetPile","sheetGenerate","sheetPickCharacter","sheetPrice","sheetPriceAmount","characterGrid","customTileTemplate","myAisChip","customCharacterFreeBadge"];static values={maxScenes:Number,durationOptions:Object,defaultDuration:{type:Number,default:5},tokenBalance:Number,location:String,partner:String,initialDraft:Object,autoOpenCharacter:Boolean,scenesOne:String,scenesOther:String,freeMode:{type:Boolean,default:!1},paywallIntentUrl:{type:String,default:""},customCharactersUrl:String};static outlets=["create-video--studio--sheet"];connect(){this.character=null,this.scenes=[],this.submitting=!1,this.returnToActionSheet=!1,this.#s(),this.pendingAutoOpen=this.autoOpenCharacterValue&&!this.character,this.#T(),this.#a()}createVideoStudioSheetOutletConnected(i){!this.pendingAutoOpen||i.element.id!=="studio-character-sheet"||(this.pendingAutoOpen=!1,i.open())}disconnect(){this.ctaObserver?.disconnect()}openSheet(i){this.#o(i.currentTarget.dataset.sheetId)}switchToCharacterSheet(){this.returnToActionSheet=!0,this.#o("studio-character-sheet")}openCustomCharacterBuilder(){this.#o("studio-custom-character-sheet")}backToCharacterSheet(){this.#o("studio-character-sheet")}pickCharacter(i){let{pickerId:s,pickerLabel:r,pickerImage:a}=i.currentTarget.dataset;this.#t({id:s,label:r,image:a})}pickCustomCharacter(i){let{identifier:s,label:r,imageUrl:a}=i.detail;this.#t({id:s,label:r,image:a})}addSavedCharacter(i){if(!this.hasCharacterGridTarget||!this.hasCustomTileTemplateTarget)return;let{identifier:s,label:r,imageUrl:a,publicId:n}=i.detail;if([...this.characterGridTarget.querySelectorAll("[data-picker-id]")].some(m=>m.dataset.pickerId===s))return;let d=this.customTileTemplateTarget.content.firstElementChild.cloneNode(!0);d.dataset.pickerId=s,d.dataset.publicId=n,d.dataset.pickerLabel=r,d.dataset.pickerImage=a,d.querySelector("img").src=a,d.querySelector("img").alt=r,d.querySelector("[data-custom-tile-label]").textContent=r,this.characterGridTarget.firstElementChild.after(d),this.hasMyAisChipTarget&&this.myAisChipTarget.classList.remove("hidden")}updateCustomCharacterPricing(i){let{generationCost:s,tokenBalance:r}=i.detail;this.hasCustomCharacterFreeBadgeTarget&&Number.isFinite(s)&&(this.customCharacterFreeBadgeTarget.hidden=s>0),Number.isFinite(r)&&(this.tokenBalanceValue=r,this.#T())}async removeSavedCharacter(i){i.stopPropagation();let s=i.currentTarget.closest("[data-picker-id]"),r=s?.dataset.publicId;!r||!(await Ye(`${this.customCharactersUrlValue}/${r}`)).ok||(s.remove(),this.#e())}#e(){!this.hasMyAisChipTarget||!this.hasCharacterGridTarget||this.characterGridTarget.querySelector("[data-category='my_ais'][data-picker-id]")||(this.myAisChipTarget.classList.add("hidden"),this.myAisChipTarget.getAttribute("aria-selected")==="true"&&this.myAisChipTarget.closest("[role='tablist']")?.querySelector("[data-category='all']")?.click())}#t(i){this.character=i,this.#h("character",i),this.returnToActionSheet||this.scenes.length===0?(this.returnToActionSheet=!1,this.#o("studio-action-sheet")):this.#l(),this.#T()}pickLocation(i){let{pickerId:s,pickerLabel:r,pickerImage:a}=i.currentTarget.dataset;this.locationValue=s,this.#h("location",{label:r,image:a}),this.#l()}pickPartner(i){let{pickerId:s,pickerLabel:r}=i.currentTarget.dataset;this.partnerValue=s,this.#h("partner",{label:r}),this.#l()}addScene(i){if(this.scenes.length>=this.maxScenesValue){this.sceneLimitTarget.classList.remove("hidden"),this.sceneLimitTarget.classList.add("flex");return}let{pickerId:s,pickerLabel:r,pickerImage:a}=i.currentTarget.dataset;this.scenes.push({key:s,label:r,image:a,duration:this.defaultDurationValue}),this.#c(),this.#T()}#i(){if(!this.paywallIntentUrlValue)return Promise.resolve(!0);let i=new FormData;return this.character?.id&&i.append("character_id",this.character.id),this.locationValue&&i.append("location",this.locationValue),this.partnerValue&&i.append("partner_ethnicity",this.partnerValue),this.scenes.forEac
57h(s=>{i.append("scenes[][key]",s.key),i.append("scenes[][duration]",s.duration)}),H(this.paywallIntentUrlValue,{body:i,keepalive:!0}).then(s=>s.ok).catch(()=>!1)}removeScene(i){let s=i.currentTarget.closest("[data-scene-row]");this.scenes.splice(this.#d(s),1),this.#c(),this.#T()}setSceneDuration(i){let s=i.currentTarget.closest("[data-scene-row]"),r=this.scenes[this.#d(s)];if(!r)return;let a=Number(i.currentTarget.dataset.duration);this.#b({key:r.key,duration:a})!==null&&(r.duration=a,this.#c(),this.#T())}generate(){let i=this.#p();if(i!==null){if(this.freeModeValue){this.dispatch("openPaywall",{detail:{intent:this.#i(),retryIntent:()=>this.#i()}});return}this.submitting||!this.#v(i)||(this.submitting=!0,this.characterInputTarget.value=this.character.id,this.locationInputTarget.value=this.locationValue,this.partnerInputTarget.value=this.partnerValue,this.sceneInputsTarget.innerHTML="",this.scenes.forEach(s=>{this.sceneInputsTarget.append(this.#m("scenes[][key]",s.key),this.#m("scenes[][duration]",s.duration))}),this.pendingCost=i,this.#T(),this.formTarget.requestSubmit(this.submitButtonTarget))}}submitEnd(i){this.submitting=!1,this.#l(),i.detail.success&&(this.tokenBalanceValue=Math.max(0,this.tokenBalanceValue-(this.pendingCost||0)),this.scrollToGallery()),this.pendingCost=null,this.#T()}scrollToGallery(){window.innerWidth>=1024||document.getElementById("studio-gallery")?.scrollIntoView({behavior:"smooth",block:"start"})}scrollToScenes(){this.sceneSectionTarget.scrollIntoView?.({behavior:"smooth",block:"start"})}#s(){let i=this.initialDraftValue;if(!(!i||Object.keys(i).length===0)){if(i.character&&typeof i.character=="object"){let{id:s,label:r,image:a}=i.character;s&&r&&(this.character={id:String(s),label:r,image:a},this.#h("character",this.character))}else{let s=this.#n("studio-character-sheet",i.character);if(s){let{pickerId:r,pickerLabel:a,pickerImage:n}=s.dataset;this.character={id:r,label:a,image:n},this.#h("character",{label:a,image:n})}}this.#r(i.scenes)}}#r(i){this.scenes=(Array.isArray(i)?i:[]).map(s=>{let r=this.#n("studio-action-sheet",s.key);return r?{key:r.dataset.pickerId,label:r.dataset.pickerLabel,image:r.dataset.pickerImage,duration:[5,10,20,60].includes(s.duration)?s.duration:5}:null}).filter(Boolean).slice(0,this.maxScenesValue),this.scenes.length>0&&this.#c()}#a(){!this.hasStickyBarTarget||!this.hasCtaTarget||(this.ctaObserver=new IntersectionObserver(([i])=>{let s=!i.isIntersecting&&i.boundingClientRect.top<0;this.stickyBarTarget.classList.toggle("hidden",!s)}),this.ctaObserver.observe(this.ctaTargets[0]))}#n(i,s){if(!s)return null;let r=document.getElementById(i);return r?[...r.querySelectorAll("[data-picker-id]")].find(a=>a.dataset.pickerId===String(s))??null:null}#o(i){this.createVideoStudioSheetOutlets.forEach(s=>{s.element.id!==i&&s.isOpen()&&s.close()}),this.createVideoStudioSheetOutlets.find(s=>s.element.id===i)?.open()}#l(){this.createVideoStudioSheetOutlets.forEach(i=>i.isOpen()&&i.close())}#h(i,{label:s,image:r}){let a=this.slotTargets.find(d=>d.dataset.slotKind===i);if(!a)return;a.querySelector("[data-slot-empty]").classList.add("hidden");let n=a.querySelector("[data-slot-filled]");n.classList.remove("hidden");let l=n.querySelector("[data-slot-image]");r?(l.src=r,l.classList.remove("hidden")):l.classList.add("hidden"),n.querySelector("[data-slot-value]").textContent=s,n.classList.remove("animate-slide-up-bounce"),n.offsetWidth,n.classList.add("animate-slide-up-bounce")}#c(){this.sceneListTarget.innerHTML="",this.scenes.forEach((s,r)=>{let a=this.sceneRowTemplateTarget.content.firstElementChild.cloneNode(!0);a.querySelector("[data-scene-number]").textContent=r+1,a.querySelector("[data-scene-label]").textContent=s.label;let n=a.querySelector("[data-scene-thumb]");if(s.image){let l=document.createElement("video");l.src=s.image,l.muted=!0,l.loop=!0,l.playsInline=!0,l.className=this.#f(),l.play()?.catch(()=>{}),n.appendChild(l)}a.querySelectorAll("[data-duration]").forEach(l=>{let d=Number(l.dataset.duration),m=d===s.duration,v=this.#b({key:s.key,duration:d})!==null;l.hidden=!m&&!v,l.disabled=!v,l.setAttribute("aria-pressed",m),l.classList.toggle("bg-gradient-pink-cta",m),l.classList.toggle("text-white",m),l.classList.toggle("bg-white/[0.06]",!m),l.classList.toggle("text-grey-light",!m)}),a.querySelector("[data-long-wait-hint]").hidden=s.duration!==60,a.querySelector("[data-duration-unavailable]").hidden=this.#b(s)!==null,this.sceneListTarget.appendChild(a)});let i=this.scenes.length>0;this.sceneSectionTarget.classList.toggle("hidden",!i),this.sceneHintTarget.classList.toggle("hidden",i),this.#y(),this.scenes.length<this.maxScenesValue&&(this.sceneLimitTarget.classList.add("hidden"),this.sceneLimitTarget.classList.remove("flex")),this.#u()}#u(){let i=this.slotTargets.find(n=>n.dataset.slotKind==="action"),s=i.querySelector("[data-slot-collage]");if(this.scenes.length===0){s.innerHTML="",s.classList.add("hidden"),i.querySelector("[data-slot-filled]").classList.add("hidden"),i.querySelector("[data-slot-empty]").classList.remove("hidden");return}let r=this.scenes.length===1?this.scenesOneValue:this.scenesOtherValue,a=this.scenes.length===1?this.scenes[0].label:r.replace("%{count}",this.scenes.length);this.#h("action",{label:a}),this.#g(s)}#g(i){let s=this.scenes.slice(0,4),r=this.scenes.length-s.length;i.innerHTML="",i.classList.remove("hidden"),i.className=`absolute inset-0 grid gap-px ${this.scenes.length===1?"grid-cols-1":"grid-cols-2"} ${this.scenes.length>2?"grid-rows-2":""}
57`,s.forEach((a,n)=>{let l=document.createElement("span");if(l.className="relative block overflow-hidden bg-black-card",this.scenes.length===3&&n===0&&l.classList.add("row-span-2"),a.image){let d=document.createElement("video");d.src=a.image,d.muted=!0,d.loop=!0,d.playsInline=!0,d.setAttribute("tabindex","-1"),d.className=this.#f(),d.play()?.catch(()=>{}),l.appendChild(d)}else{let d=document.createElement("span");d.textContent=a.label,d.className="flex h-full w-full items-center justify-center px-1 text-center text-[9px] font-semibold leading-tight text-grey-light",l.appendChild(d)}if(r>0&&n===s.length-1){let d=document.createElement("span");d.textContent=`+${r}`,d.className="absolute inset-0 flex items-center justify-center bg-black/60 text-sm font-bold text-white backdrop-blur-[1px]",l.appendChild(d)}i.appendChild(l)})}#d(i){return Array.from(this.sceneListTarget.children).indexOf(i)}#m(i,s){let r=document.createElement("input");return r.type="hidden",r.name=i,r.value=s,r}#f(){return this.freeModeValue?"h-full w-full object-cover scale-110 blur-md":"h-full w-full object-cover"}#p(){let i=this.scenes.map(s=>this.#b(s));return i.includes(null)?null:i.reduce((s,r)=>s+r,0)}#b(i){let s=this.durationOptionsValue[i.key]?.[i.duration];return Number.isFinite(s)&&s>=0?s:null}#v(i){return!!this.character&&this.scenes.length>0&&i!==null&&i<=this.tokenBalanceValue}#T(){let i=this.#p(),s=this.freeModeValue&&i!==null?0:i,r=s!==null&&s>0,a=this.freeModeValue?!!this.character&&this.scenes.length>0&&i!==null:this.#v(s)&&!this.submitting;this.ctaTargets.forEach(d=>{d.disabled=!a}),this.ctaPriceTargets.forEach(d=>{d.classList.toggle("hidden",!r),d.classList.toggle("flex",r)}),this.ctaPriceAmountTargets.forEach(d=>{d.textContent=s??""}),this.durationUnavailableNoticeTargets.forEach(d=>{d.classList.toggle("hidden",s!==null)});let n=!this.freeModeValue&&this.scenes.length>0&&s>this.tokenBalanceValue;this.insufficientNoticeTarget.classList.toggle("hidden",!n),this.insufficientNoticeTarget.classList.toggle("flex",n);let l=!!this.character;this.sheetGenerateTarget.disabled=!a||!l,this.sheetGenerateTarget.classList.toggle("hidden",!l),this.sheetGenerateTarget.classList.toggle("flex",l),this.sheetPickCharacterTarget.classList.toggle("hidden",l),this.sheetPickCharacterTarget.classList.toggle("flex",!l),this.sheetPriceAmountTarget.textContent=s??"",this.sheetPriceTarget.classList.toggle("hidden",!r),this.sheetPriceTarget.classList.toggle("flex",r)}#y(){let i=this.sheetPileTarget;i.replaceChildren(),this.scenes.slice(0,nl).forEach((r,a)=>{i.appendChild(this.#S(r,a))});let s=this.scenes.length-nl;s>0&&i.appendChild(this.#w(s))}#S(i,s){let r=this.#L(s);if(i.image){let n=document.createElement("video");n.src=i.image,n.muted=!0,n.loop=!0,n.autoplay=!0,n.playsInline=!0,n.setAttribute("tabindex","-1"),n.className=this.#f(),r.appendChild(n)}let a=document.createElement("span");return a.className="absolute left-0.5 top-0.5 flex h-3.5 w-3.5 items-center justify-center rounded-full bg-black/60 text-[8px] font-bold text-white backdrop-blur-sm",a.textContent=s+1,r.appendChild(a),r}#w(i){let s=this.#L(nl),r=document.createElement("span");return r.className="flex h-full w-full items-center justify-center text-[11px] font-bold text-grey-light",r.textContent=`+${i}`,s.appendChild(r),s}#L(i){let s=document.createElement("span");return s.className=`relative h-14 w-10 shrink-0 origin-bottom overflow-hidden rounded-lg border border-white/15 bg-black-dark/95 shadow-lg shadow-black/60 ${aw[i%aw.length]}`,i>0&&s.classList.add("-ml-3"),s.style.zIndex=nl+1-i,s}};function Vt(i){try{let s=window?.localStorage?.getItem(i);return s?JSON.parse(s):null}catch(s){return console.error(`Error loading from localStorage (key: ${i}):`,s),null}}function Si(i,s){try{return window?.localStorage?.setItem(i,JSON.stringify(s)),!0}catch(r){return console.error(`Error saving to localStorage (key: ${i}):`,r),!1}}function as(i){try{return window?.localStorage?.removeItem(i),!0}catch(s){return console.error(`Error removing from localStorage (key: ${i}):`,s),!1}}var nw="cv:dismissed-storyboard-seed";function ow(i){i&&Si(nw,i)}function lw(i){return!!i&&Vt(nw)===i}var hw=8,cw=.4,uI="900px 0px",dw=450,bT="(min-width: 1024px)",gI=2200,mI=100,pI=.6;function ll(i){let s=Number(i)||0;if(s<60)return`${s}s`;let r=s%60;return r===0?`${Math.floor(s/60)}m`:`${Math.floor(s/60)}m ${r}s`}var fI=["bg-gradient-pink-cta","text-white","ring-transparent"],vI=["bg-white/[0.04]","text-grey-light","ring-white/10"],TI=["bg-white","text-black-dark"],bI=["bg-white/[0.06]","text-grey-light","hover:bg-white/10","hover:text-white"],yI=["bg-pink-default/15","text-pink-default","hover:bg-pink-default/25"],yT="all",uw=3,ST="animate-[sb-pop_.45s_cubic-bezier(.2,.8,.2,1)]",SI="animate-[sb-rise_.3s_ease-out]",wT="animate-[sb-slide-up_.45s_cubic-bezier(.2,.8,.2,1)]",wI=["text-white"],CI=["text-grey-default","hover:text-white"],gw=["z-10","shadow-xl","shadow-black/50","ring-1","ring-white/20","bg-black-card"],hl=class extends u{static classes=["concealedVideo"];static targets=["panelVideos","videosCount","tabBuild","tabStories","tabVideos","tabIndicator","filters","tabsRow","library","grid","storiesGrid","categoryChip","noResults","search","searchWra
57p","searchToggle","tileVideo","storyboardList","storyboardEmpty","storyboardLimit","storyboardSummary","sceneRowTemplate","clearAll","dockPanel","dockBackdrop","dockToggle","dockStrip","cta","ctaPrice","ctaPriceAmount","ctaHint","insufficientNotice","characterChip","characterImage","characterPlaceholder","characterLabel","locationChip","locationImage","locationLabel","sceneModal","sceneModalPanel","replaceModal","replaceTitle","replaceBody","replaceConfirm","sceneModalEyebrow","sceneModalTitle","sceneModalVideo","sceneModalDuration","sceneModalAudio","sceneModalLines","sceneModalNext","sceneModalNextArrow","sceneModalPrev","previewModal","previewPanel","previewStage","previewCaption","previewHeading","previewBody","previewVideo","previewLoader","previewLabel","previewMeta","previewDescription","previewDurations","previewDurationButton","previewAudioWrap","previewAudio","previewLines","previewAdd","previewUse","previewScenesWrap","previewScenes","previewSceneTemplate","form","characterInput","locationInput","partnerInput","sceneInputs","submitButton","characterGrid","customTileTemplate","myAisChip","customCharacterFreeBadge","limitToast","seedProject"];static values={maxScenes:Number,tokenBalance:Number,costs:Object,location:String,partner:String,blurred:Boolean,customCharactersUrl:String,scenesOne:String,scenesOther:String,scenesZero:String,totalLabel:String,sceneNumberLabel:String,sceneOfLabel:String,initialRecipe:Object,pickCharacterLabel:String,videosCount:Number};static outlets=["create-video--studio--sheet"];connect(){this.character=null,this.scenes=[],this.submitting=!1,this.editingIndex=null,this.preview=null,this.pendingStory=null,this.category=yT,this.tab="build",this.dockOpen=!1,this.#a(),this.#I(this.#w()),this.#V(),this.#K(),this.#i(this.tabBuildTarget),this.onResize=()=>this.#i(this.#e(this.tab)),window.addEventListener("resize",this.onResize)}disconnect(){this.#ee(),this.previewLoaderTarget.hidden=!0,this.tileObserver?.disconnect(),this.posterObserver?.disconnect(),this.tileVideoTargets.forEach(i=>this.#h(i)),this.hasPreviewVideoTarget&&this.#h(this.previewVideoTarget),clearTimeout(this.limitToastTimer),window.removeEventListener("resize",this.onResize),window.removeEventListener("pointermove",this.onDragMove),window.removeEventListener("pointerup",this.onDragEnd),window.removeEventListener("pointercancel",this.onDragEnd),document.body.classList.remove("overflow-hidden")}showTab(i){this.tab=i.currentTarget.dataset.tab,this.showingVideos=this.tab==="videos",this.filtersTarget.classList.toggle("hidden",this.tab!=="build"),this.tab!=="build"&&this.#g(),this.hasTabsRowTarget&&this.tabsRowTarget.classList.toggle("mb-3",this.tab==="build"),this.panelVideosTarget.classList.toggle("hidden",!this.showingVideos),["build","stories","videos"].forEach(r=>this.#t(this.#e(r),r===this.tab)),this.#i(this.#e(this.tab)),this.filter(),this.closeDock();let s=this.libraryTarget.getBoundingClientRect().top+window.scrollY-this.#s();window.scrollY>s&&window.scrollTo({top:s,behavior:"smooth"})}#e(i){return i==="stories"?this.tabStoriesTarget:i==="videos"?this.tabVideosTarget:this.tabBuildTarget}#t(i,s){i.setAttribute("aria-selected",String(s)),wI.forEach(r=>i.classList.toggle(r,s)),CI.forEach(r=>i.classList.toggle(r,!s))}#i(i){this.hasTabIndicatorTarget&&(this.tabIndicatorTarget.style.width=`${i.offsetWidth}px`,this.tabIndicatorTarget.style.transform=`translateX(${i.offsetLeft}px)`)}#s(){return window.matchMedia("(min-width: 768px)").matches?64:53}#r(){this.tab!=="build"&&this.showTab({currentTarget:{dataset:{tab:"build"}}})}#a(){if(this.visibleVideos=new Set,this.nearbyVideos=new Set,!("IntersectionObserver"in window)){this.tileVideoTargets.forEach(i=>this.#o(i));return}this.posterObserver=new IntersectionObserver(i=>i.forEach(s=>{s.isIntersecting?(this.nearbyVideos.add(s.target),this.#o(s.target)):(this.nearbyVideos.delete(s.target),this.visibleVideos.has(s.target)||this.#h(s.target))}),{rootMargin:uI}),this.tileVideoTargets.forEach(i=>this.posterObserver.observe(i)),this.tileObserver=new IntersectionObserver(i=>{i.forEach(s=>{s.isIntersecting&&s.intersectionRatio>=cw?this.visibleVideos.add(s.target):this.visibleVideos.delete(s.target)}),this.#n()},{threshold:cw}
57),this.tileVideoTargets.forEach(i=>this.tileObserver.observe(i))}#n(){let i=window.matchMedia(bT).matches?hw:hw-2,s=this.preview!==null||this.editingIndex!==null,r=0;this.tileVideoTargets.forEach(a=>{if(a===this.previewTile?.video)return;let n=a.closest("[data-scene-tile]")?.classList.contains("hidden");this.visibleVideos?.has(a)&&!n&&!s&&r<i?(r+=1,this.#l(a)):!n&&(this.nearbyVideos?.has(a)||this.visibleVideos?.has(a))?this.#c(a):this.#h(a)})}#o(i){!i.poster&&i.dataset.poster&&(i.poster=i.dataset.poster)}revealTileVideo(i){let s=i.currentTarget;s.paused||(s.classList.remove(...this.concealedVideoClasses),s===this.previewTile?.video&&(this.previewLoaderTarget.hidden=!0))}concealTileVideo(i){i.currentTarget!==this.previewTile?.video&&i.currentTarget.classList.add(...this.concealedVideoClasses)}#l(i){this.#o(i),!i.getAttribute("src")&&i.dataset.src&&(i.src=i.dataset.src),i.paused&&i.play()?.catch(()=>{})}#h(i){!i.getAttribute("src")||i===this.previewTile?.video||(this.#c(i),i.removeAttribute("src"),i.load())}#c(i){i.classList.add(...this.concealedVideoClasses),i.pause()}selectCategory(i){this.#u(i.currentTarget.dataset.filter)}showStories(){this.showTab({currentTarget:{dataset:{tab:"stories"}}}),this.libraryTarget.scrollIntoView({behavior:"smooth",block:"start"})}#u(i){this.category=i,this.categoryChipTargets.forEach(s=>{let r=s.dataset.filter===i,a=s.dataset.accent==="true"?yI:bI;s.setAttribute("aria-selected",String(r)),TI.forEach(n=>s.classList.toggle(n,r)),a.forEach(n=>s.classList.toggle(n,!r))}),this.filter()}toggleSearch(){this.searchWrapTarget.classList.contains("hidden")?(this.searchWrapTarget.classList.remove("hidden"),this.searchToggleTarget.setAttribute("aria-expanded","true"),this.searchTarget.focus()):(this.#g(),this.filter())}
57#g(){!this.hasSearchWrapTarget||this.searchWrapTarget.classList.contains("hidden")||(this.searchWrapTarget.classList.add("hidden"),this.searchToggleTarget.setAttribute("aria-expanded","false"),this.searchTarget.value="")}resetFilters(){this.searchTarget.value="",this.#u(yT)}filter(){let i=this.searchTarget.value.trim().toLowerCase(),s=this.tab==="videos",r=this.tab==="stories",a=s?1:0;this.#m().forEach(n=>{let l=!s&&!r&&this.#d(n)&&(i===""||n.dataset.search.includes(i));n.classList.toggle("hidden",!l),l&&(a+=1)}),this.#f().forEach(n=>{n.classList.toggle("hidden",!r),r&&(a+=1)}),this.gridTarget.classList.toggle("hidden",r||s),this.gridTarget.classList.toggle("grid",!r&&!s),this.hasStoriesGridTarget&&(this.storiesGridTarget.classList.toggle("hidden",!r),this.storiesGridTarget.classList.toggle("grid",r)),this.noResultsTarget.classList.toggle("hidden",a>0),this.#n()}#d(i){return this.category===yT?!0:i.dataset.category===this.category}#m(){return Array.from(this.gridTarget.querySelectorAll("[data-scene-tile]"))}#f(){return this.hasStoriesGridTarget?Array.from(this.storiesGridTarget.querySelectorAll("[data-story-card]")):[]}#p(i,s){return this.#m().find(r=>r.dataset.key===i&&(r.dataset.variant||"")===(s||""))??null}openStory(i){let{storyKey:s,storyTitle:r,storyPreview:a,storyPoster:n,storySeconds:l,storyRecipe:d}=i.currentTarget.dataset,m=JSON.parse(d);this.preview={kind:"story",key:s,recipe:m},this.previewLabelTargets.forEach(v=>{v.textContent=r}),this.previewMetaTargets.forEach(v=>{v.textContent=`${ll(l)} \xB7 ${this.#W(m.scenes.length)}`}),this.previewDescriptionTarget.classList.add("hidden"),this.previewDurationsTarget.classList.add("hidden"),this.previewAudioWrapTarget.classList.add("hidden"),this.previewAddTarget.classList.add("hidden"),this.previewAddTarget.classList.remove("flex"),this.previewUseTarget.classList.remove("hidden"),this.previewUseTarget.classList.add("flex"),this.#y(m.scenes),this.previewScenesWrapTarget.classList.remove("hidden"),this.#fe(a,n,"story",!1)}useStory(i){let s=this.preview?.kind==="story"&&!i.currentTarget.dataset.storyRecipe?this.preview.recipe:JSON.parse(i.currentTarget.dataset.storyRecipe);if(this.scenes.length>0)return this.#b(s,"story");this.#v(s)}#b(i,s){this.pendingStory={recipe:i,kind:s};let r=a=>a.dataset[`${s}Text`];this.hasReplaceTitleTarget&&(this.replaceTitleTarget.textContent=r(this.replaceTitleTarget)),this.hasReplaceBodyTarget&&(this.replaceBodyTarget.textContent=r(this.replaceBodyTarget)),this.hasReplaceConfirmTarget&&(this.replaceConfirmTarget.textContent=r(this.replaceConfirmTarget)),this.replaceModalTarget.classList.remove("hidden"),this.replaceModalTarget.classList.add("flex")}confirmReplace(){let i=this.pendingStory;this.cancelReplace(),i&&(i.kind==="clear"?this.#M():i.kind==="video"?this.#S(i.recipe):this.#v(i.recipe))}cancelReplace(){this.replaceModalTarget.classList.contains("hidden")||(this.pendingStory=null,this.replaceModalTarget.classList.add("hidden"),this.replaceModalTarget.classList.remove("flex"))}closeReplaceBackdrop(i){let s=this.replaceModalTarget;(i.target===s||i.target===s.firstElementChild)&&this.cancelReplace()}#v(i){this.closePreview(),this.#_(),this.#I(i),this.#V(),this.#K(),this.#T()}#T(){window.matchMedia(bT).matches?window.scrollTo({top:0,behavior:"smooth"}):this.dockOpen||this.toggleDock()}#y(i){let s=this.previewScenesTarget;s.replaceChildren(),i.forEach((r,a)=>{let n=this.previewSceneTemplateTarget.content.firstElementChild.cloneNode(!0);n.querySelector("[data-preview-scene-number]").textContent=a+1,n.querySelector("[data-preview-scene-label]").textContent=r.label;let l=r.audioLine?`\u201C${r.audioLine}\u201D`:null;n.querySelector("[data-preview-scene-meta]").textContent=[`${r.duration}s`,l].filter(Boolean).join(" \xB7 ");let d=n.querySelector("[data-preview-scene-poster]");r.poster&&(d.src=r.poster),s.appendChild(n)})}recreate(i){let s=i.detail?.recipe;if(s){if(this.scenes.length>0)return this.#b(s,"video");this.#S(s)}}#S(i){this.#I(i),this.#V(),this.#K(),this.#r(),this.#T()}#w(){let i=this.initialRecipeValue;return lw(this.#L())?{...i,scenes:[]}:i}#L(){return this.hasSeedProjectTarget?this.seedProjectTarget.textContent.trim():""}#I(i){!i||!Array.isArray(i.scenes)||(i.character?.id&&this.#k({id:i.character.id,label:i.character.label,image:i.character.image}),i.location?.value&&(this.locationValue=i.location.value,this.locationLabelTargets.forEac
57h(s=>{s.textContent=i.location.label}),this.locationInputTarget.value=i.location.value,i.location.image&&this.locationImageTargets.forEach(s=>{s.src=i.location.image})),i.partner?.value&&(this.partnerValue=i.partner.value,this.partnerInputTarget.value=i.partner.value),this.scenes=i.scenes.filter(s=>this.#p(s.key,s.variant)).slice(0,this.maxScenesValue).map(s=>({key:s.key,variant:s.variant||null,label:s.label,preview:s.preview,previewFull:s.previewFull||this.#p(s.key,s.variant)?.dataset.previewFull,poster:s.poster,audioLine:s.audioLine||"",duration:this.#C(s.duration)})))}#C(i){return this.costsValue[i]?Number(i):Number(Object.keys(this.costsValue)[0])}openSheet(i){this.#B(i.currentTarget.dataset.sheetId)}jumpToCharacter(){let i=this.characterChipTargets.find(s=>s.offsetParent!==null);i&&(this.closeDock(),i.scrollIntoView({block:"center"}),i.dataset.sheetId&&this.#B(i.dataset.sheetId))}pickCharacter(i){let{pickerId:s,pickerLabel:r,pickerImage:a}=i.currentTarget.dataset;this.#k({id:s,label:r,image:a})}pickCustomCharacter(i){let{identifier:s,label:r,imageUrl:a}=i.detail;this.#k({id:s,label:r,image:a})}openCustomCharacterBuilder(){this.#B("studio-custom-character-sheet")}backToCharacterSheet(){this.#B("studio-character-sheet")}addSavedCharacter(i){if(!this.hasCharacterGridTarget||!this.hasCustomTileTemplateTarget)return;let{identifier:s,label:r,imageUrl:a,publicId:n}=i.detail;if([...this.characterGridTarget.querySelectorAll("[data-picker-id]")].some(m=>m.dataset.pickerId===s))return;let d=this.customTileTemplateTarget.content.firstElementChild.cloneNode(!0);d.dataset.pickerId=s,d.dataset.publicId=n,d.dataset.pickerLabel=r,d.dataset.pickerImage=a,d.querySelector("img").src=a,d.querySelector("img").alt=r,d.querySelector("[data-custom-tile-label]").textContent=r,this.characterGridTarget.firstElementChild.after(d),this.hasMyAisChipTarget&&this.myAisChipTarget.classList.remove("hidden")}updateCustomCharacterPricing(i){let{generationCost:s,tokenBalance:r}=i.detail;this.hasCustomCharacterFreeBadgeTarget&&Number.isFinite(s)&&(this.customCharacterFreeBadgeTarget.hidden=s>0),Number.isFinite(r)&&(this.tokenBalanceValue=r,this.#K())}async removeSavedCharacter(i){i.stopPropagation();let s=i.currentTarget.closest("[data-picker-id]"),r=s?.dataset.publicId;if(!r||!(await Ye(`${this.customCharactersUrlValue}/${r}`)).ok)return;let n=s.dataset.pickerId;s.remove(),this.hasMyAisChipTarget&&!this.characterGridTarget.querySelector("[data-category='my_ais'][data-picker-id]")&&this.myAisChipTarget.classList.add("hidden"),this.character?.id===n&&this.#E()}#E(){this.character=null,this.characterLabelTargets.forEach(i=>{i.textContent=this.pickCharacterLabelValue}),this.characterChipTargets.forEach(i=>{i.dataset.missing="true"}),this.characterImageTargets.forEach(i=>{i.removeAttribute("src"),i.classList.add("hidden")}),this.characterPlaceholderTargets.forEach(i=>i.classList.remove("hidden")),this.#K()}#k(i){this.character=i,this.characterLabelTargets.forEach(s=>{s.textContent=i.label}),this.characterChipTargets.forEach(s=>{s.dataset.missing="false",this.#x(s)}),i.image&&(this.characterImageTargets.forEach(s=>{s.src=i.image,s.classList.remove("hidden")}),this.characterPlaceholderTargets.forEach(s=>s.classList.add("hidden"))),this.#_(),this.#K()}pickLocation(i){let{pickerId:s,pickerLabel:r,pickerImage:a}=i.currentTarget.dataset;this.locationValue=s,this.locationLabelTargets.forEach(n=>{n.textContent=r}),a&&this.locationImageTargets.forEach(n=>{n.src=a}),this.locationInputTarget.value=s,this.locationChipTargets.forEach(n=>this.#x(n)),this.#_()}#x(i){this.#A(i);let s=i.querySelector("[data-cast-media]");s&&(s.classList.remove(wT),s.offsetWidth,s.classList.add(wT),s.addEventListener("animationend",()=>s.classList.remove(wT),{once:!0}))}#A(i){i.classList.remove(ST),i.offsetWidth,i.classList.add(ST),i.addEventListener("animationend",()=>i.classList.remove(ST),{once:!0})}#B(i){this.createVideoStudioSheetOutlets.forEach(s=>{s.element.id!==i&&s.isOpen()&&s.close()}),this.createVideoStudioSheetOutlets.find(s=>s.element.id===i)?.open()}
57#_(){this.createVideoStudioSheetOutlets.forEach(i=>i.isOpen()&&i.close())}addScene(i){i.stopPropagation();let s=i.currentTarget.closest("[data-scene-tile]");this.#P(s,Number(s?.dataset.defaultDuration))}addFromPreview(i){if(i?.preventDefault?.(),this.preview?.kind!=="tile")return;let s=this.#p(this.preview.key,this.preview.variant),r=this.#P(s,this.preview.duration,this.previewAudioTarget.value.trim());this.closePreview(),r&&!window.matchMedia(bT).matches&&this.#D()}#P(i,s,r=""){if(!i)return!1;let a=this.#O({key:i.dataset.key,variant:i.dataset.variant||null,label:i.dataset.label,preview:i.dataset.preview,previewFull:i.dataset.previewFull,poster:i.dataset.poster,duration:this.#C(s||i.dataset.defaultDuration),audioLine:r});return a&&this.#$(i),a}#O({key:i,variant:s,label:r,preview:a,previewFull:n,poster:l,duration:d,audioLine:m=""}){return this.scenes.length>=this.maxScenesValue?(this.storyboardLimitTargets.forEach(v=>{v.classList.remove("hidden"),v.classList.add("flex")}),this.#N(),!1):(this.scenes.push({key:i,variant:s,label:r,preview:a,previewFull:n,poster:l,audioLine:m,duration:d}),this.justAdded=this.scenes.length-1,this.#V(),this.#K(),!0)}#N(){if(!this.hasLimitToastTarget)return;let i=this.limitToastTarget;clearTimeout(this.limitToastTimer),i.hidden=!1,this.#A(i.firstElementChild),this.limitToastTimer=setTimeout(()=>{i.hidden=!0},gI)}#$(i){let s=i.querySelector("[data-scene-tile-added]");s&&(s.classList.remove("hidden"),s.classList.add("flex"),setTimeout(()=>{s.classList.add("hidden"),s.classList.remove("flex")},dw))}#D(){this.hasDockToggleTarget&&(this.dockToggleTarget.classList.add("scale-[1.03]"),setTimeout(()=>this.dockToggleTarget.classList.remove("scale-[1.03]"),dw))}dockDragStart(i){this.dockDrag={startY:i.touches[0].clientY,startedAt:Date.now()},this.dockPanelTarget.style.transition="none"}dockDragMove(i){if(!this.dockDrag)return;let s=Math.max(0,i.touches[0].clientY-this.dockDrag.startY);this.dockPanelTarget.style.transform=`translateY(${s}px)`,s>0&&i.preventDefault()}dockDragEnd(i){if(!this.dockDrag)return;let s=Math.max(0,i.changedTouches[0].clientY-this.dockDrag.startY),r=s/Math.max(1,Date.now()-this.dockDrag.startedAt);this.dockDragCancel(),(s>mI||r>pI)&&this.closeDock()}dockDragCancel(){this.dockDrag=null,this.dockPanelTarget.style.transition="",this.dockPanelTarget.style.transform=""}toggleDock(){this.dockOpen=!this.dockOpen,this.dockPanelTarget.classList.toggle("translate-y-full",!this.dockOpen),this.dockBackdropTarget.classList.toggle("hidden",!this.dockOpen),this.dockToggleTarget.setAttribute("aria-expanded",String(this.dockOpen)),document.body.classList.toggle("overflow-hidden",this.dockOpen)}closeDock(){this.dockOpen&&this.toggleDock()}clearScenes(){this.scenes.length>0&&this.#b(null,"clear")}#M(){ow(this.#L()),this.scenes=[],this.#V(),this.#K()}#V(){let i=this.scenes.length>0;this.storyboardListTargets.forEach(r=>{r.replaceChildren(),this.scenes.forEach((a,n)=>{let l=this.#R(a,n);n===this.justAdded&&l.classList.add(SI),r.appendChild(l)}),r.classList.toggle("hidden",!i)}),this.justAdded=null,this.storyboardEmptyTargets.forEach(r=>r.classList.toggle("hidden",i)),this.clearAllTargets.forEach(r=>r.classList.toggle("hidden",!i));let s=i?this.#G():this.scenesZeroValue;this.storyboardSummaryTargets.forEach(r=>{r.textContent=s}),this.scenes.length<this.maxScenesValue&&this.storyboardLimitTargets.forEach(r=>{r.classList.add("hidden"),r.classList.remove("flex")}),this.#j()}#R(i,s){let r=this.sceneRowTemplateTarget.content.firstElementChild.cloneNode(!0);r.dataset.index=s;let[a,n]=this.#F(i.label);r.querySelector("[data-scene-number]").textContent=s+1,r.querySelector("[data-scene-label]").textContent=n,r.querySelector("[data-scene-duration]").textContent=[a,`${i.duration}s`].filter(Boolean).join(" \xB7 ");let l=r.querySelector("[data-scene-voice]");l.classList.toggle("hidden",!i.audioLine),l.classList.toggle("flex",!!i.audioLine),r.querySelector("[data-scene-voice-text]").textContent=i.audioLine,r.querySelector("[data-action*='openScene']").setAttribute("aria-label",`${this.#q(s)} \xB7 ${i.label}`),r.querySelector("[data-scene-up]").disabled=s===0,r.querySelector("[data-scene-down]").disabled=s===this.scenes.length-1;let d=r.querySelector("[data-scene-thumb]");return d.src=i.poster||i.preview||"",d.className=this.#U(),r}#F(i){let s=String(i).split(" \xB7 ");return s.length>1?[s[0],s.slice(1).join(" \xB7 ")]:[null,i]}#j(){if(!this.hasDockStripTarget)return;let i=this.dockStripTarget;
57i.replaceChildren(),this.scenes.slice(0,uw).forEach((r,a)=>{let n=document.createElement("span");n.className=`relative h-9 w-6 shrink-0 overflow-hidden rounded-md bg-black-card ring-1 ring-black-dark${a>0?" -ml-2.5":""}`;let l=document.createElement("img");l.src=r.poster||r.preview||"",l.alt="",l.className=this.#U(),n.appendChild(l),i.appendChild(n)});let s=this.scenes.length-uw;if(s>0){let r=document.createElement("span");r.className="-ml-2.5 flex h-9 w-6 shrink-0 items-center justify-center rounded-md bg-white/15 text-[10px] font-bold text-white ring-1 ring-black-dark",r.textContent=`+${s}`,i.appendChild(r)}}#U(){return this.blurredValue?"h-full w-full object-cover scale-110 blur-md":"h-full w-full object-cover"}#q(i){return this.sceneNumberLabelValue.replace("%{number}",i+1)}#W(i){return i===0?this.scenesZeroValue:i===1?this.scenesOneValue:this.scenesOtherValue.replace("%{count}",i)}#G(){return this.totalLabelValue.replace("%{scenes}",this.#W(this.scenes.length)).replace("%{length}",ll(this.#Z()))}#Z(){return this.scenes.reduce((i,s)=>i+s.duration,0)}openScene(i){let s=Number(i.currentTarget.closest("[data-scene-row]").dataset.index);this.scenes[s]&&(this.editingIndex=s,this.#n(),this.#Q(),this.sceneModalTarget.classList.remove("hidden"),this.sceneModalTarget.classList.add("flex"),this.#A(this.sceneModalPanelTarget),this.sceneModalVideoTarget.play()?.catch(()=>{}),document.body.classList.add("overflow-hidden"))}#Q(){let i=this.scenes[this.editingIndex];if(!i)return;let[s,r]=this.#F(i.label),a=this.sceneOfLabelValue.replace("%{number}",this.editingIndex+1).replace("%{total}",this.scenes.length);this.sceneModalEyebrowTarget.textContent=[a,s].filter(Boolean).join(" \xB7 "),this.sceneModalTitleTarget.textContent=r;let n=this.sceneModalVideoTarget,l=i.previewFull||i.preview||"";n.dataset.current!==l&&(n.dataset.current=l,n.poster=i.poster||"",n.src=l),n.className=this.blurredValue?"absolute inset-0 h-full w-full object-cover scale-110 blur-lg":"absolute inset-0 h-full w-full object-cover",this.sceneModalAudioTarget.value=i.audioLine||"",this.#ce(this.sceneModalLinesTarget,this.#pe(this.#p(i.key,i.variant)),m=>{i.audioLine=m,this.sceneModalAudioTarget.value=m,this.#A(this.sceneModalAudioTarget),this.#V()});let d=this.editingIndex>=this.scenes.length-1;this.sceneModalNextTarget.classList.toggle("hidden",d),this.sceneModalNextArrowTarget.disabled=d,this.sceneModalPrevTarget.disabled=this.editingIndex===0,this.#de(this.sceneModalDurationTargets,i.duration)}setSceneDuration(i){let s=this.scenes[this.editingIndex];s&&(s.duration=Number(i.currentTarget.dataset.duration),this.#Q(),this.#V(),this.#K())}setSceneAudio(i){let s=this.scenes[this.editingIndex];s&&(s.audioLine=i.currentTarget.value.trim(),this.#V())}nextScene(){this.#te(1)}previousScene(){this.#te(-1)}#te(i){let s=this.editingIndex+i;this.editingIndex===null||s<0||s>=this.scenes.length||(this.editingIndex=s,this.#Q(),this.sceneModalVideoTarget.play()?.catch(()=>{}))}moveSceneUpRow(i){this.#J(this.#z(i.currentTarget),-1)}moveSceneDownRow(i){this.#J(this.#z(i.currentTarget),1)}removeSceneRow(i){let s=this.#z(i.currentTarget);s<0||(this.scenes.splice(s,1),this.#V(),this.#K())}#z(i){return Number(i.closest("[data-scene-row]")?.dataset.index??-1)}#J(i,s){let r=i+s;if(i<0||r<0||r>=this.scenes.length)return;let[a]=this.scenes.splice(i,1);this.scenes.splice(r,0,a),this.justAdded=r,this.#V()}startDrag(i){if(i.pointerType==="mouse"&&i.button!==0)return;let s=i.currentTarget.closest("[data-scene-row]");!s||this.drag||(i.preventDefault(),this.drag={row:s,list:s.parentElement,startY:i.clientY,pointerId:i.pointerId},s.style.transition="none",gw.forEach(r=>s.classList.add(r)),this.onDragMove=r=>this.#ne(r),this.onDragEnd=()=>this.#me(),window.addEventListener("pointermove",this.onDragMove),window.addEventListener("pointerup",this.onDragEnd),window.addEventListener("pointercancel",this.onDragEnd))}#ne(i){let s=this.drag;if(!s||i.pointerId!==s.pointerId)return;let r=i.clientY-s.startY;s.row.style.transform=`translateY(${r}px)`;let a=Array.from(s.list.children).filter(v=>v!==s.row),n=a.findIndex(v=>{let E=v.getBoundingClientRect();return i.clientY<E.top+E.height/2});n===-1&&(n=a.length);let l=Array.from(s.list.children).indexOf(s.row);if(n===l)return;let d=new Map(a.map(v=>[v,v.getBoundingClientRect().top])),m=s.row.getBoundingClientRect().top-r;s.list.insertBefore(s.row,a[n]??null),s.startY+=s.row.getBoundingClientRect().top-r-m,r=i.clientY-s.startY,s.row.style.transform=`translateY(${r}px)`,a.forEach(v=>this.#ge(v,d.get(v)))}#ge(i,s){let r=s-i.getBoundingClientRect().top;r&&(i.style.transition="none",i.style.transform=`translateY(${r}px)`,i.offsetWidth,i.style.transition="transform .2s ease-out",i.style.transform="",i.addEventListener("transitionend",()=>{i.style.transition=""},{once:!0}))}#me(){let i=this.drag;i&&(window.removeEventListener("pointermove",this.onDragMove),window.removeEventListener("pointerup",this.onDragEnd),window.removeEventListener("pointercancel",this.onDragEnd),i.row.style.transform="",i.row.style.transition="",g
57w.forEach(s=>i.row.classList.remove(s)),this.scenes=Array.from(i.list.children).map(s=>this.scenes[Number(s.dataset.index)]),this.drag=null,this.#V())}removeScene(i){i?.preventDefault(),this.editingIndex!==null&&(this.scenes.splice(this.editingIndex,1),this.closeScene(),this.#V(),this.#K())}closeScene(i){this.sceneModalTarget.classList.contains("hidden")||(i?.preventDefault?.(),this.sceneModalVideoTarget.pause(),this.sceneModalTarget.classList.add("hidden"),this.sceneModalTarget.classList.remove("flex"),this.dockOpen||document.body.classList.remove("overflow-hidden"),this.editingIndex=null,this.#n())}closeSceneBackdrop(i){(i.target===this.sceneModalTarget||i.target===this.sceneModalTarget.firstElementChild)&&this.closeScene()}#pe(i){try{return JSON.parse(i?.dataset.lines||"[]")}catch{return[]}}#ce(i,s,r){i.replaceChildren(),s.forEach(a=>{let n=document.createElement("button");n.type="button",n.className="max-w-full truncate rounded-full bg-white/[0.06] px-2.5 py-1 text-[11px] font-medium text-grey-light transition-colors hover:bg-pink-default/15 hover:text-pink-default",n.textContent=a,n.addEventListener("click",()=>r(a)),i.appendChild(n)}),i.classList.toggle("hidden",s.length===0)}#de(i,s){i.forEach(r=>{let a=Number(r.dataset.duration)===s;fI.forEach(n=>r.classList.toggle(n,a)),vI.forEach(n=>r.classList.toggle(n,!a))})}openPreview(i){let s=i.currentTarget.closest("[data-scene-tile]");if(!s)return;this.preview={kind:"tile",key:s.dataset.key,variant:s.dataset.variant||null,duration:this.#C(s.dataset.defaultDuration)};let[r,a]=this.#F(s.dataset.label);this.previewLabelTargets.forEach(l=>{l.textContent=a}),this.previewMetaTargets.forEach(l=>{l.textContent=[s.dataset.categoryLabel,r].filter(Boolean).join(" \xB7 ")});let n=s.dataset.variant?"":s.dataset.description||"";this.previewDescriptionTarget.textContent=n,this.previewDescriptionTarget.classList.toggle("hidden",n===""),this.previewDurationsTarget.classList.remove("hidden"),this.previewAudioWrapTarget.classList.remove("hidden"),this.previewAudioTarget.value="",this.#ce(this.previewLinesTarget,this.#pe(s),l=>{this.previewAudioTarget.value=l,this.#A(this.previewAudioTarget)}),this.previewScenesWrapTarget.classList.add("hidden"),this.previewUseTarget.classList.add("hidden"),this.previewUseTarget.classList.remove("flex"),this.previewAddTarget.classList.remove("hidden"),this.previewAddTarget.classList.add("flex"),this.#de(this.previewDurationButtonTargets,this.preview.duration),this.#fe(s.dataset.previewFull||s.dataset.preview,s.dataset.poster,"tile",this.blurredValue,s)}pickPreviewDuration(i){this.preview?.kind==="tile"&&(this.preview.duration=Number(i.currentTarget.dataset.duration),this.#de(this.previewDurationButtonTargets,this.preview.duration))}#fe(i,s,r,a,n=null){this.#ee();let l=n&&this.tileVideoTargets.find(D=>n.contains(D)&&D.readyState>=D.HAVE_CURRENT_DATA);l&&(this.previewTile={video:l,parent:l.parentNode,nextSibling:l.nextSibling,className:l.className}),this.#n();let d=r==="story";[this.previewPanelTarget,this.previewStageTarget,this.previewCaptionTarget,this.previewHeadingTarget,this.previewBodyTarget].forEach(D=>{D.dataset.mode=r});let v=this.previewVideoTarget;v.poster=s||"",v.getAttribute("src")!==i?v.src=i:v.error&&v.load(),v.muted=!d,v.controls=d;let E=d?"object-contain":"object-contain sm:object-cover";v.className=`absolute inset-0 h-full w-full ${E}${a?" scale-110 blur-lg":""}`,this.previewLoaderTarget.hidden=!!(l&&!l.paused),this.previewModalTarget.classList.remove("hidden"),this.previewModalTarget.classList.add("flex"),this.#A(this.previewPanelTarget),document.body.classList.add("overflow-hidden"),l&&(v.after(l),l.className=v.className,l.play()?.catch(()=>{})),v.play()?.catch(()=>{v.paused&&this.finishPreviewWarmup()})}finishPreviewWarmup(){this.previewLoaderTarget.hidden=!0,this.#ee()}#ee(){if(!this.previewTile)return;let{video:i,parent:s,nextSibling:r,className:a}=this.previewTile;this.previewTile=null,i.className=a,this.#c(i),s.insertBefore(i,r)}closePreview(){this.previewModalTarget.classList.contains("hidden")||(this.finishPreviewWarmup(),this.previewVideoTarget.pause(),this.preview?.kind!=="tile"&&this.#h(this.previewVideoTarget),this.previewModalTarget.classList.add("hidden"),this.previewModalTarget.classList.remove("flex"),this.dockOpen||document.body.classList.remove("overflow-hidden"),this.preview=null,this.#n())}closePreviewBackdrop(i){(i.target===this.previewModalTarget||i.target===this.previewModalTarget.firstElementChild)&&this.closePreview()}generate(){this.submitting||!this.#oe()||(this.submitting=!0,this.characterInputTarget.value=this.character.id,this.locationInputTarget.value=this.locationValue,this.partnerInputTarget.value=this.partnerValue,this.sceneInputsTarget.innerHTML="",this.scenes.forEac
57h(i=>{this.sceneInputsTarget.append(this.#ue("scenes[][key]",i.key),this.#ue("scenes[][duration]",i.duration)),i.variant&&this.sceneInputsTarget.append(this.#ue("scenes[][variant]",i.variant)),i.audioLine&&this.sceneInputsTarget.append(this.#ue("scenes[][audio_line]",i.audioLine))}),this.pendingCost=this.#ve(),this.#K(),this.formTarget.requestSubmit(this.submitButtonTarget))}submitEnd(i){this.submitting=!1,i.detail.success&&(this.tokenBalanceValue=Math.max(0,this.tokenBalanceValue-(this.pendingCost||0)),this.videosCountValue+=1,this.videosCountTargets.forEach(s=>{s.textContent=this.videosCountValue,s.classList.remove("hidden")}),this.showTab({currentTarget:{dataset:{tab:"videos"}}})),this.pendingCost=null,this.#K()}#ue(i,s){let r=document.createElement("input");return r.type="hidden",r.name=i,r.value=s,r}#ve(){return this.scenes.reduce((i,s)=>i+(this.costsValue[s.duration]||0),0)}#Te(){return this.scenes.length>0&&this.#ve()>this.tokenBalanceValue}#oe(){return!!this.character&&this.scenes.length>0&&!this.#Te()}#K(){let i=this.#ve(),s=this.#oe()&&!this.submitting;this.ctaTargets.forEach(n=>{n.disabled=!s}),this.ctaPriceTargets.forEach(n=>{n.classList.toggle("hidden",i===0),n.classList.toggle("flex",i>0)}),this.ctaPriceAmountTargets.forEach(n=>{n.textContent=i});let r=!this.character&&this.scenes.length>0;this.ctaHintTargets.forEach(n=>{n.classList.toggle("hidden",!r),n.classList.toggle("flex",r)}),this.characterChipTargets.forEach(n=>{n.dataset.missing=String(!this.character)});let a=this.#Te();this.insufficientNoticeTargets.forEach(n=>{n.classList.toggle("hidden",!a),n.classList.toggle("flex",a)})}};var EI=300,LI=120,kI=.6,cl=class extends u{static targets=["backdrop","panel","handle","scroller","lazyVideo"];static classes=["panelClosed","backdropClosed"];static values={fullscreen:Boolean};#e=null;connect(){this.dragging=!1,this.hasHandleTarget&&(this.boundDragStart=this.#c.bind(this),this.boundDragMove=this.#u.bind(this),this.boundDragEnd=this.#g.bind(this),this.boundDragCancel=this.#d.bind(this),this.handleTarget.addEventListener("touchstart",this.boundDragStart,{passive:!0}),document.addEventListener("touchmove",this.boundDragMove,{passive:!1}),document.addEventListener("touchend",this.boundDragEnd),document.addEventListener("touchcancel",this.boundDragCancel))}disconnect(){this.boundDragStart&&(this.handleTarget?.removeEventListener("touchstart",this.boundDragStart),document.removeEventListener("touchmove",this.boundDragMove),document.removeEventListener("touchend",this.boundDragEnd),document.removeEventListener("touchcancel",this.boundDragCancel)),this.#d(),this.#t(),clearTimeout(this.hideTimer),this.videoObserver?.disconnect(),this.#a(),this.#h()}isOpen(){return!this.element.classList.contains("hidden")}open(){clearTimeout(this.hideTimer),this.#t(),this.element.classList.remove("hidden"),this.#l(),this.#i(),this.dispatch("opened"),this.#e=requestAnimationFrame(()=>{this.#e=requestAnimationFrame(()=>{this.#e=null,this.panelTarget.classList.remove(...this.panelClosedClasses),this.backdropTarget.classList.remove(...this.backdropClosedClasses)})}),this.#n()}close(){if(this.#d(),this.#t(),!this.isOpen())return;let i=document.activeElement;this.element.contains(i)&&i.matches("input, textarea, [contenteditable='true']")&&i.blur(),this.#a(),this.panelTarget.classList.add(...this.panelClosedClasses),this.backdropTarget.classList.add(...this.backdropClosedClasses),this.#o(),this.videoObserver?.disconnect(),this.#h(),this.hideTimer=setTimeout(()=>{this.element.classList.add("hidden")},EI)}#t(){this.#e!==null&&(cancelAnimationFrame(this.#e),this.#e=null)}#i(){!this.fullscreenValue||!window.visualViewport||(this.#a(),this.viewport=window.visualViewport,this.boundViewportChanged=this.#s.bind(this),this.viewport.addEventListener("resize",this.boundViewportChanged),this.viewport.addEventListener("scroll",this.boundViewportChanged),this.#s())}#s(){let i=this.viewport.height<this.viewportHeight;this.viewportHeight=this.viewport.height,this.element.style.setProperty("--sheet-viewport-height",`${this.viewport.height}px`),this.element.style.setProperty("--sheet-viewport-top",`${this.viewport.offsetTop}px`),i&&this.#r()}#r(){if(!this.hasScrollerTarget)return;let i=document.activeElement;if(!this.scrollerTarget.contains(i)||!i.matches("input, textarea, [contenteditable='true']"))return;let s=i.parentElement;for(;s!==this.scrollerTarget;){let E=window.getComputedStyle(s).overflowY;if(["auto","scroll"].includes(E)&&s.scrollHeight>s.clientHeight)break;s=s.parentElement}let r=i.getBoundingClientRect(),a=s.getBoundingClientRect(),l=r.bottom-r.top>a.bottom-a.top&&parseFloat(window.getComputedStyle(i).paddingTop)||0,d=r.top+l,m=r.bottom>a.bottom?Math.min(r.bottom-a.bottom,d-a.top):Math.min(0,d-a.top),v=s.scrollHeight-s.clientHeight;s.scrollTop=Math.max(0,Math.min(v,s.scrollTop+m))}#a(){this.viewport?.removeEventListener("resize",this.boundViewportChanged),this.viewport?.removeEventListener("scroll",this.boundViewportChanged),this.viewport=null,this.viewportHe
57ight=null,this.element.style.removeProperty("--sheet-viewport-height"),this.element.style.removeProperty("--sheet-viewport-top")}#n(){this.lazyVideoTargets.length!==0&&(this.videoObserver?.disconnect(),this.videoObserver=new IntersectionObserver(i=>{i.forEach(s=>{let r=s.target;s.isIntersecting?(!r.src&&r.dataset.src&&(r.src=r.dataset.src),r.play().catch(()=>{})):r.pause()})},{root:this.hasScrollerTarget?this.scrollerTarget:this.element}),this.lazyVideoTargets.forEach(i=>this.videoObserver.observe(i)))}#o(){this.lazyVideoTargets.forEach(i=>i.pause())}#l(){document.body.classList.add("overflow-hidden")}#h(){document.body.classList.remove("overflow-hidden")}#c(i){this.dragging=!0,this.dragStartY=i.touches[0].clientY,this.dragStartTime=Date.now(),this.panelTarget.style.transition="none"}#u(i){if(!this.dragging)return;let s=Math.max(0,i.touches[0].clientY-this.dragStartY);this.panelTarget.style.transform=`translateY(${s}px)`,s>0&&i.preventDefault()}#g(i){if(!this.dragging)return;let s=Math.max(0,i.changedTouches[0].clientY-this.dragStartY),r=s/Math.max(1,Date.now()-this.dragStartTime);this.#d(),(s>LI||r>kI)&&this.close()}#d(){this.dragging=!1,this.hasPanelTarget&&(this.panelTarget.style.transition="",this.panelTarget.style.transform="")}};var dl=class extends u{connect(){this.overlay=this.element.querySelector("[data-mode-switch-overlay]"),this.info=this.element.querySelector("[data-mode-switch-info]"),[this.overlay,this.info].forEach(i=>{i&&document.body.appendChild(i)}),this.info&&(this.onInfoClick=i=>this.#t(i),this.onKey=i=>{i.key==="Escape"&&this.closeInfo()},this.info.addEventListener("click",this.onInfoClick),document.addEventListener("keydown",this.onKey),this.info.querySelectorAll("[data-action*='closeInfo']").forEach(i=>i.addEventListener("click",()=>this.closeInfo()))),this.onSettled=()=>this.#i(),this.onBeforeCache=()=>this.#s(),document.addEventListener("turbo:load",this.onSettled),document.addEventListener("turbo:fetch-request-error",this.onSettled),document.addEventListener("turbo:before-cache",this.onBeforeCache)}disconnect(){document.removeEventListener("turbo:load",this.onSettled),document.removeEventListener("turbo:fetch-request-error",this.onSettled),document.removeEventListener("turbo:before-cache",this.onBeforeCache),document.removeEventListener("keydown",this.onKey),this.overlay?.remove(),this.info?.remove()}start(i){let s=i.currentTarget;if(s.getAttribute("aria-current")==="page"){i.preventDefault();return}!this.overlay||this.#e(i)||(this.overlay.querySelector("[data-mode-switch-overlay-label]").textContent=s.dataset.switchingText,this.overlay.hidden=!1,requestAnimationFrame(()=>this.overlay.classList.remove("opacity-0")))}openInfo(){this.info&&(this.info.hidden=!1,document.body.classList.add("overflow-hidden"))}closeInfo(){!this.info||this.info.hidden||(this.info.hidden=!0,document.body.classList.remove("overflow-hidden"))}#e(i){return i.button!==0||i.metaKey||i.ctrlKey||i.shiftKey||i.altKey}#t(i){(i.target===this.info||i.target===this.info.firstElementChild)&&this.closeInfo()}#i(){this.overlay&&(this.overlay.hidden=!0,this.overlay.classList.add("opacity-0"))}#s(){this.#i(),this.closeInfo(),[this.overlay,this.info].forEach(i=>{i&&this.element.appendChild(i)})}};var ul=class extends u{static targets=["chip"];static classes=["active","inactive"];filter(i){let s=i.currentTarget.dataset.category;this.chipTargets.forEach(a=>{let n=a===i.currentTarget;a.setAttribute("aria-selected",n.toString()),a.classList.remove(...this.activeClasses,...this.inactiveClasses),a.classList.add(...n?this.activeClasses:this.inactiveClasses)}),this.element.closest("[role='dialog']").querySelectorAll("[data-character-chip-filter-item]").forEach(a=>{let n=a.dataset.alwaysVisible==="true";a.classList.toggle("hidden",!n&&s!=="all"&&a.dataset.category!==s)})}};var gl=class extends u{static targets=["prompt","promptLabel","promptSubtitle","counter","generation","previewImage","editButton","placeholder","loading","error","requestError","generateButton","generateLabel","generateSpinner","generationPrice","generationPriceFree","generationPricePaid","generationPriceAmount","selectButton","history","historyRail","historyList","historyTemplate","pendingThumbnail","backdrop","backdropImage","lightbox","lightboxImage","historySkeletons","loadingTitle","suggestion"];static values={generateUrl:String,selectionLabel:String,generateLabel:String,generateFirstLabel:String,generatingLabel:String,previewAlt:String,firstPromptLabel:String,refinePromptLabel:String,refinePromptSubtitle:String,historyItemLabel:String,errorMessage:String,historyCursor:String,historyHasMore:Boolean,watchdogMs:{type:Number,default:18e4},loadingFirst:String,loadingUpdate:String,generationCost:Number};static classes=["historyActive","historyInactive","stageEmpty","stageFilled"];connect(){this.generating=!1,this.selectedSuggestionKey=null,this.currentCharacter=null,this.input(),this.#f(this.generationTarget),this.#v(this.currentCharacter?.publicId),this.#l(this.currentCharacter?.imageUrl),this.#x()}disconnect(){this.#n()}generationTargetConnected(i){let s=this.#m(i),r=i.dataset.status,a=i.dataset.nextGenerationCost,n=i.dataset.tokenBalance,l={};a!==void 0&&a!==""&&(this.generationCostValue=Number(a),l.generationCost=this.generationCostValue),n!==void 0&&n!==""&&(l.tokenBalance=Number(n)),Object.keys(l).length>0&&this.dispatch("pricing-changed",{detail:l}),this.#f(i),["ready","failed"].includes(r)&&(this.#n(),this.generating=!1,this.#C()),r==="ready"&&s&&(this.#k(),this.#b(s),this.#v(s.publicId)),this.#x()}input(i){if(this.selectedSuggestionKey=null,!this.hasPromptTarget||!this.hasCounterTarget)return;i&&this.promptFocused(),this.#e();let s=this.promptTarget.value.length;this.counterTarget.textContent=`${s}/${this.promptTarget.maxLength}`,this.#k(),this.#x()}useSuggestion({params:{prompt:i,suggestionKey:s}}){this.promptTarget.blur(),this.promptTarget.value=i,this.promptFocused(),this.input(),this.selectedSuggestionKey=s}sheetOpened(){this.startNew({autofocus:!1}),this.hasPromptTarget&&this.#e()}promptFocused(){this.generating||!this.currentCharacter&&!this.#A()||(this.#t(),this.#x())}#e(){let i=this.promptTarget;i.style.height="auto",i.scrollHeight>0&&(i.style.height=`${i.scrollHeight}px`)}promptKeydown(i){i.key!=="Enter"||i.shiftKey||(i.preventDefault(),this.#r())}
57chooseHistory(i){if(this.generating)return;let s=this.#m(i.currentTarget);s&&(this.promptTarget.blur(),this.currentCharacter=s,this.promptTarget.value=s.prompt,this.#p(s),this.#v(s.publicId),this.#l(s.imageUrl),this.input(),this.#i())}generate(i){i.preventDefault(),this.#r()}startNew({autofocus:i=!0}={}){this.generating||(this.promptTarget.blur(),this.promptTarget.value="",this.#t(),this.input(),this.#i(),i&&window.matchMedia?.("(min-width: 640px)").matches&&this.promptTarget.focus())}#t(){this.currentCharacter=null,this.#h(),this.#v(null)}#i(){let i=this.promptTarget.closest('[data-create-video--studio--sheet-target="scroller"]');i&&(i.scrollTop=0)}historyScrolled(){if(!this.historyHasMoreValue||this.loadingMoreHistory)return;let i=this.historyTarget,s=i.scrollHeight-i.clientHeight-i.scrollTop,r=i.scrollWidth-i.clientWidth-i.scrollLeft,a=i.scrollHeight>i.clientHeight&&s<=120,n=i.scrollWidth>i.clientWidth&&r<=120;!a&&!n||this.#u()}editPrompt(i){if(i.stopPropagation(),!this.hasPromptTarget)return;let s=this.promptTarget.closest('[data-create-video--studio--sheet-target="scroller"]');if(!s)return;let r=this.promptTarget.parentElement,a=r;for(;a!==s;){let n=window.getComputedStyle(a).overflowY;if(["auto","scroll"].includes(n)&&a.scrollHeight>a.clientHeight)break;a=a.parentElement}a.scrollTo({top:a.scrollTop+r.getBoundingClientRect().top-a.getBoundingClientRect().top,behavior:"smooth"})}openLightbox(){this.generating||!this.currentCharacter?.imageUrl||!this.hasLightboxTarget||(this.lightboxImageTarget.src=this.currentCharacter.imageUrl,this.lightboxTarget.classList.remove("hidden"),this.lightboxTarget.classList.add("flex"),this.lightboxTarget.focus())}closeLightbox(i){i.stopPropagation(),this.lightboxTarget.classList.add("hidden"),this.lightboxTarget.classList.remove("flex")}select(){if(!this.currentCharacter||this.generating)return;let i=this.currentCharacter,s={identifier:i.identifier,label:this.selectionLabelValue,imageUrl:i.imageUrl};this.dispatch("selected",{detail:s}),this.#s(i,s)}#s(i,s){ve(`${this.generateUrlValue}/${i.publicId}`).then(r=>{r.ok&&this.dispatch("saved",{detail:{...s,publicId:i.publicId}})}).catch(()=>{})}async#r(){let i=this.promptTarget.value.trim();if(this.generating||!i)return;this.promptTarget.blur(),this.generating=!0,this.#S(),this.#w(),this.#I(),this.#x(),this.#i();let s=new FormData;this.selectedSuggestionKey?s.append("suggestion_key",this.selectedSuggestionKey):s.append("prompt",i),this.currentCharacter?.publicId&&s.append("source_id",this.currentCharacter.publicId);try{let r=await H(this.generateUrlValue,{body:s,responseKind:"json"});if(r.ok){let a=await r.json,n=Number(a.token_balance);Number.isFinite(n)&&this.dispatch("pricing-changed",{detail:{tokenBalance:n}}),this.#a()}else{let a=await r.json.catch(()=>({}));this.#o(a.error||this.errorMessageValue,{showError:a.reason!=="insufficient_tokens"})}}catch{this.#o(this.errorMessageValue)}finally{this.#x()}}#a(){this.#n(),this.generationWatchdog=setTimeout(()=>{this.generating&&(this.#o(this.errorMessageValue),this.#x())},this.watchdogMsValue)}#n(){this.generationWatchdog&&(clearTimeout(this.generationWatchdog),this.generationWatchdog=null)}#o(i,{showError:s=!0}={}){this.#n(),this.generating=!1,this.#L(),this.#C(),s?this.#E(i):this.#k()}#l(i){!this.hasBackdropImageTarget||!i||(this.backdropImageTarget.src=i,this.backdropImageTarget.classList.remove("hidden"))}#h(){delete this.generationTarget.dataset.publicId,delete this.generationTarget.dataset.characterIdentifier,delete this.generationTarget.dataset.imageUrl,delete this.generationTarget.dataset.prompt,this.generationTarget.dataset.status="",this.generationTarget.classList.remove("cursor-zoom-in"),this.hasPreviewImageTarget&&this.previewImageTarget.remove(),this.placeholderTarget.classList.remove("hidden"),this.loadingTarget.classList.add("hidden"),this.errorTarget.classList.add("hidden"),this.#c(!1),this.hasBackdropImageTarget&&this.backdropImageTarget.classList.add("hidden")}#c(i){this.hasEditButtonTarget&&this.editButtonTarget.classList.toggle("hidden",!i)}async#u(){this.loadingMoreHistory=!0,this.#d(!0);try{let i=await Ee(`${this.generateUrlValue}?before=${this.historyCursorValue}`,{responseKind:"json"});if(!i.ok)return;let s=await i.json;s.looks.forEach(r=>this.#g(r)),this.historyHasMoreValue=s.has_more,s.next_cursor&&(this.historyCursorValue=s.next_cursor),this.#v(this.currentCharacter?.publicId)}catch{this.historyHasMoreValue=!1}finally{this.#d(!1),this.loadingMoreHistory=!1}}#g(i){if(this.#T().some(r=>r.dataset.publicId===i.public_id))return;let s=this.historyTemplateTarget.content.firstElementChild.cloneNode(!0);s.dataset.publicId=i.public_id,s.dataset.characterIdentifier=i.identifier,s.dataset.imageUrl=i.image_url,s.dataset.prompt=i.prompt||"",s.querySelector("img").src=i.image_url,this.historyListTarget.append(s)}#d(i){this.hasHistorySkeletonsTarget&&(this.historySkeletonsTarget.classList.toggle("hidden",!i),this.historySkeletonsTarget.classList.toggle("flex",i))}#m(i){let{publicId:s,characterIdentifier:r,imageUrl:a,prompt:n}=i.dataset;return!s||!r||!a?null:{publicId:s,identifier:r,imageUrl:a,prompt:n||""}}#f(i){let s=this.#m(i);if(i.dataset.status==="failed"){this.currentCharacter=s;let r=this.promptTarget.value.trim()===i.dataset.attemptPrompt?.trim();this.selectedSuggestionKey=r&&i.dataset.suggestionKey||null,this.#l(s?.imageUrl);return}s&&(this.currentCharacter=s,this.selectedSuggestionKey=null,this.#l(s.imageUrl))}#p(i){this.generationTarget.dataset.publicId=i.publicId,this.generationTarget.dataset.characterIdentifier=i.identifier,this.generationTarget.dataset.imageUrl=i.imageUrl,this.generationTarget.dataset.prompt=i.prompt,this.generationTarget.dataset.status="ready",this.generationTarget.classList.add("cursor-zoom-in");let s=this.hasPreviewImageTarget?this.previewImageTarget:null;s||(s=document.createElement("img"),s.className="h-full w-full object-contain opacity-100 transition-opacity duration-300 sm:object-cover",s.setAttribute(`data-${this.identifier}-target`,"previewImage"),this.generationTarget.prepend(s)),s.src=i.imageUrl,s.alt=this.previewAltValue,s.classList.remove("opacity-75"),s.classList.add("opacity-100"),this.placeholderTarget.classList.add("hidden"),this.loadingTarget.classList.add("hidden"),this.errorTarget.classList.add("hidden"),this.#c(!0)}#b(i){if(!this.hasHistoryListTarget||!this.hasHistoryTemplateTarget)return;let r=this.#T().find(a=>a.dataset.publicId===i.publicId)||this.historyTemplateTarget.content.firstElementChild.cloneNode(!0);r.dataset.publicId=i.publicId,r.dataset.characterIdentifier=i.identifier,r.dataset.imageUrl=i.imageUrl,r.dataset.prompt=i.prompt,r.querySelector("img").src=i.imageUrl,this.historyListTarget.prepend(r)}
57#v(i){this.hasHistoryListTarget&&(this.#T().forEach(s=>{let r=s.dataset.publicId===i;s.classList.remove(...this.historyActiveClasses,...this.historyInactiveClasses),s.classList.add(...r?this.historyActiveClasses:this.historyInactiveClasses),s.setAttribute("aria-pressed",r.toString())}),this.#y())}#T(){return Array.from(this.historyListTarget.children).filter(i=>i.matches("button"))}#y(){this.#T().forEach((i,s)=>{i.setAttribute("aria-label",this.historyItemLabelValue.replace("__POSITION__",s+1))})}#S(){if(!this.hasLoadingTitleTarget)return;let i=this.currentCharacter?this.loadingUpdateValue:this.loadingFirstValue;this.loadingTitleTarget.textContent=i}#w(){this.loadingTarget.classList.remove("hidden"),this.placeholderTarget.classList.add("hidden"),this.errorTarget.classList.add("hidden"),this.#c(!1),this.hasPreviewImageTarget&&(this.previewImageTarget.classList.remove("opacity-100"),this.previewImageTarget.classList.add("opacity-75"))}#L(){this.loadingTarget.classList.add("hidden"),this.errorTarget.classList.toggle("hidden",!this.#A()),this.hasPreviewImageTarget?(this.previewImageTarget.classList.remove("opacity-75"),this.previewImageTarget.classList.add("opacity-100"),this.#c(!0)):this.placeholderTarget.classList.toggle("hidden",this.#A())}#I(){this.hasPendingThumbnailTarget&&this.pendingThumbnailTarget.classList.remove("hidden")}#C(){this.hasPendingThumbnailTarget&&this.pendingThumbnailTarget.classList.add("hidden")}#E(i){this.requestErrorTarget.textContent=i,this.requestErrorTarget.classList.remove("hidden")}#k(){this.hasRequestErrorTarget&&this.requestErrorTarget.classList.add("hidden")}#x(){if(!this.hasGenerateButtonTarget||!this.hasPromptTarget)return;let i=this.promptTarget.value.trim().length>0,s=!!this.currentCharacter,r=s?this.generateLabelValue:this.generateFirstLabelValue||this.generateLabelValue;this.generateButtonTarget.disabled=this.generating||!i,this.generateLabelTarget.textContent=this.generating?this.generatingLabelValue:r,this.#_(),this.hasGenerateSpinnerTarget&&this.generateSpinnerTarget.classList.toggle("hidden",!this.generating),this.hasBackdropTarget&&this.backdropTarget.classList.toggle("animate-pulse",this.generating),this.promptLabelTarget.textContent=s?this.refinePromptLabelValue:this.firstPromptLabelValue,this.hasPromptSubtitleTarget&&this.promptSubtitleTarget.classList.toggle("hidden",!s),this.selectButtonTarget.disabled=this.generating||!s,this.selectButtonTarget.classList.toggle("hidden",!s),this.hasHistoryListTarget&&this.#T().forEach(a=>{a.disabled=this.generating}),this.suggestionTargets.forEach(a=>{a.disabled=this.generating}),this.#B()}#A(){return this.hasGenerationTarget&&this.generationTarget.dataset.status==="failed"}#B(){let i=this.#A();if(this.hasGenerationTarget){let s=!!this.currentCharacter||this.generating||i;this.generationTarget.classList.remove(...this.stageEmptyClasses,...this.stageFilledClasses),this.generationTarget.classList.add(...s?this.stageFilledClasses:this.stageEmptyClasses)}if(this.hasHistoryRailTarget){let s=this.hasHistoryListTarget&&this.#T().length>0,r=this.hasPendingThumbnailTarget&&!this.pendingThumbnailTarget.classList.contains("hidden");this.historyRailTarget.classList.toggle("hidden",!(s||r||this.currentCharacter||i))}}#_(){if(!this.hasGenerationPriceAmountTarget)return;let i=this.generationCostValue>0;this.generationPriceAmountTarget.textContent=this.generationCostValue,this.hasGenerationPriceFreeTarget&&this.generationPriceFreeTarget.classList.toggle("hidden",i),this.hasGenerationPricePaidTarget&&(this.generationPricePaidTarget.classList.toggle("hidden",!i),this.generationPricePaidTarget.classList.toggle("flex",i))}};var xI=4e3,II=1e3,AI=500,PI=12e3,ml=class extends u{static targets=["progress"];static values={statusUrl:String,cardUrl:String,hasPoster:Boolean,progressLabel:String};connect(){let i=document.querySelectorAll("[data-generating-card]").length,s=Math.min(xI+i*AI,PI);this.timer=setInterval(()=>this.#e(),s+Math.random()*II)}disconnect(){clearInterval(this.timer)}async#e(){if(document.hidden||this.replacing)return;let i;try{let a=await Ee(this.statusUrlValue,{responseKind:"json"});if(!a.ok)return;i=await a.json}catch{return}this.#t(i);let s=["done","failed"].includes(i.phase),r=!this.hasPosterValue&&(i.images||[]).some(a=>a.status==="completed"&&a.url);(s||r)&&await this.#i()}#t(i){if(!this.hasProgressTarget||i.phase!=="video"||!this.progressLabelValue)return;let s=i.clips||[];if(s.length===0)return;let r=s.filter(a=>a.status==="completed").length;this.progressTarget.textContent=this.progressLabelValue.replace("%{done}",Math.min(r+1,s.length)).replace("%{total}",s.length)}async#i(){this.replacing=!0;let i=await this.#s();this.replacing=!1,i&&(clearInterval(this.timer),this.element.outerHTML=i)}async#s(){try{let i=await Ee(this.cardUrlValue);return i.ok&&!i.redirected?await i.text:null}catch{return null}}};var pl=class extends u{static targets=["card","overlay","player","counter","prevButton","
57nextButton","feedback","feedbackHost","recipePanel","recipeBody","recipeToggle","recipeChevron","recipeTitle","recipeOnly","detailsButton","recipeSummary","recipeCharacter","recipeCharacterImage","recipeLocation","recipePartner","recipeScenes","recipeRowTemplate"];static values={secondsLabel:{type:String,default:"%{count}s"},scenesOne:{type:String,default:"1 scene"},scenesOther:{type:String,default:"%{count} scenes"},recipeTitle:{type:String,default:"What made this"},videoTitle:{type:String,default:"Your video"}};static desktop="(min-width: 1024px)";feedbackTargetConnected(i){!this.hasFeedbackHostTarget||i.parentElement===this.feedbackHostTarget||this.feedbackHostTarget.append(i)}disconnect(){document.body.classList.remove("overflow-hidden")}open(i){let s=this.cardTargets;this.playlist=s.map(r=>({projectId:r.dataset.projectId,videoUrl:r.dataset.videoUrl,recipe:r.dataset.recipe?JSON.parse(r.dataset.recipe):null})),this.index=s.indexOf(i.currentTarget),!(this.index<0)&&(this.overlayTarget.classList.remove("hidden"),this.overlayTarget.classList.add("flex"),document.body.classList.add("overflow-hidden"),this.collapsed=!this.#e(),this.#n(this.index))}togglePanel(){this.collapsed=!this.collapsed,this.#t()}close(){this.playerTarget.pause(),this.playerTarget.removeAttribute("src"),this.playerTarget.load(),this.overlayTarget.classList.add("hidden"),this.overlayTarget.classList.remove("flex"),document.body.classList.remove("overflow-hidden")}playNext(){this.index>=this.playlist.length-1||this.#n(this.index+1)}playPrevious(){this.index<=0||this.#n(this.index-1)}keydown(i){this.overlayTarget.classList.contains("hidden")||(i.key==="Escape"&&this.close(),i.key==="ArrowRight"&&this.playNext(),i.key==="ArrowLeft"&&this.playPrevious())}recreate(){let i=this.playlist?.[this.index]?.recipe;i&&(this.close(),this.dispatch("recreate",{detail:{recipe:i},prefix:"create-video--studio--lightbox"}))}#e(){return window.matchMedia(this.constructor.desktop).matches}#t(){if(!this.hasRecipePanelTarget)return;let i=this.#e(),s=i&&this.collapsed;this.recipePanelTarget.classList.toggle("hidden",s),this.recipePanelTarget.classList.toggle("flex",!s),this.recipeBodyTarget.classList.toggle("hidden",!i&&this.collapsed),this.recipeChevronTarget.classList.toggle("rotate-180",!this.collapsed),this.recipeToggleTarget.setAttribute("aria-expanded",String(!this.collapsed)),this.hasDetailsButtonTarget&&(this.detailsButtonTarget.classList.toggle("hidden",!s),this.detailsButtonTarget.classList.toggle("flex",s))}#i(i){if(this.hasRecipePanelTarget){if(this.recipeOnlyTargets.forEach(s=>s.classList.toggle("hidden",!i)),this.recipeTitleTarget.textContent=i?this.recipeTitleValue:this.videoTitleValue,this.#t(),!i){this.recipeSummaryTarget.textContent="";return}this.recipeSummaryTarget.textContent=`${this.#a(i.scenes.length)} \xB7 ${ll(i.totalSeconds)}`,this.recipeCharacterTargets.forEach(s=>{s.textContent=i.character.label}),this.recipeLocationTargets.forEach(s=>{s.textContent=i.location.label}),this.recipePartnerTargets.forEach(s=>{s.textContent=i.partner.label}),this.recipeCharacterImageTargets.forEach(s=>{s.classList.toggle("hidden",!i.character.image),i.character.image&&(s.src=i.character.image)}),this.recipeScenesTarget.replaceChildren(),i.scenes.forEach((s,r)=>this.recipeScenesTarget.appendChild(this.#s(s,r)))}}#s(i,s){let r=this.recipeRowTemplateTarget.content.firstElementChild.cloneNode(!0);if(r.querySelector("[data-recipe-number]").textContent=s+1,r.querySelector("[data-recipe-label]").textContent=i.label,r.querySelector("[data-recipe-meta]").textContent=`${i.categoryLabel} \xB7 ${this.#r(i.duration)}`,r.querySelector("[data-recipe-poster]").src=i.poster,i.audioLine){let a=r.querySelector("[data-recipe-line]");a.textContent=`\u201C${i.audioLine}\u201D`,a.classList.remove("hidden")}return r}#r(i){return this.secondsLabelValue.replace("%{count}",i)}#a(i){return(i===1?this.scenesOneValue:this.scenesOtherValue).replace("%{count}",i)}#n(i){this.index=i;let s=this.playlist[i];this.playerTarget.src=s.videoUrl,this.playerTarget.load(),this.playerTarget.play().catch(()=>{}
57),this.feedbackTargets.forEach(r=>{r.classList.toggle("hidden",r.dataset.projectId!==s.projectId)}),this.#i(s.recipe),this.counterTarget.textContent=`${i+1} / ${this.playlist.length}`,this.prevButtonTarget.classList.toggle("hidden",i===0),this.nextButtonTarget.classList.toggle("hidden",i===this.playlist.length-1)}};var fl=class extends u{static targets=["annualBillingInfo","quarterBillingInfo","monthlyBillingInfo","biweeklyBillingInfo","weeklyBillingInfo","coingateBuyButton","bankTransferButton","pixBankTransferButton","paymentButtons","planWrapper","upgradePricingYearly","upgradePricingQuarterly","upgradePricingNote"];static values={currentPlan:String,isFreeOrInactive:Boolean};connect(){let i=this.currentPlanValue||"yearly";this.currentSelectedPlan=i,this.currentPlanPrice=this.getPriceForPlan(i),this.updatePlanButtonsAndInfo(i),this.updateButtonsVisibilityState()}handleTabChange(i){let s=i.currentTarget.dataset.disabled==="true";this.updateButtonsVisibility(s)}updateButtonsVisibilityState(){let i=this.element.dataset.defaultTabId;if(i){let s=this.element.querySelector(`button[data-tab-id="${i}"]`);if(s){let r=s.dataset.disabled==="true";this.updateButtonsVisibility(r)}}}updateButtonsVisibility(i){this.hasPaymentButtonsTarget&&(i?this.paymentButtonsTarget.classList.add("hidden"):this.paymentButtonsTarget.classList.remove("hidden"))}getCurrentPlan(){return this.currentSelectedPlan||"yearly"}getCurrentPlanPrice(){return this.getPriceForPlan(this.getCurrentPlan())}
57getPriceForPlan(i){let s=this.element.querySelector(`[data-plan-type="${i}"]`);return s?parseFloat(s.dataset.planPrice):0}ensureDefaultActiveState(){(this.hasPlanWrapperTarget?this.planWrapperTargets:this.element.querySelectorAll("[data-plan-type]")).forEach(s=>{s.classList.contains("sub-gradient-active")&&(s.classList.remove("sub-gradient-active"),s.classList.add("sub-gradient")),s.classList.contains("premium-plus-plan-active")&&(s.classList.remove("premium-plus-plan-active"),s.classList.add("premium-plus-plan"))})}openModal(i){let s=i.currentTarget.querySelector("[data-controller='toggle-dialog']");s&&!s.contains(i.target)&&s.click()}setActive(i){let s=i.currentTarget.dataset.planType;if(s===this.currentSelectedPlan){this.dispatch("planChanged",{detail:{planType:s},bubbles:!0});return}this.ensureDefaultActiveState(),i.currentTarget.classList.contains("sub-gradient")&&(i.currentTarget.classList.remove("sub-gradient"),i.currentTarget.classList.add("sub-gradient-active")),i.currentTarget.classList.contains("premium-plus-plan")&&(i.currentTarget.classList.remove("premium-plus-plan"),i.currentTarget.classList.add("premium-plus-plan-active")),this.currentSelectedPlan=s,this.currentPlanPrice=this.getPriceForPlan(s),this.updatePlanButtonsAndInfo(s)}setPlanFromTab(i){if(!i||!i.currentTarget)return;let s=i.currentTarget.dataset.planType;s&&s!==this.currentSelectedPlan&&(this.currentSelectedPlan=s,this.currentPlanPrice=this.getPriceForPlan(s),this.updatePlanButtonsAndInfo(s))}updatePlanButtonsAndInfo(i){this.#t(),i==="yearly"?(this.showElement(this.hasCoingateBuyButtonTarget?this.coingateBuyButtonTargets:null,"flex"),this.showElement(this.hasAnnualBillingInfoTarget?this.annualBillingInfoTargets:null,"block"),this.hasBankTransferButtonTarget&&this.showElement(this.bankTransferButtonTargets,"flex"),this.showElement(this.hasUpgradePricingYearlyTarget?this.upgradePricingYearlyTarget:null,"block"),this.hideElement(this.hasUpgradePricingQuarterlyTarget?this.upgradePricingQuarterlyTarget:null),this.showElement(this.hasUpgradePricingNoteTarget?this.upgradePricingNoteTarget:null,"block")):i==="quarterly"?(this.showElement(this.hasCoingateBuyButtonTarget?this.coingateBuyButtonTargets:null,"flex"),this.showElement(this.hasQuarterBillingInfoTarget?this.quarterBillingInfoTargets:null,"block"),this.hasBankTransferButtonTarget&&this.showElement(this.bankTransferButtonTargets,"flex"),this.hideElement(this.hasUpgradePricingYearlyTarget?this.upgradePricingYearlyTarget:null),this.showElement(this.hasUpgradePricingQuarterlyTarget?this.upgradePricingQuarterlyTarget:null,"block"),this.showElement(this.hasUpgradePricingNoteTarget?this.upgradePricingNoteTarget:null,"block")):i==="biweekly"?(this.hideElement(this.hasCoingateBuyButtonTarget?this.coingateBuyButtonTargets:null),this.showElement(this.hasBiweeklyBillingInfoTarget?this.biweeklyBillingInfoTargets:null,"block"),this.hasBankTransferButtonTarget&&this.hideElement(this.bankTransferButtonTargets),this.#i()):i==="weekly"?(this.hideElement(this.hasCoingateBuyButtonTarget?this.coingateBuyButtonTargets:null),this.showElement(this.hasWeeklyBillingInfoTarget?this.weeklyBillingInfoTargets:null,"block"),this.hasBankTransferButtonTarget&&this.hideElement(this.bankTransferButtonTargets),this.#i()):(this.hideElement(this.hasCoingateBuyButtonTarget?this.coingateBuyButtonTargets:null),this.showElement(this.hasMonthlyBillingInfoTarget?this.monthlyBillingInfoTargets:null,"block"),this.hasBankTransferButtonTarget&&this.hideElement(this.bankTransferButtonTargets),this.#i());let s=this.#e(i);this.element.querySelectorAll("[data-plan-button]").forEach(r=>{if(r.tagName==="A"){let n=r.getAttribute("href").replace(/(premium(?:plus)?)(-yearly|-monthly|-quarterly|-weekly|-biweekly)?/,`$1-${s}`);r.setAttribute("href",n)}else{let a=r.closest("form"),l=a.action.replace(/(premium(?:plus)?)(-yearly|-monthly|-quarterly|-weekly|-biweekly)?/,`$1-${s}`);a.action=l}}),this.dispatch("planChanged",{detail:{planType:i},bubbles:!0})}showElement(i,s="flex"){if(!i)return;(Array.isArray(i)?i:[i]).forEach(a=>{a.style.display=s})}hideElement(i){if(!i)return;
57(Array.isArray(i)?i:[i]).forEach(r=>{r.style.display="none"})}#e(i){return i}#t(){this.hideElement(this.hasAnnualBillingInfoTarget?this.annualBillingInfoTargets:null),this.hideElement(this.hasQuarterBillingInfoTarget?this.quarterBillingInfoTargets:null),this.hideElement(this.hasMonthlyBillingInfoTarget?this.monthlyBillingInfoTargets:null),this.hideElement(this.hasBiweeklyBillingInfoTarget?this.biweeklyBillingInfoTargets:null),this.hideElement(this.hasWeeklyBillingInfoTarget?this.weeklyBillingInfoTargets:null)}#i(){this.hideElement(this.hasUpgradePricingYearlyTarget?this.upgradePricingYearlyTarget:null),this.hideElement(this.hasUpgradePricingQuarterlyTarget?this.upgradePricingQuarterlyTarget:null),this.hideElement(this.hasUpgradePricingNoteTarget?this.upgradePricingNoteTarget:null)}};var vl=class extends u{static targets=["price","planId"];static values={prices:Object,planIds:Object};connect(){this.boundHandlePlanChange=this.handlePlanChange.bind(this),document.addEventListener("subscription:planChanged",this.boundHandlePlanChange)}disconnect(){document.removeEventListener("subscription:planChanged",this.boundHandlePlanChange)}handlePlanChange(i){let{planType:s}=i.detail,r=this.pricesValue[s],a=this.planIdsValue[s];r&&this.hasPriceTarget&&(this.priceTarget.textContent=r),a&&this.hasPlanIdTarget&&(this.planIdTarget.value=a)}};var Tl=class extends u{static targets=["bonusTokens"];connect(){this.boundHandlePlanChange=this.handlePlanChange.bind(this),this.element.addEventListener("subscription:planChanged",this.boundHandlePlanChange)}disconnect(){this.element.removeEventListener("subscription:planChanged",this.boundHandlePlanChange)}handlePlanChange(i){let{planType:s}=i.detail,r=s==="monthly";this.bonusTokensTargets.forEach(a=>{r?a.classList.add("opacity-40"):a.classList.remove("opacity-40")})}};function Gt(i,s=5e3){let r=Date.now(),a=100,n=()=>{if(typeof mixpanel<"u"&&mixpanel.track&&mixpanel.__loaded!==!1){i();return}if(Date.now()-r>s){console.warn("Mixpanel not ready after timeout");return}setTimeout(n,a)};n()}var bl=class extends u{static targets=["dialog","successModal","upgradeButton","loader"];static values={url:String,showOnboarding:Boolean,onboardingUrl:String};connect(){this.trackModalSeen()}trackModalSeen(){Gt(()=>{typeof mixpanel<"u"&&mixpanel.track&&mixpanel.track("yearly_upgrade_modal_seen")})}async upgrade(){this.trackClicked("upgrade"),this.showLoading();try{let i=await H(this.urlValue,{responseKind:"json"});if(i.ok){let s=await i.json;window.location.href=s.checkout_url}else{let s=await i.json;window.alert(s.error||"An error occurred. Please try again."),this.hideLoading()}}catch(i){console.error("Annual upgrade error:",i),window.alert("An error occurred. Please try again."),this.hideLoading()}}showLoading(){if(this.upgradeButtonTarget.disabled=!0,this.upgradeButtonTarget.classList.add("opacity-50","cursor-not-allowed"),this.upgradeButtonTarget.classList.remove("cursor-pointer"),!this.hasLoaderTarget){let i=document.createElement("div");i.classList.add("loading-submit-white","ml-3"),i.setAttribute("data-annual-upsell-target","loader"),this.upgradeButtonTarget.appendChild(i)}}hideLoading(){this.upgradeButtonTarget.disabled=!1,this.upgradeButtonTarget.classList.remove("opacity-50","cursor-not-allowed"),this.upgradeButtonTarget.classList.add("cursor-pointer"),this.hasLoaderTarget&&this.loaderTarget.remove()}decline(){this.trackClicked("skip-offer"),this.showOnboardingValue?window.location.href=this.onboardingUrlValue:this.hasSuccessModalTarget&&(this.hasDialogTarget&&this.dialogTarget.close(),this.successModalTarget.classList.remove("hidden"))}trackClicked(i){Gt(()=>{typeof mixpanel<"u"&&mixpanel.track&&mixpanel.track("clicked",{location:"112025_yearly_upgrade_modal",user_choice:i})})}};var yl=class extends u{connect(){$("#message-button > button")[0].style.opacity=.5,$("#message-button > button")[0].disabled=!0,$("#message-button > button")[0].classList.add("disabled")}};var Sl=class extends u{static targets=["tokenAmountField","tokenPlanContainer","paymentModal","purchaseSummary","customAmountSlider","customAmountInput","customAmountSizer","customBonusBadge","customBonusBanner","customPremiumPlusBonusRow","customPrice","customBasePrice"];static values={bonusPercentage:{type:Number,default:0},customQuotes:{type:Array,default:[]}};connect(){this.customQuotesByQuantity=new Map(this.customQuotesValue.map(i=>[i.quantity,i])),this.hasCustomAmountSliderTarget&&(this.#r(this.customAmountSliderTarget.value),this.#c(),document.fonts?.ready?.then(()=>{this.hasCustomAmountInputTarget&&this.#c()}))}getCurrentTokenQuantity(){return this.tokenAmountFieldTarget.value}getCurrentTokenPrice(){let i=this.getCurrentTokenQuantity(),s=this.#n(i);if(s)return parseFloat(s.price);let r=this.tokenPlanContainerTargets.find(a=>a.dataset.tokensQuantity===i);return r?parseFloat(r.dataset.tokensPrice):0}getCurrentTokenFormattedPrice(){let i=this.getCurrentTokenQuantity(),s=this.#n(i);if(s)return s.formatted_price;let r=this.tokenPlanContainerTargets.find(a=>a.dataset.tokensQuantity===i);return r?r.dataset.tokensFormattedPrice:""}selectPlanAndOpenModal(i){this.#e(i.currentTarget.dataset.tokensQuantity),this.#t(),this.#i(""),this.openPaymentModal()}updateCustomAmountFromSlider(i){this.#r(i.currentTarget.value)}updateCustomAmountFromInput(i){let{value:s,selectionStart:r,selectionEnd:a,selectionDirection:n}=i.currentTarget,l=s.replace(/\D/g,"");this.#r(l===""?this.customAmountSliderTarget.value:this.#h(l)),i.type==="input"&&(i.currentTarget.value=s,i.currentTarget.setSelectionRange(r,a,n))}openCustomAmountPaymentModal(){let i=this.#n(this.customAmountSliderTarget.value);this.#e(this.customAmountSliderTarget.value),this.#t(i?.purchase_source||""),this.#i(i?i.price:""),this.openPaymentModal()}openPaymentModal(){this.hasPaymentModalTarget&&(this.paymentModalTarget.showModal(),this.#s())}
57#e(i){this.tokenAmountFieldTargets.forEach(s=>{s.value=i})}#t(i=""){document.querySelectorAll("input[name='purchase_source']").forEach(s=>{s.value=i})}#i(i){document.querySelectorAll("input[name='expected_price']").forEach(s=>{s.value=i})}#s(){if(!this.hasPurchaseSummaryTarget)return;let i=parseInt(this.getCurrentTokenQuantity(),10),s=i+this.#d(i),r=this.getCurrentTokenFormattedPrice();this.purchaseSummaryTarget.textContent=this.purchaseSummaryTarget.dataset.template.replace("#QUANTITY#",s).replace("#PRICE#",r)}#r(i){let s=this.#a(i)||this.#n(this.customAmountSliderTarget.value);s&&(this.customAmountSliderTarget.value=s.quantity,this.#e(s.quantity),this.#o(s.quantity),this.#l(s))}#a(i){if(this.customQuotesValue.length===0)return null;let s=parseInt(i,10);if(Number.isNaN(s))return null;let r=this.customQuotesValue[0].quantity,a=this.customQuotesValue[this.customQuotesValue.length-1].quantity,n=Math.min(Math.max(s,r),a),l=parseInt(this.customAmountSliderTarget.step,10),d=r+Math.round((n-r)/l)*l;return this.#n(d)}#n(i){let s=parseInt(i,10);return this.customQuotesByQuantity?.get(s)}#o(i){let s=parseInt(this.customAmountSliderTarget.min,10),r=parseInt(this.customAmountSliderTarget.max,10),a=(i-s)/(r-s)*100;this.customAmountSliderTarget.style.setProperty("--token-slider-progress",`${a}%`)}#l(i){let s=this.#d(i.quantity),r=!!i.offer_label||i.bonus_percentage>0;r&&(this.customBonusBadgeTarget.textContent=i.offer_label||this.customBonusBadgeTarget.dataset.template.replace("#PERCENT#",i.bonus_percentage)),this.customBonusBannerTarget.setAttribute("aria-hidden",String(!r)),this.customPremiumPlusBonusRowTarget.textContent=this.customPremiumPlusBonusRowTarget.dataset.template.replace("#TOKENS#",this.#m(s)),this.customPremiumPlusBonusRowTarget.classList.toggle("hidden",s===0),this.customAmountInputTarget.value=this.#m(i.quantity+s),this.customPriceTarget.textContent=i.formatted_price,this.#u(i),this.#g(i.bonus_percentage)}#h(i){return Math.round(parseInt(i,10)*100/(100+this.bonusPercentageValue))}#c(){let i=parseInt(this.customAmountSliderTarget.max,10),s=this.#m(i+this.#d(i));this.hasCustomAmountSizerTarget?(this.customAmountSizerTarget.textContent=s,this.customAmountInputTarget.style.width=`${this.customAmountSizerTarget.offsetWidth+4}px`):this.customAmountInputTarget.style.width=`${s.length+1.5}ch`}#u(i){let s=i.formatted_compare_price||"";this.customBasePriceTarget.textContent=s,this.customBasePriceTarget.classList.toggle("hidden",s==="")}#g(i){let s=this.previousBonusPercentage!==void 0&&this.previousBonusPercentage!==i;this.previousBonusPercentage=i,!(!s||i<=0)&&(this.customBonusBadgeTarget.classList.remove("token-custom-bonus-chip--pulse"),this.customBonusBadgeTarget.offsetWidth,this.customBonusBadgeTarget.classList.add("token-custom-bonus-chip--pulse"))}#d(i){return Math.floor(i*this.bonusPercentageValue/100)}#m(i){return i.toLocaleString(document.documentElement.lang||void 0)}};var wl=class extends u{static values={userEmail:String,userId:String,utaVisitorId:String,currency:String,enableTracking:Boolean};static outlets=["tokens","tokens--one-time-purchase","token-chip-packs"];connect(){this.boundTrackTokenInitiation=this.trackTokenInitiation.bind(this),this.element.addEventListener("submit",this.boundTrackTokenInitiation)}disconnect(){this.boundTrackTokenInitiation&&this.element.removeEventListener("submit",this.boundTrackTokenInitiation)}trackTokenInitiation(i){if(this.enableTrackingValue)try{let s=this.getCurrentTokenInfo(),r={event:"initiate_token_purchase",email:this.userEmailValue,external_id:this.utaVisitorIdValue,user_id:this.userIdValue,value:s.price,currency:this.currencyValue,token_package:s.quantity,timestamp_micros:(Date.now()*1e3).toString()};window.dataLayer=window.dataLayer||[],window.dataLayer.push(r)}catch(s){window.console&&window.console.error&&window.console.error("Token GTM tracking failed:",s)}}getCurrentTokenInfo(){if(this.hasTokensOutlet){let i=this.tokensOutlet.getCurrentTokenQuantity(),s=this.tokensOutlet.getCurrentTokenPrice();return{quantity:i,price:s}}if(this.hasTokensOneTimePurchaseOutlet){let i=this.tokensOneTimePurchaseOutlet.getCurrentTokenQuantity(),s=this.tokensOneTimePurchaseOutlet.getCurrentTokenPrice();return{quantity:i,price:s}}return this.hasTokenChipPacksOutlet?{quantity:this.tokenChipPacksOutlet.getCurrentTokenQuantity(),price:this.tokenChipPacksOutlet.getCurrentTokenPrice()}:{}}};
57var Cl=class extends u{static targets=["display"];static values={createdAt:Number,processingTime:{type:Number,default:138e3},holdAt:{type:Number,default:100}};connect(){if(this.FAST_PHASE_PERCENTAGE=95,this.INITIAL_FAST_PHASE=60,this.step=parseInt(this.data.get("steps")||"1",10),this.percentage=0,this.createdAtValue){this.startTime=this.createdAtValue*1e3,this.endTime=this.startTime+this.processingTimeValue;let s=Date.now()-this.startTime,r=Math.min(this.holdAtValue,100);if(s>=this.processingTimeValue){this.percentage=r,this.hasDisplayTarget&&(this.displayTarget.innerText=`${r}%`);return}this.percentage=Math.min(Math.floor(s/this.processingTimeValue*100),Math.min(r,99))}else this.startTime=Date.now(),this.setDurationsBasedOnStep(this.step);this.updatePercentage(),je({behavior:"auto"})}reset(){this.cancelPendingTick(),this.percentage=0,this.startTime=Date.now(),this.createdAtValue?this.endTime=this.startTime+this.processingTimeValue:this.setDurationsBasedOnStep(this.step),this.hasDisplayTarget&&(this.displayTarget.innerText="0%"),this.updatePercentage()}disconnect(){this.cancelPendingTick()}cancelPendingTick(){this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null),this.pendingTimeout&&(clearTimeout(this.pendingTimeout),this.pendingTimeout=null)}scheduleRaf(){this.pendingRaf=requestAnimationFrame(()=>{this.pendingRaf=null,this.updatePercentage()})}scheduleTimeout(i){this.pendingTimeout=setTimeout(()=>{this.pendingTimeout=null,this.updatePercentage()},i)}setDurationsBasedOnStep(i){let r=this.getDurationMultiplier(i);this.fastIncrementDuration=5e3*r,this.endTime=this.startTime+12e3*r}getDurationMultiplier(i){switch(i){case 4:return 2;case 9:return 3;case 16:return 4;default:return 1}}updatePercentage(){let i=Date.now();if(this.hasDisplayTarget)if(this.createdAtValue){let s=Math.min(this.holdAtValue,100);if(this.percentage<s){let r=i-this.startTime,a=Math.min(Math.floor(r/this.processingTimeValue*100),s);a>this.percentage&&(this.percentage=a,this.displayTarget.innerText=`${this.percentage}%`),this.percentage<s&&this.scheduleRaf()}}else if(this.percentage<this.FAST_PHASE_PERCENTAGE){let s=i-this.startTime,r=this.fastIncrementDuration/this.FAST_PHASE_PERCENTAGE;s>=this.percentage*r&&(this.displayTarget.innerText=`${this.percentage}%`,this.percentage+=1),this.scheduleRaf()}else if(this.percentage<100){this.displayTarget.innerText=`${this.percentage}%`;let s=this.endTime-i,r=100-this.percentage,a=Math.max(s/r,100);this.percentage+=1,this.scheduleTimeout(a)}else this.displayTarget.innerText="100%"}};var El=class extends u{static targets=["input"];connect(){this.initializeDatePicker()}initializeDatePicker(){new Litepicker({element:this.inputTarget,singleMode:!1,tooltipText:{one:"days",other:"days"},tooltipNumber:i=>i})}};var Ll=class extends u{connect(){this.removeMessagesDeleted(),this.appendLoader(),this.hideAllRegenerateMessageButtons(),this.showAllRegenerateMessageButton()}showAllRegenerateMessageButton(){setTimeout(()=>{document.querySelectorAll(".regenerate-message-button").forEach(s=>{$(s).show()})},1e4)}hideAllRegenerateMessageButtons(){document.querySelectorAll(".regenerate-message-button").forEach(s=>{$(s).hide()})}appendLoader(){let s=this.convertStringToHTML(`
58      <div id="loader" class="py-2">
59        <div class="justify-start items-start gap-2.5 inline-flex slow-fade">
60          <div class="justify-start items-start gap-3 flex">
61            <div class="flex-col justify-start items-start gap-[9px] inline-flex">
62              <div class="px-8 py-3 bg-[#252525] rounded-tl-3xl rounded-tr-3xl rounded-bl-[4px] rounded-br-3xl justify-start items-start gap-2.5 inline-flex">
63                <div class="snippet" data-title="dot-flashing">
64                  <div class="stage">
65                    <div class="dot-flashing"></div>
66                  </div>
67                </div>
68              </div>
69            </div>
70          </div>
71        </div>
72      </div>
73    `);$("#messages-list")[0].appendChild(s),$("#messages").scrollTop($("#messages")[0].scrollHeight)}convertStringToHTML(i){let s=document.createElement("div");return s.innerHTML=i.trim(),s.firstChild}removeMessagesDeleted(){let s=`message_id_${this.element.dataset.regenerateMessageMessageFromId}`,r=document.querySelector("#messages-list"),a=Array.from(r.children),n=!1;a.forEach(l=>{n&&l.remove(),l.id===s&&(n=!0,l.remove())})}};var kl=class extends u{static targets=["option","pill","pill-option","slider","tooltip","toast","optionRadio","fieldset","nextButton","characterAgeChip","confirmedCharacterAge"];static values={selectedCharacterAge:{type:String,default:"Teen(18+)"},selectedCharacterEthnicity:String};removedElement=null;connect(){this.selectedCharacterAgeValue=this.data.get("defaultCharacterAge"),this.selectedCharacterEthnicityValue=this.data.get("defaultCharacterEthnicity"),this.hasSliderTarget&&this.hasTooltipTarget&&this.updateAgeValue(),this.optionTargets.forEac
73h((i,s)=>{i.classList.contains("selected")&&this.pillTargets[s]&&this.pillTargets[s].classList.replace("pill-inactive","pill-active")}),this.initializeCharacterAge(),this.initializeCharacterEthnicity()}initializeCharacterAge(){this.characterAgeChipTargets.forEach(i=>{let s=this.determineAgeRange(this.selectedCharacterAgeValue),r=i.dataset.id;s===r?i.classList.add("border-contextual-primary","bg-contextual-primary-medium"):i.classList.remove("border-contextual-primary","bg-contextual-primary-medium")})}initializeCharacterEthnicity(){this.selectedCharacterEthnicityValue==="Arab"&&this.characterAgeChipTargets.forEach(s=>{s.dataset.id==="40-55"&&s.remove()})}handleEthnicityClick(i){i.currentTarget.alt==="Arab"?(this.characterAgeChipTargets.forEach(r=>{r.dataset.id==="40-55"&&(this.removedElement=r,r.remove())}),this.confirmedCharacterAgeTarget.value>=40&&this.confirmedCharacterAgeTarget.value<=55&&(this.confirmedCharacterAgeTarget.value="")):this.removedElement&&this.characterAgeChipTargets[0].parentNode.appendChild(this.removedElement)}selectCharacterAge(i){let s=i.currentTarget,r=s.dataset.id;if(this.selectedCharacterAgeValue===r)return!1;this.characterAgeChipTargets.forEach(a=>{a.classList.remove("border-contextual-primary","bg-contextual-primary-medium")}),s.classList.remove("bg-[#2D2D2D]","md:bg-black-dark"),s.classList.add("border-contextual-primary","bg-contextual-primary-medium"),this.selectedCharacterAgeValue=r,this.updateHiddenAgeField(r),this.select(i)}updateHiddenAgeField(i){if(!this.confirmedCharacterAgeTarget)return;let s=this.determineAgeNumber(i);this.confirmedCharacterAgeTarget&&(this.confirmedCharacterAgeTarget.value=s)}determineAgeNumber(i){switch(i){case"Teen(18+)":return 18;case"20s":return this.randomAge(20,29);case"30s":return this.randomAge(30,39);case"40-55":return this.randomAge(40,55);default:return 18}}determineAgeRange(i){let s=parseInt(i);return s===18?"Teen(18+)":s>=20&&s<=29?"20s":s>=30&&s<=39?"30s":s>=40&&s<=55?"40-55":(console.error("Age out of range: "+s),null)}randomAge(i,s){return Math.floor(Math.random()*(s-i+1))+i}closeToast(){this.toastTargets.forEach(i=>{i.remove()})}clickNextButton(){this.nextButtonTarget.click()}checkAutoSubmitFieldsetsAndSubmit(){if(Array.from(this.fieldsetTargets).some(a=>a.dataset.autoSubmit==="false"))return;Array.from(this.fieldsetTargets).filter(a=>a.dataset.autoSubmit==="true").every(a=>{let n=a.querySelectorAll('[type="radio"], [type="checkbox"]');return Array.from(n).some(l=>l.checked)})&&this.clickNextButton()}select(i){let s=i.currentTarget.closest("fieldset");if(s.id==="hobbies"){let r=s.querySelectorAll(".pill-option-active"),a=i.currentTarget.firstElementChild.checked,n=i.currentTarget.querySelector('input[type="checkbox"]');a?(i.currentTarget.classList.remove("pill-option-active"),i.currentTarget.classList.add("pill-option-inactive"),n&&(n.checked=!1)):r.length<3&&(i.currentTarget.classList.add("pill-option-active"),i.currentTarget.classList.remove("pill-option-inactive"),n&&(n.checked=!0))}else{let r=Array.from(s.querySelectorAll('[data-create-flow-target="option"]')),a=Array.from(s.querySelectorAll('[data-create-flow-target="pill"]')),n=Array.from(s.querySelectorAll('[data-create-flow-target="pill-option"]'));r.forEach(m=>{m.classList.remove("create-flow-error"),m.classList.remove("selected")}),a.forEach(m=>{m.classList.replace("pill-active","pill-inactive")}),n.forEach(m=>{m.classList.replace("pill-option-active","pill-option-inactive")});let l=s.querySelector("legend");l&&(l.classList.remove("create-flow-error-title"),l.classList.add("text-[#E1E1E1]")),i.currentTarget.matches('[data-create-flow-target="option"]')?(i.currentTarget.classList.add("selected"),i.currentTarget.querySelector(".pill")&&i.currentTarget.querySelector(".pill").classList.replace("pill-inactive","pill-active")):i.currentTarget.matches('[data-create-flow-target="pill-option"]')&&i.currentTarget.classList.replace("pill-option-inactive","pill-option-active");let d=i.currentTarget.querySelector('input[type="radio"]');d&&(d.checked=!0)}this.checkAutoSubmitFieldsetsAndSubmit()}selectAudioButton(i){let s=i.currentTarget;s.classList.add("voice-selected"),document.querySelectorAll('[data-action="click->
73create-flow#selectAudioButton"]').forEach(a=>{a!==s&&a.classList.remove("voice-selected")});let r=i.currentTarget.querySelector('input[type="radio"]');r.checked=!0}selectHairColor(i){let s=i.currentTarget.closest("fieldset"),r=Array.from(s.querySelectorAll('[data-create-flow-target="hairColorOption"]')),a=i.currentTarget.querySelector('input[type="radio"]').value;a==="Blonde"||a==="Blond"?$(".blonde-disclaimer").removeClass("hidden"):$(".blonde-disclaimer").addClass("hidden"),r.forEach(d=>{d.classList.remove("create-flow-error"),d.classList.remove("selected")});let n=s.querySelector("legend");n&&(n.classList.remove("create-flow-error-title"),n.classList.add("text-[#E1E1E1]")),i.currentTarget.classList.add("selected");let l=i.currentTarget.querySelector('input[type="radio"]');l&&(l.checked=!0),this.checkAutoSubmitFieldsetsAndSubmit()}calculateOffset(i){let a=-.12345679012345678,n=15-a*18;return a*i+n}updateAgeValue(i){if(!this.hasSliderTarget||!this.hasTooltipTarget)return;let s=this.sliderTarget,r=this.tooltipTarget,a=i?i.currentTarget.value:s.value,n=(a-s.min)/(s.max-s.min)*100,l=this.calculateOffset(a);r.style.left=`calc(${n}% - (${r.clientWidth/1.5-l}px))`,r.textContent=a}redirectToDirectChat(i){i.preventDefault();let s=i.currentTarget.dataset.redirectUrl;s&&(window.location.href=s)}submitCreateFlowButton(i){let s=i.currentTarget;s.dataset.processing!=="true"&&(s.dataset.processing="true",setTimeout(()=>{s.click()},10))}};var xl=class extends u{static targets=["submit"];popupOpened=!1;connect(){this.submitTarget.addEventListener("click",i=>{let s=i.currentTarget;if(this.popupOpened){i.preventDefault();return}let r=s.querySelector("div"),a=s.querySelector("img");a&&a.classList.add("hidden"),r&&r.classList.add("hidden");let n=document.createElement("div");n.className="loading-submit-white",s.appendChild(n),setTimeout(()=>{n.remove(),a&&a.classList.remove("hidden"),r&&r.classList.remove("hidden")},1e3)},{once:!0})}openPonyUpgradeModal(){let i=document.getElementById("pony_model");i.classList.remove("hidden"),this.popupOpened=!0,this.attachButtonHandler("skip",i,this.handleSkipClick.bind(this)),this.attachButtonHandler("upgrade",i,this.handleUpgradeClick.bind(this)),this.attachButtonHandler("mobileSkip",i,this.handleSkipClick.bind(this)),this.attachButtonHandler("mobileUpgrade",i,this.handleUpgradeClick.bind(this))}attachButtonHandler(i,s,r){let a=document.getElementById(i);a&&a.addEventListener("click",()=>r(s),{once:!0})}handleUpgradeClick(i){this.closeModal(i);let s=document.getElementById("profile_img_version");s&&(s.value=2),this.submitTarget.click()}handleSkipClick(i){this.closeModal(i),this.submitTarget.click()}closeModal(i){i.classList.add("hidden"),this.popupOpened=!1}};var Il=class extends u{static values={checkUrl:String,redirectUrl:{type:String,default:"/sign_in_after_verification"}};connect(){this.boundHandler=this.handleVisibilityChange.bind(this),document.addEventListener("visibilitychange",this.boundHandler)}disconnect(){document.removeEventListener("visibilitychange",this.boundHandler)}async handleVisibilityChange(){if(document.visibilityState!=="visible")return;let i=await Ee(this.checkUrlValue,{responseKind:"json"});i.ok&&(await i.json).confirmed&&window.location.replace(this.redirectUrlValue)}};var Al=class extends u{static targets=["button","note"];static values={url:String,cooldown:{type:Number,default:60},remaining:{type:Number,default:0},resendLabel:String};connect(){this.remainingValue>0&&this.startCooldown(this.remainingValue,this.buttonTarget.textContent.trim())}disconnect(){this.stopCooldown()}async send(i){if(i.preventDefault(),this.buttonTarget.disabled)return;let s=this.buttonTarget.textContent;this.setDisabled(!0),this.buttonTarget.textContent="\u2026";try{let r=await Ee(this.urlValue,{responseKind:"json"});if(r.ok){let a=await r.json;this.buttonTarget.textContent=this.resendLabelValue,a.sent&&this.revealNote(),this.startCooldown(a.sent?this.cooldownValue:Math.max(a.retry_in||0,1));return}}catch{}this.buttonTarget.textContent=s,this.setDisabled(!1)}revealNote(){this.hasNoteTarget&&this.noteTarget.classList.remove("hidden")}startCooldown(i,s=this.resendLabelValue){this.stopCooldown(),this.setDisabled(!0);let r=i;this.renderCooldown(r,s),this.timer=setInterval(()=>{r-=1,r<=0?(this.stopCooldown(),this.buttonTarget.textContent=s,this.setDisabled(!1)):this.renderCooldown(r,s)},1e3)}stopCooldown(){this.timer&&clearInterval(this.timer),this.timer=null}renderCooldown(i,s=this.resendLabelValue){this.buttonTarget.textContent=`${s} (${i}s)`}setDisabled(i){this.buttonTarget.disabled=i,this.buttonTarget.classList.toggle("opacity-50",i),this.buttonTarget.classList.toggle("pointer-events-none",i)}};var Pl=class extends u{static targets=["input","button","row"];static values={editing:Boolean,updateLabel:String,retryIn:{type:Number,default:0}};connect(){this.retryInValue>0&&(this.deadline=Date.now()+this.retryInValue*1e3),this.editingValue&&(this.inputTarget.focu
73s(),this.startCooldownIfBlocked())}disconnect(){this.stopCooldown()}submit(i){if(this.buttonTarget.disabled){i.preventDefault();return}if(this.editingValue){this.showLoader();return}i.preventDefault(),this.editingValue=!0,this.inputTarget.readOnly=!1,this.rowTarget.classList.replace("border-white/15","border-primary"),this.buttonTarget.classList.replace("bg-black-button","bg-gradient-nsfw-purchase-cta"),this.buttonTarget.textContent=this.updateLabelValue,this.inputTarget.focus(),this.startCooldownIfBlocked()}remainingSeconds(){return this.deadline?Math.max(0,Math.ceil((this.deadline-Date.now())/1e3)):0}startCooldownIfBlocked(){let i=this.remainingSeconds();i>0&&this.startCooldown(i)}startCooldown(i){this.stopCooldown();let s=this.buttonTarget.textContent.trim();this.setDisabled(!0),this.renderCooldown(i,s),this.timer=setInterval(()=>{let r=this.remainingSeconds();r<=0?(this.stopCooldown(),this.buttonTarget.textContent=s,this.setDisabled(!1)):this.renderCooldown(r,s)},1e3)}stopCooldown(){this.timer&&clearInterval(this.timer),this.timer=null}renderCooldown(i,s){this.buttonTarget.textContent=`${s} (${i}s)`}setDisabled(i){this.buttonTarget.disabled=i,this.buttonTarget.classList.toggle("opacity-50",i),this.buttonTarget.classList.toggle("pointer-events-none",i)}showLoader(){if(this.buttonTarget.disabled=!0,this.buttonTarget.classList.add("opacity-50","pointer-events-none"),!this.buttonTarget.querySelector(".loading-submit-white")){let i=document.createElement("div");i.classList.add("loading-submit-white","ml-2"),this.buttonTarget.appendChild(i)}}};var Vl=class extends u{static targets=["button","icon","label"];static values={remaining:{type:Number,default:0},countdownLabel:String,readyLabel:String};connect(){this.remainingValue<=0||(this.buttonTarget.disabled=!0,this.deadline=Date.now()+this.remainingValue*1e3,this.timer=setInterval(()=>this.#e(),1e3))}disconnect(){this.#t()}#e(){let i=Math.max(0,Math.ceil((this.deadline-Date.now())/1e3));if(i>0){this.labelTarget.textContent=this.countdownLabelValue.replace("%{seconds}",i);return}this.#t(),this.labelTarget.textContent=this.readyLabelValue,this.iconTarget.classList.add("hidden"),this.buttonTarget.disabled=!1}#t(){this.timer&&clearInterval(this.timer),this.timer=null}};var Ml=class extends u{static targets=["email"];static values={emailFallback:Boolean};emailTargetConnected(i){this.emailFallbackValue&&i.focus()}};var _l=class extends u{static values={delay:{type:Number,default:3e3}};connect(){requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.element.classList.remove("-translate-y-full","opacity-0")})}),this.timeout=setTimeout(()=>this.dismiss(),this.delayValue)}disconnect(){clearTimeout(this.timeout)}dismiss(){this.element.classList.add("-translate-y-full","opacity-0"),this.element.addEventListener("transitionend",()=>this.element.remove(),{once:!0})}};var Bl=class extends u{static values={url:{type:String,default:"/sign_in_after_verification"}};connect(){window.location.replace(this.urlValue)}};var Ol=class extends u{static values={delay:{type:Number,default:1e3}};connect(){this.retryTimer=setTimeout(()=>window.location.reload(),this.delayValue)}disconnect(){clearTimeout(this.retryTimer)}};var Fl=class extends u{static targets=["list","fileInput","uploadButton","loader"];static values={pageId:String,sectionId:String};connect(){this.initSortable()}initSortable(){let i=document.getElementById("sections");i&&new window.Sortable(i,{animation:150,handle:".handle"})}toggleList(){this.listTarget.classList.toggle("hidden")}async addSection(i){let s=i.currentTarget.dataset.sectionId,r=i.currentTarget.dataset.pageId;await H(`/admin/seo_pages/${r}/sections`,{body:JSON.stringify({section_id:s}),contentType:"application/json",responseKind:"turbo-stream"})}async removeSection(i){await Ye(`/admin/seo_pages/${this.pageIdValue}/sections/${this.sectionIdValue}`,{responseKind:"turbo-stream"})}async addProfile(i){let s=this.element.value||this.element.dataset.profileId,r=this.element.dataset.sectionId,a=this.element.dataset.pageId;await H(`/admin/seo_pages/${a}/sections/${r}/profiles`,{body:JSON.stringify({profile_id:s}),contentType:"application/json",responseKind:"turbo-stream"})}async removeProfile(i){let s=this.element.dataset.profileId,r=this.element.dataset.sectionId,a=this.element.dataset.pageId;await Ye(`/admin/seo_pages/${a}/sections/${r}/profiles/${s}`,{responseKind:"turbo-stream"})}async addFaq(i){await H(`/admin/seo_pages/${this.pageIdValue}/sections/${this.sectionIdValue}/faqs`,{responseKind:"turbo-stream"})}async removeFaq(i){let s=i.currentTarget.dataset.faqIndex;await Ye(`/admin/seo_pages/${this.pageIdValue}/sections/${this.sectionIdValue}/faqs/${s}`,{responseKind:"turbo-stream"})}async sort(){let i=document.querySelectorAll(".handle"),s=Array.from(i).map((a,n)=>({id:a.dataset.sectionId,position:n+1})),r=document.querySelector("[data-page-id]")?.dataset.pageId;r&&await ve(`/admin/seo_pages/${r}/sections/reorder`,{body:JSON.stringify({sections:s}),contentType:"application/json"})}showLoader(){this.loaderTarget.classList.remove("hidden")}};var Dl=class extends u{static targets=["editable"];makeEditable(i){let s=i.currentTarget,r=s.dataset.inputType||"input",a=s.className,n;if(r==="textarea"){n=document.createElement("textarea");
73let m=$(s).html().replace(/<a href="(.*?)".*?>(.*?)<\/a>/gi,"[$2]($1)").replace(/<br\s*\/?>/gi,`
74`),v=$("<div/>").html(m).text();n.value=v,n.className=" h-auto w-full whitespace-pre-line ",(s.dataset.updateField==="content"||s.dataset.updateField==="subtitle"||s.dataset.updateField==="cards_description"||s.dataset.updateField==="steps_description"||s.dataset.updateField==="faq_answer")&&n.addEventListener("paste",this.handlePaste)}else n=document.createElement("input"),n.value=s.innerText;let l=a.split(" ").filter(m=>m.startsWith("text-")).join(" "),d=`${n.className} ${l||"text-white"} bg-transparent border-0 outline-hidden focus:ring-0`;n.className=d.trim(),n.dataset.originalClasses=a,n.dataset.action="blur->editable#saveInput keypress->editable#checkForEnter",n.dataset.sectionId=s.dataset.sectionId,n.dataset.titleIndex=s.dataset.titleIndex,n.dataset.contentKey=s.dataset.contentKey,n.dataset.updateField=s.dataset.updateField,n.dataset.pageId=s.dataset.pageId,n.dataset.inputType=r,s.replaceWith(n),n.focus(),r==="textarea"&&setTimeout(()=>{n.style.height="inherit";let m=n.scrollHeight;n.style.height=`${m}px`},0)}async saveInput(i){let s=i.currentTarget,r=document.createElement("span"),a=s.value.replace(/\[(.*?)\]\((.*?)\)/g,'<a href="$2" target="_blank" class="underline">$1</a>');r.innerText=a,r.className=s.dataset.originalClasses||s.className,r.dataset.action="click->editable#makeEditable",r.dataset.sectionId=s.dataset.sectionId,r.dataset.titleIndex=s.dataset.titleIndex,r.dataset.value=a,r.dataset.contentKey=s.dataset.contentKey,r.dataset.updateField=s.dataset.updateField,r.dataset.pageId=s.dataset.pageId,r.dataset.inputType=s.dataset.inputType||"input",s.replaceWith(r);let n=r.dataset.sectionId,l=r.dataset.pageId,d=r.dataset.updateField,m=r.dataset.titleIndex,v=a;await ve(`/admin/seo_pages/${l}/sections/${n}`,{body:JSON.stringify({value:v,update_field:d,title_index:m}),contentType:"application/json",responseKind:"turbo-stream"})}checkForEnter(i){i.keyCode===13&&!i.shiftKey&&(i.preventDefault(),this.saveInput(i))}handlePaste(i){i.preventDefault();let r=(i.clipboardData||window.clipboardData).getData("Text"),a=/^(https?:\/\/[^\s]+)/g,n=i.target;if(a.test(r)){let l=`[${r}](${r})`;n.value+=l,n.selectionStart=n.selectionEnd=n.value.length}else n.value+=r}};var Rl=class extends u{static targets=["serverCategoryCheckbox","isPrivateSelect"];connect(){}toggleServerCategory(i){i.currentTarget.value==="sd_callback"||i.currentTarget.value==="big_love"?this.serverCategoryCheckboxTarget.classList.remove("hidden"):(this.serverCategoryCheckboxTarget.classList.add("hidden"),this.serverCategoryCheckboxTarget.querySelector("select").value=""),i.currentTarget.value==="moderation_llm"||i.currentTarget.value==="image_detection"?this.isPrivateSelectTarget.classList.add("hidden"):(this.isPrivateSelectTarget.classList.remove("hidden"),this.isPrivateSelectTarget.querySelector("select").value="")}pingServer(i){let s=i.currentTarget.dataset.serverId;i.currentTarget.disabled=!0,fetch(`/admin/servers/${s}/pings`,{method:"POST",headers:{"Content-Type":"application/json","X-CSRF-Token":document.querySelector('meta[name="csrf-token"]').content},body:JSON.stringify()})}};var oa=class{constructor(s){this.controller=s,this.fullStarPath=s.fullStarPath,this.emptyStarPath=s.emptyStarPath,this.currentRating=0}highlightRatingStars(s){let r=this.controller.ratingStarTargets.indexOf(s.currentTarget);this.controller.ratingStarTargets.forEach((a,n)=>{a.src=n<=r?this.fullStarPath:this.emptyStarPath})}resetRatingStars(){this.controller.ratingStarTargets.forEach((s,r)=>{s.src=r<this.currentRating?this.fullStarPath:this.emptyStarPath})}ratePhoneCall(s){this.isSubmitButtonEnabled(!0);let r=this.controller.ratingStarTargets.indexOf(s.currentTarget);this.currentRating=r+1}setPhoneCallRatingText(s){this.controller.ratingTextValue=s.currentTarget.value}isSubmitButtonEnabled(s){let r=this.controller.submitPhoneCallRatingButtonTarget;r.classList.toggle("opacity-50",!s),r.classList.toggle("cursor-not-allowed",!s),r.classList.toggle("cursor-pointer",s),r.disabled=!s}addLoadingSpinner(){let s=document.createElement("div");s.className="loading-submit-white mr-2",this.controller.submitPhoneCallRatingButtonTarget.insertBefore(s,this.controller.submitPhoneCallRatingButtonTarget.childNodes[0])}removeLoadingSpinner(){let s=this.controller.submitPhoneCallRatingButtonTarget.childNodes[0];this.controller.submitPhoneCallRatingButtonTarget.removeChild(s)}resetFeedbackForm(){this.controller.ratingTextValue="",this.controller.phoneCallRatingTextTarget.value="",this.currentRating=0,this.resetRatingStars()}async submitPhoneCallRating(s){this.isSubmitButtonEnabled(!1),this.addLoadingSpinner();let r=s.target.closest("form");r&&(this.controller.confirmedStarFeedbackTarget.value=this.currentRating,this.controller.confirmedTextFeedbackTarget.value=this.controller.ratingTextValue,r.requestSubmit()),this.removeLoadingSpinner(),this.resetFeedbackForm(),this.controller.hide()}};var Nl=class extends u{static targets=["ratingStar","submitPhoneCallRatingButton","phoneCallRatingText","confirmedStarFeedback","confirmedTextFeedback","modal"];static values={ratingText:String};connect(){this.initializeValuesAndInstances(),this.show()}disconnect(){this.hide()}initializeValuesAndInstances(){this.fullStarPath=this.data.get("fullStarPath"),this.emptyStarPath=this.data.get("emptyStarPath"),this.rating=new oa(this)}show(){this.modalTarget.classList.remove("hidden")}hide(){this.modalTarget.remove()}highlightRatingStars(i){this.rating.highlightRatingStars(i)}resetRatingStars(i){this.rating.resetRatingStars(i)}ratePhoneCall(i){this.rating.ratePhoneCall(i)}setPhoneCallRatingText(i){this.rating.setPhoneCallRatingText(i)}submitPhoneCallRating(i){i.preventDefault(),this.rating.submitPhoneCallRating(i)}};var Ul=class extends u{static targets=["reason","description","usersReason","usersImprovementDescritoion"];static values={userReason:String,userDescription:String};toggleModalVisibility(i,s){let r=document.getElementById(i);if(r){let a=`${s}`,n=new CustomEvent(a,{bubbles:!0});r.dispatchEvent(n)}}clickNext(){this.descriptionTarget.classList.remove("border-red-500"),this.reasonTarget.classList.remove("border-red-500"),this.descriptionTarget.value===""&&this.descriptionTarget.classList.add("border-red-500"),this.reasonTarget.value===""&&this.reasonTarget.classList.add("border-red-500"),this.descriptionTarget.value&&this.reasonTarget.value&&(this.toggleModalVisibility("delete-account-modal","hide-delete-account-modal"),this.toggleModalVisibility("confirmation-delete-account-modal","show-delete-confirmation-modal"),this.userReasonValue=this.reasonTarget.value,this.userDescriptionValue=this.descriptionTarget.value)}deleteAccount(){this.usersReasonTarget.value=this.userReasonValue,this.usersImprovementDescritoionTarget.value=this.userDescriptionValue;let i=e.target.closest("form");i&&i.requestSubmit()}};var VI=450,Hl="desktop-sidebar--narrow",CT="sidebar-morphing",la=!1,ql=class extends u{static values={isSidebarOpened:Boolean,isCurrentUserSignedInValue:Boolean,selectedCharacterIdFromGenerateImage:String,authModalsUrl:String,closureNoticeUrl:String};static LAYOUT_POSITIONS={mobile:{chatLeft:"0px",conversationPadding:"0px"},desktopClosed:{chatLeft:"100px",conversationPadding:"440px"},desktopOpened:{chatLeft:"220px",conversationPadding:"560px"}};static targets=["mainSidebarClosedContainer","mainSidebarOpenedContainer","mainSidebarContainer","mainMobileSidebarContainer","contentContainer","outerMobileSidebarContainer","chatListContainer","conversationContainer","conversationSkeletonContainer","contactUsModalContainer","registrationModal","signInModal","generateImagePromptTextarea","characterIDForGenerateImage","promptForGenerateImage","hiddenFieldForRedirectionSignup","hiddenFieldForRedirectionLogin","registerButton"];authModalsLoaded=!1;authModalsLoading=null;async ensureAuthModalsLoaded(){this.authModalsLoaded||!this.authModalsUrlV
74alue||(this.authModalsLoading||(this.authModalsLoading=it.fetchWithTurboStream(this.authModalsUrlValue).then(()=>new Promise(i=>{requestAnimationFrame(i)})).then(()=>{this.authModalsLoaded=!0}).catch(i=>{this.authModalsLoading=null,console.error("Failed to load auth modals:",i)})),await this.authModalsLoading)}connect(){this.isCurrentUserSignedInValue=this.data.get("isCurrentUserSignedIn"),la=!1,this.isSidebarOpenedValue=!this.isSidebarOpenedValue,this.hasMainSidebarOpenedContainerTarget&&!this.isMobile()&&this.toggleSidebar(),this.debouncedHandleResize=this.debounce(this.handleResize.bind(this),100),window.addEventListener("resize",this.debouncedHandleResize),new window.URLSearchParams(window.location.search).get("signup")==="true"&&this.registerButtonTarget.click(),this.handleGenderDropdownSelectedBound=this.handleGenderDropdownSelected.bind(this),document.addEventListener("home--gender-dropdown:selected",this.handleGenderDropdownSelectedBound),this.boundCloseAuthModalsBeforeCache=()=>this.#e(),document.addEventListener("turbo:before-cache",this.boundCloseAuthModalsBeforeCache)}chatListContainerTargetConnected(){this.syncChatLayout()}conversationContainerTargetConnected(){this.syncChatLayout()}conversationSkeletonContainerTargetConnected(){this.syncChatLayout()}disconnect(){this.clearMorphListeners(),document.body.classList.remove(CT),window.removeEventListener("resize",this.debouncedHandleResize),this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.blurTimeout&&clearTimeout(this.blurTimeout),this.handleGenderDropdownSelectedBound&&document.removeEventListener("home--gender-dropdown:selected",this.handleGenderDropdownSelectedBound),document.removeEventListener("turbo:before-cache",this.boundCloseAuthModalsBeforeCache)}handleGenderDropdownSelected(){this.closeMenu()}handleMenuClick(){this.isMobile()?la?this.closeMenu():this.openMobileSidebar():this.toggleSidebar({animate:!0})}toggleSidebar({animate:i=!1}={}){let s=!this.isSidebarOpenedValue;i&&this.hasMainSidebarOpenedContainerTarget&&this.hasMainSidebarClosedContainerTarget?this.morphSidebar(s):(this.setSidebarVisibility("opened",s),this.setSidebarVisibility("closed",!s)),this.updateContentPadding(s),this.applyLayoutPositions(s?"desktopOpened":"desktopClosed"),this.isSidebarOpenedValue=s}morphSidebar(i){let s=this.mainSidebarOpenedContainerTarget;this.cancelMorph(),document.body.classList.add(CT),i?(s.classList.add(Hl),this.setSidebarVisibility("opened",!0),this.setSidebarVisibility("closed",!1),s.getBoundingClientRect(),s.classList.remove(Hl),this.afterMorph(()=>this.finishMorph())):(s.classList.add(Hl),this.afterMorph(()=>{this.setSidebarVisibility("opened",!1),this.setSidebarVisibility("closed",!0),this.finishMorph()}))}afterMorph(i){let s=this.mainSidebarOpenedContainerTarget,r=()=>{this.clearMorphListeners(),i()};this.onMorphEnd=a=>{a.target===s&&a.propertyName==="width"&&r()},s.addEventListener("transitionend",this.onMorphEnd),this.morphTimeout=setTimeout(r,VI)}clearMorphListeners(){clearTimeout(this.morphTimeout),this.onMorphEnd&&this.hasMainSidebarOpenedContainerTarget&&this.mainSidebarOpenedContainerTarget.removeEventListener("transitionend",this.onMorphEnd),this.onMorphEnd=null}finishMorph(){this.mainSidebarOpenedContainerTarget.classList.remove(Hl),document.body.classList.remove(CT)}openMobileSidebar(){this.mainMobileSidebarContainerTarget.classList.remove("webkit-transform-sidebar"),document.body.classList.add("no-scroll"),la=!0,this.blurTimeout=setTimeout(()=>{this.mainMobileSidebarContainerTarget.classList.add("backdrop-blur-mobile-sidebar","bg-black/50")},200),this.isSidebarOpenedValue=!0}setMobileSidebarValueToDefault(i){if(i.target.closest(".user-dropdown")||i.target.closest(".gender-interest-switch-dropdown"))return!1;this.closeMenu()}isMobile=()=>window.innerWidth<1024;debounce(i,s){return(...r)=>{clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>i.apply(this,r),s)}}handleResize(){this.isMobile()?(this.hideBothSidebars(),this.resetLayoutForMobile()):(this.showAppropriateDesktopSidebar(),this.applyDesktopLayout())}hideBothSidebars(){this.cancelMorph(),this.setSidebarVisibility("opened",!1),this.setSidebarVisibility("closed",!1)}showAppropriateDesktopSidebar(){this.cancelMorph(),this.isSidebarOpenedValue?(this.setSidebarVisibility("opened",!0),this.setSidebarVisibility("closed",!1)):(this.setSidebarVisibility("opened",!1),this.setSidebarVisibility("closed",!0))}cancelMorph(){this.clearMorphListeners(),this.hasMainSidebarOpenedContainerTarget&&this.finishMorph()}setSidebarVisibility(i,s){let r=i.charAt(0).toUpperCase()+i.slice(1);this[`hasMainSidebar${r}ContainerTarget`]&&this[`mainSidebar${r}ContainerTarget`].classList.toggle("webkit-transform-sidebar",!s)}resetLayoutForMobile(){this.updateContentPadding(!1),this.applyLayoutPositions("mobile")}
74applyDesktopLayout(){this.updateContentPadding(this.isSidebarOpenedValue);let i=this.isSidebarOpenedValue?"desktopOpened":"desktopClosed";this.applyLayoutPositions(i)}syncChatLayout(){this.isMobile()?this.resetLayoutForMobile():this.applyDesktopLayout()}updateContentPadding(i){this.hasChatContainers()||this.hasContentContainerTarget&&this.contentContainerTarget.classList.toggle("pl-[120px]",i)}applyLayoutPositions(i){if(!this.hasChatListContainerTarget||!this.hasConversationContainerTarget&&!this.hasConversationSkeletonContainerTarget)return;let s=this.constructor.LAYOUT_POSITIONS[i];this.chatListContainerTarget.style.left=s.chatLeft,this.hasConversationContainerTarget&&(this.conversationContainerTarget.style.paddingLeft=s.conversationPadding),this.hasConversationSkeletonContainerTarget&&(this.conversationSkeletonContainerTarget.style.paddingLeft=s.conversationPadding)}hasChatContainers(){return this.hasChatListContainerTarget&&this.hasConversationContainerTarget}openContactUs(){this.contactUsModalContainerTarget.style.display="block"}async openRegistrationModal(i){if(i.preventDefault(),this.redirectToClosureNotice())return;let s=i.detail?.redirectUrl||i.params?.redirectUrl||i.currentTarget?.dataset?.redirectUrl||"",r=i.detail?.registrationSurface||i.params?.registrationSurface||i.currentTarget?.dataset?.registrationSurface;await this.storeUrlInCookie(s,{registrationSurface:r}),await this.ensureAuthModalsLoaded(),this.hasRegistrationModalTarget&&(this.registrationModalTarget.style.display="flex",this.registrationModalTarget.dispatchEvent(new CustomEvent("show-registration-modal",{bubbles:!0})))}redirectToClosureNotice(){return this.closureNoticeUrlValue?(window.location.assign(this.closureNoticeUrlValue),!0):!1}async openRegistrationFromLinkGate(i){if(this.redirectToClosureNotice())return;let s=i.detail?.redirectUrl||"";await this.storeUrlInCookie(s),await this.ensureAuthModalsLoaded(),this.hasRegistrationModalTarget&&(this.registrationModalTarget.style.display="flex",this.registrationModalTarget.dispatchEvent(new CustomEvent("show-registration-modal",{bubbles:!0})))}async switchToRegistrationModal(i){i.preventDefault(),!this.redirectToClosureNotice()&&(this.closeSignInModal(),await this.storeUrlInCookie(void 0,{preserveSurface:!0}),await this.ensureAuthModalsLoaded(),this.hasRegistrationModalTarget&&(this.registrationModalTarget.style.display="flex",this.registrationModalTarget.dispatchEvent(new CustomEvent("show-registration-modal",{bubbles:!0}))))}async switchToSignInModal(i){i.preventDefault(),this.closeRegistrationModal(),await this.storeUrlInCookie(void 0,{preserveSurface:!0}),await this.ensureAuthModalsLoaded(),this.hasSignInModalTarget&&(this.signInModalTarget.style.display="flex")}async storeUrlInCookie(i,{registrationSurface:s,preserveSurface:r=!1}={}){let a=!i&&this.explicitRedirectStored;a||(this.explicitRedirectStored=!!i),r||(this.explicitSurfaceStored=s||void 0);let n={registration_page_url:window.location.href};a||(n.redirect_url=i||window.location.href),this.explicitSurfaceStored&&(n.registration_surface=this.explicitSurfaceStored),await fetch("/store_url_in_cookie",{method:"POST",headers:{"Content-Type":"application/json","X-CSRF-Token":document.querySelector('meta[name="csrf-token"]')?.getAttribute("content")},body:JSON.stringify(n)})}closeRegistrationModal(){this.hasRegistrationModalTarget&&(this.registrationModalTarget.style.display="none")}async openSignInModal(i){i.preventDefault();let s=i?.currentTarget?.dataset?.redirectUrl||"";await this.storeUrlInCookie(s),await this.ensureAuthModalsLoaded(),this.hasSignInModalTarget&&(this.signInModalTarget.style.display="flex")}closeSignInModal(){this.hasSignInModalTarget&&(this.signInModalTarget.style.display="none")}#e(){this.closeSignInModal(),this.closeRegistrationModal()}closeMenu(){!this.isMobile()||!la||(this.blurTimeout&&(clearTimeout(this.blurTimeout),this.blurTimeout=null),la=!1,this.isSidebarOpenedValue=!1,this.mainMobileSidebarContainerTarget.classList.remove("webkit-transition-sidebar"),this.mainMobileSidebarContainerTarget.classList.remove("backdrop-blur-mobile-sidebar","bg-black/50"),this.mainMobileSidebarContainerTarget.offsetWidth,this.mainMobileSidebarContainerTarget.classList.add("webkit-transition-sidebar"),this.mainMobileSidebarContainerTarget.classList.add("webkit-transform-sidebar"),document.body.classList.remove("no-scroll"),this.#t())}#t(){let i=this.mainMobileSidebarContainerTarget.querySelector(".overflow-auto");i&&(i.scrollTop=0)}async closeMobileMenuAndOpenRegistrationModal(i){this.closeMenu(),await this.openRegistrationModal(i)}setFieldsForGenerateImage(i,s){this.characterIDForGenerateImageTargets.forEac
74h(r=>{r.value=s}),this.promptForGenerateImageTargets.forEach(r=>{r.value=i})}async saveFormDataAndOpenRegisterModal(i){i.preventDefault();let s=i.currentTarget?.dataset?.redirectUrl||"";await this.ensureAuthModalsLoaded(),this.setFieldsForGenerateImage(this.generateImagePromptTextareaTarget.value,this.selectedCharacterIdFromGenerateImageValue),this.hasRegistrationModalTarget&&(await this.storeUrlInCookie(s),this.registrationModalTarget.style.display="flex",this.registrationModalTarget.dispatchEvent(new CustomEvent("show-registration-modal",{bubbles:!0})))}};var $l=class extends u{static targets=["regenerateLinkTimer","resendLinkButton","regenerateButtonImg","regenerateButtonText","regenerateEmailLink"];static values={startTime:String};connect(){this.countdownFrom=this.data.get("countdownFrom"),this.initializeTimer()}initializeTimer(){let i=this.countdownFrom.split(":").map(s=>parseInt(s,10));this.totalSeconds=i[0]*60+(i.length>1?i[1]:0),this.updateTimer()}updateTimer(){if(this.totalSeconds>0){this.totalSeconds-=1;let i=Math.floor(this.totalSeconds/60),s=this.totalSeconds%60,r=`${i<10?"0":""}${i}:${s<10?"0":""}${s}`;this.regenerateLinkTimerTarget.innerHTML=r,setTimeout(()=>this.updateTimer(),1e3)}else this.onCountdownComplete()}onCountdownComplete(){this.hasRegenerateEmailLinkTarget?this.handleEmailChangeCountdown():this.handleCountdownComplete()}handleCountdownComplete(){this.resendLinkButtonTarget.classList.remove("bg-white","pointer-events-none","opacity-50"),this.resendLinkButtonTarget.classList.add("bg-primary"),this.regenerateButtonImgTarget.setAttribute("src",this.regenerateButtonImgTarget.dataset.retrySrc),this.regenerateButtonTextTarget.classList.add("text-white"),this.regenerateLinkTimerTarget.innerHTML="00:00"}handleEmailChangeCountdown(){this.regenerateEmailLinkTarget.classList.add("text-primary"),this.regenerateEmailLinkTarget.classList.remove("pointer-events-none","opacity-50","text-gray-400"),this.regenerateLinkTimerTarget.innerHTML="00:00"}handleResend(){this.resendLinkButtonTarget.classList.add("opacity-50","cursor-not-allowed","pointer-events-none"),this.resendLinkButtonTarget.classList.remove("cursor-pointer")}handleEmailResend(){this.regenerateEmailLinkTarget.classList.add("pointer-events-none","opacity-50"),this.regenerateEmailLinkTarget.classList.remove("text-primary")}};var Gl=class extends u{static targets=["contactUsModalContainer","successModalContainer","description","form"];closeContactUs(){this.contactUsModalContainerTarget.style.display="none",this.descriptionTarget.classList.remove("border-red-500")}closeSuccessModal(){this.successModalContainerTarget.style.display="none"}openSuccessModal(){document.getElementById("success-modal-container").style.display="block"}addValidationBorder(){this.descriptionTarget.classList.add("border-red-500")}removeValidationBorder(){this.descriptionTarget.classList.add("border-red-500")}submitForm(){this.descriptionTarget.value===""?this.addValidationBorder():(this.removeValidationBorder(),this.formTarget.requestSubmit(),this.descriptionTarget.value="",this.closeContactUs(),this.openSuccessModal())}};var Wl=class extends u{static targets=["navItem","summaryPanel","contentPanel"];async changeTab(i){if(i.preventDefault(),this.navItemTargets.forEach(r=>r.classList.remove("active")),i.currentTarget.classList.add("active"),i.currentTarget.dataset.tab==="summary")this.summaryPanelTarget.classList.remove("hidden"),this.contentPanelTarget.classList.add("hidden");else{this.summaryPanelTarget.classList.add("hidden"),this.contentPanelTarget.classList.remove("hidden");let r=i.currentTarget.dataset.url;r&&((await Ee(r,{responseKind:"turbo-stream"})).ok||(this.contentPanelTarget.innerHTML='<div class="p-6 text-sm text-red-400">Failed to load content. Please try again.</div>'))}}clearLocalStorage(){this.clearAiToAiRelatedLocalStorageData()}clearAiToAiRelatedLocalStorageData(){["savedUserSelectionsForAiToAi","savedUserSelectionsTimestampForAiToAi","currentStepForAiToAi"].forEach(s=>localStorage.removeItem(s))}};var jl=class extends u{static targets=["searchInput","clearButton"];static values={url:String,previousQuery:String};connect(){this.element.addEventListener("submit",i=>{i.preventDefault()}),this.previousQuery=""}search(i){i.preventDefault(),clearTimeout(this.searchTimeout);let s=this.searchInputTarget.value.trim();this.toggleClearButtonVisibility(s),(s.length>0||this.previousQuery.length>0)&&(this.searchTimeout=setTimeout(()=>{this.performSearch(s)},500)),this.previousQuery=this.searchInputTarget.value.trim()}performSearch(i){let s=new URL(this.urlValue||"/conversations/search",window.location.origin);i.length>0?s.searchParams.set("query",i):s.searchParams.delete("query"),Turbo.visit(s.toString())}clearSearch(){this.searchInputTarget.value="",this.performSearch(""),this.toggleClearButtonVisibility("")}
74toggleClearButtonVisibility(i){i.length>0?this.clearButtonTarget.classList.remove("hidden"):this.clearButtonTarget.classList.add("hidden")}};var Kl=class extends u{static targets=["modelCard","modelInput","lengthInput","lengthOption","lengthFill","lengthThumb","lengthNotch","narrationInput","timezoneInput","customStyleInput","customStyleCounter","customStyleError","saveButton","error"];static values={updateUrl:String,premiumPlus:Boolean,premiumPlusUrl:String,lengthOptions:Array};connect(){this.responseLengths=this.lengthOptionsValue,this.lastValidIndex=Number(this.lengthInputTarget.value),this.boundHideTransientState=this.hideTransientState.bind(this),this.element.addEventListener("close",this.boundHideTransientState),this.selectLength()}disconnect(){this.element.removeEventListener("close",this.boundHideTransientState)}close(){this.element.close()}selectModel(i){let s=i.currentTarget;if(s.dataset.locked==="true"){this.redirectToPremiumPlus("chat_customization_model");return}this.modelInputTarget.value=s.dataset.modelKey,this.renderModelCards()}upsellLength(){this.redirectToPremiumPlus("chat_customization_length")}upsellTimezone(){this.redirectToPremiumPlus("chat_customization_timezone")}upsellCustomStyle(){this.redirectToPremiumPlus("chat_customization_custom_style")}updateCustomStyleCounter(){if(!this.hasCustomStyleCounterTarget)return;let i=this.customStyleInputTarget;this.customStyleCounterTarget.textContent=`${i.value.length}/${i.maxLength}`}lockedTimezoneChange(i){let s=i.currentTarget;s.value!==s.dataset.offValue&&(s.value=s.dataset.offValue,this.upsellTimezone())}redirectToPremiumPlus(i="chat_customization_model"){this.trackUpsellClick(i),this.closeBeforeNavigation(),Be.visit(this.premiumPlusUrlValue)}trackUpsellClick(i){typeof mixpanel>"u"||!mixpanel.track||mixpanel.track("chat customisation options upsell clicked",$t({placement:i}))}selectLength(){let i=Number(this.lengthInputTarget.value),s=this.responseLengths[i];if(s&&s.locked&&!this.premiumPlusValue){this.lengthInputTarget.value=this.lastValidIndex,this.highlightLength(this.lastValidIndex);return}this.lastValidIndex=i,this.highlightLength(i)}highlightLength(i){let s=this.lengthPercent(i);this.lengthFillTarget.style.width=`${s}%`,this.lengthThumbTarget.style.left=`${s}%`,this.lengthNotchTargets.forEach((r,a)=>{if(r.dataset.premium==="true")return;let n=a<=i;r.classList.toggle("bg-primary",n),r.classList.toggle("bg-white/25",!n)}),this.lengthOptionTargets.forEach((r,a)=>{let n=a===i;r.classList.toggle("underline",n),r.classList.toggle("underline-offset-4",n),r.dataset.premium==="true"?(r.classList.toggle("text-white",n),r.classList.toggle("text-primary",!n)):(r.classList.toggle("text-white",n),r.classList.toggle("text-white/50",!n))})}lengthPercent(i){let s=this.responseLengths.length;return s<=1?0:i/(s-1)*100}async save(){this.hideError(),this.saveButtonTarget.disabled=!0;try{let i=this.responseLengths[Number(this.lengthInputTarget.value)],s={model_key:this.modelInputTarget.value,response_length:i.value,narration_enabled:this.narrationInputTarget.checked};this.hasTimezoneInputTarget&&(s.chat_timezone=this.timezoneInputTarget.value),this.hasCustomStyleInputTarget&&(s.custom_style=this.customStyleInputTarget.value);let r=await ve(this.updateUrlValue,{body:JSON.stringify({chat_customization:s}),contentType:"application/json"});if(!r.ok){let a=await r.response.json().catch(()=>({}));this.showError(a.error||"Something went wrong",a.error_field);return}this.close()}catch(i){this.showError(i.message)}finally{this.saveButtonTarget.disabled=!1}}renderModelCards(){this.modelCardTargets.forEach(i=>{let s=i.dataset.modelKey===this.modelInputTarget.value;i.dataset.premiumPlus==="true"?(i.classList.toggle("border-[#FC768A]",s),i.classList.toggle("ring-2",s),i.classList.toggle("ring-[#FC768A]",s),i.classList.toggle("shadow-[0_0_28px_rgba(214,67,230,0.40)]",s),i.classList.toggle("border-[#FC768A]/30",!s),i.classList.toggle("shadow-[0_0_24px_rgba(252,118,138,0.16)]",!s)):(i.classList.toggle("border-[#F8312F]",s),i.classList.toggle("ring-2",s),i.classList.toggle("ring-[#F8312F]",s),i.classList.toggle("bg-[#F8312F]/10",s),i.classList.toggle("shadow-[0_0_20px_rgba(248,49,47,0.22)]",s),i.classList.toggle("border-white/15",!s),i.classList.toggle("bg-white/4",!s))})}showError(i,s=null){this.#e(s).textContent=i,this.#e(s).classList.remove("hidden")}
74hideError(){this.#t().forEach(i=>{i.textContent="",i.classList.add("hidden")})}#e(i){return i==="custom_style"&&this.hasCustomStyleErrorTarget?this.customStyleErrorTarget:this.errorTarget}#t(){return this.hasCustomStyleErrorTarget?[this.errorTarget,this.customStyleErrorTarget]:[this.errorTarget]}hideTransientState(){this.hideError(),this.saveButtonTarget.disabled=!1}closeBeforeNavigation(){this.hideTransientState(),this.element.open&&this.element.close()}};var zl=class extends u{static targets=["form","saveButton","error","fieldError","meterBar","meterValue","meterCheck"];static values={formUrl:String,formMethod:String,personaId:Number,premiumPlus:Boolean,free:Boolean,premiumPlusUrl:String,paywallId:String,percentTemplate:String,fieldScope:String,genderOptionsUrl:String,genericError:String};connect(){this.resetRequestTarget(),this.updateCounters(),this.onDialogClose=()=>this.handleDialogClose(),this.element.addEventListener("close",this.onDialogClose),this.navigatingAway=!1,this.onTurboBeforeVisit=()=>{this.navigatingAway=!0},document.addEventListener("turbo:before-visit",this.onTurboBeforeVisit),this.onTurboLoad=()=>{this.navigatingAway=!1},document.addEventListener("turbo:load",this.onTurboLoad)}disconnect(){this.onDialogClose&&this.element.removeEventListener("close",this.onDialogClose),this.onTurboBeforeVisit&&document.removeEventListener("turbo:before-visit",this.onTurboBeforeVisit),this.onTurboLoad&&document.removeEventListener("turbo:load",this.onTurboLoad)}resetRequestTarget(){this.currentMethod=this.formMethodValue,this.currentUrl=this.formUrlValue,this.collectionUrl=this.formMethodValue==="post"?this.formUrlValue:null,this.persistedDuringCreate=!1}handleDialogClose(){if(this.persistedDuringCreate&&!this.navigatingAway){document.dispatchEvent(new CustomEvent("user-personas:saved")),this.reload();return}this.resetRequestTarget()}close(){this.element.close()}reload(){window.location.reload()}upsell(){if(!this.freeValue){let i=this.paywallElement;if(i&&typeof i.showModal=="function"){i.showModal();return}}this.navigateToPremiumPlus()}get paywallElement(){return this.hasPaywallIdValue?document.getElementById(this.paywallIdValue):null}navigateToPremiumPlus(){this.closeBeforeNavigation(),Be.visit(this.premiumPlusUrlValue)}fieldChanged(i){this.enforceMax(i),this.updateSwatchLabel(i),this.recomputeMeter(),this.updateCounters();let s=i.currentTarget;s&&s.dataset.field==="gender"&&this.refreshGenderOptions(s)}updateSwatchLabel(i){let s=i.currentTarget;if(!s)return;let r=s.querySelector("[data-user-personas-target='swatchLabel']");if(!r)return;let a=s.querySelector("input:checked");r.textContent=a&&a.dataset.swatchLabel||""}async refreshGenderOptions(i){if(!this.hasGenderOptionsUrlValue||!this.genderOptionsUrlValue)return;let s=i.querySelector("input:checked"),r=s?s.value:"";if(!r)return;let a=new URL(this.genderOptionsUrlValue,window.location.origin);a.searchParams.set("gender",r),a.searchParams.set("scope",this.hasFieldScopeValue?this.fieldScopeValue:"new");let n=await Ee(a.toString(),{responseKind:"html"});if(!n.ok)return;let l=await n.html,d=document.createElement("template");d.innerHTML=l,d.content.querySelectorAll("[data-field]").forEach(m=>{let v=this.formTarget.querySelector(`[data-field='${m.dataset.field}']`);v&&v.replaceWith(m)}),this.recomputeMeter(),this.updateCounters()}updateCounters(){this.element.querySelectorAll("[data-persona-counter]").forEach(i=>{let s=i.closest("[data-field]");if(!s)return;let r=i.dataset.personaCounterMax,a=s.querySelector("input[maxlength], textarea[maxlength]");if(a)i.textContent=`${a.value.length}/${r}`;else{let n=s.querySelectorAll("input[type=checkbox]:checked, input[type=radio]:checked").length;i.textContent=`${n}/${r}`}})}enforceMax(i){let s=i.currentTarget,r=parseInt(s.dataset.max||"0",10);if(r<=0||s.querySelectorAll("input:checked").length<=r)return;let n=i.detail&&i.detail.pill;if(!n)return;let l=document.getElementById(n.getAttribute("for"));l&&(l.checked=!1),n.classList.remove("border-white"),n.classList.add("border-[rgba(255,255,255,0.15)]"),n.dataset.selected="false"}recomputeMeter(){if(!this.hasMeterBarTarget)return;let i=Array.from(this.element.querySelectorAll("[data-field]")),s=i.length,r=i.filter(n=>this.fieldFilled(n)).length,a=s===0?0:Math.round(r/s*100);this.meterBarTarget.style.width=`${a}%`,this.hasMeterValueTarget&&(this.meterValueTarget.textContent=this.completionLabel(a)),this.hasMeterCheckTarget&&this.meterCheckTarget.classList.toggle("hidden",a<100)}completionLabel(i){return this.hasPercentTemplateValue&&this.percentTemplateValue?this.percentTemplateValue.replace("%{percent}",i):`Profile ${i}% complete`}fieldFilled(i){let s=i.querySelectorAll("input[type=checkbox], input[type=radio]");if(s.length>0)return Array.from(s).some(a=>a.checked);let r=i.querySelector("[data-user-personas-target='input']")||i.querySelector("input, textarea, select");return!!r&&r.value.trim()!==""}async save(){if(this.freeValue){this.upsell();return}this.hideErrors(),this.saveButtonTarget.disabled=!0;try{let s=await(this.currentMethod==="post"?H:ve)(this.currentUrl,{body:new FormData(this.formTarget),responseKind:"json"}),r=await s.response.json().catch(()=>({}));if(!s.ok){let n=r.errors||r.rejected_fields;
74throw n&&this.showFieldErrors(n),new Error(r.error||this.genericErrorValue)}r.persona&&this.currentMethod==="post"&&this.collectionUrl&&(this.currentMethod="patch",this.currentUrl=`${this.collectionUrl}/${r.persona.id}`,this.persistedDuringCreate=!0);let a=r.rejected_fields||{};if(Object.keys(a).length>0){this.showFieldErrors(a);return}this.persistedDuringCreate=!1,this.close(),document.dispatchEvent(new CustomEvent("user-personas:saved")),this.reload()}catch(i){this.showError(i.message)}finally{this.saveButtonTarget.disabled=!1}}showFieldErrors(i){this.fieldErrorTargets.forEach(s=>{let r=s.dataset.fieldError,a=i[r];a?(s.textContent=a,s.classList.remove("hidden")):(s.textContent="",s.classList.add("hidden"))})}showError(i){this.hasErrorTarget&&(this.errorTarget.textContent=i,this.errorTarget.classList.remove("hidden"))}hideErrors(){this.hasErrorTarget&&(this.errorTarget.textContent="",this.errorTarget.classList.add("hidden")),this.fieldErrorTargets.forEach(i=>{i.textContent="",i.classList.add("hidden")})}closeBeforeNavigation(){this.hideErrors(),this.navigatingAway=!0,this.element.open&&this.element.close()}};var Yl=class extends u{static targets=["rating","feedbackText","submitButton","successMessage","errorMessage"];static values={feedbackableId:String,submitUrl:String};connect(){this.selectedRating=null}selectRating(i){this.selectedRating=parseInt(i.currentTarget.dataset.rating),this.updateStars(this.selectedRating),this.submitButtonTarget.disabled=!1}hoverRating(i){let s=parseInt(i.currentTarget.dataset.rating);this.updateStars(s)}leaveRating(){let i=this.selectedRating?this.selectedRating:0;this.updateStars(i)}updateStars(i){this.ratingTargets.forEach(s=>{parseInt(s.dataset.rating)<=i?(s.classList.add("text-yellow-400"),s.classList.remove("text-white/40")):(s.classList.remove("text-yellow-400"),s.classList.add("text-white/40"))})}async submit(i){if(i.preventDefault(),!this.selectedRating){this.showError();return}this.submitButtonTarget.disabled=!0;try{let s=await Pt();(await H(this.submitUrlValue,{body:JSON.stringify({user_persona_id:this.feedbackableIdValue,feedback_device_context:s,polymorphic_feedback:{reaction:"rating",score:this.selectedRating,description:this.feedbackTextTarget.value}}),contentType:"application/json"})).ok?(this.showSuccess(),setTimeout(()=>this.dismiss(),2e3)):(this.showError(),this.submitButtonTarget.disabled=!1)}catch(s){console.error("Feedback submission error:",s),this.showError(),this.submitButtonTarget.disabled=!1}}dismiss(){this.element.closest("dialog")?.close(),document.querySelectorAll("[data-persona-feedback-trigger]").forEach(i=>i.remove()),document.querySelectorAll("[data-persona-feedback-dialog]").forEach(i=>i.remove())}showSuccess(){this.successMessageTarget.classList.remove("hidden"),this.errorMessageTarget.classList.add("hidden")}showError(){this.errorMessageTarget.classList.remove("hidden"),this.successMessageTarget.classList.add("hidden")}};var Xl=class extends u{static targets=["input","display","cmButton","ftButton","slider"];static values={min:{type:Number,default:150},max:{type:Number,default:220},start:{type:Number,default:175},unit:{type:String,default:"cm"}};connect(){this.render()}
74decrement(){this.stepBy(-1)}increment(){this.stepBy(1)}stepBy(i){if(this.unitValue==="ft"){let s=Math.round(this.currentCm/2.54)+i;this.setCm(Math.round(s*2.54))}else this.setCm(this.currentCm+i)}useSlider(){this.setCm(parseInt(this.sliderTarget.value,10))}useCm(){this.unitValue="cm",this.render()}useFt(){this.unitValue="ft",this.render()}get currentCm(){let i=parseInt(this.inputTarget.value,10);return Number.isNaN(i)?this.startValue:i}setCm(i){let s=Math.min(this.maxValue,Math.max(this.minValue,i));this.inputTarget.value=s,this.inputTarget.dispatchEvent(new Event("change",{bubbles:!0})),this.render()}render(){this.hasDisplayTarget&&(this.displayTarget.textContent=this.formatted(this.currentCm)),this.hasSliderTarget&&this.sliderTarget.value!==String(this.currentCm)&&(this.sliderTarget.value=this.currentCm),this.toggleUnitButtons()}formatted(i){if(this.unitValue==="ft"){let s=Math.round(i/2.54),r=Math.floor(s/12),a=s%12;return`${r}'${a}"`}return`${i}`}toggleUnitButtons(){let i="bg-primary text-white",s="text-white/60";if(this.hasCmButtonTarget&&this.hasFtButtonTarget){let r=this.unitValue==="cm";this.cmButtonTarget.className=`${this.baseButtonClasses} ${r?i:s}`,this.ftButtonTarget.className=`${this.baseButtonClasses} ${r?s:i}`}}get baseButtonClasses(){return"rounded-full px-3 py-1 text-xs font-semibold transition-colors"}};var Ql=class extends u{static targets=["trigger","panel","search","option","input","label","empty"];connect(){this.outsideClick=i=>{this.element.contains(i.target)||this.close()},document.addEventListener("click",this.outsideClick)}disconnect(){document.removeEventListener("click",this.outsideClick)}toggle(){this.isOpen?this.close():this.open()}open(){this.panelTarget.classList.remove("hidden"),this.triggerTarget.setAttribute("aria-expanded","true"),this.hasSearchTarget?(this.searchTarget.value="",this.filter(),this.searchTarget.focus()):this.focusOption(this.visibleOptions()[0])}close({focusTrigger:i=!1}={}){this.panelTarget.classList.add("hidden"),this.triggerTarget.setAttribute("aria-expanded","false"),i&&this.triggerTarget.focus()}get isOpen(){return!this.panelTarget.classList.contains("hidden")}filter(){let i=this.hasSearchTarget?this.searchTarget.value.trim().toLowerCase():"",s=0;this.optionTargets.forEach(r=>{let a=i.length===0||r.dataset.label.toLowerCase().includes(i);r.classList.toggle("hidden",!a),a&&(s+=1)}),this.hasEmptyTarget&&this.emptyTarget.classList.toggle("hidden",s>0)}select(i){let s=i.currentTarget;this.inputTarget.value=s.dataset.value,this.labelTarget.textContent=s.dataset.label,this.labelTarget.classList.remove("text-white/40"),this.optionTargets.forEach(r=>r.setAttribute("aria-selected",r===s?"true":"false")),this.inputTarget.dispatchEvent(new Event("change",{bubbles:!0})),this.close({focusTrigger:!0})}onKeydown(i){if(i.key==="Escape"){this.isOpen&&(i.preventDefault(),this.close({focusTrigger:!0}));return}if(i.target===this.triggerTarget&&(i.key==="ArrowDown"||i.key==="ArrowUp")){i.preventDefault(),this.isOpen||this.open();let r=this.visibleOptions();this.focusOption(i.key==="ArrowUp"?r[r.length-1]:r[0]);return}if(this.isOpen){if(this.hasSearchTarget&&i.target===this.searchTarget&&i.key==="Enter"){i.preventDefault();let r=this.visibleOptions()[0];r&&r.click();return}if(["ArrowDown","ArrowUp","Home","End"].includes(i.key)){let r=this.visibleOptions();if(r.length===0)return;i.preventDefault();let a=r.indexOf(document.activeElement),n;i.key==="Home"?n=0:i.key==="End"?n=r.length-1:i.key==="ArrowDown"?n=a<0?0:Math.min(a+1,r.length-1):n=a<0?r.length-1:Math.max(a-1,0),this.focusOption(r[n])}}}visibleOptions(){return this.optionTargets.filter(i=>!i.classList.contains("hidden"))}focusOption(i){i&&i.focus()}};var ET="personaListToast",Jl=class extends u{static values={toggleEnabledUrl:String,toastEnabled:String,toastDisabled:String};connect(){this.#t()}async activate(i){let s=i.currentTarget.dataset.url;await this.#e(()=>ve(s,{responseKind:"json"}),i.currentTarget)}async destroyPersona(i){let s=i.currentTarget.dataset.url;await this.#e(()=>Ye(s,{responseKind:"json"}),i.currentTarget)}async toggleEnabled(i){let s=i.currentTarget,r=s.checked;await this.#e(()=>ve(this.toggleEnabledUrlValue,{body:JSON.stringify({enabled:r}),responseKind:"json"}),s,()=>sessionStorage.setItem(ET,r?"enabled":"disabled"))}async#e(i,s,r){let a=s&&s.type==="checkbox"?s:null;s&&(s.disabled=!0);try{if((await i()).ok){r&&r(),document.dispatchEvent(new CustomEvent("user-personas:saved")),this.reload();return}}catch{}s&&(s.disabled=!1),a&&(a.checked=!a.checked)}reload(){window.location.reload()}#t(){if(!this.hasToggleEnabledUrlValue)return;let i=sessionStorage.getItem(ET);if(!i)return;sessionStorage.removeItem(ET);let s=i==="enabled"?this.toastEnabledValue:this.toastDisabledValue;s&&this.#i(s)}#i(i){let s=document.createElement("div");s.className="fixed left-1/2 bottom-24 z-[100] flex -translate-x-1/2 items-center gap-2 rounded-full bg-[#222] px-4 py-2.5 text-sm font-semibold text-white shadow-lg op
74acity-0 transition-opacity duration-300",s.innerHTML='<svg class="h-4 w-4 text-primary" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M16.704 5.29a1 1 0 010 1.42l-7.5 7.5a1 1 0 01-1.42 0l-3.5-3.5a1 1 0 011.42-1.42l2.79 2.79 6.79-6.79a1 1 0 011.42 0z" clip-rule="evenodd" /></svg>',s.appendChild(document.createTextNode(i)),document.body.appendChild(s),requestAnimationFrame(()=>{s.classList.remove("opacity-0"),s.classList.add("opacity-100")}),setTimeout(()=>{s.classList.add("opacity-0"),setTimeout(()=>s.remove(),300)},3500)}};var MI=15e3,_I=180,BI=400,Cs=class extends u{static targets=["frame","loader"];static values={url:String,errorMessage:String};connect(){this.loaded=this.hasFrameTarget&&this.frameTarget.childElementCount>0,this.hideLoader()}disconnect(){clearTimeout(this.loaderTimer),clearTimeout(this.handoffTimer),this.loaderTimer=null,this.handoffTimer=null}ensureLoaded(){return this.loaded?Promise.resolve():(this.loadPromise||(this.loadPromise=this.load().then(()=>{this.loaded=!0}).catch(s=>{throw this.loadPromise=null,s})),this.loadPromise)}invalidate(){this.loaded=!1,this.loadPromise=null}load(){return new Promise((s,r)=>{let a=this.frameTarget,n=()=>{clearTimeout(m),a.removeEventListener("turbo:frame-load",l),a.removeEventListener("turbo:frame-missing",d),a.removeEventListener("turbo:fetch-request-error",d)},l=()=>{n(),s()},d=v=>{v&&v.type==="turbo:frame-missing"&&(v.preventDefault(),v.stopImmediatePropagation()),a.removeAttribute("src"),n(),r(new Error(`${this.identifier} failed to load`))},m=setTimeout(d,MI);a.addEventListener("turbo:frame-load",l),a.addEventListener("turbo:frame-missing",d),a.addEventListener("turbo:fetch-request-error",d),a.removeAttribute("src"),a.src=this.urlValue})}reportFailure(s,r,{toast:a=!0}={}){this.reported||=new Set,!this.reported.has(s)&&(this.reported.add(s),Ge(r,{controller:this.identifier,reason:s,url:this.urlValue}),a&&this.hasErrorMessageValue&&this.showToast(this.errorMessageValue))}showToast(s){let r=document.createElement("div");r.className="fixed left-1/2 bottom-24 z-[100] flex -translate-x-1/2 items-center gap-2 rounded-full bg-[#222] px-4 py-2.5 text-sm font-semibold text-white shadow-lg opacity-0 transition-opacity duration-300",r.setAttribute("role","status"),r.appendChild(document.createTextNode(s)),document.body.appendChild(r),requestAnimationFrame(()=>{r.classList.remove("opacity-0"),r.classList.add("opacity-100")}),setTimeout(()=>{r.classList.add("opacity-0"),setTimeout(()=>r.remove(),300)},3e3)}handOffScrimTo(s){if(!this.hasLoaderTarget||!this.loaderTarget.classList.contains("flex")){this.hideLoader();return}this.handoffTimer=setTimeout(()=>this.hideLoader(),BI);let r=()=>{if(!(!this.element.isConnected||!this.handoffTimer)){if(!s.open||window.getComputedStyle(s).visibility==="visible"){this.hideLoader();return}requestAnimationFrame(r)}};requestAnimationFrame(r)}showLoader(){!this.hasLoaderTarget||this.loaderTimer||(this.loaderTimer=setTimeout(()=>{this.loaderTarget.classList.remove("hidden"),this.loaderTarget.classList.add("flex"),requestAnimationFrame(()=>{this.loaderTarget.classList.remove("opacity-0"),this.loaderTarget.classList.add("opacity-100")})},_I))}hideLoader(){this.hasLoaderTarget&&(clearTimeout(this.loaderTimer),clearTimeout(this.handoffTimer),this.loaderTimer=null,this.handoffTimer=null,this.loaderTarget.classList.remove("flex","opacity-100"),this.loaderTarget.classList.add("hidden","opacity-0"))}};var mw="user-personas:open",pw="user-personas:saved",OI="user-personas-modal-new",Zl=class extends Cs{connect(){super.connect(),this.boundOpen=this.open.bind(this),this.boundCloseAll=this.closeAll.bind(this),document.addEventListener(mw,this.boundOpen),document.addEventListener(pw,this.boundCloseAll)}disconnect(){super.disconnect(),document.removeEventListener(mw,this.boundOpen),document.removeEventListener(pw,this.boundCloseAll)}closeAll(){this.hasFrameTarget&&this.frameTarget.querySelectorAll("dialog[open]").forEach(i=>i.close())}async open(i){let s=i.detail&&i.detail.dialogId;if(!s)return;if(!this.loaded){this.showLoader();try{await this.ensureLoaded()}catch(a){this.hideLoader(),this.reportFailure("fetch",a);return}}let r=document.getElementById(s)||document.getElementById(OI);if(r&&typeof r.showModal=="function"){r.showModal(),this.handOffScrimTo(r);return}this.hideLoader(),!(this.hasFrameTarget&&this.frameTarget.childElementCount===0)&&(this.invalidate(),this.reportFailure("missing-dialog",new Error(`persona dialog ${s} not found`)))}};var fw="character-progression:open",FI="character-progression:dialog-loaded",eh=class extends Cs{connect(){super.connect(),this.boundOpen=this.open.bind(this),document.addEventListener(fw,this.boundOpen)}disconnect(){super.disconnect(),document.removeEventListener(fw,this.boundOpen)}async open(i){let{dialogId:s,tab:r}=i.detail||{};if(s){i.detail.handled=!0,this.loaded&&this.invalidate(),this.showLoader();try{await this.ensureLoaded()}catch(a){if(this.#e(s,{tab:r})){this.reportFailure("stale-fallback",a,{toast:!1});return}this.hideLoader(),this.reportFailure("fetch",a);return}this.#e(s,{tab:r})||(this.hideLoader(),!(this.hasFrameTarget&&this.frameTarget.childElementCount===0)&&(this.invalidate(),this.reportFailure("missing-dialog",new Error(`progression dialog ${s} not found`))))}}#e(i,{tab:s}={}){let r=document.getElementById(i);return!r||typeof r.showModal!="function"?!1:(document.dispatchEvent(new CustomEvent(FI,{detail:{dialogId:i,tab:s}})),r.open||r.showModal(),s&&r.querySelector(`[data-tabs-panels-target="tab"][data-tab-id="${s}"]`)?.click(),this.handOffScrimTo(r),!0)}};var DI=["!border","!border-red-400"],th=class extends u{static targets=["input","box","warning"];check(){let i=this.inputTarget.maxLength;if(i<=0)return;let s=this.inputTarget.value.length>=i;
74DI.forEach(r=>{this.box.classList.toggle(r,s)}),this.hasWarningTarget&&this.warningTarget.classList.toggle("hidden",!s)}get box(){return this.hasBoxTarget?this.boxTarget:this.element}};var ih=class extends u{connect(){if(this.data.get("lastMessage")==="true"&&this.data.get("generationInProgress")!=="true"){let i=$("#messages-list > .user-message").last();this.enableButtons(i)}}enableButtons(i){let s=i.find('button[name="button"]'),r=i.find(".message-delete-link");s.removeClass("disabled opacity-50").prop("disabled",!1),r.removeClass("disabled opacity-50 pointer-events-none")}};var sh=class extends u{static targets=["text","copyButton"];copy(i){navigator.clipboard.writeText(this.textTarget.textContent.trim()).then(()=>{window.alert("Copied to clipboard!")}).catch(s=>{window.alert("Failed to copy to clipboard.")})}};var rh=class extends u{static targets=["item"];nudge(){this.itemTargets.forEach(i=>{i.classList.remove("mpc-cta-pop"),i.offsetWidth,i.classList.add("mpc-cta-pop")})}};var bw=lL(vw());var Tw={v:"5.7.4",fr:60,ip:0,op:192,w:32,h:32,nm:"LoveLock Double Heartbeat v2",ddd:0,assets:[],layers:[{ddd:0,ind:1,ty:4,nm:"lock-whole",sr:1,ks:{o:{a:0,k:100},r:{a:0,k:0},p:{a:0,k:[16,15.75,0]},a:{a:0,k:[16,15.75,0]},s:{a:1,k:[{t:0,s:[100,100,100],i:{x:[.25,.25,.25],y:[1,1,1]},o:{x:[.2,.2,.2],y:[.8,.8,.8]}},{t:28.8,s:[100,100,100],i:{x:[.25,.25,.25],y:[1,1,1]},o:{x:[.2,.2,.2],y:[.8,.8,.8]}},{t:44.16,s:[128,128,100],i:{x:[.25,.25,.25],y:[1,1,1]},o:{x:[.2,.2,.2],y:[.8,.8,.8]}},{t:55.68,s:[94,94,100],i:{x:[.25,.25,.25],y:[1,1,1]},o:{x:[.2,.2,.2],y:[.8,.8,.8]}},{t:69.12,s:[117,117,100],i:{x:[.25,.25,.25],y:[1,1,1]},o:{x:[.2,.2,.2],y:[.8,.8,.8]}},{t:84.48,s:[100,100,100]}]}},ao:0,shapes:[{ty:"gr",nm:"lock-keyhole",it:[{ty:"sh",nm:"keyhole path",ks:{a:0,k:{c:!0,v:[[16,15.2],[17.4209,16.1952],[17.1,17.9],[17.1,21.3],[16,22.4],[14.9,21.3],[14.9,17.9],[14.5791,16.1952]],i:[[-.628,.0239],[-.2371,-.582],[.4325,-.4559],[0,0],[.6075,-0],[0,.6075],[0,0],[-.2371,.582]],o:[[.628,.0239],[.2371,.582],[0,0],[-0,.6075],[-.6075,0],[0,-0],[-.4325,-.4559],[.2371,-.582]]}}},{ty:"fl",nm:"keyhole fill",c:{a:1,k:[{t:0,s:[.94902,.964706,.992157,1],i:{x:[.58],y:[1]},o:{x:[0],y:[0]}},{t:30.72,s:[.94902,.964706,.992157,1],i:{x:[.58],y:[1]},o:{x:[0],y:[0]}},{t:42.24,s:[1,.552941,.627451,1],i:{x:[.58],y:[1]},o:{x:[0],y:[0]}},{t:76.8,s:[1,.552941,.627451,1],i:{x:[.58],y:[1]},o:{x:[0],y:[0]}},{t:99.84,s:[.94902,.964706,.992157,1]}]},o:{a:0,k:100},r:2},{ty:"tr",p:{a:0,k:[0,0]},a:{a:0,k:[0,0]},s:{a:0,k:[100,100]},r:{a:0,k:0},o:{a:0,k:100}}]},{ty:"gr",nm:"lock-body",it:[{ty:"sh",nm:"body path",ks:{a:0,k:{c:!0,v:[[16,29.3],[10.4,26.5],[3.2,16.5],[10.1,9.3],[16,12],[21.9,9.3],[28.8,16.5],[21.6,26.5]],i:[[1.7,0],[2.1,1.5],[0,4.7],[-3.7,0],[-1.7,-1.8],[-2.1,0],[0,-4.2],[3.5,-2.5]],o:[[-1.7,0],[-3.5,-2.5],[0,-4.2],[2.1,0],[1.7,-1.8],[3.7,0],[0,4.7],[-2.1,1.5]]}}},{ty:"fl",nm:"body fill",c:{a:1,k:[{t:0,s:[.94902,.964706,.992157,1],i:{x:[.58],y:[1]},o:{x:[0],y:[0]}},{t:30.72,s:[.94902,.964706,.992157,1],i:{x:[.58],y:[1]},o:{x:[0],y:[0]}},{t:42.24,s:[1,.552941,.627451,1],i:{x:[.58],y:[1]},o:{x:[0],y:[0]}},{t:76.8,s:[1,.552941,.627451,1],i:{x:[.58],y:[1]},o:{x:[0],y:[0]}},{t:99.84,s:[.94902,.964706,.992157,1]}]},o:{a:0,k:100},r:2},{ty:"tr",p:{a:0,k:[0,0]},a:{a:0,k:[0,0]},s:{a:0,k:[100,100]},r:{a:0,k:0},o:{a:0,k:100}}]},{ty:"gr",nm:"lock-shackle",it:[{ty:"sh",nm:"shackle path",ks:{a:0,k:{c:!1,v:[[8.5,13],[8.5,9.6],[16,2.2],[23.5,9.6],[23.5,13]],i:[[0,0],[0,0],[-4.8,0],[0,-4.8],[0,0]],o:[[0,0],[0,-4.8],[4.8,0],[0,0],[0,0]]}}},{ty:"st",nm:"shackle stroke",c:{a:0,k:[.94902,.964706,.992157,1]},o:{a:0,k:100},w:{a:0,k:2.6},lc:2,lj:2},{ty:"tr",p:{a:0,k:[0,0]},a:{a:0,k:[0,0]},s:{a:0,k:[100,100]},r:{a:0,k:0},o:{a:0,k:100}}]}],ip:0,op:192,st:0,bm:0},{ddd:0,ind:2,ty:4,nm:"attention-ring",sr:1,ks:{o:{a:1,k:[{t:0,s:[0],i:{x:[.58],y:[1]},o:{x:[0],y:[0]}},{t:32.64,s:[0],i:{x:[.58],y:[1]},o:{x:[0],y:[0]}},{t:42.24,s:[80],i:{x:[.58],y:[1]},o:{x:[0],y:[0]}},{t:88.32,s:[0]}]},r:{a:0,k:0},p:{a:0,k:[16,16,0]},a:{a:0,k:[16,16,0]},s:{a:1,k:[{t:0,s:[70,70,100],i:{x:[.58,.58,.58],y:[1,1,1]},o:{x:[0,0,0],y:[0,0,0]}},{t:32.64,s:[70,70,100],i:{x:[.58,.58,.58],y:[1,1,1]},o:{x:[0,0,0],y:[0,0,0]}},{t:88.32,s:[155,155,100],i:{x:[.58,.58,.58],y:[1,1,1]},o:{x:[0,0,0],y:[0,0,0]}},{t:192,s:[70,70,100]}]}}
74,ao:0,shapes:[{ty:"gr",nm:"attention-ring",it:[{ty:"el",nm:"ring circle",p:{a:0,k:[16,16]},s:{a:0,k:[25,25]}},{ty:"st",nm:"ring stroke",c:{a:0,k:[.976471,.443137,.529412,1]},o:{a:0,k:100},w:{a:0,k:1.6},lc:1,lj:1},{ty:"tr",p:{a:0,k:[0,0]},a:{a:0,k:[0,0]},s:{a:0,k:[100,100]},r:{a:0,k:0},o:{a:0,k:100}}]}],ip:0,op:192,st:0,bm:0}],markers:[]};var nh=class{constructor(s){this.element=s,s.replaceChildren(),this.animation=bw.default.loadAnimation({container:s,renderer:"svg",loop:!1,autoplay:!1,animationData:Tw}),this.animation.goToAndStop(0,!0)}playOnce(){return new Promise(s=>{if(!this.animation){s();return}this.settlePlayOnce();let r=()=>{this.settlePlayOnce()};this.playOnceResolve=s,this.playOnceFinish=r,this.animation.addEventListener("complete",r),this.animation.goToAndPlay(0,!0)})}destroy(){this.settlePlayOnce(),this.animation&&(this.animation.destroy(),this.animation=null),this.element&&(this.element.innerHTML="")}settlePlayOnce(){let s=this.playOnceFinish,r=this.playOnceResolve;this.playOnceFinish=null,this.playOnceResolve=null,r&&(s&&this.animation&&(this.animation.removeEventListener("complete",s),this.animation.goToAndStop(0,!0)),r())}};var NI="mpc_chat_icon_play_count",UI="mpc_chat_icon_animation_suppressed",HI=1e3,qI=8e3,$I=10,yw="mpc:pack-purchased",oh=class extends u{static targets=["staticIcon","animatedIcon"];static values={userId:String,profileId:String,generation:String};connect(){if(this.connected=!0,this.boundOnPackPurchased=this.onPackPurchased.bind(this),document.addEventListener(yw,this.boundOnPackPurchased),this.suppressed()||this.prefersReducedMotion()){this.showStatic();return}this.player=new nh(this.animatedIconTarget),this.showAnimated(),this.play()}disconnect(){this.connected=!1,document.removeEventListener(yw,this.boundOnPackPurchased),this.clearTimer(),this.player?.destroy(),this.player=null}onPackPurchased(i){let s=i.detail?.profileId;if(!(s&&s!==this.profileIdValue)){try{sessionStorage.setItem(this.suppressKey(),"1")}catch{}this.stop()}}stop(){this.clearTimer(),this.player?.destroy(),this.player=null,this.showStatic()}scheduleNextPlay(i){this.clearTimer(),this.timer=window.setTimeout(()=>this.play(),i)}async play(){if(this.suppressed()||this.prefersReducedMotion()||!this.player){this.showStatic();return}let i=this.playCount()+1;this.setPlayCount(i),this.showAnimated();let s=this.player;if(await s.playOnce(),!this.connected||this.player!==s||this.suppressed()){this.showStatic();return}this.scheduleNextPlay(this.intervalForCount(i))}intervalForCount(i){return i<$I?HI:qI}playCount(){try{let i=sessionStorage.getItem(this.playCountKey()),s=Number.parseInt(i||"0",10);return Number.isFinite(s)&&s>0?s:0}catch{return 0}}setPlayCount(i){try{sessionStorage.setItem(this.playCountKey(),String(i))}catch{}}playCountKey(){return`${NI}:${this.userIdValue}:${this.profileIdValue}`}suppressed(){try{return sessionStorage.getItem(this.suppressKey())==="1"}catch{return!1}}suppressKey(){return`${UI}:${this.userIdValue}:${this.profileIdValue}:${this.generationValue}`}prefersReducedMotion(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}showStatic(){this.hasStaticIconTarget&&this.staticIconTarget.classList.remove("hidden"),this.hasAnimatedIconTarget&&this.animatedIconTarget.classList.add("hidden")}showAnimated(){this.hasStaticIconTarget&&this.staticIconTarget.classList.add("hidden"),this.hasAnimatedIconTarget&&this.animatedIconTarget.classList.remove("hidden")}clearTimer(){this.timer&&(window.clearTimeout(this.timer),this.timer=null)}};var GI="mpc:pack-purchased",lh=class extends u{static values={profileId:String,contentPackId:String};connect(){let i={profileId:this.profileIdValue};this.hasContentPackIdValue&&(i.contentPackId=this.contentPackIdValue),document.dispatchEvent(new CustomEvent(GI,{detail:i})),this.element.remove()}};var Es="mpc:pack-selection-started",hh=class extends u{open(){document.dispatchEvent(new CustomEvent(Es));let i=document.getElementById("content_packs_modal"),s=document.getElementById("content-pack-modal-loader");!i||!s||i.replaceChildren(s.content.cloneNode(!0))}};var ch=class extends u{connect(){this.clearBeforeCache=()=>{this.element.replaceChildren()},document.addEventListener("turbo:before-cache",this.clearBeforeCache)}disconnect(){document.removeEventListener("turbo:before-cache",this.clearBeforeCache)}};var WI=300,dh=class extends u{static targets=["content","skeletonTemplate","tab","searchWra
74p","searchInput","clearButton"];static values={activeClass:String,inactiveClass:String,loadOnConnect:{type:Boolean,default:!1},basePath:String,openPackUrl:String};async connect(){this.hasSearchWrapTarget&&Ot(this,{element:this.searchWrapTarget}),this.popstateHandler=()=>this.#h(),window.addEventListener("popstate",this.popstateHandler),this.cancelOpenPackRequest=()=>this.#s({consume:!0}),document.addEventListener(Es,this.cancelOpenPackRequest),this.loadOnConnectValue&&await this.#t(window.location.href,{preserveOpenPack:!0,pushState:!1})&&await this.#i()}disconnect(){window.removeEventListener("popstate",this.popstateHandler),document.removeEventListener(Es,this.cancelOpenPackRequest),this.#s(),clearTimeout(this.searchTimer)}clickOutside(){this.hasSearchInputTarget&&this.searchInputTarget.value.trim()===""&&this.#n()}async filter(i){i.preventDefault();let s=i.currentTarget;this.#l(),this.#c(s.dataset.section??""),await this.#t(s.href)}toggleSearch(){if(!this.hasSearchInputTarget)return;let i=this.searchInputTarget;i.classList.contains("w-0")?(this.#a(),i.focus()):i.value.trim()===""?this.#n():i.focus()}search(){this.#o(),clearTimeout(this.searchTimer),this.searchTimer=setTimeout(()=>this.#e(),WI)}clearSearch(){this.hasSearchInputTarget&&(this.searchInputTarget.value="",this.#o(),this.#n(),this.#e())}clearQuery(){this.hasSearchInputTarget&&(clearTimeout(this.searchTimer),this.searchInputTarget.value="",this.#o(),this.searchInputTarget.focus(),this.#e())}async#e(){let i=this.hasSearchInputTarget?this.searchInputTarget.value.trim():"",s=new URL(window.location.pathname,window.location.origin);i&&s.searchParams.set("q",i),this.#c(i?null:""),await this.#t(s.toString(),{keepFocus:!0})}async#t(i,{keepFocus:s=!1,preserveOpenPack:r=!1,pushState:a=!0}={}){r||this.#s(),this.#g(),a&&window.history.pushState({turbo:{}},"",i),this.abortController?.abort(),this.abortController=new window.AbortController;try{let n=await Ee(i,{responseKind:"turbo-stream",signal:this.abortController.signal});return!n.ok||n.redirected||!n.isTurboStream?(window.location.assign(i),!1):(s&&this.hasSearchInputTarget&&this.searchInputTarget.focus(),!0)}catch(n){return n.name==="AbortError"||window.location.assign(i),!1}}async#i(){if(!this.openPackUrlValue)return;let i=this.openPackUrlValue,s=new window.AbortController;this.openPackAbortController=s;try{let r=await Ee(i,{responseKind:"turbo-stream",signal:s.signal});return this.openPackUrlValue="",this.#r(),r.ok&&!r.redirected&&r.isTurboStream}catch(r){return r.name==="AbortError",!1}finally{this.openPackAbortController===s&&(this.openPackAbortController=null)}}#s({consume:i=!1}={}){this.openPackAbortController?.abort(),this.openPackAbortController=null,this.openPackUrlValue&&(this.openPackUrlValue="",i&&this.#r())}#r(){let i=new URLSearchParams(window.location.search);i.delete("content_pack_id");let s=i.toString(),r=window.location.pathname+(s?`?${s}`:"");window.history.replaceState({},"",r)}#a(){this.searchInputTarget.classList.remove("w-0"),this.searchInputTarget.classList.add("w-40","md:w-56","pl-1","pr-2"),this.hasSearchWra
74pTarget&&this.searchWrapTarget.classList.add("border-white/30","bg-white/10")}#n(){this.searchInputTarget.classList.add("w-0"),this.searchInputTarget.classList.remove("w-40","md:w-56","pl-1","pr-2"),this.hasClearButtonTarget&&(this.clearButtonTarget.classList.add("hidden"),this.clearButtonTarget.classList.remove("flex")),this.hasSearchWrapTarget&&this.searchWrapTarget.classList.remove("border-white/30","bg-white/10")}#o(){if(!this.hasClearButtonTarget)return;let i=this.hasSearchInputTarget&&this.searchInputTarget.value.trim()!=="";this.clearButtonTarget.classList.toggle("hidden",!i),this.clearButtonTarget.classList.toggle("flex",i)}#l(){clearTimeout(this.searchTimer),this.hasSearchInputTarget&&(this.searchInputTarget.value="",this.#n())}#h(){if(!window.location.pathname.startsWith(this.basePathValue))return;let i=new URLSearchParams(window.location.search),s=i.get("q")||"",r=s?null:i.get("section")??"";this.hasSearchInputTarget&&(this.searchInputTarget.value=s,this.#o(),s?this.#a():this.#n()),this.#c(r),this.#t(window.location.href,{pushState:!1})}#c(i){this.tabTargets.forEach(s=>{let r=i!==null&&(s.dataset.section??"")===i;this.#u(s,this.activeClassValue,r),this.#u(s,this.inactiveClassValue,!r)})}#u(i,s,r){s.split(" ").filter(Boolean).forEach(a=>{i.classList.toggle(a,r)})}#g(){!this.hasContentTarget||!this.hasSkeletonTemplateTarget||this.contentTarget.replaceChildren(this.skeletonTemplateTarget.content.cloneNode(!0))}};var uh=class extends u{static targets=["modal","successModal","submit","submitLabel","loadingLabel","closeButton"];connect(){this.beforeCache=()=>this.reset(),document.addEventListener("turbo:before-cache",this.beforeCache),this.anyModalOpen()&&this.lockScroll(),this.resetSubmission()}disconnect(){document.removeEventListener("turbo:before-cache",this.beforeCache),this.unlockScroll()}open(){this.modalTarget.classList.remove("hidden"),this.lockScroll()}close(){this.submitting||(this.modalTarget.classList.add("hidden"),this.unlockScroll())}backdropClose(i){i.target===this.modalTarget&&this.close()}closeSuccess(){this.successModalTarget.classList.add("hidden"),this.unlockScroll()}escClose(){this.hasSuccessModalTarget&&!this.successModalTarget.classList.contains("hidden")?this.closeSuccess():this.hasModalTarget&&!this.modalTarget.classList.contains("hidden")&&this.close()}guardSubmit(i){this.submitting&&i.preventDefault()}submitStart(){this.submitting=!0,this.submitTarget.disabled=!0,this.submitTarget.setAttribute("aria-busy","true"),this.hasCloseButtonTarget&&(this.closeButtonTarget.disabled=!0),this.submitLabelTarget.classList.add("hidden"),this.loadingLabelTarget.classList.remove("hidden")}submitEnd(){this.resetSubmission()}reset(){this.hasModalTarget&&this.modalTarget.classList.add("hidden"),this.hasSuccessModalTarget&&this.successModalTarget.classList.add("hidden"),this.unlockScroll(),this.resetSubmission()}resetSubmission(){this.submitting=!1,this.hasSubmitTarget&&(this.submitTarget.disabled=!1,this.submitTarget.removeAttribute("aria-busy")),this.hasCloseButtonTarget&&(this.closeButtonTarget.disabled=!1),this.hasSubmitLabelTarget&&this.submitLabelTarget.classList.remove("hidden"),this.hasLoadingLabelTarget&&this.loadingLabelTarget.classList.add("hidden")}anyModalOpen(){let i=this.hasModalTarget&&!this.modalTarget.classList.contains("hidden"),s=this.hasSuccessModalTarget&&!this.successModalTarget.classList.contains("hidden");return i||s}lockScroll(){document.body.classList.add("overflow-hidden")}unlockScroll(){document.body.classList.remove("overflow-hidden")}};var gh=class extends u{static targets=["loader","profilesLayout","filterButton","conversationSkeleton"];connect(){this.originalUrl=null,this.showSkeleton=this.showSkeleton.bind(this),this.hideSkeleton=this.hideSkeleton.bind(this),this.handleError=this.handleError.bind(this),document.addEventListener("turbo:click",this.showSkeleton),document.addEventListener("turbo:render",this.hideSkeleton),document.addEventListener("turbo:fetch-request-error",this.handleError)}disconnect(){document.removeEventListener("turbo:click",this.showSkeleton),document.removeEventListener("turbo:render",this.hideSkeleton),document.removeEventListener("turbo:fetch-request-error",this.handleError)}showSkeleton(i){let s=i.target.closest("[data-shows-skeleton]");if(s&&this.hasConversationSkeletonTarget){let r=i.detail?.url;r&&(this.originalUrl=window.location.href,window.history.pushState({turbo:{}},"",r),s.dataset.turboAction="replace"),this.conversationSkeletonTarget.classList.remove("hidden")}}hideSkeleton(){this.originalUrl=null,this.hasConversationSkeletonTarget&&this.conversationSkeletonTarget.classList.add("hidden")}handleError(){this.originalUrl&&(window.history.replaceState({turbo:{}},"",this.originalUrl),this.originalUrl=null),this.hasConversationSkeletonTarget&&this.conversationSkeletonTarget.classList.add("hidden")}performClick(i){this.toggleLoader(),this.updateButtonUI(i)}toggleLoader(){this.profilesLayoutTarget.classList.add("hidden"),this.loaderTarget.classList.remove("hidden")}
74updateButtonUI(i){this.filterButtonTargets.forEach(s=>{s.classList.remove("bg-[#434343]")}),i.currentTarget.classList.add("bg-[#434343]")}};var mh=class extends u{static values={eventName:{type:String,default:"View Discover Promo"},eventSource:{type:String,default:"Discover Promo"},eventProduct:{type:String,default:"Home"},eventUrl:{type:String,default:"/"}};connect(){this.parentFrame=this.element.closest("turbo-frame"),getComputedStyle(this.parentFrame).display==="block"&&this.trackProfileBannerView()}trackClick(i){i.preventDefault();let s=i?.currentTarget?.href;this.trackProfileBannerView("Click Discover Promo").then(()=>{s&&(window.location.href=s)})}async trackProfileBannerView(r=null){let s=new FormData;var r=r||this.eventNameValue;s.append("event",r),s.append("properties[source]",this.eventSourceValue),s.append("properties[product]",this.eventProductValue),s.append("properties[url]",this.eventUrlValue);try{(await fetch("/track",{method:"POST",headers:{},body:s})).ok}catch(a){console.error("Tracking profile banner view failed:",a)}}};var ph=class extends u{static values={autoOpen:{type:Boolean,default:!1},portalTarget:String,preventBodyScrollOnPwa:{type:Boolean,default:!1}};static targets=["modal","imagePreview","video"];connect(){this.portalModal(),this.portaledModal&&(this.beforeCacheHandler=()=>this.restorePortaledModal(),document.addEventListener("turbo:before-cache",this.beforeCacheHandler)),this.autoOpenValue&&this.openModal()}disconnect(){document.removeEventListener("turbo:before-cache",this.beforeCacheHandler),this.portaledModal?.remove(),this.modalPlaceholder?.remove(),this.bodyScrollLocked&&this.#t()}portalModal(){if(!this.hasPortalTargetValue)return;let i=document.querySelector(this.portalTargetValue),s=this.element.querySelector("[data-controller~='modal-component']");!i||!s||(this.portaledModal=s,this.modalPlaceholder=document.createComment("portaled-modal"),s.before(this.modalPlaceholder),i.appendChild(s))}restorePortaledModal(){this.portaledModal&&(this.portaledModal.classList.add("hidden"),this.modalPlaceholder?.isConnected?this.modalPlaceholder.replaceWith(this.portaledModal):this.portaledModal.remove(),this.portaledModal=null,this.modalPlaceholder=null,this.bodyScrollLocked&&this.#t())}openModal(i){let s=i?.currentTarget?.dataset?.modalId,r=s?document.getElementById(s):this.element;r&&(this.#e(),r.classList.remove("hidden"))}closeModal(){this.stopVideoIfNeeded(),this.#t();let i=this.element.closest("#content_packs_modal");if(i){i.replaceChildren();return}this.element.classList.add("hidden")}stopVideoIfNeeded(){this.hasVideoTarget&&!this.videoTarget.paused&&(this.videoTarget.pause(),this.videoTarget.currentTime=0)}openWithImage(i){let s=i.currentTarget.src;this.imagePreviewTarget.src=s,this.openModal(i)}#e(){this.bodyScrollLocked=!0,this.preventBodyScrollOnPwaValue?(this.scrollY=window.scrollY,document.body.classList.add("overflow-hidden","fixed","w-full"),document.body.style.top=`-${this.scrollY}px`):document.body.classList.add("overflow-hidden")}#t(){this.bodyScrollLocked=!1,this.preventBodyScrollOnPwaValue?(document.body.classList.remove("overflow-hidden","fixed","w-full"),document.body.style.top="",this.scrollY!==void 0&&window.scrollTo(0,this.scrollY)):document.body.classList.remove("overflow-hidden")}};var fh=class extends u{dismiss(){this.element.remove()}};var Sw=["max-md:m-0","max-md:items-end"],ww=["max-md:w-full","max-md:max-h-full","max-md:overflow-y-auto","max-md:rounded-b-none","max-md:rounded-t-[23.567px]","max-md:pb-10","max-md:transition-transform","max-md:duration-[420ms]","max-md:ease-[cubic-bezier(0.32,0.72,0,1)]","hide-scrollbar","md:max-w-[432px]"],LT="max-md:translate-y-full",Cw="md:max-w-[490px]",vh=class extends u{static targets=["cancelModal","prompt","form","confirmButton","reasonRadio","descriptionTextarea","warning","offer","frame","card","close"];static values={flowVersion:String,planType:String,feedbackReason:String,feedbackDescription:String,saveOfferUrl:String};connect(){}openCancel(i){i.preventDefault(),this.flowToken=(this.flowToken||0)+1,this.#r(this.cancelModalTarget)}async openForm(i){i.preventDefault(),this.#a(this.promptTarget);let s=this.flowToken,r=await this.#i();if(s===this.flowToken){if(r){this.offerTarget.innerHTML=r,this.#e(),this.#s(this.offerTarget);return}this.#s(this.formTarget)}}closeCancel(i){i.preventDefault(),this.flowToken=(this.flowToken||0)+1,this.#a(this.cancelModalTarget),this.#r(this.promptTarget),this.#a(this.formTarget),this.#a(this.warningTarget),this.hasOfferTarget&&this.#a(this.offerTarget),this.#t()}updateButtonState(){let i=this.reasonRadioTargets.find(a=>a.checked)?.value,s=this.descriptionTextareaTarget.value.trim();i&&(i!=="other"||s!=="")?(this.confirmButtonTarget.classList.remove("bg-primary/20","text-white/20","cursor-not-allowed"),this.confirmButtonTarget.classList.add("bg-primary","text-white"),this.confirmButtonTarget.disabled=!1):(this.confirmButtonTarget.classList.add("bg-primary/20","text-white/20","cursor-not-allowed"),this.confirmButtonTarget.classList.remove("bg-primary","text-white"),this.confirmButtonTarget.disabled=!0)}showWarning(i){i.preventDefault();let s=this.reasonRadioTargets.find(a=>a.checked)?.value,r=this.descriptionTextareaTarget.value.trim();this.feedbackReasonValue=s||"",this.feedbackDescriptionValue=r||"",this.#a(this.formTarget),this.#s(this.warningTarget)}declineOffer(i){i.preventDefault(),this.saveOfferUrlValue&&Ye(this.saveOfferUrlValue,{responseKind:"json"}).catch(()=>{}),this.#a(this.offerTarget),this.#t(),this.#s(this.formTarget)}#e(){this.hasCardTarget&&(this.frameTarget.classList.add(...Sw),this.cardTarget.classList.remove(Cw),this.cardTarget.classList.add(...ww,LT),this.hasCloseTarget&&this.#a(this.closeTarget),this.cardTarget.offsetHeight,this.cardTarget.classList.remove(LT))}#t(){this.hasCardTarget&&(this.frameTarget.classList.remove(...Sw),this.cardTarget.classList.remove(...ww,LT),this.cardTarget.classList.add(Cw),this.hasCloseTarget&&this.#r(this.closeTarget))}async#i(){if(!this.saveOfferUrlValue||!this.hasOfferTarget)return null;try{let i=await H(this.saveOfferUrlValue,{responseKind:"html"});if(i.statusCode!==200)return null;let s=await i.html;return s?.trim()?s:null}catch{return null}}#s(i){this.#r(i),i.classList.add("opacity-0"),requestAnimationFrame(()=>{i.classList.remove("opacity-0")})}#r(i){i.classList.remove("hidden")}#a(i){i.classList.add("hidden")}submitCancellation(i){let s=i.target.closest("form");if(s.querySelector('input[name="feedback[reason]"]'))return;let r=document.createElement("input");r.type="hidden",r.name="feedback[reason]",r.value=this.feedbackReasonValue||"";let a=document.createElement("input");a.type="hidden",a.name="feedback[description]",a.value=this.feedbackDescriptionValue||"",s.appendChild(r),s.appendChild(a)}};var Th=class extends u{static targets=["messageRegenerateModal"];setupFormForSubmission(i){i.preventDefault();let{messageId:s}=i.currentTarget.dataset,r=this.messageRegenerateModalTarget.querySelector("form");r&&(r.action=`/conversations/regenerate_from_message?message_id=${s}`)}preventDoubleSubmit(i){let s=i.target.querySelector("button");s&&(s.disabled=!0)}};var bh=class extends u{static targets=["day","hour","minute","second","duration","code","premium"];static values={persist:{type:Boolean,default:!0}};connect(){this.loadTime(),this.startTimer()}startTimer(){this.interval=setInterval(()=>{let i=parseInt(this.dayTarget.innerText),s=parseInt(this.hourTarget.innerText),r=parseInt(this.minuteTarget.innerText),a=parseInt(this.secondTarget.innerText);a>0?a--:r>0||s>0||i>0?(a=59,r>0?r--:(s>0||i>0)&&(r=59,s>0?s--:i>0&&(s=23,i--))):(clearInterval(this.interval),this.resetToNoTime()),this.dayTarget.innerText=i.toString().padStart(2,"0"),this.hourTarget.innerText=s.toString().padStart(2,"0"),this.minuteTarget.innerText=r.toString().padStart(2,"0"),this.secondTarget.innerText=a.toString().padStart(2,"0")},1e3)}loadTime(){let r=new Date(this.getExpirationTime())-new Date;r>=0?this.applyTime(r):(this.persistValue&&localStorage.removeItem(this.getStorageKey()),this.resetToNoTime())}applyTime(i){let s=Math.floor(i/1e3),r=Math.floor(s/60),a=Math.floor(r/60),n=Math.floor(a/24);
74s=s%60,r=r%60;let l=this.data.get("premium");a<72&&l==="true"?n=0:a=a%24,this.dayTarget.innerText=n.toString().padStart(2,"0"),this.hourTarget.innerText=a.toString().padStart(2,"0"),this.minuteTarget.innerText=r.toString().padStart(2,"0"),this.secondTarget.innerText=s.toString().padStart(2,"0")}resetToNoTime(){this.dayTarget.innerText="00",this.hourTarget.innerText="00",this.minuteTarget.innerText="00",this.secondTarget.innerText="00"}getStorageKey(){return`${this.data.get("code")}_promo_expiration`}getExpirationTime(){let i=this.data.get("duration");if(!this.persistValue)return i&&new Date(i)>new Date?new Date(i):this.defaultExpirationTime();let s=localStorage.getItem(this.getStorageKey());if(s!==null)return new Date(s);if(i&&new Date(i)>new Date)return localStorage.setItem(this.getStorageKey(),i),new Date(i);let r=this.defaultExpirationTime(),a=r.toISOString();return localStorage.setItem(this.getStorageKey(),a),r}defaultExpirationTime(){let i=new Date;return i.setMinutes(i.getMinutes()+28),i.setSeconds(i.getSeconds()+49),i}};var Ew=5e3,jI=9e4,yh=class extends u{static values={userPremium:Boolean,promotionCode:String,url:String,showAt:Number};connect(){this.isModalSeen()||(this.modalShowTimeout=setTimeout(()=>{this.loadModal()},this.#e()))}#e(){return this.showAtValue?Math.min(Math.max(this.showAtValue-Date.now(),Ew),jI):Ew}loadModal(){this.frameLoadHandler=()=>{this.showModal()&&localStorage.setItem(this.modalSeenKey(),"true")},this.element.addEventListener("turbo:frame-load",this.frameLoadHandler,{once:!0}),this.element.src=this.urlValue}closeModal(){let i=this.element.querySelector("[data-promotion-modal]");i&&(i.classList.add("hidden"),i.classList.remove("flex"))}showModal(){let i=this.element.querySelector("[data-promotion-modal]");return i?(i.classList.remove("hidden"),i.classList.add("flex"),!0):!1}isModalSeen(){return localStorage.getItem(this.modalSeenKey())==="true"}modalSeenKey(){let i=this.userPremiumValue?"premium":"free";return`${this.promotionCodeValue}_${i}_modal_seen`}disconnect(){this.modalShowTimeout&&clearTimeout(this.modalShowTimeout),this.frameLoadHandler&&this.element.removeEventListener("turbo:frame-load",this.frameLoadHandler)}};var Lw="border-black-light",kw="border-error-input-border",Sh=class extends u{static targets=["form","email","emailError","submitBtn"];connect(){this.boundHandleSubmit=this.#e.bind(this),this.formTarget.addEventListener("submit",this.boundHandleSubmit)}disconnect(){this.formTarget.removeEventListener("submit",this.boundHandleSubmit)}validateEmail(){let i=this.emailTarget.validity.valid;this.#t(!i)}clearError(){this.emailTarget.validity.valid&&this.#t(!1)}reset(){this.#t(!1)}#e(i){this.emailTarget.validity.valid||(i.preventDefault(),i.stopPropagation(),this.#t(!0))}#t(i){i?(this.emailTarget.classList.add(kw),this.emailTarget.classList.remove(Lw)):(this.emailTarget.classList.remove(kw),this.emailTarget.classList.add(Lw)),this.hasEmailErrorTarget&&this.emailErrorTarget.classList.toggle("hidden",!i),this.hasSubmitBtnTarget&&this.submitBtnTarget.classList.toggle("opacity-30",i)}};var KI=100,wh=class extends u{static targets=["hiddenField"];static values={enabled:Boolean,src:String};connect(){this.shouldCollect()&&(this.injectSdk(),this.collectData())}disconnect(){this.retryTimeout&&(clearTimeout(this.retryTimeout),this.retryTimeout=null)}shouldCollect(){return this.enabledValue&&this.hasHiddenFieldTarget&&this.hiddenFieldTarget.value===""}injectSdk(){if(!this.srcValue||typeof window.ASP<"u"||document.querySelector(`script[src="${this.srcValue}"]`))return;let i=document.createElement("script");i.src=this.srcValue,document.head.appendChild(i)}async collectData(){if(this.shouldCollect()){if(typeof window.ASP>"u"||typeof window.ASP.get24metricsData!="function"){this.retryTimeout=setTimeout(()=>this.collectData(),KI);return}try{let i=await window.ASP.get24metricsData();this.hiddenFieldTarget.value===""&&(this.hiddenFieldTarget.value=i)}catch{}}}};var Ls=class i{static SAFETY_TIMEOUT_MS=500;#e={startX:0,startY:0,startTime:0,tracking:!1};#t=!1;#i=null;#s=null;#r=null;#a=null;#n=null;#o=null;#l=null;#h=null;constructor({container:s,listener:r,onNext:a,onPrevious:n,canSwipeNext:l,canSwipePrevious:d}){this.#r=s,this.#a=r,this.#n=a,this.#o=n,this.#l=l||null,this.#h=d||null}connect(){this.#a.addEventListener("touchstart",this.#d,{passive:!0}),this.#a.addEventListener("touchmove",this.#m,{passive:!1}),this.#a.addEventListener("touchend",this.#f),this.#a.addEventListener("touchcancel",this.#p)}disconnect(){this.#a.removeEventListener("touchstart",this.#d),this.#a.removeEventListener("touchmove",this.#m),this.#a.removeEventListener("touchend",this.#f),this.#a.removeEventListener("touchcancel",this.#p),this.#u()}animateSwipe(s){if(this.#t)return;let r=s==="left"?this.#n:this.#o,a=s==="left"?this.#l:this.#h;if(a&&!a()){this.#v();return}if(!this.#r){r();return}this.#t=!0;let n=s==="left"?"-100%":"100%",l=s==="left"?"100%":"-100%";this.#r.style.transition="transform 150ms ease-in, opacity 150ms ease-in",this.#r.style.transform=`translateX(${n})`,this.#r.style.opacity="0",this.#i=setTimeout(()=>{this.#i=null,r(),this.#r.style.transition="none",this.#r.style.transform=`translateX(${l})`,this.#r.offsetHeight,this.#r.style.transition="transform 200ms ease-out, opacity 200ms ease-out",this.#r.style.transform="translateX(0)",this.#r.style.opacity="1",this.#r.addEventListener("transitionend",this.#c,{once:!0}),this.#s=setTimeout(()=>{this.#s=null,this.#t&&this.#c()},i.SAFETY_TIMEOUT_MS)},150)}#c=()=>{this.#s&&(clearTimeout(this.#s),this.#s=null),this.#r?.removeEventListener("transitionend",this.#c),this.#g(),this.#t=!1};#u(){this.#i&&(clearTimeout(this.#i),this.#i=null),this.#s&&(clearTimeout(this.#s),this.#s=null),this.#r?.removeEventListener("transitionend",this.#c),this.#r?.removeEventListener("transitionend",this.#b),this.#g(),this.#t=!1}#g(){this.#r&&(this.#r.style.removeProperty("transition"),this.#r.style.removeProperty("transform"),this.#r.style.removeProperty("opacity"))}#d=s=>{if(this.#t)return;let r=s.touches[0];this.#e={startX:r.clientX,startY:r.clientY,startTime:Date.now(),tracking:!1}};#m=s=>{if(this.#t)return;let r=s.touches[0],a=r.clientX-this.#e.startX,n=r.clientY-this.#e.startY;if(!this.#e.tracking&&Math.abs(a)>Math.abs(n)&&Math.abs(a)>10&&(this.#e.tracking=!0),this.#e.tracking&&this.#r){s.cancelable&&s.preventDefault();let l=Math.max(.4,1-Math.abs(a)/400);this.#r.style.transition="none",this.#r.style.transform=`translateX(${a}px)`,this.#r.style.opacity=l}};#f=s=>{if(this.#t)return;let r=s.changedTouches[0],a=r.clientX-this.#e.startX,n=r.clientY-this.#e.startY,l=Date.now()-this.#e.startTime;if(!this.#e.tracking)return;let d=l<300&&Math.abs(a)>50,m=Math.abs(a)>Math.abs(n);d&&m?this.animateSwipe(a<0?"left":"right"):this.#v()};#p=()=>{this.#t||(this.#e.tracking=!1,this.#v())};#b=()=>{this.#g()};#v(){this.#r&&(this.#r.style.transition="transform 200ms ease-out, opacity 200ms ease-out",this.#r.style.transform="translateX(0)",this.#r.style.opacity="1",this.#r.addEventListener("transitionend",this.#b,{once:!0}))}};var Ch=class extends u{static targets=["prevLink","nextLink","modalImage","carouselModal","modalContainer","photoContextMenu","placeholderMediaAction","prevArrow","
74nextArrow","menuToggleSpinner","menuToggleSvg","loadingSpinner","av1VideoSource","mainVideoSource","myVideo","menuWrapper","carouselItemContainerDiv","carouselItem","carouselItemFeedbackContainer","createVideoIcon","downloadButton","feedbackDislikeModal","feedbackImageDislikeModal","videoFeedbackForm","imageFeedbackForm"];static values={currentPhotoName:String,currentMediaId:Number,submitFeedbackUrl:String,submitImageFeedbackUrl:String,profileFirstName:String,updateVideoFeedbackUrl:String};connect(){this.currentMediaId=null,this.currentCarouselContainer=null,this.bindKeyboardEvents(),this.hideArrowForSingleImage(),this.boundAdjustVideoClass=this.adjustVideoClass.bind(this),document.addEventListener("fullscreenchange",this.boundAdjustVideoClass),this.boundCloseCarousel=this.closeCarouselFromEvent.bind(this),document.addEventListener("carousel:close",this.boundCloseCarousel)}disconnect(){this.unbindKeyboardEvents(),this.swipe?.disconnect(),document.removeEventListener("fullscreenchange",this.boundAdjustVideoClass),document.removeEventListener("carousel:close",this.boundCloseCarousel),this.resetConversationContainerZIndex()}closeCarouselFromEvent(){this.resetConversationContainerZIndex(),this.currentMediaId=null}hideArrowForSingleImage(){this.toggleNavigationArrows()}menuToggleSpinnerTargetConnected(){this.placeholderMediaActionTarget.classList.add("hidden"),this.toggleMenuActionsSvg()}setCurrentPhotoNameValue(i){this.currentPhotoNameValue=i.split("-").map(s=>s.charAt(0).toUpperCase()+s.slice(1)).join(" ")}handleCarouselItemFeedback(i,s=!1){if(this.hasCarouselItemFeedbackContainerTarget){let r=s?i.dataset.imageToVideoGenerationId:i.dataset.imagePromptPhotoId;if(!r){this.carouselItemFeedbackContainerTargets.forEach(a=>{a.innerHTML=""});return}this.currentMediaIdValue=r,this.carouselItemFeedbackContainerTargets.forEach(a=>{a.innerHTML="",a.classList.remove(...a.classList)}),this.loadFeedbackButtons(s)}}getProfileSlugValue(i){return i.getAttribute("data-gallery-card-component-profile-slug-value")}getProfileFirstNameValue(i){return i.getAttribute("data-gallery-card-component-profile-first-name-value")}openImage(i){let s=i.currentTarget.getAttribute("data-id"),r=i.currentTarget.querySelector("img"),a=r.dataset.carouselImageUrl,n=r.dataset.carouselVideoUrl,l=r.dataset.carouselAv1VideoUrl,d=this.getProfileSlugValue(i.currentTarget),m=this.getProfileFirstNameValue(i.currentTarget);this.setCarouselItemsFromTarget(i.currentTarget);let v,E=!1;d&&this.setCurrentPhotoNameValue(d),m&&(this.profileFirstNameValue=m),n?(v=n,this.updateModalImage(v,!0,l),E=!0):(v=a||r.src,this.updateModalImage(v,!1)),this.currentMediaId=s,this.hasPhotoContextMenuTarget&&this.resetPhotoContextMenu(),this.toggleCreateVideoIcon(i.currentTarget),this.toggleNavigationArrows(),this.toggleCarousel(),this.handleCarouselItemFeedback(i.currentTarget,E)}toggleCreateVideoIcon(i){this.hasCreateVideoIconTarget&&(i.querySelector('[data-gallery-card-component-target="bottomRightIcon"]')?this.createVideoIconTarget.classList.remove("hidden"):this.createVideoIconTarget.classList.add("hidden"))}toggleNavigationArrows(){let i=this.getCarouselItems(),s=this.getCurrentIndex(),r=i.length>1&&s>0,a=i.length>1&&s<i.length-1;this.prevArrowTargets.forEach(n=>{n.style.display=r?"":"none"}),this.nextArrowTargets.forEach(n=>{n.style.display=a?"":"none"})}showPreviousImage(i){if(i&&this.stopPropagation(i),this.getCurrentIndex()<=0){this.toggleNavigationArrows();return}this.#e()}showNextImage(i){i&&this.stopPropagation(i),!(this.getCurrentIndex()>=this.getCarouselItems().length-1)&&this.#t()}#e(){this.navigateImage(-1),this.currentMediaId=this.getAdjacentPhotoId(-1),this.hasCreateVideoIconTarget&&this.updateCreateVideoIconForCurrentImage(),this.toggleNavigationArrows(),this.resetPhotoContextMenu()}#t(){this.navigateImage(1),this.currentMediaId=this.getAdjacentPhotoId(1),this.hasCreateVideoIconTarget&&this.updateCreateVideoIconForCurrentImage(),this.toggleNavigationArrows(),this.resetPhotoContextMenu()}updateCreateVideoIconForCurrentImage(){if(this.hasCreateVideoIconTarget){let i=this.getCarouselItems().find(s=>s.getAttribute("data-id")===this.currentMediaId);i&&this.toggleCreateVideoIcon(i)}}getAdjacentPhotoId(i){let s=this.getCarouselItems(),a=s.findIndex(v=>v.getAttribute("data-id")===this.currentMediaId)+i;if(a<0)return this.currentMediaId;a>=s.length&&(a=0);let n=this.getProfileSlugValue(s[a]),l=this.getProfileFirstNameValue(s[a]),m=!!s[a].querySelector("img")?.dataset?.carouselVideoUrl;return l&&(this.profileFirstNameValue=l),n&&this.setCurrentPhotoNameValue(n),this.handleCarouselItemFeedback(s[a],m),s[a].getAttribute("data-id")}resetPhotoContextMenu(){this.hasPhotoContextMenuTarget&&(this.placeholderMediaActionTarget.classList.remove("hidden"),this.photoContextMenuTarget.remove()),this.hasLoadingSpinnerTarget&&!this.loadingSpinnerTarget.classList.contains("hidden")&&this.toggleMenuActionsSvg()}getCurrentIndex(){return this.getCarouselItems().findIndex(s=>s.getAttribute("data-id")===this.currentMediaId)}navigateImage(i){let s=this.getCarouselItems(),a=this.getCurrentIndex()+i;if(this.hasPaginationFrame()&&a>=s.length-3&&this.paginationFrameLoaded(),a<0)return;a>=s.length&&(a=0);let l=s[a]?.querySelector("img");l&&l.dataset.carouselVideoUrl?this.updateModalImage(l.dataset.carouselVideoUrl,!0,l.dataset.carouselAv1VideoUrl):l&&this.updateModalImage(l.dataset.carouselImageUrl||l.src,!1)}getPaginationFrame(){return this.element.querySelector('turbo-frame[id="pagination"]')||this.element.querySelector('#gallery turbo-frame[id="pagination"]')}hasPaginationFrame(){return!!this.getPaginationFrame()}async paginationFrameLoaded(){await it.fetchWithTurboStream(this.getPaginationFrame().src).catch(i=>{console.error("Error loading characters for generate image:",i)})}toggleCarousel(){this.currentMediaId&&(this.carouselModalTarget.classList.contains("hidden")?(this.boostConversationContainerZIndex(),this.swipe=new Ls({container:this.hasModalContainerTarget?this.modalContainerTarget:null,listener:this.carouselModalTarget,onNext:()=>this.#t(),onPrevious:()=>this.#e(),canSwipeNext:()=>this.getCurrentIndex()<this.getCarouselItems().length-1,canSwipePrevious:()=>this.getCurrentIndex()>0}),this.swipe.connect()):(this.resetConversationContainerZIndex(),this.swipe?.disconnect(),this.swipe=null),this.carouselModalTarget.classList.toggle("hidden"),this.hasMyVideoTarget&&this.myVideoTarget.pause())}boostConversationContainerZIndex(){let i=document.getElementById("conversation-container");i&&(this.originalContainerZIndex=i.style.zIndex,i.style.zIndex="1000")}resetConversationContainerZIndex(){let i=document.getElementById("conversation-container");i&&(i.style.zIndex=this.originalContainerZIndex||"",this.originalContainerZIndex=void 0)}updateModalImage(i,s,r=null){this.hasModalImageTarget&&(this.hasPhotoContextMenuTarget&&this.resetPhotoContextMenu(),s?(this.hasAv1VideoSourceTarget&&(r?this.av1VideoSourceTarget.setAttribute("src",r):this.av1VideoSourceTarget.removeAttribute("src")),this.mainVideoSourceTarget.src=i,this.myVideoTarget.load(),this.hideImage()):(this.modalImageTarget.src=i,this.hasMyVideoTarget&&this.hideVideo()))}
74fitModalImage(){let i=this.modalImageTarget,s=i.naturalWidth>i.naturalHeight;i.classList.toggle("h-[85vh]",!s),i.classList.toggle("aspect-[9/16]",!s),i.classList.toggle("object-cover",!s),i.classList.toggle("object-contain",s)}hideImage(){this.myVideoTarget.classList.remove("hidden"),this.modalImageTarget.classList.add("hidden"),this.hasDownloadButtonTarget&&this.downloadButtonTarget.classList.add("hidden")}hideVideo(){this.myVideoTarget.classList.add("hidden"),this.myVideoTarget.pause(),this.modalImageTarget.classList.remove("hidden"),this.hasDownloadButtonTarget&&this.downloadButtonTarget.classList.remove("hidden")}openPhotoContextMenu(){this.toggleMenuActionsSvg();let i=this.placeholderMediaActionTarget.dataset.menuActionsUrl,s=this.myVideoTarget&&!this.myVideoTarget.classList.contains("hidden"),r;s?r=`${i}?video_id=${this.currentMediaId}`:r=`${i}?photo_id=${this.currentMediaId}`,it.fetchWithTurboStream(r).catch(a=>{console.error("Error loading photo context menu:",a)})}toggleMenuActionsSvg(){this.loadingSpinnerTarget.classList.toggle("hidden"),this.menuToggleSvgTarget.classList.toggle("hidden")}handleKeydown(i){!this.hasCarouselModalTarget||this.carouselModalTarget.classList.contains("hidden")||(i.key==="ArrowLeft"?this.getCurrentIndex()>0&&this.showPreviousImage():i.key==="ArrowRight"?this.showNextImage():i.key==="Escape"&&this.toggleCarousel())}closeOnOutsideClick(i){let s=i.target.closest(".modal-content");(!s||!s.contains(i.target))&&this.toggleCarousel()}bindKeyboardEvents(){this.keydownHandler=this.handleKeydown.bind(this),document.addEventListener("keydown",this.keydownHandler)}unbindKeyboardEvents(){document.removeEventListener("keydown",this.keydownHandler)}stopPropagation(i){i.stopPropagation()}adjustVideoClass(){document.fullscreenElement===this.myVideoTarget?this.myVideoTarget.classList.remove("object-cover"):this.myVideoTarget.classList.add("object-cover")}downloadCarouselImage(){let i=this.modalImageTarget.src;i.startsWith("http://")&&(i=i.replace("http://","https://")),fetch(i).then(s=>s.blob()).then(s=>{let r=window.URL.createObjectURL(s),a=document.createElement("a");typeof a.download>"u"?window.open(r,"_blank").focus():(a.style.display="none",a.href=r,a.download=this.currentPhotoNameValue||"download",document.body.appendChild(a),a.click(),document.body.removeChild(a)),window.URL.revokeObjectURL(r)}).catch(()=>alert("Something went wrong. Please try again!"))}setFeedbackTargetIdForTurboStream(i=!1){let s=this.carouselItemFeedbackContainerTarget,r=i?"video-feedback-container-"+this.currentMediaIdValue:"image-prompt-photo-feedback-container-"+this.currentMediaIdValue;s.id=r}async loadFeedbackButtons(i=!1){if(this.setFeedbackTargetIdForTurboStream(i),i){let s=new URL(`/image_to_video_generations/${this.currentMediaIdValue}/feedbacks/load_feedback_buttons`,window.location.origin);await it.fetchWithTurboStream(s).catch(r=>{console.error("Error loading video feedbacks:",r)})}else{let s=new URL(this.submitFeedbackUrlValue,window.location.origin);s.searchParams.set("image_prompt_photo_id",this.currentMediaIdValue),it.fetchWithTurboStream(s).catch(r=>{console.error("Error loading feedback buttons:",r)})}}createVideo(){let i=this.carouselItemContainerDivTargets.find(n=>n.dataset.imagePromptPhotoId===this.currentMediaIdValue.toString()),s=i?.dataset?.is10svideoenabled==="true",r=i?.dataset?.isflashboobsenabled==="true",a=new CustomEvent("gallery-card-right-icon-click",{bubbles:!0,detail:{profileFirstName:this.profileFirstNameValue,imagePromptPhotoId:this.currentMediaIdValue,is10sVideoEnabled:s,isFlashBoobsEnabled:r}});this.element.dispatchEvent(a),this.toggleCarousel()}openVideoFeedbackModal(i){this.hasFeedbackDislikeModalTarget&&(this.currentVideoFeedbackId=i.currentTarget.dataset.feedbackId,this.currentVideoGenerationId=i.currentTarget.dataset.videoGenerationId,this.currentVideoTellUsMoreButton=i.currentTarget,this.feedbackDislikeModalTarget.classList.remove("hidden"))}async submitVideoDislike(i){i.preventDefault();let s=this.videoFeedbackFormTarget,r=this.#i(s),a=this.updateVideoFeedbackUrlValue.replace(":video_id",this.currentVideoGenerationId).replace(":id",this.currentVideoFeedbackId),n=await ve(a,{body:{polymorphic_feedback:{description:r}}});this.#s(s),n.ok&&(this.closeFeedbackModal(),this.#r(this.currentVideoTellUsMoreButton))}closeFeedbackModal(){this.feedbackDislikeModalTarget.classList.add("hidden"),this.hasVideoFeedbackFormTarget&&this.videoFeedbackFormTarget.reset()}openImageFeedbackModal(i){this.hasFeedbackImageDislikeModalTarget&&(this.currentImageFeedbackId=i.currentTarget.dataset.feedbackId,this.currentImageTellUsMoreButton=i.currentTarget,this.feedbackImageDislikeModalTarget.classList.remove("hidden"))}async submitImageFeedback(i){i.preventDefault();let s=this.imageFeedbackFormTarget,r=this.#i(s),a=this.submitImageFeedbackUrlValue.replace(":id",this.currentImageFeedbackId),n=await ve(a,{body:{image_prompt_photo_feedback:{description:r}}});this.#s(s),n.ok&&(this.closeImageFeedbackModal(),this.#r(this.currentImageTellUsMoreButton))}closeImageFeedbackModal(){this.hasFeedbackImageDislikeModalTarget&&(this.feedbackImageDislikeModalTarget.classList.add("hidden"),this.hasImageFeedbackFormTarget&&this.imageFeedbackFormTarget.reset())}setCarouselItemsFromTarget(i){let s=i.closest("[data-chat-gallery--filter-bar-target='content']")||i.closest("[data-filter]");this.currentCarouselContainer=s||this.element}getCarouselItems(){let i=this.currentCarouselContainer||this.element;return Array.from(i.querySelectorAll("[data-carousel-target='carouselItemContainerDiv']"))}#i(i){let s=new FormData(i),r=s.getAll("reasons[]"),a=s.get("description")||"";
74return[...r,a].filter(Boolean).join(", ")}#s(i){let s=i.querySelector("[data-controller='loading-button-state']");if(!s)return;let r=this.application.getControllerForElementAndIdentifier(s,"loading-button-state");r&&r.resetButtonState()}#r(i){i&&i.remove()}};var Eh=class extends u{static targets=["container","default","track","spacer"];static values={showAgain:Boolean,showAgainAfter:Number,delay:Number};connect(){this.setupInitialVisibility(),this.hasTrackTarget&&(this.trackMixpanel=this.trackTarget.dataset.bannerComponentMixpanelValue,this.mixpanelData=JSON.parse(this.trackTarget.dataset.bannerComponentMixpanelDataValue||"{}"))}setupInitialVisibility(){let i=localStorage.getItem(this.storageKey);this.shouldShowBanner(i)?setTimeout(()=>{this.showBanner()},(this.delayValue||0)*1e3):this.hideBanner()}shouldShowBanner(i){return this.containerTarget.children.length===0?(this.hideBanner(),!1):this.showAgainValue&&this.showAgainAfterValue?i?Date.now()-parseInt(i,10)>=this.showAgainAfterValue*1e3:!0:!i}close(i){i.preventDefault(),i.stopPropagation(),this.hideBanner(),localStorage.setItem(this.storageKey,Date.now().toString())}showBanner(){this.containerTarget.classList.remove("hidden"),this.defaultTarget.classList.add("hidden"),this.hasSpacerTarget&&this.spacerTarget.classList.remove("hidden"),this.trackMixpanel&&this._trackMixpanelEvent()}hideBanner(){this.containerTarget.classList.add("hidden"),this.defaultTarget.classList.remove("hidden"),this.hasSpacerTarget&&this.spacerTarget.classList.add("hidden")}get storageKey(){return`${this.element.id}_last_closed`}_trackMixpanelEvent(i=3){if(typeof mixpanel>"u"||!mixpanel.track){i>0?setTimeout(()=>this._trackMixpanelEvent(i-1),500):console.error("Mixpanel is not initialized or loaded after multiple attempts");return}let{eventName:s,Source:r,Paywall:a,Product:n,Url:l}=this.mixpanelData;s&&mixpanel.track(s,{Source:r,Paywall:a,Product:n,Url:l})}};var Lh=class extends u{static targets=["modal","modalWindow"];static values={clickOutside:Boolean,escapeCloses:{type:Boolean,default:!0},afterClose:Object,delay:Number,trackMixpanel:Boolean,mixpanelData:Object,initialState:String,persistOnCache:Boolean};initialize(){this.handleKeydown=this.handleKeydown.bind(this),this.handleBeforeCache=this.handleBeforeCache.bind(this)}connect(){this.clickOutsideValue&&Ot(this,{element:this.modalWindowTarget}),document.addEventListener("keydown",this.handleKeydown),document.addEventListener("turbo:before-cache",this.handleBeforeCache),this.setupInitialVisibility()}disconnect(){document.removeEventListener("keydown",this.handleKeydown),document.removeEventListener("turbo:before-cache",this.handleBeforeCache)}handleBeforeCache(){this.persistOnCacheValue||(this.modalTarget.classList.add("hidden"),document.body.classList.remove("overflow-hidden"),this.initialStateValue="closed")}setupInitialVisibility(){let{show_again_after_seconds:i,expires_at:s}=this.afterCloseValue,r=localStorage.getItem(this.storageKey);(()=>{if(this.initialStateValue==="open")return!0;if(this.initialStateValue==="closed")return!1;let n=new Date;if(r){let{lastClosed:l,expiresAt:d}=JSON.parse(r);return s&&n>=new Date(d)?(localStorage.removeItem(this.storageKey),!0):i?n-new Date(l)>=i*1e3:!1}return!0})()&&setTimeout(()=>{this.showModal()},this.delayValue*1e3)}handleKeydown(i){i.key==="Escape"&&this.escapeClosesValue&&this.closeModal()}closeModal(){this.modalTarget.classList.add("hidden"),document.body.classList.remove("overflow-hidden"),this.initialStateValue="closed";let{expires_at:i}=this.afterCloseValue,s=new Date,r=i?new Date(i).toISOString():null,a={lastClosed:s.toISOString(),expiresAt:r};localStorage.setItem(this.storageKey,JSON.stringify(a)),this.dispatch("close",{bubbles:!0})}clickOutside(i){i.preventDefault(),this.closeModal()}showModal(){this.modalTarget.classList.remove("hidden"),document.body.classList.add("overflow-hidden"),this.trackMixpanelValue&&this._trackMixpanelEvent()}get storageKey(){return`${this.element.id}_last_closed`}_trackMixpanelEvent(){if(typeof window>"u"||!window.mixpanel||typeof window.mixpanel.track!="function")return;let{eventName:i,...s}=this.mixpanelDataValue;i&&window.mixpanel.track(i,s)}};var kh=class extends u{static targets=["button"];static values={trackMixpanel:Boolean,mixpanelData:Object};handleClick(i){this.trackMixpanelValue&&this._trackMixpanelEvent()}_trackMixpanelEvent(){if(typeof mixpanel>"u"||!mixpanel.track){console.error("Mixpanel is not initialized or loaded");return}let{eventName:i,Source:s,Paywall:r,Product:a,Url:n}=this.mixpanelDataValue;i&&mixpanel.track(i,{Source:s,Paywall:r,Product:a,Url:n})}};var xh=class extends u{static targets=["days","hours","minutes","seconds","milliseconds"];static values={startingSeconds:Number,autoRestart:Boolean};connect(){this.endTime=new Date(Date.now()+this.startingSecondsValue*1e3),this.startCountdown()}startCountdown(){this.updateCounter(),this.timer=setInterval(()=>{this.updateCounter(),this.remainingTime<=0&&(clearInterval(this.timer),this.autoRestartValue&&this.restart())},10)}updateCounter(){this.remainingTime=this.endTime-Date.now(),this.remainingTime<=0&&(this.remainingTime=0);let i=this.remainingTime/1e3,s=Math.floor(i/(1440*60)),r=Math.floor(i%(1440*60)/3600),a=Math.floor(i%3600/60),n=Math.floor(i%60),l=Math.floor(i%1*100);i>1440*60?(this.hasDaysTarget&&(this.daysTarget.textContent=this.padZero(s)),this.hasHoursTarget&&(this.hoursTarget.textContent=this.padZero(r)),this.hasMinutesTarget&&(this.minutesTarget.textContent=this.padZero(a))):i>3600?(this.hasHoursTarget&&(this.hoursTarget.textContent=this.padZero(r)),this.hasMinutesTarget&&(this.minutesTarget.textContent=this.padZero(a)),this.hasSecondsTarget&&(this.secondsTarget.textContent=this.padZero(n))
74):(this.hasMinutesTarget&&(this.minutesTarget.textContent=this.padZero(a)),this.hasSecondsTarget&&(this.secondsTarget.textContent=this.padZero(n)),this.hasMillisecondsTarget&&(this.millisecondsTarget.textContent=this.padZero(l)))}restart(){this.endTime=new Date(Date.now()+this.startingSecondsValue*1e3),this.startCountdown()}padZero(i){return i.toString().padStart(2,"0")}disconnect(){this.timer&&clearInterval(this.timer)}};var Ih=class extends u{static targets=["days","hours","minutes","seconds","milliseconds"];static values={expiresAt:String,code:String,isPremiumUser:Boolean,persistExpiration:{type:Boolean,default:!0},days:Number,hours:Number,minutes:Number,seconds:Number,milliseconds:Number};connect(){this.loadTime(),this.startTimer()}disconnect(){clearInterval(this.interval),this.interval=null}loadTime(){let r=new Date(this.getExpirationTime())-new Date;if(r>=0)this.applyTime(r);else{if(this.persistExpirationValue){let a=this.codeValue;localStorage.removeItem(`${a}_promo_expiration`)}this.resetToNoTime()}}getExpirationTime(){let i=this.expiresAtValue;if(!this.persistExpirationValue)return i&&new Date(i)>new Date?new Date(i):this.defaultExpirationTime();let s=this.codeValue,r=localStorage.getItem(`${s}_promo_expiration`);if(r)return new Date(r);if(i&&new Date(i)>new Date)return localStorage.setItem(`${s}_promo_expiration`,i),new Date(i);{let a=this.defaultExpirationTime();return localStorage.setItem(`${s}_promo_expiration`,a),a}}applyTime(i){let s=i,r=Math.floor(s/1e3),a=Math.floor(r/60),n=Math.floor(a/60),l=Math.floor(n/24);s=s%1e3,r=r%60,a=a%60,n<72&&this.isPremiumUserValue===!0?l=0:n=n%24,this.updateValues(l,n,a,r,s),this.updateTargets(l,n,a,r,Math.trunc(s/10))}startTimer(){this.interval=setInterval(()=>{let i=this.daysValue,s=this.hoursValue,r=this.minutesValue,a=this.secondsValue,n=this.millisecondsValue;n>0?n=n-10:a>0||r>0||s>0||i>0?(n=990,a>0?a--:(r>0||s>0||i>0)&&(a=59,r>0?r--:(s>0||i>0)&&(r=59,s>0?s--:i>0&&(s=23,i--)))):(this.loadTime(),i=this.daysValue,s=this.hoursValue,r=this.minutesValue,a=this.secondsValue,n=this.millisecondsValue),this.updateValues(i,s,r,a,n),this.updateTargets(i,s,r,a,Math.trunc(n/10))},10)}updateTargets(i,s,r,a,n){this.hasDaysTarget&&(this.daysTarget.innerText=i.toString().padStart(2,"0")),this.hasHoursTarget&&(this.hoursTarget.innerText=s.toString().padStart(2,"0")),this.hasMinutesTarget&&(this.minutesTarget.innerText=r.toString().padStart(2,"0")),this.hasSecondsTarget&&(this.secondsTarget.innerText=a.toString().padStart(2,"0")),this.hasMillisecondsTarget&&(this.millisecondsTarget.innerText=n.toString().padStart(2,"0"))}updateValues(i,s,r,a,n){this.daysValue=i,this.hoursValue=s,this.minutesValue=r,this.secondsValue=a,this.millisecondsValue=n}resetToNoTime(){this.updateValues(0,0,0,0,0),this.updateTargets("00","00","00","00","00")}defaultExpirationTime(){let i=new Date;return i.setMinutes(i.getMinutes()+28),i.setSeconds(i.getSeconds()+49),i}};var Ah=class extends u{connect(){this.trackModalOpen=this.trackModalOpen.bind(this),this.track=this.track.bind(this);let i=this.element.dataset.mixpanelEvent,s=this.element.dataset.mixpanelTrackOnConnect==="true",r=["View Page","page_viewed","Creator Lobby Viewed","Creator Page Viewed"],a=["Viewed Paywall","View Sign Up Modal","Candy Cams Page Viewed"];s&&r.includes(i)?this._trackMixpanelEventWithWait():s&&a.includes(i)&&this._trackMixpanelEvent(),this.element.dataset.mixpanelEvent==="Viewed Paywall"&&this.element.addEventListener("show-premium-subscription-modal",this.trackModalOpen),this.element.dataset.mixpanelEvent==="View Sign Up Modal"&&this.element.addEventListener("show-registration-modal",this.trackModalOpen),this.element.dataset.action&&this.element.dataset.action.includes("click")&&this.element.addEventListener("click",this.track)}disconnect(){this.element.dataset.mixpanelEvent==="Viewed Paywall"&&this.element.removeEventListener("show-premium-subscription-modal",this.trackModalOpen),this.element.dataset.mixpanelEvent==="View Sign Up Modal"&&this.element.removeEventListener("show-registration-modal",this.trackModalOpen),this.element.dataset.action&&this.element.dataset.action.includes("click")&&this.element.removeEventListener("click",this.track)}track(i){this._trackMixpanelEvent()}trackModalOpen(i){this._trackMixpanelEvent()}_trackMixpanelEventWithWait(){Gt(()=>{this._trackMixpanelEvent()})}_trackMixpanelEvent(){if(typeof mixpanel>"u"||!mixpanel.track){console.error("Mixpanel is not initialized or loaded");return}let i=this.element.dataset.mixpanelEvent,s=this.element.dataset.mixpanelSource,r=this.element.dataset.mixpanelVersion,a=this.element.dataset.mixpanelPaywall,n=this.element.dataset.mixpanelProduct,l=this.element.dataset.mixpanelUrl,d=this.element.dataset.mixpanelRedirectUrl,m=this.element.dataset.mixpanelProfileType,v=this.element.dataset.mixpanelType,E=this.element.dataset.mixpanelExperiment,D=this.element.dataset.mixpanelExperiments,R=this.element.dataset.mixpanelLocation,W=this.element.dataset.mixpanelProvider;if(i){let Q={Source:s,Version:r,Paywall:a,Product:n,Location:R,Url:l,ProfileType:m,"Redirect URL":d,...v?{Type:v}:{}
74,...E?{Experiment:E}:{},...D?{experiments:D}:{},...W?{Provider:W}:{}},X=this.element.dataset.mixpanelExtraAttributes;if(X)try{let ce=JSON.parse(X);Q={...Q,...ce}}catch(ce){console.error("Failed to parse mixpanelExtraAttributes:",ce)}let ie=$t(Q);mixpanel.track(i,ie),i==="Viewed Paywall"&&this._trackPaywallViewForExpertSender()}}async _trackPaywallViewForExpertSender(){try{let i=document.querySelector('meta[name="csrf-token"]')?.content,s=this.element.dataset.mixpanelCharacterId,r=this.element.dataset.mixpanelPaywall,a=new FormData;s&&a.append("character_id",s),r&&a.append("paywall_name",r);let n=await fetch("/paywall_events/track_viewed_paywall",{method:"POST",headers:{Accept:"application/json","X-CSRF-Token":i,"X-Requested-With":"XMLHttpRequest"},body:a});n.ok||console.log(`Paywall tracking failed: HTTP ${n.status} ${n.statusText}`)}catch(i){console.log("Paywall tracking failed:",i)}}};var Ph=class extends u{static values={incrementUrl:String};connect(){sessionStorage.getItem("mixpanel_recording_started")||Gt(()=>this.startSessionRecording())}
74startSessionRecording(){mixpanel.start_session_recording({record_idle_timeout_ms:72e5}),sessionStorage.setItem("mixpanel_recording_started","true"),this.incrementSessionCount()}async incrementSessionCount(){await H(this.incrementUrlValue)}};var Vh=class extends u{static values={userEmail:String,userId:String,utaVisitorId:String,currency:String,enableTracking:Boolean,price:Number,interval:String};static outlets=["subscription"];connect(){this.boundTrackPaymentInitiation=this.trackPaymentInitiation.bind(this);let i=this.element.closest("form")||this.element;i.addEventListener("submit",this.boundTrackPaymentInitiation),this.form=i}disconnect(){this.form&&this.boundTrackPaymentInitiation&&this.form.removeEventListener("submit",this.boundTrackPaymentInitiation)}trackPaymentInitiation(i){if(this.enableTrackingValue)try{let s=this.getCurrentPlanInfo(),r={event:"initiate_subscription_purchase",email:this.userEmailValue,external_id:this.utaVisitorIdValue,user_id:this.userIdValue,value:s.price,currency:this.currencyValue,subscription_interval:s.interval,timestamp_micros:(Date.now()*1e3).toString()};window.dataLayer=window.dataLayer||[],window.dataLayer.push(r)}catch(s){window.console&&window.console.error&&window.console.error("Payment GTM tracking failed:",s)}}getCurrentPlanInfo(){if(this.hasPriceValue&&this.priceValue>0)return{interval:this.intervalValue,price:this.priceValue};if(this.hasSubscriptionOutlet){let i=this.subscriptionOutlet.getCurrentPlan(),s=this.subscriptionOutlet.getCurrentPlanPrice();return{interval:i,price:s}}return{}}};var Mh=class extends u{static targets=["unlockButton","confirmButton","containerDiv","closedHeartLarge","halfLockIcon"];connect(){Ot(this,{element:this.containerDivTarget})}get borderDiv(){return this.element.closest("[data-border-target]")||this.element.querySelector("[data-border-target]")}unlock(){this.resetOtherContentPacks(),this.unlockButtonTarget.classList.add("hidden"),this.confirmButtonTarget.classList.remove("hidden");let i=this.borderDiv;i&&(i.style.borderRadius=i.dataset.borderRadius||"18px",i.style.boxShadow="0 0 0 4px #FFAC0B, 0px 4px 24px 0px rgba(255, 189, 11, 0.60)"),this.hasClosedHeartLargeTarget&&this.closedHeartLargeTarget.classList.add("hidden"),this.hasHalfLockIconTarget&&this.halfLockIconTarget.classList.remove("hidden")}clickOutside(){!this.hasUnlockButtonTarget||!this.hasConfirmButtonTarget||this.unlockButtonTarget.classList.contains("hidden")&&this.resetContentPack()}resetContentPack(){if(!this.hasUnlockButtonTarget||!this.hasConfirmButtonTarget)return;this.unlockButtonTarget.classList.remove("hidden"),this.confirmButtonTarget.classList.add("hidden");let i=this.borderDiv;i&&(i.style.boxShadow="none",i.style.borderRadius=""),this.hasClosedHeartLargeTarget&&this.closedHeartLargeTarget.classList.remove("hidden"),this.hasHalfLockIconTarget&&this.halfLockIconTarget.classList.add("hidden")}resetOtherContentPacks(){document.querySelectorAll("[data-controller='confirm-content-pack']").forEach(s=>{let r=this.fetchController(s);r!==this&&r.resetContentPack()})}fetchController(i){return this.application.getControllerForElementAndIdentifier(i,"confirm-content-pack")}};var _h=class extends u{static targets=["main","thumbnail","videoSelection","scrollContainer","mainVideo","mainImage","mainVideoSource","mainVideoSourceAv1","modalContainer","placeholder"];static values={contents:Array,refreshUrl:String};MODAL_TO_ELEMENTS_SCALING_RATIO=.6666666667;MAX_RETRY_ATTEMPTS=2;connect(){this.retryCount=0,this.sourceRetries=new Map,this.#i(),!(!this.hasMainImageTarget&&!this.hasMainVideoTarget)&&(this.currentIndex=0,this.updateMainContent(),this.updateSelectedThumbnail())}disconnect(){this.boundDelegatedError&&this.element.removeEventListener("error",this.boundDelegatedError,!0),this.boundVideoErrorHandler&&this.boundVideoElement&&this.boundVideoElement.removeEventListener("error",this.boundVideoErrorHandler,!0)}get videoElementController(){let i=document.getElementById("myVideo");return this.application.getControllerForElementAndIdentifier(i,"video-element")}placeholderTargetConnected(){let{width:i,height:s}=this.calculateVideoDimensions();this.placeholderTarget.style.width=`${i}px`,this.placeholderTarget.style.height=`${s}px`}removePlaceholder(){this.placeholderTarget.classList.add("hidden")}showNextContent(){this.currentIndex=(this.currentIndex+1)%this.contentsValue.length,this.updateMainContent(),this.updateSelectedThumbnail()}showPreviousContent(){this.currentIndex=(this.currentIndex-1+this.contentsValue.length)%this.contentsValue.length,this.updateMainContent(),this.updateSelectedThumbnail()}selectContent(i){this.currentIndex=parseInt(i.currentTarget.dataset.index),this.updateMainContent(),this.updateSelectedThumbnail()}updateMainContent(){let i=this.contentsValue[this.currentIndex];!i||!i.type||(i.type==="image"?this.updateImageContent(i):i.type==="video"&&this.updateVideoContent(i))}updateImageContent(i){this.hasMainVideoSourceAv1Target&&this.mainVideoSourceAv1Target.removeAttribute("src"),this.mainVideoSourceTarget.src="",this.mainImageTarget.src=i.url,this.toggleVisibility("image"),this.pauseVideo(),this.removePlaceholder()}updateVideoContent(i){let s=this.mainVideoSourceTarget.src;if(i.url===s&&this.retryCount===0)return;this.retryCount=0,this.hasMainVideoSourceAv1Target&&(i.av1_url?this.mainVideoSourceAv1Target.src=i.av1_url:this.mainVideoSourceAv1Target.removeAttribute("src")),this.mainVideoSourceTarget.src=i.url,this.toggleVisibility("video"),this.removePlaceholder();let{width:r}=this.calculateVideoDimensions(),a=this.mainVideoTarget.querySelector("video");a.style.maxWidth=`${r}px`,this.#t(a),a.load()}async#e(i){if(i.target.tagName!=="SOURCE")return;if(this.hasMainVideoSourceAv1Target&&i.target===this.mainVideoSourceAv1Target){if(!this.mainVideoSourceAv1Target.hasAttribute("src"))return;this.mainVideoSourceAv1Target.removeAttribute("src"),this.mainVideoTarget.querySelector("video").load();return}let s=this.currentIndex,r=this.contentsValue[s];if(!r||r.type!=="video"||this.retryCount>=this.MAX_RETRY_ATTEMPTS||!this.refreshUrlValue)return;this.retryCount++;let a=await this.#r(r.cloudflare_id);if(!a||this.currentIndex!==s)return;this.mainVideoSourceTarget.src=a;let n=[...this.contentsValue];n[s]={...r,url:a},this.contentsValue=n,this.mainVideoTarget.querySelector("video").load()}#t(i){this.boundVideoErrorHandler&&this.boundVideoElement&&this.boundVideoElement.removeEventListener("error",this.boundVideoErrorHandler,!0),this.boundVideoElement=i,this.boundVideoErrorHandler=this.#e.bind(this),i.addEventListener("error",this.boundVideoErrorHandler,!0)}#i(){this.boundDelegatedError=this.#s.bind(this),this.element.addEventListener("error",this.boundDelegatedError,!0)}async#s(i){let s=i.target;if(s.tagName!=="SOURCE"||this.hasMainVideoTarget&&this.hasMainVideoSourceTarget&&s===this.mainVideoSourceTarget)return;let r=s.dataset.cloudflareId;if(!r||!this.refreshUrlValue)return;let a=this.sourceRetries.get(r)||0;if(a>=this.MAX_RETRY_ATTEMPTS)return;this.sourceRetries.set(r,a+1);let n=await this.#r(r);
74n&&(s.src=n,s.closest("video")?.load())}async#r(i){try{let s=await H(this.refreshUrlValue,{body:JSON.stringify({cloudflare_id:i}),contentType:"application/json",responseKind:"json"});if(s.ok)return(await s.json).url}catch(s){console.warn("Failed to refresh media URL:",s)}return null}toggleVisibility(i){this.mainImageTarget.classList.toggle("hidden",i!=="image"),this.mainVideoTarget.classList.toggle("hidden",i!=="video")}pauseVideo(){this.videoElementController&&this.videoElementController.pause()}playVideo(){this.videoElementController&&this.videoElementController.play()}updateSelectedThumbnail(){this.thumbnailTargets.forEach((i,s)=>{s===this.currentIndex?(i.classList.remove("border-transparent"),i.classList.add("border-primary"),this.ensureThumbnailVisible(i),this.removePlayIconFromVideo()):(i.classList.add("border-transparent"),i.classList.remove("border-primary"))})}ensureThumbnailVisible(i){i.scrollIntoView({behavior:"smooth",block:"nearest"})}removePlayIconFromVideo(){let i=this.thumbnailTargets[this.currentIndex];this.videoSelectionTargets.forEach(s=>{s.dataset.index!==i.dataset.index?s.classList.remove("hidden"):s.classList.add("hidden")})}calculateVideoDimensions(){let s=this.modalContainerTarget.getBoundingClientRect().height;return{width:s*this.MODAL_TO_ELEMENTS_SCALING_RATIO,height:s}}};var zI=500,xw=.85,Bh=class extends u{static targets=["popup","closeButton","track","card"];static classes=["inactiveCard"];#e=!1;#t=0;#i=null;disconnect(){this.#i?.disconnect(),this.#i=null}exit(i){if(i?.preventDefault(),this.hasPopupTarget&&!this.#e){this.#s();return}this.dispatch("close")}dismiss(i){i?.preventDefault(),this.dispatch("close")}dismissOnBackdrop(i){i.target===i.currentTarget&&(Date.now()-this.#t<zI||this.dismiss(i))}keydown(i){!this.#e||i.key!=="Escape"||(i.preventDefault(),i.stopPropagation(),this.dismiss())}#s(){this.#e=!0,this.#t=Date.now(),this.dispatch("shown",{target:document}),this.popupTarget.classList.remove("hidden"),this.popupTarget.setAttribute("aria-hidden","false"),this.#r(),this.hasCloseButtonTarget&&this.closeButtonTarget.focus({preventScroll:!0})}#r(){!this.hasTrackTarget||!this.hasInactiveCardClass||typeof window.IntersectionObserver!="function"||(this.#i=new window.IntersectionObserver(i=>{i.forEach(s=>{s.intersectionRatio<xw?s.target.classList.add(...this.inactiveCardClasses):s.target.classList.remove(...this.inactiveCardClasses)})},{root:this.trackTarget,threshold:[xw]}),this.cardTargets.forEach(i=>this.#i.observe(i)))}};var Oh=class extends u{connect(){this.originalBodyPadding=window.getComputedStyle(document.body).paddingRight}lock({navbar:i=!1}={}){let s=this.calculateScrollbarWidth();s>0?(this.preventScroll(),this.compensateForScrollbarRemoval(s),i&&this.handleNavbarCompensation(s)):this.preventScroll()}unlock(){this.restoreScroll(),this.restoreBodyPadding(),this.restoreNavbarPadding()}calculateScrollbarWidth(){return window.innerWidth-document.documentElement.clientWidth}preventScroll(){document.body.classList.add("overflow-hidden")}restoreScroll(){document.body.classList.remove("overflow-hidden")}compensateForScrollbarRemoval(i){document.body.style.paddingRight=`calc(${this.originalBodyPadding} + ${i}px)`}restoreBodyPadding(){document.body.style.paddingRight=this.originalBodyPadding}handleNavbarCompensation(i){this.navbar=document.querySelector('[data-mobile-scroll-behavior-target="navbar"]'),this.navbar&&(this.originalNavbarPadding=window.getComputedStyle(this.navbar).paddingRight,this.navbar.style.paddingRight=`calc(${this.originalNavbarPadding} + ${i}px)`)}restoreNavbarPadding(){this.navbar&&(this.navbar.style.paddingRight=this.originalNavbarPadding,this.navbar=null)}};var Fh=class extends u{static targets=["modal","frame"];static values={origin:String};connect(){this.scrollLock=new Oh,this.scrollLock.connect(),this.cancelSelectedPackRequest=()=>this.#i(),document.addEventListener(Es,this.cancelSelectedPackRequest),this.#t()}disconnect(){document.removeEventListener(Es,this.cancelSelectedPackRequest),this.#i()}openModal(i){this.#e(i?.params?.origin||this.originValue),this.hasModalTarget&&(this.modalTarget.classList.remove("hidden"),this.scrollLock.lock({navbar:!0}))}#e(i){if(!i||!this.hasFrameTarget)return;let s=this.frameTarget.dataset.indexUrl;if(!s)return;let r=new URL(s,window.location.origin);r.searchParams.set("origin",i);let a=r.pathname+r.search;this.frameTarget.dataset.indexUrl=a,this.frameTarget.getAttribute("src")!==a&&(this.frameTarget.src=a)}async#t(){let i=new URLSearchParams(window.location.search);if(i.get("action")!=="open-mpc")return;let s=i.get("content_pack_id");i.delete("action"),i.delete("content_pack_id");let r=i.toString(),a=window.location.pathname+(r?`?${r}`:"");
74if(window.history.replaceState({},"",a),this.openModal(),!s||!this.hasFrameTarget)return;let n=this.frameTarget.dataset.selectedPackUrl;if(!n)return;let l=n.replace(":content_pack_id",encodeURIComponent(s)),d=new window.AbortController;this.selectedPackAbortController=d;try{await Ee(l,{responseKind:"turbo-stream",signal:d.signal})}catch(m){if(m.name==="AbortError")return}finally{this.selectedPackAbortController===d&&(this.selectedPackAbortController=null)}}closeModal(){this.#i(),this.refreshModal(),this.hasModalTarget&&(this.modalTarget.classList.add("hidden"),this.scrollLock.unlock())}refreshModal(){if(this.hasFrameTarget){let i=this.frameTarget.dataset.indexUrl;i&&(this.frameTarget.src=i)}}#i(){this.selectedPackAbortController?.abort(),this.selectedPackAbortController=null}};function kT(i){return i.ends_at&&Date.now()>Date.parse(i.ends_at)?i.original_price:i.price}function hi(i,s){let r=kT(s),a=document.createElement("span");if(a.className="inline-flex items-baseline gap-1",a.dataset.controller="discounts--token-price-component",a.setAttribute("data-discounts--token-price-component-ends-at-value",s.ends_at||""),a.setAttribute("data-discounts--token-price-component-original-label-value",s.original_label??s.original_price??r),s.original_price>r){let d=document.createElement("s");d.className="text-[0.85em] opacity-60",d.setAttribute("data-discounts--token-price-component-target","original"),d.textContent=s.original_label??s.original_price,a.append(d)}let n=document.createElement("span");n.setAttribute("data-discounts--token-price-component-target","amount");let l=s.ends_at&&Date.now()>Date.parse(s.ends_at);n.textContent=(l?s.original_label:s.label)??r,a.append(n),i.replaceChildren(a)}var Dh=class extends u{static targets=["regenerateImageModal","confirmationModal","checkbox","label","confirmButton","regenerateButton"];connect(){this.hasRegenerateButtonTarget}confirmButtonTargetConnected(){this.isConfirmationModalHidden()&&Ot(this,{element:this.confirmButtonTarget})}confirmationModalTargetConnected(){this.isConfirmationModalHidden()||Ot(this,{element:this.confirmationModalTarget})}triggerRegenerate(i){i.preventDefault(),this.isConfirmationModalHidden()?this.showConfirmButton():this.openModal(i)}clickOutside(){this.isConfirmationModalHidden()?this.resetButtons():this.closeModal()}showConfirmButton(){this.confirmButtonTarget.classList.remove("hidden"),this.regenerateButtonTarget.classList.add("hidden")}handleRegenerateConfirmationSubmission(i){i.preventDefault();let r=i.currentTarget.closest("form");r&&r.requestSubmit()}openModal(i){let{messageId:s,tokenCost:r,pricing:a}=i.currentTarget.dataset;this.setUpForm(s),this.updateModalTokenPrice(a?JSON.parse(a):{price:r});let n=document.getElementById("regenerate-image-modal");n&&n.classList.remove("hidden")}resetButtons(){this.confirmButtonTarget.classList.add("hidden"),this.regenerateButtonTarget.classList.remove("hidden")}closeModal(){this.checkboxTarget.checked=!1,this.toggleCheckboxSVG()}setUpForm(i){let s=this.regenerateImageModalTarget.querySelector("form");s&&(s.action=`/conversations/regenerate_image?message_id=${i}`)}updateModalTokenPrice(i){let s=this.regenerateImageModalTarget.querySelector(".regeneration-token-price");s&&i&&hi(s,i)}regenerate(){this.persistHideConfirmationModal(),this.closeModal()}toggleCheckboxSVG(){let i=this.checkboxTarget.checked,s=this.labelTarget;i?(s.classList.remove("hidden"),this.checkboxTarget.classList.add("hidden")):(s.classList.add("hidden"),this.checkboxTarget.classList.remove("hidden"))}toggleCheckbox(i){i.preventDefault();let s=this.checkboxTarget;s.checked=!s.checked,this.toggleCheckboxSVG()}isConfirmationModalHidden(){return localStorage.getItem("hideRegenerateImageConfirmationModal")!==null}persistHideConfirmationModal(){this.checkboxTarget.checked&&localStorage.setItem("hideRegenerateImageConfirmationModal","true")}};var Rh=class extends u{static targets=["categoryButton","actionDiv","numberButton","promptTextarea","characterBox","characterBoxButton","generateButton","toast","suggestionsContainer","generateImagePrice","galleryContainer","formContainer"];static values={currentCategory:String,urlPath:String,numberOfImages:{type:Number,default:null},profileId:String,promptsList:Array,genderInterest:String,imageCost:Number};connect(){this.isTouchScreen="ontouchstart"in window||navigator.maxTouchPoints>0,this.elementTimeouts=new Map,this.updateCategoryUI(),this.updateActionsUI(),this.updateNumberOfImagesUI(),this.updateGenerateImagePrice(),this.loadPrompt()}disconnect(){this.clearAllTimeouts()}generatePrompt(){let i=this.promptsListValue;this.promptTextareaTarget.value=i[Math.floor(Math.random()*i.length)],this.promptTextareaTarget.dispatchEvent(new Event("input",{bubbles:!0})),this.savePrompt()}loadPrompt(){let i=localStorage.getItem(`savedPrompt_${this.genderInterestValue}
74_${I18n.locale}`);i?(this.promptTextareaTarget.value=i,this.promptTextareaTarget.dispatchEvent(new Event("input",{bubbles:!0}))):this.generatePrompt()}savePrompt(){localStorage.setItem(`savedPrompt_${this.genderInterestValue}_${I18n.locale}`,this.promptTextareaTarget.value)}selectNumberOfImages(i){this.numberOfImagesValue=parseInt(i.currentTarget.dataset.numberOfImages),this.updateNumberOfImagesUI(),this.updateGenerateImagePrice()}updateNumberOfImagesUI(){this.numberButtonTargets.forEach(i=>{let s=parseInt(i.dataset.numberOfImages)===this.numberOfImagesValue;i.classList.toggle("bg-[#1d1e36]",s),i.classList.toggle("border-img-generator-option",s),i.classList.toggle("bg-[#1a1a1a]",!s),i.classList.toggle("border-transparent",!s),s?i.classList.remove("hover:bg-[#2e2e2e]","hover:border-[#959595]/10"):i.classList.add("hover:bg-[#2e2e2e]","hover:border-[#959595]/10"),i.querySelectorAll("img").forEach(r=>{let a=r.classList.contains("active-icon");r.classList.toggle("hidden",s?!a:a)})})}selectCategory(i){this.currentCategoryValue=i.currentTarget.dataset.category,this.updateCategoryUI(),this.updateActionsUI(),this.scrollSuggestionsToStart()}updateCategoryUI(){this.categoryButtonTargets.forEach(i=>{let s=i.dataset.category===this.currentCategoryValue;i.classList.toggle("text-[#E4E4E4]",s),i.classList.toggle("text-[#969696]",!s);let r=i.parentElement.querySelector("div.generator-border");r&&r.classList.toggle("hidden",!s)})}updateActionsUI(){this.actionDivTargets.forEach(i=>{let s=i.dataset.category===this.currentCategoryValue;i.classList.toggle("hidden",!s)})}scrollSuggestionsToStart(){this.suggestionsContainerTarget.scrollLeft=0}showToast(){this.toastTarget.classList.remove("hidden")}closeToast(){this.toastTarget.classList.add("hidden")}disableGenerateButton(){this.generateButtonTarget.disabled=!0,this.generateButtonTarget.classList.add("opacity-50","cursor-not-allowed"),this.generateButtonTarget.blur(),setTimeout(()=>{this.generateButtonTarget.disabled=!1,this.generateButtonTarget.classList.remove("opacity-50","cursor-not-allowed")},2e3)}showNoProfileError(){this.characterBoxTarget.classList.remove("dashed-border-purple"),this.characterBoxTarget.classList.add("dashed-border-red"),this.characterBoxTarget.style.backgroundColor="#2b1619",this.characterBoxButtonTarget.style.backgroundColor="#4346E6",this.showToast()}async generateImage(){if(this.disableGenerateButton(),!this.profileIdValue)return this.showNoProfileError();let i=document.querySelector('meta[name="csrf-token"]').content,s={input_text:this.promptTextareaTarget.value,profile_id:this.profileIdValue,category:this.currentCategoryValue,number_of_images:this.numberOfImagesValue};try{await it.fetchWithTurboStream(this.urlPathValue,{method:"POST",headers:{"Content-Type":"application/json","X-CSRF-Token":i},body:JSON.stringify(s)}),this.showGalleryIfHidden(),this.scrollToGallery()}catch(r){console.error("Error generating image:",r)}}selectAction(i){let s=i.currentTarget;this.appendActionToPrompt(s.dataset.actionPrompt.toLowerCase());let r=s.querySelector(".plus-icon"),a=s.querySelector(".check-icon"),n=s.querySelector(".invisible-border"),l=s.querySelector(".rectangle-icon");r&&this.transitionOpacity(r),a&&this.transitionOpacity(a),n&&this.transitionOpacity(n),this.isTouchScreen&&(l&&this.transitionOpacity(l),r&&r.classList.remove("opacity-100"),a&&a.classList.replace("opacity-0","opacity-100")),this.elementTimeouts.has(s)&&(clearTimeout(this.elementTimeouts.get(s)),this.elementTimeouts.delete(s));let d=setTimeout(()=>{let m=this.isTouchScreen?l:r;m&&this.transitionOpacity(m),a&&this.transitionOpacity(a),n&&this.transitionOpacity(n),this.elementTimeouts.delete(s)},1200);this.elementTimeouts.set(s,d)}appendActionToPrompt(i){this.promptTextareaTarget.value=this.promptTextareaTarget.value+" "+i,this.promptTextareaTarget.dispatchEvent(new Event("input",{bubbles:!0})),this.savePrompt()}clearAllTimeouts(){this.elementTimeouts.forEach(i=>{clearTimeout(i)}),this.elementTimeouts.clear()}transitionOpacity(i){i.classList.toggle("opacity-0"),i.classList.toggle("opacity-100")}verifyNumberOfImages(i){let s=i.currentTarget.querySelector(".number-container");parseInt(s.textContent.trim(),10)!==1&&this.openBecomePremiumMod
74al()}openBecomePremiumModal(){let i=new window.CustomEvent("open-modal",{detail:{modalName:"isPremiumSubscriptionModalOpen"}});window.dispatchEvent(i)}updateGenerateImagePrice(){this.hasGenerateImagePriceTarget&&(this.generateImagePriceTarget.textContent=this.numberOfImagesValue*this.imageCostValue)}showGalleryIfHidden(){this.galleryContainerTarget.classList.contains("hidden")&&(this.galleryContainerTarget.classList.remove("hidden"),this.formContainerTarget.classList.remove("mb-[80px]","xl:mb-0","scroll-mt-[60px]","xl:scroll-mt-0"))}scrollToGallery(){requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.galleryContainerTarget.scrollIntoView({behavior:"smooth"})})})}};var Nh=class extends u{static targets=["selectContainer"];static values={selectedProfileSlug:String};connect(){this.setupSelectContainer(),this.selectedProfileSlugValue=null}selectCharacter(i,s){if(this.selectedProfileSlugValue===s){this.selectedProfileSlugValue=null,this.hideSelectContainer();return}this.selectedProfileSlugValue&&this.deselectProfile(this.selectedProfileSlugValue),this.selectedProfileSlugValue=s,this.showSelectContainer()}deselectProfile(i){let s=this.findGalleryCardController(i);s&&s.toggleSelection()}findGalleryCardController(i){let s=document.querySelector(`[data-gallery-card-component-profile-slug-value="${i}"]`);return s?this.application.getControllerForElementAndIdentifier(s,"gallery-card-component"):null}setupSelectContainer(){this.selectContainerTarget.style.transition="transform 0.3s ease-out, opacity 0.3s ease-out",this.selectContainerTarget.style.transform="translateY(100%)",this.selectContainerTarget.style.opacity="0"}showSelectContainer(){this.selectContainerTarget.classList.remove("hidden"),setTimeout(()=>{this.selectContainerTarget.style.transform="translateY(0)",this.selectContainerTarget.style.opacity="1"},10);let i=this.selectContainerTarget.querySelector("a");if(i){let s=new URL(i.href);s.searchParams.set("profile_slug",this.selectedProfileSlugValue),i.href=s.toString()}}hideSelectContainer(){this.selectContainerTarget.style.transform="translateY(100%)",this.selectContainerTarget.style.opacity="0",setTimeout(()=>{this.selectContainerTarget.classList.add("hidden")},300)}resetSelection(){this.selectedProfileSlugValue&&(this.deselectProfile(this.selectedProfileSlugValue),this.selectedProfileSlugValue=null,this.hideSelectContainer())}};var Uh=class extends u{connect(){this.toggleButtonVisibility(),window.addEventListener("scroll",()=>this.toggleButtonVisibility())}disconnect(){window.removeEventListener("scroll",()=>this.toggleButtonVisibility())}toggleButtonVisibility(){window.scrollY>this.scrollLimit()?(this.element.classList.remove("opacity-0","invisible"),this.element.classList.add("opacity-100","visible")):(this.element.classList.remove("opacity-100","visible"),this.element.classList.add("opacity-0","invisible"))}scrollToTop(){window.scrollTo({top:0,behavior:"smooth"})}scrollLimit(){return this.isMobile()?805:this.isSmallDesktop()?520:360}hide(){this.isMobile()&&(this.element.classList.remove("opacity-100","visible"),this.element.classList.add("opacity-0","invisible"))}show(){this.isMobile()&&(this.element.classList.remove("opacity-0","invisible"),this.element.classList.add("opacity-100","visible"))}isMobile(){return window.innerWidth<1280}isSmallDesktop(){return window.innerWidth>=1280&&window.innerWidth<=1535}};var Hh=class extends u{static targets=["myVideo","videoWrapper"];static values={fullscreenContain:Boolean};connect(){this.wasPlaying=!1}myVideoTargetConnected(){this.videoEl=this.myVideoTarget,this.boundHandleWaiting=this.#i.bind(this),this.boundHandleCanPlay=this.#s.bind(this),this.boundHandlePlaying=this.#t.bind(this),this.videoEl.addEventListener("waiting",this.boundHandleWaiting),this.videoEl.addEventListener("canplay",this.boundHandleCanPlay),this.videoEl.addEventListener("playing",this.boundHandlePlaying),this.fullscreenContainValue&&(this.boundHandleFullscreenChange=this.#e.bind(this),document.addEventListener("fullscreenchange",this.boundHandleFullscreenChange),document.addEventListener("webkitfullscreenchange",this.boundHandleFullscreenChange))}disconnect(){this.videoEl&&(this.videoEl.removeEventListener("waiting",this.boundHandleWaiting),this.videoEl.removeEventListener("canplay",this.boundHandleCanPlay),this.videoEl.removeEventListener("playing",this.boundHandlePlaying)),this.boundHandleFullscreenChange&&(document.removeEventListener("fullscreenchange",this.boundHandleFullscreenChange),document.removeEventListener("webkitfullscreenchange",this.boundHandleFullscreenChange))}#e(){let i=document.fullscreenElement||document.webkitFullscreenElement;this.videoEl.classList.toggle("object-cover",i!==this.videoEl)}#t(){this.videoEl.poster&&this.videoEl.removeAttribute("poster")}#i(){this.wasPlaying=!this.videoEl.paused}#s(){this.wasPlaying&&(this.videoEl.play().catch(i=>console.warn("video play failed:",i)),this.wasPlaying=!1)}pause(){this.wasPlaying=!1,this.videoEl&&this.videoEl.pause()}play(){this.videoEl&&this.videoEl.play().catch(i=>console.warn("video play failed:",i))}hideAndShowPlayIcon(i,s){let r=i.children,n=Array.from(r).find(l=>l.dataset.videoElementTarget==="videoSelection");n&&(s==="hide"?n.classList.add("hidden"):s==="show"&&n.classList.remove("hidden"))}};var De={playingVideo:null};var qh=class extends u{static targets=["border","caption","image","video","bottomRightIcon"];static values={profileSlug:String,onClickHandler:String,startSelected:Boolean};connect(){this.startSelectedValue&&this.selectCard(),this.touchStartTime=0,this.touchStartPosition=null,this.playingVideo=null,this.handleTouchStart=this.handleTouchStart.bind(this),this.handleTouchEnd=this.handleTouchEnd.bind(this),this.element.addEventListener("touchstart",this.handleTouchStart,{passive:!0}),this.element.addEventListener("touchend",this.handleTouchEnd),this.observeViewport()}observeViewport(){if(!this.hasVideoTarget)return;let i=this.videoTarget;this.viewportObserver=new IntersectionObserver(s=>{s[0].isIntersecting?i.dataset.lazyPoster&&(i.poster=i.dataset.lazyPoster,delete i.dataset.lazyPoster):this.pauseOffscreen(i)},{rootMargin:"200px"}),this.viewportObserver.observe(i)}
74pauseOffscreen(i){i.paused&&De.playingVideo!==i||this.stopVideo(i)}stopVideo(i){i.pause(),i.currentTime=0,this.playingVideo=null,De.playingVideo===i&&(De.playingVideo=null)}handleTouchStart(i){i.touches.length>1||(this.touchStartTime=Date.now(),this.touchStartPosition={x:i.touches[0].clientX,y:i.touches[0].clientY},this.hasVideoTarget&&(De.playingVideo&&De.playingVideo!==this.videoTarget?(this.stopPlayingVideo(),this.loadVideo(this.videoTarget),this.playVideo()):De.playingVideo||(this.loadVideo(this.videoTarget),this.playVideo())))}handleTouchEnd(i){if(!this.touchStartPosition)return;let s=Date.now()-this.touchStartTime,r={x:i.changedTouches[0].clientX,y:i.changedTouches[0].clientY},a=Math.hypot(r.x-this.touchStartPosition.x,r.y-this.touchStartPosition.y);if(s<200&&a<20){i.preventDefault(),i.stopPropagation();let n=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});i.target.dispatchEvent(n)}this.touchStartPosition=null}disconnect(){this.deselect(),this.hasVideoTarget&&this.stopVideo(this.videoTarget),this.viewportObserver&&this.viewportObserver.disconnect(),this.element.removeEventListener("touchstart",this.handleTouchStart),this.element.removeEventListener("touchend",this.handleTouchEnd)}selectCard(i){this.hasBorderTarget&&this.hasCaptionTarget&&this.hasImageTarget&&this.toggleSelection(),this.onClickHandlerValue&&this.callOtherController(i)}toggleSelection(){this.isSelected?this.deselect():this.select()}deselect(){this.hasBorderTarget&&(this.borderTarget.classList.remove("profile-selection-border","opacity-100"),this.borderTarget.classList.add("border-gray-500/25","opacity-0")),this.hasCaptionTarget&&(this.captionTarget.classList.remove("profile-selection-bg"),this.captionTarget.classList.add("bg-[#1a1a1a]/60","group-hover:bg-[#4d4d4d]/60")),this.hasImageTarget&&(this.imageTarget.classList.add("group-hover:scale-105"),this.imageTarget.classList.remove("scale-105")),this.isSelected=!1}select(){this.borderTarget.classList.remove("border-gray-500/25","opacity-0"),this.borderTarget.classList.add("profile-selection-border","opacity-100"),this.captionTarget.classList.remove("bg-[#1a1a1a]/60","group-hover:bg-[#4d4d4d]/60"),this.captionTarget.classList.add("profile-selection-bg"),this.imageTarget.classList.add("scale-105"),this.imageTarget.classList.remove("group-hover:scale-105"),this.isSelected=!0}callOtherController(i){let[s,r]=this.onClickHandlerValue.split("#"),a=this.element.closest(`[data-controller~="${s}"]`);if(!a){console.error(`Element with controller '${s}' not found.`);return}let n=this.application.getControllerForElementAndIdentifier(a,s);n&&typeof n[r]=="function"?n[r](i,this.profileSlugValue):console.error(`Action '${r}' not found on controller '${s}'.`)}openPremiumModal(){let i=new CustomEvent("open-modal",{detail:{modalName:"isPremiumSubscriptionModalOpen"}});window.dispatchEvent(i)}restartVideo(){this.hasVideoTarget&&!this.playingVideo&&(this.loadVideo(this.videoTarget),this.videoTarget.currentTime=0,this.videoTarget.play().catch(i=>console.warn("Playback prevented:",i)),this.playingVideo=this.videoTarget)}loadVideo(i){let s=i.dataset.src,r=i.dataset.av1Src;if(!s)return;let a=r&&tw()?i.querySelector(`source[type="${ti}"]`):null;if(a)a.src=r,i.removeAttribute("data-av1-src");else{let n=i.querySelector(`source[type="${li}"]`);if(!n)return;n.src=s}i.load(),i.removeAttribute("data-src")}pauseVideo(){this.hasVideoTarget&&this.stopVideo(this.videoTarget)}ensureVideosPreload(){this.videoTargets.forEach(i=>{i.readyState<3&&i.load()})}playVideo(){De.playingVideo===null&&(this.videoTarget.currentTime=0,De.playingVideo=this.videoTarget,this.videoTarget.readyState>=3?this.videoTarget.play().catch(i=>console.warn("Playback prevented:",i)):this.videoTarget.addEventListener("canplay",()=>{De.playingVideo===this.videoTarget&&this.videoTarget.play().catch(i=>console.warn("Playback prevented:",i))},{once:!0}))}stopPlayingVideo(){De.playingVideo&&(De.playingVideo.pause(),De.playingVideo.currentTime=0,De.playingVideo=null)}handleBottomRightIconClick(i){i.stopPropagation();let s=this.element.dataset?.is10svideoenabled==="true"||this.element.closest("[data-is10svideoenabled]")?.dataset?.is10svideoenabled==="true",r=this.element.dataset?.isflashboobsenabled==="true"||this.element.closest("[data-isflashboobsenabled]")?.dataset?.isflashboobsenabled==="true";this.element.dispatchEvent(new CustomEvent("gallery-card-right-icon-click",{bubbles:!0,detail:{profileFirstName:this.bottomRightIconTarget.dataset.galleryCardComponentProfileFirstNameValue,imagePromptPhotoId:this.bottomRightIconTarget.dataset.galleryCardComponentImagePromptPhotoIdValue,is10sVideoEnabled:s,isFlashBoobsEnabled:r}}))}};var ks=new Set,ci=null,$h=class extends u{static targets=["video","image"];static values={managePreviewLifecycle:Boolean,respectReducedMotion:Boolean};connect(){this.touchStartTime=0,this.touchStartPosition=null,this.isVideoVisible=!1,this.isPointerOver=!1,this.handleTouchStart=this.handleTouchStart.bind(this),this.handleTouchEnd=this.handleTouchEnd.bind(this),this.handleMouseEnter=this.handleMouseEnter.bind(this),this.handleMouseLeave=this.handleMouseLeave.bind(this),this.element.addEventListener("touchstart",this.handleTouchStart),this.element.addEventListener("touchend",this.handleTouchEnd),this.managePreviewLifecycleValue&&(this.element.addEventListener("mouseenter",this.handleMouseEnter),this.element.addEventListener("mouseleave",this.handleMouseLeave)),this.hasVideoTarget&&(this.managePreviewLifecycleValue&&this.#e(),this.videoObserver=new IntersectionObserver(i=>{i[0].isIntersecting?this.managePreviewLifecycleValue?(this.isVideoVisible=!0,ks.add(this),this.#s()):(this.preloadAndAutoPlay(),this.videoObserver.disconnect()):this.managePreviewLifecycleValue&&(this.isVideoVisible=!1,this.isPointerOver||(ks.delete(this),this.#i()&&this.#a()))},{rootMargin:"100px"}),this.videoObserver.observe(this.videoTarget))}#e(){this.videoTarget.muted=!0,this.videoTarget.defaultMuted=!0,this.videoTarget.playsInl
74ine=!0}preloadAndAutoPlay(){let i=this.videoTarget;this.loadVideo(i),i.readyState>=3?this.autoPlayVideo():i.addEventListener("canplay",()=>{this.autoPlayVideo()},{once:!0})}autoPlayVideo(){if(!this.#t())return;let i=De.playingVideo?.closest('[data-conversion-card-component-manage-preview-lifecycle-value="true"]');if(this.managePreviewLifecycleValue&&De.playingVideo===this.videoTarget)return;this.managePreviewLifecycleValue&&i&&De.playingVideo!==this.videoTarget&&this.stopPlayingVideo(),this.videoTarget.currentTime=0;let s=this.videoTarget.play();De.playingVideo=this.videoTarget,s.catch(()=>{this.managePreviewLifecycleValue&&De.playingVideo===this.videoTarget&&(De.playingVideo=null)})}#t(){return!this.hasVideoTarget||!this.element.isConnected||this.managePreviewLifecycleValue&&ci!==this?!1:!this.managePreviewLifecycleValue||this.isVideoVisible||this.isPointerOver}handleTouchStart(i){i.touches.length>1||(this.touchStartTime=Date.now(),this.touchStartPosition={x:i.touches[0].clientX,y:i.touches[0].clientY},this.hasVideoTarget&&(this.managePreviewLifecycleValue?this.#s({replaceCurrent:!0,userInitiated:!0}):(De.playingVideo&&De.playingVideo!==this.videoTarget&&this.stopPlayingVideo(),De.playingVideo||(this.loadVideo(this.videoTarget),this.playVideo()))))}handleMouseEnter(){this.hasVideoTarget&&(this.isPointerOver=!0,ks.add(this),De.playingVideo!==this.videoTarget&&this.#s({replaceCurrent:!0,userInitiated:!0}))}handleMouseLeave(){this.isPointerOver=!1,!this.isVideoVisible&&(ks.delete(this),this.#i()&&this.#a())}handleTouchEnd(i){let s=Date.now()-this.touchStartTime,r={x:i.changedTouches[0].clientX,y:i.changedTouches[0].clientY},a=Math.hypot(r.x-this.touchStartPosition.x,r.y-this.touchStartPosition.y);if(s<200&&a<20){i.preventDefault(),i.stopPropagation();let n=new window.MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});i.target.dispatchEvent(n)}}disconnect(){this.videoObserver&&this.videoObserver.disconnect();let i=!1;this.hasVideoTarget&&(this.isVideoVisible=!1,this.isPointerOver=!1,this.managePreviewLifecycleValue&&ks.delete(this),i=this.#i()),this.element.removeEventListener("touchstart",this.handleTouchStart),this.element.removeEventListener("touchend",this.handleTouchEnd),this.element.removeEventListener("mouseenter",this.handleMouseEnter),this.element.removeEventListener("mouseleave",this.handleMouseLeave),this.managePreviewLifecycleValue&&i&&this.#a()}#i(){if(!this.hasVideoTarget)return!1;let i=De.playingVideo===this.videoTarget,s=ci===this;return this.videoTarget.pause(),this.managePreviewLifecycleValue&&(this.videoTarget.currentTime=0),i&&(De.playingVideo=null),s&&(ci=null),i||s}#s({replaceCurrent:i=!1,userInitiated:s=!1}={}){if(!(!s&&this.#r())){if(ci&&!ci.element.isConnected&&(ci=null),ci===this){De.playingVideo!==this.videoTarget&&this.preloadAndAutoPlay();return}ci&&!i||(ci&&ci.#i(),ci=this,this.preloadAndAutoPlay())}}#r(){return this.respectReducedMotionValue&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}#a(){for(let i of ks){if(!i.element.isConnected||!i.isVideoVisible&&!i.isPointerOver){ks.delete(i);continue}if(De.playingVideo)return;if(!i.#r()){i.#s();return}}}loadVideo(i){let s=i.dataset.src,r=i.dataset.av1Src;if(!s)return;if(r){let n=i.querySelector(`source[type="${ti}"]`);n&&(n.src=r)}let a=i.querySelector(`source[type="${li}"]`);a&&(a.src=s),i.load(),i.removeAttribute("data-src"),i.removeAttribute("data-av1-src")}playVideo(){De.playingVideo===null&&(this.videoTarget.currentTime=0,De.playingVideo=this.videoTarget,this.videoTarget.readyState>=3?this.videoTarget.play().catch(()=>{}):this.videoTarget.addEventListener("canplay",()=>{this.videoTarget.play().catch(()=>{})},{once:!0}))}stopPlayingVideo(){De.playingVideo&&(De.playingVideo.pause(),De.playingVideo.currentTime=0,De.playingVideo=null)}};var Gh=class extends u{static targets=["content","arrow"];static classes=["open"];connect(){this.hasContentTarget&&this.contentTarget.classList.add("hidden")}toggle(){this.hasContentTarget&&this.contentTarget.classList.toggle("hidden"),this.hasArrowTarget&&this.arrowTarget.classList.toggle("rotate-180"),this.hasOpenClass&&this.openClasses.forEac
74h(i=>this.element.classList.toggle(i))}};var Wh=class extends u{static targets=["menu","caret","button"];initialize(){this.handleDocumentClick=this.handleDocumentClick.bind(this)}connect(){document.addEventListener("click",this.handleDocumentClick)}disconnect(){document.removeEventListener("click",this.handleDocumentClick)}handleDocumentClick(i){!this.element.contains(i.target)&&!this.menuTarget.classList.contains("hidden")&&(this.menuTarget.classList.add("hidden"),this.hasCaret&&this.caretTarget.classList.remove("rotate-180"),this.hasButtonTarget&&this.buttonTarget.setAttribute("aria-expanded","false"))}toggle(i){i.preventDefault(),i.stopPropagation(),this.menuTarget.classList.toggle("hidden"),this.hasCaret&&this.caretTarget.classList.toggle("rotate-180");let s=this.menuTarget.classList.contains("hidden")?"false":"true";i.currentTarget.setAttribute("aria-expanded",s)}selectOption(i){i.preventDefault(),this.menuTarget.classList.add("hidden"),this.hasCaret&&this.caretTarget.classList.remove("rotate-180"),this.hasButtonTarget&&this.buttonTarget.setAttribute("aria-expanded","false")}get hasCaret(){return this.hasCaretTarget}};var jh=class extends u{static targets=["slide","dot"];static values={timers:Array,currentSlide:Number,eventName:String,product:String,location:String};boundDragStart=i=>this.dragStart(i);boundDrag=i=>this.drag(i);boundDragEnd=i=>this.dragEnd(i);connect(){this.currentSlideValue=0,this.totalSlides=this.slideTargets.length;let i=this.slideTargets[0].cloneNode(!0);i.setAttribute("data-is-clone","true"),this.element.querySelector(".flex").appendChild(i),this.initTouchProperties(),this.startAutoplay(),this.updateSlides()}initTouchProperties(){"ontouchstart"in window&&(this.isDragging=!1,this.startPos=0,this.currentTranslate=0,this.prevTranslate=0,this.element.addEventListener("touchstart",this.boundDragStart),this.element.addEventListener("touchmove",this.boundDrag),this.element.addEventListener("touchend",this.boundDragEnd))}startAutoplay(){this.clearAutoplayTimer();let i=this.timersValue[this.currentSlideValue]||5;this.autoplayTimer=setInterval(()=>{this.next()},i*1e3)}clearAutoplayTimer(){this.autoplayTimer&&clearInterval(this.autoplayTimer)}next(){let i=this.slideTargets.length;this.currentSlideValue+=1,this.currentSlideValue>=i-1?(this.updateSlides(),this.updateDots(0),setTimeout(()=>{this.element.querySelector(".flex").style.transition="none",this.currentSlideValue=0,this.updateSlides(),setTimeout(()=>{this.element.querySelector(".flex").style.transition="transform 500ms"},50)},500)):this.updateSlides(),this.startAutoplay()}previous(){this.currentSlideValue===0?(this.element.querySelector(".flex").style.transition="none",this.currentSlideValue=this.slideTargets.length-1,this.updateSlides(),setTimeout(()=>{this.element.querySelector(".flex").style.transition="transform 500ms",this.currentSlideValue--,this.updateSlides()},50)):(this.currentSlideValue--,this.updateSlides()),this.startAutoplay()}goToSlide(i){let s=parseInt(i.currentTarget.dataset.index);this.currentSlideValue=s,this.updateSlides(),this.startAutoplay()}trackBannerClick(i){if(typeof window.mixpanel>"u"||!window.mixpanel.track)return;let s=i.currentTarget.dataset.bannerId,r=i.currentTarget.dataset.bannerTitle,a=i.currentTarget.dataset.targetUrl;window.mixpanel.track(this.eventNameValue,{product:this.productValue,location:this.locationValue,target_url:a,banner_id:`${r}_${s}`})}updateSlides(){let i=this.element.querySelector(".flex");i.style.transform=`translateX(-${this.currentSlideValue*100}%)`,this.updateDots(this.currentSlideValue)}updateDots(i){this.dotTargets.forEach((s,r)=>{s.classList.remove("h-1","h-1.5","bg-primary","bg-white/40"),r===i?s.classList.add("h-1.5","bg-primary"):s.classList.add("h-1","bg-white/40")})}dragStart(i){this.clearAutoplayTimer(),this.isDragging=!0,this.startPos=i.touches[0].clientX,this.startY=i.touches[0].pageY,this.element.querySelector(".flex").style.transition="none"}drag(i){if(!this.isDragging)return;let r=i.touches[0].clientX-this.startPos,a=i.touches[0],n=Math.abs(a.clientX-this.startPos),l=Math.abs(a.pageY-(this.startY||a.pageY));if(n>l){i.preventDefault();let d=this.currentSlideValue*100;this.element.querySelector(".flex").style.transform=`translateX(${-d+r/this.element.offsetWidth*100}%)`}}dragEnd(i){if(!this.isDragging)return;this.isDragging=!1;let s=this.startPos-i.changedTouches[0].clientX;this.element.querySelector(".flex").style.transition="transform 500ms",Math.abs(s)>this.element.offsetWidth*.2?s>0?this.next():this.previous():this.updateSlides(),this.startAutoplay()}disconnect(){this.clearAutoplayTimer(),"ontouchstart"in window&&(this.element.removeEventListener("touchstart",this.boundDragStart),this.element.removeEventListener("touchmove",this.boundDrag),this.element.removeEventListener("touchend",this.boundDragEnd))}};function Iw(i,s){if(s.aborted)return Promise.resolve(!1);let r=i.querySelector("template[data-campaign-slide-media]");if(!r&&!i.hasAttribute("data-campaign-media-activated"))return!0;let a=[...(r?.content||i).querySelectorAll("img")].map(n=>
74{if(n.loading="eager",r||!n.complete||n.naturalWidth)return n;let l=n.closest("picture")||n,d=l.cloneNode(!0);return l.replaceWith(d),l===n?d:d.querySelector("img")});return r&&(i.setAttribute("data-campaign-media-activated","true"),r.replaceWith(r.content)),new Promise(n=>{let l=!1,d=a.length,m=[],v=R=>{l||(l=!0,window.clearTimeout(D),s.removeEventListener("abort",E),m.forEach(W=>W()),n(R))},E=()=>v(!1),D=window.setTimeout(E,15e3);s.addEventListener("abort",E,{once:!0}),a.forEach(R=>{if(l)return;let W=!1,Q=()=>{if(!(l||W)){if(!R.naturalWidth){v(!1);return}W=!0,Promise.resolve().then(()=>R.decode?.()).then(()=>{d-=1,d===0&&v(!0)},E)}};R.addEventListener("load",Q),R.addEventListener("error",E),m.push(()=>{R.removeEventListener("load",Q),R.removeEventListener("error",E)}),R.complete&&Q()}),d===0&&v(!0)})}var Kh=class extends u{static targets=["slide","dot"];static values={timers:Array,eventName:String,product:String,location:String,transition:String,autoplay:Boolean};connect(){this.currentSlide=Math.max(0,this.slideTargets.findIndex(i=>i.getAttribute("aria-hidden")==="false")),this.requestedSlide=this.currentSlide,this.navigationRequest=null,this.mediaLoads=new Map,this.mediaAbortController=new window.AbortController,this.pointerPaused=!1,this.focusPaused=!1,this.boundTouchStart=i=>this.#u(i),this.boundTouchEnd=i=>this.#g(i),this.element.addEventListener("touchstart",this.boundTouchStart,{passive:!0}),this.element.addEventListener("touchend",this.boundTouchEnd,{passive:!0}),this.#i(),this.#s()}next(i){this.#c(i)||(this.#h(i),i?.preventDefault(),this.#e(this.requestedSlide+1))}previous(i){this.#c(i)||(this.#h(i),i?.preventDefault(),this.#e(this.requestedSlide-1))}goToSlide(i){this.#e(Number.parseInt(i.currentTarget.dataset.index,10))}pause(i){if(i?.type==="focusin"){if(!i.target.matches(":focus-visible"))return;this.focusPaused=!0}else{if(!this.#o())return;this.pointerPaused=!0}this.#r()}resume(i){i?.type==="focusout"&&this.element.contains(i.relatedTarget)||(i?.type==="focusout"?this.focusPaused=!1:this.pointerPaused=!1,this.#s())}#e(i,{autoplay:s=!1}={}){let r=this.slideTargets.length;if(r===0)return;this.#a();let a=(i+r)%r;this.requestedSlide=a;let n={autoplay:s};this.navigationRequest=n;let l=m=>{this.navigationRequest!==n||this.mediaAbortController.signal.aborted||(this.navigationRequest=null,m&&!(s&&this.#n())&&(this.currentSlide=a,this.#i()),this.#s())},d=a===this.currentSlide?!0:this.#t(this.slideTargets[a]);d===!0?l(!0):d.then(l)}#t(i){let s=this.mediaLoads;if(s.has(i))return s.get(i);let r=Iw(i,this.mediaAbortController.signal);if(r===!0)return!0;let a=r.finally(()=>s.delete(i));return s.set(i,a),a}#i(){this.slideTargets.forEach((i,s)=>{let r=s===this.currentSlide;i.classList.toggle("pointer-events-auto",r),i.classList.toggle("pointer-events-none",!r),this.transitionValue==="slide"?(i.classList.remove("opacity-0","opacity-100"),i.style.transform=`translateX(${(s-this.currentSlide)*100}%)`):(i.classList.toggle("opacity-100",r),i.classList.toggle("opacity-0",!r)),i.setAttribute("aria-hidden",`${!r}`),!r&&i.contains(document.activeElement)&&document.activeElement.blur(),i.querySelectorAll("a, button, input, select, textarea, [tabindex]").forEach(a=>{r?a.removeAttribute("tabindex"):a.setAttribute("tabindex","-1")})}),this.dotTargets.forEach((i,s)=>{let r=i.firstElementChild;r?.classList.toggle("bg-white",s===this.currentSlide),r?.classList.toggle("bg-white/30",s!==this.currentSlide)})}#s(){this.#a();let i=!this.autoplayValue||this.slideTargets.length<=1||this.#n();if(this.navigationRequest||this.#l()||i)return;let s=this.timersValue[this.currentSlide]||7;this.autoplayTimer=window.setTimeout(()=>this.#e(this.requestedSlide+1,{autoplay:!0}),s*1e3)}#r(){this.#a(),this.navigationRequest?.autoplay&&(this.navigationRequest=null,this.requestedSlide=this.currentSlide)}#a(){this.autoplayTimer&&(window.clearTimeout(this.autoplayTimer),this.autoplayTimer=null)}#n(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}#o(){return window.matchMedia("(hover: hover)").matches}#l(){return this.pointerPaused||this.focusPaused}
74#h(i){i?.type==="keydown"&&(this.focusPaused=!0)}#c(i){return i?.type==="keydown"&&i.target!==i.currentTarget}#u(i){this.touchStartX=i.changedTouches[0].clientX,this.touchStartY=i.changedTouches[0].clientY,this.#r()}#g(i){let s=i.changedTouches[0].clientX-this.touchStartX,r=i.changedTouches[0].clientY-this.touchStartY;Math.abs(s)>=40&&Math.abs(s)>Math.abs(r)*1.2?s<0?this.next():this.previous():this.#s()}trackBannerClick(i){if(typeof window.mixpanel>"u"||!window.mixpanel.track)return;let s=i.currentTarget.dataset.bannerId,r=i.currentTarget.dataset.bannerTitle,a=i.currentTarget.dataset.targetUrl;window.mixpanel.track(this.eventNameValue,{product:this.productValue,location:this.locationValue,target_url:a,banner_id:`${r}_${s}`})}disconnect(){this.navigationRequest=null,this.mediaAbortController.abort(),this.#a(),this.element.removeEventListener("touchstart",this.boundTouchStart),this.element.removeEventListener("touchend",this.boundTouchEnd)}};var zh=class extends u{connect(){this.observer=new IntersectionObserver(i=>this.flag(i),{root:this.element,threshold:[0,.99,1]}),this.observeItems(),this.mutationObserver=new MutationObserver(()=>this.observeItems()),this.mutationObserver.observe(this.element,{childList:!0})}disconnect(){this.observer?.disconnect(),this.mutationObserver?.disconnect()}observeItems(){this.observer.disconnect(),Array.from(this.element.children).forEach(i=>this.observer.observe(i))}flag(i){i.forEach(s=>{s.target.toggleAttribute("data-clipped",s.intersectionRatio<.99)})}};var Yh=class extends u{static targets=["navbar","genderSwitch","subscriptionRenewalBanner","promotionBanner"];connect(){this.deviceDetector=new He,this.shouldApplyScrollBehavior()&&(this.lastScrollY=window.scrollY,this.boundHandleScroll=this.handleScroll.bind(this),window.addEventListener("scroll",this.boundHandleScroll)),this.#e()}shouldApplyScrollBehavior(){let{mobileScrollBehaviorCurrentPageName:i}=this.element.dataset,s=["pages","payments"],r=window.innerWidth<=768,a=s.includes(i);return r&&a}handleScroll(){let i=window.scrollY,s=i>this.lastScrollY,r=i<this.lastScrollY;this.isAtTop(i)||this.isAtBottom(i)||(s?this.hideElements():r&&this.showElements(),this.lastScrollY=i)}isAtTop(i){return i<=0?(this.showElements(),this.lastScrollY=0,!0):!1}isAtBottom(i){let s=document.documentElement.scrollHeight-window.innerHeight;return i>=s?(this.hideElements(),this.lastScrollY=s,!0):!1}hideElements(){this.hasNavbarTarget&&this.hideTarget(this.navbarTarget),this.hasGenderSwitchTarget&&this.hideTarget(this.genderSwitchTarget),this.hasSubscriptionRenewalBannerTarget&&(this.subscriptionRenewalBannerTarget.classList.add("top-0!"),this.hideTarget(this.subscriptionRenewalBannerTarget)),this.hasPromotionBannerTarget&&(this.promotionBannerTarget.classList.add("top-[56px]!"),this.hideTarget(this.promotionBannerTarget))}showElements(){this.hasNavbarTarget&&this.showTarget(this.navbarTarget),this.hasGenderSwitchTarget&&this.showTarget(this.genderSwitchTarget),this.hasSubscriptionRenewalBannerTarget&&(this.subscriptionRenewalBannerTarget.classList.remove("top-0!"),this.showTarget(this.subscriptionRenewalBannerTarget)),this.hasPromotionBannerTarget&&(this.promotionBannerTarget.classList.remove("top-[56px]!"),this.showTarget(this.promotionBannerTarget))}hideTarget(i){i&&(i.classList.add("-translate-y-full"),i.classList.remove("translate-y-0"))}showTarget(i){i&&(i.classList.remove("-translate-y-full"),i.classList.add("translate-y-0"))}disconnect(){this.boundHandleScroll&&window.removeEventListener("scroll",this.boundHandleScroll)}#e(){this.deviceDetector.isPwa()&&this.hasPromotionBannerTarget&&this.hasSubscriptionRenewalBannerTarget&&(this.promotionBannerTarget.classList.replace("top-[46px]","top-[100px]"),this.subscriptionRenewalBannerTarget.classList.replace("top-[46px]","top-[100px]"))}};var Xh=class extends u{static targets=["successMessage","loadingSpinner","modal","form","comment","score"];connect(){this.setupModalListeners()}disconnect(){this.hasModalTarget&&this.removeModalListeners(),this.fadeTimeout&&clearTimeout(this.fadeTimeout)}setupModalListeners(){this.handleBackdropClick=this.handleBackdropClick.bind(this),this.handleEscapeKey=this.handleEscapeKey.bind(this),this.modalTarget.addEventListener("click",this.handleBackdropClick),document.addEventListener("keydown",this.handleEscapeKey)}removeModalListeners(){this.modalTarget.removeEventListener("click",this.handleBackdropClick),document.removeEventListener("keydown",this.handleEscapeKey)}handleBackdropClick(i){i.target===this.modalTarget&&this.closeModal()}handleEscapeKey(i){i.key==="Escape"&&this.closeModal()}showLoadingSpinner(i){i.preventDefault();let s=i.currentTarget;s.innerHTML="";let r=this.loadingSpinnerTarget;r.classList.remove("hidden"),s.appendChild(r);let a=s.closest("form");a&&a.requestSubmit()}showModal(i){i.preventDefault(),this.modalTarget.classList.remove("hidden");let s=i.target.closest("button").dataset.score;s&&this.hasScoreTarget&&(this.scoreTarget.value=s),this.commentTarget.focu
74s()}submitForm(i){i&&i.preventDefault(),this.formTarget.requestSubmit(),this.closeModal()}closeModal(){this.modalTarget.classList.add("hidden")}successMessageTargetConnected(i){i===this.successMessageTarget&&(this.fadeTimeout=setTimeout(()=>{i.style.transition="opacity 0.5s ease-out",i.style.opacity="0"},2e3))}};var Qh=class extends u{static targets=["carouselItem"];connect(){this.currentIndex=0,this.carouselItemTargets.length>0&&this.updateCarousel(),this.startSlideshow()}disconnect(){this.stopSlideshow()}next(){this.currentIndex=(this.currentIndex+1)%this.carouselItemTargets.length,this.updateCarousel()}previous(){console.log(`Current index before next(Previous: ${this.currentIndex}`),this.currentIndex=(this.currentIndex-1+this.carouselItemTargets.length)%this.carouselItemTargets.length,this.updateCarousel()}updateCarousel(){let i=this.carouselItemTargets.length;this.carouselItemTargets.forEach((s,r)=>{let a=(r-this.currentIndex+i)%i;s.classList.remove("opacity-100","translate-x-0","opacity-0","translate-x-full","-translate-x-full"),a===0?s.classList.add("opacity-100","translate-x-0"):a===1?s.classList.add("opacity-0","translate-x-full"):a===i-1?s.classList.add("opacity-0","-translate-x-full"):s.classList.add("opacity-0","translate-x-full")})}startSlideshow(){this.slideshowInterval=setInterval(()=>{this.next()},3e3)}stopSlideshow(){clearInterval(this.slideshowInterval)}};var Jh=class extends u{static targets=["annualBillingInfo","quarterBillingInfo","monthlyBillingInfo","coingateBuyButton","bankTransferButton","pixBankTransferButton","selectedPlan","creditCard","bankPayment","crypto","pix","selectedPaymentMethod","credit
74CardButton","coingateButton","pixButton","bankTransfer","annualBillingInfoOneTime","quarterBillingInfoOneTime","monthlyBillingInfoOneTime","selectedPlanType"];static values={currentPlan:String,isFreeOrInactive:Boolean};connect(){let i="yearly";i&&this.updatePlanButtonsAndInfo(i),this.element.querySelectorAll(".ab-sub-gradient-active").forEach(s=>{let r=s.querySelector('[data-ab-testing--subscription-target="selectedPlan"]');r&&r.classList.remove("hidden")})}updateStylesForPaymentSelectionButton(){let i=this.element.querySelectorAll('[data-ab-testing--subscription-target][data-action="click->ab-testing--subscription#selectPayment"]');i.forEach(n=>{n.classList.remove("hidden")});let s=Array.from(i).filter(n=>n.offsetParent!==null),r=s.length,a=r===3?"flex-col":"flex-row";s.forEach(n=>{r===1?n.classList.add("hidden"):(n.classList.remove("flex-col","flex-row"),n.classList.add(a))})}ensureDefaultActiveState(){this.element.querySelectorAll(".ab-sub-gradient-active").forEach(i=>{i.classList.remove("ab-sub-gradient-active"),i.classList.add("ab-sub-gradient");let s=i.querySelector('[data-ab-testing--subscription-target="selectedPlan"]');s&&s.classList.add("hidden")})}setActive(i){let s=i.currentTarget.dataset.planType;this.hasSelectedPlanTypeTarget&&(this.selectedPlanTypeTarget.value=s),this.updatePlanButtonsAndInfo(s),this.ensureDefaultActiveState(),i.currentTarget.classList.remove("ab-sub-gradient"),i.currentTarget.classList.add("ab-sub-gradient-active");let r=i.currentTarget.querySelector('[data-ab-testing--subscription-target="selectedPlan"]');r&&r.classList.remove("hidden"),this.updateStylesForPaymentSelectionButton()}updatePlanButtonsAndInfo(i){i==="yearly"?(this.showElement(this.hasCryptoTarget?this.cryptoTarget:null,"flex"),this.hasBankTransferButtonTarget&&this.showElement(this.bankTransferButtonTarget,"flex")):i==="quarterly"?(this.showElement(this.hasCryptoTarget?this.cryptoTarget:null,"flex"),this.hasBankTransferButtonTarget&&this.showElement(this.bankTransferButtonTarget,"flex")):(this.hasCryptoTarget&&(this.hideElement(this.cryptoTarget),this.resetPaymentClasses(),this.setActivePayment(this.hasPixTarget?this.pixTarget:this.creditCardTarget)),this.hasBankTransferButtonTarget&&this.hideElement(this.bankTransferButtonTarget));let s=this.selectedPaymentMethodTarget.value;this.showMessage(i,s),document.querySelectorAll("[data-plan-button]").forEach(r=>{if(r.tagName==="A"){let n=r.getAttribute("href").replace(/(premium)(-yearly|-monthly|-quarterly)?/,`$1-${i}`);r.setAttribute("href",n)}else{let a=r.closest("form"),l=a.action.replace(/(premium)(-yearly|-monthly|-quarterly)?/,`$1-${i}`);a.action=l}})}showElement(i,s="flex"){i&&(i.style.display=s)}hideElement(i){i&&(i.style.display="none")}selectPayment(i){this.resetPaymentClasses();let s=i.currentTarget;this.setActivePayment(s)}updateSelectedPaymentMethod(i){this.hasSelectedPaymentMethodTarget&&(this.selectedPaymentMethodTarget.value=i);let s=this.selectedPaymentMethodTarget.value;s==="pix"?(this.hideElement(this.creditCardButtonTarget),this.hideElement(this.coingateButtonTarget),this.hideElement(this.bankTransferTarget),this.showElement(this.pixButtonTarget)):s==="crypto"?(this.hideElement(this.creditCardButtonTarget),this.hideElement(this.pixButtonTarget),this.hideElement(this.bankTransferTarget),this.showElement(this.coingateButtonTarget)):s==="bankPayment"?(this.hideElement(this.creditCardButtonTarget),this.hideElement(this.coingateButtonTarget),this.hideElement(this.pixButtonTarget),this.showElement(this.bankTransferTarget)):(this.hideElement(this.coingateButtonTarget),this.hideElement(this.pixButtonTarget),this.hideElement(this.bankTransferTarget),this.showElement(this.creditCardButtonTarget)),this.showMessage(this.selectedPlanTypeTarget.value,s)}resetPaymentClasses(){this.hasCreditCardTarget&&(this.creditCardTarget.classList.remove("hidden"),this.creditCardTarget.classList.remove("ab-payment-gradient-active"),this.creditCardTarget.classList.add("ab-payment-gradient")),this.hasBankPaymentTarget&&(this.bankTransferTarget.classList.remove("hidden"),this.bankPaymentTarget.classList.remove("ab-payment-gradient-active"),this.bankPaymentTarget.classList.add("ab-payment-gradient")),this.hasCryptoTarget&&(this.cryptoTarget.classList.remove("hidden"),this.cryptoTarget.classList.remove("ab-payment-gradient-active"),this.cryptoTarget.classList.add("ab-payment-gradient")),this.hasPixTarget&&(this.pixTarget.classList.remove("hidden"),this.pixTarget.classList.remove("ab-payment-gradient-active"),this.pixTarget.classList.add("ab-payment-gradient"))}setActivePayment(i){let s=i.dataset.paymentType;this.updateSelectedPaymentMethod(s),i.classList.remove("ab-payment-gradient"),i.classList.add("ab-payment-gradient-active")}showMessage(i,s){s!=="creditCard"?(this.hideElement(this.hasAnnualBillingInfoTarget?this.annualBillingInfoTarget:null),this.hideElement(this.hasQuarterBillingInfoTarget?this.quarterBillingInfoTarget:null),this.hideElement(this.hasMonthlyBillingInfoTarget?this.monthlyBillingInfoTarget:null),i==="yearly"?(this.hideElement(this.hasQuarterBillingInfoOneTimeTarget?this.quarterBillingInfoOneTimeTarget:null),this.hideElement(this.hasMonthlyBillingInfoOneTimeTarget?this.monthlyBillingInfoOneTimeTarget:null),this.showElement(this.hasAnnualBillingInfoOneTimeTarget?this.annualBillingInfoOneTimeTarget:null,"block")):i==="quarterly"?(this.hideElement(this.hasAnnualBillingInfoOneTimeTarget?this.annualBillingInfoOneTimeTarget:null),this.hideElement(this.hasMonthlyBillingInfoOneTimeTarget?this.monthlyBillingInfoOneTimeTarget:null),this.showElement(this.hasQuarterBillingInfoOneTimeTarget?this.quarterBillingInfoOneTimeTarget:null,"block")):(this.hideElement(this.hasAnnualBillingInfoOneTimeTarget?this.annualBillingInfoOneTimeTarget:null),this.hideElement(this.hasQuarterBillingInfoOneTimeTarget?this.quarterBillingInfoOneTimeTarget:null),this.showElement(this.hasMonthlyBillingInfoOneTimeTarget?this.monthlyBillingInfoOneTimeTarget:null,"block"))):(this.hideElement(this.hasAnnualBillingInfoOneTimeTarget?this.annualBillingInfoOneTimeTarget:null),this.hideElement(this.hasQuarterBillingInfoOneTimeTarget?this.quarterBillingInfoOneTimeTarget:null),this.hideElement(this.hasMonthlyBillingInfoOneTimeTarget?this.monthlyBillingInfoOneTimeTarget:null),i==="yearly"?(this.hideElement(this.hasQuarterBillingInfoTarget?this.quarterBillingInfoTarget:null),this.hideElement(this.hasMonthlyBillingInfoTarget?this.monthlyBillingInfoTarget:null),this.showElement(this.hasAnnualBillingInfoTarget?this.annualBillingInfoTarget:null,"block")):i==="quarterly"?(this.hideElement(this.hasAnnualBillingInfoTarget?this.annualBillingInfoTarget:null),this.hideElement(this.hasMonthlyBillingInfoTarget?this.monthlyBillingInfoTarget:null),this.showElement(this.hasQuarterBillingInfoTarget?this.quarterBillingInfoTarget:null,"block")):(this.hideElement(this.hasAnnualBillingInfoTarget?this.annualBillingInfoTarget:null),this.hideElement(this.hasQuarterBillingInfoTarget?this.quarterBillingInfoTarget:null),this.showElement(this.hasMonthlyBillingInfoTarget?this.monthlyBillingInfoTarget:null,"block")))}};var Zh=class extends u{static targets=["messageInput","submitButton","messageBody","loaderTemplate","userMessageTemplate"];renderCompleteEvent="messages--immediate-render:render-complete";paywallShownEvent="messages--premium-paywall-loader:render-complete";handleRenderComplete=()=>{this.hasSubmitted=!1,this.#r(),this.toggleSendButton()};handlePaywallShown=()=>{this.#t(),this.handleRenderComplete()};handleKeydown=i=>{i.keyCode===13&&!i.shiftKey&&!this.deviceDetector.isMobile()&&(i.preventDefault(),this.messageInputTarget.value.trim().length>=2&&!this.submitButtonTarget.disabled&&!this.hasSubmitted&&this.element.requestSubmit())};connect(){this.deviceDetector=new He,this.hasSubmitted=!1,this.messageInputTarget.addEventListener("keydown",this.handleKeydown),this.toggleSendButton(),document.addEventListener(this.renderCompleteEvent,this.handleRenderComplete),document.addEventListener(this.paywallShownEvent,this.handlePaywallShown),this.deviceDetector.isMobile()||this.messageInputTarget.focu
74s()}focusInput(){this.messageInputTarget.focus()}disconnect(){this.messageInputTarget.removeEventListener("keydown",this.handleKeydown),this.#r(),document.removeEventListener(this.renderCompleteEvent,this.handleRenderComplete),document.removeEventListener(this.paywallShownEvent,this.handlePaywallShown)}toggleSendButton(){if(this.hasSubmitted){this.submitButtonTarget.disabled=!0;return}this.submitButtonTarget.disabled=this.messageInputTarget.value.trim().length<2}prepareSubmit(i){if(this.hasSubmitted){i.preventDefault();return}this.hasSubmitted=!0;let s=this.messageInputTarget.value;this.messageBodyTarget.value=s,this.#e(),this.messageInputTarget.value="",this.messageInputTarget.dispatchEvent(new Event("input",{bubbles:!0})),this.submitButtonTarget.disabled=!0,this.#i(),this.loaderTimeout=setTimeout(()=>this.#s(),2e3)}#e(){let i=this.messageInputTarget.value.trim();if(!i)return;let s=document.getElementById("messages-list");if(!s)return;let r=this.userMessageTemplateTarget.content.cloneNode(!0);this.lastOptimisticMessageId=`user-generated-message-${Date.now()}`,r.firstElementChild.id=this.lastOptimisticMessageId,r.querySelector("[data-message-text]").textContent=i,r.querySelector("[data-message-time]").textContent=new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit"}),s.appendChild(r),this.#a({force:!0})}#t(){this.lastOptimisticMessageId&&(document.getElementById(this.lastOptimisticMessageId)?.remove(),this.lastOptimisticMessageId=null)}#i(){let i=document.getElementById("messages-list");if(!i)return;let s=document.createElement("div");s.id="loader",s.classList.add("hidden"),i.appendChild(s)}#s(){let i=document.getElementById("loader");if(i){if(i.children.length>0){i.classList.remove("hidden");return}i.appendChild(this.loaderTemplateTarget.content.cloneNode(!0)),i.classList.remove("hidden"),this.#a()}}#r(){this.loaderTimeout&&(clearTimeout(this.loaderTimeout),this.loaderTimeout=null);let i=document.getElementById("loader");i&&i.remove()}#a({force:i=!1}={}){je({force:i})}};var ec=class extends u{static targets=["navbar","chatListContainer","profileContainer"];connect(){this.isMobile()&&this.shouldShowNavbar()&&this.showNavbar()}parseBoolean(i){return i==="true"||i===!0}isMobile(){return window.innerWidth<=1024}shouldShowNavbar(){return this.hasChatListContainerTarget&&this.parseBoolean(this.chatListContainerTarget.dataset.mobileNavbarVisibilityShouldShowNavbar)}hideNavbar(){this.navbarTarget.classList.add("hidden")}showNavbar(){this.navbarTarget.classList.remove("hidden")}};var tc=class extends u{static targets=["overlay","messageOptionsDropdownButton","messageOptionsDropdown","message","messagesContainer","messagesWrapper","messageBubbleContainer"];static values={isAndroid:Boolean};connect(){this.isAndroidValue=/Android/i.test(navigator.userAgent)}toggleMessageOptionsDropdown(i){let s=i.currentTarget,r=s.dataset.id,a=this.findDropdownById(r);if(a){let n=!a.classList.contains("hidden");this.hideAllDropdowns(),this.hideOverlay(),n?this.enableScrollForHighlightedMessage():(this.showOverlay(),this.updateMessageZIndex(s),this.showDropdown(a),this.centerMessageInContainer(a),this.hasMessagesWrapperTarget&&(this.resetBottomPadding(),r===this.getLastMessageId()&&this.setBottomPadding(a)),this.scrollMessagesContainerToBottom(r),setTimeout(()=>{this.disableScrollForHighlightedMessage()},300))}}disableScrollForHighlightedMessage(){this.messagesContainerTarget.classList.remove("overflow-auto"),(window.innerWidth>1024||this.isAndroidValue)&&this.messagesContainerTarget.classList.add("pr-1.5"),this.messagesContainerTarget.classList.add("overflow-hidden")}enableScrollForHighlightedMessage(){this.messagesContainerTarget.classList.remove("overflow-hidden"),(window.innerWidth>1024||this.isAndroidValue)&&this.messagesContainerTarget.classList.remove("pr-1.5"),this.messagesContainerTarget.classList.add("overflow-auto")}scrollMessagesContainerToBottom(i){i===this.getLastMessageId()&&this.messagesContainerTarget.scrollTo({top:this.messagesContainerTarget.scrollHeight,behavior:"smooth"})}
74updateMessageZIndex(i){this.messageTargets.forEach(r=>{r.classList.remove("z-50")});let s=i.closest('[id^="message_"]:not([id*="_option_"]):not([id*="_id_"])');s&&s.classList.add("z-50")}hideAllDropdowns(){this.messageOptionsDropdownTargets.forEach(i=>{i.classList.add("hidden")}),this.resetBottomPadding()}hideOverlay(){this.messageTargets.forEach(i=>{i.classList.remove("z-50")}),this.overlayTarget.classList.add("hidden")}showOverlay(){this.overlayTarget.classList.remove("hidden")}showDropdown(i){i.classList.remove("hidden")}findDropdownById(i){return this.messageOptionsDropdownTargets.find(s=>s.dataset.id===i)}centerMessageInContainer(i){let s=this.messagesContainerTarget;if(!s||!i)return;let r=s.getBoundingClientRect(),a=i.getBoundingClientRect(),n=8,l=0;a.bottom>r.bottom?l=a.bottom-r.bottom+n:a.top<r.top&&(l=a.top-r.top-n),l!==0&&s.scrollTo({top:s.scrollTop+l,behavior:"smooth"})}closeMessageOptionsDropdown(){this.messageTargets.forEach(i=>{i.classList.remove("z-50")}),this.hideOverlay(),this.hideAllDropdowns(),this.enableScrollForHighlightedMessage()}getLastMessageId(){if(!this.hasMessagesWrapperTarget)return null;let s=Array.from(this.messagesWrapperTarget.children).reverse().find(r=>r.id?.startsWith("message_id_"));return s?s.id.replace("message_id_",""):null}setBottomPadding(i){let r=(i.offsetHeight||0)+16;this.messagesWrapperTarget.style.paddingBottom=`${r}px`,this.hasMessagesContainerTarget&&(this.messagesContainerTarget.style.paddingBottom=`${r}px`)}resetBottomPadding(){this.hasMessagesWrapperTarget&&(this.messagesWrapperTarget.style.paddingBottom="",this.hasMessagesContainerTarget&&(this.messagesContainerTarget.style.paddingBottom=""))}};var ic=class extends u{static targets=["likeButton","dislikeButton","likeOutline","likeActive","dislikeOutline","dislikeActive","tellMoreButton","dialog","form","likeReasons","dislikeReasons","descriptionInput"];static values={messageId:Number,createUrl:String,destroyUrl:String,updateUrl:String,hasFeedback:Boolean,reaction:String};async toggleLike(){if(!this.#e){this.#e=!0;try{this.reactionValue==="like"?(this.#s(),this.#n(),this.#o(),await this.#c()):(this.#t(),this.#r(),await this.#h("like"))}finally{this.#e=!1}}}async toggleDislike(){if(!this.#e){this.#e=!0;try{this.reactionValue==="dislike"?(this.#s(),this.#n(),this.#o(),await this.#c()):(this.#i(),this.#a(),await this.#h("dislike"))}finally{this.#e=!1}}}#e=!1;openDialog(){this.#l(),this.dialogTarget.showModal()}closeDialog(){this.dialogTarget.close(),this.formTarget.reset()}async submitFeedback(i){i.preventDefault();let s=new FormData(this.formTarget),r=s.getAll("reasons[]"),a=s.get("description")||"",n=[...r,a].filter(Boolean).join(", ");(await ve(this.updateUrlValue,{body:{polymorphic_feedback:{description:n}},responseKind:"turbo-stream"})).ok?this.closeDialog():console.error("Failed to update feedback")}#t(){this.likeButtonTarget.classList.remove("hidden"),this.dislikeButtonTarget.classList.add("hidden")}#i(){this.likeButtonTarget.classList.add("hidden"),this.dislikeButtonTarget.classList.remove("hidden")}#s(){this.likeButtonTarget.classList.remove("hidden"),this.dislikeButtonTarget.classList.remove("hidden")}#r(){this.likeOutlineTarget.classList.add("hidden"),this.likeActiveTarget.classList.remove("hidden")}#a(){this.dislikeOutlineTarget.classList.add("hidden"),this.dislikeActiveTarget.classList.remove("hidden")}#n(){this.likeOutlineTarget.classList.remove("hidden"),this.likeActiveTarget.classList.add("hidden"),this.dislikeOutlineTarget.classList.remove("hidden"),this.dislikeActiveTarget.classList.add("hidden")}#o(){this.tellMoreButtonTarget.classList.add("hidden")}#l(){this.reactionValue==="like"?(this.likeReasonsTarget.classList.remove("hidden"),this.dislikeReasonsTarget.classList.add("hidden")):(this.likeReasonsTarget.classList.add("hidden"),this.dislikeReasonsTarget.classList.remove("hidden"))}async#h(i){let s=await Pt();(await H(this.createUrlValue,{body:{feedback_device_context:s,polymorphic_feedback:{reaction:i}},responseKind:"turbo-stream"})).ok||console.error("Failed to create feedback")}async#c(){if(!this.destroyUrlValue)return;(await Ye(this.destroyUrlValue,{responseKind:"turbo-stream"})).ok||console.error("Failed to remove feedback")}};var sc=class extends u{static values={mobile:String,desktop:String};connect(){this.setPlaceholder(),this.resizeObserver=new ResizeObserver(()=>this.setPlaceholder()),this.resizeObserver.observe(document.body)}disconnect(){this.resizeObserver&&this.resizeObserver.disconnect()}setPlaceholder(){let i=window.innerWidth<1024;this.element.placeholder=i?this.mobileValue:this.desktopValue}};var rc=class extends u{static targets=["messageInput","submitButton","messageBody","canSend","sendMessageIcon"];connect(){this.element.addEventListener("submit",i=>{this.blockMultipleSubmit(i)||(this.hasMessageBodyTarget&&(this.messageBodyTarget.value=this.messageInputTarget.value),this.data.get("canSend")==="true"&&(this.removeSuggestion(),this.removeNewMessageDivider(),this.appendUserMessage(),this.clearMessageInput(),this.disableSubmitButton(),this.toggleSendButton()))}),this.boundToggleSendButton=()=>this.toggleSendButton(),this.toggleSendButton(),this.messageInputTarget.addEventListener("input",this.boundToggleSendButton),this.element.addEventListener("toggle-send-button",()=>{this.toggleSendButton()}),this.boundPaywallRendered=()=>this.enableSubmitButton(),document.addEventListener("messages--premium-paywall-loader:render-complete",this.boundPaywallRendered)}sendMessageIconTargetConnected(){window.innerWidth<=1024&&this.toggleSendButton()}blockMultipleSubmit(i){let s=this.submitButtonTarget;return s.disabled||s.classList.contains("disabled")?(i.preventDefault(),!0):!1}disconnect(){this.messageInputTarget.removeEventListener("input",this.boundToggleSendButton),document.removeEventListener("messages--premium-paywall-loader:render-complete",this.boundPaywallRendered)}toggleSendButton(){let i=this.messageInputTarget.value.trim().length>0,s=window.innerWidth<=1024;this.hasSubmitButtonTarget&&(s?this.submitButtonTarget.classList.toggle("hidden",!i):this.submitButtonTarget.classList.remove("hidden"))}removeNewMessageDivider(){let i=document.getElementById("new-message-divider");i&&!i.classList.contains("hidden")&&i.remove()}removeSuggestion(){let i=document.getElementById("image-suggestion");i&&!i.classList.contains("hidden")&&i.remove();let s=document.getElementById("answer-suggestion");s&&!s.classList.contains("hidden")&&s.remove()}appendUserMessage(){let i=document.getElementById("send-question");if(i&&i.disabled)return!1;let s=document.querySelectorAll(".user-response"),r=s[s.length-1],a=it.escapeHTML(this.messageInputTarget.value);if(a=a.replace(/\*(.*?)\*/g,"<em style = 'color: #fff;
74opacity:0.8;'>*$1*</em>"),r&&a){let n=new Date,l=`${n.getHours().toString().padStart(2,"0")}:${n.getMinutes().toString().padStart(2,"0")}`,d=`
75        <div id="user-generated-message" class="mt-5 flex justify-end text-right mb-2 user-message">
76          <div class="relative flex-col gap-[9px] inline-flex w-auto max-w-[75%]">
77            <div class="px-4 py-2 bg-gradient-blue rounded-tl-3xl rounded-tr-3xl rounded-bl-3xl rounded-br-[4px] justify-start items-start inline-flex">
78              <div class="font-roboto text-grey-medium text-base lg:text-[15px] font-normal">
79                <p class="[word-break:break-word]">${a}</p>
80              </div>
81            </div>
82            <div class="text-neutral-500 text-[13px] font-normal">${l}</div>
83          </div>
84        </div>
85      </div>
86    `,m=this.convertStringToHTML(d),v=document.getElementById("messages-list");v&&v.appendChild(m),this.scrollToBottom(),document.querySelectorAll(".message-delete-action").forEach(E=>E.remove()),document.querySelectorAll(".regenerate-image-button").forEach(E=>E.remove()),this.appendPlaceholderLoader(),setTimeout(()=>{this.appendLoader()},3e3)}}scrollToBottom(){je({force:!0})}scrollIfAtBottom(){je()}appendPlaceholderLoader(){let s=this.convertStringToHTML(`
87      <div id="loader" class="hidden">
88      </div>
89    `),r=document.getElementById("messages-list");r&&r.appendChild(s)}appendLoader(){let s=this.convertStringToHTML(`
90    <div class="justify-start items-start gap-2.5 inline-flex slow-fade py-2">
91      <div class="justify-start items-start gap-3 flex">
92        <div class="flex-col justify-start items-start gap-[9px] inline-flex">
93          <div class="px-8 py-3 bg-[#252525] rounded-tl-3xl rounded-tr-3xl rounded-bl-[4px] rounded-br-3xl justify-start items-start inline-flex">
94            <div class="snippet" data-title="dot-flashing">
95              <div class="stage">
96                <div class="dot-flashing"></div>
97              </div>
98            </div>
99          </div>
100        </div>
101      </div>
102    </div>
103  `),r=document.getElementById("loader");r&&(r.appendChild(s),r.classList.remove("hidden"));let a=document.getElementById("loader");a&&a.classList.remove("hidden"),this.scrollIfAtBottom()}convertStringToHTML(i){let s=document.createElement("div");return s.innerHTML=i.trim(),s.firstChild}clearMessageInput(){this.messageBodyTarget.value=this.messageInputTarget.value,this.messageInputTarget.value=""}disableSubmitButton(){this.submitButtonTarget.style.opacity="0.5",this.submitButtonTarget.classList.add("disabled"),this.submitButtonTarget.disabled=!0}enableSubmitButton(){this.hasSubmitButtonTarget&&(this.submitButtonTarget.style.opacity="",this.submitButtonTarget.classList.remove("disabled"),this.submitButtonTarget.disabled=!1)}isPaidUser(){return document.getElementById("conversation-container")?.dataset.paidUser==="true"}};var ac=class extends u{static targets=["step","inputField","dropdown","howToUseModal","askButton","askImage","askImageNeon","askArrow","askArrowNeon","imageTip","suggestion","imageToggleSwitch"];howToUseModalTimeout=null;static values={imageModeEnabled:Boolean,chatImageToggleAvailable:Boolean};connect(){this.hasDropdownTarget&&this.closeDropdown(),document.addEventListener("click",this.handleClickOutside.bind(this)),document.addEventListener("keydown",this.handleKeydown.bind(this)),this.updateImageModeUI()}disconnect(){document.removeEventListener("click",this.handleClickOutside.bind(this)),document.removeEventListener("keydown",this.handleKeydown.bind(this)),this.howToUseModalTimeout&&clearTimeout(this.howToUseModalTimeout)}toggleDropdown(){this.dropdownTarget.classList.contains("hidden")?(this.openDropdown(),this.setActiveButtonState()):(this.closeDropdown(),this.resetButtonState())}openDropdown(){this.dropdownTarget.classList.remove("hidden")}closeDropdown(){this.hasDropdownTarget&&(this.dropdownTarget.classList.add("hidden"),this.resetButtonState())}setActiveButtonState(){this.chatImageToggleAvailableValue?(this.askButtonTarget.classList.add("border-[#9698FF]!"),this.askButtonTarget.classList.add("bg-[linear-gradient(90deg,#4346E6_0%,#6143E6_100%)]!")):(this.askButtonTarget.classList.add("border-[#4346e6]!"),this.askButtonTarget.classList.add("bg-[#1D1E36]!")),this.askImageTarget.classList.add("hidden"),this.askImageNeonTarget.classList.remove("hidden"),this.askArrowTarget.classList.add("hidden"),this.askArrowNeonTarget.classList.remove("hidden")}resetButtonState(){this.chatImageToggleAvailableValue?(this.askButtonTarget.classList.remove("border-[#9698FF]!"),this.askButtonTarget.classList.remove("bg-[linear-gradient(90deg,#4346E6_0%,#6143E6_100%)]!")):(this.askButtonTarget.classList.remove("border-[#4346e6]!"),this.askButtonTarget.classList.remove("bg-[#1D1E36]!")),this.askImageTarget.classList.remove("hidden"),this.askImageNeonTarget.classList.add("hidden"),this.askArrowTarget.classList.remove("hidden"),this.askArrowNeonTarget.classList.add("hidden")}handleClickOutside(i){this.element.contains(i.target)||this.shouldKeepDropdownOpen(i)||this.closeDropdown()}shouldKeepDropdownOpen(i){let s=document.getElementById("image-mode-toggle-modal");return!!(s&&s.open&&!i.target.closest('button[data-action*="dialog#close"]'))}handleKeydown(i){i.key==="Escape"&&this.closeDropdown()}next(){this.showStep(1)}prev(){this.showStep(0)}prevDelayed(){setTimeout(()=>{this.showStep(0)},1e3)}clickOnAskButton(){this.toggleDropdown()}appendText(i){let r=i.currentTarget.textContent.trim().replace("..."," ");this.inputFieldTarget.value=r,this.showSubmitButton(),this.closeDropdown(),this.showSuggestion(),this.inputFieldTarget.focu
103s()}showSubmitButton(){let i=new CustomEvent("toggle-send-button",{bubbles:!0,detail:{hasContent:!0}});this.element.dispatchEvent(i)}appendSuggestion(i){let s=this.inputFieldTarget.value,r=i.currentTarget.textContent.trim();this.inputFieldTarget.value=s+""+r,$("#image-suggestion").remove(),$("#send-question").click()}appendAnswerSuggestion(i){let s=this.inputFieldTarget.value,r=i.currentTarget.textContent.trim();this.inputFieldTarget.value=s+""+r,$("#answer-suggestion").remove(),$("#send-question").click()}showSuggestion(){$("#answer-suggestion").length>0&&$("#answer-suggestion").remove(),$("#image-suggestion").removeClass("invisible")}hideWalk(){$("#image-tip").length>0&&($("#image-tip")[0].remove(),setTimeout(()=>{$("#how-to-use").click()},100))}showStep(i){this.stepTargets.forEach((s,r)=>{s.style.display=r===i?"block":"none"})}toggleHowToUse(){this.howToUseModalTarget.classList.contains("hidden")?this.showModal():this.hideModal()}showModal(){this.howToUseModalTarget.classList.remove("hidden"),requestAnimationFrame(()=>{this.howToUseModalTarget.classList.add("transition-all","ease-out","duration-300"),this.howToUseModalTarget.classList.remove("opacity-0","translate-y-4","sm:translate-y-0","sm:scale-95"),this.howToUseModalTarget.classList.add("opacity-100","translate-y-0","sm:scale-100")})}hideModal(){this.howToUseModalTarget.classList.add("transition-all","ease-in","duration-200"),this.howToUseModalTarget.classList.remove("opacity-100","translate-y-0","sm:scale-100"),this.howToUseModalTarget.classList.add("opacity-0","translate-y-4","sm:translate-y-0","sm:scale-95"),this.howToUseModalTimeout=setTimeout(()=>{this.howToUseModalTarget.classList.add("hidden")},200)}closeHowToUseIfOutside(i){i.target.closest('[data-action*="message-ask-v2#toggleHowToUse"]')||this.howToUseModalTarget.contains(i.target)||(this.showStep(0),this.hideModal())}hideImageTip(){this.imageTipTarget.classList.add("hidden")}clickOnImageTipDescription(){this.hideImageTip(),this.toggleDropdown()}toggleImageMode(){if(this.imageModeEnabledValue&&!(localStorage.getItem("hideImageModalConfirmation")==="true")){let r=document.getElementById("image-mode-toggle-modal");r&&r.showModal();return}this.submitImageModeRequest()}submitImageModeRequest(){let i=document.getElementById("image-mode-toggle-form");i&&i.requestSubmit()}updateImageModeUIFromForm(){this.imageModeEnabledValue=!this.imageModeEnabledValue,this.updateImageModeUI()}updateImageModeUI(){if(!this.chatImageToggleAvailableValue)return;let i=this.imageModeEnabledValue;if(this.suggestionTargets.forEach(s=>{s.style.display=i?"":"none"}),this.hasImageToggleSwitchTarget){this.imageToggleSwitchTarget.setAttribute("aria-pressed",i?"true":"false"),this.imageToggleSwitchTarget.classList.toggle("bg-[#2ecc40]",i),this.imageToggleSwitchTarget.classList.toggle("bg-gray-400",!i);let s=this.imageToggleSwitchTarget.querySelector("[data-knob]");s&&(s.style.transform=i?"translateX(19px)":"translateX(3px)")}this.hasAskImageTarget&&this.askImageTarget.classList.toggle("opacity-30",!i),this.hasAskImageNeonTarget&&this.askImageNeonTarget.classList.toggle("opacity-30",!i)}};function Di(i,s){i.dispatch("render-complete",{bubbles:!0,detail:{reason:s}})}var nc=class extends u{static targets=["video"];connect(){this.playVideo()}playVideo(){let i=this.videoTarget;if(i.paused){let s=i.play();s!==void 0&&s.catch(r=>{console.log("Video autoplay failed:",r)})}}videoTargetConnected(){Di(this,"video-loaded")}};var oc=class extends u{connect(){let i=document.getElementById("message_body");i&&!this.isMobileDevice()&&i.focus();let s=new URLSearchParams(window.location.search);if(s.get("open_private_content")==="true"){window.history.replaceState({},"",window.location.pathname);let r=document.querySelector(["[data-action='click->refresh-content-pack#openModal']","[data-action='click->main#openRegistrationModal']"].join(","));r&&r.click()}if(s.get("open_video_call")==="true"&&(window.history.replaceState({},"",window.location.pathname),document.dispatchEvent(new CustomEvent("video-call:open-entry"))),s.get("open_candy_shorts")==="true"){let r=s.get("episode_id"),a=s.get("series_id");window.history.replaceState({},"",window.location.pathname);let n=document.querySelector("[data-controller~='candy-shorts--modal']");n&&this.application.getControllerForElementAndIdentifier(n,"candy-shorts--modal")?.open({episodeId:r,seriesId:a})}}isMobileDevice(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}};var YI=2e3,XI=5e3,lc=class extends u{static targets=["button"];static values={threshold:{type:Number,default:200}};connect(){this.lastScrollTop=this.element.scrollTop,na(!0,this.element),this.scheduleButtonRender=this.#h(this.#n.bind(this)),this.handleScroll=this.#r.bind(this),this.element.addEventListener("scroll",this.handleScroll,{passive:!0}),this.#e()}disconnect(){this.element.removeEventListener("scroll",this.handleScroll),this.#s()}scrollToBottom(){je({force:!0})}#e(){this.element.dataset.initialLoad="true",this.#i();let i=this.element.firstElementChild;i&&typeof ResizeObserver<"u"&&(this.resizeObserver=new ResizeObserver(()=>{this.#i(),this.#t()}),this.resizeObserver.observe(i)),this.handleUserScrollIntent=()=>this.#s(),this.userInputEvents=["wheel","touchmove","keydown"],this.userInputEvents.forEac
103h(r=>{this.element.addEventListener(r,this.handleUserScrollIntent,{passive:!0,once:!0})});let s=document.getElementById("messages_loader");s&&(this.handleFrameLoad=()=>this.#i(),s.addEventListener("turbo:frame-load",this.handleFrameLoad,{once:!0}),this.frameLoader=s),this.maxWindowTimer=setTimeout(()=>this.#s(),XI),this.#t()}#t(){this.stableTimer&&clearTimeout(this.stableTimer),this.stableTimer=setTimeout(()=>this.#s(),YI)}#i(){this.element.scrollTop=this.element.scrollHeight}#s(){this.element.dataset.initialLoad&&(delete this.element.dataset.initialLoad,this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),this.stableTimer&&(clearTimeout(this.stableTimer),this.stableTimer=null),this.maxWindowTimer&&(clearTimeout(this.maxWindowTimer),this.maxWindowTimer=null),this.handleUserScrollIntent&&(this.userInputEvents.forEach(i=>{this.element.removeEventListener(i,this.handleUserScrollIntent)}),this.handleUserScrollIntent=null),this.frameLoader&&this.handleFrameLoad&&(this.frameLoader.removeEventListener("turbo:frame-load",this.handleFrameLoad),this.frameLoader=null,this.handleFrameLoad=null),this.#a(),this.#n())}#r(){this.#a(),this.scheduleButtonRender()}#a(){let i=this.element.scrollTop;this.distanceFromBottom=this.element.scrollHeight-i-this.element.clientHeight,this.distanceFromBottom<this.thresholdValue?na(!0,this.element):i<this.lastScrollTop&&na(!1,this.element),this.lastScrollTop=i}#n(){this.hasButtonTarget&&(this.distanceFromBottom<this.thresholdValue?this.#l():this.#o())}#o(){this.buttonTarget.classList.remove("opacity-0","pointer-events-none"),this.buttonTarget.classList.add("opacity-100","pointer-events-auto")}#l(){this.buttonTarget.classList.remove("opacity-100","pointer-events-auto"),this.buttonTarget.classList.add("opacity-0","pointer-events-none")}#h(i){let s=!1;return()=>{s||(s=!0,requestAnimationFrame(()=>{s=!1,i()}))}}};var ca=class extends u{static values={delay:Number,conversationId:String,lastMessageText:String,lastMessageTimestamp:String,generatedAt:Number};connect(){this.delayValue>0?setTimeout(()=>{this.updateSidebar()},this.delayValue):this.updateSidebar()}updateSidebar(){if(this.staleUpdate()){this.element.remove();return}this.markApplied(),this.updateLastMessage(),this.updateTimestamp(),this.moveConversationToTop(),this.element.remove()}staleUpdate(){if(!this.generatedAtValue)return!1;let s=Number(this.conversationElement()?.dataset.sidebarUpdatedAt||0);return this.generatedAtValue<s}markApplied(){if(!this.generatedAtValue)return;let s=this.conversationElement();s&&(s.dataset.sidebarUpdatedAt=this.generatedAtValue)}conversationElement(){return document.getElementById(`conversation-${this.conversationIdValue}`)}updateLastMessage(){if(!this.lastMessageTextValue)return;let s=document.getElementById(`conversation-last-message-${this.conversationIdValue}`);s&&(s.textContent=this.lastMessageTextValue)}updateTimestamp(){if(!this.lastMessageTimestampValue)return;let s=document.getElementById(`conversation-last-message-at-${this.conversationIdValue}`);s&&(s.setAttribute("data-local-timezone-utc-time-value",this.lastMessageTimestampValue),this.application.getControllerForElementAndIdentifier(s,"local-timezone").convertToLocalTime())}moveConversationToTop(){let s=document.getElementById(`conversation-${this.conversationIdValue}`),r=document.getElementById("all_conversations");s&&r&&r.prepend(s)}};var hc=class extends u{static values={utcTime:String,format:{type:String,default:"full"}};connect(){this.utcTimeValue&&this.convertToLocalTime()}convertToLocalTime(){let i=new Date(this.utcTimeValue);this.element.textContent=this.formatValue==="compact"?this.#i(i):this.#t(i)+this.#e(i)}#e(i){let s=i.getHours(),r=i.getMinutes(),a=s>=12?"PM":"AM",n=s%12||12,l=r.toString().padStart(2,"0");return`${n}:${l}${a}`}#t(i){let s=this.#s(i);return s<=0?"":s===1?`${this.#r()}, `:s<7?`${i.toLocaleDateString(this.#n,{weekday:"long"})}, `:`${i.toLocaleDateString(this.#n,{weekday:"short",day:"numeric",month:"short"})}, `}#i(i){let s=this.#s(i);if(s<=0)return this.#e(i);if(s<7)return i.toLocaleDateString(this.#n,{weekday:"long"});let r=Math.floor(s/30.44);return r>=12?this.#a(Math.floor(r/12),"year"):r>=1?this.#a(r,"month"):this.#a(Math.floor(s/7),"week")}#s(i){let s=r=>new Date(r.getFullYear(),r.getMonth(),r.getDate());return Math.round((s(new Date)-s(i))/864e5)}#r(){let i=new Intl.RelativeTimeFormat(this.#n,{numeric:"auto"}).format(-1,"day");return i.charAt(0).toUpperCase()+i.slice(1)}#a(i,s){return new Intl.NumberFormat(this.#n,{style:"unit",unit:s,unitDisplay:"narrow"}).format(i)}get#n(){return document.documentElement.lang||"en"}};var Aw="chat-timezone-detection-sent",cc=class extends u{static values={url:String,current:String};connect(){let i=this.#i(),s=this.currentValue&&i===this.#e();!i||i===this.currentValue||s||ve(this.urlValue,{body:JSON.stringify({timezone:i}),contentType:"application/json"}).then(r=>{r.ok&&this.#t(i)}).catch(()=>{})}#e(){try{return localStorage.getItem(Aw)}catch{return null}}#t(i){try{localStorage.setItem(Aw,i)}catch{}}#i(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return null}}};var QI="premium-plus-character-gate",dc="premium-plus-gate:call";function Pw(){let i=document.getElementById(QI);return i?(i.open||i.showModal(),i.dispatchEvent(new CustomEvent(dc)),!0):!1}var Vw="animate-video-call-pulse",uc=class extends u{static targets=["modal","videoCta","audioCta","debugFailMint","debugWaitImage","pacingEnabled","pacingKnob"];static values={precheckUrl:String,callUrl:String,conversationId:Number};connect(){this.onOpenEntry=()=>this.open(),document.addEventListener("video-call:open-entry",this.onOpenEntry)}disconnect(){document.removeEventListener("video-call:open-entry",this.onOpenEntry)}open(){Pw()||(this.#t(),this.modalTarget.showModal())}close(){this.#t(),this.modalTarget.close()}async startVideoCall(){if(!this.videoCtaTarget.disabled){this.#e(this.videoCtaTarget);try{let i=await H(this.precheckUrlValue,{body:{conversation_id:this.conversationIdValue},responseKind:"json"});if((i.ok?await i.json:{}).insufficient){this.close();return}}catch{}window.location.assign(this.#s())}}#e(i){this.#i(s=>{s.disabled=!0}),i.classList.add(Vw)}#t(){this.#i(i=>{i.disabled=!1,i.classList.remove(Vw)})}#i(i){this.hasVideoCtaTarget&&i(this.videoCtaTarget),this.hasAudioCtaTarget&&i(this.audioCtaTarget)}#s(){let i=new URLSearchParams;this.hasDebugFailMintTarget&&this.debugFailMintTarget.checked&&i.set("debug_fail_mint","1"),this.hasDebugWaitImageTarget&&this.debugWaitImageTarget.checked&&i.set("debug_wait_context_image","1"),this.hasPacingEnabledTarget&&this.pacingEnabledTarget.checked&&(i.set("debug_pacing","1"),this.pacingKnobTargets.forEac
103h(r=>{Number.isFinite(r.valueAsNumber)&&i.set(r.dataset.knob,r.valueAsNumber)}));let s=i.toString();return s?`${this.callUrlValue}?${s}`:this.callUrlValue}};var gc=class extends u{static targets=["suggestion","userMessageTemplate","suggestionMessage","videoLoader"];static values={visitorCroToken:String};connect(){}hide(){this.#e(),this.appendMessage(),this.suggestionTarget.classList.remove("inline-flex"),this.suggestionTarget.classList.add("hidden"),this.disableMessageForm(),this.showVideoLoader()}#e(){let i=this.visitorCroTokenValue;i&&localStorage.setItem("visitor_cro_token",i)}showVideoLoader(){setTimeout(()=>{let i=this.videoLoaderTarget.cloneNode(!0);i.classList.remove("hidden");let s=document.getElementById("messages-list");s&&(s.appendChild(i),je())},3e3)}disableMessageForm(){let i=document.querySelector("[data-controller='message-form-v2']");i&&this.application.getControllerForElementAndIdentifier(i,"message-form-v2").disableSubmitButton()}appendMessage(){let i=this.userMessageTemplateTarget.cloneNode(!0);i.classList.remove("hidden");let s=i.querySelector("p");s.textContent=this.suggestionMessageTarget.textContent;let r=document.getElementById("messages-list");r&&(r.appendChild(i),je({force:!0}))}appendPlaceholderLoader(){let i=document.getElementById("messages-list");if(!i)return;let s=document.createElement("div");s.id="loader",i.appendChild(s)}};var mc=class extends u{static targets=["suggestion"];connect(){}hide(i){this.suggestionTarget.classList.remove("inline-flex"),this.suggestionTarget.classList.add("hidden"),this.setKeyValue(i),this.handleMessage(i)}handleMessage(i){this.keyValue==="1"?(this.appendMessage(i),this.disableMessageForm(),this.showVideoLoader()):(this.updateMessageFormInput(i),this.submitMessageForm())}showVideoLoader(){setTimeout(()=>{let i=$("#video-loader-container")[0].cloneNode(!0);i.classList.remove("hidden"),$("#messages-list")[0].appendChild(i),je()},3e3)}updateMessageFormInput(i){$("#message_body")[0].value=i.currentTarget.outerText}submitMessageForm(){this.getMessageFormController().sendMessageIconTarget.click()}disableMessageForm(){this.getMessageFormController().disableSubmitButton()}getMessageFormController(){let i=document.querySelector("[data-controller='message-form-v2']");return this.application.getControllerForElementAndIdentifier(i,"message-form-v2")}setKeyValue(i){this.keyValue=i.currentTarget.dataset.key}appendMessage(i){let s=it.createUserMessageTemplate(i.currentTarget.outerText);s.classList.remove("hidden"),$("#messages-list")[0].appendChild(s),je({force:!0})}};var pc=class extends u{static values={profileSlug:String};connect(){this.handleDisableEventBound=this.handleDisableEvent.bind(this),document.addEventListener("conversations--favorite-button-component:disable",this.handleDisableEventBound)}disconnect(){this.handleDisableEventBound&&document.removeEventListener("conversations--favorite-button-component:disable",this.handleDisableEventBound)}handleDisableEvent(i){i.detail.profileSlug===this.profileSlugValue&&(this.element.disabled=!0)}submit(i){i.preventDefault(),this.dispatch("disable",{detail:{profileSlug:this.profileSlugValue}}),this.element.closest("form")?.requestSubmit()}};function pe(i,s){let r=document.querySelector(`[data-controller~="${i}"]`);if(!r)return null;try{return s.getControllerForElementAndIdentifier(r,i)}catch(a){return console.error(`Error getting controller ${i}:`,a),null}}var fc=class extends u{static targets=["content","wrapper","modalWindow","prevArrow","nextArrow","feedbackContainer","createVideoButton"];static values={images:Array,isModal:Boolean,is10sVideoEnabled:Boolean,isFlashBoobsEnabled:Boolean,is20sVideoEnabled:Boolean,is60sVideoEnabled:Boolean,brokenImageText:String};DEBUG=!1;connect(){this.isModalValue&&(this.currentIndex=0,this.totalSlides=0,this.currentImages=[],this.currentMessageMediaId=null,this.is10sVideoEnabled=!1,this.isFlashBoobsEnabled=!1,this.is20sVideoEnabled=!1,this.is60sVideoEnabled=!1,this.isNsfw=!1,this.boundHandleOutsideClick=this.handleOutsideClick.bind(this),this.boundHandleKeydown=this.handleKeydown.bind(this),this.boundHandlePrevArrowClick=this.handlePrevArrowClick.bind(this),this.boundHandleNextArrowClick=this.handleNextArrowClick.bind(this))}openFullscreen(i){let s=parseInt(i.currentTarget.dataset.mediaGr
103idCarouselIndexParam||0);if(!this.hasImagesValue){this.logError("Could not find images data");return}this.is10sVideoEnabledValue===void 0&&this.logError("10s video value is not set");let r=document.getElementById("media-grid-carousel-modal");if(!r){this.logError("Could not find modal");return}let a=this.application.getControllerForElementAndIdentifier(r,"messages--media-grid-carousel");if(!a){this.logError("Could not find modal controller");return}a.openFullscreenFromGrid(this.imagesValue,s,this.is10sVideoEnabledValue,this.isFlashBoobsEnabledValue,this.is20sVideoEnabledValue,this.is60sVideoEnabledValue)}openFullscreenFromGrid(i,s=0,r=!1,a=!1,n=!1,l=!1){this.#i(),this.currentImages=i,this.currentIndex=s,this.is10sVideoEnabled=r,this.isFlashBoobsEnabled=a,this.is20sVideoEnabled=n,this.is60sVideoEnabled=l,this.populateModalContent(),this.setupModalEventListeners(),this.swipe=new Ls({container:this.hasContentTarget?this.contentTarget:null,listener:this.element,onNext:()=>this.#e(),onPrevious:()=>this.#t(),canSwipeNext:()=>this.currentIndex<this.totalSlides-1,canSwipePrevious:()=>this.currentIndex>0}),this.swipe.connect(),this.showImage(this.currentIndex),this.element.classList.remove("hidden")}populateModalContent(){!this.hasWrapperTarget||!this.currentImages.length||(this.wrapperTarget.innerHTML="",this.currentImages.forEach((i,s)=>{let r=document.createElement("div");r.className="flex items-center justify-center relative slide",r.style.display="none",r.dataset.mediaGridCarouselMediaId=i.media_id,r.dataset.videoGenerationAvailable=i.video_generation_available,r.dataset.messageId=i.message_id,r.dataset.status=i.status,r.dataset.video10sAvailable=i.video_10s_available,r.dataset.video20sAvailable=i.video_20s_available,r.dataset.video60sAvailable=i.video_60s_available,r.dataset.isNsfw=i.is_nsfw;let a=document.createElement("img");if(a.src=i.url,a.className="max-h-[90vh] max-w-[90vw] object-contain rounded-[10px] justify-center items-center",a.alt=`Image ${s+1}`,r.appendChild(a),i.status!=="completed"){let l="single"==="single"?"top-[33%]":"top-[50%]",d=document.createElement("div");d.className=`absolute inset-0 flex items-center justify-center font-medium md:text-md md:w-3/4 text-center mx-auto ${l}`,d.style.color="#A4A4A4",this.brokenImageTextValue&&(d.innerHTML=this.brokenImageTextValue),r.appendChild(d)}this.wrapperTarget.appendChild(r)}),this.totalSlides=this.currentImages.length)}setupModalEventListeners(){this.element.addEventListener("click",this.boundHandleOutsideClick),this.prevArrowTarget.addEventListener("click",this.boundHandlePrevArrowClick),this.nextArrowTarget.addEventListener("click",this.boundHandleNextArrowClick),document.addEventListener("keydown",this.boundHandleKeydown)}showImage(i=0){if(!this.hasWrapperTarget)return;let s=this.wrapperTarget.querySelectorAll(".slide");if(this.totalSlides=s.length,this.totalSlides!==0&&(this.currentIndex=Math.max(0,Math.min(i,this.totalSlides-1)),!!s[this.currentIndex])){if(s.forEach(r=>r.style.display="none"),s[this.currentIndex].style.display="flex",this.currentIndex===0?this.prevArrowTarget.classList.add("hidden"):this.prevArrowTarget.classList.remove("hidden"),this.currentIndex===this.totalSlides-1?this.nextArrowTarget.classList.add("hidden"):this.nextArrowTarget.classList.remove("hidden"),s[this.currentIndex].dataset.status!=="completed"){this.hasCreateVideoButtonTarget&&this.createVideoButtonTarget.classList.add("hidden");return}this.toggleVideoGenerationButton(s[this.currentIndex]),this.is10sVideoEnabled=s[this.currentIndex].dataset.video10sAvailable==="true",this.is20sVideoEnabled=s[this.currentIndex].dataset.video20sAvailable==="true",this.is60sVideoEnabled=s[this.currentIndex].dataset.video60sAvailable==="true",this.isNsfw=s[this.currentIndex].dataset.isNsfw==="true",this.currentMessageMediaId=s[this.currentIndex].dataset.mediaGridCarouselMediaId,this.currentMessageId=s[this.currentIndex].dataset.messageId}}toggleVideoGenerationButton(i){if(!this.hasCreateVideoButtonTarget||!i)return;i.dataset.videoGenerationAvailable==="true"?this.createVideoButtonTarget.classList.remove("hidden"):this.createVideoButtonTarget.classList.add("hidden")}nextImage(){this.currentIndex>=this.totalSlides-1||this.#e()}previousImage(){this.currentIndex<=0||this.#t()}#e(){this.currentIndex<this.totalSlides-1&&this.showImage(this.currentIndex+1)}#t(){this.currentIndex>0&&this.showImage(this.currentIndex-1)}handleOutsideClick(i){i.target===this.modalWindowTarget&&!this.element.classList.contains("hidden")&&this.closeFullscreen()}handlePrevArrowClick(i){i.preventDefault(),this.previousImage()}handleNextArrowClick(i){i.preventDefault(),this.nextImage()}handleKeydown(i){switch(i.key){case"Escape":this.closeFullscreen();break;case"ArrowRight":i.preventDefault(),this.nextImage();break;case"ArrowLeft":i.preventDefault(),this.previousImage();break}}stopPropagation(i){i.stopPropagation()}closeFullscreen(){this.isModalValue&&(this.#i(),this.element.classList.add("hidden"),this.hasWrapperTarget&&(this.wrapperTarget.innerHTML=""),this.hasCreateVideoButtonTarget&&this.createVideoButtonTarget.classList.add("hidden"))}#i(){this.swipe?.disconnect(),this.swipe=null,this.currentMessageMediaId=null,this.currentIndex=0,this.currentImages=[],this.totalSlides=0,this.is10sVideoEnabled=!1,this.is20sVideoEnabled=!1,this.is60sVideoEnabled=!1,this.isNsfw=!1,this.element.removeEventListener("click",this.boundHandleOutsideClick),this.hasPrevArrowTarget&&this.prevArrowTarget.removeEventListener("click",this.boundHandlePrevArrowClick),this.hasNextArrowTarget&&this.nextArrowTarget.removeEventListener("click",this.boundHandleNextArrowClick),document.removeEventListener("keydown",this.boundHandleKeydown)}generateVideo(i){if(this.currentMessageMediaId&&this.currentMessageId){i.currentTarget.dataset.messageId=this.currentMessageId,i.currentTarget.dataset.messageMediumId=this.currentMessageMediaId,i.currentTarget.dataset.is10sVideoEnabled=this.is10sVideoEnabled,i.currentTarget.dataset.isFlashBoobsEnabled=this.isFlashBoobsEnabled,i.currentTarget.dataset.is20sVideoEnabled=this.is20sVideoEnabled,i.currentTarget.dataset.is60sVideoEnabled=this.is60sVideoEnabled,i.currentTarget.dataset.isNsfw=this.isNsfw;
103let s=pe("messages--video-generation-modal-visibility",this.application);s?s.showConfirmation(i):this.logError("Could not find video generation modal visibility controller")}else this.logError("No message medium id found");this.closeFullscreen()}disconnect(){this.closeFullscreen()}logError(i){this.DEBUG&&console.error(`[MediaGridCarouselController] - [${new Date().toISOString()}]: ${i}`)}};var vc=class extends u{connect(){let i=document.getElementById("messages-list");i&&(this.staleObserver=new MutationObserver(s=>this.#e(s)),this.staleObserver.observe(i,{childList:!0}))}disconnect(){this.staleObserver?.disconnect()}prepareEdit(){let i=document.querySelector("#edit-message-form form");i&&(i.dataset.canEdit="true")}#e(i){let s=this.element.closest("[id^='message_id_']");if(!s)return;i.flatMap(n=>Array.from(n.addedNodes)).some(n=>this.#t(n,s))&&(this.staleObserver.disconnect(),this.element.remove())}#t(i,s){return i instanceof window.Element&&(i.id?.startsWith("message_id_")||i.id?.startsWith("user-generated-message"))&&i!==s&&(s.compareDocumentPosition(i)&window.Node.DOCUMENT_POSITION_FOLLOWING)!==0}};var JI="PWA Install Prompt Shown",ZI="PWA Install Prompt Accepted",eA="PWA Install Prompt Dismissed",tA="[data-action*='pwa#install']",Mw="pwa_install_cta",er=null,xT=!1;function iA(){return document.body?.dataset?.pwaInstallable==="true"||!!document.querySelector(tA)}window.addEventListener("beforeinstallprompt",i=>{iA()&&(i.preventDefault(),er=i)});var Tc=class extends u{static targets=["closeButton","banner","navbar","promotionBanner","modalInstructions","pwaLink","mobileBottomBar","carouselContainer","chatListContainer","mobileBottomBarContainer","rewardToast"];static values={scrollThreshold:{type:Number,default:0},bannerDelay:{type:Object,default:{initial:3,medium:7,max:14}},installPingUrl:{type:String,default:""},ctaClickUrl:{type:String,default:""},bannerDismissUrl:{type:String,default:""},serverDrivenBanner:{type:Boolean,default:!1}};connect(){this.deviceDetector=new He,this.deviceDetector.isPwa()&&this.pwaLinkTargets.forEach(s=>s.classList.add("hidden")),this.deviceDetector.isPwa()&&(this.hasCarouselContainerTarget&&this.carouselContainerTarget.classList.add("pt-[60px]"),this.hasChatListContainerTarget&&this.deviceDetector.isIOS()&&this.chatListContainerTarget.classList.add("pt-[70px]"),this.pingInstall()),this.hasBannerTarget&&(this.showBanner(),this.lastScrollY=window.scrollY,this.boundHandleScroll=this.handleScrolling.bind(this),this.addScrollListener()),this.hasModalInstructionsTarget&&this.updateModalInstructions(),this.hasMobileBottomBarTarget&&this.changeBottomBarPosition();let i=document.getElementById("any_login");this.deviceDetector.isPwa()&&i&&(i.style.bottom="env(safe-area-inset-bottom)"),this.boundHandleAppInstalled=this.handleAppInstalled.bind(this),window.addEventListener("appinstalled",this.boundHandleAppInstalled)}disconnect(){window.removeEventListener("appinstalled",this.boundHandleAppInstalled),this.removeScrollListener(),this.observer&&(this.observer.disconnect(),this.observer=null)}handleAppInstalled(){er=null,this.hideInstallPrompts(),this.pingInstall({stampOnly:!0})}install(i){if(xT)return;if(!er){this.showModal();return}let s=er,r=i?.currentTarget?.dataset?.pwaSource||Mw;er=null,xT=!0,Promise.resolve().then(()=>s.prompt()).then(()=>(this.trackInstallPrompt(JI,r),s.userChoice)).then(({outcome:a})=>{this.trackInstallPrompt(a==="accepted"?ZI:eA,r)}).catch(a=>{er=s,Ge(a,{context:"pwa_native_install_prompt",source:r}),this.showModal()}).finally(()=>{xT=!1})}trackInstallPrompt(i,s=Mw){typeof mixpanel>"u"||!mixpanel.track||mixpanel.track(i,$t({Source:s}))}pingInstall({stampOnly:i=!1}={}){if(!this.installPingUrlValue)return;let s=i?`${this.installPingUrlValue}?stamp_only=1`:this.installPingUrlValue;H(s,{responseKind:"json"}).then(r=>r.ok?(this.hideInstallPrompts(),r.json):null).then(r=>{r&&r.reward_granted&&(this.revealRewardToast(),this.refreshTokenBalance(r.token_balance_html))}).catch(()=>{})}hideInstallPrompts(){document.querySelectorAll("[data-pwa-target='pwaLink']").forEach(i=>i.classList.add("hidden")),this.hasBannerTarget&&!this.bannerTarget.classList.contains("hidden")&&(this.bannerTarget.classList.add("hidden"),this.navbarTarget.classList.replace("top-16","top-0"),this.hasPromotionBannerTarget&&(this.promotionBannerTarget.classList.replace("top-[164px]","top-[100px]"),this.promotionBannerTarget.classList.replace("top-[110px]","top-[46px]")))}refreshTokenBalance(i){i&&document.querySelectorAll("[data-target='user-token-balance']").forEach(s=>{s.outerHTML=i})}revealRewardToast(){this.hasRewardToastTarget&&(this.rewardToastTarget.classList.remove("hidden"),this.rewardToastTarget.setAttribute("data-controller","toast-stack"))}recordCtaClick(){this.ctaClickUrlValue&&H(this.ctaClickUrlValue).cat
103ch(()=>{})}close(){if(this.bannerTarget.classList.add("hidden"),this.navbarTarget.classList.replace("top-16","top-0"),this.hasPromotionBannerTarget&&(this.promotionBannerTarget.classList.replace("top-[164px]","top-[100px]"),this.promotionBannerTarget.classList.replace("top-[110px]","top-[46px]")),this.addScrollListener(),this.serverDrivenBannerValue){this.bannerDismissUrlValue&&H(this.bannerDismissUrlValue).catch(()=>{});return}this.setLocalStorage("pwaBannerClosedCount",this.getLocalStorage("pwaBannerClosedCount")+1),this.setLocalStorage("pwaLastBannerClosedAt",Date.now())}shouldShowBanner(){let i=this.getLocalStorage("pwaLastBannerClosedAt");return i?this.getDaysSinceLastClosed(i)>=this.getDaysToWait(this.getLocalStorage("pwaBannerClosedCount")):!0}getDaysToWait(i){let{initial:s,medium:r,max:a}=this.bannerDelayValue;return i<=2?s:i<=4?r:a}getDaysSinceLastClosed(i){return Math.floor((Date.now()-i)/(1e3*60*60*24))}showBanner(){this.deviceDetector.isPwa()||!this.serverDrivenBannerValue&&!this.shouldShowBanner()||(this.hasPromotionBannerTarget&&(this.promotionBannerTarget.classList.replace("top-[100px]","top-[164px]"),this.promotionBannerTarget.classList.replace("top-[46px]","top-[110px]")),this.bannerTarget.classList.remove("hidden"),this.navbarTarget.classList.replace("top-0","top-16"))}showBannerPosition(){!this.hasBannerTarget||!this.hasNavbarTarget||(this.navbarTarget.classList.replace("top-0","top-16"),this.bannerTarget.classList.remove("opacity-0"),this.bannerTarget.classList.add("opacity-100"),this.hasPromotionBannerTarget&&(this.promotionBannerTarget.classList.replace("top-[100px]","top-[164px]"),this.promotionBannerTarget.classList.replace("top-[46px]","top-[110px]")))}handleScrolling(){this.bannerTarget.classList.contains("hidden")||requestAnimationFrame(()=>{let i=window.scrollY,s=i>this.lastScrollY;this.isAtTop()?this.showBannerPosition():s&&(this.navbarTarget.classList.replace("top-16","top-0"),this.bannerTarget.classList.remove("opacity-100"),this.bannerTarget.classList.add("opacity-0"),this.hasPromotionBannerTarget&&(this.promotionBannerTarget.classList.replace("top-[164px]","top-[100px]"),this.promotionBannerTarget.classList.replace("top-[110px]","top-[46px]"))),this.lastScrollY=i})}isAtTop(){return window.scrollY<=0}showModal(){let i=document.getElementById(this.getModalId());if(i){i.classList.remove("hidden");let s=i.querySelector(".flex.flex-col.justify-between.items-center.md\\:flex-row.relative");s&&this.deviceDetector.isSafariIOS()&&s.classList.add("ios-modal-with-triangle"),this.hasNavbarTarget&&(this.navbarTarget.classList.remove("top-16"),this.navbarTarget.classList.add("top-0")),this.hasPromotionBannerTarget&&(this.promotionBannerTarget.classList.remove("top-[164px]"),this.promotionBannerTarget.classList.add("top-[100px]"),this.promotionBannerTarget.classList.remove("top-[110px]"),this.promotionBannerTarget.classList.add("top-[46px]")),this.isAtTop()&&this.showBannerPosition(),this.removeScrollListener(),this.observer?.disconnect(),this.observer=new MutationObserver(r=>{r.forEach(a=>{a.target.classList.contains("hidden")&&(this.addScrollListener(),this.observer?.disconnect(),this.observer=null)})}),this.observer.observe(i,{attributes:!0,attributeFilter:["class"]})}}getModalId(){return this.deviceDetector.isIOS()?(this.deviceDetector.isSafari(),"ios-modal"):this.deviceDetector.isAndroid()&&this.deviceDetector.isChrome()?"android-chrome-modal":"ios-modal"}getLocalStorage(i){return parseInt(localStorage.getItem(i))||0}setLocalStorage(i,s){localStorage.setItem(i,s)}addScrollListener(){this.hasScrollListener||(window.addEventListener("scroll",this.boundHandleScroll,{passive:!0}),this.hasScrollListener=!0)}removeScrollListener(){this.hasScrollListener&&(window.removeEventListener("scroll",this.boundHandleScroll,{passive:!0}),this.hasScrollListener=!1)}updateModalInstructions(){let i=this.modalInstructionsTarget.dataset.safariInstruction||t("pwa.modal.instructions.ios.safari"),s=this.modalInstructionsTarget.dataset.chromeInstruction||t("pwa.modal.instructions.ios.chrome"),r=this.deviceDetector.isSafariIOS()?i:s;this.modalInstructionsTarget.textContent=r}stopPropagation(i){i.stopPropagation()}
103updateElementClasses(i,s,r){s.forEach(a=>i.classList.remove(a)),r.forEach(a=>i.classList.add(a))}changeBottomBarPosition(){if(!this.deviceDetector.isPwa()||!this.deviceDetector.isIOS())return;this.mobileBottomBarTarget.dataset.pwaShouldChangeBottomBarPosition==="true"&&this.hasMobileBottomBarContainerTarget?this.updateElementClasses(this.mobileBottomBarContainerTarget,[],["h-screen","relative"]):this.hasMobileBottomBarContainerTarget&&this.updateElementClasses(this.mobileBottomBarContainerTarget,["h-screen","relative"],[])}};var ft=class{static DURATION_5_SECONDS="5";static DURATION_10_SECONDS="10";static TOKEN_COST_5_SECONDS=12;static TOKEN_COST_10_SECONDS=20;static SELECTED_STYLE_CLASSES=["border-2","border-purple-brand","bg-gradient-suggestion"];static UNSELECTED_STYLE_CLASSES=["border","border-black-border","bg-black-card-light"];static calculateTokenCost(s,r=null){let a=this.pricingFor(s,r);if(a)return kT(a);if(r){let n=`tokenCost-${s}s`;if(r.dataset&&r.dataset[n])return parseFloat(r.dataset[n]);let l=r.querySelector(`[data-token-cost-${s}s]`);
103if(l&&l.dataset[n])return parseFloat(l.dataset[n])}switch(s){case this.DURATION_5_SECONDS:return this.TOKEN_COST_5_SECONDS;case this.DURATION_10_SECONDS:return this.TOKEN_COST_10_SECONDS;default:return this.TOKEN_COST_10_SECONDS}}static pricingFor(s,r){let a=r?.dataset.pricing?r:r?.querySelector("[data-pricing]");return JSON.parse(a?.dataset.pricing||"{}")[s]}static updateVideoCost(s,r,a=null){let n=this.calculateTokenCost(r,a);s.hasVideoCostTarget&&s.videoCostTargets.forEach(l=>{a?a.contains(l)&&hi(l,this.pricingFor(r,a)||{price:n}):hi(l,this.pricingFor(r,a)||{price:n})})}static updateDurationHiddenFields(s,r){s.hasDurationHiddenFieldTarget&&s.durationHiddenFieldTargets.forEach(a=>{a.value=r})}static updatePromptTypeHiddenFields(s,r){s.hasPromptTypeHiddenFieldTarget&&s.promptTypeHiddenFieldTargets.forEach(a=>{a.value=r})}static handleDurationChange(s,r){let a=r.detail.duration,n=r.target.closest("dialog, [data-modal]");this.updateVideoCost(s,a,n),this.updateDurationHiddenFields(s,a)}static handleStyleChange(s,r){let a=r.detail.style;this.updatePromptTypeHiddenFields(s,a),this.updateDurationAvailability(s)}static updateDurationAvailability(s){let r=s.videoDurationSelectionOutlet;if(!r)return;let a=s.element.querySelector("[data-standard-long-video-enabled]");a&&(r.tenSecondsAvailableValue=a.dataset.standardLongVideoEnabled==="true")}static closeFlashBoobsModal(s,r){r&&(r.open&&r.close(),typeof s.showScrollTopIconTop=="function"&&s.showScrollTopIconTop())}static isFlashBoobsModalOpen(s){return s?s.open:!1}static selectModalTarget(s,r,a){return r&&s.hasVideoGenerationFlashBoobsModalTarget?s.videoGenerationFlashBoobsModalTarget:a&&s.hasVideoGeneration10sModalTarget?s.videoGeneration10sModalTarget:s.videoGenerationModalTarget}static openModal(s){s&&(s.tagName==="DIALOG"?(s.showModal(),s.dispatchEvent(new CustomEvent("modal-opened",{bubbles:!0}))):s.classList.remove("hidden"))}static updateProfileNameText(s,r,a){if(!s||!a)return;let n=`[data-${r}-target="profileNameText"]`,l=s.querySelector(n);if(l){let d=l.dataset.translationTemplate||"";l.textContent=d.replace("%{profile_name}",a)}}static showStandardOption(s){let r=s?.querySelector("[data-style='standard_v2']");r&&r.classList.remove("hidden")}static setUpRealisticFlashBoobsModal(s){if(!s)return;let r=s.querySelector(".modal-box");r&&r.classList.add("!h-[410px]"),this.selectStandardOption(s,"standard_v2"),this.showStandardOption(s),this.#t(s,"standard_v2")}static#e(s,r){r?(s.classList.remove(...this.UNSELECTED_STYLE_CLASSES),s.classList.add(...this.SELECTED_STYLE_CLASSES)):(s.classList.remove(...this.SELECTED_STYLE_CLASSES),s.classList.add(...this.UNSELECTED_STYLE_CLASSES))}static#t(s,r){let a=s.querySelector("input[name='prompt_type']");a&&(a.value=r);let n=s.querySelector("[data-controller*='video-style-selection']");n&&n.setAttribute("data-video-style-selection-selected-style-value",r)}static#i(s,r,a,n){if(!s)return;let l=s.querySelector(r);if(!l)return;this.#e(l,!0),s.querySelectorAll(a).forEach(m=>{this.#e(m,!1)}),this.#t(s,n)}static selectStandardOption(s,r){this.#i(s,"[data-style='standard_v2']","[data-style='flash_boobs_ltx']",r)}};var bc=class extends u{static targets=["videoGenerationModal","videoGeneration10sModal","videoGenerationFlashBoobsModal","submitButton","videoLoader","firstVideoSuggestionTooltip","sendButtonTooltip","inputField","notEnoughTokensModal","premiumPaywall","durationButton","tenSecNewBadge","twentySecNewBadge","sixtySecNewBadge","durationHiddenField","videoCost","promptTypeHiddenField"];static values={submitUrl:String,firstVideoGenerated:Boolean};static outlets=["video-duration-selection"];connect(){if(this.tooltipTimeout=null,this.sendButtonTooltipTimeout=null,!this.hasVideoGenerationModalTarget||!this.hasVideoGeneration10sModalTarget){Di(this,"messages--video-generation");return}this.boundHandleInput=this.handleInput.bind(this),this.hasInputFieldTarget&&this.inputFieldTarget.addEventListener("input",this.boundHandleInput),this.videoGenerationModalTarget.addEventListener("close_modal",()=>{this.closeModalIfVisible(this.videoGenerationModalTarget,this.hideModal),this.closeModalIfVisible(this.videoGeneration10sModalTarget,this.hide10sVideoModal),this.hasVideoGenerationFlashBoobsModalTarget&&this.closeModalIfVisible(this.videoGenerationFlashBoobsModalTarget,this.hideFlashBoobsModal)}
103),Di(this,"messages--video-generation")}getDurationButton(i){return this.durationButtonTargets.find(s=>s.dataset.value===i)}selectDuration(i){let s=i.currentTarget;this.durationButtonTargets.forEach(a=>{a===s?(a.classList.remove("border","border-black-border","bg-black-card-light"),a.classList.add("border-2","border-purple-brand","bg-gradient-suggestion")):(a.classList.remove("border-2","border-purple-brand","bg-gradient-suggestion"),a.classList.add("border","border-black-border","bg-black-card-light"))});let r=s.closest("dialog, [data-modal]");this.updateVideoCost(s.dataset.value,r),this.durationHiddenFieldTarget.value=s.dataset.value}updateVideoCost(i,s=null){ft.updateVideoCost(this,i,s)}handleInput(){this.hideSendButtonTooltip()}firstVideoSuggestionTooltipTargetConnected(i){this.firstVideoSuggestionTooltipTargets.forEach(n=>{n.classList.add("hidden")});let r=!(localStorage.getItem("videoGenerationTooltipSeen")==="true")&&!this.firstVideoGeneratedValue,a=this.firstVideoSuggestionTooltipTargets[this.firstVideoSuggestionTooltipTargets.length-1];r&&i===a&&(this.tooltipTimeout=setTimeout(()=>{this.showFirstVideoSuggestionTooltip(a)},1e3))}notEnoughTokensModalTargetConnected(){this.closeModalIfVisible(this.videoGenerationModalTarget,this.hideModal),this.closeModalIfVisible(this.videoGeneration10sModalTarget,this.hide10sVideoModal),this.hasVideoGenerationFlashBoobsModalTarget&&this.closeModalIfVisible(this.videoGenerationFlashBoobsModalTarget,this.hideFlashBoobsModal)}videoLoaderTargetConnected(){this.closeModalIfVisible(this.videoGenerationModalTarget,this.hideModal),this.closeModalIfVisible(this.videoGeneration10sModalTarget,this.hide10sVideoModal),this.hasVideoGenerationFlashBoobsModalTarget&&this.closeModalIfVisible(this.videoGenerationFlashBoobsModalTarget,this.hideFlashBoobsModal)}closeModalIfVisible(i,s){(i.tagName==="DIALOG"?i.open:!i.classList.contains("hidden"))&&(s.call(this),this.resetButton(),clearTimeout(this.sendButtonTooltipTimeout))}showModalForTarget(i,s,r={}){ft.openModal(i),this.setupVideoGenerationModal(i,s),this.hasVideoGenerationFlashBoobsModalTarget&&i===this.videoGenerationFlashBoobsModalTarget&&this.hasVideoDurationSelectionOutlet&&(this.videoDurationSelectionOutlet.tenSecondsAvailableValue=r[10]||!1),this.toggle20sDurationAvailability(r[20]||!1),this.toggle60sDurationAvailability(r[60]||!1),this.updateNewBadgeVisibility(r),this.resetButton()}setupVideoGenerationModal(i,s){s.preventDefault();let r=s.currentTarget.dataset.messageId,a=s.currentTarget.dataset.messageMediumId;i.dataset.messageId=r,i.dataset.messageMediumId=a,this.closeFirstVideoSuggestionTooltip()}updateNewBadgeVisibility(i){let s=[{getTarget:()=>this.sixtySecNewBadgeTarget,enabled:i[60],hasTarget:this.hasSixtySecNewBadgeTarget},{getTarget:()=>this.twentySecNewBadgeTarget,enabled:i[20],hasTarget:this.hasTwentySecNewBadgeTarget}],r=[{getTarget:()=>this.tenSecNewBadgeTarget,enabled:i[10],hasTarget:this.hasTenSecNewBadgeTarget}],a=s.filter(d=>d.enabled&&d.hasTarget),n=a.length===0?r.find(d=>d.enabled&&d.hasTarget):null,l=new Set([...a,n].filter(Boolean));[...s,...r].forEach(d=>{d.hasTarget&&d.getTarget().classList.toggle("hidden",!l.has(d))})}toggle20sDurationAvailability(i){let s=this.getDurationButton("20");s&&(i?(s.classList.remove("hidden"),s.classList.add("flex"),this.selectDuration({currentTarget:s})):(s.classList.add("hidden"),s.classList.remove("flex"),this.hasDurationHiddenFieldTarget&&this.durationHiddenFieldTarget.value==="20"&&this.resetToDefaultDuration()))}toggle60sDurationAvailability(i){let s=this.getDurationButton("60");s&&(i?(s.classList.remove("hidden"),s.classList.add("flex"),this.selectDuration({currentTarget:s})):(s.classList.add("hidden"),s.classList.remove("flex"),this.hasDurationHiddenFieldTarget&&this.durationHiddenFieldTarget.value==="60"&&this.resetToDefaultDuration()))}resetToDefaultDuration(){let i=this.durationButtonTargets.find(s=>!s.classList.contains("hidden"));i?this.selectDuration({currentTarget:i}):this.hasDurationHiddenFieldTarget&&(this.durationHiddenFieldTarget.value="10")}hideModal(){this.hasVideoGenerationModalTarget&&this.closeModalIfVisible(this.videoGenerationModalTarget,()=>{this.videoGenerationModalTarget.tagName==="DIALOG"?this.videoGenerationModalTarget.close():this.videoGenerationModalTarget.classList.add("hidden")})}generate(i){i.preventDefault();let s=this.videoGenerationModalTarget.dataset.messageId,r=this.videoGenerationModalTarget.dataset.messageMediumId,a=i.target.closest("form");if(a.action=this.submitUrlValue.replace(":id",s),r&&r!=="undefined"&&r!==""){let n=new URL(a.action,window.location.origin);n.searchParams.set("message_medium_id",r),a.action=n.toString()}this.disableSubmitButton(),a.requestSubmit(),document.dispatchEvent(new CustomEvent("video-generation:requested")),this.hideModal(),this.hide10sVideoModal(),this.hasVideoGenerationFlashBoobsModalTarget&&this.hideFlashBoobsModal()}sendButtonTooltipTargetConnected(){this.showSendButtonTooltip()}showSendButtonTooltip(){this.sendButtonTooltipTimeout=setTimeout(()=>{this.sendButtonTooltipTarget.classList.remove("hidden"),this.sendButtonTooltipTarget.classList.add("flex"),document.querySelector("#messages-list").classList.add("mb-[100px]"),je()},1e3)}
103resetButton(){this.submitButtonTargets.forEach(i=>{i.disabled=!1,i.style.pointerEvents="",i.classList.remove("opacity-50","cursor-not-allowed"),i.classList.add("cursor-pointer")})}disableSubmitButton(){this.submitButtonTargets.forEach(i=>{i.disabled=!0,i.style.pointerEvents="none",i.classList.add("opacity-50","cursor-not-allowed"),i.classList.remove("cursor-pointer")})}closeFirstVideoSuggestionTooltip(){this.firstVideoSuggestionTooltipTargets.forEach(i=>{i.classList.add("hidden")}),localStorage.setItem("videoGenerationTooltipSeen",!0)}showFirstVideoSuggestionTooltip(i){i.classList.remove("hidden"),i.classList.add("flex")}hideSendButtonTooltip(){this.hasSendButtonTooltipTarget&&(this.sendButtonTooltipTarget.classList.remove("flex"),this.sendButtonTooltipTarget.classList.add("hidden"),document.querySelector("#messages-list").classList.remove("mb-[100px]"))}generate10sVideo(i){i.preventDefault();let s=this.videoGeneration10sModalTarget.dataset.messageId,r=this.videoGeneration10sModalTarget.dataset.messageMediumId,a=i.target.closest("form");if(a.action=this.submitUrlValue.replace(":id",s),r&&r!=="undefined"&&r!==""){let n=new URL(a.action,window.location.origin);n.searchParams.set("message_medium_id",r),a.action=n.toString()}this.disableSubmitButton(),a.requestSubmit(),document.dispatchEvent(new CustomEvent("video-generation:requested"))}showPremiumPaywall(){this.premiumPaywallTarget.classList.remove("hidden"),this.dispatch("show-paywall",{bubbles:!0})}hide10sVideoModal(){this.closeModalIfVisible(this.videoGeneration10sModalTarget,()=>{this.videoGeneration10sModalTarget.tagName==="DIALOG"?this.videoGeneration10sModalTarget.close():this.videoGeneration10sModalTarget.classList.add("hidden")})}hideFlashBoobsModal(){ft.closeFlashBoobsModal(this,this.videoGenerationFlashBoobsModalTarget)}generateFlashBoobsVideo(i){i.preventDefault();let s=this.videoGenerationFlashBoobsModalTarget.dataset.messageId,r=this.videoGenerationFlashBoobsModalTarget.dataset.messageMediumId,a=i.target.closest("form");if(a.action=this.submitUrlValue.replace(":id",s),r&&r!=="undefined"&&r!==""){let n=new URL(a.action,window.location.origin);n.searchParams.set("message_medium_id",r),a.action=n.toString()}this.disableSubmitButton(),a.requestSubmit(),document.dispatchEvent(new CustomEvent("video-generation:requested"))}durationChanged(i){ft.handleDurationChange(this,i)}styleChanged(i){ft.handleStyleChange(this,i)}disconnect(){this.tooltipTimeout&&clearTimeout(this.tooltipTimeout),this.sendButtonTooltipTimeout&&clearTimeout(this.sendButtonTooltipTimeout),this.hasInputFieldTarget&&this.inputFieldTarget.removeEventListener("input",this.boundHandleInput),this.hideSendButtonTooltip()}};var yc=class extends u{static targets=["videoGenerationModal","videoGeneration10sModal"];static values={is10sVideoEnabled:Boolean,isFlashBoobsEnabled:Boolean,is20sVideoEnabled:Boolean,is60sVideoEnabled:Boolean};showConfirmation(i){let s=pe("messages--video-generation",this.application),r=this.isFlashBoobsEnabledValue||i.currentTarget.dataset.isFlashBoobsEnabled==="true",a={10:this.is10sVideoEnabledValue||i.currentTarget.dataset.is10sVideoEnabled==="true",20:i.currentTarget.dataset.is20sVideoEnabled!==void 0?i.currentTarget.dataset.is20sVideoEnabled==="true":this.is20sVideoEnabledValue,60:i.currentTarget.dataset.is60sVideoEnabled!==void 0?i.currentTarget.dataset.is60sVideoEnabled==="true":this.is60sVideoEnabledValue},n=ft.selectModalTarget(s,r,a[10]);s.showModalForTarget(n,i,a)}};var Sc=class extends u{static targets=["videoGenerationModal","videoGeneration10sModal","videoGenerationFlashBoobsModal","submitButton","videoLoader","firstVideoSuggestionTooltip","sendButtonTooltip","notEnoughTokensModal","premiumPaywall","profileNameText","durationButton","durationHiddenField","videoCost","promptTypeHiddenField"];static values={submitUrl:String,firstVideoGenerated:Boolean,isFreeUser:Boolean};static outlets=["modal","video-duration-selection"];connect(){this.tooltipTimeout=null,this.sendButtonTooltipTimeout=null,this.boundShowConfirmation=i=>this.showConfirmation(i.detail.imagePromptPhotoId,i.detail.profileFirstName,i.detail.is10sVideoEnabled,i.detail.isFlashBoobsEnabled),document.addEventListener("gallery-card-right-icon-click",this.boundShowConfirmation),this.videoGenerationModalTarget.addEventListener("close_modal",()=>{this.closeModalIfVisible(this.videoGenerationModalTarget,this.hideModal),this.closeModalIfVisible(this.videoGeneration10sModalTarget,this.hide10sVideoModal),this.hasVideoGenerationFlashBoobsModalTarget&&this.closeModalIfVisible(this.videoGenerationFlashBoobsModalTarget,this.hideFlashBoobsModal)})}selectDuration(i){let s=i.currentTarget;
103this.durationButtonTargets.forEach(a=>{a===s?(a.classList.remove("border","border-[#424242]","bg-transparent"),a.classList.add("border-2","border-[#5B43E6]","bg-[linear-gradient(90deg,_rgba(67,70,230,0.20)_0%,_rgba(97,67,230,0.20)_100%)]"),a.classList.remove("opacity-50")):(a.classList.remove("border-2","border-[#5B43E6]","bg-[linear-gradient(90deg,_rgba(67,70,230,0.20)_0%,_rgba(97,67,230,0.20)_100%)]"),a.classList.add("border","border-[#424242]","bg-transparent"),a.classList.add("opacity-50"))});let r=s.closest("dialog, [data-modal]");this.updateVideoCost(s.dataset.value,r),this.durationHiddenFieldTarget.value=s.dataset.value}firstVideoSuggestionTooltipTargetConnected(i){this.firstVideoSuggestionTooltipTargets.forEach(n=>{n.classList.add("hidden")});let r=!(localStorage.getItem("videoGenerationTooltipSeen")==="true")&&!this.firstVideoGeneratedValue,a=this.firstVideoSuggestionTooltipTargets[this.firstVideoSuggestionTooltipTargets.length-1];r&&i===a&&(this.tooltipTimeout=setTimeout(()=>{this.showFirstVideoSuggestionTooltip(a)},1e3))}showConfirmation(i,s,r,a){let n=ft.selectModalTarget(this,a,r);n.dataset.imagePromptPhotoId=i,this.isFreeUserValue?this.hasModalOutlet?this.modalOutlet.openModal():this.premiumPaywallTarget.classList.remove("hidden"):ft.openModal(n),ft.updateProfileNameText(n,"generate-image--video-generation",s),this.hasVideoGenerationFlashBoobsModalTarget&&n===this.videoGenerationFlashBoobsModalTarget&&ft.setUpRealisticFlashBoobsModal(n),this.hasVideoGenerationFlashBoobsModalTarget&&n===this.videoGenerationFlashBoobsModalTarget&&this.hasVideoDurationSelectionOutlet&&(this.videoDurationSelectionOutlet.tenSecondsAvailableValue=r),this.hideScrollTopIconTop()}hideScrollTopIconTop(){let i=this.scrollToTopController();i&&i.hide()}showScrollTopIconTop(){let i=this.scrollToTopController();i&&i.show()}hideModal(){this.videoGenerationModalTarget.classList.add("hidden"),this.showScrollTopIconTop()}toggleModal(){this.videoGenerationModalTarget.classList.toggle("hidden")}notEnoughTokensModalTargetConnected(){this.closeModalIfVisible(this.videoGenerationModalTarget,this.hideModal),this.closeModalIfVisible(this.videoGeneration10sModalTarget,this.hide10sVideoModal),this.hasVideoGenerationFlashBoobsModalTarget&&this.closeModalIfVisible(this.videoGenerationFlashBoobsModalTarget,this.hideFlashBoobsModal)}videoLoaderTargetConnected(){this.closeModalIfVisible(this.videoGenerationModalTarget,this.hideModal),this.closeModalIfVisible(this.videoGeneration10sModalTarget,this.hide10sVideoModal),this.hasVideoGenerationFlashBoobsModalTarget&&this.closeModalIfVisible(this.videoGenerationFlashBoobsModalTarget,this.hideFlashBoobsModal)}
103closeModalIfVisible(i,s){if(i.tagName==="DIALOG"&&i.open){s.call(this),this.resetButton(),clearTimeout(this.sendButtonTooltipTimeout);return}i.classList.contains("hidden")||(s.call(this),this.resetButton(),clearTimeout(this.sendButtonTooltipTimeout))}generate(i){i.preventDefault();let s=this.videoGenerationModalTarget.dataset.imagePromptPhotoId,r=i.target.closest("form");r.action=this.submitUrlValue.replace(":id",s),this.disableSubmitButton(),r.requestSubmit()}resetButton(){this.submitButtonTargets.forEach(i=>{i.classList.remove("opacity-50"),i.classList.remove("cursor-not-allowed"),i.classList.add("cursor-pointer")})}disableSubmitButton(){this.submitButtonTargets.forEach(i=>{i.classList.add("opacity-50"),i.classList.add("cursor-not-allowed"),i.classList.remove("cursor-pointer")})}showFirstVideoSuggestionTooltip(i){i.classList.remove("hidden"),i.classList.add("flex")}showPremiumPaywall(){this.premiumPaywallTarget.classList.remove("hidden")}scrollToTopController(){return pe("scroll-to-top",this.application)}hide10sVideoModal(){this.videoGeneration10sModalTarget.tagName==="DIALOG"?this.videoGeneration10sModalTarget.close():this.videoGeneration10sModalTarget.classList.add("hidden"),this.showScrollTopIconTop()}generate10sVideo(i){i.preventDefault();let s=this.videoGeneration10sModalTarget.dataset.imagePromptPhotoId,r=i.target.closest("form");r.action=this.submitUrlValue.replace(":id",s),this.disableSubmitButton(),r.requestSubmit()}hideFlashBoobsModal(){this.hasVideoGenerationFlashBoobsModalTarget&&ft.closeFlashBoobsModal(this,this.videoGenerationFlashBoobsModalTarget)}generateFlashBoobsVideo(i){i.preventDefault();let s=this.videoGenerationFlashBoobsModalTarget.dataset.imagePromptPhotoId;if(!s)return;let r=i.target.closest("form");r.action=this.submitUrlValue.replace(":id",s),this.disableSubmitButton(),r.requestSubmit()}durationChanged(i){ft.handleDurationChange(this,i)}styleChanged(i){ft.handleStyleChange(this,i)}updateVideoCost(i,s=null){ft.updateVideoCost(this,i,s)}disconnect(){this.tooltipTimeout&&clearTimeout(this.tooltipTimeout),this.sendButtonTooltipTimeout&&clearTimeout(this.sendButtonTooltipTimeout),document.removeEventListener("gallery-card-right-icon-click",this.boundShowConfirmation)}};var wc=class extends u{disconnect(){this.element.remove()}};var Cc=class extends u{static targets=["dialog","badge","name","description","holders","rarity","tierSep","tier","progressBox","tierChips","progressBar","progress","progressCap","points","cta","ctaLabel","cost","earnedLabel"];open(i){let s=i.currentTarget.dataset,r=s.complete==="true",a=s.tiers?JSON.parse(s.tiers):[];this.badgeTarget.innerHTML=s.badge,this.nameTarget.textContent=s.name,this.descriptionTarget.textContent=s.description,this.holdersTarget.hidden=!s.holders,this.holdersTarget.textContent=s.holders,this.rarityTarget.textContent=s.rarityLabel,this.rarityTarget.className=`ach-gem ach-gem--${s.rarity}`;let n=!!s.tier;this.tierTarget.hidden=!n,this.tierSepTarget.hidden=!n,this.tierTarget.textContent=s.tier,this.pointsTarget.textContent=s.points;let l=a.length>1;if(this.progressBoxTarget.hidden=!l,l){this.#e(a),this.progressTarget.textContent=s.progress,this.progressCapTarget.textContent=s.progressCap;let m=parseFloat(s.ratio);this.progressBarTarget.style.width=m>0?`${Math.max(2,Math.round(m*100))}%`:"0%"}let d=!!s.ctaUrl&&!r;this.ctaTarget.hidden=!d,d&&(this.ctaTarget.href=s.ctaUrl,this.ctaLabelTarget.textContent=s.ctaLabel,this.costTarget.hidden=!s.cost,this.costTarget.textContent=s.cost),this.earnedLabelTarget.classList.toggle("hidden",!r),this.dialogTarget.showModal()}#e(i){this.tierChipsTarget.replaceChildren(...i.map(s=>{let r=document.createElement("span");return r.className=this.#t(s.state),r.textContent=`${s.label} \xB7 ${s.threshold}`,r}))}#t(i){return`sheet-tier sheet-tier--${["earned","next","locked"].includes(i)?i:"locked"}`}};var Ec=class extends u{static targets=["toast","reveal"];static values={dismissAfter:{type:Number,default:7e3}};connect(){requestAnimationFrame(()=>this.toastTarget.classList.add("ach-toast--in")),this.timer=setTimeout(()=>this.dismiss(),this.dismissAfterValue)}disconnect(){clearTimeout(this.timer)}openReveal(i){i.preventDefault(),clearTimeout(this.timer),this.toastTarget.classList.add("hidden"),this.revealTarget.showModal()}closeReveal(){this.revealTarget.open&&this.revealTarget.close(),this.element.remove()}dismiss(){this.toastTarget.classList.remove("ach-toast--in"),this.toastTarget.classList.add("ach-toast--out"),setTimeout(()=>this.element.remove(),450)}};var _w="account-notifications:unread-count-changed",sA="[data-account-notifications-unread-indicator='true']",Lc=class extends u{static targets=["badge","button","errorState","list","loadingState","panel"];static values={indexUrl:String,unreadCount:{type:Number,default:0}};connect(){this.handleUnreadCountChanged=this.#c.bind(this),this.loadNotificationsProm
103ise=null,this.connected=!0,document.addEventListener(_w,this.handleUnreadCountChanged),this.#r()}disconnect(){this.connected=!1,document.removeEventListener(_w,this.handleUnreadCountChanged)}async toggle(){this.panelTarget.open?this.panelTarget.close():await this.open()}async open(){this.connected&&(this.#s(),await this.#e())}handleDialogClose(){this.buttonTarget.setAttribute("aria-expanded","false")}unreadCountValueChanged(){this.#r()}async#e(){if(this.loadNotificationsPromise)return this.loadNotificationsPromise;this.loadNotificationsPromise=this.#t();try{return await this.loadNotificationsPromise}finally{this.connected&&(this.loadNotificationsPromise=null)}}async#t(){if(!this.connected)return!1;this.#o(!0),this.#h();try{return(await Ee(this.#i(),{responseKind:"turbo-stream"})).ok?!0:(this.#l(),!1)}catch{return this.#l(),!1}finally{this.connected&&this.#o(!1)}}#i(){let i=new URL(this.indexUrlValue,window.location.origin);return i.searchParams.set("list_id",this.listTarget.id),i.toString()}#s(){this.panelTarget.open||(this.panelTarget.showModal(),this.buttonTarget.setAttribute("aria-expanded","true"))}#r(){this.#a(),this.#n()}#a(){this.hasBadgeTarget&&(this.badgeTarget.dataset.accountNotificationsCountless==="true"?this.badgeTarget.textContent="":this.badgeTarget.textContent=this.unreadCountValue,this.badgeTarget.classList.toggle("hidden",this.unreadCountValue===0))}#n(){document.querySelectorAll(sA).forEach(i=>{i.classList.toggle("hidden",this.unreadCountValue===0)})}#o(i){this.hasLoadingStateTarget&&this.loadingStateTarget.classList.toggle("hidden",!i)}#l(){this.hasErrorStateTarget&&this.errorStateTarget.classList.remove("hidden")}#h(){this.hasErrorStateTarget&&this.errorStateTarget.classList.add("hidden")}#c(i){this.unreadCountValue=i.detail.unreadCount||0}};var kc=class extends u{static targets=["button","knob","galleryItem","tooltip"];static values={active:Boolean,storageKey:{type:String,default:"imageToVideoToggled"},tooltipShown:{type:Boolean,default:!1}};initialize(){let i=localStorage.getItem(this.storageKeyValue);i?this.activeValue=i==="true":this.activeValue=!0,this.processedGalleryItems=new Set;let s=localStorage.getItem("imageToVideoTooltipShown");this.tooltipShownValue=s==="true"}connect(){this.updateGalleryCards(),this.updateToggleState(),this.buttonTarget.hidden=!1,this.buttonTarget.classList.remove("opacity-0"),this.hasTooltipTarget&&!this.tooltipShownValue&&setTimeout(()=>{this.showTooltip()},1e3)}galleryItemTargetConnected(i){this.processedGalleryItems.has(i)||(this.processedGalleryItems.add(i),this.updateGalleryItem(i))}toggle(){this.activeValue=!this.activeValue,this.updateToggleState(),localStorage.setItem(this.storageKeyValue,this.activeValue),this.updateGalleryCards(),this.hideTooltip()}updateToggleState(){this.buttonTarget.classList.toggle("bg-[#646464]",!this.activeValue),this.buttonTarget.classList.toggle("contextual-img-generator",this.activeValue),this.knobTarget.classList.toggle("translate-x-0",!this.activeValue),this.knobTarget.classList.toggle("translate-x-5",this.activeValue),this.buttonTarget.setAttribute("aria-checked",this.activeValue.toString())}updateGalleryItem(i){let s=i.querySelector("[data-gallery-card-component-target='bottomRightIcon']");s&&s.classList.toggle("hidden",!this.activeValue)}updateGalleryCards(){this.galleryItemTargets.forEach(s=>{this.processedGalleryItems.add(s),this.updateGalleryItem(s)})}showTooltip(){this.hasTooltipTarget&&(this.tooltipTarget.classList.remove("hidden"),this.tooltipTarget.classList.add("flex"))}hideTooltip(){this.hasTooltipTarget&&(this.tooltipTarget.classList.add("hidden"),this.tooltipTarget.classList.remove("flex"),this.tooltipShownValue=!0,localStorage.setItem("imageToVideoTooltipShown","true"))}};var xc=class extends u{static targets=["menuDropdown","toggle"];static values={isMenuOpen:{type:Boolean,default:!0}};connect(){this.boundHandleOutsideClick=this.handleOutsideClick.bind(this),this.boundHandleKeydown=this.handleKeydown.bind(this),document.addEventListener("click",this.boundHandleOutsideClick),document.addEventListener("keydown",this.boundHandleKeydown)}toggleMenu(i){i&&(i.preventDefault(),i.stopPropagation()),this.setMenuOpen(!this.isMenuOpenValue)}handleOutsideClick(i){this.isMenuOpenValue&&!this.element.contains(i.target)&&this.setMenuOpen(!1)}handleKeydown(i){i.key==="Escape"&&this.isMenuOpenValue&&this.setMenuOpen(!1)}disconnect(){document.removeEventListener("click",this.boundHandleOutsideClick),document.removeEventListener("keydown",this.boundHandleKeydown)}setMenuOpen(i){this.isMenuOpenValue=i,this.hasMenuDropdownTarget&&this.menuDropdownTarget.classList.toggle("hidden",!i),this.hasToggleTarget&&this.toggleTarget.setAttribute("aria-expanded",String(i))}};var da="__candyShortsOpenSlug",rA=300,Bw=["turbo:fetch-request-error","turbo:frame-missing"],Ic=class extends u{static targets=["modal"];static values={profileSlug:String};connect(){this.#u(),this.modalElement&&(window[da]===this.profileSlugValue?this.#s():(this.modalElement.classList.add("hidden"),document.body.classList.remove("overflow-hidden"))),this.onBeforeVisit=()=>{window[da]=null},document.addEventListener("turbo:before-visit",this.onBeforeVisit),this.onBeforeCache=()=>this.#g(),document.addEventListener("turbo:before-cache",this.onBeforeCache)}disconnect(){clearTimeout(this.closeTimer),document.removeEventListener("turbo:before-visit",this.onBeforeVisit),document.removeEventListener("turbo:before-cache",this.onBeforeCache),document.body.classList.remove("overflow-hidden"),this.#f(!1);let i=this.modalElement?this.modalElement.querySelector("video"):null;i&&!i.paused&&i.pause(),this.#g()}open({episodeId:i,seriesId:s}={}){let r=this.#d();if(r){this.#m(r);return}this.#s({keepSeries:!!(i||s)}),this.#r(i,s)}close(){window[da]=null;let i=this.#t();if(!i){this.#e();return}i.style.transition="",i.offsetHeight,i.style.transform="translateY(100%)",clearTimeout(this.closeTimer),this.closeTimer=setTimeout(()=>this.#e(),rA)}#e(){this.#c(),this.#h(),this.#o(),document.dispatchEvent(new CustomEvent("shorts:modal-closed",{bubbles:!0,detail:{modal:this.modalElement}}))}#t(){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches||window.matchMedia("(min-width: 1024px)").matches)return null;let i=this.modalElement?.querySelector("[data-shorts-panel]");return i?.querySelector("[data-shorts-picker]")?i:null}#i(){let i=this.#t();!i||this.modalElement.classList.contains("hidden")||(i.style.transition="none",i.style.transform="translateY(100%)",i.offsetHeight,i.style.transition="",requestAnimationFrame(()=>{i.style.transform=""}))}backToPicker(){this.#h(),this.#a()}#s({keepSeries:i=!1}={}){!this.modalElement&&this.hasModalTarget&&this.#u(),this.modalElement&&(clearTimeout(this.closeTimer),this.#l(!1),i||this.#a(),this.#o(),this.modalElement.classList.remove("hidden"),document.body.classList.add("overflow-hidden"),this.#f(!0),window[da]=this.profileSlugValue,this.#i())}
103#r(i,s){if(!i&&!s)return;let r=this.modalElement?.querySelector("turbo-frame#candy-shorts-frame"),a=this.#n(r)||r?.dataset.refreshSrc;if(!a)return;let n=new URL(a,window.location.origin);s&&n.searchParams.set("series_id",s),i&&n.searchParams.set("episode_id",i);let l=`${n.pathname}${n.search}`;r.dataset.refreshSrc=l,r.setAttribute("src",l)}#a(){let i=this.modalElement?.querySelector("turbo-frame#candy-shorts-frame"),s=i?.dataset.initialSrc,r=!!this.#n(i)||i?.childElementCount===0;!s||!r||(i.innerHTML="",i.dataset.refreshSrc=s,i.setAttribute("src",s))}#n(i){return i?.querySelector("[data-shorts-series-src]")?.dataset.shortsSeriesSrc}#o(){let i=this.modalElement?.querySelector("[data-shorts-panel]");i&&(i.style.transition="none",i.style.transform="",i.offsetHeight,i.style.transition="")}#l(i){let s=this.modalElement?.querySelector("[data-shorts-loader]");s&&s.classList.toggle("hidden",!i)}#h(){let i=this.modalElement?this.modalElement.querySelector("video"):null;i&&!i.paused&&i.pause()}#c(){this.modalElement&&(this.modalElement.classList.add("hidden"),document.body.classList.remove("overflow-hidden"),this.#f(!1),window[da]=null)}#u(){if(!this.hasModalTarget){this.modalElement=null;return}this.modalElement=this.modalTarget,document.querySelectorAll(`body > [data-candy-shorts-portaled="${this.profileSlugValue}"]`).forEach(i=>i.remove()),this.modalPlaceholder=document.createComment("candy-shorts-modal"),this.modalElement.parentNode.insertBefore(this.modalPlaceholder,this.modalElement),this.modalElement.setAttribute("data-candy-shorts-portaled",this.profileSlugValue),document.body.appendChild(this.modalElement),this.boundModalClick=i=>{if(i.target.closest('[data-action*="candy-shorts--modal#backToPicker"]')){this.backToPicker();return}i.target.closest('[data-action*="candy-shorts--modal#close"]')&&this.close()},this.modalElement.addEventListener("click",this.boundModalClick),this.boundFrameLoad=()=>{this.#l(!1);let i=this.#d();if(i){this.#m(i);return}this.#i()},this.modalElement.addEventListener("turbo:frame-load",this.boundFrameLoad),this.boundFrameFetch=i=>{i.detail?.fetchOptions?.method?.toUpperCase()==="GET"&&this.#l(!0)},this.modalElement.addEventListener("turbo:before-fetch-request",this.boundFrameFetch),this.boundFrameFailure=()=>this.#l(!1),Bw.forEach(i=>{this.modalElement.addEventListener(i,this.boundFrameFailure)})}#g(){this.modalElement&&(clearTimeout(this.closeTimer),this.modalElement.removeEventListener("click",this.boundModalClick),this.modalElement.removeEventListener("turbo:frame-load",this.boundFrameLoad),this.modalElement.removeEventListener("turbo:before-fetch-request",this.boundFrameFetch),Bw.forEach(i=>{this.modalElement.removeEventListener(i,this.boundFrameFailure)}),this.modalElement.removeAttribute("data-candy-shorts-portaled"),this.modalPlaceholder?.parentNode?(this.modalPlaceholder.parentNode.insertBefore(this.modalElement,this.modalPlaceholder),this.modalPlaceholder.remove()):this.modalElement.remove(),this.modalPlaceholder=null,this.modalElement=null)}#d(){return this.modalElement?.querySelector("[data-candy-shorts-registration-required]")?.dataset.shortsRegistrationRedirect}#m(i){this.modalElement?.querySelector("[data-candy-shorts-registration-required]")?.remove(),this.#e(),document.dispatchEvent(new CustomEvent("shorts:open-registration",{bubbles:!0,detail:{redirectUrl:i}}))}#f(i){let s=document.getElementById("conversation-container");s&&(s.classList.toggle("z-50",i),s.style.backgroundColor=i?"transparent":"")}};var aA=100,nA=28,oA=.6,Ac=class extends u{connect(){this.panel=this.element.closest("[data-shorts-panel]"),this.startY=null,this.distance=0}start(i){this.panel&&(this.startY=i.clientY,this.distance=0,this.startedAt=i.timeStamp,this.panel.style.transition="none",i.currentTarget.setPointerCapture(i.pointerId))}move(i){this.startY!==null&&(this.distance=Math.max(0,i.clientY-this.startY),this.panel.style.transform=`translateY(${this.distance}px)`)}end(i){if(this.startY===null)return;let s=Math.max(8,i.timeStamp-this.startedAt),r=this.distance/s;this.startY=null,this.panel.style.transition="",this.distance>aA||this.distance>nA&&r>oA?this.#e():this.panel.style.transform=""}#e(){document.dispatchEvent(new CustomEvent("shorts:picker-dismissed",{bubbles:!0}))}};var Pc=class extends u{static targets=["modal","frame","loader"];static values={openSrc:String,registrationRedirect:String};connect(){this.boundCloseBeforeCache=()=>this.#e(),document.addEventListener("turbo:before-cache",this.boundCloseBeforeCache),this.element.addEventListener("candy-shorts--clips-overlay:opening",this.#t),this.registrationRedirectValue?this.#i(this.registrationRedirectValue):this.openSrcValue&&this.#s(this.openSrcValue)}open(i){this.#n(i)||(i.preventDefault(),this.#s(i.params.src,{reload:i.params.reload}))}openRegistration(i){i.preventDefault(),this.#i(i.params.redirectUrl)}openClips(i){this.#n(i)||(i.preventDefault(),this.dispatch("clips-open",{detail:{trigger:i.currentTarget}}))}frameLoaded(i){i.target===this.frameTarget&&(this.#a(),this.#l())}close(){this.modalTarget.classList.add("hidden"),document.body.classList.remove("overflow-hidden");let i=this.modalTarget.querySelector("video");i&&!i.paused&&i.pause(),document.dispatchEvent(new CustomEvent("shorts:modal-closed",{bubbles:!0,detail:{modal:this.modalTarget}}))}disconnect(){document.removeEventListener("turbo:before-cache",this.boundCloseBeforeCache),this.element.removeEventListener("candy-shorts--clips-overlay:opening",this.#t),document.body.classList.remove("overflow-hidden")}#e(){this.hasModalTarget&&(this.openSrcValue="",this.modalTarget.classList.add("hidden"),document.body.classList.remove("overflow-hidden"))}#t=()=>{this.hasModalTarget&&!this.modalTarget.classList.contains("hidden")&&this.close()};#i(i){document.dispatchEvent(new CustomEvent("shorts:open-registration",{bubbles:!0,detail:{redirectUrl:i}}))}#s(i,{reload:s=!1}={}){i&&this.hasFrameTarget&&(s||this.#o()!==i)&&(this.frameTarget.innerHTML="",this.#r(),s&&this.frameTarget.removeAttribute("src"),this.frameTarget.setAttribute("src",i)),this.modalTarget.classList.remove("hidden"),document.body.classList.add("overflow-hidden")}#r(){this.hasLoaderTarget&&this.loaderTarget.classList.remove("hidden")}#a(){this.hasLoaderTarget&&this.loaderTarget.classList.add("hidden")}#n(i){return i.currentTarget.matches("a[href]")?i.button!==0||i.metaKey||i.ctrlKey||i.shiftKey||i.altKey:!1}#o(){return this.frameTarget.getAttribute("src")||this.frameTarget.dataset.loadedSrc}#l(){if(!this.openSrcValue)return;let i=new URL(window.location.href);if(i.searchParams.get("origin")==="next_recommendation"){for(let s of["series_id","episode_id","auto_advance","origin"])i.searchParams.delete(s);window.history.replaceState(window.history.state,"",i),this.openSrcValue=""}}};var Wt="all",lA="sale",hA="hidden!",Vc=class extends u{static targets=["grid","rows","scopeTab","tagPill"];static classes=["hidden"];static values={scope:{type:String,default:Wt},tag:{type:String,default:Wt}};connect(){this.#o(),this.#t()}selectScope(i){i.params.scope!==this.scopeValue&&(this.scopeValue=i.params.scope,this.#i(this.scopeTabTargets,i.currentTarget),this.#o(),this.#a(this.tagValue)||(this.tagValue=Wt),this.#s(),this.#c(i.currentTarget),this.#e())}selectTag(i){let s=i.params.tag;this.#a(s)&&s!==this.tagValue&&(this.tagValue=s,this.#s(),i.currentTarget.matches("[data-candy-shorts--library-filters-target~='tagPill']")&&this.#c(i.currentTarget),this.#e())}clearFilters(){this.scopeValue===Wt&&this.tagValue===Wt||(this.scopeValue=Wt,this.tagValue=Wt,this.#i(this.scopeTabTargets,this.#r(Wt)),this.#o(),this.#s(),this.#e())}saleExpired(){this.tagValue===lA&&(this.tagValue=Wt,this.#s(),this.#e())}gridLoading(i){this.#g(i)&&(this.gridTarget.inert=!0)}gridLoaded(i){this.#g(i)&&(this.gridTarget.inert=!1)}gridLoadFailed(i){this.#g(i)&&(this.gridTarget.inert=!1)}#e(){this.#t(),this.#u(),this.#m(),this.gridTarget.setAttribute("src",this.#d())}#t(){let i=this.scopeValue!==Wt||this.tagValue!==Wt;
103this.rowsTargets.forEach(s=>s.classList.toggle(this.hiddenClass,i))}#i(i,s){i.forEach(r=>{r.setAttribute("aria-selected",(r===s).toString())})}#s(){this.tagPillTargets.forEach(i=>{let s=this.#n(i)===this.tagValue&&this.#l(i);i.setAttribute("aria-selected",s.toString())})}#r(i){return this.scopeTabTargets.find(s=>s.getAttribute("data-candy-shorts--library-filters-scope-param")===i)}#a(i){if(i===Wt)return!0;let s=this.tagPillTargets.find(r=>this.#n(r)===i);return!!s&&this.#l(s)}#n(i){return i.getAttribute("data-candy-shorts--library-filters-tag-param")}#o(){this.tagPillTargets.forEach(i=>{let s=this.#l(i);i.classList.toggle(hA,!s),s||i.setAttribute("aria-selected","false")})}#l(i){return this.#h(i).includes(this.scopeValue)}#h(i){return(i.getAttribute("data-candy-shorts--library-filters-scopes")||Wt).split(" ")}#c(i){i.scrollIntoView({behavior:"smooth",inline:"center",block:"nearest"})}#u(){this.gridTarget.getBoundingClientRect().top<0&&this.gridTarget.scrollIntoView({behavior:"smooth",block:"start"})}#g(i){return i.target===this.gridTarget}#d(){let i=new URL(this.gridTarget.getAttribute("src"),window.location.origin);return i.searchParams.set("scope",this.scopeValue),i.searchParams.set("tag",this.tagValue),i.pathname+i.search}#m(){let i=new URL(window.location);i.searchParams.delete("series_id"),i.searchParams.delete("episode_id");for(let[s,r]of[["scope",this.scopeValue],["tag",this.tagValue]])r===Wt?i.searchParams.delete(s):i.searchParams.set(s,r);window.history.replaceState(window.history.state,"",i)}};var cA=1e3,dA=3e4,Ow=86400,Fw={days:"d",hours:"h",minutes:"m",seconds:"s"},Mc=class extends u{static targets=["countdown","sale","originalPrice","priceValue","priceSource","tokenIcon"];static values={endDate:String,units:{type:Object,default:Fw}};connect(){this.endTime=Date.parse(this.endDateValue),Number.isFinite(this.endTime)&&(this.expired=!1,this.update())}disconnect(){this.#s()}clear(){this.#r()}release(i){let s=String(i.detail?.episodeId||"");s&&this.priceSourceTargets.filter(r=>r.dataset.catalogEpisodeId===s).forEach(r=>{delete r.dataset.expiredLockState,r.dataset.saleGranted=""})}update(){let i=Math.max(0,Math.ceil((this.endTime-Date.now())/1e3));if(i===0){this.#r();return}this.#e(this.countdownTargets,this.#t(i)),this.#i(i>Ow?dA:cA)}#e(i,s){i.forEach(r=>{r.textContent.trim()!==s&&(r.textContent=s)})}#t(i){let s={...Fw,...this.unitsValue},r=l=>String(Math.floor(l)).padStart(2,"0"),a=Math.floor(i/Ow),n=[`${r(i/3600%24)}${s.hours}`,`${r(i/60%60)}${s.minutes}`];return a>0?[`${a}${s.days}`,...n].join(" "):[...n,`${r(i%60)}${s.seconds}`].join(" ")}#i(i){this.interval!==i&&(this.#s(),this.interval=i,this.timer=setInterval(()=>this.update(),i))}#s(){clearInterval(this.timer),this.timer=null,this.interval=null}#r(){this.expired||(this.expired=!0,this.#s(),this.saleTargets.forEach(i=>{i.hidden=!0}),this.originalPriceTargets.forEach(i=>{i.hidden=!0}),this.#a(this.priceValueTargets).forEach(i=>this.#n(i)),this.#a(this.tokenIconTargets).forEach(i=>{i.hidden=!1}),this.#a(this.priceSourceTargets).forEach(i=>this.#o(i)),this.dispatch("expired"))}#a(i){return i.filter(s=>!s.closest("[data-sale-granted]"))}#n(i){let s=i.dataset.originalTokenCost;s&&(i.textContent=s,i.dataset.originalClass!==void 0&&(i.className=i.dataset.originalClass),i.dataset.episodeMetaText="")}#o(i){let s=i.dataset.originalTokenCost;if(!s||(i.dataset.tokenCost=s,i.dataset.expiredLockState&&(i.dataset.lockState=i.dataset.expiredLockState,delete i.dataset.videoUrl),!i.dataset.purchaseUrl))return;let r=new URL(i.dataset.purchaseUrl,window.location.origin);r.searchParams.set("expected_token_cost",s),i.dataset.purchaseUrl=r.pathname+r.search}};var _c=class extends u{static values={rootUrl:String};connect(){this.element.addEventListener("candy-shorts--sale:expired",this.#e)}disconnect(){this.element.removeEventListener("candy-shorts--sale:expired",this.#e)}#e=i=>{i.target===this.element&&Be.visit(this.rootUrlValue,{action:"replace"})}};var Bc=class extends u{static targets=["dialog","frame","loading","error","loadingClose"];static values={url:String,initialOpen:Boolean};static classes=["scrollLock"];connect(){this.libraryUrl=this.#a(),this.initialOpenValue&&this.#e()}disconnect(){this.#i()}open(i){if(this.dialogTarget.open)return;this.returnFocus=i.detail.trigger,this.libraryUrl=this.#a();let s=new URL(window.location.href);s.searchParams.set("clips","true"),window.history.pushState({...window.history.state,candyShortsClips:!0},"",s),this.#e()}close(i){i?.preventDefault(),this.#i(),this.#r(),this.#o()}handoff(i){this.#n(i)||(this.#i({keepScrollLock:!0}),this.#r())}historyChanged(i){this.#a()===this.libraryUrl&&(!this.dialogTarget.open&&!this.returning&&!i.state?.candyShortsClips||(i.stopImmediatePropagation(),Be.navigator.currentVisit?.action==="restore"&&Be.navigator.currentVisit.cancel(),this.returning=!1,new URL(window.location.href).searchParams.get("clips")==="true"?this.dialogTarget.open||this.#e():this.dialogTarget.open&&(this.#i(),this.#o())))}beforeCache(){this.initialOpenValue=!1,this.#i()}loaded(i){i.target===this.frameTarget&&(this.loadingTarget.hidden=!0,this.loadingCloseTarget.hidden=!0)}failed(i){i.target===this.frameTarget&&(i.preventDefault(),i.stopPropagation(),this.loadingTarget.hidden=!0,this.errorTarget.hidden=!1)}retry(){this.#s(),this.#t()}#e(){this.dispatch("opening"),this.dialogTarget.showModal(),document.body.classList.add(...this.scrollLockClasses),this.#t()}#t(){this.loadingCloseTarget.hidden=!1,this.loadingTarget.hidden=!1,this.errorTarget.hidden=!0,this.frameTarget.src=this.urlValue}#i({keepScrollLock:i=!1}
103={}){!this.hasDialogTarget||!this.dialogTarget.open||(this.dialogTarget.close(),this.#s(),i||document.body.classList.remove(...this.scrollLockClasses))}#s(){let i=this.frameTarget.cloneNode(!1);for(let s of["src","complete","busy","aria-busy"])i.removeAttribute(s);this.frameTarget.replaceWith(i)}#r(){if(window.history.state?.candyShortsClips)this.returning=!0,window.history.back();else{let i=new URL(window.location.href);i.searchParams.delete("clips"),window.history.replaceState(window.history.state,"",i)}}#a(){let i=new URL(window.location.href);return i.searchParams.delete("clips"),i.href}#n(i){return i.button!==0||i.metaKey||i.ctrlKey||i.shiftKey||i.altKey}#o(){(this.returnFocus?.isConnected?this.returnFocus:this.element.closest("main"))?.focus({preventScroll:!0})}};var Dw=60,Rw=10,uA=1e4,gA=250,Oc=class extends u{static targets=["stage","slide","pagination","preview","video","poster","previous","next","mute","mutedIcon","soundIcon","error","mediaError"];static classes=["departing"];static values={index:{type:Number,default:0},muted:{type:Boolean,default:!1}};connect(){this.active=!0,this.loading=!1,this.wheelDistance=0,this.element.addEventListener("wheel",this.#e,{passive:!1}),this.element.addEventListener("shorts:player-ready",this.#a),this.element.addEventListener("shorts:player-volume",this.#l),this.element.addEventListener("shorts:player-playing",this.#s),this.element.addEventListener("shorts:player-paused",this.#r),this.element.addEventListener("shorts:player-ended",this.#i),this.#p(),this.hasStageTarget&&this.stageTarget.focus({preventScroll:!0})}disconnect(){this.active=!1,this.pause(),this.hasVideoTarget&&this.#f(this.videoTarget),this.request?.abort(),window.clearTimeout(this.wheelTimer),this.element.removeEventListener("wheel",this.#e),this.element.removeEventListener("shorts:player-ready",this.#a),this.element.removeEventListener("shorts:player-volume",this.#l),this.element.removeEventListener("shorts:player-playing",this.#s),this.element.removeEventListener("shorts:player-paused",this.#r),this.element.removeEventListener("shorts:player-ended",this.#i)}previous(i){i?.preventDefault(),!(this.motion||this.loading||this.indexValue===0)&&this.#h(this.indexValue-1)}#e=i=>{if(i.target.closest('[data-controller~="library--read-more"]')||i.ctrlKey||Math.abs(i.deltaX)>=Math.abs(i.deltaY)||i.target.closest("input, textarea, select, [contenteditable='true']")||(i.preventDefault(),this.motion||this.loading||this.swipe||!this.hasSlideTarget))return;window.clearTimeout(this.wheelTimer);let s=i.deltaMode===1?16:i.deltaMode===2?this.element.clientHeight:1;this.wheelDistance+=i.deltaY*s;let r=this.slideTarget.clientHeight||this.element.clientHeight;r&&(this.wheelDistance=Math.max(-r,Math.min(r,this.wheelDistance))),this.#c()&&this.#t(0,-this.wheelDistance),this.wheelTimer=window.setTimeout(()=>{let a=this.wheelDistance;this.wheelDistance=0,Math.abs(a)>=Dw&&(a>0?this.next():this.previous()),this.motion||this.#g()},gA)};next(i){if(i?.preventDefault(),!(this.motion||this.loading)){if(this.indexValue+1>=this.previewTargets.length&&this.#b())return this.#v();this.active&&this.indexValue+1<this.previewTargets.length&&this.#h(this.indexValue+1)}}paginationTargetConnected(){!this.active||!this.loading||(this.loading=!1,this.#m(),this.indexValue+1<this.previewTargets.length?this.#h(this.indexValue+1):this.#p())}toggleMute(){this.hasVideoTarget&&(this.videoTarget.muted=!this.videoTarget.muted,this.#l())}pause(){this.suppressClick=!1,window.clearTimeout(this.wheelTimer),this.wheelDistance=0,this.#m(),this.#o(),this.swipe=null,this.hasSlideTarget&&(this.slideTarget.style.transform=""),this.#r(),this.hasVideoTarget&&this.videoTarget.pause()}buffering(i){let s=i.target;s!==this.videoTarget||s.readyState>=3||this.bufferingTimer||(this.bufferingTimer=window.setTimeout(()=>{this.bufferingTimer=null,s===this.videoTarget&&!s.paused&&s.readyState<3&&this.mediaFailed(i)},uA))}mediaFailed(i){!this.hasVideoTarget||i.target!==this.videoTarget||(this.pause(),this.mediaErrorTarget.hidden=!1)}retry(){this.#h(this.indexValue)}visibilityChanged(){document.hidden&&this.pause()}startSwipe(i){this.motion||this.loading||!i.isPrimary||i.button!==0||(window.clearTimeout(this.wheelTimer),this.wheelDistance=0,this.suppressClick=!1,this.swipe={x:i.clientX,y:i.clientY,pointer:i.pointerId},i.currentTarget.setPointerCapture?.(i.pointerId))}moveSwipe(i){if(!this.swipe||this.swipe.pointer!==i.pointerId)return;let s=i.clientY-this.swipe.y,r=i.clientX-this.swipe.x;this.suppressClick||=Math.max(Math.abs(r),Math.abs(s))>Rw,this.#c()&&this.#t(r,s)}#t(i,s){let r=this.indexValue+(s<0?1:-1),a=this.adjacentPosters?.get(r);if(Math.abs(s)<=Math.abs(i)||!a){this.#o(),this.slideTarget.style.transform="";return}this.dragPoster!==a&&(this.#o(),this.dragPoster=a,this.stageTarget.prepend(a)),a.style.transform=`translateY(${s<0?"100%":"-100%"}) translateY(${s}px)`,this.slideTarget.style.transform=`translateY(${s}px)`}endSwipe(i){if(!this.swipe||this.swipe.pointer!==i.pointerId)return;let s=i.clientX-this.swipe.x,r=i.clientY-this.swipe.y;if(this.suppressClick||=Math.max(Math.abs(s),Math.abs(r))>Rw,this.swipe=null,Math.abs(r)<Dw||Math.abs(r)<=Math.abs(s)){this.#g();return}r<0?this.next():this.previous(),this.suppressClick=!0,this.motion||this.#g()}cancelSwipe(){this.suppressClick=!1,this.swipe=null,this.#g()}suppressSwipeClick(i){!this.suppressClick||i.detail===0||(this.suppressClick=!1,i.preventDefault(),i.stopImmediatePropagation())}#i=i=>{this.active&&this.hasVideoTarget&&i.detail.video===this.videoTarget&&this.next()};#s=i=>{!this.hasVideoTarget||i.detail.video!==this.videoTarget||(this.posterTarget.hidden=!0,this.#r(),this.mediaErrorTarget.hidden=!0,this.visibilityChanged())};#r=()=>{window.clearTimeout(this.bufferingTimer),this.bufferingTimer=null};#a=()=>{this.hasVideoTarget&&(this.videoTarget.muted=this.mutedValue,this.#l(),this.visibilityChanged(),this.#n())};#n(){this.adjacentPosters=new Map;for(let i of[this.indexValue-1,this.indexValue+1]){let r=this.previewTargets[i]?.content.querySelector(`[data-${this.identifier}-target="poster"]`);if(!r)continue;let a=r.cloneNode(!1);a.removeAttribute(`data-${this.identifier}-target`),a.hidden=!1,a.loading="eager",a.src=r.src,this.adjacentPosters.set(i,a)}}#o(){this.dragPoster?.remove(),this.dragPoster=null}#l=()=>{!this.hasVideoTarget||!this.hasMuteTarget||(this.mutedValue=this.videoTarget.muted,this.muteTarget.setAttribute("aria-pressed",String(this.mutedValue)),this.mutedIconTarget.hidden=!this.mutedValue,this.soundIconTarget.hidden=this.mutedValue)};#h(i){if(this.motion)return;let s=Math.sign(i-this.indexValue),r=this.slideTarget,a=r.style.transform||"translateY(0)",n=s!==0&&this.#c();this.pause();let l=this.videoTarget;if(this.indexValue=i,this.stageTarget.replaceChildren(this.previewTargets[i].content.cloneNode(!0)),n){r.removeAttribute("data-controller"),r.removeAttribute(`data-${this.identifier}-target`);for(let v of r.querySelectorAll(`[data-${this.identifier}-target], [id]`))v.removeAttribute(`data-${this.identifier}-target`),v.removeAttribute("id");r.inert=!0,r.setAttribute("aria-hidden","true"),r.classList.add(...this.departingClasses),this.stageTarget.append(r);let d=s>0?"-100%":"100%",m=s>0?"100%":"-100%";this.#d([this.#u(r,a,`translateY(${d})`),this.#u(this.slideTarget,`translateY(${m}) ${a}`,"translateY(0)")],{departing:r,video:l})}else this.#f(l);
103this.stageTarget.focus({preventScroll:!0}),this.#p()}#c(){return typeof this.slideTarget.animate=="function"&&!window.matchMedia("(prefers-reduced-motion: reduce)").matches}#u(i,s,r){return i.animate([{transform:s},{transform:r}],{duration:260,easing:"cubic-bezier(0.22, 0.61, 0.36, 1)",fill:"both"})}#g(){if(this.motion||!this.hasSlideTarget)return;let i=this.slideTarget,s=i.style.transform;if(i.style.transform="",s&&this.#c()){let r=[this.#u(i,s,"translateY(0)")];if(this.dragPoster){let a=this.dragPoster.style.transform.startsWith("translateY(-")?"-100%":"100%";r.push(this.#u(this.dragPoster,this.dragPoster.style.transform,`translateY(${a})`))}this.#d(r)}}#d(i,s={}){let r={animations:i,...s};this.motion=r,this.#p(),Promise.all(i.map(a=>a.finished)).catch(()=>{}).then(()=>{this.motion===r&&this.#m()})}#m(){if(!this.motion)return;let{animations:i,departing:s,video:r}=this.motion;this.motion=null,i.forEach(a=>a.cancel()),s?.remove(),this.#o(),r&&this.#f(r),this.active&&this.#p()}#f(i){i.removeAttribute("src"),i.load()}#p(){if(!this.hasPreviousTarget)return;this.previousTarget.disabled=!!this.motion||this.loading||this.indexValue===0;let i=this.indexValue+1>=this.previewTargets.length&&!this.#b();this.nextTarget.disabled=!!this.motion||this.loading||i,this.element.setAttribute("aria-busy",String(this.loading))}#b(){return this.paginationTarget.dataset.nextPageUrl}async#v(){this.loading=!0,this.errorTarget.hidden=!0,this.request=new window.AbortController,this.#p();try{if(!(await Ee(this.#b(),{responseKind:"turbo-stream",signal:this.request.signal})).ok)throw new Error("Could not load clips")}catch(i){this.active&&i.name!=="AbortError"&&(this.errorTarget.hidden=!1),this.loading=!1,this.active&&this.#p()}}};var Fc="shorts.guestNsfwEpisodes.v1";var Nw=/^[1-9]\d{0,18}$/,ua=class{async play(s,{isCurrent:r,play:a}){if(typeof s!="string"||!Nw.test(s))return"blocked";let n=!1;try{return await window.navigator.locks.request(Fc,async()=>{if(!r())return"canceled";let l=localStorage.getItem(Fc);if(l&&l.length>128)return"blocked";let d=l===null?[]:JSON.parse(l);if(!Array.isArray(d)||d.length>2||new Set(d).size!==d.length||d.some(v=>typeof v!="string"||!Nw.test(v)))return"blocked";let m=d.includes(s);if(!m&&d.length>=2)return"blocked";m||localStorage.setItem(Fc,JSON.stringify([...d,s]));try{await a()}catch(v){if(n=!0,!m)try{localStorage.setItem(Fc,JSON.stringify(d))}catch{}throw v}return"played"})}catch(l){if(n)throw l;return"blocked"}}};var Uw="shorts.subtitle.locale",Hw="shorts.audio.locale",di="en",qw="shorts.playback.speed",mA=1,$w=5,pA="input, textarea, select, button, a, [contenteditable]",IT="metadata",fA="hidden",vA=["bg-white/12","text-white"],TA=["text-white/62"],bA=["bg-white/12","text-white"],yA=["text-white/62"],SA=["bg-white/12","text-white"],wA=["text-white/62"],Gw=["border-shorts-accent-dark"],Ww=["border-grey-control","hover:border-grey-hint"],Dc="text-shorts-accent",jw="text-white",Kw="text-grey-hint",zw="Trailer",AT="data-shorts-cached-snapshot",Rc=class extends u{static classes=["entryFullscreenFrame"];static targets=["video","episode","playOverlay","playOverlayLabel","unmuteOverlay","ctaOverlay","ctaLabel","ctaEpisodeNumber","lockedPoster","skipProgress","playerFrame","playerMenuButton","speedSheetBackdrop","speedSheet","speedLabel","speedOption","subtitleSheetBackdrop","subtitleSheet","subtitleOption","subtitleOverlay","subtitleOverlayText","audioSheetBackdrop","audioSheet","audioOption","signupCta","watchCta"];static values={currentNumber:Number,currentLocale:{type:String,default:"en"},subtitleTracks:{type:String,default:""},dubTracks:{type:String,default:""},profileSlug:String,userType:String,completionAction:Object,nextRecommendation:Object,variant:{type:String,default:""},autoplayOnEntry:{type:Boolean,default:!1},autoAdvance:Boolean,completionToleranceSeconds:{type:Number,default:0},guestEpisodeLimit:Boolean,paywallOnCompletion:{type:Boolean,default:!1},context:{type:String,default:""},origin:{type:String,default:""},inAppUrl:{type:String,default:""},skipDelay:{type:Number,default:15},watchEpisodeLabel:{type:String,default:"Watch Episode"},watchTrailerLabel:{type:String,default:"Watch Trailer"}};connect(){this.playbackGeneration=(this.playbackGeneration||0)+1,this.guestEpisodeAllowance=new ua,this.videoTarget.dataset.guestPlaybackPending=String(this.guestEpisodeLimitValue),this.requestedPlaybackPending=!1,this.element.addEventListener("shorts:request-play",this.#I),document.addEventListener("shorts:age-confirmed",this.#C),this.currentEpisodeName=this.#z(),this.currentEpisodeTrackingName=this.#J(),this.currentCatalogEpisodeId=this.#Q(),this.episodeCompleted=!1,this.boundHandleVideoStarted=this.#ge.bind(this),this.boundHandleVideoEnded=this.#de.bind(this),this.boundUpdateSkipProgress=this.#me.bind(this),this.boundStopSkipProgressLoop=this.#ce.bind(this),this.boundReportNearCompletion=this.#fe.bind(this),this.videoTarget.addEventListener("playing",this.boundHandleVideoStarted),this.videoTarget.addEventListener("ended",this.boundHandleVideoEnded),this.videoTarget.addEventListener("timeupdate",this.boundUpdateSkipProgress),this.videoTarget.addEventListener("timeupdate",this.boundReportNearCompletion),this.videoTarget.addEventListener("pause",this.boundStopSkipProgressLoop),this.boundDispatchMetadata=()=>this.#H("metadata"),this.boundDispatchTime=()=>this.#H("time"),this.boundDispatchPlaying=()=>this.#H("playing"),this.boundDispatchPaused=()=>this.#H("paused"),this.boundDispatchEnded=()=>this.#H("ended"),this.boundDispatchVolume=()=>{this.#H("volume"),this.videoTarget.muted||(this.autoplayUnmutePending=!1,this.#B())},this.videoTarget.addEventListener("loadedmetadata",this.boundDispatchMetadata),this.videoTarget.addEventListener("timeupdate",this.boundDispatchTime),this.videoTarget.addEventListener("playing",this.boundDispatchPlaying),this.videoTarget.addEventListener("pause",this.boundDispatchPaused),this.videoTarget.addEventListener("ended",this.boundDispatchEnded),this.videoTarget.addEventListener("volumechange",this.boundDispatchVolume),this.boundHandleFullscreen=this.#a.bind(this),document.addEventListener("fullscreenchange",this.boundHandleFullscreen),document.addEventListener("webkitfullscreenchange",this.boundHandleFullscreen),this.pseudoFullscreen=!1,this.boundRepositionSubtitleOverlay=()=>this.#y(this.#v()),this.videoTarget.addEventListener("loadedmetadata",this.boundRepositionSubtitleOverlay),this.boundHandleNativeFullscreenBegin=this.#g.bind(this),this.boundHandleNativeFullscreenEnd=this.#d.bind(this),this.videoTarget.addEventListener("webkitbeginfullscreen",this.boundHandleNativeFullscreenBegin),this.videoTarget.addEventListener("webkitendfullscreen",this.boundHandleNativeFullscreenEnd),this.boundHandleKeydown=this.#e.bind(this),document.addEventListener("keydown",this.boundHandleKeydown),this.boundHandleModalClosed=()=>this.#b(),document.addEventListener("shorts:modal-closed",this.boundHandleModalClosed),this.boundPrepareSnapshotCache=()=>this.#L(),document.addEventListener("turbo:before-cache",this.boundPrepareSnapshotCache),this.selectedSubtitleLocale=this.#Te(),this.activeSubtitleLocale=null,this.selectedPlaybackSpeed=this.#Oe(),this.subtitleSheetCloseTimer=null,this.audioSheetCloseTimer=null,this.speedSheetCloseTimer=null,this.autoplayUnmutePending=!1,this.boundPrepareSubtitleTracks=()=>this.#le(),this.boundUpdateSubtitleOverlay=()=>this.#Be();let i=this.videoTarget.dataset.sourceInitialized==="true",s=this.videoTarget.dataset.src;this.baseVideoUrl=s||this.videoTarget.getAttribute("src")||"",this.videoTarget.removeAttribute("data-src"),this.dubTracksByLocale=this.#$e(this.dubTracksValue),this.subtitleTrackLocales=[],this.selectedDubLocale=this.#We(),this.activeDubLocale=di,this.videoTarget.controls=!1,this.videoTarget.addEventListener("loadedmetadata",this.boundPrepareSubtitleTracks),this.#ae(this.subtitleTracksValue),this.#Se(),this.#Fe(),i?this.#Ve():(this.#Re({initial:!0}),this.videoTarget.dataset.sourceInitialized="true");let r=this.element.hasAttribute(AT);this.element.removeAttribute(AT),this.guestEpisodeLimitValue&&!this.#M()&&this.#w(),queueMicrotask(()=>{this.element.isConnected&&(this.#H("ready"),(this.autoplayOnEntryValue||this.autoAdvanceValue)&&!r&&this.#k())})}disconnect(){this.playbackGeneration+=1,this.element.removeEventListener("shorts:request-play",this.#I),document.removeEventListener("shorts:age-confirmed",this.#C),this.hasVideoTarget&&(this.videoTarget.removeEventListener("playing",this.boundHandleVideoStarted),this.videoTarget.removeEventListener("ended",this.boundHandleVideoEnded),this.videoTarget.removeEventListener("timeupdate",this.boundUpdateSkipProgress),this.videoTarget.removeEventListener("timeupdate",this.boundReportNearCompletion),this.videoTarget.removeEventListener("pause",this.boundStopSkipProgressLoop),this.videoTarget.removeEventListener("loadedmetadata",this.boundPrepareSubtitleTracks),this.videoTarget.removeEventListener("loadedmetadata",this.boundDispatchMetadata),this.videoTarget.removeEventListener("timeupdate",this.boundDispatchTime),this.videoTarget.removeEventListener("playing",this.boundDispatchPlaying),this.videoTarget.removeEventListener("pause",this.boundDispatchPaused),this.videoTarget.removeEventListener("ended",this.boundDispatchEnded),this.videoTarget.removeEventListener("volumechange",this.boundDispatchVolume),this.videoTarget.removeEventListener("webkitbeginfullscreen",this.boundHandleNativeFullscreenBegin),this.videoTarget.removeEventListener("webkitendfullscreen",this.boundHandleNativeFullscreenEnd),this.videoTarget.removeEventListener("loadedmetadata",this.boundRepositionSubtitleOverlay),this.#we(),this.#Y()),window.clearTimeout(this.subtitleSheetCloseTimer),window.clearTimeout(this.audioSheetCloseTimer),window.clearTimeout(this.speedSheetCloseTimer),this.#ce(),window.removeEventListener("resize",this.boundRepositionSubtitleOverlay),this.pseudoFullscreen&&!this.pseudoFullscreenRestoreOverflow&&document.body.classList.remove("overflow-hidden"),document.removeEventListener("fullscreenchange",this.boundHandleFullscreen),document.removeEventListener("webkitfullscreenchange",this.boundHandleFullscreen),document.removeEventListener("keydown",this.boundHandleKeydown),document.removeEventListener("shorts:modal-closed",this.boundHandleModalClosed),document.removeEventListener("turbo:before-cache",this.boundPrepareSnapshotCache)}play(){if(this.#M()){this.#R(this.#V());return}this.#E().catch(i=>{console.error("Shorts video playback failed",i),this.#w()})}hideOverlay(){this.hasPlayOverlayTarget&&(this.playOverlayTarget.classList.add("hidden"),this.#H("overlay",{visible:!1}))}unmute(){this.autoplayUnmutePending=!1,this.videoTarget.muted=!1,this.#A()}surfaceTap(){this.variantValue==="variant_e"&&this.togglePlayback()}togglePlayback(){if(this.hasVideoTarget){if(this.#M()){this.#R(this.#V());return}
103if(this.videoTarget.paused||this.videoTarget.ended){this.#E().catch(()=>{});return}this.videoTarget.pause(),this.#H("user-paused",{episodeNumber:this.currentNumberValue,episodeName:this.#J(),positionSeconds:this.videoTarget.currentTime||0}),this.variantValue==="variant_e"&&this.#w()}}onPaywallClosed(){if(!this.#M()&&this.hasVideoTarget){if(this.videoTarget.ended)try{this.videoTarget.currentTime=0}catch{}this.#w()}}triggerLock(i){i?.target?.closest?.("[data-shorts-lock-exempt]")||this.#R(this.#V())}skipVideo(){this.videoTarget.pause(),this.#q({episodeNumber:this.currentNumberValue,episodeName:this.#z()})}switch(i){let s=i.currentTarget,r=parseInt(s.dataset.number,10),a=s.dataset.lockState||"";if(r===this.currentNumberValue&&!a)return;let n={lockState:a,posterUrl:s.dataset.posterUrl,episodeName:s.dataset.name,episodeTrackingName:s.dataset.trackingName||s.dataset.name,episodeNumber:r,catalogEpisodeId:s.dataset.catalogEpisodeId,tokenCost:parseInt(s.dataset.tokenCost,10)||0,trailer:s.dataset.trailer,purchaseUrl:s.dataset.purchaseUrl};if(a==="signup"){if(this.inAppUrlValue){Be.visit(this.inAppUrlValue);return}this.contextValue==="in_app"&&(this.#ne(r),this.#O(s,r,n)),this.#R(n);return}if(a==="premium"){this.#ne(r),this.#O(s,r,n),this.#j({posterUrl:n.posterUrl,episodeName:n.episodeName,episodeNumber:n.episodeNumber,catalogEpisodeId:n.catalogEpisodeId});return}if(a==="tokens"){this.#ne(r),this.#O(s,r,n),this.#U({episodeNumber:n.episodeNumber,episodeName:n.episodeName,catalogEpisodeId:n.catalogEpisodeId,posterUrl:n.posterUrl,tokenCost:n.tokenCost,purchaseUrl:n.purchaseUrl});return}if(a==="paywall"){this.#ne(r),this.#O(s,r,n),this.#q({episodeNumber:n.episodeNumber,episodeName:n.episodeName});return}this.#ne(r),this.playbackGeneration+=1,this.currentEpisodeName=n.episodeName,this.currentEpisodeTrackingName=n.episodeTrackingName,this.currentCatalogEpisodeId=n.catalogEpisodeId,this.#S(s,r)}openTracksMenu(){if(this.subtitleTrackLocales.length){this.#he(!0);return}this.#be(!0)}openSubtitleSheet(){this.#he(!0)}closeSubtitleSheet(){this.#he(!1)}openAudioSheet(){this.#be(!0)}closeAudioSheet(){this.#be(!1)}closeAudioSheetOnBackdrop(i){i.target===this.audioSheetBackdropTarget&&this.#be(!1)}chooseAudioTrack(i){let s=i.currentTarget.dataset.audioLocale||di;(s===di||this.#X().includes(s))&&(this.selectedDubLocale=s,this.#Ye(s),this.#Re(),this.#be(!1))}openSpeedSheet(){this.#ye(!0)}closeSpeedSheet(){this.#ye(!1)}closeSpeedSheetOnBackdrop(i){i.target===this.speedSheetBackdropTarget&&this.#ye(!1)}chooseSpeed(i){let s=parseFloat(i.currentTarget.dataset.speed);Number.isFinite(s)&&(this.selectedPlaybackSpeed=s,this.#He(s),this.#Se(),this.#Fe(),this.#ye(!1))}closeSubtitleSheetOnBackdrop(i){i.target===this.subtitleSheetBackdropTarget&&this.#he(!1)}chooseSubtitle(i){let s=i.currentTarget.dataset.subtitleLocale||null;this.selectedSubtitleLocale=s,this.#qe(s),this.#re(),this.#Ae(),this.#he(!1)}toggleFullscreen(){if(this.hasVideoTarget&&this.videoTarget.webkitDisplayingFullscreen){this.videoTarget.webkitExitFullscreen?.();return}if(this.#n()){this.#p();return}if(this.pseudoFullscreen){this.#c();return}if(this.#o()){this.#l();return}this.#h()}#e(i){if(!(i.metaKey||i.ctrlKey||i.altKey)&&!i.target?.closest?.(pA)&&this.#t()&&!this.#i())switch(i.key){case" ":if(i.repeat)return;i.preventDefault(),this.togglePlayback();break;case"ArrowLeft":i.preventDefault(),this.#r(-$w);break;case"ArrowRight":i.preventDefault(),this.#r($w);break;case"f":case"F":if(i.repeat)return;i.preventDefault(),this.toggleFullscreen();break}}#t(){return typeof this.element.checkVisibility=="function"?this.element.checkVisibility():!this.element.closest(".hidden")}#i(){return Array.from(document.querySelectorAll('[aria-modal="true"]')).some(i=>this.#s(i))}#s(i){return typeof i.checkVisibility=="function"?i.checkVisibility():i.getClientRects().length>0}#r(i){if(!this.hasVideoTarget||this.#M())return;let s=this.videoTarget;if(s.dataset.guestPlaybackPending==="true"||!s.getAttribute("src"))return;let r=Number(s.duration||0);r<=0||(this.#H("pre-seek",{positionSeconds:s.currentTime}),s.currentTime=Math.min(r,Math.max(0,s.currentTime+i)),this.#H("interaction"))}#a(){let i=this.hasPlayerFrameTarget&&this.#n()===this.playerFrameTarget;this.#T(i),this.#H("fullscreen",{fullscreen:i})}#n(){return document.fullscreenElement||document.webkitFullscreenElement||null}#o(){if(!this.hasPlayerFrameTarget)return!1;let i=this.playerFrameTarget;return!!(i.requestFullscreen||i.webkitRequestFullscreen)}#l(){if(!this.hasPlayerFrameTarget)return;let i=this.playerFrameTarget;(i.requestFullscreen||i.webkitRequestFullscreen)?.call(i)?.catch?.(()=>{})}#h(){this.hasPlayerFrameTarget&&(this.pseudoFullscreen=!0,this.pseudoFullscreenRestoreOverflow=document.body.classList.contains("overflow-hidden"),this.#u(!0),document.body.classList.add("overflow-hidden"),this.#T(!0),this.#H("fullscreen",{fullscreen:!0}))}#c(){this.pseudoFullscreen=!1,this.#u(!1),this.pseudoFullscreenRestoreOverflow||document.body.classList.remove("overflow-hidden"),this.#T(!1),this.#H("fullscreen",{fullscreen:!1})}#u(i){if(!this.hasPlayerFrameTarget)return;let s=this.playerFrameTarget;s.style.position=i?"fixed":"",s.style.inset=i?"0":"",s.style.width=i?"100vw":"",s.style.height=i?"100dvh":"",s.style.zIndex=i?"80":"",s.style.backgroundColor=i?"#000":""}#g(){this.#m(),this.#H("fullscreen",{fullscreen:!0})}#d(){this.#f(),this.#H("fullscreen",{fullscreen:!1})}
103#m(){let i=this.activeSubtitleLocale;if(!i)return;this.videoTarget.querySelectorAll("track").forEach(r=>{r.srclang===i&&(r.kind="subtitles")});let s=Array.from(this.videoTarget.textTracks||[]).find(r=>r.language===i);s&&(s.mode="showing")}#f(){this.videoTarget.querySelectorAll("track").forEach(i=>{i.kind=IT}),this.#re()}#p(){(document.exitFullscreen||document.webkitExitFullscreen)?.call(document)?.catch?.(()=>{})}#b(){this.hasVideoTarget&&this.videoTarget.webkitDisplayingFullscreen&&this.videoTarget.webkitExitFullscreen?.(),this.pseudoFullscreen&&this.#c(),this.#n()&&this.#p()}#v(){return this.pseudoFullscreen?!0:this.hasPlayerFrameTarget&&this.#n()===this.playerFrameTarget}#T(i){if(this.videoTarget.style.objectFit=i?"contain":"",this.videoTarget.style.borderRadius=i?"0":"",this.hasPlayerFrameTarget){let s=this.playerFrameTarget;s.style.borderRadius=i?"0":"",this.autoplayOnEntryValue&&this.entryFullscreenFrameClasses.forEach(r=>{s.classList.toggle(r,i)})}i?window.addEventListener("resize",this.boundRepositionSubtitleOverlay):window.removeEventListener("resize",this.boundRepositionSubtitleOverlay),this.#y(i)}#y(i){if(!this.hasSubtitleOverlayTarget)return;let s=this.subtitleOverlayTarget;if(!i||!this.hasVideoTarget){s.style.bottom="";return}let r=this.videoTarget,a=r.getBoundingClientRect();if(!r.videoWidth||!r.videoHeight||!a.width||!a.height){s.style.bottom="";return}let n=Math.min(a.width/r.videoWidth,a.height/r.videoHeight),l=r.videoHeight*n,d=(a.height-l)/2;s.style.bottom=`${Math.round(d+l*.2)}px`}#S(i,s){this.videoTarget.dataset.guestPlaybackPending=String(this.guestEpisodeLimitValue),this.#we(),this.hideOverlay(),this.#D(),this.#P(i.dataset.trailer==="true"),this.videoTarget.poster=i.dataset.posterUrl,this.baseVideoUrl=i.dataset.videoUrl||"",this.dubTracksByLocale=this.#$e(i.dataset.dubTracks);let r=this.#Me(this.#De())||i.dataset.videoUrl;this.#Ke(r),this.videoTarget.src=r,this.#ae(i.dataset.subtitleTracks),this.videoTarget.load(),this.#Se(),this.#E().catch(()=>this.#w()),this.#_(),this.currentNumberValue=s,this.#W(s),this.#Ve(),this.#H("changed")}#w(){this.hasPlayOverlayTarget&&(this.playOverlayTarget.classList.remove("hidden"),this.#H("overlay",{visible:!0}))}#L(){this.playbackGeneration+=1,this.requestedPlaybackPending=!1,this.element.setAttribute(AT,"true"),this.hasVideoTarget&&(this.videoTarget.dataset.guestPlaybackPending=String(this.guestEpisodeLimitValue),this.videoTarget.pause(),this.guestEpisodeLimitValue&&!this.#M()&&this.#w())}#I=()=>{this.requestedPlaybackPending=!0,this.play()};#C=()=>{this.requestedPlaybackPending?this.play():(this.autoplayOnEntryValue||this.autoAdvanceValue)&&this.#k()};#E(){let i=new CustomEvent("shorts:before-play",{bubbles:!0,cancelable:!0});if(!this.element.dispatchEvent(i))return Promise.resolve();if(this.requestedPlaybackPending=!1,!this.guestEpisodeLimitValue)return this.videoTarget.play();let s=this.currentCatalogEpisodeId,r=this.playbackGeneration,a=this.videoTarget.src,n=()=>this.element.isConnected&&r===this.playbackGeneration&&s===this.currentCatalogEpisodeId&&a===this.videoTarget.src;return this.guestEpisodeAllowance.play(s,{isCurrent:n,play:()=>this.videoTarget.play()}).then(l=>{if(l!=="blocked"||!n())return;let d=this.episodeTargets.find(v=>v.dataset.catalogEpisodeId===s),m={lockState:"paywall",posterUrl:d?.dataset.posterUrl||this.videoTarget.poster,catalogEpisodeId:s,episodeNumber:this.currentNumberValue,episodeName:this.#z()};this.#O(d,this.currentNumberValue,m),this.#q(m)})}async#k(){if(!this.#M()&&!(this.autoAdvanceValue&&document.documentElement.hasAttribute("data-turbo-preview")))try{await this.#E()}catch{if(!this.element.isConnected)return;let i=this.videoTarget.muted;this.videoTarget.muted=!0;try{await this.#E(),this.element.isConnected&&(this.autoplayUnmutePending=!0,this.#x())}catch(s){if(!this.element.isConnected)return;this.autoplayUnmutePending=!1,this.videoTarget.muted=i,console.error("Shorts video playback failed",s),this.#A(),this.#w()}}}#x(){this.hasUnmuteOverlayTarget&&this.unmuteOverlayTarget.classList.remove("hidden")}#A(){this.hasUnmuteOverlayTarget&&this.unmuteOverlayTarget.classList.add("hidden")}#B(){!this.autoplayOnEntryValue&&!this.autoAdvanceValue||this.#A()}#_(){!this.autoplayOnEntryValue&&!this.autoAdvanceValue||(this.autoplayUnmutePending&&this.videoTarget.muted?this.#x():this.#A())}#P(i){this.hasPlayOverlayLabelTarget&&this.playOverlayLabelTarget.classList.toggle("hidden",!i)}#O(i,s,r){this.#we(),this.#B(),this.videoTarget.pause(),this.videoTarget.removeAttribute("src"),this.#xe(),this.baseVideoUrl="",this.dubTracksByLocale={},this.#Ve(),this.videoTarget.poster=r.posterUrl||i?.dataset.posterUrl||this.videoTarget.poster,this.videoTarget.load(),this.hideOverlay(),this.#N(r),this.currentNumberValue=s,this.#W(s),this.#H("changed")}#N(i){this.hasCtaOverlayTarget&&(this.hasLockedPosterTarget&&(this.lockedPosterTarget.src=i.posterUrl||""),this.ctaOverlayTarget.dataset.lockState=i.lockState,this.ctaOverlayTarget.dataset.posterUrl=i.posterUrl,this.ctaOverlayTarget.dataset.episodeName=i.episodeName,this.ctaOverlayTarget.dataset.episodeNumber=i.episodeNumber,this.ctaOverlayTarget.dataset.catalogEpisodeId=i.catalogEpisodeId,this.ctaOverlayTarget.dataset.tokenCost=i.tokenCost,i.purchaseUrl&&(this.ctaOverlayTarget.dataset.purchaseUrl=i.purchaseUrl),this.#$(i),this.ctaOverlayTarget.classList.remove("hidden"),this.#H("overlay",{visible:!0}))}#$(i){let s=i.trailer===!0||i.trailer==="true";if(this.hasSignupCtaTarget&&this.hasWatchCtaTarget){let r=i.lockState==="signup";this.signupCtaTarget.classList.toggle("hidden",!r),this.watchCtaTarget.classList.toggle("hidden",r)}this.hasCtaLabelTarget&&(this.ctaLabelTarget.textContent=s?this.watchTrailerLabelValue:this.watchEpisodeLabelValue),this.hasCtaEpisodeNumberTarget&&(this.ctaEpisodeNumberTarget.textContent=i.episodeNumber,this.ctaEpisodeNumberTarget.classList.toggle("hidden",s))}#D(){this.hasCtaOverlayTarget&&(this.ctaOverlayTarget.classList.add("hidden"),this.#H("overlay",{visible:!1}))}#M(){return this.hasCtaOverlayTarget&&!this.ctaOverlayTarget.classList.contains("hidden")?this.ctaOverlayTarget.dataset.lockState:null}#V(){let i=this.ctaOverlayTarget.dataset;return{lockState:i.lockState,posterUrl:i.posterUrl,episodeName:i.episodeName,episodeNumber:parseInt(i.episodeNumber,10),catalogEpisodeId:i.catalogEpisodeId,tokenCost:parseInt(i.tokenCost,10)||0,purchaseUrl:i.purchaseUrl}}#R({lockState:i,posterUrl:s,episodeName:r,episodeNumber:a,catalogEpisodeId:n,tokenCost:l,purchaseUrl:d}
103){if(this.inAppUrlValue){Be.visit(this.inAppUrlValue);return}i==="signup"?this.#F():i==="premium"?this.#j({posterUrl:s,episodeName:r,episodeNumber:a,catalogEpisodeId:n}):i==="tokens"?this.#U({episodeNumber:a,episodeName:r,posterUrl:s,tokenCost:l,purchaseUrl:d}):i==="paywall"&&this.#q({episodeNumber:a,episodeName:r})}#F(){this.#b(),document.dispatchEvent(new CustomEvent("shorts:open-registration",{bubbles:!0}))}#j({posterUrl:i,episodeName:s,episodeNumber:r,catalogEpisodeId:a}){this.#b(),document.dispatchEvent(new CustomEvent("shorts:show-premium",{bubbles:!0,detail:{posterUrl:i,episodeName:s,episodeNumber:r,catalogEpisodeId:a}}))}#U({episodeNumber:i,episodeName:s,posterUrl:r,tokenCost:a,purchaseUrl:n}){this.#b(),document.dispatchEvent(new CustomEvent("shorts:show-buy",{bubbles:!0,detail:{profileSlug:this.profileSlugValue,episodeNumber:i,episodeName:s,posterUrl:r,tokenCost:a,purchaseUrl:n}}))}#q({episodeNumber:i,episodeName:s}){this.#b(),document.dispatchEvent(new CustomEvent("shorts:show-paywall",{bubbles:!0,detail:{episodeNumber:i,episodeName:s}}))}#W(i){this.episodeTargets.forEach(s=>{let r=parseInt(s.dataset.number,10)===i;s.classList.remove(...Gw,...Ww),s.classList.add(...r?Gw:Ww);let a=s.querySelector("[data-episode-label]"),n=s.querySelector("[data-episode-meta-text]");a&&(a.classList.remove(Dc,jw),a.classList.add(r?Dc:jw)),n&&(n.classList.remove(Dc,Kw),n.classList.add(r?Dc:Kw))})}#G(){return this.episodeTargets?.find(s=>parseInt(s.dataset.number,10)===this.currentNumberValue)?.dataset?.name||""}#Z(){let i=this.episodeTargets?.find(s=>parseInt(s.dataset.number,10)===this.currentNumberValue);return i?.dataset?.trackingName||i?.dataset?.name||""}#Q(){return this.episodeTargets?.find(s=>parseInt(s.dataset.number,10)===this.currentNumberValue)?.dataset?.catalogEpisodeId||""}#te(){return this.hasCtaOverlayTarget&&this.ctaOverlayTarget.dataset.episodeName||""}#z(){return this.variantValue==="variant_e"?zw:this.currentEpisodeName||this.#G()||this.#te()}#J(){return this.variantValue==="variant_e"?zw:this.currentEpisodeTrackingName||this.#Z()||this.#te()}#ne(i){this.episodeCompleted||i===this.currentNumberValue||this.#H("watch-finalized",{exitReason:"episode_switched",episodeName:this.#J(),episodeNumber:this.currentNumberValue})}#ge(){this.videoTarget.dataset.guestPlaybackPending="false",this.episodeCompleted=!1,this.hideOverlay(),this.#pe(),this.#H("watch-started",{episodeId:this.currentCatalogEpisodeId,episodeName:this.#J(),episodeNumber:this.currentNumberValue,origin:this.originValue})}#me(){if(this.variantValue!=="variant_e"||!this.hasSkipProgressTarget||!this.hasVideoTarget)return;let i=this.skipDelayValue;if(i<=0)return;let s=this.videoTarget.currentTime||0,r=Math.min(s/i*100,100);this.skipProgressTarget.style.width=`${r}%`}#pe(){if(this.variantValue!=="variant_e"||!this.hasVideoTarget)return;this.#ce(),this.#me();let i=()=>{if(this.#me(),this.videoTarget.paused||this.videoTarget.ended||this.videoTarget.currentTime>=this.skipDelayValue){this.skipProgressRaf=null;return}this.skipProgressRaf=window.requestAnimationFrame(i)};this.skipProgressRaf=window.requestAnimationFrame(i)}#ce(){this.skipProgressRaf&&(window.cancelAnimationFrame(this.skipProgressRaf),this.skipProgressRaf=null)}#de(){if(this.episodeCompleted=!0,this.#ce(),this.#H("watch-finalized",{exitReason:"completed",episodeName:this.#J(),episodeNumber:this.currentNumberValue}),this.#ee(),this.#ue(),this.#ve())return;let i=this.episodeTargets.find(s=>parseInt(s.dataset.number,10)===this.currentNumberValue+1);i&&i.click()}#fe(){if(this.completionToleranceSecondsValue<=0)return;let{duration:i,currentTime:s}=this.videoTarget;!Number.isFinite(i)||i<=0||i-s>this.completionToleranceSecondsValue||this.nearCompletionEpisodeId!==this.currentCatalogEpisodeId&&(this.nearCompletionEpisodeId=this.currentCatalogEpisodeId,this.#ee())}#ee(){this.#H("watch-completed",{episodeId:this.currentCatalogEpisodeId})}#ue(){if(!this.hasCompletionActionValue)return;let i=this.episodeTargets[this.episodeTargets.length-1];i&&parseInt(i.dataset.number,10)===this.currentNumberValue&&(this.episodeTargets.some(s=>s.dataset.lockState)||this.#H("completion-eligible",{episodeId:this.currentCatalogEpisodeId,action:this.completionActionValue,recommendation:this.hasNextRecommendationValue?this.nextRecommendationValue:null}))}#ve(){if(this.contextValue!=="landing")return!1;
103if(this.inAppUrlValue)return Be.visit(this.inAppUrlValue),!0;if(this.paywallOnCompletionValue)return this.#q({episodeNumber:this.currentNumberValue,episodeName:this.#z()}),!0;if(this.variantValue==="variant_b"&&this.currentNumberValue===1){let i=this.episodeTargets.find(s=>parseInt(s.dataset.number,10)===2);return i&&this.#O(i,2,{lockState:i.dataset.lockState||"signup",posterUrl:i.dataset.posterUrl,episodeName:i.dataset.name,episodeNumber:2,tokenCost:0,trailer:i.dataset.trailer}),this.#F(),!0}if(this.variantValue==="variant_c"&&this.currentNumberValue===0){let i=this.episodeTargets.find(s=>parseInt(s.dataset.number,10)===1);return i&&this.#O(i,1,{lockState:i.dataset.lockState||"premium",posterUrl:i.dataset.posterUrl,episodeName:i.dataset.name,episodeNumber:1,tokenCost:0,trailer:i.dataset.trailer}),this.#j({posterUrl:i?.dataset?.posterUrl||"",episodeName:i?.dataset?.name||"",episodeNumber:1,catalogEpisodeId:i?.dataset?.catalogEpisodeId||""}),!0}if(this.variantValue==="variant_d"&&this.currentNumberValue===2){let i=this.currentNumberValue+1,s=this.episodeTargets.find(r=>parseInt(r.dataset.number,10)===i);return this.autoplayOnEntryValue&&s?.dataset.lockState==="paywall"?(this.#H("advance-locked"),!0):(this.#q({episodeNumber:2,episodeName:this.#z()}),!0)}return this.variantValue==="variant_e"&&this.currentNumberValue===0?(this.#q({episodeNumber:0,episodeName:this.#z()}),!0):!1}#Te(){let i=this.#Ee();return i!==void 0?i:this.#oe()}#oe(){let i=this.#K();if(!i.length)return null;let s=(this.currentLocaleValue||"en").toLowerCase();return[s,s.split("-")[0],"en"].find(a=>i.includes(a))||i[0]}#K(){return this.#ie().map(i=>i.language)}#ie(){return Array.from(this.videoTarget.textTracks||[]).filter(i=>i.kind===IT)}#ke(i){return this.#ie().find(s=>s.language===i)||null}#re(){let i=this.#ie();if(!i.length){this.activeSubtitleLocale=null;return}let s=null;this.selectedSubtitleLocale?s=this.#ke(this.selectedSubtitleLocale)?this.selectedSubtitleLocale:this.#oe():this.#Ee()===void 0&&(s=this.#oe()),this.activeSubtitleLocale=s,i.forEach(r=>{r.mode=r.language===s?fA:"disabled"}),this.#Be()}#ae(i){this.#se();let s=this.#Ce(i);this.subtitleTrackLocales=s.map(r=>r.locale),s.length&&(this.videoTarget.crossOrigin="anonymous",s.forEach(({locale:r,label:a,url:n})=>{let l=document.createElement("track");l.kind=IT,l.src=n,l.srclang=r,l.label=a||r,this.videoTarget.appendChild(l)})),this.#ie().length?this.#le():this.#Ae()}#le(){this.#_e(),this.#re(),this.#Ae()}#Ce(i){if(!i)return[];try{let s=JSON.parse(i);return Array.isArray(s)?s.filter(r=>r?.locale&&r?.url):[]}catch{return[]}}#se(){this.#Y(),this.videoTarget.querySelectorAll("track").forEach(i=>i.remove()),this.videoTarget.removeAttribute("crossorigin"),this.subtitleTrackLocales=[],this.#Be()}#xe(){this.#se(),this.activeSubtitleLocale=null,this.#Ae()}#_e(){this.#Y(),this.#Ue()}#Ue(){this.#ie().forEach(i=>{i.addEventListener("cuechange",this.boundUpdateSubtitleOverlay)})}#Y(){this.#ie().forEach(i=>{i.removeEventListener("cuechange",this.boundUpdateSubtitleOverlay)})}#Be(){if(!this.hasSubtitleOverlayTextTarget)return;if(!this.activeSubtitleLocale){this.subtitleOverlayTextTarget.textContent="";return}let s=this.#ke(this.activeSubtitleLocale)?.activeCues;if(!s?.length){this.subtitleOverlayTextTarget.textContent="";return}this.subtitleOverlayTextTarget.textContent=Array.from(s).map(r=>this.#Ie(r.text.replace(/\n/g," "))).join(`
104`)}#Ie(i){let s=document.createElement("textarea");return s.innerHTML=i,s.value}#Ae(){let i=this.#K();this.#je();let s=this.activeSubtitleLocale||"";this.subtitleOptionTargets.forEach(r=>{let a=r.dataset.subtitleLocale||"",n=a===s;r.hidden=a!==""&&!i.includes(a),vA.forEach(l=>r.classList.toggle(l,n)),TA.forEach(l=>r.classList.toggle(l,!n))})}#he(i){if(!(!this.hasSubtitleSheetBackdropTarget||!this.hasSubtitleSheetTarget)){if(window.clearTimeout(this.subtitleSheetCloseTimer),i){this.#ye(!1),this.#be(!1),this.#Ae(),this.subtitleSheetBackdropTarget.classList.remove("hidden"),this.subtitleSheetBackdropTarget.classList.add("flex"),window.requestAnimationFrame(()=>{this.subtitleSheetBackdropTarget.classList.remove("opacity-0"),this.subtitleSheetTarget.classList.remove("translate-y-full")});return}this.subtitleSheetBackdropTarget.classList.add("opacity-0"),this.subtitleSheetTarget.classList.add("translate-y-full"),this.subtitleSheetCloseTimer=window.setTimeout(()=>{this.subtitleSheetBackdropTarget.classList.add("hidden"),this.subtitleSheetBackdropTarget.classList.remove("flex")},200)}}#be(i){if(!(!this.hasAudioSheetBackdropTarget||!this.hasAudioSheetTarget)){if(window.clearTimeout(this.audioSheetCloseTimer),i){this.#he(!1),this.#ye(!1),this.#Ve(),this.audioSheetBackdropTarget.classList.remove("hidden"),this.audioSheetBackdropTarget.classList.add("flex"),window.requestAnimationFrame(()=>{this.audioSheetBackdropTarget.classList.remove("opacity-0"),this.audioSheetTarget.classList.remove("translate-y-full")});return}this.audioSheetBackdropTarget.classList.add("opacity-0"),this.audioSheetTarget.classList.add("translate-y-full"),this.audioSheetCloseTimer=window.setTimeout(()=>{this.audioSheetBackdropTarget.classList.add("hidden"),this.audioSheetBackdropTarget.classList.remove("flex")},200)}}
104#ye(i){if(!(!this.hasSpeedSheetBackdropTarget||!this.hasSpeedSheetTarget)){if(window.clearTimeout(this.speedSheetCloseTimer),i){this.#he(!1),this.#be(!1),this.#Fe(),this.speedSheetBackdropTarget.classList.remove("hidden"),this.speedSheetBackdropTarget.classList.add("flex"),window.requestAnimationFrame(()=>{this.speedSheetBackdropTarget.classList.remove("opacity-0"),this.speedSheetTarget.classList.remove("translate-y-full")});return}this.speedSheetBackdropTarget.classList.add("opacity-0"),this.speedSheetTarget.classList.add("translate-y-full"),this.speedSheetCloseTimer=window.setTimeout(()=>{this.speedSheetBackdropTarget.classList.add("hidden"),this.speedSheetBackdropTarget.classList.remove("flex")},200)}}#Oe(){return this.#Pe()??mA}#Se(){this.hasVideoTarget&&(this.videoTarget.playbackRate=this.selectedPlaybackSpeed)}#Fe(){let i=String(this.selectedPlaybackSpeed);this.autoplayOnEntryValue&&this.speedLabelTargets.forEach(s=>{s.textContent=`${i}x`}),this.hasSpeedOptionTarget&&this.speedOptionTargets.forEach(s=>{let a=(s.dataset.speed||"")===i;SA.forEach(n=>s.classList.toggle(n,a)),wA.forEach(n=>s.classList.toggle(n,!a))})}#Pe(){try{let i=window.localStorage.getItem(qw);if(i===null)return;let s=parseFloat(i);return Number.isFinite(s)?s:void 0}catch{return}}#He(i){try{window.localStorage.setItem(qw,String(i))}catch{}}#Ee(){try{let i=window.localStorage.getItem(Uw);return i===null?void 0:i==="off"?null:i}catch{return}}#qe(i){try{window.localStorage.setItem(Uw,i||"off")}catch{}}#$e(i){if(!i)return{};try{let s=JSON.parse(i);if(!Array.isArray(s))return{};let r={};return s.forEach(a=>{a?.locale&&a?.url&&(r[a.locale]=a.url)}),r}catch{return{}}}#X(){return Object.keys(this.dubTracksByLocale||{})}#Me(i){return!i||i===di?this.baseVideoUrl||null:this.dubTracksByLocale?.[i]||this.baseVideoUrl||null}#We(){let i=this.#ze();return i!==void 0?i:this.#Le()}#De(){let i=this.selectedDubLocale||di;return i===di?di:this.#X().includes(i)?i:this.#Le()}#Le(){let i=this.#X();return this.#Ge().find(s=>i.includes(s))||di}#Ge(){let i=[],s=r=>{let a=(r||"").toLowerCase();if(!a)return;i.push(a);let n=a.split("-")[0];n&&n!==a&&i.push(n)};return s(this.currentLocaleValue),this.userTypeValue==="guest"&&((typeof navigator<"u"&&navigator.languages||[]).forEach(s),s(typeof navigator<"u"?navigator.language:"")),i}#Re({initial:i=!1}={}){let r=this.#Me(this.#De())||(i?this.baseVideoUrl:""),a=this.videoTarget.getAttribute("src")||"";if(r&&r!==a){let n=i?null:this.videoTarget.currentTime||0,l=i?!1:!this.videoTarget.paused&&!this.videoTarget.ended;this.#Ne(r,{resumeTime:n,wasPlaying:l})}this.#Ve()}#Ne(i,{resumeTime:s=0,wasPlaying:r=!1}={}){this.#we(),this.audioSwapReadyHandler=()=>{if(this.#we(),s!==null)try{let a=Number(this.videoTarget.duration||0);this.videoTarget.currentTime=a>0?Math.min(s,a):s}catch{}r&&this.#E().catch(()=>{})},this.audioSwapErrorHandler=()=>{if(this.#we(),!this.baseVideoUrl||this.videoTarget.getAttribute("src")===this.baseVideoUrl)return;let a=this.#X().find(n=>this.dubTracksByLocale[n]===i);a&&delete this.dubTracksByLocale[a],this.#Ne(this.baseVideoUrl,{resumeTime:s,wasPlaying:r}),this.#Ve()},this.videoTarget.addEventListener("loadedmetadata",this.audioSwapReadyHandler),this.videoTarget.addEventListener("error",this.audioSwapErrorHandler),this.videoTarget.src=i,this.videoTarget.load(),this.#Se()}#Ke(i){this.#we(),!(!this.baseVideoUrl||i===this.baseVideoUrl)&&(this.audioSwapReadyHandler=()=>this.#we(),this.audioSwapErrorHandler=()=>{if(this.#we(),this.videoTarget.getAttribute("src")===this.baseVideoUrl)return;let s=this.#X().find(r=>this.dubTracksByLocale[r]===i);s&&delete this.dubTracksByLocale[s],this.videoTarget.src=this.baseVideoUrl,this.videoTarget.load(),this.#Se(),this.#E().catch(()=>{}),this.#Ve()},this.videoTarget.addEventListener("loadedmetadata",this.audioSwapReadyHandler),this.videoTarget.addEventListener("error",this.audioSwapErrorHandler))}#we(){this.audioSwapReadyHandler&&(this.videoTarget.removeEventListener("loadedmetadata",this.audioSwapReadyHandler),this.audioSwapReadyHandler=null),this.audioSwapErrorHandler&&(this.videoTarget.removeEventListener("error",this.audioSwapErrorHandler),this.audioSwapErrorHandler=null)}#Ve(){this.#je();let i=this.#X();
104this.activeDubLocale=this.#De(),this.audioOptionTargets.forEach(s=>{let r=s.dataset.audioLocale||di,a=r===di||i.includes(r),n=r===this.activeDubLocale;s.disabled=!a,s.classList.toggle("cursor-not-allowed",!a),s.classList.toggle("opacity-60",!a),bA.forEach(m=>s.classList.toggle(m,n)),yA.forEach(m=>s.classList.toggle(m,!n));let l=s.querySelector("[data-audio-code]"),d=s.querySelector("[data-audio-coming-soon]");l&&l.classList.toggle("hidden",!a),d&&d.classList.toggle("hidden",a)})}#je(){if(!this.hasPlayerMenuButtonTarget)return;let i=this.subtitleTrackLocales.length>0,s=this.#X().length>0;this.playerMenuButtonTargets.forEach(r=>{r.hidden=!i&&!s})}#ze(){try{let i=window.localStorage.getItem(Hw);return i===null?void 0:i}catch{return}}#Ye(i){try{window.localStorage.setItem(Hw,i||di)}catch{}}#H(i,s={}){this.element.dispatchEvent(new CustomEvent(`shorts:player-${i}`,{bubbles:!0,detail:{video:this.hasVideoTarget?this.videoTarget:null,...s}}))}};var Nc="page_hidden",Uc=class extends u{static targets=["video"];static values={url:String,seriesName:String,context:String,userType:String,experimentParticipant:Boolean};connect(){this.session=null,this.lastEpisode=null,this.#e()&&(this.onPlaying=()=>this.#i(),this.onInactive=()=>this.#c(),this.onSeeked=()=>this.#s(),this.onTimeUpdate=()=>this.#f(),this.onPreSeek=i=>this.#f(i.detail?.positionSeconds),this.onWatchStarted=i=>this.#t(i),this.onWatchFinalized=i=>this.#u(i.detail?.exitReason),this.onModalClosed=()=>this.#u("player_closed"),this.onVisibilityChange=()=>this.#r(),this.onPageHidden=()=>this.#u(Nc,{beacon:!0}),this.onVideoError=()=>this.#a(),this.videoTarget.addEventListener("playing",this.onPlaying),this.videoTarget.addEventListener("pause",this.onInactive),this.videoTarget.addEventListener("waiting",this.onInactive),this.videoTarget.addEventListener("seeking",this.onInactive),this.videoTarget.addEventListener("seeked",this.onSeeked),this.videoTarget.addEventListener("timeupdate",this.onTimeUpdate),this.videoTarget.addEventListener("error",this.onVideoError,!0),this.element.addEventListener("shorts:player-watch-started",this.onWatchStarted),this.element.addEventListener("shorts:player-watch-finalized",this.onWatchFinalized),this.element.addEventListener("shorts:player-pre-seek",this.onPreSeek),document.addEventListener("shorts:modal-closed",this.onModalClosed),document.addEventListener("visibilitychange",this.onVisibilityChange),document.addEventListener("turbo:before-visit",this.onPageHidden),window.addEventListener("pagehide",this.onPageHidden))}disconnect(){this.onPlaying&&(this.#u(Nc,{beacon:!0}),this.videoTarget.removeEventListener("playing",this.onPlaying),this.videoTarget.removeEventListener("pause",this.onInactive),this.videoTarget.removeEventListener("waiting",this.onInactive),this.videoTarget.removeEventListener("seeking",this.onInactive),this.videoTarget.removeEventListener("seeked",this.onSeeked),this.videoTarget.removeEventListener("timeupdate",this.onTimeUpdate),this.videoTarget.removeEventListener("error",this.onVideoError,!0),this.element.removeEventListener("shorts:player-watch-started",this.onWatchStarted),this.element.removeEventListener("shorts:player-watch-finalized",this.onWatchFinalized),this.element.removeEventListener("shorts:player-pre-seek",this.onPreSeek),document.removeEventListener("shorts:modal-closed",this.onModalClosed),document.removeEventListener("visibilitychange",this.onVisibilityChange),document.removeEventListener("turbo:before-visit",this.onPageHidden),window.removeEventListener("pagehide",this.onPageHidden))}#e(){return(this.userTypeValue==="guest"||this.experimentParticipantValue)&&this.hasUrlValue&&this.urlValue.length>0&&this.hasSeriesNameValue&&this.seriesNameValue.trim().length>0&&this.hasContextValue&&this.contextValue.length>0&&this.hasVideoTarget}#t(i){let s=this.#n(i.detail);s&&(this.session&&!this.#o(this.session.episode,s)&&this.#u("episode_switched"),this.lastEpisode=s,this.#l(),this.#h())}#i(){this.#l(),this.#f(),this.#h()}#s(){this.#f(),!this.videoTarget.paused&&!this.videoTarget.ended&&this.#h()}#r(){if(document.visibilityState==="hidden"){this.#u(Nc,{beacon:!0});return}!this.videoTarget.paused&&!this.videoTarget.ended&&(this.#l(),this.#h())}#a(){let i=this.#T();queueMicrotask(()=>{i===this.#T()&&this.#u("video_error")})}
104#n(i){let s=i?.episodeName?.trim(),r=Number(i?.episodeNumber);return!s||!Number.isInteger(r)||r<0?null:{name:s,number:r}}#o(i,s){return i.name===s.name&&i.number===s.number}#l(){this.session||!this.lastEpisode||(this.session={episode:this.lastEpisode,elapsedMilliseconds:0,segmentStartedAt:null,furthestPositionSeconds:this.#m()})}#h(){!this.session||this.session.segmentStartedAt!==null||document.visibilityState!=="hidden"&&(this.session.segmentStartedAt=performance.now())}#c(){if(!this.session||(this.#f(),this.session.segmentStartedAt===null))return;let i=performance.now()-this.session.segmentStartedAt;Number.isFinite(i)&&i>0&&(this.session.elapsedMilliseconds+=i),this.session.segmentStartedAt=null}#u(i,{beacon:s=!1}={}){if(!i||(i!==Nc&&(this.lastEpisode=null),!this.session))return;this.#c();let r=this.session;this.session=null;let a={series_name:this.seriesNameValue.trim(),episode_name:r.episode.name,episode_number:r.episode.number,watch_time_seconds:this.#p(r.elapsedMilliseconds/1e3),duration_seconds:this.#g(),exit_position_seconds:this.#m(),furthest_position_seconds:r.furthestPositionSeconds,exit_reason:i,context:this.contextValue};s?this.#v(a):this.#b(a)}#g(){let i=Number(this.videoTarget.duration);return Number.isFinite(i)&&i>=0?this.#p(i):0}#d(i){let s=Number(i);return Number.isFinite(s)&&s>=0?this.#p(s):0}#m(){return this.#d(this.videoTarget.currentTime)}#f(i=this.videoTarget.currentTime){this.session&&(this.session.furthestPositionSeconds=Math.max(this.session.furthestPositionSeconds,this.#d(i)))}#p(i){return Math.round(i*1e3)/1e3}#b(i){H(this.urlValue,{body:{watch_time_event:i}}).catch(()=>{})}#v(i){if(typeof navigator.sendBeacon!="function"){this.#b(i);return}let s=new FormData,r=document.querySelector('meta[name="csrf-token"]')?.content;r&&s.append("authenticity_token",r),Object.entries(i).forEach(([a,n])=>{s.append(`watch_time_event[${a}]`,String(n))}),navigator.sendBeacon(this.urlValue,s)||this.#b(i)}#T(){return this.videoTarget.getAttribute("src")||this.videoTarget.currentSrc||""}};var Hc=class extends u{static values={url:String};connect(){this.queue=Promise.resolve(),this.startedEpisodeIds=new Set,this.pendingStarted=new Map,this.completedEpisodeIds=new Set,this.pendingCompleted=new Map}async started(i){let s=i.detail?.episodeId;return s!==this.lastStartedEpisodeId&&(this.startedEpisodeIds.clear(),this.pendingStarted.clear(),this.lastStartedEpisodeId=s),this.pendingCompleted.size&&await Promise.allSettled([...this.pendingCompleted.values()]),this.#e(s,"started",this.startedEpisodeIds,this.pendingStarted,i.detail?.origin)}async completed(i){let s=i.detail?.episodeId;(await this.#e(s,"completed",this.completedEpisodeIds,this.pendingCompleted))?.granted&&this.dispatch("completed",{detail:{episodeId:s}})}async#e(i,s,r,a,n){if(!i||r.has(i))return null;let l=a.get(i);if(l&&(await l||r.has(i)))return null;let d=this.#t(i,s,n);a.set(i,d);let m=await d;return m&&r.add(i),a.get(i)===d&&a.delete(i),m}#t(i,s,r){return this.urlValue?(this.queue=this.queue.then(()=>this.#i(i,s,r)),this.queue):Promise.resolve(null)}async#i(i,s,r){try{let a=await H(this.urlValue,{body:JSON.stringify({episode_id:i,status:s,origin:r||void 0}),responseKind:"json"});return a.ok?{granted:(await a.json)?.granted===!0}:null}catch{return null}}};var tr=Object.freeze({WHATS_NEXT_MODAL_VIEWED:"Whats Next Modal Viewed",WHATS_NEXT_SERIES_CLICKED:"Whats Next Series Clicked",WHATS_NEXT_CHAT_CLICKED:"Whats Next Chat Clicked",WHATS_NEXT_CREATE_CLICKED:"Whats Next Create Clicked",WHATS_NEXT_MODAL_DISMISSED:"Whats Next Modal Dismissed"}),PT=class{constructor({profileSlug:s,userType:r}){this.profileSlug=s,this.userType=r}track(s,r={},a){if(typeof window.mixpanel>"u"||!window.mixpanel.track)return;let n={...r,Profile:this.profileSlug,UserType:this.userType};window.mixpanel.track(s,n,a)}},Yw=PT;var Xw=["pointerdown","click","keydown"],Qw=["turbo:before-visit","turbo:before-cache"],ga=class{#e="idle";#t=5e3;#i=null;#s=null;#r;#a;#n;#o;#l=5e3/1e3;constructor({onTick:s,onComplete:r,onCancel:a,onProgress:n}={}){this.#r=s,this.#a=r,this.#n=a,this.#o=n}start(){this.#e==="idle"&&(this.#e="paused",Xw.forEach(s=>document.addEventListener(s,this.#h,!0)),Qw.forEach(s=>document.addEventListener(s,this.#h)),document.addEventListener("visibilitychange",this.#c),window.addEventListener("pagehide",this.#h),window.addEventListener("popstate",this.#h),this.#r?.(5e3/1e3),this.#o?.(0),this.#g())}cancel(){if(this.#e==="cancelled"||this.#e==="completed")return;let s=this.#e!=="idle";this.#f("cancelled"),s&&this.#n?.()}#h=()=>this.cancel();#c=()=>{document.hidden?this.#u():this.#g()};
104#u(){this.#e==="running"&&(this.#t=Math.max(0,this.#i-performance.now()),this.#e="paused",this.#p())}#g(){this.#e!=="paused"||document.hidden||(this.#e="running",this.#i=performance.now()+this.#t,this.#d())}#d(){if(this.#e!=="running")return;let s=this.#t===0?0:this.#t%1e3||1e3;this.#s=setTimeout(this.#m,this.#o?Math.min(s,100):s)}#m=()=>{if(this.#e==="running"){if(document.hidden){this.#e="paused",this.#p();return}if(this.#t=Math.max(0,this.#i-performance.now()),this.#o?.(1-this.#t/5e3),this.#t===0)this.#f("completed"),this.#r?.(0),this.#a?.();else{let s=Math.ceil(this.#t/1e3);s!==this.#l&&(this.#l=s,this.#r?.(s)),this.#d()}}};#f(s){this.#e=s,this.#p(),Xw.forEach(r=>document.removeEventListener(r,this.#h,!0)),Qw.forEach(r=>document.removeEventListener(r,this.#h)),document.removeEventListener("visibilitychange",this.#c),window.removeEventListener("pagehide",this.#h),window.removeEventListener("popstate",this.#h)}#p(){clearTimeout(this.#s),this.#s=null,this.#i=null}};var ir=class{#e;#t;#i;#s;#r;#a=!1;#n=!1;constructor({element:s,url:r,episodeId:a,seriesId:n}){this.#e=s,this.#t=r,this.#i=a,this.#s=n}prepare({variant:s}={}){if(this.#n||!this.#e.isConnected)return Promise.resolve(null);if(["control","popup_countdown","overlay_countdown","popup_banner_countdown"].includes(s)){let r=new URL(this.#t,window.location.href);return r.searchParams.set("episode_id",this.#i),r.searchParams.set("series_id",this.#s),Promise.resolve({variant:s,advance_url:`${r.pathname}${r.search}`})}return this.#r||=this.#o(),this.#r}async advance(s){if(this.#a||!this.#l())return!1;this.#a=!0;try{let r=await Ee(s,{responseKind:"json"});if(!r.ok)return!1;let a=await r.json;return!a.watch_path||!this.#l()?!1:(Turbo.visit(a.watch_path),!0)}catch{return!1}}cancel(){this.#n=!0}async#o(){try{let s=await H(this.#t,{body:{episode_id:this.#i,series_id:this.#s},responseKind:"json"});if(!s.ok)return null;let r=await s.json;return this.#n||!this.#e.isConnected?null:r}catch{return null}}#l(){return!this.#n&&this.#e.isConnected&&!document.hidden}};var CA=["a[href]","button:not([disabled])","[tabindex]:not([tabindex='-1'])"].join(","),EA=500,LA="cubic-bezier(0, 0.6, 0, 1)",kA=5e3,Jw=["pointerdown","click","keydown"],VT=["turbo:before-visit","turbo:before-cache"],Zw=["shorts:player-playing","shorts:player-changed","shorts:player-pre-seek"],qc=class extends u{static targets=["closeButton","grid","image","panel","recommendation","countdown","bannerCountdown","upNext","overlay","overlayCountdown","playNow","countdownLabel","countdownRing","popupTitle"];static classes=["popup","overlay"];static values={trackingEnabled:Boolean,seriesName:String,character:String,variant:String,targetSeriesName:String,targetProfileSlug:String,userType:String,autoAdvanceUrl:String,autoAdvanceVariant:String,countdownLabel:String,advancingLabel:String,overlayLabel:String,cancelledLabel:String};#e=null;#t=null;#i=null;#s=!1;#r=!1;#a=null;#n=!1;connect(){this.tracker=new Yw({profileSlug:this.targetProfileSlugValue||void 0,userType:this.userTypeValue}),Zw.forEach(i=>document.addEventListener(i,this.#p)),document.addEventListener("shorts:modal-closed",this.#b)}disconnect(){this.#a=null,this.#y(),Zw.forEach(i=>document.removeEventListener(i,this.#p)),document.removeEventListener("shorts:modal-closed",this.#b),this.panelAnimation?.cancel(),this.#C()}open(i){if(!this.#w(i)||!this.element.classList.contains("hidden")||this.#e)return;this.previouslyFocusedElement=document.activeElement;let{episodeId:s,recommendation:r}=i.detail||{};this.autoAdvanceUrlValue&&s&&r?.series_id&&this.hasCountdownTarget?this.#u(i):this.#m()}close(i){i?.preventDefault(),!(this.element.classList.contains("hidden")&&!this.#e)&&(!this.#s&&!this.element.classList.contains("hidden")&&this.#l(tr.WHATS_NEXT_MODAL_DISMISSED,{SeriesName:this.seriesNameValue,Variant:this.variantValue}),this.#c(),this.#A())}async playNow(i){if(!this.#a||(i.preventDefault(),this.#n))return;if(this.#a.recheckFailed){Turbo.visit(this.recommendationTarget.getAttribute("href"));return}let{options:s,url:r}=this.#a;this.#y();let a=new ir(s);this.#e=a,this.#n=!0,this.#S(this.advancingLabelValue),VT.forEach(l=>document.addEventListener(l,this.#T,!0)),window.addEventListener("pagehide",this.#T),window.addEventListener("popstate",this.#T);let n=await a.advance(r);this.#e===a&&(n?this.#a=null:this.#a.recheckFailed=!0,this.#y())}trackSeriesClicked(i){this.#a&&!this.#a.recheckFailed&&!i.metaKey&&!i.ctrlKey&&!i.shiftKey&&!i.altKey&&!i.button&&this.playNow(i),this.#l(tr.WHATS_NEXT_SERIES_CLICKED,{SeriesName:this.seriesNameValue,Variant:this.variantValue,Target
104SeriesName:this.targetSeriesNameValue})}trackActionClicked(){this.variantValue==="candy_character"?this.#l(tr.WHATS_NEXT_CHAT_CLICKED,{SeriesName:this.seriesNameValue,Character:this.characterValue,Variant:this.variantValue,TargetProfileSlug:this.targetProfileSlugValue}):this.#l(tr.WHATS_NEXT_CREATE_CLICKED,{SeriesName:this.seriesNameValue,Variant:this.variantValue})}beforeCache(){this.#c(),this.previouslyFocusedElement=null}closeOnBackdrop(i){i.target===this.element&&this.close(i)}keydown(i){if(!(this.element.classList.contains("hidden")&&!this.#e)){if(i.key==="Escape"){i.preventDefault(),i.stopPropagation(),this.close();return}i.key==="Tab"&&!this.#s&&!this.element.classList.contains("hidden")&&this.#x(i)}}imageFailed(i){i.currentTarget.classList.add("hidden"),i.currentTarget.previousElementSibling?.classList.remove("hidden"),i.currentTarget.previousElementSibling?.classList.add("flex")}#o(i,s,r){i.classList.remove(...s),i.classList.add(...r)}#l(i,s){this.trackingEnabledValue&&this.tracker.track(i,s)}#h(){return this.characterValue?{Character:this.characterValue}:{}}#c(){this.#a=null,this.#y(),this.hasUpNextTarget&&(this.upNextTarget.hidden=!0),this.panelAnimation?.cancel(),this.panelAnimation=null,this.element.classList.add("hidden"),this.element.setAttribute("aria-hidden","true"),this.#s&&(this.#o(this.element,this.overlayClasses,this.popupClasses),this.panelTarget.hidden=!1,this.overlayTarget.hidden=!0,this.element.setAttribute("role","dialog"),this.element.setAttribute("aria-modal","true"),this.element.setAttribute("aria-labelledby",this.popupTitleTarget.id),this.element.removeAttribute("aria-label"),this.#s=!1),this.#C()}async#u(i){let{episodeId:s,recommendation:r}=i.detail||{};if(!this.autoAdvanceUrlValue||!s||!r?.series_id||!this.hasCountdownTarget)return;let a={element:this.element,url:this.autoAdvanceUrlValue,episodeId:s,seriesId:r.series_id},n=new ir(a);this.#e=n;let l={countdownCancelled:!1,remaining:kA,deadline:null,timeout:null};this.#t=l,document.addEventListener("visibilitychange",this.#g),this.#g(),Jw.forEac
104h(D=>document.addEventListener(D,this.#v,!0)),VT.forEach(D=>document.addEventListener(D,this.#T,!0)),window.addEventListener("pagehide",this.#T),window.addEventListener("popstate",this.#T);let d=await n.prepare({variant:this.autoAdvanceVariantValue});if(this.#e!==n)return;this.#d();let m=["popup_countdown","popup_banner_countdown"].includes(d?.variant);if(this.#r=d?.variant==="popup_banner_countdown"&&this.hasBannerCountdownTarget,this.hasUpNextTarget&&(this.upNextTarget.hidden=!this.#r),(m||d?.variant==="overlay_countdown")&&d?.advance_url&&(this.#a={options:a,url:d.advance_url}),d?.variant==="overlay_countdown"&&this.hasOverlayTarget?this.#f():this.#m(),!this.#s&&m&&this.gridTarget.prepend(this.recommendationTarget),l.countdownCancelled||!this.#s&&!m||!d?.advance_url){this.#y();return}let v=this.#r?this.bannerCountdownTarget:this.countdownTarget,E=this.#s?this.overlayCountdownTarget:v;E.hidden=!1,this.#i=new ga({onTick:D=>{this.#S(D>0?this.countdownLabelValue.replace("%{seconds}",String(D)):this.advancingLabelValue)},onProgress:D=>{this.countdownRingTargets.forEach(R=>R.style.setProperty("--countdown-progress",String(D)))},onComplete:async()=>{let D=await n.advance(d.advance_url);this.#e===n&&(D?this.#a=null:this.#a.recheckFailed=!0,this.#y())},onCancel:this.#y}),this.#i.start()}#g=()=>{let i=this.#t;i&&(document.hidden?i.deadline!==null&&(i.remaining=Math.max(0,i.deadline-performance.now()),clearTimeout(i.timeout),i.timeout=null,i.deadline=null):i.deadline===null&&(i.deadline=performance.now()+i.remaining,i.timeout=setTimeout(()=>{if(document.hidden){i.timeout=null,i.deadline=null;return}this.#y(),this.#m()},i.remaining)))};#d(){clearTimeout(this.#t?.timeout),this.#t=null,document.removeEventListener("visibilitychange",this.#g)}#m(){this.#L(),this.#I(),this.element.classList.remove("hidden"),this.element.setAttribute("aria-hidden","false"),this.#E(),this.closeButtonTarget.focus({preventScroll:!0}),this.#l(tr.WHATS_NEXT_MODAL_VIEWED,{SeriesName:this.seriesNameValue,...this.#h(),Variant:this.variantValue})}#f(){this.#L(this.overlayTarget),this.#s=!0,this.#o(this.element,this.popupClasses,this.overlayClasses),this.panelTarget.hidden=!0,this.overlayTarget.hidden=!1,this.overlayCountdownTarget.hidden=!1,this.element.classList.remove("hidden"),this.element.setAttribute("aria-hidden","false"),this.element.setAttribute("role","region"),this.element.removeAttribute("aria-modal"),this.element.removeAttribute("aria-labelledby"),this.element.setAttribute("aria-label",this.overlayLabelValue),this.playNowTarget.focus({preventScroll:!0})}#p=i=>{this.#w(i)&&(this.#s?(this.#c(),this.previouslyFocusedElement=null):(this.#a=null,this.#y()))};#b=i=>{i.detail?.modal?.contains(this.element)&&(this.#c(),this.previouslyFocusedElement=null)};#v=()=>{this.#t?this.#t.countdownCancelled=!0:this.#y()};#T=()=>{this.#a=null,this.#y()};#y=()=>{this.#d(),this.#e?.cancel(),this.#e=null,this.#n=!1;let i=this.#i;this.#i=null,i?.cancel(),this.hasCountdownTarget&&(this.countdownTarget.hidden=!this.#a||this.#s||this.#r),this.hasBannerCountdownTarget&&(this.bannerCountdownTarget.hidden=!this.#a||!this.#r),this.hasOverlayCountdownTarget&&(this.overlayCountdownTarget.hidden=!this.#a||!this.#s),this.#S(this.cancelledLabelValue),Jw.forEach(s=>document.removeEventListener(s,this.#v,!0)),VT.forEach(s=>document.removeEventListener(s,this.#T,!0)),window.removeEventListener("pagehide",this.#T),window.removeEventListener("popstate",this.#T)};#S(i){this.countdownLabelTargets.forEach(s=>{s.textContent=i})}#w(i){return typeof i.target?.contains=="function"&&i.target.contains(this.element)}#L(i=this.panelTarget){this.imageTargets.forEach(s=>{!i.contains(s)||!s.dataset.src||s.getAttribute("src")||(s.setAttribute("src",s.dataset.src),delete s.dataset.src)})}#I(){if(document.body.classList.contains("overflow-hidden")){this.ownsBodyScrollLock=!1;return}document.body.classList.add("overflow-hidden"),this.ownsBodyScrollLock=!0}#C(){this.ownsBodyScrollLock&&(document.body.classList.remove("overflow-hidden"),this.ownsBodyScrollLock=!1)}#E(){this.#k||typeof this.panelTarget.animate!="function"||(this.panelAnimation?.cancel(),this.panelAnimation=this.panelTarget.animate([{transform:"translateY(100vh)"},{transform:"translateY(0)"}],{duration:EA,easing:LA}))}get#k(){return typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}#x(i){let s=Array.from(this.panelTarget.querySelectorAll(CA)).filter(n=>!n.closest("[hidden]"));if(s.length===0)return;let r=s[0],a=s[s.length-1];
104i.shiftKey&&document.activeElement===r?(i.preventDefault(),a.focus()):!i.shiftKey&&document.activeElement===a&&(i.preventDefault(),r.focus())}#A(){let i=this.previouslyFocusedElement;this.previouslyFocusedElement=null,i instanceof window.HTMLElement&&i!==document.body&&i.isConnected&&i.focus({preventScroll:!0})}};var $c=class extends u{static targets=["item","emptyState"];static values={filter:{type:String,default:"chat"}};connect(){this.#e()}select(i){this.filterValue=i.detail.value,this.#e(),this.#t()}#e(){let i=0;this.itemTargets.forEach(s=>{let r=this.filterValue==="all"||s.dataset.filterTag===this.filterValue;s.classList.toggle("hidden",!r),r&&(i+=1)}),this.emptyStateTargets.forEach(s=>{let r=i===0&&s.dataset.filter===this.filterValue;s.classList.toggle("hidden",!r)})}#t(){let i=new URL(window.location.href);this.filterValue==="chat"?i.searchParams.delete("filter"):i.searchParams.set("filter",this.filterValue),window.history.replaceState(window.history.state,"",i)}};var Gc=class extends u{static targets=["track","fill","timeLabel"];static values={multipleTracks:{type:Boolean,default:!1}};connect(){this.seeking=!1,this.video=this.element.querySelector("video"),this.update()}refresh(i){this.video=i.detail?.video||this.video,this.update()}update(i){if(i?.detail?.video&&(this.video=i.detail.video),!this.video||!this.hasFillTarget)return;let s=Number(this.video.duration||0),r=Number(this.video.currentTime||0),a=s>0?Math.min(100,Math.max(0,r/s*100)):0;this.fillTargets.forEach(n=>{n.style.width=`${a}%`})}seek(i){!this.#e()||this.seeking||this.#i(i)}startSeek(i){this.#e()&&(this.seeking=!0,this.activeTrack=this.multipleTracksValue?i.currentTarget:this.trackTarget,this.activeTrack.setPointerCapture?.(i.pointerId),this.#r(!0),this.#a(),this.#i(i))}moveSeek(i){this.seeking&&this.#i(i)}endSeek(i){this.seeking&&(this.#i(i),this.#t())}cancelSeek(){this.#t()}#e(){return this.video?this.video.dataset.guestPlaybackPending!=="true"&&!!this.video.getAttribute("src"):!1}#t(){this.seeking=!1,this.#r(!1),this.#n(),this.activeTrack=null}#i(i){let s=Number(this.video.duration||0);if(s<=0)return;let r=this.multipleTracksValue?this.activeTrack||i.currentTarget||this.trackTarget:this.trackTarget,a=r.getBoundingClientRect(),n=Math.min(1,Math.max(0,(i.clientX-a.left)/a.width));this.#s(),this.video.currentTime=s*n,this.update(),this.#o(r,n,s*n)}#s(){this.element.dispatchEvent(new CustomEvent("shorts:player-pre-seek",{bubbles:!0,detail:{video:this.video,positionSeconds:this.video.currentTime}}))}#r(i){let s=this.activeTrack||this.trackTarget,r=s.dataset.collapsedHeightClass||"h-1",a=s.dataset.expandedHeightClass||"h-3";s.classList.toggle(r,!i),s.classList.toggle(a,i)}#a(){let i=this.#l();i&&i.classList.remove("hidden")}#n(){let i=this.#l();i&&i.classList.add("hidden")}#o(i,s,r){let a=this.#l();if(!a)return;a.textContent=this.#h(r);let n=a.offsetWidth||42,l=i.offsetWidth,d=Math.min(l-n/2,Math.max(n/2,l*s));a.style.left=`${d}px`,a.style.transform="translateX(-50%)"}#l(){if(!this.hasTimeLabelTarget)return null;if(!this.multipleTracksValue)return this.timeLabelTarget;let i=this.trackTargets.indexOf(this.activeTrack);return this.timeLabelTargets[i]||this.timeLabelTarget}#h(i){let s=Math.max(0,Math.floor(Number(i||0))),r=Math.floor(s/60),a=String(s%60).padStart(2,"0");return`${r}:${a}`}};var xA=2e3,IA="[&_*]:pointer-events-none!",Wc=class extends u{static targets=["controls","centerButton","playIcon","pauseIcon","currentTime","duration","volumeOnIcon","volumeOffIcon","volumeSlider","fullscreenIcon","exitFullscreenIcon"];static values={syncAllVolumeControls:{type:Boolean,default:!1},revealOnPlay:{type:Boolean,default:!1}};connect(){this.video=this.element.querySelector("video"),this.playingVideo=!!this.video&&!this.video.paused&&!this.video.ended,this.hideTimer=null,this.centerButtonRevealed=!1,this.overlayVisible=!1,this.controlsHovered=!1,this.#h(),this.#l(),this.#o(),this.#s(this.#i())}disconnect(){this.#a()}ready(i){this.#t(i),this.playingVideo=!!this.video&&!this.video.paused&&!this.video.ended,this.#h(),this.#l(),this.#o(),this.#s(this.#i())}playing(i){if(this.#t(i),this.playingVideo=!0,this.centerButtonRevealed=!0,this.#n(),this.#l(),this.#o(),this.#e()){this.#r();return}this.#s(this.controlsHovered)}paused(i){this.#t(i),this.playingVideo=!1,this.#l(),this.#o(),this.#s(this.#i())}changed(i){this.#t(i),this.playingVideo=!!this.video&&!this.video.paused&&!this.video.ended,this.#h(),this.#l(),this.#o(),this.#n(),this.#i()||this.#s(!1)}updateTime(i){this.#t(i),this.#l()}reveal(i){i?.type==="pointermove"&&i.pointerType!=="mouse"||this.#i()&&(this.#s(!0),this.playingVideo&&this.#r())}
104controlsEnter(){window.matchMedia("(hover: hover)").matches&&(this.controlsHovered=!0,this.#a())}controlsLeave(){this.controlsHovered=!1,this.playingVideo&&this.#r()}overlayChanged(i){this.overlayVisible=!!i.detail?.visible,this.#n()}toggleMute(i){i?.preventDefault(),this.video&&(this.video.muted=!this.video.muted,this.#h())}changeVolume(i){if(!this.video)return;let s=Math.min(1,Math.max(0,Number(i.currentTarget.value||0)));this.video.volume=s,this.video.muted=s<=0,this.#h()}syncVolume(){this.#h()}fullscreenChanged(i){let s=!!i.detail?.fullscreen;this.hasFullscreenIconTarget&&this.fullscreenIconTarget.classList.toggle("hidden",s),this.hasExitFullscreenIconTarget&&this.exitFullscreenIconTarget.classList.toggle("hidden",!s)}#e(){return this.revealOnPlayValue?!!window.matchMedia?.("(min-width: 1024px)").matches:!1}#t(i){this.video=i?.detail?.video||this.video||this.element.querySelector("video")}#i(){return this.video?this.video.dataset.guestPlaybackPending!=="true"&&!!this.video.getAttribute("src"):!1}#s(i){this.#a(),this.controlsTargets.forEach(s=>{s.classList.toggle("opacity-100",i),s.classList.toggle("opacity-0",!i),s.classList.toggle("pointer-events-none",!i),s.classList.toggle(IA,!i)})}#r(){this.#s(this.#i()),this.#a(),!this.controlsHovered&&(this.hideTimer=window.setTimeout(()=>{this.playingVideo&&this.#s(!1)},xA))}#a(){this.hideTimer&&(window.clearTimeout(this.hideTimer),this.hideTimer=null)}#n(){let i=this.centerButtonRevealed&&!this.overlayVisible&&this.#i();this.centerButtonTargets.forEach(s=>{s.classList.toggle("hidden",!i),s.classList.toggle("flex",i)})}#o(){this.playIconTargets.forEach(i=>{i.classList.toggle("hidden",this.playingVideo)}),this.pauseIconTargets.forEach(i=>{i.classList.toggle("hidden",!this.playingVideo)})}#l(){let i=this.video?.currentTime||0,s=this.video?.duration||0;this.hasCurrentTimeTarget&&(this.currentTimeTarget.textContent=this.#c(i)),this.hasDurationTarget&&(this.durationTarget.textContent=this.#c(s))}#h(){if(!this.video)return;let i=this.video.muted||this.video.volume<=0;this.syncAllVolumeControlsValue?(this.volumeSliderTargets.forEach(s=>{s.value=i?0:this.video.volume}),this.volumeOnIconTargets.forEach(s=>{s.classList.toggle("hidden",i)}),this.volumeOffIconTargets.forEach(s=>{s.classList.toggle("hidden",!i)})):(this.hasVolumeSliderTarget&&(this.volumeSliderTarget.value=i?0:this.video.volume),this.hasVolumeOnIconTarget&&this.volumeOnIconTarget.classList.toggle("hidden",i),this.hasVolumeOffIconTarget&&this.volumeOffIconTarget.classList.toggle("hidden",!i))}#c(i){let s=Math.max(0,Math.floor(Number(i||0))),r=Math.floor(s/3600),a=Math.floor(s%3600/60),n=String(s%60).padStart(2,"0");return r>0?`${r}:${String(a).padStart(2,"0")}:${n}`:`${a}:${n}`}};var AA=60,PA=8,VA=3e3,eC=200,MA=100,tC=1.2,_A=2,iC=["border-white/70","bg-white/16"],sC=["border-white/10","bg-white/10"],rC=["border-white/45","bg-white/15"],aC=["border-white/10","bg-white/[0.07]"],BA=[...iC,...sC,...rC,...aC],jc=class extends u{static targets=["backButton","description","descriptionToggle","desktopEpisode","desktopPlayingIndicator","desktopTileLabel","episode","episodeCount","episodeLabel","episodeProgress","episodeSheet","playingIndicator","swipeFrame","swipePreview","swipePreviewImage","swipePreviewLock","swipeSnapshot","tileLabel","title","video"];static classes=["descriptionCollapsed","descriptionToggleCollapsed","descriptionToggleExpanded","swipePreviewLockHidden","swipePreviewLockVisible","swipeTransition","titleCollapsed","titleExpanded"];static values={currentNumber:Number,desktopBreakpointPx:{type:Number,default:768},episodeLabelTemplate:String,lessLabel:String,moreLabel:String,totalEpisodes:Number};connect(){this.advanceRaf=null,this.automaticAdvanceInProgress=!1,this.descriptionExpanded=!1,this.preloadedPosterImages=new Map,this.swipe=null,this.#e(),this.#t(),this.#C(),this.#E(),this.#v()}disconnect(){this.#u(),this.#L(),this.#S(),this.#y(),this.preloadedPosterImages.clear()}advanceToNext(){let i=this.#r(1);if(i){if(this.#s()){i.click();return}this.#c(),this.#L(),this.#y(),this.#b(),this.#a(i,1),this.automaticAdvanceInProgress=!0,this.advanceRaf=window.requestAnimationFrame(()=>{this.advanceRaf=null,this.#o({adjacentEpisode:i,direction:1,select:!0})})}}select(i){this.currentNumberValue=Number(i.currentTarget.dataset.number),this.#e(),this.#C(),this.#E(),this.#v(),this.closeEpisodes()}previous(){let i=this.episodeTargets.findIndex(s=>Number(s.dataset.number)===this.currentNumberValue);i<=0||this.episodeTargets[i-1].click()}next(){let i=this.episodeTargets.findIndex(s=>Number(s.dataset.number)===this.currentNumberValue);i<0||i>=this.episodeTargets.length-1||this.episodeTargets[i+1].click()}swipeStart(i){this.#s()||this.automaticAdvanceInProgress||i.pointerType==="mouse"&&i.button!==0||i.target?.closest?.("[data-shorts-swipe-ignore]")||(this.#c(),this.#S(),this.#y(),this.#b(),this.swipe={adjacentEpisode:null,direction:0,dragged:!1,pointerId:i.pointerId,startX:i.clientX,startY:i.clientY})}swipeMove(i){if(!this.swipe||i.pointerId!==this.swipe.pointerId)return;let s=i.clientX-this.swipe.startX,r=i.clientY-this.swipe.startY;if(Math.abs(r)<PA||Math.abs(r)<Math.abs(s)*tC)return;let a=r<0?1:-1;a!==this.swipe.direction&&(this.swipe.direction=a,this.swipe.adjacentEpisode=this.#r(a),this.#a(this.swipe.adjacentEpisode,a)),i.preventDefault?.(),this.swipe.dragged||i.currentTarget?.setPointerCapture?.(i.pointerId),this.swipe.dragged=!0,this.swipe.adjacentEpisode&&this.#n(r,a)}swipeEnd(i){if(!this.swipe||i.pointerId!==this.swipe.pointerId)return;let s=this.swipe,r=i.clientX-this.swipe.startX,a=i.clientY-this.swipe.startY,n=a<0?1:-1,d=Math.abs(a)>=Math.abs(r)*tC?this.#r(n):null,m=d&&Math.abs(a)>=AA,v=s.dragged;
104if(this.swipe=null,v&&this.#I(),!d){s.adjacentEpisode?this.#o({direction:s.direction,select:!1}):this.#b();return}(s.adjacentEpisode!==d||s.direction!==n)&&this.#a(d,n),this.#o({adjacentEpisode:d,direction:n,select:m})}swipeCancel(){let i=this.swipe?.direction||1;this.swipe=null,this.#o({direction:i,select:!1})}swipeClick(i){this.suppressSwipeClick&&(i.preventDefault(),i.stopImmediatePropagation(),this.suppressSwipeClick=!1)}toggleDescription(){this.descriptionExpanded=!this.descriptionExpanded,this.#t()}openEpisodes(){this.episodeSheetTarget.classList.remove("hidden"),this.episodeSheetTarget.classList.add("flex")}closeEpisodes(){this.hasEpisodeSheetTarget&&(this.episodeSheetTarget.classList.add("hidden"),this.episodeSheetTarget.classList.remove("flex"))}closeEpisodesOnBackdrop(i){i.target===this.episodeSheetTarget&&this.closeEpisodes()}#e(){this.hasBackButtonTarget&&(this.backButtonTarget.classList.toggle("hidden",this.currentNumberValue<=1),this.backButtonTarget.classList.toggle("flex",this.currentNumberValue>1))}#t(){if(!this.hasDescriptionTarget||!this.hasDescriptionToggleTarget)return;let i=!this.descriptionExpanded;this.#i(this.descriptionTarget,this.descriptionCollapsedClasses,i),this.hasTitleTarget&&(this.#i(this.titleTarget,this.titleCollapsedClasses,i),this.#i(this.titleTarget,this.titleExpandedClasses,this.descriptionExpanded)),this.#i(this.descriptionToggleTarget,this.descriptionToggleCollapsedClasses,i),this.#i(this.descriptionToggleTarget,this.descriptionToggleExpandedClasses,this.descriptionExpanded),this.descriptionToggleTarget.textContent=this.descriptionExpanded?this.lessLabelValue:this.moreLabelValue,this.descriptionToggleTarget.setAttribute("aria-expanded",String(this.descriptionExpanded))}#i(i,s,r){s.forEach(a=>i.classList.toggle(a,r))}#s(){return!!window.matchMedia?.(`(min-width: ${this.desktopBreakpointPxValue}px)`).matches}#r(i){let r=this.episodeTargets.findIndex(a=>Number(a.dataset.number)===this.currentNumberValue)+i;return this.episodeTargets[r]||null}#a(i,s){if(!this.hasSwipePreviewTarget||!this.hasSwipePreviewImageTarget)return;if(!i){this.swipePreviewTarget.classList.add("hidden");return}let r=i.dataset.posterUrl;this.swipePreviewImageTarget.getAttribute("src")!==r&&(this.swipePreviewImageTarget.removeAttribute("src"),this.swipePreviewImageTarget.src=r),this.#T(!!i.dataset.lockState),this.swipePreviewTarget.classList.remove("hidden"),this.swipePreviewTarget.style.transform=`translate3d(0, ${s*100}%, 0)`}#n(i,s){if(!this.hasSwipeFrameTarget||!this.hasSwipePreviewTarget)return;let r=this.swipeFrameTarget.clientHeight||window.innerHeight,a=Math.max(-r,Math.min(r,i)),n=a<0?`- ${Math.abs(a)}px`:`+ ${a}px`;this.swipeFrameTarget.style.transform=`translate3d(0, ${a}px, 0)`,this.swipePreviewTarget.style.transform=`translate3d(0, calc(${s*100}% ${n}), 0)`}#o({adjacentEpisode:i=null,direction:s,select:r}){if(!this.hasSwipeFrameTarget||!this.hasSwipePreviewTarget)return;this.#p(!0),this.swipeFrameTarget.style.transform=r?`translate3d(0, ${s*-100}%, 0)`:"translate3d(0, 0, 0)",this.swipePreviewTarget.style.transform=r?"translate3d(0, 0, 0)":`translate3d(0, ${s*100}%, 0)`;let a=!!i?.dataset.lockState,n=r&&i&&!a&&this.hasVideoTarget;if(n){this.#u();let l=this.#g();this.#l()?(this.pendingSwitchEpisode=i,this.#c()):l?this.#h(i):this.pendingSwitchEpisode=i}this.swipeTimer=window.setTimeout(()=>{this.swipeTimer=null;try{n?(this.#c(),this.nextVideoFrameReady&&this.#f()):r&&i?(i.click(),a&&this.hasVideoTarget?this.#m():this.#b()):this.#b()}finally{this.automaticAdvanceInProgress=!1}},eC)}#l(){let{currentTime:i,duration:s,playbackRate:r}=this.videoTarget;return!Number.isFinite(s)||s<=0?!1:(s-i)/(r||1)*1e3<=eC+MA}#h(i){this.pendingSwitchEpisode=i,this.switchRaf=window.requestAnimationFrame(()=>{this.switchRaf=window.requestAnimationFrame(()=>{this.switchRaf=null,this.#c()})})}#c(){let i=this.pendingSwitchEpisode;this.#u(),i&&(this.#d(),i.click())}#u(){this.pendingSwitchEpisode=null,this.switchRaf&&(window.cancelAnimationFrame(this.switchRaf),this.switchRaf=null)}#g(){if(!this.hasSwipeSnapshotTarget)return!1;let i=this.videoTarget,{videoWidth:s,videoHeight:r}=i,a=this.swipeFrameTarget.clientWidth,n=this.swipeFrameTarget.clientHeight,l=this.swipeSnapshotTarget.getContext?.("2d");if(!s||!r||!a||!n||!l)return!1;let d=Math.min(window.devicePixelRatio||1,_A),m=Math.max(a/s,n/r),v=a/m,E=n/m;this.swipeSnapshotTarget.width=Math.round(a*d),this.swipeSnapshotTarget.height=Math.round(n*d);try{l.drawImage(i,(s-v)/2,(r-E)/2,v,E,0,0,this.swipeSnapshotTarget.width,this.swipeSnapshotTarget.height)}catch{return!1}return this.swipeSnapshotTarget.classList.remove("hidden"),!0}#d(){this.#S(),this.nextVideoFrameReady=!1,this.boundFrameReady=()=>{this.#w(),this.nextVideoFrameReady=!0,this.swipeTimer||this.#f()},this.videoTarget.requestVideoFrameCallback?this.videoFrameCallbackId=this.videoTarget.requestVideoFrameCallback(this.boundFrameReady):this.videoTarget.addEventListener("loadeddata",this.boundFrameReady,{once:!0}),this.frameReadyTimer=window.setTimeout(this.boundFrameReady,VA)}#m(){this.#S(),this.#f()}#f(){this.#w(),this.frameReadyRaf=window.requestAnimationFrame(()=>{this.frameReadyRaf=window.requestAnimationFrame(()=>{this.frameReadyRaf=null,this.#b()})})}#p(i){!this.hasSwipeTransitionClass||!this.hasSwipeFrameTarget||!this.hasSwipePreviewTarget||(this.#i(this.swipeFrameTarget,this.swipeTransitionClasses,i),this.#i(this.swipePreviewTarget,this.swipeTransitionClasses,i))}#b(){this.hasSwipeFrameTarget&&(this.swipeFrameTarget.style.transform=""),this.hasSwipePreviewTarget&&(this.swipePreviewTarget.classList.add("hidden"),this.swipePreviewTarget.style.transform=""),this.hasSwipePreviewImageTarget&&this.swipePreviewImageTarget.removeAttribute("src"),this.hasSwipeSnapshotTarget&&this.swipeSnapshotTarget.classList.add("hidden"),this.#T(!1),this.#p(!1)}#v(){let i=this.episodeTargets.findIndex(a=>Number(a.dataset.number)===this.currentNumberValue);if(i<0)return;let s=[this.episodeTargets[i-1],this.episodeTargets[i+1]].filter(
104Boolean),r=new Map;s.forEach(a=>{let n=a.dataset.posterUrl;if(!n)return;let l=this.preloadedPosterImages.get(n)||new window.Image;l.src=n,r.set(n,l)}),this.preloadedPosterImages=r}#T(i){!this.hasSwipePreviewLockTarget||!this.hasSwipePreviewLockHiddenClass||!this.hasSwipePreviewLockVisibleClass||(this.#i(this.swipePreviewLockTarget,this.swipePreviewLockHiddenClasses,!i),this.#i(this.swipePreviewLockTarget,this.swipePreviewLockVisibleClasses,i))}#y(){this.swipeTimer&&(window.clearTimeout(this.swipeTimer),this.swipeTimer=null)}#S(){this.#w(),this.frameReadyRaf&&(window.cancelAnimationFrame(this.frameReadyRaf),this.frameReadyRaf=null)}#w(){this.boundFrameReady&&this.hasVideoTarget&&(this.videoTarget.removeEventListener("loadeddata",this.boundFrameReady),this.boundFrameReady=null),this.videoFrameCallbackId&&this.hasVideoTarget&&(this.videoTarget.cancelVideoFrameCallback?.(this.videoFrameCallbackId),this.videoFrameCallbackId=null),this.frameReadyTimer&&(window.clearTimeout(this.frameReadyTimer),this.frameReadyTimer=null)}#L(){this.advanceRaf&&(window.cancelAnimationFrame(this.advanceRaf),this.advanceRaf=null)}#I(){this.suppressSwipeClick=!0,window.setTimeout(()=>{this.suppressSwipeClick=!1},0)}#C(){this.episodeLabelTargets.forEach(i=>{i.textContent=this.episodeLabelTemplateValue.replace("__NUMBER__",this.currentNumberValue)})}#E(){let i=this.episodeTargets.findIndex(r=>Number(r.dataset.number)===this.currentNumberValue),s=i>=0?i+1:1;if(this.hasEpisodeCountTarget&&(this.episodeCountTarget.textContent=`${s} / ${this.totalEpisodesValue}`),this.hasEpisodeProgressTarget){let r=this.totalEpisodesValue>0?s/this.totalEpisodesValue*100:0;this.episodeProgressTarget.style.width=`${r}%`}this.#k(this.episodeTargets,this.tileLabelTargets,this.playingIndicatorTargets),this.#k(this.desktopEpisodeTargets,this.desktopTileLabelTargets,this.desktopPlayingIndicatorTargets,rC,aC)}#k(i,s,r,a=iC,n=sC){i.forEach((l,d)=>{let m=Number(l.dataset.number)===this.currentNumberValue;l.classList.remove(...BA,"border-shorts-accent-dark","border-grey-control","hover:border-grey-hint"),l.classList.add(...m?a:n),s[d]?.classList.remove("text-shorts-accent"),s[d]?.classList.add("text-white");let v=m&&!l.dataset.lockState;r[d]?.classList.toggle("hidden",!v)})}};var Kc=class extends u{static targets=["modal","poster","episodeName","subscriptionLink"];connect(){this.hasModalTarget&&this.modalTarget.classList.add("hidden"),document.body.classList.remove("overflow-hidden")}disconnect(){document.body.classList.remove("overflow-hidden")}show(i){let{posterUrl:s,episodeName:r,catalogEpisodeId:a}=i.detail||{};this.hasPosterTarget&&s&&(this.posterTarget.src=s),this.hasEpisodeNameTarget&&r&&(this.episodeNameTarget.textContent=r),this.#e(a),this.modalTarget.classList.remove("hidden"),document.body.classList.add("overflow-hidden")}close(){this.modalTarget.classList.add("hidden"),document.body.classList.remove("overflow-hidden")}#e(i){if(!this.hasSubscriptionLinkTarget)return;let s=new URL(this.subscriptionLinkTarget.dataset.baseHref,window.location.origin);i?s.searchParams.set("candy_shorts_episode_id",i):s.searchParams.delete("candy_shorts_episode_id"),s.searchParams.get("return_surface")==="candy_shorts"&&s.searchParams.set("return_to",this.#t(i,s)),this.subscriptionLinkTarget.href=s.toString()}#t(i,s){let r=new URL(window.location.href);r.searchParams.delete("status");let a=s.searchParams.get("candy_shorts_series_id");if(a)r.searchParams.set("series_id",a);else{r.searchParams.set("open_candy_shorts","true");let n=s.searchParams.get("candy_shorts_chat_series_id");n&&r.searchParams.set("series_id",n)}return i?r.searchParams.set("episode_id",i):r.searchParams.delete("episode_id"),`${r.pathname}${r.search}${r.hash}`}};var zc=class extends u{static targets=["dialog","poster","episodeName","form","tokenCost","unlockEpisodeNumber","closeButton","submitButton"];connect(){this.submitting=!1,this.ownsScrollLock=!1,this.hasDialogTarget&&this.dialogTarget.open&&this.dialogTarget.close()}disconnect(){this.#t()}show(i){let{episodeNumber:s,posterUrl:r,tokenCost:a,purchaseUrl:n}=i.detail;this.#i(),n&&(this.formTarget.action=n),this.hasTokenCostTarget&&(this.tokenCostTarget.textContent=a),this.#r(s),this.episodeNameTarget.textContent=`${this.dialogTarget.dataset.episodeLabel} ${s}`,this.posterTarget.src=r||"",this.#e()}close(i){i?.preventDefault(),!this.submitting&&(this.dialogTarget.open?this.dialogTarget.close():this.#t())}cancel(i){this.submitting&&i.preventDefault()}closed(){this.#t()}beforeCache(){this.hasDialogTarget&&this.dialogTarget.open&&this.dialogTarget.close(),this.#t()}guardSubmit(i){this.submitting&&i.preventDefault()}submitStart(i){this.#s(i.target)}submitEnd(){this.#i(),this.close()}#e(){this.dialogTarget.open||(this.dialogTarget.showModal(),this.ownsScrollLock=!document.body.classList.contains("overflow-hidden"),document.body.classList.add("overflow-hidden"))}#t(){this.ownsScrollLock&&(document.body.classList.remove("overflow-hidden"),this.ownsScrollLock=!1),this.#i()}
104#i(){this.submitting=!1,this.formTargets.forEach(i=>i.removeAttribute("aria-busy")),this.submitButtonTargets.forEach(i=>{i.disabled=!1}),this.hasCloseButtonTarget&&(this.closeButtonTarget.disabled=!1)}#s(i){this.submitting=!0,i?.setAttribute("aria-busy","true"),this.submitButtonTargets.forEach(s=>{s.disabled=!0}),this.hasCloseButtonTarget&&(this.closeButtonTarget.disabled=!0)}#r(i){this.hasUnlockEpisodeNumberTarget&&(this.unlockEpisodeNumberTarget.textContent=i)}};var Yc=class extends u{static targets=["modal","overlay","closeButton","planCard","planInput","billingText","inlineContinue","stickyContinue","stickyContinueButton","content"];static values={url:String,checkoutUrl:String,guestCheckoutUrl:String,redirectUrl:String,authenticated:{type:Boolean,default:!1},disableContinueOnClick:{type:Boolean,default:!1}};connect(){this.inlineContinueObserver=null,this.hideTimeout=null,this.continueInFlight=!1,this.openRequest=0,this.pendingExposure=null,this.exposureRequest=null,document.addEventListener("visibilitychange",this.#e)}disconnect(){this.pendingExposure=null,document.removeEventListener("visibilitychange",this.#e),this.openRequest+=1,this.#h(),this.#s(),this.#o()}async show(i){let s=i?.detail?.episodeNumber;if(this.recoveryDismissalBlocked=!1,this.dismissalContext={episodeNumber:s},this.loadingPaywall&&this.requestedEpisodeNumber===s)return;this.pendingExposure=null;let r,a=++this.openRequest;if(this.urlValue&&this.hasContentTarget&&s){this.loadingPaywall=!0,this.requestedEpisodeNumber=s;let n=this.paywallRequest,l;this.paywallRequest=new Promise(d=>{l=d});try{if(n&&await n,a!==this.openRequest)return;let d=await H(this.urlValue,{responseKind:"json",body:JSON.stringify({episode_number:s}),contentType:"application/json"});if(d.ok){let m=await d.json;if(a!==this.openRequest)return;let v=this.hasPlanInputTarget?this.planInputTarget.value:null;this.#h(),this.#o(),this.contentTarget.innerHTML=m.html,r=m.exposure_url;let E=this.planCardTargets.find(D=>D.dataset.plan===v);E&&this.#a(E)}}catch{}finally{l(),a===this.openRequest&&(this.loadingPaywall=!1)}}a===this.openRequest&&(this.#i(),r&&this.hasModalTarget&&(this.pendingExposure={url:r,layout:this.modalTarget.dataset.paywallLayout||"control"},this.#e()))}#e=()=>{if(!this.pendingExposure||document.visibilityState==="hidden"||!this.element.isConnected||!this.hasModalTarget||this.modalTarget.classList.contains("hidden"))return;let{url:i,layout:s}=this.pendingExposure;this.pendingExposure=null,this.exposureRequest=H(i,{body:JSON.stringify({displayed_layout:s}),contentType:"application/json"}).catch(()=>{})};async#t(){if(!this.exposureRequest)return;let i;try{await Promise.race([this.exposureRequest,new Promise(s=>{i=setTimeout(s,2e3)})])}finally{clearTimeout(i)}}#i(){this.hasModalTarget&&(this.#s(),this.previouslyFocusedElement||=document.activeElement,this.hasOverlayTarget&&this.overlayTarget.classList.remove("hidden"),this.modalTarget.classList.remove("hidden"),this.modalTarget.classList.add("translate-y-full"),this.modalTarget.offsetHeight,this.modalTarget.classList.add("transition-transform","duration-300","ease-out"),this.modalTarget.classList.remove("translate-y-full"),this.visiblePaywall=!0,this.element.dispatchEvent(new CustomEvent("shorts:paywall-visible",{bubbles:!0})),document.body.classList.add("overflow-hidden"),this.#l(),["variant_b","variant_c","variant_d","variant_e"].includes(this.modalTarget.dataset.paywallLayout)&&(this.modalTarget.addEventListener("keydown",this.#n),(this.hasCloseButtonTarget?this.closeButtonTarget:this.planCardTargets[0])?.focus({preventScroll:!0})))}close(i){if(this.hideTimeout)return;let s=this.visiblePaywall&&!this.recoveryDismissalBlocked&&!this.continueInFlight&&i?.type==="click"&&document.visibilityState!=="hidden",r=this.dismissalContext;this.visiblePaywall=!1,this.pendingExposure=null,this.openRequest+=1,this.loadingPaywall=!1,this.hasModalTarget&&(this.#s(),this.modalTarget.classList.add("translate-y-full"),this.hasOverlayTarget&&this.overlayTarget.classList.add("hidden"),s&&this.element.dispatchEvent(new CustomEvent("shorts:paywall-dismissing",{bubbles:!0})),this.hideTimeout=setTimeout(()=>{this.modalTarget.classList.add("hidden"),this.modalTarget.classList.remove("transition-transform","duration-300","ease-out","translate-y-full"),this.hideTimeout=null,s&&!this.recoveryDismissalBlocked&&this.element.isConnected&&this.element.dispatchEvent(new CustomEvent("shorts:p
104aywall-dismissed",{bubbles:!0,detail:{...r,opportunityId:window.crypto.randomUUID(),trigger:"paywall_dismissed"}}))},300),this.#h(),document.body.classList.remove("overflow-hidden"),this.#o(),document.dispatchEvent(new CustomEvent("shorts:paywall-closed",{bubbles:!0})))}#s(){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null)}continueToSignup(){this.recoveryDismissalBlocked=!0;let i=this.#c();document.dispatchEvent(new CustomEvent("shorts:open-registration",{bubbles:!0,detail:{redirectUrl:i}}))}selectPlan(i){this.#a(i.currentTarget)}async continue(){if(!this.continueInFlight){this.recoveryDismissalBlocked=!0,this.element.dispatchEvent(new CustomEvent("shorts:checkout-started",{bubbles:!0})),this.continueInFlight=!0,this.#d(!0);try{let i=this.openRequest;if(await this.#t(),i!==this.openRequest||!this.element.isConnected)return;if(this.authenticatedValue){let s=this.hasPlanInputTarget?this.planInputTarget.value:null;if(!s||!this.checkoutUrlValue)return;let r=new URL(this.checkoutUrlValue,window.location.origin);if(r.searchParams.set("plan",s),this.#u(r.pathname))try{let a=await H(r.toString(),{responseKind:"turbo-stream",body:JSON.stringify({plan:s}),contentType:"application/json"});(!a.ok||a.redirected||!a.isTurboStream)&&Be.visit(this.#g(r))}catch{Be.visit(this.#g(r))}else Be.visit(r.toString());return}if(this.guestCheckoutUrlValue&&await this.#r()){this.navigatingAway=!0;return}this.continueToSignup()}finally{this.navigatingAway||(this.continueInFlight=!1,this.#d(!1))}}}async#r(){let i=this.hasPlanInputTarget?this.planInputTarget.value:null;if(!i)return!1;let s=new URL(this.guestCheckoutUrlValue,window.location.origin);s.searchParams.set("plan",i);try{let r=await H(s.toString(),{responseKind:"turbo-stream",body:JSON.stringify({plan:i}),contentType:"application/json"});return r.ok&&r.isTurboStream}catch{return!1}}#a(i){this.planCardTargets.forEach(s=>{s.dataset.selected="false",s.hasAttribute("aria-pressed")&&s.setAttribute("aria-pressed","false")}),i.dataset.selected="true",i.hasAttribute("aria-pressed")&&i.setAttribute("aria-pressed","true"),this.hasPlanInputTarget&&(this.planInputTarget.value=i.dataset.plan||""),this.hasBillingTextTarget&&i.dataset.billingText&&(this.billingTextTarget.textContent=i.dataset.billingText)}#n=i=>{if(i.key==="Escape"&&this.hasCloseButtonTarget)i.preventDefault(),this.close({type:"click"});else if(i.key==="Tab"){let s=[...this.closeButtonTargets,...this.planCardTargets,...this.inlineContinueTargets].filter(n=>!n.disabled),r=s[0],a=s[s.length-1];i.shiftKey&&document.activeElement===r?(i.preventDefault(),a?.focus()):!i.shiftKey&&document.activeElement===a&&(i.preventDefault(),r?.focus())}};#o(){this.hasModalTarget&&this.modalTarget.removeEventListener("keydown",this.#n),this.previouslyFocusedElement?.isConnected&&this.previouslyFocusedElement.focus({preventScroll:!0}),this.previouslyFocusedElement=null}#l(){if(!(this.inlineContinueObserver||!this.hasInlineContinueTarget||!this.hasStickyContinueTarget)){if(typeof IntersectionObserver>"u"){this.stickyContinueTarget.classList.remove("opacity-0");return}this.inlineContinueObserver=new IntersectionObserver(([i])=>{let s=i.isIntersecting&&i.intersectionRatio===1;this.stickyContinueTarget.classList.toggle("opacity-0",s)},{root:this.modalTarget,threshold:1}),this.inlineContinueObserver.observe(this.inlineContinueTarget)}}#h(){this.inlineContinueObserver&&(this.inlineContinueObserver.disconnect(),this.inlineContinueObserver=null),this.hasStickyContinueTarget&&this.stickyContinueTarget.classList.add("opacity-0")}#c(){if(!this.redirectUrlValue)return"";let i=new URL(this.redirectUrlValue,window.location.origin);return this.hasPlanInputTarget&&this.planInputTarget.value&&i.searchParams.set("plan",this.planInputTarget.value),`${i.pathname}${i.search}${i.hash}`}#u(i){return/\/lp\/shorts\/checkout\/direct$/.test(i)}#g(i){let s=new URL(i.toString());return s.pathname=s.pathname.replace(/\/checkout\/direct$/,"/checkout"),s.searchParams.set("status","payment_failed"),s.toString()}#d(i){this.disableContinueOnClickValue&&(this.hasInlineContinueTarget&&(this.inl
104ineContinueTarget.disabled=i,this.inlineContinueTarget.setAttribute("aria-busy",i?"true":"false"),this.inlineContinueTarget.classList.toggle("opacity-70",i),this.inlineContinueTarget.classList.toggle("cursor-not-allowed",i)),this.hasStickyContinueButtonTarget&&(this.stickyContinueButtonTarget.disabled=i,this.stickyContinueButtonTarget.setAttribute("aria-busy",i?"true":"false"),this.stickyContinueButtonTarget.classList.toggle("opacity-70",i),this.stickyContinueButtonTarget.classList.toggle("cursor-not-allowed",i)))}};var Xc=class extends u{static values={url:String,visitToken:String,variant:String};connect(){this.sent||=new Set,document.addEventListener("shorts:player-watch-started",this.#e),document.addEventListener("shorts:paywall-visible",this.#t)}disconnect(){document.removeEventListener("shorts:player-watch-started",this.#e),document.removeEventListener("shorts:paywall-visible",this.#t)}#e=i=>{this.variantValue==="control"&&Number(i.detail?.episodeNumber)===2&&this.#i("episode_2_view")};#t=()=>this.#i("paywall_view");async#i(i){if(!this.sent.has(i)){this.sent.add(i);for(let s=0;s<2;s+=1)try{let r=await H(this.urlValue,{body:{visit_token:this.visitTokenValue,stage:i},responseKind:"json"});if(r.ok||r.statusCode<500)return}catch{}}}};var nC={CLOSE:"close",REMOVE:"remove"},Qc=class extends u{static targets=["content"];static values={onDisconnect:String,navigateUrl:String,focusSelf:Boolean};connect(){this.boundHandleOutsideClick=this.handleOutsideClick.bind(this),this.boundHandleTurboBeforeCache=this.handleTurboBeforeCache.bind(this),this.element.dataset.autoOpen==="true"&&this.openModalWithDelay(),this.element.addEventListener("click",this.boundHandleOutsideClick),document.addEventListener("turbo:before-cache",this.boundHandleTurboBeforeCache)}disconnect(){clearTimeout(this.openTimeout),this.element.removeEventListener("click",this.boundHandleOutsideClick),document.removeEventListener("turbo:before-cache",this.boundHandleTurboBeforeCache),this.dismissDialog()}dismissDialog(){if(!this.hasOnDisconnectValue)return this.element.remove();if(this.onDisconnectValue===nC.REMOVE)return this.element.remove();if(this.onDisconnectValue===nC.CLOSE)return this.element.close()}handleTurboBeforeCache(){this.element.open&&this.element.close()}open(){this.element.classList.remove("hidden"),this.element.showModal(),this.parkFocus(),this.dispatch("open")}openModalWithDelay(){this.openTimeout=setTimeout(()=>{this.element.showModal(),this.parkFocus(),this.dispatch("open")},100)}parkFocus(){this.focusSelfValue&&this.element.focus({preventScroll:!0})}close(){this.element.close(),this.dispatch("close")}reloadPage(){this.close(),window.location.reload()}navigateAway(){this.close(),window.location.href=this.navigateUrlValue}handleOutsideClick(i){if(i.target!==this.element||!this.element.open)return;
104this.element.querySelector('form.modal-backdrop[method="dialog"]')&&this.close()}};var Jc="preview",oC="character-preview-container",OA="character-preview-dialog",FA=3e4,DA=150,RA="text/vnd.turbo-stream.html, text/html",lC="overflow-hidden",NA="character-sheet--settled",UA="character-sheet--closing",HA=420,qA=260,$A=200,Zc=class extends u{static targets=["skeletonTemplate","skeleton"];static values={pathTemplate:String,liveSlugs:{type:Array,default:[]}};connect(){this.prefetched=new Map,this.timers=new Set,this.sequence=0,this.onPopState=this.onPopState.bind(this),this.onBeforeStreamRender=this.onBeforeStreamRender.bind(this),this.onBeforeCache=()=>this.removeSheets({instant:!0}),window.addEventListener("popstate",this.onPopState),document.addEventListener("turbo:before-stream-render",this.onBeforeStreamRender),document.addEventListener("turbo:before-cache",this.onBeforeCache);let i=this.currentSlug();i&&!this.dialog&&this.fetchPreview(this.urlForSlug(i))}disconnect(){window.removeEventListener("popstate",this.onPopState),document.removeEventListener("turbo:before-stream-render",this.onBeforeStreamRender),document.removeEventListener("turbo:before-cache",this.onBeforeCache),this.cancelPrefetch(),this.timers.forEach(i=>clearTimeout(i)),this.timers.clear(),this.clearSkeletonTimer()}open(i){let s=i.params.url;if(!s)return;let r=this.slugFrom(s);this.liveSlugsValue.includes(r)||(i.preventDefault(),r&&this.currentSlug()!==r&&window.history.replaceState({...window.history.state||{},characterPreview:r,url:s},"",this.pageUrlWith(r)),this.fetchPreview(s,{deferSkeleton:!0}))}cancel(){this.sequence++,this.clearSkeletonTimer(),document.documentElement.removeAttribute("aria-busy"),this.cleanUrl(),this.dismissSkeleton()}keydown(i){i.key==="Escape"&&this.hasSkeletonTarget&&this.cancel()}prefetch(i){let s=i.params.url;if(!(!s||this.prefetched.has(s)||this.liveSlugsValue.includes(this.slugFrom(s)))){if(i.type!=="mouseenter"){this.warm(s);return}this.cancelPrefetch(),this.intentTimer=setTimeout(()=>{this.intentTimer=null,this.warm(s)},DA)}}cancelPrefetch(){this.intentTimer&&(clearTimeout(this.intentTimer),this.intentTimer=null)}warm(i){if(this.prefetched.has(i))return;let s=this.request(i).catch(()=>{this.prefetched.delete(i)});this.prefetched.set(i,s);let r=setTimeout(()=>{this.prefetched.delete(i),this.timers.delete(r)},FA);this.timers.add(r)}onPopState(){let i=this.currentSlug();i?this.fetchPreview(window.history.state?.url||this.urlForSlug(i)):this.removeSheets()}onBeforeStreamRender(i){if(i.target.getAttribute("target")!==oC||!this.hasSkeletonTarget&&!this.dialog)return;let s=i.target.templateElement?.content.querySelector("dialog");if(!s)return;let r=performance.now()-(this.sheetShownAt||0);this.hasSkeletonTarget&&r<HA?s.style.setProperty("--character-sheet-delay",`-${Math.round(r)}ms`):s.classList.add(NA)}showSkeleton(){if(this.dialog||this.hasSkeletonTarget||!this.hasSkeletonTemplateTarget)return;let i=document.getElementById(oC);if(!i)return;i.replaceChildren(this.skeletonTemplateTarget.content.cloneNode(!0));let s=i.querySelector("dialog");document.body.classList.add(lC),this.sheetShownAt=performance.now(),s.show(),s.focus({preventScroll:!0})}dismissSkeleton({instant:i=!1}={}){if(!this.hasSkeletonTarget)return;let s=this.skeletonTarget;document.body.classList.remove(lC);let r=()=>{s.open&&s.close(),s.remove()};if(i){r();return}s.classList.add(UA),setTimeout(r,qA)}async fetchPreview(i,{deferSkeleton:s=!1}={}){let r=++this.sequence;document.documentElement.setAttribute("aria-busy","true"),this.clearSkeletonTimer(),s?this.skeletonTimer=setTimeout(()=>{this.skeletonTimer=null,r===this.sequence&&this.showSkeleton()},$A):this.showSkeleton();try{let a=await(this.prefetched.get(i)||this.request(i));if(this.prefetched.delete(i),r!==this.sequence)return;if(this.clearSkeletonTimer(),a.redirectTo){this.rememberLive(this.slugFrom(i)),this.leaveFor(a.redirectTo);return}Be.renderStreamMessage(a.html)}catch{r===this.sequence&&this.leaveFor(i)}finally{r===this.sequence&&document.documentElement.removeAttribute("aria-busy")}}async request(i){let s=await fetch(i,{headers:{Accept:RA,"X-Requested-With":"XMLHttpRequest"},credentials:"same-origin"});return s.redirected||!s.headers.get("content-type")?.includes("turbo-stream")?{redirectTo:s.url||i}:{html:await s.text()}}leaveFor(i){this.cleanUrl(),Be.visit(i)}cleanUrl(){let i=new URL(window.location.href);if(!i.searchParams.has(Jc))return;i.searchParams.delete(Jc);let s={...window.history.state||{}};delete s.characterPreview,delete s.url,window.history.replaceState(s,"",i.toString())}rememberLive(i){!i||this.liveSlugsValue.includes(i)||(this.liveSlugsValue=[...this.liveSlugsValue,i])}clearSkeletonTimer(){this.skeletonTimer&&(clearTimeout(this.skeletonTimer),this.skeletonTimer=null)}removeSheets({instant:i=!1}={}){this.clearSkeletonTimer(),this.dismissSkeleton({instant:i});let s=this.dialog;s&&(s.open&&s.close(),s.remove())}get dialog(){return document.getElementById(OA)}currentSlug(){return new URLSearchParams(window.location.search).get(Jc)}slugFrom(i){let s=i.match(/\/character-preview\/([^/?#]+)/);return s?decodeURIComponent(s[1]):null}urlForSlug(i){let s=encodeURIComponent(i),r=this.element.querySelector(`[data-character-preview-url-param$="/character-preview/${s}"]`);return r?r.dataset.characterPreviewUrlParam:this.hasPathTemplateValue?this.pathTemplateValue.replace("__SLUG__",s):`/character-preview/${s}`}pageUrlWith(i){let s=new URL(window.location.href);return s.searchParams.set(Jc,i),s.toString()}};var hC="preview",ed="overflow-hidden",GA="character-sheet--closing",WA=260,jA=90,KA=.14,zA=30,YA=.42,XA=.35,td=class extends u{static targets=["panel","scrim","track","frame","dot","video","registerTrigger","story","readMore","facts","rowScroller"];connect(){this.lockBody(),this.index=-1,this.navigating=!1,this.onBeforeVisit=()=>{this.navigating=!0,this.cleanUrl()},this.onResize=()=>{this.layoutFrames(),this.updateRowArrows()},document.addEventListener("turbo:before-visit",this.onBeforeVisit),window.addEventListener("resize",this.onResize),this.element.open||this.element.show(),this.element.focus({preventScroll:!0}),this.layoutFrames(),this.hideMoreWhenNothingIsClamped(),this.updateRowArrows()}disconnect(){document.removeEventListener("turbo:before-visit",this.onBeforeVisit),window.removeEventListener("resize",this.onResize),this.unlockBody()}lockBody(){document.body.classList.add(ed),this.lockObserver=new MutationObserver(()=>{document.body.classList.contains(ed)||document.body.classList.add(ed)}),this.lockObserver.observe(document.body,{attributes:!0,attributeFilter:["class"]})}unlockBody(){this.lockObserver?.disconnect(),this.lockObserver=null,this.otherOverlayOpen()||document.body.classList.remove(ed)}otherOverlayOpen(){let i=[...document.querySelectorAll("dialog[open]")].some(n=>n!==this.element),s=document.getElementById("candy-shorts-library-modal"),r=document.getElementById("content_packs_modal"),a=n=>
104!!n&&n.getClientRects().length>0;return i||a(s)||[...r?.children||[]].some(a)}hideMoreWhenNothingIsClamped(){!this.hasStoryTarget||!this.hasReadMoreTarget||this.hasFactsTarget||this.storyTarget.scrollHeight<=this.storyTarget.clientHeight+1&&(this.readMoreTarget.hidden=!0)}previous(){this.goTo(this.index-1)}next(){this.goTo(this.index+1)}goTo(i){let s=this.frameTargets;if(s.length===0)return;let r=s[(i+s.length)%s.length],a=this.trackTarget;a.scrollTo({left:r.offsetLeft-(a.clientWidth-r.offsetWidth)/2,behavior:"smooth"})}trackScrolled(){this.scrollFrame||(this.scrollFrame=requestAnimationFrame(()=>{this.scrollFrame=null,this.layoutFrames()}))}layoutFrames(){if(!this.hasTrackTarget)return;let i=this.trackTarget,s=i.scrollLeft+i.clientWidth/2,r=0,a=1/0;this.frameTargets.forEach((n,l)=>{let d=(n.offsetLeft+n.offsetWidth/2-s)/n.offsetWidth,m=Math.min(Math.abs(d),2);n.style.transform=`translateX(${(-d*zA).toFixed(1)}px) scale(${(1-KA*m).toFixed(3)})`,n.style.opacity=Math.max(XA,1-YA*m).toFixed(3),n.style.zIndex=String(10-Math.round(m*4)),m<a&&(a=m,r=l)}),this.setIndex(r)}setIndex(i){i!==this.index&&(this.index=i,this.dotTargets.forEach((s,r)=>{s.classList.toggle("w-3.5",r===i),s.classList.toggle("!bg-white",r===i),s.classList.toggle("w-1",r!==i)}),this.videoTargets.forEach(s=>{this.frameTargets[i]?.contains(s)?s.play().catch(()=>{}):s.pause()}))}keydown(i){if(i.key==="Escape"){i.preventDefault(),this.closed();return}i.key==="ArrowLeft"&&this.previous(),i.key==="ArrowRight"&&this.next()}rowScrolled(i){this.updateRowArrowsFor(i.currentTarget)}updateRowArrows(){this.rowScrollerTargets.forEach(i=>this.updateRowArrowsFor(i))}updateRowArrowsFor(i){let s=i.scrollWidth>i.clientWidth+1,r=s&&i.scrollLeft>1,a=s&&i.scrollLeft+i.clientWidth<i.scrollWidth-1;
104i.dataset.overflow=[r&&"start",a&&"end"].filter(Boolean).join(" ");let[n,l]=i.closest("section")?.querySelectorAll("[data-row-arrow]")||[];!n||!l||(n.hidden=!r,l.hidden=!a)}scrollRow(i){let s=i.currentTarget.closest("section")?.querySelector("[data-character-preview-modal-target~='rowScroller']");s&&s.scrollBy({left:i.params.direction*s.clientWidth*.8,behavior:"smooth"})}expandStory(){this.hasStoryTarget&&this.storyTarget.classList.remove("line-clamp-3"),this.hasFactsTarget&&(this.factsTarget.hidden=!1),this.hasReadMoreTarget&&(this.readMoreTarget.hidden=!0)}guestGate(i){i.preventDefault(),this.openRegistration(i.params.redirect)}openRegistration(i){this.hasRegisterTriggerTarget&&(i&&(this.registerTriggerTarget.dataset.redirectUrl=i),this.registerTriggerTarget.click(),this.closed())}dragStart(i){i.pointerType==="mouse"&&i.button!==0||i.target.closest("button, a, form")||(this.dragOrigin=i.clientY,this.dragDelta=0,i.currentTarget.setPointerCapture(i.pointerId),this.panelTarget.style.transition="none")}dragMove(i){this.dragOrigin!==void 0&&(this.dragDelta=Math.max(0,i.clientY-this.dragOrigin),this.panelTarget.style.transform=`translateY(${this.dragDelta}px)`,this.hasScrimTarget&&(this.scrimTarget.style.opacity=String(Math.max(.2,1-this.dragDelta/400))))}dragEnd(){if(this.dragOrigin===void 0)return;let i=this.dragDelta;if(this.dragOrigin=void 0,i>jA){this.closed();return}this.panelTarget.style.transition="transform 220ms cubic-bezier(0.32, 0.72, 0, 1)",this.panelTarget.style.transform="",this.hasScrimTarget&&(this.scrimTarget.style.opacity="")}cleanUrl(){let i=new URL(window.location.href);if(!i.searchParams.has(hC))return;i.searchParams.delete(hC);let s={...window.history.state||{}};delete s.characterPreview,delete s.url,window.history.replaceState(s,"",i.toString())}closed(){if(this.closing)return;this.closing=!0,this.cleanUrl();let i=()=>{this.element.open&&this.element.close(),this.element.remove()};if(this.navigating||window.matchMedia("(prefers-reduced-motion: reduce)").matches){i();return}this.element.classList.add(GA),setTimeout(i,WA)}};var id=class extends u{static values={notificationType:String,autoOpen:{type:Boolean,default:!1}};connect(){this.autoOpenValue&&this.openWithDelay()}open(){this.element.showModal()}close(){this.element.close()}async dismiss(){if(this.close(),this.hasNotificationTypeValue&&this.notificationTypeValue)try{await Re.markAsShown(this.notificationTypeValue)}catch(i){console.error("Failed to mark notification as shown:",i)}}openWithDelay(){setTimeout(()=>{this.element.showModal()},100)}};var QA="hidden",JA=0,ZA=340,eP=600,sd=class extends u{static targets=["drawer","dragHandle","testToggle"];static values={initialState:{type:String,default:QA},hiddenHeight:{type:Number,default:JA},halfHeight:{type:Number,default:ZA},fullHeight:{type:Number,default:eP}};static classes=["transition"];connect(){this.currentState=this.initialStateValue,this.setupInitialState(),this.bindEventListeners()}disconnect(){this.removeEventListeners()}isOpen(){return this.currentState!=="hidden"}isHalf(){return this.currentState==="half"}isFull(){return this.currentState==="full"}setupInitialState(){if(!this.hasDrawerTarget||!this.hasDragHandleTarget){console.error("Bottom sheet missing required targets");return}this.drawerTarget.style.transition="height 300ms ease-out",this.drawerTarget.style.overflow="hidden",this.showDrawer(this.currentState)}bindEventListeners(){this.boundHandleStart=this.handleDragStart.bind(this),this.boundHandleMove=this.handleDragMove.bind(this),this.boundHandleEnd=this.handleDragEnd.bind(this),this.dragHandleTarget.addEventListener("mousedown",this.boundHandleStart),document.addEventListener("mousemove",this.boundHandleMove),document.addEventListener("mouseup",this.boundHandleEnd),this.dragHandleTarget.addEventListener("touchstart",this.boundHandleStart,{passive:!1}),document.addEventListener("touchmove",this.boundHandleMove,{passive:!1}),document.addEventListener("touchend",this.boundHandleEnd)}removeEventListeners(){this.boundHandleStart&&this.boundHandleMove&&this.boundHandleEnd&&(this.dragHandleTarget?.removeEventListener("mousedown",this.boundHandleStart),document.removeEventListener("mousemove",this.boundHandleMove),document.removeEventListener("mouseup",this.boundHandleEnd),this.dragHandleTarget?.removeEventListener("touchstart",this.boundHandleStart),document.removeEventListener("touchmove",this.boundHandleMove),document.removeEventListener("touchend",this.boundHandleEnd))}showDrawer(i){if(!this.hasDrawerTarget)return;let r={hidden:{height:`${this.hiddenHeightValue}px`},half:{height:`${this.halfHeightValue}px`},full:{height:`${this.fullHeightValue}px`}}[i];r&&(this.drawerTarget.style.height=r.height,this.drawerTarget.style.overflow="hidden")}closeDrawer(){this.updateState("hidden")}toggleDrawer(){let i=this.currentState==="hidden"?"half":"hidden";this.updateState(i)}handleDragStart(i){this.isDragging=!0,this.startY=i.type.includes("mouse")?i.clientY:i.touches[0].clientY;let s=this.drawerTarget.style.height;this.startHeight=s?parseInt(s):this.getStateHeight(this.currentState),this.drawerTarget.style.transition="none",this.dragHandleTarget.style.cursor="grabbing",i.preventDefault(),i.stopPropagation()}handleDragMove(i){if(!this.isDragging)return;let s=i.type.includes("mouse")?i.clientY:i.touches[0].clientY,r=this.startY-s,a=this.startHeight+r;a=Math.max(this.hiddenHeightValue,Math.min(this.fullHeightValue,a)),this.drawerTarget.style.height=`${a}px`,i.preventDefault()}handleDragEnd(i){if(!this.isDragging)return;this.isDragging=!1,this.dragHandleTarget.style.cursor="grab",this.drawerTarget.style.transition="height 300ms ease-out";let s=parseInt(this.drawerTarget.style.height)||0,r=this.calculateSnapState(s);this.updateState(r),this.hasTestToggleTarget&&(this.testToggleTarget.checked=r!=="hidden"),i.preventDefault()}getStateHeight(i){return{hidden:this.hiddenHeightValue,half:this.halfHeightValue,full:this.fullHeightValue}[i]||this.halfHeightValue}calculateSnapState(i){let s=this.halfHeightValue;return i<s/2?"hidden":i<s+50?"half":"full"}updateState(i){let s=this.currentState;if(this.currentState=i,this.hasDrawerTarget){this.showDrawer(i);let r=this.getStateHeight(i);this.dispatch("state-changed",{detail:{state:i,previousState:s,height:r}})}}};var rd=class extends u{static targets=["plan","selectedPlan","tokenAmountField","confirmPrice","confirmationModal","additionalPackages","toggleText","toggleArrow","modalContainer"];connect(){this.selectedAmount=null,this.selectedPrice=null,this.isExpanded=!1,this.initializePlanStyling(),this.hasSelectedPlanTarget&&this.selectPlanElement(this.selectedPlanTarget)}
104initializePlanStyling(){this.planTargets.forEach(i=>{i.classList.add("bg-[#1A1A1A]","border-[#383838]"),i.classList.remove("bg-gradient-to-r","from-black-default/[0.03]","to-primary/30","border-primary")})}selectPlan(i){this.selectPlanElement(i.currentTarget)}selectPlanElement(i){this.planTargets.forEach(s=>{s.classList.remove("active-token-plan"),s.classList.add("inactive-token-plan"),s.classList.remove("bg-gradient-to-r","from-black-default/[0.03]","to-primary/30","border-primary"),s.classList.add("bg-[#1A1A1A]","border-[#383838]")}),i.classList.remove("inactive-token-plan"),i.classList.add("active-token-plan"),i.classList.remove("bg-[#1A1A1A]","border-[#383838]"),i.classList.add("bg-gradient-to-r","from-black-default/[0.03]","to-primary/30","border-primary"),this.selectedAmount=i.dataset.amount,this.selectedPrice=i.dataset.price}togglePackages(){if(this.hasAdditionalPackagesTarget)if(this.isExpanded=!this.isExpanded,this.isExpanded){if(this.additionalPackagesTarget.classList.remove("hidden"),this.additionalPackagesTarget.classList.add("flex"),this.hasToggleTextTarget){let s=this.element.querySelector("[data-tokens--one-time-purchase-target='toggleButton']")?.dataset.showLessText||"Show less";this.toggleTextTarget.textContent=s}this.hasToggleArrowTarget&&(this.toggleArrowTarget.style.transform="rotate(180deg)")}else{if(this.additionalPackagesTarget.classList.add("hidden"),this.additionalPackagesTarget.classList.remove("flex"),this.hasToggleTextTarget){let s=this.element.querySelector("[data-tokens--one-time-purchase-target='toggleButton']")?.dataset.showMoreText||"Show more packages";this.toggleTextTarget.textContent=s}this.hasToggleArrowTarget&&(this.toggleArrowTarget.style.transform="rotate(0deg)")}}confirmPurchase(){!this.selectedAmount||!this.selectedPrice||(this.hasTokenAmountFieldTarget&&(this.tokenAmountFieldTarget.value=this.selectedAmount),this.hasConfirmPriceTarget&&(this.confirmPriceTarget.textContent=this.selectedPrice),this.hasConfirmationModalTarget&&this.confirmationModalTarget.showModal())}getCurrentTokenQuantity(){return this.selectedAmount}getCurrentTokenPrice(){return this.selectedPrice}};var ad=class extends u{static targets=["checkbox"];async submit(i){i.preventDefault();let s=i.target,r=new FormData(s);try{(await this.sendFormData(s.action,s.method,r)).ok?(this.updateUIAfterSuccess(),this.handleHideConfirmationCheckbox()):this.handleError()}catch(a){this.handleError(a)}}async sendFormData(i,s,r){return await fetch(i,{method:s,headers:{Accept:"application/json"},body:r})}updateUIAfterSuccess(){let i=pe("message-ask-v2",this.application);i&&typeof i.updateImageModeUIFromForm=="function"&&i.updateImageModeUIFromForm()}handleHideConfirmationCheckbox(){this.hasCheckboxTarget&&this.checkboxTarget.checked&&localStorage.setItem("hideImageModalConfirmation","true")}handleError(i){console.error("There was an error updating your preference.",i)}};var nd=class extends u{connect(){setTimeout(()=>{let s=document.getElementById("loader");s&&s.remove(),this.element.classList.remove("hidden"),Di(this,"delayed-render"),je()},1e3)}};var od=class extends u{connect(){let i=document.getElementById("loader");i&&i.remove(),this.element.classList.remove("hidden"),this.element.dataset.messageScrollLazyLoaded==="true"||je(),Di(this,"immediate-render")}};var ld=class extends u{static values={triggerOnConnect:{type:Boolean,default:!0},removeLastUserMessage:{type:Boolean,default:!1}};connect(){this.removeLastUserMessageValue&&this.#e(),this.triggerOnConnectValue&&this.cleanup()}cleanup(){this.#t(),this.#i()}#e(){let i=document.querySelectorAll(".user-message"),s=i[i.length-1];s&&s.remove()}#t(){let i=document.getElementById("loader");i&&i.remove()}#i(){this.dispatch("render-complete",{bubbles:!0,detail:{reason:"premium-paywall-modal"}})}};var hd=class extends u{static targets=["container"];static values={shouldShow:Boolean,showOnConnect:Boolean,notificationType:String,hideOnClickOutside:Boolean,trackEvent:String,trackAction:String,trackHintKey:String,suppressOnConnect:Boolean,dismissEvent:String,markOnDismiss:Boolean};connect(){this.#t()&&(this.boundHideBeforeCache=this.hideBeforeCache.bind(this),this.boundHandlePageShow=this.handlePageShow.bind(this),document.addEventListener("turbo:before-cache",this.boundHideBeforeCache),window.addEventListener("pageshow",this.boundHandlePageShow)),this.hideOnClickOutsideValue&&(this.boundHideOnActivateOtherElement=this.hideOnActivateOtherElement.bind(this),document.addEventListener("click",this.boundHideOnActivateOtherElement)),this.hasDismissEventValue&&(this.boundDismissHandler=()=>this.hide(),document.addEventListener(this.dismissEventValue,this.boundDismissHandler)),this.showOnConnectValue&&this.shouldShowValue&&!this.suppressOnConnectValue&&!this.#i()&&!this.#s()&&this.show()}disconnect(){this.boundHideBeforeCache&&document.removeEventListener("turbo:before-cache",this.boundHideBeforeCache),this.boundHandlePageShow&&window.removeEventListener("pageshow",this.boundHandlePageShow),this.boundHideOnActivateOtherElement&&document.removeEventListener("click",this.boundHideOnActivateOtherElement),this.boundDismissHandler&&document.removeEventListener(this.dismissEventValue,this.boundDismissHandler)}hideBeforeCache(){this.#e()}handlePageShow(i){i.persisted&&this.#e()}hideOnActivateOtherElement(i){if(i.target.closest("[role='dialog'], dialog, [id$='-modal']"))return;let r=["button","a[href]","select","[role='button']","[data-action]","[tabindex]",".curs
104or-pointer"].join(",");i.target.closest(r)&&this.hide()}hide(){let i=!this.containerTarget.classList.contains("hidden");this.containerTarget.classList.add("hidden"),this.dispatch("closed",{detail:{id:this.element.id},bubbles:!0}),i&&this.trackDismiss(),i&&this.markOnDismissValue&&this.hasNotificationTypeValue&&this.markNotificationAsShown()}trackDismiss(){if(!this.hasTrackEventValue||this.trackEventValue==="")return;let i={};this.hasTrackActionValue&&(i.action=this.trackActionValue),this.hasTrackHintKeyValue&&(i.hint_key=this.trackHintKeyValue);let s=JSON.stringify({event:this.trackEventValue,properties:i});fetch("/track",{method:"POST",headers:{"Content-Type":"application/json"},body:s,keepalive:!0}).catch(()=>{})}async show(){this.containerTarget.classList.remove("hidden"),this.#t()&&(this.suppressOnConnectValue=!0),this.hasNotificationTypeValue&&!this.markOnDismissValue&&await this.markNotificationAsShown()}async markNotificationAsShown(){await Re.markAsShown(this.notificationTypeValue)}#e(){this.containerTarget.classList.add("hidden")}#t(){return this.showOnConnectValue&&this.hasNotificationTypeValue}#i(){let i=document.querySelectorAll("[data-controller~='text-bubble'][data-text-bubble-show-on-connect-value='true']");for(let s of i){if(s===this.element)continue;let r=this.application.getControllerForElementAndIdentifier(s,"text-bubble");if(r&&r.hasContainerTarget&&!r.containerTarget.classList.contains("hidden"))return!0}return!1}#s(){let i=this.element.parentElement;for(;i;){if(window.getComputedStyle(i).display==="none")return!0;i=i.parentElement}return!1}};var cd=class extends u{static targets=["proactiveAiNotifications","aiTraining"];static values={updateUrl:String,preferencesUrl:String};async submitToggleForm(i){let s=i.currentTarget,r=s.querySelector("input[type='checkbox']");try{let a=await ve(s.action,{body:new FormData(s),responseKind:"json"});if(!a.ok)throw new Error(`Server error: ${a.status}`)}catch{r.checked=!r.checked}}showToggleModal(i){i.preventDefault();let{modalId:s,showWhenOn:r,toggleAction:a}=i.params,n=i.currentTarget.checked;(r?n:!n)?document.getElementById(s)?.showModal():this[a](n)}toggleProactiveAiNotifications(){H("/user_preferences/toggle",{body:JSON.stringify({name:"proactive_ai_notifications"})}).then(i=>{if(!i.ok)throw new Error("Failed to toggle proactive ai notifications");this.proactiveAiNotificationsTarget.checked=!this.proactiveAiNotificationsTarget.checked}).catch(()=>{})}async toggleProactiveMedia(i){let s=i.currentTarget,r=s.checked;try{if(!(await ve(this.preferencesUrlValue,{body:JSON.stringify({name:"proactive_media",value:String(r)}),headers:{"Content-Type":"application/json"},responseKind:"json"})).ok)throw new Error("Failed to toggle proactive media")}catch{s.checked=!r}}toggleAiTraining(i){let s=typeof i=="boolean"?i:!this.aiTrainingTarget.checked;ve(this.updateUrlValue,{body:JSON.stringify({user:{ai_training_allowed:s}}),headers:{"Content-Type":"application/json"},responseKind:"json"}).then(r=>{if(!r.ok)throw new Error("Failed to toggle AI training");this.aiTrainingTarget.checked=s}).catch(()=>{})}};var dd=class extends u{static targets=["toggle","price","threshold"];connect(){this.lastKnownState=this.captureState(),this.requestVersion=0,this.thresholdSubmitTimer=null,this.thresholdDebounceMs=350}disconnect(){this.thresholdSubmitTimer&&(clearTimeout(this.thresholdSubmitTimer),this.thresholdSubmitTimer=null)}submit(i){let s=i.currentTarget.closest("form")||i.currentTarget;if(i.target===this.thresholdTarget){this.scheduleThresholdSubmit(s);return}this.performSubmit(s)}limitThreshold(i){let s=i.target,r=s.value.replace(/\D/g,"").slice(0,3);s.value!==r&&(s.value=r)}scheduleThresholdSubmit(i){this.thresholdSubmitTimer&&clearTimeout(this.thresholdSubmitTimer),this.thresholdSubmitTimer=setTimeout(()=>{this.thresholdSubmitTimer=null,this.performSubmit(i)},this.thresholdDebounceMs)}async performSubmit(i){let s=this.lastKnownState,r=++this.requestVersion;try{let a=await ve(i.action,{body:new FormData(i),responseKind:"json"});if(!a.ok)throw new Error(`Server error: ${a.status}`);if(r!==this.requestVersion)return;this.lastKnownState=this.captureState()}catch{if(r!==this.requestVersion)return;this.restoreState(s)}}captureState(){return{toggle:this.toggleTarget.checked,price:this.selectedPriceValue(),threshold:this.thresholdTarget.value}}restoreState(i){this.toggleTarget.checked=i.toggle,this.restorePriceValue(i.price),this.thresholdTarget.value=i.threshold}selectedPriceValue(){if(this.priceTargets.length===1&&this.priceTarget.tagName==="SELECT")return this.priceTarget.value;let i=this.priceTargets.find(s=>s.checked);return i?i.value:""}restorePriceValue(i){if(this.priceTargets.length===1&&this.priceTarget.tagName==="SELECT"){this.priceTarget.value=i;return}
104if(this.priceTargets.forEach(r=>{r.checked=!1}),!i)return;let s=this.priceTargets.find(r=>r.value===i);s&&(s.checked=!0)}};var ud=class extends u{static targets=["step1","step2","success","form","error","activate","threshold"];showSetup(){this.step1Target.classList.add("hidden"),this.step2Target.classList.remove("hidden")}back(){this.hideError(),this.step2Target.classList.add("hidden"),this.step1Target.classList.remove("hidden")}limitThreshold(i){let s=i.target,r=s.value.replace(/\D/g,"").slice(0,3);s.value!==r&&(s.value=r)}async activate(){if(!this.activating){this.activating=!0,this.hideError(),this.activateTarget.disabled=!0;try{let i=await ve(this.formTarget.action,{body:new FormData(this.formTarget),responseKind:"json"});if(!i.ok)throw new Error(`Server error: ${i.statusCode}`);this.showSuccessState()}catch{this.showError()}finally{this.activating=!1,this.hasActivateTarget&&(this.activateTarget.disabled=!1)}}}showSuccessState(){this.step1Target.classList.add("hidden"),this.step2Target.classList.add("hidden"),this.successTarget.classList.remove("hidden")}showError(){this.hasErrorTarget&&this.errorTarget.classList.remove("hidden")}hideError(){this.hasErrorTarget&&this.errorTarget.classList.add("hidden")}};var gd=class extends u{static targets=["video","image"];#e=()=>{this.#a()};#t=()=>{this.#l()};#i=i=>{i.preventDefault(),this.videoTarget.style.display==="none"&&this.#a(),this.#n()};connect(){this.#s(),this.hasVideoTarget&&(this.#r(),this.#h(),this.videoTarget.readyState>=2&&this.#a())}disconnect(){this.observer?.disconnect(),this.element.removeEventListener("click",this.#i),this.hasVideoTarget&&(this.videoTarget.removeEventListener("loadeddata",this.#e),this.videoTarget.removeEventListener("error",this.#t)),this.#o()}#s(){this.observer=new IntersectionObserver(i=>{i.forEach(s=>{s.isIntersecting?this.#n():this.#o()})},{threshold:.5}),this.observer.observe(this.element)}#r(){this.videoTarget.addEventListener("loadeddata",this.#e),this.videoTarget.addEventListener("error",this.#t)}#a(){!this.hasVideoTarget||!this.hasImageTarget||(this.videoTarget.style.display="block",this.imageTarget.style.display="none")}#n(){!this.hasVideoTarget||!this.videoTarget.paused||this.videoTarget.play().catch(()=>{this.#l()})}#o(){this.hasVideoTarget&&!this.videoTarget.paused&&this.videoTarget.pause()}#l(){this.element.addEventListener("click",this.#i,{once:!0})}#h(){let i=this.videoTarget,s=i.querySelectorAll("source");if(i.dataset.candyLoaded!=="true"){if(!s[0]?.dataset.src){i.getAttribute("src")&&!i.currentSrc&&(i.load(),i.dataset.candyLoaded="true");return}s.forEach(r=>{r.src=r.dataset.src,r.removeAttribute("data-src")}),i.load(),i.dataset.candyLoaded="true"}}};var tP=0,iP=1,sP=2,rP=2,md=class extends u{static values={videos:Array,selectedActionId:Number,profileSlug:String,isPurchased:Boolean,initialState:String,feedbackEnabled:Boolean,feedbackThresholdSeconds:Number,version:String,rootPath:String,feedbackModalUrl:String};static targets=["loader","videoContainer","actionMenu","actionItem","actionPrice","originalActionPrice","requestButton","joystickButton","actionLoader","waitingStateContainer","specialActionContainer","newWaitingStateContainer","topBar","loopButtonContainer","loopButton","videoControls","xpIndicator"];static DEBUG=!1;static RETRY_DELAY=500;static DEFAULT_STATE="clothed";static MENU_OPEN_DELAY=2e3;static PRELOAD_TIMEOUTS=[3e3,6e3,12e3];static PLAY_TIMEOUTS=[1e3,2e3,3e3,4e3,5e3];static VIDEO_STYLES={position:"absolute",inset:"0",width:"100%",height:"100%",objectFit:"cover",opacity:"0"};static ACTION_STATES={selected:{item:["bg-white/10","rounded-l-xl"],btn:["w-[80px]","opacity-100","scale-100","px-3","py-4","pointer-events-auto"]},unselected:{item:["bg-white/5","rounded-xl"],btn:["w-0","opacity-0","scale-90","p-0","pointer-events-none"]}};static MENU_DISABLED_CLASSES=["opacity-50","pointer-events-none","cursor-not-allowed"];log(i,s=null){if(this.constructor.DEBUG){let r=`[LiveActions] ${i}`;s?console.log(r,s):console.log(r)}}logError(i,s=null){if(this.constructor.DEBUG){let r=`[LiveActions] ERROR: ${i}`;s?console.error(r,s):console.error(r)}}logWarning(i,s=null){if(this.constructor.DEBUG){let r=`[LiveActions] WARNING: ${i}`;s?console.warn(r,s):console.warn(r)}}connect(){if(this.#e(),this.deviceDetector=new He,this.videosValue.length<1){this.hideVideoAndLoader();return}this.initState(),this.disableActionMenu(),this.startWaitingStateVideos(this.videosValue),this.applyPWATransformations(),document.addEventListener("pointerup",this.handleFirstGesture,{once:!0}),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("live-actions--audio:muted",this.handleVideoMuted),document.addEventListener("live-actions--audio:unmuted",this.handleVideoUnmuted),this.initFeedbackTracking(),this.handleBeforeVisit=this.handleBeforeVisit.bind(this),document.addEventListener("turbo:before-visit",this.handleBeforeVisit),this.boundHandleSkipLevelInsufficientTokensUpdate=this.handleSkipLevelInsufficientTokensUpdate.bind(this),document.addEventListener("live-actions:skip-level:insufficient-tokens-update",this.boundHandleSkipLevelInsufficientTokensUpdate),this.handleFeedbackClosed=this.handleFeedbackClosed.bind(this),document.addEventListener("live-actions-feedback:closed",this.handleFeedbackClosed)}disconnect(){clearTimeout(this.actionPriceExpiryTimeout),this.hasActionMenuTarget&&typeof this.actionMenuTarget.close=="function"&&this.actionMenuTarget.close(),this.clearContainer(this.waitingStateContainerTarget),this.clearContainer(this.specialActionContainerTarget),this.clearContainer(this.newWaitingStateContainerTarget),this._currentWaitingVideos=null,this._currentSpecialVideos=null,this._preloadedNextWaitingVideos=null,this._nextWaitingUrls=null,this.selectedActionIdValue=null,this._userInteractionAttempted=!1,this.removeOutsideClickListener(),this.cleanupUserInteractionOverlay(),this.hideVideoAndLoader(),this.hasActionLoaderTarget&&this.hideActionLoader(),this.hasJoystickButtonTarget&&this.joystickButtonTarget.classList.remove("hidden"),document.removeEventListener("live-actions--audio:muted",this.handleVideoMuted),document.removeEventListener("live-actions--audio:unmuted",this.handleVideoUnmuted),document.removeEventListener("pointerup",this.handleFirstGesture),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("turbo:before-visit",this.handleBeforeVisit),this.boundHandleSkipLevelInsufficientTokensUpdate&&document.removeEventListener("live-actions:skip-level:insufficient-tokens-update",this.boundHandleSkipLevelInsufficientTokensUpdate),document.removeEventListener("live-actions-feedback:closed",this.handleFeedbackClosed)}handleClose(i){this.versionValue==="v3"&&this.feedbackModalUrlValue&&this.rootPathValue&&(i.preventDefault(),this.checkFeedbackModal())}actionPriceTargetConnected(){this.#e()}#e(){clearTimeout(this.actionPriceExpiryTimeout);let i=1/0;for(let s of[...this.actionPriceTargets,...this.originalActionPriceTargets]){let r=Date.parse(s.dataset.discountEndsAt)-Date.now();r<=0?s.dataset.originalTokenCost!==void 0?s.textContent=s.dataset.originalTokenCost:s.hidden=!0:Number.isFinite(r)&&(i=Math.min(i,r))}Number.isFinite(i)&&(this.actionPriceExpiryTimeout=setTimeout(()=>this.#e(),Math.min(i,2147483647)))}initState(){this.currentState=this.currentState||this.initialStateValue||this.constructor.DEFAULT_STATE,this.previousState=this.currentState,this.isLoadingSpecial=!1,this.enableActionMenu(),this.specialVideosReadyToPlay=!1,this.waitingVideosInLoop=!1,this.loopEnabled=!1,this._userInteractionAttempted=!1,this.hasInteraction=!1,this.isMuted=this.getAudioState()==="muted"}initFeedbackTracking(){this.feedbackPrompted=!1,this.feedbackEligible=!1,this.playbackStartTime=null,this.playbackAccumulatedMs=0}handleBeforeVisit(i){this.hasFeedbackEnabledValue&&this.feedbackEnabledValue&&(this.stopPlaybackTracking(),this.shouldPromptFeedbackOnExit()&&(i.preventDefault(),this.triggerFeedbackModal(i.detail.url)))}stopPlaybackTracking(){if(this.playbackStartTime){let i=Date.now()-this.playbackStartTime;this.playbackAccumulatedMs+=i,this.playbackStartTime=null,this.feedbackEligible=this.calculatePlayedMs()>=(this.feedbackThresholdSecondsValue||5)*1e3}}calculatePlayedMs(){return Math.max(0,Math.round(this.playbackAccumulatedMs))}shouldPromptFeedbackOnExit(){return this.feedbackEnabledValue&&this.feedbackEligible&&!this.feedbackPrompted}triggerFeedbackModal(i){this.feedbackPrompted=!0,window.dispatchEvent(new CustomEvent("live-actions-feedback:open-request",{detail:{url:i,playedMs:this.calculatePlayedMs(),profileSlug:this.profileSlugValue}}))}getAudioState(){return localStorage.getItem("live_actions_audio_state")||"unmuted"}handleVideoMuted=()=>this.#i(!0);handleVideoUnmuted=()=>this.#i(!1);handleFirstGesture=i=>{this.hasInteraction=!0,!i.target.closest?.('[data-live-actions-target="soundButton"]')&&this.#i(this.isMuted)};handleVisibilityChange=()=>{!document.hidden&&!this.hasInteraction||this.element.querySelectorAll("video").forEach(i=>
104{this.#t(i).catch(s=>{this.logError("Failed to resume video after tab return",s)})})};async#t(i){let s=!i.paused;i.muted=this.isMuted||document.hidden,s&&!i.muted&&i.paused&&(i.muted=!0,await i.play())}#i(i){this.isMuted=i,this.hasInteraction=!0,this.element.querySelectorAll("video").forEach(s=>{s.muted=i})}hideVideoAndLoader(){this.videoContainerTarget.classList.add("hidden"),this.loaderTarget.classList.add("hidden"),this.enableActionMenu()}showVideoControls(){this.hasVideoControlsTarget&&this.videoControlsTarget.classList.remove("hidden")}hideVideoControls(){this.hasVideoControlsTarget&&this.videoControlsTarget.classList.add("hidden")}showXpIndicator(){this.hasXpIndicatorTarget&&this.xpIndicatorTarget.classList.remove("hidden")}hideXpIndicator(){this.hasXpIndicatorTarget&&this.xpIndicatorTarget.classList.add("hidden")}showActionLoader(){this.actionLoaderTarget.classList.remove("hidden"),this.hideXpIndicator(),this.disableActionMenu(),this.dispatch("action-playback-started",{bubbles:!0})}hideActionLoader(){this.actionLoaderTarget.classList.add("hidden"),this.showVideoControls()}scheduleMenuOpening(){this.log("Scheduling menu to open in 2 seconds"),setTimeout(()=>{this.enableActionMenu(),this.openActionMenu()},this.constructor.MENU_OPEN_DELAY)}disableActionMenu(){this.hasActionMenuTarget?(this.log("Disabling action menu"),this.constructor.MENU_DISABLED_CLASSES.forEach(i=>{this.actionMenuTarget.classList.add(i)})):this.log("No action menu target found for disabling")}enableActionMenu(){this.hasActionMenuTarget?(this.log("Enabling action menu"),this.constructor.MENU_DISABLED_CLASSES.forEach(i=>{this.actionMenuTarget.classList.remove(i)})):this.log("No action menu target found for enabling")}clearContainer(i){i.innerHTML=""}createVideoElement(i){let s=document.createElement("video");return typeof i=="string"?s.src=i:(i.av1&&s.appendChild(this.#s(i.av1,ti)),s.appendChild(this.#s(i.h264,li))),s.preload="auto",s.muted=!0,s.playsInline=!0,Object.assign(s.style,this.constructor.VIDEO_STYLES),s}#s(i,s){let r=document.createElement("source");return r.src=i,r.type=s,r}#r(i){return i.currentSrc||i.src}async startWaitingStateVideos(i){this.log("Starting waiting state videos",{urlsCount:i.length}),this.clearContainer(this.waitingStateContainerTarget),this._currentWaitingVideos=null;let s=await this.createAndPreloadVideos(i,this.waitingStateContainerTarget,"waiting");this._currentWaitingVideos=s,this.videoContainerTarget.classList.remove("hidden"),this.loaderTarget.classList.add("hidden"),this.enableActionMenu(),this.playVideoSequence(s),this.dispatch("startWaitingStateVideos",{bubbles:!0})}async playVideoSequence(i){for(this.log("Starting waiting videos loop",{specialVideosReadyToPlay:this.specialVideosReadyToPlay});!this.specialVideosReadyToPlay;)await this.playVideoArray(i,"waiting");if(this.log("End of waiting videos loop",{specialVideosReadyToPlay:this.specialVideosReadyToPlay}),this.specialVideosReadyToPlay){let s=this._currentSpecialVideos;this.hideActionLoader(),this.isTransitionOnly(s)||this.showLoopButton();try{await this.playActionVideoArray(s)}catch(r){throw this.logError("Error during special video playback",r),r}finally{this.hideLoopButton(),this.cleanupAndFinalizeSpecialVideoPlayback()}}}isTransitionOnly(i){return i.length===1&&this.currentState!==this.previousState}async playVideoArray(i,s){for(let r=0;r<i.length;r++){if(this.specialVideosReadyToPlay&&s==="waiting"){this.log("Skipping waiting videos playback");return}let a=i[r];a.muted=!0,a.style.opacity="1",this.log(`Playing video ${r+1}/${i.length}, type: "${s}"`),this.isPostTransitionVideo(s,i,r)&&(this.log("Last special video starting, scheduling menu opening"),this.hideVideoControls(),this.scheduleMenuOpening()),await this.robustPlay(a,s),await new Promise(n=>{a.addEventListener("ended",n,{once:!0})}),a.style.opacity="0"}}isPostTransitionVideo(i,s,r){return i==="special"&&r===s.length-1&&!this.hasLoopButtonContainerTarget}async playActionVideoArray(i){for(this.hideXpIndicator(),this.disableActionMenu(),this.#a("action-playback-started"),this.hasFeedbackEnabledValue&&this.feedbackEnabledValue&&(this.playbackStartTime=Date.now()),await this.playVideoArray(i,"special");this.loopEnabled;)await this.playVideoArray(i.slice(-1),"special");if(this.hasFeedbackEnabledValue&&this.feedbackEnabledValue&&this.playbackStartTime){let s=Date.now()-this.playbackStartTime;this.playbackAccumulatedMs+=s,this.playbackStartTime=null,this.feedbackEligible=this.calculatePlayedMs()>=(this.feedbackThresholdSecondsValue||5)*1e3}this.#a("action-playback-ended"),this.showXpIndicator(),this.enableActionMenu(),this.hasLoopButtonContainerTarget&&this.openActionMenu(void 0,!0)}async createAndPreloadVideos(i,s,r="unknown"){this.log(`Starting preload for ${i.length} videos`,{context:r});let a=i.map(l=>this.createVideoElement(l));a.forEach(l=>s.appendChild(l));let n=Math.ceil(a.length/2);for(let l=0;l<a.length;l+=2){let d=Math.floor(l/2)+1,m=a.slice(l,l+2);this.log(`Preloading chunk ${d}/${n}`,{context:r,chunkSize:m.length,videoUrls:m.map(v=>this.#r(v).split("/").pop())}),await Promise.all(m.map(v=>this.robustPreload(v,r))),this.log(`Completed chunk ${d}/${n}`,{context:r})}return this.log(`Finished preloading all ${i.length} videos`,{context:r}),a}async robustPreload(i,s="unknown"){let r=this.constructor.PRELOAD_TIMEOUTS.length,a=0;for(;a<r;){let n=this.constructor.PRELOAD_TIMEOUTS[a];try{await new Promise((l,d)=>{let m=!1,v=setTimeout(()=>{m||(i.readyState>=iP?(this.logWarning(`Video preload timeout, accepting metadata-only (attempt ${a+1}/${r})`,{src:this.#r(i),readyState:i.readyState,context:s,timeoutMs:n}),D()):(this.logWarning(`Video preload timeout (attempt ${a+1}/${r})`,{src:this.#r(i),readyState:i.readyState,networkState:i.networkState,context:s,timeoutMs:n}),R(new Error("preload-timeout"))))},n),E=()=>{i.removeEventListener("loadedmetadata",W),i.removeEventListener("loadeddata",Q),i.removeEventListener("canplay",X),i.removeEventListener("error",ie),clearTimeout(v)},D=()=>{m||(m=!0,E(),l())},R=oe=>{m||(m=!0,E(),d(oe))},W=()=>D(),Q=()=>D(),X=()=>D(),ie=oe=>{m||this.logError(`Video preload error (attempt ${a+1}/${r})`,{src:this.#r(i),error:oe,context:s,timeoutMs:n}),R(oe)};i.addEventListener("loadedmetadata",W,{once:!0}),i.addEventListener("loadeddata",Q,{once:!0}),i.addEventListener("canplay",X,{once:!0}),i.addEventListener("error",ie,{once:!0}),i.readyState===tP&&i.networkState!==rP&&i.load(),i.readyState>=sP&&D()});return}catch(l){if(a++,a<r)this.logWarning("robustPreload: retrying after error",{src:this.#r(i),context:s,error:l,attempt:`${a}/${r}`,nextTimeoutMs:this.constructor.PRELOAD_TIMEOUTS[a]}),await new Promise(d=>setTimeout(d,this.constructor.RETRY_DELAY));else{this.logError(`Video failed to preload after ${r} attempts`,{src:this.#r(i),context:s,error:l,timeoutsUsed:this.constructor.PRELOAD_TIMEOUTS.slice(0,r)});return}}}}async robustPlay(i,s="unknown"){let r=this.constructor.PLAY_TIMEOUTS.length,a=0;for(;a<r;){let n=this.constructor.PLAY_TIMEOUTS[a];try{await i.play(),this.hasInteraction&&await this.#t(i);return}catch(l){if(a++,this.logWarning(`video.play() failed (attempt ${a}/${r})`,{src:this.#r(i),context:s,error:l,timeoutMs:n}),this.isAutoplayPolicyError(l)){this.log("iOS autoplay policy error detected, showing user interaction overlay"),this._userInteractionAttempted=!0,this.showUserInteractionOverlay(()=>{this.retryVideoPlayOnUserInteraction(i,s)});break}a<r?await new Promise(d=>setTimeout(d,this.constructor.RETRY_DELAY)):this.logError(`video.play() failed after ${r} attempts`,{src:this.#r(i),context:s,error:l,timeoutsUsed:this.constructor.PLAY_TIMEOUTS.slice(0,r)})}}}async _requestPurchasedAction(i,s){if(this.#e(),!(!s||!this.profileSlugValue)&&!this.isLoadingSpecial){this.isLoadingSpecial=!0,this.hasActionMenuTarget&&typeof this.actionMenuTarget.close=="function"&&this.actionMenuTarget.close(),this.disableActionMenu();
104try{let r=await H("/user_purchases/live_actions",{body:{profile_slug:this.profileSlugValue,live_action_id:s,current_state:this.currentState},contentType:"application/json"});if(!r.ok){await this.handleActionFailure(r);return}let a=await r.json;this.handleActionResponse(a)}catch(r){this.logError("Failed to request purchased live action",r),this.isLoadingSpecial=!1,this.enableActionMenu()}}}async requestAction(i){let s=i.currentTarget,r=this.actionItemFor(s),a=r.dataset.liveActionsActionIdValue;await this._requestPurchasedAction(r,a)}async handleActionFailure(i){let s=await i.json;s?.html&&Turbo.renderStreamMessage(s.html),this.isLoadingSpecial=!1,this.enableActionMenu()}async handleActionResponse(i){if(this.hasJoystickButtonTarget&&this.joystickButtonTarget.classList.add("hidden"),this.hideLoopButton(),this.showActionLoader(),this.specialVideosReadyToPlay){this.log("Waiting for previous special videos to finish and waiting videos to restart"),setTimeout(()=>{this.handleActionResponse(i)},this.constructor.RETRY_DELAY);return}if(i.html&&Turbo.renderStreamMessage(i.html),this.previousState=this.currentState,this.currentState=i.character_state,i.success&&Array.isArray(i.urls)&&i.urls.length>0){this.log("Preloading special videos");let s=await this.createAndPreloadVideos(i.urls,this.specialActionContainerTarget,"special");i.new_waiting_state_urls&&(this.log("Preloading new waiting state videos",{urls:i.new_waiting_state_urls}),await this.preloadWaitingStateVideos(i.new_waiting_state_urls)),this.log("Preparing special videos playback sequence"),this.prepareSpecialVideoPlayback(s),this.isLoadingSpecial=!1}}prepareSpecialVideoPlayback(i){this._currentSpecialVideos=i,this.videoContainerTarget.classList.remove("hidden"),this.loaderTarget.classList.add("hidden"),this.specialVideosReadyToPlay=!0,this.log("Special videos ready to play")}cleanupAndFinalizeSpecialVideoPlayback(){this.log("Cleaning up special videos and finalizing"),this.showXpIndicator(),this.clearContainer(this.specialActionContainerTarget),this._currentSpecialVideos=null,this._preloadedNextWaitingVideos&&this._preloadedNextWaitingVideos.length&&(this.log("Preparing new waiting videos"),this.clearContainer(this.waitingStateContainerTarget),this._currentWaitingVideos=null,this._preloadedNextWaitingVideos.forEach(i=>{i.style.opacity="0",this.waitingStateContainerTarget.appendChild(i)}),this._currentWaitingVideos=this._preloadedNextWaitingVideos,this._preloadedNextWaitingVideos=null,this._nextWaitingUrls=null),this.specialVideosReadyToPlay=!1,this.log("Special videos finished, restarting waiting videos loop"),this.playVideoSequence(this._currentWaitingVideos)}async preloadWaitingStateVideos(i,s="new_waiting_state"){this._nextWaitingUrls=i,this._preloadedNextWaitingVideos=[];for(let r of i){let a=this.createVideoElement(r);await this.robustPreload(a,s),this._preloadedNextWaitingVideos.push(a)}}openActionMenu(i,s){this.#e(),this.hasInteraction=!0,this.hasJoystickButtonTarget&&this.joystickButtonTarget.classList.remove("hidden"),!(s&&this.versionValue==="v3")&&this.hasActionMenuTarget&&typeof this.actionMenuTarget.showModal=="function"&&(this.actionMenuTarget.scrollTop=0,this.actionMenuTarget.showModal())}closeActionMenu(){this.hasActionMenuTarget&&typeof this.actionMenuTarget.close=="function"&&this.actionMenuTarget.close()}selectAction(i){this.#e(),this.hasInteraction=!0;let s=i.currentTarget,r=Number(s.dataset.liveActionsActionIdValue);if(s.dataset.liveActionsIsPurchasedValue==="true"){this.log("Item is purchased, playing immediately"),this._requestPurchasedAction(s,r);return}this.actionItemTargets.forEach(n=>{this.setActionItemState(n,this.requestButtonFor(n),!1)}),this.setActionItemState(s,this.requestButtonFor(s),!0),this.selectedActionIdValue=r,this._outsideClickListener||(this._outsideClickListener=this.deselectOnOutsideClick.bind(this),document.addEventListener("mousedown",this._outsideClickListener))}requestButtonFor(i){return i.parentElement?.querySelector('[data-live-actions-target="requestButton"]')??null}actionItemFor(i){return i.parentElement?.querySelector('[data-live-actions-target="actionItem"]')}setActionItemState(i,s,r){let a=r?this.constructor.ACTION_STATES.selected:this.constructor.ACTION_STATES.unselected,n=r?this.constructor.ACTION_STATES.unselected:this.constructor.ACTION_STATES.selected;i.classList.remove(...n.item),i.classList.add(...a.item),s&&(s.classList.remove(...n.btn),s.classList.add(...a.btn))}deselectOnOutsideClick(i){this.requestButtonTargets.some(s=>s.contains(i.target))||this.actionItemTargets.some(s=>
104s.contains(i.target))||(this.actionItemTargets.forEach(s=>{this.setActionItemState(s,this.requestButtonFor(s),!1)}),this.selectedActionIdValue=null,this.removeOutsideClickListener())}removeOutsideClickListener(){this._outsideClickListener&&(document.removeEventListener("mousedown",this._outsideClickListener),this._outsideClickListener=null)}applyPWATransformations(){this.deviceDetector.isPwa()?(this.topBarTarget.classList.add("pt-[env(safe-area-inset-top)]"),this.element.closest(".main-content-container")?.classList.add("h-[100vh]")):this.topBarTarget.classList.add("pt-4")}showUserInteractionOverlay(i){let s=document.createElement("div");s.id="live-actions-interaction-overlay",s.style.cssText=`
105      position: fixed;
106      top: 0;
107      left: 0;
108      width: 100%;
109      height: 100%;
110      background: transparent;
111      z-index: 9999;
112      cursor: pointer;
113    `,s.innerHTML=`
114      <div style="
115        position: absolute;
116        top: 50%;
117        left: 50%;
118        transform: translate(-50%, -50%);
119        background: rgba(0, 0, 0, 0.8);
120        color: white;
121        padding: 20px;
122        border-radius: 10px;
123        text-align: center;
124        font-size: 16px;
125      ">
126        <div>Tap to Start</div>
127      </div>
128    `,this._interactionOverlay=s,this._interactionCallback=i;let r=()=>{this.cleanupUserInteractionOverlay(),this.log("User interaction detected, retrying video playback",{timestamp:new Date().toISOString(),userAgent:navigator.userAgent}),i()};this._interactionHandlers={touchstart:r,click:r};try{document.body.appendChild(s),document.addEventListener("touchstart",r,{once:!0}),document.addEventListener("click",r,{once:!0})}catch(a){this.cleanupUserInteractionOverlay(),this.logError("Failed to show user interaction overlay",a)}}async retryVideoPlayOnUserInteraction(i,s){try{await i.play(),this.hasInteraction&&await this.#t(i),this.log("Video play successful after user interaction",{context:s})}catch(r){this.logError("Video still failed after user interaction",r)}}cleanupUserInteractionOverlay(){if(this._interactionOverlay&&this._interactionOverlay.parentNode)try{document.body.removeChild(this._interactionOverlay)}catch(i){this.logWarning("Overlay already removed from DOM",i)}if(this._interactionHandlers){try{document.removeEventListener("touchstart",this._interactionHandlers.touchstart,{once:!0}),document.removeEventListener("click",this._interactionHandlers.click,{once:!0})}catch(i){this.logWarning("Error removing event listeners",i)}this._interactionHandlers=null}this._interactionOverlay=null,this._interactionCallback=null}isAutoplayPolicyError(i){return this.deviceDetector.isIOS()&&i.name==="NotAllowedError"&&!this._userInteractionAttempted}handleLoopClick(){this.loopEnabled=!this.loopEnabled,this.loopEnabled?this.loopButtonTarget.classList.add("bg-blue-brand"):this.loopButtonTarget.classList.remove("bg-blue-brand")}showLoopButton(){this.hasLoopButtonContainerTarget&&this.loopButtonContainerTarget.classList.remove("hidden")}hideLoopButton(){this.hasLoopButtonContainerTarget&&this.loopButtonContainerTarget.classList.add("hidden")}#a(i){let s=`${this.identifier}:${i}`;this.log(`Live actions controller: Dispatching ${s}`),this.dispatch(i,{bubbles:!0,detail:{actionId:this.selectedActionIdValue,characterState:this.currentState,previousState:this.previousState}})}dispatchLevelRequirementEvent(i){let r=i.target.closest("[data-live-actions-action-level-value]")?.dataset?.liveActionsActionLevelValue;if(r){if(this.hasActionMenuTarget)if(typeof this.actionMenuTarget.showModal=="function"){let a=this.actionMenuTarget.querySelector(".modal-box");a&&a.scrollTo({top:0,behavior:"smooth"})}else{let a=this.actionMenuTarget.querySelector(".overflow-y-auto")||this.actionMenuTarget;a&&a.scrollHeight>a.clientHeight&&a.scrollTo({top:0,behavior:"smooth"})}document.dispatchEvent(new CustomEvent("live-actions:level-requirement",{bubbles:!0,detail:{requiredLevel:r}}
128))}}handleSkipLevelInsufficientTokensUpdate(){this.hasActionMenuTarget&&typeof this.actionMenuTarget.close=="function"&&this.actionMenuTarget.close()}async checkFeedbackModal(){try{(await Ee(this.feedbackModalUrlValue,{responseKind:"turbo-stream"})).ok||(window.location.href=this.rootPathValue)}catch{window.location.href=this.rootPathValue}}handleFeedbackClosed(){this.versionValue!=="v3"||!this.feedbackModalUrlValue||!this.rootPathValue||(window.location.href=this.rootPathValue)}};var aP=[15e3,3e4,45e3],nP=500,oP=1,lP=2,ma=class{constructor({preloadWindow:s=oP,preloadTimeouts:r=aP,retryDelay:a=nP,preloadVideo:n=null,onActionReady:l=()=>{},onActionFailed:d=()=>{}}={}){this.items=[],this.preloadWindow=s,this.preloadTimeouts=r,this.retryDelay=a,this.preloadVideo=n||(m=>({video:this.buildVideo(m),ownedByQueue:!0})),this.onActionReady=l,this.onActionFailed=d}enqueue(s){return this.add(s)}retryStartedNext(s){let r=(s?.playbackStartAttempts||0)+1,a={...s,playbackStartAttempts:r};return this.exceedsMaxPlaybackStartAttempts(a,r)?null:this.add(a,{next:!0,preloadState:"ready",playbackStartAttempts:r})}add(s,{next:r=!1,preloadState:a="pending",playbackStartAttempts:n=0}={}){let l=this.videoUrlForAction(s);if(!l)return null;let d={...s,videoUrl:l,preloadState:a,preloadAttempts:0,playbackStartAttempts:n,reserved:!1,video:null,videoOwnedByQueue:!0,preloadTimer:null,retryTimer:null,enqueuedAt:s.enqueued_at?Date.parse(s.enqueued_at):Date.now()};return r?this.items.unshift(d):this.items.push(d),this.prepareWindow(),d}peek(){return this.items[0]}peekReady(){this.removeFailedFrontItems();let s=this.items[0];return s?.preloadState==="ready"&&!s.reserved?s:null}reserveReady(){let s=this.peekReady();return s?(s.reserved=!0,s):null}confirmStarted(s){this.removeQueuedAction(s)}releaseReservationForRetry(s){!s||!this.items.includes(s)||(s.reserved=!1,s.playbackStartAttempts+=1,this.exceedsMaxPlaybackStartAttempts(s,s.playbackStartAttempts)?(s.preloadState="failed",this.cleanupQueuedAction(s)):(s.preloadState="pending",s.preloadAttempts=0,this.cleanupQueuedAction(s)),this.prepareWindow())}releaseReservedActions(){let s=!1;this.items.forEach(r=>{r.reserved&&(r.reserved=!1,s=!0)}),s&&this.prepareWindow()}hasPending(){return this.items.some(s=>s.preloadState!=="failed")}clear(){this.items.forEach(s=>this.cleanupQueuedAction(s)),this.items=[]}videoUrlForAction(s){let r=s.video_urls||[];if(s.videoUrl)return s.videoUrl;if(s.video_url)return s.video_url;if(r.length===0)return null;let a=r[Math.floor(Math.random()*r.length)];return typeof a=="string"?a:a.h264||a.url||a.av1||null}prepareWindow(){if(this.removeFailedFrontItems(),this.loadingItems().length>0||this.bufferedItems().length>=this.preloadWindow)return;let s=this.items.find(r=>r.preloadState==="pending");s&&this.preloadQueuedAction(s)}loadingItems(){return this.items.filter(s=>s.preloadState==="loading")}bufferedItems(){return this.items.filter(s=>s.reserved||["loading","ready"].includes(s.preloadState))}preloadQueuedAction(s){s.preloadState="loading",s.preloadAttempts+=1;let r=this.preloadVideo(s.videoUrl);if(s.video=r?.video,s.videoOwnedByQueue=r?.ownedByQueue!==!1,!s.video){this.retryOrFail(s,new Error("video-preload-unavailable"));return}if(s.video.readyState>=2){this.markReady(s);return}this.waitForVideoReady(s).then(()=>this.markReady(s)).catch(a=>this.retryOrFail(s,a))}buildVideo(s){let r=document.createElement("video");return r.preload="auto",r.playsInline=!0,r.src=s,r.load(),r}waitForVideoReady(s){let r=s.video,a=s.videoUrl,n=this.preloadTimeouts[s.preloadAttempts-1]||this.preloadTimeouts[this.preloadTimeouts.length-1];return r.readyState>=2?Promise.resolve():new Promise((l,d)=>{let m=!1,v=()=>{r.removeEventListener("loadeddata",W),r.removeEventListener("canplay",W),r.removeEventListener("error",Q),window.clearTimeout(s.preloadTimer),s.preloadTimer=null,s.preloadAbort=null},E=()=>{m||(m=!0,v(),l())},D=X=>{m||(m=!0,v(),d(X))},R=({invalidate:X=!0}={})=>{m||(m=!0,v(),X&&this.invalidatePreload(s))},W=()=>{if(!this.videoMatchesUrl(r,a)){R();return}E()},Q=()=>D(new Error("video-preload-error"));s.preloadAbort=()=>R({invalidate:!1}),r.addEventListener("loadeddata",W,{once:!0}),r.addEventListener("canplay",W,{once:!0}),r.addEventListener("error",Q,{once:!0}),s.preloadTimer=window.setTimeout(()=>{if(!this.videoMatchesUrl(r,a)){R();return}r.readyState>=2?E():D(new Error("video-preload-timeout"))},n)})}markReady(s){if(!this.items.includes(s)){this.cleanupQueuedAction(s);return}if(s.preloadState!=="loading")return;let r=s.video;
128if(!r||(r.currentSrc||r.src)&&!this.videoMatchesUrl(r,s.videoUrl)){this.invalidatePreload(s);return}s.preloadState="ready",this.onActionReady(s),this.prepareWindow()}retryOrFail(s,r){this.items.includes(s)&&(this.cleanupQueuedAction(s),s.preloadAttempts<this.preloadTimeouts.length?(s.preloadState="pending",s.retryTimer=window.setTimeout(()=>{s.retryTimer=null,this.prepareWindow()},this.retryDelay)):(s.preloadState="failed",this.onActionFailed(s,r),this.prepareWindow()))}removeFailedFrontItems(){for(;this.items[0]?.preloadState==="failed";){let s=this.items.shift();this.cleanupQueuedAction(s)}}removeQueuedAction(s){let r=this.items.indexOf(s);r>=0&&(this.items.splice(r,1),this.cleanupQueuedAction(s),this.prepareWindow())}cleanupQueuedAction(s){s.preloadAbort?.(),s.preloadTimer&&(window.clearTimeout(s.preloadTimer),s.preloadTimer=null),s.retryTimer&&(window.clearTimeout(s.retryTimer),s.retryTimer=null),s.video&&(s.videoOwnedByQueue&&(s.video.pause(),s.video.removeAttribute("src"),s.video.load()),s.video=null,s.videoOwnedByQueue=!0)}videoMatchesUrl(s,r){return!s||!r?!1:s.src===r||s.currentSrc===r}invalidatePreload(s){this.items.includes(s)&&s.preloadState==="loading"&&(s.preloadState="pending",s.video=null,this.prepareWindow())}exceedsMaxPlaybackStartAttempts(s,r){return r<lP?!1:(this.onActionFailed(s,new Error("action-playback-start-failed")),!0)}};var pa=class{constructor(){this.idleBodyState="clothed",this.pendingBodyState=null}reset(){this.idleBodyState="clothed",this.pendingBodyState=null}applyPrivateSession(s){this.idleBodyState=this.privateSessionBodyState(s),this.pendingBodyState=null}applyNudePrivateSession(s){this.privateSessionBodyState(s)==="nude"&&(this.idleBodyState="nude",this.pendingBodyState=null)}applyPendingAction(s){return s?.body_state!=="clothed_to_nude"?!1:(this.pendingBodyState="nude",!0)}applyConfirmedAction(s){return s?.body_state!=="clothed_to_nude"?!1:(this.idleBodyState="nude",this.pendingBodyState=null,!0)}clearPendingAction(){return this.pendingBodyState?(this.pendingBodyState=null,!0):!1}privateSessionBodyState(s){return s?.body_state==="nude"?"nude":"clothed"}tipActionVisible({variants:s,privateOnly:r,inPrivateSession:a}){return r?a&&this.effectiveBodyState()==="nude"?s.nude:!0:a?this.effectiveBodyState()==="nude"?s.nude:s.clothed||s.clothedToNude:s.clothed}effectiveBodyState(){return this.pendingBodyState||this.idleBodyState}};var pd=".cams-feed-message";var dC="cams-feed-scrollable",cC=[dC,"pb-[18px]","pt-[55px]"];function uC(){return globalThis.visualViewport?.height??globalThis.innerHeight}function hP(i=uC(),s=Number.NaN){if(!(i>0))return 264;let r=i<700?176:264,a=Number.isFinite(s)&&s>0?s:Math.round(i*.32);return Math.min(r,a)}function cP(i){return`linear-gradient(to bottom, rgba(0,0,0,0) 0px, rgba(0,0,0,0) 10px, rgba(0,0,0,1) 55px, rgba(0,0,0,1) ${i-18}px, rgba(0,0,0,0) ${i}px)`}var fa=class{constructor({scrollTarget:s,messagesTarget:r,isVisible:a=()=>!0}){this.scrollTarget=s,this.messagesTarget=r,this.isVisible=a}sync(){let s=this.scrollTarget(),r=this.messagesTarget();if(!s||!r||!this.isVisible())return;s.style.maxHeight="",s.style.maxWidth="320px";let a=Number.parseFloat(globalThis.getComputedStyle(s).maxHeight),n=hP(uC(),a),l=n-18-55;s.style.maxHeight=`${n}px`;let d=r.scrollHeight;if(d<=0){this.clearScrollable(s),s.style.height="0px";return}if(d>l){this.applyScrollable(s,n),s.style.height=`${n}px`,this.updateMessageInteractivity();return}this.clearScrollable(s),s.style.height=`${d+18}px`,this.updateMessageInteractivity()}applyScrollable(s,r){s.classList.add(...cC);let a=cP(r);s.style.maskImage=a,s.style.webkitMaskImage=a}clearScrollable(s){s.classList.remove(...cC),s.style.maskImage="",s.style.webkitMaskImage=""}updateMessageInteractivity(){let s=this.scrollTarget(),r=this.messagesTarget();if(!s||!r)return;let a=r.querySelectorAll(pd);if(!s.classList.contains(dC)){a.forEach(l=>{l.classList.add("pointer-events-auto"),l.classList.remove("pointer-events-none")});return}let n=s.getBoundingClientRect().top+55;a.forEach(l=>{let d=l.getBoundingClientRect().bottom<=n;l.classList.toggle("pointer-events-none",d),l.classList.toggle("pointer-events-auto",!d)})}};var dP="blur-sm select-none transform-gpu will-change-[filter] [backface-visibility:hidden] [perspective:1000px] [transform-style:preserve-3d]",va=class{constructor({messagesTarget:s,scrollTarget:r,isConnected:a,onTipMessage:n,onLayoutSync:l=null}){this.messagesTarget=s,this.scrollTarget=r,this.isConnected=a,this.onTipMessage=n,this.onLayoutSync=l}append(s,{enqueue:r=!0}={}){if(!this.isConnected()||!this.messagesTarget())return;let a=document.createElement("div");
128a.className="cams-feed-message pointer-events-auto flex w-full min-w-0 shrink-0 items-start gap-[6px] rounded-2xl",s.kind==="tip"?(a.appendChild(this.buildTipMessage(s)),r&&this.onTipMessage(s)):a.appendChild(this.buildChatMessage(s)),this.messagesTarget().appendChild(a),this.syncLayout(),this.scrollToBottom()}syncLayout(){this.onLayoutSync?.()}buildChatMessage(s){let r=document.createElement("div");r.className="cams-fake-feed-message-content break-words text-xs font-semibold leading-[18px] text-white [text-shadow:0_0_10px_black]";let a=document.createElement("span");a.style.color=s.color,a.textContent=s.author;let n=document.createElement("span");return n.textContent=` ${s.body}`,r.append(a,n),r}buildTipMessage(s){let r=document.createElement("div");r.className="cams-fake-feed-tip-shell flex items-center rounded-lg border border-[#ffb703] bg-black/70 px-[9px] py-[6px]";let a=document.createElement("div");a.className="cams-fake-feed-message-content break-words text-xs font-semibold leading-[18px] text-white [text-shadow:0_0_10px_black]";let n=document.createElement("span");if(n.style.color=s.color,n.textContent=s.author,s.private_session){let v=this.buildActionNameSpan(s);return a.append(n,v),r.appendChild(a),r}let l=document.createElement("span");l.textContent=` ${s.tipped_label} `;let d=document.createElement("span");d.className="text-[#ffb703]",d.textContent=s.token_label;let m=this.buildActionNameSpan(s);return a.append(n,l,d,m),r.appendChild(a),r}buildActionNameSpan(s){let r=document.createElement("span");return s.blur_action_name&&(r.className=dP),r.textContent=` ${s.action_name}`,r}scrollToBottom(){let s=this.scrollTarget();s&&window.requestAnimationFrame(()=>{s.scrollTop=s.scrollHeight,this.syncLayout()})}};var Ta=class{constructor({messages:s,onMessage:r}){this.messages=s,this.onMessage=r,this.started=!1,this.timers=[]}start(){this.started||(this.started=!0,this.scheduleCycle(this.messages))}stop(){this.timers.forEach(s=>window.clearTimeout(s)),this.timers=[],this.started=!1}scheduleCycle(s){if(!this.started||s.length===0)return;s.forEach(n=>{let l=window.setTimeout(()=>{this.onMessage(n)},n.delay_ms);this.timers.push(l)});let r=Math.max(...s.map(n=>n.delay_ms))+6500,a=window.setTimeout(()=>{this.scheduleCycle(this.repeatableMessages())},r);this.timers.push(a)}repeatableMessages(){return this.messages.filter(s=>s.repeatable!==!1)}};var ba=class i{static RENEWAL_TIMER_BUFFER_MS=250;static GRACE_POLL_INTERVAL_MS=1e3;static REQUEST_TIMEOUT_MS=1e4;static START_RECONCILIATION_ATTEMPTS=3;static START_RECONCILIATION_DELAY_MS=500;static START_RECONCILIATION_TIMEOUT_MS=2e3;constructor({url:s,endUrlTemplate:r,initialSession:a,pollInterval:n,onChange:l,onFailure:d,onError:m}){this.connected=!0,this.current=a,this.endUrlTemplate=r,this.heartbeatIntervalMs=null,this.heartbeatTimer=null,this.onChange=l,this.onError=m,this.onFailure=d,this.pollInterval=n,this.renewalTimer=null,this.requestPending=!1,this.paused=!1,this.stateVersion=0,this.syncAbortController=null,this.syncPending=!1,this.url=s}get currentId(){return this.current&&["active","grace"].includes(this.current.status)?this.current.id:null}connect(){this.current&&(this.scheduleTimers(),this.sync())}disconnect(){this.connected=!1,this.stopTimers()}async start(s=null){if(this.requestPending||!this.url)return;this.requestPending=!0;let r=!1;try{let a={};s?.trigger&&(a.trigger=s.trigger),s?.actionId&&(a.action_id=s.actionId),s?.sessionType&&(a.session_type=s.sessionType);let n={body:JSON.stringify(a),contentType:"application/json",responseKind:"json"},l=s?.sessionType==="live_video"?await this.requestWithTimeout(d=>H(this.url,{...n,signal:d})):await H(this.url,n);await this.handleResponse(l)}catch(a){a.name==="AbortError"&&s?.sessionType==="live_video"?r=!0:a.name!=="AbortError"&&this.onError(a,"startPrivateSession")}finally{this.requestPending=!1}r&&await this.reconcileTimedOutStart()}async sync({timeoutMs:s=i.REQUEST_TIMEOUT_MS}={}){if(this.syncPending||this.requestPending||!this.url)return;this.syncPending=!0;let r=this.stateVersion,a=new window.AbortController;this.syncAbortController=a;try{let n=await this.requestWithTimeout(l=>ve(this.url,{contentType:"application/json",responseKind:"json",signal:l}),a,s);if(r!==this.stateVersion)return;await this.handleResponse(n)}catch(n){n.name!=="AbortError"&&this.onError(n,"syncPrivateSession")}finally{this.syncAbortController===a&&(this.syncAbortController=null),this.syncPending=!1}}async end({reason:s,resumeOnFailure:r=!0}={}){if(!this.currentId)return!0;let a=this.current?.session_type==="live_video";this.pause();try{let l={body:s?JSON.stringify({reason:s}):void 0,contentType:"application/json",responseKind:"json"},d=a?await this.requestWithTimeout(v=>
128Ye(this.endUrl(),{...l,signal:v})):await Ye(this.endUrl(),l),m=await d.json;return!d.ok||!m.success?(r&&this.resume(),this.onFailure(m),!1):(this.clear(m.html),m)}catch(n){if(n.name==="AbortError"&&a){if(await this.sync(),!this.currentId)return!0}else n.name!=="AbortError"&&this.onError(n,"endPrivateSession");return r&&this.resume(),!1}}async handleResponse(s){let r=await s.json;if(!s.ok){this.onFailure(r);return}if(!r.success){r.code==="no_session"?this.clear():this.onFailure(r);return}this.apply(r.private_session,r.html)}apply(s,r=null){if(!s||s.status==="ended"){this.clear(r);return}this.stateVersion+=1,this.current=s,this.onChange(s,r),this.scheduleTimers()}clear(s=null){this.stateVersion+=1,this.current=null,this.paused=!1,this.stopTimers(),this.onChange(null,s)}pause(){this.paused=!0,this.syncAbortController?.abort(),this.stopTimers()}resume(){this.paused=!1,this.scheduleTimers()}scheduleTimers(){this.scheduleHeartbeat(),this.scheduleRenewal()}scheduleHeartbeat(){if(!this.connected||this.paused)return;let s=this.heartbeatInterval();this.heartbeatTimer&&this.heartbeatIntervalMs===s||(this.stopHeartbeat(),this.heartbeatIntervalMs=s,this.heartbeatTimer=window.setInterval(()=>this.sync(),s))}scheduleRenewal(){if(!this.connected||this.paused||(this.stopRenewal(),!this.current||this.current.status!=="active"))return;let s=Date.parse(this.current.paid_until_at);if(Number.isNaN(s))return;let r=Math.max(s-Date.now()+i.RENEWAL_TIMER_BUFFER_MS,i.RENEWAL_TIMER_BUFFER_MS);this.renewalTimer=window.setTimeout(()=>{this.sync()},r)}heartbeatInterval(){return this.current?.status==="grace"?i.GRACE_POLL_INTERVAL_MS:this.pollInterval}stopTimers(){this.stopHeartbeat(),this.stopRenewal()}stopHeartbeat(){this.heartbeatTimer&&(window.clearInterval(this.heartbeatTimer),this.heartbeatTimer=null,this.heartbeatIntervalMs=null)}stopRenewal(){this.renewalTimer&&(window.clearTimeout(this.renewalTimer),this.renewalTimer=null)}async requestWithTimeout(s,r=new window.AbortController,a=i.REQUEST_TIMEOUT_MS){let n=window.setTimeout(()=>r.abort(),a);try{return await s(r.signal)}finally{window.clearTimeout(n)}}async reconcileTimedOutStart(){for(let s=0;s<i.START_RECONCILIATION_ATTEMPTS;s+=1){if(await this.sync({timeoutMs:i.START_RECONCILIATION_TIMEOUT_MS}),this.currentId)return;s<i.START_RECONCILIATION_ATTEMPTS-1&&await new Promise(r=>window.setTimeout(r,i.START_RECONCILIATION_DELAY_MS))}}endUrl(){return this.endUrlTemplate}};var uP=3e3,gP=1e4,mP="cams-private-feed",gC="cams-private-typing-indicator",ya=class{constructor({currentPrivateSessionId:s,hasMessageInput:r,messageInput:a,hasMessageSendButton:n,messageSendButton:l,hasPrivateFeedMessages:d,privateFeedMessages:m,isConnected:v,onScrollToBottom:E,onActivity:D,onError:R}){this.currentPrivateSessionId=s,this.hasMessageInput=r,this.messageInput=a,this.hasMessageSendButton=n,this.messageSendButton=l,this.hasPrivateFeedMessages=d,this.privateFeedMessages=m,this.isConnected=v,this.onScrollToBottom=E,this.onActivity=D,this.onError=R,this.pendingAssistantReplies=[],this.lateAssistantReplies=[],this.submittingMessage=!1,this.boundHandleBeforeStreamRender=this.handleBeforeStreamRender.bind(this)}connect(){document.addEventListener("turbo:before-stream-render",this.boundHandleBeforeStreamRender),this.syncMessageInputState()}disconnect(){document.removeEventListener("turbo:before-stream-render",this.boundHandleBeforeStreamRender),this.reset()}reset(){this.clearPendingAssistantReplies(),this.removeTypingIndicator()}handleBeforeStreamRender(s){let r=s.detail?.newStream;if(!r||r.target!==mP||r.getAttribute("action")!=="append")return;if(this.userMessageStreamTemplate(r)){this.handleUserMessageStreamRender(s);return}if(!this.assistantMessageStreamTemplate(r))return;let a=this.assistantResponseRemainingDelay(),n=s.detail.render;s.detail.render=l=>{let d=()=>{this.isConnected()&&(n(l),this.removeTypingIndicator(),this.resolveAssistantReply(),this.syncMessageInputState(),this.hasActivePendingAssistantReplies()&&(this.appendTypingIndicator(),this.onScrollToBottom()))};if(a<=0){d();return}window.setTimeout(d,a)}}handleUserMessageStreamRender(s){let r=s.detail.render;s.detail.render=a=>{r(a),!(!this.currentPrivateSessionId()||!this.hasActivePendingAssistantReplies())&&(this.appendTypingIndicator(),this.onScrollToBottom(),this.syncMessageInputState())}}userMessageStreamTemplate(s){return(s.templateContent||s.querySelector("template")?.content)?.querySelector?.("[data-cams-message-role='User']")}assistantMessageStreamTemplate(s){return(s.templateContent||s.querySelector("template")?.content)?.querySelector?.("[data-cams-message-role='Assistant']")}assistantResponseRemainingDelay(){let s=this.pendingAssistantReplies[0];return s?uP-(Date.now()-s.sentAt):0}completeAssistantReply(){let s=this.pendingAssistantReplies.shift();this.clearAssistantReplyTimeout(s?.timeoutId)}resolveAssistantReply(){if(this.pendingAssistantReplies.length>0){this.completeAssistantReply();return}this.lateAssistantReplies.length>0&&this.lateAssistantReplies.shift()}handleAssistantReplyTimeout(s){if(!this.isConnected()||!s)return;this.clearAssistantReplyTimeout(s.timeoutId),s.timeoutId=null;let r=this.pendingAssistantReplies.indexOf(s);r!==-1&&(this.pendingAssistantReplies.splice(r,1),this.lateAssistantReplies.push(s)),this.removeTypingIndicator(),this.syncMessageInputState(),this.hasActivePendingAssistantReplies()&&(this.appendTypingIndicator(),this.onScrollToBottom())}clearAssistantReplyTimeout(s){s&&window.clearTimeout(s)}queueAssistantReplyTimestamp(){let s={sentAt:Date.now(),timeoutId:null};s.timeoutId=window.setTimeout(()=>this.handleAssistantReplyTimeout(s),gP),this.pendingAssistantReplies.push(s)}rollbackAssistantReplyTimestamp(){let s=this.pendingAssistantReplies.pop();this.clearAssistantReplyTimeout(s?.timeoutId),this.removeTypingIndicator()}clearPendingAssistantReplies(){this.pendingAssistantReplies.forEac
128h(s=>{this.clearAssistantReplyTimeout(s.timeoutId)}),this.pendingAssistantReplies=[],this.lateAssistantReplies=[],this.syncMessageInputState()}hasActivePendingAssistantReplies(){return this.pendingAssistantReplies.length>0}updateMessageSendButton(){if(!this.hasMessageInput()||!this.hasMessageSendButton())return;let s=this.messageInput(),r=this.messageSendButton(),a=s.value.trim().length>0;r.disabled=!a||this.submittingMessage||this.waitingForAssistantReply(),s.disabled=this.submittingMessage,this.onActivity()}waitingForAssistantReply(){return!!this.currentPrivateSessionId()&&this.hasActivePendingAssistantReplies()}syncMessageInputState(){this.updateMessageSendButton()}async submitMessage(s){if(s.preventDefault(),this.submittingMessage||this.waitingForAssistantReply()||!this.hasMessageInput())return;let r=this.messageInput(),a=r.value.trim();if(!a)return;this.submittingMessage=!0;let n=!!this.currentPrivateSessionId();n&&this.queueAssistantReplyTimestamp(),this.syncMessageInputState();try{if(!(await H(s.currentTarget.action,{body:JSON.stringify({message:a,private_session_id:this.currentPrivateSessionId()}),contentType:"application/json",responseKind:"turbo-stream"})).ok){n&&this.rollbackAssistantReplyTimestamp();return}this.onActivity(),r.value="",this.onScrollToBottom()}catch(l){n&&this.rollbackAssistantReplyTimestamp(),l.name!=="AbortError"&&this.onError(l,"submitMessage")}finally{this.submittingMessage=!1,this.syncMessageInputState(),r.focus()}}appendTypingIndicator(){if(document.getElementById(gC))return;let s=document.getElementById("cams-private-typing-indicator-template");!s||!this.hasPrivateFeedMessages()||this.privateFeedMessages().appendChild(s.content.cloneNode(!0))}removeTypingIndicator(){document.getElementById(gC)?.remove()}};var Sa=class{constructor(){this.clothedIndex=0,this.nudeIndex=0,this.publicUrls=[],this.privateUrls=[]}setPublicUrls(s){this.publicUrls=(s||[]).filter(Boolean)}setPrivateUrls(s){this.privateUrls=(s||[]).filter(Boolean)}reset(){this.clothedIndex=0,this.nudeIndex=0}resetClothed(){this.clothedIndex=0}resetNude(){this.nudeIndex=0}advance(s){if(s==="nude"){if(this.privateUrls.length===0)return;this.nudeIndex=(this.nudeIndex+1)%this.privateUrls.length;return}this.publicUrls.length!==0&&(this.clothedIndex=(this.clothedIndex+1)%this.publicUrls.length)}activeUrls({inPrivateSession:s,bodyState:r}){return s&&r==="nude"&&this.privateUrls.length>0?this.privateUrls:this.publicUrls}currentUrl({inPrivateSession:s,bodyState:r}){let a=this.activeUrls({inPrivateSession:s,bodyState:r});return a.length===0?null:s&&r==="nude"?a[this.nudeIndex%a.length]:a[this.clothedIndex%a.length]}nextUrl({inPrivateSession:s,bodyState:r}){if(s&&r==="nude"&&this.privateUrls.length>0){if(this.privateUrls.length<=1)return null;let n=(this.nudeIndex+1)%this.privateUrls.length;return this.privateUrls[n]}if(this.publicUrls.length<=1)return null;let a=(this.clothedIndex+1)%this.publicUrls.length;return this.publicUrls[a]}firstPrivateUrl(){return this.privateUrls[0]||null}};var fP="cams-feed-scrollable",vP="absolute inset-0 z-[25] cursor-pointer",TP="a, button, input, textarea, select, summary, [role='button'], [role='link']",bP=[{selector:".group\\/cams-tip",hiddenClass:"cams-tip-hidden"},{selector:".group\\/cams-modal",hiddenClass:"cams-modal-hidden"},{selector:".group\\/cams-media-packs",hiddenClass:"cams-modal-hidden"},{selector:".group\\/cams-private-session",hiddenClass:"cams-private-session-hidden"}],MT="cams-immersive-hideable",_T="cams-immersive-ui-fade-out",yP=450,wa=class{constructor({element:s,hideableElements:r,persistentElements:a=()=>[],feedScrollElement:n=null,feedMessagesElement:l=null,onFeedInteraction:d=null,onHideUi:m=null,onActivity:v=null,onShowUi:E=null,isEnabled:D}){this.element=s,this.hideableElements=r,this.persistentElements=a,this.feedScrollElement=n,this.feedMessagesElement=l,this.onFeedInteraction=d,this.onHideUi=m,this.onActivity=v,this.onShowUi=E,this.isEnabled=D,this.enabled=!1,this.uiHidden=!1,this.tapOverlay=null,this.hideTransitionTimer=null,this.handlePointerDown=this.handlePointerDown.bind(this),this.handleTapOverlay=this.handleTapOverlay.bind(this)}sync(){let s=this.isEnabled();if(s!==this.enabled){if(s){this.enable();return}this.disable()}}enable(){this.enabled||(this.enabled=!0,this.showUi(),this.element.addEventListener("pointerdown",this.handlePointerDown))}disable(){this.enabled&&(this.enabled=!1,this.element.removeEventListener("pointerdown",this.handlePointerDown),this.removeTapOverlay(),this.showUi())}teardown(){this.disable()}handlePointerDown(s){if(!this.enabled||(this.onActivity?.(),this.uiHidden)||this.persistentTapped(s)||this.ctaTapped(s)||this.openModalTapped(s))return;if(this.feedScrollElement?.()?.contains(s.target)){if(this.onFeedInteraction?.(),this.feedFadeZoneTapped(s)){this.hideUi();return}if(this.interactiveFeedMessageTapped(s)||this.feedMessageGapTapped(s))return;this.hideUi();return}this.hideableTapped(s)||this.hideUi()}handleTapOverlay(s){s.preventDefault(),s.stopPropagation(),this.onActivity?.(),this.showUi()}hideUi(){if(!this.enabled||this.uiHidden)return;this.uiHidden=!0,this.clearHideTransitionTimer(),this.onHideUi?.();let s=this.hideableElements();
128s.forEach(r=>{r.classList.add(MT),r.classList.remove("hidden"),r.offsetWidth,r.classList.add(_T)}),this.hideTransitionTimer=window.setTimeout(()=>{s.forEach(r=>{r.classList.add("hidden"),r.classList.remove(_T,MT)}),this.hideTransitionTimer=null},yP),this.ensureTapOverlay()}ctaTapped(s){return!!s.target.closest(TP)}openModalTapped(s){return s.target.closest("dialog")?.open?!0:bP.some(({selector:a,hiddenClass:n})=>{let l=s.target.closest(a);return l&&!l.classList.contains(n)})}hideableTapped(s){return this.hideableElements().some(r=>r.contains(s.target))}persistentTapped(s){return this.persistentElements().some(r=>r.contains(s.target))}interactiveFeedMessageTapped(s){let r=s.target.closest(pd);return r?r.classList.contains("pointer-events-auto")&&!r.classList.contains("pointer-events-none"):!1}feedMessageGapTapped(s){return!!(this.feedMessagesElement?.()?.contains(s.target)&&!s.target.closest(pd))}feedFadeZoneTapped(s){let r=this.feedFadeBoundary();return r!==null&&s.clientY<r}feedFadeBoundary(){let s=this.feedScrollElement?.();return s?.classList.contains(fP)?s.getBoundingClientRect().top+55:null}showUi(){this.uiHidden&&(this.uiHidden=!1,this.clearHideTransitionTimer(),this.hideableElements().forEach(s=>{s.classList.remove("hidden",_T,MT)}),this.removeTapOverlay(),this.onShowUi?.())}clearHideTransitionTimer(){this.hideTransitionTimer!==null&&(window.clearTimeout(this.hideTransitionTimer),this.hideTransitionTimer=null)}ensureTapOverlay(){this.tapOverlay||(this.tapOverlay=document.createElement("div"),this.tapOverlay.className=vP,this.tapOverlay.setAttribute("aria-hidden","true"),this.tapOverlay.addEventListener("pointerdown",this.handleTapOverlay),this.element.appendChild(this.tapOverlay))}removeTapOverlay(){this.tapOverlay&&(this.tapOverlay.removeEventListener("pointerdown",this.handleTapOverlay),this.tapOverlay.remove(),this.tapOverlay=null)}};var Ca=class{constructor({minimumMinutes:s,inactivityTimeoutMs:r=6e4,leaveCountdownMs:a=15e3,onInactive:n,onLeaveCountdownTick:l,onLeaveCountdownExpired:d}){this.minimumMinutes=s,this.inactivityTimeoutMs=r,this.leaveCountdownMs=a,this.onInactive=n,this.onLeaveCountdownTick=l,this.onLeaveCountdownExpired=d,this.minimumDelayTimer=null,this.inactivityTimer=null,this.leaveCountdownTimer=null,this.leaveCountdownEndsAt=null,this.armed=!1,this.active=!1,this.prompting=!1,this.sessionStartedAt=null}start(s){if(this.active&&this.sessionStartedAt===s)return;this.stop(),this.sessionStartedAt=s,this.active=!0;let r=this.minimumDelayRemainingMs();if(r<=0){this.arm();return}this.minimumDelayTimer=window.setTimeout(()=>{this.minimumDelayTimer=null,this.active&&this.arm()},r)}stop(){this.active=!1,this.armed=!1,this.prompting=!1,this.sessionStartedAt=null,this.clearMinimumDelayTimer(),this.clearInactivityTimer(),this.clearLeaveCountdown()}recordActivity(){!this.active||this.prompting||this.armed&&this.scheduleInactivityTimer()}startLeaveCountdown(){this.active&&(this.clearLeaveCountdown(),this.leaveCountdownEndsAt=Date.now()+this.leaveCountdownMs,this.emitLeaveCountdownTick(),this.leaveCountdownTimer=window.setInterval(()=>{if(!this.active){this.clearLeaveCountdown();return}if(this.leaveCountdownRemainingMs()<=0){this.clearLeaveCountdown(),this.onLeaveCountdownExpired?.();return}this.emitLeaveCountdownTick()},1e3))}cancelLeaveCountdown(){this.clearLeaveCountdown()}minimumDelayRemainingMs(){if(!this.sessionStartedAt)return 0;let s=Date.parse(this.sessionStartedAt)+this.minimumMinutes*6e4;return Number.isNaN(s)?0:Math.max(s-Date.now(),0)}arm(){this.armed=!0,this.scheduleInactivityTimer()}scheduleInactivityTimer(){this.clearInactivityTimer(),this.inactivityTimer=window.setTimeout(()=>{this.inactivityTimer=null,!(!this.active||this.prompting)&&(this.prompting=!0,this.onInactive?.())},this.inactivityTimeoutMs)}emitLeaveCountdownTick(){let s=Math.max(Math.ceil(this.leaveCountdownRemainingMs()/1e3),0);this.onLeaveCountdownTick?.(s)}leaveCountdownRemainingMs(){return this.leaveCountdownEndsAt?this.leaveCountdownEndsAt-Date.now():0}clearMinimumDelayTimer(){this.minimumDelayTimer&&(window.clearTimeout(this.minimumDelayTimer),this.minimumDelayTimer=null)}clearInactivityTimer(){this.inactivityTimer&&(window.clearTimeout(this.inactivityTimer),this.inactivityTimer=null)}clearLeaveCountdown(){this.leaveCountdownTimer&&(window.clearInterval(this.leaveCountdownTimer),this.leaveCountdownTimer=null),this.leaveCountdownEndsAt=null}dismissPrompt(){this.prompting=!1,this.cancelLeaveCountdown(),this.recordActivity()}abortPrompt(){this.prompting=!1,this.cancelLeaveCountdown()}isLeaveCountdownActive(){return this.leaveCountdownEndsAt!==null}};var sr=class i{static TICK_INTERVAL_MS=1e3;constructor({target:s,currentSession:r}){this.currentSession=r,this.interval=null,this.target=s}sync(s){this.stop();let r=this.target();if(r){if(!s){r.textContent="";return}this.render(s),this.interval=window.setInterval(()=>{let a=this.currentSession();if(!a){this.stop(),this.clear();return}this.render(a)},i.TICK_INTERVAL_MS)}}render(s){let r=this.target();r&&(r.textContent=this.format(s))}format(s){if(s.session_type==="live_video"&&s.connection_state!=="ready")return"00:00";if(s.status==="grace"){let n=Date.parse(s.grace_ends_at);if(Number.isNaN(n))return this.formatDuration(s.seconds_remaining||0);
128let l=Math.max(Math.ceil((n-Date.now())/1e3),0);return this.formatDuration(l)}let r=Date.parse(s.started_at);if(Number.isNaN(r))return"00:00";let a=Math.max(Math.floor((Date.now()-r)/1e3),0);return this.formatDuration(a)}formatDuration(s){let r=Math.floor(s/60),a=s%60;return`${String(r).padStart(2,"0")}:${String(a).padStart(2,"0")}`}clear(){let s=this.target();s&&(s.textContent="")}stop(){this.interval&&(window.clearInterval(this.interval),this.interval=null)}};var mC=Object.freeze({PRIVATE_SHOW_MODAL_VIEWED:"Candy Cams Private Show Modal Viewed"}),BT=class{constructor({characterName:s,priceTokensPerMinute:r,minimumMinutes:a}){this.characterName=s,this.priceTokensPerMinute=r,this.minimumMinutes=a}track(s,r={}){if(typeof window.mixpanel>"u"||!window.mixpanel.track)return;let a=$t({CharacterName:this.characterName,PriceTokensPerMinute:this.priceTokensPerMinute,MinimumMinutes:this.minimumMinutes,...r});window.mixpanel.track(s,a)}},pC=BT;var EP=1e3,vd=.05;function Ea(i){if(!i)return"";try{return new URL(i,window.location.origin).href}catch{return i}}var La=class{constructor({hasVideoTarget:s,videoTargets:r,hasSoundIconTarget:a,soundIconTarget:n,hasMutedIconTarget:l,mutedIconTarget:d,hasBackgroundAudioTarget:m,backgroundAudioTarget:v,backgroundAudioVolume:E=()=>100,backgroundAudioMuted:D=null,videoAudioVolume:R=()=>100,canPlayBackgroundAudio:W=()=>!0,isConnected:Q,onPlaybackStarted:X,onVideoLoadError:ie,onPlaybackFailed:ce=()=>{},onPlaybackStalled:oe=()=>{}}){this.hasVideoTarget=s,this.videoTargets=r,this.hasSoundIconTarget=a,this.soundIconTarget=n,this.hasMutedIconTarget=l,this.mutedIconTarget=d,this.hasBackgroundAudioTarget=m,this.backgroundAudioTarget=v,this.backgroundAudioVolume=E,this.backgroundAudioMuted=D||(()=>this.hasVideoTarget()?this.activeVideo().muted:!0),this.videoAudioVolume=R,this.canPlayBackgroundAudio=W,this.isConnected=Q,this.onPlaybackStarted=X,this.onVideoLoadError=ie,this.onPlaybackFailed=ce,this.onPlaybackStalled=oe,this.activeVideoIndex=0,this.playbackStarted=!1,this.pendingTransitionUrl=null,this.pendingPlaybackAction=null,this.stallTimer=null,this.stallVideo=null,this.stallPlaybackAction=null,this.backgroundAudioUrl=null,this.backgroundAudioContext=null,this.backgroundAudioGainNode=null,this.backgroundAudioBuffer=null,this.backgroundAudioBufferPromise=null,this.backgroundAudioSource=null,this.backgroundAudioStartPending=!1,this.backgroundAudioPlayRequested=!1,this.backgroundAudioPauseRequested=!1,this.backgroundAudioStateChangeHandler=null,this.backgroundAudioLoadToken=0,this.hardRecoverInFlight=!1,this.deadPlaybackSuppressed=!1,this.lastTimeupdateAt=0}toggleAudio(){if(!this.hasVideoTarget())return null;let s=!this.activeVideo().muted;return this.videoTargets().forEach(r=>{r.muted=s}),this.updateAudioIcons(),this.activeVideo().play().catch(()=>{}),this.playBackgroundAudio(),s}prepareBackgroundAudio(s){if(!s||!this.hasBackgroundAudioTarget?.())return;let r=this.backgroundAudioTarget();r.src=s,r.loop=!0,r.preload="none",this.backgroundAudioUrl=s,this.backgroundAudioPauseRequested=!0,this.backgroundAudioPlayRequested=!1,this.backgroundAudioLoadToken+=1,this.stopBackgroundAudioSource(),this.backgroundAudioBuffer=null,this.backgroundAudioBufferPromise=null,this.ensureBackgroundAudioContext(),this.loadBackgroundAudioBuffer(s,this.backgroundAudioLoadToken),this.syncBackgroundAudio()}pauseBackgroundAudio(){this.hasBackgroundAudioTarget?.()&&(this.backgroundAudioPauseRequested=!0,this.backgroundAudioPlayRequested=!1,this.stopBackgroundAudioSource())}stopBackgroundAudio(){if(!this.hasBackgroundAudioTarget?.())return;let s=this.backgroundAudioTarget();this.backgroundAudioPauseRequested=!0,this.backgroundAudioPlayRequested=!1,this.backgroundAudioLoadToken+=1,this.stopBackgroundAudioSource(),this.closeBackgroundAudioContext(),this.backgroundAudioUrl=null,this.backgroundAudioBuffer=null,this.backgroundAudioBufferPromise=null,s.removeAttribute("src")}syncBackgroundAudio(){if(!this.hasBackgroundAudioTarget?.())return;let s=this.backgroundAudioTarget(),r=this.backgroundAudioMuted();s.muted=r,this.syncBackgroundAudioGain(r)}
128ensureBackgroundAudioPlaying(){if(this.hasBackgroundAudioTarget?.()&&this.backgroundAudioUrl){if(!this.canPlayBackgroundAudio?.()){this.backgroundAudioPauseRequested=!0,this.pauseBackgroundAudio();return}this.backgroundAudioPauseRequested=!1,this.backgroundAudioPlayRequested=!0,this.syncBackgroundAudio(),this.playBackgroundAudio()}}resumeBackgroundAudioAfterVideoChange(){this.ensureBackgroundAudioPlaying(),window.requestAnimationFrame(()=>this.ensureBackgroundAudioPlaying())}playBackgroundAudio(){if(!this.hasBackgroundAudioTarget?.()||!this.canPlayBackgroundAudio?.()||!this.backgroundAudioUrl||!this.isConnected())return;let s=!this.backgroundAudioMuted();this.backgroundAudioPauseRequested=!1,this.backgroundAudioPlayRequested=!0,this.syncBackgroundAudio();let r=this.ensureBackgroundAudioContext();r&&(this.resumeBackgroundAudioContext(r),this.startBackgroundAudioSource(s))}ensureBackgroundAudioContext(){if(this.backgroundAudioContext&&this.backgroundAudioContext.state!=="closed")return this.backgroundAudioContext;let s=window.AudioContext||window.webkitAudioContext;if(!s)return null;try{let r=new s,a=r.createGain();return a.connect(r.destination),this.backgroundAudioContext=r,this.backgroundAudioGainNode=a,this.backgroundAudioStateChangeHandler=()=>this.handleBackgroundAudioContextStateChange(),r.addEventListener?.("statechange",this.backgroundAudioStateChangeHandler),this.syncBackgroundAudio(),r}catch{return null}}loadBackgroundAudioBuffer(s,r){let a=this.ensureBackgroundAudioContext();return a?(this.backgroundAudioBufferPromise=fetch(s).then(n=>n.arrayBuffer()).then(n=>this.decodeBackgroundAudioData(a,n)).then(n=>this.backgroundAudioLoadToken!==r||this.backgroundAudioUrl!==s?null:(this.backgroundAudioBuffer=n,this.backgroundAudioPlayRequested&&!this.backgroundAudioPauseRequested&&this.startBackgroundAudioSource(),n)).catch(()=>{this.backgroundAudioLoadToken===r&&(this.backgroundAudioBufferPromise=null)}),this.backgroundAudioBufferPromise):null}decodeBackgroundAudioData(s,r){return new Promise((a,n)=>{let l=s.decodeAudioData(r.slice(0),a,n);l&&typeof l.then=="function"&&l.then(a).catch(n)})}
128resumeBackgroundAudioContext(s){if(!s||s.state==="running"||typeof s.resume!="function")return;let r=s.resume();!r||typeof r.catch!="function"||r.catch(a=>{a&&a.name==="NotAllowedError"&&this.handleAutoplayBlocked()})}handleBackgroundAudioContextStateChange(){let s=this.backgroundAudioContext;!s||!this.backgroundAudioPlayRequested||this.backgroundAudioPauseRequested||!this.canPlayBackgroundAudio?.()||!this.isConnected()||(s.state==="running"?this.startBackgroundAudioSource():(s.state==="suspended"||s.state==="interrupted")&&this.resumeBackgroundAudioContext(s))}startBackgroundAudioSource(s=null){if(this.backgroundAudioSource||this.backgroundAudioStartPending||!this.backgroundAudioPlayRequested||this.backgroundAudioPauseRequested||!this.canPlayBackgroundAudio?.()||!this.isConnected())return;let r=this.ensureBackgroundAudioContext();if(!r||!this.backgroundAudioGainNode)return;!this.backgroundAudioBuffer&&!this.backgroundAudioBufferPromise&&this.backgroundAudioUrl&&this.loadBackgroundAudioBuffer(this.backgroundAudioUrl,this.backgroundAudioLoadToken);let a=this.backgroundAudioBuffer?Promise.resolve(this.backgroundAudioBuffer):this.backgroundAudioBufferPromise;a&&(this.backgroundAudioStartPending=!0,a.then(n=>{if(!n||this.backgroundAudioSource||this.backgroundAudioPauseRequested||!this.backgroundAudioPlayRequested||!this.canPlayBackgroundAudio?.()||!this.isConnected())return;let l=r.createBufferSource();l.buffer=n,l.loop=!0,l.loopStart=this.backgroundAudioLoopStart(n),l.loopEnd=this.backgroundAudioLoopEnd(n),l.connect(this.backgroundAudioGainNode),l.addEventListener?.("ended",()=>{this.backgroundAudioSource===l&&(this.backgroundAudioSource=null)}),this.backgroundAudioSource=l,s!==null&&this.syncBackgroundAudioGain(!s),l.start(0)}).finally(()=>{this.backgroundAudioStartPending=!1}))}stopBackgroundAudioSource(){let s=this.backgroundAudioSource;if(this.backgroundAudioSource=null,this.backgroundAudioStartPending=!1,!!s)try{s.stop(0)}catch{return}}closeBackgroundAudioContext(){let s=this.backgroundAudioContext;s&&(this.backgroundAudioStateChangeHandler&&s.removeEventListener?.("statechange",this.backgroundAudioStateChangeHandler),this.backgroundAudioContext=null,this.backgroundAudioGainNode=null,this.backgroundAudioStateChangeHandler=null,s.state!=="closed"&&s.close?.())}syncBackgroundAudioGain(s){let r=this.backgroundAudioContext,a=this.backgroundAudioGainNode;if(!r||!a||r.state==="closed")return;let n=this.normalizedVolume(this.backgroundAudioVolume()),l=s?0:n,d=r.currentTime;a.gain.cancelScheduledValues(d),a.gain.setTargetAtTime(l,d,.015)}syncVideoVolume(){if(!this.hasVideoTarget())return;let s=this.normalizedVolume(this.videoAudioVolume());this.videoTargets().forEach(r=>{r.volume=s})}normalizedVolume(s){let r=Number(s);return Number.isFinite(r)?Math.min(1,Math.max(0,r/100)):1}backgroundAudioLoopStart(s){return s.duration<=vd*2?0:vd}backgroundAudioLoopEnd(s){return s.duration<=vd*2?s.duration:s.duration-vd}handleAutoplayBlocked(){if(!this.isConnected()||!this.hasVideoTarget())return;let s=this.activeVideo();s&&!s.muted&&!s.paused&&!s.ended||(this.videoTargets().forEach(r=>{r.muted=!0}),this.updateAudioIcons())}handleVideoError(s){this.inactiveVideoEvent(s)||this.onVideoLoadError(s?.currentTarget||this.activeVideo())}inactiveVideoEvent(s){return s?.currentTarget&&this.hasVideoTarget()&&s.currentTarget!==this.activeVideo()}activeVideo(){return this.videoTargets()[this.activeVideoIndex]}inactiveVideo(){return this.videoTargets()[this.inactiveVideoIndex()]}inactiveVideoIndex(){return this.activeVideoIndex===0?1:0}videoHasUrl(s,r){if(!s||!r)return!1;let a=Ea(r);return Ea(s.src)===a||Ea(s.currentSrc)===a}inactiveHoldsOtherUrl(s){let r=this.inactiveVideo();if(!r||!s)return!1;let a=r.getAttribute?.("src")||r.currentSrc;return a?Ea(a)!==Ea(s):!1}prepareInactiveVideo(s,{waitForPlayable:r=!1}={}){let a=this.inactiveVideo(),n=r?2:1,l=this.videoHasUrl(a,s);return l&&a.readyState>=n||(l?(a.currentTime=0,a.load()):(a.src=s,a.currentTime=0,a.load()),r?this.whenVideoPlayable(a,15e3).catch(()=>{}):this.whenVideoReady(a).catch(()=>{})),a}playVideoUrl(s,r=null){if(!s||!this.hasVideoTarget())return!1;let a=this.activeVideo();if(this.stopPlaybackWatch(),this.suppressDeadPlayback(),this.videoHasUrl(a,s))return a.currentTime=0,this.playCurrentVideo(a).then(m=>{if(!this.isConnected()||a!==this.activeVideo()){this.resumeDeadPlayback();return}if(!m){this.hardRecoverUrl(s,r);return}this.resumeDeadPlayback(),this.startPlaybackWatch(a,r),this.onPlaybackStarted(r)}),!0;if(this.pendingTransitionUrl===s){let m=this.inactiveVideo();if(m===a||!this.videoHasUrl(m,s))this.clearPendingTransition();else return this.pendingPlaybackAction=r,m.readyState>=this.preparedReadyStateThreshold(r)&&this.completePreparedTransition(m,a,s),!0}if(!r&&this.inactiveHoldsOtherUrl(s))return a.src=s,a.currentTime=0,a.load(),this.whenVideoPlayable(a,15e3).then(()=>this.playCurrentVideo(a)).then(m=>{if(!this.isConnected()||a!==this.activeVideo()){this.resumeDeadPlayback();return}if(!m){this.hardRecoverUrl(s,r);return}return this.waitForRenderedVideoFrame(a).then(()=>
128{if(!this.isConnected()||a!==this.activeVideo()){this.resumeDeadPlayback();return}this.resumeDeadPlayback(),this.startPlaybackWatch(a,r),this.onPlaybackStarted(r)})}).catch(m=>{if(!this.isConnected()||a!==this.activeVideo()){this.resumeDeadPlayback();return}this.resumeDeadPlayback(),this.handleTransitionFailure(a,m,r)}),!0;this.pendingTransitionUrl=s,this.pendingPlaybackAction=r;let n=this.inactiveVideo(),l=this.videoHasUrl(n,s)&&n.readyState>=this.preparedReadyStateThreshold(r);return this.videoHasUrl(n,s)?n.readyState<1&&!this.videoIsLoading(n)?(n.currentTime=0,n.load()):(n.readyState>=2,n.currentTime!==0&&(n.currentTime=0)):(n.src=s,n.currentTime=0,n.load()),(l&&n.readyState>=2?Promise.resolve():l?this.whenVideoReady(n):this.whenVideoPlayable(n,15e3)).then(()=>this.completePreparedTransition(n,a,s)).catch(m=>{if(this.pendingTransitionUrl===s){let v=this.pendingPlaybackAction;this.clearPendingTransition(),this.resumeDeadPlayback(),this.handleTransitionFailure(n,m,v)}}),!0}completePreparedTransition(s,r,a){let n=()=>this.pendingTransitionUrl===a&&s!==this.activeVideo();this.playCurrentVideo(s).then(l=>{if(!this.isConnected()||!n()){this.resumeDeadPlayback();return}if(!l){this.hardRecoverUrl(a,this.pendingPlaybackAction);return}this.waitForRenderedVideoFrame(s).then(()=>{if(!this.isConnected()||!n()){this.resumeDeadPlayback();return}this.finishTransition(s,r)})}).catch(l=>{if(this.pendingTransitionUrl===a){let d=this.pendingPlaybackAction;this.clearPendingTransition(),this.resumeDeadPlayback(),this.handleTransitionFailure(s,l,d)}})}finishTransition(s,r){let a=this.pendingPlaybackAction;this.switchToVideo(s,r),this.resumeDeadPlayback(),this.startPlaybackWatch(s,a),this.onPlaybackStarted(a),this.resumeBackgroun
128dAudioAfterVideoChange()}clearPendingTransition(){this.pendingTransitionUrl=null,this.pendingPlaybackAction=null}forceVideoUrl(s){if(!s||!this.hasVideoTarget())return;this.stopPlaybackWatch(),this.suppressDeadPlayback(),this.activeVideoIndex=0,this.syncVideoVolume();let r=this.videoTargets()[0],a=this.videoTargets()[1];r.src=s,r.currentTime=0,r.load(),r.classList.remove("opacity-0"),r.classList.add("opacity-100"),a&&(a.pause(),a.removeAttribute("src"),a.load(),a.classList.remove("opacity-100"),a.classList.add("opacity-0")),this.playCurrentVideo(r).then(n=>{n?(this.resumeDeadPlayback(),this.startPlaybackWatch(r,null)):this.hardRecoverUrl(s)})}switchToVideo(s,r){this.clearPendingTransition(),this.activeVideoIndex=this.inactiveVideoIndex(),this.reconcileVideoVisibility(),r!==this.activeVideo()&&r.pause(),this.updateAudioIcons()}reconcileVideoVisibility(){this.hasVideoTarget()&&this.videoTargets().forEach((s,r)=>{let a=r===this.activeVideoIndex;s.classList.toggle("opacity-100",a),s.classList.toggle("opacity-0",!a)})}hardRecoverUrl(s,r=null,{attempt:a=0}={}){if(!s||!this.hasVideoTarget()||this.hardRecoverInFlight&&a===0)return!1;this.hardRecoverInFlight=!0,this.suppressDeadPlayback(),this.stopPlaybackWatch(),this.clearPendingTransition(),this.reconcileVideoVisibility();let n=this.activeVideo(),l=this.inactiveVideo(),d=this.inactiveHoldsOtherUrl(s),m=d?n:l;return m.src=s,m.currentTime=0,m.load(),this.whenVideoPlayable(m,15e3).then(()=>this.playCurrentVideo(m)).then(v=>{if(!this.isConnected()){this.hardRecoverInFlight=!1;return}if(v)return this.waitForRenderedVideoFrame(m).then(()=>{if(!this.isConnected()){this.hardRecoverInFlight=!1;return}this.hardRecoverInFlight=!1,d||this.switchToVideo(m,n),this.resumeDeadPlayback(),this.startPlaybackWatch(m,r),this.onPlaybackStarted(r)});if(this.hardRecoverInFlight=!1,a+1<2){this.hardRecoverUrl(s,r,{attempt:a+1});return}this.resumeDeadPlayback(),this.reconcileVideoVisibility(),this.onPlaybackFailed(m,new Error("video-hard-recover-failed"),r)}).catch(v=>{if(this.hardRecoverInFlight=!1,!!this.isConnected()){if(a+1<2){this.hardRecoverUrl(s,r,{attempt:a+1});return}this.resumeDeadPlayback(),this.reconcileVideoVisibility(),this.onPlaybackFailed(m,v||new Error("video-hard-recover-failed"),r)}}),!0}suppressDeadPlayback(){this.deadPlaybackSuppressed=!0,this.noteTimeupdate()}resumeDeadPlayback(){this.deadPlaybackSuppressed=!1,this.noteTimeupdate()}noteTimeupdate(){this.lastTimeupdateAt=Date.now()}isPlaybackDead(s=this.activeVideo()){return!s||s.ended||s.paused||document.hidden||!this.lastTimeupdateAt||this.deadPlaybackSuppressed||this.hardRecoverInFlight||this.pendingTransitionUrl||this.stallTimer||s.networkState===2?!1:Date.now()-this.lastTimeupdateAt>=12e3}updateAudioIcons(){this.hasVideoTarget()&&(this.hasSoundIconTarget()&&this.soundIconTarget().classList.toggle("hidden",this.activeVideo().muted),this.hasMutedIconTarget()&&this.mutedIconTarget().classList.toggle("hidden",!this.activeVideo().muted),this.syncBackgroundAudio())}waitForRenderedVideoFrame(s){return"requestVideoFrameCallback"in s?new Promise(r=>{let a=window.setTimeout(r,EP);s.requestVideoFrameCallback(()=>{window.clearTimeout(a),r()})}):new Promise(r=>{window.requestAnimationFrame(()=>r())})}whenVideoReady(s){return s.readyState>=1?Promise.resolve():new Promise((r,a)=>{let n=()=>{s.removeEventListener("loadedmetadata",l),s.removeEventListener("loadeddata",l),s.removeEventListener("canplay",l),s.removeEventListener("error",d)},l=()=>{n(),r()},d=()=>{n(),a(new Error("video-load-error"))};s.addEventListener("loadedmetadata",l,{once:!0}),s.addEventListener("loadeddata",l,{once:!0}),s.addEventListener("canplay",l,{once:!0}),s.addEventListener("error",d,{once:!0})})}whenVideoPlayable(s,r){return s.readyState>=2?Promise.resolve():new Promise((a,n)=>{let l=!1,d=window.setTimeout(()=>{s.readyState>=2?v():E(new Error("video-playable-timeout"))},r),m=()=>{s.removeEventListener("loadeddata",D),s.removeEventListener("canplay",D),s.removeEventListener("error",R),window.clearTimeout(d)},v=()=>{l||(l=!0,m(),a())},E=W=>{l||(l=!0,m(),n(W))},D=()=>v(),R=()=>E(new Error("video-load-error"));s.addEventListener("loadeddata",D,{once:!0}),s.addEventListener("canplay",D,{once:!0}),s.addEventListener("error",R,{once:!0})})}videoIsLoading(s){return s.networkState===2}preparedReadyStateThreshold(s){return s?.playbackStartAttempts>0?2:s?1:2}playCurrentVideo(s){return this.hasVideoTarget()?(this.syncVideoVolume(),s.muted=this.activeVideo().muted,s.loop=!1,this.updateAudioIcons(),this.playWithT
128imeout(s).then(()=>(this.playbackStarted=!0,this.noteTimeupdate(),this.resumeBackgroundAudioAfterVideoChange(),!0)).catch(()=>!this.isConnected()||!this.hasVideoTarget()?!1:(s.muted=!0,this.updateAudioIcons(),this.playWithTimeout(s).then(()=>(this.playbackStarted=!0,this.noteTimeupdate(),this.resumeBackgroundAudioAfterVideoChange(),!0)).catch(()=>!1)))):Promise.resolve(!1)}playWithTimeout(s){return new Promise((r,a)=>{let n=!1,l=window.setTimeout(()=>{s.pause(),v(new Error("video-play-timeout"))},8e3),d=()=>window.clearTimeout(l),m=()=>{n||(n=!0,d(),r())},v=E=>{n||(n=!0,d(),a(E))};s.play().then(m).catch(v)})}retryPlay(s,r=null,a=()=>!0,n=null){window.setTimeout(()=>{!this.isConnected()||!a()||this.playCurrentVideo(s).then(l=>{l&&r?r():!l&&n&&n()})},100)}stop(){this.hasVideoTarget()&&(this.videoTargets().forEach(s=>{s.pause()}),this.playbackStarted=!1,this.hardRecoverInFlight=!1,this.deadPlaybackSuppressed=!1,this.lastTimeupdateAt=0,this.clearPendingTransition(),this.stopPlaybackWatch(),this.pauseBackgroundAudio())}stopOtherVideos(){document.querySelectorAll("[data-cams--show-target='video']").forEach(s=>{this.videoTargets().includes(s)||s.pause()})}handleTransitionFailure(s,r,a){s.pause(),this.reconcileVideoVisibility(),a?this.onPlaybackFailed(s,r,a):this.onVideoLoadError(s,r)}startPlaybackWatch(s,r){this.stopPlaybackWatch(),this.stallVideo=s,this.stallPlaybackAction=r,this.handlePlaybackWaiting=()=>this.scheduleStallRecovery(),this.handlePlaybackRecovered=()=>{this.noteTimeupdate(),this.clearStallRecovery()},s.addEventListener("waiting",this.handlePlaybackWaiting),s.addEventListener("stalled",this.handlePlaybackWaiting),s.addEventListener("playing",this.handlePlaybackRecovered),s.addEventListener("timeupdate",this.handlePlaybackRecovered),s.addEventListener("ended",this.handlePlaybackRecovered)}stopPlaybackWatch(){this.clearStallRecovery(),this.stallVideo&&(this.stallVideo.removeEventListener("waiting",this.handlePlaybackWaiting),this.stallVideo.removeEventListener("stalled",this.handlePlaybackWaiting),this.stallVideo.removeEventListener("playing",this.handlePlaybackRecovered),this.stallVideo.removeEventListener("timeupdate",this.handlePlaybackRecovered),this.stallVideo.removeEventListener("ended",this.handlePlaybackRecovered)),this.stallVideo=null,this.stallPlaybackAction=null,this.handlePlaybackWaiting=null,this.handlePlaybackRecovered=null}scheduleStallRecovery(){this.stallTimer||(this.stallTimer=window.setTimeout(()=>{if(this.stallTimer=null,this.stallVideo===this.activeVideo()){let s=this.stallVideo,r=this.stallPlaybackAction;this.stopPlaybackWatch(),this.onPlaybackStalled(s,r)}},1e4))}clearStallRecovery(){this.stallTimer&&(window.clearTimeout(this.stallTimer),this.stallTimer=null)}};var bC=2e3,kP=1e4,xP=3e3,IP=2e3,AP=650,PP="start_private_button",yC="private_action_click",OT="cams-private-session-hidden",FT="cams-modal-hidden",DT="cams-tip-hidden",VP="button:not([disabled]), [href], input:not([disabled]), [tabindex]:not([tabindex='-1'])",MP=200,_P=4e3,BP=380,OP=8e3,SC="cams-ui-hint-seen",wC=1,Td=class extends u{static targets=["endingLoading","endingLoadingRecording","fakeFeedMessages","fakeFeedScroll","fakeFeedWrapper","feedbackForm","feedbackModal","feedbackModalContainer","feedbackStar","feedbackSubmitButton","feedbackSuccess","feedbackText","inactivityLeaveButton","inactivityModal","loading","liveVideoInterruptionMessage","liveVideoInterruptionNotice","messageInput","messageSendButton","mutedIcon","privateFeedMessages","privateLoading","privateSessionActions","privateSessionActionsShowMore","privateSessionConfirmation","privateSessionCloseButton","privateSessionOptionButton","privateSessionScroll","privateSessionVoiceAvailableCta","privateSessionVoiceButton","privateSessionVoiceCapacityCta","privateSessionVoiceCard","privateSessionVoiceMinimum","privateSessionVoiceNewBadge","privateSessionVoiceUnavailableBadge","privateSessionEndConfirmation","privateSessionGraceBanner","privateSessionGraceTimer","privateSessionUi","privateSessionStatus","publicSessionUi","privateSessionTimer","publicStatus","bottomBar","backgroundAudio","soundIcon","startPrivateButton","startPrivateButtonLabel","startPrivateNewBadge","startPrivateButtonWrapper","bottomActionsPanel","tipButton","tipButtonActions","tipButtonLabel","tipButtonRow","tipDialog","tipAction","tipActionButton","transitionVeil","ui","uiHint","video"];static values={characterName:String,backgroundAudioUrl:String,backgroundAudioVolume:{type:Number,default:100},videoAudioVolume:{type:Number,default:100},fakeFeedMessages:Array,idleVideoPublicUrls:Array,idleVideoPrivateUrls:Array,initialPrivateSession:Object,liveVideo:Boolean,feedbackModalUrl:String,feedbackModalViewUrl:String,feedbackSubmitUrl:String,markPlaybackStartedUrlTemplate:String,minimumMinutes:Number,preloadImages:Array,priceTokensPerMinute:Number,privateSessionEndUrlTemplate:String,privateSessionPollInterval:{type:Number,default:5e3},privateSessionUrl:String,publicChatUrl:String,showSlug:String};connect(){this.actionVideoQueue=new ma({preloadVideo:i=>this.preloadActionVideo(i),onActionReady:i=>this.handleQueuedActionReady(i),onActionFailed:(i,s)=>this.handleQueuedActionFailed(i,s)}),this.bodyStatePolicy=new pa,this.idleVideoRotation=new Sa,this.idleVideoRotation.setPublicUrls(this.idleVideoPublicUrlsValue),this.hasIdleVideoPrivateUrlsValue&&this.idleVideoRotation.setPrivateUrls(this.idleVideoPrivateUrlsValue),this.connected=!0,this.veilEarlyPulsed=!1,this.currentAction=null,this.currentPlaybackType="idle",this.activePrivateSessionId=null,this.activePrivateSessionType=null,this.pendingPrivateSessionStartedAt=null,this.endingPrivateSessionType=null,this.lastPrivateSessionStatus=null,this.hydratedQueuedActionSessionId=null,this.privateIdlePreloadVideo=null,this.preloadedPrivateIdleVideoUrl=null,this.nextIdlePreloadVideo=null,this.nextIdlePreloadListener=null,this.reportedPlaybackActionRequestIds=new Set,this.confirmedPlaybackActionRequestIds=new Set,this.actionEndQueueAdvanced=!1,this.suppressQueuedActionFailedAdvance=!1,this.idleAwaitingQueuedAction=!1,this.actionRequestPending=!1,this.liveVideoActionBusy=!1,this.liveVideoActionTracking=null,this.liveVideoActionTrackings=new Map,this.pendingLiveVideoBodyState=null,this.liveVideoMuted=!1,this.activeTipActionConfirmationButton=null,this.feedLayout=new fa({scrollTarget:()=>this.hasFakeFeedScrollTarget?this.fakeFeedScrollTarget:null,messagesTarget:()=>this.activeFeedMessagesTarget(),isVisible:()=>this.feedLayoutVisible()}),this.fakeFeedRenderer=new va({messagesTarget:()=>this.activeFeedMessagesTarget(),scrollTarget:()=>this.hasFakeFeedScrollTarget?this.fakeFeedScrollTarget:null,isConnected:()=>this.connected,onTipMessage:i=>this.enqueueAction(i),onLayoutSync:()=>this.syncFeedLayout()}
128),this.fakeFeedScheduler=new Ta({messages:this.fakeFeedMessagesValue,onMessage:i=>this.appendFakeFeedMessage(i)}),this.videoPlaybackManager=new La({hasVideoTarget:()=>this.hasVideoTarget,videoTargets:()=>this.videoTargets,hasSoundIconTarget:()=>this.hasSoundIconTarget,soundIconTarget:()=>this.soundIconTarget,hasMutedIconTarget:()=>this.hasMutedIconTarget,mutedIconTarget:()=>this.mutedIconTarget,hasBackgroundAudioTarget:()=>this.hasBackgroundAudioTarget,backgroundAudioTarget:()=>this.backgroundAudioTarget,backgroundAudioVolume:()=>this.backgroundAudioVolumeValue,backgroundAudioMuted:()=>this.liveVideoPrivateSessionActive()?this.liveVideoMuted:this.activeVideo().muted,videoAudioVolume:()=>this.videoAudioVolumeValue,canPlayBackgroundAudio:()=>this.canPlayBackgroundAudio(),isConnected:()=>this.connected,onPlaybackStarted:i=>this.handlePlaybackStarted(i),onVideoLoadError:(i,s)=>this.processVideoLoadError(i,s),onPlaybackFailed:(i,s,r)=>this.handlePlaybackFailed(i,s,r),onPlaybackStalled:(i,s)=>this.handlePlaybackStalled(i,s)}),this.iconsReady=!1,this.privateLoadingHideTimer=null,this.privateLoadingStartedAt=null,this.privateLoadingVisible=!1,this.privateSessionFeedbackRenderedHtml=new Set,this.privateSessionClient=new ba({url:this.hasPrivateSessionUrlValue?this.privateSessionUrlValue:null,endUrlTemplate:this.hasPrivateSessionEndUrlTemplateValue?this.privateSessionEndUrlTemplateValue:null,initialSession:this.hasInitialPrivateSessionValue?this.initialPrivateSessionValue:null,pollInterval:this.privateSessionPollIntervalValue,onChange:(i,s)=>this.applyPrivateSession(i,s),onFailure:i=>this.handlePrivateSessionFailure(i),onError:(i,s)=>Ge(i,{controller:this.identifier,action:s})}),this.privateSessionTimer=new sr({target:()=>this.hasPrivateSessionTimerTarget?this.privateSessionTimerTarget:null,currentSession:()=>this.privateSessionClient.current}),this.privateSessionGraceTimer=new sr({target:()=>this.hasPrivateSessionGraceTimerTarget?this.privateSessionGraceTimerTarget:null,currentSession:()=>this.privateSessionClient.current}),this.immersiveUi=new wa({element:this.element,hideableElements:()=>this.immersiveUiHideableElements(),persistentElements:()=>this.immersiveUiPersistentElements(),feedScrollElement:()=>this.hasFakeFeedScrollTarget?this.fakeFeedScrollTarget:null,feedMessagesElement:()=>this.activeFeedMessagesTarget(),onFeedInteraction:()=>this.updateFeedMessageInteractivity(),onHideUi:()=>{this.collapseImmersiveTipButton(),this.hideUiHint()},onActivity:()=>this.recordPrivateSessionActivity(),onShowUi:()=>{this.expandImmersiveTipButton(),this.flushFeedLayout()},isEnabled:()=>this.immersiveUiEnabled()}),this.immersiveTipCollapsed=!1,this.feedLayoutDirty=!1,this.uiHintTimer=null,this.liveVideoInterruptionTimer=null,this.inactivityMonitor=new Ca({minimumMinutes:this.minimumMinutesValue,onInactive:()=>this.showInactivityModal(),onLeaveCountdownTick:i=>this.updateInactivityLeaveCountdown(i),onLeaveCountdownExpired:()=>this.endPrivateSessionForInactivity()}),this.privateFeedObserver=new MutationObserver(()=>this.handlePrivateFeedMessagesMutation()),this.videoReady=!1,this.initialUiRevealed=!1,this.initialLoadingMinimumElapsed=!1,this.initialLoadingMinimumTimer=window.setTimeout(()=>{this.initialLoadingMinimumElapsed=!0,this.revealUiWhenReady()},IP),this.exitInProgress=!1,this.feedbackRating=null,this.feedbackNavigationUrl=null,this.feedbackSubmitted=!1,this.endingLoadingPromise=null,this.pendingPrivateSessionFeedbackHtml=null,this.privateSessionStartContext=null,this.voiceAtCapacity=!1,this.privateSessionMessaging=new ya({currentPrivateSessionId:()=>this.currentPrivateSessionId(),hasMessageInput:()=>this.hasMessageInputTarget,messageInput:()=>this.messageInputTarget,hasMessageSendButton:()=>this.hasMessageSendButtonTarget,messageSendButton:()=>this.messageSendButtonTarget,hasPrivateFeedMessages:()=>this.hasPrivateFeedMessagesTarget,privateFeedMessages:()=>this.privateFeedMessagesTarget,isConnected:()=>this.connected,onScrollToBottom:()=>this.scrollFakeFeedToBottom(),onActivity:()=>this.recordPrivateSessionActivity(),onError:(i,s)=>Ge(i,{controller:this.identifier,action:s})}),this.tracker=new pC({characterName:this.characterNameValue,priceTokensPerMinute:this.priceTokensPerMinuteValue,minimumMinutes:this.minimumMinutesValue}),this.handleBeforeCache=()=>
128{this.stopVideo(),this.videoPlaybackManager.stopBackgroundAudio()},document.addEventListener("turbo:before-cache",this.handleBeforeCache),this.privateSessionMessaging.connect(),this.preloadIcons(),this.privateSessionClient.current?(this.showPrivateLoading(),this.applyPrivateSession(this.privateSessionClient.current)):this.updateTipActionsVisibility(),this.privateSessionClient.connect(),this.observePrivateFeedMessages(),this.observeFakeFeedScroll(),this.observeBottomBarResize(),this.observeViewportResize(),this.hasVideoTarget&&(this.stopOtherVideos(),this.videoPlaybackManager.syncVideoVolume()),this.hasVideoTarget&&this.activeVideo().readyState>=1&&this.hideLoading(),this.hasBackgroundAudioUrlValue&&this.backgroundAudioUrlValue&&this.videoPlaybackManager.prepareBackgroundAudio(this.backgroundAudioUrlValue),this.updateMessageSendButton(),this.#r(),this.startDeadPlaybackMonitor()}disconnect(){this.connected=!1,this.stopDeadPlaybackMonitor(),document.removeEventListener("turbo:before-cache",this.handleBeforeCache),this.privateSessionMessaging.disconnect(),this.stopFakeFeed(),this.actionVideoQueue.clear(),this.privateSessionClient.disconnect(),this.immersiveUi.teardown(),this.unobserveFakeFeedScroll(),this.unobserveBottomBarResize(),this.unobserveViewportResize(),this.clearImmersiveExpandTimer(),window.clearTimeout(this.uiHintTimer),window.clearTimeout(this.liveVideoInterruptionTimer),this.privateFeedObserver.disconnect(),this.privateSessionTimer.stop(),this.clearPrivateLoadingHideTimer(),this.clearPrivateIdlePreload(),this.clearNextIdlePreloadListener(),this.clearInitialLoadingMinimumTimer(),this.privateSessionGraceTimer.stop(),this.inactivityMonitor.stop(),this.closeInactivityModal({ignoreCloseHandler:!0}),this.stopVideo(),this.videoPlaybackManager.stopBackgroundAudio()}toggleAudio(){if(this.liveVideoPrivateSessionActive()){this.liveVideoMuted=!this.liveVideoMuted,this.updateLiveVideoAudioIcons(),this.videoPlaybackManager.syncBackgroundAudio(),this.dispatch("audioToggled",{detail:{muted:this.liveVideoMuted}});return}let i=this.videoPlaybackManager.toggleAudio();i!==null&&this.dispatch("audioToggled",{detail:{muted:i}})}preventSubmit(i){i.preventDefault()}updateMessageSendButton(){this.privateSessionMessaging.updateMessageSendButton()}async submitMessage(i){return this.privateSessionMessaging.submitMessage(i)}openPrivateSessionConfirmation(i){if(i.preventDefault(),this.currentPrivateSessionId()||this.privateSessionClient.requestPending||!this.hasPrivateSessionUrlValue||!this.hasPrivateSessionConfirmationTarget||this.privateSessionConfirmationIsOpen())return;let s=this.privateSessionStartContextFrom(i);this.privateSessionTrigger=i.currentTarget,this.privateSessionStartContext=s,this.trackPrivateShowModalViewed(s),this.#e()}#e(){this.hasPrivateSessionScrollTarget&&this.privateSessionScrollTarget.scrollTo({top:0}),this.privateSessionConfirmationTarget.classList.remove(OT),this.privateSessionConfirmationTarget.inert=!1,this.privateSessionConfirmationTarget.setAttribute("aria-hidden","false"),this.hasPrivateSessionCloseButtonTarget&&this.privateSessionCloseButtonTarget.focus({preventScroll:!0})}closePrivateSessionConfirmation({restoreFocus:i=!0}={}){this.hasPrivateSessionConfirmationTarget&&(this.privateSessionConfirmationTarget.classList.add(OT),this.privateSessionConfirmationTarget.inert=!0,this.privateSessionConfirmationTarget.setAttribute("aria-hidden","true")),i&&this.privateSessionTrigger?.isConnected&&this.privateSessionTrigger.focus({preventScroll:!0}),this.privateSessionTrigger=null}handlePrivateSessionDialogKeydown(i){if(!this.privateSessionConfirmationIsOpen())return;if(i.key==="Escape"){i.preventDefault(),this.closePrivateSessionConfirmation();return}if(i.key!=="Tab")return;let s=Array.from(this.privateSessionConfirmationTarget.querySelectorAll(VP)).filter(n=>n.tabIndex>=0&&!n.closest(".hidden")),r=s[0],a=s.at(-1);i.shiftKey&&document.activeElement===r?(i.preventDefault(),a?.focus()):!i.shiftKey&&document.activeElement===a&&(i.preventDefault(),r?.focus())}privateSessionConfirmationIsOpen(){return this.hasPrivateSessionConfirmationTarget&&!this.privateSessionConfirmationTarget.classList.contains(OT)}privateSessionStartContextFrom(i){let s=i?.currentTarget;return s?.dataset?.camsPrivateOnly==="true"?{trigger:yC,actionId:s.dataset.camsActionId,actionName:s.dataset.camsActionTrackingName}:{trigger:PP}}trackPrivateShowModalViewed(i){let s={Trigger:i.trigger};i.trigger===yC&&i.actionName&&(s.ActionName=i.actionName),this.tracker.track(mC.PRIVATE_SHOW_MODAL_VIEWED,s)}expandPrivateSessionActions(i){i.preventDefault(),this.hasPrivateSessionActionsTarget&&(this.privateSessionActionsTarget.textContent=this.privateSessionActionsTarget.dataset.camsFullText),this.hasPrivateSessionActionsShowMoreTarget&&this.privateSessionActionsShowMoreTarget.classList.add("hidden")}
128confirmPrivateSessionEnd(i){if(!this.currentPrivateSessionId())return this.handlePublicSessionExit(i);if(i.preventDefault(),!this.hasPrivateSessionEndConfirmationTarget)return this.endPrivateSession(i);this.camsModalIsOpen(this.privateSessionEndConfirmationTarget)||this.openCamsModal(this.privateSessionEndConfirmationTarget)}closePrivateSessionEndConfirmation(){this.hasPrivateSessionEndConfirmationTarget&&this.closeCamsModal(this.privateSessionEndConfirmationTarget)}camsModalIsOpen(i){return!!(i&&!i.classList.contains(FT))}openCamsModal(i){i?.classList.remove(FT,"invisible")}closeCamsModal(i){i?.classList.add(FT,"invisible")}async requestAction(i){i.preventDefault(),i.stopPropagation?.();let s=i.currentTarget,r=s.closest("[data-cams--show-target~='tipAction']");if(!(this.actionRequestPending||this.liveVideoActionBusy||s.disabled)&&!(this.liveVideoPrivateSessionActive()&&r?.dataset.camsTipLiveVideoSupported==="false")){if(s.dataset.camsPrivateOnly==="true"&&!this.currentPrivateSessionId()){this.resetTipActionConfirmation(),this.closeTipDialog(s),this.openPrivateSessionConfirmation(i);return}if(this.tipActionRequiresConfirmation(s)&&s.dataset.camsActionConfirming!=="true"){this.confirmTipAction(s);return}this.actionRequestPending=!0,s.disabled=!0;try{if(this.activePrivateSessionType==="live_video"){if(!this.requestLiveVideoAction(s)){this.resetTipActionConfirmation();return}let D=this.liveVideoActionTracking;D.persistencePromise=this.persistLiveVideoAction(s,D),await D.persistencePromise,await this.animateTipActionConfirmationSuccess(s),this.recordPrivateSessionActivity(),this.resetTipActionConfirmation(),this.closeTipDialog(s);return}let a={action_id:s.dataset.camsActionId};this.currentPrivateSessionId()&&(a.private_session_id=this.currentPrivateSessionId());let n=await H(s.dataset.camsActionRequestUrl,{body:a,contentType:"application/json",responseKind:"json"});if(!n.ok){await this.handleActionRequestFailure(n,s);return}let l=await n.json,d={...l.feed_message,action_request_id:l.action_request?.id},m=l.queued_feed_messages||[d];this.appendFakeFeedMessage(d,{enqueue:!1});let v=this.animateTipActionConfirmationSuccess(s);m.forEach(E=>{this.applyPendingActionBodyState(E,{preserveElement:r}),this.enqueueAction(E)}),await v,this.currentPrivateSessionId()&&this.recordPrivateSessionActivity(),this.updateTipActionsVisibility(),this.resetTipActionConfirmation(),this.closeTipDialog(s)}catch(a){this.resetTipActionConfirmation(),a.name!=="AbortError"&&Ge(a,{controller:this.identifier,actionId:s.dataset.camsActionId})}finally{this.actionRequestPending=!1,s.disabled=this.liveVideoActionBusy}}}requestLiveVideoAction(i){let r=i.closest("[data-cams--show-target~='tipAction']")?.dataset.camsTipLiveVideoActionName||i.dataset.camsActionTrackingName||i.dataset.camsActionName,a={actionName:r,sent:!1};return this.dispatch("liveVideoActionRequested",{detail:a}),a.sent&&(this.liveVideoActionTracking={actionName:r,actionRequestId:null,button:i,persistencePromise:null,started:!1,targetBodyState:this.#t(i),toolCallId:null},this.pendingLiveVideoBodyState=this.liveVideoActionTracking.targetBodyState),a.sent}#t(i){if(this.bodyStatePolicy.effectiveBodyState()==="nude")return null;let s=i.closest("[data-cams--show-target~='tipAction']"),r=s?.dataset.camsTipHasClothedVariant==="true",a=s?.dataset.camsTipHasNudeVariant==="true";return s?.dataset.camsTipHasClothedToNudeVariant==="true"||!r&&a?"nude":null}async persistLiveVideoAction(i,s=this.liveVideoActionTracking){let r=await H(i.dataset.camsActionRequestUrl,{body:{action_id:i.dataset.camsActionId,private_session_id:this.currentPrivateSessionId()},contentType:"application/json",responseKind:"json"});if(!r.ok)throw new Error("Failed to persist live-video action request");let n=(await r.json)?.action_request?.id;if(!n||!s)throw new Error("Live-video action request response was malformed");s.actionRequestId=n,this.markLiveVideoActionPlaybackStarted(s)}tipActionRequiresConfirmation(i){return i.dataset.camsActionConfirmable==="true"}confirmTipAction(i){this.activeTipActionConfirmationButton&&this.activeTipActionConfirmationButton!==i&&this.setTipActionConfirmation(this.activeTipActionConfirmationButton,!1),this.activeTipActionConfirmationButton=i,this.setTipActionConfirmation(i,!0)}resetTipActionConfirmation(){this.activeTipActionConfirmationButton&&(this.setTipActionConfirmation(this.activeTipActionConfirmationButton,!1),this.activeTipActionConfirmationButton=null)}
128toggleTipMenu(){if(!this.hasTipDialogTarget)return;let i=!this.tipDialogTarget.classList.contains(DT);this.tipDialogTarget.classList.toggle(DT),i&&this.resetTipActionConfirmation()}closeTipMenu(i){this.closeTipDialog(),this.resetTipActionConfirmation()}setTipActionConfirmation(i,s){i.dataset.camsActionConfirming=s?"true":"false",i.setAttribute("aria-pressed",s?"true":"false"),i.classList.toggle("pr-0",s),i.classList.toggle("pr-5",!s),i.classList.remove("cams-tip-action-sent");let r=i.querySelector("[data-cams-tip-action-price='true']"),a=i.querySelector("[data-cams-tip-action-confirmation='true']");r?.classList.toggle("hidden",s),a?.classList.toggle("hidden",!s),a?.classList.toggle("flex",s),a?.classList.remove("cams-tip-confirm-sent"),!s&&a?.dataset.camsTipActionConfirmationLabel&&(a.textContent=a.dataset.camsTipActionConfirmationLabel)}async animateTipActionConfirmationSuccess(i){let s=i.querySelector("[data-cams-tip-action-confirmation='true']");if(!s)return;let r=i.dataset.camsActionConfirming==="true";r||this.setTipActionConfirmation(i,!0),s.dataset.camsTipActionSentLabel&&(s.textContent=s.dataset.camsTipActionSentLabel),i.classList.add("cams-tip-action-sent"),s.classList.add("cams-tip-confirm-sent"),await new Promise(a=>window.setTimeout(a,AP)),r||this.setTipActionConfirmation(i,!1)}closeTipDialog(i){(i?.closest("#cams-tip-dialog")||(this.hasTipDialogTarget?this.tipDialogTarget:null))?.classList.add(DT)}async handleActionRequestFailure(i,s){this.resetTipActionConfirmation();let r;try{r=await i.json}catch{return}r?.html&&(this.closeTipDialog(s),Turbo.renderStreamMessage(r.html))}async startPrivateSession(i){if(i.preventDefault(),this.currentPrivateSessionId()||this.privateSessionClient.requestPending||!this.hasPrivateSessionUrlValue)return;let s=i.currentTarget?.dataset.camsSessionType||"classic";if(!(s==="live_video"&&this.voiceAtCapacity)){this.closePrivateSessionConfirmation({restoreFocus:!1}),this.setStartPrivateButtonDisabled(!0),this.#s(!0),this.pendingPrivateSessionType=s,this.pendingPrivateSessionStartedAt=s==="live_video"?Date.now():null;try{await this.privateSessionClient.start({...this.privateSessionStartContext||{},sessionType:s})}finally{this.pendingPrivateSessionType=null,this.pendingPrivateSessionStartedAt=null}this.connected&&(this.setStartPrivateButtonDisabled(!1),this.#s(!1),this.currentPrivateSessionId()||this.hidePrivateLoading())}}async endPrivateSession(i){if(!this.currentPrivateSessionId()){if(this.activePrivateSessionId||this.pendingPrivateSessionFeedbackHtml){if(i.preventDefault(),this.exitInProgress)return;this.exitInProgress=!0,this.stopInactivityMonitor(),await this.showEndingLoadingForMinimum(),this.exitInProgress=!1,this.completePrivateSessionEnd(this.pendingPrivateSessionFeedbackHtml),this.uiTargets.forEach(m=>{m.classList.remove("hidden")}),this.hideEndingLoading();return}await this.handlePublicSessionExit(i);return}if(i.preventDefault(),this.exitInProgress)return;this.exitInProgress=!0,this.stopInactivityMonitor(),this.syncImmersiveUi();let s=this.liveVideoPrivateSessionActive(),r=this.currentPrivateSessionId()&&this.hasPublicChatUrlValue?this.publicChatUrlValue:i.currentTarget.href,a=this.showEndingLoadingForMinimum(),n=this.currentPrivateSessionId()?await this.privateSessionClient.end({resumeOnFailure:!s}):!0,l=!!n;await a;let d=n?.html||this.pendingPrivateSessionFeedbackHtml;if(l){if(d){this.exitInProgress=!1,this.completePrivateSessionEnd(d),this.uiTargets.forEach(m=>{m.classList.remove("hidden")}),this.hideEndingLoading();return}window.location.href=r;return}if(d){this.exitInProgress=!1,this.completePrivateSessionEnd(d),this.uiTargets.forEach(m=>{m.classList.remove("hidden")}),this.hideEndingLoading();return}this.exitInProgress=!1,this.hideEndingLoading(),this.uiTargets.forEach(m=>{m.classList.remove("hidden")}),this.syncImmersiveUi(),s&&this.privateSessionClient.resume(),this.syncInactivityMonitor(this.privateSessionClient.current),s||this.videoPlaybackManager.playCurrentVideo(this.activeVideo())}async handlePublicSessionExit(i){if(i.preventDefault(),this.exitInProgress)return;let s=i.currentTarget.href;if(!this.hasFeedbackModalUrlValue){this.followFeedbackNavigation(s);return}this.exitInProgress=!0,await this.openFeedbackModal(s)||this.followFeedbackNavigation(s),this.exitInProgress=!1}async openFeedbackModal(i){try{let s=await Ee(this.feedbackModalUrlValue,{responseKind:"turbo-stream"});
128return!s.ok||s.statusCode===204||(await this.nextFrame(),!this.hasFeedbackModalTarget)?!1:(this.feedbackNavigationUrl=i,this.feedbackSubmitted=!1,this.openCamsModal(this.feedbackModalTarget),this.recordFeedbackModalView(),!0)}catch(s){return s.name!=="AbortError"&&Ge(s,{controller:this.identifier,action:"openFeedbackModal"}),!1}}async recordFeedbackModalView(){if(this.hasFeedbackModalViewUrlValue)try{let i=await H(this.feedbackModalViewUrlValue,{contentType:"application/json",responseKind:"json"});i.ok||Ge(new Error("cams-feedback-modal-view-request-failed"),{controller:this.identifier,status:i.statusCode})}catch(i){i.name!=="AbortError"&&Ge(i,{controller:this.identifier,action:"recordFeedbackModalView"})}}selectFeedbackRating(i){this.feedbackRating=Number(i.currentTarget.dataset.camsScoreValue),this.feedbackStarTargets.forEach(s=>{let r=Number(s.dataset.camsScoreValue)<=this.feedbackRating;s.classList.toggle("text-[#ffb703]",r),s.classList.toggle("text-[#7d7d7d]",!r)}),this.hasFeedbackSubmitButtonTarget&&(this.feedbackSubmitButtonTarget.disabled=!1)}async submitFeedback(i){if(i.preventDefault(),!(!this.feedbackRating||this.feedbackSubmitted||!this.hasFeedbackSubmitUrlValue)){this.setFeedbackSubmitting(!0);try{let s=await Pt();(await H(this.feedbackSubmitUrlValue,{body:JSON.stringify({feedback_device_context:s,polymorphic_feedback:{score:this.feedbackRating,description:this.feedbackTextTarget.value}}),contentType:"application/json",responseKind:"json"})).ok?this.showFeedbackSuccess():this.setFeedbackSubmitting(!1)}catch(s){this.setFeedbackSubmitting(!1),s.name!=="AbortError"&&Ge(s,{controller:this.identifier,action:"submitFeedback"})}}}setFeedbackSubmitting(i){this.feedbackSubmitted=i,this.hasFeedbackSubmitButtonTarget&&(this.feedbackSubmitButtonTarget.disabled=i)}showFeedbackSuccess(){this.feedbackSubmitButtonTarget.classList.add("hidden"),this.feedbackSuccessTarget.classList.remove("hidden")}closeFeedbackModal(){!this.hasFeedbackModalTarget||!this.camsModalIsOpen(this.feedbackModalTarget)||(this.closeCamsModal(this.feedbackModalTarget),this.handleFeedbackModalClose())}closeFeedbackModalOnBackdrop(i){i.target.dataset.camsFrameOverlayBackdrop!==void 0&&this.closeFeedbackModal()}handleFeedbackModalClose(){let i=this.feedbackNavigationUrl;this.feedbackNavigationUrl=null,this.feedbackRating=null,this.hasFeedbackModalContainerTarget&&this.feedbackModalContainerTarget.replaceChildren(),this.followFeedbackNavigation(i)}followFeedbackNavigation(i){window.location.href=i||"/"}handlePrivateSessionFailure(i){this.hidePrivateLoading(),!this.currentPrivateSessionId()&&this.hasVideoTarget&&this.videoPlaybackManager.playCurrentVideo(this.activeVideo()),i?.html?this.privateSessionFeedbackHtml(i.html)?this.renderPrivateSessionFeedback(i.html):Turbo.renderStreamMessage(i.html):i?.code==="not_available"&&this.pendingPrivateSessionType==="live_video"&&(this.voiceAtCapacity=!0,this.#r(),this.#e())}liveVideoAtCapacity(i){let s=i.detail?.id,r=i.detail?.privateSession;!s||r?.status!=="ended"||String(s)!==String(this.currentPrivateSessionId())||(this.stopInactivityMonitor(),this.privateSessionClient.apply(r),this.voiceAtCapacity=!0,this.#r(),this.#e())}liveVideoEnded(i){let s=i.detail?.privateSession;!s||s.status!=="ended"||this.privateSessionClient.apply(s,i.detail?.html)}liveVideoConnectionLost(){this.privateSessionClient.pause(),this.showPrivateLoading()}liveVideoConnectionInterrupted(){this.privateSessionClient.pause()}liveVideoConnectionRestored(){this.privateSessionClient.resume()}
128showLiveVideoInterruption(i){!this.hasLiveVideoInterruptionNoticeTarget||!this.hasLiveVideoInterruptionMessageTarget||(this.liveVideoInterruptionMessageTarget.textContent=i.detail?.message||"",this.liveVideoInterruptionNoticeTarget.classList.remove("hidden"),window.clearTimeout(this.liveVideoInterruptionTimer),this.liveVideoInterruptionTimer=window.setTimeout(()=>this.hideLiveVideoInterruption(),OP))}hideLiveVideoInterruption(){window.clearTimeout(this.liveVideoInterruptionTimer),this.liveVideoInterruptionTimer=null,this.hasLiveVideoInterruptionNoticeTarget&&this.liveVideoInterruptionNoticeTarget.classList.add("hidden")}applyPrivateSession(i,s=null){if(!i||i.status==="ended"){this.endingPrivateSessionType=this.activePrivateSessionType,this.stopInactivityMonitor(),this.resetTipActionConfirmation(),this.setLiveVideoActionBusy(!1),this.liveVideoActionTracking=null,this.liveVideoActionTrackings.clear(),this.dispatch("privateSessionEnded"),s&&!this.privateSessionFeedbackHtml(s)&&Turbo.renderStreamMessage(s);let n=!!this.activePrivateSessionId;if(this.privateSessionMessaging.reset(),this.activePrivateSessionId=null,this.activePrivateSessionType=null,this.pendingLiveVideoBodyState=null,this.lastPrivateSessionStatus=null,this.hydratedQueuedActionSessionId=null,this.bodyStatePolicy.reset(),this.idleVideoRotation.reset(),this.clearPrivateIdlePreload(),this.hidePrivateLoading(),this.exitInProgress){s&&(this.pendingPrivateSessionFeedbackHtml=s);return}if(n){this.completePrivateSessionEndAfterLoading(s);return}this.completePrivateSessionEnd(s);return}let r=this.activePrivateSessionId!==i.id,a=!r&&this.lastPrivateSessionStatus!==i.status;(r||a)&&this.resetTipActionConfirmation(),s&&(r||a)&&(this.privateSessionFeedbackHtml(s)?this.renderPrivateSessionFeedback(s):Turbo.renderStreamMessage(s)),r?(this.closeTipDialog(),this.closePrivateSessionConfirmation({restoreFocus:!1}),this.hideLiveVideoInterruption(),this.showPrivateLoading(),this.liveVideoActionTracking=null,this.liveVideoActionTrackings.clear(),this.privateSessionMessaging.reset(),this.idleVideoRotation.reset(),this.pendingLiveVideoBodyState=null,this.stopFakeFeed(),this.activePrivateSessionId&&this.clearPrivateFeedMessages(),this.activePrivateSessionId=i.id,this.activePrivateSessionType=i.session_type||"classic",this.bodyStatePolicy.applyPrivateSession(i),this.dispatch("privateSessionStarted",{detail:{id:i.id,sessionType:this.activePrivateSessionType,startedAt:this.pendingPrivateSessionStartedAt}})):this.bodyStatePolicy.applyNudePrivateSession(i),this.lastPrivateSessionStatus=i.status,this.applyPrivateIdleVideoUrl(i),this.hydrateQueuedActions(i),this.syncInactivityMonitor(i),this.updatePrivateSessionUi(),this.updateTipActionsVisibility(),this.playPrivateIdleVideoWhenLoading()}liveVideoStarted(i){let s=i?.detail?.privateSession;s&&this.privateSessionClient.apply(s),this.liveVideoMuted=i?.detail?.muted??this.videoPlaybackManager.activeVideo().muted,this.stopVideo(),this.hidePrivateLoading(),this.videoPlaybackManager.ensureBackgroundAudioPlaying(),this.updateLiveVideoAudioIcons(),this.dispatch("audioToggled",{detail:{muted:this.liveVideoMuted}})}updateLiveVideoAudioIcons(){this.hasSoundIconTarget&&this.soundIconTarget.classList.toggle("hidden",this.liveVideoMuted),this.hasMutedIconTarget&&this.mutedIconTarget.classList.toggle("hidden",!this.liveVideoMuted)}liveVideoActionRequested(){this.setLiveVideoActionBusy(!0)}async liveVideoActionQueued(i){let{actionName:s,toolCallId:r}=i?.detail||{};if(!s||!r||this.liveVideoActionTrackings.has(r))return;if(this.setLiveVideoActionBusy(!0),this.liveVideoActionTracking?.actionName===s&&!this.liveVideoActionTracking.toolCallId){let l=this.liveVideoActionTracking;if(l.toolCallId=r,this.liveVideoActionTrackings.set(r,l),await l.persistencePromise?.catch(()=>{}),!l.actionRequestId)try{await this.persistLiveVideoAction(l.button,l)}catch(d){Ge(d,{controller:this.identifier,actionId:l.button.dataset.camsActionId,actionName:s,toolCallId:r})}return}let a=this.#i(s);if(!a){Ge(new Error("Live-video tool call did not match an action"),{controller:this.identifier,actionName:s,toolCallId:r});return}let n={actionName:s,actionRequestId:null,button:a,persistencePromise:null,started:!1,targetBodyState:this.#t(a),toolCallId:r};this.liveVideoActionTrackings.set(r,n);try{await this.persistLiveVideoAction(a,n)}catch(l){Ge(l,{controller:this.identifier,actionId:a.dataset.camsActionId,actionName:s,toolCallId:r})}}liveVideoActionStarted(i){this.setLiveVideoActionBusy(!0);let s=i?.detail?.toolCallId,r=this.liveVideoActionTrackings.get(s)||this.liveVideoActionTracking;r&&(this.pendingLiveVideoBodyState=r.targetBodyState,r.started=!0,this.markLiveVideoActionPlaybackStarted(r)),this.pendingLiveVideoBodyState==="nude"&&this.applyPendingActionBodyState({body_state:"clothed_to_nude"}),this.stopInactivityMonitor()}liveVideoActionEnded(i){(this.pendingLiveVideoBodyState==="nude"||i?.detail?.bodyStateChanged)&&this.applyConfirmedActionBodyState({body_state:"clothed_to_nude"}),this.pendingLiveVideoBodyState=null,this.liveVideoActionTracking=null,this.liveVideoActionTrackings.clear(),this.setLiveVideoActionBusy(!1),this.syncInactivityMonitor(this.privateSessionClient.current)}liveVideoActionFailed(i){this.pendingLiveVideoBodyState=null,this.liveVideoActionTracking=null,this.liveVideoActionTrackings.clear(),i?.detail?.bodyStateChanged?this.applyConfirmedActionBodyState({body_state:"clothed_to_nude"}):this.bodyStatePolicy.clearPendingAction()&&this.updateTipActionsVisibility(),this.setLiveVideoActionBusy(!1),this.syncInactivityMonitor(this.privateSessionClient.current)}markLiveVideoActionPlaybackStarted(i){!i?.started||!i.actionRequestId||this.recordPlaybackStartedIfNeeded({action_request_id:i.actionRequestId})}#i(i){let s=this.tipActionTargets.find(r=>r.dataset.camsTipLiveVideoToolName===i);return s&&this.tipActionButtonTargets.find(r=>r.closest("[data-cams--show-target~='tipAction']")===s)||null}setLiveVideoActionBusy(i){this.liveVideoActionBusy=i,this.element.classList.toggle("cams-l
128ive-video-action-active",i),this.hasTipButtonRowTarget&&this.tipButtonRowTarget.classList.toggle("hidden",i),i&&this.closeTipDialog(),this.tipActionButtonTargets.forEach(s=>{s.disabled=i})}hydrateQueuedActions(i){if(this.hydratedQueuedActionSessionId===i.id)return;(i.queued_action_requests||[]).forEach(r=>{this.applyPendingActionBodyState(r),this.appendFakeFeedMessage(r,{enqueue:!1}),this.enqueueAction(r)}),this.hydratedQueuedActionSessionId=i.id}updatePrivateSessionUi(){let i=this.privateSessionClient.current;this.hasStartPrivateButtonLabelTarget&&(this.startPrivateButtonLabelTarget.textContent=this.startPrivateButtonTarget.dataset.defaultLabel),this.updatePrivateSessionDisplay(!!i),this.hasPublicStatusTarget&&this.publicStatusTarget.classList.toggle("hidden",!!i),this.hasPrivateSessionStatusTarget&&this.privateSessionStatusTarget.classList.toggle("hidden",!i),this.privateSessionTimer.sync(i),this.updatePrivateSessionGraceBanner(i),this.updateFakeFeedOffset(),this.privateSessionGraceTimer.sync(i?.status==="grace"?i:null),this.syncImmersiveUi(),this.syncFeedLayout()}syncFeedLayout(){if(!this.feedLayoutVisible()){this.feedLayoutDirty=!0;return}this.feedLayoutDirty=!1,this.feedLayout.sync()}flushFeedLayout(){this.feedLayoutDirty=!1,this.syncFeedLayout(),window.requestAnimationFrame(()=>{this.syncFeedLayout(),this.scrollFakeFeedToBottom()})}updateFeedMessageInteractivity(){this.feedLayout.updateMessageInteractivity()}observeFakeFeedScroll(){this.hasFakeFeedScrollTarget&&(this.boundUpdateFeedMessageInteractivity=this.updateFeedMessageInteractivity.bind(this),this.fakeFeedScrollTarget.addEventListener("scroll",this.boundUpdateFeedMessageInteractivity,{passive:!0}))}unobserveFakeFeedScroll(){!this.hasFakeFeedScrollTarget||!this.boundUpdateFeedMessageInteractivity||(this.fakeFeedScrollTarget.removeEventListener("scroll",this.boundUpdateFeedMessageInteractivity),this.boundUpdateFeedMessageInteractivity=null)}feedLayoutVisible(){return!this.hasFakeFeedWrapperTarget||!this.fakeFeedWrapperTarget.classList.contains("hidden")}immersiveUiEnabled(){return this.initialUiRevealed&&!this.privateLoadingVisible&&!this.exitInProgress&&!this.endingLoadingPromise}immersiveUiHideableElements(){let i=this.immersiveUiPersistentElements();return this.uiTargets.filter(s=>!i.includes(s))}immersiveUiPersistentElements(){let i=[];return this.hasBottomBarTarget&&i.push(this.bottomBarTarget),this.hasPrivateSessionGraceBannerTarget&&i.push(this.privateSessionGraceBannerTarget),i}syncImmersiveUi(){this.immersiveUi.sync()}collapseImmersiveTipButton(){this.immersiveTipCollapsed||(this.immersiveTipCollapsed=!0,this.element.classList.add("cams-immersive-hiding"),this.syncImmersiveTipButtonState())}expandImmersiveTipButton(){this.immersiveTipCollapsed&&(this.immersiveTipCollapsed=!1,this.element.classList.remove("cams-immersive-hiding"),this.element.classList.add("cams-immersive-expanding"),this.clearImmersiveExpandTimer(),this.syncImmersiveTipButtonState(),this.immersiveExpandTimer=window.setTimeout(()=>{this.element.classList.remove("cams-immersive-expanding"),this.immersiveExpandTimer=null},MP))}resetImmersiveTipButtonState(){this.immersiveTipCollapsed=!1,this.element.classList.remove("cams-immersive-hiding","cams-immersive-expanding"),this.clearImmersiveExpandTimer(),this.syncImmersiveTipButtonState()}clearImmersiveExpandTimer(){this.immersiveExpandTimer!==null&&(window.clearTimeout(this.immersiveExpandTimer),this.immersiveExpandTimer=null)}syncImmersiveTipButtonState(){let i=this.immersiveTipCollapsed;this.hasTipButtonRowTarget&&this.tipButtonRowTarget.classList.toggle(this.tipButtonRowTarget.dataset.collapsedClass,i),this.hasTipButtonActionsTarget&&this.tipButtonActionsTarget.classList.toggle(this.tipButtonActionsTarget.dataset.collapsedClass,i),this.hasBottomActionsPanelTarget&&this.bottomActionsPanelTarget.classList.toggle(this.bottomActionsPanelTarget.dataset.collapsedClass,i),this.applyFakeFeedOffset(),this.applyTipButtonClasses(!!this.currentPrivateSessionId())}applyTipButtonClasses(i){if(!this.hasTipButtonTarget)return;let s=i?this.tipButtonTarget.dataset.privateClass:this.tipButtonTarget.dataset.defaultClass,r=[];this.immersiveTipCollapsed&&(r.push(this.tipButtonTarget.dataset.collapsedClass),r.push(i?this.tipButtonTarget.dataset.collapsedPrivateClass:this.tipButtonTarget.dataset.collapsedPublicClass)),this.tipButtonTarget.className=[s,...r].filter(
128Boolean).join(" ")}updatePrivateSessionGraceBanner(i){!this.hasPrivateSessionGraceBannerTarget||i?.status==="grace"||this.privateSessionGraceBannerTarget.replaceChildren()}updateFakeFeedOffset(){this.applyFakeFeedOffset()}applyFakeFeedOffset(){if(!this.hasFakeFeedWrapperTarget||!this.hasBottomBarTarget)return;let i=Math.round(this.bottomBarTarget.getBoundingClientRect().height);i<=0||this.fakeFeedWrapperTarget.style.setProperty("--cams-feed-bottom-offset",`${i}px`)}observeBottomBarResize(){!this.hasBottomBarTarget||typeof ResizeObserver>"u"||(this.bottomBarResizeObserver=new ResizeObserver(()=>{this.applyFakeFeedOffset()}),this.bottomBarResizeObserver.observe(this.bottomBarTarget))}unobserveBottomBarResize(){this.bottomBarResizeObserver&&(this.bottomBarResizeObserver.disconnect(),this.bottomBarResizeObserver=null)}observeViewportResize(){this.boundSyncFeedLayoutOnResize=()=>this.syncFeedLayout(),window.addEventListener("resize",this.boundSyncFeedLayoutOnResize),globalThis.visualViewport?.addEventListener("resize",this.boundSyncFeedLayoutOnResize)}unobserveViewportResize(){this.boundSyncFeedLayoutOnResize&&(window.removeEventListener("resize",this.boundSyncFeedLayoutOnResize),globalThis.visualViewport?.removeEventListener("resize",this.boundSyncFeedLayoutOnResize),this.boundSyncFeedLayoutOnResize=null)}setStartPrivateButtonDisabled(i){this.hasStartPrivateButtonTarget&&(this.startPrivateButtonTarget.disabled=i)}#s(i){this.privateSessionOptionButtonTargets.forEach(s=>{let r=this.hasPrivateSessionVoiceButtonTarget&&s===this.privateSessionVoiceButtonTarget&&this.voiceAtCapacity;s.disabled=i||r})}#r(){this.hasPrivateSessionVoiceCardTarget&&(this.privateSessionVoiceCardTarget.classList.toggle("cams-private-session-option-card-capacity",this.voiceAtCapacity),this.privateSessionVoiceCardTarget.setAttribute("aria-disabled",String(this.voiceAtCapacity)),this.privateSessionVoiceButtonTarget.disabled=this.voiceAtCapacity,this.privateSessionVoiceMinimumTarget.classList.toggle("hidden",this.voiceAtCapacity),this.hasPrivateSessionVoiceNewBadgeTarget&&this.privateSessionVoiceNewBadgeTarget.classList.toggle("hidden",this.voiceAtCapacity),this.hasStartPrivateNewBadgeTarget&&this.startPrivateNewBadgeTarget.classList.toggle("hidden",this.voiceAtCapacity),this.privateSessionVoiceUnavailableBadgeTarget.classList.toggle("hidden",!this.voiceAtCapacity),this.privateSessionVoiceAvailableCtaTarget.classList.toggle("hidden",this.voiceAtCapacity),this.privateSessionVoiceCapacityCtaTarget.classList.toggle("hidden",!this.voiceAtCapacity))}updatePrivateSessionDisplay(i){this.publicSessionUiTargets.forEach(s=>{s.classList.toggle("hidden",i)}),this.privateSessionUiTargets.forEach(s=>{s.classList.toggle("hidden",!i)}),this.hasStartPrivateButtonWrapperTarget&&this.startPrivateButtonWrapperTarget.classList.toggle("hidden",i),this.hasTipButtonActionsTarget&&this.tipButtonActionsTarget.classList.toggle("hidden",i),this.applyTipButtonClasses(i),this.hasTipButtonLabelTarget&&(this.tipButtonLabelTarget.textContent=i?this.tipButtonLabelTarget.dataset.privateLabel:this.tipButtonLabelTarget.dataset.defaultLabel)}currentPrivateSessionId(){return this.privateSessionClient.currentId}canPlayBackgroundAudio(){return this.initialUiRevealed&&!this.privateLoadingVisible}liveVideoPrivateSessionActive(){return this.activePrivateSessionType==="live_video"}applyPrivateIdleVideoUrl(i){i?.session_type!=="live_video"&&(i?.private_idle_video_urls?.length?this.idleVideoRotation.setPrivateUrls(i.private_idle_video_urls):i?.private_idle_video_url&&this.idleVideoRotation.setPrivateUrls([i.private_idle_video_url]))}preloadPrivateIdleVideo(){let i=this.idleVideoRotation.firstPrivateUrl();!i||this.preloadedPrivateIdleVideoUrl===i||(this.privateIdlePreloadVideo||(this.privateIdlePreloadVideo=document.createElement("video"),this.privateIdlePreloadVideo.preload="auto",this.privateIdlePreloadVideo.playsInline=!0,this.privateIdlePreloadVideo.muted=!0),this.privateIdlePreloadVideo.src=i,this.privateIdlePreloadVideo.load(),this.preloadedPrivateIdleVideoUrl=i)}clearPrivateIdlePreload(){this.privateIdlePreloadVideo&&(this.privateIdlePreloadVideo.pause(),this.privateIdlePreloadVideo.removeAttribute("src"),this.privateIdlePreloadVideo.load(),this.privateIdlePreloadVideo=null,this.preloadedPrivateIdleVideoUrl=null)}playPrivateIdleVideoWhenLoading(){if(this.privateSessionClient.current?.session_type==="live_video"||!this.privateLoadingVisible)return;if(!this.idleVideoRotation.firstPrivateUrl()){this.hidePrivateLoading();return}let i=this.privateLoadingRemainingDuration();if(i>0){this.clearPrivateLoadingHideTimer(),this.privateLoadingHideTimer=window.setTimeout(()=>{this.privateLoadingHideTimer=null,this.privateLoadingVisible&&this.playIdleVideo()},i);return}this.playIdleVideo()}showPrivateLoading(){this.clearPrivateLoadingHideTimer(),this.privateLoadingStartedAt=Date.now(),this.privateLoadingVisible=!0,this.syncImmersiveUi(),this.stopVideo(),this.hasPrivateLoadingTarget&&this.privateLoadingTarget.classList.remove("hidden")}hidePrivateLoading({enforceMinimumDuration:i=!1}
128={}){if(this.privateLoadingVisible){if(this.clearPrivateLoadingHideTimer(),i){let s=Date.now()-this.privateLoadingStartedAt,r=bC-s;if(r>0){this.privateLoadingHideTimer=window.setTimeout(()=>this.hidePrivateLoading(),r);return}}this.privateLoadingVisible=!1,this.privateLoadingStartedAt=null,this.hasPrivateLoadingTarget&&this.privateLoadingTarget.classList.add("hidden"),this.syncImmersiveUi(),this.videoPlaybackManager.ensureBackgroundAudioPlaying(),this.maybeShowFirstOpenUiHint()}}clearPrivateLoadingHideTimer(){this.privateLoadingHideTimer&&(window.clearTimeout(this.privateLoadingHideTimer),this.privateLoadingHideTimer=null)}clearInitialLoadingMinimumTimer(){this.initialLoadingMinimumTimer&&(window.clearTimeout(this.initialLoadingMinimumTimer),this.initialLoadingMinimumTimer=null)}privateLoadingRemainingDuration(){let i=this.privateLoadingStartedAt||Date.now(),s=Date.now()-i;return bC-s}hideLoading(i){if(!this.inactiveVideoEvent(i)&&this.hasLoadingTarget){if(this.videoReady=!0,this.initialUiRevealed){this.dismissLoadingOverlay();return}this.revealUiWhenReady()}}dismissLoadingOverlay(){this.hasLoadingTarget&&this.loadingTarget.classList.add("opacity-0","pointer-events-none")}revealUiWhenReady(){!this.videoReady||!this.iconsReady||!this.initialLoadingMinimumElapsed||!this.connected||(this.dismissLoadingOverlay(),this.uiTargets.forEach(i=>{i.classList.remove("hidden")}),this.initialUiRevealed=!0,this.privateLoadingVisible||this.videoPlaybackManager.ensureBackgroundAudioPlaying(),this.syncImmersiveUi(),this.applyFakeFeedOffset(),this.syncFeedLayout(),this.scrollFakeFeedToBottom(),this.startFakeFeed(),this.maybeShowFirstOpenUiHint())}showLoading(){this.hasLoadingTarget&&(this.loadingTarget.classList.remove("opacity-0","pointer-events-none"),this.videoReady=!1,this.initialUiRevealed=!1,this.stopFakeFeed(),this.stopVideo(),this.hideUiHint(),this.resetImmersiveTipButtonState(),this.uiTargets.forEach(i=>{i.classList.add("hidden")}),this.syncImmersiveUi())}async completePrivateSessionEndAfterLoading(i=null){i&&(this.pendingPrivateSessionFeedbackHtml=i),await this.showEndingLoadingForMinimum(),!(!this.connected||this.exitInProgress)&&(this.completePrivateSessionEnd(i),this.uiTargets.forEach(s=>{s.classList.remove("hidden")}),this.hideEndingLoading())}completePrivateSessionEnd(i=null){this.updatePrivateSessionUi(),this.updateTipActionsVisibility(),this.connected&&this.hasVideoTarget&&this.forcePublicIdleVideo(),this.clearPrivateFeedMessages(),this.startFakeFeed(),this.renderPrivateSessionFeedback(i),this.endingPrivateSessionType=null}renderPrivateSessionFeedback(i){!this.privateSessionFeedbackHtml(i)||this.privateSessionFeedbackRenderedHtml.has(i)||(this.privateSessionFeedbackRenderedHtml.add(i),this.pendingPrivateSessionFeedbackHtml=null,Turbo.renderStreamMessage(i))}privateSessionFeedbackHtml(i){return!!i?.includes('target="cams-private-session-feedback-modal"')}showEndingLoadingForMinimum(){if(!this.hasEndingLoadingTarget)return Promise.resolve();if(this.endingLoadingPromise)return this.endingLoadingPromise;this.stopFakeFeed(),this.stopVideo(),this.syncImmersiveUi();let i=this.activePrivateSessionType==="live_video"||this.endingPrivateSessionType==="live_video";this.hasEndingLoadingRecordingTarget&&this.endingLoadingRecordingTarget.classList.toggle("hidden",i),this.uiTargets.forEach(r=>{r.classList.add("hidden")}),this.hasLoadingTarget&&this.loadingTarget.classList.add("opacity-0","pointer-events-none"),this.hasEndingLoadingTarget&&(this.endingLoadingTarget.classList.remove("hidden"),window.requestAnimationFrame(()=>{this.hasEndingLoadingTarget&&this.endingLoadingTarget.classList.remove("opacity-0")}));let s=i?xP:kP;return this.endingLoadingPromise=this.delay(s).finally(()=>{this.endingLoadingPromise=null}),this.endingLoadingPromise}hideEndingLoading(){this.hasEndingLoadingTarget&&(this.endingLoadingTarget.classList.add("opacity-0"),window.setTimeout(()=>{this.hasEndingLoadingTarget&&this.endingLoadingTarget.classList.add("hidden"),this.hasEndingLoadingRecordingTarget&&this.endingLoadingRecordingTarget.classList.remove("hidden")},300)),this.maybeShowFirstOpenUiHint()}maybeShowFirstOpenUiHint(){if(!this.immersiveUiEnabled())return;let i;try{i=!!window.localStorage.getItem(SC),i||window.localStorage.setItem(SC,"1")}catch{i=!0}i||this.showUiHint()}
128showUiHint(){if(!this.hasUiHintTarget)return;window.clearTimeout(this.uiHintTimer);let i=this.uiHintTarget;i.classList.remove("hidden"),i.offsetWidth,i.classList.remove("opacity-0"),i.classList.add("cams-ui-hint--visible"),this.uiHintTimer=window.setTimeout(()=>this.hideUiHint(),_P)}hideUiHint(){if(!this.hasUiHintTarget)return;window.clearTimeout(this.uiHintTimer);let i=this.uiHintTarget;i.classList.remove("cams-ui-hint--visible"),i.classList.add("opacity-0"),this.uiHintTimer=window.setTimeout(()=>{this.uiHintTimer=null,i.classList.add("hidden")},BP)}startFakeFeed(){!this.hasFakeFeedMessagesTarget||!this.hasFakeFeedScrollTarget||this.currentPrivateSessionId()||this.fakeFeedScheduler.start()}stopFakeFeed(){this.fakeFeedScheduler.stop()}appendFakeFeedMessage(i,{enqueue:s=!0}={}){this.fakeFeedRenderer.append(i,{enqueue:s})}activeFeedMessagesTarget(){return this.currentPrivateSessionId()?this.hasPrivateFeedMessagesTarget?this.privateFeedMessagesTarget:null:this.hasFakeFeedMessagesTarget?this.fakeFeedMessagesTarget:null}clearPrivateFeedMessages(){this.hasPrivateFeedMessagesTarget&&this.privateFeedMessagesTarget.replaceChildren()}observePrivateFeedMessages(){this.hasPrivateFeedMessagesTarget&&this.privateFeedObserver.observe(this.privateFeedMessagesTarget,{childList:!0}),this.hasFakeFeedMessagesTarget&&this.privateFeedObserver.observe(this.fakeFeedMessagesTarget,{childList:!0})}handlePrivateFeedMessagesMutation(){this.syncFeedLayout(),this.scrollFakeFeedToBottom()}enqueueAction(i){this.actionVideoQueue.enqueue(i)&&this.maybePlayNextQueuedActionWhenIdleEnded()}handleQueuedActionReady(){if(this.actionVideoQueue.peekReady()?.playbackStartAttempts>0){this.idleAwaitingQueuedAction=!1,this.playNextQueuedActionOrIdle();return}if(this.idleAwaitingQueuedAction){this.idleAwaitingQueuedAction=!1,this.playNextQueuedActionOrIdle();return}this.maybePlayNextQueuedActionWhenIdleEnded()}handleQueuedActionFailed(i,s){this.reportPlaybackError(s,{action:i,playbackType:"action"}),this.suppressQueuedActionFailedAdvance||(this.activeVideo()?.ended?this.playNextQueuedActionOrIdle():this.maybePlayNextQueuedActionWhenIdleEnded())}maybePlayNextQueuedActionWhenIdleEnded(){!this.hasVideoTarget||!this.activeVideo()?.ended||(this.idleAwaitingQueuedAction=!1,this.playNextQueuedActionOrIdle())}prepareInactiveVideo(i){return this.videoPlaybackManager.prepareInactiveVideo(i)}preloadActionVideo(i){return this.hasVideoTarget?(this.clearNextIdlePreloadListener(),{video:this.videoPlaybackManager.prepareInactiveVideo(i,{waitForPlayable:!0}),ownedByQueue:!1}):{video:null,ownedByQueue:!0}}scrollFakeFeedToBottom(){this.fakeFeedRenderer.scrollToBottom()}handleVideoEnded(i){if(!this.connected||this.inactiveVideoEvent(i)||this.actionEndQueueAdvanced)return;let s=i?.currentTarget||this.activeVideo();if(this.currentPlaybackType==="action"&&this.currentAction&&this.videoMatchesActionUrl(s,this.currentAction)){this.pulseTransitionVeilUnlessEarly(),this.actionVideoQueue.confirmStarted(this.currentAction),this.advanceQueueAfterActionEnd();return}this.currentPlaybackType==="action"&&this.currentAction||(this.currentPlaybackType==="idle"&&!this.shouldWaitForQueuedActions()&&this.advanceIdleVideoIndex(),this.actionVideoQueue.hasPending()&&this.pulseTransitionVeilUnlessEarly(),this.advanceQueueAfterActionEnd())}pulseTransitionVeil(){this.hasTransitionVeilTarget&&(this.transitionVeilTarget.classList.remove("cams-transition-veil-pulse"),this.transitionVeilTarget.offsetWidth,this.transitionVeilTarget.classList.add("cams-transition-veil-pulse"))}pulseTransitionVeilUnlessEarly(){this.veilEarlyPulsed||this.pulseTransitionVeil()}handleVideoTimeUpdate(i){if(!this.connected||this.inactiveVideoEvent(i)||(this.videoPlaybackManager.noteTimeupdate(),this.veilEarlyPulsed)||this.currentPlaybackType!=="action"&&!this.actionVideoQueue.hasPending())return;let s=i?.currentTarget;!s||!Number.isFinite(s.duration)||s.duration<=wC*2||s.duration-s.currentTime>wC||(this.veilEarlyPulsed=!0,this.pulseTransitionVeil())}handleVideoError(i){this.videoPlaybackManager.handleVideoError(i)}processVideoLoadError(i,s=new Error("cams-video-load-error")){let r=this.actionForVideoLoadError(i);if(r){this.recoverFromActionPlaybackFailure(i,s,r);return}let a=i?.currentSrc||i?.src;this.currentPlaybackType==="action"&&this.currentAction&&a===this.currentIdleVideoUrl()||(this.reportPlaybackError(s,{video:i}),this.shouldWaitForQueuedActions()?this.replayCurrentIdleWhileWaitingForAction({allowHardRecover:!1}):this.recoverIdlePlayback(i))}actionForVideoLoadError(i){let s=i?.currentSrc||i?.src;if(this.currentPlaybackType==="action"&&this.currentAction)return this.videoMatchesActionUrl(i,this.currentAction)?this.currentAction:null;let r=this.actionVideoQueue.peek();return!r||!s||s!==r.videoUrl?null:r.playbackStartAttempts>0||r.reserved||["pending","loading"].includes(r.preloadState)?r:null}inactiveVideoEvent(i){return this.videoPlaybackManager.inactiveVideoEvent(i)}videoMatchesActionUrl(i,s){let r=i?.currentSrc||i?.src;return!!(s?.videoUrl&&r&&r===s.videoUrl)}activeVideo(){return this.videoPlaybackManager.activeVideo()}startVideo(){this.videoPlaybackManager.playbackStarted||this.playIdleVideo()}playNextQueuedActionOrIdle(){let i=this.actionVideoQueue.reserveReady();i?this.playActionVideo(i):this.shouldWaitForQueuedActions()?this.currentPlaybackType==="idle"&&this.replayCurrentIdleWhileWaitingForAction():this.playIdleVideo()}replayCurrentIdleWhileWaitingForAction({allowHardRecover:i=!0}
128={}){let s=this.currentIdleVideoUrl();if(!s||!this.hasVideoTarget)return;this.currentPlaybackType="idle",this.currentAction=null;let r=this.activeVideo();if(r&&!r.paused&&!r.ended&&this.videoPlaybackManager.videoHasUrl(r,s)){this.idleAwaitingQueuedAction=!1;return}if(r&&this.videoPlaybackManager.videoHasUrl(r,s)){r.currentTime=0,this.videoPlaybackManager.playCurrentVideo(r).then(a=>{if(!(!this.connected||r!==this.activeVideo())){if(a){this.idleAwaitingQueuedAction=!1,this.videoPlaybackManager.startPlaybackWatch(r,null),this.videoPlaybackManager.noteTimeupdate(),this.handlePlaybackStarted(null);return}if(i){this.videoPlaybackManager.hardRecoverUrl(s,null);return}this.markIdleAwaitingQueuedAction()}});return}if(i){this.videoPlaybackManager.playVideoUrl(s);return}this.markIdleAwaitingQueuedAction()}markIdleAwaitingQueuedAction(){this.idleAwaitingQueuedAction=!0,this.actionVideoQueue.peekReady()&&(this.idleAwaitingQueuedAction=!1,this.playNextQueuedActionOrIdle())}advanceQueueAfterActionEnd(){return this.actionEndQueueAdvanced?!1:(this.actionEndQueueAdvanced=!0,queueMicrotask(()=>{this.actionEndQueueAdvanced=!1}),this.playNextQueuedActionOrIdle(),!0)}shouldWaitForQueuedActions(){if(!this.actionVideoQueue.hasPending())return!1;if(this.actionVideoQueue.loadingItems().length>0)return!0;let i=this.actionVideoQueue.peek();return i&&["pending","loading"].includes(i.preloadState)?!0:!!(this.activeVideo()?.ended&&this.actionVideoQueue.hasPending())}playActionVideo(i){this.clearNextIdlePreloadListener(),this.idleAwaitingQueuedAction=!1,this.currentPlaybackType="action",this.currentAction=i,this.videoPlaybackManager.playVideoUrl(i.videoUrl,i)||(i.reserved=!1,this.playNextQueuedActionOrIdle())}playIdleVideo(){if(this.liveVideoPrivateSessionActive()){this.stopVideo(),this.videoPlaybackManager.ensureBackgroundAudioPlaying();return}this.idleAwaitingQueuedAction=!1,this.currentPlaybackType="idle",this.currentAction=null,this.videoPlaybackManager.playVideoUrl(this.currentIdleVideoUrl())}nextIdleVideoUrl(){return this.idleVideoRotation.nextUrl({inPrivateSession:!!this.currentPrivateSessionId(),bodyState:this.bodyStatePolicy.idleBodyState})}canPreloadNextIdleVideo(){if(!this.hasVideoTarget||this.currentPlaybackType!=="idle"||this.actionVideoQueue.hasPending())return!1;let i=this.nextIdleVideoUrl(),s=this.currentIdleVideoUrl();return!!(i&&i!==s)}preloadNextIdleVideo(){this.canPreloadNextIdleVideo()&&this.videoPlaybackManager.prepareInactiveVideo(this.nextIdleVideoUrl(),{waitForPlayable:!0})}scheduleNextIdlePreloadWhenReady(){if(this.clearNextIdlePreloadListener(),!this.canPreloadNextIdleVideo())return;let i=this.activeVideo();if(i){if(i.readyState>=4){this.preloadNextIdleVideo();return}this.nextIdlePreloadVideo=i,this.nextIdlePreloadListener=()=>{if(!this.connected||i!==this.activeVideo()||this.currentPlaybackType!=="idle"){this.clearNextIdlePreloadListener();return}i.readyState>=4&&(this.clearNextIdlePreloadListener(),this.preloadNextIdleVideo())},i.addEventListener("canplaythrough",this.nextIdlePreloadListener)}}clearNextIdlePreloadListener(){this.nextIdlePreloadVideo&&this.nextIdlePreloadListener&&this.nextIdlePreloadVideo.removeEventListener("canplaythrough",this.nextIdlePreloadListener),this.nextIdlePreloadVideo=null,this.nextIdlePreloadListener=null}forcePublicIdleVideo(){if(!this.hasVideoTarget)return;this.idleVideoRotation.resetClothed();let i=this.currentIdleVideoUrl({bodyState:"clothed"});i&&(this.currentPlaybackType="idle",this.currentAction=null,this.veilEarlyPulsed=!1,this.actionVideoQueue.clear(),this.videoPlaybackManager.forceVideoUrl(i),this.scheduleNextIdlePreloadWhenReady())}advanceIdleVideoIndex(){this.idleVideoRotation.advance(this.bodyStatePolicy.idleBodyState)}currentIdleVideoUrl({bodyState:i=this.bodyStatePolicy.idleBodyState}={}){return this.idleVideoRotation.currentUrl({inPrivateSession:!!this.currentPrivateSessionId(),bodyState:i})}activeIdleUrls({bodyState:i=this.bodyStatePolicy.idleBodyState}={}){return this.idleVideoRotation.activeUrls({inPrivateSession:!!this.currentPrivateSessionId(),bodyState:i})}publicIdleVideoUrl(){return this.idleVideoRotation.currentUrl({inPrivateSession:!1,bodyState:"clothed"})}handlePlaybackFailed(i,s,r){if(!r){this.reportPlaybackError(s,{video:i,action:r}),this.videoPlaybackManager.reconcileVideoVisibility(),this.shouldWaitForQueuedActions()?this.replayCurrentIdleWhileWaitingForAction({allowHardRecover:!1}):this.recoverIdlePlayback(i);return}this.recoverFromActionPlaybackFailure(i,s,r)}handlePlaybackStalled(i,s){let r=new Error(s?"cams-action-playback-stalled":"cams-idle-playback-stalled");this.reportPlaybackError(r,{video:i,action:s,extra:{queueDepth:this.actionVideoQueue.items.length,preloadStates:this.actionVideoQueue.items.map(a=>a.preloadState)}}),this.hardRecoverCurrentPlayback()}hardRecoverCurrentPlayback(){if(!this.hasVideoTarget)return;let i=this.currentPlaybackType==="action"?this.currentAction:null,s=i?.videoUrl||this.currentIdleVideoUrl();s&&(this.videoPlaybackManager.reconcileVideoVisibility(),this.videoPlaybackManager.hardRecoverUrl(s,i))}startDeadPlaybackMonitor(){this.stopDeadPlaybackMonitor(),this.deadPlaybackMonitorTimer=window.setInterval(()=>{if(!this.connected||!this.hasVideoTarget||this.videoPlaybackManager.hardRecoverInFlight)return;let i=this.activeVideo();!i||i.ended||this.videoPlaybackManager.isPlaybackDead(i)&&this.hardRecoverCurrentPlayback()},2e3)}stopDeadPlaybackMonitor(){this.deadPlaybackMonitorTimer&&(window.clearInterval(this.deadPlaybackMonitorTimer),this.deadPlaybackMonitorTimer=null)}recoverFromActionPlaybackFailure(i,s,r=this.currentAction){this.reportPlaybackError(s,{video:i,action:r}),this.suppressQueuedActionFailedAdvance=!0,this.releaseCurrentActionForRetry(r),this.suppressQueuedActionFailedAdvance=!1,!this.currentAction&&(this.currentPlaybackType="idle",this.playNextQueuedActionOrIdle())}playbackErrorContext({video:i=null,action:s=null,playbackType:r=this.currentPlaybackType}={}){let a=i||(this.hasVideoTarget?this.activeVideo():null);return{controller:this.identifier,playbackType:r,videoUrl:a?.currentSrc||a?.src||s?.videoUrl,showSlug:this.hasShowSlugValue?this.showSlugValue:void 0,sessionMode:this.currentPrivateSessionId()?"private":"public",readyState:a?.readyState,actionRequestId:s?.action_request_id,actionId:s?.action_id,actionName:s?.action_name}}reportPlaybackError(i,{video:s=null,action:r=null,playbackType:a=this.currentPlaybackType,extra:n={}}={}){Ge(i,{...this.playbackErrorContext({video:s,action:r,playbackType:a}),...n})}releaseCurrentActionForRetry(i=this.currentAction){this.clearCurrentActionIfMatches(i),i&&(this.actionVideoQueue.items.includes(i)?this.actionVideoQueue.releaseReservationForRetry(i):this.actionVideoQueue.retryStartedNext(i))}clearCurrentActionIfMatches(i){(!i||i===this.currentAction)&&(this.currentAction=null)}recoverIdlePlayback(i){let s=this.currentIdleVideoUrl();if(s&&this.videoPlaybackManager.videoHasUrl(i,s)){let a=this.activeIdleUrls(),n=0;for(;n<a.length;){this.advanceIdleVideoIndex();let l=this.currentIdleVideoUrl();if(l&&!this.videoPlaybackManager.videoHasUrl(i,l)){this.hidePrivateLoading(),this.playIdleVideo();return}n+=1}this.hidePrivateLoading(),this.showLoading();return}s&&!this.videoPlaybackManager.videoHasUrl(i,s)?(this.hidePrivateLoading(),this.playIdleVideo()):(this.hidePrivateLoading(),this.showLoading())}applyPendingActionBodyState(i,{preserveElement:s=null}={}){this.bodyStatePolicy.applyPendingAction(i)&&(this.preloadPrivateIdleVideo(),this.updateTipActionsVisibility({preserveElement:s}))}applyConfirmedActionBodyState(i){this.bodyStatePolicy.applyConfirmedAction(i)&&(this.idleVideoRotation.resetNude(),this.updateTipActionsVisibility())}updateTipActionsVisibility({preserveElement:i=null}={}
128){this.hasTipActionTarget&&this.tipActionTargets.forEach(s=>{let r=s.dataset.camsTipPrivateOnly==="true",a={clothed:s.dataset.camsTipHasClothedVariant==="true",nude:s.dataset.camsTipHasNudeVariant==="true",clothedToNude:s.dataset.camsTipHasClothedToNudeVariant==="true"},n=s.dataset.camsTipLiveVideoSupported==="true",l=(!this.liveVideoPrivateSessionActive()||n)&&this.tipActionVisible(a,r);s.classList.toggle("hidden",!l&&s!==i)})}tipActionVisible(i,s){return this.bodyStatePolicy.tipActionVisible({variants:i,privateOnly:s,inPrivateSession:!!this.currentPrivateSessionId()})}recordPlaybackStartedIfNeeded(i=null){let s=i||(this.currentPlaybackType==="action"?this.currentAction:null);if(!s)return;let r=s.action_request_id;if(!r||this.reportedPlaybackActionRequestIds.has(r)||!this.hasMarkPlaybackStartedUrlTemplateValue)return;let a=this.markPlaybackStartedUrlTemplateValue.replace(":action_request_id",String(r));this.reportedPlaybackActionRequestIds.add(r),ve(a,{contentType:"application/json",responseKind:"json"}).then(n=>{if(n.ok){this.confirmedPlaybackActionRequestIds.add(r),this.applyConfirmedActionBodyState(s);return}this.reportedPlaybackActionRequestIds.delete(r),Ge(new Error("mark-playback-started-request-failed"),{...this.playbackErrorContext({action:s,playbackType:"action"}),status:n.status})}).catch(n=>{this.reportedPlaybackActionRequestIds.delete(r),n.name!=="AbortError"&&Ge(n,{...this.playbackErrorContext({action:s,playbackType:"action"})})})}handlePlaybackStarted(i){this.veilEarlyPulsed=!1,this.videoReady||(this.videoReady=!0,this.revealUiWhenReady()),i&&(this.actionVideoQueue.confirmStarted(i),this.activeVideo()?.ended&&this.advanceQueueAfterActionEnd()),this.recordPlaybackStartedIfNeeded(i),this.privateLoadingVisible&&this.currentPlaybackType==="idle"&&this.hidePrivateLoading({enforceMinimumDuration:!0}),!i&&this.currentPlaybackType==="idle"&&this.scheduleNextIdlePreloadWhenReady()}preloadIcons(){Promise.all(this.preloadImagesValue.map(i=>this.preloadImage(i))).then(()=>{this.iconsReady=!0,this.privateLoadingVisible||this.startVideo(),this.revealUiWhenReady()})}preloadImage(i){return new Promise(s=>{let r=new window.Image;r.onload=s,r.onerror=s,r.src=i})}delay(i){return new Promise(s=>{window.setTimeout(s,i)})}nextFrame(){return new Promise(i=>{window.requestAnimationFrame(i)})}stopVideo(){this.clearNextIdlePreloadListener(),this.actionVideoQueue.releaseReservedActions(),this.videoPlaybackManager.stop()}stopOtherVideos(){this.videoPlaybackManager.stopOtherVideos()}recordPrivateSessionActivity(){this.currentPrivateSessionId()&&this.inactivityMonitor.recordActivity()}syncInactivityMonitor(i){let s=i?.session_type==="live_video"&&i.connection_state!=="ready";if(!i||i.status!=="active"||s||this.liveVideoActionBusy){this.stopInactivityMonitor();return}this.inactivityMonitor.start(i.started_at)}stopInactivityMonitor(){this.inactivityMonitor.stop(),this.closeInactivityModal({ignoreCloseHandler:!0})}showInactivityModal(){if(this.exitInProgress){this.inactivityMonitor.abortPrompt();return}if(!this.currentPrivateSessionId()){this.inactivityMonitor.abortPrompt();return}if(!this.hasInactivityModalTarget){this.endPrivateSessionForInactivity();return}if(this.camsModalIsOpen(this.inactivityModalTarget)){this.inactivityMonitor.isLeaveCountdownActive()||this.inactivityMonitor.startLeaveCountdown();return}this.resetInactivityLeaveButtonLabel(),this.openCamsModal(this.inactivityModalTarget),this.inactivityMonitor.startLeaveCountdown()}closeInactivityModal({ignoreCloseHandler:i=!1}={}){this.ignoreInactivityModalCloseHandler=i,this.hasInactivityModalTarget&&this.camsModalIsOpen(this.inactivityModalTarget)&&(this.closeCamsModal(this.inactivityModalTarget),this.ignoreInactivityModalCloseHandler||this.handleInactivityModalClose()),this.ignoreInactivityModalCloseHandler=!1,this.resetInactivityLeaveButtonLabel()}continueAfterInactivity(i){i.preventDefault(),this.inactivityMonitor.dismissPrompt(),this.closeInactivityModal()}handleInactivityModalClose(){if(this.ignoreInactivityModalCloseHandler){this.ignoreInactivityModalCloseHandler=!1;return}this.inactivityMonitor.dismissPrompt(),this.resetInactivityLeaveButtonLabel()}
128leaveAfterInactivity(i){i.preventDefault(),this.inactivityMonitor.cancelLeaveCountdown(),this.endPrivateSessionForInactivity({reason:"user_ended"})}updateInactivityLeaveCountdown(i){if(!this.hasInactivityLeaveButtonTarget)return;let s=this.inactivityLeaveButtonTarget.dataset.camsInactivityLeaveLabel,r=this.inactivityLeaveButtonTarget.dataset.camsInactivityLeaveCountdownLabel;if(i<=0){this.inactivityLeaveButtonTarget.textContent=s;return}this.inactivityLeaveButtonTarget.textContent=r.replace("%{seconds}",String(i))}resetInactivityLeaveButtonLabel(){this.hasInactivityLeaveButtonTarget&&(this.inactivityLeaveButtonTarget.textContent=this.inactivityLeaveButtonTarget.dataset.camsInactivityLeaveLabel)}async endPrivateSessionForInactivity({reason:i="system_ended"}={}){if(!this.currentPrivateSessionId()||this.exitInProgress)return;this.stopInactivityMonitor(),this.exitInProgress=!0,this.syncImmersiveUi();let s=this.liveVideoPrivateSessionActive(),r=this.showEndingLoadingForMinimum(),a=await this.privateSessionClient.end({reason:i,resumeOnFailure:!s}),n=!!a;await r;let l=a?.html||this.pendingPrivateSessionFeedbackHtml;if(n&&l){this.exitInProgress=!1,this.completePrivateSessionEnd(l),this.uiTargets.forEach(d=>{d.classList.remove("hidden")}),this.hideEndingLoading();return}if(n){window.location.href=this.hasPublicChatUrlValue?this.publicChatUrlValue:"/";return}if(l){this.exitInProgress=!1,this.completePrivateSessionEnd(l),this.uiTargets.forEach(d=>{d.classList.remove("hidden")}),this.hideEndingLoading();return}this.exitInProgress=!1,this.hideEndingLoading(),this.uiTargets.forEach(d=>{d.classList.remove("hidden")}),this.syncImmersiveUi(),s&&this.privateSessionClient.resume(),this.syncInactivityMonitor(this.privateSessionClient.current),s||this.videoPlaybackManager.playCurrentVideo(this.activeVideo())}};var bd=class extends u{static targets=["original","amount"];static values={endsAt:String,originalLabel:String};connect(){this.timer=setInterval(()=>this.#e(),1e3),this.#e()}disconnect(){clearInterval(this.timer)}#e(){Date.now()<=Date.parse(this.endsAtValue)||(this.originalTarget.hidden=!0,this.amountTarget.textContent=this.originalLabelValue,clearInterval(this.timer))}};var RT=class{static log(...s){console.log(...s)}static error(...s){console.error(...s)}static warn(...s){console.warn(...s)}},te=RT;var FP=2e3,DP=1e3,CC=.001,RP=100,NP=600,UP=15e3,HP=5e3,qP=15e3,$P=1,GP=110,EC="video played till the end",WP="Toolcall errored, aknowledge this to the user",yd="clothed",LC=128e3;function jP(i){if(!Array.isArray(i))return[];let s=[];for(let r of i){if(!r)continue;let a=Array.isArray(r.urls)?r.urls.filter(Boolean):r.urls;if(!a||Array.isArray(a)&&a.length===0)continue;let n={urls:a};r.username&&(n.username=r.username),r.credential&&(n.credential=r.credential),s.push(n)}return s}function KP(i){return i.some(s=>(Array.isArray(s.urls)?s.urls:[s.urls]).some(a=>String(a).startsWith("turn")))}function zP(i){let s=i.match(/^a=rtpmap:(\d+) opus\/48000.*$/m);if(!s)return i;let r=new RegExp(`^(a=fmtp:${s[1]} .*)$`,"m");return r.test(i)?i.replace(r,a=>{let n=a;return/maxaveragebitrate=/.test(n)||(n+=`;maxaveragebitrate=${LC}`),/useinbandfec=/.test(n)||(n+=";useinbandfec=1"),n}):i.replace(s[0],`${s[0]}\r
129a=fmtp:${s[1]} maxaveragebitrate=${LC};useinbandfec=1`)}function YP(i,s=FP){return i.iceGatheringState==="complete"?Promise.resolve():new Promise(r=>{let a=()=>{i.removeEventListener("icegatheringstatechange",n),clearTimeout(l),r()},n=()=>{i.iceGatheringState==="complete"&&a()},l=setTimeout(a,s);i.addEventListener("icegatheringstatechange",n)})}function XP(i){let s=window.RTCRtpReceiver;if(!i?.setCodecPreferences||!s?.getCapabilities)return!1;try{let r=s.getCapabilities("video")?.codecs;if(!Array.isArray(r))return!1;let a=r.filter(l=>l.mimeType?.toLowerCase()==="video/h264");if(a.length===0)return!1;let n=r.filter(l=>l.mimeType?.toLowerCase()!=="video/h264");return i.setCodecPreferences([...a,...n]),!0}catch{return!1}}var Sd=class{#e;#t;#i=null;#s;#r;#a;#n;#o;#l;#h;#c;#u;#g=null;#d=null;#m=null;#f=null;#p=null;#b=null;#v=null;#T=!1;#y=!1;#S="idle";#w=!1;#L=!1;#I=!1;#C=!1;#E=0;#k={fps:0,freezeCount:0,videoBitrateKbps:0,videoCodec:null,rttMs:null};#x=null;#A=null;#B=null;#_=!1;#P=!1;#O=0;#N={};#$={};#D=yd;#M=[];#V=new Set;#R=!1;#F=null;constructor(s,{onStatus:r,onTranscript:a,onActionQueued:n,onActionState:l,onActionError:d,onRemoteAudio:m,onConnectionInterrupted:v,onConnectionRestored:E,onError:D,actionVideoElements:R,actionVideoElement:W}={}
129){this.#e=s,this.#t=Array.from(R||[W]).filter(Boolean),this.#s=r||(()=>{}),this.#r=a||(()=>{}),this.#a=n||(()=>{}),this.#n=l||(()=>{}),this.#o=d||(()=>{}),this.#l=m||(()=>{}),this.#h=v||(()=>{}),this.#c=E||(()=>{}),this.#u=D||(()=>{}),this.#P=!!s?.muted}get status(){return this.#S}get micOn(){return this.#w}get micDenied(){return this.#L}get quality(){return this.#k}get playbackSuppressed(){return this.#_}get transport(){let s=this.#g;return{ice:s?.iceConnectionState||"\u2014",connection:s?.connectionState||"\u2014",relayOnly:s?s.getConfiguration().iceTransportPolicy==="relay":null,channel:this.#d?.readyState||"\u2014",videoTrack:this.#f?.readyState||"\u2014"}}async connect({iceServers:s,relayOffer:r}){if(this.#g||this.#y)return;this.#Ce("connecting");let a=jP(s),n=KP(a);n||te.warn('[live-video] no TURN server in the ICE config \u2014 falling back to policy "all"');let l=new window.RTCPeerConnection({iceServers:a,iceTransportPolicy:n?"relay":"all"});this.#g=l,this.#d=l.createDataChannel("events"),this.#d.onopen=()=>this.#ee(),this.#d.onclose=()=>this.#Te(),this.#d.onerror=()=>this.#Te(),this.#d.onmessage=m=>this.#W(m);let d=l.addTransceiver("video",{direction:"recvonly"});if(XP(d),await this.#j(l),l===this.#g){l.ontrack=m=>this.#q(m),l.oniceconnectionstatechange=()=>{this.#K(l)},l.onconnectionstatechange=()=>{this.#K(l)};try{let m=await l.createOffer();if(await l.setLocalDescription(m),await YP(l),l!==this.#g)return;let v=await r({sdp:l.localDescription.sdp,type:l.localDescription.type});if(l!==this.#g)return;if(!v?.sdp)throw new Error("malformed answer");this.#G(v.action_clips),this.#Ce("warming"),await l.setRemoteDescription({type:v.type||"answer",sdp:zP(v.sdp)})}catch{this.#se("signalling_failed");return}this.#re(l)}}async startMic(){if(!this.#m)return!1;if(!this.#p){let r=await this.#U();if(!r)return!1;await this.#m.replaceTrack(r.getAudioTracks()[0])}let s=this.#p?.getAudioTracks()[0];return s?(s.enabled=!0,this.#w=!0,!0):!1}stopMic(){let s=this.#p?.getAudioTracks()[0];s&&(s.enabled=!1),this.#w=!1}sendText(s){let r=s?.trim();return r?this.sendEvent({type:"user_message",text:r}):!1}sendEvent(s){return this.#d?.readyState!=="open"?!1:(this.#d.send(JSON.stringify(s)),!0)}setMuted(s){return this.#P=!!s,this.#t.forEach(r=>{r.muted=this.#P}),this.#e&&!this.#_&&(this.#e.muted=this.#P),this.#P}suppressPlayback(){return this.#y||!this.#e?!1:(this.#O+=1,this.#_||(this.#_=!0,this.#e.muted=!0,this.#e.pause()),!0)}resumePlayback(){if(!this.#ae())return;let s=++this.#O;this.#le(s)}close(){this.#y=!0,this.#O+=1,this.#ie(),clearInterval(this.#b),this.#b=null,this.#ae(),this.#ce(),this.#p?.getTracks().forEach(r=>r.stop()),this.#p=null,this.#w=!1,this.#m=null,this.#f&&(this.#f.onended=null),this.#f=null,this.#I=!1,this.#C=!1,this.#E=0,this.#A=null,this.#B=null,this.#d&&(this.#d.onopen=null,this.#d.onclose=null,this.#d.onerror=null,this.#d.onmessage=null,this.#d=null);let s=this.#g;this.#g=null,s&&(s.ontrack=null,s.oniceconnectionstatechange=null,s.onconnectionstatechange=null,s.close()),this.#e&&(this.#e.srcObject=null),this.#S!=="error"&&this.#Ce("closed")}async#j(s){let r=await this.#U();if(r){let a=r.getAudioTracks()[0];a.enabled=!1,a.contentHint="speech",this.#m=s.addTrack(a,r);return}this.#m=s.addTransceiver("audio",{direction:"sendrecv"}).sender}async#U(){if(this.#p)return this.#p;try{let s=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0}});if(this.#y)return s.getTracks().forEach(r=>r.stop()),null;this.#p=s,this.#L=!1}catch{this.#p=null,this.#L=!0}return this.#p}async#q(s){let r=this.#e;if(r&&(r.srcObject||(r.srcObject=new window.MediaStream),r.srcObject.addTrack(s.track),s.track.kind==="video")){this.#f=s.track,s.track.onended=()=>this.#oe(s.track);try{await r.play()}catch{r.muted=!0;try{await r.play()}catch{this.#se("video_playback_failed");return}}if(this.#y||s.track!==this.#f||s.track.readyState==="ended")return;this.#I=!0,this.#ke()}}#W(s){let r;try{r=JSON.parse(s.data)}catch{return}r.error?this.#se("data_channel_error"):r.event==="ready"?this.#ee():r.role==="toolcall"&&r.id?this.#Q(r):r.type==="video_reproduction_start"&&!this.#Z()?this.#ue():r.type==="video_reproduction_end"&&!this.#Z()?this.#ve():r.role&&r.text&&this.#r({role:r.role,text:r.text})}#G(s){this.#N=s?.clips&&typeof s.clips=="object"?s.clips:{},this.#$=s?.transitions&&typeof s.transitions=="object"?s.transitions:{}}#Z(){return Object.keys(this.#N).length>0}#Q({id:s,name:r}){this.#V.has(s)||(this.#V.add(s),this.#M.push({id:s,name:r}),this.#a({actionName:r,toolCallId:s}),this.#te())}async#te(){if(this.#R)return;this.#R=!0;let s=!1,r=null;try{for(;!this.#y&&this.#M.length>0;)r=await this.#z(this.#M.shift()),s||=r.bodyStateChanged}finally{this.#R=!1}this.#y||!r||(r.result===null?this.#o({bodyStateChanged:s}):r.started&&(s?this.#n(!1,{bodyStateChanged:!0}):this.#n(!1)))}async#z(s){let r=!1,a=null,n=!1,l=!1,d=!1;try{let m=this.#ge(s.name);if(!m)throw new Error(`no clip for tool call "${s.name}"`);if(!await this.#J())throw new Error("remote audio did not become silent");let v=m.bodyState===this.#D,E=()=>
129{if(!v&&this.sendEvent({event_type:"change_idle_state"})&&(v=!0,d=!0,this.#D=m.bodyState),!r){r=!0;let D=this.#_;l=this.suppressPlayback()&&!D,this.#n(!0,{actionName:s.name,toolCallId:s.id})}};for(let[D,R]of m.urls.entries()){let Q=D===m.urls.length-1?()=>{!n&&!this.#y&&(n=this.#pe(s.id,EC))}:null;await this.#me(R,E,Q)}a=EC}catch(m){this.#y||te.warn("[live-video] action clip playback failed",m)}finally{this.#de(),this.#y||(n||this.#pe(s.id,a),l&&this.resumePlayback())}return{bodyStateChanged:d,result:a,started:r}}async#J(){let s=this.#g,r=Date.now()+UP,a=null,n=null;for(;!this.#y&&s===this.#g&&Date.now()<r;){let l;try{l=await s.getStats()}catch{return!1}let d=this.#ne(l,a);if(a=d.audioSample,d.known&&!d.active){if(n||=Date.now(),Date.now()-n>=NP)return!0}else n=null;await new Promise(m=>setTimeout(m,RP))}return!1}#ne(s,r=this.#B){let a=!1,n=!1,l=0,d=0,m=!1;s.forEach(E=>{E.type!=="inbound-rtp"||E.kind!=="audio"||(Number.isFinite(E.audioLevel)&&(a=!0,n||=E.audioLevel>CC),Number.isFinite(E.totalAudioEnergy)&&Number.isFinite(E.totalSamplesDuration)&&(m=!0,l+=E.totalAudioEnergy,d+=E.totalSamplesDuration))});let v=m?{totalAudioEnergy:l,totalSamplesDuration:d}:r;if(!a&&m&&r){let E=l-r.totalAudioEnergy,D=d-r.totalSamplesDuration;E===0?a=!0:E>0&&D>0&&(a=!0,n=Math.sqrt(E/D)>CC)}return{known:a,active:n,audioSample:v}}#ge(s){let r=this.#N[s];if(!r||typeof r!="object")return null;if(r[this.#D])return{urls:[r[this.#D]],bodyState:this.#D};let[a,n]=Object.entries(r)[0]||[],l=this.#D!==yd&&a===yd;if(!n||l)return null;let d=this.#$[a];return{urls:d?[d,n]:[n],bodyState:a}}#me(s,r,a=null){let n=this.#i,l=this.#t.find(d=>d!==n)||this.#t[0];return l?new Promise((d,m)=>{let v=!1,E=null,D=null,R=null,W=null,Q=!1,X=!1,ie=se=>{v||(v=!0,clearTimeout(D),clearTimeout(R),E!==null&&l.cancelVideoFrameCallback?.(E),W!==null&&l.cancelVideoFrameCallback?.(W),l.onended=null,l.onerror=null,l.onloadedmetadata=null,this.#F=null,se())},ce=(se,J)=>{if(v)return;let ee=Number.isFinite(J?.mediaTime)?J.mediaTime:l.currentTime,re=Math.max(0,Math.min(l.duration-$P,GP));ee>=re?a():l.requestVideoFrameCallback?W=l.requestVideoFrameCallback(ce):R=setTimeout(ce,Math.max((re-ee)*1e3,50))},oe=()=>{Q||!a||!Number.isFinite(l.duration)||(Q=!0,ce())},Z=()=>{v||X||(X=!0,clearTimeout(D),D=null,l.classList.remove("opacity-0"),n&&n!==l&&this.#fe(n),this.#i=l,r(),oe())};l.muted=this.#P,l.classList.add("opacity-0"),l.classList.remove("hidden"),l.onended=()=>ie(d),l.onerror=()=>ie(()=>m(new Error(`action clip failed: ${s}`))),l.onloadedmetadata=()=>{X&&oe()},this.#F=()=>ie(()=>m(new Error("action playback cancelled"))),D=setTimeout(()=>ie(()=>m(new Error("action clip did not present a frame"))),qP),l.src=s,l.play().then(()=>{v||(l.requestVideoFrameCallback?E=l.requestVideoFrameCallback(()=>{E=null,Z()}):Z())},se=>ie(()=>m(se)))}):Promise.reject(new Error("action video unavailable"))}#pe(s,r){return this.sendEvent({type:"client_tool_result",tool_call_id:s,result:r||WP,is_error:r===null})}#ce(){this.#M=[],this.#V.clear(),this.#D=yd,this.#F?.(),this.#de()}#de(){this.#t.forEach(s=>this.#fe(s)),this.#i=null}#fe(s){s.pause(),s.classList.add("hidden"),s.classList.remove("opacity-0"),s.removeAttribute("src"),s.load?.()}#ee(){this.#d?.readyState==="open"&&(this.#C=!0,this.#ke())}#ue(){this.#E+=1,this.#E===1&&this.#n(!0)}#ve(){this.#E!==0&&(this.#E-=1,this.#E===0&&this.#n(!1))}#Te(){this.#y||(this.#C=!1,this.#se("data_channel_failed"))}#oe(s){this.#y||s!==this.#f||(this.#I=!1,this.#se("video_track_ended"))}#K(s){if(s!==this.#g)return;if(s.iceConnectionState==="failed"){this.#se("ice_failed");return}if(["failed","closed"].includes(s.connectionState)){this.#se("connection_failed");return}if(s.connectionState==="connected"&&["connected","completed"].includes(s.iceConnectionState)){this.#ie(),this.#T&&(this.#T=!1,this.#c());return}(s.connectionState==="disconnected"||s.iceConnectionState==="disconnected")&&(this.#T||(this.#T=!0,this.#h()),!this.#v&&(this.#v=setTimeout(()=>{if(this.#v=null,s!==this.#g)return;s.connectionState==="connected"&&["connected","completed"].includes(s.iceConnectionState)||this.#se("connection_lost")},HP)))}#ie(){clearTimeout(this.#v),this.#v=null}#ke(){this.#I&&this.#C&&this.#d?.readyState==="open"&&this.#Ce("live")}#re(s){this.#b=setInterval(async()=>
129{if(s!==this.#g)return;let r;try{r=await s.getStats()}catch{return}let a={fps:0,freezeCount:0,videoBitrateKbps:0,videoCodec:null,rttMs:null},n=null;r.forEach(m=>{m.type==="inbound-rtp"&&m.kind==="video"?(n=m,a.fps=Math.round(m.framesPerSecond||0),a.freezeCount=m.freezeCount||0):m.type==="candidate-pair"&&(m.nominated||m.state==="succeeded")&&typeof m.currentRoundTripTime=="number"&&(a.rttMs=Math.round(m.currentRoundTripTime*1e3))});let l=this.#x;if(n&&l&&n.timestamp>l.timestamp){let m=(n.timestamp-l.timestamp)/1e3,v=((n.bytesReceived||0)-l.bytesReceived)*8;a.videoBitrateKbps=Math.max(0,Math.round(v/m/1e3))}n&&(this.#x={timestamp:n.timestamp,bytesReceived:n.bytesReceived||0},a.videoCodec=r.get(n.codecId)?.mimeType||null,l&&a.videoCodec&&a.videoCodec!==this.#A&&(this.#A=a.videoCodec,te.log("[live-video] inbound video negotiated",{codec:a.videoCodec,bitrateKbps:a.videoBitrateKbps})));let d=this.#ne(r);this.#B=d.audioSample,d.active&&this.#l(),this.#k=a},DP)}#ae(){return!this.#_||(this.#_=!1,!this.#e)?!1:(this.#e.muted=this.#P,!0)}async#le(s){try{await this.#e.play()}catch{if(this.#y||s!==this.#O)return;this.#e.muted=!0;try{await this.#e.play()}catch{if(this.#y||s!==this.#O)return;this.#_=!0,this.#e.pause()}}}#Ce(s){this.#S!==s&&(this.#S=s,this.#s(s))}#se(s){this.#S==="error"||this.#y||(this.#ie(),this.#S="error",this.#s("error"),this.#u(s))}};var QP=5e3,JP=10,xs=1e4,ZP=5e3,eV=2e3,tV=8e3,iV=2e4,sV=3e5,rV=2e3,aV=3e4,nV=20,oV=1e3,lV=/^(?:\[[^\]\r\n]+\]\s*)+/,wd=class extends u{static targets=["stage","video","actionVideo","status","statusText","keyboardButton","listeningBar","loadingOverlay","loadingCancelButton","loadingSpinner","loadingStatusText","messageInput","micDeniedStatus","sendButton","textComposer","voiceButton","voiceTooltip","captions","typingTemplate","moderationMessage","debugPanel","debugStatus","debugFps","debugBitrate","debugCodec","debugRtt","debugFreezes","debugSize","debugMic","debugIce","debugConnection","debugChannel","debugPolicy"];static values={sessionUrl:String,offerUrl:String,readyUrl:String,privateSessionEndUrl:String,messages:Object};#e=null;#t=!1;#i=!1;#s=0;#r=!1;#a=[];#n=0;#o=null;#l=!1;#h=0;#c=null;#u=null;#g=!1;#d=!1;#m=!1;#f=null;#p=!1;#b=!1;#v=!1;#T=!1;#y=null;#S=null;#w=!1;#L=null;#I=!1;#C=[];#E=null;#k=null;#x=null;#A=!1;#B=null;#_=null;connect(){this.onPageHide=()=>this.#ae(),window.addEventListener("pagehide",this.onPageHide),this.#Y(),this.#P()}#P(){let i=this.element.dataset["cams-showInitialPrivateSessionValue"]||this.element.getAttribute("data-cams--show-initial-private-session-value");if(!i)return;let s;try{s=JSON.parse(i)}catch{return}!s?.id||s.status==="ended"||this.start({detail:{id:s.id,sessionType:s.session_type||"classic"}})}disconnect(){window.removeEventListener("pagehide",this.onPageHide),this.#qe(),clearTimeout(this.#_),this.#ae()}debugPanelTargetConnected(){clearInterval(this.#o),this.#o=setInterval(()=>this.#$e(),oV)}debugPanelTargetDisconnected(){this.#qe()}moderationMessageTargetConnected(i){this.#u==="live_video"&&(clearTimeout(this.#_),this.#_=setTimeout(()=>i.remove(),aV),String(i.dataset.privateSessionId)===String(this.#c)&&this.#Te())}start(i){let s=i?.detail?.id||this.#c,r=this.#x?.privateSessionId,a=r&&String(s)!==String(r);this.#c=s,this.#u=i?.detail?.sessionType||this.#u||"live_video",a&&(this.#x=null,clearTimeout(this.#k),this.#k=null),this.#Oe({cancellable:this.#u==="live_video"}),this.#Y(),this.#u==="live_video"&&(this.#e||this.#t||(this.#Ne(),this.#i=!1,this.#A=!1,this.#s=0,this.#r=!1,this.#be(i?.detail?.startedAt),this.#$()))}stop(){this.#i=!0,this.#ae(),this.#se(),this.#c=null,this.#u=null,this.#g=!1,this.#T=!1,this.#Oe(),this.#Ne(),this.#Ee(),this.#Y(),this.hasLoadingStatusTextTarget&&(this.loadingStatusTextTarget.textContent=this.messagesValue.starting)}cancel(i){if(i?.preventDefault(),this.#u!=="live_video"||this.#i)return;let s=this.#c;this.#i=!0,this.#ae(),this.#Ue(),this.#se(),this.#oe({privateSessionId:s,reason:"user_ended",exitImmediately:!0})}async toggleMic(){this.#g?this.stopVoiceMode():await this.startVoiceMode()}syncAudio(i){let s=!!i.detail?.muted;this.#e?this.#e.setMuted(s):this.videoTarget.muted=s}
129updateComposer(){this.#Ee(),this.#le()?.value?.trim()&&this.#Pe(),this.#Y()}async startVoiceMode(){let i=this.#e;if(!i||i.status!=="live"||!this.#p||this.#l||this.#T)return;let s=++this.#h,r=()=>s===this.#h&&i===this.#e&&i.status==="live"&&this.#p&&!this.#i&&!this.#T;this.#l=!0,this.#Pe(),this.voiceButtonTarget.disabled=!0;try{let a=await i.startMic();if(!r()){this.#N(i);return}this.#g=a,a?this.#Ee():(i.stopMic(),this.#He())}catch{r()?(i.stopMic(),this.#g=!1,this.#He()):this.#N(i)}finally{s===this.#h&&(this.#l=!1,this.#Y())}}stopVoiceMode(){this.#d=!1,this.#O(),this.#e?.stopMic(),this.#g=!1,this.#Ee(),this.#Y(),this.#le()?.focus()}#O(){this.#h+=1,this.#l=!1}#N(i){i===this.#e&&(this.#l||this.#g)||i.stopMic()}async submitMessage(i){if(this.#u!=="live_video"||(i.preventDefault(),i.stopImmediatePropagation(),!this.#p||this.#v||this.#T||this.#w))return;let s=this.#le(),r=s?.value?.trim(),a=this.#e,n=this.#c;if(!(!r||a?.status!=="live"||!n)){this.#w=!0,this.#Y();try{let l=await H(i.currentTarget.action,{body:JSON.stringify({message:r,private_session_id:n}),contentType:"application/json",responseKind:"json"}),d=await l.json.catch(()=>null);if(!l.ok||a!==this.#e||a.status!=="live"||this.#i)return;if(d?.decision!=="pending"){this.#Re(s);return}if(!a.sendText(r))return;this.#Re(s),this.#Ge(),this.#Me("user",r),this.#B=r}catch{}finally{this.#w=!1,this.#Y()}}}requestAction(i){let s=i.detail?.actionName?.trim();!s||this.#e?.status!=="live"||!this.#p||this.#v||this.#T||(i.detail.sent=this.#e.sendText(`Perform the "${s}" action exactly once now. Call only the matching action tool once, then return to the conversation. Do not repeat it.`),i.detail.sent&&(this.#v=!0,this.#Be(),this.dispatch("activity"),this.dispatch("actionRequested"),this.#Y()))}async#$(){this.#t=!0;let i=this.#n;try{let s=await this.#D(i);if(!s||i!==this.#n)return;this.#e=new Sd(this.videoTarget,{onStatus:r=>this.#F(r),onTranscript:({role:r,text:a})=>this.#W(r,a),onActionQueued:r=>this.#pe(r),onActionState:(r,a)=>this.#me(r,a),onActionError:r=>this.#ce(r),onRemoteAudio:()=>this.#z(),onConnectionInterrupted:()=>this.#j(),onConnectionRestored:()=>this.#U(),onError:r=>this.#ee(this.messagesValue.unavailable,{rtcReason:r}),actionVideoElements:this.actionVideoTargets}),await this.#e.connect({iceServers:s.ice_servers,relayOffer:r=>this.#M(s.connect_token,r,i)})}catch{i===this.#n&&this.#ee(this.messagesValue.unavailable,{rtcReason:"connection_initialization_failed"})}finally{i===this.#n&&(this.#t=!1)}}async#D(i){let s;try{s=await H(this.sessionUrlValue,{responseKind:"json"})}catch{return i===this.#n&&this.#ee(this.messagesValue.unavailable,{rtcReason:"session_request_failed"}),null}if(s.ok){let a=await s.json;return i!==this.#n?null:(this.#r=!1,a)}let r=await s.json.catch(()=>null);return i!==this.#n?null:r?.busy?(this.#V(r.private_session),null):(this.#ee(this.messagesValue.unavailable,{rtcReason:"session_request_failed"}),null)}async#M(i,s,r){let a=await H(this.offerUrlValue,{body:{connect_token:i,sdp:s.sdp,sdp_type:s.type},responseKind:"json"});if(!a.ok){let l=await a.json.catch(()=>null);if(r!==this.#n)return null;if(l?.busy)return this.#V(l.private_session),null;throw new Error("signalling rejected")}let n=await a.json;return r===this.#n?n:null}#V(i){if(this.#r=!0,i?.status==="ended"){this.#fe(i);return}this.#R()||this.#ve()}#R(){if(this.#s>=JP||this.#i)return!1;this.#s+=1,this.#ae({preserveLoading:!0});let i=this.#n;return setTimeout(()=>{i===this.#n&&!this.#i&&this.#$()},QP),!0}#F(i){i==="live"&&this.#q()}#j(){this.dispatch("connectionInterrupted")}#U(){this.dispatch("connectionRestored")}async#q(){if(this.#p||this.#b)return;this.#b=!0;let i=this.#e,s=this.#n,r;try{if(r=await H(this.readyUrlValue,{responseKind:"json"}),!r.ok)throw new Error("activation rejected");let a=await r.json;if(!a?.private_session)throw new Error("malformed activation");if(i!==this.#e||s!==this.#n||this.#i)return;this.#p=!0,this.#Se(),this.#s=0,this.#Ce(),this.#Ue(),this.#Y(),this.#Fe(),this.dispatch("live",{detail:{privateSession:a.private_session,muted:this.videoTarget.muted}})}catch{i===this.#e&&s===this.#n&&this.#ee(this.messagesValue.unavailable,{rtcReason:"activation_failed"})}finally{i===this.#e&&s===this.#n&&(this.#b=!1)}}#W(i,s){let r=s?.trim();if(!r)return;if(i==="user"){if(this.#B===r){this.#B=null;return}this.#Ge();let n=this.#Me("user",r,{spoken:!0});this.#te(r,n,this.#L),this.dispatch("activity");return}if(!["agent","assistant"].includes(i))return;let a=r.replace(lV,"").trimStart();if(!a){this.#C.length===0&&this.#Le(),this.dispatch("activity");return}if(!this.#I){this.#C.push({role:i,text:a}),this.#ne(),this.dispatch("activity");return}this.#G(i,a),this.dispatch("activity")}#G(i,s){this.#Me(i,s),this.#Z(s)}async#Z(i){let s=this.#e,r=this.#c,a=this.#le()?.form?.action;if(!(!a||s?.status!=="live"||!r))try{let n=await H(a,{body:JSON.stringify({message:i,private_session_id:r,assistant_transcript:!0}),contentType:"application/json",responseKind:"json"});
129if(!n.ok){this.#Q(new Error("cams-live-video-assistant-transcript-request-failed"),r,{statusCode:n.statusCode});return}(await n.json.catch(()=>null))?.decision!=="persisted"&&this.#Q(new Error("cams-live-video-assistant-transcript-unconfirmed"),r)}catch(n){n.name!=="AbortError"&&this.#Q(n,r)}}#Q(i,s,r={}){Ge(i,{controller:this.identifier,action:"persistAssistantTranscript",privateSessionId:s,...r})}async#te(i,s,r){let a=this.#e,n=this.#c,l=this.#le()?.form?.action;if(!l||a?.status!=="live"||!n)return;let d=await H(l,{body:JSON.stringify({message:i,private_session_id:n,voice_transcript:!0}),contentType:"application/json",responseKind:"json"}).catch(()=>null),m=await d?.json?.catch(()=>null);!(d?.ok&&m?.decision==="pending")&&a===this.#e&&!this.#i&&(s?.remove(),r?.remove(),this.#L===r&&(this.#L=null))}#z(){this.#ge(),this.#I=!0,this.#J()}#J(){this.#C.splice(0).forEach(({role:i,text:s})=>this.#G(i,s))}#ne(){if(this.#E)return;let i=this.#e;this.#E=setTimeout(()=>{this.#E=null,!(i!==this.#e||this.#i)&&this.#z()},rV)}#ge(){clearTimeout(this.#E),this.#E=null}#me(i,s={}){if(this.#T===i){i&&s.toolCallId&&(this.dispatch("actionStarted",{detail:s}),this.dispatch("activity"));return}this.#T=i,i?(this.#Ie(),this.#v=!1,this.#Ae(),this.#d||=this.#l||this.#g&&!!this.#e?.micOn,this.#O(),this.#e?.stopMic(),this.#g=!1,this.#Ee(),this.#Le(),this.dispatch("actionStarted",{detail:s})):(this.#he(),this.#v=!1,this.dispatch("actionEnded",{detail:s})),this.#Y(),this.dispatch("activity"),i||this.#de()}#pe(i={}){this.#Ie(),this.dispatch("actionQueued",{detail:i}),!this.#T&&(this.#v=!0,this.#Y())}#ce(i={}){this.#Ie(),this.#he(),this.#v=!1,this.#T=!1,this.dispatch("actionFailed",{detail:i}),this.#Y(),this.dispatch("activity"),this.#de()}#de(){this.#d&&(this.#d=!1,this.startVoiceMode())}#fe(i=null){if(this.#i)return;let s=this.#c;this.#i=!0,this.#ae(),this.#se(),this.dispatch("capacity",{detail:{id:s,privateSession:i}})}#ee(i=this.messagesValue.unavailable,{exitImmediately:s=!1,rtcReason:r="unknown"}={}){if(this.#i)return;let a=this.#c,n=this.#ue(r);this.dispatch("connectionLost"),this.#i=!0,this.#ae(),this.#_e(i),this.#oe({privateSessionId:a,reason:"connection_lost",rtcDiagnostics:n,exitImmediately:s})}#ue(i){let s=this.#e?.transport||{};return{rtc_reason:i,rtc_ice_state:s.ice,rtc_connection_state:s.connection,rtc_data_channel_state:s.channel,rtc_video_track_state:s.videoTrack,rtc_relay_only:s.relayOnly}}#ve(){this.#ee(this.messagesValue.loadingUnavailable,{exitImmediately:!0,rtcReason:"capacity_retries_exhausted"})}#Te(){if(this.#i||!this.#c)return;let i=this.#c;this.#i=!0,this.#ae(),this.#se(),this.#oe({privateSessionId:i,reason:"system_ended",exitImmediately:!0})}async#oe({privateSessionId:i=this.#c,reason:s="system_ended",rtcDiagnostics:r={},exitImmediately:a=!1}={}){let n={privateSessionId:i};if(this.#x=n,a?this.#re(i,null,null,n):this.#ke(i,n),!this.hasPrivateSessionEndUrlValue){s==="connection_lost"&&this.#ie(n),this.#re(i,null,null,n);return}try{let l={reason:s,private_session_id:i};s==="connection_lost"&&Object.assign(l,r);let d=await Ye(this.privateSessionEndUrlValue,{body:l,responseKind:"json"});if(this.#x!==n)return;if(!d?.ok){s==="connection_lost"&&this.#ie(n),this.#re(i,null,null,n);return}let m=await d.json.catch(()=>null);if(s==="connection_lost"){if(!(m?.private_session?.status==="ended"&&typeof m.refunded_tokens=="number"&&Number.isFinite(m.refunded_tokens))){this.#ie(n),this.#re(i,null,null,n);return}this.#K(m.refunded_tokens)}m?.private_session?this.#re(i,m.private_session,m.html,n):this.#re(i,null,null,n)}catch{s==="connection_lost"&&this.#ie(n),this.#re(i,null,null,n)}}#K(i){let s=Math.max(Number(i)||0,0),r=s>0?this.messagesValue.connectionLostRefunded.replace("%{tokens}",String(s)):this.messagesValue.connectionLostNoRefund;this.dispatch("interruption",{detail:{message:r,refundedTokens:s}})}#ie(i){this.#x!==i||i.interruptionUnconfirmed||(i.interruptionUnconfirmed=!0,this.dispatch("interruption",{detail:{message:this.messagesValue.connectionLostUnconfirmed,refundedTokens:null}}))}#ke(i,s){clearTimeout(this.#k),this.#k=setTimeout(()=>
129{this.#ie(s),this.#re(i,null,null,s)},eV)}#re(i,s=null,r=null,a=null){this.#x!==a||this.#A||!i||(this.#A=!0,clearTimeout(this.#k),this.#k=null,this.dispatch("ended",{detail:{privateSession:s||{id:i,status:"ended",session_type:"live_video"},html:r}}))}#ae({preserveLoading:i=!1}={}){this.#n+=1,this.#t=!1,i||this.#Se(),clearTimeout(this.#k),this.#k=null,this.#e?.close(),this.#e=null,this.#g=!1,this.#p=!1,this.#b=!1;let s=this.#v||this.#T;this.#v=!1,this.#T=!1,this.#Ie(),this.#he(),s&&this.dispatch("actionFailed"),this.#w=!1,this.#d=!1,this.#O(),this.#I=!1,this.#C=[],this.#ge(),this.#B=null,this.#Le(),this.#Pe(),this.#Y()}#le(){return this.hasMessageInputTarget?this.messageInputTarget:null}#Ce(){this.stageTarget.classList.remove("hidden"),this.videoTarget.classList.remove("hidden")}#se(){this.stageTarget.classList.add("hidden"),this.videoTarget.classList.add("hidden")}#xe(i){this.hasLoadingOverlayTarget&&this.hasLoadingStatusTextTarget&&(this.loadingStatusTextTarget.textContent=i,this.loadingOverlayTarget.classList.remove("hidden")),this.stageTarget.classList.remove("hidden"),this.hasStatusTarget&&(this.statusTextTarget.textContent=i,this.statusTarget.classList.remove("hidden"))}#_e(i){this.#xe(i),this.hasLoadingSpinnerTarget&&this.loadingSpinnerTarget.classList.add("hidden")}#Ue(){this.hasLoadingOverlayTarget&&this.loadingOverlayTarget.classList.add("hidden"),this.hasStatusTarget&&this.statusTarget.classList.add("hidden")}#Y(){if(!this.hasTextComposerTarget||!this.hasListeningBarTarget)return;let i=this.#g&&!!this.#e,s=this.#v||this.#T;this.textComposerTarget.classList.toggle("hidden",i||s),this.listeningBarTarget.classList.toggle("hidden",!i||s),this.listeningBarTarget.classList.toggle("flex",i&&!s);let r=this.#le(),n=this.#u==="live_video"&&!this.#p||s||this.#w;if(r&&(r.disabled=n),this.hasKeyboardButtonTarget&&(this.keyboardButtonTarget.disabled=n),n){this.hasVoiceButtonTarget&&(this.voiceButtonTarget.disabled=!0),this.hasSendButtonTarget&&(this.sendButtonTarget.disabled=!0);return}if(i)return;let l=!r?.value?.trim(),d=this.#u==="live_video"&&this.#e?.status==="live"&&this.#p&&l;this.hasVoiceButtonTarget&&(this.voiceButtonTarget.classList.toggle("hidden",!d),this.voiceButtonTarget.classList.toggle("flex",d),this.voiceButtonTarget.disabled=this.#l),this.hasSendButtonTarget&&(this.sendButtonTarget.classList.toggle("hidden",d),this.sendButtonTarget.classList.toggle("flex",!d),this.sendButtonTarget.disabled=l),this.hasVoiceTooltipTarget&&this.voiceTooltipTarget.classList.toggle("hidden",!d||!this.#m),r&&(r.placeholder=this.#u==="classic"?r.dataset.classicPlaceholder:r.dataset.liveVideoPlaceholder)}#Be(){this.#Ie(),this.#y=setTimeout(()=>{this.#y=null,!(!this.#v||this.#T)&&(this.#v=!1,this.#Y(),this.dispatch("actionFailed"))},iV)}#Ie(){clearTimeout(this.#y),this.#y=null}#Ae(){this.#he(),this.#S=setTimeout(()=>{this.#S=null,this.#T&&this.#ee(this.messagesValue.unavailable,{rtcReason:"action_timeout"})},sV)}#he(){clearTimeout(this.#S),this.#S=null}#be(i=Date.now()){this.#Se(),this.#Oe({cancellable:!0});let s=Math.max(Date.now()-(Number(i)||Date.now()),0);s>=xs*3?this.#_e(this.messagesValue.loadingUnavailable):s>=xs*2?this.#xe(this.messagesValue.hangTight):s>=xs?this.#xe(this.messagesValue.gettingReady):this.#xe(this.messagesValue.starting);let r=(a,n)=>{let l=Math.max(a-s,0);this.#a.push(setTimeout(n,l))};r(xs,()=>this.#ye(this.messagesValue.gettingReady)),r(xs*2,()=>this.#ye(this.messagesValue.hangTight)),r(xs*3,()=>this.#_e(this.messagesValue.loadingUnavailable)),r(xs*3+ZP,()=>this.#ee(this.messagesValue.loadingUnavailable,{exitImmediately:!0,rtcReason:this.#r?"capacity_retries_exhausted":"connection_timeout"}))}#ye(i){this.#p||this.#i||this.#xe(i)}#Oe({cancellable:i=!1}={}){this.hasLoadingSpinnerTarget&&this.loadingSpinnerTarget.classList.remove("hidden"),this.hasLoadingCancelButtonTarget&&this.loadingCancelButtonTarget.classList.toggle("hidden",!i)}#Se(){this.#a.forEach(i=>clearTimeout(i)),this.#a=[]}#Fe(){this.#Pe(),this.#m=!0,this.#Y(),this.#f=setTimeout(()=>this.#Pe(),tV)}#Pe(){clearTimeout(this.#f),this.#f=null,this.#m=!1,this.hasVoiceTooltipTarget&&this.voiceTooltipTarget.classList.add("hidden")}#He(){this.hasMicDeniedStatusTarget&&this.micDeniedStatusTarget.classList.remove("hidden"),this.#le()?.focus()}#Ee(){this.hasMicDeniedStatusTarget&&this.micDeniedStatusTarget.classList.add("hidden")}#qe(){clearInterval(this.#o),this.#o=null}#$e(){if(!this.hasDebugPanelTarget)return;let i=this.#e,{fps:s,freezeCount:r,videoBitrateKbps:a,videoCodec:n,rttMs:l}=i?.quality||{},{ice:d,connection:m,relayOnly:v,channel:E}=i?.transport||{},D=this.hasVideoTarget?this.videoTarget:null;this.#X("debugStatus",i?.status||(this.#i?"stopped":"idle")),this.#X("debugFps",String(s??0)),this.#X("debugBitrate",`${a??0} kbps`),this.#X("debugCodec",n||"\u2014"),this.#X("debugRtt",typeof l=="number"?`${l} ms`:"\u2014"),this.#X("debugFreezes",String(r??0)),this.#X("debugSize",D?.videoWidth?`${D.videoWidth}x${D.videoHeight}`:"\u2014"),this.#X("debugMic",i?.micDenied?"denied":i?.micOn?"on":"off"),this.#X("debugIce",d||"\u2014"),this.#X("debugConnection",m||"\u2014"),this.#X("debugChannel",E||"\u2014"),this.#X("debugPolicy",typeof v=="boolean"?v?"relay":"all":"\u2014")}#X(i,s){let r=`${i[0].toUpperCase()}${i.slice(1)}Target`;if(!this[`has${r}`])return;let a=this[`${i}Target`];a.textContent!==s&&(a.textContent=s)}#Me(i,s,{spoken:r=!1}={}){if(!this.hasCaptionsTarget)return;this.#Le();let a=i==="user",n=document.createElement("div");
129n.className="cams-feed-message pointer-events-auto flex w-full shrink-0 items-center rounded-2xl",n.dataset.liveVideoCaption="true";let l=document.createElement("div");if(l.className="max-w-[272px] break-words text-xs font-semibold leading-[18px] text-white [text-shadow:0_0_10px_black]",r&&this.captionsTarget.dataset.micIconUrl){let E=document.createElement("img");E.className="mr-1 inline-block size-3.5 align-text-bottom",E.src=this.captionsTarget.dataset.micIconUrl,E.alt="",l.appendChild(E)}let d=document.createElement("span"),m=document.createElement("span");return m.className=a?"text-[#faffb0]":"text-[#feb0b0]",m.textContent=a?this.messagesValue.you:this.messagesValue.characterName,d.append(m," "),this.#We(d,s),l.appendChild(d),n.appendChild(l),this.captionsTarget.appendChild(n),a&&this.#De(),Array.from(this.captionsTarget.querySelectorAll("[data-live-video-caption]")).slice(0,-nV).forEach(E=>E.remove()),this.captionsTarget.scrollTop=this.captionsTarget.scrollHeight,n}#We(i,s){for(let r of s.split(/(\*[^*]+\*)/g))if(r)if(r.startsWith("*")&&r.endsWith("*")){let a=document.createElement("em");a.textContent=r.slice(1,-1),i.appendChild(a)}else i.appendChild(document.createTextNode(r))}#De(){if(!this.hasTypingTemplateTarget)return;let i=this.typingTemplateTarget.content.firstElementChild.cloneNode(!0);i.removeAttribute("id"),i.dataset.liveVideoTyping="true",this.captionsTarget.appendChild(i),this.#L=i}#Le(){this.#L?.remove(),this.#L=null}#Ge(){this.#ge(),this.#I=!1,this.#C=[]}#Re(i){i.value="",i.dispatchEvent(new Event("input",{bubbles:!0}))}#Ne(){this.#Le(),this.hasCaptionsTarget&&this.captionsTarget.querySelectorAll("[data-live-video-caption]").forEach(i=>i.remove())}};var Cd="cams-modal-hidden",ka=300,kC=["border-white","text-white"],xC=["border-transparent","text-white/60"],IC="[data-cams-media-packs-preview-key]",hV="[data-cams-media-packs-observe-seen]",AC="[data-cams-media-packs-catalog-scroll]",cV=0,dV=ka+50,uV=.25,Ed=class extends u{static targets=["dialog","entryButton","entryNewBadge","frame","panel","tab","tabPanel","viewer","viewerItem"];static values={seenUrl:String,userId:String,url:String};connect(){this.dialogHideTimer=null,this.packSeenSetupTimer=null,this.activeViewerIndex=0,this.entrySeenRecorded=!1,this.frameLoadedOnce=!1,this.previewUrls=new Map,this.packSeenObserver=null,this.packSeenRequests=new Set}disconnect(){this.clearDialogHideTimer(),this.teardownPackSeenObserver()}open(i){if(i.preventDefault(),this.clearDialogHideTimer(),this.hideEntryNewBadge(),this.dialogTarget.classList.remove("invisible",Cd),!this.frameTarget.src){this.frameTarget.setAttribute("src",this.urlValue);return}this.frameLoadedOnce&&(this.openPanel(),this.schedulePackSeenObserver())}hideEntryNewBadge(){!this.hasEntryButtonTarget||!this.hasEntryNewBadgeTarget||(this.entryNewBadgeTarget.classList.add("hidden"),this.entryButtonTarget.classList.remove("border-[#fa7188]","bg-[#6f263a]"),this.entryButtonTarget.classList.add("border-white/20","bg-black/25"))}close(i){i?.preventDefault(),this.closeViewer(),this.teardownPackSeenObserver(),this.dialogTarget.classList.add(Cd),this.hasPanelTarget&&(this.panelTarget.style.transform="translateY(100%)"),this.clearDialogHideTimer(),this.dialogHideTimer=window.setTimeout(()=>{this.dialogTarget.classList.add("invisible"),this.dialogHideTimer=null},ka)}prepareFrameRender(i){if(this.cachePreviewUrls(this.frameTarget),this.hydratePreviewUrls(i.detail.newFrame),!this.hasPanelTarget)return;let s=i.detail.newFrame.querySelector("[data-cams--media-packs-target~='panel']");s&&(s.dataset.camsMediaPacksPreviousHeight=String(this.panelTarget.getBoundingClientRect().height))}frameLoaded(){this.frameLoadedOnce=!0,this.hydratePreviewUrls(this.frameTarget),this.cachePreviewUrls(this.frameTarget),this.openPanel(),this.animatePanelHeight(),this.markEntrySeenPacks(),this.schedulePackSeenObserver()}async markEntrySeenPacks(){if(this.entrySeenRecorded||!this.userIdValue||!this.hasPanelTarget||!this.hasSeenUrlValue)return;let i=JSON.parse(this.panelTarget.dataset.camsMediaPacksEntrySeenPackIdsValue||"[]");if(i.length!==0)try{let s=await H(this.seenUrlValue,{body:JSON.stringify({media_pack_ids:i}),contentType:"application/json",responseKind:"turbo-stream"});this.entrySeenRecorded=s.ok}catch(s){Ge(s,{controller:this.identifier,action:"markEntrySeenPacks"})}}frameUpdated(){this.hydratePreviewUrls(this.frameTarget),this.cachePreviewUrls(this.frameTarget),this.openPanel
129(),this.animatePanelHeight(),this.schedulePackSeenObserver()}openPanel(){this.hasPanelTarget&&(this.hasDialogTarget&&this.dialogTarget.classList.contains(Cd)||requestAnimationFrame(()=>{this.panelTarget.style.transition=`transform ${ka}ms ease-out, height ${ka}ms ease-out`,this.panelTarget.style.transform="translateY(0)"}))}animatePanelHeight(){if(!this.hasPanelTarget||!this.panelTarget.dataset.camsMediaPacksPreviousHeight)return;let i=Number(this.panelTarget.dataset.camsMediaPacksPreviousHeight),s=this.panelTarget.scrollHeight;delete this.panelTarget.dataset.camsMediaPacksPreviousHeight,!(!Number.isFinite(i)||i===s)&&(this.panelTarget.style.height=`${i}px`,requestAnimationFrame(()=>{this.panelTarget.style.height=`${s}px`,window.setTimeout(()=>{this.hasPanelTarget&&(this.panelTarget.style.height="")},ka)}))}selectTab(i){i.preventDefault();let s=i.currentTarget.dataset.camsMediaPacksKind,r=this.tabPanelTargets.find(a=>a.dataset.camsMediaPacksKind===s);!r||!r.classList.contains("hidden")||(this.panelTarget.dataset.camsMediaPacksPreviousHeight=String(this.panelTarget.getBoundingClientRect().height),this.tabPanelTargets.forEach(a=>a.classList.toggle("hidden",a!==r)),this.tabTargets.forEach(a=>this.updateTabState(a,a.dataset.camsMediaPacksKind===s)),this.animatePanelHeight(),this.schedulePackSeenObserver())}updateTabState(i,s){i.classList.remove(...s?xC:kC),i.classList.add(...s?kC:xC),i.setAttribute("aria-selected",String(s))}cachePreviewUrls(i){i.querySelectorAll(IC).forEach(s=>{let r=s.tagName==="VIDEO"?s.getAttribute("poster"):s.getAttribute("src");r&&this.previewUrls.set(s.dataset.camsMediaPacksPreviewKey,r)})}hydratePreviewUrls(i){i.querySelectorAll(IC).forEach(s=>{let r=this.previewUrls.get(s.dataset.camsMediaPacksPreviewKey)||s.dataset.camsMediaPacksPreviewUrl;r&&(s.tagName==="VIDEO"?s.setAttribute("poster",r):s.setAttribute("src",r))})}openViewer(i){i.preventDefault(),!(!this.hasViewerTarget||!this.hasPanelTarget)&&(this.activeViewerIndex=Number(i.currentTarget.dataset.camsMediaPacksViewerIndex)||0,this.panelTarget.classList.add("hidden"),this.viewerTarget.classList.remove("hidden"),this.updateViewerItems())}closeViewer(i){i?.preventDefault(),this.hasViewerTarget&&(this.pauseViewerVideos(),this.viewerTarget.classList.add("hidden"),this.hasPanelTarget&&this.panelTarget.classList.remove("hidden"))}navigateViewer(i){i.preventDefault();let s=Number(i.currentTarget.dataset.camsMediaPacksViewerDirection);if(!Number.isInteger(s)||this.viewerItemTargets.length<2)return;let r=this.viewerItemTargets.length;this.activeViewerIndex=(this.activeViewerIndex+s+r)%r,this.updateViewerItems()}updateViewerItems(){this.viewerItemTargets.forEach((i,s)=>{let r=s===this.activeViewerIndex;i.classList.toggle("hidden",!r),r||i.querySelectorAll("video").forEach(a=>a.pause())})}pauseViewerVideos(){this.viewerTarget.querySelectorAll("video").forEach(i=>i.pause())}closeInsufficientTokens(i){i?.preventDefault();let s=document.getElementById("cams-media-packs-insufficient-tokens-modal");s&&s.replaceChildren()}stopPropagation(i){i.stopPropagation()}async openRegistrationModal(i){i.preventDefault();let s=document.querySelector("[data-controller~='main']");await this.application.getControllerForElementAndIdentifier(s,"main")?.openRegistrationModal(new CustomEvent("MediaPackGuest",{detail:{redirectUrl:window.location.href}}))}clearDialogHideTimer(){this.dialogHideTimer&&(window.clearTimeout(this.dialogHideTimer),this.dialogHideTimer=null)}schedulePackSeenObserver(){this.packSeenSetupTimer&&(window.clearTimeout(this.packSeenSetupTimer),this.packSeenSetupTimer=null),this.packSeenSetupTimer=window.setTimeout(()=>{this.packSeenSetupTimer=null,this.setupPackSeenObserver()},dV)}setupPackSeenObserver(){if(this.teardownPackSeenObserver({clearTimer:!1}),!this.userIdValue||!this.hasFrameTarget||this.hasDialogTarget&&this.dialogTarget.classList.contains(Cd))return;let i=Array.from(this.frameTarget.querySelectorAll(hV));i.length!==0&&(this.packSeenObserver=new IntersectionObserver(s=>{s.forEach(r=>{r.isIntersecting&&this.isVisibleInCatalogScrollport(r.target)&&this.markPackSeen(r.target)})}
129,{root:null,threshold:cV,rootMargin:"0px 0px -10% 0px"}),i.forEach(s=>this.packSeenObserver.observe(s)))}isVisibleInCatalogScrollport(i){let s=i.closest(AC)||this.frameTarget.querySelector(AC);if(!s)return!0;let r=s.getBoundingClientRect(),a=i.getBoundingClientRect(),n=Math.max(r.top,a.top),d=Math.min(r.bottom,a.bottom)-n;if(d<=0)return!1;let m=a.height;return m<=0?!1:d/m>=uV}teardownPackSeenObserver({clearTimer:i=!0}={}){i&&this.packSeenSetupTimer&&(window.clearTimeout(this.packSeenSetupTimer),this.packSeenSetupTimer=null),this.packSeenObserver&&(this.packSeenObserver.disconnect(),this.packSeenObserver=null),this.packSeenRequests.clear()}async markPackSeen(i){let s=i.dataset.camsMediaPacksPackSeenUrl;if(!(!s||this.packSeenRequests.has(s))){this.packSeenRequests.add(s),this.packSeenObserver?.unobserve(i);try{if(!(await H(s,{responseKind:"json"})).ok)return;delete i.dataset.camsMediaPacksObserveSeen,delete i.dataset.camsMediaPacksPackSeenUrl}catch(r){Ge(r,{controller:this.identifier,action:"markPackSeen"})}}}};var Ld=class extends u{static targets=["comment","error","form","modal","score","submit"];connect(){this.handleKeydown=this.#e.bind(this),document.addEventListener("keydown",this.handleKeydown)}disconnect(){document.removeEventListener("keydown",this.handleKeydown)}showModal(i){i.preventDefault();let{camsMediaPackFeedbackScore:s,camsMediaPackFeedbackUrl:r}=i.currentTarget.dataset;!s||!r||(this.scoreTarget.value=s,this.formTarget.action=r,this.commentTarget.value="",this.#t(),this.modalTarget.classList.remove("hidden"),this.modalTarget.classList.add("flex"),this.commentTarget.focus())}closeFromBackdrop(i){i.target===this.modalTarget&&this.closeModal()}closeModal(){this.modalTarget.classList.add("hidden"),this.modalTarget.classList.remove("flex"),this.#i()}skip(i){i.preventDefault(),this.commentTarget.value="",this.formTarget.requestSubmit()}submitStarted(){this.submitTarget.disabled=!0,this.#t()}submitEnded(i){i.detail.success?this.closeModal():(this.submitTarget.disabled=!1,this.errorTarget.classList.remove("hidden"))}#e(i){i.key==="Escape"&&this.hasModalTarget&&!this.modalTarget.classList.contains("hidden")&&this.closeModal()}#t(){this.errorTarget.classList.add("hidden"),this.errorTarget.textContent=""}#i(){this.submitTarget.disabled=!1,this.#t()}};var PC=3e3,gV=6e3,kd=class extends u{static values={baseCount:{type:Number,default:550},fluctuation:{type:Number,default:10},locale:{type:String,default:"en"},templates:Object};connect(){this.pluralRules=new Intl.PluralRules(this.localeValue),this.render(this.baseCountValue),this.scheduleUpdate()}disconnect(){this.timeout&&clearTimeout(this.timeout)}scheduleUpdate(){let i=PC+Math.random()*(gV-PC);this.timeout=setTimeout(()=>{this.render(this.randomCount()),this.scheduleUpdate()},i)}randomCount(){let i=Math.floor(Math.random()*(this.fluctuationValue*2+1))-this.fluctuationValue;return this.baseCountValue+i}render(i){let s=this.pluralRules.select(i),r=this.templatesValue[s]||this.templatesValue.other;r&&(this.element.textContent=r.replace("%{count}",i))}};var VC="cams-modal-hidden",xd=class extends u{static targets=["modal","feedbackForm","successMessage","feedbackStar","feedbackText","submitButton","errorMessage"];static values={submitUrl:String};connect(){this.scoreValue=null,this.submitted=!1,this.autoOpenTimeout=null,this.successTimeout=null,this.errorTimeout=null,this.element.dataset.autoOpen==="true"&&(this.autoOpenTimeout=window.setTimeout(()=>this.openModal(),100))}disconnect(){this.autoOpenTimeout&&window.clearTimeout(this.autoOpenTimeout),this.successTimeout&&window.clearTimeout(this.successTimeout),this.errorTimeout&&window.clearTimeout(this.errorTimeout)}openModal(){this.modalTarget.classList.remove(VC,"invisible")}closeModal(){this.modalTarget.classList.add(VC,"invisible")}selectRating(i){this.scoreValue=Number(i.currentTarget.dataset.camsScoreValue),this.updateStars(),this.enableSubmitButton()}async submitFeedback(i){if(i.preventDefault(),!(!this.scoreValue||this.submitted||!this.hasSubmitUrlValue)){this.submitted=!0,this.disableSubmitButton();try{let s=await Pt();(await H(this.submitUrlValue,{body:JSON.stringify({feedback_device_context:s,polymorphic_feedback:{score:this.scoreValue,description:this.feedbackTextTarget.value}}),contentType:"application/json",responseKind:"json"})).ok?this.showSuccessMessage():this.showErrorMessage()}catch(s){s.name!=="AbortError"&&Ge(s,{controller:this.identifier,action:"submitFeedback"}),this.showErrorMessage()}}}enableSubmitButton(){this.submitButtonTarget.disabled=!1,this.submitButtonTarget.classList.remove("opacity-50","cursor-not-allowed")}disableSubmitButton(){this.submitButtonTarget.disabled=!0,this.submitButtonTarget.classList.add("opacity-50","cursor-not-allowed")}showSuccessMessage(){this.errorMessageTarget.classList.add("hidden"),this.submitButtonTarget.classList.add("hidden"),this.successMessageTarget.classList.remove("hidden"),this.successTimeout=window.setTimeout(()=>this.closeModal(),2e3)}showErrorMessage(){this.submitted=!1,this.enableSubmitButton(),this.errorMessageTarget.classList.remove("hidden"),this.errorTimeout&&window.clearTimeout(this.errorTimeout),this.errorTimeout=window.setTimeout(()=>{this.errorMessageTarget.classList.add("hidden")},5e3)}
129updateStars(){this.feedbackStarTargets.forEach(i=>{let s=Number(i.dataset.camsScoreValue)<=this.scoreValue;i.classList.toggle("text-[#ffb703]",s),i.classList.toggle("text-[#7d7d7d]",!s)})}};var xa=class{constructor(s){this.controller=s,this.deviceDetector=new He,this.unlocked=!1,this.pendingCallbacks=[]}initialize(){if(!this.hasOverlayTarget()){this.unlocked=!0;return}this.isMobile()?this.showOverlay():(this.unlocked=!0,this.hideOverlay())}teardown(){this.pendingCallbacks=[],this.hideOverlay(),this.unlocked=!1}unlock(s){if(s?.preventDefault?.(),this.unlocked){this.hideOverlay();return}if(this.unlocked=!0,this.hideOverlay(),this.controller?.hasVideoTarget){let{videoTarget:r}=this.controller;r&&r.play().catch(()=>{r.muted=!0,r.play().catch(()=>{})})}this.controller?.hasDesktopMenuTarget&&this.controller.desktopMenuTarget.classList.remove("hidden"),this.flushPendingCallbacks()}requestUnlock(s){if(this.unlocked||!this.requiresInitialInteraction()){typeof s=="function"&&s();return}typeof s=="function"&&this.pendingCallbacks.push(s),this.showOverlay()}shouldRequestUnlock(s){if(this.unlocked)return!1;if(!s)return this.requiresInitialInteraction();let r=(s.name||"").toLowerCase();return r.includes("notallowed")||r.includes("security")?!0:this.requiresInitialInteraction()}requiresInitialInteraction(){return this.unlocked||!this.hasOverlayTarget()?!1:this.isMobile()}showOverlay(){let s=this.overlayTarget();if(!s){this.unlocked=!0,this.flushPendingCallbacks();return}s.classList.remove("hidden"),s.classList.add("flex")}hideOverlay(){let s=this.overlayTarget();s&&(s.classList.add("hidden"),s.classList.remove("flex"))}flushPendingCallbacks(){if(!Array.isArray(this.pendingCallbacks)||this.pendingCallbacks.length===0){this.pendingCallbacks=[];return}this.pendingCallbacks.splice(0).forEach(r=>{try{r()}catch{}})}hasOverlayTarget(){return!!this.controller?.hasInteractionOverlayTarget}overlayTarget(){return this.hasOverlayTarget()?this.controller.interactionOverlayTarget:null}isMobile(){return!0}};var Ia={viewed:"Live Audio Viewed",clothingSelected:"Live Audio Clothing Selected",audioSelected:"Live Audio Track Selected",playStarted:"Live Audio Play Started",playCompleted:"Live Audio Play Completed"},Aa=class{constructor({profileSlug:s}={}){this.profileSlug=s,this.featureSessionId=this.#o(),this.pendingEvents=[],this.flushIntervalId=null}featureViewed(s={}){this.#e(Ia.viewed,s)}clothingSelected(s={}){this.#e(Ia.clothingSelected,s)}audioSelected(s={}){this.#e(Ia.audioSelected,s)}startPlayback(s={}){let r=this.#o(),a={PlaybackSessionId:r,...s};return this.#e(Ia.playStarted,a),r}endPlayback(s={}){s?.PlaybackSessionId&&this.#e(Ia.playCompleted,s)}#e(s,r={}){let a=this.#t(r);if(this.#s()){this.#a(),window.mixpanel.track(s,a);return}this.pendingEvents.push({eventName:s,payload:a}),this.#r()}#t(s){let r={ProfileSlug:this.profileSlug,FeatureSessionId:this.featureSessionId};return this.#i({...r,...s})}#i(s){return Object.entries(s).reduce((r,[a,n])=>(n!=null&&(r[a]=n),r),{})}#s(){return typeof window<"u"&&window.mixpanel&&typeof window.mixpanel.track=="function"}#r(){this.flushIntervalId||typeof window>"u"||(this.flushIntervalId=window.setInterval(()=>{this.#s()&&this.#a()},500))}#a(){if(!this.pendingEvents.length||!this.#s())return;let s=[...this.pendingEvents];this.pendingEvents=[],s.forEach(({eventName:r,payload:a})=>{window.mixpanel.track(r,a)}),this.#n()}#n(){if(!this.flushIntervalId||typeof window>"u"){this.flushIntervalId=null;return}window.clearInterval(this.flushIntervalId),this.flushIntervalId=null}teardown(){this.pendingEvents=[],this.#n()}#o(){return Math.random().toString(36).slice(2,12)}};var MC="ring-blue-brand",mV=3e3,Id=class extends u{static targets=["videoContainer","video","videoInteractionOverlay","clothingButton","clothingMenu","clothingOption","audioButton","audioMenu","audioControls","audioControlsWrapper","durationBadge","playPauseButton","playPauseIcon","stopButton","skipOverlay","menuBar","audioOptions","audioOption","desktopMenu","interactionOverlay","clothingIcon","clothingLoader","guestSignupCta","outfitSignupCta"];static values={defaultVideo:String,options:Array,playIconUrl:String,crownIconUrl:String,profileSlug:String,feedbackEnabled:Boolean,feedbackThresholdSeconds:Number,freeAudioIds:Array,blockedAudioIds:Array,blockedClothingIds:Array,desktop:Boolean,blockedClothingCount:Number,useConversionSettings:Boolean,isGuest:Boolean};clearPendingVideoLoad(){typeof this.pendingVideoLoadCleanup=="function"&&this.pendingVideoLoadCleanup()}configureVideoElement(i,{unmute:s,loop:r}){i&&(s?(i.muted=!1,i.defaultMuted=!1,i.removeAttribute("muted")):(i.muted=!0,i.defaultMuted=!0,i.setAttribute("muted","")),i.loop=r,r?i.setAttribute("loop",""):i.removeAttribute("loop"),i.autoplay=!0,i.setAttribute("autoplay",""),i.playsInl
129ine=!0,i.setAttribute("playsinline",""))}attemptVideoPlayback(i,{unmute:s,loop:r,url:a}){if(i)try{let n=i.play();n&&typeof n.then=="function"?n.then(()=>{this.handleVideoPlaybackStarted()}).catch(l=>{this.handleVideoPlaybackError(l,{video:i,url:a,unmute:s,loop:r})}):this.handleVideoPlaybackStarted()}catch(n){this.handleVideoPlaybackError(n,{video:i,url:a,unmute:s,loop:r})}}handleVideoPlaybackStarted(){this.showClothingLoader(!1),this.isAudioSource&&(this.isAudioPlaying=!0,this.updatePlayPauseButton(!0),this.showAudioControls(!0),this.showMenus({autoHide:!0}),this.onAudioPlaybackStarted())}handleVideoPlaybackError(i,{video:s,url:r,unmute:a,loop:n}){if(a&&this.interactionGate?.shouldRequestUnlock(i)){this.interactionGate.requestUnlock(()=>{this.configureVideoElement(s,{unmute:a,loop:n}),this.attemptVideoPlayback(s,{unmute:a,loop:n,url:r})});return}this.isAudioSource&&(this.isAudioPlaying=!1,this.updatePlayPauseButton(!1),this.showMenus())}mediaReadyStateThreshold(){return typeof window.HTMLMediaElement<"u"&&typeof window.HTMLMediaElement.HAVE_CURRENT_DATA=="number"?window.HTMLMediaElement.HAVE_CURRENT_DATA:2}connect(){this.showVideoContainer(),this.hideLoader(),this.interactionGate=new xa(this),this.updateDesktopState();let i=this.hasProfileSlugValue?this.profileSlugValue:void 0;this.tracker=new Aa({profileSlug:i}),this.mediaDurationPromises=new Map,this.audioDurations=new Map,this.audioDuration=0,this.isAudioSource=!1,this.isAudioPlaying=!1,this.menusHidden=!1,this.menuAutoHideTimeout=null,this.playbackStartTime=null,this.playbackAccumulatedMs=0,this.playbackMetadata=null,this.currentPlaybackSessionId=null,this.pendingPlaybackTracker=null,this.feedbackPrompted=!1,this.feedbackEnabled=this.hasFeedbackEnabledValue?this.feedbackEnabledValue:!1;let s=this.hasFeedbackThresholdSecondsValue?this.feedbackThresholdSecondsValue:5,r=Number(s);if(this.feedbackThresholdMs=Number.isFinite(r)?Math.max(0,r*1e3):5e3,this.feedbackEligible=!1,this.lastPlayedMs=0,this.pendingVideoLoadCleanup=null,this.handleVideoEnded=this.handleVideoEnded.bind(this),this.handleTimeUpdate=this.handleTimeUpdate.bind(this),this.handleLoadedMetadata=this.handleLoadedMetadata.bind(this),this.handleVideoLoadedData=this.handleVideoLoadedData.bind(this),this.handleVideoError=this.handleVideoError.bind(this),this.handleDocumentClick=this.handleDocumentClick.bind(this),this.handleBeforeVisit=this.handleBeforeVisit.bind(this),this.preventContextMenu=this.preventContextMenu.bind(this),this.debouncedHandleResize=this.debounce(this.handleResize.bind(this),150),this.resetAudioPlaybackState({hideControls:!0,clearCurrentAudio:!0}),this.applyMenuVisibility(!0),this.hasVideoTarget&&(this.videoTarget.addEventListener("ended",this.handleVideoEnded),this.videoTarget.addEventListener("timeupdate",this.handleTimeUpdate),this.videoTarget.addEventListener("loadedmetadata",this.handleLoadedMetadata),this.videoTarget.addEventListener("loadeddata",this.handleVideoLoadedData),this.videoTarget.addEventListener("error",this.handleVideoError),this.videoTarget.addEventListener("contextmenu",this.preventContextMenu)),this.hasVideoInteractionOverlayTarget){let a=this.videoInteractionOverlayTarget;a.addEventListener("contextmenu",this.preventContextMenu),a.style.webkitTouchCallout="none",a.style.userSelect="none",a.style.webkitUserSelect="none",a.style.msUserSelect="none"}document.addEventListener("click",this.handleDocumentClick),document.addEventListener("turbo:before-visit",this.handleBeforeVisit),window.addEventListener("resize",this.debouncedHandleResize),this.interactionGate.initialize(),this.initializeSelections(),this.showClothingLoader(!1),this.trackFeatureViewed()}disconnect(){this.endCurrentPlayback({completed:!1,reason:"ControllerDisconnected"}),this.closeClothingMenu(),this.closeAudioMenu(),this.clearPendingVideoLoad(),this.hasVideoTarget&&(this.videoTarget.removeEventListener("ended",this.handleVideoEnded),this.videoTarget.removeEventListener("timeupdate",this.handleTimeUpdate),this.videoTarget.removeEventListener("loadedmetadata",this.handleLoadedMetadata),this.videoTarget.removeEventListener("loadeddata",this.handleVideoLoadedData),this.videoTarget.removeEventListener("error",this.handleVideoError),this.videoTarget.removeEventListener("contextmenu",this.preventContextMenu)),this.hasVideoInteractionOverlayTarget&&this.videoInteractionOverlayTarget.removeEventListener("contextmenu",this.preventContextMenu),document.removeEventListener("click",this.handleDocumentClick),document.removeEventListener("turbo:before-visit",this.handleBeforeVisit),window.removeEventListener("resize",this.debouncedHandleResize),this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.clearMenuAutoHide(),typeof this.tracker?.teardown=="function"&&this.tracker.teardown(),this.interactionGate&&(this.interactionGate.teardown(),this.interactionGate=null)}openClothingMenu(){this.hasClothingMenuTarget&&(this.showMenus(),this.clothingMenuTarget.showModal())}closeClothingMenu(){this.hasClothingMenuTarget&&this.clothingMenuTarget.open&&(this.clothingMenuTarget.close(),this.isAudioPlaying&&this.showMenus({autoHide:!0}))}openAudioMenu(){this.hasAudioMenuTarget&&(this.showMenus(),this.audioMenuTarget.showModal())}closeAudioMenu(){this.hasAudioMenuTarget&&this.audioMenuTarget.open&&(this.audioMenuTarget.close(),this.isAudioPlaying&&this.showMenus({autoHide:!0}))}closeDesktopMenu(){this.hasDesktopMenuTarget&&(this.desktopMenuTarget.classList.add("hidden"),this.isAudioPlaying&&this.showMenus({autoHide:!0}))}switchTab(i){let r=i.currentTarget.dataset.tab;if(!r)return;this.desktopMenuTarget.querySelectorAll("[data-tab]").forEach(l=>{l.dataset.tab===r?(l.classList.add("text-white","border-b-[3px]","border-[#F97187]"),l.classList.remove("border-white/10")):(l.classList.remove("text-white","border-b-[3px]","border-[#F97187]"),l.classList.add("border-white/10"))}),this.desktopMenuTarget.querySelectorAll("[data-tab-content]").forEach(l=>{l.dataset.tabContent===r?l.classList.remove("opacity-0","pointer-events-none","absolute"):l.classList.add("opacity-0","pointer-events-none","absolute")}
129)}selectClothing(i){let s=i.currentTarget;this.endCurrentPlayback({completed:!1,reason:"ClothingChanged"}),this.setActiveOption(s);let r=s.dataset.optionId;this.currentClothingId=r,this.resetAudioPlaybackState({hideControls:!0,clearCurrentAudio:!0});let a=s.dataset.audioOptionsUrl;a&&this.fetchAudioOptions(a);let n=this.clothingMetadata(r),l=n?.audioCount>0;this.tracker.clothingSelected({ClothingId:n?.clothingId,ClothingName:n?.clothingName,HasAudio:l,AudioCount:n?.audioCount,DefaultAudioId:n?.defaultAudioId,DefaultAudioName:n?.defaultAudioName});let d=this.videoUrlFor(s);this.showClothingLoader(!0),d?this.setVideoSource(d,{unmute:!1,loop:!0}):this.hasDefaultVideoValue?this.setVideoSource(this.defaultVideoValue,{unmute:!1,loop:!0}):this.showClothingLoader(!1),this.closeClothingMenu()}fetchAudioOptions(i){i&&Ee(i,{headers:{Accept:"text/vnd.turbo-stream.html"}}).then(s=>s.text).then(s=>{Turbo.renderStreamMessage(s),this.setAudioButtonState(!0)}).catch(s=>{this.setAudioButtonState(!1)})}triggerFeedbackModal(i){this.feedbackPrompted=!0,window.dispatchEvent(new CustomEvent("live-audio-feedback:open-request",{detail:{url:i,playedMs:this.lastPlayedMs,profileSlug:this.hasProfileSlugValue?this.profileSlugValue:void 0}}))}handleBeforeVisit(i){this.isAudioSource&&this.stopPlayback({reason:"Exit",completed:!1}),this.shouldPromptFeedbackOnExit()&&(i.preventDefault(),this.triggerFeedbackModal(i.detail.url))}handleClose(i){let s=i?.currentTarget?.href||null;if(this.closeClothingMenu(),this.closeAudioMenu(),this.showMenus(),this.isAudioSource&&this.stopPlayback({reason:"Exit",completed:!1}),!this.isDesktop&&i){if(i.preventDefault(),this.shouldPromptFeedbackOnExit()){this.triggerFeedbackModal(s);return}this.navigateAway(s)}}showVideoContainer(){this.hasVideoContainerTarget&&this.videoContainerTarget.classList.remove("hidden")}hideLoader(){let i=this.element.querySelector("[data-live-actions-target='loader']");i&&i.classList.add("hidden")}initializeSelections(){let i=this.clothingOptionTargets.find(a=>a.dataset.default==="true")||this.clothingOptionTargets[0];if(!i)return;this.setActiveOption(i);let s=i.dataset.optionId;this.currentClothingId=s,this.resetAudioPlaybackState({hideControls:!0,clearCurrentAudio:!0});let r=i.dataset.audioOptionsUrl;r&&this.fetchAudioOptions(r),this.hasDefaultVideoValue&&this.setVideoSource(this.defaultVideoValue,{unmute:!1,loop:!0})}setActiveOption(i){this.clothingOptionTargets.forEach(r=>{r.classList.remove(MC);let a=r.querySelector("[data-clothing-card]");a&&(a.classList.remove("border-[#dd6679]"),a.classList.add("border-[#171717]"))}),i.classList.add(MC);let s=i.querySelector("[data-clothing-card]");s&&(s.classList.remove("border-[#171717]"),s.classList.add("border-[#dd6679]"))}initialDurationLabel(i){let s=this.parseDurationSeconds(i);return Number.isFinite(s)&&s>0?this.formatTime(s):"--:--"}selectAudio(i){let s=i.currentTarget;this.selectAudioFromButton(s)}selectAudioFromButton(i,{silent:s=!1}={}){if(!i)return;this.endCurrentPlayback({completed:!1,reason:"AudioChanged"});let r=this.extractAudioMetadata(i),a=i.dataset.videoUrl;this.currentAudioId=i.dataset.audioId,s||this.tracker.audioSelected(r),a&&(this.preparePendingPlayback(r,{startReason:s?"Programmatic":"Selection"}),this.isAudioSource=!0,this.isAudioPlaying=!1,this.audioDuration=0,this.updateDurationBadge(0),this.showAudioControls(!0),this.updatePlayPauseButton(!1),this.showMenus(),this.setVideoSource(a,{unmute:!0,loop:!1}),s||(this.dispatch("audio-selected",{detail:{clothingId:i.dataset.clothingId,audioId:i.dataset.audioId}}),this.closeAudioMenu()))}clothingById(i){return!i||!this.hasOptionsValue?null:this.optionsValue.find(s=>
129s.id===i)||null}setVideoSource(i,{unmute:s=!1,loop:r=!0}={}){if(!this.hasVideoTarget)return;if(!i){this.clearPendingVideoLoad(),this.showClothingLoader(!1);return}let a=this.videoTarget;this.configureVideoElement(a,{unmute:s,loop:r});let n=()=>{this.clearPendingVideoLoad();try{a.currentTime=0}catch{}this.showClothingLoader(!1),this.attemptVideoPlayback(a,{unmute:s,loop:r,url:i})},l=m=>{this.clearPendingVideoLoad(),this.showClothingLoader(!1);let v=m?.error||m;this.handleVideoPlaybackError(v,{video:a,url:i,unmute:s,loop:r})},d=a.getAttribute("src")===i;this.clearPendingVideoLoad(),a.addEventListener("loadeddata",n,{once:!0}),a.addEventListener("error",l,{once:!0}),this.pendingVideoLoadCleanup=()=>{a.removeEventListener("loadeddata",n),a.removeEventListener("error",l),this.pendingVideoLoadCleanup=null},d?a.readyState>=this.mediaReadyStateThreshold()&&n():(a.pause(),a.setAttribute("src",i),typeof a.load=="function"&&a.load())}unlockInteraction(i){this.interactionGate?.unlock(i)}videoUrlFor(i){let s=i.dataset.videoUrl;if(s)return s;let r=i.dataset.optionId;if(!r||!this.hasOptionsValue)return null;let a=this.optionsValue.find(n=>n.id===r);return a?a.video_url:null}resetAudioPlaybackState({hideControls:i=!0,clearCurrentAudio:s=!1}={}){this.isAudioSource=!1,this.isAudioPlaying=!1,this.audioDuration=0,this.updateDurationBadge(0),this.updatePlayPauseButton(!1),this.showMenus(),i&&this.showAudioControls(!1),s&&(this.currentAudioId=null,this.clearActiveAudioButtons())}updateDurationBadge(i){this.hasDurationBadgeTarget&&(this.durationBadgeTarget.textContent=this.formatTime(i))}formatTime(i){if(!Number.isFinite(i))return"0:00";let s=Math.max(0,Math.floor(i)),r=Math.floor(s/60),a=s%60;return`${r}:${a.toString().padStart(2,"0")}`}handleLoadedMetadata(){if(!this.isAudioSource||!this.hasVideoTarget)return;let i=this.videoTarget.duration;if(Number.isFinite(i)){this.audioDuration=i;let s=Math.max(i-this.videoTarget.currentTime,0);this.updateDurationBadge(s)}}handleTimeUpdate(){if(!this.isAudioSource||!this.hasVideoTarget)return;this.audioDuration===0&&Number.isFinite(this.videoTarget.duration)&&(this.audioDuration=this.videoTarget.duration);let i=Math.max(this.audioDuration-this.videoTarget.currentTime,0);this.updateDurationBadge(i)}handleVideoLoadedData(){this.showClothingLoader(!1)}handleVideoError(){this.showClothingLoader(!1)}showClothingLoader(i){!this.hasClothingIconTarget||!this.hasClothingLoaderTarget||(this.clothingIconTarget.classList.toggle("hidden",i),this.clothingLoaderTarget.classList.toggle("hidden",!i))}setAudioButtonState(i){this.hasAudioButtonTarget&&(this.audioButtonTarget.disabled=!i,this.audioButtonTarget.classList.toggle("opacity-50",!i),this.audioButtonTarget.classList.toggle("pointer-events-none",!i),this.audioButtonTarget.classList.toggle("cursor-not-allowed",!i),this.audioButtonTarget.setAttribute("aria-disabled",String(!i)),i||this.resetAudioPlaybackState({hideControls:!0,clearCurrentAudio:!0}))}showAudioControls(i){this.hasAudioControlsTarget&&(this.audioControlsTarget.hidden=!i,this.hasAudioControlsWrapperTarget&&(this.audioControlsWrapperTarget.classList.toggle("hidden",!i),i||this.audioControlsWrapperTarget.classList.remove("opacity-0","pointer-events-none")))}updatePlayPauseButton(i){if(!this.hasPlayPauseIconTarget)return;let s=this.playPauseIconTarget.dataset.playIcon,r=this.playPauseIconTarget.dataset.pauseIcon;s&&r&&(this.playPauseIconTarget.src=i?r:s)}togglePlayback(){if(!this.hasVideoTarget||!this.isAudioSource)return;let i=this.videoTarget;if(i.paused||i.ended){i.ended&&(i.currentTime=0,this.audioDuration>0&&this.updateDurationBadge(this.audioDuration));let s=i.currentSrc||i.getAttribute("src")||"";this.attemptVideoPlayback(i,{unmute:!i.muted,loop:i.loop,url:s})}else{if(i.pause(),this.isAudioPlaying=!1,this.updatePlayPauseButton(!1),this.audioDuration>0){let s=Math.max(this.audioDuration-i.currentTime,0);this.updateDurationBadge(s)}this.pausePlaybackTracking(),this.showMenus()}}stopPlayback({reason:i="Stopped",completed:s=!1}={}){if(!this.isAudioSource)return;this.endCurrentPlayback({completed:s,reason:i});let r=this.baseVideoFor(this.currentClothingId);r&&(this.showClothingLoader(!0),this.resetAudioPlaybackState({hideControls:!0,clearCurrentAudio:!0}),this.setVideoSource(r,{unmute:!1,loop:!0}),this.showMenus())}baseVideoFor(i){let s=this.clothingById(i)||this.optionsValue[0];return s?s.video_url:this.defaultVideoValue}clearActiveAudioButtons(){this.hasAudioOptionsTarget}
129handleVideoEnded(){this.currentAudioId&&this.stopPlayback({reason:"Completed",completed:!0})}handleDocumentClick(i){let s=i.target;if(this.isAudioSource&&!(this.hasAudioControlsWrapperTarget&&this.audioControlsWrapperTarget.contains(s)||this.hasMenuBarTarget&&this.menuBarTarget.contains(s)||this.hasSkipOverlayTarget&&this.skipOverlayTarget.contains(s)||this.hasPlayPauseButtonTarget&&this.playPauseButtonTarget.contains(s)||this.hasStopButtonTarget&&this.stopButtonTarget.contains(s)||this.hasAudioButtonTarget&&this.audioButtonTarget.contains(s)||this.hasClothingButtonTarget&&this.clothingButtonTarget.contains(s)||this.hasAudioMenuTarget&&this.audioMenuTarget.contains(s)||this.hasClothingMenuTarget&&this.clothingMenuTarget.contains(s))){if(this.menusHidden){this.showMenus({autoHide:!0});return}this.togglePlayback()}}skipForward(){this.skipBySeconds(10)}skipBackward(){this.skipBySeconds(-10)}skipBySeconds(i){if(!this.isAudioSource||!this.hasVideoTarget)return;let s=this.videoTarget;if(!Number.isFinite(s.duration))return;this.audioDuration===0&&(this.audioDuration=s.duration);let r=!s.paused,a=Math.min(Math.max(s.currentTime+i,0),s.duration);if(s.currentTime=a,a>=s.duration)s.pause(),this.isAudioPlaying=!1,this.updatePlayPauseButton(!1),this.updateDurationBadge(0);else{r?s.play().catch(()=>{}):s.pause(),this.isAudioPlaying=r,this.updatePlayPauseButton(r);let n=Math.max(this.audioDuration-a,0);this.updateDurationBadge(n)}this.isAudioPlaying&&this.showMenus({autoHide:!0})}showMenus({autoHide:i=!1}={}){this.clearMenuAutoHide(),this.applyMenuVisibility(!0),i&&this.isAudioPlaying&&this.scheduleMenuAutoHide()}hideMenus(){this.clearMenuAutoHide(),this.applyMenuVisibility(!1)}scheduleMenuAutoHide(){this.clearMenuAutoHide(),!(!this.isAudioPlaying||this.menusHidden)&&(this.menuAutoHideTimeout=setTimeout(()=>{this.isAudioPlaying&&this.applyMenuVisibility(!1)},mV))}clearMenuAutoHide(){this.menuAutoHideTimeout&&(clearTimeout(this.menuAutoHideTimeout),this.menuAutoHideTimeout=null)}preventContextMenu(i){i&&(i.preventDefault(),i.stopPropagation())}applyMenuVisibility(i){this.menusHidden=!i,this.hasAudioControlsWrapperTarget&&!this.audioControlsWrapperTarget.classList.contains("hidden")&&this.setElementVisibility(this.audioControlsWrapperTarget,i),this.hasMenuBarTarget&&this.setElementVisibility(this.menuBarTarget,i),this.hasSkipOverlayTarget&&this.setElementVisibility(this.skipOverlayTarget,i&&this.isAudioSource)}trackFeatureViewed(){if(!this.tracker)return;let i=this.clothingById(this.currentClothingId)||this.optionsValue?.[0];if(!i){this.tracker.featureViewed();return}let s=Array.isArray(i.audios)?i.audios:[],r=s.find(n=>n.default)||s[0],a=r?this.resolveAudioDuration({audio:r,rawDuration:r.duration}):void 0;this.tracker.featureViewed({ClothingId:i.id,ClothingName:i.name,HasAudio:s.length>0,AudioCount:s.length,DefaultAudioId:r?.id,DefaultAudioName:r?.name,ClipDurationSeconds:a})}clothingMetadata(i){let s=this.clothingById(i);if(!s)return null;let r=Array.isArray(s.audios)?s.audios:[],a=r.find(n=>n.default)||null;return{clothingId:s.id,clothingName:s.name,hasAudio:r.length>0,audioCount:r.length,defaultAudioId:a?.id,defaultAudioName:a?.name}}extractAudioMetadata(i){let s=i.dataset.clothingId,r=this.clothingById(s),a=i.dataset.audioId,n=this.resolveAudioDuration({datasetDurationSeconds:i.dataset.audioDurationSeconds,rawDuration:i.dataset.audioDuration,audio:{id:a,video_url:i.dataset.videoUrl}}),d=(Array.isArray(r?.audios)?r.audios:[]).length;return{ClothingId:s,ClothingName:r?.name||i.dataset.clothingName||"",AudioId:a,AudioName:i.dataset.audioName||"",DefaultSelection:i.dataset.audioDefault==="true",ClipDurationSeconds:n,AudioCount:d,HasAudio:d>0}}preparePendingPlayback(i,{startReason:s}){this.pendingPlaybackTracker={metadata:{...i},startReason:s},this.playbackMetadata={...i},this.playbackAccumulatedMs=0,this.playbackStartTime=null,this.currentPlaybackSessionId=null}onAudioPlaybackStarted(){if(this.pendingPlaybackTracker?.metadata){let{metadata:i,startReason:s}=this.pendingPlaybackTracker,r={...i,StartReason:s},a=this.tracker.startPlayback(r);this.currentPlaybackSessionId=a,this.playbackMetadata={...i},this.playbackAccumulatedMs=0,this.playbackStartTime=window.performance.now(),this.pendingPlaybackTracker=null;return}this.currentPlaybackSessionId&&(this.playbackStartTime=window.performance.now())}resumePlaybackTracking(){this.currentPlaybackSessionId&&(this.playbackStartTime||(this.playbackStartTime=window.performance.now()))}pausePlaybackTracking(){!this.currentPlaybackSessionId||!this.playbackStartTime||(this.playbackAccumulatedMs+=Math.max(0,window.performance.now()-this.playbackStartTime),this.playbackStartTime=null)}endCurrentPlayback({completed:i,reason:s}){if(!this.playbackMetadata){this.resetPlaybackTracking();return}this.pausePlaybackTracking();let r=this.calculatePlayedMs();Number.isFinite(r)&&(this.feedbackEligible||=r>=this.feedbackThresholdMs),this.lastPlayedMs=r;let a=this.playbackMetadata?{...this.playbackMetadata}:null;this.currentPlaybackSessionId&&this.tracker.endPlayback({...a,PlaybackSessionId:this.currentPlaybackSessionId,PlayedMs:r,PlayedSeconds:Math.round(r/1e3),LongListen:r>=6e4,Completed:i,EndReason:s}),this.resetPlaybackTracking()}resetPlaybackTracking(){this.playbackStartTime=null,this.playbackAccumulatedMs=0,this.playbackMetadata=null,this.currentPlaybackSessionId=null,this.pendingPlaybackTracker=null}calculatePlayedMs(){return Math.max(0,Math.round(this.playbackAccumulatedMs))}shouldPromptFeedbackOnExit(){return this.feedbackEnabled&&this.feedbackEligible&&!this.feedbackPrompted}navigateAway(i){i?window.location.href=i:window.history.back()}parseDurationSeconds(i){if(Number.isFinite(i))return i;if(typeof i=="string"){let s=Number(i);if(Number.isFinite(s))return s;let r=i.split(":").map(a=>Number(a));if(r.every(a=>Number.isFinite(a))){if(r.length===3){let[a,n,l]=r;return a*3600+n*60+l}if(r.length===2){let[a,n]=r;return a*60+n}}}return NaN}getCachedAudioDuration(i){if(!this.audioDurations)return NaN;let s=[i?.id,i?.video_url];for(let r of s){if(!r)continue;let a=this.audioDurations.get(r);if(Number.isFinite(a)&&a>0)return a}return NaN}resolveAudioDuration({datasetDurationSeconds:i,rawDuration:s,audio:r}){let a=Number(i);if(Number.isFinite(a)&&a>0)return a;let n=this.getCachedAudioDuration(r);if(Number.isFinite(n)&&n>0)return Math.round(n);if(s){let l=this.parseDurationSeconds(s);if(Number.isFinite(l)&&l>0)return Math.round(l)}}setElementVisibility(i,s){i.classList.toggle("opacity-0",!s),i.classList.toggle("pointer-events-none",!s)}isMobile(){return window.innerWidth<1024}updateDesktopState(){this.isDesktop=this.desktopValue||!this.isMobile()}debounce(i,s){return(...r)=>{clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>i.apply(this,r),s)}}handleResize(){let i=this.isDesktop;this.updateDesktopState(),i!==this.isDesktop&&(this.closeClothingMenu(),this.closeAudioMenu(),this.closeDesktopMenu())}
129selectPremiumAudio(i){i.preventDefault();let s=i.currentTarget,r=s.dataset.audioName||"this story",a=s.dataset.clothingName||"";this.trackPaywallView(r,a),this.closeAudioMenu();let n=new CustomEvent("live-audio:upgrade-required",{detail:{audioName:r,audioId:s.dataset.audioId,clothingName:a}});window.dispatchEvent(n)}trackPaywallView(i,s){if(typeof mixpanel>"u"||!mixpanel.track)return;let r=this.hasProfileSlugValue?this.profileSlugValue:void 0;mixpanel.track("Viewed Paywall",{Source:"Premium Paywall",Paywall:"Live Audio Paywall",Location:"Live Audio Menu",Character:r,Product:"Live Audio",AudioName:i,ClothingName:s})}};var NT="interactive-stories:sound-enabled",_C=["blur-sm","scale-[1.01]","opacity-80"],pV=2500,Ad=class extends u{static targets=["video","loading","transitionOverlay","transitionSnapshot","interactionOverlay","frame","soundButton","soundIcon","mutedIcon","advanceForm","videoSource","guestChoiceOverlay","signupGateButton","teaserGate"];static classes=["audioMuted"];connect(){this.transitioning=!1,this.videoTargets.forEach(i=>this.#b(i)),this.#E(),this.#k(),this.boundClearTransitionOnInsufficientTokens=this.#e.bind(this),document.addEventListener("insufficient-tokens-modal-rendered",this.boundClearTransitionOnInsufficientTokens)}disconnect(){this.#w(this.videoTargets),this.#f(),this.#p(),this.#l(),document.removeEventListener("insufficient-tokens-modal-rendered",this.boundClearTransitionOnInsufficientTokens)}#e(){this.#a()}videoTargetConnected(i){this.#b(i),this.#E(),this.#k(),this.#c(i)}videoTargetDisconnected(i){this.#L(i)}advance(){this.hasAdvanceFormTarget&&this.#t()&&this.advanceFormTarget.requestSubmit()}handleVideoEnded(){switch(this.#i()){case"guest_choice":this.revealGuestChoice();break;case"signup_gate":this.openSignupGate();break;case"teaser_gate":this.showTeaserGate();break;default:this.advance()}}revealGuestChoice(){this.hasGuestChoiceOverlayTarget&&(this.#s(),this.guestChoiceOverlayTarget.classList.remove("hidden"))}openSignupGate(){this.hasSignupGateButtonTarget&&(this.#s(),this.signupGateButtonTarget.click())}showTeaserGate(){this.hasTeaserGateTarget&&(this.#s(),this.teaserGateTarget.classList.remove("hidden"))}showTransitionOverlay(i){this.#t()||i?.preventDefault()}prepareFrameTransition(){this.transitioning=!0,this.#n(),this.#T(this.videoTargets),this.#r()}frameRendered(i){let s=this.#g(i);s?this.#c(s):this.#a()}toggleSound(){this.hasVideoTarget&&(this.videoTarget.muted?this.enableSound():(this.#P(!1),this.videoTargets.forEach(i=>this.#C(i,!1)),this.#A(),this.#E()))}enableSound(i){i?.preventDefault(),this.hasVideoTarget&&(this.#P(!0),this.videoTargets.forEach(s=>this.#C(s,!0)),this.#A(),this.#v(this.videoTarget),this.#E())}showLoading(i){let s=i?.target;s&&!this.#I(s)||s?.readyState>=3||(this.#f(),this.loadingTimer=window.setTimeout(()=>{s?.readyState>=3||this.hasLoadingTarget&&this.loadingTarget.classList.remove("hidden")},150))}hideLoading(){this.#f(),this.hasLoadingTarget&&this.loadingTarget.classList.add("hidden")}#t(){return this.transitioning?!1:(this.transitioning=!0,this.#n(),this.#T(this.videoTargets),this.#r(),!0)}#i(){return this.hasVideoSourceTarget&&this.videoSourceTarget.dataset.interactiveStoriesEndedBehavior||"advance"}#s(){this.videoTargets.forEach(i=>{try{i.pause()}catch{}})}#r(){this.hasTransitionOverlayTarget&&(this.transitionOverlayTarget.classList.remove("hidden"),this.transitionOverlayTarget.classList.add("flex")),this.hasFrameTarget&&this.frameTarget.classList.add(..._C)}#a(){this.transitioning=!1,this.#p(),this.#l(),this.hasTransitionOverlayTarget&&(this.transitionOverlayTarget.classList.add("hidden"),this.transitionOverlayTarget.classList.remove("flex")),this.hasFrameTarget&&this.frameTarget.classList.remove(..._C)}#n(){if(!this.hasTransitionSnapshotTarget||this.#h()||!this.hasVideoTarget)return;let i=this.videoTarget;if(i.readyState<2||i.videoWidth===0||i.videoHeight===0)return;let s=(this.hasFrameTarget?this.frameTarget:i).getBoundingClientRect();if(s.width===0||s.height===0)return;let r=window.devicePixelRatio||1,a=document.createElement("canvas");a.width=Math.round(s.width*r),a.height=Math.round(s.height*r),a.style.width="100%",a.style.height="100%";let n=a.getContext("2d");if(n){try{this.#o(n,i,a.width,a.height)}catch{return}this.transitionSnapshotTarget.replaceChildren(a),this.transitionSnapshotTarget.classList.remove("hidden")}}#o(i,s,r,a){let n=s.videoWidth/s.videoHeight,l=r/a,d=0,m=0,v=s.videoWidth,E=s.videoHeight;n>l?(v=s.videoHeight*l,d=(s.videoWidth-v)/2):(E=s.videoWidth/l,m=(s.videoHeight-E)/2),i.drawImage(s,d,m,v,E,0,0,r,a)}#l(){this.hasTransitionSnapshotTarget&&(this.transitionSnapshotTarget.replaceChildren(),this.transitionSnapshotTarget.classList.add("hidden"))}#h(){return this.hasTransitionSnapshotTarget&&!this.transitionSnapshotTarget.classList.contains("hidden")}#c(i){if(this.transitioning)if(i.dataset.interactiveStoriesSourcePending!=="true"&&i.readyState>=2)this.#a();else{let s=()=>{delete i.dataset.interactiveStoriesSourcePending,i.classList.remove("invisible"),this.#a()};this.#p(),this.transitionHideTimer=window.setTimeout(s,pV),i.addEventListener("loadeddata",s,{once:!0}),i.addEventListener("canplay",s,{once:!0}),i.addEventListener("playing",s,{once:!0})}}#u(i){return(i?.target||(this.hasFrameTarget?this.frameTarget:null))?.querySelector?.("[data-interactive-stories-target~='videoSource']")}#g(i){if(!this.hasVideoTarget)return;let s=this.#u(i);if(!s||s.dataset.interactiveStoriesHasVideo!=="true"){this.#L(this.videoTarget),this.videoTarget.classList.add("hidden"),this.hideLoading(),this.#A(),this.#a();return}return this.videoTarget.classList.remove("hidden"),this.videoTarget.classList.remove("invisible"),this.videoTarget.loop=s.dataset.interactiveStoriesLoop==="true",this.#d(this.videoTarget,s),this.videoTarget.dataset.interactiveStoriesSourcePending="true",this.#h()&&this.videoTarget.classList.add("invisible"),this.#b(this.videoTarget,!0),this.#E(),this.#k(),this.videoTarget}#d(i,s){i.replaceChildren(),s.dataset.interactiveStoriesAv1Url&&i.appendChild(this.#m(s.dataset.interactiveStoriesAv1Url,s.dataset.interactiveStoriesAv1Type)),i.appendChild(this.#m(s.dataset.interactiveStoriesVideoUrl,s.dataset.interactiveStoriesVideoType))}#m(i,s){let r=document.createElement("source");return r.src=i,r.type=s,r}#f(){this.loadingTimer&&(window.clearTimeout(this.loadingTimer),this.loadingTimer=null)}#p(){this.transitionHideTimer&&(window.clearTimeout(this.transitionHideTimer),this.transitionHideTimer=null)}#b(i,s=!1){!s&&i.dataset.interactiveStoriesStarted==="true"||(s||this.#w(this.videoTargets.filter(r=>r!==i)),delete i.dataset.interactiveStoriesTransitioningAway,i.dataset.interactiveStoriesStarted="true",this.#C(i),i.playsInl
129ine=!0,(s||i.readyState===0)&&i.load(),i.readyState>=3&&this.hideLoading(),requestAnimationFrame(()=>this.#v(i)))}#v(i){i.play().catch(()=>{i.muted||(i.dataset.interactiveStoriesAutoplayMutedFallback="true",i.muted=!0,this.#k(),this.#E(),i.play().catch(()=>{}))}).finally(()=>{i.dataset.interactiveStoriesTransitioningAway!=="true"&&(this.hideLoading(),i.dataset.interactiveStoriesSourcePending!=="true"&&i.readyState>=2&&this.#a())})}#T(i){this.#y(i)}#y(i){i.forEach(s=>this.#S(s))}#S(i){i.dataset.interactiveStoriesTransitioningAway="true",i.muted=!0}#w(i){i.forEach(s=>this.#L(s))}#L(i){this.#S(i),i.pause(),i.dataset.interactiveStoriesStarted="false",delete i.dataset.interactiveStoriesSourcePending,i.querySelectorAll("source").forEach(s=>{s.removeAttribute("src")}),i.removeAttribute("src"),i.load()}#I(i){return!i.classList.contains("hidden")&&(i.currentSrc||i.src||i.querySelector("source[src]"))}#C(i,s=this.#_()){delete i.dataset.interactiveStoriesAutoplayMutedFallback,i.muted=!s}#E(){this.hasVideoTarget&&(this.hasSoundButtonTarget&&this.hasAudioMutedClass&&this.soundButtonTarget.classList.toggle(this.audioMutedClass,this.videoTarget.muted),this.hasSoundIconTarget&&this.hasMutedIconTarget&&(this.soundIconTarget.classList.toggle("hidden",this.videoTarget.muted),this.mutedIconTarget.classList.toggle("hidden",!this.videoTarget.muted)))}#k(){this.hasInteractionOverlayTarget&&(this.hasVideoTarget&&this.videoTarget.muted&&!this.#B()?this.#x():this.#A())}#x(){this.hasInteractionOverlayTarget&&(this.interactionOverlayTarget.classList.remove("hidden"),this.interactionOverlayTarget.classList.add("flex"))}#A(){this.hasInteractionOverlayTarget&&(this.interactionOverlayTarget.classList.add("hidden"),this.interactionOverlayTarget.classList.remove("flex"))}#B(){try{return window.localStorage.getItem(NT)!==null}catch{return!0}}#_(){try{return window.localStorage.getItem(NT)==="true"}catch{return!1}}#P(i){try{window.localStorage.setItem(NT,i?"true":"false")}catch{}}};var Pd=class extends u{static targets=["textarea","sendButton","form"];connect(){this.deviceDetector=new He,this.boundHandleAssistantResponse=this.#e.bind(this),this.boundHandleTurboStream=this.#t.bind(this),document.addEventListener("interactive-stories:assistant-response",this.boundHandleAssistantResponse),document.addEventListener("interactive-stories:game-over",this.boundHandleAssistantResponse),document.addEventListener("turbo:before-stream-render",this.boundHandleTurboStream),this.#n(),window.requestAnimationFrame(()=>this.#r("auto"))}disconnect(){document.removeEventListener("interactive-stories:assistant-response",this.boundHandleAssistantResponse),document.removeEventListener("interactive-stories:game-over",this.boundHandleAssistantResponse),document.removeEventListener("turbo:before-stream-render",this.boundHandleTurboStream)}handleInput(){this.#n()}handleKeydown(i){i.key==="Enter"&&!i.shiftKey&&!this.deviceDetector.isMobile()&&(i.preventDefault(),this.handleSend())}handleSend(){if(this.hasSendButtonTarget&&this.sendButtonTarget.disabled)return;let i=this.textareaTarget.value.trim();if(!i)return;let s=this.#a;s&&(this.#o(),this.#i(i,s),this.#s(s),this.#r(),this.formTarget.requestSubmit(),this.textareaTarget.value="",this.#n())}#e(){this.hasSendButtonTarget&&(this.sendButtonTarget.disabled=!1,this.sendButtonTarget.classList.remove("pointer-events-none","opacity-50"),this.#n(),this.#r())}#t(i){let s=i.target?.getAttribute("target");if(["interactive-stories-typing-indicator","interactive-stories-modal-root","interactive-stories-trust-feedback"].includes(s)){let a=i.detail.render;i.detail.render=n=>{a(n),window.requestAnimationFrame(()=>this.#e())}}}#i(i,s){let r=document.getElementById("interactive-stories-user-message-template");if(!r)return;let a=r.content.cloneNode(!0),n=a.querySelector("div");n&&(n.id="interactive-stories-tmp-user-message");let l=a.querySelector("[data-interactive-stories-message-text]"),d=a.querySelector("[data-interactive-stories-message-body]");l?l.textContent=i:d&&(d.textContent=i),s.appendChild(a)}#s(i){let s=document.getElementById("interactive-stories-typing-indicator-template");s&&i.appendChild(s.content.cloneNode(!0))}#r(i="smooth"){let s=document.getElementById("interactive-stories-messages-scroll")||this.#a;s&&s.scrollTo({top:s.scrollHeight,behavior:i})}get#a(){return document.getElementById("interactive-stories-messages-list")}#n(){if(!this.hasSendButtonTarget)return;this.textareaTarget.value.trim().length>0?(this.sendButtonTarget.classList.remove("opacity-0"),this.sendButtonTarget.disabled||(this.sendButtonTarget.classList.remove("pointer-events-none"),this.sendButtonTarget.classList.add("opacity-100"))):(this.sendButtonTarget.classList.remove("opacity-100"),this.sendButtonTarget.classList.add("opacity-0","pointer-events-none"))}#o(){this.hasSendButtonTarget&&(this.sendButtonTarget.disabled=!0,this.sendButtonTarget.classList.add("pointer-events-none","opacity-50"))}};var Vd=class extends u{static targets=["modal"];static values={storageKey:String,autoShow:{type:Boolean,default:!1}};connect(){this.hasModalTarget&&(this.boundShow=this.show.bind(this),document.addEventListener("interactive-stories--trust-ring:show",this.boundShow),this.autoShowValue&&!this.#e()?this.#i():this.#s())}disconnect(){this.boundShow&&document.removeEventListener("interactive-stories--trust-ring:show",this.boundShow)}show(){this.hasModalTarget&&this.#i()}close(){this.hasModalTarget&&(this.#s(),this.#t())}#e(){if(!this.hasStorageKeyValue)return!1;try{return window.localStorage.getItem(this.storageKeyValue)==="dism
129issed"}catch{return!1}}#t(){if(this.hasStorageKeyValue)try{window.localStorage.setItem(this.storageKeyValue,"dismissed")}catch{}}#i(){this.modalTarget.classList.remove("hidden"),this.modalTarget.classList.add("flex")}#s(){this.modalTarget.classList.add("hidden"),this.modalTarget.classList.remove("flex")}};var Md=class extends u{static targets=["progressRing"];static values={progress:Number};connect(){this.hasProgressRingTarget&&(this.displayedProgress=this.progressValue,this.#i(this.displayedProgress),this.boundHandleTurboStream=this.#e.bind(this),document.addEventListener("turbo:before-stream-render",this.boundHandleTurboStream))}open(){this.dispatch("show")}progressValueChanged(i,s){s===void 0||this.displayedProgress===void 0||!this.hasProgressRingTarget||this.#t(this.displayedProgress,i)}#e(i){let s=i.target;if(s?.getAttribute("target")!==this.element.id)return;let r=s.querySelector("template")?.content?.firstElementChild,a=Number(r?.getAttribute("data-interactive-stories--trust-ring-progress-value"));Number.isFinite(a)&&(i.preventDefault(),this.element.setAttribute("aria-label",r.getAttribute("aria-label")),this.progressValue=a)}#t(i,s){if(this.animationFrame&&(window.cancelAnimationFrame(this.animationFrame),this.animationFrame=null),i===s){this.#i(s),this.displayedProgress=s;return}let r=window.performance.now(),a=550,n=l=>{let d=Math.min((l-r)/a,1),m=1-Math.pow(1-d,3),v=i+(s-i)*m;this.displayedProgress=v,this.#i(v),d<1?this.animationFrame=window.requestAnimationFrame(n):(this.animationFrame=null,this.displayedProgress=s)};this.animationFrame=window.requestAnimationFrame(n)}#i(i){let s=Math.max(0,Math.min(i,100));this.progressRingTargets.forEach(r=>{let a=Number(r.getAttribute("stroke-dasharray"));Number.isFinite(a)&&(r.style.strokeDashoffset=a*(100-s)/100)})}disconnect(){document.removeEventListener("turbo:before-stream-render",this.boundHandleTurboStream),this.animationFrame&&window.cancelAnimationFrame(this.animationFrame)}};var _d=class extends u{static targets=["duration"];static values={videoUrl:String,preCalculatedDuration:Number};connect(){this.loadDuration()}disconnect(){this.cleanup()}loadDuration(){if(this.hasDurationTarget){if(this.hasPreCalculatedDurationValue&&this.preCalculatedDurationValue>0){this.durationTarget.textContent=this.formatTime(this.preCalculatedDurationValue);return}if(this.hasVideoUrlValue){this.video=document.createElement("video"),this.video.preload="metadata",this.handleLoaded=()=>{let i=Number(this.video.duration);Number.isFinite(i)&&i>0&&(this.durationTarget.textContent=this.formatTime(i)),this.cleanup()},this.handleError=()=>{this.cleanup()},this.video.addEventListener("loadedmetadata",this.handleLoaded),this.video.addEventListener("error",this.handleError),this.video.src=this.videoUrlValue;try{this.video.load()}catch{}}}}cleanup(){this.video&&(this.video.removeEventListener("loadedmetadata",this.handleLoaded),this.video.removeEventListener("error",this.handleError),this.video.src="",this.video=null)}formatTime(i){if(!Number.isFinite(i))return"0:00";let s=Math.max(0,Math.floor(i)),r=Math.floor(s/60),a=s%60;return`${r}:${a.toString().padStart(2,"0")}`}};var Bd=class extends u{static targets=["modal","feedbackForm","successMessage","likeButton","dislikeButton","feedbackText","submitButton"];static values={enabled:Boolean,profileId:Number,promptUrl:String,profileSlug:String};connect(){this.handleOpenRequest=this.handleOpenRequest.bind(this),this.handleClose=this.handleClose.bind(this),this.reaction=null,this.submitted=!1,this.exitFlowActive=!1,this.pendingNavigationUrl=null,this.lastPlayedMs=0,this.promptMarked=!1,this.toggleButtons(null),this.disableSubmitButton(),window.addEventListener("live-audio-feedback:open-request",this.handleOpenRequest),this.modalTarget?.addEventListener("close",this.handleClose)}disconnect(){window.removeEventListener("live-audio-feedback:open-request",this.handleOpenRequest),this.modalTarget?.removeEventListener("close",this.handleClose)}async handleOpenRequest(i){let s=i.detail?.url||null;if(this.lastPlayedMs=Number(i.detail?.playedMs)||0,this.pendingNavigationUrl=s,!this.enabledValue){this.followUrl(s);return}this.exitFlowActive=!0,this.markPrompted(),this.trackPrompted(),this.modalTarget?.open||this.open()}open(){this.modalTarget?.showModal&&this.modalTarget.showModal()}close(){this.modalTarget?.open&&this.modalTarget.close()}handleClose(){let i=this.exitFlowActive,s=this.pendingNavigationUrl;i&&!this.submitted&&this.trackDismissed(),this.exitFlowActive=!1,this.pendingNavigationUrl=null,this.resetForm(),i&&this.followUrl(s)}selectLike(){this.reaction="like",this.toggleButtons("like"),this.enableSubmitButton()}selectDislike(){this.reaction="dislike",this.toggleButtons("dislike"),this.enableSubmitButton()}toggleButtons(i){let s=["bg-blue-brand","text-white"],r=["bg-transparent","text-white/60"],a=(d,m)=>{m?(d.classList.add(...s),d.classList.remove(...r)):(d.classList.remove(...s),d.classList.add(...r))},n=i==="like",l=i==="dislike";a(this.likeButtonTarget,n),a(this.dislikeButtonTarget,l)}submitFeedback(i){i.preventDefault(),!(!this.reaction||this.submitted)&&(this.trackFeedbackSubmitted(),this.submitted=!0,this.showSuccessMessage())}showSuccessMessage(){this.feedbackFormTarget.classList.add("!hidden"),this.successMessageTarget.classList.remove("!hidden"),this.successMessageTarget.classList.add("block"),window.setTimeout(()=>{this.close()},2e3)}resetForm(){this.feedbackFormTarget.classList.remove("!hidden"),this.successMessageTarget.classList.add("!hidden"),this.successMessageTarget.classList.remove("block"),this.feedbackTextTarget.value="",this.reaction=null,this.submitted=!1,this.toggleButtons(null),this.disableSubmitButton()}enableSubmitButton(){this.submitButtonTarget.disabled=!1,this.submitButtonTarget.classList.remove("opacity-50","cursor-not-allowed"),this.submitButtonTarget.classList.add("hover:bg-primary")}disableSubmitButton(){this.submitButtonTarget.disabled=!0,this.submitButtonTarget.classList.add("opacity-50","cursor-not-allowed"),this.submitButtonTarget.classList.remove("hover:bg-primary")}async markPrompted(){if(this.promptMarked||!this.hasPromptUrlValue){this.promptMarked=!0;return}this.promptMarked=!0;try{await H(this.promptUrlValue,{body:JSON.stringify({profile_id:this.profileIdValue}),contentType:"application/json"})}catch{this.promptMarked=!1}}trackPrompted(){this.trackMixpanel("Live Audio Feedback Prompted",{PlayedSeconds:this.playedSeconds()})}trackFeedbackSubmitted(){let i=(this.feedbackTextTarget.value||"").trim(),s=i.slice(0,500);this.trackMixpanel("Live Audio Feedback Submitted",{Reaction:this.reaction,CommentLength:i.length,Comment:s||void 0,HasComment:i.length>0,PlayedSeconds:this.playedSeconds()})}trackDismissed(){this.trackMixpanel("Live Audio Feedback Skipped",{PlayedSeconds:this.playedSeconds()})}trackMixpanel(i,s={}){if(typeof window>"u"||!window.mixpanel||typeof window.mixpanel.track!="function")return;let r={ProfileSlug:this.profileSlugValue||void 0,...s};window.mixpanel.track(i,r)}playedSeconds(){return Math.max(0,Math.round(this.lastPlayedMs/1e3))}followUrl(i){i?window.location.href=i:window.history.back()}};var Od=class extends u{static values={autoHideDelay:{type:Number,default:0}};connect(){this.autoHideDelayValue>0&&(this.timeoutId=setTimeout(()=>{this.dismiss()},this.autoHideDelayValue))}disconnect(){this.timeoutId&&clearTimeout(this.timeoutId)}dismiss(){this.element.style.display="none"}};var Fd=class extends u{static targets=["modal","feedbackForm","successMessage","likeButton","dislikeButton","feedbackText","submitButton"];static values={profileSlug:String,liveActionId:String,reaction:String,redirectUrl:String,autoOpen:Boolean,enabled:Boolean};connect(){this.boundHandleOutsideClick=this.handleOutsideClick.bind(this),this.boundHandleClose=this.handleClose.bind(this),this.handleOpenRequest=this.handleOpenRequest.bind(this),this.disableSubmitButton(),this.exitFlowActive=!1,this.pendingNavigationUrl=null,this.submitted=!1,window.addEventListener("live-actions-feedback:open-request",this.handleOpenRequest),this.autoOpenValue&&setTimeout(()=>{this.open()},100)}open(){if(!this.modalTarget)return;this.modalTarget.showModal(),this.modalTarget.addEventListener("click",this.boundHandleOutsideClick),this.modalTarget.addEventListener("close",this.boundHandleClose);let i=document.getElementById("conversation-container");i&&(i.style.filter="blur(4px)")}close(){this.modalTarget&&(this.modalTarget.close(),this.removeBlur())}handleClose(){let i=this.exitFlowActive,s=this.pendingNavigationUrl;this.exitFlowActive=!1,this.pendingNavigationUrl=null,this.submitted=!1,this.removeBlur(),i&&this.followUrl(s),document.dispatchEvent(new CustomEvent("live-actions-feedback:closed"))}removeBlur(){let i=document.getElementById("conversation-container");i&&(i.style.filter="none")}selectLike(){this.reactionValue="like",this.likeButtonTarget.classList.add("bg-blue-brand","text-white"),this.likeButtonTarget.classList.remove("bg-transparent","text-white/60"),this.dislikeButtonTarget.classList.add("bg-transparent","text-white/60"),this.dislikeButtonTarget.classList.remove("bg-blue-brand","text-white"),this.enableSubmitButton()}selectDislike(){this.reactionValue="dislike",this.dislikeButtonTarget.classList.add("bg-blue-brand","text-white"),this.dislikeButtonTarget.classList.remove("bg-transparent","text-white/60"),this.likeButtonTarget.classList.add("bg-transparent","text-white/60"),this.likeButtonTarget.classList.remove("bg-blue-brand","text-white"),this.enableSubmitButton()}enableSubmitButton(){this.submitButtonTarget.disabled=!1,this.submitButtonTarget.classList.remove("opacity-50","cursor-not-allowed"),this.submitButtonTarget.classList.add("hover:bg-primary/90")}disableSubmitButton(){this.submitButtonTarget.disabled=!0,this.submitButtonTarget.classList.add("opacity-50","cursor-not-allowed"),this.submitButtonTarget.classList.remove("hover:bg-primary/90")}async submitFeedback(i){if(i.preventDefault(),!!this.reactionValue){this.submitted=!0;try{let s=await Pt();
129(await H("/user_feedbacks/live_actions",{body:JSON.stringify({live_action_id:this.liveActionIdValue,feedback_device_context:s,polymorphic_feedback:{reaction:this.reactionValue,description:this.feedbackTextTarget.value}})})).ok?this.showSuccessMessage():console.error("Failed to submit feedback")}catch(s){console.error("Error submitting feedback:",s)}}}showSuccessMessage(){this.feedbackFormTarget.style.display="none",this.successMessageTarget.style.display="block",setTimeout(()=>{this.close()},2e3)}handleOutsideClick(i){i.target===this.modalTarget&&this.close()}async handleOpenRequest(i){let s=i.detail?.url||null;if(this.pendingNavigationUrl=s,!this.enabledValue){this.followUrl(s);return}this.exitFlowActive=!0,this.modalTarget?.open||this.open()}followUrl(i){i?window.location.href=i:window.history.back()}disconnect(){this.hasModalTarget&&(this.modalTarget.removeEventListener("click",this.boundHandleOutsideClick),this.modalTarget.removeEventListener("close",this.boundHandleClose)),window.removeEventListener("live-actions-feedback:open-request",this.handleOpenRequest),this.removeBlur()}};var Dd=class extends u{static targets=["form","dialog","submitButton","input"];initialize(){this.onInputChanged=this.onInputChanged.bind(this)}get inputValue(){return this.inputTarget.value.trim()}openModal(){this.hasDialogTarget&&this.dialogTarget.showModal()}inputTargetConnected(){this.inputTarget.addEventListener("input",this.onInputChanged)}inputTargetDisconnected(){this.inputTarget.removeEventListener("input",this.onInputChanged)}onInputChanged(i){if(i.target.value===" "){i.preventDefault(),this.inputTarget.value="";return}i.target.value.includes(`
130`)&&(i.target.value=i.target.value.replace(/\n/g,"")),i.target.selectionStart===i.target.value.length&&i.target.value.includes("  ")&&(i.target.value=i.target.value.replace(/\s{2,}/g," ")),this.validateAndUpdateButton()}validateAndUpdateButton(){this.inputValue.length>2&&!this.charactersLimitReached?this.enableSubmitButton():this.disableSubmitButton()}async submitForm(i){i.preventDefault(),this.inputTarget.value=this.inputTarget.value.replace(/\s{2,}/g," "),this.setLoadingState();let r=new FormData(this.formTarget).get("text")||this.inputValue;if(!r||r===""){this.showError("Please enter a greeting message"),this.resetFormState();return}if(this.charactersLimitReached){this.showError(`Greeting message must be ${350} characters or less`),this.resetFormState();return}try{await this.moderate()}catch{this.showError("Failed to submit greeting. Please try again."),this.resetFormState()}}get charactersLimitReached(){return this.inputValue.length>350}setLoadingState(){this.disableSubmitButton(),this.inputTarget.disabled=!0,this.submitButtonTarget.querySelector(".button-label").textContent=this.formTarget.dataset.loadingLabel}resetFormState(){this.inputTarget.disabled=!1,this.validateAndUpdateButton()}disableSubmitButton(){this.submitButtonTarget.disabled=!0}enableSubmitButton(){this.submitButtonTarget.disabled=!1,this.submitButtonTarget.querySelector(".button-label").textContent=this.formTarget.dataset.submitLabel}showError(i){alert(i)}async moderate(){let i=this.inputValue,s=this.formTarget.dataset.url,a=await H(s,{body:JSON.stringify({message:i})});if(!a.ok)throw new Error(`HTTP error! status: ${a.status}`);return a}};var UT=class extends u{initialize(){this.update=this.update.bind(this)}connect(){this.update(),this.inputTarget.addEventListener("input",this.update)}disconnect(){this.inputTarget.removeEventListener("input",this.update)}update(){this.counterTarget.innerHTML=this.count.toLocaleString()}get count(){let s=this.inputTarget.value.length;return this.hasCountdownValue&&(this.maxLength<0&&console.error(`[stimulus-character-counter] You need to add a maxlength attribute on the input to use countdown mode. The current value is: ${this.maxLength}.`),s=Math.max(this.maxLength-s,0)),s}get maxLength(){return this.inputTarget.maxLength}};UT.targets=["input","counter"],UT.values={countdown:Boolean};var OC=UT;var Rd=class extends OC{initialize(){super.initialize()}};var Nd=class extends u{static values={fromClass:{type:String,default:""},toClass:{type:String,default:""}};static targets=["tab"];activate(i){let s=i.currentTarget;
130this.tabTargets.forEach(r=>{this.toClassValue&&r.classList.remove(this.toClassValue),this.fromClassValue&&r.classList.add(this.fromClassValue)}),this.fromClassValue&&s.classList.remove(this.fromClassValue),this.toClassValue&&s.classList.add(this.toClassValue)}};var Ud=class extends u{static targets=["sidebar"];initialize(){this.boundHandleFrameLoad=this.handleFrameLoad.bind(this),this.boundUpdateHighlight=this.updateHighlight.bind(this)}connect(){this.mobileNavbarVisibilityController=pe("mobile-navbar-visibility",this.application),document.addEventListener("turbo:before-frame-render",this.boundHandleFrameLoad),document.addEventListener("turbo:load",this.boundUpdateHighlight)}disconnect(){document.removeEventListener("turbo:before-frame-render",this.boundHandleFrameLoad),document.removeEventListener("turbo:load",this.boundUpdateHighlight)}updateHighlight(){let i=window.location.pathname+window.location.search,s=this.element.querySelectorAll("a.conversation-item");i.includes("list=true")&&this.mobileNavbarVisibilityController.isMobile()?this.sidebarTarget.classList.remove("hidden"):(s.forEach(r=>{let n=r.pathname+r.search===i;r.classList.toggle("highlighted-conversation",n)}),this.mobileNavbarVisibilityController.isMobile()&&(this.mobileNavbarVisibilityController.hideNavbar(),this.sidebarTarget.classList.add("hidden")))}toggleConversation(i){document.getElementById("conversation-container-skeleton").style.display="flex",document.getElementById("mobile_bottom_bar_container").classList.add("hidden"),this.sidebarTarget.classList.add("hidden"),this.removeNotificationBadge(i),this.mobileNavbarVisibilityController.isMobile()&&this.mobileNavbarVisibilityController.hideNavbar()}handleFrameLoad(){document.getElementById("conversation-container-skeleton").style.display="none"}removeNotificationBadge(i){let s=i.currentTarget.querySelector(".conversation-notification-badge");s&&s.remove()}};var Hd=class extends u{static targets=["allPill"];showAll(i){i.preventDefault(),this.hasAllPillTarget&&this.allPillTarget.click()}};var fV=/^text-\[#/,qd=class extends u{static targets=["display","yellowIcon","redIcon","countdownContainer","likeContainer","currentPrice","originalPrice","expectedPrice","discountBadge"];static values={endDate:String,dayText:String,timeText:String,originalPrice:Number};connect(){this.lastDisplayedText=null,this.baseDisplayClasses=this.hasDisplayTarget?this.displayTarget.className.split(/\s+/).filter(a=>a&&!fV.test(a)).join(" "):"";let i=new Date().getTime(),r=new Date(this.endDateValue).getTime()-i;this.isCountdownMode=r<=1440*60*1e3,this.isCountdownMode?this.showRedIcon():this.showYellowIcon(),this.updateCountdown(),this.expired||this.startTimer()}startTimer(){this.timer=setInterval(()=>{this.updateCountdown()},this.isCountdownMode?1e3:3e3)}restartTimer(){this.timer&&clearInterval(this.timer),this.startTimer()}disconnect(){this.timer&&clearInterval(this.timer)}updateCountdown(){let i=new Date().getTime(),r=new Date(this.endDateValue).getTime()-i;if(r<=0){this.displayExpired();return}let a=Math.floor(r/(1e3*60*60*24)),n=Math.floor(r%(1e3*60*60*24)/(1e3*60*60)),l=Math.floor(r%(1e3*60*60)/(1e3*60)),d=Math.floor(r%(1e3*60)/1e3);if(r>1440*60*1e3){let m=Math.max(a,2);this.isCountdownMode?(this.isCountdownMode=!1,this.displayLongFormat(m),this.restartTimer()):this.displayLongFormat(m)}else this.isCountdownMode?this.displayShortFormat(n,l,d):(this.isCountdownMode=!0,this.displayShortFormat(n,l,d),this.restartTimer())}displayLongFormat(i){let s=this.hasDayTextValue?this.dayTextValue.replace("COUNT_PLACEHOLDER",i):`Ends in ${i} days`;this.showYellowIcon(),this.displayTarget.dataset.contentPackCountdownUrgency="standard",this.lastDisplayedText!==s&&(this.displayTarget.textContent=s,this.displayTarget.className=`${this.baseDisplayClasses} text-[#FFA900]`,this.lastDisplayedText=s)}displayShortFormat(i,s,r){let a=`${i.toString().padStart(2,"0")}:${s.toString().padStart(2,"0")}:${r.toString().padStart(2,"0")}`,n=this.hasTimeTextValue?this.timeTextValue.replace("TIME_PLACEHOLDER",a):`Ends in ${a}`;this.showRedIcon(),this.displayTarget.dataset.contentPackCountdownUrgency="urgent",this.displayTarget.textContent=n,this.displayTarget.className=`${this.baseDisplayClasse
130s} text-[#FF4E51]`,this.lastDisplayedText=n}displayExpired(){if(this.expired)return;this.expired=!0,this.timer&&clearInterval(this.timer),this.hasCountdownContainerTarget&&(this.countdownContainerTarget.style.display="none"),this.hasLikeContainerTarget&&(this.likeContainerTarget.style.display="flex"),this.hasCurrentPriceTarget&&this.hasOriginalPriceValue&&(this.currentPriceTarget.textContent=this.originalPriceValue),this.hasExpectedPriceTarget&&this.hasOriginalPriceValue&&(this.expectedPriceTarget.value=this.originalPriceValue),this.hasOriginalPriceTarget&&(this.originalPriceTarget.style.display="none"),this.discountBadgeTargets.forEach(s=>{s.style.display="none"});let i=this.element.closest("[id^='private-content-card-']");i&&i.querySelectorAll("[data-discount-original-price], [data-discount-badge]").forEach(s=>{s.style.display="none"}),this.dispatch("expired")}showYellowIcon(){this.hasYellowIconTarget&&this.hasRedIconTarget&&(this.yellowIconTarget.style.display="inline",this.redIconTarget.style.display="none")}showRedIcon(){this.hasYellowIconTarget&&this.hasRedIconTarget&&(this.redIconTarget.style.display="inline",this.yellowIconTarget.style.display="none")}};var $d=class extends u{static targets=["daysContainer","daysText","hoursContainer","countdown","urgentContainer","urgentCountdown"];static values={endsAt:String,tier:{type:String,default:"hours"}};static FORTY_EIGHT_HOURS_MS=2880*60*1e3;static TWENTY_FOUR_HOURS_MS=1440*60*1e3;connect(){this.endsAtValue&&(this.initialRender=!0,this.updateDisplay(),this.initialRender=!1,!this.interval&&this.tierValue!=="days"&&this.tierValue!=="expired"&&(this.interval=setInterval(()=>this.updateDisplay(),1e3)))}disconnect(){this.stopCountdown()}updateDisplay(){let i=new Date(this.endsAtValue)-new Date;if(i<=0){this.showTier("expired"),this.stopCountdown();return}let s=this.calculateTier(i);s!==this.tierValue&&(this.tierValue=s,s!=="days"&&!this.interval&&(this.interval=setInterval(()=>this.updateDisplay(),1e3))),this.showTier(s),s==="days"?this.initialRender||this.updateDays(i):s==="hours"?this.updateCountdown(this.countdownTarget,i):s==="urgent"&&this.updateCountdown(this.urgentCountdownTarget,i)}calculateTier(i){return i>this.constructor.FORTY_EIGHT_HOURS_MS?"days":i<=this.constructor.TWENTY_FOUR_HOURS_MS?"urgent":"hours"}showTier(i){this.hasDaysContainerTarget&&(this.daysContainerTarget.hidden=i!=="days"),this.hasHoursContainerTarget&&(this.hoursContainerTarget.hidden=i!=="hours"),this.hasUrgentContainerTarget&&(this.urgentContainerTarget.hidden=i!=="urgent")}updateDays(i){let s=Math.ceil(i/864e5),r=s===1?"day":"days";this.daysTextTarget.textContent=`${s} ${r}`}updateCountdown(i,s){let r=Math.floor(s/36e5),a=Math.floor(s%(1e3*60*60)/(1e3*60)),n=Math.floor(s%(1e3*60)/1e3);i.textContent=`${String(r).padStart(2,"0")}:${String(a).padStart(2,"0")}:${String(n).padStart(2,"0")}`}stopCountdown(){this.interval&&(clearInterval(this.interval),this.interval=null)}};var Gd=class extends u{refresh(){Be.visit(window.location.href,{action:"replace"})}};var Wd=class extends u{static targets=["hours","minutes","seconds"];static values={expiresAt:String,quantity:Number,price:Number,formattedPrice:String,currency:{type:String,default:"USD"},branch:String,source:String,purchaseSource:{type:String,default:"welcome_offer"},eventPrefix:{type:String,default:"welcomeoffer_paywall"}};connect(){this.expiresAtValue&&(this.endTime=new Date(this.expiresAtValue),this.#e(),this.interval=setInterval(()=>this.#e(),1e3),this.#l())}disconnect(){this.#i()}#e(){let i=new Date,s=this.endTime-i;if(s<=0){this.#i(),window.location.reload();return}let r=Math.floor(s/(1e3*60*60)),a=Math.floor(s%(1e3*60*60)/(1e3*60)),n=Math.floor(s%(1e3*60)/1e3);this.#t(r,a,n)}#t(i,s,r){let a=this.hasHoursTarget?s:i*60+s;this.hoursTargets.forEach(n=>{n.textContent=String(i).padStart(2,"0")}),this.minutesTargets.forEach(n=>{n.textContent=String(a).padStart(2,"0")}),this.secondsTargets.forEach(n=>{n.textContent=String(r).padStart(2,"0")})}buyOffer(){this.#s(),this.#r(),this.#a(),this.#n(),this.#o(),this.#h()}#i(){this.interval&&(clearInterval(this.interval),this.interval=null)}#s(){document.querySelectorAll("input[name='token_amount']").forEach(i=>
130{i.value=this.quantityValue})}#r(){document.querySelectorAll("input[name='purchase_source']").forEach(i=>{i.value=this.purchaseSourceValue})}#a(){document.querySelectorAll("input[name='expected_price']").forEach(i=>{i.value=""})}#n(){let i=document.querySelector("[data-tokens-target='purchaseSummary']");i?.dataset.template&&(i.textContent=i.dataset.template.replace("#QUANTITY#",this.quantityValue).replace("#PRICE#",this.formattedPriceValue))}#o(){let i=document.getElementById("token-payment-modal");i&&i.showModal()}#l(){Gt(()=>{this.#c(`${this.eventPrefixValue}_triggered`)})}#h(){this.#c(`${this.eventPrefixValue}_clicked`)}#c(i){typeof mixpanel>"u"||!mixpanel.track||mixpanel.track(i,{source:this.sourceValue,branch_name:this.branchValue})}};var FC=3,vV=2e3,TV=/age.?verif|verification|otp|registration|sign|login|email|password|auth/i,jd=class extends u{static targets=["hours","minutes","seconds","cta"];static values={expiresAt:String,branch:String,markAsShownUrl:String,tokensUrl:String,offerKind:{type:String,default:"welcome"},eventPrefix:{type:String,default:"welcomeoffer_modal"},dismissUrl:String,ctaClickedUrl:String};connect(){if(this.#a()||this.#e()||this.shown)return;this.shown=!0;let i=this.#t();i?.getAttribute("data-modal-component-initial-state-value")!=="closed"&&(this.#s(),this.#r(),this.#l(),i&&!i.dataset.welcomeOfferImpression&&(i.dataset.welcomeOfferImpression="1",this.#n(),this.#d()),this.hasCtaTarget&&this.ctaTarget.focus())}disconnect(){this.#g()}async buyOffer(){if(this.#m(`${this.eventPrefixValue}_clicked`),this.ctaClickedUrlValue){try{await ve(this.ctaClickedUrlValue)}catch{}finally{window.location.assign(this.tokensUrlValue)}return}window.location.assign(this.tokensUrlValue)}trackDismiss(i){i.target.id===this.#i()&&(this.dismissTracked||(this.dismissTracked=!0,this.#m(`${this.eventPrefixValue}_dismissed`),this.dismissUrlValue&&this.#o(this.dismissUrlValue,{responseKind:"turbo-stream"})))}#e(){let i=this.#t(),s=i?.id;return!s||document.querySelectorAll(`#${s}`).length<=1?!1:(i.remove(),!0)}#t(){return this.element.closest("[data-controller~='modal-component']")}#i(){return this.#t()?.id}#s(){document.querySelectorAll("dialog[open]").forEach(i=>{TV.test(i.id)||i.close()})}#r(){let i=this.#t();i&&i.querySelectorAll(":scope > div").forEach(s=>{s.style.zIndex="1100"})}#a(){let i=this.#t();return!i||i.parentElement===document.body?!1:(document.body.appendChild(i),!0)}#n(){this.#o(this.markAsShownUrlValue)}async#o(i,s={},r=1){try{if((await ve(i,s)).ok||r>=FC)return}catch{if(r>=FC)return}setTimeout(()=>this.#o(i,s,r+1),vV*r)}#l(){this.expiresAtValue&&(this.endTime=new Date(this.expiresAtValue),this.#h(),this.interval=setInterval(()=>this.#h(),1e3))}#h(){let i=this.endTime-new Date;if(i<=0){this.#u();return}let s=Math.floor(i/(1e3*60*60)),r=Math.floor(i%(1e3*60*60)/(1e3*60)),a=Math.floor(i%(1e3*60)/1e3);this.#c(s,r,a)}#c(i,s,r){let a=this.hasHoursTarget?s:i*60+s;this.hoursTargets.forEach(n=>{n.textContent=String(i).padStart(2,"0")}),this.minutesTargets.forEach(n=>{n.textContent=String(a).padStart(2,"0")}),this.secondsTargets.forEach(n=>{n.textContent=String(r).padStart(2,"0")})}#u(){this.#g();let i=this.#t();i&&(i.classList.add("hidden"),i.setAttribute("data-modal-component-initial-state-value","closed")),document.body.classList.remove("overflow-hidden")}#g(){this.interval&&(clearInterval(this.interval),this.interval=null)}#d(){Gt(()=>{this.#m(`${this.eventPrefixValue}_rendered`)})}#m(i){typeof mixpanel>"u"||!mixpanel.track||mixpanel.track(i,{branch_name:this.branchValue})}};var bV="two-step-extra-discount:return-anchor",Kd=class extends u{static values={triggerUrl:String,secondsUntilTimeTrigger:Number,pendingCheckoutReturn:Boolean,returnDelaySeconds:{type:Number,default:20},userId:String};connect(){this.timer=setTimeout(()=>this.#s(),this.#e())}disconnect(){this.timer&&(clearTimeout(this.timer),this.timer=null)}#e(){if(!this.pendingCheckoutReturnValue)return Math.max(this.secondsUntilTimeTriggerValue,0)*1e3;let i=this.returnDelaySecondsValue*1e3,s=Date.now()-this.#i();return Math.max(i-s,0)}#t(){return`${bV}:${this.userIdValue}`}#i(){let i=Number(window.localStorage.getItem(this.#t()));if(i)return i;let s=Date.now();return window.localStorage.setItem(this.#t(),String(s)),s}async#s(){this.triggerUrlValue&&(window.localStorage.removeItem(this.#t()),await H(this.triggerUrlValue,{responseKind:"turbo-stream"}))}};var DC=3,yV=2e3,SV=/age.?verif|verification|otp|registration|sign|login|email|password|auth/i,zd=class extends u{static targets=["minutes","seconds","cta"];static values={expiresAt:String,branch:String,markAsShownUrl:String,dismissUrl:String,subscriptionsUrl:String,eventPrefix:{type:String,default:"two_step_extra_modal"}};connect(){if(this.#a()||this.#e()||this.shown)return;this.shown=!0;let i=this.#t();i?.getAttribute("data-modal-component-initial-state-value")!=="closed"&&(this.#s(),this.#r(),this.#l(),i&&!i.dataset.twoStepExtraImpression&&(i.dataset.twoStepExtraImpression="1",this.#n(),this.#g()),this.hasCtaTarget&&this.ctaTarget.focu
130s())}disconnect(){this.#u()}claimOffer(){this.#d(`${this.eventPrefixValue}_clicked`),window.location.assign(this.subscriptionsUrlValue)}trackDismiss(i){i.target.id===this.#i()&&(this.dismissTracked||(this.dismissTracked=!0,this.#d(`${this.eventPrefixValue}_dismissed`),this.dismissUrlValue&&this.#o(this.dismissUrlValue)))}#e(){let i=this.#t(),s=i?.id;return!s||document.querySelectorAll(`#${s}`).length<=1?!1:(i.remove(),!0)}#t(){return this.element.closest("[data-controller~='modal-component']")}#i(){return this.#t()?.id}#s(){document.querySelectorAll("dialog[open]").forEach(i=>{SV.test(i.id)||i.close()})}#r(){let i=this.#t();i&&i.querySelectorAll(":scope > div").forEach(s=>{s.style.zIndex="1100"})}#a(){let i=this.#t();return!i||i.parentElement===document.body?!1:(document.body.appendChild(i),!0)}#n(){this.#o(this.markAsShownUrlValue)}async#o(i,s={},r=1){try{if((await ve(i,s)).ok||r>=DC)return}catch{if(r>=DC)return}setTimeout(()=>this.#o(i,s,r+1),yV*r)}#l(){this.expiresAtValue&&(this.endTime=new Date(this.expiresAtValue),this.#h(),this.interval=setInterval(()=>this.#h(),1e3))}#h(){let i=this.endTime-new Date;if(i<=0){this.#c();return}let s=Math.floor(i/(1e3*60)),r=Math.floor(i%(1e3*60)/1e3);this.minutesTargets.forEach(a=>{a.textContent=String(s).padStart(2,"0")}),this.secondsTargets.forEach(a=>{a.textContent=String(r).padStart(2,"0")})}#c(){this.#u(),this.dismissTracked=!0;let i=this.#t(),s=i&&this.application.getControllerForElementAndIdentifier(i,"modal-component");s?s.closeModal():i&&(i.classList.add("hidden"),i.setAttribute("data-modal-component-initial-state-value","closed"),document.body.classList.remove("overflow-hidden"))}#u(){this.interval&&(clearInterval(this.interval),this.interval=null)}#g(){Gt(()=>{this.#d(`${this.eventPrefixValue}_rendered`)})}#d(i){typeof mixpanel>"u"||!mixpanel.track||mixpanel.track(i,{branch_name:this.branchValue})}};var Xe={IMAGE_MODE_TOGGLE_MODAL_ID:"image-mode-toggle-modal-gen-ai",HIDE_IMAGE_MODE_TOGGLE_MODAL_CONFIRMATION:"hideImageModalConfirmation",SETTINGS_KEY:"gen-ai-suggestions",MODAL_CANCELED:"modal-canceled",IMAGE_MODE:"image-mode",PREFERENCES:{CHAT_IMAGE_MODE:"chat_image_mode"},MODES:{IMAGE:"image",VIDEO:"video"},VIDEO:{DURATION_STORAGE_KEY:"videoGenerationDuration",DEFAULT_DURATION:"5",DEFAULT_TOKEN_PRICE_5S:12,DEFAULT_TOKEN_PRICE_10S:20,DEFAULT_TOKEN_PRICE_20S:30,DEFAULT_TOKEN_PRICE_60S:80}};var RC=252,NC=8,wV=400,Yd=class extends u{static targets=["imageModeToggleModal","imageModeButton","imageModeSwitch","videoModeButton","settingsPopup","settingsButton"];static values={toggleImageModeUrl:String,popupWidth:Number};initialize(){this.deviceDetector=new He,this.boundPositionPopup=this.positionPopup.bind(this)}get imageModeToggleModal(){return document.getElementById(Xe.IMAGE_MODE_TOGGLE_MODAL_ID)}get imageModeButton(){return this.imageModeButtonTarget}get imageModeSwitch(){return this.imageModeSwitchTarget}connect(){this.initializeButtonState(),this.deviceDetector.isMobile()&&(window.addEventListener("resize",this.boundPositionPopup),this.queuePopupPosition())}disconnect(){this.deviceDetector.isMobile()&&window.removeEventListener("resize",this.boundPositionPopup)}onSettingsButtonClick(){this.queuePopupPosition()}queuePopupPosition(){requestAnimationFrame(()=>this.positionPopup())}positionPopup(){if(!this.deviceDetector.isMobile()||!this.hasSettingsPopupTarget||!this.hasSettingsButtonTarget)return;let i=this.settingsPopupTarget,s=i.parentElement?.getBoundingClientRect();if(!s)return;let r=this.resolvePopupWidth(i),a=this.settingsButtonTarget.getBoundingClientRect(),n=window.innerWidth,l=a.right-r;l=Math.max(NC,l),l=Math.min(l,n-r-NC),i.style.left=`${l-s.left}px`,i.style.right="auto"}resolvePopupWidth(i){if(!i)return RC;let s=i.offsetWidth;return s>0?s:this.hasPopupWidthValue?this.popupWidthValue:RC}initializeButtonState(){this.imageModeButton.classList.contains("hidden")?(this.imageModeButton.classList.add("opacity-0","-translate-x-full"),this.imageModeButton.classList.remove("opacity-100","translate-x-0")):(this.imageModeButton.classList.add("opacity-100","translate-x-0"),this.imageModeButton.classList.remove("opacity-0","-translate-x-full"))}async toggleImageMode(i){let r=i.currentTarget.checked;if(!r&&!(localStorage.getItem(Xe.HIDE_IMAGE_MODE_TOGGLE_MODAL_CONFIRMATION)==="true")){this.imageModeToggleModal.show();return}let a=r?"enabled":"disabled";this.storeImageMode(a),this.toggleButtons();let n={name:"chat_image_mode"};await H(this.toggleImageModeUrlValue,{body:n})}hide(){this.imageModeSwitch.checked=!0}storeImageMode(i){localStorage.setItem(Xe.IMAGE_MODE,i),this.dispatch("changed",{detail:{status:i}})}toggleButtons(){this.hasImageModeButtonTarget&&this.toggleButton(this.imageModeButtonTarget),this.hasVideoModeButtonTarget&&this.toggleButton(this.videoModeButtonTarget),this.queuePopupPosition()}toggleButton(i){i.classList.contains("hidden")?(this.storeImageMode("enabled"),i.classList.remove("hidden"),i.classList.add("opacity-0","-translate-x-full"),requestAnimationFrame(()=>{i.classList.remove("opacity-0","-translate-x-full"),i.classList.add("opacity-100","translate-x-0"),this.queuePopupPosition()})):(this.storeImageMode("disabled"),i.classList.remove("opacity-100","translate-x-0"),i.classList.add("opacity-0","-translate-x-full"),setTimeout(()=>{i.classList.add("hidden"),this.queuePopupPosition()},wV))}};var Xd=class extends u{static targets=["switch"];
130toggle(){}};var Qd=class extends u{static targets=["submitButton"];get submitButton(){return this.submitButtonTarget}onSubmit(){this.dispatch("submit",{bubbles:!0})}onCancel(){this.dispatch("cancel",{detail:{action:Xe.MODAL_CANCELED},bubbles:!0})}};function Mt(i){i.getTranslation&&console.warn("useTranslations: getTranslation method already exists on controller"),i.getAllTranslations&&console.warn("useTranslations: getAllTranslations method already exists on controller");let s=new HT(i.element);i.getTranslation=(r,a={})=>s.t(r,a),i.getAllTranslations=r=>s.getNamespace(r),i.locale=s.locale}var HT=class{constructor(s){this.element=s||document.body,this.locale=this.findLocale(),this.translations=this.loadTranslations()}t(s,r={}){let a=this.getNestedValue(this.translations,s.split("."));return a==null?(console.warn(`Missing JS translation: ${s} for locale ${this.locale}`),s):r.interpolation&&typeof a=="string"?this.interpolate(a,r.interpolation):a}getNamespace(s){return this.getNestedValue(this.translations,s.split("."))||{}}findLocale(){return this.findTranslationElement()?.dataset?.jsLocale||"en"}loadTranslations(){let s=this.findTranslationElement();if(!s?.dataset?.jsTranslations)return console.warn("No JS translations found in DOM. Make sure to include js_translations helper in your view."),{};try{return JSON.parse(s.dataset.jsTranslations)}catch(r){return console.error("Failed to parse JS translations:",r),{}}}findTranslationElement(){let s=this.element.closest("[data-js-translations]");return s||document.querySelector("[data-js-translations]")}getNestedValue(s,r){return r.reduce((a,n)=>a&&a[n]!==void 0?a[n]:void 0,s)}interpolate(s,r){return Object.keys(r).reduce((a,n)=>{let l=new RegExp(`%{${n}}`,"g");return a.replace(l,r[n])},s)}};var ar=class{constructor(){this.sfwVideoSuggestions=document.getElementById("sfw-video-suggestions"),this.sfwImageSuggestions=document.getElementById("sfw-image-suggestions"),this.sfwVideoSuggestionsMobile=document.getElementById("sfw-video-suggestions-mobile"),this.sfwImageSuggestionsMobile=document.getElementById("sfw-image-suggestions-mobile"),this.nsfwVideoSuggestions=document.getElementById("nsfw-video-suggestions"),this.nsfwImageSuggestions=document.getElementById("nsfw-image-suggestions"),this.nsfwVideoSuggestionsMobile=document.getElementById("nsfw-video-suggestions-mobile"),this.nsfwImageSuggestionsMobile=document.getElementById("nsfw-image-suggestions-mobile")}showVideoSuggestions(){this.#t(),this.#s()}showImageSuggestions(){this.#e(),this.#i()}#e(){this.sfwVideoSuggestions?.classList?.add("hidden"),this.sfwImageSuggestions?.classList?.remove("hidden"),this.nsfwVideoSuggestions?.classList?.add("hidden"),this.nsfwImageSuggestions?.classList?.remove("hidden")}#t(){this.sfwVideoSuggestions?.classList?.remove("hidden"),this.sfwImageSuggestions?.classList?.add("hidden"),this.nsfwVideoSuggestions?.classList?.remove("hidden"),this.nsfwImageSuggestions?.classList?.add("hidden")}#i(){this.sfwVideoSuggestionsMobile?.classList?.add("hidden"),this.sfwImageSuggestionsMobile?.classList?.remove("hidden"),this.nsfwVideoSuggestionsMobile?.classList?.add("hidden"),this.nsfwImageSuggestionsMobile?.classList?.remove("hidden")}#s(){this.sfwVideoSuggestionsMobile?.classList?.remove("hidden"),this.sfwImageSuggestionsMobile?.classList?.add("hidden"),this.nsfwVideoSuggestionsMobile?.classList?.remove("hidden"),this.nsfwImageSuggestionsMobile?.classList?.add("hidden")}};var qT=class{constructor(){this.currentMode=null,this.controllers={},this.isTransitioning=!1}registerController(s,r){this.controllers[s]=r}unregisterController(s){delete this.controllers[s]}resetModeOnDisconnect(s){if(this.currentMode===s){let r=this.currentMode;this.currentMode=null,this.#i(null,"disconnect",r)}}setMode(s,r="manual"){if(this.currentMode!==s&&!this.isTransitioning){this.isTransitioning=!0;try{let a=this.currentMode;this.currentMode&&this.#e(this.currentMode),s&&this.#t(s,r),this.currentMode=s,this.#i(s,r,a)}catch{console.error("GenAiModeManager: Error during mode transition")}finally{this.isTransitioning=!1}}}getCurrentMode(){return this.currentMode}isActive(s){return this.currentMode===s}#e(s){let r=this.controllers[s];r&&typeof r.deactivate=="function"&&r.deactivate()}#t(s,r){let a=this.controllers[s];a&&typeof a.activate=="function"&&a.activate(r)}#i(s,r,a){let n=new CustomEvent("gen-ai-mode:changed",{detail:{mode:s,source:r,previousMode:a},bubbles:!0});document.dispatchEvent(n)}},ot=new qT;var Jd=class extends u{static targets=["button","additionalButtons","settingsContainer","lightbulbButton","
130numberButton"];static values={isActive:{type:Boolean,default:!1},imageModeEnabled:{type:Boolean,default:!1}};connect(){this.deviceDetector=new He,Mt(this),this.setupInitialState(),this.skipTextDetection=!1,this.manuallyDeactivated=!1,this.boundHandleMessageSent=this.handleMessageSent.bind(this),document.addEventListener("gen-ai--message-form:message-sent",this.boundHandleMessageSent);let i=this.imageModeEnabledValue?"enabled":"disabled";localStorage.setItem(Xe.IMAGE_MODE,i),ot.registerController("image",this)}disconnect(){document.removeEventListener("gen-ai--message-form:message-sent",this.boundHandleMessageSent),ot.resetModeOnDisconnect("image"),ot.unregisterController("image")}get imageModeEnabled(){return localStorage.getItem(Xe.IMAGE_MODE)==="enabled"}setupInitialState(){this.suggestionsUiHandler=new ar,this.hasAdditionalButtonsTarget&&this.additionalButtonsTarget.classList.add("transition-all","duration-500","ease-out"),this.hasSettingsContainerTarget&&this.settingsContainerTarget.classList.add("transition-all","duration-500","ease-out")}get localizedShowMe(){return this.getTranslation("gen_ai_image_mode.messages.show_me")}get chatInputController(){return pe("gen-ai--chat-input",this.application)}get animationController(){return this.application.getControllerForElementAndIdentifier(this.buttonTarget,"gen-ai--mode-toggle-animation")}get videoModeController(){return pe("gen-ai--video-mode",this.application)}activate(i="manual"){this.imageModeEnabled&&(i==="text"&&this.manuallyDeactivated||this.isActiveValue||(this.isActiveValue=!0,this.suggestionsUiHandler.showImageSuggestions(),this.handleToggleLogic(i),this.dispatchImageModeChangedEvent(),this.animationController?.animateToggle(!0),(i==="manual"||i==="button")&&(this.manuallyDeactivated=!1)))}deactivate(i="manual"){this.isActiveValue&&(this.isActiveValue=!1,this.handleToggleLogic(i),this.dispatchImageModeChangedEvent(),this.animationController?.animateToggle(!1),(i==="manual"||i==="button")&&(this.manuallyDeactivated=!0))}turnOnImageMode(i="manual"){ot.setMode("image",i)}turnOnImageModeWithText(){ot.setMode("image","button")}turnOffImageMode(i="manual"){ot.setMode(null,i)}resetManualDeactivation(){this.manuallyDeactivated=!1}toggle(i=null,s="button"){i?.preventDefault();let r=this.isActiveValue?null:"image";ot.setMode(r,s),!r&&s==="button"?this.manuallyDeactivated=!0:r&&(this.manuallyDeactivated=!1),!r&&s==="text"&&this.suggestionsToggleController?.closeSuggestions()}toggleWithSuggestions(i=null){i?.preventDefault();let s=this.isActiveValue?null:"image";ot.setMode(s,"button"),s?(this.manuallyDeactivated=!1,this.insertShowMeText()):this.manuallyDeactivated=!0;let r=this.suggestionsToggleController;s?r?.openSuggestions():r?.closeSuggestions()}get suggestionsToggleController(){return pe("gen-ai--suggestions-toggle",this.application)}toggleSuggestions(){let i=this.suggestionsToggleController;this.isActiveValue?i?.toggle():(ot.setMode("image","button"),i?.openSuggestions())}dispatchImageModeChangedEvent(){this.dispatch("image-mode-changed",{detail:{isActive:this.isActiveValue}})}handleToggleLogic(i="button"){this.additionalButtonsTarget.classList.toggle("absolute"),this.additionalButtonsTarget.classList.toggle("ml-2"),this.isActiveValue?(this.showAdditionalButtons(),this.hideSettingsButton(),this.#e(),i==="button"&&this.insertShowMeText()):(this.hideAdditionalButtons(),this.showSettingsButton(),this.#t())}showAdditionalButtons(){this.hasAdditionalButtonsTarget&&(this.additionalButtonsTarget.classList.remove("-translate-x-full","opacity-0","pointer-events-none"),this.additionalButtonsTarget.classList.add("translate-x-0","opacity-100","pointer-events-auto"),setTimeout(()=>{this.hasLightbulbButtonTarget&&(this.lightbulbButtonTarget.classList.add("scale-105"),setTimeout(()=>{this.lightbulbButtonTarget.classList.remove("scale-105")},150))},100),setTimeout(()=>{this.hasNumberButtonTarget&&(this.numberButtonTarget.classList.add("scale-105"),setTimeout(()=>{this.numberButtonTarget.classList.remove("scale-105")},150))},200))}hideAdditionalButtons(){this.hasAdditionalButtonsTarget&&(this.additionalButtonsTarget.classList.remove("translate-x-0","opacity-100","pointer-events-auto"),this.additionalButtonsTarget.classList.add("-translate-x-full","opacity-0","pointer-events-none"))}showSettingsButton(){this.hasSettingsContainerTarget&&(this.settingsContainerTarget.classList.remove("translate-x-full","opacity-0","w-0"),this.settingsContainerTarget.classList.add("translate-x-0","opacity-100"),this.settingsContainerTarget.classList.remove("pointer-events-none"))}hideSettingsButton(){this.hasSettingsContainerTarget&&(this.settingsContainerTarget.classList.remove("translate-x-0","opacity-100"),this.settingsContainerTarget.classList.add("translate-x-full","opacity-0","w-0"),this.settingsContainerTarget.classList.add("pointer-events-none"))}#e(){let i=pe("gen-ai--video-mode",this.application);i&&i.hideButton()}#t(){let i=pe("gen-ai--video-mode",this.application);i&&i.showButton()}showButton(){this.buttonTarget.classList.remove("hidden")}hideButton(){this.buttonTarget.classList.add("hidden")}insertShowMeText(){let i=this.chatInputController;if(!i||!i.hasTextareaTarget)return;let s=i.textareaTarget,r=s.value,a=this.localizedShowMe,n=this.deviceDetector.isMobile();if(r.toLowerCase().includes(a.toLowerCase())){if(n)return;s.focus(),s.setSelectionRange(s.value.length,s.value.length);return}this.skipTextDetection=!0;let l=r.trim();l.length>0?s.value=l+`
131`+a+" ":s.value=a+" ",n||(s.focus(),s.setSelectionRange(s.value.length,s.value.length)),this.dispatch("text-inserted",{bubbles:!0}),s.dispatchEvent(new Event("input",{bubbles:!0})),Promise.resolve().then(()=>{this.skipTextDetection=!1})}handleMessageSent(){this.isActiveValue&&ot.setMode(null,"message-sent"),this.manuallyDeactivated=!1}isActiveValueChanged(i,s){if(s!==void 0){let r=this.animationController;r&&(r.isActiveValue=i),i?(this.showAdditionalButtons(),this.hideSettingsButton(),this.#e()):(this.hideAdditionalButtons(),this.showSettingsButton(),this.#t())}}};var Zd=class extends u{static targets=["toggle","sfwCards","nsfwCards","unavailableMessage"];static values={isNSFW:{type:Boolean,default:!1},currentMode:{type:String,default:"image"}};static classes=["hidden","visible"];static TRANSITION_CLASSES=["transition-all","duration-500","ease-in-out"];static TRANSITION_DURATION=500;static STYLES={HIDDEN:{position:"absolute",display:"none",opacity:"0"},VISIBLE:{position:"relative",display:"block",opacity:"1"},TRANSITIONING:{position:"absolute",display:"block",top:"0",opacity:"0"}};static NSFW_KEY="genAiSuggestionsNSFW";initialize(){this.boundHandleToggle=this.handleToggle.bind(this),this.boundHandleGlobalSync=this.handleGlobalSync.bind(this),this.boundUpdateUnavailableMessage=this.updateUnavailableMessage.bind(this),this.boundHandleVideoFrameLoad=this.handleVideoFrameLoad.bind(this),this.boundHandleModeChange=this.handleModeChange.bind(this),this.animationTimeout=null,this.isAnimating=!1}connect(){this.setupInitialState(),this.initializeFromStorage(),this.toggleTarget.addEventListener("click",this.boundHandleToggle),this.element.addEventListener("gen-ai--nsfw-toggle:nsfw-changed",this.boundHandleGlobalSync),document.addEventListener("gen-ai-mode:changed",this.boundHandleModeChange),document.addEventListener("turbo:frame-load",this.boundHandleVideoFrameLoad)}disconnect(){this.toggleTarget.removeEventListener("click",this.boundHandleToggle),this.element.removeEventListener("gen-ai--nsfw-toggle:nsfw-changed",this.boundHandleGlobalSync),document.removeEventListener("gen-ai-mode:changed",this.boundHandleModeChange),document.removeEventListener("turbo:frame-load",this.boundHandleVideoFrameLoad),this.animationTimeout&&(clearTimeout(this.animationTimeout),this.animationTimeout=null),this.isAnimating&&this.hasToggleTarget&&(this.toggleTarget.disabled=!1),this.isAnimating=!1}initializeFromStorage(){let i=localStorage.getItem(this.constructor.NSFW_KEY);if(i!==null){let s=i==="true";this.isNSFWValue=s,this.updateUI(s,!1)}}handleToggle(i){let s=i.target.checked;this.isNSFWValue=s,this.updateUI(s),this.saveToStorage(s),this.dispatchChangeEvent(s)}updateUI(i,s=!0){this.hasSfwCardsTarget&&this.hasNsfwCardsTarget&&this.updateContentVisibility(s),this.hasToggleTarget&&(this.toggleTarget.checked=i)}saveToStorage(i){localStorage.setItem(this.constructor.NSFW_KEY,i?"true":"false")}dispatchChangeEvent(i){this.dispatch("nsfw-changed",{detail:{value:i},bubbles:!0})}handleGlobalSync(i){i.detail&&i.detail.value!==this.isNSFWValue&&(this.isNSFWValue=i.detail.value,this.updateUI(i.detail.value))}handleVideoFrameLoad(i){i.target.id==="gen-ai-suggestions-cards-video"&&this.updateUnavailableMessage()}handleModeChange(i){this.currentModeValue=i.detail?.mode??null,this.updateUnavailableMessage()}applyStyles(i,s){Object.assign(i.style,s)}crossDissolve(i,s,r=!0){if(!(!i||!s)){if(!r){this.applyStyles(i,this.constructor.STYLES.HIDDEN),this.applyStyles(s,this.constructor.STYLES.VISIBLE);return}this.isAnimating||(this.isAnimating=!0,this.animationTimeout&&(clearTimeout(this.animationTimeout),this.animationTimeout=null),this.hasToggleTarget&&(this.toggleTarget.disabled=!0),this.applyStyles(s,this.constructor.STYLES.TRANSITIONING),i.style.opacity="0",s.style.opacity="1",this.animationTimeout=setTimeout(()=>{if(!this.hasToggleTarget){this.isAnimating=!1,this.animationTimeout=null;return}this.applyStyles(i,this.constructor.STYLES.HIDDEN),s.style.position="relative",this.toggleTarget.disabled=!1,this.isAnimating=!1,this.animationTimeout=null},this.constructor.TRANSITION_DURATION))}}setupInitialState(){if(!this.hasToggleTarget||!this.hasSfwCardsTarget||!this.hasNsfwCardsTarget){console.error("NSFW toggle missing required targets");return}this.sfwCardsTarget.classList.add(...this.constructor.TRANSITION_CLASSES),this.nsfwCardsTarget.classList.add(...this.constructor.TRANSITION_CLASSES),this.isNSFWValue=this.toggleTarget.checked,this.updateContentVisibility(!1)}updateContentVisibility(i=!0){this.isNSFWValue?this.crossDissolve(this.sfwCardsTarget,this.nsfwCardsTarget,i
131):this.crossDissolve(this.nsfwCardsTarget,this.sfwCardsTarget,i),this.updateUnavailableMessage()}updateUnavailableMessage(){if(!this.hasUnavailableMessageTarget)return;let i=this.shouldShowUnavailableMessage();this.unavailableMessageTarget.classList.toggle("hidden",!i)}shouldShowUnavailableMessage(){let i=this.isNSFWValue?this.nsfwCardsTarget:this.sfwCardsTarget;return i?this.currentModeValue!=="video"?!1:i.querySelector('[id*="video-suggestions"]')?.querySelector('[data-medium="video"]')?.dataset.videoFeatureDisabled==="true":this.isNSFWValue}isNSFWValueChanged(i,s){s!==void 0&&this.hasToggleTarget&&(this.toggleTarget.checked=i,this.updateContentVisibility(!0))}showSFW(){this.isNSFWValue=!1,this.hasToggleTarget&&(this.toggleTarget.checked=!1)}showNSFW(){this.isNSFWValue=!0,this.hasToggleTarget&&(this.toggleTarget.checked=!0)}};var eu=class extends u{static targets=["drawer"];static values={open:Boolean};isOpen(){return this.openValue}openValueChanged(){this.openValue?this.open():this.close(),this.dispatch("state-changed",{detail:{isOpen:this.openValue}})}toggle(){this.openValue=!this.openValue}open(){this.drawerTarget.style.height="auto";let i=this.drawerTarget.scrollHeight;this.drawerTarget.style.height="0px",this.drawerTarget.offsetHeight,this.drawerTarget.style.height=`${i}px`}close(){this.drawerTarget.style.height="0px",this.openValue=!1}};var tu=class extends u{static targets=["showSuggestionsText","hideSuggestionsText","hiddenIcon","shownIcon"];connect(){this.boundResize=this.handleResize.bind(this),this.boundStateChange=this.handleStateChange.bind(this),this.boundDesktopStateChange=this.handleDesktopStateChange.bind(this),this.boundHandleMessageSent=this.handleMessageSent.bind(this),window.addEventListener("resize",this.boundResize),document.addEventListener("bottom-sheet:state-changed",this.boundStateChange),document.addEventListener("gen-ai--suggestions-desktop-drawer:state-changed",this.boundDesktopStateChange),document.addEventListener("gen-ai--message-form:message-sent",this.boundHandleMessageSent),this.updateButtonText()}disconnect(){window.removeEventListener("resize",this.boundResize),document.removeEventListener("bottom-sheet:state-changed",this.boundStateChange),document.removeEventListener("gen-ai--suggestions-desktop-drawer:state-changed",this.boundDesktopStateChange),document.removeEventListener("gen-ai--message-form:message-sent",this.boundHandleMessageSent)}openSuggestions(){this.isOpen()||this.toggle()}closeSuggestions(){this.isOpen()&&this.toggle()}isOpen(){if(this.isMobile()){let i=this.getBottomSheetController();return i&&i.currentState!=="hidden"}else{let i=this.getDesktopDrawerController();return i&&i.openValue}}toggle(){if(this.isMobile()){let i=this.getBottomSheetController();i&&i.currentState!=="hidden"?this.closeSuggestionsAndFocusTextarea():this.toggleMobileDrawer()}else this.toggleDesktopDrawer()}closeSuggestionsAndFocusTextarea(){let i=this.getBottomSheetController(),s=document.querySelector('[data-gen-ai--chat-input-target="textarea"]');if(i){let r=i.drawerTarget,a=r.style.transition;r.style.transition="none",i.toggleDrawer(),setTimeout(()=>{r.style.transition=a},50)}if(s&&(s.focus(),setTimeout(()=>{s.click(),s.focus()},10),window.visualViewport)){let r=()=>{window.visualViewport.height<window.innerHeight*.75&&(s.scrollIntoView({behavior:"smooth",block:"center"}),window.visualViewport.removeEventListener("resize",r))};window.visualViewport.addEventListener("resize",r),setTimeout(()=>{window.visualViewport.removeEventListener("resize",r),s.scrollIntoView({behavior:"smooth",block:"center"})},300)}}toggleMobileDrawer(){let i=this.getBottomSheetController();i&&i.toggleDrawer()}toggleDesktopDrawer(){let i=this.getDesktopDrawerController();i&&i.toggle()}isMobile(){return window.matchMedia("(max-width: 767px)").matches}getBottomSheetController(){return document.querySelector('[data-controller~="bottom-sheet"]')?pe("bottom-sheet",this.application):null}getDesktopDrawerController(){return document.querySelector('[data-controller~="gen-ai--suggestions-desktop-drawer"]')?pe("gen-ai--suggestions-desktop-drawer",this.application):null}handleResize(){let i=this.getBottomSheetController(),s=this.getDesktopDrawerController();this.isMobile()&&s?s.close():!this.isMobile()&&i&&i.closeDrawer(),this.updateButtonText()}handleStateChange(i){if(this.updateButtonText(),this.isMobile()&&i.detail.state==="hidden"){let s=pe("gen-ai--video-mode",this.application);s?.isActiveValue&&s.toggle();let r=pe("gen-ai--image-mode",this.application);
131r?.isActiveValue&&r.toggle()}}handleDesktopStateChange(i){this.updateButtonText()}updateButtonText(){if(!this.hasShowSuggestionsTextTarget||!this.hasHideSuggestionsTextTarget)return;let i;if(this.isMobile()){let s=this.getBottomSheetController();i=s&&s.isOpen()}else{let s=this.getDesktopDrawerController();i=s&&s.isOpen()}if(this.hasHiddenIconTarget&&this.hasShownIconTarget&&(this.isMobile()?i?(this.hiddenIconTarget.classList.add("hidden"),this.shownIconTarget.classList.remove("hidden")):(this.hiddenIconTarget.classList.remove("hidden"),this.shownIconTarget.classList.add("hidden")):(this.hiddenIconTarget.classList.remove("hidden"),this.shownIconTarget.classList.add("hidden"))),this.isMobile()){this.showSuggestionsTextTarget.classList.add("hidden"),this.showSuggestionsTextTarget.classList.remove("md:block"),this.hideSuggestionsTextTarget.classList.add("hidden"),this.hideSuggestionsTextTarget.classList.remove("md:block");return}i?(this.showSuggestionsTextTarget.classList.add("hidden"),this.showSuggestionsTextTarget.classList.remove("md:block"),this.hideSuggestionsTextTarget.classList.remove("hidden"),this.hideSuggestionsTextTarget.classList.add("md:block")):(this.showSuggestionsTextTarget.classList.remove("hidden"),this.showSuggestionsTextTarget.classList.add("md:block"),this.hideSuggestionsTextTarget.classList.add("hidden"),this.hideSuggestionsTextTarget.classList.remove("md:block"))}focusTextarea(){this.dispatch("focus-textarea",{bubbles:!0})}handleMessageSent(){this.closeSuggestions()}};var iu=class extends u{connect(){this.boundOnStateChanged=this.onStateChanged.bind(this),this.boundOnTurboFrameLoad=this.onTurboFrameLoad.bind(this),this.boundOnNsfwChanged=this.onNsfwChanged.bind(this),document.addEventListener("gen-ai--suggestions-desktop-drawer:state-changed",this.boundOnStateChanged),document.addEventListener("bottom-sheet:state-changed",this.boundOnStateChanged),document.addEventListener("turbo:frame-load",this.boundOnTurboFrameLoad),document.addEventListener("gen-ai--nsfw-toggle:nsfw-changed",this.boundOnNsfwChanged)}disconnect(){document.removeEventListener("gen-ai--suggestions-desktop-drawer:state-changed",this.boundOnStateChanged),document.removeEventListener("bottom-sheet:state-changed",this.boundOnStateChanged),document.removeEventListener("turbo:frame-load",this.boundOnTurboFrameLoad),document.removeEventListener("gen-ai--nsfw-toggle:nsfw-changed",this.boundOnNsfwChanged)}onStateChanged(i){let s=i.detail||{};(typeof s.isOpen=="boolean"&&s.isOpen||typeof s.state=="string"&&s.state!=="hidden")&&this.resetScroll()}onTurboFrameLoad(i){i.target&&i.target.contains(this.element)&&this.resetScroll()}onNsfwChanged(){this.isVisible(this.element)&&this.resetScroll()}resetScroll(){try{this.element.scrollLeft=0;let i=document.getElementById("mobile-drawer-scroll-container"),s=document.getElementById("desktop-drawer-scroll-container");i&&(i.scrollTop=0),s&&(s.scrollTop=0)}catch(i){console.error("Failed to reset scroll:",i)}}isVisible(i){if(!i)return!1;let s=window.getComputedStyle(i);return s.display!=="none"&&s.visibility!=="hidden"&&parseFloat(s.opacity||"1")>0&&i.offsetParent!==null}};var su=class extends u{static targets=["textarea","videoPromptContainer","videoPromptText","videoPlaceholderContainer"];static values={flatSurface:Boolean};connect(){Mt(this),this.boundFocusTextarea=this.focusTextarea.bind(this),this.boundAddPrompt=this.addPrompt.bind(this),this.boundCleanPrompt=this.cleanPrompt.bind(this),this.boundHandleMessageSent=this.handleMessageSent.bind(this),this.prompt="",this.deviceDetector=new He,this.currentMessageIsRandom=!1,this.initializeTriggers(),this.originalPlaceholder=this.textareaTarget.placeholder,document.addEventListener("gen-ai--suggestions-toggle:focus-textarea",this.boundFocusTextarea),document.addEventListener("gen-ai--suggestions:selected",this.boundAddPrompt),document.addEventListener("gen-ai--suggestions:cleaned",this.boundCleanPrompt),document.addEventListener("gen-ai--message-form:message-sent",this.boundHandleMessageSent)}initializeTriggers(){let i=this.#t("gen_ai_image_mode.triggers");this.triggerRegex=this.#e(i)}#e(i){if(i.length===0)return/(?!)/;let s=i.map(r=>r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"));return new RegExp(`\\b(${s.join("|")})\\b`,"i")}#t(i){let s=this.getAllTranslations(i);return Object.values(s).filter(r=>typeof r=="string"&&r.trim())}disconnect(){document.removeEventListener("gen-ai--suggestions-toggle:focus-textarea",this.boundFocusTextarea),document.removeEventListener("gen-ai--suggestions:selected",this.boundAddPrompt),document.removeEventListener("gen-ai--suggestions:cleaned",this.boundCleanPrompt),document.removeEventListener("gen-ai--message-form:message-sent",this.boundHandleMessageSent);let i=this.element.closest("form");i&&i.removeEventListener("submit",this.blockFormSubmission)}focusTextarea(i){this.hasTextareaTarget&&this.deviceDetector?.isMobile()&&this.textareaTarget.focu
131s()}get imageModeController(){return pe("gen-ai--image-mode",this.application)}get videoModeController(){return pe("gen-ai--video-mode",this.application)}get messageFormController(){return pe("gen-ai--message-form",this.application)}onChange(i){this.#i(i)}#i(i){if(!this.imageModeController||this.imageModeController.skipTextDetection)return;let s=i.target.value.trim().toLowerCase(),r=this.triggerRegex.test(s),a=this.imageModeController.isActiveValue;this.currentMessageIsRandom=!1,r&&!a?this.imageModeController.turnOnImageMode("text"):r||(a&&(this.imageModeController.turnOffImageMode("text"),pe("gen-ai--suggestions-toggle",this.application)?.closeSuggestions()),this.imageModeController.resetManualDeactivation())}addPrompt(i){let s=i.detail.prompt;(s.medium||"image")!=="video"&&this.handleImagePrompt(s,i.detail.random)}handleImagePrompt(i,s=!1){let r=i.promptText,a=this.textareaTarget.value.replace(this.prompt,"").trimEnd(),n=a.length>0?" ":"",l=a+n+r;this.textareaTarget.value=l,this.prompt=r,this.textareaTarget.dispatchEvent(new Event("input",{bubbles:!0})),this.deviceDetector?.isMobile()||this.textareaTarget.focus(),this.currentMessageIsRandom=s}cleanPrompt(){this.textareaTarget.value=this.textareaTarget.value.replace(this.prompt,""),this.prompt=""}handleMessageSent(){this.currentMessageIsRandom&&this.trackMixpanelEvent("Gen AI - Random suggestion sent",{prompt:this.prompt}),this.prompt=""}isImageRequest(){if(!this.hasTextareaTarget)return!1;let i=this.textareaTarget.value.trim().toLowerCase();return this.triggerRegex.test(i)&&this.imageModeController?.imageModeEnabled}isVideoRequest(){return this.hasVideoPromptContainerTarget?!this.videoPromptContainerTarget.classList.contains("hidden"):!1}hideTextarea(){this.textareaTarget.classList.add("hidden")}showTextarea(i={shouldFocus:!0}){this.textareaTarget.classList.remove("hidden"),i.shouldFocus&&!this.deviceDetector.isMobile()||this.textareaTarget.blur()}showVideoPromptTag(i){this.videoPromptTextTarget.textContent=i,this.videoPromptContainerTarget.classList.remove("hidden"),this.reduceContainerPadding(),this.disableFormSubmission()}hideVideoPromptTag(){this.videoPromptContainerTarget.classList.add("hidden"),this.restoreContainerPadding()}setVideoPromptData(i){let s=this.element.querySelector("[data-gen-ai--message-form-target='messageBody']");s&&(s.value=i)}clearVideoPromptData(){let i=this.element.querySelector("[data-gen-ai--message-form-target='messageBody']");i&&(i.value="")}disableFormSubmission(){let i=this.element.querySelector("[type='submit']");i&&(i.disabled=!0,i.classList.add("opacity-50","cursor-not-allowed"));let s=this.element.closest("form");s&&s.addEventListener("submit",this.blockFormSubmission)}enableFormSubmission(){let i=this.element.querySelector("[type='submit']");i&&(i.disabled=!1,i.classList.remove("opacity-50","cursor-not-allowed"));let s=this.element.closest("form");s&&s.removeEventListener("submit",this.blockFormSubmission)}blockFormSubmission=i=>(i.preventDefault(),i.stopPropagation(),!1);showVideoPlaceholderLabel(){this.hasVideoPlaceholderContainerTarget&&(this.disableFormSubmission(),this.videoPlaceholderContainerTarget.classList.remove("hidden"))}hideVideoPlaceholderLabel(){this.hasVideoPlaceholderContainerTarget&&this.videoPlaceholderContainerTarget.classList.add("hidden")}closeVideoPrompt(){let i=pe("gen-ai--video-mode",this.application);i&&i.closeVideoPrompt()}reduceContainerPadding(){if(this.flatSurfaceValue){this.element.classList.replace("pt-3","pt-1");return}this.element.classList.remove("py-3","md:py-4"),this.element.classList.add("pt-1","md:pt-2","pb-3","md:pb-4")}restoreContainerPadding(){if(this.flatSurfaceValue){this.element.classList.replace("pt-1","pt-3");return}this.element.classList.remove("pt-1","md:pt-2","pb-3","md:pb-4"),this.element.classList.add("py-3","md:py-4")}trackMixpanelEvent(i,s){typeof window.mixpanel<"u"&&window.mixpanel.track&&window.mixpanel.track(i,s)}};var UC=i=>i===Xe.MODES.IMAGE,$T=i=>i===Xe.MODES.VIDEO;var CV="/messages/check",Pa=class{constructor(){}async isVideoRequest(s){if(!s||s.trim().length===0)return!1;try{let r=await H(CV,{body:JSON.stringify({message_body:s})});return r.ok?(await r.json).video_request||!1:(console.error("Video request detection failed:",r.status),!1)}catch(r){return console.error("Video request detection error:",r),!1}}};var ru="voice_token";var Va={image:"GenAiImagePrompt",video:"GenAiVideoPrompt"},au=class extends u{static targets=["messageInput","submitButton","messageBody","imageAmou
131nt","tokenDisplay","submitButtonLabel","genAiSuggestionId","genAiPromptId","editMessagePreviewContainer","editMessagePreview","videoHintContainer","sendButtonTooltip","submitButtonContainer"];static values={editMode:Boolean,videoHintShown:{type:Boolean,default:!1}};get videoModeController(){return pe("gen-ai--video-mode",this.application)}get imageModeController(){return pe("gen-ai--image-mode",this.application)}get chatInputController(){return pe("gen-ai--chat-input",this.application)}get videoDuration(){let r=document.querySelector("[data-controller*='gen-ai--video-duration-selector']")?.dataset.tenSecondsEnabled==="true"?"10":Xe.VIDEO.DEFAULT_DURATION;return localStorage.getItem(Xe.VIDEO.DURATION_STORAGE_KEY)||r}#e(i){let s=this.chatInputController?.getAllTranslations(i);return Object.values(s||{}).filter(r=>typeof r=="string"&&r.trim())}#t(i){if(i.length===0)return/(?!)/;let s=i.map(r=>r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"));return new RegExp(`\\b(${s.join("|")})\\b`,"i")}async#i(){if(this.videoHintShownValue)return!1;if(!this.imageModeController?.imageModeEnabled)return;let i=this.messageInputTarget.value.trim();if(!i){this.videoRequestDetected=!1;return}let s=this.#e("gen_ai_video_mode.triggers");if(!this.#t(s).test(i.toLowerCase())){this.videoRequestDetected=!1;return}try{return await this.videoRequestDetector.isVideoRequest(i)?(this.videoRequestDetected=!0,this.videoHintShownValue=!1,this.showVideoHint(),!0):(this.videoRequestDetected=!1,!1)}catch(n){return console.error("Video trigger detection failed:",n),this.videoRequestDetected=!1,!1}}handleRenderComplete=()=>{this.hasSubmitted=!1,this.toggleSendButton()};renderControllers=["messages--delayed-render","messages--immediate-render","messages--premium-paywall-loader","video-loader"];connect(){this.hasSubmitted=!1,this.deviceDetector=new He,this.videoRequestDetector=new Pa,this.toggleTokensBound=this.toggleTokens.bind(this),this.videoRequestDetected=!1,document.addEventListener("gen-ai--image-mode:image-mode-changed",this.onImageModeChange),document.addEventListener("gen-ai--image-amount-selector:selected",this.updateSubmitButtonDisplay),document.addEventListener("gen-ai--video-mode:selected",this.updateSubmitButtonDisplay),document.addEventListener("gen-ai--video-mode:video-mode-changed",this.onVideoModeChange),document.addEventListener("gen-ai--image-mode-settings:changed",this.toggleTokensBound),document.addEventListener("insufficient-tokens-modal-rendered",this.handleInsufficientTokensModalRendered),document.addEventListener("paywall-modal-rendered",this.handlePaywallModalRendered),document.addEventListener("gift:sent",this.handleGiftSent),this.messageInputTarget.addEventListener("focus",this.hideMobileDrawer),this.messageInputTarget.addEventListener("input",this.toggleTokensBound),this.renderControllers.forEach(i=>{document.addEventListener(`${i}:render-complete`,this.handleRenderComplete)}),this.imageModeActiveValue=!1,this.setupFormFields(),this.handleFormSubmit=this.handleFormSubmit.bind(this),this.element.addEventListener("submit",this.handleFormSubmit),this.submitButtonTarget.addEventListener("click",this.handleSubmit),this.messageInputTarget.addEventListener("input",this.toggleSendButton),this.messageInputTarget.addEventListener("keydown",this.handleKeydown),this.toggleSendButton(),this.updateSubmitButtonDisplay(),this.toggleTokens()}blurInput=()=>{};hideMobileDrawer=()=>{if(!this.deviceDetector.isMobile())return;let i=pe("gen-ai--suggestions-toggle",this.application);i&&i.closeSuggestions()};onImageModeChange=i=>{this.toggleTokens(i)};onVideoModeChange=i=>{i.detail&&!i.detail.isActive&&(this.videoHintShownValue=!1)};setupEditMessage(){this.genAiMessageEditFormController=pe("gen-ai--message-edit-form",this.application),this.genAiMessageEditFormController.setupEditMessage()}openEditMessagePreview(i){this.editMessagePreviewContainerTarget.classList.remove("hidden");let s=this.truncateToInputMaxLength(i.currentTarget.dataset.message);this.editMessagePreviewTarget.textContent=s,this.messageInputTarget.value=s,this.messageInputTarget.dispatchEvent(new Event("input",{bubbles:!0})),this.hasVideoHintContainerTarget&&(this.videoHintContainerTarget.classList.remove("bottom-2"),this.videoHintContainerTarget.classList.add("bottom-0"))}closeEditMessagePreview(){this.editMessagePreviewContainerTarget.classList.add("hidden"),this.messageInputTarget.value="",this.element.action=this.element.dataset.messageCreatePath,this.element.querySelector('input[name="message[id]"]')?.remove(),this.messageInputTarget.dispatchEvent(new Event("input",{bubbles:!0})),this.toggleEditMode(),this.hasVideoHintContainerTarget&&(this.videoHintContainerTarget.classList.remove("bottom-0"),this.videoHintContainerTarget.classList.add("bottom-2"))}truncateToInputMaxLength(i){let s=this.messageInputTarget.maxLength;return s<=0?i:i.slice(0,s)}setupFormAction(i){let s=this.element.dataset.messageEditPath;this.element.action=s;let r=this.element.querySelector('input[name="message[id]"]');r||(r=document.createElement("input"),r.type="hidden",r.name="message[id]",this.element.appendChild(r)),r.value=i}hideAllRegenerateImageButtons(){document.querySelectorAll(".regenerate-image-button").forEach(s=>{s.remove()})}toggleEditMode(){this.editModeValue=!this.editModeValue}disconnect(){this.element.removeEventListener("submit",this.handleFormSubmit),this.submitButtonTarget.removeEventListener("click",this.handleSubmit),this.messageInputTarget.removeEventListener("input",this.toggleSendButton),this.messageInputTarget.removeEventListener("keydown",this.handleKeydown),this.messageInputTarget.removeEventListener("input",this.toggleTokensBound),document.removeEventListener("gen-ai--image-amount-selector:selected",this.updateSubmitButtonDisplay),document.removeEventListener("gen-ai--video-mode:selected",this.updateSubmitButtonDisplay),document.removeEventListener("gen-ai--video-mode:video-mode-changed",this.onVideoModeChange),document.removeEventListener("gen-ai--image-mode:image-mode-changed",this.onImageModeChange),document.removeEventListener("gen-ai--image-mode-settings:changed",this.toggleTokensBound),document.removeEventListener("insufficient-tokens-modal-rendered",this.handleInsufficientTokensModalRendered),document.removeEventListener("paywall-modal-rendered",this.handlePaywallModalRendered),document.removeEventListener("gift:sent",this.handleGiftSent),this.renderControllers.forEac
131h(i=>{document.removeEventListener(`${i}:render-complete`,this.handleRenderComplete)}),this.cancelLoader()}handleInsufficientTokensModalRendered=()=>{this.hasSubmitted=!1};handlePaywallModalRendered=()=>{this.hasSubmitted=!1,this.cancelLoader(),this.enableSubmitButton()};handleGiftSent=()=>{this.hasSubmitted=!0,this.disableSubmitButton()};cancelLoader(){this.loaderTimeout&&(clearTimeout(this.loaderTimeout),this.loaderTimeout=null);let i=document.getElementById("loader");i&&i.remove()}toggleSendButton=()=>{let s=pe("gen-ai--chat-input",this.application)?.isVideoRequest()||!1,r=this.videoModeController?.isActiveValue&&!s;if(this.hasSubmitted||r){this.disableSubmitButton();return}let a=this.messageInputTarget.value.trim().length>=2||s;this.submitButtonTarget.disabled=!a,a?(this.submitButtonTarget.style.opacity="",this.submitButtonTarget.style.pointerEvents="",this.submitButtonTarget.classList.remove("opacity-50","cursor-not-allowed"),this.submitButtonTarget.classList.add("cursor-pointer")):(this.submitButtonTarget.style.opacity="0.5",this.submitButtonTarget.style.pointerEvents="none",this.submitButtonTarget.classList.add("opacity-50","cursor-not-allowed"),this.submitButtonTarget.classList.remove("cursor-pointer"))};handleFormSubmit=i=>{if(this.isGuestUser())return i.preventDefault(),i.stopPropagation(),!1;this.hasMessageBodyTarget&&this.messageInputTarget.value.trim()&&(this.messageBodyTarget.value=this.messageInputTarget.value)};handleSubmit=async i=>{if(i?.preventDefault(),this.isGuestUser()){this.openRegistrationModalForGuest(i);return}if(this.submitButtonTarget.disabled)return;let r=pe("gen-ai--chat-input",this.application)?.isVideoRequest()||!1;!r&&await this.#i()||(r?this.submitVideo():this.submitChatMessage())};handleKeydown=i=>{if(i.keyCode===13&&!i.shiftKey&&!this.deviceDetector.isMobile()){if(i.preventDefault(),this.isGuestUser()){this.openRegistrationModalForGuest(i);return}let r=pe("gen-ai--chat-input",this.application)?.isVideoRequest()||!1;if(this.videoModeController?.isActiveValue&&!r)return;(this.messageInputTarget.value.trim().length>=2||r)&&!this.submitButtonTarget.disabled&&this.handleSubmit()}};removeMessageActions(){let i=document.getElementById("messages-list");i&&i.querySelectorAll(".message-delete-action").forEach(s=>s.remove())}appendUserMessage(){let i=it.escapeHTML(this.messageInputTarget.value);if(!i)return;let s=this.element.querySelector(`input[name="${ru}"]`)?this.createVoiceUserMessageHTML():this.createUserMessageHTML(i),r=this.convertStringToHTML(s),a=document.getElementById("messages-list");a&&(a.appendChild(r),this.optimisticMessageElement=r,this.scrollToBottom({force:!0}))}appendVideoUserMessage(){let i=pe("gen-ai--chat-input",this.application);if(!i?.hasVideoPromptTextTarget)return;let s=i.videoPromptTextTarget.textContent;if(!s)return;let r=this.createVideoUserMessageHTML(s),a=this.convertStringToHTML(r),n=document.getElementById("messages-list");n&&(n.appendChild(a),this.optimisticMessageElement=a,this.scrollToBottom({force:!0}))}currentTimeLabel(){return new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit"})}createUserMessageHTML(i){return`
132      <div id="user-generated-message" class="mt-5 flex justify-end text-right mb-2 user-message">
133        <div class="relative flex-col gap-[9px] inline-flex w-auto max-w-[75%]">
134          <div class="px-4 py-2 bg-gradient-blue rounded-tl-3xl rounded-tr-3xl rounded-bl-3xl rounded-br-[4px] justify-start items-start inline-flex">
135            <div class="font-roboto text-grey-medium text-base lg:text-[15px] font-normal">
136              <p class="[word-break:break-word]">${i}</p>
137            </div>
138          </div>
139          <div class="text-neutral-500 text-[13px] font-normal">${this.currentTimeLabel()}</div>
140        </div>
141      </div>
142    `}createVoiceUserMessageHTML(){return`
143      <div id="user-generated-message" class="mt-5 flex justify-end text-right mb-2 user-message">
144        <div class="relative flex-col gap-[9px] inline-flex w-auto max-w-[75%] items-end">
145          <div class="px-4 py-3 bg-gradient-blue rounded-tl-3xl rounded-tr-3xl rounded-bl-3xl rounded-br-[4px] flex flex-col gap-3 w-[320px] max-w-full">
146            <div class="h-9 rounded-full bg-white/10 animate-pulse"></div>
147          </div>
148          <div class="text-neutral-500 text-[13px] font-normal">${this.currentTimeLabel()}</div>
149        </div>
150      </div>
151    `}createVideoUserMessageHTML(i){return`
152      <div id="user-generated-message" class="mt-5 flex justify-end text-right mb-2 user-message">
153        <div class="relative flex-col gap-[9px] inline-flex w-auto max-w-[75%]">
154          <div class="px-4 py-2 bg-gradient-blue rounded-tl-3xl rounded-tr-3xl rounded-bl-3xl rounded-br-[4px] justify-start items-start inl
154ine-flex">
155            <div class="font-roboto text-grey-medium text-base lg:text-[15px] font-normal">
156              <p class="[word-break:break-word]">\u{1F3A5} ${it.escapeHTML(i)}</p>
157            </div>
158          </div>
159          <div class="text-neutral-500 text-[13px] font-normal">${this.currentTimeLabel()}</div>
160        </div>
161      </div>
162    `}appendPlaceholderLoader(){let s=this.convertStringToHTML(`
163      <div id="loader" class="hidden">
164      </div>
165    `),r=document.getElementById("messages-list");r&&r.appendChild(s)}appendLoader(){let i=document.getElementById("loader");if(!i)return;if(i.children.length>0){i.classList.remove("hidden");return}let r=this.convertStringToHTML(`
166      <div class="justify-start items-start gap-2.5 inline-flex slow-fade py-2">
167        <div class="justify-start items-start gap-3 flex">
168          <div class="flex-col justify-start items-start gap-[9px] inline-flex">
169            <div class="px-8 py-3 bg-[#252525] rounded-tl-3xl rounded-tr-3xl rounded-bl-[4px] rounded-br-3xl justify-start items-start inline-flex">
170              <div class="snippet" data-title="dot-flashing">
171                <div class="stage"><div class="dot-flashing"></div></div>
172              </div>
173            </div>
174          </div>
175        </div>
176      </div>
177    `);i.appendChild(r),i.classList.remove("hidden"),this.scrollToBottom()}clearMessageInput(){let i=pe("gen-ai--chat-input",this.application);i?.isVideoRequest()&&(i.clearVideoPromptData(),i.hideVideoPromptTag(),i.hideVideoPlaceholderLabel()),this.messageInputTarget.value="",this.messageBodyTarget.value="",this.messageInputTarget.dispatchEvent(new Event("input",{bubbles:!0})),this.toggleSendButton()}clearVideoInput(){let i=pe("gen-ai--chat-input",this.application);i&&(i.clearVideoPromptData(),i.hideVideoPromptTag(),i.hideVideoPlaceholderLabel()),this.messageInputTarget.value="",this.messageBodyTarget.value="",this.toggleSendButton(),this.scrollInputIntoView({shouldFocus:!1})}setupFormFields(){this.setImageAmount(),this.setGenAiSuggestionData()}
177resetFormFields(){this.hasImageAmountTarget&&(this.imageAmountTarget.value=null),this.hasGenAiSuggestionIdTarget&&(this.genAiSuggestionIdTarget.value=null),this.hasGenAiPromptIdTarget&&(this.genAiPromptIdTarget.value=null)}setImageAmount(){let i=localStorage.getItem("imageGenerationAmount")||"1";this.hasImageAmountTarget&&(this.imageAmountTarget.value=i)}setGenAiSuggestionData(){let i=this.getStoredPrompt(Va.image);if(i||(i=this.getStoredPrompt(Va.video)),i&&this.hasGenAiSuggestionIdTarget&&this.hasGenAiPromptIdTarget){this.genAiSuggestionIdTarget.value=i.suggestionId.toString(),this.genAiPromptIdTarget.value=i.id.toString();let s=i.medium==="video"?Va.video:Va.image;localStorage.removeItem(s)}}getStoredPrompt(i){let s=localStorage.getItem(i);return s?JSON.parse(s):null}disableSubmitButton(){this.submitButtonTarget.disabled=!0,this.submitButtonTarget.style.opacity="0.5",this.submitButtonTarget.classList.add("opacity-50","cursor-not-allowed"),this.submitButtonTarget.classList.remove("cursor-pointer"),this.submitButtonTarget.style.pointerEvents="none"}enableSubmitButton(){this.submitButtonTarget.disabled=!1,this.submitButtonTarget.style.opacity="",this.submitButtonTarget.classList.remove("opacity-50","cursor-not-allowed"),this.submitButtonTarget.classList.add("cursor-pointer"),this.submitButtonTarget.style.pointerEvents=""}isGuestUser(){return this.submitButtonTarget.type==="button"&&this.submitButtonTarget.dataset.action?.includes("openRegistrationModal")}openRegistrationModalForGuest(i=null){let s=pe("main",this.application);if(!s||typeof s.openRegistrationModal!="function")return!1;let r=this.submitButtonTarget.dataset.redirectUrl||window.location.href,a=i||{preventDefault:()=>{},currentTarget:{dataset:{redirectUrl:r}}};return s.openRegistrationModal(a),!0}scrollToBottom({force:i=!1}={}){je({force:i})}convertStringToHTML(i){let s=document.createElement("div");return s.innerHTML=i.trim(),s.firstChild}resetUIAfterSend(){this.dispatch("message-sent",{bubbles:!0})}scrollInputIntoView(i={shouldFocus:!0}){this.deviceDetector.isMobile()&&setTimeout(()=>{if("visualViewport"in window&&i.shouldFocus){let s=()=>{this.messageInputTarget.scrollIntoView({behavior:"smooth",block:"center"}),window.visualViewport.removeEventListener("resize",s)};window.visualViewport.addEventListener("resize",s),setTimeout(()=>{window.visualViewport.removeEventListener("resize",s),this.messageInputTarget.scrollIntoView({behavior:"smooth",block:"center"})},500)}else setTimeout(()=>{this.messageInputTarget.scrollIntoView({behavior:"smooth",block:"center"})},300)},300)}updateSubmitButtonDisplay=i=>{if(!i||!i.detail||!i.detail.data)return;let{type:s}=i.detail.data;!UC(s)&&!$T(s)||$T(s)&&!pe("gen-ai--chat-input",this.application)?.isVideoRequest()||(this.showTokens(),this.updatePrice(i.detail.data))};toggleTokens(i){let s=pe("gen-ai--chat-input",this.application),r=s?.isImageRequest()||!1,a=s?.isVideoRequest()||!1;if(r)try{let n=pe("gen-ai--image-amount-selector",this.application);n&&n.selectStoredAmount()}catch{this.showTokens()}else a?this.showTokens():this.hideTokens()}showTokens(){let i=this.submitButtonTarget.dataset.imageModeClasses;i&&(this.submitButtonTarget.className=i),this.hasTokenDisplayTarget&&(this.tokenDisplayTarget.classList.remove("hidden"),this.tokenDisplayTarget.classList.add("flex"))}hideTokens(){let i=this.submitButtonTarget.dataset.defaultClasses;i&&(this.submitButtonTarget.className=i),this.hasTokenDisplayTarget&&(this.tokenDisplayTarget.classList.add("hidden"),this.tokenDisplayTarget.classList.remove("flex"))}updatePrice(i){this.hasSubmitButtonLabelTarget&&hi(this.submitButtonLabelTarget,i)}submitVideo(){let i=this.buildVideoPayload(),s=this.element.dataset.videoGenerationPath;this.editModeValue&&this.setupEditMessage(),this.executeSubmissionWorkflow({appendMessage:()=>this.appendVideoUserMessage(),clearInput:()=>this.clearVideoInput()});let r=this.claimOptimisticMessage();H(s,{body:JSON.stringify(i),responseKind:"turbo-stream"}).then(a=>{a.ok&&!a.redirected||(this.recoverFromFailedSubmission({optimisticElement:r}),this.handleVideoSubmissionError("Video submission rejected",`HTTP ${a.statusCode}`))}).catch(a=>{this.recoverFromFailedSubmission({optimisticElement:r}),this.handleVideoSubmissionError("Video submission error",a.message)}),this.videoHintShownValue=!1}claimOptimisticMessage(){let i=this.optimisticMessageElement;return this.optimisticMessageElement=null,i}recoverFromFailedSubmission({optimisticElement:i=null,restoreText:s=null}={}){this.cancelLoader(),this.resetFormFields(),this.enableSubmitButton(),this.hasSubmitted=!1,(i||this.claimOptimisticMessage())?.remove(),s&&!this.messageInputTarget.value.trim()&&(this.messageInputTarget.value=s,this.messageInputTarget.dispatchEvent(new Event("input",{bubbles:!0})))}submitChatMessage(){if(!(this.messageInputTarget.value.trim().length>=2))return;this.editModeValue&&this.setupEditMessage(),this.setupFormFields(),this.messageBodyTarget.value=this.messageInputTarget.value;let s=new FormData(this.element),r=this.element.action,a=this.messageInputTarget.value;document.dispatchEvent(new CustomEvent("chat:message-sent",{bubbles:!0})),this.executeSubmissionWorkflow({appendMessage:()=>this.appendUserMessage(),clearInput:()=>this.clearMessageInput()});let n=this.claimOptimisticMessage();H(r,{body:s,responseKind:"turbo-stream"}).then(l=>{l.ok&&!l.redirected||this.recoverFromFailedSubmission({optimisticElement:n,restoreText:a})}).catch(l=>{this.recoverFromFailedSubmission({optimisticElement:n,restoreText:a}),console.error("Chat message submission error:",l)}),this.videoHintShownValue=!1}executeSubmissionWorkflow({appendMessage:i,clearInput:s}){this.removeMessageActions(),i(),s(),this.resetUIAfterSend(),this.setupFormFields(),this.disableSubmitButton(),this.appendPlaceholderLoader(),this.hideAllRegenerateImageButtons(),this.loaderTimeout=setTimeout(()=>{this.appendLoader(),this.resetFormFields()},2e3),this.hasSubmitted=!0}buildVideoPayload(){let i=pe("gen-ai--chat-input",this.application),s=i?.hasVideoPromptTextTarget?i.videoPromptTextTarget.textContent:"",r=document.querySelector('input[name="message[profile_id]"]')?.value,a=this.element.querySelector('input[name="message[conversation_id]"]')?.value,n=this.getStoredPrompt(Va.video),l={message:{body:`\u{1F3A5} ${s}`,profile_id:parseInt(r)||null,conversation_id:parseInt(a)||null}
177,gen_ai_suggestion:{gen_ai_prompt_id:n?.id||null,duration:this.videoDuration}};if(this.editModeValue){let d=this.element.querySelector('input[name="message[id]"]');d&&(l.message.id=d.value)}return l}handleVideoSubmissionError(i,s){console.error(`${i}:`,s)}showVideoHint(){!this.hasVideoHintContainerTarget||!this.videoModeController||this.videoModeController.isActiveValue||this.videoHintShownValue||(this.videoHintContainerTarget.classList.remove("hidden"),this.videoHintShownValue=!0,this.disableSubmitButton(),this.#s(),setTimeout(()=>this.closeVideoHint(),5e3))}#s(){let i=pe("bottom-sheet",this.application);i?.isFull()&&i.updateState("half")}switchToVideoMode(i){i.target.classList.contains("close-video-hint-button")||(i.preventDefault(),!(!this.videoModeController||this.videoModeController.isActiveValue)&&(this.videoModeController.toggle(),this.closeVideoHint()))}closeVideoHint(i){i?.preventDefault(),this.hasVideoHintContainerTarget&&(this.videoHintContainerTarget.classList.add("hidden"),this.videoHintShownValue=!1)}hideVideoHint(){this.hasVideoHintContainerTarget&&this.videoHintContainerTarget.classList.add("hidden")}showSendButtonTooltip=i=>{if(i.target!==this.submitButtonContainerTarget||!this.submitButtonTarget.disabled)return;let s=document.querySelector("#gen-ai-video-mode-button"),r=s&&!s.classList.contains("hidden");if(this.messageInputTarget.value.trim().length===0||!r||!this.hasSendButtonTooltipTarget||!this.videoRequestDetected||this.videoModeController?.isActiveValue)return;i.preventDefault(),window.innerWidth<1380&&this.hideVideoHint(),this.sendButtonTooltipTarget.classList.remove("hidden");let n=this.getTextBubbleController();n&&n.show()};hideSendButtonTooltip=()=>{if(!this.hasSendButtonTooltipTarget)return;this.sendButtonTooltipTarget.classList.add("hidden");let i=this.getTextBubbleController();i&&i.hide()};getTextBubbleController(){let i=document.getElementById("send-button-video-block-tooltip");return i?this.application.getControllerForElementAndIdentifier(i,"text-bubble"):null}closeSendButtonTooltip(i){i?.preventDefault(),this.hasSendButtonTooltipTarget&&this.sendButtonTooltipTarget.classList.add("hidden")}switchToVideoModeFromTooltip(i){i.preventDefault(),this.hideSendButtonTooltip(),!(!this.videoModeController||this.videoModeController.isActiveValue)&&this.videoModeController.toggle(
177)}};var nu=class extends u{static values={messageId:String};connect(){this.handleEscapeKey=this.handleEscapeKey.bind(this),document.addEventListener("keydown",this.handleEscapeKey)}disconnect(){document.removeEventListener("keydown",this.handleEscapeKey)}handleEscapeKey(i){i.key==="Escape"&&(this.assignMessageFormController(),this.genAiMessageFormController?.editModeValue&&!this.genAiMessageFormController?.editMessagePreviewContainerTarget?.classList.contains("hidden")&&(i.preventDefault(),this.genAiMessageFormController.closeEditMessagePreview()))}editMessage(i){this.assignMessageFormController(),this.messageIdValue=i.currentTarget.dataset.messageId,this.genAiMessageFormController.toggleEditMode(),this.genAiMessageFormController.openEditMessagePreview(i),this.genAiMessageFormController.setupFormAction(this.messageIdValue)}setupEditMessage(){let i=document.getElementById(`message_id_${this.messageIdValue}`);if(i){for(i.classList.add("hidden");i&&i.nextElementSibling;)i.nextElementSibling.remove();setTimeout(()=>{this.genAiMessageFormController.closeEditMessagePreview(),i.remove()},200)}}assignMessageFormController(){this.genAiMessageFormController=pe("gen-ai--message-form",this.application)}};var ou=class extends u{static targets=["button","buttonLabel","option","iconContainer"];static classes=["active","inactive"];static values={iconOne:String,iconFour:String,iconEight:String};get pricing(){return JSON.parse(this.element.dataset.pricing)}connect(){let i=localStorage.getItem("imageGenerationAmount")||"1";this.updateButtonLabel(i),this.updateIconContainer(i),this.markActiveOption(i)}selectAmount(i){let s=i.currentTarget.dataset.amount;this.optionTargets.forEach(r=>{r.dataset.selected="false"}),i.currentTarget.dataset.selected="true",this.updateButtonLabel(s),this.updateIconContainer(s),this.dispatchSelectedEvent(s),localStorage.setItem("imageGenerationAmount",s),this.markActiveOption(s),this.application.getControllerForElementAndIdentifier(this.element,"dropdown")?.toggle()}selectStoredAmount(i){let s=i||localStorage.getItem("imageGenerationAmount")||"1";this.dispatchSelectedEvent(s)}dispatchSelectedEvent(i){this.dispatch("selected",{detail:{data:{...this.pricing[i]}}})}updateButtonLabel(i){this.hasButtonLabelTarget&&(this.buttonLabelTarget.textContent=i)}updateIconContainer(i){if(this.hasIconContainerTarget)switch(i){case"1":this.iconContainerTarget.src=this.iconOneValue,this.iconContainerTarget.parentElement.classList.remove("w-[12px]","h-[12px]"),this.iconContainerTarget.parentElement.classList.add("w-[10px]","h-[10px]");break;case"4":this.iconContainerTarget.src=this.iconFourValue,this.iconContainerTarget.parentElement.classList.remove("w-[10px]","h-[10px]"),this.iconContainerTarget.parentElement.classList.add("w-[12px]","h-[12px]");break;case"8":this.iconContainerTarget.src=this.iconEightValue,this.iconContainerTarget.parentElement.classList.remove("w-[10px]","h-[10px]"),this.iconContainerTarget.parentElement.classList.add("w-[12px]","h-[12px]");break;default:break}}markActiveOption(i){this.optionTargets.forEach(r=>{r.classList.remove(...this.activeClasses),r.classList.add(...this.inactiveClasses);let a=r.querySelector(".inactive-icon"),n=r.querySelector(".active-icon");a&&a.classList.remove("hidden"),n&&n.classList.add("hidden")});let s=this.optionTargets.find(r=>r.dataset.amount===i);if(s){s.classList.add(...this.activeClasses),s.classList.remove(...this.inactiveClasses);let r=s.querySelector(".inactive-icon"),a=s.querySelector(".active-icon");r&&r.classList.add("hidden"),a&&a.classList.remove("hidden")}}};var lu=class extends u{static targets=["buttonLabel","option","durationOption"];static classes=["active","inactive"];LTX_ONLY_DURATIONS=[20,60];connect(){let i=Xe.VIDEO.DEFAULT_DURATION;localStorage.setItem(Xe.VIDEO.DURATION_STORAGE_KEY,i),this.#r(i)}selectDuration(i){let s=i.currentTarget.dataset.duration;localStorage.setItem(Xe.VIDEO.DURATION_STORAGE_KEY,s),this.#r(s),this.dispatch("selected",{detail:{data:{duration:s,...this.#i(s)}}}),this.application.getControllerForElementAndIdentifier(this.element,"dropdown")?.toggle(
177)}updateAvailableDurations(i,s=[]){if(!i||!Array.isArray(i))return;this.durationOptionTargets.forEach(m=>{m.classList.toggle("hidden",!this.#e(m.dataset.duration,i,s))});let r=Xe.VIDEO.DURATION_STORAGE_KEY,a=Xe.VIDEO.DEFAULT_DURATION,n=localStorage.getItem(r),d=(n===a||this.#e(n,i,s))&&n||a;localStorage.setItem(r,d),this.#r(d),this.dispatch("selected",{detail:{data:{duration:d,...this.#i(d)}}})}#e(i,s,r){let a=parseInt(i);return s.includes(a)?this.LTX_ONLY_DURATIONS.includes(a)?this.#t(r):!0:!1}#t(i){let s=(this.element.dataset.enabledLtxPoses||"").split(",").filter(Boolean);return(Array.isArray(i)?i:[]).some(a=>s.includes(a))}#i(i){return JSON.parse(this.element.dataset.pricing||"{}")[i]||{price:this.#s(i)}}#s(i){let s=parseInt(this.element.dataset[`price${i}s`]);return s||Xe.VIDEO[`DEFAULT_TOKEN_PRICE_${i}S`]||Xe.VIDEO.DEFAULT_TOKEN_PRICE_5S}#r(i){this.hasButtonLabelTarget&&(this.buttonLabelTarget.textContent=`${i}s`),this.optionTargets.forEach(s=>{let r=s.dataset.duration===i;s.classList.remove(...r?this.inactiveClasses:this.activeClasses),s.classList.add(...r?this.activeClasses:this.inactiveClasses)})}};var GC={image:"image",video:"video"}
177,HC={image:"gen_ai_suggestions_image_prompts",video:"gen_ai_suggestions_video_prompts"},qC={image:"gen_ai_suggestions_last_image_prompt",video:"gen_ai_suggestions_last_video_prompt"},$C={image:"GenAiImagePrompt",video:"GenAiVideoPrompt"},hu={sfw:"sfw",nsfw:"nsfw"},_a=class{constructor(s=GC.image,r=null){this.medium=s,this.modelType=r}async load(s){let a=await(await Ee(s)).json;this.store(a)}store(s){let r=this.getPromptsKey();localStorage.setItem(r,JSON.stringify(s))}all(){let s=this.getPromptsKey(),r=localStorage.getItem(s);return r?JSON.parse(r):{}}allFor(s){let a=this.all()[s]||[];return this.filterByModelType(a)}randomFor(s){let r=this.allFor(s),a=this.getRandomPrompt(r),n=this.getLastPromptId();if(r.length>1)for(;a.id.toString()===n?.toString();)a=this.getRandomPrompt(r);return this.setLastPromptId(a.id),a}sfwPrompts(){let s=this.all(),r=Object.values(s).flat().filter(a=>a.attributes?.prompt_type===hu.sfw);return this.filterByModelType(r)}nsfwPrompts(){let s=this.all(),r=Object.values(s).flat().filter(a=>a.attributes?.prompt_type===hu.nsfw);return this.filterByModelType(r)}getLastPromptId(){let s=this.getLastPromptKey();return localStorage.getItem(s)}setLastPromptId(s){let r=this.getLastPromptKey();localStorage.setItem(r,s)}getRandomPrompt(s){let r=s[Math.floor(Math.random()*s.length)];return new GT(r,this.medium)}random({promptType:s=hu.sfw}){let a=s===hu.sfw?this.sfwPrompts():this.nsfwPrompts(),n=this.getLastPromptId(),l=this.getRandomPrompt(a);if(a.length>1)for(;l.id.toString()===n?.toString();)l=this.getRandomPrompt(a);return this.setLastPromptId(l.id),l}storeSelectedPrompt(s){let r=this.getSelectedPromptKey(),a={...s,medium:this.medium};localStorage.setItem(r,JSON.stringify(a))}getPromptsKey(){return HC[this.medium]||HC.image}getLastPromptKey(){return qC[this.medium]||qC.image}getSelectedPromptKey(){return $C[this.medium]||$C.image}filterByModelType(s){return!this.modelType||!s||s.length===0?s:s.filter(r=>!(r.attributes?.excluded_for_model_types||[]).includes(this.modelType))}},GT=class{constructor(s={},r=GC.image){this.id=s.attributes?.id,this.suggestionId=s.attributes?.gen_ai_suggestion_id,this.promptText=s.attributes?.prompt_text,this.promptType=s.attributes?.prompt_type,this.videoTagText=s.attributes?.video_tag_text,this.durations=s.attributes?.durations,this.videoTags=s.attributes?.video_tags,this.medium=r}};var cu=class extends u{static targets=["card","imageContainer","refreshIcon","tooltip"];static values={selectedCard:Object,hasDisplayedTooltip:Boolean,modelType:String};connect(){let i=this.hasModelTypeValue?this.modelTypeValue:null;this.imagePrompts=new _a("image",i),this.videoPrompts=new _a("video",i),this.getImagePrompts(),this.hasVideoPromptsUrl()&&this.getVideoPrompts(),this.boundHandleMessageSent=this.handleMessageSent.bind(this),this.hasDisplayedTooltipValue=!1,document.addEventListener("gen-ai--message-form:message-sent",this.boundHandleMessageSent)}disconnect(){document.removeEventListener("gen-ai--message-form:message-sent",this.boundHandleMessageSent)}async getImagePrompts(){let i=this.element.dataset.imagePromptsUrl;i&&await this.imagePrompts.load(i)}async getVideoPrompts(){let i=this.element.dataset.videoPromptsUrl;i&&await this.videoPrompts.load(i)}hasVideoPromptsUrl(){return this.element.dataset.videoPromptsUrl&&this.isVideoSuggestionsEnabled()}isVideoSuggestionsEnabled(){return document.querySelector("#sfw-video-suggestions")!==null||document.querySelector("#sfw-video-suggestions-mobile")!==null}select(i){let s=i.currentTarget,r=s.dataset.suggestionId,a=s.dataset.name,n=this.selectedCardValue?.id===r,l=this.getCurrentPrompts();if(n){let E=l.randomFor(r);this.populateInput(E),this.storeSelectedPrompt(E);return}this.unselectAllCards(),this.selectedCardValue={id:r,name:a};let d=l.randomFor(r);this.populateInput(d),this.storeSelectedPrompt(d);let m=s.querySelector(".card-image");m&&m.classList.add("border-2","border-white","p-0.5","shadow-[0_0_12px_rgba(255,255,255,0.4)]");let v=s.querySelector(".refresh-icon");v&&setTimeout(()=>{v.classList.remove("opacity-0","scale-50"),v.classList.add("opacity-100","scale-100")},50),this.showTooltip(s),this.storeSelectedPrompt(d)}selectRandomSuggestion(i){this.unselectAllCards();let s=i.currentTarget.dataset.promptType,a=this.getCurrentPrompts().random({promptType:s});this.populateInput(a,{random:!0}),this.storeSelectedPrompt(a)}getCurrentPrompts(){return this.isVideoModeActive()?this.videoPrompts:this.imagePrompts}isVideoModeActive(){let i=document.querySelector("#sfw-video-suggestions")?.classList.contains("hidden")===!1,s=document.querySelector("#nsfw-video-suggestions")?.classList.contains("hidden")===!1,r=document.querySelector("#sfw-video-suggestions-mobile")?.classList.contains("hidden")===!1,a=document.querySelector("#nsfw-video-suggestions-mobile")?.classList.contains("hidden")===!1;return i||s||r||a}storeSelectedPrompt(i){this.getCurrentPrompts().storeSelectedPrompt(i)}
177unselectAllCards(){this.imageContainerTargets.forEach((i,s)=>{i.classList.remove("border-2","border-white","p-0.5","shadow-[0_0_12px_rgba(255,255,255,0.4)]"),this.hasRefreshIconTarget&&this.refreshIconTargets[s]&&(this.refreshIconTargets[s].classList.remove("opacity-100","scale-100"),this.refreshIconTargets[s].classList.add("opacity-0","scale-50"))}),this.selectedCardValue={},this.hasTooltipTarget&&this.tooltipTarget.classList.add("hidden")}populateInput(i,s={random:!1}){this.dispatch("selected",{detail:{...s,prompt:i}})}cleanPrompt(i){this.dispatch("cleaned",{detail:{prompt:i}})}showTooltip(i){if(!this.hasTooltipTarget||this.hasDisplayedTooltipValue||ot?.getCurrentMode()==="video")return;let s=this.tooltipTarget.querySelector("[data-controller~='text-bubble']");this.application.getControllerForElementAndIdentifier(s,"text-bubble").show(),this.tooltipTarget.classList.remove("hidden");let a=i.getBoundingClientRect(),n=this.tooltipTarget.getBoundingClientRect(),l=8,m=a.height/2*.5,v=a.left+a.width/2-n.width/2,E=a.top-n.height-l+m;if(window.innerWidth<=820){let Q=window.innerWidth;v<16&&(v=16),v+n.width>Q-16&&(v=Q-n.width-16)}this.tooltipTarget.style.left=`${v}px`,this.tooltipTarget.style.top=`${E}px`;let R=this.tooltipTarget.querySelector(".arrow");if(R){let ie=(a.left+a.width/2-v)/n.width*100,ce=Math.max(5,Math.min(95,ie));R.style.left=`${ce}%`}this.hasDisplayedTooltipValue=!0}handleMessageSent(){this.unselectAllCards()}};var EV=5,LV=2,du=class extends u{static values={locale:{type:String}};connect(){this.seenKey=`chat_support_language:${this.localeValue}:seen`,this.closedKey=`chat_support_language:${this.localeValue}:closed`;let i=this.getCount(this.seenKey),s=this.getCount(this.closedKey);this.setCount(this.seenKey,i+1),i<EV&&s<LV&&setTimeout(()=>this.applyOpenState(),100)}close(){try{let i=this.getCount(this.closedKey);this.setCount(this.closedKey,i+1)}catch{}this.element.classList.add("-mb-[100px]","transition-all","ease-out","duration-300"),this.element.classList.add("opacity-0","pointer-events-none"),setTimeout(()=>this.element.classList.add("hidden"),300)}applyOpenState(){this.element.classList.add("-mb-[26px]"),this.element.classList.remove("hidden","opacity-0")}getCount(i){let s=window.localStorage.getItem(i),r=parseInt(s,10);return Number.isFinite(r)?r:0}setCount(i,s){window.localStorage.setItem(i,String(s))}};var uu=class extends u{static outlets=["dropdown"];static values={locale:{type:String},conversationId:{type:String},isPremium:{type:Boolean}};connect(){this.hasConversationIdValue&&this.hasLocaleValue&&(this.closedKey=`chat_supported_language:${this.localeValue}:${this.conversationIdValue}:closed`,this.getCount(this.closedKey)<1&&setTimeout(()=>this.applyOpenState(),100))}close(){try{let i=this.getCount(this.closedKey);this.isPremiumValue&&this.setCount(this.closedKey,i+1)}catch{}this.hasDropdownOutlet&&!this.hasSeenChatMenuTooltip()&&this.dropdownOutlet.element.offsetParent!==null&&setTimeout(()=>{this.dropdownOutlet.toggle(),this.markChatMenuTooltipAsSeen()},100),this.element.classList.add("-mb-[100px]","transition-all","ease-out","duration-300"),this.element.classList.add("opacity-0","pointer-events-none"),setTimeout(()=>this.element.classList.add("hidden"),300)}applyOpenState(){this.element.classList.add("-mb-[26px]"),this.element.classList.remove("hidden","opacity-0")}getCount(i){let s=window.localStorage.getItem(i),r=parseInt(s,10);return Number.isFinite(r)?r:0}setCount(i,s){window.localStorage.setItem(i,String(s))}hasSeenChatMenuTooltip(){return window.localStorage.getItem("reset_chat_tooltip_seen")==="true"}markChatMenuTooltipAsSeen(){window.localStorage.setItem("reset_chat_tooltip_seen","true")}};var gu=class extends u{static targets=["button","buttonContainer","additionalButtons"];static values={isActive:{type:Boolean,default:!1},videoModeEnabled:{type:Boolean,default:!1}};connect(){this.setupInitialState(),this.boundHandleMessageSent=this.handleMessageSent.bind(this),this.boundHandleVideoSuggestionSelected=this.handleVideoSuggestionSelected.bind(this),this.boundHandleDurationSelected=this.handleDurationSelected.bind(this),document.addEventListener("gen-ai--message-form:message-sent",this.boundHandleMessageSent),document.addEventListener("gen-ai--suggestions:selected",this.boundHandleVideoSuggestionSelected),document.addEventListener("gen-ai--video-duration-selector:selected",this.boundHandleDurationSelected),ot.registerController("video",this)}get animationController(){return this.application.getControllerForElementAndIdentifier(this.buttonTarget,"gen-ai--mode-toggle-animation")}get imageModeController(){return pe("gen-ai--image-mode",this.application)}get suggestionsToggleController(){return pe("gen-ai--suggestions-toggle",this.application)}get suggestionsController(){return pe("gen-ai--suggestions",this.application)}get videoTokenPrice(){if(this.currentPrice!==null)return this.currentPrice;let i=document.querySelector("[data-controller*='gen-ai--video-duration-selector']"),s=localStorage.getItem(Xe.VIDEO.DURATION_STORAGE_KEY)||Xe.VIDEO.DEFAULT_DURATION,r=parseFloat(i?.dataset.price5s),a=parseFloat(i?.dataset.price10s),n=s==="5"?r:a;return this.currentPricing=JSON.parse(i?.dataset.pricing||"{}
177")[s],this.currentPrice=n,n}get chatInputController(){return pe("gen-ai--chat-input",this.application)}get messageFormController(){return pe("gen-ai--message-form",this.application)}getPlaceholderTooltipController(){let i=document.getElementById("video-placeholder-tooltip");return i?this.application.getControllerForElementAndIdentifier(i,"text-bubble"):null}showPlaceholderTooltip(){let i=this.getPlaceholderTooltipController();i&&i.show()}hidePlaceholderTooltip(){let i=this.getPlaceholderTooltipController();i&&i.hide()}disconnect(){document.removeEventListener("gen-ai--message-form:message-sent",this.boundHandleMessageSent),document.removeEventListener("gen-ai--suggestions:selected",this.boundHandleVideoSuggestionSelected),document.removeEventListener("gen-ai--video-duration-selector:selected",this.boundHandleDurationSelected),ot.resetModeOnDisconnect("video"),ot.unregisterController("video")}get videoModeEnabled(){return this.videoModeEnabledValue}setupInitialState(){this.suggestionsUiHandler=new ar,this.savedTokenState=!1,this.currentPrice=null}toggle(){let i=this.isActiveValue?null:"video";ot.setMode(i,"button")}activate(i="manual"){if(this.isActiveValue)return;this.#s(),this.suggestionsUiHandler.showVideoSuggestions(),this.#e(!0);let s=this.chatInputController;s&&(s.hideTextarea(),s.showVideoPlaceholderLabel());let r=this.messageFormController;r&&(r.hideTokens(),r.hideVideoHint(),r.hideSendButtonTooltip())}deactivate(i="manual"){if(!this.isActiveValue)return;this.#e(!1),this.suggestionsUiHandler.showImageSuggestions(),this.#n();let s=this.chatInputController;s&&(s.hideVideoPromptTag(),s.hideVideoPlaceholderLabel(),s.clearVideoPromptData(),s.showTextarea()),this.#r();let r=this.messageFormController;r&&r.toggleSendButton();try{localStorage.removeItem("GenAiVideoPrompt")}catch{}this.suggestionsController?.unselectAllCards()}turnOnVideoMode(i=null){i?.preventDefault(),ot.setMode("video","button")}turnOffVideoMode(i=null){i?.preventDefault(),ot.setMode(null,"button")}#e(i){let s=this.animationController;s&&s.animateToggle(i)===!1||(this.isActiveValue=i,this.dispatchVideoModeChangedEvent())}dispatchVideoModeChangedEvent(){this.dispatch("video-mode-changed",{detail:{isActive:this.isActiveValue}})}dispatchVideoPricingEvent(){let i=this.videoTokenPrice;this.dispatch("selected",{detail:{data:{type:"video",...this.currentPricing||{price:i}}}})}handleDurationSelected(i){Number.isFinite(i.detail?.data?.price)&&(this.currentPricing=i.detail.data,this.currentPrice=i.detail.data.price,this.dispatchVideoPricingEvent())}handleVideoSuggestionSelected(i){this.hidePlaceholderTooltip();let{prompt:s}=i.detail;if(this.isActiveValue){let r=this.chatInputController;r&&r.hideVideoPlaceholderLabel();let a=s.videoTagText||s.promptText;this.showVideoPrompt(a),this.dispatchVideoPricingEvent(),this.updateDurationSelectorForPrompt(s),this.#a()}}updateDurationSelectorForPrompt(i){let s=i.durations;if(!s)return;let r=document.querySelector("[data-controller*='gen-ai--video-duration-selector']");if(!r)return;let a=this.application.getControllerForElementAndIdentifier(r,"gen-ai--video-duration-selector");a&&a.updateAvailableDurations(s,i.videoTags)}showVideoPrompt(i){let s=this.chatInputController;if(!s)return;s.hideTextarea(),s.showVideoPromptTag(i),s.setVideoPromptData(i),s.enableFormSubmission();let r=this.messageFormController;r&&r.toggleSendButton()}closeVideoPrompt(){let i=this.chatInputController;this.suggestionsController?.unselectAllCards();try{localStorage.removeItem("GenAiVideoPrompt")}catch{}if(!i)return;i.hideVideoPromptTag(),i.clearVideoPromptData(),i.showVideoPlaceholderLabel();let r=this.messageFormController;r&&(r.hideTokens(),r.toggleSendButton()),this.#n()}handleMessageSent(){this.isActiveValue&&ot.setMode(null,"message-sent")}hideButton(){this.hasButtonContainerTarget&&this.buttonContainerTarget.classList.add("hidden")}showButton(){this.hasButtonContainerTarget&&this.buttonContainerTarget.classList.remove("hidden")}toggleButtonSpacing(i){this.hasButtonContainerTarget&&(i==="on"?this.buttonContainerTarget.classList.remove("ml-2","md:ml-2"):i==="off"&&this.buttonContainerTarget.classList.add("ml-2","md:ml-2"))}isActiveValueChanged(i,s){if(s!==void 0){let r=i?"on":"off";this.toggleButtonSpacing(r);let a=this.animationController;a&&(a.isActiveValue=i),i?(this.#t(),this.imageModeController?.hideSettingsButton(),this.suggestionsToggleController?.openSuggestions()):(this.#i(),this.imageModeController?.showSettingsButton(),this.suggestionsToggleController?.closeSuggestions(),this.suggestionsController?.unselectAllCards())}}#t(){let i=pe("gen-ai--image-mode",this.application);i&&i.hideButton()}#i(){let i=pe("gen-ai--image-mode",this.application);i&&i.showButton()}#s(){let i=this.chatInputController,s=this.messageFormController;if(i&&s){let r=i.isImageRequest();this.savedTokenState=r}}#r(){let i=this.messageFormController;i&&i.toggleTokens(),this.savedTokenState=!1}#a(){this.hasAdditionalButtonsTarget&&this.additionalButtonsTarget.classList.remove("hidden")}#n(){this.hasAdditionalButtonsTarget&&this.additionalButtonsTarget.classList.add("hidden")}};var mu=class extends u{static targets=["button"];static values={iconSelector:String,xIconSelector:{type:String,default:".x-icon"},isActive:Boolean};connect(){this.#e()}#e(){this.buttonTarget.classList.add("transition-all","duration-300","ease-out")}animateToggle(i){if(this.buttonTarget.classList.contains("animating"))return!1;let s=this.buttonTarget,r=s.querySelector(this.iconSelectorValue),a=s.querySelector(this.xIconSelectorValue);return!r||!a?!1:(this.isActiveValue=i,this.performAnimation(),!0)}performAnimation(){let i=this.buttonTarget,s=i.querySelector(this.iconSelectorValue),r=i.querySelector(this.xIconSelectorValue);i.classList.add("animating"),i.classList.add("scale-95"),setTimeout(()=>{i.classList.remove("scale-95"),i.classList.add("scale-105"),setTimeout(()=>{this.isActiveValue?this.activateButton(i,s,r):this.deactivateButton(i,s,r),setTimeout(()=>{i.classList.remove("scale-105"),i.classList.remove("animating")},150)},100)},50)}activateButton(i,s,r){i.classList.remove("w-10","md:w-10"),i.classList.add("w-[72px]","md:w-[75px]"),i.classList.remove("border-white/[0.12]"),i.classList.add("border-2","border-blue-brand"),s.classList.add("-translate-x-3"),s.classList.contains("translate-x-[-1px]")&&s.classList.remove("translate-x-[-1px]"),r.classList.remove("opacity-0","scale-0"),r.classList.add("opacity-100","scale-100"),setTimeout(()=>{r.classList.add("scale-110"),setTimeout(()=>{r.classList.remove("scale-110")},150)},200)}deactivateButton(i,s,r){i.classList.remove("w-[72px]","md:w-[75px]"),i.classList.add("w-10","md:w-10"),i.classList.remove("border-2","border-blue-brand"),i.classList.add("border-white/[0.12]"),s.classList.remove("-translate-x-3"),r.classList.remove("opacity-100","scale-100"),r.classList.add("opacity-0","scale-0")}isActiveValueChanged(i,s){if(s!==void 0){let r=this.buttonTarget,a=r.querySelector(this.iconSelectorValue),n=r.querySelector(this.xIconSelectorValue);a&&n&&(i?this.activateButton(r,a,n):this.deactivateButton(r,a,n))}}};var pu=class extends u{static targets=["container"];static values={scrollStep:{type:Number,default:240},scrollRatio:{type:Number,default:0},handleWheel:{type:Boolean,default:!0}};connect(){this.handleWheelValue===!0&&(this.hasContainerTarget?(this.boundWheelHandler=this.handleWheel.bind(this),this.containerTarget.addEventListener("wheel",this.boundWheelHandler,{passive:!1})):(this.boundWheelHandler=this.handleWheel.bind(this),this.element.addEventListener("wheel",this.boundWheelHandler,{passive:!1})))}disconnect(){this.boundWheelHandler&&this.handleWheelValue===!0&&(this.hasContainerTarget?this.containerTarget.removeEventListener("wheel",this.boundWheelHandler):this.element.removeEventListener("wheel",this.boundWheelHandler))}handleWheel(i){let s=this.hasContainerTarget?this.containerTarget:this.element;if(!(s.scrollWidth>s.clientWidth))return;let a=i.deltaX||0,n=i.deltaY||0;if(Math.abs(a)>Math.abs(n))return;let l=s.scrollLeft>0,d=s.scrollWidth-s.clientWidth,m=s.scrollLeft<d;(n<0&&l||n>0&&m)&&(i.preventDefault(),s.scrollLeft+=n)}scrollLeft(i){i&&(i.preventDefault(),i.stopPropagation());let s=this.hasContainerTarget?this.containerTarget:this.element;s&&s.scrollBy({left:-this.scrollDistance(s),behavior:"smooth"})}scrollRight(i){i&&(i.preventDefault(),i.stopPropagation());let s=this.hasContainerTarget?this.containerTarget:this.element;s&&s.scrollBy({left:this.scrollDistance(s),behavior:"smooth"})}scrollDistance(i){return this.scrollRatioValue>0?i.clientWidth*this.scrollRatioValue:this.scrollStepValue}};var fu=class extends u{static targets=["leftButton","leftFade","rightButton","rightFade","scrollC
177ontainer","visibilityContainer"];static values={mask:Boolean,scrollFraction:Number};connect(){this.scrollContainerTargets.length===0||!this.#n()||(this.boundScrollHandler=this.#e.bind(this),this.boundTurboFrameLoad=this.#u.bind(this),document.addEventListener("turbo:frame-load",this.boundTurboFrameLoad),this.#h(),this.#t(),this.#c(),this.#g())}scrollLeft(){this.#o()?.scrollBy({left:-this.#l(),behavior:"smooth"})}scrollRight(){this.#o()?.scrollBy({left:this.#l(),behavior:"smooth"})}disconnect(){this.boundScrollHandler&&this.scrollContainerTargets.forEach(i=>i.removeEventListener("scroll",this.boundScrollHandler)),this.boundTurboFrameLoad&&document.removeEventListener("turbo:frame-load",this.boundTurboFrameLoad),this.observer&&(this.observer.disconnect(),this.observer=null),this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}#e(i){let s=this.scrollContainerTargets.find(r=>r===i.target);s&&this.#i(s)}#t(){this.scrollContainerTargets.forEach(i=>this.#i(i))}#i(i){let s=this.#r(i);i.dataset.fade=this.#s(s),this.hasLeftFadeTarget&&this.#a(this.leftFadeTarget,s.canScrollLeft),this.hasRightFadeTarget&&this.#a(this.rightFadeTarget,s.canScrollRight),this.hasLeftButtonTarget&&this.#a(this.leftButtonTarget,s.canScrollLeft),this.hasRightButtonTarget&&this.#a(this.rightButtonTarget,s.canScrollRight)}#s({canScrollLeft:i,canScrollRight:s}){return i&&s?"both":i?"left":s?"right":"none"}#r(i){let{scrollLeft:r,scrollWidth:a,clientWidth:n}=i,l=a-n,d=a>n+5;return{canScrollLeft:d&&r>5,canScrollRight:d&&r<l-5}}#a(i,s){i.classList.toggle("opacity-100",s),i.classList.toggle("opacity-0",!s),i.tagName==="BUTTON"&&(i.classList.toggle("pointer-events-none",!s),i.disabled=!s,i.setAttribute("aria-hidden",String(!s)))}#n(){return this.maskValue||this.hasLeftFadeTarget||this.hasRightFadeTarget||this.hasLeftButtonTarget||this.hasRightButtonTarget}#o(){return this.scrollContainerTargets[0]}#l(){let i=this.#o();if(this.scrollFractionValue>0)return(i?.clientWidth||400)*this.scrollFractionValue;let s=i?.firstElementChild;return s?s.getBoundingClientRect().width+20:320}#h(){this.boundScrollHandler&&this.scrollContainerTargets.forEach(i=>{i.removeEventListener("scroll",this.boundScrollHandler),i.addEventListener("scroll",this.boundScrollHandler,{passive:!0})})}#c(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),!(typeof ResizeObserver>"u")&&(this.resizeObserver=new ResizeObserver(()=>this.#t()),this.scrollContainerTargets.forEach(i=>{this.resizeObserver.observe(i),Array.from(i.children).forEach(s=>this.resizeObserver.observe(s))}))}#u(i){this.element.contains(i.target)&&(this.#h(),this.#t(),this.#c())}#g(){this.observer=new MutationObserver(i=>{this.#t()}),this.visibilityContainerTargets.forEach(i=>{this.observer.observe(i,{attributes:!0,attributeFilter:["class"]})})}};var vu=class extends u{static targets=["scrollContainer","activeItem"];connect(){this.#e()}#e(){if(!this.hasScrollContainerTarget||!this.hasActiveItemTarget)return;let i=this.activeItemTarget,s=this.scrollContainerTarget,r=i.offsetLeft,a=i.offsetWidth,n=s.clientWidth,l=r-n/2+a/2;s.scrollTo({left:Math.max(0,l),behavior:"instant"}),setTimeout(()=>{s.scrollBy({left:1,behavior:"smooth"})},50)}};var Tu=class extends u{static targets=["tab","text","icon"];static values={currentGender:String};connect(){this.tabTargets.forEach((i,s)=>{let a=i.dataset.genderInterest===this.currentGenderValue;this.setTabState(i,s,a)})}activate(i){let s=i.currentTarget,r=s.dataset.genderInterest;window.scrollTo({top:0,behavior:"smooth"}),this.tabTargets.forEach((a,n)=>{let l=a===s;this.setTabState(a,n,l)}),this.currentGenderValue=r}setTabState(i,s,r){let a=this.textTargets[s],n=this.iconTargets[s],l=i.dataset.genderInterest;r?(i.classList.remove("border-transparent"),i.classList.add("border-primary")):(i.classList.remove("border-primary"),i.classList.add("border-transparent")),r?(a.classList.remove("text-white"),a.classList.add("text-primary")):(a.classList.remove("text-primary"),a.classList.add("text-white")),this.updateSvgColors(n,l,r)}updateSvgColors(i,s,r){if(!i)return;let a="var(--primary-color)",n="#FFFFFF";if(s==="anime"){let l=i.querySelector("path");l&&l.setAttribute("stroke",r?a:n)}else i.querySelectorAll("path").forEach(d=>{d.setAttribute("fill",r?a:n)})}};var bu=class extends u{static targets=["button","menu","chevron","currentIconContainer","currentGenderLabel","chevronIconGrey","chevronIconWhite"];static values={currentGender:String,sidebar:Boolean,genderLabelsInfo:Object};connect(){Ot(this),this.#a(),this.handleSelectedBound=this.handleSelected.bind(this),document.addEventListener("home--gender-dropdown:selected",this.handleSelectedBound)}disconnect(){this.handleSelectedBound&&document.removeEventListener("home--gender-dropdown:selected",this.handleSelectedBound)}toggle(i){i.preventDefault(),!this.menuTarget.classList.contains("hidden")?this.#t():this.#e()}select(i){let s=i.currentTarget.dataset.genderInterest;if(s===this.currentGenderValue){i.preventDefault(),this.#t();return}document.dispatchEvent(new CustomEvent("home--gender-dropdown:selected",{detail:{genderInterest:s},bubbles:!0}))}clickOutside(i){this.menuTarget.classList.contains("hidden")||this.#t()}#e(){this.menuTarget.classList.remove("hidden"),this.chevronTarget.style.transform="rotate(180deg)",this.#i(!0),this.#s(!0)}#t(){this.menuTarget.classList.add("hidden"),this.chevronTarget.style.transform="rotate(0deg)",this.#i(!1),this.#s(!1)}#i(i){this.hasCurrentIconContainerTarget&&(this.sidebarValue||(i?(this.currentIconContainerTarget.querySelector(`.${this.currentGenderValue}-white`).classList.remove("hidden"),this.currentIconContainerTarget.querySelector(`.${this.currentGenderValue}-grey`).classList.add("hidden")):(this.currentIconContainerTarget.querySelector(`.${this.currentGenderValue}-white`).classList.add("hidden"),this.currentIconContainerTarget.querySelector(`.${this.currentGenderValue}-grey`).classList.remove("hidden"))))}#s(i){!this.hasChevronIconGreyTarget||!this.hasChevronIconWhiteTarget||(i?(this.chevronIconWhiteTarget.classList.remove("hidden"),this.chevronIconGreyTarget.classList.add("hidden")):(this.chevronIconWhiteTarget.classList.add("hidden"),this.chevronIconGreyTarget.classList.remove("hidden")))}handleSelected(i){let s=i.detail.genderInterest;s&&(this.currentGenderValue=s,this.#a(),this.#r(),this.#t())}#r(){this.hasCurrentGenderLabelTarget&&(this.currentGenderLabelTarget.textContent=this.genderLabelsInfoValue[this.currentGenderValue].label)}#a(){if(!this.hasCurrentIconContainerTarget)return;this.currentIconContainerTarget.querySelectorAll("img").forEach(s=>{s.classList.add("hidden")});let i=this.sidebarValue?`${this.currentGenderValue}-white`:`${this.currentGenderValue}-grey`;this.currentIconContainerTarget.querySelector(`.${i}`).classList.remove("hidden")}};
177var yu=class extends Et{static targets=["input","clear","browse","status","results","heading","list","resultTemplate","loadingTemplate","emptyTemplate","errorTemplate","clip"];static values={url:String,backUrl:String,standalone:Boolean,resultsHeading:String,emptyMessage:String,debounce:{type:Number,default:300}};connect(){this.sequence=0,this.closeBeforeCache=()=>{this.standaloneValue||this.close()},document.addEventListener("turbo:before-cache",this.closeBeforeCache),this.standaloneValue&&this.inputTarget.value===""&&(this.inputTarget.value=new URL(window.location.href).searchParams.get("q")||"");let i=this.inputTarget.value.trim();this.clearTarget.classList.toggle("hidden",i===""),i&&this.#i(i),window.matchMedia("(pointer: coarse)").matches||this.inputTarget.focus()}disconnect(){document.removeEventListener("turbo:before-cache",this.closeBeforeCache),clearTimeout(this.timer),this.abortController?.abort(),this.clipObserver?.disconnect()}clipTargetConnected(i){if(!("IntersectionObserver"in window)){this.#a(i);return}this.clipObserver||=new IntersectionObserver(s=>{s.forEach(r=>r.isIntersecting?this.#a(r.target):r.target.pause())},{rootMargin:"100px"}),this.clipObserver.observe(i)}clipTargetDisconnected(i){this.clipObserver?.unobserve(i)}search(){clearTimeout(this.timer);let i=this.inputTarget.value.trim();if(this.clearTarget.classList.toggle("hidden",i===""),i===""){this.#t();return}this.#e(),this.timer=setTimeout(()=>this.#i(i),this.debounceValue)}submit(i){i.preventDefault(),clearTimeout(this.timer);let s=this.inputTarget.value.trim();s&&this.#i(s)}chip(i){clearTimeout(this.timer),this.inputTarget.value=i.currentTarget.dataset.chip,this.clearTarget.classList.remove("hidden"),this.#i(this.inputTarget.value),this.inputTarget.focus()}clear(){clearTimeout(this.timer),this.inputTarget.value="",this.#t(),this.inputTarget.focus()}retry(){let i=this.inputTarget.value.trim();i&&this.#i(i)}close(){if(this.standaloneValue){Be.visit(this.backUrlValue);return}let i=this.element.closest("turbo-frame");i&&(i.removeAttribute("src"),i.innerHTML="")}backdrop(i){i.target===this.element&&this.close()}#e(){this.abortController?.abort(),this.abortController=null,this.sequence+=1}#t(){this.#e(),this.clearTarget.classList.add("hidden"),this.#l(""),this.#o("browse")}async#i(i){this.abortController?.abort();let s=new window.AbortController;this.abortController=s;let r=++this.sequence;this.#n(this.loadingTemplateTarget),this.#l(i);try{let a=await Ee(this.urlValue,{query:{q:i},responseKind:"json",signal:s.signal});if(!a.ok)throw new Error(`Content search failed with ${a.statusCode}`);let n=await a.json;if(r!==this.sequence)return;this.#s(n)}catch(a){if(a.name==="AbortError"||r!==this.sequence)return;this.#n(this.errorTemplateTarget)}}#s({query:i,results:s}){if(s.length===0){let r=this.emptyTemplateTarget.content.cloneNode(!0);r.querySelector("[data-result='message']").textContent=this.emptyMessageValue.replace("%{query}",i),this.#n(r);return}this.headingTarget.textContent=this.resultsHeadingValue.replace("%{count}",String(s.length)).replace("%{query}",i),this.listTarget.replaceChildren(...s.map(r=>this.#r(r))),this.#o("results")}#r(i){let s=this.resultTemplateTarget.content.cloneNode(!0),r=s.querySelector("a");r.href=i.href,r.dataset.testid=`content-search-result-${i.id}`,s.querySelector("[data-result='name']").textContent=i.name,s.querySelector("[data-result='label']").textContent=i.label;let a=s.querySelector("[data-result='thumbnail']"),n=s.querySelector("[data-result='video']");return i.video_url?(n.dataset.src=i.video_url,i.thumbnail_url&&(n.poster=i.thumbnail_url),a.remove()):(n.remove(),i.thumbnail_url?a.src=i.thumbnail_url:a.remove()),s}#a(i){i.dataset.src&&(i.src=i.dataset.src,delete i.dataset.src);let s=i.play();s?.catch&&s.catch(()=>{})}#n(i){let s=i.content?i.content.cloneNode(!0):i;this.statusTarget.replaceChildren(s),this.#o("status")}#o(i){this.browseTarget.classList.toggle("hidden",i!=="browse"),this.statusTarget.classList.toggle("hidden",i!=="status"),this.resultsTarget.classList.toggle("hidden",i!=="results")}#l(i){if(!this.standaloneValue)return;let s=new URL(window.location.href);i?s.searchParams.set("q",i):s.searchParams.delete("q"),window.history.replaceState(window.history.state,"",s
177)}};var Ri=class{static async submitSearch(s,r={}){let{searchUrl:a="/home/search",emptyUrl:n="/home/profiles",dispatchClearFilterTags:l,filter:d=null}=r,m=s.trim();l&&l(m.length>0),this.showLoader(d);let v=m?this.buildQueryUrl(m,a):this.buildDefaultUrl(n,a);try{await Ee(v.toString(),{responseKind:"turbo-stream"})}catch{setTimeout(()=>{this.hideLoader()},100)}}static showLoader(s=null){let r=s==="private_content"?"search-loader-private-content-template":"search-loader-template",a=document.getElementById(r),n=document.querySelector("[data-profiles-list-target='profilesLayout']");if(!a||!n)return;let l=a.content.cloneNode(!0);if(s==="private_content"){let d=l.querySelector("ul");d&&(d.setAttribute("data-profiles-list-target","profilesLayout"),d.setAttribute("role","list"),n.replaceWith(d))}else n.innerHTML="",n.appendChild(l)}static hideLoader(){let s=document.querySelector("[data-profiles-list-target='profilesLayout']");s&&(s.innerHTML="")}static buildQueryUrl(s,r){let a=new window.URL(r,window.location.origin);return a.searchParams.set("q",s),a}static buildDefaultUrl(s,r){let a=s||r;return new window.URL(a,window.location.origin)}static clearFilterTags(s){s&&s("clear-filter-tags",{bubbles:!0})}};var Su=class extends u{static targets=["pillsContainer"];static values={scrollStep:{type:Number,default:240},searchUrl:String};connect(){this.handleClearFilterTags=this.handleClearFilterTags.bind(this),this.onFilterSelected=this.onFilterSelected.bind(this),this.onFilterUnselected=this.onFilterUnselected.bind(this),document.addEventListener("home--search--search-input:clear-filter-tags",this.handleClearFilterTags),document.addEventListener("home--search--mobile-search-input:clear-filter-tags",this.handleClearFilterTags),document.addEventListener("home--search--no-results-favorites:browse-characters",this.handleClearFilterTags),this.element.addEventListener("shared--filter-pills:selected",this.onFilterSelected),this.element.addEventListener("shared--filter-pills:unselected",this.onFilterUnselected)}disconnect(){document.removeEventListener("home--search--search-input:clear-filter-tags",this.handleClearFilterTags),document.removeEventListener("home--search--mobile-search-input:clear-filter-tags",this.handleClearFilterTags),document.removeEventListener("home--search--no-results-favorites:browse-characters",this.handleClearFilterTags),this.element.removeEventListener("shared--filter-pills:selected",this.onFilterSelected),this.element.removeEventListener("shared--filter-pills:unselected",this.onFilterUnselected)}handleClearFilterTags(i){let s=i?.detail?.hasQuery??!1,r=this.#r();if(s)r?.activateByValue(null);else{let a=this.#a();r?.activateByValue(a),this.#e(a)}}async onFilterSelected(i){let{value:s,pill:r}=i.detail;if(this.#n(r),r?.dataset?.skipSearch==="true")return;this.#t();let a=r?.dataset?.url;if(a){let l=new window.URL(a,window.location.origin).searchParams.get("filter");await this.#i(l,a)}else await this.#i(s,null)}async onFilterUnselected(){let i=this.#r();if(!i)return;let s=this.#a();i.activateByValue(s),this.#e(s);let r=this.#l();await this.#i(null,r)}scrollLeft(){let i=this.#s();i&&i.scrollBy({left:-this.scrollStepValue,behavior:"smooth"})}scrollRight(){let i=this.#s();i&&i.scrollBy({left:this.scrollStepValue,behavior:"smooth"})}#e(i){let r=(this.hasPillsContainerTarget?this.pillsContainerTarget:this.element).querySelector(`[data-value="${i}"]`);r&&r.scrollIntoView({behavior:"smooth",block:"nearest",inline:"start"})}#t(){this.dispatch("clear-search-input",{bubbles:!0})}async#i(i,s){let r=i;if(s&&!r){let n=new window.URL(s,window.location.origin);n.pathname.includes("/home/content_packs")?r="private_content":r=n.searchParams.get("filter")}Ri.showLoader(r);let a;if(s){let n=new window.URL(s,window.location.origin);n.pathname.includes("/home/profiles")||n.pathname.includes("/home/content_packs")?(a=new window.URL(n.pathname,window.location.origin),i&&a.searchParams.set("filter",i)):(a=new window.URL(this.searchUrlValue||"/home/search",window.location.origin),i&&a.searchParams.set("filter",i))}else a=new window.URL(this.searchUrlValue||"/home/search",window.location.origin),i&&a.searchParams.set("filter",i);try{await Ee(a.toString(),{responseKind:"turbo-stream"})}catch{setTimeout(()=>{Ri.hideLoader()},100)}}#s(){return this.element.classList.contains("filter-tags-scroll-container")?this.element:this.element.querySelector(".filter-tags-scroll-container")}#r(){return this.hasPillsContainerTarget?this.application.getControllerForElementAndIdentifier(this.pillsContainerTarget,"shared--filter-pills"):null}#a(){return(this.hasPillsContainerTarget?this.pillsContainerTarget.querySelector("[data-all-models='true']"):this.element.querySelector("[data-all-models='true']"))?.dataset?.value||"all"}#n(i){this.#o(i);let s=i?.dataset?.notificationUrl;s&&ve(s).catch(()=>{})}#o(i){let s=i?.dataset?.indicatorId;if(!s)return;let r=document.getElementById(s);r&&(r.innerHTML="")}#l(){let i=this.hasPillsContainerTarget?this.pillsContainerTarget.querySelector("[data-all-models='true']"):this.element.querySelector("[data-all-models='true']");if(i?.dataset?.url)return i.dataset.url;let s=new window.URL(window.location.href),r=s.pathname.match(/^\/([a-z]{2}(?:-[A-Z]{2})?)\//),a=r?`/${r[1]}`:"";return`${s.origin}${a}/home/profiles`}};
177var wu=class extends Et{static targets=["input","container","closeButton"];static classes=["expanded","collapsed"];static values={searchUrl:{type:String,default:"/home/search"},emptyUrl:{type:String,default:"/home/profiles"}};connect(){this.isOpen=!1,this.collapse(),this.handleClearSearchInput=this.handleClearSearchInput.bind(this),document.addEventListener("home--search--filter-tags:clear-search-input",this.handleClearSearchInput)}disconnect(){document.removeEventListener("home--search--filter-tags:clear-search-input",this.handleClearSearchInput)}handleClearSearchInput(){this.inputTarget.value="",this.isOpen&&this.collapse()}expand(){this.isOpen=!0,this.containerTarget.classList.remove(...this.collapsedClasses),this.containerTarget.offsetHeight,this.containerTarget.classList.add(...this.expandedClasses),this.inputTarget.classList.remove("hidden","opacity-0"),this.inputTarget.classList.add("opacity-100"),this.closeButtonTarget.classList.remove("hidden"),requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.closeButtonTarget.classList.remove("opacity-0","scale-95"),this.closeButtonTarget.classList.add("opacity-100","scale-100")})}),setTimeout(()=>{this.inputTarget.focus()},250)}collapse(){this.isOpen=!1,this.closeButtonTarget.classList.remove("opacity-100","scale-100"),this.closeButtonTarget.classList.add("opacity-0","scale-95"),this.inputTarget.classList.remove("hidden","opacity-0"),this.inputTarget.classList.add("opacity-100"),setTimeout(()=>{this.closeButtonTarget.classList.add("hidden")},300),this.containerTarget.classList.remove(...this.expandedClasses),this.containerTarget.offsetHeight,this.containerTarget.classList.add(...this.collapsedClasses),this.inputTarget.value="",this.inputTarget.blur()}handleClick(i){if(!this.isOpen){if(i.target===this.closeButtonTarget||this.closeButtonTarget.contains(i.target))return;this.expand()}}handleFocus(){this.expand()}handleClose(){let i=this.hasInputTarget&&this.inputTarget.value.trim().length>0;this.collapse(),i&&this.submitSearch()}handleKeydown(i){i.key==="Enter"&&(i.preventDefault(),this.submitSearch())}async submitSearch(){let i=this.inputTarget.value;await Ri.submitSearch(i,{searchUrl:this.searchUrlValue,emptyUrl:this.emptyUrlValue,dispatchClearFilterTags:s=>{this.dispatch("clear-filter-tags",{bubbles:!0,detail:{hasQuery:s}})}})}};var Cu=class extends u{static targets=["container","input","inputWrapper"];static classes=["containerCollapsed","containerExpanded","inputWrapperHidden","inputWrapperVisible"];static values={searchUrl:{type:String,default:"/home/search"},emptyUrl:{type:String,default:"/home/profiles"}};connect(){this.isOpen=!1,this.#e(),this.handleCancel=this.handleCancel.bind(this),document.addEventListener("home--search--mobile-search-bar:cancel",this.handleCancel),this.handleClearSearchInput=this.handleClearSearchInput.bind(this),document.addEventListener("home--search--filter-tags:clear-search-input",this.handleClearSearchInput)}disconnect(){document.removeEventListener("home--search--mobile-search-bar:cancel",this.handleCancel),document.removeEventListener("home--search--filter-tags:clear-search-input",this.handleClearSearchInput)}handleClearSearchInput(){this.hasInputTarget&&(this.inputTarget.value=""),this.isOpen&&this.collapse()}handleClick(){this.isOpen||(this.hasInputTarget&&(this.inputTarget.classList.remove("pointer-events-none"),this.inputTarget.focus(),this.inputTarget.click()),this.expand())}handleFocus(){this.isOpen||this.expand()}handleCancel(){if(!this.isOpen)return;let i=this.hasInputTarget&&this.inputTarget.value.trim().length>0;this.collapse(),i&&this.submitSearch()}expand(){this.isOpen=!0,this.#t(this.containerTarget,this.containerCollapsedClasses,this.containerExpandedClasses),this.hasInputWrapperTarget&&(this.inputWrapperTarget.classList.remove(...this.inputWrapperHiddenClasses),this.inputWrapperTarget.classList.add(...this.inputWrapperVisibleClasses)),setTimeout(()=>{this.dispatch("opened",{bubbles:!0})},50)}collapse(i=!0){this.isOpen=!1,this.#t(this.containerTarget,this.containerExpandedClasses,this.containerCollapsedClasses),this.hasInputWrapperTarget&&(this.inputWrapperTarget.classList.remove(...this.inputWrapperVisibleClasses),this.inputWrapperTarget.classList.add(...this.inputWrapperHiddenClasses)),i&&(this.inputTarget?.blur(),this.inputTarget&&(this.inputTarget.value="")),this.hasInputTarget&&this.inputTarget.classList.add("pointer-events-none"),this.dispatch("closed",{bubbles:!0})}#e(){this.containerTarget.classList.remove(...this.containerExpandedClasse
177s),this.containerTarget.classList.add(...this.containerCollapsedClasses),this.hasInputWrapperTarget&&(this.inputWrapperTarget.classList.remove(...this.inputWrapperVisibleClasses),this.inputWrapperTarget.classList.add(...this.inputWrapperHiddenClasses))}#t(i,s,r){s.forEach(a=>i.classList.remove(a)),i.offsetHeight,r.forEach(a=>i.classList.add(a))}handleKeydown(i){i.key==="Enter"&&(i.preventDefault(),this.submitSearch())}handleSubmit(i){i.preventDefault(),this.submitSearch()}async submitSearch(){this.inputTarget?.blur();let i=this.inputTarget?.value||"";setTimeout(()=>{this.#i()},100),await Ri.submitSearch(i,{searchUrl:this.searchUrlValue,emptyUrl:this.emptyUrlValue,dispatchClearFilterTags:s=>{this.dispatch("clear-filter-tags",{bubbles:!0,detail:{hasQuery:s}})}})}#i(){if(!this.hasInputTarget)return;let s=document.getElementById("navbar")?.offsetHeight||64,r=this.inputTarget.getBoundingClientRect(),a=window.scrollY+r.top-s-16;a>=0&&window.scrollTo({top:a,behavior:"smooth"})}};var Eu=class extends u{static targets=["cancel","divider","tags","scroller"];connect(){this.hasCancelTarget&&this.cancelTarget.classList.add("hidden"),this.hasDividerTarget&&this.dividerTarget.classList.remove("invisible"),this.hasTagsTarget&&this.tagsTarget.classList.remove("invisible"),this.isSearchOpen=!1,this.originalScrollY=0,this.handleOpened=this.handleOpened.bind(this),this.handleClosed=this.handleClosed.bind(this),this.element.addEventListener("home--search--mobile-search-input:opened",this.handleOpened),this.element.addEventListener("home--search--mobile-search-input:closed",this.handleClosed)}disconnect(){this.element.removeEventListener("home--search--mobile-search-input:opened",this.handleOpened),this.element.removeEventListener("home--search--mobile-search-input:closed",this.handleClosed)}handleOpened(){this.isSearchOpen=!0,this.originalScrollY=window.scrollY||window.pageYOffset,requestAnimationFrame(()=>{this.#e(),requestAnimationFrame(()=>{this.#r()})}),this.hasCancelTarget&&this.cancelTarget.classList.remove("hidden"),this.hasDividerTarget&&this.dividerTarget.classList.add("invisible"),this.hasTagsTarget&&this.tagsTarget.classList.add("invisible"),this.hasScrollerTarget&&(this.scrollerTarget.classList.add("flex-1","min-w-0"),this.scrollerTarget.classList.remove("shrink-0","max-w-[336px]")),this.#t()}handleClosed(){this.isSearchOpen=!1,this.hasCancelTarget&&this.cancelTarget.classList.add("hidden"),this.hasDividerTarget&&this.dividerTarget.classList.remove("invisible"),this.hasTagsTarget&&this.tagsTarget.classList.remove("invisible"),this.hasScrollerTarget&&(this.scrollerTarget.classList.remove("shrink-0","max-w-[336px]"),this.scrollerTarget.classList.add("flex-1","min-w-0")),this.#i(),requestAnimationFrame(()=>{this.#s()})}cancel(i){i.preventDefault(),i.stopPropagation(),this.dispatch("cancel",{bubbles:!0})}#e(){let i=document.querySelector('[data-mobile-scroll-behavior-target="navbar"]');if(!i)return;i.classList.remove("hidden"),i.classList.remove("-translate-y-full"),i.classList.add("translate-y-0");let s=document.getElementById("navbar");s&&s.classList.remove("hidden")}#t(){let i=document.getElementById("category-filters-container");i&&i.classList.add("hidden")}#i(){let i=document.getElementById("category-filters-container");i&&i.classList.remove("hidden")}#s(){this.originalScrollY!==void 0&&window.scrollTo({top:this.originalScrollY,behavior:"smooth"})}#r(){this.#e();let i=document.querySelector('[data-mobile-scroll-behavior-target="navbar"]');if(!i)return;let s=document.getElementById("navbar"),r=s?s.offsetHeight||s.getBoundingClientRect().height:i.offsetHeight,a=16,n=this.element.getBoundingClientRect(),d=(window.scrollY||window.pageYOffset)+n.top-r-a;d>=0?window.scrollTo({top:d,behavior:"smooth"}):window.scrollTo({top:0,behavior:"smooth"})}};var Lu=4,kV=300,xV="button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex='-1'])",ku=null,xu=class extends u{static values={steps:Array,key:String,metadata:Object,requireCta:Boolean,priority:Boolean};connect(){this.lastEventTime=0,this.lastEventId=null,this.finished=!1,this.active=!1,this.current=-1,!(!this.stepsValue?.length||!this.keyValue)&&(this.steps=this.stepsValue.flatMap(({id:i,selector:s,templateId:r})=>{let a=document.getElementById(r)?.content?.firstElementChild;return!a||s&&!document.querySelector(s)?[]:[{id:i,selector:s,templateId:r,template:a,el:null}]}),this.steps.length!==0&&(this.startTimeout=setTimeout(()=>this.#e(),kV),this.handleBubbleClosed=this.handleBubbleClosed.bind(this),this.handleDismiss=this.handleDismiss.bind(this),this.handleMorph=this.handleMorph.bind(this),this.handleBeforeCache=this.handleBeforeCache.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.handleViewportChange=this.handleViewportChange.bind(this),document.addEventListener("text-bubble:closed",this.handleBubbleClosed),document.addEventListener("tour:dismiss",this.handleDismiss),document.addEventListener("turbo:morph-element",this.handleMorph),document.addEventListener("turbo:before-cache",this.handleBeforeCache),document.addEventListener("keydown",this.handleKeydown),window.addEventListener("resize",this.handleViewportChange),window.addEventListener("scroll",this.handleViewportChange,!0)))}disconnect(){clearTimeout(this.startTimeout),this.pendingModalObserver?.disconnect(),document.removeEventListener("text-bubble:closed",this.handleBubbleClosed),document.removeEventListener("tour:dismiss",this.handleDismiss),document.removeEventListener("turbo:morph-element",this.handleMorph),document.removeEventListener("turbo:before-cache",this.handleBeforeCache),document.removeEventListener("keydown",this.handleKeydown),window.removeEventListener("resize",this.handleViewportChange),window.removeEventListener("scroll",this.handleViewportChange,!0),this.stopModalObserver(),!this.finished&&this.active&&this.cancel()}start(){this.active||this.finished||(this.active=!0,ku=this,this.focusedBeforeStart=document.activeElement,this.overlay=document.createElement("div"),this.overlay.className="tour-overlay",this.opening=document.createElement("div"),this.opening.className="tour-overlay-opening",this.overlay.append(this.opening),this.startModalObserver(),this.#s(0),document.body.append(this.overlay))}next(){this.current>=this.steps.length-1?this.complete():this.#s(this.current+1)}back(){this.current>0&&this.#s(this.current-1)}complete(){this.#o(),this.dispatch("completed",{bubbles:!0}),this.onFinish(),this.element.remove()}cancel(){this.#o()}handleBeforeCache(){this.active&&this.cancel()}handleMorph(){let i=this.#i();i?.selector&&(this.highlight(i.selector),this.disableStepTarget(i.selector),this.#n())}handleDismiss(){this.active&&this.complete()}handleKeydown(i){let s=this.#i();if(!s?.el||!s.el.contains(i.target)&&i.target.closest?.("dialog[open], [data-controller~='proactive-media-account']"))return;let r=s.el.contains(i.target);if(i.key==="Tab"){this.#a(i,s.el,r);return}if(!this.requireCtaValue){if(i.key==="Escape")this.cancel();else if(r&&i.key==="ArrowRight")this.next();else if(r&&i.key==="ArrowLeft")this.back();else return;i.preventDefault(),i.stopPropagation()}}handleViewportChange(){this.repositionRequested||!this.active||(this.repositionRequested=!0,requestAnimationFrame(()=>{this.repositionRequested=!1,this.#n()}))}startModalObserver(){this.modalObserver=new MutationObserver(()=>{this.active&&document.getElementById("about-modal")&&this.cancel()}),this.modalObserver.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class"]})}stopModalObserver(){this.modalObserver?.disconnect(),this.modalObserver=null}
177handleBubbleClosed(i){let s=i.detail?.id,r=Date.now();if(this.lastEventId===s&&r-this.lastEventTime<100)return;this.lastEventTime=r,this.lastEventId=s;let a=this.#i();!s||!a||s!==a.templateId.replace(/-template$/,"")||this.next()}highlight(i){let s=document.querySelector(i);s&&(s.classList.add("ring","ring-white/70"),s.scrollIntoView({behavior:"smooth",block:"center"}))}unhighlight(i){let s=document.querySelector(i);s&&s.classList.remove("ring","ring-white/70")}get metadata(){return this.metadataValue}onFinish(){let{notification_type:i}=this.metadata;i&&Re.markAsShown(i)}showTooltipForStep(i,s){if(!i.el.querySelector("[data-controller~='tour-tooltip']")){let r=i.el.firstElementChild;this.renderProgress(i),r.tabIndex=-1,r.focus({preventScroll:!0});return}this.withTooltipController(i,s,r=>{r.show(),this.renderProgress(i),r.element.tabIndex=-1,r.element.focus({preventScroll:!0})})}renderProgress(i){let s=this.steps.indexOf(i),r=s===this.steps.length-1,a=i?.el?.querySelector("[data-tour-dots]");if(a){let l=this.steps.map((d,m)=>{let v=document.createElement("i");return v.className=m===s?"block h-[5px] w-4 rounded-full bg-white transition-all duration-200":"block size-[5px] rounded-full bg-white/[0.22] transition-all duration-200",v});a.replaceChildren(...l)}let n=i?.el?.querySelector("[data-tour-cta]");n&&(n.textContent=r?n.dataset.lastLabel:n.dataset.nextLabel)}withTooltipController(i,s,r,a=0){let n=i?.el?.querySelector("[data-controller~='tour-tooltip']");if(!n){a<5&&requestAnimationFrame(()=>{this.withTooltipController(i,s,r,a+1)});return}s&&!n.dataset.tourTooltipTargetSelectorValue&&(n.dataset.tourTooltipTargetSelectorValue=s);let l=this.application.getControllerForElementAndIdentifier(n,"tour-tooltip");if(l){r(l);return}a<5&&requestAnimationFrame(()=>{this.withTooltipController(i,s,r,a+1)})}disableStepTarget(i){let s=i&&document.querySelector(i);s&&(s.setAttribute("disabled","disabled"),s.inert=!0)}enableStepTarget(i){let s=i&&document.querySelector(i);s&&(s.removeAttribute("disabled"),s.inert=!1)}hasVisibleTooltip(){let i=document.querySelectorAll("[data-controller~='text-bubble'][data-text-bubble-show-on-connect-value='true']");for(let s of i){if(this.element.contains(s))continue;let r=this.application.getControllerForElementAndIdentifier(s,"text-bubble");if(r&&r.hasContainerTarget&&!r.containerTarget.classList.contains("hidden"))return!0}return!1}#e(){if(document.getElementById("about-modal")){this.priorityValue&&this.#t();return}this.priorityValue?(ku?.cancel(),this.start()):!this.hasVisibleTooltip()&&!ku&&this.start()}#t(){this.pendingModalObserver=new MutationObserver(()=>{document.getElementById("about-modal")||(this.pendingModalObserver.disconnect(),this.pendingModalObserver=null,this.#e())}),this.pendingModalObserver.observe(document.body,{childList:!0,subtree:!0})}#i(){return this.active?this.steps[this.current]:null}#s(i){this.#r(),this.current=i;let s=this.steps[i];s.el=document.createElement("div"),s.el.append(s.template.cloneNode(!0)),document.body.append(s.el),this.highlight(s.selector),this.#n(),this.showTooltipForStep(s,s.selector),this.disableStepTarget(s.selector)}#r(){let i=this.steps[this.current];i?.el&&(this.unhighlight(i.selector),this.enableStepTarget(i.selector),i.el.remove(),i.el=null)}#a(i,s,r){i.preventDefault();let a=[s.querySelector("[data-controller~='tour-tooltip']")||s.firstElementChild,...s.querySelectorAll(xV)],n=r?a.indexOf(document.activeElement):-1,l=a.length-1,d=i.shiftKey?n<=0?l:n-1:n>=l?0:n+1;a[d]?.focus({preventScroll:!0})}#n(){if(!this.opening)return;let i=this.#i(),s=i?.selector&&document.querySelector(i.selector);if(this.overlay.classList.toggle("hidden",!i?.selector),!s){Object.assign(this.opening.style,{top:"-1px",left:"-1px",width:"0",height:"0"});return}let r=s.getBoundingClientRect();Object.assign(this.opening.style,{top:`${r.top-Lu}px`,left:`${r.left-Lu}px`,width:`${r.width+Lu*2}px`,height:`${r.height+Lu*2}px`})}#o(){this.active&&(this.#r(),this.active=!1,this.finished=!0,this.current=-1,ku=null,this.stopModalObserver(),this.overlay?.remove(),this.overlay=null,this.opening=null,this.focusedBeforeStart?.isConnected&&this.focusedBeforeStart.focu
177s({preventScroll:!0}),this.focusedBeforeStart=null)}};var WT=16,WC=16,IV=5,AV=95,Iu=class extends u{static values={targetSelector:String,offsetY:{type:Number,default:WC}};connect(){this.isActive=!1,this.scrollRequested=!1,this.boundReposition=this.reposition.bind(this),this.boundRepositionOnScroll=this.handleScroll.bind(this),this.element.style.position=this.element.style.position||"fixed",this.element.style.top||(this.element.style.top="-9999px"),this.element.style.left||(this.element.style.left="-9999px")}disconnect(){this.isActive=!1,this.removeListeners()}show(){if(this.isActive){this.reposition();return}this.textBubbleController?.show?.(),this.element.classList.remove("hidden"),this.isActive=!0,requestAnimationFrame(()=>{this.reposition(),this.addListeners()})}hide(){this.isActive=!1,this.removeListeners(),this.element.classList.add("hidden")}handleScroll(){this.scrollRequested||(this.scrollRequested=!0,requestAnimationFrame(()=>{this.scrollRequested=!1,this.reposition()}))}addListeners(){window.addEventListener("resize",this.boundReposition),window.addEventListener("scroll",this.boundRepositionOnScroll,!0)}removeListeners(){window.removeEventListener("resize",this.boundReposition),window.removeEventListener("scroll",this.boundRepositionOnScroll,!0)}reposition(){let i=this.targetElement;if(!i)return;let s=this.measureTooltipRect();if(!s)return;let r=i.getBoundingClientRect(),a=r.left+r.width/2-s.width/2,n=window.innerWidth-s.width-WT;a=Math.max(WT,Math.min(a,n));let l=Math.max(WT,r.top-s.height-this.offsetY);this.element.style.left=`${a}px`,this.element.style.top=`${l}px`,this.positionArrow(r,s,a)}positionArrow(i,s,r){let a=this.element.querySelector(".arrow");if(!a)return;let d=(i.left+i.width/2-r)/s.width*100,m=Math.max(IV,Math.min(AV,d));a.style.left=`${m}%`}measureTooltipRect(){let i=this.element.classList.contains("hidden");i&&(this.element.classList.remove("hidden"),this.element.style.visibility="hidden");let s=this.element.getBoundingClientRect();return i&&(this.element.classList.add("hidden"),this.element.style.visibility=""),s.width===0&&s.height===0?null:s}get textBubbleController(){let i=this.element.querySelector("[data-controller~='text-bubble']");return i?this.application.getControllerForElementAndIdentifier(i,"text-bubble"):null}get targetElement(){if(!this.hasTargetSelectorValue)return null;let i=this.targetSelectorValue;if(!i||(i=i.trim().replace(/^['"]|['"]$/g,""),!i))return null;try{return document.querySelector(i)}catch(s){return console.error("tour-tooltip: invalid selector",i,s),null}}get offsetY(){return this.hasOffsetYValue?this.offsetYValue:WC}};var PV="chat-customization-modal",VV="proactive-media-account",Au=class extends u{static values={bubbleId:String,acknowledgeKey:String};next(){this.acknowledgeKeyValue&&Re.markAsShown(this.acknowledgeKeyValue),document.dispatchEvent(new CustomEvent("text-bubble:closed",{detail:{id:this.bubbleIdValue},bubbles:!0}))}close(){document.dispatchEvent(new CustomEvent("tour:dismiss",{bubbles:!0}))}openChatSettings(){let i=document.getElementById(PV),s=i&&this.application.getControllerForElementAndIdentifier(i,"universal-settings");if(!s)return;i.showModal();let r=i.querySelector('[data-page-id="media_items"]')?"media_items":"root";if(s.showPage(r,"in"),!this.acknowledgeKeyValue)return;let a=this.#e(i);i.addEventListener("close",()=>{this.#e(i)!==a&&this.next()},{once:!0})}openAccountSettings(){let i=document.getElementById(VV);i&&(this.application.getControllerForElementAndIdentifier(i,"proactive-media-account")?.open(),this.acknowledgeKeyValue&&i.addEventListener("proactive-media-account:closed",s=>{s.detail.enabled||this.next()},{once:!0}))}#e(i){return[...i.querySelectorAll("[role='switch'][data-media]")].map(s=>s.getAttribute("aria-checked")).join()}};var MV="chat-customization-modal",_V='[data-action~="click->lifelike--media-settings#toggle"]',Pu=class extends u{openSettings(){let i=document.getElementById(MV),s=i&&this.application.getControllerForElementAndIdentifier(i,"universal-settings");if(!s){document.querySelector(_V)?.click();return}let r=this.#e(i);i.showModal(),s.showPage(i.querySelector('[data-page-id="media_items"]')?"media_items":"root","in"),i.addEventListener("close",()=>{this.#e(i)!==r&&this.element.remove()},{once:!0})}#e(i){return[...i.querySelectorAll("[role='switch'][data-media]")].map(s=>s.getAttribute("aria-checked")).join()}};var jC="button:not([disabled]), input:not([disabled]), [tabindex]:not
177([tabindex='-1'])",Vu=class extends u{static targets=["switch","confirm"];static values={url:String};connect(){document.querySelectorAll(`#${this.element.id}`).forEach(i=>{i!==this.element&&i.remove()}),this.element.parentElement!==document.body&&document.body.append(this.element)}disconnect(){this.element.removeEventListener("keydown",this.boundTrapTab)}open(){this.focusedBeforeOpen=document.activeElement,this.element.classList.remove("hidden"),this.boundTrapTab||=this.trapTab.bind(this),this.element.addEventListener("keydown",this.boundTrapTab),this.#t(this.#e())}close(){this.element.classList.add("hidden"),this.confirmTarget.classList.add("hidden"),this.element.removeEventListener("keydown",this.boundTrapTab),this.focusedBeforeOpen?.focus?.({preventScroll:!0}),Promise.resolve(this.pendingSave).then(()=>{this.dispatch("closed",{detail:{enabled:this.switchTarget.checked}})})}toggle(){if(this.switchTarget.checked){this.#i(!0);return}this.switchTarget.checked=!0,this.confirmTarget.classList.remove("hidden"),this.#t(this.confirmTarget)}keepOn(){this.confirmTarget.classList.add("hidden"),this.switchTarget.focus({preventScroll:!0})}async turnOff(){this.confirmTarget.classList.add("hidden"),this.switchTarget.checked=!1,this.switchTarget.focus({preventScroll:!0}),await this.#i(!1)}trapTab(i){if(i.key!=="Tab")return;let s=[...this.#e().querySelectorAll(jC)].filter(l=>l.offsetParent!==null||l===this.switchTarget);if(s.length===0)return;i.preventDefault();let r=s.indexOf(document.activeElement),a=s.length-1,n=i.shiftKey?r<=0?a:r-1:r>=a?0:r+1;s[n].focus({preventScroll:!0})}#e(){return this.confirmTarget.classList.contains("hidden")?this.element:this.confirmTarget}#t(i){i.querySelector(jC)?.focus({preventScroll:!0})}#i(i){return this.pendingSave=this.#s(i).finally(()=>{this.pendingSave=null}),this.pendingSave}async#s(i){try{let s=await ve(this.urlValue,{body:JSON.stringify({name:"proactive_media",value:String(i)}),headers:{"Content-Type":"application/json"},responseKind:"json"});if(!s.ok)throw new Error(`Server error: ${s.status}`);return!0}catch{return this.switchTarget.checked=!i,!1}}};var jT=class extends u{};jT.debounces=[];var KT=class extends u{};KT.throttles=[];var BV={enterFromClass:"enter",enterActiveClass:"enterStart",enterToClass:"enterEnd",leaveFromClass:"leave",leaveActiveClass:"leaveStart",leaveToClass:"leaveEnd"},OV={transitioned:!1,hiddenClass:"hidden",preserveOriginalClass:!0,removeToClasses:!0},KC=(i,s={})=>{var r,a,n;let l=i,d=l.element.dataset.transitionTarget,m;d&&(m=l[`${d}Target`]);let v=s?.element||m||l.element;if(!(v instanceof HTMLElement||v instanceof SVGElement))return;let E=v.dataset,D=parseInt(E.leaveAfter||"")||s.leaveAfter||0,{transitioned:R,hiddenClass:W,preserveOriginalClass:Q,removeToClasses:X}=Object.assign({},OV,s),ie=(r=l.enter)===null||r===void 0?void 0:r.bind(l),ce=(a=l.leave)===null||a===void 0?void 0:a.bind(l),oe=(n=l.toggleTransition)===null||n===void 0?void 0:n.bind(l);async function Z(le){if(l.transitioned)return;l.transitioned=!0,ie&&ie(le);let Te=ns("enterFrom",s,E),Le=ns("enterActive",s,E),ze=ns("enterTo",s,E),Qe=ns("leaveTo",s,E);W&&v.classList.remove(W),X||ge(v,Qe),await ee(v,Te,Le,ze,W,Q,X),D>0&&setTimeout((()=>{se(le)}),D)}async function se(le){if(!l.transitioned)return;l.transitioned=!1,ce&&ce(le);let Te=ns("leaveFrom",s,E),Le=ns("leaveActive",s,E),ze=ns("leaveTo",s,E),Qe=ns("enterTo",s,E);X||ge(v,Qe),await ee(v,Te,Le,ze,W,Q,X),W&&v.classList.add(W)}function J(le){oe&&oe(le),l.transitioned?se():Z()}async function ee(le,Te,Le,ze,Qe,_e,Lt){let Tt=[];_e&&(Te.forEach((bt=>le.classList.contains(bt)&&bt!==Qe&&Tt.push(bt))),Le.forEach((bt=>le.classList.contains(bt)&&bt!==Qe&&Tt.push(bt))),ze.forEach((bt=>le.classList.contains(bt)&&bt!==Qe&&Tt.push(bt)))),he(le,Te),ge(le,Tt),he(le,Le),await DV(),ge(le,Te),he(le,ze),await FV(le),ge(le,Le),Lt&&ge(le,ze),he(le,Tt)}function re(){l.transitioned=R,R?(W&&v.classList.remove(W),Z()):(W&&v.classList.add(W),se())}function he(le,Te){Te.length>0&&le.classList.add(...Te)}function ge(le,Te){Te.length>0&&le.classList.remove(...Te)}return re(),Object.assign(l,{enter:Z,leave:se,toggleTransition:J}),[Z,se,J]};function ns(i,s,r){let a=`transition${i[0].toUpperCase()}${i.substr(1)}`,n=BV[i],l=s[i]||r[a]||r[n]||" ";return RV(l)?[]:l.split(" ")}async function FV(i){return new Promise((s=>{let r=Number(getComputedStyle(i).transitionDuration.split(",")[0].replace("s",""))*1e3;setTimeout((()=>{s(r)}),r)}))}async function DV(){return new Promise((i=>{requestAnimationFrame((()=>{requestAnimationFrame(i)}))}))}function RV(i){return i.length===0||!i.trim()}var zC=class extends u{connect(){KC(this,{element:this.menuTarget})}toggle(){this.toggleTransition()}hide(s){!this.element.contains(s.target)&&!this.menuTarget.classList.contains("hidden")&&this.leave()}};zC.targets=["menu"];var YC=zC;var Mu=class extends YC{static values={popover:Boolean,trackOpenUrl:String};connect(){super.connect(),this.popoverValue&&this.hasMenuTarget&&this.menuTarget.classList.remove("hidden")}disconnect(){this.popoverValue&&this.hasMenuTarget&&this.menuTarget.matches(":popover-open")&&this.menuTarget.hidePopover()}toggle(i){if(this.popoverValue){this.togglePopover();return}if(this.hasMenuTarget&&this.menuTarget.classList.contains("hidden")&&this.#e(),this.hasMenuTarget){let s=this.menuTarget,r=this.element.getBoundingClientRect(),a=r.top,n=window.innerHeight-r.bottom,l=a>n,d=["bottom-[60px]","md:bottom-[68px]","origin-bottom-left"],m=["top-[calc(100%+8px)]","md:top-[calc(100%+12px)]","origin-top-left"];s.classList.remove(...d,...m),s.classList.add(...l?d:m)}super.toggle(i)}hide(i){if(this.popoverValue){if(!this.hasMenuTarget||this.element.contains(i.target))return;this.menuTarget.matches(":popover-open")&&this.menuTarget.hidePopover();return}super.hide(i)}togglePopover(){if(!this.hasMenuTarget)return;let i=this.menuTarget;if(i.matches(":popover-open")){i.hidePopover();return}this.#e();let s=this.element.getBoundingClientRect();i.style.visibility="hidden",i.showPopover();let r=i.getBoundingClientRect(),a=s.left-r.width-8,n=s.bottom-r.height;a=Math.max(8,a),n=Math.max(8,Math.min(n,window.innerHeight-r.height-8)),i.style.position="fixed",i.style.left=`${a}px`,i.style.top=`${n}px`,i.style.margin="0",i.style.visibility="visible"}
177#e(){this.trackOpenUrlValue&&H(this.trackOpenUrlValue).catch(()=>{})}};var _u=class extends u{static targets=["slider","output","minLabel","maxLabel"];static values={min:{type:Number,default:18},max:{type:Number,default:55},default:{type:Number,default:21},storageKey:String,attributeKey:String};connect(){this._loadStoredValue(),this.updateOutput(),this.updateProgress()}select(){this.updateOutput(),this.updateProgress()}updateOutput(){let i=this.sliderTarget.value;this.outputTarget.textContent=i}updateProgress(){let i=this.sliderTarget,s=this.minValue,r=this.maxValue,n=(Number(i.value)-s)/(r-s)*100,l=`linear-gradient(to right, var(--progress-color) ${n}%, var(--track-color) ${n}%)`;i.style.background=l,i.style.setProperty("--slider-background",l)}_loadStoredValue(){if(!(!this.hasStorageKeyValue||!this.hasAttributeKeyValue))try{let i=window?.localStorage?.getItem(this.storageKeyValue);if(i){let r=JSON.parse(i)[this.attributeKeyValue];if(r&&r.value){let a=Number(r.value);a>=this.minValue&&a<=this.maxValue&&(this.sliderTarget.value=a)}}}catch{console.error("Error loading slider value from localStorage")}}};
177var Bu=class extends u{static targets=["card","showAll","wrapper"];static values={shrinkClasses:String,ignoredClasses:String,storageKey:String,valueKey:String};connect(){Mt(this),this._checkForUnpersistedSelections(),requestAnimationFrame(()=>{let i=this.element.querySelector('[data-card-selector-target="card"][data-selected="true"]');i&&this.notifyVideoController(i,"selected")}),this.hasShowAllTarget&&this.hasWrapperTarget&&this.shrinkClassesValue&&this.setupShrinkRowDisplay()}deselect(i){let s=i.detail.card;s&&this.cardTargets.includes(s)&&(this.deselectCard(s),this.cardTargets.forEach(r=>{let a=this.getCardContent(r);a.classList.remove("opacity-30"),a.classList.add("opacity-100")}))}_checkForUnpersistedSelections(){if(!(!this.hasStorageKeyValue||!this.hasValueKeyValue))try{let i=localStorage.getItem(this.storageKeyValue);if(i){let r=JSON.parse(i)[this.valueKeyValue];if(r&&r.value){let a=this.cardTargets.find(n=>this._getCardValue(n)===r.value);a&&(this.cardTargets.forEach(n=>{n!==a&&this.deselectCard(n)}),this.selectCard(a))}}}catch(i){console.error("Error checking localStorage for unpersisted selections:",i)}}select(i){let s=i.detail?.card||i.currentTarget,r=this.getAssociatedInput(s),a=s.dataset.selected==="true";if(i.preventDefault(),a){if(this.hasIgnoredClass(i.target))return;this.deselectCard(s),this.cardTargets.forEach(n=>{let l=this.getCardContent(n);l.classList.remove("opacity-30"),l.classList.add("opacity-100")}),this.dispatch("noCardSelected")}else this.cardTargets.forEach(n=>{n!==s&&this.deselectCard(n)}),this.selectCard(s);r&&(r.checked=!a)}selectCard(i){let s=this.getCardContent(i),r=this.getCardLabel(i);s.classList.add("border-black"),s.style.boxShadow="0 0 0 3px white",r&&r.classList.add("md:rounded-2xl","rounded-[8px]"),i.dataset.selected="true",this.dispatch("cardSelected",{detail:{containerElement:i,value:this._getCardValue(i),backgroundImageUrl:this._getCardBackgroundImage(i),valueLabel:this._getCardValueLabel(i)},bubbles:!0});let a=i.querySelector("[data-card-selector-checkmark]");a&&a.classList.remove("hidden"),this.notifyVideoController(i,"selected"),this.cardTargets.forEach(n=>{if(n!==i){let l=this.getCardContent(n);l.classList.remove("opacity-100"),l.classList.add("opacity-30")}else{let l=this.getCardContent(i);l.classList.remove("opacity-30"),l.classList.add("opacity-100")}})}deselectCard(i){let s=this.getCardContent(i),r=this.getCardLabel(i);s.classList.remove("border-black"),s.style.boxShadow="",r&&r.classList.remove("md:rounded-2xl","rounded-[8px]"),s.classList.remove("opacity-30"),s.classList.add("opacity-100"),i.dataset.selected="false",this.getAssociatedInput(i)&&(this.getAssociatedInput(i).checked=!1),this.dispatch("cardDeselected",{detail:{containerElement:i}});let a=i.querySelector("[data-card-selector-checkmark]");a&&a.classList.add("hidden"),this.notifyVideoController(i,"deselected")}deselectAllCards(){this.cardTargets.forEach(i=>{this.deselectCard(i)})}deselectAllCardsExcept(i){let s=i.detail.card;this.cardTargets.forEach(r=>{r!==s&&this.deselectCard(r)})}handleVideoSelection(i){let s=this.getVideoController(i.target);s&&s.handleVideoSelection(i)}handleVideoHover(i){let s=this.getVideoController(i.target);s&&s.handleVideoHover(i)}handleVideoHoverOut(i){let s=this.getVideoController(i.target);s&&s.handleVideoHoverOut(i)}hasSelectedCard(){return!!this.element.querySelector('[data-card-selector-target="card"][data-selected="true"]')}getAssociatedInput(i){let s=i.getAttribute("for");return s?document.getElementById(s):i.querySelector('input[type="radio"]')}getCardContent(i){return i.querySelector(".radio-button-card__content")}getCardLabel(i){return i.querySelector(".radio-button-card__label")}_getCardValue(i){let s=this.getAssociatedInput(i);return s?s.value:null}_getCardValueLabel(i){let s=this.getCardLabel(i);return s?s.textContent.trim():""}_getCardBackgroundImage(i){return this.getCardContent(i).style.backgroundImage}getVideoController(i){if(!i)return null;let s=i.closest('[data-controller*="video-autoplay"]');return s?this.application.getControllerForElementAndIdentifier(s,"video-autoplay"):null}notifyVideoController(i,s){let r=this.getVideoController(i.querySelector("video"));r&&(s==="selected"?(r.isSelected=!0,r.videoTarget.paused&&(r.loadVideo(r.videoTarget),r.playVideoWhenReady(r.videoTarget,"selection"))):s==="deselected"&&(r.isSelected=!1,r.stopPlayingVideo()))}hasIgnoredClass(i){return this.hasIgnoredClassesValue?this.ignoredClassesValue.split(" ").some(r=>i.classList.contains(r)||i.closest(`.${r}`)):!1}setupShrinkRowDisplay(){this.wrapperTarget.classList.add(...this.shrinkClassesValue.split(" "))}toggleShowAll(i){this.shrinkClassesValue===""||!this.hasWrapperTarget||!this.hasShowAllTarget||(this.wrapperTarget.classList.contains(...this.shrinkClassesValue.split(" "))?(this.wrapperTarget.classList.remove(...this.shrinkClassesValue.split(" ")),i.currentTarget.querySelector("span").textContent=this.getTranslation("characters_v2.form.show_less")):(this.wrapperTarget.classList.add(...this.shrinkClassesValue.split(" ")),i.currentTarget.querySelector("span").textContent=this.getTranslation("characters_v2.form.show_all")))}};var Ou=class extends u{static targets=["option","checkmark","hiddenField"];connect(){this.submitted=!1,this.dialogElement=this.element.closest("dialog"),this.dialogElement&&(this.boundHandleDialogClose=this.handleDialogClose.bind(this),this.dialogElement.addEventListener("close",this.boundHandleDialogClose))}disconnect(){this.dialogElement&&this.dialogElement.removeEventListener("close",this.boundHandleDialogClose)}select(i){let s=i.currentTarget;this.hiddenFieldTarget.value=s.dataset.chatModeValue,this.optionTargets.forEac
177h(r=>{let a=r===s;r.classList.toggle("border-white",a),r.classList.toggle("border-white/10",!a)}),this.checkmarkTargets.forEach(r=>{let a=s.contains(r);r.classList.toggle("hidden",!a)})}submitForm(){this.submitted=!0}handleDialogClose(){this.submitted||this.dialogElement.showModal()}};var Fu=class extends u{static targets=["pill","selectedPillsWrapper","pillTemplate"];static values={checkbox:{type:Boolean,default:!1},maxSelect:Number};connect(){if(this.hasSelectedPillsWrapperTarget&&this.checkboxValue){if(!this.hasPillTemplateTarget)return;this.pillTargets.forEach(i=>{i.dataset.selected==="true"&&this.#s(i)}),this.#r()}}deselect(i){let s=i.detail.pill;s&&this.pillTargets.includes(s)&&this.#i(s)}deselectOthersOnPillSelected(i){let s=i.detail.pill;this.pillTargets.forEach(r=>{r!==s&&r.dataset.selected==="true"&&this.#i(r)})}select(i){let s=i.detail?.pill||i.currentTarget,r=s.dataset.selected==="true";i.preventDefault(),r?(this.#i(s),this.pillTargets.every(a=>a.dataset.selected==="false")&&this.dispatch("noPillsSelected",{bubbles:!0})):this.#e(s),this.#r()}selectPillByValue(i){let s=this.pillTargets.find(r=>{let a=this.#a(r);return a&&a.value===i});s&&s.dataset.selected!=="true"&&(this.#e(s),this.#r())}#e(i){this.checkboxValue||this.pillTargets.forEach(s=>{s!==i&&this.#i(s)}),this.#t(i)}#t(i){i.classList.remove("border-[rgba(255,255,255,0.15)]"),i.classList.add("border-white"),i.dataset.selected="true",this.#s(i);let s=this.#a(i),r=null;s&&(s.checked=!0,r=s.value),this.dispatch("pillSelected",{bubbles:!0,detail:{pill:i,value:r}})}#i(i){i.classList.remove("border-white"),i.classList.add("border-[rgba(255,255,255,0.15)]"),i.dataset.selected="false";let s=this.#a(i);s&&(s.checked=!1),this.dispatch("pillDeselected",{bubbles:!0,detail:{pill:i}})}#s(i){if(!this.checkboxValue||!this.hasSelectedPillsWrapperTarget||!this.hasPillTemplateTarget)return;let s=this.pillTemplateTarget.content.cloneNode(!0),r=s.querySelector("label"),a=r.querySelector("span");a&&(a.textContent=i.querySelector("span").textContent),r.setAttribute("for",i.getAttribute("for")),r.classList.remove("hidden"),r.dataset.action="click->pill-select#deselectFromSelectedPillsWrapper",this.selectedPillsWrapperTarget.appendChild(s),i.classList.add("hidden"),i.dataset.hiddenBySelectResults=!0,this.selectedPillsWrapperTarget.classList.add("mb-5","lg:mb-6")}deselectFromSelectedPillsWrapper(i){let s=i.currentTarget,r=this.pillTargets.find(n=>n.getAttribute("for")===s.getAttribute("for"));s.remove(),r.classList.remove("hidden"),r.dataset.hiddenBySelectResults=!1,this.#i(r);let a=this.#a(r);a&&(a.checked=!1),this.dispatch("pillDeselectedFromWrapper",{bubbles:!0}),[...this.selectedPillsWrapperTarget.querySelectorAll("label")].filter(n=>n.offsetParent!==null).length===0&&(this.dispatch("allPillsDeselectedFromWrapper",{bubbles:!0}),this.selectedPillsWrapperTarget.classList.remove("mb-5","lg:mb-6")),this.pillTargets.forEach(n=>{n.classList.remove("pointer-events-none","opacity-50")})}#r(){if(!this.checkboxValue||!this.maxSelectValue||!this.hasSelectedPillsWrapperTarget)return;this.pillTargets.filter(s=>s.dataset.selected==="true").length>=this.maxSelectValue&&this.pillTargets.forEach(s=>{s.classList.add("pointer-events-none","opacity-50")})}#a(i){let s=i.getAttribute("for");return s?document.getElementById(s):i.querySelector('input[type="radio"]')||i.querySelector('input[type="checkbox"]')}};var Du=class extends u{static targets=["searchInput","pill","clearButton"];static values={debounceDelay:{type:Number,default:300}};static MIN_SEARCH_TERM_LENGTH=2;connect(){this._boundReapplySearchOnDeselection=this._reapplySearchOnDeselection.bind(this),this.element.addEventListener("pill-select:pillDeselectedFromWrapper",this._boundReapplySearchOnDeselection),this.searchTimeout=null}disconnect(){this.element.removeEventListener("pill-select:pillDeselectedFromWrapper",this._boundReapplySearchOnDeselection),this.searchTimeout&&clearTimeout(this.searchTimeout)}_reapplySearchOnDeselection(){this.searchInputTarget.value.length>=this.constructor.MIN_SEARCH_TERM_LENGTH&&this._performSearch()}search(){clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout(()=>{this._performSearch()},this.debounceDelayValue)}_performSearch(){if(!this.hasSearchInputTarget)return;let i=this.searchInputTarget.value;if(i.length===0){this.clearSearch();return}else if(i.length<this.constructor.MIN_SEARCH_TERM_LENGTH)return;this.dispatch("searchStarted",{detail:{searchTerm:i},bubbles:!0}),this.hasClearButtonTarget&&this.clearButtonTarget.classList.remove("hidden"),this.pillTargets.forEac
177h(s=>{s.querySelector("span").textContent.toLowerCase().includes(i.toLowerCase())?s.dataset.hiddenBySelectResults!=="true"&&s.classList.remove("hidden"):s.classList.add("hidden")})}clearSearch(){clearTimeout(this.searchTimeout),this.searchInputTarget.value="",this.hasClearButtonTarget&&this.clearButtonTarget.classList.add("hidden"),this.pillTargets.forEach(i=>{i.dataset.hiddenBySelectResults!=="true"&&i.classList.remove("hidden")}),this.dispatch("searchCleared",{bubbles:!0})}preventFormSubmit(i){i.key==="Enter"&&(i.preventDefault(),i.stopPropagation())}};var Ru=class extends u{static targets=["pill","wrapper","showAllButton"];static values={mdDisplay:Number,smDisplay:Number};connect(){Mt(this),this._showAllAvailable()&&(this.wrapperTarget.dataset.shrunk=!1,this.boundHandleResize=this._throttledResize.bind(this),window.addEventListener("resize",this.boundHandleResize),this.toggleShowAll()),this.boundHideShowAllButton=this._hideShowAllButton.bind(this),this.boundShowShowAllButton=this._showShowAllButton.bind(this),this.boundSetShrinkedState=this._setShrinkedState.bind(this),this.element.addEventListener("pill-search:searchStarted",this.boundHideShowAllButton),this.element.addEventListener("pill-search:searchCleared",this.boundShowShowAllButton),this.element.addEventListener("pill-search:searchCleared",this.boundSetShrinkedState)}disconnect(){this.boundHandleResize&&(window.removeEventListener("resize",this.boundHandleResize),this.resizeTimeout&&clearTimeout(this.resizeTimeout)),this.element.removeEventListener("pill-search:searchStarted",this.boundHideShowAllButton),this.element.removeEventListener("pill-search:searchCleared",this.boundShowShowAllButton),this.element.removeEventListener("pill-search:searchCleared",this.boundSetShrinkedState)}toggleShowAll(){this._showAllAvailable()&&(this._detectScreenSize(),this.wrapperTarget.dataset.shrunk==="true"?this._setFullState():this._setShrinkedState())}_setShrinkedState(){this.wrapperTarget.dataset.shrunk=!0,this.showAllButtonTarget.querySelector("span").textContent=this.getTranslation("characters_v2.form.show_all"),this._forceReflow(this.showAllButtonTarget.querySelector("span")),this._shrinkPills()}_setFullState(){this.wrapperTarget.dataset.shrunk=!1,this.showAllButtonTarget.querySelector("span").textContent=this.getTranslation("characters_v2.form.show_less"),this._forceReflow(this.showAllButtonTarget.querySelector("span")),this._displayAllPills()}_displayAllPills(){this.pillTargets.forEach(i=>{i.dataset.hiddenBySelectResults!=="true"&&i.classList.remove("hidden")})}_shrinkPills(){this.pillTargets.forEach((i,s)=>{s>=this.pillDisplayValue&&i.classList.add("hidden")})}_detectScreenSize(){window.innerWidth>=768?this.pillDisplayValue=this.mdDisplayValue:this.pillDisplayValue=this.smDisplayValue}_handleResize(){this._showAllAvailable()&&(this._detectScreenSize(),this.wrapperTarget.dataset.shrunk==="true"&&(this._displayAllPills(),this._shrinkPills()))}_throttledResize(){this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{this._handleResize()},150)}_showAllAvailable(){return this.hasShowAllButtonTarget&&this.hasWrapperTarget&&this.mdDisplayValue>0&&this.smDisplayValue>0}_forceReflow(i){i.style.display="none",i.offsetHeight,i.style.display=""}_hideShowAllButton(){this.hasShowAllButtonTarget&&this.showAllButtonTarget.classList.add("hidden")}_showShowAllButton(){this.hasShowAllButtonTarget&&this.showAllButtonTarget.classList.remove("hidden")}};var rt={selectedVideos:{},hoveredVideos:new Set},Nu=class extends u{static values={preloadOnConnect:{type:Boolean,default:!1}};static targets=["video"];connect(){this.playingVideo=null,this.deviceDetector=new He,this.isSelected=!1,this.videoPlaybackPromises=new Map,this.videoEventListeners=new Map,this.preloadOnConnectValue&&this.ensureVideosPreload()}disconnect(){this.stopPlayingVideo(),rt.hoveredVideos.has(this.videoTarget)&&rt.hoveredVideos.delete(this.videoTarget);let i=this.getSelectionCategory();i&&rt.selectedVideos[i]===this.videoTarget&&delete rt.selectedVideos[i],this.cleanupAllVideoOperations()}
177cleanupAllVideoOperations(){this.videoEventListeners.forEach((i,s)=>{s.removeEventListener("canplay",i)}),this.videoEventListeners.clear(),this.videoPlaybackPromises.clear()}cleanupVideoOperations(i){this.videoEventListeners.has(i)&&(i.removeEventListener("canplay",this.videoEventListeners.get(i)),this.videoEventListeners.delete(i)),this.videoPlaybackPromises.delete(i)}playVideoWhenReady(i,s="playback"){if(this.videoPlaybackPromises.has(i))return this.videoPlaybackPromises.get(i);let r=new Promise((a,n)=>{if(i.readyState>=3)i.play().then(()=>{this.playingVideo=i,a()}).catch(l=>{console.warn(`Video ${s} prevented:`,l),n(l)}).finally(()=>{this.cleanupVideoOperations(i)});else{let l=()=>{this.videoEventListeners.delete(i),i.play().then(()=>{this.playingVideo=i,a()}).catch(d=>{console.warn(`Video ${s} prevented:`,d),n(d)}).finally(()=>{this.cleanupVideoOperations(i)})};this.videoEventListeners.set(i,l),i.addEventListener("canplay",l,{once:!0}),setTimeout(()=>{this.videoEventListeners.has(i)&&(i.removeEventListener("canplay",l),this.videoEventListeners.delete(i),this.videoPlaybackPromises.delete(i),n(new Error(`Video ${s} timeout - canplay event never fired`)))},1e4)}});return this.videoPlaybackPromises.set(i,r),r}restartVideo(){this.hasVideoTarget&&!this.playingVideo&&(this.loadVideo(this.videoTarget),this.videoTarget.currentTime=0,this.playVideoWhenReady(this.videoTarget,"restart").catch(i=>console.warn("Restart playback prevented:",i)))}loadVideo(i){let s=i.querySelector("source");!i.dataset.src||!s||(s.src=i.dataset.src,i.load(),i.removeAttribute("data-src"))}pauseVideo(){this.hasVideoTarget&&(this.videoTarget.pause(),this.videoTarget.currentTime=0,this.playingVideo=null)}ensureVideosPreload(){this.videoTargets.forEach(i=>{this.loadVideo(i),i.readyState<1&&i.load()})}playVideo(){rt.playingVideo===null&&(this.videoTarget.currentTime=0,rt.playingVideo=this.videoTarget,this.playVideoWhenReady(this.videoTarget,"mobile playback").catch(()=>{rt.playingVideo===this.videoTarget&&(rt.playingVideo=null)}))}stopPlayingVideo(){this.hasVideoTarget&&!this.videoTarget.paused&&(this.videoTarget.pause(),this.videoTarget.currentTime=0,this.playingVideo=null),this.cleanupVideoOperations(this.videoTarget)}handleVideoInteraction(i){this.deviceDetector.isMobile()?i.type==="touchstart"&&(rt.playingVideo&&rt.playingVideo!==this.videoTarget?(this.stopPlayingVideo(),this.loadVideo(this.videoTarget),this.playVideo()):rt.playingVideo||(this.loadVideo(this.videoTarget),this.playVideo())):i.type==="mouseenter"?this.restartVideo():i.type==="mouseleave"&&this.pauseVideo()}getSelectionCategory(){let i=this.videoTarget.closest("[data-selection-type]");return i?i.dataset.selectionType:null}handleVideoSelection(i){let s=this.getSelectionCategory();if(s&&rt.selectedVideos[s]&&rt.selectedVideos[s]!==this.videoTarget){let r=this.application.getControllerForElementAndIdentifier(rt.selectedVideos[s].closest('[data-controller*="video-autoplay"]'),"video-autoplay");r&&(r.stopPlayingVideo(),r.isSelected=!1)}this.isSelected=!0,s&&(rt.selectedVideos[s]=this.videoTarget),this.loadVideo(this.videoTarget),this.videoTarget.currentTime=0,this.playVideoWhenReady(this.videoTarget,"selection").catch(()=>{this.isSelected=!1,s&&rt.selectedVideos[s]===this.videoTarget&&delete rt.selectedVideos[s]})}handleVideoHover(i){this.deviceDetector.isMobile()||this.isSelected||(rt.hoveredVideos.add(this.videoTarget),this.loadVideo(this.videoTarget),this.videoTarget.currentTime=0,this.playVideoWhenReady(this.videoTarget,"hover").then(()=>{rt.hoveredVideos.has(this.videoTarget)&&(this.playingVideo=this.videoTarget)}).catch(()=>{rt.hoveredVideos.delete(this.videoTarget)}))}handleVideoHoverOut(i){this.deviceDetector.isMobile()||this.isSelected||(rt.hoveredVideos.has(this.videoTarget)&&rt.hoveredVideos.delete(this.videoTarget),this.stopPlayingVideo())}};var Uu=class extends u{static targets=["form","group","overlay","counter"];connect(){this.hasCounterTarget&&(this.count=parseInt(this.counterTarget.dataset.count,10),this._scheduleCounterTick())}disconnect(){clearTimeout(this.counterTimeout)}optionPicked(){if(this.submitted)return;let i=this.groupTargets.find(s=>!s.querySelector("input[type=radio]:checked"));if(i){i.scrollIntoView({behavior:"smooth",block:"start"});return}this.submitted=!0,this.hasOverlayTarget&&(this.overlayTarget.classList.remove("hidden"),this.overlayTarget.classList.add("flex")),this.formTarget.requestSubmit()}_scheduleCounterTick(){let i=2500+Math.random()*4500;this.counterTimeout=setTimeout(()=>{this.count+=Math.ceil(Math.random()*3),this.counterTarget.textContent=this.count.toLocaleStr
177ing("en-US"),this._scheduleCounterTick()},i)}};var Hu=class extends u{static targets=["nextButton","fieldset","genderInput","genderTab","genderTabs","genderPanel"];static values={v2Path:String,animeAllowed:Boolean,selectedOption:{type:String,default:""},selectedGender:{type:String,default:"female"}};static classes=["selectedBorder","unselectedBorder","selectedIcon","unselectedIcon","selectedText","unselectedText"];connect(){this.hasGenderInputTarget&&this.genderInputTarget.value&&(this.selectedGenderValue=this.genderInputTarget.value),this.#i(),this.#t(),this.boundResetOnPageShow=this.#e.bind(this),this.boundResetState=this.#t.bind(this),window.addEventListener("pageshow",this.boundResetOnPageShow),document.addEventListener("turbo:before-cache",this.boundResetState)}disconnect(){window.removeEventListener("pageshow",this.boundResetOnPageShow),document.removeEventListener("turbo:before-cache",this.boundResetState)}#e(i){i.persisted&&this.#t()}#t(){this.hasNextButtonTarget&&(this.nextButtonTarget.dataset.processing="false",this.nextButtonTarget.querySelector(".loading-submit-white")?.remove(),this.nextButtonTarget.querySelector("img")?.classList?.remove("hidden"),this.nextButtonTarget.disabled=!this.#r())}#i(){let s=new URLSearchParams(window.location.search).get("gender");if(s){let r=`gender-tab-${s}`,a=document.getElementById(r);a&&a.click()}}async submitCreateFlow(i){if(!this.hasFieldsetTarget)return;if(this.nextButtonTarget.dataset.processing==="true"){i.preventDefault();return}let s=this.#r();if(!s){i.preventDefault();return}if(this.#s(s.value))return;i.preventDefault(),this.nextButtonTarget.disabled=!0,this.nextButtonTarget.dataset.processing="true";let r=!1;try{let a=await ve(this.v2PathValue,{body:{profile:{category:s.value,gender:this.genderInputTarget.value,cmai_flow_version:2}}});a.ok&&a.redirected&&a.response?.url&&(r=!0,window.location.href=a.response.url)}finally{r||this.#t()}}#s(i){return(this.hasGenderInputTarget?this.genderInputTarget.value:null)==="male"&&i==="anime"}handleFieldsetChange(){if(!this.hasNextButtonTarget)return;let i=this.#r();!i||!i.value||i.value!==this.selectedOptionValue&&(this.selectedOptionValue=i.value,this.nextButtonTarget.disabled=!1)}selectGenderTab(i){i.preventDefault();let s=i.currentTarget.dataset.gender;this.#a(s),this.#n(s),this.#o(s),this.#l(s)}#r(){if(!this.hasFieldsetTarget)return;let i=this.genderPanelTargets?.find(s=>!s.classList.contains("hidden"));return i?i.querySelector("fieldset")?.querySelector(".selected input"):this.fieldsetTarget.querySelector(".selected input")}#a(i){this.selectedGenderValue=i,this.hasGenderInputTarget&&(this.genderInputTarget.value=i)}#n(i){!this.hasGenderTabTarget||this.genderTabTargets.length===0||this.genderTabTargets.forEach(s=>{let r=s.dataset.gender===i,a=s.querySelector("span"),n=s.querySelector(".gender-icon");r?this.#h(s,n,a):this.#c(s,n,a)})}#o(i){this.hasGenderPanelTarget&&(this.hasNextButtonTarget&&(this.nextButtonTarget.disabled=!0),this.selectedOptionValue=null,this.genderPanelTargets.forEach(s=>{s.dataset.gender===i?s.classList.remove("hidden"):s.classList.add("hidden"),s.querySelectorAll('[data-create-flow-target="option"]').forEach(a=>{a.classList.remove("selected")}),s.querySelectorAll('input[type="radio"]').forEach(a=>{a.checked=!1})}))}#l(i){let s=document.getElementById("character-create-title");if(!s)return;let r=i==="male_to_female_trans"?"titleTrans":"titleFemale",a=s.dataset[r];a&&(s.textContent=a)}#h(i,s,r){this.hasSelectedBorderClass&&(i.classList.remove(...this.unselectedBorderClasses),i.classList.add(...this.selectedBorderClasses),s&&this.hasSelectedIconClass&&(s.classList.remove(...this.unselectedIconClasses),s.classList.add(...this.selectedIconClasses)),r&&this.hasSelectedTextClass&&(r.classList.remove(...this.unselectedTextClasses),r.classList.add(...this.selectedTextClasses)))}#c(i,s,r){this.hasUnselectedBorderClass&&(i.classList.remove(...this.selectedBorderClasses),i.classList.add(...this.unselectedBorderClasses),s&&this.hasUnselectedIconClass&&(s.classList.remove(...this.selectedIconClasses),s.classList.add(...this.unselectedIconClasses)),r&&this.hasUnselectedTextClass&&(r.classList.remove(...this.selectedTextClasses),r.classList.add(...this.unselectedTextClasses)))}};var qu=class extends u{static targets=["styleStep","styleForm","genderTab","genderPanel","styleTitleHighlight","beginButton","styleVideo","variantContainer","variantForm","stepPanel","stepsScroller","progressBar","progressFill","nextButton","errorBanner","nameInput","nameError","cardValue","pickerModal","summaryCta","summaryTile","summaryBgVideo","nextFooter"];static values={createUrl:String,fallbackUrl:String,kinksMoreLabel:String,preferredVariant:String};STATE_STORAGE_KEY="cmai_new4_flow_state";PICKER_ATTRIBUTES=["personality","relationship","occupation","kinks","voice_name"];connect(){this.activeVariant=null,this.stepIndex=0,this.submitting=!1,this.redirecting=!1,this.returningToSummary=!1,this.summaryMo
177dalOpened=!1,this.openPickerAttribute=null,this.pickerSnapshot=[],document.body.classList.add("new4-flow"),this.element.querySelectorAll('[data-video-autoplay-preload-on-connect-value="true"]').forEach(i=>i.setAttribute("data-video-autoplay-preload-on-connect-value","false")),this.nextButtonTargets.forEach(i=>{i.disabled=!1}),this.#i(),this.styleVideoTargets.filter(i=>!i.paused).forEach(i=>this.#s(i)),this.#A(),this.#B(),requestAnimationFrame(()=>{this.#p(),this.#E()})}disconnect(){clearTimeout(this.summaryModalTimer),document.body.classList.remove("new4-flow")}selectGenderTab(i){this.#e(i.currentTarget.dataset.gender)}#e(i){let s=this.styleFormTarget.querySelector('input[name="profile[gender]"]');if(s&&(s.value=i),this.genderTabTargets.forEach(r=>{let a=r.dataset.gender===i;r.classList.toggle("border-pink-badge",a),r.classList.toggle("border-grey-dark",!a);let n=r.querySelector(".gender-icon");n&&(n.classList.toggle("text-pink-dark",a),n.classList.toggle("text-white/60",!a));let l=r.querySelector("span");l&&(l.classList.toggle("text-white",a),l.classList.toggle("text-white/60",!a))}),this.genderPanelTargets.forEach(r=>{r.classList.toggle("hidden",r.dataset.gender!==i),r.querySelectorAll('[data-create-flow-target="option"]').forEach(a=>{a.classList.remove("selected")}),r.querySelectorAll('input[type="radio"]').forEach(a=>{a.checked=!1})}),this.#t(i),this.hasStyleTitleHighlightTarget){let r=i==="male_to_female_trans"?"highlightTrans":"highlightFemale",a=this.styleTitleHighlightTarget.dataset[r];a&&(this.styleTitleHighlightTarget.textContent=a)}}#t(i){let r=this.genderPanelTargets.find(n=>n.dataset.gender===i)?.querySelector('input[type="radio"][value="realistic"]:not(:disabled)'),a=r?.closest('[data-create-flow-target="option"]');a&&(a.classList.add("selected"),r.checked=!0),this.hasBeginButtonTarget&&(this.beginButtonTarget.disabled=!a)}styleCardChanged(){this.#i()}#i(){if(!this.hasBeginButtonTarget)return;let i=!!this.styleFormTarget.querySelector('input[name="profile[category]"]:checked');this.beginButtonTarget.disabled=!i}showStyleVideo(i){this.#s(i.currentTarget)}#s(i){i.classList.remove("opacity-0")}styleStepNext(i){i.preventDefault();let s=this.styleFormTarget.querySelector('input[name="profile[gender]"]')?.value||"female",r=this.styleFormTarget.querySelector('input[name="profile[category]"]:checked')?.value;if(!r)return;let a=this.#r(s,r);if(!this.#a(a)){window.location.href=this.fallbackUrlValue;return}this.activeVariant=a,this.dispatch("stepCompleted",{detail:{stepName:"style"}}),this.#m(1)}next(i){i.preventDefault(),!this.submitting&&(this.#p(),this.#b(),this.returningToSummary&&this.#u()!=="summary"?(this.#h(),this.#V()):this.#u()==="name_only"?(this.#h(),this.#V()):this.#u()!=="summary"&&(this.#h(),this.#m(this.stepIndex+1)))}back(){this.submitting||(this.returningToSummary=!1,this.stepIndex<=1?this.#d():this.#m(this.stepIndex-1))}cardSelected(i){let s=i.target.closest("[data-card-selector-value-key-value]");
177s&&this.#G(s.dataset.cardSelectorStorageKeyValue,s.dataset.cardSelectorValueKeyValue,i.detail.value)}cardDeselected(i){let s=i.target.closest("[data-card-selector-value-key-value]");s&&this.#Z(s.dataset.cardSelectorStorageKeyValue,s.dataset.cardSelectorValueKeyValue)}nameChanged(i){let r=i.currentTarget.closest("form")?.querySelector("[data-card-selector-storage-key-value]")?.dataset.cardSelectorStorageKeyValue;this.#G(r,"name",i.currentTarget.value)}openPicker(i){let s=i.currentTarget.dataset.picker,r=this.#T(s);r&&(this.openPickerAttribute=s,this.pickerSnapshot=this.#S(r),r.classList.remove("hidden"))}cancelPicker(i){i.preventDefault();let s=this.#T(this.openPickerAttribute);s&&(this.#w(s,this.pickerSnapshot),this.#y(s))}savePicker(i){i.preventDefault();let s=this.#T(this.openPickerAttribute);if(s){if(this.#S(s).length===0){this.#w(s,this.pickerSnapshot),this.#y(s);return}this.#I(this.openPickerAttribute,s),this.#C(this.openPickerAttribute,s),this.#y(s)}}#r(i,s){return i==="male_to_female_trans"?"trans_realistic":s==="anime"?"female_anime":"female_realistic"}#a(i=this.activeVariant){return this.variantContainerTargets.find(s=>s.dataset.variant===i)}#n(){return this.variantFormTargets.find(i=>i.dataset.variant===this.activeVariant)}#o(){return this.#n()?.querySelector("[data-card-selector-storage-key-value]")?.dataset.cardSelectorStorageKeyValue}#l(){return["ethnicity_age","hair_combo","body_breast","name_only","summary"]}#h(){this.dispatch("stepCompleted",{detail:{stepName:this.#u()}})}#c(){return this.#l().indexOf("name_only")+1}#u(){return this.#l()[this.stepIndex-1]}#g(){let i=this.#u();return this.stepPanelTargets.find(s=>s.dataset.variant===this.activeVariant&&s.dataset.stepKey===i)}#d(){this.stepIndex=0,this.activeVariant=null,this.dispatch("stepViewed",{detail:{stepName:"style"}}),this.styleStepTarget.classList.remove("hidden"),this.variantContainerTargets.forEach(i=>{i.classList.add("hidden"),i.classList.remove("flex")}),this.#x()}#m(i){this.stepIndex=i,this.dispatch("stepViewed",{detail:{stepName:this.#u()}}),this.styleStepTarget.classList.add("hidden"),this.variantContainerTargets.forEach(r=>{let a=r.dataset.variant===this.activeVariant;r.classList.toggle("hidden",!a),r.classList.toggle("flex",a)});let s=this.#u();this.stepPanelTargets.forEach(r=>{let a=r.dataset.variant===this.activeVariant&&r.dataset.stepKey===s;r.classList.toggle("hidden",!a)}),this.#q(),this.#f(),this.#P(),this.nextFooterTargets.forEach(r=>{r.classList.toggle("hidden",r.closest("form")===this.#n()&&s==="summary")}),this.stepsScrollerTargets.forEach(r=>{let a=r.closest("form")===this.#n()&&s==="summary";r.classList.toggle("!max-h-[calc(100dvh-60px)]",a),r.classList.toggle("md:!pb-6",a)}),this.summaryBgVideoTargets.forEach(r=>{r.closest("form")===this.#n()&&s==="summary"?r.play().catch(()=>{}):r.pause()}),window.dispatchEvent(new CustomEvent("new4:step-shown")),this.stepsScrollerTargets.forEach(r=>{r.scrollTop=0}),window.scrollTo({top:0}),this.#x()}#f(){let i=this.#c(),s=Math.min(Math.max(this.stepIndex,1),i),r=Math.round(s/i*100);this.progressBarTargets.forEach(a=>a.setAttribute("aria-valuenow",s)),this.progressFillTargets.forEach(a=>{a.style.width=`${r}%`})}#p(){this.element.querySelectorAll('[data-card-selector-target="card"][data-selected="true"]').forEach(s=>{let r=s.getAttribute("for"),a=r?document.getElementById(r):s.querySelector('input[type="radio"]');a&&a.type==="radio"&&!a.checked&&(a.checked=!0)})}#b(){if(this.stepIndex===0)return;let i=this.#g();if(!i)return;let s=Array.from(i.querySelectorAll('input.required[type="radio"]:not(:disabled)')),r=new Map;s.forEach(a=>{r.has(a.name)||r.set(a.name,[]),r.get(a.name).push(a)}),r.forEach(a=>{if(a.some(l=>l.checked))return;let n=a[Math.floor(Math.random()*a.length)];this.#v(n)})}#v(i){let s=this.#n()?.querySelector(`label[for="${i.id}"]`);s?s.click():i.checked=!0}#T(i){return i?this.pickerModalTargets.find(s=>s.dataset.attribute===i&&s.closest("form")===this.#n()):null}#y(i){i.classList.add("hidden"),this.openPickerAttribute=null,this.pickerSnapshot=[]}#S(i){return Array.from(i.querySelectorAll("input:checked")).map(s=>s.id)}#w(i,s){Array.from(i.querySelectorAll('input[type="radio"], input[type="checkbox"]')).forEac
177h(a=>{let n=s.includes(a.id);a.checked!==n&&(a.type==="checkbox"?this.#L(i,a,n):n&&this.#L(i,a,!0))})}#L(i,s,r){let a=i.querySelector(`label[for="${s.id}"]`);a?a.click():s.checked=r}#I(i,s){let r=Array.from(s.querySelectorAll("input:checked"));if(r.length===0)return;let a=r[0].dataset.optionLabel||r[0].value;i==="kinks"&&r.length>1&&(a=`${a} +${r.length-1} ${this.kinksMoreLabelValue}`.trim()),this.cardValueTargets.filter(n=>n.dataset.attribute===i&&n.closest("form")===this.#n()).forEach(n=>{n.textContent=a})}#C(i,s){let r=Array.from(s.querySelectorAll("input:checked"));if(r.length===0)return;let a=i==="kinks"?r.map(n=>n.value):r[0].value;this.#G(this.#o(),i,a)}#E(){let i;try{i=JSON.parse(sessionStorage.getItem(this.STATE_STORAGE_KEY))}catch{i=null}i&&(i.preferredVariant||"")!==this.preferredVariantValue&&(sessionStorage.removeItem(this.STATE_STORAGE_KEY),i=null),!(!i?.variant||!i?.stepIndex)&&this.#a(i.variant)&&(this.activeVariant=i.variant,this.#k(i.variant),this.#m(Math.min(Math.max(i.stepIndex,1),this.#c())))}#k(i){let s=i==="trans_realistic"?"male_to_female_trans":"female",r=i==="female_anime"?"anime":"realistic";this.#e(s);let a=this.genderPanelTargets.find(d=>d.dataset.gender===s),n=a?.querySelector(`input[type="radio"][value="${r}"]:not(:disabled)`),l=n?.closest('[data-create-flow-target="option"]');l&&(a.querySelectorAll('[data-create-flow-target="option"]').forEach(d=>d.classList.remove("selected")),l.classList.add("selected"),n.checked=!0)}
177#x(){try{sessionStorage.setItem(this.STATE_STORAGE_KEY,JSON.stringify({variant:this.activeVariant,stepIndex:this.stepIndex,preferredVariant:this.preferredVariantValue}))}catch{}}#A(){this.variantFormTargets.forEach(i=>{let s=i.querySelector("[data-card-selector-storage-key-value]")?.dataset.cardSelectorStorageKeyValue,r=this.nameInputTargets.find(n=>n.closest("form")===i);if(!s||!r)return;let a=this.#Q(s,"name");typeof a=="string"&&(r.value=a,r.dispatchEvent(new Event("input",{bubbles:!0})))})}#B(){this.variantFormTargets.forEach(i=>{let s=i.querySelector("[data-card-selector-storage-key-value]")?.dataset.cardSelectorStorageKeyValue;s&&this.PICKER_ATTRIBUTES.forEach(r=>{let a=this.pickerModalTargets.find(v=>v.dataset.attribute===r&&v.closest("form")===i);if(!a)return;let n=this.#Q(s,r);if(n==null)return;let l=Array.isArray(n)?n:[n],m=Array.from(a.querySelectorAll('input[type="radio"], input[type="checkbox"]')).filter(v=>l.includes(v.value)).map(v=>v.id);m.length!==0&&(this.#w(a,m),this.#_(r,a,i))})})}#_(i,s,r){let a=Array.from(s.querySelectorAll("input:checked"));if(a.length===0)return;let n=a[0].dataset.optionLabel||a[0].value;i==="kinks"&&a.length>1&&(n=`${n} +${a.length-1} ${this.kinksMoreLabelValue}`.trim()),this.cardValueTargets.filter(l=>l.dataset.attribute===i&&l.closest("form")===r).forEach(l=>{l.textContent=n})}#P(){let i=this.#n();if(!i)return;let s=i.querySelector('input[name="profile[ethnicity]"]:checked')?.value;if(!s)return;let r=this.#N(s);i.querySelectorAll("[data-new4-variants]").forEach(a=>{let n;try{n=JSON.parse(a.dataset.new4Variants)}catch{return}let l=this.#O(a),d=n[r]||l;if(!d)return;let m=a.querySelector(".radio-button-card__content");m&&d.image&&(m.style.backgroundImage=`url('${d.image}')`);let v=a.querySelector("video");if(v&&d.video&&v.dataset.src!==d.video){v.dataset.src=d.video;let E=v.querySelector("source");if(E?.getAttribute("src")){let D=!v.paused;E.src=d.video,v.load(),D&&v.play().catch(()=>{})}}})}#O(i){if(!i.dataset.new4DefaultMedia){let r=i.querySelector(".radio-button-card__content")?.style.backgroundImage?.match(/url\(["']?(.*?)["']?\)/);i.dataset.new4DefaultMedia=JSON.stringify({image:r?r[1]:null,video:i.querySelector("video")?.dataset.src||null})}try{return JSON.parse(i.dataset.new4DefaultMedia)}catch{return null}}#N(i){return i.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")}#$(i){let s=this.#n();if(!s)return;let r=this.summaryCtaTargets.find(n=>n.closest("form")===s);r&&(r.dataset.redirectUrl=i.signup_url);let a=this.stepPanelTargets.find(n=>n.dataset.variant===this.activeVariant&&n.dataset.stepKey==="summary");a&&a.classList.toggle("new4-instant",!!this.returningToSummary),this.returningToSummary=!1,this.#P(),this.#D(s),this.#m(this.#l().indexOf("summary")+1),clearTimeout(this.summaryModalTimer),this.summaryModalTimer=setTimeout(()=>{this.#u()==="summary"&&!this.summaryModalOpened&&r&&(this.summaryModalOpened=!0,r.click())},5200)}#D(i){let s=i.querySelector('input[name="profile[age]"]')?.value||"";this.summaryTileTargets.filter(r=>r.closest("form")===i).forEach(r=>this.#M(r,i,s))}summaryTileClicked(i){if(this.submitting)return;let s=i.currentTarget.dataset.attribute;if(!s||s==="clothing")return;this.returningToSummary=!0,clearTimeout(this.summaryModalTimer);let a={ethnicity:"ethnicity_age",age:"name_only",eyes_color:"hair_combo",hair_style:"hair_combo",hair_color:"hair_combo",body:"body_breast",breast_size:"body_breast",personality:"name_only",relationship:"name_only",occupation:"name_only",voice_name:"name_only"}[s],n=this.#l().indexOf(a);if(n!==-1&&(this.#m(n+1),this.PICKER_ATTRIBUTES.includes(s))){let l=this.#T(s);l&&(this.openPickerAttribute=s,this.pickerSnapshot=this.#S(l),l.classList.remove("hidden"))}}#M(i,s,r){let a=i.dataset.attribute,n=i.querySelector("[data-summary-value]");if(!n)return;if(a==="age"){let W=i.dataset.ageDisplay||"__AGE__";n.textContent=r?W.replace("__AGE__",r):"";return}if(a==="clothing")return;if(["personality","relationship","occupation","voice_name"].includes(a)){let W=this.cardValueTargets.find(Q=>Q.dataset.attribute===a&&Q.closest("form")===s);W&&(n.textContent=W.textContent.trim());return}let d=s.querySelector(`[data-card-selector-value-key-value="${a}"]`)?.querySelector('[data-card-selector-target="card"][data-selected="true"]');if(!d){let W=s.querySelector(`input[name="profile[${a}]"]:checked`);W&&(n.textContent=W.value);return}let m=d.querySelector(".radio-button-card__label")?.textContent?.trim(),v=s.querySelector(`input[name="profile[${a}]"]:checked`);n.textContent=m||v?.value||"";let D=d.querySelector(".radio-button-card__content")?.style.backgroundImage?.match(/url\(["']?(.*?)["']?\)/),R=i.querySelector("[data-summary-thumb]");R&&D&&(R.style.backgroundImage=`url('${D[1]}')`)}async#V(){let i=this.#n();if(!(!i||this.submitting)){this.submitting=!0,this.#W(!0),this.#q();try{let s=await H(this.createUrlValue,{body:{profile:this.#R(i)},responseKind:"json"});if(s.ok){let r=await s.json;r.summary==="inline"&&r.signup_url?this.#$(r):(this.#te(),this.redirecting=!0,window.location.href=r.redirect_url||this.fallbackUrlValue);return}await this.#F(s)}catch{this.#U(null)}finally{this.redirecting||(this.submitting=!1,this.#W(!1))}}}#R(i){let s=new FormData(i),r={};
177return s.forEach((a,n)=>{let l=n.match(/^profile\[(\w+)\](\[\])?$/);if(!l)return;let d=l[1];l[2]?(r[d]=r[d]||[],a&&r[d].push(a)):r[d]=a}),r}async#F(i){let s;try{s=await i.json}catch{s=null}let r=s?.errors||{};if(r.name){this.activeVariant&&this.#m(this.#c()),this.#j(r.name);return}this.#U(Object.values(r).flat().join(", "))}#j(i){let s=this.#n();this.nameErrorTargets.filter(r=>r.closest("form")===s).forEach(r=>{r.textContent=[i].flat().join(", ")}),this.nameInputTargets.filter(r=>r.closest("form")===s).forEach(r=>r.classList.add("outline","outline-1","outline-offset-[-1px]","outline-red-700"))}#U(i){let s=this.#n();this.errorBannerTargets.filter(r=>r.closest("form")===s).forEach(r=>{r.textContent=i||r.dataset.genericError,r.classList.remove("hidden")})}#q(){this.errorBannerTargets.forEach(i=>i.classList.add("hidden"))}#W(i){this.nextButtonTargets.forEach(s=>{s.classList.toggle("opacity-50",i),s.classList.toggle("pointer-events-none",i);let r=s.querySelector(".arrow-right");r&&r.classList.toggle("hidden",i);let a=s.querySelector(".loading-submit-white");if(i&&!a){let n=document.createElement("div");n.className="loading-submit-white",s.appendChild(n)}else!i&&a&&a.remove()})}#G(i,s,r){if(i)try{let a=JSON.parse(localStorage.getItem(i)||"{}");a[s]={value:r},localStorage.setItem(i,JSON.stringify(a))}catch{}}#Z(i,s){if(i)try{let r=JSON.parse(localStorage.getItem(i)||"{}");delete r[s],localStorage.setItem(i,JSON.stringify(r))}catch{}}#Q(i,s){try{return JSON.parse(localStorage.getItem(i)||"{}")[s]?.value}catch{return}}
177#te(){try{sessionStorage.removeItem(this.STATE_STORAGE_KEY),this.variantFormTargets.forEach(i=>{let s=i.querySelector("[data-card-selector-storage-key-value]")?.dataset.cardSelectorStorageKeyValue;s&&localStorage.removeItem(s)})}catch{}}};function Is(i,s){let r=QC(s);try{return navigator.sendBeacon(i,r)}catch{return!1}}function XC(i,s){return Is(i,s)?!0:(fetch(i,{method:"POST",body:QC(s),keepalive:!0,credentials:"same-origin"}).catch(()=>{}),!1)}function QC(i){let s=new FormData;return Object.entries(i).forEach(([r,a])=>s.append(r,a)),s.append("authenticity_token",document.querySelector("meta[name='csrf-token']")?.content??""),s}var $u=class extends u{static values={url:String,enabled:Boolean,step:String};connect(){this.currentStep=this.stepValue||"",this.signupWallViewed=this.signupWallViewed.bind(this),document.addEventListener("show-registration-modal",this.signupWallViewed),this.currentStep&&this.#e("step_viewed",this.currentStep)}disconnect(){document.removeEventListener("show-registration-modal",this.signupWallViewed)}stepViewed(i){let s=i?.detail?.stepName||this.stepValue;s&&(this.currentStep=s,this.#e("step_viewed",s))}stepCompleted(i){this.#e("step_completed",i?.detail?.stepName||this.currentStep)}signupWallViewed(){this.#e("signup_wall_viewed",this.currentStep)}#e(i,s){!this.enabledValue||!this.hasUrlValue||!s||Is(this.urlValue,{event:i,step_name:s})}};var Gu=class extends u{static targets=["track","item"];connect(){this.scrollTimer=null,this.originalCount=this.itemTargets.length,requestAnimationFrame(()=>this.recenter())}disconnect(){clearTimeout(this.scrollTimer)}recenter(){if(!this.element.offsetParent||this.itemTargets.length===0)return;this._buildLoop();let i=this._selectedValue(),s=Math.floor(this.itemTargets.length/this.originalCount/2)*this.originalCount,r=Math.max(this._valueIndex(i),0),a=this.itemTargets[s+r]||this.itemTargets[0];this._centerItem(a,"instant"),this._markSelected(a)}cardClicked(i){i.preventDefault();let s=i.currentTarget.closest('[data-characters-v2--new4-carousel-target="item"]');s&&(this._selectItem(s),this._centerItem(s,"smooth"))}onScroll(){clearTimeout(this.scrollTimer),this.scrollTimer=setTimeout(()=>{this._teleportIfNeeded();let i=this._nearestItem();i&&this._selectItem(i)},90)}_buildLoop(){if(!this.hasTrackTarget||this.originalCount===0||this.trackTarget.dataset.looped==="true")return;let i=[...this.itemTargets],s=this.trackTarget.clientWidth||window.innerWidth,r=this._setWidth()||1,n=Math.max(3,Math.ceil(s*3/r))-1,l=Math.ceil(n/2),d=n-l,m=()=>i.map(v=>{let E=v.cloneNode(!0);return E.dataset.clone="true",E.querySelectorAll("input").forEach(D=>D.remove()),E});for(let v=0;v<l;v+=1)m().reverse().forEach(E=>this.trackTarget.prepend(E));for(let v=0;v<d;v+=1)m().forEach(E=>this.trackTarget.append(E));this.trackTarget.dataset.looped="true"}_setWidth(){if(this.itemTargets.length<=this.originalCount){let i=this.itemTargets[0],s=this.itemTargets[this.originalCount-1];if(!i||!s)return 0;let r=parseFloat(window.getComputedStyle(this.trackTarget).columnGap||"0")||0;return s.offsetLeft+s.clientWidth+r-i.offsetLeft}return this.itemTargets[this.originalCount].offsetLeft-this.itemTargets[0].offsetLeft}_teleportIfNeeded(){let i=this._setWidth();if(i<=0)return;let s=this.trackTarget,r=s.scrollWidth-s.clientWidth;s.scrollLeft<i*.5?s.scrollLeft+=i:s.scrollLeft>r-i*.5&&(s.scrollLeft-=i)}_selectItem(i){let s=i.dataset.optionValue;if(!s)return;let r=this.element.querySelector(`input[type="radio"][value="${window.CSS.escape(s)}"]`);r&&!r.checked&&(r.checked=!0,this._persistSelection(s)),this._markSelected(i)}_markSelected(i){this.itemTargets.forEach(s=>{let r=s===i,a=s.querySelector('[data-card-selector-target="card"]');a&&(a.dataset.selected=r?"true":"false"),s.classList.toggle("scale-[1.2]",r),s.classList.toggle("z-10",r),this._toggleVideo(s,r)})}_toggleVideo(i,s){let r=i.querySelector('[data-controller~="video-autoplay"]');if(!r)return;let a=this.application.getControllerForElementAndIdentifier(r,"video-autoplay");a&&(a.isSelected=s,s?(a.loadVideo(a.videoTarget),a.playVideoWhenReady?.(a.videoTarget,"selection")):a.stopPlayingVideo?.())}_persistSelection(i){let s=this.element.dataset.cardSelectorStorageKeyValue,r=this.element.dataset.cardSelectorValueKeyValue;if(!(!s||!r))try{let a=JSON.parse(localStorage.getItem(s)||"{}");a[r]={value:i},localStorage.setItem(s,JSON.stringify(a))}catch{}}_selectedValue(){return this.element.querySelector('input[type="radio"]:checked')?.value}_valueIndex(i){return i?[...this.itemTargets].slice(0,this.originalCount).findIndex(s=>s.dataset.optionValue===i):-1}_nearestItem(){if(!this.hasTrackTarget)return null;let i=this.trackTarget.scrollLeft+this.trackTarget.clientWidth/2;return this.itemTargets.reduce((s,r)=>{let a=r.offsetLeft+r.clientWidth/2;if(!s)return r;let n=s.offsetLeft+s.clientWidth/2;return Math.abs(a-i)<Math.abs(n-i)?r:s},null)}_centerItem(i,s){!i||!this.hasTrackTarget||this.trackTarget.scrollTo({left:i.offsetLeft+i.clientWidth/2-this.trackTarget.clientWidth/2,behavior:s})}};var Wu=class extends u{static targets=["track","item","input"];static values={storageKey:String};connect(){this.scrollTimer=null,this._restoreFromStorage(),requestAnimationFrame(()=>this.recenter())}disconnect(){clearTimeout(this.scrollTimer)}recenter(){if(!this.element.offsetParent)return;let i=this._itemForAge(this.inputTarget.value)||this.itemTargets[0];this._centerItem(i,"instant"),this._applyStyles(i)}numberClicked(i){let s=i.currentTarget;this._setAge(s.dataset.age),this._applyStyles(s),this._centerItem(s,"smooth")}onScroll(){clearTimeout(this.scrollTimer),this.scrollTimer=setTimeout(()=>{let i=this._nearestItem();i&&(this._setAge(i.dataset.age),this._applyStyles(i))},90)}_setAge(i){if(!(!i||this.inputTarget.value===i)&&(this.inputTarget.value=i,this.hasStorageKeyValue&&this.storageKeyValue))try{let s=JSON.parse(localStorage.getItem(this.storageKeyValue)||"{}");s.age={value:i},localStorage.setItem(this.storageKeyValue,JSON.stringify(s))}catch{}}_restoreFromStorage(){if(!(!this.hasStorageKeyValue||!this.storageKeyValue))try{let s=JSON.parse(localStorage.getItem(this.storageKeyValue)||"{}").age?.value;s&&this._itemForAge(s)&&(this.inputTarget.value=s)}catch{}}_applyStyles(i){let s=this.itemTargets.indexOf(i);
177this.itemTargets.forEach((r,a)=>{let n=Math.abs(a-s);r.classList.remove("text-[26px]","text-white","font-bold","text-lg","text-grey-default","text-sm","opacity-50"),n===0?r.classList.add("text-[26px]","text-white","font-bold"):n<=2?r.classList.add("text-lg","text-grey-default"):r.classList.add("text-sm","text-grey-default","opacity-50")})}_itemForAge(i){return this.itemTargets.find(s=>s.dataset.age===String(i))}_nearestItem(){if(!this.hasTrackTarget)return null;let i=this.trackTarget.scrollLeft+this.trackTarget.clientWidth/2;return this.itemTargets.reduce((s,r)=>{let a=r.offsetLeft+r.clientWidth/2;if(!s)return r;let n=s.offsetLeft+s.clientWidth/2;return Math.abs(a-i)<Math.abs(n-i)?r:s},null)}_centerItem(i,s){!i||!this.hasTrackTarget||this.trackTarget.scrollTo({left:i.offsetLeft+i.clientWidth/2-this.trackTarget.clientWidth/2,behavior:s})}};var NV=2e3,ju=class extends u{static values={checkUrl:String,redirectUrl:String,pollInterval:{type:Number,default:6e4},maxAttempts:{type:Number,default:61}};connect(){this.attemptCount=0,this.#i()}disconnect(){this.#t()}#e(){this.pollTimeout=setTimeout(()=>{this.#i()},this.pollIntervalValue)}#t(){this.pollTimeout&&(clearTimeout(this.pollTimeout),this.pollTimeout=null)}async#i(){if(this.attemptCount+=1,!(this.attemptCount>this.maxAttemptsValue)){try{let i=await Ee(this.checkUrlValue,{responseKind:"json"});if(i.ok){let s=await i.json;if(s.ready){this.#t();let r=this.#s(s.redirect_url||this.redirectUrlValue);Turbo.visit(r,{action:"replace"});return}if(s.failed&&s.redirect_url){this.#t();let r=this.#s(s.redirect_url);setTimeout(()=>{Turbo.visit(r,{action:"replace"})},NV);return}}}catch(i){console.error("Character status check failed:",i)}this.#e()}}#s(i){let s=window.location.search.slice(1);return s?i.includes("?")?`${i}&${s}`:`${i}?${s}`:i}};var JC=["ring-[3px]","lg:ring-[3.5px]","ring-primary"],Ku=class extends u{static targets=["tile","regenerateButton"];static values={requestUrl:String,maxRegenerations:Number,bringToLifeFormId:String,candidateInputName:String,mainPfpId:String,blurPfpId:String,modalPfpId:String};connect(){this.#e()}selectTile(i){let s=i.currentTarget;s.dataset.tileSelectable==="true"&&this.#t(s)}tileTargetConnected(i){i.dataset.tileKind==="candidate"&&i.dataset.tileSelectable==="true"&&this.#t(i)}async requestCandidate(i){if(i?.preventDefault(),!!this.hasRegenerateButtonTarget&&!this.regenerateButtonTarget.disabled){this.regenerateButtonTarget.setAttribute("disabled","disabled");try{(await H(this.requestUrlValue,{responseKind:"turbo-stream"})).ok||this.regenerateButtonTarget.removeAttribute("disabled")}catch(s){this.regenerateButtonTarget.removeAttribute("disabled"),console.error("Error requesting face regeneration candidate",s)}}}#e(){let i=this.#s(),s=null;i&&(s=this.tileTargets.find(r=>(r.dataset.tileCandidateId||"")===i&&r.dataset.tileSelectable==="true")),s||(s=this.tileTargets.find(r=>r.dataset.tileKind==="original")),s&&this.#t(s)}#t(i){this.#i(i),this.#r(i.dataset.tileCandidateId||""),this.#n(i)}#i(i){this.tileTargets.forEach(s=>s.classList.remove(...JC)),i.classList.add(...JC)}#s(){return this.#a()?.value||""}#r(i){let s=this.#a();s&&(s.value=i)}#a(){if(!this.hasBringToLifeFormIdValue||!this.hasCandidateInputNameValue)return null;let i=document.getElementById(this.bringToLifeFormIdValue);return i?i.querySelector(`input[name="${this.candidateInputNameValue}"]`):null}#n(i){let s=i.querySelector("img");if(!(!s||!s.src)){if(this.hasMainPfpIdValue){let r=document.getElementById(this.mainPfpIdValue);r&&(r.src=s.src)}if(this.hasBlurPfpIdValue){let r=document.getElementById(this.blurPfpIdValue);r&&(r.src=s.src)}if(this.hasModalPfpIdValue){let r=document.getElementById(this.modalPfpIdValue);r&&(r.src=s.src)}}}};var zu=class extends u{static targets=["input","errorText"];static values={gender:String,charLimit:Number,firstNameOnly:Boolean,autoGenerated:Boolean};static maleNames=["James","John","Robert","Michael","William","David","Richard","Charles","Joseph","Thomas","Christopher","Daniel","Paul","Mark","Donald","George","Kenneth","Steven","Edward","Brian","Ronald","Anthony","Kevin","Jason","Matthew","Gary","Timothy","Jose","Larry","Jeffrey","Frank","Scott","Eric","Stephen","Andrew","Raymond","Gregory","Joshua","Jerry","Dennis","Walter","Patrick","Peter","Harold","Douglas","Henry","Carl","Arthur","Ryan","Roger"];static femaleNames=["Mary","Patricia","Jennifer","Linda","Elizabeth","Barbara","Susan","Jessica","Sarah","Karen","Nancy","Lisa","Betty","Helen","Sandra","Donna","Carol","Ruth","Sharon","Michelle","Laura","Kimberly","Deborah","Dorothy","Amanda","Ashley","Brenda","Catherine","Christine","Diane","Emily","Emma","Grace","Hannah","Heather","Janet","Joyce","Julia","Katherine","Kelly","Megan","Nicole","Pamela","Rachel","Rebecca","Samantha","Stephanie","Teresa","Virginia","Wendy"];static lastNames=["Smith","Johnson","Williams","Brown","Jones","Garcia","Miller","Davis","Rodriguez","Martinez","Hernandez","Lopez","Gonzalez","Wilson","Anderson","Thomas","Taylor","Moore","Jackson","Martin","
177Lee","Perez","Thompson","White","Harris","Sanchez","Clark","Ramirez","Lewis","Robinson","Walker","Young","Allen","King","Wright","Scott","Torres","Nguyen","Hill","Flores","Green","Adams","Nelson","Baker","Hall","Rivera","Campbell","Mitchell","Carter","Roberts"];connect(){this.lastGeneratedValue=this.autoGeneratedValue?this.inputTarget.value:null,this.inputTarget.value.trim()===""&&this.generateRandomName()}updateGender(i){this.genderValue=i.target.value,this.#e()&&this.generateRandomName()}#e(){let i=this.inputTarget.value.trim();return i===""||i===this.lastGeneratedValue}generateRandomName(i=null){i&&i.preventDefault();let s=this.genderValue==="male"?this.#t(this.constructor.maleNames):this.#t(this.constructor.femaleNames),r=s;if(!this.firstNameOnlyValue){let a=this.#t(this.constructor.lastNames);r=`${s} ${a}`}this.hasCharLimitValue&&r.length>this.charLimitValue&&(r=r.substring(0,this.charLimitValue)),this.inputTarget.value=r,this.lastGeneratedValue=r,this.inputTarget.dispatchEvent(new Event("input",{bubbles:!0})),this.hasErrorTextTarget&&(this.inputTarget.classList.remove("outline","outline-1","outline-offset-[-1px]","outline-red-700"),this.inputTarget.classList.add("slider-primary","!outline-none","!focus:outline-none","!border-none","!border-0"),this.errorTextTarget.innerText="")}#t(i){return i[Math.floor(Math.random()*i.length)]}};var Yu=class extends u{connect(){console.log("Subscription intent controller connected"),this.#t("Page View")}static values={planId:String,redirectUrl:String};storeIntent(i){i.preventDefault();let s=i.currentTarget.closest("dialog");s&&s.open&&s.close();let r=this.application.getControllerForElementAndIdentifier(document.querySelector("#subscription-controller"),"subscription"),a=this.planIdValue||i.currentTarget.dataset.planId;if(!a&&r){let d=r.getCurrentPlan();a={yearly:"premium-yearly",quarterly:"premium-quarterly",monthly:"premium-monthly"}[d]||"premium-yearly"}if(!a){console.error("Plan ID is required to store subscription intent");return}let n=this.redirectUrlValue.replace("PLAN_ID",a),l=this.#e();if(l)try{let d=n.startsWith("http")?new URL(n):new URL(n,window.location.origin);d.searchParams.set("visitor_cro_token",l),n=n.startsWith("http")?d.toString():d.pathname+d.search+d.hash}catch{let d=n.includes("?")?"&":"?";n=`${n}${d}visitor_cro_token=${l}`}this.openAuthModal(n)}openAuthModal(i){let s=this.application.getControllerForElementAndIdentifier(document.querySelector("[data-controller~='main']"),"main");if(s){let r={preventDefault:()=>{},currentTarget:{dataset:{redirectUrl:i}}};s.openRegistrationModal(r)}}#e(){try{return localStorage.getItem("visitor_cro_token")}catch{return null}}#t(i){typeof window.mixpanel<"u"&&window.mixpanel.track&&window.mixpanel.track(i,{url:window.location.href,Product:"Subscription","Page Name":"Subscription Page",user_type:"Guest"})}};var Xu=class extends u{static targets=["hintText","errorText","input"];static classes=["error","normal"];static values={error:Boolean,storageKey:String,attribute:String,formId:String};connect(){this.hasErrorValue&&this.errorValue&&this.hasInputTarget&&(this.#e()?this.#t(!1):this.#t(!0))}checkError(){this.hasInputTarget&&this.#t(!1)}validate(i){this.hasInputTarget&&(this.hasFormIdValue&&i.target.id!==this.formIdValue||this.inputTarget.value.trim()===""&&(i.preventDefault(),i.stopPropagation(),this.#t(!0)))}#e(){if(!this.hasStorageKeyValue||!this.hasAttributeValue)return!1;let i=Vt(this.storageKeyValue);return i?i[this.attributeValue]!==void 0:!1}#t(i){this.#i(i),this.#s(i),this.#r(i)}#i(i){this.hasErrorTextTarget&&(i?this.errorTextTarget.classList.remove("hidden"):this.errorTextTarget.classList.add("hidden"))}#s(i){this.hasHintTextTarget&&(i?this.hintTextTarget.classList.add("hidden"):this.hintTextTarget.classList.remove("hidden"))}#r(i){this.hasInputTarget&&(i?(this.inputTarget.classList.remove(...this.normalClasses),this.inputTarget.classList.add(...this.errorClasses)):(this.inputTarget.classList.remove(...this.errorClasses),this.inputTarget.classList.add(...this.normalClasses)))}};var Qu=class extends u{static targets=["checkbox","container","configRow","destroyField","template"];static values={configIndex:Number};connect(){this.hasConfigIndexValue||(this.configIndexValue=this.nextIndexFromDom()),this.checkboxTarget.checked&&this.activeConfigRows().length===0&&this.addConfiguration()}toggle(i){i.target.checked?(this.containerTarget.classList.remove("hidden"),this.restoreMarkedRows(),this.activeConfigRows().length===0&&this.addConfiguration()):(this.containerTarget.classList.add("hidden"),this.markAllRowsForRemoval())}addConfiguration(i){i&&i.preventDefault();let s=this.configurationsContainer();if(!s)return;let r=this.templateTarget;if(!r)return;let a=this.nextConfigIndex(),n=r.content.cloneNode(!0);n.querySelectorAll("input, select").forEach(d=>{d.name&&(d.name=d.name.replace(/__INDEX__/g,a)),d.id&&(d.id=d.id.replace(/__INDEX__/g,a))}),s.appendChild(n)}
177removeConfiguration(i){i.preventDefault();let s=i.currentTarget,r=s.closest("[data-filter-config-target='configRow']");if(!r)return;if(r.dataset.newRecord==="true"){r.remove();return}let a=r.querySelector("[data-filter-config-target='destroyField']");if(!a){r.remove();return}a.value==="1"?(a.value="0",r.classList.remove("hidden"),s.textContent="Remove"):(a.value="1",r.classList.add("hidden"),s.textContent="Undo")}markAllRowsForRemoval(){this.configRowTargets.forEach(i=>{if(i.dataset.newRecord==="true"){i.remove();return}let s=i.querySelector("[data-filter-config-target='destroyField']");if(s){s.value="1";let r=i.querySelector("[data-action='filter-config#removeConfiguration']");r&&(r.textContent="Undo")}else i.remove()})}restoreMarkedRows(){this.configRowTargets.forEach(i=>{let s=i.querySelector("[data-filter-config-target='destroyField']");if(s&&s.value==="1"){s.value="0",i.classList.remove("hidden");let r=i.querySelector("[data-action='filter-config#removeConfiguration']");r&&(r.textContent="Remove")}})}configurationsContainer(){return this.containerTarget.querySelector("#search-tag-new-configurations, [id^='search-tag-'][id$='-configurations']")}nextConfigIndex(){return this.configIndexValue+=1,this.configIndexValue}nextIndexFromDom(){let i=this.configurationsContainer();if(!i)return-1;let s=-1;return i.querySelectorAll("input[name*='[filter_configurations_attributes]'], select[name*='[filter_configurations_attributes]']").forEach(a=>{let l=a.getAttribute("name").match(/\[filter_configurations_attributes\]\[(\d+)\]/);if(l){let d=parseInt(l[1],10);!Number.isNaN(d)&&d>s&&(s=d)}}),s}activeConfigRows(){return this.configRowTargets.filter(i=>{let s=i.querySelector("[data-filter-config-target='destroyField']");return!s||s.value!=="1"})}};var Ju=class extends u{connect(){this.removeRegenerateImageButton()}removeRegenerateImageButton(){let i=document.querySelectorAll(".regenerate-image-button"),s=this.element.querySelector(".regenerate-image-button");i.forEach(r=>{r!==s&&r.remove()})}};var Zu=class extends u{static targets=["saveButton","form"];static values={stepKey:String,stepType:String,storageKey:String,currentValue:String,isModerationField:Boolean};static APPEARANCE_TYPE="appearance";static NAME_TYPE="name";connect(){this.disableSaveButton(),this.currentSelection=null}revertUnpersistedChanges(){if(!this.hasStepKeyValue)return;let i=this._loadEdits();i[this.stepKeyValue]&&(delete i[this.stepKeyValue],this._persistEdits(i),this.disableSaveButton(),this.dispatch("attributeDiscarded",{detail:{step:this.stepKeyValue},bubbles:!0}))}enableSaveButton(){this.hasSaveButtonTarget&&this.saveButtonTarget.removeAttribute("disabled")}disableSaveButton(){this.hasSaveButtonTarget&&this.saveButtonTarget.setAttribute("disabled","disabled")}checkForm(i){i.target.value&&i.target.value.trim()!==""?this.enableSaveButton():this.disableSaveButton()}trackSelection(i){let s=i.detail?.value||i.target.dataset.value||i.target.value,r=i.detail?.backgroundImageUrl,a=i.detail?.valueLabel||i.detail?.value||i.target.value;this.enableSaveButton(),this._isAppearanceAttribute()&&(this.currentSelection={value:s,valueLabel:a,backgroundImageUrl:r})}selectionDeselected(){this._isAppearanceAttribute()&&(this.currentSelection=null)}handleSubmit(i){if(this.isModerationFieldValue){i.preventDefault(),this.dispatch("moderationSubmit");return}if(this._isAppearanceAttribute()){if(i.preventDefault(),this.currentSelection){let s=this.currentValueValue;this.stepKeyValue==="age"&&(s=this.currentValueValue.substring(0,2)),this.currentSelection.valueLabel!==s?(this._saveSelectionToLocalStorage(this.currentSelection.value,this.currentSelection.valueLabel,this.currentSelection.backgroundImageUrl),this.dispatch("attributeUpdated",{detail:{step:this.stepKeyValue,value:this.currentSelection.valueLabel,backgroundImageUrl:this.currentSelection.backgroundImageUrl,isUnpersisted:!0},bubbles:!0})):this.revertUnpersistedChanges()}}else this.dispatch("infoAttributeUpdated");this.hasFormTarget&&this.hasStepKeyValue&&this.stepKeyValue===this.constructor.NAME_TYPE||this.dispatch("closeModal")}_isAppearanceAttribute(){return!this.hasStepKeyValue||!this.hasStepTypeValue?!1:this.stepTypeValue===this.constructor.APPEARANCE_TYPE}_loadEdits(){try{let i=window?.localStorage?.getItem(this.storageKeyValue);return i?JSON.parse(i):{}}
177catch{return console.error("Error loading edits from localStorage"),{}}}_persistEdits(i){try{Object.keys(i).length===0?window?.localStorage?.removeItem(this.storageKeyValue):window?.localStorage?.setItem(this.storageKeyValue,JSON.stringify(i))}catch{console.error("Error persisting edits to localStorage")}}_saveSelectionToLocalStorage(i,s,r){if(i===null||i===""||!this.hasStepKeyValue)return;let a=this._loadEdits();a[this.stepKeyValue]={value:i,backgroundImageUrl:r,valueLabel:s,timestamp:Date.now()},this._persistEdits(a)}_removeSelectionFromLocalStorage(){if(!this.hasStepKeyValue)return;let i=this._loadEdits();delete i[this.stepKeyValue],this._persistEdits(i)}};var eg=class extends u{static targets=["form","saveButton","nameInput","customPillInput","nextButton","unsavedChangesModal"];static outlets=["pill-select"];static values={stepKey:String,characterSlug:String,moderationStorageKey:String,moderationFieldSteps:Object,hasFlaggedFields:Boolean,moderationPosition:Object,moderationQueue:Array};connect(){this.handleBeforeUnload=this.handleBeforeUnload.bind(this),window.addEventListener("beforeunload",this.handleBeforeUnload)}disconnect(){window.removeEventListener("beforeunload",this.handleBeforeUnload)}handleBeforeUnload(){this.hasFlaggedFieldsValue&&as(this.moderationStorageKeyValue)}nameInputTargetConnected(){let s=(Vt(this.moderationStorageKeyValue)||{})[this.stepKeyValue];s&&(this.nameInputTarget.value=s,this.#i(!0))}pillSelectOutletConnected(){let s=(Vt(this.moderationStorageKeyValue)||{})[this.stepKeyValue];s&&(this.pillSelectOutlet.selectPillByValue(s),this.#i(!0))}handleModerationSubmit(){this.#r()}handleCancel(i){if(!this.hasFlaggedFieldsValue){this.dispatch("closeModal");return}this.#e()?(i.preventDefault(),this.#t()):(this.#a(),this.dispatch("closeModal"))}returnToPreviewWithoutSaving(){this.unsavedChangesModalTarget.close(),this.#a(),this.dispatch("closeModal")}#e(){let i=Vt(this.moderationStorageKeyValue)||{};return Object.keys(i).length>0}#t(){this.unsavedChangesModalTarget.showModal()}saveCurrentFieldChanges(i){let s=i.detail?.value||i.target.value;if(this.stepKeyValue==="name"&&this.hasNameInputTarget&&(s=this.nameInputTarget.value),s){let r=Vt(this.moderationStorageKeyValue)||{};r[this.stepKeyValue]=s,Si(this.moderationStorageKeyValue,r),this.#i(!0)}else this.#i(!1)}async navigateToStep(i){let s=i.currentTarget.dataset.stepUrl;if(!s)return;let r=this.hasNextButtonTarget&&i.currentTarget===this.nextButtonTarget;this.stepKeyValue==="name"&&r&&!await this.#n()||Turbo.visit(s,{frame:"edit_attribute_modal"})}disableNextOrSaveButton(){this.#i(!1)}enableNextOrSaveButton(){this.#i(!0)}#i(i){this.hasNextButtonTarget&&this.#s(this.nextButtonTarget,i),this.hasSaveButtonTarget&&this.#s(this.saveButtonTarget,i)}#s(i,s){i.disabled=!s}async#r(){let i=Vt(this.moderationStorageKeyValue)||{},s=new FormData;Object.entries(i).forEach(([r,a])=>{s.append(`profile[${r}]`,a)});try{(await ve(this.formTarget.action,{body:s,responseKind:"turbo-stream"})).ok&&as(this.moderationStorageKeyValue)}catch(r){console.error("Error submitting moderation changes:",r)}finally{this.dispatch("closeModal")}}#a(){as(this.moderationStorageKeyValue)}async#n(){let s=(Vt(this.moderationStorageKeyValue)||{}).name||this.nameInputTarget?.value||"",a=(await H(`/characters_v2/${this.characterSlugValue}/validate_name`,{body:JSON.stringify({name:s}),contentType:"application/json",responseKind:"turbo-stream"})).statusCode===204;if(!a){let n=Vt(this.moderationStorageKeyValue)||{};delete n.name,Object.keys(n).length>0?Si(this.moderationStorageKeyValue,n):as(this.moderationStorageKeyValue)}return a}};var tg=class extends u{static targets=["value","button","unpersistedDot"];static values={stepKey:String,slug:String,attributeValue:String,stepType:String};static AGE_KEY="age";connect(){this._originalBackground=this.element.style.background||this._getDefaultBackground(),this._checkForUnpersistedChanges(),this._checkForOngoingGeneration()}attributeUpdated(i){let{step:s,value:r,backgroundImageUrl:a,isUnpersisted:n}=i.detail;s===this.stepKeyValue&&(n?this._showUnpersistedState(r,a):this._showPersistedState(r))}attributeDiscarded(i){let{step:s}=i.detail;s===this.stepKeyValue&&this._showPersistedState(this.attributeValueValue)}changesUndone(){this._showPersistedState(this.attributeValueValue)}ongoingGeneration(){this._disableButton()}noOngoingGeneration(){this._enableButton()}_checkForOngoingGeneration(){let i=pe("characters-v2--preview-form",this.application);!i||!i.generationOngoing()||this._disableButton()}
177_showUnpersistedState(i,s){if(i===this.attributeValueValue){this._showPersistedState(i);return}this._addSelectedStyling(),this._applyBackgroundImage(s),this._updateValueDisplay(i),this._showUnpersistedDot()}_showPersistedState(i){this._removeSelectedStyling(),this._restoreOriginalBackground(),this._updateValueDisplay(i),this._hideUnpersistedDot()}_addSelectedStyling(){this.element.classList.add("border","border-[#FF9831]")}_removeSelectedStyling(){this.element.classList.remove("border","border-[#FF9831]")}_applyBackgroundImage(i){if(i){let r=`${i.startsWith("url(")?i:`url(${i})`} lightgray 50% / cover no-repeat`;this.element.style.background=this._buildUnpersistedBackground(r)}else this.element.style.background=this._buildUnpersistedBackground()}_buildUnpersistedBackground(i=null){let s=["linear-gradient(0deg, rgba(255, 152, 49, 0.10) 0%, rgba(255, 152, 49, 0.10) 100%)","linear-gradient(0deg, rgba(19, 19, 19, 0.70) 0%, rgba(19, 19, 19, 0.70) 100%)"];return i?s.push(i):s.push(this._getDefaultBackground()),s.join(", ")}_restoreOriginalBackground(){this.element.style.background=this._originalBackground}_updateValueDisplay(i){if(!this.hasValueTarget)return;let s=this._formatDisplayValue(i);this.valueTarget.textContent=s}_formatDisplayValue(i){return this.stepKeyValue===this.constructor.AGE_KEY?i.endsWith("yo")?i:`${i}yo`:i}_checkForUnpersistedChanges(){if(!(!this.hasSlugValue||!this.hasStepKeyValue))try{let i=`character_${this.slugValue}_appearance_edits`,s=window?.localStorage?.getItem(i);if(s){let a=JSON.parse(s)[this.stepKeyValue];a?.valueLabel&&a.valueLabel!==this.attributeValueValue&&this._showUnpersistedState(a.valueLabel,a.backgroundImageUrl)}}catch(i){console.error("Error checking for unpersisted changes:",i)}}_getDefaultBackground(){return"linear-gradient(163deg, #1A1A1A 6.61%, #2A1E21 88.06%)"}_showUnpersistedDot(){this.hasUnpersistedDotTarget&&this.unpersistedDotTarget.classList.remove("hidden")}_hideUnpersistedDot(){this.hasUnpersistedDotTarget&&this.unpersistedDotTarget.classList.add("hidden")}_disableButton(){this.stepTypeValue!=="appearance"||!this.hasButtonTarget||(this.buttonTarget.setAttribute("disabled","disabled"),this.buttonTarget.classList.add("opacity-30","pointer-events-none"),this.buttonTarget.classList.remove("cursor-pointer"))}_enableButton(){this.stepTypeValue!=="appearance"||!this.hasButtonTarget||(this.buttonTarget.removeAttribute("disabled"),this.buttonTarget.classList.remove("opacity-30","pointer-events-none"),this.buttonTarget.classList.add("cursor-pointer"))}};var ig=class extends u{static outlets=["modal-component","dismissible"];static targets=["button","overlay","changeFaceButton","overlayTitle","imageLoaderContainer","regenerateFaceButton","feedbackSection","moderationErrors"];static values={storageKey:String,moderationStorageKey:String,updatePath:String,regenerateFacePath:String,checkTokensToRegenerateFacePath:String};DEBUG=!1;connect(){Mt(this),this._cleanupExpiredEntries(),this.checkForUnpersistedChanges()}checkForUnpersistedChanges(i=null){if(this._hasUnpersistedChanges())this.element.dataset.unpersisted_changes="true",this._disableButton(),this._hideFeedbackSection(),this._showOverlay();else{if(this.element.dataset.unpersisted_changes="false",this._showFeedbackSection(),this._hideOverlay(),i?.target===this.buttonTarget||this.hasButtonTarget&&this.buttonTarget.contains(i?.target))return;this._enableButton()}}moderationErrorsTargetConnected(){this._disableButton()}moderationErrorsTargetDisconnected(){this._canEnableButton()&&this._enableButton()}openUndoModal(i){i.preventDefault(),this.hasModalComponentOutlet&&this.modalComponentOutlet.showModal()}confirmUndoEdits(i){i.preventDefault(),this.hasModalComponentOutlet&&this.modalComponentOutlet.closeModal(),this.clearAllChanges(),this._enableChangeFaceButtons(),this._enableButton()}onChangeFaceSubmit(){try{this._disableChangeFaceButtons(),this._clearLocalStorageChanges(),this.checkForUnpersistedChanges()}catch{console.error("Error clearing changes on face submit")}}clearAllChanges(i=null){this._disableChangeFaceButtons(),this._disableButton();try{this._clearLocalStorageChanges(),this.checkForUnpersistedChanges(i),this.dispatch("changesUndone",{detail:{storageKey:this.storageKeyValue},bubbles:!0})}catch{console.error("Error clearing all changes from localStorage"),this._enableChangeFaceButtons(),this._enableButton()}}_clearLocalStorageChanges(){window?.localStorage?.removeItem(this.storageKeyValue),window?.localStorage?.removeItem(this.moderationStorageKeyValue)}disableButtonAndSubmit(i){i.preventDefault(),this._disableChangeFaceButtons(),this._clearLocalStorageChanges(),this._disableButton(),this.dispatch("disableButtonAndSubmit");let s=i.target.closest("form");s&&s.requestSubmit()}buttonTargetConnected(){this._canEnableButton()||this._disableButton()}imageLoaderContainerTargetConnected(){this.element.dataset.ongoing_generation="true",this._disableButton(),this.dispatch("ongoingGeneration")}imageLoaderContainerTargetDisconnected(){this.element.dataset.ongoing_generation="false",this._enableButton(),this.dispatch("noOngoingGeneration")}generationOngoing(){return this.element.dataset.ongoing_generation==="true"}pendingInfoAttributesUpdate(){this.element.dataset.pending_info_attributes_update="true",this._disableButton()}noPendingInfoAttributesUpdate(){this.element.dataset.pending_info_attributes_update="false",this._enableButton()}infoAttributesConnected(){!this.hasButtonTarget||this._canEnableButton()||this._disableButton()}async submitAppearanceChanges(){if(!this._hasUnpersistedChanges()||!this.hasUpdatePathValue||!this.hasRegenerateFacePathValue||!this.hasCheckTokensToRegenerateFacePathValue)return;this._disableChangeFaceButtons(),this._disableButton();let i=this._getEdits(),s={};
177if(Object.entries(i).forEach(([n,l])=>{s[n]=l.value}),!(await H(this.checkTokensToRegenerateFacePathValue,{responseKind:"turbo-stream"})).ok){this._enableChangeFaceButtons();return}(await this._updateCharacter(s))?.ok&&(this.clearAllChanges(),await this._regenerateFace())}async _updateCharacter(i){try{return await ve(this.updatePathValue,{body:{profile:i},responseKind:"turbo-stream"})}catch(s){return this._logError(`Error updating character ${s}`),null}}async _regenerateFace(){try{return await H(this.regenerateFacePathValue,{body:{regenerate_face:!0},responseKind:"turbo-stream"})}catch(i){return this._logError(`Error regenerating face ${i}`),null}}_enableButton(){!this.hasButtonTarget||!this._canEnableButton()||(this.hasDismissibleOutlet&&this.dismissibleOutlets.forEach(i=>{i.dismiss()}),this.buttonTarget.removeAttribute("disabled"))}_disableButton(){this.hasButtonTarget&&this.buttonTarget.setAttribute("disabled","disabled")}_showOverlay(){this.hasOverlayTarget&&(this.overlayTarget.classList.remove("hidden"),this._updateOverlayTitle(),this.changeFaceButtonTargets.forEach(i=>{i.classList.add("!hidden")}))}_hideOverlay(){this.hasOverlayTarget&&(this.overlayTarget.classList.add("hidden"),this.changeFaceButtonTargets.forEach(i=>{i.classList.remove("!hidden")}))}_hideFeedbackSection(){this.hasFeedbackSectionTarget&&this.feedbackSectionTarget.classList.add("!hidden")}_showFeedbackSection(){this.hasFeedbackSectionTarget&&this.feedbackSectionTarget.classList.remove("!hidden")}_updateOverlayTitle(){if(!this.hasOverlayTitleTarget)return;let i=this._getEdits(),s=Object.keys(i).length,r=s===1?"characters_v2.preview.overlay.title":"characters_v2.preview.overlay.title_plural",a=this.getTranslation(r,{interpolation:{count:s}});this.overlayTitleTarget.textContent=a}_getEdits(){try{let i=window?.localStorage?.getItem(this.storageKeyValue);return i?JSON.parse(i):{}}catch{return console.error("Error loading edits from localStorage"),{}}}_hasUnpersistedChanges(){let i=this._getEdits();return Object.keys(i).length>0}_cleanupExpiredEntries(){try{let i=this._getEdits(),r=Date.now()-2880*60*1e3,a={};for(let[n,l]of Object.entries(i))l.timestamp&&l.timestamp>r&&(a[n]=l);Object.keys(a).length===0?window.localStorage.removeItem(this.storageKeyValue):Object.keys(a).length!==Object.keys(i).length&&window.localStorage.setItem(this.storageKeyValue,JSON.stringify(a))}catch{console.error("Error cleaning up expired entries")}}_logError(i){this.constructor.DEBUG&&console.error(`[${new Date().toISOString()}] [CharactersV2PreviewFormController] ${i}`)}_canEnableButton(){return(!this.element.dataset.ongoing_generation||this.element.dataset.ongoing_generation==="false")&&this.element.dataset.pending_info_attributes_update==="false"&&this.element.dataset.unpersisted_changes==="false"&&!this.hasModerationErrorsTarget}_disableChangeFaceButtons(){this.changeFaceButtonTargets.forEach(i=>{i.setAttribute("disabled","disabled"),i.classList.add("opacity-50","pointer-events-none"),i.classList.remove("cursor-pointer")}),this.hasRegenerateFaceButtonTarget&&this.regenerateFaceButtonTarget.setAttribute("disabled","disabled")}_enableChangeFaceButtons(){this.changeFaceButtonTargets.forEach(i=>{i.removeAttribute("disabled"),i.classList.remove("opacity-50","pointer-events-none"),i.classList.add("cursor-pointer")}),this.hasRegenerateFaceButtonTarget&&this.regenerateFaceButtonTarget.removeAttribute("disabled")}};var sg=class extends u{static targets=["value"];static values={storageKey:String,customFieldsEnabled:Boolean};connect(){this._checkNotPersistedChanges()}attributeUpdated(){let i=localStorage.getItem(this.storageKeyValue),s=i?JSON.parse(i):{},r=JSON.parse(this._targetValues()),a={...s,...r};localStorage.setItem(this.storageKeyValue,JSON.stringify(a))}_checkNotPersistedChanges(){if(this.customFieldsEnabledValue){this.dispatch("noPendingInfoAttributesUpdate",{bubbles:!0});return}let i=JSON.parse(this._targetValues()),s=JSON.parse(localStorage.getItem(this.storageKeyValue));if(!s||!i){this.dispatch("noPendingInfoAttributesUpdate",{bubbles:!0});return}i.occupation!==s.occupation&&i.description===s.description?this.dispatch("pendingInfoAttributesUpdate",{bubbles:!0}):(this._clearOccupationAndDescription(),this.dispatch("noPendingInfoAttributesUpdate",{bubbles:!0}))}_clearOccupationAndDescription(){let i=localStorage.getItem(this.storageKeyValue);if(!i)return;let s=JSON.parse(i);delete s.occupation,delete s.description,Object.keys(s).length===0?localStorage.removeItem(this.storageKeyValue):localStorage.setItem(this.storageKeyValue,JSON.stringify(s))}_targetValues(){let i={};
177return this.valueTargets.forEach(s=>{i[s.dataset.key]=s.dataset.value}),JSON.stringify(i)}};var rg=class extends u{static targets=["form","targetStepField","stepButton","previousButton","nextButton","selectionNotMadeModal","missingSelectionsModal"];navigateToStep(i){let s=i.currentTarget.dataset.step;if(s&&this.hasFormTarget&&this.hasTargetStepFieldTarget){let r=this.targetStepFieldTarget.dataset.currentStep;if(r&&r===s)return;this.targetStepFieldTarget.value=s,this.formTarget.requestSubmit()}}formSubmit(){this._disableButtons()}navigateBack(){this.dispatch("navigateBack"),this._disableButtons()}_disableButtons(){if(!(this.hasSelectionNotMadeModalTarget&&!this.selectionNotMadeModalTarget.classList.contains("hidden")||this.hasMissingSelectionsModalTarget&&!this.missingSelectionsModalTarget.classList.contains("hidden"))){if(this.hasNextButtonTarget){this.nextButtonTarget.classList.add("opacity-50","pointer-events-none"),this.nextButtonTarget.classList.remove("cursor-pointer");let i=this.nextButtonTarget.querySelector(".arrow-right");if(i&&i.classList.add("hidden"),!this.nextButtonTarget.querySelector(".loading-submit-white")){let s=document.createElement("div");s.className="loading-submit-white",this.nextButtonTarget.appendChild(s)}}this.hasPreviousButtonTarget&&(this.previousButtonTarget.classList.add("opacity-50","pointer-events-none"),this.previousButtonTarget.classList.remove("cursor-pointer")),this.stepButtonTargets.forEach(i=>{i.classList.add("opacity-50","pointer-events-none"),i.classList.remove("cursor-pointer")})}}};var ag=class extends u{static targets=["form","selectionNotMadeModal","dontShowAgainCheckbox","missingSelectionsModal"];formSubmit(i){this.hasMissingSelectionsModalTarget?this._showMissingSelectionsModal(i):this.hasSelectionNotMadeModalTarget&&this._showSelectionNotMadeModal(i)}submitRandomValue(i){if(!this.hasFormTarget)return;if(i.preventDefault(),this.hasDontShowAgainCheckboxTarget&&this.dontShowAgainCheckboxTarget.checked&&localStorage.setItem("selection-not-made-dont-show","true"),this.hasSelectionNotMadeModalTarget){let r=this.application.getControllerForElementAndIdentifier(this.selectionNotMadeModalTarget,"modal
177-component");r&&r.closeModal()}if(this.hasMissingSelectionsModalTarget){let r=this.application.getControllerForElementAndIdentifier(this.missingSelectionsModalTarget,"modal-component");r&&r.closeModal()}this._checkRandomInput()&&this.formTarget.requestSubmit()}closeSelectionNotMadeModal(){this.hasDontShowAgainCheckboxTarget&&(this.dontShowAgainCheckboxTarget.checked=!1)}previewAnyway(i){this.hasFormTarget&&(this._valueSelected()?this.formTarget.requestSubmit():this.submitRandomValue(i))}_showMissingSelectionsModal(i){let s=this.application.getControllerForElementAndIdentifier(this.missingSelectionsModalTarget,"modal-component");s&&(i.preventDefault(),s.showModal())}_showSelectionNotMadeModal(i){let s=this._valueSelected();if(s===void 0||s)return;if(i.preventDefault(),localStorage.getItem("selection-not-made-dont-show")==="true"){this.submitRandomValue(i);return}let a=this.application.getControllerForElementAndIdentifier(this.selectionNotMadeModalTarget,"modal-component");a&&a.showModal()}_valueSelected(){let i=new FormData(this.formTarget),s=this._inputsList()[0]?.name;if(!i||!s)return;let r=Object.fromEntries(i);if(!r)return;let a=r[s];return a!==void 0&&a.trim().length>0}_checkRandomInput(){let i=this._inputsList();return i.length===0?null:i[0].type==="radio"?(i[Math.floor(Math.random()*i.length)].checked=!0,!0):i[0].type==="checkbox"?(i.sort(()=>Math.random()-.5).slice(0,Math.min(3,i.length)).forEach(s=>{s.checked=!0}),!0):null}_inputsList(){return Array.from(this.formTarget.querySelectorAll("input.required:not(:disabled)"))}};var ng=class{static show(s){let r=document.getElementById("live-actions-interaction-overlay");r&&r.remove();let a=document.createElement("div");return a.id="live-actions-interaction-overlay",a.style.cssText=`
178      position: fixed;
179      top: 0;
180      left: 0;
181      z-index: 9999;
182      width: 100%;
183      height: 100%;
184      background: rgba(0, 0, 0, 0.8);
185    `,a.innerHTML=`
186      <div style="
187        position: absolute;
188        top: 50%;
189        left: 50%;
190        transform: translate(-50%, -50%);
191        background: rgba(0, 0, 0, 0.8);
192        color: white;
193        padding: 20px;
194        border-radius: 10px;
195        text-align: center;
196        font-size: 16px;
197      ">
198        <div>Tap to start</div>
199      </div>
200    `,document.body.appendChild(a),a.addEventListener("click",()=>{a.remove(),s&&typeof s=="function"&&s()}),a}};var zT=class{constructor(s,r){this.audioTarget=s,this.gainValue=r}setup(){if(!(this.audioContext||!this.audioTarget))try{this.audioContext=new(window.AudioContext||window.webkitAudioContext),this.gainNode=this.audioContext.createGain(),this.source=this.audioContext.createMediaElementSource(this.audioTarget),this.gainNode.gain.value=this.gainValue,this.source.connect(this.gainNode),this.gainNode.connect(this.audioContext.destination)}catch(s){console.warn("AudioGain: Web Audio API not supported, falling back to standard volume",s),this.audioTarget.volume=1}}isActive(){return this.audioContext&&this.audioContext.state==="running"}close(){this.audioContext&&this.audioContext.state!=="closed"&&this.audioContext.close()}mute(){if(!this.isActive())return this.audioTarget.muted=!0;this.gainNode.gain.setValueAtTime(0,this.audioContext.currentTime)}unmute(){if(!this.isActive())return this.audioTarget.muted=!1;this.gainNode.gain.setValueAtTime(this.gainValue,this.audioContext.currentTime)}},ZC=zT;var e0="live_actions_audio_state",nr={muted:"muted",unmuted:"unmuted"},og=class extends u{static targets=["soundIcon","mutedIcon","audio","soundButton"];static values={gain:{type:Number,default:1.2}};connect(){this.hasAudioTarget&&(this.audioGain=new ZC(this.audioTarget,this.gainValue),this.isPlayingAmbientAudio=!1,document.addEventListener("click",this.#e),document.addEventListener("visibilitychange",this.#t),this.#i(),this.#e())}disconnect(){document.removeEventListener("click",this.#e),document.removeEventListener("visibilitychange",this.#t),this.audioGain&&this.audioGain.close()}#e=async(i=null)=>{if([this.soundIconTarget,this.mutedIconTarget].includes(i?.target))return;if(this.isPlayingAmbientAudio)return i||void 0;if(this.#r()===nr.unmuted)try{await this.audioTarget.play(),this.audioGain.setup(),this.isPlayingAmbientAudio=!0,this.unmute()}catch(r){console.warn("error playing audio",r),ng.show(()=>{this.#e()})}};#t=()=>{this.#r()!==nr.muted&&(document.hidden?this.audioGain.mute():this.audioGain.unmute())};#i(){this.#r()===nr.muted&&this.mute()}mute(i=null){i?.stopPropagation(),this.soundIconTarget.classList.add("hidden"),this.mutedIconTarget.classList.remove("hidden"),this.soundButtonTarget.dataset.action="click->
200live-actions--audio#unmute",this.audioGain.mute(),this.#s(nr.muted),this.dispatch("muted",{bubbles:!0})}unmute(i=null){i?.stopPropagation(),this.mutedIconTarget.classList.add("hidden"),this.soundIconTarget.classList.remove("hidden"),this.soundButtonTarget.dataset.action="click->live-actions--audio#mute",this.audioGain.unmute(),this.isPlayingAmbientAudio||(this.audioTarget.play().then(()=>this.audioGain.setup()),this.isPlayingAmbientAudio=!0),this.#s(nr.unmuted),this.dispatch("unmuted",{bubbles:!0})}#s(i){localStorage.setItem(e0,i)}#r(){return localStorage.getItem(e0)||nr.unmuted}};var lg=class extends u{static targets=["content","regenerateButton","prevButton","nextButton","counter","navigation"];static values={url:String,selectUrlTemplate:String,alternatives:Array,currentIndex:Number,maxAlternatives:Number};connect(){this.#a()}async regenerate(i){i.preventDefault(),this.hasRegenerateButtonTarget&&this.regenerateButtonTarget.classList.add("pointer-events-none","opacity-50"),this.#r(),await H(this.urlValue,{responseKind:"turbo-stream"})}previous(i){i.preventDefault(),!(this.currentIndexValue<=0)&&this.#e(this.currentIndexValue-1)}nextOrRegenerate(i){if(i.preventDefault(),this.currentIndexValue>=this.alternativesValue.length-1){if(this.alternativesValue.length>=this.maxAlternativesValue)return;this.#n(),this.#r(),H(this.urlValue,{responseKind:"turbo-stream"})}else this.#e(this.currentIndexValue+1)}#e(i){let s=this.alternativesValue[i];s&&(this.currentIndexValue=i,this.#t(s.body),this.#i(),this.#a(),this.#s(s.id))}#t(i){this.hasContentTarget&&(this.contentTarget.innerHTML=`
201        <div class="flex items-start justify-between">
202          <div class="flex-1">${i}</div>
203        </div>
204      `)}#i(){this.hasCounterTarget&&(this.counterTarget.textContent=`${this.currentIndexValue+1}/${this.maxAlternativesValue}`)}#s(i){let s=this.selectUrlTemplateValue.replace(":id",i);H(s,{responseKind:"json"})}#r(){this.hasContentTarget&&(this.contentTarget.innerHTML=`
205        <div class="snippet py-1 px-2" data-title="dot-flashing">
206          <div class="stage">
207            <div class="dot-flashing"></div>
208          </div>
209        </div>
210      `)}#a(){this.hasPrevButtonTarget&&(this.prevButtonTarget.disabled=this.currentIndexValue<=0)}#n(){this.hasPrevButtonTarget&&(this.prevButtonTarget.disabled=!0),this.hasNextButtonTarget&&(this.nextButtonTarget.disabled=!0)}};var hg=class extends u{static values={url:String,delay:{type:Number,default:3e3}};connect(){this.timeoutId=setTimeout(()=>{this.#e()},this.delayValue)}disconnect(){this.timeoutId&&clearTimeout(this.timeoutId),this.forceTimeoutId&&clearTimeout(this.forceTimeoutId)}close(){this.element.classList.add("hidden"),this.#e()}#e(){this.urlValue&&Turbo.visit(this.urlValue)}};var cg=class extends u{static targets=["input"];static values={content:String};copy(i){let s=i.currentTarget.dataset.copyToInputContentValue||this.contentValue;this.hasInputTarget&&(this.inputTarget.value=s,this.inputTarget.focus(),this.inputTarget.dispatchEvent(new Event("input",{bubbles:!0})))}};var ii=class extends u{static targets=["modal","input","confirmButton"];static values={attribute:String,storageKey:String,label:String,iconUrl:String,editIconUrl:String,errorIconUrl:String,hasError:Boolean};static outlets=["hide-error-on-input"];connect(){this.initialInputValue=this.inputTarget.value,this.checkError(),this.updateOptionState(),this.#t()}checkError(){this.initialInputValue!==this.getValue()&&this.hasHideErrorOnInputOutlet&&this.hideErrorOnInputOutlet.checkError(),this.toggleConfirmButton()}showModal(i){i.preventDefault(),this.inputTarget.value.length>0&&this.optionSelected()||this.getValue().length===0?this.modalTarget.showModal():this.selectOption(),this.#e(),this.#t()}clearInput(){this.hasSavedValue()?this.inputTarget.value=this.getSavedValue():(this.inputTarget.value="",this.unsetRequiredAttribute())}unsetRequiredAttribute(){this.inputTarget.disabled=!0,this.inputTarget.removeAttribute("required")}toggleConfirmButton(){let s=this.inputTarget.value.trim().length>=3,r=this.hasErrorValue===!1,a=this.initialInputValue!==this.inputTarget.value,n=s&&r||a&&s;this.confirmButtonTarget.disabled=!n}handleSubmit(){this.#i(),this.selectOption(!this.optionSelected()),this.modalTarget.close(),this.dispatch("customPromptSaved")}handleKeydown(i){i.key==="Escape"&&this.modalTarget.open&&(i.preventDefault(),this.modalTarget.close(),this.clearInput())}updateOptionState(){throw new Error("updateOptionState() must be implemented by subclass")}selectOption(i=!1){throw new Error("selectOption() must be implemented by subclass")}#e(){this.inputTarget.disabled=!1,this.inputTarget.setAttribute("required","required")}hasValue(){return this.hasSavedValue()||this.inputTarget.value.length>0}
210hasSavedValue(){return this.getSavedValue()?.length>0||!1}removeFromLocalStorage(){let i=this.#s();delete i[this.attributeValue],delete i[this.attributeValue+"_custom"],Si(this.storageKeyValue,i)}#t(){this.hasInputTarget&&this.getSavedValue()&&(this.inputTarget.value=this.getSavedValue(),this.toggleConfirmButton())}#i(){let i=this.inputTarget.value.trim(),s=this.#s();i?(s[this.attributeValue]=i,s[this.attributeValue+"_custom"]=i):(delete s[this.attributeValue],delete s[this.attributeValue+"_custom"]),Si(this.storageKeyValue,s)}getSavedValue(){return this.#s()[this.attributeValue+"_custom"]||""}getValue(){return this.inputTarget.value||this.getSavedValue()}#s(){return Vt(this.storageKeyValue)||{}}shouldShowError(){return this.hasErrorValue&&!this.#r()}#r(){return this.#s()[this.attributeValue+"_custom"]!==void 0}};var dg=class extends ii{static targets=[...ii.targets,"optionWrapper"];static values={...ii.values};static classes=["pillElement","pillLabel","pillImage","pillWithValue","pillWithoutValue","pillSelected"];get pillElement(){return this.#e(this.pillElementClass)}get pillLabel(){return this.#e(this.pillLabelClass)}get pillImage(){return this.#e(this.pillImageClass)}#e(i){return!this.hasOptionWrapperTarget||!i?null:this.optionWrapperTarget.querySelector(`.${i}`)}updateOptionState(){this.hasValue()?this.#t():this.#i()}selectOption(i=!0){this.updateOptionState(),i&&this.dispatch("optionSelected",{detail:{pill:this.pillElement,value:this.getValue()},bubbles:!0})}optionSelected(){return this.pillElement.dataset.selected==="true"}#t(){let i=this.pillElement;if(!i)return;i.classList.remove(...this.pillWithoutValueClasses),i.classList.add(...this.pillWithValueClasses);let s=this.pillLabel;s&&(s.textContent=this.getValue());let r=this.pillImage;r&&(r.classList.add("!h-[24px]"),this.shouldShowError()?(r.src=this.errorIconUrlValue,i.classList.add("!border-error-border")):(r.src=this.editIconUrlValue,i.classList.remove("!border-error-border"))),i.dataset.selected==="true"&&i.classList.add(...this.pillSelectedClasses)}#i(){let i=this.pillElement;if(!i)return;i.classList.remove(...this.pillWithValueClasses),i.classList.add(...this.pillWithoutValueClasses);let s=this.pillLabel;s&&(s.textContent=this.labelValue);let r=this.pillImage;r&&(this.shouldShowError()?(r.src=this.errorIconUrlValue,i.classList.add("!border-error-border")):(r.src=this.iconUrlValue,i.classList.remove("!border-error-border")))}};var ug=class extends ii{static targets=[...ii.targets,"iconContainer","labelText","card","optionWrapper","contentWrapper","labelWrapper","selectedLabel","unselectedLabel"];static values={...ii.values};static classes=["iconSmall","iconLarge","iconError","contentCenter","contentEnd","labelRounded","hidden","backgroundPink","backgroundGradient","borderError"];updateOptionState(){this.hasValue()?this.#e():this.#t()}optionSelected(){return this.cardTarget.dataset.selected==="true"}selectOption(i=!0){this.updateOptionState(),i&&this.dispatch("optionSelected",{detail:{card:this.cardTarget},bubbles:!0})}#e(){if(this.hasLabelTextTarget&&(this.labelTextTarget.textContent=this.getValue()),this.#i(this.editIconUrlValue,this.iconSmallClasses),this.hasContentWrapperTarget&&(this.contentWrapperTarget.classList.remove(...this.contentEndClasses),this.contentWrapperTarget.classList.add(...this.contentCenterClasses)),this.hasLabelWrapperTarget&&this.labelWrapperTarget.classList.add(...this.labelRoundedClasses),this.hasCardTarget){let i=this.cardTarget.querySelector(".radio-button-card__content");i&&(i.classList.remove(...this.backgroundPinkClasses),i.classList.add(...this.backgroundGradientClasses),this.shouldShowError()?(i.classList.add(...this.borderErrorClasses),i.style.boxShadow="none"):(i.classList.remove(...this.borderErrorClasses),this.cardTarget.dataset.selected==="true"&&(i.style.boxShadow="0 0 0 3px white")))}this.hasSelectedLabelTarget&&this.selectedLabelTarget.classList.remove(...this.hiddenClasses),this.hasUnselectedLabelTarget&&this.unselectedLabelTarget.classList.add(...this.hiddenClasses)}#t(){if(this.hasLabelTextTarget&&(this.labelTextTarget.textContent=this.labelValue),this.#i(this.iconUrlValue,this.iconLargeClasses),this.hasContentWrapperTarget&&(this.contentWrapperTarget.classList.remove(...this.contentCenterClasses),this.contentWrapperTarget.classList.add(...this.contentEndClasses)),this.hasLabelWrapperTarget&&this.labelWrapperTarget.classList.remove(...this.labelRoundedClasse
210s),this.hasCardTarget){let i=this.cardTarget.querySelector(".radio-button-card__content");i&&(i.classList.remove(...this.backgroundGradientClasses),i.classList.add(...this.backgroundPinkClasses),this.shouldShowError()?(i.classList.add(...this.borderErrorClasses),i.style.boxShadow="none"):i.classList.remove(...this.borderErrorClasses))}this.hasSelectedLabelTarget&&this.selectedLabelTarget.classList.add(...this.hiddenClasses),this.hasUnselectedLabelTarget&&this.unselectedLabelTarget.classList.remove(...this.hiddenClasses)}#i(i,s){this.hasIconContainerTarget&&(this.shouldShowError()?(this.iconContainerTarget.style.backgroundImage=`url(${this.errorIconUrlValue})`,this.iconContainerTarget.classList.remove(...this.iconSmallClasses,...this.iconLargeClasses),this.iconContainerTarget.classList.add(...this.iconErrorClasses)):(this.iconContainerTarget.style.backgroundImage=`url(${i})`,this.iconContainerTarget.classList.remove(...this.iconLargeClasses,...this.iconErrorClasses,...this.iconSmallClasses),this.iconContainerTarget.classList.add(...s)))}};var gg=class extends u{static targets=["tab","panel","glowOverlay"];static values={defaultTab:{type:String,default:"premium"}};connect(){this.panelTargets.forEach(a=>{a.classList.add("transition-opacity","duration-500","ease-in-out")});let i=new URLSearchParams(window.location.search).get("tab"),r=this.panelTargets.map(a=>a.dataset.tabPanel).includes(i)?i:this.defaultTabValue;this.#e(r)}switchTab(i){i.preventDefault();let s=i.currentTarget.dataset.tabId;this.#e(s)}#e(i){this.panelTargets.forEach(r=>{r.dataset.tabPanel===i?(r.classList.add("opacity-0"),r.classList.remove("hidden"),r.classList.add("block"),requestAnimationFrame(()=>{r.classList.remove("opacity-0"),r.classList.add("opacity-100")})):(r.classList.add("hidden"),r.classList.remove("block","opacity-100"))}),this.tabTargets.forEach(r=>{let a=r.dataset.tabId===i;r.classList.toggle("tab-active",a),r.classList.toggle("tab-inactive",!a)}),this.hasGlowOverlayTarget&&this.glowOverlayTargets.forEach(r=>{let a=r.dataset.tabPanel===i;r.classList.toggle("tier-glow-hidden",!a)});let s=new URL(window.location);s.searchParams.set("tab",i),window.history.replaceState({},"",s)}};var mg=class extends u{static targets=["form","description","flag"];static values={newLanguage:String};render(i){let{resetPath:s,profileName:r,conversationLanguage:a}=i;s&&this.hasFormTarget&&(this.formTarget.action=s);let n=a&&a!==this.newLanguageValue;if(this.hasDescriptionTarget){let l=n?this.descriptionTarget.dataset.templateWithLanguage:this.descriptionTarget.dataset.template;this.descriptionTarget.textContent=l.replace("#PROFILE_NAME#",r)}this.hasFlagTarget&&this.flagTarget.classList.toggle("hidden",!n)}};var pg=class extends u{static outlets=["modal","reset-chat-modal"];openModal(i){let s=i.currentTarget.dataset;if(s.roleplayMigration==="true"){let r=document.getElementById("reset-in-roleplay-mode-modal"),a=document.getElementById("reset-in-roleplay-classic-form"),n=document.getElementById("reset-in-roleplay-form");if(r&&a){if(a.action=s.resetPath,n){let l=new URL(s.resetPath,window.location.origin);l.searchParams.set("switch_to_roleplay","true"),n.action=l.pathname+l.search}r.classList.remove("hidden");return}}this.hasResetChatModalOutlet&&this.resetChatModalOutlet.render(s),this.hasModalOutlet&&this.modalOutlet.openModal()}};var fg=class extends u{static targets=["firstMessage"];static values={userEmail:String,userId:String,utaVisitorId:String,enableTracking:Boolean};firstMessageTargetConnected(i){this.trackFirstMessageEvent(),i.remove()}trackFirstMessageEvent(){if(this.enableTrackingValue)try{let i={event:"first_message",email:this.userEmailValue,external_id:this.utaVisitorIdValue,user_id:this.userIdValue,timestamp_micros:(Date.now()*1e3).toString()};window.dataLayer=window.dataLayer||[],window.dataLayer.push(i)}catch(i){window.console&&window.console.error&&window.console.error("Message GTM tracking failed:",i)}}};var vg=class extends u{static targets=["input","button","assistantMessage"];static values={url:String,profileId:Number,messageLimit:Number};connect(){this.storageEnabled=this.storageAvailable(),this.storageKey=this.buildStorageKey(),this.state=this.initializeState(),this.isSubmitted=!1,this.renderStoredMessages(),this.hideUsedQuickMessages()}disconnect(){}async submit(i){if(i.preventDefault(),this.isSubmitted)return;let s=(this.inputTarget.value||"").trim();s&&(this.hideSuggestions(),this.isSubmitted=!0,this.disable(!0),await this.sendMessage(s))}assistantMessageTargetConnected(i){let s=i.dataset.assistantMessageValue;s&&this.persistMessage("assistant",s),this.resetFormState(),this.inputTarget.focu
210s(),this.scrollToBottom()}appendQuickMessage(i){if(!this.hasInputTarget)return;let s=i.currentTarget,r=s?.dataset?.quickMessage;r&&(this.inputTarget.value=r,this.submit(new Event("submit")),this.markQuickMessageUsed(r,s))}appendLoader(){let i=document.getElementById("messages-list");if(!i)return;let s=document.createElement("div");s.id="visitor-loader",s.className="user-response",s.innerHTML=`
211      <div class="justify-start items-start gap-2.5 inline-flex slow-fade py-2">
212        <div class="justify-start items-start gap-3 flex">
213          <div class="flex-col justify-start items-start gap-[9px] inline-flex">
214            <div class="px-8 py-3 bg-[#252525] rounded-tl-3xl rounded-tr-3xl rounded-bl-[4px] rounded-br-3xl justify-start items-start inline-flex">
215              <div class="snippet" data-title="dot-flashing">
216                <div class="stage">
217                  <div class="dot-flashing"></div>
218                </div>
219              </div>
220            </div>
221          </div>
222        </div>
223      </div>
224    `,i.appendChild(s),this.scrollToBottom()}removeLoader(){let i=document.getElementById("visitor-loader");i&&i.remove()}async sendMessage(i){if(!this.hasQuota()){this.appendSystemNotice("Please sign up to continue."),this.scrollToBottom(),this.openRegistrationModal(),this.resetFormState();return}let s={profile_id:this.profileIdValue,user_input:i},r=!1,a=this.inputTarget.value;try{this.appendUserBubble(i),this.scrollToBottom(),this.persistMessage("user",i),r=!0,s.messages=this.serializedMessages(),this.inputTarget.value="",this.appendLoader();let n=await H(this.urlValue,{body:s,contentType:"application/json",responseKind:"json"});if(!n.ok){this.inputTarget.value=a||i,this.revertMessage("user",i),this.removeLoader(),this.resetFormState(),n.statusCode===403?(this.appendSystemNotice("Please sign up to continue."),this.openRegistrationModal(),this.resetFormState()):this.appendSystemNotice("Something went wrong. Please try again."),this.scrollToBottom();return}}catch{this.removeLoader(),r&&this.revertMessage("user",i),this.inputTarget.value=a||i,this.appendSystemNotice("Network error. Please try again."),this.scrollToBottom()}}disable(i){this.hasButtonTarget&&(this.buttonTarget.disabled=i,i?this.buttonTarget.classList.add("opacity-30"):this.buttonTarget.classList.remove("opacity-30"))}resetFormState(){this.isSubmitted=!1,this.disable(!1)}messagesContainer(){return document.querySelector("[data-conversations--show-target='messagesList'] #messages-list")||document.querySelector("[data-conversations--show-target='messagesList']")||document.getElementById("messages")}appendUserBubble(i){let s=this.messagesContainer();if(!s)return;let r=document.createElement("div");r.className="mb-3 flex justify-end";let a=ws.stylizedMessageWithStars(i,"user");r.innerHTML=`
225      <div class="px-4 py-2 bg-gradient-blue rounded-tl-3xl rounded-tr-3xl rounded-bl-3xl rounded-br-[4px] max-w-[75%] text-white text-[15px] font-roboto">${a}</div>
226    `,s.appendChild(r)}appendAssistantBubble(i){let s=this.messagesContainer();if(!s)return;let r=document.createElement("div");r.className="mb-3 flex justify-start";let a=ws.stylizedMessageWithStars(i,"assistant");r.innerHTML=`
227      <div class="px-4 py-2 bg-black-medium rounded-tl-[4px] rounded-tr-3xl rounded-bl-3xl rounded-br-3xl max-w-[75%] text-grey-medium text-[15px] font-roboto">${a}</div>
228    `,s.appendChild(r)}appendSystemNotice(i){let s=this.messagesContainer();if(!s)return;let r=document.createElement("div");r.className="mb-3 flex justify-center",r.innerHTML=`
229      <div class="px-3 py-1 text-xs text-grey-tooltip">${this.escape(i)}</div>
230    `,s.appendChild(r)}scrollToBottom(){let i=document.getElementById("messages");i&&(i.scrollTop=i.scrollHeight)}escape(i){let s=document.createElement("div");return s.innerText=i,s.innerHTML}storageAvailable(){try{let i=window.localStorage,s="__visitor_chat_test__";return i.setItem(s,"1"),i.removeItem(s),!0}catch{return!1}}buildStorageKey(){return this.hasProfileIdValue?`visitor_chat:${this.profileIdValue}`:"visitor_chat"}initializeState(){let i={messages:[],remaining:this.defaultMessageLimit(),quickMessagesUsed:{}};if(!this.storageEnabled)return i;let s=this.safeStorageGet(this.storageKey);if(!s)return i;try{let r=JSON.parse(s);if(Array.isArray(r))return{messages:r,remaining:i.remaining,quickMessagesUsed:{}};let a=Array.isArray(r.messages)?r.messages:[],n=r.remaining;if(this.isNumeric(n))n=Math.max(Number(n),0);else{let d=a.filter(m=>this.normalizeMessage(m).role==="user").length;n=Math.max(i.remaining-d,0)}let l=r.quickMessagesUsed&&typeof r.quickMessagesUsed=="object"?r.quickMessagesUsed:{};return{messages:a,remaining:n,quickMessagesUsed:l}}catch{return i}}renderStoredMessages(){let i=this.messagesContainer();!i||i.dataset.visitorMessagesRendered==="true"||(this.state.messages&&this.state.messages.length>10&&(this.state.messages=this.state.messages.slice(-10),this.writeState()),this.state.messages.forEac
230h(s=>{let r=this.normalizeMessage(s);r.content&&(r.role==="assistant"?this.appendAssistantBubble(r.content):r.role==="user"&&this.appendUserBubble(r.content))}),i.dataset.visitorMessagesRendered="true",this.scrollToBottom())}defaultMessageLimit(){if(this.hasMessageLimitValue){let i=Number(this.messageLimitValue);if(!Number.isNaN(i)&&i>=0)return i}return 2e3}hasQuota(){return!this.state||typeof this.state.remaining!="number"||this.state.messages&&this.state.messages.length>10?!1:this.state.remaining>0}serializedMessages(){return!this.state||!Array.isArray(this.state.messages)?[]:this.state.messages.map(i=>this.normalizeMessage(i)).filter(i=>i.content)}persistMessage(i,s){this.state||(this.state=this.initializeState());let r={role:`${i}`,content:`${s}`.trim()};if(!r.content)return;let a=this.normalizeMessage(this.state.messages[this.state.messages.length-1]);a.role===r.role&&a.content===r.content||(this.state.messages.push({role:r.role,content:r.content}),r.role==="user"&&(this.state.remaining=Math.max(this.state.remaining-1,0)),this.writeState())}revertMessage(i,s){if(!this.state)return;let r={role:`${i}`,content:`${s}`.trim()};if(!r.content)return;let a=this.state.messages.length-1;if(a<0)return;let n=this.normalizeMessage(this.state.messages[a]);if(n.role===r.role&&n.content===r.content){if(this.state.messages.splice(a,1),r.role==="user"){let l=this.defaultMessageLimit();this.state.remaining=Math.min(this.state.remaining+1,l)}this.writeState()}}updateRemaining(i){!this.state||!this.isNumeric(i)||(this.state.remaining=Math.max(Number(i),0),this.writeState())}writeState(){if(!(!this.storageEnabled||!this.state))try{window.localStorage.setItem(this.storageKey,JSON.stringify({messages:this.state.messages,remaining:this.state.remaining,quickMessagesUsed:this.state.quickMessagesUsed||{}}))}catch{this.storageEnabled=!1}}safeStorageGet(i){try{return window.localStorage.getItem(i)}catch{return this.storageEnabled=!1,null}}normalizeMessage(i){if(!i||typeof i!="object")return{role:"",content:""};let s=i.role||i.role||"",r=i.content||i.content||"";return{role:`${s}`,content:`${r}`}}isNumeric(i){if(typeof i=="number")return!Number.isNaN(i);if(typeof i=="string"){let s=i.trim();return s?!Number.isNaN(Number(s)):!1}return!1}openRegistrationModal(i=""){this.trackRegistrationModalView();let s=pe("main",this.application);if(s&&typeof s.openRegistrationModal=="function"){let a=i||window.location.href,n={preventDefault:()=>{},currentTarget:{dataset:{redirectUrl:a}}};s.openRegistrationModal(n);return}let r=document.querySelector("[data-main-target='registrationModal']");r&&(r.style.display="flex")}hideUsedQuickMessages(){let i=this.state?.quickMessagesUsed||{};this.element.querySelectorAll("[data-quick-message]").forEach(s=>{let r=s?.dataset?.quickMessage;r&&i[r]&&(s.style.display="none")})}markQuickMessageUsed(i,s){i&&(this.state||(this.state=this.initializeState()),(!this.state.quickMessagesUsed||typeof this.state.quickMessagesUsed!="object")&&(this.state.quickMessagesUsed={}),this.state.quickMessagesUsed[i]||(this.state.quickMessagesUsed[i]=!0,this.writeState()),s&&(s.style.display="none"))}hideSuggestions(){this.element.querySelectorAll("[data-quick-message]").forEach(i=>{i.style.display="none"})}trackRegistrationModalView(){let i=this.serializedMessages();this.trackMixpanelEvent("Viewed Signup Modal",{Source:"Visitor Flow V2",Modal:"M-Chat",Product:"Chat",url:window.location.href,visitor_messages:i})}trackMixpanelEvent(i,s={}){if(typeof window.mixpanel<"u"&&window.mixpanel.track)try{window.mixpanel.track(i,s)}catch{}}};var Tg=class extends u{static values={samplingRate:{type:Number,default:.1},product:{type:String,default:"Chat"},source:{type:String,default:"Visitor Flow"}};connect(){this.originalUrl=window.location.href,this.retryTimeout=null,this.shouldSample()&&this.trackPageViewWithRetry()}disconnect(){this.retryTimeout&&(clearTimeout(this.retryTimeout),this.retryTimeout=null)}shouldSample(){let i;try{i=localStorage.getItem("visitor_tracking_homepage_sampled")}catch{return Math.random()<this.samplingRateValue}if(i==="true")return!0;
230if(this.productValue==="Home"){let s=Math.random()<this.samplingRateValue;if(s)try{localStorage.setItem("visitor_tracking_homepage_sampled","true")}catch{}return s}return Math.random()<this.samplingRateValue}trackPageViewWithRetry(i=0){this.isMixpanelReady()?this.trackPageView():i<10&&(this.retryTimeout=setTimeout(()=>{this.trackPageViewWithRetry(i+1)},100))}trackPageView(){let i={Product:this.productValue,url:this.originalUrl,Source:this.sourceValue,user_type:"Guest"};this.trackMixpanelEvent("Page View",i)}isMixpanelReady(){return typeof window.mixpanel<"u"&&typeof window.mixpanel.track=="function"}trackMixpanelEvent(i,s={}){if(this.isMixpanelReady())try{window.mixpanel.track(i,s)}catch{}}};var bg=class extends u{static targets=["textarea","sendButton","form","suggestionBubble","suggestionText"];static outlets=["live-actions--xp-manager"];static values={requestResponseUrl:String,isGuest:Boolean};connect(){this.deviceDetector=new He,this.#r(),this.boundHandleAssistantResponseAppeared=this.handleAssistantResponseAppeared.bind(this),document.addEventListener("live-actions:assistant-response-appeared",this.boundHandleAssistantResponseAppeared),this.boundHandleResetConversation=this.handleResetConversation.bind(this),document.addEventListener("live-actions:reset-conversation",this.boundHandleResetConversation),document.addEventListener("upgrade-modal:displayed",this.handleUpgradeModalDisplayed)}disconnect(){this.boundHandleAssistantResponseAppeared&&document.removeEventListener("live-actions:assistant-response-appeared",this.boundHandleAssistantResponseAppeared),this.boundHandleResetConversation&&document.removeEventListener("live-actions:reset-conversation",this.boundHandleResetConversation),document.removeEventListener("upgrade-modal:displayed",this.handleUpgradeModalDisplayed)}handleUpgradeModalDisplayed=()=>{this.handleResetConversation()};handleInput(){this.#r()}handleKeydown(i){i.key==="Enter"&&!i.shiftKey&&!this.deviceDetector.isMobile()&&(i.preventDefault(),this.handleSend())}handleSend(){if(this.hasSendButtonTarget&&this.sendButtonTarget.disabled)return;let i=this.textareaTarget.value.trim();if(!i)return;if(this.isGuestValue){this.#e();return}let s=document.querySelector('[data-live-actions-chat-target="chatMessages"]');s&&(this.#a(),this.#t(i,s),this.#s(s),this.#i(s),this.#s(s),this.formTarget.requestSubmit(),this.textareaTarget.value="",this.#r())}#e(){pe("main",this.application)?.openRegistrationModal(new Event("GuestChatAttempt"))}handleAssistantResponseAppeared(){this.#a()}#t(i,s){let r=document.getElementById("live-actions-user-message-template");if(!r)return;let a=r.content.cloneNode(!0),n=a.querySelector("div");n&&n.setAttribute("id","live-actions-tmp-user-message");let l=a.querySelector("p");l&&(l.textContent=i),s.appendChild(a)}#i(i){let s=document.getElementById("live-actions-typing-indicator-template");if(!s)return;let r=s.content.cloneNode(!0),a=r.querySelector("div");a&&a.setAttribute("id","live-actions-typing-indicator"),i.appendChild(r)}#s(i){i.scrollTo({top:i.scrollHeight,behavior:"smooth"})}#r(){if(!this.hasSendButtonTarget)return;this.textareaTarget.value.trim().length>0?(this.sendButtonTarget.classList.remove("opacity-0"),this.sendButtonTarget.disabled?this.sendButtonTarget.classList.add("opacity-50"):(this.sendButtonTarget.classList.add("opacity-100"),this.sendButtonTarget.classList.remove("pointer-events-none"))):(this.sendButtonTarget.classList.remove("opacity-100"),this.sendButtonTarget.classList.remove("opacity-50"),this.sendButtonTarget.classList.add("opacity-0","pointer-events-none"))}#a(){this.hasSendButtonTarget&&(this.sendButtonTarget.disabled?(this.sendButtonTarget.disabled=!1,this.sendButtonTarget.classList.remove("pointer-events-none")):(this.sendButtonTarget.disabled=!0,this.sendButtonTarget.classList.add("pointer-events-none")))}handleResetConversation(){this.hasSendButtonTarget&&(this.sendButtonTarget.disabled=!1,this.sendButtonTarget.classList.remove("pointer-events-none"),this.#r())}selectSuggestion(){if(!this.hasSuggestionBubbleTarget||!this.hasSuggestionTextTarget)return;let i=this.suggestionTextTarget.textContent.trim();this.textareaTarget.value=i,this.suggestionBubbleTarget.classList.add("hidden"),this.#r()}};var yg=class extends u{static targets=["chatInput","chatVisibilityButton","chatJoystick","chatMessages","videoControls","actionMenu","newestMessage","userQuestion","assistantResponse","menuItem","chatMenuButton","topRightWrapper"];connect(){this.deviceDetector=new He,this.isChatVisible=!0,this.isActionPlaying=!1,this.isPaginationLoading=!1,this.initialLoad=!0,this.#e(),this.hasChatJoystickTarget&&this.#t(),this.#i(),this.#h(),this.boundHandleActionPlaybackStarted=this.handleActionPlaybackStarted.bind(this),this.boundHandleActionPlaybackEnded=this.handleActionPlaybackEnded.bind(this),document.addEventListener("live-actions:action-playback-started",this.boundHandleActionPlaybackStarted),document.addEventListener("live-actions:action-playback-ended",this.boundHandleActionPlaybackEnded),this.boundHandleDelayedResponse=this.handleDelayedResponse.bind(this),document.addEventListener("turbo:before-stream-render",this.boundHandleDelayedResponse)}disconnect(){this.boundHandleActionPlaybackStarted&&document.removeEventListener("live-actions:action-playback-started",this.boundHandleActionPlaybackStarted),this.boundHandleActionPlaybackEnded&&document.removeEventListener("live-actions:action-playback-ended",this.boundHandleActionPlaybackEnded),this.boundHandleDelayedResponse&&document.removeEventListener("turbo:before-stream-render",this.boundHandleDelayedResponse)}chatMessagesTargetConnected(){this.isPaginationLoading||this.#s()}newestMessageTargetConnected(){if(this.initialLoad){this.hasNewestMessageTarget&&this.newestMessageTarget.removeAttribute("data-live-actions-chat-target");return}this.isPaginationLoading=!0,this.#l()}userQuestionTargetConnected(){!this.hasUserQuestionTarget||!this.hasChatMessagesTarget||(this.userQuestionTarget.scrollIntoView({behavior:"smooth",block:"end"}),this.userQuestionTarget.removeAttribute("data-live-actions-chat-target"))}assistantResponseTargetConnected(){!this.hasAssistantResponseTarget||!this.hasChatMessagesTarget||(this.assistantResponseTarget.scrollIntoView({behavior:"smooth",block:"end"}),this.assistantResponseTarget.removeAttribute("data-live-actions-chat-target"),document.dispatchEvent(new CustomEvent("live-actions:assistant-response-appeared",{bubbles:!1})))}toggleChatVisibility(){this.isChatVisible=!this.isChatVisible,this.#i()}#e(){this.chatInputTarget.classList.add("transition-transform","duration-300","ease-in-out"),this.isChatVisible?(this.chatInputTarget.style.transform="translateY(0)",this.chatInputTarget.style.visibility="visible"):(this.chatInputTarget.style.transform="translateY(150%)",this.chatInputTarget.style.visibility="hidden")}#t(){this.chatJoystickTarget.classList.add("transition-transform","duration-300","ease-in-out"),this.isChatVisible?this.chatJoystickTarget.style.transform="translateY(0)":this.chatJoystickTarget.style.transform="translateY(100%)"}#i(){if(this.hasChatVisibilityButtonTarget){let i=this.chatVisibilityButtonTarget.querySelector(".chat-visible-icon"),s=this.chatVisibilityButtonTarget.querySelector(".chat-hidden-icon");this.isChatVisible?(i.classList.remove("hidden"),s.classList.add("hidden")):(i.classList.add("hidden"),s.classList.remove("hidden"))}this.isChatVisible?(this.#o(),this.isActionPlaying||(this.chatInputTarget.style.transform="translateY(0)",this.chatInputTarget.style.visibility="visible",this.chatInputTarget.classList.remove("pointer-events-none"),this.hasChatJoystickTarget&&(this.chatJoystickTarget.style.transform="translateY(0)",this.chatJoystickTarget.style.visibility="visible",this.chatJoystickTarget.classList.remove("pointer-events-none"))),this.#s()):(this.#n(),this.chatInputTarget.style.transform="translateY(150%)",this.chatInputTarget.classList.add("pointer-events-none"),this.hasChatJoystickTarget&&(this.chatJoystickTarget.style.transform="translateY(100%)"),setTimeout(()=>{this.chatInputTarget.style.visibility="hidden"},300))}scrollToBottom(){this.#s()}#s(i=0){if(!this.hasChatMessagesTarget)return;let s=this.chatMessagesTarget;requestAnimationFrame(()=>{s.scrollHeight>0&&s.clientHeight>0?(s.scrollTo({top:s.scrollHeight,behavior:"instant"}),setTimeout(()=>{this.initialLoad=!1},300)):i<10&&setTimeout(()=>this.#s(i+1),100)})}handleActionPlaybackStarted(){this.isActionPlaying=!0,this.#r()}handleActionPlaybackEnded(){this.isActionPlaying=!1,this.#a()}#r(){this.chatInputTarget.style.transform="translateY(150%)",this.chatInputTarget.classList.add("pointer-events-none"),setTimeout(()=>{this.chatInputTarget.style.visibility="hidden"},300),this.#n(),this.hasChatVisibilityButtonTarget&&this.chatVisibilityButtonTarget.classList.add("hidden"),this.hasChatMenuButtonTarget&&(this.chatMenuButtonTarget.classList.add("hidden"),this.menuItemTargets.forEac
230h(i=>{i.classList.add("hidden")})),this.hasChatJoystickTarget&&(this.chatJoystickTarget.style.transform="translateY(150%)",this.chatJoystickTarget.classList.add("pointer-events-none"),setTimeout(()=>{this.chatJoystickTarget.style.visibility="hidden"},300)),this.hasActionMenuTarget&&this.actionMenuTarget.classList.add("hidden")}#a(){this.hasChatJoystickTarget&&(this.chatJoystickTarget.style.visibility="visible",this.chatJoystickTarget.classList.remove("pointer-events-none")),this.isChatVisible?(this.chatInputTarget.style.transform="translateY(0)",this.chatInputTarget.style.visibility="visible",this.chatInputTarget.classList.remove("pointer-events-none"),this.hasChatJoystickTarget&&(this.chatJoystickTarget.style.transform="translateY(0)")):this.hasChatJoystickTarget&&(this.chatJoystickTarget.style.transform="translateY(100%)"),this.hasChatVisibilityButtonTarget&&this.chatVisibilityButtonTarget.classList.remove("hidden"),this.hasChatMenuButtonTarget&&this.chatMenuButtonTarget.classList.remove("hidden"),this.isChatVisible?(this.#o(),this.#s()):this.#n(),this.hasActionMenuTarget&&this.actionMenuTarget.classList.remove("hidden")}#n(){if(!this.hasChatMessagesTarget)return;let i=this.chatMessagesTarget.parentElement;i&&(i.classList.remove("opacity-100"),i.classList.add("opacity-0","pointer-events-none"))}#o(){if(!this.hasChatMessagesTarget||this.isActionPlaying||!this.isChatVisible)return;let i=this.chatMessagesTarget.parentElement;i&&(i.classList.add("opacity-100"),i.classList.remove("opacity-0","pointer-events-none"))}#l(){if(!this.hasNewestMessageTarget||!this.hasChatMessagesTarget){this.isPaginationLoading=!1;return}this.newestMessageTarget.scrollIntoView({behavior:"instant",block:"nearest"}),this.newestMessageTarget.removeAttribute("data-live-actions-chat-target"),setTimeout(()=>{this.isPaginationLoading=!1},100)}showMenu(){this.menuItemTargets.forEach(i=>{i.classList.toggle("hidden")})}resetConversation(){this.menuItemTargets.forEach(s=>{s.classList.add("hidden")});let i=document.getElementById("reset-conversation-modal");i&&i.classList.remove("hidden")}dispatchResetConversationEvent(){document.dispatchEvent(new CustomEvent("live-actions:reset-conversation",{bubbles:!0}))}handleDelayedResponse(i){if(i.detail?.newStream?.target!=="live-actions-typing-indicator")return;let s=parseInt(i.detail.newStream.templateContent?.querySelector("[data-delay-value]")?.getAttribute("data-delay-value"));if(!s||isNaN(s)||s<=0)return;let r=i.detail.render;i.detail.render=a=>{setTimeout(()=>{r(a)},s)}}#h(){this.hasTopRightWrapperTarget&&(this.deviceDetector.isPwa()?this.topRightWrapperTarget.classList.add("pt-[env(safe-area-inset-top)]"):this.topRightWrapperTarget.classList.add("pt-4"))}};var Sg=class extends u{static targets=["levelDisplay"];static values={currentXp:Number,level:Number,xpPerLevel:Number,maxLevel:Number};connect(){this.updateDisplay(),this.boundHandleSkipLevelLevelUnlocked=this.handleSkipLevelLevelUnlocked.bind(this),document.addEventListener("live-actions:skip-level:level-unlocked",this.boundHandleSkipLevelLevelUnlocked)}disconnect(){this.boundHandleSkipLevelLevelUnlocked&&document.removeEventListener("live-actions:skip-level:level-unlocked",this.boundHandleSkipLevelLevelUnlocked)}handleSkipLevelLevelUnlocked(){this.updateProgressIndicator(100)}updateDisplay(){this.updateProgressIndicator(),this.hasLevelDisplayTarget&&(this.levelDisplayTarget.textContent=this.levelValue)}updateProgressIndicator(i=null){let s=0;this.levelValue<this.maxLevelValue?s=this.currentXpValue/this.xpPerLevelValue*100:s=100,i&&(s=i);let r=this.element.querySelector(".progress-circle");if(r){let n=2*Math.PI*15*(100-s)/100;r.style.transition="stroke-dashoffset 0.8s ease-out",r.style.strokeDashoffset=n}this.hasLevelDisplayTarget&&(this.levelDisplayTarget.textContent=this.levelValue,this.levelDisplayTarget.style.transform="scale(1.2)",this.levelDisplayTarget.style.transition="transform 0.3s ease-out",setTimeout(()=>{this.levelDisplayTarget.style.transform="scale(1)"},300))}};var wg=class extends u{static targets=["progress","counter","nextLevel","skipButton","skipButtonLabel","skipButtonCost","originalSkipCost","levelLabel","levelRequirement","levelRequirementNumber","levelUnlockNotification","confirmSkipLevel"];static values={currentXp:Number,level:Number,xpForLevel:Number,nextLevelThreshold:Number,skipLevelCost:Number,originalSkipCost:Number,discountEndsAt:String,maxLevel:Number,changeKind:String};connect(){Mt(this),this.#e(),this.updateView(),this.registerCustomTurboAction(),this.changeKindValue==="loss"&&this.flashLoss(),this.boundShowLevelRequirement=this.showLevelRequirement.bind(this),document.addEventListener("live-actions:level-requirement",this.boundShowLevelRequirement),this.boundTurboBeforeStreamRender=this.handleTurboBeforeStreamRender.bind(this),document.addEventListener("turbo:before-stream-render",this.boundTurboBeforeStreamRender)}disconnect(){clearTimeout(this.discountExpiryTimeout),this.boundShowLevelRequirement&&document.removeEventListener("live-actions:level-requirement",this.boundShowLevelRequirement),this.boundTurboBeforeStreamRender&&document.removeEventListener("turbo:before-stream-render",this.boundTurboBeforeStreamRender),this.levelRequirementTimeout&&clearTimeout(this.levelRequirementTimeout),this.flashLossTimeout&&clearTimeout(this.flashLossTimeout)}flashLoss(){if(!this.hasProgressTarget)return;let i=this.progressTarget,s=i.style.background;i.style.transition="background 0.15s ease-in, box-shadow 0.15s ease-in",i.style.background="linear-gradient(90deg, #E64646 0%, #B91C1C 100%)",i.style.boxShadow="0px 0px 14px 0px rgba(230, 70, 70, 0.8)",this.flashLossTimeout=setTimeout(()=>{i.style.transition="background 0.6s ease-out, box-shadow 0.6s ease-out",i.style.background=s,i.style.boxShadow="",this.flashLossTimeout=setTimeout(()=>{i.style.transition=""},700)},500)}updateView(){let i=Number.isFinite(this.levelValue)?this.levelValue:1,s=Number.isFinite(this.currentXpValue)?this.currentXpValue:0,r=Number.isFinite(this.nextLevelThresholdValue)?this.nextLevelThresholdValue:0,a=Number.isFinite(this.skipLevelCostValue)?this.skipLevelCostValue:0,n=Number.isFinite(this.maxLevelValue)?this.maxLevelValue:1,l=Math.min(Math.max(i,1),n),d=Math.min(s/r*100,100),m=r?i+1:null;this.hasProgressTarget&&(this.progressTarget.style.width=`${d}%`),this.hasCounterTarget&&(r?this.counterTarget.textContent=r>0?`${Math.round(s)} / ${r} XP`:`${Math.round(s)} XP`:this.counterTarget.textContent=""),this.hasNextLevelTarget&&(this.nextLevelTarget.textContent=m?`${this.getTranslation("live_actions.xp_progress_bar.level")} ${m}`:this.getTranslation("live_actions.xp_progress_bar.max_level")),this.hasLevelLabelTarget&&(this.levelLabelTarget.textContent=`${this.getTranslation("live_actions.xp_progress_bar.level")} ${l}`),this.hasSkipButtonTarget&&(m?(this.skipButtonTarget.classList.remove("hidden"),this.skipButtonTarget.dataset.liveActionsTargetLevelValue=m,this.skipButtonTarget.dataset.liveActionsSkipCostValue=a,this.hasSkipButtonLabelTarget&&(this.skipButtonLabelTarget.textContent=this.getTranslation("live_actions.xp_progress_bar.skip_to_level",{interpolation:{level:m}})),this.hasSkipButtonCostTarget&&this.skipButtonCostTargets.forEac
230h(v=>{v.textContent=`${a}`})):this.skipButtonTarget.classList.add("hidden"))}showLevelRequirement(i){let s=i.detail.requiredLevel;!this.hasLevelRequirementTarget||!s||(this.levelRequirementTimeout&&clearTimeout(this.levelRequirementTimeout),this.levelRequirementNumberTarget.textContent=s,this.levelRequirementTarget.classList.remove("hidden"),this.levelRequirementTimeout=setTimeout(()=>{this.levelRequirementTarget.classList.add("hidden")},3e3))}#e(){if(!this.discountEndsAtValue)return;let i=Date.parse(this.discountEndsAtValue)-Date.now();i<=0?(this.skipLevelCostValue=this.originalSkipCostValue,this.originalSkipCostTargets.forEach(s=>{s.hidden=!0}),this.discountEndsAtValue="",this.skipButtonCostTargets.forEach(s=>{s.textContent=`${this.originalSkipCostValue}`}),this.hasSkipButtonTarget&&(this.skipButtonTarget.dataset.liveActionsSkipCostValue=this.originalSkipCostValue)):Number.isFinite(i)&&(clearTimeout(this.discountExpiryTimeout),this.discountExpiryTimeout=setTimeout(()=>this.#e(),Math.min(i,2147483647)))}skipLevel(){this.#e(),!(!this.hasSkipButtonTarget||!this.hasConfirmSkipLevelTarget)&&(this.skipButtonTarget.classList.add("hidden"),this.confirmSkipLevelTarget.classList.remove("hidden"))}confirmSkipLevel(){this.#e(),this.hasConfirmSkipLevelTarget&&(this.confirmSkipLevelTarget.disabled=!0,this.confirmSkipLevelTarget.classList.add("pointer-events-none"),this.confirmSkipLevelTarget.closest("form").requestSubmit())}registerCustomTurboAction(){if(typeof Turbo>"u")return;let i=this;Turbo.StreamActions.replace_with_level_animation||(Turbo.StreamActions.replace_with_level_animation=function(){let s=this;i.#t(()=>Turbo.StreamActions.replace.call(s))})}handleTurboBeforeStreamRender(i){let s=i.detail?.newStream?.target;if(s){if(s==="live-actions-insufficient-tokens-modal"){this.#i();return}if(s==="live-actions-modal-v3"&&i.detail?.newStream?.getAttribute("action")!=="replace_with_level_animation"){let a=i.detail.render;i.detail.render=n=>{a(n),this.#s()}}}}#t(i){let s=document.getElementById("live-actions-modal-v3");if(!s){i();return}let r=s.querySelector("[data-live-actions--xp-progress-bar-target='skipButton']"),a=s.querySelector("[data-live-actions--xp-progress-bar-target='confirmSkipLevel']"),n=s.querySelector("[data-live-actions--xp-progress-bar-target='progress']"),l=s.querySelector("[data-live-actions--xp-progress-bar-target='levelUnlockNotification']"),d=s.querySelector("[data-live-actions--xp-progress-bar-target='levelLabel']");r&&a&&(r.classList.add("hidden"),a.classList.add("hidden")),n&&(n.style.width="100%"),l&&d&&(l.classList.remove("hidden"),d.classList.add("hidden")),document.dispatchEvent(new CustomEvent("live-actions:skip-level:level-unlocked",{bubbles:!0})),setTimeout(()=>{s.style.transition="transform 0.5s ease-in-out",setTimeout(()=>{i(),requestAnimationFrame(()=>{this.#s();let m=document.getElementById("live-actions-modal-v3");m&&(m.style.transition="transform 0.5s ease-in-out",setTimeout(()=>{m.style.transition=""},500))})},500)},1e3)}#i(){this.hasConfirmSkipLevelTarget&&(this.confirmSkipLevelTarget.disabled=!1,this.confirmSkipLevelTarget.classList.remove("pointer-events-none"),this.confirmSkipLevelTarget.classList.add("hidden")),this.hasSkipButtonTarget&&this.skipButtonTarget.classList.remove("hidden"),document.dispatchEvent(new CustomEvent("live-actions:skip-level:insufficient-tokens-update"))}#s(){let i=this.#r();if(!i)return;let s=i.currentState;if(!s)return;let r=document.getElementById("live-actions-modal-v3");if(!r)return;r.querySelectorAll("[data-action-type]").forEach(n=>{let l=n.dataset.actionType,d=n.closest(".flex.justify-between.items-center.overflow-hidden");s==="nude"&&l==="undress"||s==="clothed"&&l==="re_dress"?d?.classList.add("hidden"):d?.classList.remove("hidden")})}#r(){let i=document.querySelector("[data-controller~='live-actions']");return i?this.application.getControllerForElementAndIdentifier(i,"live-actions"):null}};var Cg=class extends u{static values={xpAmount:Number};connect(){this.#e()}#e(){this.element.classList.add("translate-x-full","opacity-0"),this.element.classList.remove("translate-x-0","opacity-100"),requestAnimationFrame(()=>{this.element.classList.remove("translate-x-full","opacity-0"),this.element.classList.add("translate-x-0","opacity-100")}),setTimeout(()=>{this.#t()},3e3)}#t(){this.element.classList.add("translate-x-full","opacity-0"),this.element.classList.remove("translate-x-0","opacity-100"),setTimeout(()=>{this.element.remove()},500)}};var YT="data-scroll-shadow-frame-failed",UV=`turbo-frame[src]:not([complete]):not([${YT}])`,HV=`turbo-frame[src][loading='lazy']:not([complete]):not([${YT}])`,Eg=class extends u{static targets=["container","leftShadow","rightShadow"];static values={threshold:{type:Number,default:50},fade:{type:Number,default:70},prefetch:{type:Boolean,default:!1}};connect(){this.detectTurboFrames(),this.scheduleUpdate(),this.setupScrollListener(),this.setupResizeObserver(),this.setupContentObserver(),this.setupFrameFailureListeners()}disconnect(){this.resizeObserver&&this.resizeObserver.disconnect(),this.contentObserver&&this.contentObserver.disconnect(),this.pendingFrame&&(cancelAnimationFrame(this.pendingFrame),this.pendingFrame=null),this.scrollHandler&&this.containerTarget.removeEventListener("scroll",this.scrollHandler),this.frameFailureHandler&&(this.element.removeEventListener("turbo:fetch-request-error",this.frameFailureHandler),this.element.removeEventListener("turbo:frame-missing",this.frameFailureHandler))}scheduleUpdate(){this.pendingFrame||=requestAnimationFrame(()=>{this.pendingFrame=null,this.updateShadows()})}setupScrollListener(){this.scrollHandler=()=>{this.userHasScrolled=!0,this.scheduleUpdate()},this.containerTarget.addEventListener("scroll",this.scrollHandler)}setupResizeObserver(){this.resizeObserver=new ResizeObserver(()=>{this.updateShadows()}),this.resizeObserver.observe(this.containerTarget)}setupContentObserver(){typeof MutationObserver>"u"||(this.contentObserver=new MutationObserver(()=>{this.detectTurboFrames(),this.scheduleUpdate()}),this.contentObserver.observe(this.containerTarget,{childList:!0,subtree:!0}))}setupFrameFailureListeners(){this.frameFailureHandler=i=>{let s=i.target;s?.matches?.("turbo-frame")&&(s.setAttribute(YT,""),this.scheduleUpdate())},this.element.addEventListener("turbo:fetch-request-error",this.frameFailureHandler),this.element.addEventListener("turbo:frame-missing",this.frameFailureHandler)}detectTurboFrames(){this.containsTurboFrames=this.containerTarget.querySelector("turbo-frame")!==null}hasPendingBatch(){return this.containsTurboFrames?this.containerTarget.querySelector(UV)!==null:!1}prefetchNextBatch(i,s,r,a){if(!this.prefetchValue||!this.containsTurboFrames||!this.userHasScrolled||!a||s-i>r)return;let n=this.containerTarget.querySelector(HV);n&&n.setAttribute("loading","eager")}updateShadows(){let i=this.containerTarget,s=i.scrollLeft,r=i.scrollWidth,a=i.clientWidth,n=r-a,l=r>a;this.prefetchNextBatch(s,n,a,l);let d=l&&s>this.thresholdValue;this.hasLeftShadowTarget&&this.leftShadowTarget.classList.toggle("hidden",!d);let m=l&&(s<n-this.thresholdValue||this.hasPendingBatch());this.hasRightShadowTarget&&this.rightShadowTarget.classList.toggle("hidden",!m),i.style.setProperty("--fl",d?`${this.fadeValue}px`:"0px"),i.style.setProperty("--fr",m?`${this.fadeValue}px`:"0px")}};var qV="turbo-frame[src][loading='lazy']:not([complete])",Lg=class extends u{static values={margin:{type:Number,default:800}};connect(){this.observer=new IntersectionObserver(this.#t,{rootMargin:`${this.marginValue}px 0px`}),this.element.addEventListener("turbo:frame-load",this.#e),this.#e()}disconnect(){this.element.removeEventListener("turbo:frame-load",this.#e),this.observer.disconnect()}#e=()=>
230{this.element.querySelectorAll(qV).forEach(i=>this.observer.observe(i))};#t=i=>{i.forEach(s=>{s.isIntersecting&&(s.target.setAttribute("loading","eager"),this.observer.unobserve(s.target))})}};var kg=class{constructor({likeIconUrl:s,unlikeIconUrl:r}){this.likeIconUrl=s,this.unlikeIconUrl=r,this.preloadImage=null,this.preloadTimeouts=new Set}async handleLikeClick(s,r){s.preventDefault(),s.stopPropagation();let a=s.currentTarget,n=r.find(v=>v.id.toString()===a.dataset.postId.toString());if(!n)return;let l=n.likes_count,d=!n.user_liked,m=d?l+1:Math.max(0,l-1);this.setLikeState(a,d,m,n);try{(await H(`/feed/posts/${n.id}/like`,{body:JSON.stringify({user_action:d?"like":"unlike"})})).ok||(this.setLikeState(a,!d,l,n),te.error("Failed to update like status"))}catch(v){this.setLikeState(a,!d,l,n),te.error("Error updating like:",v)}}setLikeState(s,r,a,n){let l=s.querySelector("[data-feed-like-count]");l&&(l.textContent=a),n.user_liked=r,n.likes_count=a;let d=s.querySelector("[data-feed-like-icon]");d&&this.applySplashAnimation(d,r)}applySplashAnimation(s,r){let a=r?this.unlikeIconUrl:this.likeIconUrl,n=!1;this.preloadImage&&(this.preloadImage.onload=null,this.preloadImage.src=""),this.preloadImage||(this.preloadImage=new window.Image),this.preloadImage.src=a,s.classList.add("feed-like-splash"),this.preloadImage.onload=()=>{if(!n){let m=setTimeout(()=>{s.src=a,n=!0,this.preloadTimeouts.delete(m)},150);this.preloadTimeouts.add(m)}};let l=setTimeout(()=>{n||(s.src=a,n=!0),this.preloadTimeouts.delete(l)},150);this.preloadTimeouts.add(l);let d=setTimeout(()=>{s.classList.remove("feed-like-splash"),this.preloadTimeouts.delete(d)},400);this.preloadTimeouts.add(d)}cleanup(){this.preloadImage&&(this.preloadImage.onload=null,this.preloadImage.src="",this.preloadImage=null),this.preloadTimeouts.forEach(s=>clearTimeout(s)),this.preloadTimeouts.clear()}};var XT=class{constructor(){}feedVisited(){this.#e("Feed Visited",{})}chatClicked(s,r){this.#e("Feed Chat Clicked",{Character:s,video_name:r},{transport:"sendBeacon"})}endOfFeedReached(){this.#e("Viewed Feed End",{})}videoViewed(s,r){this.#e("Feed Video Viewed",{Character:s,video_name:r})}#e(s,r,a){typeof window.mixpanel<"u"&&window.mixpanel.track&&window.mixpanel.track(s,{...r,Product:"Feed",Source:"Navigation Menu"},a)}},t0=XT;var $V=1e3,GV=5,As=class extends u{static values={url:String,userType:String,likeIconUrl:String,unlikeIconUrl:String,refreshIconUrl:String,viewPostUrlTemplate:String};initializeCommonState(){this.posts=[],this.currentIndex=0,this.isFetching=!1,this.hasMorePosts=!0,this.endOfFeedShown=!1,this.fetchFailures=0,this.fetchRetryTimeout=null,this.trackedPostIds=new Set,this.trackViewTimeout=null,this.trackedVideoIds=new Set}async connectCommon(){Mt(this),this.feedTracker=new t0,this.likeHandler=new kg({likeIconUrl:this.likeIconUrlValue,unlikeIconUrl:this.unlikeIconUrlValue})}async fetchPosts(){try{let s=await Ee(this.urlValue);if(!s.ok)throw new Error("Request failed");return this.extractPosts(await s.json)}catch(s){return te.error("[Feed] Failed to load feed:",s),this.hasLoadingTarget&&(this.loadingTarget.textContent="Failed to load feed"),[]}}async fetchMorePosts(){if(this.isFetching||!this.hasMorePosts)return te.log("[Feed] fetchMorePosts - skipping, isFetching:",this.isFetching,"hasMorePosts:",this.hasMorePosts),!1;te.log("[Feed] fetchMorePosts - starting, current posts:",this.posts.length),this.isFetching=!0,clearTimeout(this.fetchRetryTimeout);try{let s=this.nextPageUrl();te.log("[Feed] fetchMorePosts - requesting:",s);let r=await Ee(s);if(!r.ok)throw new Error("Request failed");let a=this.withoutHeldPosts(this.extractPosts(await r.json));return a.length===0?(te.log("[Feed] fetchMorePosts - no more posts available"),this.hasMorePosts=!1,this.showEndOfFeed(),!1):(te.log("[Feed] fetchMorePosts - received",a.length,"new posts"),this.posts.push(...a),this.fetchFailures=0,!0)}catch(s){return te.error("[Feed] fetchMorePosts - failed:",s),this.scheduleFetchRetry(),!1}finally{this.isFetching=!1}}scheduleFetchRetry(){if(this.fetchFailures>=GV)return;let s=$V*2**this.fetchFailures;this.fetchFailures+=1,this.fetchRetryTimeout=setTimeout(()=>this.fetchMorePosts(),s)}extractPosts(s){return Array.isArray(s)?s:[]}withoutHeldPosts(s){return s}nextPageUrl(){let s=this.posts[this.posts.length-1],r=new globalThis.URL(this.urlValue,window.location.origin);return r.searchParams.set("last_viewed_post_id",s.id),r.searchParams.set("limit","10"),r.toString()}trackView(s){clearTimeout(this.trackViewTimeout),this.trackViewTimeout=setTimeout(()=>{this.trackViewImmediate(s)},300)}async trackViewImmediate(s){let r=this.posts[s];
230if(r&&!this.isGuest()&&!this.trackedPostIds.has(r.id)){this.trackedPostIds.add(r.id);try{let a=this.viewPostUrlTemplateValue.replace(":id",r.id);await H(a,{responseKind:"json"})}catch{}}}isGuest(){return this.userTypeValue?.toLowerCase()==="guest"}isAtLastPostIndex(s){let r=this.posts.length-1;return s>=r}handleChatNavigation(s){let r=s.currentTarget,a=r.dataset.characterName,n=r.dataset.videoName;a&&this.feedTracker.chatClicked(a,n)}attachVideoViewTracking(s,r){if(s.dataset.playHandlerAttached)return;let a=()=>{let n=this.posts[r];if(!n)return;let l=`${n.id}`;if(this.trackedVideoIds.has(l))return;this.trackedVideoIds.add(l);let d=n.filename||"unknown",m=n.profile?.name||"Unknown";this.feedTracker.videoViewed(m,d)};s._playHandler=a,s.addEventListener("play",a,{once:!1}),s.dataset.playHandlerAttached="true"}cleanupVideoElement(s){s&&(s.pause(),s.removeAttribute("src"),s.load(),s._playHandler&&(s.removeEventListener("play",s._playHandler),delete s._playHandler),delete s.dataset.playHandlerAttached,delete s.dataset.errorHandlerAttached)}disconnectCommon(){clearTimeout(this.trackViewTimeout),clearTimeout(this.fetchRetryTimeout),this.trackedPostIds.clear(),this.trackedVideoIds.clear(),this.likeHandler&&typeof this.likeHandler.cleanup=="function"&&this.likeHandler.cleanup()}};function xg(i,s){let r=document.createElement("div");return r.className="feed-post feed-end-of-feed relative w-full h-full bg-black-dark flex items-center justify-center",r.dataset.index=i,r.dataset.endOfFeed="true",r.innerHTML=`
231    <div class="flex flex-col gap-4 items-center text-center px-4">
232      <div class="flex flex-col gap-[13px] items-center">
233        <p class="text-white text-[18px] leading-6 font-semibold font-poppins w-[260px]">
234          That's it for now!
235        </p>
236        <p class="text-[#7d7d7d] text-[14px] leading-5 font-medium font-poppins w-[275px]">
237          You've run out of videos, please refresh or come back later for new content
238        </p>
239      </div>
240      <div class="w-[260px]">
241        <button
242          class="bg-[#e75275] rounded-[10px] px-4 py-3 flex gap-2 items-center justify-center w-full cursor-pointer"
243          onclick="window.location.reload()"
244        >
245          <img src="${s}" alt="" class="w-4 h-4" />
246          <span class="text-white text-[14px] leading-5 font-semibold font-poppins whitespace-nowrap">
247            Refresh feed
248          </span>
249        </button>
250      </div>
251    </div>
252  `,r}function WV(i,s,r,a){let{profile:n,likes_count:l,user_liked:d,id:m}=i||{},v=n?.name||"",E=i?.filename||"unknown",D=d?r:s;return`
253    <div class="absolute bottom-0 left-0 right-0 h-[160px] bg-gradient-to-b from-transparent to-black/30 flex flex-col justify-end pb-[calc(30px+env(safe-area-inset-bottom))] px-4">
254      <div class="flex gap-[40px] items-end justify-end w-full">
255        <div class="flex-1 flex flex-col gap-3 min-w-0">
256          <div class="flex gap-2 items-center w-full">
257            <a
258              href="${n?.link}"
259              data-action="click->feed--mobile#handleChatNavigation click->feed--mobile#handleProfileNavigation"
260              data-character-name="${v}"
261              data-video-name="${E}"
262              data-turbo="false"
263              class="w-8 h-8 rounded-full overflow-hidden shrink-0"
264            >
265              <img src="${n?.avatar_url}" alt="${v}" class="w-full h-full object-cover" />
266            </a>
267            <a
268              href="${n?.link}"
269              data-action="click->feed--mobile#handleChatNavigation click->feed--mobile#handleProfileNavigation"
270              data-character-name="${v}"
271              data-video-name="${E}"
272              data-turbo="false"
273            >
274              <div class="text-white text-[18px] leading-6 font-semibold font-poppins whitespace-nowrap overflow-hidden text-ellipsis min-w-0">${v}</div>
275            </a>
276            <a
277              href="${n?.link}"
278              data-action="click->feed--mobile#handleChatNavigation click->feed--mobile#handleProfileNavigation"
279              data-character-name="${v}"
280              data-video-name="${E}"
281              data-turbo="false"
282              class="backdrop-blur-[5px] bg-black/20 border border-white/40 rounded-[8px] px-[9px] py-[7px] shrink-0 flex items-center justify-center"
283            >
284              <span class="text-white text-xs leading-4 font-medium font-poppins whitespace-nowrap">${a.getTranslation("feed.chat_now")}</span>
285            </a>
286          </div>
287          ${i?.description?`<p class="text-[#e8e8e8] text-xs leading-4 font-medium font-poppins overflow-hidden line-clamp-3 cursor-pointer transition-all" data-feed-description>${i.description}</p>`:""}
288        </div>
289        <div class="flex flex-col gap-5 items-center pb-[3px]">
290          <div class="flex flex-col gap-2 items-center cursor-pointer" data-feed-like-button data-post-id="${m}" data-action="click->feed--mobile#handleLike">
291            <div class="relative w-[36px] h-[32px]">
292              <img src="${D}" alt="like" class="w-full h-full" data-feed-like-icon />
293            </div>
294            <p class="text-white text-xs leading-4 font-medium font-poppins" style="text-shadow: rgba(0,0,0,0.35) 0px 0px 5px" data-feed-like-count>${l||0}</p>
295          </div>
296          <div class="cursor-pointer w-[25px] h-5 items-end justify-center hidden">
297            <svg class="w-[21px] h-1" fill="white" viewBox="0 0 21 4">
298              <circle cx="2" cy="2" r="2"/>
299              <circle cx="10.5" cy="2" r="2"/>
300              <circle cx="19" cy="2" r="2"/>
301            </svg>
302          </div>
303        </div>
304      </div>
305    </div>
306  `}function i0(i,s,r,a,n){te.log("[Feed] createSlideElement - index:",s,"postId:",i?.id,"contentType:",i?.content_type);let{content_type:l,file_url:d,profile:m,id:v}=i||{},E=m?.name||"";(!i||!d)&&te.error("[Feed] createSlideElement - missing post data or file_url");let D=document.createElement("div");D.className="feed-post relative w-full",D.dataset.postId=v,D.dataset.index=s;let R=l==="video"?`
307      <div class="feed-video-container">
308        <div class="absolute inset-0 flex items-center justify-center">
309          <div class="w-16 h-16 border-4 border-zinc-700 border-t-white rounded-full animate-spin-slow"></div>
310        </div>
311        <video
312          src="${d}"
313          class="absolute inset-0 w-full h-full object-cover cursor-pointer"
314          muted
315          playsinline
316          loop
317          preload="auto"
318          webkit-playsinline="true"
319          x-webkit-airplay="allow"
320          data-feed-video
321        ></video>
322      </div>
323    `:`<img
324        class="absolute inset-0 w-full h-full object-cover"
325        src="${d}"
326        alt="${E}"
327        loading="lazy"
328      />`,W=WV(i,r,a,n);return D.innerHTML=`${R}${W}`,te.log("[Feed] createSlideElement - created slide for index:",s),D}var jV=8,or=class extends As{static targets=["content","loading","registrationModal","playIcon"];initialize(){this.initializeCommonState(),this.isNavigating=!1,this.windowBefore=2,this.windowAfter=2,this.drag={active:!1,startY:0,deltaY:0,startTime:0},this.slides=new Map,this.transitioning=!1,this.pendingDirection=null,this.videoRetryAttempts=new Map,this.maxVideoRetries=2,this.handleTouchStart=this.handleTouchStart.bind(this),this.handleTouchMove=this.handleTouchMove.bind(this),this.handleTouchEnd=this.handleTouchEnd.bind(this),this.handleTransitionEnd=this.handleTransitionEnd.bind(this),this.handleDescriptionClick=this.handleDescriptionClick.bind(this),this.handleVideoClick=this.handleVideoClick.bind(this),this.handleVideoError=this.handleVideoError.bind(this)}async connect(){if(te.log("[Feed] Controller connecting..."),await this.connectCommon(),this.element.style.touchAction="none",this.stackElement=this.contentTarget.querySelector(".feed-stack"),this.stackElement||(this.stackElement=document.createElement("div"),this.stackElement.className="feed-stack absolute inset-0",this.contentTarget.appendChild(this.stackElement)),this.posts=await this.fetchPosts(),te.log("[Feed] Initial posts loaded:",this.posts.length),this.hasLoadingTarget&&this.loadingTarget.classList.add("hidden"),this.posts.length===0)return te.log("[Feed] No posts available, rendering empty state"),this.renderEmpty();this.renderWindow();let i=this.slides.values().next().value;this.windowHeight=i?.offsetHeight||window.innerHeight,te.log("[Feed] Window height:",this.windowHeight),this.positionSlides(),this.updateVideoPlayback(),this.attachPlayIconToCurrentSlide(),this.attachListeners(),te.log("[Feed] Event listeners attached"),this.feedTracker.feedVisited(),this.element.dispatchEvent(new CustomEvent("feed:ready",{bubbles:!0})),te.log("[Feed] Controller connected successfully")}async fetchMorePosts(){await super.fetchMorePosts()&&(this.renderWindow(),this.positionSlides())}renderWindow(){let i=this.posts.length,s=Math.max(0,this.currentIndex-this.windowBefore),r=Math.min(i-1,this.currentIndex+this.windowAfter);te.log("[Feed] renderWindow - currentIndex:",this.currentIndex,"window:",s,"to",r,"totalPosts:",i);let a=i;this.endOfFeedShown&&this.currentIndex>=i-this.windowAfter&&(r=a,te.log("[Feed] renderWindow - including end of feed slide"));let n=0;for(let[d,m]of this.slides.entries())if(!(d===a&&this.endOfFeedShown)&&(d<s||d>r)){let E=m.querySelector("video");E&&(E.dataset.errorHandlerAttached&&E.removeEventListener("error",this.handleVideoError),this.videoRetryAttempts.delete(E),this.cleanupVideoElement(E)),m.remove(),this.slides.delete(
328d),n++}n>0&&te.log("[Feed] renderWindow - removed",n,"slides outside window");let l=0;for(let d=s;d<=r;d++)if(!this.slides.has(d)&&d<i){te.log("[Feed] renderWindow - creating slide for index:",d);let m=this.buildSlide(this.posts[d],d);this.stackElement.appendChild(m),this.slides.set(d,m),l++}l>0&&te.log("[Feed] renderWindow - added",l,"new slides"),te.log("[Feed] renderWindow - complete, total slides in DOM:",this.slides.size),this.checkAndFetchMore()}buildSlide(i,s){return i0(i,s,this.likeIconUrlValue,this.unlikeIconUrlValue,this)}buildEndOfFeedSlide(i){return xg(i,this.refreshIconUrlValue)}positionSlides(){for(let[i,s]of this.slides.entries()){let r=i-this.currentIndex;s.style.transform=`translateY(${r*this.windowHeight}px)`,i===this.currentIndex?s.classList.add("current-slide"):s.classList.remove("current-slide")}}async checkAndFetchMore(){let s=this.posts.length-1-this.currentIndex;s<=3&&!this.isFetching&&this.hasMorePosts&&await this.fetchMorePosts(),!this.hasMorePosts&&!this.endOfFeedShown&&s===0&&this.showEndOfFeed()}attachListeners(){this.stackElement.addEventListener("touchstart",this.handleTouchStart,{passive:!1}),this.stackElement.addEventListener("touchmove",this.handleTouchMove,{passive:!1}),this.stackElement.addEventListener("touchend",this.handleTouchEnd,{passive:!1}),this.stackElement.addEventListener("transitionend",this.handleTransitionEnd),this.stackElement.addEventListener("click",this.handleDescriptionClick),this.stackElement.addEventListener("click",this.handleVideoClick)}handleTouchStart(i){if(te.log("[Feed] Touch start - transitioning:",this.transitioning,"currentIndex:",this.currentIndex),this.transitioning){te.log("[Feed] Touch start blocked - transition in progress");return}let s=i.touches?.[0];if(!s){te.log("[Feed] Touch start - no touch data");return}this.drag.active=!0,this.drag.startY=s.clientY,this.drag.deltaY=0,this.drag.startTime=globalThis.performance.now(),te.log("[Feed] Touch start active - Y:",s.clientY),this.stackElement.classList.remove("animate-snap","animate-bounce")}handleTouchMove(i){if(!this.drag.active||this.transitioning)return;let s=i.touches?.[0];s&&(this.drag.deltaY=s.clientY-this.drag.startY,i.preventDefault(),this.stackElement.style.transform=`translateY(${this.drag.deltaY}px)`)}handleTouchEnd(i){if(te.log("[Feed] Touch end - active:",this.drag.active,"transitioning:",this.transitioning,"deltaY:",this.drag.deltaY),!this.drag.active||this.transitioning){te.log("[Feed] Touch end blocked - not active or transitioning");return}this.drag.active=!1;let s=this.drag.deltaY,r=Math.max(1,globalThis.performance.now()-this.drag.startTime),a=s/r,n=Math.min(120,this.windowHeight*.18),l=.35,d=Math.abs(s)>n,m=Math.abs(a)>l;te.log("[Feed] Touch end metrics - deltaY:",s,"velocity:",a.toFixed(3),"distancePass:",d,"velocityPass:",m);let v=this.endOfFeedShown?this.posts.length:this.posts.length-1;s<0&&(d||m)?(te.log("[Feed] Swipe up detected - currentIndex:",this.currentIndex,"maxIndex:",v),this.hasRegistrationModalTarget&&(this.currentIndex+1>=jV||this.currentIndex>=v)?(te.log("[Feed] Showing registration modal - at limit or end of feed"),this.showRegistrationModal(),this.snapBack()):this.currentIndex<v?(te.log("[Feed] Committing to next slide"),this.commitSlide("next")):(te.log("[Feed] At end, snapping back"),this.snapBack())):s>0&&(d||m)?(te.log("[Feed] Swipe down detected - currentIndex:",this.currentIndex),this.currentIndex>0?(te.log("[Feed] Committing to previous slide"),this.commitSlide("prev")):(te.log("[Feed] At start, snapping back"),this.snapBack())):(te.log("[Feed] Insufficient momentum, snapping back"),this.snapBack()),this.drag.deltaY=0}commitSlide(i){te.log("[Feed] commitSlide - direction:",i,"from index:",this.currentIndex,"transitioning:",this.transitioning),this.transitioning=!0,this.pendingDirection=i;let s=i==="next"?-this.windowHeight:this.windowHeight;this.stackElement.classList.add("animate-snap"),this.stackElement.style.transform=`translateY(${s}px)`,te.log("[Feed] commitSlide - transition started, targetY:",s)}showEndOfFeed(){if(this.endOfFeedShown||this.hasRegistrationModalTarget)return;this.endOfFeedShown=!0;let i=this.posts.length,s=this.buildEndOfFeedSlide(i);this.stackElement.appendChild(s),this.slides.set(i,s);let r=i-this.currentIndex;s.style.transform=`translateY(${r*this.windowHeight}px)`,this.feedTracker.endOfFeedReached()}
328handleTransitionEnd(i){if(te.log("[Feed] handleTransitionEnd - event.target:",i.target?.className,"pendingDirection:",this.pendingDirection),i.target!==this.stackElement){te.log("[Feed] handleTransitionEnd - ignoring, wrong target");return}if(!this.pendingDirection){te.log("[Feed] handleTransitionEnd - ignoring, no pending direction");return}let s=this.currentIndex;te.log("[Feed] handleTransitionEnd - processing transition from index:",s,"direction:",this.pendingDirection),this.pendingDirection==="next"?this.currentIndex+=1:this.pendingDirection==="prev"&&(this.currentIndex-=1),te.log("[Feed] handleTransitionEnd - new index:",this.currentIndex),this.onSlideSettled(s),this.dismissSwipeOverlay(),this.pendingDirection=null,this.transitioning=!1,te.log("[Feed] handleTransitionEnd - transitioning flag cleared"),this.stackElement.classList.remove("animate-snap"),this.stackElement.style.transform="translateY(0)",this.renderWindow(),this.positionSlides(),this.updateVideoPlayback(),this.attachPlayIconToCurrentSlide(),te.log("[Feed] handleTransitionEnd - completed, ready for next interaction")}onSlideSettled(i){this.trackView(i)}handleDescriptionClick(i){let s=i.target.closest("[data-feed-description]");s&&s.classList.toggle("line-clamp-3")}handleVideoClick(i){if(Math.abs(this.drag.deltaY)>10)return;let r=i.target.closest("[data-feed-video]");r&&(r.paused?(r.play().catch(()=>{}),this.togglePlayIcon(!1)):(r.pause(),this.togglePlayIcon(!0)))}snapBack(){te.log("[Feed] snapBack - resetting position"),this.stackElement.classList.add("animate-snap"),this.stackElement.style.transform="translateY(0)",setTimeout(()=>{this.stackElement.classList.remove("animate-snap"),te.log("[Feed] snapBack - animation complete")},300)}updateVideoPlayback(){te.log("[Feed] updateVideoPlayback - currentIndex:",this.currentIndex,"total slides:",this.slides.size);for(let[i,s]of this.slides.entries()){let r=s.querySelector("video");r&&(i===this.currentIndex?(r.dataset.errorHandlerAttached||(r.addEventListener("error",this.handleVideoError),r.dataset.errorHandlerAttached="true"),this.attachVideoViewTracking(r,i),te.log("[Feed] Playing video at index:",i,"readyState:",r.readyState,"networkState:",r.networkState),this.playVideo(r),this.togglePlayIcon(!1)):(i>this.currentIndex&&r.readyState===0&&r.networkState!==2&&r.load(),r.pause()))}}playVideo(i){i.play().catch(s=>{te.error("[Feed] Video play failed:",s)})}handleVideoError(i){let s=i.target,r=this.videoRetryAttempts.get(s)||0;if(te.error("[Feed] Video error - retries:",r,"error:",i.target.error),r<this.maxVideoRetries){this.videoRetryAttempts.set(s,r+1);let a=500*Math.pow(2,r);te.log("[Feed] Video retry scheduled in",a,"ms"),setTimeout(()=>{this.slides.get(this.currentIndex)?.querySelector("video")===s?(te.log("[Feed] Retrying video load"),s.load(),s.play().catch(()=>{})):te.log("[Feed] Skipping retry - video no longer current")},a)}else te.error("[Feed] Video failed after",this.maxVideoRetries,"retries")}togglePlayIcon(i){this.hasPlayIconTarget&&(this.playIconTarget.style.display=i?"flex":"none")}attachPlayIconToCurrentSlide(){if(!this.hasPlayIconTarget)return;let i=this.slides.get(this.currentIndex);i&&i.appendChild(this.playIconTarget)}renderEmpty(){let i=this.buildEndOfFeedSlide(0);this.stackElement.appendChild(i)}dismissSwipeOverlay(){this.element.dispatchEvent(new CustomEvent("feed:interaction",{bubbles:!0,detail:{source:"swipe"}}))}async showRegistrationModal(){let i=this.application.getControllerForElementAndIdentifier(document.body,"main")||this.application.getControllerForElementAndIdentifier(document.querySelector("[data-controller~='main']"),"main");if(i&&typeof i.openRegistrationModal=="function")try{if(await i.openRegistrationModal({preventDefault:()=>{},currentTarget:{dataset:{}}}),i.hasRegistrationModalTarget)return}catch{this.hasRegistrationModalTarget&&(this.registrationModalTarget.style.display="flex");return}this.hasRegistrationModalTarget&&(this.registrationModalTarget.style.display="flex")}closeRegistrationModal(i){i&&(i.preventDefault(),i.stopPropagation()),this.hasRegistrationModalTarget&&(this.registrationModalTarget.style.display="none")}handleLike(i){i.preventDefault(),i.stopPropagation(),te.log("[Feed] handleLike - hasRegistrationModalTarget:",this.hasRegistrationModalTarget),this.hasRegistrationModalTarget?(te.log("[Feed] Showing registration modal"),this.showRegistrationModal()):(te.log("[Feed] Processing like for authenticated user"),this.trackView(this.currentIndex),this.likeHandler.handleLikeClick(i,this.posts))}handleProfileNavigation(i){i.preventDefault();let s=i.currentTarget,r=s.closest(".feed-post");if(r){this.isNavigating=!0;let a=document.createElement("div");a.className="absolute inset-0 flex items-center justify-center z-50",a.style.backgroundColor="rgba(0, 0, 0, 0.2)",a.innerHTML='<div class="w-16 h-16 border-4 border-zinc-700 border-t-white rounded-full animate-spin-slow"></div>',r.appendChild(a)}setTimeout(()=>{window.location.href=s.href},100)}disconnect(){te.log("[Feed] Controller disconnecting..."),this.stackElement&&(this.stackElement.removeEventListener("touchstart",this.handleTouchStart),this.stackElement.removeEventListener("touchmove",this.handleTouchMove),this.stackElement.removeEventListener("touchend",this.handleTouchEnd),this.stackElement.removeEventListener("transitionend",this.handleTransitionEnd),this.stackElement.removeEventListener("click",this.handleDescriptionClick),this.stackElement.removeEventListener("click",this.handleVideoClick));for(let i of this.slides.values()){let s=i.querySelector("video");s&&(s.dataset.errorHandlerAttached&&s.removeEventListener("error",this.handleVideoError),this.cleanupVideoElement(s)),i.remove()}this.slides.clear(),this.videoRetryAttempts.clear(),this.disconnectCommon(),te.log("[Feed] Controller disconnected")}};function KV(i,s){let{profile:r}=i||{},a=r?.name||"",n=i?.filename||"unknown";return`
329    <div class="feed-desktop-overlay">
330      <div class="flex gap-[40px] items-end justify-end w-full">
331        <div class="flex-1 flex flex-col gap-3 min-w-0">
332          <div class="flex gap-2 items-center w-full">
333            <a
334              href="${r?.link}"
335              data-action="click->
335feed--desktop#handleChatNavigation click->feed--desktop#handleProfileNavigation"
336              data-character-name="${a}"
337              data-video-name="${n}"
338              data-turbo="false"
339              class="w-8 h-8 rounded-full overflow-hidden shrink-0"
340            >
341              <img src="${r?.avatar_url}" alt="${a}" class="w-full h-full object-cover" />
342            </a>
343            <a
344              href="${r?.link}"
345              data-action="click->feed--desktop#handleChatNavigation click->feed--desktop#handleProfileNavigation"
346              data-character-name="${a}"
347              data-video-name="${n}"
348              data-turbo="false"
349            >
350              <div class="text-white text-[18px] leading-6 font-semibold font-poppins whitespace-nowrap overflow-hidden text-ellipsis min-w-0">${a}</div>
351            </a>
352            <a
353              href="${r?.link}"
354              data-action="click->feed--desktop#handleChatNavigation click->feed--desktop#handleProfileNavigation"
355              data-character-name="${a}"
356              data-video-name="${n}"
357              data-turbo="false"
358              class="backdrop-blur-[5px] bg-black/20 border border-white/40 rounded-[8px] px-[9px] py-[7px] shrink-0 flex items-center justify-center"
359            >
360              <span class="text-white text-xs leading-4 font-medium font-poppins whitespace-nowrap">${s.getTranslation("feed.chat_now")}</span>
361            </a>
362          </div>
363          ${i?.description?`<p class="text-[#e8e8e8] text-sm leading-[22px] font-medium font-poppins overflow-hidden line-clamp-3 cursor-pointer transition-all" data-feed-description>${i.description}</p>`:""}
364      </div>
365    </div>
366  `}function s0(i,s,r,a,n){te.log("[Feed Desktop] createDesktopSlideElement - index:",s,"postId:",i?.id,"contentType:",i?.content_type);let{content_type:l,file_url:d,profile:m,id:v}=i||{},E=m?.name||"";(!i||!d)&&te.error("[Feed Desktop] createDesktopSlideElement - missing post data or file_url");let D=document.createElement("div");D.className="feed-desktop-video feed-desktop-item",D.dataset.postId=v,D.dataset.index=s;let R=l==="video"?`
367      <div class="absolute inset-0">
368        <div class="absolute inset-0 flex items-center justify-center">
369          <div class="w-16 h-16 border-4 border-zinc-700 border-t-white rounded-full animate-spin-slow"></div>
370        </div>
371        <video
372          src="${d}"
373          class="absolute inset-0 w-full h-full object-cover cursor-pointer feed-desktop-media"
374          muted
375          playsinline
376          loop
377          preload="metadata"
378          webkit-playsinline="true"
379          x-webkit-airplay="allow"
380          data-feed-video
381        ></video>
382      </div>
383    `:`<img
384        class="absolute inset-0 w-full h-full object-cover cursor-pointer feed-desktop-media"
385        src="${d}"
386        alt="${E}"
387        loading="lazy"
388      />`,W=KV(i,n);return D.innerHTML=`${R}${W}`,te.log("[Feed Desktop] createDesktopSlideElement - created slide for index:",s),D}var r0=8,a0=.5,zV=250,o0=955,YV=10,n0=o0+YV,XV=1,QV=1,lr=class extends As{static targets=["content","loading","playIcon","likeHud","likeHudIcon","likeHudCount","likeHudButton"];initialize(){this.initializeCommonState(),this.isNavigating=!1,this.windowBefore=4,this.windowAfter=4,this.slides=new Map,this.topSpacer=null,this.bottomSpacer=null,this.scrollTimeout=null,this.isScrolling=!1,this.lastScrollTop=0,this.isUserScrolling=!1,this.lastScrollDirection=null,this.intersectionUpdateTimeout=null,this.keydownTimeout=null,this.lastKeyEvent=null,this.intersectionUpdatesDisabled=!1,this.intersectionDisableTimeout=null,this.intersectionCooldownUntil=0,this.isRenderingWindow=null,this.pendingRender=!1,this._renderWindowResolve=null,this.observer=null,this.itemHeight=o0,this.itemFullHeight=n0,this.resizeTimeout=null,this.handleScroll=this.handleScroll.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleDescriptionClick=this.handleDescriptionClick.bind(this),this.handleVideoClick=this.handleVideoClick.bind(this),this.handleWheel=this.handleWheel.bind(this),this.handleResize=this.handleResize.bind(this)}async connect(){if(te.log("[Feed Desktop] Controller connecting..."),await this.connectCommon(),this.containerElement=this.scrollContainer(),!this.containerElement){te.error("[Feed Desktop] Container not found");return}if(this.posts=await this.fetchPosts(),te.log("[Feed Desktop] Initial posts loaded:",this.posts.length),this.isGuest
388()&&this.posts.length>r0&&(this.posts=this.posts.slice(0,r0),this.hasMorePosts=!1,te.log("[Feed Desktop] Limited posts for guest user to:",this.posts.length)),this.hasLoadingTarget&&this.loadingTarget.classList.add("hidden"),this.posts.length===0)return te.log("[Feed Desktop] No posts available, rendering empty state"),this.renderEmpty();this.ensureSpacers(),this.renderWindow(),this.updateLikeHud(),this.setupIntersectionObserver(),this.attachListeners(),te.log("[Feed Desktop] Event listeners attached"),this.feedTracker.feedVisited(),te.log("[Feed Desktop] Controller connected successfully")}scrollContainer(){return this.element}async fetchMorePosts(){if(this.isGuest()){te.log("[Feed Desktop] fetchMorePosts - skipping, guest user limit reached");return}await super.fetchMorePosts(),this.posts.length>0&&this.renderWindow()}getCurrentPostInfo(){let i=this.posts[this.currentIndex];return i?{index:this.currentIndex,id:i.id,contentType:i.content_type||"unknown"}:{index:this.currentIndex,id:"none",contentType:"none"}}ensureSpacers(){this.topSpacer||(this.topSpacer=document.createElement("div"),this.topSpacer.style.height="0px",this.contentTarget.appendChild(this.topSpacer)),this.bottomSpacer||(this.bottomSpacer=document.createElement("div"),this.bottomSpacer.style.height="0px",this.contentTarget.appendChild(this.bottomSpacer))}getItemFullHeight(){return this.itemFullHeight||n0}getFirstRenderedSlide(){if(!this.hasContentTarget)return null;let i=Array.from(this.contentTarget.children);for(let s of i)if(!(s===this.topSpacer||s===this.bottomSpacer)&&s.dataset&&typeof s.dataset.index<"u")return s;return null}measureItemHeight(i=!1){let s=this.getFirstRenderedSlide();if(!s)return!1;let r=s.getBoundingClientRect();if(!r||r.height===0)return!1;let a=window.getComputedStyle(s),n=parseFloat(a.marginTop||"0"),l=parseFloat(a.marginBottom||"0"),d=r.height,m=d+n+l;return!Number.isFinite(m)||m<=0||!(Math.abs(m-this.itemFullHeight)>1)&&!i?!1:(this.itemHeight=d,this.itemFullHeight=m,!0)}getTotalCount(){return this.posts.length+(this.endOfFeedShown?1:0)}isEndOfFeedIndex(i){return this.endOfFeedShown&&i===this.posts.length}renderWindow(){if(this.isRenderingWindow){this.pendingRender||(this.pendingRender=!0,this.isRenderingWindow.then(()=>{this.pendingRender=!1,this.renderWindow()})),te.log("[Feed Desktop] renderWindow - queuing render, already rendering");return}this.isRenderingWindow=new Promise(i=>{this._renderWindowResolve=i});try{let i=this.posts.length,s=this.getTotalCount(),r=this.windowBefore+XV,a=this.windowAfter+QV,n=Math.max(0,this.currentIndex-r),l=Math.min(i-1,this.currentIndex+a);this.endOfFeedShown&&this.currentIndex>=Math.max(0,i-a)&&(l=Math.min(s-1,this.currentIndex+a));for(let[R,W]of this.slides.entries()){let Q=Number(R);if(Q<n||Q>l){let X=W.querySelector("video");X&&this.cleanupVideoElement(X),this.observer&&this.observer.unobserve(W),W.remove(),this.slides.delete(Q)}}for(let R=n;R<=l;R++)if(!this.slides.has(R)){let W=this.isEndOfFeedIndex(R)?this.buildEndOfFeedSlide(R):this.buildSlide(this.posts[R],R),Q=this.bottomSpacer,X=Array.from(this.contentTarget.children),ie=X.indexOf(this.topSpacer),ce=X.indexOf(this.bottomSpacer);for(let oe=ie+1;oe<ce;oe++){let Z=X[oe],se=Z.dataset.index?parseInt(Z.dataset.index,10):null;if(!(!se||!this.slides.has(se))&&se>R){Q=Z;break}}this.contentTarget.insertBefore(W,Q),this.slides.set(R,W),this.observer&&this.observer.observe(W)}this.measureItemHeight();let d=this.getItemFullHeight(),m=n,v=Math.max(0,s-(l+1)),E=m*d,D=v*d;this.topSpacer.style.height=`${E}px`,this.bottomSpacer.style.height=`${D}px`,te.log(`[Feed Desktop] renderWindow - spacers updated: top=${E}px (${m} items), bottom=${D}px (${v} items), window: ${n}-${l}`)}finally{this._renderWindowResolve&&(this._renderWindowResolve(),this._renderWindowResolve=null),this.isRenderingWindow=null}}buildSlide(i,s){return s0(i,s,this.likeIconUrlValue,this.unlikeIconUrlValue,this)}buildEndOfFeedSlide(i){let s=xg(i,this.refreshIconUrlValue);return s.classList.add("feed-desktop-video"),s}renderEmpty(){let i=this.buildEndOfFeedSlide(0);this.ensureSpacers(),this.contentTarget.insertBefore(i,this.bottomSpacer||null),this.slides.set(0,i),this.hasLikeHudTarget&&(this.likeHudTarget.style.visibility="hidden")}
388showEndOfFeed(){if(this.isGuest()){te.log("[Feed Desktop] showEndOfFeed - skipping for guest user");return}this.endOfFeedShown||(this.endOfFeedShown=!0,this.renderWindow(),this.feedTracker.endOfFeedReached())}setupIntersectionObserver(){let i={root:this.containerElement,threshold:[0,.25,.5,.75,1]};this.observer=new IntersectionObserver(s=>{s.forEach(r=>{let a=r.target,n=a.dataset.endOfFeed==="true",l=r.intersectionRatio;if(n){this.hasLikeHudTarget&&(this.likeHudTarget.style.visibility=l>a0?"hidden":"visible");return}let d=a.querySelector("video");if(d)if(l>a0){a.classList.add("is-visible"),d.paused&&(this.playVideo(d),this.togglePlayIcon(a,!1)),this.hasLikeHudTarget&&(this.likeHudTarget.style.visibility="visible");let m=Date.now(),v=parseInt(a.dataset.index,10);isNaN(v)||this.attachVideoViewTracking(d,v),!isNaN(v)&&v!==this.currentIndex&&!this.isUserScrolling&&!this.intersectionUpdatesDisabled&&m>=this.intersectionCooldownUntil?(clearTimeout(this.intersectionUpdateTimeout),this.intersectionUpdateTimeout=setTimeout(()=>{if(this.isUserScrolling||this.intersectionUpdatesDisabled||v===this.currentIndex||this.isRenderingWindow)return;let E=this.currentIndex;this.currentIndex=v,E!==this.currentIndex&&this.renderWindow(),this.trackView(v),this.updateLikeHud()},200)):m<this.intersectionCooldownUntil&&te.log(`[Feed Desktop] Intersection - skipped due to cooldown, ${m} < ${this.intersectionCooldownUntil}`)}else!d.paused&&!this.isNavigating&&d.pause(),a.classList.remove("is-visible")})},i),this.slides.forEach(s=>{this.observer.observe(s)})}playVideo(i){i.play().catch(s=>{te.error("[Feed Desktop] Video play failed:",s)})}attachListeners(){this.containerElement.addEventListener("scroll",this.handleScroll,{passive:!0}),this.containerElement.addEventListener("wheel",this.handleWheel,{passive:!1}),document.addEventListener("keydown",this.handleKeyDown,{capture:!0}),this.contentTarget.addEventListener("click",this.handleDescriptionClick),this.contentTarget.addEventListener("click",this.handleVideoClick),window.addEventListener("resize",this.handleResize)}handleScroll(i){this.isScrolling=!0;let s=this.containerElement.scrollTop;s>this.lastScrollTop?this.lastScrollDirection="down":s<this.lastScrollTop&&(this.lastScrollDirection="up"),this.lastScrollTop=s,clearTimeout(this.scrollTimeout),this.scrollTimeout=setTimeout(()=>{this.isScrolling=!1,this.onScrollEnd()},zV),this.checkAndFetchMore()}handleWheel(i){if(!this.isGuest())return;let s=this.posts.length-1;if(this.currentIndex===s&&i.deltaY>0){let r=this.containerElement.scrollTop,a=this.containerElement.scrollHeight,n=this.containerElement.clientHeight;r+n>=a-5&&(te.log("[Feed Desktop] Guest user trying to scroll down from last post, showing registration modal"),this.showRegistrationModal())}}handleResize(){clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{this.hasContentTarget&&(this.measureItemHeight(!0),this.renderWindow())},150)}onScrollEnd(){if(this.isUserScrolling){let a=this.getCurrentPostInfo();te.log(`[Feed Desktop] Scroll ended (user-initiated), staying on index: ${a.index}, postId: ${a.id}`);return}let i=this.findMostVisibleIndex(),s=this.isEndOfFeedIndex(i),r=this.isEndOfFeedIndex(this.currentIndex);if(s&&!r){let a=this.getCurrentPostInfo();te.log(`[Feed Desktop] Skipping snap to end-of-feed slide, staying at index: ${a.index}, postId: ${a.id}`);return}if(typeof i=="number"&&i!==this.currentIndex){let a=this.posts[i]?{index:i,id:this.posts[i].id,contentType:this.posts[i].content_type||"unknown"}:{index:i,id:"none",contentType:"none"};te.log(`[Feed Desktop] Snap assist aligning to index: ${a.index}, postId: ${a.id}`),this.currentIndex=i,this.isRenderingWindow||this.renderWindow();let n=this.slides.get(i);n&&n.scrollIntoView({behavior:"smooth",block:"start"}),this.updateLikeHud(),this.trackView(i)}else{let a=this.getCurrentPostInfo();te.log(`[Feed Desktop] Scroll ended, staying at index: ${a.index}, postId: ${a.id}`)}}findMostVisibleIndex(){if(!this.containerElement)return;let i=this.containerElement.getBoundingClientRect(),s,r=0;for(let[a,n]of this.slides.entries()){let l=n.getBoundingClientRect(),d=Math.max(l.top,i.top),m=Math.min(l.bottom,i.bottom),v=Math.max(0,m-d),E=l.he
388ight>0?v/l.height:0;E>r&&(r=E,s=a)}if(r!==0)return s}handleKeyDown(i){let s=i.key;if(!["ArrowDown","ArrowUp","PageDown","PageUp"].includes(s))return;i.preventDefault(),clearTimeout(this.keydownTimeout);let r=Date.now(),a=this.lastKeyEvent?r-this.lastKeyEvent:0;this.lastKeyEvent=r;let n=this.getCurrentPostInfo(),l=s==="ArrowDown"||s==="PageDown"?"DOWN":"UP";te.log(`[Feed Desktop] KeyDown: ${s} (${l}), currentIndex: ${n.index}, postId: ${n.id}, timeSinceLast: ${a}ms`),this.keydownTimeout=setTimeout(()=>{s==="ArrowDown"||s==="PageDown"?(te.log(`[Feed Desktop] Executing scrollToNext (${l}) from index ${n.index} (post ${n.id})`),this.scrollToNext()):(s==="ArrowUp"||s==="PageUp")&&(te.log(`[Feed Desktop] Executing scrollToPrevious (${l}) from index ${n.index} (post ${n.id})`),this.scrollToPrevious())},100)}scrollToNext(){let i=this.getCurrentPostInfo(),s="DOWN",r=this.endOfFeedShown?this.posts.length:this.posts.length-1;te.log(`[Feed Desktop] scrollToNext (${s}) - currentIndex: ${i.index}, postId: ${i.id}, maxIndex: ${r}, canScroll: ${this.currentIndex<r}`),this.currentIndex<r?this.scrollToVideo(this.currentIndex+1):(te.log(`[Feed Desktop] scrollToNext (${s}) - at end, not scrolling (index: ${i.index}, postId: ${i.id})`),this.isGuest()&&(te.log("[Feed Desktop] Guest user trying to scroll past last post via keyboard, showing registration modal"),this.showRegistrationModal()))}scrollToPrevious(){let i=this.getCurrentPostInfo(),s="UP";te.log(`[Feed Desktop] scrollToPrevious (${s}) - currentIndex: ${i.index}, postId: ${i.id}, canScroll: ${this.currentIndex>0}`),this.currentIndex>0?this.scrollToVideo(this.currentIndex-1):te.log(`[Feed Desktop] scrollToPrevious (${s}) - at beginning, not scrolling (index: ${i.index}, postId: ${i.id})`)}async scrollToVideo(i){let s=this.getCurrentPostInfo(),r=this.posts[i]?{index:i,id:this.posts[i].id,contentType:this.posts[i].content_type||"unknown"}:{index:i,id:"none",contentType:"none"},a=i>this.currentIndex?"DOWN":"UP",n=this.containerElement.getBoundingClientRect(),l=this.containerElement.scrollHeight,d=this.containerElement.clientHeight;te.log(`[Feed Desktop] scrollToVideo (${a}) - container: scrollHeight=${l}, clientHeight=${d}, top=${n.top}`),te.log(`[Feed Desktop] scrollToVideo (${a}) - from index ${s.index} (post ${s.id}) to index ${r.index} (post ${r.id})`),clearTimeout(this.intersectionUpdateTimeout),clearTimeout(this.intersectionDisableTimeout),this.intersectionUpdatesDisabled=!0,te.log("[Feed Desktop] scrollToVideo - disabled intersection updates"),this.isUserScrolling=!0,this.currentIndex=i,this.renderWindow(),this.isRenderingWindow&&await this.isRenderingWindow,this.containerElement.offsetHeight,this.updateLikeHud(),this.trackView(i);let m=this.slides.get(i),v;if(m){let E=m.getBoundingClientRect(),D=this.containerElement.getBoundingClientRect(),R=this.containerElement.scrollTop;v=R+(E.top-D.top),te.log(`[Feed Desktop] scrollToVideo - using actual element position: desiredTop=${v} (slide top: ${E.top}, container top: ${D.top}, current scroll: ${R})`)}else{v=i*this.getItemFullHeight();let E=this.containerElement.scrollTop;te.log(`[Feed Desktop] scrollToVideo - fallback calculated desiredTop: ${v} for index ${i} (current scrollTop: ${E}, itemFullHeight: ${this.getItemFullHeight()})`)}this.containerElement.scrollTo({top:v,behavior:"smooth"}),setTimeout(()=>{let E=this.containerElement.scrollTop;te.log(`[Feed Desktop] scrollToVideo - scroll completed, actual scrollTop: ${E}, desired: ${v}, diff: ${Math.abs(E-v)}`)},1e3),this.intersectionDisableTimeout=setTimeout(()=>{this.isUserScrolling=!1,this.intersectionUpdatesDisabled=!1,this.intersectionCooldownUntil=Date.now()+500;let E=this.getCurrentPostInfo();te.log(`[Feed Desktop] scrollToVideo - flags cleared, index: ${E.index}, postId: ${E.id}`)},1200)}checkAndFetchMore(){let i=this.containerElement.scrollTop,s=this.containerElement.scrollHeight,r=this.containerElement.clientHeight,a=this.getItemFullHeight()*2,n=s-(i+r);n<a&&!this.isFetching&&this.hasMorePosts&&this.fetchMorePosts(),!this.hasMorePosts&&!this.endOfFeedShown&&n<100&&!this.isGuest
388()&&this.showEndOfFeed()}handleDescriptionClick(i){let s=i.target.closest("[data-feed-description]");s&&s.classList.toggle("line-clamp-3")}handleVideoClick(i){if(i.target.closest("a, [data-feed-description]"))return;let s=i.target.closest(".feed-desktop-item");if(!s)return;let r=s.querySelector("video");r&&(r.paused?(r.play().catch(()=>{}),this.togglePlayIcon(s,!1)):(r.pause(),this.togglePlayIcon(s,!0)))}togglePlayIcon(i,s){this.hasPlayIconTarget&&(s?(i.querySelector("[data-feed--desktop-target='playIcon']")||i.appendChild(this.playIconTarget),this.playIconTarget.style.display="flex",this.playIconTarget.classList.add("feed-play-overlay-visible")):(this.playIconTarget.style.display="none",this.playIconTarget.classList.remove("feed-play-overlay-visible")))}async trackViewImmediate(i){if(this.posts[i]){if(this.isGuest()){this.isAtLastPostIndex(i)&&this.showRegistrationModal();return}await super.trackViewImmediate(i)}}handleLike(i){if(i.preventDefault(),i.stopPropagation(),te.log("[Feed Desktop] handleLike - isGuest:",this.isGuest(),"hasMainController:",this.hasMainController()),this.isGuest()&&this.hasMainController())te.log("[Feed Desktop] Showing registration modal for guest user"),this.showRegistrationModal();else{te.log("[Feed Desktop] Processing like for authenticated user"),this.trackView(this.currentIndex),this.likeHandler.handleLikeClick(i,this.posts),this.updateLikeHud();let s=this.posts?.[this.currentIndex];s&&this.hasLikeHudIconTarget&&this.likeHandler.applySplashAnimation(this.likeHudIconTarget,s.user_liked)}}handleProfileNavigation(i){i.preventDefault();let s=i.currentTarget,r=s.closest(".feed-desktop-item");if(r){this.isNavigating=!0;let a=document.createElement("div");a.className="absolute inset-0 flex items-center justify-center z-50",a.style.backgroundColor="rgba(0, 0, 0, 0.2)",a.innerHTML='<div class="w-16 h-16 border-4 border-zinc-700 border-t-white rounded-full animate-spin-slow"></div>',r.appendChild(a)}setTimeout(()=>{window.location.href=s.href},100)}showRegistrationModal(){if(!this.isGuest()){te.log("[Feed Desktop] showRegistrationModal called for non-guest user, skipping");return}let i=document.querySelector("[data-main-target='registrationModal']");if(i&&(i.style.display==="flex"||window.getComputedStyle(i).display!=="none")){te.log("[Feed Desktop] Registration modal is already visible, skipping");return}let s=this.application.getControllerForElementAndIdentifier(document.querySelector("[data-controller~='main']"),"main");if(!s){te.error("[Feed Desktop] Cannot show registration modal - mainController not found");return}if(typeof s.openRegistrationModal!="function"){te.error("[Feed Desktop] mainController.openRegistrationModal is not a function");return}let r={preventDefault:()=>{},currentTarget:{dataset:{}}};try{s.openRegistrationModal(r)}catch(a){te.error("[Feed Desktop] Error opening registration modal:",a)}}hasMainController(){return!!this.application.getControllerForElementAndIdentifier(document.querySelector("[data-controller~='main']"),"main")}disconnect(){te.log("[Feed Desktop] Controller disconnecting..."),this.containerElement&&(this.containerElement.removeEventListener("scroll",this.handleScroll),this.containerElement.removeEventListener("wheel",this.handleWheel)),document.removeEventListener("keydown",this.handleKeyDown,{capture:!0}),this.hasContentTarget&&(this.contentTarget.removeEventListener("click",this.handleDescriptionClick),this.contentTarget.removeEventListener("click",this.handleVideoClick)),window.removeEventListener("resize",this.handleResize),this.observer&&(this.observer.disconnect(),this.observer=null);for(let i of this.slides.values()){let s=i.querySelector("video");s&&this.cleanupVideoElement(s),i.remove()}this.slides.clear(),clearTimeout(this.scrollTimeout),clearTimeout(this.intersectionUpdateTimeout),clearTimeout(this.intersectionDisableTimeout),clearTimeout(this.keydownTimeout),clearTimeout(this.resizeTimeout),this.disconnectCommon(),this.pendingRender=!1,this._renderWindowResolve&&(this._renderWindowResolve(),this._renderWindowResolve=null),this.isRenderingWindow=null,this.intersectionUpdatesDisabled=!1,this.intersectionCooldownUntil=0,te.log("[Feed Desktop] Controller disconnected")}updateLikeHud(){if(!this.hasLikeHudTarget)return;let i=this.posts?.[this.currentIndex];i&&(this.hasLikeHudCountTarget&&(this.likeHudCountTarget.textContent=i.likes_count||0),this.hasLikeHudIconTarget&&(this.likeHudIconTarget.src=i.user_liked?this.unlikeIconUrlValue:this.likeIconUrlValue),this.hasLikeHudButtonTarget&&(this.likeHudButtonTarget.dataset.postId=i.id))}handleLikeFromHud(i){i.preventDefault(),i.stopPropagation();let r=this.slides.get(this.currentIndex)?.querySelector("[data-feed-like-button]");if(r){this.likeHandler.handleLikeClick({preventDefault:()=>{},stopPropagation:()=>{},currentTarget:r},this.posts),this.updateLikeHud();let a=this.posts?.[this.currentIndex];a&&this.hasLikeHudIconTarget&&this.likeHandler.applySplashAnimation(this.likeHudIconTarget,a.user_liked)}else this.handleLike(i)}};var Ig=class extends u{static targets=["overlay","arrow","text"];static values={storageKey:{type:String,default:"feed_swipe_up_dismissed"}};connect(){this.handleFeedInteraction=this.handleFeedInteraction.bind(this),this.element.addEventListener("feed:interaction",this.handleFeedInteraction),this.handleFeedReady=this.handleFeedReady.bind(this),this.element.addEventListener("feed:ready",this.handleFeedReady)}handleFeedReady(i){this.shouldShow()&&(this.show(),this.startAnimation())}disconnect(){this.animationInterval&&clearInterval(this.animationInterval),this.element.removeEventListener("feed:interaction",this.handleFeedInteraction),this.element.removeEventListener("feed:ready",this.handleFeedReady)}handleFeedInteraction(i){this.dismiss()}shouldShow(){return!localStorage.getItem(this.storageKeyValue)}show(){this.hasOverlayTarget&&(this.overlayTarget.classList.remove("hidden"),this.overlayTarget.classList.add("flex","animate-fade-in"))}hide(){this.hasOverlayTarget&&(this.overlayTarget.classList.add("animate-fade-out"),setTimeout(()=>{this.overlayTarget.classList.add("hidden"),this.markAsDismissed()},300))}startAnimation(){let i=[{arrowTop:"10px",textTop:"57px",textColor:"text-white"},{arrowTop:"0px",textTop:"47px",textColor:"text-white"},{arrowTop:"-10px",textTop:"47px",textColor:"text-white"},{arrowTop:"0px",textTop:"47px",textColor:"text-white"},{arrowTop:"-10px",textTop:"47px",textColor:"text-white"},{arrowTop:"0px",textTop:"47px",textColor:"text-[#e8e8e8]"},{arrowTop:"10px",textTop:"57px",textColor:"text-[#e8e8e8]"}
388],s=0;this.animationInterval=setInterval(()=>{if(!this.hasArrowTarget||!this.hasTextTarget)return;let r=i[s];this.arrowTarget.style.top=r.arrowTop,this.textTarget.style.top=r.textTop,this.textTarget.classList.remove("text-white","text-[#e8e8e8]"),this.textTarget.classList.add(r.textColor),s=(s+1)%i.length},200)}markAsDismissed(){localStorage.setItem(this.storageKeyValue,"true")}dismiss(){this.hide()}};var QT='viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="size-6"',c0='<path d="M4 9v6h4l5 4V5L8 9H4z"/>',JV=`<svg ${QT}>${c0}<path d="M17 9l4 6M21 9l-4 6"/></svg>`,ZV=`<svg ${QT}>${c0}<path d="M16.5 8.5a5 5 0 010 7M19 6a8.5 8.5 0 010 12"/></svg>`,eM=`<svg ${QT}><path d="M12 20.5s-7.5-4.6-7.5-10A4.3 4.3 0 0112 7.3a4.3 4.3 0 017.5 3.2c0 5.4-7.5 10-7.5 10z"/></svg>`,l0="flex size-[52px] cursor-pointer items-center justify-center rounded-full bg-[rgba(48,44,48,0.72)] backdrop-blur-[8px]",Pg="h-3.5 shrink-0 -translate-y-px",tM=`<svg viewBox="0 0 24 24" class="${Pg} w-3.5 fill-white" aria-hidden="true"><path d="M12 2.5l2.9 6.2 6.8.8-5 4.7 1.3 6.7L12 17.6l-6 3.3 1.3-6.7-5-4.7 6.8-.8z"/></svg>`,iM=`<svg viewBox="0 0 24 24" class="${Pg} w-3.5" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><circle cx="12" cy="10" r="6.5"/><circle cx="12" cy="10" r="2" fill="currentColor" stroke="none"/><path d="M8 20.5h8M12 16.5v4"/></svg>`,sM=" \xB7 ",rM='<path d="M2.35507 5V4.15663C2.35507 2.84892 2.75073 1.78916 3.51594 1.05904C4.27681 0.333253 5.33188 0 6.52174 0C7.71159 0 8.76667 0.333253 9.52754 1.05904C10.2928 1.78916 10.6884 2.84892 10.6884 4.15663V5H9.60145V4.15663C9.60145 3.06867 9.27754 2.3212 8.77609 1.84337C8.27102 1.36048 7.51449 1.08434 6.52174 1.08434C5.52826 1.08434 4.77246 1.36048 4.26739 1.84337C3.76594 2.3212 3.44203 3.06867 3.44203 4.15663V5Z"/>',aM='<path fill-rule="evenodd" d="M2.35507 4.36627V4.15663H3.44203C4.43116 4.13422 5.51449 4.54193 6.52174 5.55253C7.52899 4.54193 8.61232 4.13349 9.60145 4.15663H10.6884V4.36627C12.0536 4.8694 13.0435 6.23277 13.0435 7.84337C13.0435 10.6178 10.8928 12.2183 9.06087 13.581C8.87102 13.7227 8.68406 13.8614 8.5029 13.9988C7.82609 
38814.5142 7.17391 15 6.52174 15C5.86957 15 5.21739 14.5142 4.54058 13.9988C4.35536 13.8585 4.16937 13.7192 3.98261 13.581C2.15072 12.2183 0 10.6171 0 7.84265C0 6.23349 0.989855 4.87084 2.35507 4.36627ZM6.52174 7.22892C6.66588 7.22892 6.80411 7.28604 6.90604 7.38771C7.00796 7.48939 7.06522 7.62729 7.06522 7.77108V9.57831C7.06522 9.72211 7.00796 9.86001 6.90604 9.96168C6.80411 10.0634 6.66588 10.1205 6.52174 10.1205C6.3776 10.1205 6.23936 10.0634 6.13744 9.96168C6.03552 9.86001 5.97826 9.72211 5.97826 9.57831V7.77108C5.97826 7.62729 6.03552 7.48939 6.13744 7.38771C6.23936 7.28604 6.3776 7.22892 6.52174 7.22892Z"/>',d0=`<svg viewBox="0 0 14 15" class="${Pg} w-3.5" fill="currentColor" aria-hidden="true">${rM}${aM}</svg>`,nM=2,oM=6;function Ke(i,s,r={}){let a=document.createElement(i);return s&&(a.className=s),Object.entries(r).forEach(([n,l])=>a.setAttribute(n,l)),a}function Ba(i,s,r){let a=Ke(i,s);return a.textContent=r,a}function h0(i,s){let r=Ke("source");return r.src=i,r.type=s,r}function lM(i,s){let{media:r}=i,a=Ke("video","absolute inset-0 size-full cursor-pointer object-cover",{playsinline:"","webkit-playsinline":"true","data-feed-video":""});return a.muted=s,a.loop=r?.loop!==!1,a.preload=i.kind==="shorts_series"?"metadata":"auto",r?.poster_url&&(a.poster=r.poster_url),r?.video_url&&r.video_url!==r.video_url_h264&&a.appendChild(h0(r.video_url,t
388i)),r?.video_url_h264&&a.appendChild(h0(r.video_url_h264,li)),a}function hM(i,s){let r=Ke("span","absolute right-3.5 top-[calc(15px+env(safe-area-inset-top,0px))] z-10 inline-flex h-[30px] items-center gap-1.5 pl-[9px] pr-[11px] text-xs font-bold text-white rounded-full border border-white/15 bg-[rgba(11,7,13,0.72)] backdrop-blur-[6px]");if(i.kind==="content_pack")r.insertAdjacentHTML("beforeend",d0);else if(i.kind==="cam")r.insertAdjacentHTML("beforeend",iM);else if(i.creator)r.insertAdjacentHTML("beforeend",tM);else if(s){let a=Ke("img",`${Pg} w-auto brightness-0 invert`,{alt:""});a.src=s,r.appendChild(a)}return r.appendChild(document.createTextNode(i.label||"")),r}function cM(i,s){let r=Ke("a","flex w-[86px] flex-col items-center gap-1.5",{href:i.cta?.url||"#","data-turbo":"false","data-action":`click->${s}#handleProfileNavigation`});if(i.cta?.kind==="unlock_pack"&&i.cta.turbo_stream&&(r.dataset.turbo="true",r.dataset.turboStream="true",r.dataset.controller="mpc--pack-modal-loader",r.dataset.action=`click->mpc--pack-modal-loader#open click->${s}#pauseForPack`),i.avatar_url){let a=Ke("img","size-[76px] rounded-full border-2 border-white/90 bg-[#2a242c] object-cover",{alt:i.title||""});a.src=i.avatar_url,r.appendChild(a)}else r.appendChild(Ke("span","block size-[76px] rounded-full border-2 border-white/90 bg-[#2a242c]"));return r.appendChild(dM(i.cta?.label||"")),r}function dM(i){let[s,...r]=i.split(" "),a=Ke("b","whitespace-nowrap text-center text-[11px] font-extrabold uppercase tracking-[0.02em] text-white [text-shadow:0_1px_4px_rgba(0,0,0,0.7)]");return a.appendChild(Ba("em","not-italic text-[#ff78b0] [text-shadow:0_0_6px_rgba(255,90,160,0.95),0_0_16px_rgba(255,90,160,0.6),0_1px_4px_rgba(0,0,0,0.5)]",s)),r.length>0&&a.appendChild(document.createTextNode(` ${r.join(" ")}`)),a}function uM(i){let s=Ke("div","text-[13.5px] font-semibold leading-[18px] text-white");return i.split(sM).forEach((r,a)=>{a>0&&s.appendChild(Ba("i","mx-1.5 not-italic opacity-90","\u2022")),s.appendChild(document.createTextNode(r))}),s}function gM(i){let s=Ke("div","pointer-events-none absolute inset-x-[18px] bottom-[calc(26px+env(safe-area-inset-bottom,0px))] z-10 h-0.5 overflow-hidden rounded-sm bg-white/35"),r=Ke("i","block h-full w-0 bg-white");return s.appendChild(r),i.addEventListener("timeupdate",()=>{i.duration&&(r.style.width=`${i.currentTime/i.duration*100}%`)}),s}function mM(i){let s=Ke("div","pointer-events-none absolute inset-0 z-10 flex items-center justify-center opacity-0 transition-opacity duration-300 motion-reduce:transition-none",{"data-preview-lock":"","aria-hidden":"true"}),r=Ke("span","relative flex size-24 items-center justify-center rounded-full border border-white/30 bg-black/60 text-white shadow-xl backdrop-blur-md");r.innerHTML=d0,r.querySelector("svg").setAttribute("class","size-10 overflow-visible");let a=r.querySelector("svg path");a.setAttribute("class","origin-[10.15px_4.16px]");let n=Ke("span","absolute inset-0 rounded-full border border-white/60 opacity-0");r.appendChild(n),s.appendChild(r);let l=()=>{let d=Number.isFinite(i.duration)&&i.duration>0&&i.currentTime>=oM;s.classList.toggle("opacity-0",!d),r.classList.toggle("motion-safe:animate-preview-lock",d),a.classList.toggle("motion-safe:animate-preview-shackle",d),n.classList.toggle("motion-safe:animate-preview-lock-ring",d)};for(let d of["timeupdate","seeking","ended","emptied"])i.addEventListener(d,l);return s}function pM(i,{identifier:s,muted:r,liked:a,labels:n}){let l=Ke("div","relative shrink-0",{"data-discover-action":""}),d=Ke("div","absolute bottom-full right-[5px] mb-[22px] flex flex-col gap-3.5"),m=Ke("button",l0,{type:"button","data-discover-like":"","data-action":`click->${s}#toggleLike`});m.innerHTML=eM;let v=Ke("button",`${l0} text-white`,{type:"button","data-discover-sound":"","data-action":`click->${s}#toggleSound`});return d.append(m,v),l.append(d,cM(i,s)),ZT(m,a,n),eb(v,r,n),l}function fM(i){let s=Ke("span","inline-flex items-center gap-[5px] rounded-full border border-white/[0.28] bg-black/50 px-2.5 py-1 text-[11px] font-bold tracking-[0.05em] text-white");return s.append(Ke("i","size-1.5 rounded-full bg-[#ff3b3b] animate-pulse motion-reduce:animate-none"),document.createTextNode(i)),s}function vM(i,s){let r=Ba("p","text-[14.5px] leading-5 text-white/70",i);return r.dataset.feedDescription="",r.dataset.fullText=i,r.dataset.moreLabel=s,r}function Ag(i,s,r){i.replaceChildren(document.createTextNode(s)),r&&i.append("\u2026 ",Ba("b","font-bold text-white",i.dataset.moreLabel))}function TM(i,s){let r=Ke("div","flex min-w-0 flex-1 flex-col items-start gap-1.5");return i.live&&r.appendChild(fM(s.live)),r.appendChild(Ba("div","break-words text-[26px] font-semibold leading-[30px] text-white",i.title||"")),i.subtitle&&r.appendChild(uM(i.subtitle)),i.description&&r.appendChild(vM(i.description,s.more)),r}function bM(i,s){let r=Ke("div","absolute left-[18px] right-3.5 bottom-[calc(44px+env(safe-area-inset-bottom,0px))] z-10 flex items-start gap-[18px]");return r.append(TM(i,s.labels),pM(i,s)),r}function JT(i){let{fullText:s}=i.dataset,r=parseFloat(window.getComputedStyle(i).lineHeight)*nM+1;Ag(i,s,!1);let a=i.offsetHeight>r;if(i.classList.toggle("cursor-pointer",a),!a){delete i.dataset.expandable;return}i.dataset.expandable="";let n=s.split(" "),l=0,d=n.length;for(;l<d;){let m=Math.ceil((l+d)/2);Ag(i,n.slice(0,m).join(" "),!0),i.offsetHeight<=r?l=m:d=m-1}Ag(i,n.slice(0,l).join(" "),!0)}function u0(i){Ag(i,i.dataset.fullText,!1)}function ZT(i,s,r){i.classList.toggle("text-pink-dark",s),i.classList.toggle("text-white",!s),i.querySelector("svg")?.classList.toggle("fill-current",s),i.setAttribute("aria-label",s?r.unlike:r.like),i.setAttribute("aria-pressed",String(s))}function eb(i,s,r){i.innerHTML=s?JV:ZV,i.setAttribute("aria-label",s?r.soundOn:r.soundOff),i.setAttribute("aria-pressed",String(!s))}function g0(i,s,{identifier:r,muted:a,liked:n,labels:l,badgeIcon:d}){let m=Ke("div","feed-post bg-black");m.dataset.index=s,m.dataset.key=i.key;let v=Ke("div","feed-video-container"),E=Ke("div","absolute inset-0 flex items-center justify-center");E.appendChild(Ke("div","size-16 rounded-full border-4 border-zinc-700 border-t-white animate-spin-slow")),v.appendChild(E);let D=lM(i,a);return v.appendChild(D),m.append(v,Ke("div","pointer-events-none absolute inset-x-0 bottom-0 h-[64%] bg-gradient-to-t from-black/95 via-black/60 to-transparent"),hM(i,d),bM(i,{identifier:r,muted:a,liked:n,labels:l}),gM(D)),i.kind==="content_pack"&&m.appendChild(mM(D)),m}function m0(i,{identifier:s,title:r,body:a,refreshLabel:n}
388){let l=document.createElement("div");l.className="feed-post feed-end-of-feed flex items-center justify-center bg-black-dark",l.dataset.index=i,l.dataset.endOfFeed="true";let d=document.createElement("div");d.className="flex flex-col items-center gap-4 px-4 text-center";let m=document.createElement("p");m.className="w-[260px] text-[18px] font-semibold leading-6 text-white",m.textContent=r;let v=document.createElement("p");v.className="w-[275px] text-sm font-medium text-[#7d7d7d]",v.textContent=a;let E=document.createElement("button");return E.type="button",E.className="w-[260px] px-4 py-3 text-sm font-semibold text-white rounded-[10px] bg-pink-dark",E.dataset.action=`click->${s}#reload`,E.textContent=n,d.append(m,v,E),l.appendChild(d),l}var yM="10",SM=200,wM=":key",CM={feedVisited(){},videoViewed(){},chatClicked(){},endOfFeedReached(){}};function Vg(i){return class extends i{static values={seenUrlTemplate:String,badgeIcons:Object};initialize(){super.initialize(),this.muted=!0,this.acknowledgedKeys=new Set,this.likedKeys=new Set,this.purchasedPackKeys=new Set,this.welcomeOfferModals=[],this.packModalOpen=!1}async connectCommon(){Mt(this),this.feedTracker=CM}async connect(){await super.connect(),document.addEventListener("mpc:pack-purchased",this.#t),this.packModal=document.getElementById("content_packs_modal"),this.packModal&&(this.packModalObserver=new MutationObserver(this.#e),this.packModalObserver.observe(this.packModal,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["open","class"]}),this.packModalObserver.observe(document.body,{childList:!0}),this.#e()),this.posts.length>0&&this.trackView(this.currentIndex)}extractPosts(s){return Array.isArray(s?.items)?s.items:[]}withoutHeldPosts(s){let r=new Set(this.posts.map(({key:a})=>a));return s.filter(({key:a})=>!r.has(a)&&!this.purchasedPackKeys.has(a))}nextPageUrl(){let s=new globalThis.URL(this.urlValue,window.location.origin);return s.searchParams.set("limit",yM),this.posts.map(({key:r})=>r).filter(r=>!this.acknowledgedKeys.has(r)).slice(-SM).forEach(r=>s.searchParams.append("exclude[]",r)),s.toString()}async trackViewImmediate(s){let r=this.posts[s];if(!(!r||this.trackedPostIds.has(r.key))){this.trackedPostIds.add(r.key);try{let a=this.seenUrlTemplateValue.replace(wM,encodeURIComponent(r.key)),n=r.position===void 0||r.position===null?{}:{position:r.position};(await H(a,{body:n,responseKind:"json"})).ok&&this.acknowledgedKeys.add(r.key)}catch(a){te.error("[Discover] Failed to record seen:",a)}}}buildSlide(s,r){return g0(s,r,{identifier:this.identifier,muted:this.muted,liked:this.likedKeys.has(s.key),labels:this.#s(),badgeIcon:this.badgeIconsValue[s.kind]})}renderWindow(){if(this.posts.length===0&&this.emptySlide?.isConnected)return;let s=this.emptySlide?.isConnected;this.emptySlide?.remove(),super.renderWindow();for(let r of this.slides.values()){let a=r.querySelector("[data-feed-description]:not([data-fitted])");
388a&&(a.dataset.fitted="",JT(a))}s&&this.posts.length>0&&(this.presentCurrentSlide(),this.trackView(this.currentIndex))}handleDescriptionClick(s){let r=s.target.closest("[data-feed-description][data-expandable]");if(!r)return;let a=r.closest(".feed-post")?.querySelector("[data-discover-action]");if("expanded"in r.dataset){delete r.dataset.expanded,JT(r),a&&(a.style.transform="");return}let n=a?.getBoundingClientRect().top;r.dataset.expanded="",u0(r),a&&(a.style.transform=`translateY(${n-a.getBoundingClientRect().top}px)`)}buildEndOfFeedSlide(s){return this.buildMessageSlide(s,"discover.end")}renderEmpty(){this.emptySlide?.remove(),this.emptySlide=this.buildMessageSlide(0,"discover.empty"),this.slidesContainer().appendChild(this.emptySlide)}showEndOfFeed(){if(this.posts.length===0)return this.renderEmpty();super.showEndOfFeed()}pauseForPack(){this.slides.get(this.currentIndex)?.querySelector("video")?.pause()}disconnect(){document.removeEventListener("mpc:pack-purchased",this.#t),this.packModalObserver?.disconnect(),super.disconnect()}isPackModalOpen(){return!!this.packModal?.querySelector('dialog[open], [data-controller~="modal"]:not(.hidden), [data-controller~="modal-component"]:not(.hidden)')||this.welcomeOfferModals.some(s=>s.isConnected&&!s.classList.contains("hidden"))}#e=()=>{this.welcomeOfferModals=[...document.querySelectorAll('[data-controller~="welcome-offer-modal"]')].map(r=>r.closest('[data-controller~="modal-component"]')).filter(Boolean);for(let r of this.welcomeOfferModals)this.packModalObserver.observe(r,{attributes:!0,attributeFilter:["class"]});let s=this.isPackModalOpen();s!==this.packModalOpen&&(this.packModalOpen=s,this.updateVideoPlayback())};#t=s=>{let r=`content_pack:${s.detail.contentPackId}`;this.purchasedPackKeys.add(r);let a=this.posts.findIndex(n=>n.key===r);a<0||(this.posts.splice(a,1),a<this.currentIndex&&(this.currentIndex-=1),this.currentIndex=Math.max(0,Math.min(this.currentIndex,this.posts.length-1)),this.clearSlides(),this.posts.length===0?this.renderEmpty():(this.renderWindow(),this.presentCurrentSlide(),this.trackView(this.currentIndex)))};playVideo(s){s.muted=this.muted,s.play().catch(r=>{if(r?.name!=="NotAllowedError"||s.muted){te.error("[Discover] Video play failed:",r);return}this.#i(!0),s.play().catch(()=>{})})}cleanupVideoElement(s){s?.querySelectorAll("source").forEach(r=>r.remove()),super.cleanupVideoElement(s)}toggleSound(s){s.preventDefault(),s.stopPropagation(),this.#i(!this.muted)}toggleLike(s){s.preventDefault(),s.stopPropagation();let r=s.currentTarget.closest(".feed-post")?.dataset.key;if(!r)return;let a=!this.likedKeys.has(r);a?this.likedKeys.add(r):this.likedKeys.delete(r),ZT(s.currentTarget,a,this.#s())}reload(){window.location.reload()}buildMessageSlide(s,r){return m0(s,{identifier:this.identifier,title:this.getTranslation(`${r}.title`),body:this.getTranslation(`${r}.body`),refreshLabel:this.getTranslation("discover.refresh")})}#i(s){this.muted=s;let r=this.#s();for(let a of this.slides.values()){let n=a.querySelector("video");n&&(n.muted=s),a.querySelectorAll("[data-discover-sound]").forEach(l=>eb(l,s,r))}}#s(){return{soundOn:this.getTranslation("discover.sound_on"),soundOff:this.getTranslation("discover.sound_off"),like:this.getTranslation("discover.like"),unlike:this.getTranslation("discover.unlike"),live:this.getTranslation("discover.live"),more:this.getTranslation("discover.more")}}}}var Mg=class extends Vg(or){onSlideSettled(){this.trackView(this.currentIndex)}updateVideoPlayback(){if(this.isPackModalOpen())return this.pauseForPack();let i=this.slides.get(this.currentIndex)?.querySelector("video");i&&(i.preload="auto"),super.updateVideoPlayback()}slidesContainer(){return this.stackElement}clearSlides(){this.hasPlayIconTarget&&this.element.appendChild(this.playIconTarget);for(let i of this.slides.values()){let s=i.querySelector("video");s?.removeEventListener("error",this.handleVideoError),this.cleanupVideoElement(s),i.remove()}this.slides.clear(),this.endOfFeedShown=!1,this.videoRetryAttempts.clear()}presentCurrentSlide(){this.positionSlides(),this.updateVideoPlayback(),this.attachPlayIconToCurrentSlide()}};var EM=["feed-desktop-item","relative","h-full","snap-start","snap-always"],LM="content_packs_modal",kM=150,p0=1,xM="input, textarea, select, [contenteditable='true']",_g=class extends Vg(lr){static targets=["previousButton","
388nextButton","packModalHost"];initialize(){super.initialize(),this.windowBefore=1,this.windowAfter=1}async connect(){document.getElementById(LM)||this.element.append(this.packModalHostTarget.content.cloneNode(!0)),await super.connect(),this.posts.length>0&&this.checkAndFetchMore()}scrollContainer(){return this.contentTarget}buildSlide(i,s){return this.#e(super.buildSlide(i,s))}buildMessageSlide(i,s){return this.#e(super.buildMessageSlide(i,s))}renderWindow(){super.renderWindow(),this.#s()}renderEmpty(){for(let i of[this.topSpacer,this.bottomSpacer])i&&(i.style.height="0px");super.renderEmpty(),this.containerElement.scrollTop=0,this.#s()}slidesContainer(){return this.contentTarget}clearSlides(){for(let i of this.slides.values())this.observer?.unobserve(i),this.cleanupVideoElement(i.querySelector("video")),i.remove();this.slides.clear()}presentCurrentSlide(){this.#i(this.currentIndex),this.updateVideoPlayback()}updateVideoPlayback(){if(this.isPackModalOpen())return this.pauseForPack();for(let[i,s]of this.slides.entries()){let r=s.querySelector("video");r&&(i===this.currentIndex?this.playVideo(r):r.pause())}}playVideo(i){this.isPackModalOpen()||(i.preload="auto",super.playVideo(i))}togglePlayIcon(i,s){this.hasPlayIconTarget&&(this.playIconTarget.style.display=s?"flex":"none")}handleScroll(i){super.handleScroll(i),this.#s()}handleKeyDown(i){this.isPackModalOpen()||i.target.closest?.(xM)||super.handleKeyDown(i)}keepFocus(i){i.preventDefault()}reload(){let i=this.element.closest("turbo-frame[src]");i?i.reload():super.reload()}requestClose(){this.isPackModalOpen()||this.dispatch("close")}handleResize(){let i=this.#t();this.#i(i),clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{this.measureItemHeight(!0),this.renderWindow(),this.#i(i)},kM)}onScrollEnd(){if(super.onScrollEnd(),!this.isUserScrolling)return;let i=this.findMostVisibleIndex();i===void 0||i===this.currentIndex||this.isEndOfFeedIndex(i)||(this.currentIndex=i,this.renderWindow(),this.trackView(i))}scrollToNext(){this.currentIndex=this.#t(),super.scrollToNext()}scrollToPrevious(){this.currentIndex=this.#t(),super.scrollToPrevious()}#e(i){return i.classList.add(...EM),i}#t(){return this.isUserScrolling?this.currentIndex:this.findMostVisibleIndex()??this.currentIndex}#i(i){let s=this.slides.get(i);s&&(this.containerElement.scrollTop=s.offsetTop)}#s(){let{scrollTop:i,scrollHeight:s,clientHeight:r}=this.containerElement;this.previousButtonTarget.disabled=i<=p0,this.nextButtonTarget.disabled=i+r>=s-p0}};var IM=["src","complete","busy","aria-busy"],Bg=class extends u{static targets=["frame","loading"];static classes=["scrollLock"];disconnect(){this.dismiss()}open(i){i.target!==this.frameTarget||!this.element.hidden||(this.returnFocus=document.activeElement,this.element.hidden=!1,this.loadingTarget.hidden=!1,document.documentElement.classList.add(...this.scrollLockClasses))}loaded(i){i.target===this.frameTarget&&(this.loadingTarget.hidden=!0,this.element.focus({preventScroll:!0}))}missing(i){i.target===this.frameTarget&&(i.preventDefault(),this.dismiss(),i.detail.visit(i.detail.response))}failed(i){i.target===this.frameTarget&&this.close()}close(i){i?.preventDefault(),this.dismiss(),this.returnFocus?.isConnected&&this.returnFocus.focus({preventScroll:!0})}closeWhileLoading(){this.loadingTarget.hidden||this.close()}closeOnBackdrop(i){i.target===i.currentTarget&&this.close(i)}dismiss(){this.element.hidden||(this.element.hidden=!0,this.loadingTarget.hidden=!0,this.#e(),document.documentElement.classList.remove(...this.scrollLockClasses))}#e(){let i=this.frameTarget.cloneNode(!1);IM.forEach(s=>i.removeAttribute(s)),this.frameTarget.replaceWith(i)}};var Og=class extends u{static targets=["readCheckbox","manageCheckbox"];connect(){this.updateReadCheckbox()}manageChanged(){this.updateReadCheckbox()}readChanged(i){this.hasManageCheckboxTarget&&this.manageCheckboxTarget.checked&&!this.readCheckboxTarget.checked&&(i.preventDefault(),this.readCheckboxTarget.checked=!0,this.readCheckboxTarget.dispatchEvent(new Event("change",{bubbles:!0})))}updateReadCheckbox(){!this.hasReadCheckboxTarget||!this.hasManageCheckboxTarget||(this.manageCheckboxTarget.checked&&(this.readCheckboxTarget.checked=!0),this.updateReadCheckboxStyle(),this.readCheckboxTarget.dispatchEvent(new Event("change",{bubbles:!0})))}updateReadCheckboxStyle(){!this.hasReadCheckboxTarget||!this.hasManageCheckboxTarget||(this.readCheckboxTarget.classList.toggle("opacity-50",this.manageCheckboxTarget.checked),this.readCheckboxTarget.classList.toggle("cursor-not-allowed",this.manageCheckboxTarget.checked))}};var Fg=class extends u{static targets=["modal","textarea","permissionRow"];openModal(){let i=this.exportToTSV();this.textareaTarget.value=i,this.modalTarget.classList.remove("hidden")}closeModal(){this.modalTarget.classList.add("hidden")}exportToTSV(){return this.permissionRowTargets.map(i=>{if(!i.querySelector('[name^="admin_role[permissions]"]'))return null;let r=i.querySelectorAll('input[type="checkbox"]:checked'),a=Array.from(r).map(d=>d.value).filter(d=>d!=="");return a.length===0?null:`${r[0].getAttribute("name").match(/admin_role\[permissions\]\[([^\]]+)\]/)[
3881]}	${a.join(",")}`}).filter(Boolean).join(`
389`)}updateMatrix(){let i=this.#e();this.permissionRowTargets.forEach(s=>{s.querySelectorAll('input[type="checkbox"]').forEach(r=>{let a=r.name.match(/admin_role\[permissions\]\[([^\]]+)\]/)?.[1];r.checked=i.get(a)?.has(r.value)||!1}),this.dispatch("row-updated",{target:s})}),this.closeModal(),this.dispatch("updated")}#e(){let i=new Map;return this.textareaTarget.value.split(`
390`).forEach(s=>{let[r,a]=s.split("	");if(!r||!a)return;let n=r.trim()==="Admin::HomepageGridPlacementPolicy"?"Admin::HomepageShelfOrderingPolicy":r.trim(),l=i.get(n)||new Set;a.split(",").map(d=>d.trim()).filter(Boolean).forEach(d=>l.add(d)),i.set(n,l)}),i}};var Dg=class extends u{static targets=["imageLoaderIcon","createCharacterTitle","featuresList","signupButton"];connect(){this.registrationTimeout=setTimeout(()=>{this.openRegistrationModal(),this.imageLoaderIconTarget.classList.add("hidden"),this.createCharacterTitleTarget.remove(),this.showFeaturesList()},5e3)}disconnect(){this.registrationTimeout&&clearTimeout(this.registrationTimeout)}openRegistrationModal(){this.hasSignupButtonTarget&&this.signupButtonTarget.click()}showFeaturesList(){this.hasFeaturesListTarget&&this.featuresListTarget.classList.remove("hidden"),this.hasSignupButtonTarget&&this.signupButtonTarget.classList.remove("hidden")}};var Rg=class extends u{static targets=["option","tooltip","durationDisplay","tenSecondsOption","notAvailableBadge"];static classes=["selected","unselected"];static values={selectedDuration:String,tenSecondsAvailable:Boolean};static DURATION_5_SECONDS="5";static DURATION_10_SECONDS="10";static TOKEN_COST_5_SECONDS=12;static TOKEN_COST_10_SECONDS=20;connect(){Ot(this),this.#i(),this.#s()}toggle(i){i.stopPropagation(),this.hasTooltipTarget&&(this.tooltipTarget.classList.contains("hidden")?this.#e():this.#t())}clickOutside(i){this.#t()}tenSecondsAvailableValueChanged(){if(!this.hasTenSecondsOptionTarget)return;let i=this.tenSecondsAvailableValue;this.tenSecondsOptionTarget.classList.toggle("border-white/20",!i),this.tenSecondsOptionTarget.classList.toggle("opacity-50",!i),this.tenSecondsOptionTarget.classList.toggle("cursor-not-allowed",!i),this.tenSecondsOptionTarget.classList.toggle("border-white/40",
390i),this.tenSecondsOptionTarget.classList.toggle("cursor-pointer",i),this.tenSecondsOptionTarget.classList.toggle("hover:bg-white/15",i),this.hasNotAvailableBadgeTarget&&this.notAvailableBadgeTarget.classList.toggle("hidden",i),!i&&this.selectedDurationValue===this.constructor.DURATION_10_SECONDS&&(this.selectedDurationValue=this.constructor.DURATION_5_SECONDS,this.#i(),this.#s(),this.dispatch("durationChanged",{detail:{duration:this.constructor.DURATION_5_SECONDS,cost:this.constructor.TOKEN_COST_5_SECONDS},bubbles:!0})),i&&this.selectedDurationValue===this.constructor.DURATION_5_SECONDS&&(this.selectedDurationValue=this.constructor.DURATION_10_SECONDS,this.#i(),this.#s(),this.dispatch("durationChanged",{detail:{duration:this.constructor.DURATION_10_SECONDS,cost:this.constructor.TOKEN_COST_10_SECONDS},bubbles:!0}))}selectDuration(i){let s=i.currentTarget.dataset.duration;if(s===this.constructor.DURATION_10_SECONDS&&!this.tenSecondsAvailableValue)return;this.selectedDurationValue=s,this.#i(),this.#s();let r=s===this.constructor.DURATION_5_SECONDS?this.constructor.TOKEN_COST_5_SECONDS:this.constructor.TOKEN_COST_10_SECONDS;this.dispatch("durationChanged",{detail:{duration:s,cost:r},bubbles:!0}),this.#t()}#e(){this.hasTooltipTarget&&this.tooltipTarget.classList.remove("hidden")}#t(){this.hasTooltipTarget&&this.tooltipTarget.classList.add("hidden")}#i(){this.optionTargets.forEach(i=>{i.dataset.duration===this.selectedDurationValue?(i.classList.remove(...this.unselectedClasses),i.classList.add(...this.selectedClasses)):(i.classList.remove(...this.selectedClasses),i.classList.add(...this.unselectedClasses))})}#s(){this.hasDurationDisplayTarget&&(this.durationDisplayTarget.textContent=`${this.selectedDurationValue}s`)}};var Ng=class extends u{static targets=["option"];static classes=["selected","unselected"];static values={selectedStyle:String};static STYLE_STANDARD="standard_v2";static STYLE_FLASH_BOOBS="flash_boobs_ltx";connect(){this.#t()}selectStyle(i){let s=i.currentTarget.dataset.style;this.selectedStyleValue=s,this.#t(),this.dispatch("styleChanged",{detail:{style:s},bubbles:!0})}resetSelection(){let i=this.#e();this.selectedStyleValue=i,this.#t(),this.dispatch("styleChanged",{detail:{style:i},bubbles:!0})}#e(){return this.optionTargets[0]?.dataset?.style||this.constructor.STYLE_STANDARD}#t(){this.optionTargets.forEach(i=>{i.dataset.style===this.selectedStyleValue?(i.classList.remove(...this.unselectedClasses),i.classList.add(...this.selectedClasses)):(i.classList.remove(...this.selectedClasses),i.classList.add(...this.unselectedClasses))})}};var Ug=class extends u{static targets=["textarea","counter","submitButton","submitLoader","backButton","backArrow","backLoader"];connect(){this.updateCounter()}handleSubmitEnd(){this.hideSubmitLoading()}updateCounter(){let i=this.textareaTarget.value.length,s=this.textareaTarget.getAttribute("maxlength")||250;this.counterTarget.textContent=`${i}/${s}`}handleSubmit(){this.showSubmitLoading()}handleBackClick(){this.showBackLoading()}showSubmitLoading(){if(this.submitButtonTarget.disabled=!0,this.submitButtonTarget.classList.add("opacity-50","cursor-not-allowed"),this.submitButtonTarget.classList.remove("cursor-pointer"),!this.hasSubmitLoaderTarget){let i=document.createElement("div");i.classList.add("loading-submit-white","ml-3"),i.setAttribute("data-memory-form-target","submitLoader"),this.submitButtonTarget.appendChild(i)}}hideSubmitLoading(){this.submitButtonTarget.disabled=!1,this.submitButtonTarget.classList.remove("opacity-50","cursor-not-allowed"),this.submitButtonTarget.classList.add("cursor-pointer"),this.hasSubmitLoaderTarget&&this.submitLoaderTarget.remove()}showBackLoading(){if(this.backButtonTarget.classList.add("opacity-50","pointer-events-none"),this.hasBackArrowTarget&&this.backArrowTarget.classList.add("hidden"),!this.hasBackLoaderTarget){let i=document.createElement("div");i.classList.add("w-6","h-6","border-2","border-white/30","border-l-white","rounded-full","animate-spin"),i.setAttribute("data-memory-form-target","backLoader"),this.backButtonTarget.appendChild(i)}}};
390var Hg=class extends u{static targets=["scrollContainer","topGradient","bottomGradient"];connect(){this.updateGradients=this.updateGradients.bind(this),this.updateGradients(),this.scrollContainerTarget.addEventListener("scroll",this.updateGradients)}disconnect(){this.scrollContainerTarget.removeEventListener("scroll",this.updateGradients)}updateGradients(){let i=this.scrollContainerTarget,s=i.scrollTop,r=i.scrollHeight,a=i.clientHeight,n=s===0,l=s+a>=r-1;this.hasTopGradientTarget&&(n?(this.topGradientTarget.classList.add("opacity-0"),this.topGradientTarget.classList.remove("opacity-100")):(this.topGradientTarget.classList.add("opacity-100"),this.topGradientTarget.classList.remove("opacity-0"))),this.hasBottomGradientTarget&&(l?(this.bottomGradientTarget.classList.add("opacity-0"),this.bottomGradientTarget.classList.remove("opacity-100")):(this.bottomGradientTarget.classList.add("opacity-100"),this.bottomGradientTarget.classList.remove("opacity-0")))}};var qg=class extends u{static targets=["dialog","form","deleteButton","loader","errors"];show(i){i.preventDefault();let s=i.params.url;this.formTarget.action=s,this.hasErrorsTarget&&(this.errorsTarget.innerHTML=""),this.dialogTarget.showModal()}cancel(i){i.preventDefault(),this.dialogTarget.close()}handleBackdropClick(i){i.target===this.dialogTarget&&this.dialogTarget.close()}onSubmitStart(){this.showLoading()}onSubmitEnd(){this.hideLoading(),setTimeout(()=>{this.hasErrorsTarget&&this.errorsTarget.innerHTML.trim()!==""||this.dialogTarget.close()},50)}showLoading(){if(this.deleteButtonTarget.disabled=!0,this.deleteButtonTarget.classList.add("opacity-50","cursor-not-allowed"),this.deleteButtonTarget.classList.remove("cursor-pointer"),!this.hasLoaderTarget){let i=document.createElement("div");i.classList.add("loading-submit-white","ml-3"),i.setAttribute("data-delete-confirmation-target","loader"),this.deleteButtonTarget.appendChild(i)}}hideLoading(){this.deleteButtonTarget.disabled=!1,this.deleteButtonTarget.classList.remove("opacity-50","cursor-not-allowed"),this.deleteButtonTarget.classList.add("cursor-pointer"),this.hasLoaderTarget&&this.loaderTarget.remove()}};var $g=class extends u{static targets=["step","progressBar","progressDot","nextButton","finalButton","checkbox","confetti"];static values={submitUrl:String,afterSurveyCompleteUrl:String};connect(){this.currentStep=0,this.selections={},this.multiSelections={},setTimeout(()=>this.triggerConfetti(),500)}nextStep(i){i.preventDefault();let s=this.currentStep+1;if(s>=this.stepTargets.length)return;let r=this.stepTargets[this.currentStep];r.style.opacity="0",r.style.transform="translateX(-30px)",r.style.transition="all 0.3s ease",setTimeout(()=>{r.classList.add("step-hidden"),r.style.opacity="",r.style.transform="";let a=this.stepTargets[s];a.classList.remove("step-hidden"),a.style.opacity="0",a.style.transform="translateX(30px)",s>0&&this.progressBarTarget.classList.remove("hidden"),setTimeout(()=>{a.style.transition="all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1)",a.style.opacity="1",a.style.transform="translateX(0)"},50),this.currentStep=s,this.updateProgressDots(),this.resetStepState()},300)}selectOption(i){let s=i.currentTarget,r=s.closest("[data-question]"),a=r.dataset.question,n=s.dataset.value;this.selections[a]=n,r.querySelectorAll("button").forEach(m=>{m.classList.remove("selected","border-pink-default","border-pink-default/70","bg-pink-default/10"),m.classList.add("border-white/10");let v=m.querySelector("[data-premium-onboarding-target='checkbox']");v&&(v.classList.remove("bg-pink-default","border-pink-default"),v.classList.add("border-white/30"),v.querySelector("svg").classList.add("hidden"))}),s.classList.add("selected","border-pink-default/70","bg-pink-default/10"),s.classList.remove("border-white/10");let d=s.querySelector("[data-premium-onboarding-target='checkbox']");d&&(d.classList.add("bg-pink-default","border-pink-default"),d.classList.remove("border-white/30"),d.querySelector("svg").classList.remove("hidden")),this.enableStepButton()}toggleMultiOption(i){let s=i.currentTarget,a=s.closest("[data-question]").dataset.question,n=s.dataset.value;this.multiSelections[a]||(this.multiSelections[a]=[]);let l=this.multiSelections[a].indexOf(n),d=s.querySelector("[data-premium-onboarding-target='checkbox']");l===-1?(this.multiSelections[a].push(n),s.classList.add("selected","border-pink-default/70","bg-pink-default/10"),s.classList.remove("border-white/10"),d&&(d.classList.add("bg-pink-default","border-pink-default"),d.classList.remove("border-white/30"),d.querySelector("svg").classList.remove("hidden"))):(this.multiSelections[a].splice(l,1),s.classList.remove("selected","border-pink-default","border-pink-default/70","bg-pink-default/10"),s.classList.add("border-white/10"),d&&(d.classList.remove("bg-pink-default","border-pink-default"),d.classList.add("border-white/30"),d.querySelector("svg").classList.add("hidden"))),this.multiSelections[a].length>0?this.enableStepButton():this.disableStepButton()}enableStepButton(){let i=this.stepTargets[this.currentStep],s=i.querySelector("[data-premium-onboarding-target='nextButton']"),r=i.querySelector("[data-premium-onboarding-target='finalButton']");s&&(s.disabled=!1,s.classList.remove("bg-white/10","text-white/50"),s.classList.add("primary-gradient","text-white")),r&&(r.style.pointerEvents="auto",r.classList.remove("bg-white/10","text-white/50"),r.classList.add("primary-gradient","text-white"))}disableStepButton(){let i=this.stepTargets[this.currentStep],s=i.querySelector("[data-premium-onboarding-target='nextButton']"),r=i.querySelector("[data-premium-onboarding-target='finalButton']");s&&(s.disabled=!0,s.classList.add("bg-white/10","text-white/50"),s.classList.remove("primary-gradient","text-white")),r&&(r.style.pointerEvents="none",r.classList.add("bg-white/10","text-white/50"),r.classList.remove("primary-gradient","text-white"))}resetStepState(){let s=this.stepTargets[this.currentStep].querySelector("[data-question]");if(s){let r=s.dataset.question;!this.selections[r]&&(!this.multiSelections[r]||this.multiSelections[r].length===0)&&this.disableStepButton()}}updateProgressDots(){this.#e()}
390#e(){this.progressDotTargets.forEach(i=>{let s=parseInt(i.dataset.step);s<this.currentStep?(i.classList.add("bg-pink-default"),i.classList.remove("bg-white/30","active")):s===this.currentStep?(i.classList.add("bg-pink-default","active"),i.classList.remove("bg-white/30")):(i.classList.remove("bg-pink-default","active"),i.classList.add("bg-white/30"))})}async complete(i){i.preventDefault();let s={...this.selections,features:this.multiSelections.features||[]};try{(await H(this.submitUrlValue,{body:JSON.stringify({onboarding_survey:{questionnaire:s}}),contentType:"application/json"})).ok&&(this.triggerConfetti(),setTimeout(()=>{window.location.href=this.afterSurveyCompleteUrlValue},1e3))}catch{window.location.href=this.afterSurveyCompleteUrlValue}}triggerConfetti(){let i=["#F97187","#9A92FF","#FCD227","#4346E6","#FF869B"],s=this.confettiTarget;for(let r=0;r<50;r++){let a=document.createElement("div");a.className="confetti-piece",a.style.left=`${Math.random()*100}%`,a.style.backgroundColor=i[Math.floor(Math.random()*i.length)],a.style.animationDuration=`${2+Math.random()*2}s`,a.style.animationDelay=`${Math.random()*.5}s`,Math.random()>.5?a.style.borderRadius="50%":(a.style.borderRadius="2px",a.style.width=`${5+Math.random()*10}px`,a.style.height=`${5+Math.random()*10}px`),s.appendChild(a),setTimeout(()=>{a.remove()},4e3)}}};var Gg=class extends u{static values={locale:String,url:String};switch(i){i.preventDefault(),this.#e()}#e(){let i=document.createElement("form");Object.assign(i,{method:"post",action:this.urlValue,style:"display: none;"});let s={_method:"patch",new_locale:this.localeValue,authenticity_token:document.querySelector("meta[name='csrf-token']")?.content};Object.entries(s).forEach(([r,a])=>{if(a){let n=document.createElement("input");Object.assign(n,{type:"hidden",name:r,value:a}),i.appendChild(n)}}),document.body.appendChild(i),i.submit()}};var Wg=class extends u{connect(){this.dispatch("displayed",{bubbles:!0})}};var jg=class extends u{static targets=["toast","linkDisplay"];static outlets=["dialog","invite-link-form"];static values={title:String,text:String};get currentUrl(){return this.linkDisplayTarget.textContent.trim()}async copy(i){i.preventDefault(),await navigator.clipboard.writeText(this.currentUrl),this.showToast()}async share(i){if(i.preventDefault(),navigator.share)try{await navigator.share({title:this.titleValue,text:this.textValue,url:this.currentUrl})}catch(s){s.name!=="AbortError"&&(await navigator.clipboard.writeText(this.currentUrl),this.showToast())}else await navigator.clipboard.writeText(this.currentUrl),this.showToast()}showToast(){this.toastTimeout&&clearTimeout(this.toastTimeout),this.toastTarget.classList.remove("hidden","opacity-0"),this.toastTarget.classList.add("flex","opacity-100"),this.toastTimeout=setTimeout(()=>{this.toastTarget.classList.remove("opacity-100"),this.toastTarget.classList.add("opacity-0"),setTimeout(()=>{this.toastTarget.classList.add("hidden"),this.toastTarget.classList.remove("flex")},300)},2e3)}openCustomizeDialog(i){if(i.preventDefault(),this.hasInviteLinkFormOutlet){let s=this.currentUrl.split("/").pop();this.inviteLinkFormOutlet.reset(s)}this.hasDialogOutlet&&this.dialogOutlet.open()}};var f0="text-red-500",v0="text-[#a4a4a4]",AM=/^[a-z0-9-]+$/,Kg=class extends u{static targets=["input","submitButton","submitLoader","hintMinLength","hintAllowedChars","errors"];static values={minLength:Number,maxLength:Number};connect(){this.originalValue=this.inputTarget.value,this.validateInput()}reset(i){this.inputTarget.value=i,this.originalValue=i,this.hasErrorsTarget&&(this.errorsTarget.innerHTML=""),this.validateInput()}handleSubmitEnd(){this.hideSubmitLoading()}validateInput(){let i=this.inputTarget.value.toLowerCase();this.inputTarget.value=i;let s=this.hasMinLength(i),r=this.hasValidChars(i),a=s&&r&&i.length<=this.maxLengthValue,n=i!==this.originalValue;this.updateHintStyles(s,r),this.submitButtonTarget.disabled=!a||!n}hasMinLength(i){return i.length>=this.minLengthValue}hasValidChars(i){return AM.test(i)}updateHintStyles(i,s){this.hintMinLengthTarget.classList.toggle(f0,!i),this.hintMinLengthTarget.classList.toggle(v0,i),this.hintAllowedCharsTarget.classList.toggle(f0,!s),this.hintAllowedCharsTarget.classList.toggle(v0,s)}handleSubmit(i){let s=this.inputTarget.value;if(!(this.hasMinLength(s)&&this.hasValidChars(s)&&s.length<=this.maxLengthValue)){i.preventDefault();return}this.showSubmitLoading()}showSubmitLoading(){if(this.submitButtonTarget.disabled=!0,this.submitButtonTarget.classList.add("opacity-50","cursor-not-allowed"),this.submitButtonTarget.classList.remove("cursor-pointer"),
390!this.hasSubmitLoaderTarget){let i=document.createElement("div");i.classList.add("loading-submit-white","ml-3"),i.setAttribute("data-invite-link-form-target","submitLoader"),this.submitButtonTarget.appendChild(i)}}hideSubmitLoading(){this.submitButtonTarget.disabled=!1,this.submitButtonTarget.classList.remove("opacity-50","cursor-not-allowed"),this.submitButtonTarget.classList.add("cursor-pointer"),this.hasSubmitLoaderTarget&&this.submitLoaderTarget.remove()}};var T0="google-one-tap-script",PM="https://accounts.google.com/gsi/client",zg=class extends Et{static values={clientId:String,url:String,storeUrlInCookieUrl:String};connect(){this.clientIdValue&&this.#e()}disconnect(){this.googleCheckInterval&&(clearInterval(this.googleCheckInterval),this.googleCheckInterval=null)}#e(){if(document.getElementById(T0)){this.#t();return}let i=document.createElement("script");i.id=T0,i.src=PM,i.async=!0,i.defer=!0,i.onload=()=>this.#i(),document.head.appendChild(i)}#t(){this.googleCheckInterval=setInterval(()=>{window.google?.accounts?.id&&(clearInterval(this.googleCheckInterval),this.googleCheckInterval=null,this.#i())},100)}#i(){try{window.google.accounts.id.cancel(),window.google.accounts.id.initialize({client_id:this.clientIdValue,callback:this.#s.bind(this),use_fedcm_for_prompt:!0}),window.google.accounts.id.prompt()}catch(i){this.captureError(i,{message:"Google One Tap initialization error"})}}async#s(i){try{await this.#r();let s=new FormData;s.append("credential",i.credential);let r=await H(this.urlValue,{body:s,responseKind:"json"});if(r.ok){let a=await r.json;a.success?window.location.href=a.redirect_to||"/":this.captureError(new Error(a.error),{message:"Google One Tap login failed"})}else{let a=await r.json;if(a?.redirect_to){window.location.assign(a.redirect_to);return}this.captureError(new Error(a.error||"Server error"),{message:"Google One Tap login failed"})}}catch(s){this.captureError(s,{message:"Google One Tap error"})}}async#r(){if(this.storeUrlInCookieUrlValue)try{await H(this.storeUrlInCookieUrlValue,{body:{redirect_url:window.location.href,registration_page_url:window.location.href}})}catch(i){this.captureError(i,{message:"Google One Tap storeUrlInCookie failed"})}}};var Yg=class extends Et{static values={category:{type:String,default:"targeting"},fbcName:{type:String,default:"_lp_fbc"},fbpName:{type:String,default:"_lp_fbp"},fbcMaxAge:{type:Number,default:7776e3},fbpMaxAge:{type:Number,default:63072e3},domainMode:{type:String,default:"all"}};connect(){this.boundApply=this.#e.bind(this),this.boundApplyIfAllowed=this.#i.bind(this),this.#i(),window.addEventListener(`CookieScriptCategory-${this.categoryValue}`,this.boundApply),window.addEventListener("CookieScriptLoaded",this.boundApplyIfAllowed)}disconnect(){window.removeEventListener(`CookieScriptCategory-${this.categoryValue}`,this.boundApply),window.removeEventListener("CookieScriptLoaded",this.boundApplyIfAllowed)}#e(){let i=new URLSearchParams(window.location.search),s=i.get("fbc");if(s)this.#a(this.fbcNameValue,s,this.fbcMaxAgeValue);else{let a=i.get("fbclid");a&&this.#s(a)}let r=i.get("fbp");r&&this.#r(this.fbpNameValue,r,this.fbpMaxAgeValue)}#t(){return!!window.CookieScript?.instance?.currentState?.()?.categories?.includes(this.categoryValue)}#i(){this.#t()&&this.#e()}#s(i){this.#a(this.fbcNameValue,`fb.1.${Date.now()}.${i}`,this.fbcMaxAgeValue)}#r(i,s,r){this.#n(i)||this.#a(i,s,r)}#a(i,s,r){let a=this.domainModeValue==="all"?this.#o():null,n=a?`; domain=${a}`:"",l=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${i}=${encodeURIComponent(s)}; path=/; max-age=${r}${n}; SameSite=Lax${l}`}#n(i){let s=document.cookie.match(new RegExp("(?:^|; )"+i+"=([^;]*)"));return s?decodeURIComponent(s[1]):null}#o(){let i=window.location.hostname.split(".");return i.length<2?null:"."+i.slice(-2).join(".")}};var Xg=class extends Et{static values={pixelIds:Array,requireConsent:Boolean,category:{type:String,default:"targeting"}};connect(){if(!this.requireConsentValue){this.#i();return}this.boundApply=this.#i.bind(this),this.boundApplyIfAllowed=this.#e.bind(this),this.#e(),window.addEventListener(`CookieScriptCategory-${this.categoryValue}`,this.boundApply),window.addEventListener("CookieScriptLoaded",this.boundApplyIfAllowed)}disconnect(){this.requireConsentValue&&(window.removeEventListener(`CookieScriptCategory-${this.categoryValue}`,this.boundApply),window.removeEventListener("CookieScriptLoaded",this.boundApplyIfAllowed))}#e(){this.#t()&&this.#i()}#t(){return!!window.CookieScript?.instance?.currentState?.()?.categories?.includes(this.categoryValue)}#i(){let i=this.pixelIdsValue.filter(s=>s&&!this.#r().has(s));
390if(i.length!==0)try{this.#s(),i.forEach(s=>{this.#r().add(s),window.ttq.load(s)}),window.ttq.page()}catch(s){this.captureError(s,{pixelIds:i})}}#s(){if(window.ttq)return;let i="ttq";window.TiktokAnalyticsObject=i;let s=window[i]=window[i]||[];s.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie","holdConsent","revokeConsent","grantConsent"],s.setAndDefer=function(r,a){r[a]=function(){r.push([a].concat(Array.prototype.slice.call(arguments,0)))}},s.methods.forEach(r=>s.setAndDefer(s,r)),s.instance=function(r){let a=s._i[r]||[];return s.methods.forEach(n=>s.setAndDefer(a,n)),a},s.load=function(r,a){let n="https://analytics.tiktok.com/i18n/pixel/events.js";s._i=s._i||{},s._i[r]=[],s._i[r]._u=n,s._t=s._t||{},s._t[r]=+new Date,s._o=s._o||{},s._o[r]=a||{};let l=document.createElement("script");l.type="text/javascript",l.async=!0,l.src=`${n}?sdkid=${r}&lib=${i}`;let d=document.getElementsByTagName("script")[0];d.parentNode.insertBefore(l,d)}}#r(){return window._tiktokPixelInitializedPixelIds||=new Set,window._tiktokPixelInitializedPixelIds}};var Qg="uta_visitor_id";function tb(){return y0()||BM(Qg)||MM()}function b0(i=""){let s=y0()||i||tb();if(s)return Jg(s);let r=_M();return Jg(r)}function Jg(i){return VM(i),i}function VM(i){try{localStorage.setItem(Qg,i)}catch{}try{OM(Qg,i,365)}catch{}}function MM(){try{return localStorage.getItem(Qg)||""}catch{return""}}function y0(){return document.querySelector("[data-uta-api-current-visitor-id]")?.dataset.utaApiCurrentVisitorId||""}function _M(){let i=globalThis.crypto;if(i?.randomUUID)return i.randomUUID();let s=a=>Array.from({length:a},()=>Math.floor(Math.random()*16).toString(16)).join(""),r=["8","9","a","b"][Math.floor(Math.random()*4)];return`${s(8)}-${s(4)}-4${s(3)}-${r}${s(3)}-${s(12)}`}function BM(i){try{let s=document.cookie.match(new RegExp(`(?:^|; )${i}=([^;]*)`));return s?decodeURIComponent(s[1]):""}catch{return""}}function OM(i,s,r){let a=new Date(Date.now()+r*864e5).toUTCString(),n=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${i}=${encodeURIComponent(s)}; path=/; expires=${a}; SameSite=Lax${n}`}var ib="internal_experiment",FM=["auth_token","pa_ref"],DM=[3e3,6e3],Zg=class extends Et{static values={apiUrl:String,apiToken:String,utaVisitorId:String,email:String,experiments:Array,skipPageView:{type:Boolean,default:!1}};connect(){this.disconnected=!1,this.#o(b0(this.utaVisitorIdValue)),this.#e().then(i=>{this.disconnected||window.dispatchEvent(new CustomEvent("uta-api:pageview",{detail:{...i,utaVisitorId:this.visitorId}}))})}disconnect(){this.disconnected=!0,clearTimeout(this.retryTimeout),this.retryResolve?.()}async#e(){if(this.skipPageViewValue)return{status:"skipped",reason:"server_claimed"};if(!this.apiUrlValue||!this.apiTokenValue)return{status:"skipped",reason:"missing_config"};let i=this.#s(window.location.href),s=await this.#t(i);return{status:s?"sent":"error",reason:s?null:"request_failed"}}async#t(i){let s=await this.#r(0,i);for(let r of DM){if(s||this.disconnected||(await new Promise(a=>{this.retryResolve=a,this.retryTimeout=setTimeout(a,r)}),this.disconnected))break;s=await this.#r(2,i)}return s}#i(){return this.experimentsValue.filter(i=>i?.experiment_name&&i?.experiment_variant)}#s(i){let s=this.#i(),r=new URL(i),a=[...r.searchParams.keys()].filter(n=>FM.includes(n)||n===ib||n.startsWith(`${ib}[`));if(!s.length&&!a.length)return i;if(a.forEach(n=>r.searchParams.delete(n)),s.length){let n=s.map(l=>`${l.experiment_name}:${l.experiment_variant}`).join(",");r.searchParams.set(ib,n)}return r.toString()}#r(i,s){if(this.disconnected)return Promise.resolve(!1);let r=this.#l(s);return r||i>=2?this.#a(r,s):new Promise(a=>{setTimeout(()=>a(this.#r(i+1,s)),1e3)})}async#a(i,s){try{let r={event_name:"PageView",event_source_url:s},a=this.#n(s),n=new URLSearchParams(new URL(s).search).get("fbclid");a&&(r.fbc=a),i&&(r.fbp=i),n&&(r.fbclid=n),this.visitorId&&(r.uta_visitor_id=this.visitorId),this.emailValue&&(r.event_data={email:this.emailValue});let l=await fetch(`${this.apiUrlValue}/api/v1/tracking/events`,{method:"POST",headers:{"Content-Type":"application/json","X-Tracking-Token":this.apiTokenValue},credentials:"include",keepalive:!0,body:JSON.stringify(r)});if(l.ok){let d=await l.json();return d.uta_visitor_id&&this.#o(Jg(d.uta_visitor_id)),!0}return!1}catch(r){return this.captureError(r,{message:"UTA sync failed"}),!1}}#n(i){return this.#h(i,{param:"fbc",lpCookie:"_lp_fbc",fallbackCookie:"_fbc"})}#o(i){this.visitorId=i,this.element.dataset.utaApiCurrentVisitorId=i,document.documentElement.dataset.utaApiCurrentVisitorId=i}#l(i){return this.#h(i,{param:"fbp",lpCookie:"_lp_fbp",fallbackCookie:"_fbp"})}#h(i,{param:s,lpCookie:r,fallbackCookie:a}){return new URLSearchParams(new URL(i).search).get(s)||this.#c(r)||this.#c(a)}#c(i){try{let s=document.cookie.match(new RegExp("(?:^|; )"+i+"=([^;]*)"));return s?decodeURIComponent(s[1]):null}catch{return null}}};var em=class extends u{static targets=["input"];#e;#t=i=>{i?.detail?.utaVisitorId&&(this.#e=i.detail.utaVisitorId);let s=this.#e||tb();s&&(this.inputTarget.value=s)};connect(){this.#t(),this.element.addEventListener("submit",this.#t),window.addEventListener("uta-api:pageview",this.#t)}disconnect(){this.element.removeEventListener("submit",this.#t),window.removeEventListener("uta-api:pageview",this.#t)}};var tm=class extends u{static targets=["content","trigger"];static classes=["clamp"];expand(){this.contentTarget.classList.remove(this.clampClass),this.triggerTarget.remove()}};var im=class extends u{static targets=["content","button"];static values={content:String,maxLength:{type:Number,default:100},expanded:{type:Boolean,default:!1},readMoreText:{type:String,default:"Read more"},readLessText:{type:String,default:"Read less"}};connect(){this.updateUI()}toggle(){this.expandedValue=!this.expandedValue}expandedValueChanged(){this.updateUI()}updateUI(){let i=this.contentValue,s=this.maxLengthValue,r=this.expandedValue;i.length<=s?(this.contentTarget.textContent=i,this.hasButtonTarget&&this.buttonTarget.classList.add("hidden")):(this.hasButtonTarget&&(this.buttonTarget.classList.remove("hidden"),this.buttonTarget.textContent=r?this.readLessTextValue:this.readMoreTextValue),this.contentTarget.textContent=r?i:`${i.slice(0,s)}...`)}};var sm=class extends u{static targets=["optionsView","emailFormView","moreOptionsToggle","moreOptionsView"];static outlets=["email-validation"];connect(){this.#e()}showEmailForm(){this.hasOptionsViewTarget&&this.optionsViewTarget.classList.add("hidden"),this.hasEmailFormViewTarget&&this.emailFormViewTarget.classList.remove("hidden")}showOptions(){this.#e(),this.#t()}toggleMoreOptions(){this.hasMoreOptionsToggleTarget&&this.moreOptionsToggleTarget.classList.add("hidden"),this.hasMoreOptionsViewTarget&&this.moreOptionsViewTarget.classList.remove("hidden")}#e(){this.hasOptionsViewTarget&&this.optionsViewTarget.classList.remove("hidden"),this.hasEmailFormViewTarget&&this.emailFormViewTarget.classList.add("hidden"),this.hasMoreOptionsToggleTarget&&this.moreOptionsToggleTarget.classList.remove("hidden"),this.hasMoreOptionsViewTarget&&this.moreOptionsViewTarget.classList.add("hidden")}#t(){this.hasEmailValidationOutlet&&this.emailValidationOutlet.reset()}};var rm=class extends u{static targets=["button","icon","label","tokenCost"];static values={url:String,label:String,confirmLabel:String,loadingLabel:String,tokenCost:String};connect(){this.generating=!1,this.confirming=!1,this.confirmTimeout=null}disconnect(){this.clearConfirmTimeout()}async generateScene(i){if(i.preventDefault(),!this.generating){if(!this.confirming){this.setConfirmState(!0);return}this.clearConfirmTimeout(),this.confirming=!1,this.generating=!0,this.setLoadingState(!0),document.querySelectorAll(".message-delete-action").forEach(s=>s.remove());try{await H(this.urlValue,{responseKind:"turbo-stream"}),document.dispatchEvent(new CustomEvent("image-generation:requested",{detail:{amount:1}}))}catch{}finally{setTimeout(()=>{this.generating=!1,this.setLoadingState(!1)},2e3)}}}setConfirmState(i){this.confirming=i,i?(this.hasLabelTarget&&(this.labelTarget.textContent=this.confirmLabelValue),this.hasIconTarget&&this.iconTarget.classList.add("hidden"),this.hasTokenCostTarget&&(this.tokenCostTarget.classList.remove("hidden"),this.tokenCostTarget.classList.add("flex")),this.confirmTimeout=setTimeout(()=>{this.setConfirmState(!1)},5e3)):(this.clearConfirmTimeout(),this.hasLabelTarget&&(this.labelTarget.textContent=this.labelValue),this.hasIconTarget&&this.iconTarget.classList.remove("hidden"),this.hasTokenCostTarget&&(this.tokenCostTarget.classList.add("hidden"),this.tokenCostTarget.classList.remove("flex")))}clearConfirmTimeout(){this.confirmTimeout&&(clearTimeout(this.confirmTimeout),this.confirmTimeout=null)}setLoadingState(i){this.buttonTarget.classList.toggle("opacity-50",i),this.buttonTarget.classList.toggle("cursor-not-allowed",i),this.hasIconTarget&&this.iconTarget.classList.remove("hidden"),this.hasTokenCostTarget&&(this.tokenCostTarget.classList.add("hidden"),this.tokenCostTarget.classList.remove("flex")),this.hasLabelTarget&&(this.labelTarget.textContent=i?this.loadingLabelValue:this.labelValue)}};var am=class extends u{static targets=["popover","trigger"];connect(){this.generating=!1}toggle(i){i.stopPropagation(),this.popoverTarget.classList.contains("hidden")?this.openPopover():this.close()}openPopover(){this.popoverTarget.classList.remove("hidden")}close(){this.popoverTarget.classList.add("hidden")}closeOnOutsideClick(i){this.popoverTarget.classList.contains("hidden")||this.element.contains(i.target)||this.close()}generate(i){i.stopPropagation(),!this.generating&&(this.close(),this.#e(i.params.url,
390i.params.eventName))}async#e(i,s){this.generating=!0,this.#t(!0),document.querySelectorAll(".message-delete-action").forEach(r=>r.remove());try{await H(i,{responseKind:"turbo-stream"}),s&&this.dispatch(s,{prefix:""})}catch(r){console.error("[scene-picker] Generation request failed:",r)}finally{setTimeout(()=>{this.generating=!1,this.#t(!1)},2e3)}}#t(i){this.triggerTarget.classList.toggle("opacity-50",i),this.triggerTarget.classList.toggle("cursor-not-allowed",i)}};var nm=class extends u{static targets=["input","warning"];static values={blockedPattern:String};connect(){this.blockedRegex=new RegExp(this.blockedPatternValue,"i"),this.isVisible=!1}checkContent(){let i=this.inputTarget.value.trim();i.length>=3&&this.blockedRegex.test(i)?this.showWarning():this.hideWarning()}showWarning(){this.isVisible||(this.isVisible=!0,this.warningTarget.classList.remove("hidden"),requestAnimationFrame(()=>{this.warningTarget.style.maxHeight="50px",this.warningTarget.style.opacity="1"}))}hideWarning(){this.isVisible&&(this.isVisible=!1,this.warningTarget.style.maxHeight="0",this.warningTarget.style.opacity="0",setTimeout(()=>{this.isVisible||this.warningTarget.classList.add("hidden")},300))}};var om=class extends u{static targets=["card","cardWrapper","counter","mobileSubmitButton","mobileProfileIdsContainer","grid","emptyState","searchInput"];static values={max:{type:Number,default:2},min:{type:Number,default:2}};connect(){this.selectedProfileIds=new Set,this.activeFilters={gender:null,origin:null,tags:[],favorites:!1},this.searchQuery="",this.updateUI()}search(i){this.searchQuery=i.target.value.toLowerCase().trim(),this.filterCards()}toggleSelection(i){let s=i.currentTarget,r=s.dataset.profileId;r&&(this.selectedProfileIds.has(r)?(this.selectedProfileIds.delete(r),this.setCardSelected(s,!1)):this.selectedProfileIds.size<this.maxValue&&(this.selectedProfileIds.add(r),this.setCardSelected(s,!0)),this.updateUI())}applyFilters(i){let s=i.detail;this.activeFilters={gender:s.gender,origin:s.origin,tags:s.tags||[],favorites:s.favorites||!1},this.filterCards()}filterCards(){let i=0;this.cardWrapperTargets.forEach(s=>{let r=s.dataset.gender,a=s.dataset.name||"",n=s.dataset.origin||"system",l=(s.dataset.tags||"").split(",").filter(W=>W),d=s.dataset.favorite==="true",m=!this.activeFilters.gender||r===this.activeFilters.gender,v=this.searchQuery===""||a.toLowerCase().includes(this.searchQuery),E=!this.activeFilters.origin||n===this.activeFilters.origin,D=this.activeFilters.tags.length===0||this.activeFilters.tags.some(W=>l.includes(W)),R=!this.activeFilters.favorites||d;m&&v&&E&&D&&R?(s.classList.remove("hidden"),i++):s.classList.add("hidden")}),this.hasEmptyStateTarget&&(i===0?(this.emptyStateTarget.classList.remove("hidden"),this.hasGridTarget&&this.gridTarget.classList.add("hidden")):(this.emptyStateTarget.classList.add("hidden"),this.hasGridTarget&&this.gridTarget.classList.remove("hidden")))}setCardSelected(i,s){}updateCardDisabledStates(){let i=this.selectedProfileIds.size>=this.maxValue;this.cardTargets.forEach(s=>{let r=s.dataset.profileId,a=this.selectedProfileIds.has(r);i&&!a?s.classList.add("opacity-40","pointer-events-none"):s.classList.remove("opacity-40","pointer-events-none")})}updateUI(){this.hasCounterTarget&&(this.counterTarget.textContent=`${this.selectedProfileIds.size} of ${this.maxValue} max`);let i=this.selectedProfileIds.size,s=i>=this.minValue&&i<=this.maxValue;this.hasMobileSubmitButtonTarget&&this.toggleButtonState(this.mobileSubmitButtonTarget,s),this.updateCardDisabledStates(),this.hasMobileProfileIdsContainerTarget&&this.populateHiddenInputs(this.mobileProfileIdsContainerTarget)}toggleButtonState(i,s){s?(i.classList.remove("opacity-50","pointer-events-none"),i.disabled=!1):(i.classList.add("opacity-50","pointer-events-none"),i.disabled=!0)}populateHiddenInputs(i){i&&(i.innerHTML="",this.selectedProfileIds.forEach(s=>{let r=document.createElement("input");r.type="hidden",r.name="profile_ids[]",r.value=s,i.appendChild(r)}))}};var lm=class extends u{static targets=["button","label"];static values={url:String,label:String,loadingLabel:String};connect(){this.continuing=!1}async continue(i){if(i.preventDefault(),!this.continuing){this.continuing=!0,this.setLoadingState(!0);try{await H(this.urlValue,{responseKind:"turbo-stream"})}catch{}finally{setTimeout(()=>{this.continuing=!1,this.setLoadingState(!1)},2e3)}}}setLoadingState(i){this.hasButtonTarget&&(this.buttonTarget.classList.toggle("opacity-50",i),this.buttonTarget.classList.toggle("cursor-not-allowed",i)),this.hasLabelTarget&&(this.labelTarget.textContent=i?this.loadingLabelValue:this.labelValue)}};var hm=class extends u{static targets=["modal","rating","feedback","submitButton","successMessage","errorMessage"];static values={characters:String,conversationId:String,userId:String};static FORM_URL="https://docs.google.com/forms/d/e/1FAIpQLScZ5rKF0Yk66xWJnjlupSMKbRAB7eOOD-lhjR2gfPAuP3rDKQ/formResponse";static ENTRIES={character1:"entry.1378716793",character2:"entry.674561060",character3:"entry.382285502",conversationId:"entry.1609170420",userId:"entry.715469692",feedback:"entry.725158094",rating:"entry.667115565"};connect(){this.selectedRating=null,this.characterNames=this.charactersValue?this.charactersValue.split(","):[],this.boundOpen=this.open.bind(this),document.addEventListener("group-chat:open-feedback-modal",this.boundOpen)}disconnect(){document.removeEventListener("group-chat:open-feedback-modal",this.boundOpen)}open(){this.modalTarget.classList.remove("hidden"),this.resetForm()}close(){this.modalTarget.classList.add("hidden")}closeOnBackdrop(i){i.target===this.modalTarget&&this.close()}selectRating(i){let s=i.currentTarget.dataset.rating;this.selectedRating=s,this.updateStars(parseInt(s))}hoverRating(i){let s=parseInt(i.currentTarget.dataset.rating);this.updateStars(s)}leaveRating(){let i=this.selectedRating?parseInt(this.selectedRating):0;this.updateStars(i)}
390updateStars(i){this.ratingTargets.forEach(s=>{parseInt(s.dataset.rating)<=i?(s.classList.add("text-yellow-400"),s.classList.remove("text-white/40")):(s.classList.remove("text-yellow-400"),s.classList.add("text-white/40"))})}async submit(i){if(i.preventDefault(),!this.selectedRating){this.showError("Please select a rating");return}let s=this.feedbackTarget.value.trim();this.submitButtonTarget.disabled=!0,this.submitButtonTarget.textContent="Submitting...";try{let r=new URLSearchParams;r.append(this.constructor.ENTRIES.character1,this.characterNames[0]||""),r.append(this.constructor.ENTRIES.character2,this.characterNames[1]||""),r.append(this.constructor.ENTRIES.character3,this.characterNames[2]||""),r.append(this.constructor.ENTRIES.conversationId,this.conversationIdValue||""),r.append(this.constructor.ENTRIES.userId,this.userIdValue||""),r.append(this.constructor.ENTRIES.rating,this.selectedRating),r.append(this.constructor.ENTRIES.feedback,s),await fetch(this.constructor.FORM_URL,{method:"POST",mode:"no-cors",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:r.toString()}),this.showSuccess(),setTimeout(()=>{this.close()},2e3)}catch(r){console.error("Feedback submission error:",r),this.showError("Failed to submit feedback. Please try again."),this.submitButtonTarget.disabled=!1,this.submitButtonTarget.textContent="Submit Feedback"}}showSuccess(){this.successMessageTarget.classList.remove("hidden"),this.errorMessageTarget.classList.add("hidden")}showError(i){this.errorMessageTarget.textContent=i,this.errorMessageTarget.classList.remove("hidden"),this.successMessageTarget.classList.add("hidden")}resetForm(){this.selectedRating=null,this.feedbackTarget.value="",this.submitButtonTarget.disabled=!1,this.submitButtonTarget.textContent="Submit Feedback",this.successMessageTarget.classList.add("hidden"),this.errorMessageTarget.classList.add("hidden"),this.ratingTargets.forEach(i=>{i.classList.remove("text-yellow-400"),i.classList.add("text-white/40")})}};var cm=class extends u{open(){document.dispatchEvent(new CustomEvent("group-chat:open-feedback-modal"))}};var dm=class extends u{static targets=["container"];static values={notificationType:String,firstTimeShown:{type:Boolean,default:!0}};connect(){this.firstTimeShownValue&&(this._show(),this._markNotificationAsShown())}disconnect(){document.body.classList.remove("overflow-hidden")}dismiss(){this._hide()}_show(){this.hasContainerTarget&&this.containerTarget.classList.remove("hidden"),document.body.classList.add("overflow-hidden")}_hide(){this.hasContainerTarget&&this.containerTarget.classList.add("hidden"),document.body.classList.remove("overflow-hidden")}async _markNotificationAsShown(){if(this.hasNotificationTypeValue)try{await Re.markAsShown(this.notificationTypeValue)}catch{}}};var um=class extends u{static targets=["modal"];static values={notificationType:String,firstTime:{type:Boolean,default:!1},navigateUrl:String};connect(){this.#e(),this.beforeCacheHandler=()=>this.#t(),document.addEventListener("turbo:before-cache",this.beforeCacheHandler)}disconnect(){document.removeEventListener("turbo:before-cache",this.beforeCacheHandler),this.#t()}intercept(i){!this.firstTimeValue||!this.modalElement||(i.preventDefault(),i.stopPropagation(),this.#i())}async dismiss(){this.dismissing||(this.dismissing=!0,await this.#a(),this.#s(),Be.visit(this.navigateUrlValue))}#e(){this.hasModalTarget&&(this.modalElement=this.modalTarget,this.modalPlaceholder=document.createComment("custom-roleplay-welcome-modal"),this.modalElement.before(this.modalPlaceholder),document.body.appendChild(this.modalElement),this.dismissHandler=()=>this.dismiss(),this.backdropHandler=i=>{i.target===i.currentTarget&&this.dismiss()},this.backdropElement=this.modalElement.querySelector("[data-welcome-backdrop]"),this.backdropElement?.addEventListener("click",this.backdropHandler),this.dismissElement=this.modalElement.querySelector("[data-welcome-dismiss]"),this.dismissElement?.addEventListener("click",this.dismissHandler))}#t(){this.modalElement&&(this.backdropElement?.removeEventListener("click",this.backdropHandler),this.dismissElement?.removeEventListener("click",this.dismissHandler),this.modalElement.classList.add("hidden"),this.modalPlaceholder?.isConnected?this.modalPlaceholder.replaceWith(this.modalElement):(this.modalElement.remove(),this.modalPlaceholder?.remove()),this.modalPlaceholder=null,this.modalElement=null,this.backdropElement=null,this.dismissElement=null,this.#r())}#i(){this.modalElement&&(this.modalElement.classList.remove("hidden"),this.scrollLocked=!0,document.body.classList.add("overflow-hidden"))}#s(){this.modalElement&&this.modalElement.classList.add("hidden"),this.#r()}#r(){this.scrollLocked&&(this.scrollLocked=!1,document.body.classList.remove("overflow-hidden"))}async#a(){if(this.hasNotificationTypeValue)try{await Re.markAsShown(this.notificationTypeValue)}catch{}this.firstTimeValue=!1}};var gm=class extends u{static targets=["modal","feedbackForm","successMessage","likeButton","dislikeButton","feedbackText","submitButton"];static outlets=["message-gtm-tracker"];static values={userId:Number,profileId:Number,submitUrl:String,autoOpen:Boolean,reaction:String};connect(){this.boundHandleOutsideClick=this.handleOutsideClick.bind(this),this.boundHandleClose=this.handleClose.bind(this),this.submitted=!1,this.disableSubmitButton(),this.autoOpenValue&&!this.dismissedByUser()&&setTimeout(()=>this.open(),50)}open(){this.hasModalTarget&&(this.modalTarget.showModal(),this.modalTarget.addEventListener("click",this.boundHandleOutsideClick),this.modalTarget.addEventListener("close",this.boundHandleClose),this.conversationContainerElement&&(this.conversationContainerElement.style.filter="blur(4px)"))}close(){this.hasModalTarget&&(this.modalTarget.close(),this.removeBlur())}handleClose(){this.submitted||this.markAsDismissed(),this.submitted=!1,this.removeBlur()}removeBlur(){this.conversationContainerElement&&(this.conversationContainerElement.style.filter="none")}get conversationContainerElement(){return this.hasMessageGtmTrackerOutlet?this.messageGtmTrackerOutletElement:null}selectLike(){this.reactionValue="like",this.likeButtonTarget.classList.add("bg-blue-brand","text-white"),this.likeButtonTarget.classList.remove("bg-transparent","text-white/60"),this.dislikeButtonTarget.classList.add("bg-transparent","text-white/60"),this.dislikeButtonTarget.classList.remove("bg-blue-brand","text-white"),this.enableSubmitButton()}selectDislike(){this.reactionValue="dislike",this.dislikeButtonTarget.classList.add("bg-blue-brand","text-white"),this.dislikeButtonTarget.classList.remove("bg-transparent","text-white/60"),this.likeButtonTarget.classList.add("bg-transparent","text-white/60"),this.likeButtonTarget.classList.remove("bg-blue-brand","text-white"),this.enableSubmitButton()}enableSubmitButton(){this.submitButtonTarget.disabled=!1,this.submitButtonTarget.classList.remove("opacity-50","cursor-not-allowed"),this.submitButtonTarget.classList.add("hover:bg-primary/90")}disableSubmitButton(){this.submitButtonTarget.disabled=!0,this.submitButtonTarget.classList.add("opacity-50","cursor-not-allowed"),this.submitButtonTarget.classList.remove("hover:bg-primary/90")}async submitFeedback(i){if(i.preventDefault(),!(!this.reactionValue||this.submitted)){this.submitted=!0,this.disableSubmitButton();try{let s=await Pt();(await H(this.submitUrlValue,{body:JSON.stringify({profile_id:this.profileIdValue,feedback_device_context:s,polymorphic_feedback:{reaction:this.reactionValue,description:this.feedbackTextTarget.value}}),contentType:"application/json"})).ok?this.showSuccessMessage():this.submitted=!1}catch{this.submitted=!1}}}showSuccessMessage(){this.feedbackFormTarget.style.display="none",this.successMessageTarget.style.display="block",setTimeout(()=>{this.close()},2e3)}handleOutsideClick(i){i.target===this.modalTarget&&this.close()}dismissedByUser(){try{return window.localStorage.getItem(this.dismissedStorageKey)==="true"}catch{return!1}}markAsDismissed(){try{window.localStorage.setItem(this.dismissedStorageKey,"true")}catch{}}get dismissedStorageKey(){return`exclusive_profile_feedback_dismissed_${this.userStorageScope}_${this.profileIdValue}`}get userStorageScope(){return this.hasUserIdValue?this.userIdValue:"anonymous"}disconnect(){this.hasModalTarget&&(this.modalTarget.removeEventListener("click",this.boundHandleOutsideClick),this.modalTarget.removeEventListener("close",this.boundHandleClose)),this.removeBlur()}};var mm=class extends u{static targets=["pill","container"];static classes={active:"bg-gradient-filter-tag-active border-pink-dark",inactive:"bg-black-medium border-black-stroke"};scrollLeft(){this.hasContainerTarget&&this.containerTarget.scrollBy({left:-200,behavior:"smooth"})}scrollRight(){this.hasContainerTarget&&this.containerTarget.scrollBy({left:200,behavior:"smooth"})}
390select(i){let s=i.currentTarget,r=s.dataset.filterType;this.pillTargets.forEach(a=>{let n=a===s,l=a.dataset.filterType==="all",d=a.dataset.filterType;r==="all"?l?this.activatePill(a):this.deactivatePill(a):l?this.deactivatePill(a):r==="favorites"&&d==="origin"?this.deactivatePill(a):r==="origin"&&d==="favorites"?this.deactivatePill(a):n?this.isPillActive(a)?(this.deactivatePill(a),this.hasActiveNonAllPill()||this.activateAllPill()):this.activatePill(a):r==="gender"&&d==="gender"?this.deactivatePill(a):r==="origin"&&d==="origin"&&this.deactivatePill(a)}),this.dispatch("filterChanged",{detail:this.getActiveFilters(),bubbles:!0})}activatePill(i){i.classList.remove("bg-black-medium","border-black-stroke"),i.classList.add("bg-gradient-filter-tag-active","border-pink-dark")}deactivatePill(i){i.classList.remove("bg-gradient-filter-tag-active","border-pink-dark"),i.classList.add("bg-black-medium","border-black-stroke")}isPillActive(i){return i.classList.contains("bg-gradient-filter-tag-active")}hasActiveNonAllPill(){return this.pillTargets.some(i=>i.dataset.filterType!=="all"&&this.isPillActive(i))}activateAllPill(){let i=this.pillTargets.find(s=>s.dataset.filterType==="all");i&&this.activatePill(i)}getActiveFilters(){let i={gender:null,origin:null,tags:[],favorites:!1};return this.pillTargets.forEach(s=>{if(!this.isPillActive(s))return;let r=s.dataset.filterType,a=s.dataset.filterValue;r==="all"?(i.gender=null,i.origin=null,i.tags=[],i.favorites=!1):r==="favorites"?i.favorites=!0:r==="gender"?i.gender=a:r==="origin"?i.origin=a:r==="tag"&&i.tags.push(a)}),i}};var pm=class extends u{static targets=["input","container","toggle"];static classes=["hidden","expanded"];expand(){this.hasContainerTarget&&(this.hasToggleTarget&&this.toggleTarget.classList.add(this.hiddenClass),this.containerTarget.classList.remove(this.hiddenClass),this.containerTarget.classList.add(this.expandedClass),requestAnimationFrame(()=>{this.inputTarget.focus()}))}collapseOnBlur(){!this.hasInputTarget||this.inputTarget.value.trim()||requestAnimationFrame(()=>this.#e())}search(){let i=this.inputTarget.value.toLowerCase().trim();this.dispatch("queryChanged",{detail:{query:i},bubbles:!0})}#e(){this.containerTarget.classList.remove(this.expandedClass),this.containerTarget.classList.add(this.hiddenClass),this.hasToggleTarget&&this.toggleTarget.classList.remove(this.hiddenClass)}};var fm=class extends u{static targets=["card","grid","emptyState","emptyStateCta"];static classes=["hidden","visible"];applySearch(i){this.#e=i.detail.query,this.#i()}applyOrigin(i){let{value:s}=i.detail;this.#t=s==="all"?null:s,this.#i()}#e="";#t=null;#i(){let i=0;this.cardTargets.forEach(s=>{let r=s.dataset.name||"",a=s.dataset.origin||"",n=!this.#e||r.includes(this.#e),l=!this.#t||a===this.#t,d=n&&l;s.classList.toggle(this.hiddenClass,!d),d&&i++}),this.#s(i)}#s(i){let s=this.hasEmptyStateCtaTarget&&this.#t==="user"&&i===0,r=i===0&&!s;this.hasGridTarget&&this.gridTarget.classList.toggle(this.hiddenClass,i===0),this.hasEmptyStateTarget&&this.emptyStateTarget.classList.toggle(this.hiddenClass,!r),this.hasEmptyStateCtaTarget&&(this.emptyStateCtaTarget.classList.toggle(this.hiddenClass,!s),this.emptyStateCtaTarget.classList.toggle(this.visibleClass,s))}};var vm=class extends u{static targets=["button","backButton","buttonContent","buttonSpinner"];static classes=["disabled"];#e=!1;connect(){let i=this.element.querySelector('[data-controller="card-selector"]');if(!i)return;let s=!!i.querySelector('[data-selected="true"]');this.#t(s)}enable(){this.#t(!0)}disable(){this.#t(!1)}guardSubmit(i){if(!i.defaultPrevented){if(this.#e){i.preventDefault(),i.stopImmediatePropagation();return}this.#e=!0}}submitStart(){this.hasButtonTarget&&(this.buttonTarget.disabled=!0,this.hasButtonContentTarget&&this.hasButtonSpinnerTarget&&(this.buttonContentTarget.classList.add("hidden"),this.buttonSpinnerTarget.classList.remove("hidden")),this.hasBackButtonTarget&&(this.backButtonTarget.disabled=!0))}submitEnd(){this.hasButtonTarget&&(this.buttonTarget.disabled=!1,this.hasButtonContentTarget&&this.hasButtonSpinnerTarget&&(this.buttonContentTarget.classList.remove("hidden"),this.buttonSpinnerTarget.classList.add("hidden")),this.hasBackButtonTarget&&(this.backButtonTarget.disabled=!1),this.#e=!1)}#t(i){this.hasButtonTarget&&(this.buttonTarget.disabled=!i,this.disabledClasses.forEac
390h(s=>{this.buttonTarget.classList.toggle(s,!i)}))}};var RM=768,S0="hidden!",Tm=class extends u{static targets=["grid","button","item"];static values={mobileCount:{type:Number,default:6},desktopCount:{type:Number,default:0}};connect(){this._userExpanded=!1,this._hasActiveSearch=!1,this._hasActiveOrigin=!1,this._resizeHandler=()=>this.#e(),window.addEventListener("resize",this._resizeHandler),this.#e()}disconnect(){window.removeEventListener("resize",this._resizeHandler)}toggle(){this._userExpanded=!0,this.#e()}handleSearch(i){this._hasActiveSearch=!!i?.detail?.query,requestAnimationFrame(()=>this.#e())}handleOrigin(i){let s=i?.detail?.value;this._hasActiveOrigin=!!s&&s!=="all",requestAnimationFrame(()=>this.#e())}#e(){let s=window.innerWidth>=RM?this.desktopCountValue:this.mobileCountValue,r=this._hasActiveSearch||this._hasActiveOrigin,a=this.#t();if(this._userExpanded||r||s<=0||a.length<=s){a.forEach(l=>this.#i(l,!1)),this.#s(!1);return}this.#r(),this.#t().forEach((l,d)=>this.#i(l,d>=s)),this.#s(!0)}#t(){return this.hasItemTarget?this.itemTargets:Array.from(this.gridTarget.querySelectorAll("[data-card-selector-target='card']"))}#i(i,s){i.classList.toggle(S0,s);let r=this.#a(i);r&&r.classList.toggle(S0,s)}#s(i){this.hasButtonTarget&&this.buttonTarget.classList.toggle("hidden",!i)}#r(){let i=this.#t();if(i.length===0)return;let s=-1;for(let v=0;v<i.length;v++){let E=i[v];if(E.dataset.selected==="true"||E.querySelector("[data-selected='true']")){s=v;break}}if(s<=0)return;let r=i[s],a=i[0],n=r.parentElement;if(!n)return;let l=this.#a(r),m=this.#a(a)||a;l&&n.insertBefore(l,m),n.insertBefore(r,m)}#a(i){let s=i.previousElementSibling;return s&&s.matches("input")?s:null}};var NM=768,UM=40,HM=24,bm=class extends u{static targets=["footer","anchor"];connect(){this._onResize=()=>this.#e(),window.addEventListener("resize",this._onResize),typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(()=>this.#e()),this.anchorTargets.forEach(i=>this._resizeObserver.observe(i))),this.#e()}disconnect(){window.removeEventListener("resize",this._onResize),this._resizeObserver?.disconnect(),this._rafId&&cancelAnimationFrame(this._rafId)}anchorTargetConnected(i){this._resizeObserver?.observe(i),this.#e()}anchorTargetDisconnected(i){this._resizeObserver?.unobserve(i),this.#e()}recompute(){this.#e()}#e(){this._rafId&&cancelAnimationFrame(this._rafId),this._rafId=requestAnimationFrame(()=>{this._rafId=null,this.#t()})}#t(){if(!this.hasFooterTarget)return;if(!(window.innerWidth>=NM)||this.anchorTargets.length===0){this.footerTarget.style.bottom="";return}let s=0;this.anchorTargets.forEach(l=>{let d=l.getBoundingClientRect();d.bottom>s&&(s=d.bottom)});let r=this.footerTarget.offsetHeight,n=window.innerHeight-s-UM-r;this.footerTarget.style.bottom=Math.max(HM,n)+"px"}};var qM=2e3,ym=class extends u{static targets=["title","subtitle"];static values={checkUrl:String,redirectUrl:String,pollInterval:{type:Number,default:2e3},maxAttempts:{type:Number,default:90},scenarioTitle:String,scenarioSubtitle:String,characterTitle:String,characterSubtitle:String};connect(){this.attemptCount=0,this.currentStage=null,this.#i()}disconnect(){this.#t()}#e(){this.pollTimeout=setTimeout(()=>{this.#i()},this.pollIntervalValue)}#t(){this.pollTimeout&&(clearTimeout(this.pollTimeout),this.pollTimeout=null)}async#i(){if(this.attemptCount+=1,!(this.attemptCount>this.maxAttemptsValue)){try{let i=await Ee(this.checkUrlValue,{responseKind:"json"});if(i.ok){let s=await i.json;if(s.ready){this.#t(),Turbo.visit(s.redirect_url||this.redirectUrlValue,{action:"replace"});return}if(s.failed&&s.redirect_url){this.#t(),setTimeout(()=>{Turbo.visit(s.redirect_url,{action:"replace"})},qM);return}s.stage&&this.#s(s.stage)}}catch(i){console.error("CMRP status check failed:",i)}this.#e()}}#s(i){if(i===this.currentStage)return;let s=this.#r(i);s&&(this.hasTitleTarget&&(this.titleTarget.textContent=s.title),this.hasSubtitleTarget&&(this.subtitleTarget.textContent=s.subtitle),this.currentStage=i)}#r(i){return i==="character"?{title:this.characterTitleValue,subtitle:this.characterSubtitleValue}:i==="scenario"?{title:this.scenarioTitleValue,subtitle:this.scenarioSubtitleValue}:null}};var Sm=class extends u{static targets=["input"];static values={storageKey:String,formId:String};connect(){if(!this.hasInputTarget||!this.hasStorageKeyValue)return;let i=Vt(this.storageKeyValue),s=i&&typeof i.value=="string"?i.value:null;s&&this.inputTarget.value!==s&&(this.inputTarget.value=s,this.inputTarget.dispatchEvent(new Event("input",{bubbles:!0})))}save(){if(!this.hasInputTarget||!this.hasStorageKeyValue)return;let i=this.inputTarget.value;i&&i.length>0?Si(this.storageKeyValue,{value:i}):as(this.storageKeyValue)}clear(){this.hasStorageKeyValue&&as(this.storageKeyValue)}handleSubmitEnd(i){if(i.detail?.success){if(this.hasFormIdValue){let s=i.target;if(!s||s.id!==this.formIdValue)return}this.clear()}}};var wm=class extends u{static values={updateUrl:String};static targets=["notification"];connect(){this.debounceTimeout=null,this.toastTimeout=null,this.isSaving=!1,this.pendingSave=!1}disconnect(){this.debounceTimeout&&clearTimeout(this.debounceTimeout),this.toastTimeout&&clearTimeout(this.toastTimeout)}permissionChanged(i){i&&i.isTrusted===!1||this.updateUrlValue&&(this.debounceTimeout&&clearTimeout(this.debounceTimeout),this.debounceTimeout=setTimeout(()=>{this.debounceTimeout=null,this.#e()},500))}permissionsImported(){this.permissionChanged()}nameChanged(i){i&&i.isTrusted===!1||this.updateUrlValue&&this.#e()}async#e(){if(this.updateUrlValue){if(this.isSaving){this.pendingSave=!0;return}this.isSaving=!0;try{let i=this.#t(),s=this.#i(),r=await fetch(this.updateUrlValue,{method:"PATCH",headers:{"X-CSRF-Token":this.#s(),Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({admin_role:{name:i,permissions:s}})});if(r.ok)this.#r();else{let a=await r.json().catch(()=>({error:"Failed to save"}));this.#a(a.error||"Failed to save")}}catch{this.#a("Failed to save")}finally{this.isSaving=!1,this.pendingSave&&(this.pendingSave=!1,this.#e())}}}#t(){let i=this.element.querySelector('input[name="admin_role[name]"]');return i?i.value:""}#i(){let i={};return this.element.querySelectorAll('input[name^="admin_role[permissions]"]').forEach(r=>{if(r.type==="hidden")return;let a=r.name.match(/admin_role\[permissions\]\[([^\]]+)\]/);if(a){let n=a[1];i[n]||(i[n]=[]),r.checked&&r.value&&r.value.trim()!==""&&i[n].push(r.value)}}
390),Object.keys(i).forEach(r=>{i[r]=i[r].filter(a=>a&&a.trim()!==""),i[r].length===0&&delete i[r]}),i}#s(){let i=document.querySelector('meta[name="csrf-token"]');return i?i.getAttribute("content"):""}#r(){this.#n({message:"Saved",variant:"success",durationMs:1200})}#a(i){this.#n({message:i||"Failed to save",variant:"error",durationMs:2e3})}#n({message:i,variant:s,durationMs:r}){this.hasNotificationTarget&&(this.toastTimeout&&clearTimeout(this.toastTimeout),this.notificationTarget.textContent=i,this.notificationTarget.classList.remove("bg-green-500","bg-red-500","text-white"),this.notificationTarget.classList.add(s==="success"?"bg-green-500":"bg-red-500","text-white"),this.notificationTarget.classList.remove("hidden","opacity-0"),this.notificationTarget.classList.add("opacity-100"),this.notificationTarget.classList.remove("animate-slideFromRight"),requestAnimationFrame(()=>{this.notificationTarget.classList.add("animate-slideFromRight")}),this.toastTimeout=setTimeout(()=>{this.notificationTarget.classList.remove("opacity-100"),this.notificationTarget.classList.add("opacity-0"),setTimeout(()=>this.notificationTarget.classList.add("hidden"),200)},r))}};var Cm=class extends u{static targets=["sortOption","content"];static values={galleryUrl:String,sort:String};connect(){this.currentSort=this.hasSortValue?this.sortValue:"desc",this.onFilterSelected=this.onFilterSelected.bind(this),this.element.addEventListener("shared--filter-pills:selected",this.onFilterSelected)}disconnect(){this.element.removeEventListener("shared--filter-pills:selected",this.onFilterSelected)}onFilterSelected(i){let{value:s}=i.detail;this.#e(s),this.#t(s),this.dispatch("filterChanged",{detail:{filter:s},bubbles:!0})}selectSort(i){let s=i.currentTarget.dataset.value;this.sortOptionTargets.forEach(r=>{let a=r.querySelector("[data-chat-gallery--filter-bar-target='checkmark']");a&&a.classList.toggle("invisible",r.dataset.value!==s)}),this.currentSort=s,this.#t(this.#r()),this.dispatch("sortChanged",{detail:{sort:s},bubbles:!0})}#e(i){this.contentTargets.forEach(s=>
390{s.dataset.filter===i?s.classList.remove("hidden"):s.classList.add("hidden")})}#t(i){let s=this.#s(i);if(!s)return;let r=this.#i(i);r&&(s.setAttribute("src",r),typeof s.reload=="function"&&s.reload())}#i(i){if(!this.hasGalleryUrlValue)return null;let s=new URL(this.galleryUrlValue,window.location.origin);return s.searchParams.set("filter",i),s.searchParams.set("sort_by",this.currentSort||"desc"),s.searchParams.set("page","1"),s.toString()}#s(i){return document.getElementById(`chat-gallery-${i}-content`)}#r(){return this.contentTargets.find(s=>!s.classList.contains("hidden"))?.dataset?.filter||"all"}};var Em=class extends u{connect(){let i=this.element.querySelector("img");i&&(i.complete?this.fit(i):i.addEventListener("load",()=>this.fit(i),{once:!0}))}fit(i){i.naturalWidth<=i.naturalHeight||(i.classList.remove("object-cover","object-top"),i.classList.add("object-contain"),this.element.classList.add("bg-black-medium"))}};var Lm=class extends u{static targets=["pill"];static values={allowDeselect:{type:Boolean,default:!0},activeClass:{type:String,default:""},inactiveClass:{type:String,default:""}};connect(){this.currentValue=this.#n()}select(i){let s=i.currentTarget,r=s.dataset.value;if(r===this.currentValue){this.allowDeselectValue&&this.dispatch("unselected",{detail:{value:r,pill:s},bubbles:!0});return}let a=this.currentValue;this.#e(s),this.currentValue=r,this.dispatch("selected",{detail:{value:r,previousValue:a,pill:s},bubbles:!0})}activateByValue(i){if(i===null){this.pillTargets.forEach(r=>this.#i(r)),this.currentValue=null;return}let s=this.pillTargets.find(r=>r.dataset.value===i);s&&(this.#e(s),this.currentValue=i)}#e(i){this.pillTargets.forEach(s=>{s===i?this.#t(s):this.#i(s)})}#t(i){i.classList.remove(...this.#r),i.classList.add(...this.#s),this.#a(i,!0)}#i(i){i.classList.remove(...this.#s),i.classList.add(...this.#r),this.#a(i,!1)}get#s(){return this.pillTargets[0]?.dataset.activeClass?.split(" ")||[]}get#r(){return this.pillTargets[0]?.dataset.inactiveClass?.split(" ")||[]}#a(i,s){let r=i.querySelector("[data-role='icon-active']"),a=i.querySelector("[data-role='icon-inactive']");r&&r.classList.toggle("hidden",!s),a&&a.classList.toggle("hidden",s)}#n(){return this.pillTargets.find(s=>s.classList.contains("active"))?.dataset.value||null}};var km=class extends u{static values={autoDismiss:{type:Number,default:5e3},redirectUrl:String,action:String,clickEvent:String};connect(){requestAnimationFrame(()=>{this.element.classList.remove("opacity-0"),this.element.classList.add("opacity-100")}),this.autoDismissValue>0&&(this.timeoutId=setTimeout(()=>this.dismiss(),this.autoDismissValue))}disconnect(){this.timeoutId&&clearTimeout(this.timeoutId)}handleClick(i){if(!i.target.closest("[data-action*='dismiss']")){if(this.redirectUrlValue)window.location.href=this.redirectUrlValue;else if(this.clickEventValue)document.dispatchEvent(new CustomEvent(this.clickEventValue)),this.dismiss();else if(this.actionValue){let[,s]=this.actionValue.split("#");document.dispatchEvent(new CustomEvent(`toast:${s}`,{detail:{action:this.actionValue,element:this.element}})),this.dismiss()}}}remove(){this.element.remove()}dismiss(){this.element.classList.add("opacity-0"),this.element.classList.remove("opacity-100"),setTimeout(()=>{this.element.remove()},300)}};var xm=class extends u{static targets=["button","icon","label","costDialog"];static values={url:String,label:String,loadingLabel:String,guest:{type:Boolean,default:!1},costConfirmed:{type:Boolean,default:!0},costNotificationType:String};connect(){this.generating=!1,this.#r(),this.boundHandleRenderComplete=this.#a.bind(this),document.addEventListener("render-complete",this.boundHandleRenderComplete),this.#n()}disconnect(){document.removeEventListener("render-complete",this.boundHandleRenderComplete),this.loaderObserver&&this.loaderObserver.disconnect()}async generate(i){if(i.preventDefault(),this.#e()){this.#t(i);return}if(!(this.generating||this.#s())){if(!this.costConfirmedValue&&this.hasCostDialogTarget){this.costDialogTarget.showModal();return}this.generating=!0,this.#i(!0);try{(await H(this.urlValue,{responseKind:"turbo-stream"})).ok&&this.dispatch("sceneGenerated",{bubbles:!0})}catch{}finally{setTimeout(()=>{this.generating=!1,this.#i(!1),this.#r()},2e3)}}}confirmCost(){this.costConfirmedValue=!0,this.costDialogTarget.style.transition="none",this.costDialogTarget.close(),requestAnimationFrame(()=>{this.costDialogTarget.style.transition=""}),this.costNotificationTypeValue&&Re.markAsShown(this.costNotificationTypeValue),this.buttonTarget.click()}cancelCost(){this.costDialogTarget.style.transition="none",this.costDialogTarget.close(),requestAnimationFrame(()=>{this.costDialogTarget.style.transition=""})}
390#e(){return this.guestValue===!0}#t(i){let s=pe("main",this.application);s&&typeof s.openRegistrationModal=="function"&&s.openRegistrationModal(i)}#i(i){this.hasButtonTarget&&(this.buttonTarget.classList.toggle("opacity-50",i),this.buttonTarget.classList.toggle("cursor-not-allowed",i),this.buttonTarget.disabled=i),this.hasLabelTarget&&(this.labelTarget.textContent=i?this.loadingLabelValue:this.labelValue)}#s(){return document.getElementById("loader")!==null}#r(){let i=this.#s()||this.generating;this.hasButtonTarget&&(this.buttonTarget.disabled=i,this.buttonTarget.classList.toggle("opacity-50",i),this.buttonTarget.classList.toggle("cursor-not-allowed",i))}#a(){this.#r()}#n(){let i=document.getElementById("messages");i&&(this.loaderObserver=new MutationObserver(()=>{this.#r()}),this.loaderObserver.observe(i,{childList:!0,subtree:!0}))}};var Im=class extends u{static targets=["input","warning"];static values={blockedPattern:String};connect(){this.blockedRegex=new RegExp(this.blockedPatternValue,"i"),this.isVisible=!1}checkContent(){if(!this.hasInputTarget)return;let i=this.inputTarget.value.trim();i.length>=3&&this.blockedRegex.test(i)?this._showWarning():this._hideWarning()}_showWarning(){this.isVisible||!this.hasWarningTarget||(this.isVisible=!0,this.warningTarget.classList.remove("hidden"),requestAnimationFrame(()=>{this.warningTarget.style.maxHeight="50px",this.warningTarget.style.opacity="1"}))}_hideWarning(){!this.isVisible||!this.hasWarningTarget||(this.isVisible=!1,this.warningTarget.style.maxHeight="0",this.warningTarget.style.opacity="0",setTimeout(()=>{this.isVisible||this.warningTarget.classList.add("hidden")},300))}};var Am=class extends u{static targets=["backdrop","modalWindow","step","stepIndicator","container"];static values={notificationType:String,totalSteps:{type:Number,default:3},currentStep:{type:Number,default:0},firstTimeShown:{type:Boolean,default:!0}};connect(){this._boundReopen=this.reopen.bind(this),document.addEventListener("roleplay:reopen-onboarding",this._boundReopen),this.firstTimeShownValue&&(this._show(),this._markNotificationAsShown())}disconnect(){document.removeEventListener("roleplay:reopen-onboarding",this._boundReopen),document.body.classList.remove("overflow-hidden")}nextStep(){this.currentStepValue>=this.totalStepsValue-1||(this._hideStep(this.currentStepValue),this.currentStepValue++,this._showStep(this.currentStepValue),this._updateIndicators())}complete(){this._hide()}reopen(){this.firstTimeShownValue=!1,this.currentStepValue=0,this._resetToFirstStep(),this._show()}_show(){this.hasContainerTarget&&this.containerTarget.classList.remove("hidden"),document.body.classList.add("overflow-hidden")}_hide(){this.hasContainerTarget&&this.containerTarget.classList.add("hidden"),document.body.classList.remove("overflow-hidden")}_resetToFirstStep(){this.stepTargets.forEach((i,s)=>{i.classList.toggle("hidden",s!==0)}),this._updateIndicators()}_hideStep(i){let s=this.stepTargets[i];s&&s.classList.add("hidden")}_showStep(i){let s=this.stepTargets[i];s&&s.classList.remove("hidden")}_updateIndicators(){this.stepIndicatorTargets.forEach((i,s)=>{let a=s%this.totalStepsValue===this.currentStepValue;i.classList.toggle("bg-white",a),i.classList.toggle("bg-[#0c0c0c]",!a)})}async _markNotificationAsShown(){if(this.hasNotificationTypeValue)try{await Re.markAsShown(this.notificationTypeValue)}catch{}}};var Pm=class extends u{static targets=["backdrop","modalWindow","step","stepIndicator","container"];static values={notificationType:String,totalSteps:{type:Number,default:3},currentStep:{type:Number,default:0},firstTimeShown:{type:Boolean,default:!0}};connect(){this.firstTimeShownValue&&(this._show(),this._markNotificationAsShown())}disconnect(){document.body.classList.remove("overflow-hidden")}nextStep(){this.currentStepValue>=this.totalStepsValue-1||(this._hideStep(this.currentStepValue),this.currentStepValue++,this._showStep(this.currentStepValue),this._updateIndicators())}complete(){this._hide()}_show(){this.hasContainerTarget&&this.containerTarget.classList.remove("hidden"),document.body.classList.add("overflow-hidden")}_hide(){this.hasContainerTarget&&this.containerTarget.classList.add("hidden"),document.body.classList.remove("overflow-hidden")}_hideStep(i){let s=this.stepTargets[i];s&&s.classList.add("hidden")}_showStep(i){let s=this.stepTargets[i];s&&s.classList.remove("hidden")}
390_updateIndicators(){this.stepIndicatorTargets.forEach((i,s)=>{let a=s%this.totalStepsValue===this.currentStepValue;i.classList.toggle("bg-white",a),i.classList.toggle("bg-[#0c0c0c]",!a)})}async _markNotificationAsShown(){if(this.hasNotificationTypeValue)try{await Re.markAsShown(this.notificationTypeValue)}catch{}}};var Vm=class extends u{static targets=["configData","generateButton","generateHint","previewText","previewIcon","ethnicityOption","clothingOption","customClothingPrompt","skinColorOption","eyeColorOption","hairColorOption","hairstyleOption","customHairstylePrompt","ageOption","ageSlider","ageDisplay","buttSizeOption","heightCmSlider","heightCmDisplay","bodyTypeOption","breastSizeOption","backgroundOption","customBackgroundPrompt","lipsOption","frecklesOption","makeupStyleOption","customFacialDetailsPrompt","customOption","characterSlug","batchImage","customizeButton","previewImage","thumbnailButton","baseGenerationsCount","baseGenerationsCounter","tokenCost"];static values={generateUrl:String,selectUrl:String,selectedGenerationId:{type:Number,default:0},config:{type:Object,default:{}},baselineConfig:{type:Object,default:{}},characterSlug:{type:String,default:""},isGenerating:{type:Boolean,default:!1},typeConfigMap:{type:Object,default:{}},customPromptTypes:{type:Object,default:{}},trackedConfigKeys:{type:Array,default:[]},baseGenerationsLeft:{type:Number,default:0}};#e=null;#t=!1;#i=new Set;#s=null;#r=null;connect(){this.#p(),this.#S(),this.#P(),this.#e=this.#G.bind(this),document.addEventListener("keydown",this.#e),this.#a().forEach(i=>{let s=this.#n(i);s&&i.value&&this.#o(s,i.value)})}disconnect(){document.removeEventListener("keydown",this.#e),this.#I()}#a(){return[this.hasCustomClothingPromptTarget&&this.customClothingPromptTarget,this.hasCustomHairstylePromptTarget&&this.customHairstylePromptTarget,this.hasCustomBackgroundPromptTarget&&this.customBackgroundPromptTarget,this.hasCustomFacialDetailsPromptTarget&&this.customFacialDetailsPromptTarget].filter(Boolean)}#n(i){return i===this.customClothingPromptTarget?"custom_clothing_prompt":i===this.customHairstylePromptTarget?"custom_hairstyle_prompt":i===this.customBackgroundPromptTarget?"custom_background_prompt":i===this.customFacialDetailsPromptTarget?"custom_facial_details_prompt":null}updateCustomPrompt({params:{configKey:i},currentTarget:s}){if(!i)return;let r=s.value;r.trim()?this.#i.add(i):this.#i.delete(i),this.configValue={...this.configValue,[i]:r},this.#o(i,r),this.#S(),this.#P()}selectCustomPrompt({params:{configKey:i}}){if(!i)return;let s=this.#y(i),r=Object.entries(this.customPromptTypesValue).find(([,a])=>a.configKey===i)?.[0];this.#d(r,i,s),s?.focus({preventScroll:!0}),this.#w(s),this.#L(s)}customOptionTargetConnected(){this.#S()}generateButtonTargetConnected(){this.#P()}isGeneratingValueChanged(){this.#P()}#o(i,s){if(i)try{s?localStorage.setItem(this.#h(i),s):localStorage.removeItem(this.#h(i))}catch{return}}#l(i){if(!i)return null;try{return localStorage.getItem(this.#h(i))}catch{return null}}#h(i){return`creatorStudioCustomPrompt__${i}`}#c(i,s){if(!i||!s||i.value)return;let r=this.#l(s);r&&(i.value=r,this.configValue={...this.configValue,[s]:r},i.dispatchEvent(new Event("input",{bubbles:!0})))}baseGenerationsLeftValueChanged(i,s){s!==void 0&&(this.baseGenerationsCountTargets.forEach(r=>{r.textContent=this.baseGenerationsLeftValue}),this.baseGenerationsCounterTargets.forEach(r=>r.classList.toggle("hidden",this.baseGenerationsLeftValue<=0)),this.#u(this.baseGenerationsLeftValue))}#u(i){this.tokenCostTargets.forEach(s=>{let r=s.querySelector("[data-price-free]");if(!r){s.classList.toggle("hidden",i>0);return}r.classList.toggle("hidden",i<=0),s.querySelector("[data-price-paid]").classList.toggle("hidden",i>0)})}baseGenerationsCountTargetConnected(i){this.serverGenerationsCountEpoch=(this.serverGenerationsCountEpoch||0)+1;let s=parseInt(i.textContent,10);Number.isNaN(s)||(this.baseGenerationsLeftValue=s)}configDataTargetConnected(i){try{let s=JSON.parse(i.dataset.config);this.configValue=s;try{i.dataset.baseline&&(this.baselineConfigValue=JSON.parse(i.dataset.baseline))}catch{}this.#b(),this.#p(),this.#S(),this.#P()}catch{}}applyPreset(i){let s=i.detail?.config;if(!s)return;let r=Object.fromEntries(this.trackedConfigKeysValue.map(a=>[a,""]));this.configValue={...this.configValue,...r,...s},this.#i.clear(),this.#g(this.configValue),this.#b(),this.#p(),this.#S(),this.#D(),this.baselineConfigValue={},this.#P(),this.#m=i.detail?.slug||null,this.generate()}#g(i){let s={custom_clothing_prompt:this.hasCustomClothingPromptTarget&&this.customClothingPromptTarget,custom_hairstyle_prompt:this.hasCustomHairstylePromptTarget&&this.customHairstylePromptTarget,custom_background_prompt:this.hasCustomBackgroun
390dPromptTarget&&this.customBackgroundPromptTarget,custom_facial_details_prompt:this.hasCustomFacialDetailsPromptTarget&&this.customFacialDetailsPromptTarget};Object.entries(s).forEach(([r,a])=>{a&&(a.value=i[r]||"",a.dispatchEvent(new Event("input",{bubbles:!0})))})}select({params:{type:i,value:s}}){let r=this.#W(i);this.configValue={...this.configValue,[r]:s},this.#B(i,s),this.#D(),this.#T(i),this.#P()}selectAge({currentTarget:i}){this.configValue={...this.configValue,age:i.value},this.#C(i.value),this.#D(),this.#P()}activateCustomPrompt({params:{type:i},currentTarget:s}){this.#d(i,this.#n(s),s)}#d(i,s,r){s&&this.#i.add(s),i&&this.customPromptTypesValue[i]&&(this.configValue={...this.configValue,[i]:""},this.#v(i)),s==="custom_facial_details_prompt"&&(this.configValue={...this.configValue,lips:"",freckles:"",makeup_style:""},this.#v("lips"),this.#v("freckles"),this.#v("makeupStyle")),this.#c(r,s),this.#S(),this.#P()}selectFacialDetail({params:{type:i,value:s}}){let r=this.#W(i);this.configValue={...this.configValue,[r]:s},this.#B(i,s),this.hasCustomFacialDetailsPromptTarget&&(this.customFacialDetailsPromptTarget.value="",this.configValue={...this.configValue,custom_facial_details_prompt:""}),this.#i.delete("custom_facial_details_prompt"),this.#S(),this.#P()}activateCustomFacialDetails({currentTarget:i}={}){let s=i||(this.hasCustomFacialDetailsPromptTarget?this.customFacialDetailsPromptTarget:null);this.#d(null,"custom_facial_details_prompt",s)}async generate(){if(!this.configValue.ethnicity||this.isGeneratingValue||!this.#N())return;let i=this.baselineConfigValue,s=this.baseGenerationsLeftValue,r=this.serverGenerationsCountEpoch||0;this.baselineConfigValue={...this.#$()},this.#m||(this.baseGenerationsLeftValue=Math.max(0,this.baseGenerationsLeftValue-1)),this.isGeneratingValue=!0,this.#R();let a=!1;try{let n=this.#f();this.#m&&n.append("preset_slug",this.#m);let l=await H(this.generateUrlValue,{body:n,responseKind:"turbo-stream"});if(l.redirected){window.location.href=l.response.url;return}l.ok&&(a=!0,this.#m=null,this.#V())}finally{a||(this.baselineConfigValue=i,(this.serverGenerationsCountEpoch||0)===r&&(this.baseGenerationsLeftValue=s)),this.isGeneratingValue=!1,this.#P()}}async generateNewSeed(){if(!this.configValue.ethnicity||this.isGeneratingValue)return;let i=this.baseGenerationsLeftValue,s=this.serverGenerationsCountEpoch||0;this.baseGenerationsLeftValue=Math.max(0,this.baseGenerationsLeftValue-1),this.isGeneratingValue=!0,this.#R();let r=!1;try{let a=this.#f();a.append("refresh_seed","true"),(await H(this.generateUrlValue,{body:a,responseKind:"turbo-stream"})).ok&&(r=!0,this.#V())}finally{r||(this.serverGenerationsCountEpoch||0)===s&&(this.baseGenerationsLeftValue=i),this.isGeneratingValue=!1,this.#P()}}selectGeneration({params:{generationId:i}}){this.selectedGenerationIdValue===i?(this.selectedGenerationIdValue=0,this.#F(0),this.#U()):(this.selectedGenerationIdValue=i,this.#F(i),this.#j())}async refresh(){if(!(!this.configValue.ethnicity||this.isGeneratingValue)){this.isGeneratingValue=!0,this.#q();try{await H(this.generateUrlValue,{body:this.#f(),responseKind:"turbo-stream"}),this.selectedGenerationIdValue=0}finally{this.isGeneratingValue=!1,this.#P()}}}async customize(){if(!this.selectedGenerationIdValue||this.isGeneratingValue)return;this.isGeneratingValue=!0;let i=new FormData;i.append("generation_id",this.selectedGenerationIdValue),this.characterSlugValue&&i.append("slug",this.characterSlugValue),(await H(this.selectUrlValue,{body:i,responseKind:"json"})).ok?window.location.reload():(this.isGeneratingValue=!1,this.#P())}async switchPreview({params:{generationId:i,imageUrl:s},currentTarget:r}){if(r.classList.contains("border-white"))return;this.hasPreviewImageTarget&&(this.previewImageTarget.src=s);let a=this.previewImageTarget?.closest("[data-lightbox-url]");a&&(a.dataset.lightboxUrl=s),this.hasThumbnailButtonTarget&&this.thumbnailButtonTargets.forEach(l=>{let m=parseInt(l.dataset.creatorStudioGenerationIdParam,10)===i;l.classList.toggle("border-white",m),l.classList.toggle("border-neutral-700",!m),l.classList.toggle("hover:border-neutral-500",!m)});let n=new FormData;n.append("generation_id",i),this.characterSlugValue&&n.append("slug",this.characterSlugValue),await H(this.selectUrlValue,{body:n,responseKind:"turbo-stream"})}createNew(){let i=new URL(window.location.href);i.searchParams.delete("slug"),window.location.href=i.toString()}characterSlugValueChanged(i){if(!i)return;let s=new URL(window.location.href);s.searchParams.has("new")&&(s.searchParams.delete("new"),s.searchParams.set("slug",i),window.history.replaceState({},"",s.toString()))}selectCharacter({params:{characterSlug:i}}){let s=new URL(window.location.href);s.searchParams.delete("new"),s.searchParams.set("slug",i),window.location.href=s.toString()}#m=null;configValueChanged(){this.#m=null}#f(){let i=new FormData,s=this.configValue,r=this.hasCustomClothingPromptTarget?this.customClothingPromptTarget.value:s.custom_clothing_prompt||"",a=this.hasCustomBackgroun
390dPromptTarget?this.customBackgroundPromptTarget.value:s.custom_background_prompt||"",n=this.hasCustomFacialDetailsPromptTarget?this.customFacialDetailsPromptTarget.value:s.custom_facial_details_prompt||"",l=this.hasCustomHairstylePromptTarget?this.customHairstylePromptTarget.value:s.custom_hairstyle_prompt||"",d={ethnicity:s.ethnicity||"",clothing:s.clothing||"",custom_clothing_prompt:r,skin_color:s.skin_color||"",eye_color:s.eye_color||"",hair_color:s.hair_color||"",hairstyle:s.hairstyle||"",custom_hairstyle_prompt:l,age:s.age||"",body_type:s.body_type||"",breast_size:s.breast_size||"",butt_size:s.butt_size||"",height_cm:s.height_cm||"",background:s.background||"",custom_background_prompt:a,lips:s.lips||"",freckles:s.freckles||"",makeup_style:s.makeup_style||"",custom_facial_details_prompt:n};return Object.entries(d).forEach(([m,v])=>{i.append(`creator_studio[${m}]`,v||"")}),this.characterSlugValue&&i.append("slug",this.characterSlugValue),i}#p(){let i=this.configValue;Object.entries(this.typeConfigMapValue).forEach(([s,r])=>{let a=i[r];a&&this.#B(s,a)}),this.#D()}#b(){Object.keys(this.typeConfigMapValue).forEach(i=>{this.#v(i)})}#v(i){if(i==="heightCm"){this.hasHeightCmSliderTarget&&this.#k(this.heightCmSliderTarget.dataset.defaultCm);return}let s=`${i}OptionTargets`;this[s]&&this[s].forEach(r=>{this.#_(r,i,!1)})}#T(i){let s=this.customPromptTypesValue[i];if(!s)return;this.#i.delete(s.configKey);let r=`has${s.target.charAt(0).toUpperCase()}${s.target.slice(1)}Target`;this[r]&&(this[`${s.target}Target`].value="",this.configValue={...this.configValue,[s.configKey]:""}),this.#S()}#y(i){return{custom_clothing_prompt:this.hasCustomClothingPromptTarget&&this.customClothingPromptTarget,custom_hairstyle_prompt:this.hasCustomHairstylePromptTarget&&this.customHairstylePromptTarget,custom_background_prompt:this.hasCustomBackgroundPromptTarget&&this.customBackgroundPromptTarget,custom_facial_details_prompt:this.hasCustomFacialDetailsPromptTarget&&this.customFacialDetailsPromptTarget}[i]||null}#S(){if(!this.hasCustomOptionTarget)return;let i=this.#$();this.customOptionTargets.forEach(s=>{let r=s.dataset.customPromptKey,a=this.#i.has(r)||!!(i[r]||"").trim(),n=s.dataset.customStyle==="text";s.classList.toggle(n?"outline-white":"border-white",a),s.classList.toggle(n?"outline-transparent":"border-neutral-700",!a),s.classList.toggle("bg-white/[0.08]",n&&a),s.classList.toggle("bg-neutral-800",n&&!a);let l=s.querySelector("[data-checkmark]");l&&(l.classList.toggle("hidden",!a),l.classList.toggle("flex",a))})}#w(i){i&&i.scrollIntoView({block:"nearest",behavior:"smooth"})}#L(i){i&&(this.#I(),this.#r=i,i.classList.add("animate-pulse","ring-2","ring-white/70"),this.#s=setTimeout(()=>{this.#I()},900))}#I(){this.#s&&(clearTimeout(this.#s),this.#s=null),this.#r&&(this.#r.classList.remove("animate-pulse","ring-2","ring-white/70"),this.#r=null)}#C(i){let s=String(i);/^\d+$/.test(s)&&(this.hasAgeSliderTarget&&this.ageSliderTarget.value!==s&&(this.ageSliderTarget.value=s),this.hasAgeDisplayTarget&&(this.ageDisplayTarget.textContent=s))}selectHeight({currentTarget:i}){this.configValue={...this.configValue,height_cm:i.value},this.#k(i.value),this.#E()}#E(){this.#D(),this.#P()}#k(i){let s=String(i);/^\d+$/.test(s)&&(this.hasHeightCmSliderTarget&&this.heightCmSliderTarget.value!==s&&(this.heightCmSliderTarget.value=s),this.hasHeightCmDisplayTarget&&(this.heightCmDisplayTarget.textContent=s))}#x(i){let s=/^\d+$/.test(String(i))?String(i):null;if(!s)return null;let r=this.hasHeightCmSliderTarget?this.heightCmSliderTarget.dataset.cmLabelTemplate:null;return r?r.replace("%cm%",s):s}#A(i){let s=/^\d+$/.test(String(i))?String(i):this.hasAgeDisplayTarget?this.ageDisplayTarget.textContent.trim():"";if(!s)return null;let r=this.hasAgeSliderTarget?this.ageSliderTarget.dataset.yearsLabelTemplate:null;return r?r.replace("%years%",s):s}#B(i,s){if(i==="age"&&this.hasAgeSliderTarget){this.#C(s);return}if(i==="heightCm"){this.#k(s);return}let r=`${i}OptionTargets`;this[r]&&this[r].forEach(a=>{let n=a.dataset.value||a.dataset.creatorStudioValueParam;this.#_(a,i,n===s)})}#_(i,s,r){let a=["skinColor","eyeColor","hairColor"],n=["lips","freckles","makeupStyle","ethnicity","age","bodyType","hairstyle","breastSize","buttSize"],l=["background","clothing"],d=i.classList.contains("data-[selected]:bg-white");if(l.includes(s)&&d){r?i.setAttribute("data-selected",""):i.removeAttribute("data-selected");let m=i.querySelector("span");m&&(m.classList.toggle("hidden",!r),m.classList.toggle("inline",r))}else if(l.includes(s))i.classList.toggle("border-white",r),i.classList.toggle("text-white",r),i.classList.toggle("border-neutral-700",!r),i.classList.toggle("text-neutral-300",!r),i.setAttribute("aria-pressed",String(r));else if(n.includes(s)){i.classList.toggle("border-white",r),i.classList.toggle("border-neutral-700",!r),i.classList.toggle("bg-neutral-800",!r);let m=i.querySelector("[data-checkmark]");m&&m.classList.toggle("hidden",!r)}else a.includes(s)?(i.classList.toggle("border-white",r),i.classList.toggle("border-transparent",!r),i.classList.toggle("ring-2",r),i.classList.toggle("ring-white",r)):(i.classList.toggle("border-white",r),i.classList.toggle("text-white",r),i.classList.toggle("border-neutral-700",!r),i.classList.toggle("text-neutral-400",!r))}#P(){if(!this.hasGenerateButtonTarget)return;let i=this.generateButtonTarget.dataset.serverGenerating==="true",s=this.isGeneratingValue||i,r=!this.configValue.ethnicity,a=!this.#N();this.generateButtonTarget.disabled=s||r||a,this.#O({generating:s,missingEthnicity:r,unchanged:a})}#O({generating:i,missingEthnicity:s,unchanged:r}
390){if(!this.hasGenerateHintTarget)return;let a=this.generateHintTarget,n="";!i&&s?n=a.dataset.ethnicityHint:!i&&r&&(n=a.dataset.unchangedHint),a.textContent=n,a.classList.toggle("peer-disabled:group-hover:flex",n!==""),a.classList.toggle("peer-disabled:group-active:flex",n!=="")}#N(){let i=this.baselineConfigValue||{},s=this.#$();return this.trackedConfigKeysValue.some(r=>(s[r]||"")!==(i[r]||""))}#$(){let i={...this.configValue};return this.hasCustomClothingPromptTarget&&(i.custom_clothing_prompt=this.customClothingPromptTarget.value),this.hasCustomHairstylePromptTarget&&(i.custom_hairstyle_prompt=this.customHairstylePromptTarget.value),this.hasCustomBackgroundPromptTarget&&(i.custom_background_prompt=this.customBackgroundPromptTarget.value),this.hasCustomFacialDetailsPromptTarget&&(i.custom_facial_details_prompt=this.customFacialDetailsPromptTarget.value),i}#D(){if(!this.hasPreviewTextTarget||!this.hasPreviewIconTarget)return;let i=this.configValue,s=[];if(i.ethnicity&&s.push(this.#M("ethnicity",i.ethnicity)),i.age&&s.push(this.#M("age",i.age)),i.body_type&&s.push(this.#M("bodyType",i.body_type)),s.length===3)this.previewTextTarget.innerHTML=`
391        <strong class="text-white">Ready to generate</strong><br>
392        <span class="text-neutral-500 text-[13px]">${s.join(" \u2022 ")}</span>
393      `,this.previewIconTarget.classList.remove("border-neutral-700","text-neutral-600"),this.previewIconTarget.classList.add("border-white","text-white");else{let r=3-s.length;this.previewTextTarget.textContent=`Select ${r} more attribute${r>1?"s":""} to generate your character preview`,this.previewIconTarget.classList.remove("border-white","text-white"),this.previewIconTarget.classList.add("border-neutral-700","text-neutral-600")}}#M(i,s){if(i==="age"&&this.hasAgeSliderTarget)return this.#A(s)||s;if(i==="heightCm")return this.#x(s)||s;let r=`${i}OptionTargets`;if(!this[r])return s;let a=this[r].find(n=>(n.dataset.value||n.dataset.creatorStudioValueParam)===s);return a?a.textContent.replace("\u2713","").trim():s}#V(){setTimeout(()=>{this.hasCharacterSlugTarget&&(this.characterSlugValue=this.characterSlugTarget.value)},100)}#R(){this.hasGenerateButtonTarget&&(this.generateButtonTarget.disabled=!0)}#F(i){this.hasBatchImageTarget&&this.batchImageTargets.forEach(s=>{let a=parseInt(s.dataset.generationId,10)===i;s.classList.toggle("border-white",a),s.classList.toggle("ring-white/30",a),s.classList.toggle("border-neutral-800",!a),s.classList.toggle("ring-transparent",!a);let n=s.querySelector("[data-selection-indicator]");if(n){n.classList.toggle("bg-white",a),n.classList.toggle("bg-black/50",!a),n.classList.toggle("border",!a),n.classList.toggle("border-neutral-600",!a);let l=n.querySelector("[data-checkmark-icon]");l&&l.classList.toggle("hidden",!a)}})}#j(){this.hasCustomizeButtonTarget&&(this.customizeButtonTarget.disabled=!1)}#U(){this.hasCustomizeButtonTarget&&(this.customizeButtonTarget.disabled=!0)}#q(){this.hasCustomizeButtonTarget&&(this.customizeButtonTarget.disabled=!0)}#W(i){return i.replace(/[A-Z]/g,s=>`_${s.toLowerCase()}`)}#G(i){if(!this.hasThumbnailButtonTarget||this.thumbnailButtonTargets.length<2||i.target.matches("input, textarea"))return;let s=i.key==="ArrowLeft"?-1:i.key==="ArrowRight"?1:0;s!==0&&(i.preventDefault(),this.#Z(s))}#Z(i){if(this.#t)return;let s=this.thumbnailButtonTargets,a=(s.findIndex(l=>l.classList.contains("border-white"))+i+s.length)%s.length,n=s[a];n&&(this.#t=!0,n.click(),setTimeout(()=>{this.#t=!1},150))}};var Mm=class extends u{static targets=["modal","image","video"];connect(){this.boundHandleKeydown=this.#e.bind(this)}open(i){i.preventDefault(),i.stopPropagation();let s=i.currentTarget.dataset.lightboxUrl;if(!s)return;i.currentTarget.dataset.lightboxType==="video"&&this.hasVideoTarget?(this.videoTarget.src=s,this.videoTarget.classList.remove("hidden"),this.imageTarget.classList.add("hidden"),this.imageTarget.src=""):(this.imageTarget.src=s,this.imageTarget.classList.remove("hidden"),this.hasVideoTarget&&(this.videoTarget.pause(),this.videoTarget.src="",this.videoTarget.classList.add("hidden"))),this.modalTarget.classList.remove("hidden"),document.body.classList.add("overflow-hidden"),document.addEventListener("keydown",this.boundHandleKeydown)}close(i){i&&i.target!==this.modalTarget||this.#t()}forceClose(){this.#t()}disconnect(){this.#t()}#e(i){i.key==="Escape"&&this.#t()}#t(){this.modalTarget.classList.add("hidden"),document.body.classList.remove("overflow-hidden"),document.removeEventListener("keydown",this.boundHandleKeydown),this.imageTarget.src="",this.hasVideoTarget&&(this.videoTarget.pause(),this.videoTarget.src="")}};var w0="__custom__";function _m(i){let s={};return i?.querySelectorAll("[name^='persona[']").forEach(r=>{let[,a,n]=r.name.match(/^persona\[(\w+)\](\[\])?$/)||[];a&&(n?(s[a]||=[],r.checked&&s[a].push(r.value)):r.type==="checkbox"?s[a]=r.checked:r.tagName==="SELECT"&&r.value===w0?s[a]=i.querySelector(`[data-custom-for="${a}"]`)?.value||"":s[a]=r.value)}),s}function hr(i){i?.querySelectorAll("select").forEach(s=>{let r=s.name.match(/\[(\w+)\]/)?.[1],a=i.querySelector(`[data-custom-for="${r}"]`);a&&(a.hidden=s.value!==w0)})}function cr(i){let s=Number(i?.querySelector("[data-max-kinks]")?.dataset.maxKinks||0),r=[...i?.querySelectorAll("input[name='persona[kinks][]']")||[]],a=r.filter(n=>n.checked).length>=s;r.forEach(n=>
393{n.disabled=a&&!n.checked})}var Bm=class extends u{static targets=["input","nameInput","contextInput","greetingInput","chatModeInput","submitButton","submitLoader","archetype","archetypeGrid","archetypeToggle","archetypeToggleLabel","archetypeToggleIcon","presetModal","fieldError","structuredFields","structuredInputs","separateFieldsToggle","personalityInput"];static values={updateUrl:String,submitUrl:String};static ERROR_INPUT_CLASSES=["ring-1","ring-red-500"];#e=null;#t=!1;#i=null;#s=!1;connect(){this.saveTimeout=null,this.savePromise=null,this.submitFailedHandler=()=>this.#d(!1),document.addEventListener("persona:submit-failed",this.submitFailedHandler),this.#r(),this.#h(),this.#m()}structuredFieldsTargetConnected(i){hr(i),cr(i),this.#r(),this.#h()}#r(){if(this.#n()){this.#e=this.personalityInputTarget.value||null;return}if(!this.hasContextInputTarget||!this.hasArchetypeTarget)return;let i=this.contextInputTarget.value.trim();if(!i)return;let s=this.archetypeTargets.find(r=>r.dataset.prompt?.trim()===i);s&&(this.#e=s.dataset.slug)}disconnect(){this.saveTimeout&&clearTimeout(this.saveTimeout),document.removeEventListener("persona:submit-failed",this.submitFailedHandler)}onInput(){this.saveTimeout&&clearTimeout(this.saveTimeout),this.saveTimeout=setTimeout(()=>{this.autoSave()},500),this.#m()}onContextInput(){this.#e&&(this.#t=!0),this.onInput()}toggleSeparateFields({currentTarget:i}){this.structuredInputsTarget.hidden=!i.checked,this.#a(i.checked),this.#h(),this.onInput()}#a(i){if(i){let a=this.#l();this.personalityInputTarget.value=a?this.#e:"",a||(this.#e=null);return}let s=this.personalityInputTarget.value,r=this.archetypeTargets.find(a=>a.dataset.slug===s)?.dataset.prompt;this.personalityInputTarget.value="",this.#e=null,r&&this.hasContextInputTarget&&!this.contextInputTarget.value.trim()&&(this.contextInputTarget.value=r,this.contextInputTarget.dispatchEvent(new Event("input",{bubbles:!0}))),this.#r(),this.#t=!1}onStructuredChange(){hr(this.structuredFieldsTarget),this.onInput()}onKinkChange(){cr(this.structuredFieldsTarget),this.onInput()}#n(){return this.hasSeparateFieldsToggleTarget&&this.separateFieldsToggleTarget.checked}pickArchetype({currentTarget:i}){let s=i.dataset.slug,r=i.dataset.prompt;if(!s||!r)return;if(this.#n()){this.personalityInputTarget.value=s,this.#e=s,this.#h(),this.onInput();return}if((this.hasContextInputTarget?this.contextInputTarget.value.trim():"").length>0&&(this.#e===null||this.#t)){this.#i={slug:s,prompt:r},this.presetModalTarget?.classList.remove("hidden");return}this.#o(s,r)}confirmPresetSwitch(){this.#i&&(this.#o(this.#i.slug,this.#i.prompt),this.#i=null),this.presetModalTarget?.classList.add("hidden")}dismissPresetModal(){this.#i=null,this.presetModalTarget?.classList.add("hidden")}toggleArchetypes(){this.#c(!this.#s)}#o(i,s){this.#e=i,this.#t=!1,this.hasContextInputTarget&&(this.contextInputTarget.value=s,this.contextInputTarget.dispatchEvent(new Event("input",{bubbles:!0}))),this.#h(),this.onInput()}#l(){if(!this.#e||!this.hasContextInputTarget)return!1;let i=this.archetypeTargets.find(s=>s.dataset.slug===this.#e);return!!i&&this.contextInputTarget.value.trim()===i.dataset.prompt.trim()}#h(){this.hasArchetypeTarget&&this.archetypeTargets.forEach(i=>{let s=i.dataset.slug===this.#e;i.classList.toggle("border-white",s),i.classList.toggle("bg-neutral-800",s),i.classList.toggle("border-neutral-800",!s)})}#c(i){this.#s=i,this.archetypeTargets.filter(s=>s.dataset.archetypeExtra==="true").forEach(s=>{s.hidden=!i}),this.hasArchetypeToggleTarget&&this.archetypeToggleTarget.setAttribute("aria-expanded",i.toString()),this.hasArchetypeToggleLabelTarget&&this.hasArchetypeToggleTarget&&(this.archetypeToggleLabelTarget.textContent=i?this.archetypeToggleTarget.dataset.showLessLabel:this.archetypeToggleTarget.dataset.showMoreLabel),this.hasArchetypeToggleIconTarget&&this.archetypeToggleIconTarget.classList.toggle("rotate-180",i)}async autoSave(){if(this.savePromise)return this.savePromise;let i=this.collectFormData();return this.savePromise=ve(this.updateUrlValue,{body:JSON.stringify({persona:i}),contentType:"application/json"}).then(async s=>(await this.#u(s),s)).catch(()=>{}).finally(()=>{this.savePromise=null}),this.savePromise}async#u(i){if(!i||i.ok){this.#g({});return}if(!i.unprocessableEntity)return;let s=await i.json.catch(()=>null);this.#g(s?.errors||{})}
393#g(i){this.fieldErrorTargets.forEach(s=>{let r=i[s.dataset.field];s.textContent=r||"",s.hidden=!r;let a=this.inputTargets.find(n=>n.name===`persona[${s.dataset.field}]`);this.constructor.ERROR_INPUT_CLASSES.forEach(n=>a?.classList.toggle(n,!!r))})}collectFormData(){let i={};return this.inputTargets.forEach(s=>{if(s.type==="radio"&&!s.checked)return;let r=s.name.match(/\[(\w+)\]$/)?.[1];r&&(i[r]=s.value)}),this.hasStructuredFieldsTarget&&Object.assign(i,_m(this.structuredFieldsTarget)),i}async forceAutoSave(){return this.saveTimeout&&(clearTimeout(this.saveTimeout),this.saveTimeout=null),this.savePromise&&await this.savePromise,this.autoSave()}async bringToLife(){if(document.dispatchEvent(new CustomEvent("creator-studio:stop-voice-preview")),this.#d(!0),!(await this.forceAutoSave())?.ok){this.#d(!1);return}try{(await H(this.submitUrlValue,{responseKind:"turbo-stream"})).ok||this.#d(!1)}catch{this.#d(!1)}}#d(i){this.hasSubmitButtonTarget&&(this.submitButtonTarget.disabled=i),this.hasSubmitLoaderTarget&&(this.submitLoaderTarget.classList.toggle("hidden",!i),this.submitLoaderTarget.classList.toggle("flex",i)),i||this.#m()}#m(){if(!this.hasSubmitButtonTarget)return;let i=[this.hasNameInputTarget?this.nameInputTarget:null,this.hasContextInputTarget?this.contextInputTarget:null,this.hasGreetingInputTarget?this.greetingInputTarget:null],s=this.chatModeInputTargets.length===0||this.chatModeInputTargets.some(r=>r.checked);this.submitButtonTarget.disabled=i.some(r=>!r?.value.trim())||!s}};var Om=class extends u{static targets=["body"];connect(){this.initialBody=this.bodyTarget.innerHTML}reset(){this.bodyTarget.querySelector("form")||(this.bodyTarget.innerHTML=this.initialBody)}};var C0="[data-creator-studio--profile-pictures-target='thumbnail']",sb=2,$M=2e3,rb={selected:["bg-emerald-500"],unselected:["bg-neutral-900/70","border","border-neutral-500","group-hover:border-neutral-400"]},Fm=class extends u{static targets=["preview","previewImage","previewBackground","loadingOverlay","thumbnailStrip","thumbnail","checkbox","checkIcon","promptInput","promptOverlay","promptText","copyIcon","copyCheckIcon","selectedCount","selectionHint","selectionLimitHint","selectionCompleteHint","nextButton","nextButtonWrapper","nextButtonTooltip","stylePresetSection","stylePreset","stylePresetCheck","stylePresetThumb","stylePresetTrack","stylePresetChevron","stylePresetModal"];static values={generateUrl:String,toggleUrl:String,characterId:Number,initialSelectedCount:{type:Number,default:0},isGenerating:{type:Boolean,default:!1}};#e=null;#t=!1;#i=null;#s=!0;connect(){this.currentCloudflareId=this.thumbnailTargets[0]?.dataset.cloudflareId||null,this.hintTimeout=null,this.selectedCount=this.initialSelectedCountValue,this.updateNextButtonState(),this.showHintForCurrentState()}disconnect(){this.clearHintTimeout()}previewTargetConnected(){this.hideLoading(),this.#o(this.thumbnailTargets[0]?.dataset.prompt)}async generate(){if(!this.isGeneratingValue){this.isGeneratingValue=!0,this.showLoading();try{(await H(this.generateUrlValue,{body:JSON.stringify({prompt:this.promptInputTarget?.value||""}),contentType:"application/json"})).ok||(this.hideLoading(),this.isGeneratingValue=!1)}catch{this.hideLoading(),this.isGeneratingValue=!1}}}switchPreview(i){let s=i.currentTarget.closest(C0),{imageUrl:r,cloudflareId:a,prompt:n}=s.dataset;this.updatePreviewImages(r),this.currentCloudflareId=a,this.updateThumbnailBorders(a),this.#o(n)}updatePreviewImages(i){this.hasPreviewImageTarget&&(this.previewImageTarget.src=i,this.previewImageTarget.closest("[data-action]").dataset.lightboxUrl=i),this.hasPreviewBackgroundTarget&&(this.previewBackgroundTarget.src=i)}updateThumbnailBorders(i){this.thumbnailTargets.forEach(s=>{let r=s.dataset.cloudflareId===i;s.classList.toggle("border-white",r),s.classList.toggle("border-neutral-700",!r),s.classList.toggle("hover:border-neutral-500",!r)})}async copyPrompt(){let i=this.promptTextTarget?.textContent;if(i)try{await navigator.clipboard.writeText(i),this.#l()}catch{}}onPromptInput(i){this.#n(i.currentTarget),this.#e&&(this.#t=!0)}pickStylePreset({currentTarget:i}){let s=i.dataset.presetId,r=i.dataset.presetPrompt;if(!s||!r)return;if((this.hasPromptInputTarget?this.promptInputTarget.value.trim():"").length>0&&(this.#e===null||this.#t)){this.#i={id:s,prompt:r},this.stylePresetModalTarget?.classList.remove("hidden");return}this.#r(s,r)}confirmStylePresetSwitch(){this.#i&&(this.#r(this.#i.id,this.#i.prompt),this.#i=null),this.stylePresetModalTarget?.classList.add("hidden")}dismissStylePresetModal(){this.#i=null,this.stylePresetModalTarget?.classList.add("hidden")}
393toggleStylePresets(){if(this.#s=!this.#s,this.hasStylePresetTrackTarget){let i=this.stylePresetTrackTarget;i.classList.toggle("max-h-[320px]",!this.#s),i.classList.toggle("opacity-100",!this.#s),i.classList.toggle("mt-2",!this.#s),i.classList.toggle("max-h-0",this.#s),i.classList.toggle("opacity-0",this.#s)}this.stylePresetChevronTarget?.classList.toggle("-rotate-180",this.#s)}#r(i,s){this.#e=i,this.#t=!1,this.hasPromptInputTarget&&(this.promptInputTarget.value=s,this.#n(this.promptInputTarget)),this.#a()}#a(){this.hasStylePresetTarget&&this.stylePresetTargets.forEach(i=>{let s=i.dataset.presetId===this.#e,r=i.querySelector('[data-creator-studio--profile-pictures-target="stylePresetThumb"]');r&&(r.classList.toggle("border-white",s),r.classList.toggle("border-neutral-700",!s));let a=i.querySelector('[data-creator-studio--profile-pictures-target="stylePresetCheck"]');a&&(a.classList.toggle("hidden",!s),a.classList.toggle("flex",s))})}#n(i){if(!i)return;let s=window.getComputedStyle(i),r=parseFloat(s.borderTopWidth)||0,a=parseFloat(s.borderBottomWidth)||0,n=parseFloat(s.maxHeight)||240;i.style.height="auto";let l=Math.min(i.scrollHeight+r+a,n);i.style.height=`${l}px`}async toggleThumbnailSelection(i){i.stopPropagation();let s=i.currentTarget.closest(C0),{cloudflareId:r}=s.dataset;try{let a=await H(this.toggleUrlValue,{body:JSON.stringify({cloudflare_id:r}),contentType:"application/json"}),n=await a.json;a.ok?(this.updateCheckbox(s,n.selected),this.updateSelectedCount(n.selected_count)):n.limit_reached&&this.flashErrorHint()}catch{}}updateCheckbox(i,s){let r=this.thumbnailTargets.indexOf(i);if(r===-1)return;let a=this.checkboxTargets[r],n=this.checkIconTargets[r];!a||!n||(i.dataset.selected=String(s),a.classList.remove(...rb.selected,...rb.unselected),a.classList.add(...rb[s?"selected":"unselected"]),n.classList.toggle("hidden",!s))}updateSelectedCount(i){this.selectedCount=i,this.hasSelectedCountTarget&&(this.selectedCountTarget.textContent=`${i}/${sb}`),this.showHintForCurrentState(),this.updateNextButtonState()}updateNextButtonState(){let i=this.selectedCount>=sb;this.hasNextButtonTarget&&(this.nextButtonTarget.classList.toggle("opacity-50",!i),this.nextButtonTarget.classList.toggle("cursor-not-allowed",!i),this.nextButtonTarget.classList.toggle("pointer-events-none",!i)),this.hasNextButtonTooltipTarget&&this.nextButtonTooltipTarget.classList.toggle("hidden",i)}showHintForCurrentState(){this.clearHintTimeout(),this.hideAllHints();let i=this.selectedCount>=sb;i&&this.hasSelectionCompleteHintTarget?this.showHint(this.selectionCompleteHintTarget):!i&&this.hasSelectionHintTarget&&this.showHint(this.selectionHintTarget)}flashErrorHint(){this.hasSelectionLimitHintTarget&&(this.clearHintTimeout(),this.hideAllHints(),this.showHint(this.selectionLimitHintTarget),this.hintTimeout=setTimeout(()=>this.showHintForCurrentState(),$M))}hideAllHints(){[...this.selectionHintTargets,...this.selectionLimitHintTargets,...this.selectionCompleteHintTargets].forEach(i=>this.hideHint(i))}showHint(i){i.classList.add("opacity-100"),i.classList.remove("opacity-0")}hideHint(i){i.classList.remove("opacity-100"),i.classList.add("opacity-0")}clearHintTimeout(){this.hintTimeout&&(clearTimeout(this.hintTimeout),this.hintTimeout=null)}showLoading(){this.loadingOverlayTarget?.classList.remove("hidden")}hideLoading(){this.loadingOverlayTarget?.classList.add("hidden"),this.isGeneratingValue=!1}#o(i){this.hasPromptOverlayTarget&&(i?(this.promptTextTarget.textContent=i,this.promptOverlayTarget.classList.remove("hidden")):this.promptOverlayTarget.classList.add("hidden"))}#l(){!this.hasCopyIconTarget||!this.hasCopyCheckIconTarget||(this.copyIconTarget.classList.add("hidden"),this.copyCheckIconTarget.classList.remove("hidden"),setTimeout(()=>{this.copyCheckIconTarget.classList.add("hidden"),this.copyIconTarget.classList.remove("hidden")},1500))}};var Dm=class extends u{static targets=["configData","generateButton","previewText","previewIcon","previewImage","thumbnailButton","characterSlug","filterTags","filterTag","quickStartRow","quickStartToggle","quickStartChevron","quickStartContent","quickStartPreview","quickStartPreviewImage","quickStartPreviewLabel","quickStartPreviewDescription","quickStartUseButton","quickStartCard","quickStartPosition","introChooser","baseGenerationsTooltip","baseGenerationsCount","baseGenerationsCounter","baseGenerationsTotalLabel","tokenCost","continueButton","ethnicityOption","ageOption","ageSlider","ageDisplay","buttSizeOption","heightCmSlider","heightCmDisplay","bodyTypeOption","breastSizeOption","hairstyleOption","clothingOption","lipsOption","frecklesOption","makeupStyleOption","skinColorOption","eyeColorOption","hairColorOption","backgroundOption","customClothingPrompt","customHairstylePrompt","customBackgroun
393dPrompt","customFacialDetailsPrompt","customOption","sectionValue","scrollContainer","stickyFooter"];static values={generateUrl:String,selectUrl:String,config:{type:Object,default:{}},characterSlug:{type:String,default:""},isGenerating:{type:Boolean,default:!1},typeConfigMap:{type:Object,default:{}},customPromptTypes:{type:Object,default:{}},trackedConfigKeys:{type:Array,default:[]},baselineConfig:{type:Object,default:{}},baseGenerationsTotal:{type:Number,default:6},baseGenerationsLeft:{type:Number,default:6}};#e=0;#t=null;#i=null;#s=null;#r=null;#a=new Set;#n=null;#o=null;connect(){this.#y(),this.#C(),this.#G(),this.#F(),this.#s=this.#h.bind(this),document.addEventListener("turbo:before-cache",this.#s)}disconnect(){this.#s&&document.removeEventListener("turbo:before-cache",this.#s),this.#x(),this.#h()}configDataTargetConnected(i){try{let s=JSON.parse(i.dataset.config);this.configValue=s,i.dataset.baseline&&(this.baselineConfigValue=JSON.parse(i.dataset.baseline)),this.#S(),this.#y(),this.#C(),this.#G(),this.#F()}catch{}}generateButtonTargetConnected(){this.#F()}isGeneratingValueChanged(){this.#F()}baseGenerationsLeftValueChanged(i,s){s!==void 0&&(this.baseGenerationsCountTargets.forEach(r=>{r.textContent=this.baseGenerationsLeftValue}),this.baseGenerationsCounterTargets.forEach(r=>r.classList.toggle("hidden",this.baseGenerationsLeftValue<=0)),this.#l(this.baseGenerationsLeftValue))}#l(i){this.tokenCostTargets.forEach(s=>{let r=s.querySelector("[data-price-free]");if(!r){s.classList.toggle("hidden",i>0);return}r.classList.toggle("hidden",i<=0),s.querySelector("[data-price-paid]").classList.toggle("hidden",i>0)})}baseGenerationsCountTargetConnected(i){this.serverGenerationsCountEpoch=(this.serverGenerationsCountEpoch||0)+1;let s=parseInt(i.textContent,10);Number.isNaN(s)||(this.baseGenerationsLeftValue=s)}baseGenerationsTotalValueChanged(){this.hasBaseGenerationsTotalLabelTarget&&(this.baseGenerationsTotalLabelTarget.textContent=this.baseGenerationsTotalValue)}filterTagsTargetConnected(){this.#G()}select({params:{type:i,value:s}}){let r=this.#W(i);this.configValue={...this.configValue,[r]:s},this.#B(i,s),this.#L(i),this.#C(),this.#Z(i,r),this.#F()}selectAge({currentTarget:i}){this.configValue={...this.configValue,age:i.value},this.#_(i.value),this.#Z("age","age"),this.#F()}selectFacialDetail({params:{type:i,value:s}}){let r=this.#W(i);this.configValue={...this.configValue,[r]:s},this.#B(i,s),this.hasCustomFacialDetailsPromptTarget&&(this.customFacialDetailsPromptTarget.value="",this.configValue={...this.configValue,custom_facial_details_prompt:""},this.#a.delete("custom_facial_details_prompt"),this.#A(this.customFacialDetailsPromptTarget)),this.#C(),this.#G(),this.#F()}showContinueLoading(i){let s=i.currentTarget;s&&(this.#r===null&&(this.#r=s.innerHTML),s.innerHTML='<div class="loading-submit-white"></div>')}#h(){this.#r!==null&&this.hasContinueButtonTarget&&(this.continueButtonTarget.innerHTML=this.#r),this.#r=null}toggleBaseGenerationsTooltip(i){if(!this.hasBaseGenerationsTooltipTarget)return;i.preventDefault(),i.stopPropagation();let s=this.baseGenerationsTooltipTarget,r=s.classList.contains("hidden");s.classList.toggle("hidden",!r),r?(this.#i=a=>{!s.contains(a.target)&&!a.target.closest('[data-action*="toggleBaseGenerationsTooltip"]')&&(s.classList.add("hidden"),document.removeEventListener("click",this.#i,!0))},setTimeout(()=>document.addEventListener("click",this.#i,!0),0)):this.#i&&document.removeEventListener("click",this.#i,!0)}scrollToFilters(){document.getElementById("creator-studio-mobile-config-panel")?.scrollIntoView({behavior:"smooth",block:"start"})}scrollToQuickStart(){this.hasQuickStartRowTarget&&(this.hasQuickStartContentTarget&&this.#d()&&this.#g(!1),this.quickStartRowTarget.scrollIntoView({behavior:"smooth",block:"start"}))}jumpToFilter({currentTarget:i}){let s=i.dataset.categoryType;if(!s)return;let r=document.getElementById(`mobile-filter-section-${s}`);r&&(r.open||(r.open=!0),r.scrollIntoView({behavior:"smooth",block:"start"}))}chooseFromPreset(){this.#U(),window.dispatchEvent(new CustomEvent("creator-studio:open-preset-picker"))}applyPreset(i){let s=i.detail?.config;if(!s)return;let r=Object.fromEntries(this.trackedConfigKeysValue.map(a=>[a,""]));this.#u({...r,...s}),this.baselineConfigValue={},this.#U(),this.#v=i.detail?.slug||null,this.generate()}chooseFromScratch(){this.#U("scratch"),this.#g(!0)}handleBack(i){this.#t==="scratch"&&this.hasIntroChooserTarget&&(i.preventDefault(),this.introChooserTarget.classList.remove("hidden"),this.#t=null)}openQuickStartPreview({currentTarget:i}){if(!this.hasQuickStartPreviewTarget||!this.hasQuickStartCardTarget)return;let s=this.quickStartCardTargets.indexOf(i);this.#c(s>=0?s:0),this.quickStartPreviewTarget.classList.remove("hidden")}quickStartNext(){if(!this.hasQuickStartCardTarget)return;let i=this.quickStartCardTargets.length;this.#c((this.#e+1)%i)}quickStartPrev(){if(!this.hasQuickStartCardTarget)return;let i=this.quickStartCardTargets.length;this.#c((this.#e-1+i)%i)}closeQuickStartPreview(){this.hasQuickStartPreviewTarget&&this.quickStartPreviewTarget.classList.add("hidden")}#c(i){if(!this.hasQuickStartCardTarget)return;let s=this.quickStartCardTargets;if(i<0||i>=s.length)return;this.#e=i;let r=s[i];this.hasQuickStartPreviewImageTarget&&(this.quickStartPreviewImageTarget.src=r.dataset.thumbUrl,this.quickStartPreviewImageTarget.alt=r.dataset.label),this.hasQuickStartPreviewLabelTarget&&(this.quickStartPreviewLabelTarget.textContent=r.dataset.label),this.hasQuickStartPreviewDescriptionTarget&&(this.quickStartPreviewDescriptionTarget.textContent=r.dataset.description||""),this.hasQuickStartUseButtonTarget&&(this.quickStartUseButtonTarget.dataset.config=r.dataset.config),this.hasQuickStartPositionTarget&&(this.quickStartPositionTarget.textContent=`${i+1} / ${s.length}`)}useQuickStart(){let i=this.hasQuickStartUseButtonTarget?this.quickStartUseButtonTarget.dataset.config:null;if(!i)return;let s;try{s=JSON.parse(i)}catch{return}this.#u(s),this.closeQuickStartPreview(),this.#U(),this.#g(!0),this.generate()}toggleQuickStart(){this.#g(!this.#d())}#u(i){let s={custom_clothing_prompt:"customClothingPromptTarget",custom_hairstyle_prompt:"customHairstylePromptTarget",custom_background_prompt:"customBackgroun
393dPromptTarget",custom_facial_details_prompt:"customFacialDetailsPromptTarget"};this.configValue={...this.configValue,...i},Object.entries(this.typeConfigMapValue).forEach(([r,a])=>{let n=i[a];n?this.#B(r,n):this.#w(r)}),Object.entries(s).forEach(([r,a])=>{let n=`has${a.charAt(0).toUpperCase()}${a.slice(1)}`;if(!this[n])return;let l=i[r]||"";this[a].value=l,this.#m(r,l),this[a].dispatchEvent(new Event("input",{bubbles:!0}))}),this.#G(),this.#F()}#g(i){this.hasQuickStartContentTarget&&(this.quickStartContentTarget.style.maxHeight=i?"0px":"320px",this.quickStartContentTarget.style.opacity=i?"0":"1",this.hasQuickStartChevronTarget&&this.quickStartChevronTarget.classList.toggle("-rotate-180",i),this.hasQuickStartToggleTarget&&this.quickStartToggleTarget.setAttribute("aria-expanded",i?"false":"true"))}#d(){return this.hasQuickStartContentTarget?this.quickStartContentTarget.style.maxHeight==="0px":!0}#m(i,s){if(i)try{s?localStorage.setItem(this.#p(i),s):localStorage.removeItem(this.#p(i))}catch{}}#f(i){try{return localStorage.getItem(this.#p(i))}catch{return null}}#p(i){return`creatorStudioMobileCustomPrompt__${i}`}activateCustomPrompt({params:{type:i,configKey:s},currentTarget:r}){this.#b(i,s,r),this.#E(r)}#b(i,s,r){if(s&&this.#a.add(s),this.customPromptTypesValue[i]&&(this.configValue={...this.configValue,[i]:""},this.#w(i)),s==="custom_facial_details_prompt"&&(this.configValue={...this.configValue,lips:"",freckles:"",makeup_style:""},this.#w("lips"),this.#w("freckles"),this.#w("makeupStyle")),r&&!r.value&&s){let a=this.#f(s);a&&(r.value=a,this.configValue={...this.configValue,[s]:a},r.dispatchEvent(new Event("input",{bubbles:!0})))}this.#C(),this.#G(),this.#F()}updateCustomPrompt({params:{configKey:i},currentTarget:s}){if(!i)return;let r=s.value;r.trim()?this.#a.add(i):this.#a.delete(i),this.configValue={...this.configValue,[i]:r},this.#m(i,r),this.#C(),this.#G(),this.#F()}selectCustomPrompt({params:{configKey:i}}){if(!i)return;let s=this.#I(i),r=Object.entries(this.customPromptTypesValue).find(([,a])=>a.configKey===i)?.[0];this.#b(r,i,s),this.#E(s),this.#k(s)}customOptionTargetConnected(){this.#C()}sectionValueTargetConnected(i){this.#J(i)}async generate(){if(!this.configValue.ethnicity||this.isGeneratingValue||!this.#j())return;let i=this.baselineConfigValue;this.baselineConfigValue={...this.configValue};let s=this.baseGenerationsLeftValue,r=this.serverGenerationsCountEpoch||0;this.#v||this.#R(),this.isGeneratingValue=!0,this.#M(),this.#V();let a=!1;try{let n=this.#T();this.#v&&n.append("preset_slug",this.#v);let l=await H(this.generateUrlValue,{body:n,responseKind:"turbo-stream"});if(l.redirected){window.location.href=l.response.url;return}l.ok&&(a=!0,this.#v=null,this.#q())}finally{a||(this.baselineConfigValue=i,(this.serverGenerationsCountEpoch||0)===r&&(this.baseGenerationsLeftValue=s)),this.isGeneratingValue=!1}}async generateNewSeed(){if(!this.configValue.ethnicity||this.isGeneratingValue)return;let i=this.baseGenerationsLeftValue,s=this.serverGenerationsCountEpoch||0;this.#R(),this.isGeneratingValue=!0,this.#M(),this.#V();let r=!1;try{let a=this.#T();a.append("refresh_seed","true"),(await H(this.generateUrlValue,{body:a,responseKind:"turbo-stream"})).ok&&(r=!0,this.#q())}finally{r||(this.serverGenerationsCountEpoch||0)===s&&(this.baseGenerationsLeftValue=i),this.isGeneratingValue=!1}}async switchPreview({currentTarget:i}){let s=parseInt(i.dataset.generationId,10),r=i.dataset.imageUrl;if(!s||i.classList.contains("border-white"))return;if(this.hasPreviewImageTarget&&r){this.previewImageTarget.src=r;let n=this.previewImageTarget.closest("[data-lightbox-url]");n&&(n.dataset.lightboxUrl=r)}this.hasThumbnailButtonTarget&&this.thumbnailButtonTargets.forEach(n=>{let l=parseInt(n.dataset.generationId,10)===s;n.classList.toggle("border-white",l),n.classList.toggle("border-white/20",!l),n.classList.toggle("hover:border-white/40",!l)});let a=new FormData;a.append("generation_id",s),this.characterSlugValue&&a.append("slug",this.characterSlugValue),await H(this.selectUrlValue,{body:a,responseKind:"turbo-stream"})}createNew(){let i=new URL(window.location.href);i.searchParams.delete("slug"),i.searchParams.set("new","1"),window.location.href=i.toString()}characterSlugValueChanged(i){if(!i)return;let s=new URL(window.location.href);s.searchParams.has("new")&&(s.searchParams.delete("new"),s.searchParams.set("slug",i),window.history.replaceState({},"",s.toString()))}selectCharacter({params:{characterSlug:i}}){let s=new URL(window.location.href);s.searchParams.delete("new"),s.searchParams.set("slug",i),window.location.href=s.toString()}#v=null;configValueChanged(){this.#v=null}#T(){let i=new FormData,s=this.configValue,r=this.hasCustomClothingPromptTarget?this.customClothingPromptTarget.value:s.custom_clothing_prompt||"",a=this.hasCustomBackgroun
393dPromptTarget?this.customBackgroundPromptTarget.value:s.custom_background_prompt||"",n=this.hasCustomFacialDetailsPromptTarget?this.customFacialDetailsPromptTarget.value:s.custom_facial_details_prompt||"",l=this.hasCustomHairstylePromptTarget?this.customHairstylePromptTarget.value:s.custom_hairstyle_prompt||"",d={ethnicity:s.ethnicity||"",clothing:s.clothing||"",custom_clothing_prompt:r,skin_color:s.skin_color||"",eye_color:s.eye_color||"",hair_color:s.hair_color||"",hairstyle:s.hairstyle||"",custom_hairstyle_prompt:l,age:s.age||"",body_type:s.body_type||"",breast_size:s.breast_size||"",butt_size:s.butt_size||"",height_cm:s.height_cm||"",background:s.background||"",custom_background_prompt:a,lips:s.lips||"",freckles:s.freckles||"",makeup_style:s.makeup_style||"",custom_facial_details_prompt:n};return Object.entries(d).forEach(([m,v])=>{i.append(`creator_studio[${m}]`,v||"")}),this.characterSlugValue&&i.append("slug",this.characterSlugValue),i.append("force_single_generation","true"),i}#y(){let i=this.configValue;Object.entries(this.typeConfigMapValue).forEach(([s,r])=>{let a=i[r];a&&this.#B(s,a)})}#S(){Object.keys(this.typeConfigMapValue).forEach(i=>this.#w(i))}#w(i){if(i==="heightCm"){this.hasHeightCmSliderTarget&&this.#O(this.heightCmSliderTarget.dataset.defaultCm);return}let s=`${i}OptionTargets`;this[s]&&this[s].forEach(r=>this.#D(r,i,!1))}#L(i){let s=this.customPromptTypesValue[i];if(!s)return;let r=`${s.target}Target`,a=`has${s.target.charAt(0).toUpperCase()}${s.target.slice(1)}Target`;this[a]&&(this.#a.delete(s.configKey),this[r].value="",this.configValue={...this.configValue,[s.configKey]:""},this.#A(this[r]),this.#C())}#I(i){return{custom_clothing_prompt:this.hasCustomClothingPromptTarget&&this.customClothingPromptTarget,custom_hairstyle_prompt:this.hasCustomHairstylePromptTarget&&this.customHairstylePromptTarget,custom_background_prompt:this.hasCustomBackgroundPromptTarget&&this.customBackgroundPromptTarget,custom_facial_details_prompt:this.hasCustomFacialDetailsPromptTarget&&this.customFacialDetailsPromptTarget}[i]||null}#C(){this.hasCustomOptionTarget&&this.customOptionTargets.forEach(i=>{let s=i.dataset.customPromptKey,r=this.#a.has(s)||!!(this.configValue[s]||"").trim(),a=i.dataset.customStyle==="text";i.classList.toggle(a?"outline-white":"border-white",r),i.classList.toggle(a?"outline-transparent":"border-white/10",!r),i.classList.toggle("bg-white/[0.08]",a&&r),i.classList.toggle("bg-white/[0.03]",a&&!r);let n=i.querySelector("[data-checkmark]");n&&(n.classList.toggle("hidden",!r),n.classList.toggle("flex",r))})}#E(i){if(!i||!this.hasScrollContainerTarget||!this.hasStickyFooterTarget)return;let s=r=>{let a=this.scrollContainerTarget.getBoundingClientRect(),n=this.stickyFooterTarget.getBoundingClientRect(),l=i.getBoundingClientRect(),d=a.top+12,m=Math.min(a.bottom,n.top)-16;l.bottom>m?this.scrollContainerTarget.scrollBy({top:l.bottom-m,behavior:r}):l.top<d&&this.scrollContainerTarget.scrollBy({top:l.top-d,behavior:r})};requestAnimationFrame(()=>s("auto")),setTimeout(()=>s("smooth"),320)}#k(i){i&&(this.#x(),this.#o=i,i.classList.add("animate-pulse","ring-2","ring-white/70"),this.#n=setTimeout(()=>{this.#x()},900))}#x(){this.#n&&(clearTimeout(this.#n),this.#n=null),this.#o&&(this.#o.classList.remove("animate-pulse","ring-2","ring-white/70"),this.#o=null)}#A(i){i&&(i.style.height="40px",i.scrollHeight!==0&&(i.style.height=`${i.scrollHeight}px`))}#B(i,s){if(i==="age"&&this.hasAgeSliderTarget){this.#_(s);return}if(i==="heightCm"){this.#O(s);return}let r=`${i}OptionTargets`;this[r]&&this[r].forEach(a=>{this.#D(a,i,a.dataset.value===s)})}#_(i){let s=String(i);/^\d+$/.test(s)&&(this.hasAgeSliderTarget&&this.ageSliderTarget.value!==s&&(this.ageSliderTarget.value=s),this.hasAgeDisplayTarget&&(this.ageDisplayTarget.textContent=s))}selectHeight({currentTarget:i}){this.configValue={...this.configValue,height_cm:i.value},this.#O(i.value),this.#P()}#P(){this.#Z("heightCm","height_cm"),this.#F()}#O(i){let s=String(i);/^\d+$/.test(s)&&(this.hasHeightCmSliderTarget&&this.heightCmSliderTarget.value!==s&&(this.heightCmSliderTarget.value=s),this.hasHeightCmDisplayTarget&&(this.heightCmDisplayTarget.textContent=s))}#N(i){let s=/^\d+$/.test(String(i))?String(i):null;if(!s)return null;let r=this.hasHeightCmSliderTarget?this.heightCmSliderTarget.dataset.cmLabelTemplate:null;return r?r.replace("%cm%",s):s}#$(i){let s=/^\d+$/.test(String(i))?String(i):this.hasAgeDisplayTarget?this.ageDisplayTarget.textContent.trim():"";if(!s)return null;let r=this.hasAgeSliderTarget?this.ageSliderTarget.dataset.yearsLabelTemplate:null;return r?r.replace("%years%",s):s}#D(i,s,r){let a=["skinColor","eyeColor","hairColor"],n=["clothing","background"],l=i.querySelector("[data-checkmark]");a.includes(s)?(i.classList.toggle("border-white",r),i.classList.toggle("border-transparent",!r),l&&(l.classList.toggle("hidden",!r),l.classList.toggle("flex",r))):n.includes(s)?(i.classList.toggle("outline-white",r),i.classList.toggle("outline-transparent",!r),i.classList.toggle("bg-white/[0.08]",r),i.classList.toggle("bg-white/[0.03]",!r),i.setAttribute("aria-pressed",String(r)),l&&(l.classList.toggle("hidden",!r),l.classList.toggle("flex",r))):(i.classList.toggle("border-white",r),i.classList.toggle("border-white/10",!r),l&&(l.classList.toggle("hidden",!r),l.classList.toggle("flex",r)))}#M(){this.hasGenerateButtonTarget&&(this.generateButtonTarget.disabled=!0)}#V(){this.element.querySelector("main")?.scrollTo({top:0,behavior:"smooth"})}#R(){this.baseGenerationsLeftValue=Math.max(0,this.baseGenerationsLeftValue-1)}#F(){if(!this.hasGenerateButtonTarget)return;let i=this.generateButtonTarget.dataset.serverGenerating==="true",s=this.isGeneratingValue||i||!this.configValue.ethnicity||!this.#j();this.generateButtonTarget.disabled=s}#j(){let i=this.baselineConfigValue||{};return this.trackedConfigKeysValue.some(s=>(this.configValue[s]||"")!==(i[s]||""))}#U(i="committed"){this.hasIntroChooserTarget&&this.introChooserTarget.classList.add("hidden"),this.#t=i}#q(){setTimeout(()=>{this.hasCharacterSlugTarget&&(this.characterSlugValue=this.characterSlugTarget.value)},100)}#W(i){return i.replace(/[A-Z]/g,s=>`_${s.toLowerCase()}`)}#G(){this.#z(),this.hasFilterTagTarget&&this.filterTagTargets.forEac
393h(i=>{this.#Q(i)})}#Z(i,s){if(this.#z(),!this.hasFilterTagTarget)return;let r=this.filterTagTargets.find(a=>a.dataset.categoryType===i||a.dataset.configKey===s);r&&this.#Q(r)}#Q(i){let s=i.dataset.categoryType,r=i.dataset.configKey,l=this.customPromptTypesValue[s]?.configKey||(["lips","freckles","makeupStyle"].includes(s)?"custom_facial_details_prompt":null),d=l?(this.configValue[l]||"").trim():"",m=null;if(d?m="custom":this.configValue[r]&&(m=this.#te(s,this.configValue[r])||this.configValue[r]),!m){i.classList.add("hidden");return}let v=i.querySelector("[data-value-label]");v&&(v.textContent=m),i.classList.remove("hidden")}#te(i,s){if(i==="age"&&this.hasAgeSliderTarget)return this.#$(s);if(i==="heightCm")return this.#N(s);let r=this[`${i}OptionTargets`];return r?r.find(n=>n.dataset.value===s)?.dataset.label:null}#z(){this.hasSectionValueTarget&&this.sectionValueTargets.forEach(i=>this.#J(i))}#J(i){let s=(this.configValue[i.dataset.customPromptKey]||"").trim(),r=this.configValue[i.dataset.configKey],a=s?i.dataset.customLabel:this.#te(i.dataset.categoryType,r);i.textContent=a||"",i.classList.toggle("hidden",!a)}};var Rm=class extends u{static targets=["menu"];#e=null;connect(){this.#e=this.#t.bind(this)}toggle(i){i.stopPropagation(),this.menuTarget.classList.toggle("hidden"),this.menuTarget.classList.contains("hidden")?document.removeEventListener("click",this.#e):document.addEventListener("click",this.#e)}#t(i){this.element.contains(i.target)||(this.menuTarget.classList.add("hidden"),document.removeEventListener("click",this.#e))}};var GM=500,WM=256,Nm=class extends u{static targets=["nameInput","contextInput","greetingInput","chatModeInput","archetype","archetypeGrid","archetypeToggle","archetypeToggleLabel","archetypeToggleIcon","continueButton","submitLoader","presetModal","fieldError","structuredFields","structuredInputs","separateFieldsToggle","personalityInput"];static values={updateUrl:String,submitUrl:String,archetypes:{type:Array,default:[]}};static ERROR_INPUT_CLASSES=["ring-1","ring-red-500"];#e=null;#t=null;#i=null;#s=!1;#r=null;#a=!1;#n=null;#o=null;#l=null;connect(){this.#k(),this.#C(),this.#h(),this.#p(),this.#o=this.#d.bind(this),this.#l=this.#d.bind(this),document.addEventListener("turbo:before-cache",this.#o),document.addEventListener("persona:submit-failed",this.#l)}structuredFieldsTargetConnected(i){hr(i),cr(i),this.#h(),this.#p()}#h(){if(this.#u()){this.#i=this.personalityInputTarget.value||null;return}if(!this.hasContextInputTarget||!this.hasArchetypeTarget)return;let i=this.contextInputTarget.value.trim();if(!i)return;let s=this.archetypeTargets.find(r=>r.dataset.prompt?.trim()===i);s&&(this.#i=s.dataset.slug)}disconnect(){this.#e&&clearTimeout(this.#e),this.#o&&document.removeEventListener("turbo:before-cache",this.#o),this.#l&&document.removeEventListener("persona:submit-failed",this.#l)}onNameInput(){this.#T(),this.#C()}onContextInput(){this.#i&&(this.#s=!0),this.#E(this.contextInputTarget),this.#T(),this.#C()}onFieldInput(i){i.currentTarget.tagName==="TEXTAREA"&&this.#E(i.currentTarget),this.#T(),this.#C()}toggleSeparateFields({currentTarget:i}){this.structuredInputsTarget.hidden=!i.checked,this.#c(i.checked),this.#p(),this.#T(),this.#C()}#c(i){if(i){let a=this.#f();this.personalityInputTarget.value=a?this.#i:"",a||(this.#i=null);return}let s=this.personalityInputTarget.value,r=this.archetypeTargets.find(a=>a.dataset.slug===s)?.dataset.prompt;this.personalityInputTarget.value="",this.#i=null,r&&this.hasContextInputTarget&&!this.contextInputTarget.value.trim()&&(this.contextInputTarget.value=r,this.contextInputTarget.dispatchEvent(new Event("input",{bubbles:!0})),this.#E(this.contextInputTarget)),this.#h(),this.#s=!1}onStructuredChange(){hr(this.structuredFieldsTarget),this.#T()}onKinkChange(){cr(this.structuredFieldsTarget),this.#T()}#u(){return this.hasSeparateFieldsToggleTarget&&this.separateFieldsToggleTarget.checked}pickArchetype({currentTarget:i}){let s=i.dataset.slug,r=i.dataset.prompt;if(!s||!r)return;if(this.#u()){this.personalityInputTarget.value=s,this.#i=s,this.#p(),this.#T();return}if((this.hasContextInputTarget?this.contextInputTarget.value.trim():"").length>0&&(this.#i===null||this.#s)){this.#r={slug:s,prompt:r},this.hasPresetModalTarget&&this.presetModalTarget.classList.remove("hidden");return}this.#m(s,r)}confirmPresetSwitch(){this.#r&&(this.#m(this.#r.slug,this.#r.prompt),this.#r=null),this.#v()}dismissPresetModal(){this.#r=null,this.#v()}toggleArchetypes(){this.#b(!this.#a)}async continue(i){if(i&&i.preventDefault(),this.continueButtonTarget?.disabled)return;if(document.dispatchEvent(new CustomEvent("creator-studio:stop-voice-preview")),this.#g(),!(await this.#y())?.ok){this.#d();return}try{(await H(this.submitUrlValue,{responseKind:"turbo-stream"})).ok||this.#d()}catch{this.#d()}}#g(){this.hasContinueButtonTarget&&(this.#n===null&&(this.#n=this.continueButtonTarget.innerHTML),this.continueButtonTarget.disabled=!0,this.continueButtonTarget.innerHTML='<div class="loading-submit-white"></div>',this.hasSubmitLoaderTarget&&(this.submitLoaderTarget.classList.remove("hidden"),this.submitLoaderTarget.classList.add("flex")))}#d(){!this.hasContinueButtonTarget||this.#n===null||(this.continueButtonTarget.innerHTML=this.#n,this.#n=null,this.hasSubmitLoaderTarget&&(this.submitLoaderTarget.classList.add("hidden"),this.submitLoaderTarget.classList.remove("flex")),this.#C())}#m(i,s){this.#i=i,this.#s=!1,this.hasContextInputTarget&&(this.contextInputTarget.value=s,this.#E(this.contextInputTarget)),this.#p(),this.#T(),this.#C()}
393#f(){if(!this.#i||!this.hasContextInputTarget)return!1;let i=this.archetypeTargets.find(s=>s.dataset.slug===this.#i);return!!i&&this.contextInputTarget.value.trim()===i.dataset.prompt.trim()}#p(){this.hasArchetypeTarget&&this.archetypeTargets.forEach(i=>{let s=i.dataset.slug===this.#i;i.classList.toggle("border-white",s),i.classList.toggle("border-2",s),i.classList.toggle("bg-white/[0.06]",s),i.classList.toggle("border-white/[0.06]",!s),i.classList.toggle("bg-white/[0.03]",!s)})}#b(i){this.#a=i,this.archetypeTargets.filter(s=>s.dataset.archetypeExtra==="true").forEach(s=>{s.hidden=!i}),this.hasArchetypeToggleTarget&&this.archetypeToggleTarget.setAttribute("aria-expanded",i.toString()),this.hasArchetypeToggleLabelTarget&&this.hasArchetypeToggleTarget&&(this.archetypeToggleLabelTarget.textContent=i?this.archetypeToggleTarget.dataset.showLessLabel:this.archetypeToggleTarget.dataset.showMoreLabel),this.hasArchetypeToggleIconTarget&&this.archetypeToggleIconTarget.classList.toggle("rotate-180",i)}#v(){this.hasPresetModalTarget&&this.presetModalTarget.classList.add("hidden")}#T(){this.#e&&clearTimeout(this.#e),this.#e=setTimeout(()=>this.#S(),GM)}async#y(){return this.#e&&(clearTimeout(this.#e),this.#e=null),this.#t&&await this.#t,this.#S()}async#S(){return this.#t?this.#t:(this.#t=ve(this.updateUrlValue,{body:JSON.stringify({persona:this.#I()}),contentType:"application/json"}).then(async i=>(await this.#w(i),i)).catch(()=>{}).finally(()=>{this.#t=null}),this.#t)}async#w(i){if(!i||i.ok){this.#L({});return}if(!i.unprocessableEntity)return;let s=await i.json.catch(()=>null);this.#L(s?.errors||{})}#L(i){let s={name:this.hasNameInputTarget?this.nameInputTarget:null,context_message:this.hasContextInputTarget?this.contextInputTarget:null,greeting_message:this.hasGreetingInputTarget?this.greetingInputTarget:null};this.fieldErrorTargets.forEach(r=>{let a=i[r.dataset.field];r.textContent=a||"",r.hidden=!a;let n=s[r.dataset.field];this.constructor.ERROR_INPUT_CLASSES.forEach(l=>n?.classList.toggle(l,!!a))})}#I(){let i={name:this.nameInputTarget?.value||"",context_message:this.contextInputTarget?.value||"",greeting_message:this.greetingInputTarget?.value||""},s=this.chatModeInputTargets.find(r=>r.checked)?.value;return s&&(i.chat_mode=s),this.hasStructuredFieldsTarget&&Object.assign(i,_m(this.structuredFieldsTarget)),i}#C(){if(!this.hasContinueButtonTarget)return;let s=[this.nameInputTarget?.value,this.contextInputTarget?.value,this.greetingInputTarget?.value].every(a=>a&&a.trim().length>0),r=this.chatModeInputTargets.length===0||this.chatModeInputTargets.some(a=>a.checked);this.continueButtonTarget.disabled=!s||!r}#E(i){i&&(i.style.height="auto",i.style.height=`${Math.min(i.scrollHeight,WM)}px`)}#k(){[this.contextInputTarget,this.greetingInputTarget].filter(Boolean).forEach(i=>this.#E(i))}};var Um=class extends u{static targets=["previewImage","previewPlaceholder","loadingOverlay","promptOverlay","promptText","copyIcon","copyCheckIcon","thumbnailStrip","thumbnail","checkbox","checkIcon","selectedCount","promptInput","generateButton","generateLabel","continueButton","continueHint","stylePreset","stylePresetCheck","stylePresetThumb","stylePresetModal","stylePresetTrack","stylePresetChevron"];static values={generateUrl:String,toggleUrl:String,characterId:Number,selectedCount:{type:Number,default:0},minSelected:{type:Number,default:2},isGenerating:{type:Boolean,default:!1}};#e=null;#t=null;#i=null;#s=null;#r=!1;#a=null;#n=!0;connect(){this.#S(),this.#e=this.#w.bind(this),document.addEventListener("turbo:before-cache",this.#e)}disconnect(){this.#e&&document.removeEventListener("turbo:before-cache",this.#e),this.#w()}async tapThumbnail({currentTarget:i}){let s=i.dataset.cloudflareId,r=i.dataset.imageUrl,a=i.dataset.prompt||"";if(!s)return;if(this.#f(s,r),this.#p(a),i.dataset.selected==="true"){await this.#u(s);return}let l=this.#d();if(l.length>=2){let d=l.slice().sort((m,v)=>Number(m.dataset.sortOrder)-Number(v.dataset.sortOrder))[0];d&&await this.#u(d.dataset.cloudflareId)}await this.#u(s)}async generate(){if(this.isGeneratingValue)return;this.isGeneratingValue=!0,this.#y(!0),this.#T();let i=new FormData,s=this.hasPromptInputTarget?this.promptInputTarget.value.trim():"";s&&i.append("prompt",s);try{(await H(this.generateUrlValue,{body:i})).ok||(this.#y(!1),this.isGeneratingValue=!1)}catch{this.#y(!1),this.isGeneratingValue=!1}}hideLoading(){this.#y(!1),this.isGeneratingValue=!1}thumbnailStripTargetConnected(){this.isGeneratingValue&&this.hideLoading()}
393onPromptInput(i){this.#o(i.currentTarget),this.#s&&(this.#r=!0)}#o(i){if(!i)return;let s=window.getComputedStyle(i),r=parseFloat(s.borderTopWidth)||0,a=parseFloat(s.borderBottomWidth)||0,n=parseFloat(s.maxHeight)||176;i.style.height="auto";let l=Math.min(i.scrollHeight+r+a,n);i.style.height=`${l}px`}pickStylePreset({currentTarget:i}){let s=i.dataset.presetId,r=i.dataset.presetPrompt;if(!s||!r)return;if((this.hasPromptInputTarget?this.promptInputTarget.value.trim():"").length>0&&(this.#s===null||this.#r)){this.#a={id:s,prompt:r},this.hasStylePresetModalTarget&&this.stylePresetModalTarget.classList.remove("hidden");return}this.#l(s,r)}confirmStylePresetSwitch(){this.#a&&(this.#l(this.#a.id,this.#a.prompt),this.#a=null),this.#c()}dismissStylePresetModal(){this.#a=null,this.#c()}toggleStylePresets(){if(this.#n=!this.#n,this.hasStylePresetTrackTarget){let i=this.stylePresetTrackTarget;i.classList.toggle("max-h-[280px]",!this.#n),i.classList.toggle("opacity-100",!this.#n),i.classList.toggle("mt-1",!this.#n),i.classList.toggle("max-h-0",this.#n),i.classList.toggle("opacity-0",this.#n)}this.hasStylePresetChevronTarget&&this.stylePresetChevronTarget.classList.toggle("-rotate-180",this.#n)}#l(i,s){this.#s=i,this.#r=!1,this.hasPromptInputTarget&&(this.promptInputTarget.value=s,this.#o(this.promptInputTarget)),this.#h()}#h(){this.hasStylePresetTarget&&this.stylePresetTargets.forEach(i=>{let s=i.dataset.presetId===this.#s,r=i.querySelector('[data-creator-studio--mobile--profile-pictures-target="stylePresetThumb"]');r&&(r.classList.toggle("border-white",s),r.classList.toggle("border-white/15",!s));let a=i.querySelector('[data-creator-studio--mobile--profile-pictures-target="stylePresetCheck"]');a&&(a.classList.toggle("hidden",!s),a.classList.toggle("flex",s))})}#c(){this.hasStylePresetModalTarget&&this.stylePresetModalTarget.classList.add("hidden")}async copyPrompt(){if(!this.hasPromptTextTarget)return;let i=this.promptTextTarget.textContent.trim();if(i)try{await navigator.clipboard.writeText(i),this.#b()}catch{}}showContinueLoading(i){let s=i.currentTarget;s&&(this.#t===null&&(this.#t=s.innerHTML),s.innerHTML='<div class="loading-submit-white"></div>')}selectedCountValueChanged(){this.hasSelectedCountTarget&&(this.selectedCountTarget.textContent=this.selectedCountValue),this.#S()}async#u(i){let s=this.#g(i),r=new FormData;r.append("cloudflare_id",i);try{let a=await H(this.toggleUrlValue,{body:r});if(!a.ok)return;let n=await a.response.json().catch(()=>null);if(!n)return;if(s){let l=!!n.selected;s.dataset.selected=l?"true":"false",this.#m(s,l)}this.selectedCountValue=Number(n.selected_count??this.selectedCountValue)}catch{}}#g(i){return this.hasThumbnailTarget&&this.thumbnailTargets.find(s=>s.dataset.cloudflareId===i)||null}#d(){return this.hasThumbnailTarget?this.thumbnailTargets.filter(i=>i.dataset.selected==="true"):[]}#m(i,s){let r=i.querySelector('[data-creator-studio--mobile--profile-pictures-target="checkbox"]'),a=i.querySelector('[data-creator-studio--mobile--profile-pictures-target="checkIcon"]');r&&(r.classList.toggle("bg-emerald-500",s),r.classList.toggle("bg-black/55",!s),r.classList.toggle("border",!s),r.classList.toggle("border-white/30",!s)),a&&a.classList.toggle("hidden",!s)}#f(i,s){this.hasThumbnailTarget&&(this.thumbnailTargets.forEach(r=>{let a=r.dataset.cloudflareId===i;r.classList.toggle("border-white",a),r.classList.toggle("border-white/15",!a)}),this.#v(s))}#p(i){this.hasPromptOverlayTarget&&(i&&i.trim().length>0?(this.hasPromptTextTarget&&(this.promptTextTarget.textContent=i),this.promptOverlayTarget.classList.remove("hidden")):this.promptOverlayTarget.classList.add("hidden"))}#b(){!this.hasCopyIconTarget||!this.hasCopyCheckIconTarget||(this.copyIconTarget.classList.add("hidden"),this.copyCheckIconTarget.classList.remove("hidden"),setTimeout(()=>{this.copyCheckIconTarget.classList.add("hidden"),this.copyIconTarget.classList.remove("hidden")},1500))}#v(i){if(i){if(this.hasPreviewImageTarget)this.previewImageTarget.src=i,this.previewImageTarget.classList.remove("hidden");else{let s=this.element.querySelector("#creator-studio-mobile-pp-preview .relative");s&&(s.innerHTML=`<img src="${i}" class="absolute inset-0 w-full h-full object-cover object-top" data-creator-studio--mobile--profile-pictures-target="previewImage" alt="">`)}this.hasPreviewPlaceholderTarget&&this.previewPlaceholderTarget.classList.add("hidden")}}#T(){this.element.querySelector("main")?.scrollTo({top:0,behavior:"smooth"})}#y(i){this.hasLoadingOverlayTarget&&(this.loadingOverlayTarget.classList.toggle("hidden",!i),this.loadingOverlayTarget.classList.toggle("flex",i)),this.hasGenerateButtonTarget&&(this.generateButtonTarget.disabled=i,i?(this.#i===null&&(this.#i=this.generateButtonTarget.innerHTML),this.generateButtonTarget.innerHTML='<div class="loading-submit-white"></div>'):this.#i!==null&&(this.generateButtonTarget.innerHTML=this.#i,this.#i=null))}#S(){let i=this.selectedCountValue>=this.minSelectedValue;this.hasContinueButtonTarget&&this.continueButtonTarget.classList.toggle("hidden",!i),this.hasContinueHintTarget&&this.continueHintTarget.classList.toggle("hidden",i),this.hasGenerateButtonTarget&&(this.generateButtonTarget.classList.toggle("basis-[60%]",i),this.generateButtonTarget.classList.toggle("flex-1",!i))}#w(){this.#t!==null&&this.hasContinueButtonTarget&&(this.continueButtonTarget.innerHTML=this.#t),this.#t=null}};var Hm=class extends u{static targets=["card","bar","check","continueButton","summaryName"];static values={updateUrl:String,selectedId:{type:String,default:""}};#e=null;#t=null;#i=null;#s=null;#r=[];#a=null;connect(){this.#d(),this.#t=this.#m.bind(this),this.#a=this.#l.bind(this),document.addEventListener("turbo:before-cache",this.#t),document.addEventListener("creator-studio:stop-voice-preview",this.#a)}disconnect(){this.#t&&document.removeEventListener("turbo:before-cache",this.#t),this.#a&&document.removeEventListener("creator-studio:stop-voice-preview",this.#a),this.#l(),this.#m()}async pickVoice({currentTarget:i}){let s=i.dataset.voiceId;if(!s||s===this.selectedIdValue){this.#o(i);return}let r=this.selectedIdValue,a=this.cardTargets.find(n=>n.dataset.voiceId===r)?.dataset.voiceName;this.selectedIdValue=s,this.#n(),this.hasSummaryNameTarget&&(this.summaryNameTarget.textContent=i.dataset.voiceName),this.#o(i),this.#d();try{let n=new FormData;if(n.append("voice_id",s),!(await ve(this.updateUrlValue,{body:n})).ok)throw new Error("Voice update failed")}catch{this.selectedIdValue===s&&(this.selectedIdValue=r,this.#n(),this.#l(),this.hasSummaryNameTarget&&a&&(this.summaryNameTarget.textContent=a),this.#d())}}showContinueLoading(i){let s=i.currentTarget;s&&(this.#e===null&&(this.#e=s.innerHTML),s.innerHTML='<div class="loading-submit-white"></div>')}#n(){let i=this.selectedIdValue;
393this.cardTargets.forEach(s=>{let r=s.dataset.voiceId===i;s.dataset.selected=r?"true":"false";let a=s.dataset.color;s.style.borderColor=r?a:"";let n=this.checkTargets.find(l=>s.contains(l));n&&(n.classList.toggle("hidden",!r),n.classList.toggle("flex",r)),this.#g(s).forEach(l=>{l.style.opacity=r?"1":"0.65"})})}#o(i){let s=i.dataset.previewUrl;if(!s)return;this.#l();let r=new window.Audio(s);this.#i=r,r.preload="auto",r.addEventListener("ended",()=>this.#h(r),{once:!0}),r.addEventListener("error",()=>this.#h(r),{once:!0}),r.play()?.catch(()=>this.#h(r)),this.#c(i,r)}#l(){if(this.#i){let i=this.#i;this.#i=null,i.pause(),i.currentTime=0}this.#u()}#h(i){this.#i===i&&(this.#i=null,this.#u())}#c(i,s){this.#r=this.#g(i),this.#r.forEach(n=>{n.style.transition="transform 200ms ease",n.style.transformOrigin="center",n.style.transform="scaleY(1)"});let r=performance.now(),a=n=>{this.#i===s&&(this.#r.forEach((l,d)=>{let m=d*90,v=(n-r+m)/250,E=.6+Math.abs(Math.sin(v))*.8;l.style.transform=`scaleY(${E})`}),this.#s=requestAnimationFrame(a))};this.#s=requestAnimationFrame(a)}#u(){this.#s!==null&&(cancelAnimationFrame(this.#s),this.#s=null),this.#r.forEach(i=>{i.style.transform="",i.style.transition=""}),this.#r=[]}#g(i){return this.barTargets.filter(s=>i.contains(s))}#d(){if(!this.hasContinueButtonTarget)return;let i=this.selectedIdValue.length>0;this.continueButtonTarget.classList.toggle("opacity-40",!i),this.continueButtonTarget.classList.toggle("pointer-events-none",!i)}#m(){this.#e!==null&&this.hasContinueButtonTarget&&(this.continueButtonTarget.innerHTML=this.#e),this.#e=null}};var qm=class extends u{static targets=["chooser"];chooseFromPreset(){this.#e(),window.dispatchEvent(new CustomEvent("creator-studio:open-preset-picker"))}chooseFromScratch(){this.#e()}#e(){this.chooserTarget?.classList.add("hidden")}};var $m=class extends u{static targets=["modal","card","filter","filterTrigger","filterPanel","filterLabel","empty","gallery","image","previewModal","previewImage","previewLabel","previewMetadata","previewUseButton","selectedLabel"];static classes=["hidden"];sheetDragStartY=null;sheetDragOffset=0;sheetCloseTimer=null;disconnect(){this.imageObserver?.disconnect(),window.clearTimeout(this.sheetCloseTimer)}open(){this.closePreview(),this.#e(),this.modalTarget.open||(this.#i()&&(this.modalTarget.style.transform="translateY(100%)"),this.modalTarget.showModal(),this.modalTarget.focus({preventScroll:!0}),this.#i()&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.modalTarget.style.transform="translateY(0)"})})),this.#a()}close(){this.closePreview(),this.#s(),this.#t()}closeFromCancel(i){i.preventDefault(),this.close()}closeFromBackdrop(i){i.target===this.modalTarget&&this.close()}closePreviewFromBackdrop(i){i.target===this.previewModalTarget&&this.closePreview()}startSheetDrag(i){this.#i()&&(this.sheetDragStartY=i.clientY,this.sheetDragOffset=0,i.currentTarget.setPointerCapture(i.pointerId),this.modalTarget.classList.remove("duration-300"))}dragSheet(i){this.sheetDragStartY!==null&&(this.sheetDragOffset=Math.max(0,i.clientY-this.sheetDragStartY),this.modalTarget.style.transform=`translateY(${this.sheetDragOffset}px)`)}endSheetDrag(i){if(this.sheetDragStartY===null)return;i.currentTarget.hasPointerCapture(i.pointerId)&&i.currentTarget.releasePointerCapture(i.pointerId);let s=this.sheetDragOffset>Math.min(140,this.modalTarget.clientHeight*.18);this.sheetDragStartY=null,this.sheetDragOffset=0,this.modalTarget.classList.add("duration-300"),s?this.close():this.modalTarget.style.transform="translateY(0)"}closeDropdownsFromOutside(i){i.target.closest?.("[data-filter-dropdown]")||this.#s()}closeDropdowns(){this.#s()}toggleFilterPanel({currentTarget:i}){let s=i.dataset.filterKey,r=this.filterPanelTargets.find(n=>n.dataset.filterKey===s),a=r.classList.contains(this.hiddenClass);this.#s(),a&&(r.classList.remove(this.hiddenClass),this.#r(r,i),i.setAttribute("aria-expanded","true"))}filter({currentTarget:i}){let s=i.dataset.filterKey;this.filterTargets.filter(n=>n.dataset.filterKey===s).forEach(n=>{n.dataset.active="false"}),i.dataset.active="true";let r=this.filterLabelTargets.find(n=>
393n.dataset.filterKey===s);r.textContent=i.dataset.filterLabel;let a=this.filterTriggerTargets.find(n=>n.dataset.filterKey===s);a.dataset.selected=i.dataset.filterValue==="all"?"false":"true",this.#s(),this.#e()}previewPreset({currentTarget:i}){this.previewImageTarget.src=i.dataset.imageUrl,this.previewImageTarget.alt=i.dataset.label,this.previewLabelTarget.textContent=i.dataset.label,this.previewMetadataTarget.textContent=i.dataset.metadata,this.previewUseButtonTarget.dataset.config=i.dataset.config,this.previewUseButtonTarget.dataset.label=i.dataset.label,this.previewUseButtonTarget.dataset.slug=i.dataset.slug,this.previewModalTarget.open||(this.previewModalTarget.showModal(),this.previewModalTarget.focus({preventScroll:!0}))}closePreview(){this.hasPreviewModalTarget&&this.previewModalTarget.open&&this.previewModalTarget.close()}usePreset(){let i;try{i=JSON.parse(this.previewUseButtonTarget.dataset.config)}catch{return}this.selectedLabelTarget.textContent=this.previewUseButtonTarget.dataset.label,this.element.dispatchEvent(new CustomEvent("creator-studio:apply-preset",{detail:{config:i,slug:this.previewUseButtonTarget.dataset.slug},bubbles:!0})),this.close()}#e(){let i=Object.fromEntries(this.filterTargets.filter(r=>r.dataset.active==="true").map(r=>[r.dataset.filterKey,r.dataset.filterValue])),s=!1;this.cardTargets.forEach(r=>{let a=Object.entries(i).every(([n,l])=>l==="all"||r.dataset[n]===l);r.classList.toggle(this.hiddenClass,!a),a&&(s=!0)}),this.emptyTarget.classList.toggle(this.hiddenClass,s)}#t(){if(this.modalTarget.open){if(!this.#i()){this.modalTarget.close();return}this.modalTarget.style.transform="translateY(100%)",window.clearTimeout(this.sheetCloseTimer),this.sheetCloseTimer=window.setTimeout(()=>{this.modalTarget.open&&this.modalTarget.close(),this.modalTarget.style.removeProperty("transform")},300)}}#i(){return window.innerWidth<768}#s(){this.filterPanelTargets.forEach(i=>{i.classList.add(this.hiddenClass),i.style.removeProperty("left"),i.style.removeProperty("top"),i.style.removeProperty("width")}),this.filterTriggerTargets.forEach(i=>i.setAttribute("aria-expanded","false"))}#r(i,s){let a=s.getBoundingClientRect(),n=Math.min(Math.max(a.width,220),window.innerWidth-24),l=Math.min(Math.max(a.left,12),window.innerWidth-n-12),d=Math.min(i.scrollHeight,window.innerHeight*.6),m=a.bottom+8,v=m;m+d>window.innerHeight-12&&(v=Math.max(12,a.top-d-8)),i.style.left=`${l}px`,i.style.top=`${v}px`,i.style.width=`${n}px`}#a(){if(!("IntersectionObserver"in window)){this.imageTargets.forEach(i=>this.#n(i));return}this.imageObserver||=new IntersectionObserver(i=>{i.filter(s=>s.isIntersecting).forEach(s=>{this.#n(s.target),this.imageObserver.unobserve(s.target)})},{root:this.galleryTarget,rootMargin:"300px 0px"}),this.imageTargets.filter(i=>i.dataset.src).forEach(i=>this.imageObserver.observe(i))}#n(i){i.dataset.src&&(i.src=i.dataset.src,delete i.dataset.src)}};var Gm=class extends u{static targets=["tab","locationsGrid","outfitsGrid","momentsList","intimateList","giftsList","dialog","scenesFrame"];connect(){this.currentTab="locations",this.boundBeforeMorphAttribute=this.beforeMorphAttribute.bind(this),this.boundOnLevelChanged=this.reloadScenesContent.bind(this),document.addEventListener("turbo:before-morph-attribute",this.boundBeforeMorphAttribute),document.addEventListener("companions-relationship-indicator:level-changed",this.boundOnLevelChanged)}disconnect(){document.removeEventListener("turbo:before-morph-attribute",this.boundBeforeMorphAttribute),document.removeEventListener("companions-relationship-indicator:level-changed",this.boundOnLevelChanged)}reloadScenesContent(){this.hasScenesFrameTarget&&this.scenesFrameTarget.reload()}beforeMorphAttribute(i){let s=i.target;[this.hasLocationsGridTarget&&this.locationsGridTarget,this.hasOutfitsGridTarget&&this.outfitsGridTarget,this.hasMomentsListTarget&&this.momentsListTarget,this.hasIntimateListTarget&&this.intimateListTarget,this.hasGiftsListTarget&&this.giftsListTarget].includes(s)&&i.detail.attributeName==="class"&&i.preventDefault()}open(){this.hasDialogTarget&&this.dialogTarget.showModal?.()}close(){this.hasDialogTarget&&this.dialogTarget.close?.()}selectTab(i){let s=i.currentTarget.dataset.tab;if(s===this.currentTab){this.pulseActiveTab(s);return}this.currentTab=s,this.updateTabStyles(),this.updateGridVisibility()}pulseActiveTab(i){let s=this.tabTargets.find(a=>a.dataset.tab===i),r=this.gridFor(i);!s||!r||(s.classList.remove("bg-white/30"),s.classList.add("bg-white/10"),setTimeout(()=>{s.classList.remove("bg-white/10"),this.currentTab===i&&s.classList.add("bg-white/30")},100),r.style.transition="none",r.style.transform="translateY(10px)",requestAnimationFrame(()=>{requestAnimationFrame(()=>{r.style.transition="transform 300ms ease-out",r.style.transform="translateY(0)"})}))}gridFor(i){return i==="locations"&&this.hasLocationsGridTarget?this.locationsGridTarget:i==="outfits"&&this.hasOutfitsGridTarget?this.outfitsGridTarget:i==="moments"&&this.hasMomentsListTarget?this.momentsListTarget:i==="intimate"&&this.hasIntimateListTarget?this.intimateListTarget:i==="gifts"&&this.hasGiftsListTarget?this.giftsListTarget:null}
393updateTabStyles(){this.tabTargets.forEach(i=>{i.dataset.tab===this.currentTab?(i.classList.add("bg-white/30","text-white"),i.classList.remove("text-white/60","hover:bg-white/10","hover:text-white/80")):(i.classList.add("text-white/60","hover:bg-white/10","hover:text-white/80"),i.classList.remove("bg-white/30","text-white"))})}updateGridVisibility(){this.hasLocationsGridTarget&&this.locationsGridTarget.classList.toggle("hidden",this.currentTab!=="locations"),this.hasOutfitsGridTarget&&this.outfitsGridTarget.classList.toggle("hidden",this.currentTab!=="outfits"),this.hasMomentsListTarget&&this.momentsListTarget.classList.toggle("hidden",this.currentTab!=="moments"),this.hasIntimateListTarget&&this.intimateListTarget.classList.toggle("hidden",this.currentTab!=="intimate"),this.hasGiftsListTarget&&this.giftsListTarget.classList.toggle("hidden",this.currentTab!=="gifts")}};var Wm=class extends u{static targets=["dialog","giftButton"];open(){let i=document.querySelector('[data-companions-scenes-drawer-target="tab"][data-tab="gifts"]');if(i&&i.offsetParent!==null){i.click();return}this.hasDialogTarget&&this.dialogTarget.showModal?.()}close(){this.hasDialogTarget&&this.dialogTarget.close?.()}hideGiftButton(){this.hasGiftButtonTarget&&(this.giftButtonTarget.hidden=!0)}showGiftButton(){this.hasGiftButtonTarget&&(this.giftButtonTarget.hidden=!1)}};var jm=class extends u{static targets=["progressRing","xpNotification","heart","brokenHeart","levelNotification","levelText","brokenHeartIcon","giftHeart","sparkles"];static values={level:Number,levelName:String,progress:Number,currentXp:Number,dialogId:String,source:String};connect(){this.initializeRing()}disconnect(){this.clearAllTimeouts()}clearAllTimeouts(){this.xpTimeout&&clearTimeout(this.xpTimeout),this.levelTimeout&&clearTimeout(this.levelTimeout),this.ringFillTimeout&&clearTimeout(this.ringFillTimeout),this.fadeOutTimeout&&clearTimeout(this.fadeOutTimeout),this.fadeInTimeout&&clearTimeout(this.fadeInTimeout),this.pendingLevelTimeout&&clearTimeout(this.pendingLevelTimeout)}initializeRing(){this.displayedProgress=this.progressValue,this.initialized=!0}levelValueChanged(i,s){this.initialized&&s!==void 0&&(i>s?(this.levelJustChanged=!0,this.sourceValue!=="gift"&&requestAnimationFrame(()=>{this.animateLevelUp(),this.showLevelNotification("up")}),this.dispatch("level-changed",{bubbles:!0})):i<s&&(this.levelJustChanged=!0,this.displayedProgress=this.progressValue,requestAnimationFrame(()=>{this.showLevelNotification("down")}),this.dispatch("level-changed",{bubbles:!0})))}currentXpValueChanged(i,s){if(!this.initialized||s===void 0)return;let a=this.sourceValue==="gift",n=this.levelJustChanged;if(this.levelJustChanged&&(this.levelJustChanged=!1,!a))return;this.displayedProgress=this.progressValue;let l=i-s;l!==0&&requestAnimationFrame(()=>{a?(this.showGiftXpNotification(l),n&&(this.pendingLevelTimeout=setTimeout(()=>{this.animateLevelUp(),this.showLevelNotification("up")},4500))):this.showXpNotification(l)})}onEvaluated(){requestAnimationFrame(()=>{this.showXpNotification(1)})}animateLevelUp(){if(!this.hasProgressRingTarget)return;this.clearAllTimeouts();let i=this.progressRingTarget,s=this.displayedProgress;i.style.transition="none",i.style.setProperty("--xp-progress",s),i.offsetHeight,i.style.transition="",i.style.setProperty("--xp-progress",100),this.ringFillTimeout=setTimeout(()=>{i.style.transition="opacity 0.3s ease-out",i.style.opacity="0",this.fadeOutTimeout=setTimeout(()=>{i.style.transition="none",i.style.setProperty("--xp-progress",0),i.offsetHeight,i.style.transition="opacity 0.3s ease-in",i.style.opacity="1",this.fadeInTimeout=setTimeout(()=>{i.style.transition="",i.style.setProperty("--xp-progress",this.progressValue),this.displayedProgress=this.progressValue},300)},350)},500)}showXpNotification(i){if(!this.hasXpNotificationTarget)return;this.hasGiftHeartTarget&&this.giftHeartTargets.forEach(a=>a.classList.add("hidden")),this.hasSparklesTarget&&this.sparklesTarget.classList.add("hidden");let s=this.xpNotificationTarget;if(i>0){let a=Math.min(Math.floor(i/4)+1,3);
393this.heartTargets.forEach((n,l)=>{n.classList.toggle("hidden",l>=a)}),this.brokenHeartTargets.forEach(n=>{n.classList.add("hidden")})}else{let a=Math.abs(i),n;a<=2?n=1:a<=5?n=2:n=3,this.heartTargets.forEach(l=>{l.classList.add("hidden")}),this.brokenHeartTargets.forEach((l,d)=>{l.classList.toggle("hidden",d>=n)})}s.classList.remove("opacity-0","scale-75"),s.classList.add("opacity-100","scale-100"),this.xpTimeout&&clearTimeout(this.xpTimeout),this.xpTimeout=setTimeout(()=>{s.classList.remove("opacity-100","scale-100"),s.classList.add("opacity-0","scale-75")},2e3)}showGiftXpNotification(i){if(!this.hasXpNotificationTarget)return;let s=this.xpNotificationTarget;this.heartTargets.forEach(a=>a.classList.add("hidden")),this.brokenHeartTargets.forEach(a=>a.classList.add("hidden"));let r=i>=100?3:i>=25?2:1;this.giftHeartTargets.forEach((a,n)=>{a.classList.toggle("hidden",n>=r)}),this.hasSparklesTarget&&this.sparklesTarget.classList.remove("hidden"),s.classList.remove("opacity-0","scale-75"),s.classList.add("opacity-100","scale-100"),this.xpTimeout&&clearTimeout(this.xpTimeout),this.xpTimeout=setTimeout(()=>{s.classList.remove("opacity-100","scale-100"),s.classList.add("opacity-0","scale-75"),this.giftHeartTargets.forEach(a=>a.classList.add("hidden")),this.hasSparklesTarget&&this.sparklesTarget.classList.add("hidden")},4e3)}showLevelNotification(i){if(!this.hasLevelNotificationTarget||!this.hasLevelTextTarget)return;let s=this.levelNotificationTarget,r=this.levelTextTarget,a=i==="down";r.textContent=this.levelNameValue,a?(r.style.background="radial-gradient(50% 50% at center, rgba(230, 70, 70, 0.6) 0%, rgba(230, 70, 70, 0.2) 100%)",r.style.filter="drop-shadow(0px 0px 5px #E64646)",this.hasBrokenHeartIconTarget&&this.brokenHeartIconTarget.classList.remove("hidden")):(r.style.background="radial-gradient(50% 50% at center, rgba(72, 70, 230, 0.6) 0%, rgba(72, 70, 230, 0.2) 100%)",r.style.filter="drop-shadow(0px 0px 5px #4846E6)",this.hasBrokenHeartIconTarget&&this.brokenHeartIconTarget.classList.add("hidden")),s.classList.remove("opacity-0","scale-75"),s.classList.add("opacity-100","scale-100"),this.levelTimeout&&clearTimeout(this.levelTimeout),this.levelTimeout=setTimeout(()=>{s.classList.remove("opacity-100","scale-100"),s.classList.add("opacity-0","scale-75")},2500)}openDialog(){if(!this.hasDialogIdValue)return;let i=document.getElementById(this.dialogIdValue);i&&i.showModal()}};var E0=["\u2764\uFE0F","\u{1F497}","\u{1F496}","\u2665\uFE0F"],jM="character-progression:open",L0={msg:{count:1,size:[13,14],dur:[1200,1420],dist:[24,30],spread:0,overshoot:1.08,fadeStart:.35,stagger:0,glowMax:4,pulseSpeed:1},sm:{count:2,size:[18,22],dur:[1640,1950],dist:[38,50],spread:48,overshoot:1.3,fadeStart:.5,stagger:270,glowMax:6,pulseSpeed:1.2},big:{count:3,size:[22,26],dur:[2100,2470],dist:[46,62],spread:55,overshoot:1.35,fadeStart:.55,stagger:330,glowMax:8,pulseSpeed:1.4},giftS:{count:1,size:[16,18],dur:[1300,1540],dist:[26,34],spread:0,overshoot:1.15,fadeStart:.4,stagger:0,glowMax:6,pulseSpeed:1},giftM:{count:2,size:[20,24],dur:[1740,2060],dist:[40,52],spread:48,overshoot:1.35,fadeStart:.5,stagger:280,glowMax:8,pulseSpeed:1.3},giftL:{count:3,size:[24,28],dur:[2200,2600],dist:[48,66],spread:55,overshoot:1.4,fadeStart:.55,stagger:340,glowMax:10,pulseSpeed:1.5}};function Oa(i){return 1-Math.pow(1-i,5)}function KM(i){return 1+2.70158*Math.pow(i-1,3)+1.70158*Math.pow(i-1,2)}function zM(i){return 1+2.2*Math.pow(i-1,3)+1.2*Math.pow(i-1,2)}function ab(i){return i*i}var Km=class extends u{static targets=["avatarRing","progressRing","particleField","levelPill","levelBanner","levelBannerInner","levelBannerEmoji","levelBannerLabel","levelBannerLevel","sparkles","confettiLayer"];static values={level:Number,levelName:String,progress:Number,currentXp:Number,dialogId:String,source:String,tokenSpend:Number};connect(){this.initializeRing(),this.#h()}disconnect(){this.clearAllTimeouts(),this.#o(),this.#c()}clearAllTimeouts(){this.levelTimeout&&clearTimeout(this.levelTimeout),this.ringFillTimeout&&clearTimeout(this.ringFillTimeout),this.fadeOutTimeout&&clearTimeout(this.fadeOutTimeout),this.fadeInTimeout&&clearTimeout(this.fadeInTimeout),this.pendingLevelTimeout&&clearTimeout(this.pendingLevelTimeout),this.sparkleTimeout&&clearTimeout(this.sparkleTimeout),this.pulseTimeout&&clearTimeout(this.pulseTimeout),this.pulseRAF&&cancelAnimationFrame(this.pulseRAF),this.pillResetTimeout&&clearTimeout(this.pillResetTimeout),this.confettiHideTimeout&&clearTimeout(this.confettiHideTimeout),this.pillTransitionTimeout&&clearTimeout(this.pillTransitionTimeout)}initializeRing(){this.displayedProgress=this.progressValue,this.emitGeneration=0,this.initialized=!0}levelValueChanged(i,s){this.initialized&&s!==void 0&&(i>s?(this.levelJustChanged=!0,this.sourceValue!=="gift"&&requestAnimationFrame(()=>{this.pendingLevelTimeout&&clearTimeout(this.pendingLevelTimeout),this.animateLevelUp(),this.pendingLevelTimeout=setTimeout(()=>{this.showLevelNotification("up")},500)}),this.dispatch("level-changed",{bubbles:!0,prefix:"character-progression"})):i<s&&(this.levelJustChanged=!0,this.displayedProgress=this.progressValue,requestAnimationFrame(()=>{this.showLevelNotification("down")}),this.dispatch("level-changed",{bubbles:!0,prefix:"character-progression"})))}currentXpValueChanged(i,s){if(!this.initialized||s===void 0)return;let a=this.sourceValue==="gift",n=this.levelJustChanged;if(this.levelJustChanged&&(this.levelJustChanged=!1,!a))return;let l=i-s;if(l===0)return;let d=this.displayedProgress;this.displayedProgress=this.progressValue,requestAnimationFrame(()=>{if(a)this.giftCooldownUntil=Date.now()+6e3,this.showGiftXpNotification(l),n&&(this.animateLevelUp(d),this.pendingLevelTimeout=setTimeout(()=>{this.showLevelNotification("up")},4500));else{if(this.giftCooldownUntil&&Date.now()<this.giftCooldownUntil)return;this.showXpNotification(l)}})}onEvaluated(){this.giftCooldownUntil&&Date.now()<this.giftCooldownUntil||requestAnimationFrame(()=>{this.showXpNotification(1)})}animateLevelUp(i){if(!this.hasProgressRingTarget)return;this.pendingLevelTimeout&&clearTimeout(this.pendingLevelTimeout),this.ringFillTimeout&&clearTimeout(this.ringFillTimeout),this.fadeOutTimeout&&clearTimeout(this.fadeOutTimeout),this.fadeInTimeout&&clearTimeout(this.fadeInTimeout);let s=this.progressRingTarget,r=i??this.displayedProgress;s.style.transition="none",s.style.setProperty("--xp-progress",r),s.offsetHeight,s.style.transition="",s.style.setProperty("--xp-progress",100),this.ringFillTimeout=setTimeout(()=>{s.style.transition="opacity 0.3s ease-out",s.style.opacity="0",this.fadeOutTimeout=setTimeout(()=>{s.style.transition="none",s.style.setProperty("--xp-progress",0),s.offsetHeight,s.style.transition="opacity 0.3s ease-in",s.style.opacity="1",this.fadeInTimeout=setTimeout(()=>{s.style.transition="",s.style.setProperty("--xp-progress",this.progressValue),this.displayedProgress=this.progressValue},300)},350)},500)}showXpNotification(i){let s=i>0,r=s?i>=8?"big":i>=4?"sm":"msg":Math.abs(i)>5?"big":Math.abs(i)>2?"sm":"msg";this.#t(r,!s)}showGiftXpNotification(i){let s=this.tokenSpendValue>=100?"giftL":this.tokenSpendValue>=25?"giftM":"giftS";
393if(this.#t(s,!1),this.hasSparklesTarget){this.sparklesTarget.classList.remove("hidden"),this.sparkleTimeout&&clearTimeout(this.sparkleTimeout);let r=s==="giftL"?4e3:s==="giftM"?3e3:2e3;this.sparkleTimeout=setTimeout(()=>{this.hasSparklesTarget&&this.sparklesTarget.classList.add("hidden")},r)}}showLevelNotification(i){if(!this.hasLevelBannerTarget)return;let s=this.levelBannerTarget,r=this.levelBannerInnerTarget,a=this.levelBannerEmojiTarget,n=this.levelBannerLabelTarget,l=this.levelBannerLevelTarget,d=i==="down";l.textContent=this.levelNameValue,d?(a.textContent="\u{1F494}",n.textContent="Level down",r.style.background="linear-gradient(135deg, rgba(100, 116, 139, 0.30), rgba(71, 85, 105, 0.30)), rgba(15, 15, 20, 0.85)",r.style.borderColor="rgba(100, 116, 139, 0.3)",l.style.background="linear-gradient(135deg, #94a3b8, #cbd5e1)",l.style.webkitBackgroundClip="text",l.style.webkitTextFillColor="transparent"):(a.textContent="\u{1F389}",n.textContent="Level up!",r.style.background="linear-gradient(135deg, rgba(232, 69, 112, 0.35), rgba(139, 92, 246, 0.35)), rgba(15, 15, 20, 0.85)",r.style.borderColor="rgba(232, 69, 112, 0.3)",l.style.background="linear-gradient(135deg, #ff4d6a, #c084fc)",l.style.webkitBackgroundClip="text",l.style.webkitTextFillColor="transparent"),this.#l(),s.classList.remove("opacity-0"),s.classList.add("opacity-100"),s.style.transform="translateX(-50%) translateY(0) scale(1)",d||this.#a(),this.levelTimeout&&clearTimeout(this.levelTimeout),this.levelTimeout=setTimeout(()=>{s.classList.remove("opacity-100"),s.classList.add("opacity-0"),s.style.transform="translateX(-50%) translateY(-12px) scale(0.9)"},4500)}openDialog(){this.#e("memories")}#e(i){if(!this.hasDialogIdValue)return;let s={dialogId:this.dialogIdValue,tab:i,handled:!1};if(document.dispatchEvent(new CustomEvent(jM,{detail:s})),s.handled)return;let r=document.getElementById(this.dialogIdValue);r&&(r.showModal(),r.querySelector(`[data-tabs-panels-target="tab"][data-tab-id="${i}"]`)?.click())}#t(i,s){if(!this.hasParticleFieldTarget)return;this.#o(),this.hasSparklesTarget&&this.sparkleTimeout&&(clearTimeout(this.sparkleTimeout),this.sparklesTarget.classList.add("hidden"),this.sparkleTimeout=null),this.emitGeneration=(this.emitGeneration||0)+1;let r=this.emitGeneration,a=L0[i]||L0.msg,n=this.particleFieldTarget;this.particleTimeouts=[],this.#r(s,a);let l=s?92:138;for(let d=0;d<a.count;d++){let m=setTimeout(()=>{if(r!==this.emitGeneration)return;let v=document.createElement("div");v.className="heart-particle",v.textContent=s?"\u{1F494}":E0[Math.floor(Math.random()*E0.length)];let E=a.size[0]+Math.random()*(a.size[1]-a.size[0]);v.style.fontSize=s?"20px":`${E}px`,v.style.position="absolute",v.style.pointerEvents="none",v.style.willChange="transform, opacity",v.style.opacity="0",s||(v.style.filter="drop-shadow(0 0 3px rgba(232,69,112,0.25))"),n.appendChild(v),s?this.#s(v,d,a.count,r):this.#i(v,d,a,r)},l+d*a.stagger);this.particleTimeouts.push(m)}}#i(i,s,r,a){let n=this.particleFieldTarget,l=n.offsetWidth/2,d=n.offsetHeight/2,m=r.count,v=d+d*.35,E=-90,D=m===1?0:(s-(m-1)/2)*(r.spread/(m-1)*2),R=(E+D)*Math.PI/180,W=r.dist[0]+Math.random()*(r.dist[1]-r.dist[0]),Q=r.dur[0]+Math.random()*(r.dur[1]-r.dur[0]),X=l+Math.cos(R)*W,ie=v+Math.sin(R)*W,ce=performance.now(),oe=Z=>{if(a!==this.emitGeneration){i.remove();return}let se=Math.min((Z-ce)/Q,1),J=Oa(se),ee;if(se<.35)ee=KM(se/.35)*r.overshoot;else{let Te=(se-.35)/.65;ee=r.overshoot*(1-Oa(Te)*.6)}let re=se<r.fadeStart?1:1-ab((se-r.fadeStart)/(1-r.fadeStart)),he=m>1?Math.sin(se*Math.PI)*5*(s%2?1:-1):0,ge=l+(X-l)*J,le=v+(ie-v)*J;i.style.left=`${ge}px`,i.style.top=`${le}px`,i.style.transform=`translate(-50%, -50%) scale(${ee}) rotate(${he}deg)`,i.style.opacity=Math.max(0,re),se<1?requestAnimationFrame(oe):i.remove()};requestAnimationFrame(oe)}#s(i,s,r,a){let n=this.particleFieldTarget,l=n.offsetWidth/2,d=n.offsetHeight/2,m=270,v=600,E=1050,D=m+v+E;i.style.left=`${l}px`,i.style.top=`${d}px`,i.style.opacity="0";let R=performance.now(),W=Q=>{if(a!==this.emitGeneration){i.remove();return}let X=Q-R;if(X<m){let ce=.5+zM(X/m)*.58,oe=Oa(X/m);i.style.transform=`translate(-50%, -50%) scale(${ce})`,i.style.opacity=String(Math.min(oe,1))}else if(X<m+v){let ie=(X-m)/v,ce=1-Oa(ie),oe=Math.sin(ie*Math.PI*11)*3*ce,Z=1.08-ie*.06;i.style.transform=`translate(calc(-50% + ${oe}px), -50%) scale(${Z})`,i.style.opacity="1"}else{let ie=ab(Math.min((X-m-v)/E,1)),ce=1.02-ie*.2;i.style.transform=`translate(-50%, -50%) scale(${ce})`,i.style.opacity=String(1-ie)}X<D?requestAnimationFrame(W):i.remove()};requestAnimationFrame(W)}
393#r(i,s){if(!this.hasProgressRingTarget)return;this.pulseRAF&&cancelAnimationFrame(this.pulseRAF),this.pulseTimeout&&clearTimeout(this.pulseTimeout);let r=this.progressRingTarget,a=i?"100,116,139":"232,69,112",n=s?s.glowMax:4,l=s?s.pulseSpeed:1.2;i&&(r.style.setProperty("--xp-color-from","#64748b"),r.style.setProperty("--xp-color-to","#64748b"),this.#n());let d=i?92:138,m=s?s.count:1,v=s?s.stagger:0,E=s?s.dur[1]:1090,D=d+(m-1)*v+E,R=.55,W=performance.now(),Q=X=>{let ie=X-W,ce=Math.min(ie/D,1),oe;ce<.1?oe=Oa(ce/.1):ce<R?oe=1:oe=1-ab((ce-R)/(1-R));let se=(Math.sin(ie/1e3*l*Math.PI*2-Math.PI/2)+1)/2*n*oe;r.style.filter=se>.2?`drop-shadow(0 0 ${se}px rgba(${a},${.35*oe}))`:"none",ce<1?this.pulseRAF=requestAnimationFrame(Q):(r.style.filter="none",i&&(r.style.setProperty("--xp-color-from","#FF0081"),r.style.setProperty("--xp-color-to","#FF4D6D")),this.pulseRAF=null)};this.pulseRAF=requestAnimationFrame(Q)}#a(){if(!this.hasConfettiLayerTarget)return;let i=this.confettiLayerTarget;i.classList.remove("hidden"),i.innerHTML="";let s=["#ff4d6a","#8b5cf6","#ff7eb3","#fbbf24","#34d399","#60a5fa","#f472b6","#c084fc"];[[30,0],[25,200],[20,500],[18,900],[15,1300],[10,1700]].forEach(([a,n])=>{for(let l=0;l<a;l++){let d=setTimeout(()=>{let m=document.createElement("div");m.style.cssText="position:absolute;pointer-events:none;will-change:transform,opacity;";let v=4+Math.random()*6,E=3+Math.random()*5;m.style.width=`${v}px`,m.style.height=`${E}px`,m.style.background=s[Math.floor(Math.random()*s.length)],m.style.borderRadius=Math.random()>
393.6?"50%":"1px",i.appendChild(m);let D=5+Math.random()*90,R=-2,W=(Math.random()-.5)*5,Q=1+Math.random()*2.5,X=.04+Math.random()*.025,ie=.99+Math.random()*.005,ce=(Math.random()-.5)*.2,oe=120+Math.random()*250,Z=1.5+Math.random()*2,se=20+Math.random()*30,J=1300+Math.random()*400,ee=performance.now(),re=he=>{let ge=he-ee,le=ge/J;if(le>=1){m.remove();return}Q+=X,W+=ce,W*=ie,Q*=ie,D+=W*.2,R+=Q;let Te=Math.sin(ge/1e3*Z)*se*Math.max(0,1-le*.3),Le=ge/1e3*oe,ze=1-le*.3,Qe=le<.35?1:1-Math.pow((le-.35)/.65,1.5);m.style.left=`${D}%`,m.style.top=`${R}px`,m.style.transform=`rotateX(${Le}deg) rotateZ(${Te}deg) scale(${ze})`,m.style.opacity=Math.max(0,Qe),requestAnimationFrame(re)};requestAnimationFrame(re)},n+Math.random()*200);this.particleTimeouts=this.particleTimeouts||[],this.particleTimeouts.push(d)}}),this.confettiHideTimeout=setTimeout(()=>{this.hasConfettiLayerTarget&&this.confettiLayerTarget.classList.add("hidden")},3500)}#n(){if(!this.hasLevelPillTarget)return;let i=this.levelPillTarget;this.pillResetTimeout&&clearTimeout(this.pillResetTimeout),i.style.transition="none",i.style.color="#94a3b8",i.offsetHeight,this.pillResetTimeout=setTimeout(()=>{i.style.transition="color 0.8s ease",i.style.color="#e84570",this.pillTransitionTimeout=setTimeout(()=>{i.style.transition=""},900)},800)}#o(){if(this.emitGeneration=(this.emitGeneration||0)+1,this.pulseRAF&&(cancelAnimationFrame(this.pulseRAF),this.pulseRAF=null),this.hasProgressRingTarget){let i=this.progressRingTarget;i.style.filter="none",i.style.setProperty("--xp-color-from","#FF0081"),i.style.setProperty("--xp-color-to","#FF4D6D")}this.particleTimeouts&&(this.particleTimeouts.forEach(i=>clearTimeout(i)),this.particleTimeouts=[]),this.hasParticleFieldTarget&&(this.particleFieldTarget.innerHTML="",this.hasConfettiLayerTarget&&(this.confettiLayerTarget.innerHTML="",this.confettiLayerTarget.classList.add("hidden")))}#l({animate:i=!1}={}){if(!this.hasLevelBannerTarget)return;let s=this.element.closest(".messages-container")||document.querySelector(".messages-container");if(!s)return;let r=this.levelBannerTarget;i||(r.style.transition="none");let a=s.getBoundingClientRect();r.style.left=`${a.left+a.width/2}px`,i||(r.offsetHeight,r.style.transition="")}#h(){this._onResize=()=>this.#l({animate:!0}),window.addEventListener("resize",this._onResize);let i=document.querySelector("[data-target='profile-toggle.profileContainer']");i&&(this._onSidebarTransition=()=>this.#l({animate:!0}),i.addEventListener("transitionend",this._onSidebarTransition),this._sidebarElement=i)}#c(){this._onResize&&window.removeEventListener("resize",this._onResize),this._sidebarElement&&this._onSidebarTransition&&this._sidebarElement.removeEventListener("transitionend",this._onSidebarTransition)}};var zm=class extends u{static targets=["badge"];static values={markVisitedUrl:String};async markVisited(){if(this.hasBadgeTarget)try{(await ve(this.markVisitedUrlValue,{responseKind:"turbo-stream"})).ok&&this.badgeTarget.remove()}catch{}}};var Ym=class extends u{static targets=["button","label","icon","costDialog","costDialog10s"];static values={url:String,label:String,loadingLabel:String,costConfirmed:Boolean,costNotificationType:String,guest:{type:Boolean,default:!1},freeUser:{type:Boolean,default:!1},currentDuration:{type:String,default:"5"},costConfirmed10s:{type:Boolean,default:!1},costNotificationType10s:{type:String,default:""}};connect(){this.generating=!1,this.#c(),this.boundHandleRenderComplete=this.#u.bind(this),document.addEventListener("render-complete",this.boundHandleRenderComplete),this.boundHandleDurationChanged=this.#e.bind(this),document.addEventListener("roleplay-scene-video-duration-changed",this.boundHandleDurationChanged),this.#g()}disconnect(){document.removeEventListener("render-complete",this.boundHandleRenderComplete),document.removeEventListener("roleplay-scene-video-duration-changed",this.boundHandleDurationChanged),this.loaderObserver&&this.loaderObserver.disconnect()}async generate(i){if(i.preventDefault(),this.#r()){this.#n(i);return}if(this.#a()){this.#o();return}if(!(this.generating||this.#h())){if(!this.#t()){this.#i();return}this.generating=!0,this.#l(!0);try{let s=await H(this.urlValue,{body:JSON.stringify({duration:this.currentDurationValue}),contentType:"application/json",responseKind:"turbo-stream"});s.ok?this.dispatch("sceneVideoGenerated",{bubbles:!0}):console.error("[generate_scene_video] Server error:",s.statusCode)}catch(s){console.error("[generate_scene_video] Request failed:",s)}finally{setTimeout(()=>{this.generating=!1,this.#l(!1),this.#c()},2e3)}}}confirmCost(){this.costConfirmedValue=!0,this.#s(this.costDialogTarget),this.costNotificationTypeValue&&Re.markAsShown(this.costNotificationTypeValue),this.buttonTarget.click()}confirmCost10s(){this.costConfirmed10sValue=!0,this.hasCostDialog10sTarget&&this.#s(this.costDialog10sTarget),this.costNotificationType10sValue&&Re.markAsShown(this.costNotificationType10sValue),this.buttonTarget.click()}cancelCost(){this.hasCostDialogTarget&&this.#s(this.costDialogTarget),this.hasCostDialog10sTarget&&this.#s(this.costDialog10sTarget)}#e(i){this.currentDurationValue=i.detail.duration}#t(){return this.currentDurationValue==="10"?this.costConfirmed10sValue:this.costConfirmedValue}#i(){this.currentDurationValue==="10"?this.hasCostDialog10sTarget?this.costDialog10sTarget.showModal():console.error("[generate_scene_video] 10s cost dialog target missing"):this.hasCostDialogTarget?this.costDialogTarget.showModal():console.error("[generate_scene_video] Cost dialog target missing")}#s(i){i.style.transition="none",i.close(),requestAnimationFrame(()=>{i.style.transition=""})}
393#r(){return this.guestValue===!0}#a(){return this.freeUserValue===!0}#n(i){let s=pe("main",this.application);s&&typeof s.openRegistrationModal=="function"&&s.openRegistrationModal(i)}#o(){let i=document.getElementById("become-premium-video-modal");i&&i.classList.remove("hidden")}#l(i){this.hasButtonTarget&&(this.buttonTarget.classList.toggle("opacity-50",i),this.buttonTarget.classList.toggle("cursor-not-allowed",i),this.buttonTarget.disabled=i),this.hasLabelTarget&&(this.labelTarget.textContent=i?this.loadingLabelValue:this.labelValue),this.hasIconTarget&&this.iconTarget.classList.toggle("animate-pulse",i)}#h(){return document.getElementById("loader")!==null}#c(){let i=this.#h()||this.generating;this.hasButtonTarget&&(this.buttonTarget.disabled=i,this.buttonTarget.classList.toggle("opacity-50",i),this.buttonTarget.classList.toggle("cursor-not-allowed",i))}#u(){this.#c()}#g(){let i=document.getElementById("messages");i&&(this.loaderObserver=new MutationObserver(()=>{this.#c()}),this.loaderObserver.observe(i,{childList:!0,subtree:!0}))}};var Xm=class extends u{static targets=["trigger","dropdown","durationTab"];static values={currentDuration:{type:String,default:"5"},preferenceUrl:String};connect(){this.#i(),this.boundCloseOnClickOutside=this.#t.bind(this)}disconnect(){document.removeEventListener("click",this.boundCloseOnClickOutside)}toggle(i){i.stopPropagation(),this.dropdownTarget.classList.contains("hidden")?(this.dropdownTarget.classList.remove("hidden"),document.addEventListener("click",this.boundCloseOnClickOutside)):this.#e()}async selectDuration(i){let s=i.currentTarget.dataset.duration;if(s===this.currentDurationValue)return;let r=this.currentDurationValue;this.currentDurationValue=s,this.#i(),document.dispatchEvent(new CustomEvent("roleplay-scene-video-duration-changed",{detail:{duration:s}}));try{let a=await ve(this.preferenceUrlValue,{body:JSON.stringify({name:"roleplay_video_duration",value:s}),contentType:"application/json"});if(!a.ok)throw new Error(`Failed to save duration preference: HTTP ${a.statusCode}`)}catch(a){console.error("[scene_video_settings] Failed to persist duration:",a),this.currentDurationValue=r,this.#i(),document.dispatchEvent(new CustomEvent("roleplay-scene-video-duration-changed",{detail:{duration:r}}))}}#e(){this.dropdownTarget.classList.add("hidden"),document.removeEventListener("click",this.boundCloseOnClickOutside)}#t(i){this.element.contains(i.target)||this.#e()}#i(){this.durationTabTargets.forEach(i=>{let s=i.dataset.duration===this.currentDurationValue;i.classList.toggle("bg-white/20",s),i.classList.toggle("text-white",s),i.classList.toggle("font-semibold",s),i.classList.toggle("text-grey-light/60",!s)})}};var Qm=class extends u{static targets=["button","notificationDot"];static outlets=["roleplay--gift-confirmation"];connect(){this.giftsLoaded=!1,this.#s(),this.#o(),this.boundHandleRenderComplete=this.#l.bind(this),document.addEventListener("render-complete",this.boundHandleRenderComplete),this.boundHandleBackToSelection=this.#t.b
393ind(this),document.addEventListener("roleplay--gift-confirmation:backToSelection",this.boundHandleBackToSelection),this.boundHandleFrameLoad=this.#i.bind(this),document.addEventListener("turbo:frame-load",this.boundHandleFrameLoad),this.#c()}disconnect(){document.removeEventListener("render-complete",this.boundHandleRenderComplete),document.removeEventListener("roleplay--gift-confirmation:backToSelection",this.boundHandleBackToSelection),document.removeEventListener("turbo:frame-load",this.boundHandleFrameLoad),this.loaderObserver&&this.loaderObserver.disconnect()}open(i){i.preventDefault(),!this.#n()&&(this.#h(),this.#r())}selectGift(i){let{giftId:s,giftName:r,giftPrice:a,giftImage:n}=i.params,l={id:s,name:r,price:a,image:n};this.#e(i.currentTarget,l),this.#a(),this.hasRoleplayGiftConfirmationOutlet&&this.roleplayGiftConfirmationOutlet.show(l)}#e(i,s){if(typeof window.mixpanel>"u"||!window.mixpanel.track)return;let r=i.closest("[data-category]"),a=i.closest("[data-controller~='gifts--tabs']");window.mixpanel.track("gift_selected",{gift_id:s.id,gift_name:s.name,token_cost:s.price,surface:"roleplay",category:r?r.dataset.category:null,catalog_version:a?a.getAttribute("data-gifts--tabs-catalog-version-value"):"control"})}#t(){this.#r()}#i(i){i.target.id==="roleplay-gifts-list"&&(this.giftsLoaded=!0,this.#o())}#s(){let i=document.getElementById("roleplay-gifts-list");i&&i.querySelector("[data-controller='roleplay--gifts']")&&(this.giftsLoaded=!0)}#r(){let i=document.getElementById("roleplay-gifts-modal");i&&i.showModal()}#a(){let i=document.getElementById("roleplay-gifts-modal");i&&i.close()}#n(){return document.getElementById("loader")!==null}#o(){let i=!this.giftsLoaded||this.#n();this.hasButtonTarget&&(this.buttonTarget.disabled=i)}#l(){this.#o()}#h(){this.hasNotificationDotTarget&&(this.notificationDotTarget.classList.contains("hidden")||(this.notificationDotTarget.classList.add("hidden"),Re.markAsShown("roleplay_gifts_dot_seen")))}#c(){let i=document.getElementById("messages");i&&(this.loaderObserver=new MutationObserver(()=>{this.#o()}),this.loaderObserver.observe(i,{childList:!0,subtree:!0}))}};var Jm=class extends u{static targets=["tab","panel"];static values={surface:String,catalogVersion:String};connect(){this.#e(this.#t(),!1)}select(i){this.#e(i.currentTarget.dataset.category,!0)}#e(i,s){i&&(this.tabTargets.forEach(r=>{let a=r.dataset.category===i;r.classList.toggle("bg-primary",a),r.classList.toggle("text-white",a),r.classList.toggle("text-grey-light",!a),r.setAttribute("aria-selected",a?"true":"false")}),this.panelTargets.forEach(r=>{r.classList.toggle("hidden",r.dataset.category!==i)}),s&&this.#i(i))}#t(){return(this.tabTargets.find(s=>s.getAttribute("aria-selected")==="true")||this.tabTargets[0])?.dataset.category}#i(i){typeof window.mixpanel>"u"||!window.mixpanel.track||window.mixpanel.track("gift_catalog_tab_viewed",{category:i,surface:this.surfaceValue,catalog_version:this.catalogVersionValue})}};var Zm=class extends u{static targets=["image","price","messageInput","sendButton"];static values={sendUrl:String};initialize(){this.selectedGift=null}show(i){this.selectedGift=i,this.#e(),this.element.showModal()}close(){this.#t(),this.element.close()}backToSelection(){this.close(),this.dispatch("backToSelection",{bubbles:!0})}async sendGift(){if(!this.selectedGift)return;let i=this.hasMessageInputTarget?this.messageInputTarget.value:"";this.#i();try{let s=new FormData;s.append("gift[gift_id]",this.selectedGift.id),s.append("gift[message]",i),(await H(this.sendUrlValue,{body:s,responseKind:"turbo-stream"})).ok&&(this.close(),this.#r(),document.dispatchEvent(new CustomEvent("gift:sent")))}finally{this.#s()}}#e(){this.hasImageTarget&&this.selectedGift.image&&(this.imageTarget.src=this.selectedGift.image,this.imageTarget.classList.remove("hidden")),this.hasPriceTarget&&(this.priceTarget.textContent=this.selectedGift.price),this.#t()}#t(){this.hasMessageInputTarget&&(this.messageInputTarget.value="",this.messageInputTarget.style.height="auto")}#i(){this.hasSendButtonTarget&&(this.sendButtonTarget.disabled=!0)}#s(){this.hasSendButtonTarget&&(this.sendButtonTarget.disabled=!1)}#r(){this.selectedGift=null,this.#t()}};var ep=class extends u{static targets=["baseXp","levelInput"];connect(){this.updatePlaceholders()}updatePlaceholders(){let i=this.baseXpTarget.value||"0";
393this.levelInputTargets.forEach(s=>{s.placeholder=`= Base XP (${i})`})}};var tp=class extends u{static targets=["checkbox","selectAll","toolbar","count","deletionReason","totalCount"];static values={approveUrl:String,deleteUrl:String};connect(){this.#i()}toggle(){this.#i()}toggleAll(){let i=this.selectAllTarget.checked;this.checkboxTargets.forEach(s=>{s.checked=i}),this.#i()}async submitBulkApprove(i){i.preventDefault();let s=this.#t();s.length!==0&&window.confirm(`Are you sure you want to approve ${s.length} selected items?`)&&await this.#e(this.approveUrlValue,{ids:s})}async submitBulkDelete(i){i.preventDefault();let s=this.#t();if(s.length===0)return;let r=this.deletionReasonTarget.value;if(!r){window.alert("Please select a deletion reason.");return}window.confirm(`Are you sure you want to DELETE ${s.length} selected users? This action is irreversible.`)&&await this.#e(this.deleteUrlValue,{ids:s,deletion_reason:r})}async#e(i,s){let r=this.checkboxTargets.length,a=new FormData;Object.entries(s).forEach(([l,d])=>{Array.isArray(d)?d.forEach(m=>a.append(`${l}[]`,m)):a.append(l,d)}),(await H(i,{body:a,responseKind:"turbo-stream"})).ok?(this.selectAllTarget.checked=!1,requestAnimationFrame(()=>{let l=r-this.checkboxTargets.length;this.#s(l),this.#i()})):window.alert("Something went wrong. Please refresh the page and try again.")}#t(){return this.checkboxTargets.filter(i=>i.checked).map(i=>i.value)}#i(){let i=this.#t().length,s=this.checkboxTargets.length;this.hasToolbarTarget&&(this.toolbarTarget.classList.toggle("hidden",i===0),this.toolbarTarget.classList.toggle("flex",i>0)),this.hasCountTarget&&(this.countTarget.textContent=`${i} selected`),this.hasSelectAllTarget&&(this.selectAllTarget.checked=s>0&&i===s,this.selectAllTarget.indeterminate=i>0&&i<s)}#s(i){if(!this.hasTotalCountTarget)return;let s=this.totalCountTarget.textContent.match(/\((\d+)\)/);if(!s)return;let r=Math.max(0,parseInt(s[1],10)-i);this.totalCountTarget.textContent=r>0?`(${r})`:""}};var ip=class extends u{static targets=["video"];connect(){navigator.connection?.saveData||(this.observer=new IntersectionObserver(i=>this.handleIntersection(i),{rootMargin:"100px"}),this.videoTargets.forEach(i=>this.observer.observe(i)),this.videoTargets.filter(i=>!i.paused).forEach(i=>this.#e(i)))}disconnect(){this.observer?.disconnect()}reveal(i){this.#e(i.currentTarget)}conceal(i){i.currentTarget.classList.add("opacity-0")}#e(i){i.classList.remove("opacity-0")}handleIntersection(i){i.forEach(s=>{s.isIntersecting?(this.loadOnce(s.target)||this.reloadIfDropped(s.target),s.target.play().catch(()=>{})):s.target.pause()})}reloadIfDropped(i){i.networkState!==i.NETWORK_LOADING&&(!i.error&&i.readyState>i.HAVE_NOTHING||i.load())}loadOnce(i){if(i.dataset.lazyVideoLoaded)return!1;if(i.dataset.lazyVideoLoaded="true",i.removeAttribute("autoplay"),i.dataset.src){let s=i.querySelector("source");s&&(s.src=i.dataset.src),delete i.dataset.src}else i.querySelectorAll("source[data-src]").forEach(s=>{s.src=s.dataset.src,delete s.dataset.src});return i.load(),!0}};var sp=class extends u{static values={url:String};connect(){this.impressionTrackedThisSession()||(this.observer=new IntersectionObserver(i=>{i.some(s=>s.isIntersecting)&&this.trackImpression()},{threshold:.5}),this.observer.observe(this.element))}disconnect(){this.disconnectObserver()}disconnectObserver(){this.observer&&(this.observer.disconnect(),this.observer=null)}async trackImpression(){this.disconnectObserver(),await this.trackEvent("impression")&&sessionStorage.setItem(this.sessionKey,"1")}trackClick(){this.trackEvent("click")}async trackEvent(i){if(!this.hasUrlValue)return!1;try{return(await H(this.urlValue,{body:JSON.stringify({event_type:i}),contentType:"application/json"})).ok}catch{return!1}}impressionTrackedThisSession(){return this.hasUrlValue&&sessionStorage.getItem(this.sessionKey)!==null}get sessionKey(){return`offer-impression-${this.urlValue}`}};var rp=class extends u{static outlets=["dialog"];static values={triggerUrl:String};open(i){let s=i.target.closest("a");if(this.#e(s)&&(i.preventDefault(),this.hasDialogOutlet)){let r=this.dialogOutlet.element.querySelector("turbo-frame[data-assistant-offer-modal-source]");r&&!r.hasAttribute("src")&&r.setAttribute("src",r.dataset.assistantOfferModalSource),this.dialogOutlet.open()}}#e(i){if(!i)return!1;
393let s=new URL(i.href,window.location.origin),r=new URL(this.triggerUrlValue,window.location.origin);return s.pathname===r.pathname&&s.search===r.search}};var ap=class extends u{static targets=["replyPreview","replyAuthor","replyBody","replyImageIcon","replyToMessageId","messageInput"];connect(){this.boundHandleMessageSent=this.handleMessageSent.bind(this),this.boundHandleReplySelected=this.handleReplySelected.bind(this),document.addEventListener("gen-ai--message-form:message-sent",this.boundHandleMessageSent),document.addEventListener("lifelike:reply-selected",this.boundHandleReplySelected),this.setBrowserTimezoneCookie()}disconnect(){document.removeEventListener("gen-ai--message-form:message-sent",this.boundHandleMessageSent),document.removeEventListener("lifelike:reply-selected",this.boundHandleReplySelected)}handleMessageSent(){this.clearReply(),setTimeout(()=>{let i=pe("gen-ai--message-form",this.application);i&&(i.cancelLoader(),i.hideAllRegenerateImageButtons(),i.hasSubmitted=!1,i.enableSubmitButton(),i.toggleSendButton())},0)}handleReplySelected(i){if(!this.hasReplyPreviewTarget||!this.hasReplyToMessageIdTarget)return;let s=!!i.detail.isImage;this.replyToMessageIdTarget.value=i.detail.messageId,this.replyAuthorTarget.textContent=i.detail.author,this.replyBodyTarget.textContent=s?"":i.detail.preview,this.hasReplyImageIconTarget&&this.replyImageIconTarget.classList.toggle("hidden",!s),this.replyPreviewTarget.classList.remove("hidden"),this.hasMessageInputTarget&&this.messageInputTarget.focus()}clearReply(){this.hasReplyToMessageIdTarget&&(this.replyToMessageIdTarget.value=""),this.hasReplyPreviewTarget&&this.replyPreviewTarget.classList.add("hidden")}setBrowserTimezoneCookie(){try{let i=Intl.DateTimeFormat().resolvedOptions().timeZone;i&&(document.cookie=`browser_timezone=${encodeURIComponent(i)};path=/;max-age=${3600*24*30};SameSite=Lax`)}catch{}}};var np=class extends u{static targets=["replyPreview","replyAuthor","replyBody","replyImageIcon","replyToMessageId","messageInput"];connect(){this.boundClearReply=this.clearReply.bind(this),this.boundHandleReplySelected=this.handleReplySelected.bind(this),document.addEventListener("gen-ai--message-form:message-sent",this.boundClearReply),document.addEventListener("lifelike:reply-selected",this.boundHandleReplySelected)}disconnect(){document.removeEventListener("gen-ai--message-form:message-sent",this.boundClearReply),document.removeEventListener("lifelike:reply-selected",this.boundHandleReplySelected)}handleReplySelected(i){if(!this.hasReplyPreviewTarget||!this.hasReplyToMessageIdTarget)return;let s=!!i.detail.isImage;this.replyToMessageIdTarget.value=i.detail.messageId,this.replyAuthorTarget.textContent=i.detail.author,this.replyBodyTarget.textContent=s?"":i.detail.preview,this.hasReplyImageIconTarget&&this.replyImageIconTarget.classList.toggle("hidden",!s),this.replyPreviewTarget.classList.remove("hidden"),this.hasMessageInputTarget&&this.messageInputTarget.focus()}clearReply(){this.hasReplyToMessageIdTarget&&(this.replyToMessageIdTarget.value=""),this.hasReplyPreviewTarget&&this.replyPreviewTarget.classList.add("hidden")}};var op=class extends u{static targets=["menu","likeButton","dislikeButton","detailsDialog","detailsForm","likeReasons","dislikeReasons","deleteAudioDialog","deleteMediaDialog"];static values={messageId:Number,author:String,preview:String,previewImage:Boolean,feedbackUrl:String,feedbackReaction:String,body:String,audioUrl:String,deleteAudioUrl:String,deleteMediaUrl:String};connect(){this.boundClose=this.close.bind(this),this.boundCloseOnEscape=this.closeOnEscape.bind(this)}disconnect(){this.#v(),this.#p(),this.#o(),this.transcribeTimeout&&window.clearTimeout(this.transcribeTimeout),this.deleteAudioTimeout&&window.clearTimeout(this.deleteAudioTimeout)}openFromContextMenu(i){i.preventDefault(),this.open(i.clientX,i.clientY)}startLongPress(i){this.suppressNextClick=!1,i.pointerType!=="mouse"&&(this.longPressStartX=i.clientX,this.longPressStartY=i.clientY,this.#r(),this.longPressTimer=window.setTimeout(()=>{this.suppressNextClick=!0,this.#o(),this.open(this.longPressStartX,this.longPressStartY)},450))}cancelLongPress(){this.#p(),this.#o()}cancelLongPressOnMove(i){if(!this.longPressTimer)return;let s=Math.abs(i.clientX-this.longPressStartX),r=Math.abs(i.clientY-this.longPressStartY);(s>10||r>10)&&(this.#p(),this.#o())}suppressClick(i){this.suppressNextClick&&(i.preventDefault(),i.stopImmediatePropagation(),this.suppressNextClick=!1)}stopPropagation(i){i.stopPropagation()}open(i,s){this.hasMenuTarget&&(this.#f(),this.menuTarget.classList.remove("hidden"),this.#b(),this.#T()?this.#u(i,s):this.#g())}close(i){this.hasMenuTarget&&(i&&this.menuTarget.contains(i.target)||(this.menuTarget.classList.add("hidden"),this.#v(),this.constructor.openController===this&&(this.constructor.openController=null)))}closeOnEscape(i){i.key==="Escape"&&this.close()}reply(i){i.stopPropagation(),document.dispatchEvent(new CustomEvent("lifelike:reply-selected",{detail:{messageId:this.messageIdValue,author:this.authorValue,preview:this.previewValue,isImage:this.previewImageValue}})),this.close()}
393async turnIntoAudio(i){if(i.stopPropagation(),this.close(),!this.hasAudioUrlValue||this.transcribePending)return;this.transcribePending=!0,this.element.classList.add("animate-pulse");let s=!1;try{s=(await Ee(this.audioUrlValue,{responseKind:"turbo-stream"})).response?.status===204}catch{}s?this.transcribeTimeout=window.setTimeout(()=>this.#e(),15e4):this.#e()}#e(){this.element.classList.remove("animate-pulse"),this.transcribePending=!1}deleteAudio(i){i.stopPropagation(),this.close(),!(!this.hasDeleteAudioUrlValue||!this.hasDeleteAudioDialogTarget)&&this.deleteAudioDialogTarget.showModal()}closeDeleteAudio(){this.hasDeleteAudioDialogTarget&&this.deleteAudioDialogTarget.close()}async confirmDeleteAudio(i){if(i.stopPropagation(),this.closeDeleteAudio(),!this.hasDeleteAudioUrlValue||this.deleteAudioPending)return;this.deleteAudioPending=!0,this.element.classList.add("animate-pulse");let s=!1;try{s=(await Ye(this.deleteAudioUrlValue,{responseKind:"turbo-stream"})).response?.status===204}catch{}s?this.deleteAudioTimeout=window.setTimeout(()=>this.#t(),15e3):this.#t()}#t(){this.element.classList.remove("animate-pulse"),this.deleteAudioPending=!1}deleteMedia(i){i.stopPropagation(),this.close(),!(!this.hasDeleteMediaUrlValue||!this.hasDeleteMediaDialogTarget)&&this.deleteMediaDialogTarget.showModal()}closeDeleteMedia(){this.hasDeleteMediaDialogTarget&&this.deleteMediaDialogTarget.close()}async confirmDeleteMedia(i){if(i.stopPropagation(),this.closeDeleteMedia(),!this.hasDeleteMediaUrlValue||this.deleteMediaPending)return;this.deleteMediaPending=!0,this.element.classList.add("animate-pulse");let s=!1;try{let r=await Ye(this.deleteMediaUrlValue,{responseKind:"turbo-stream"});s=[204,404].includes(r.response?.status)}catch{}s?this.element.remove():(this.element.classList.remove("animate-pulse"),this.deleteMediaPending=!1)}async copy(i){if(i.stopPropagation(),this.close(),!(!this.hasBodyValue||this.bodyValue===""))try{await navigator.clipboard.writeText(this.bodyValue)}catch{}}jumpToReply(i){i.preventDefault(),i.stopPropagation();let s=i.params.replyToMessageId;if(!s)return;let r=document.getElementById(`message_id_${s}`);r&&(r.scrollIntoView({behavior:"smooth",block:"center"}),this.#s(r))}async toggleFeedback(i){if(i.stopPropagation(),!this.hasFeedbackUrlValue)return;let s=i.currentTarget.dataset.feedbackReaction,r=this.feedbackReactionValue;if(r===s){this.feedbackReactionValue="",this.#d(),this.close(),this.closeFeedbackDetails(),await this.#i(()=>this.#n(r));return}this.feedbackReactionValue=s,this.#d(),this.close(),this.#l(s),this.pendingFeedbackRequest=this.#i(()=>this.#a(s,r))}#i(i){let s=(this.feedbackRequestChain||Promise.resolve()).then(i,i);return this.feedbackRequestChain=s,s}async submitFeedbackDetails(i){if(i.preventDefault(),!this.hasFeedbackUrlValue||!this.hasDetailsFormTarget)return;let s=new FormData(this.detailsFormTarget),r=s.getAll("reasons[]"),a=s.get("description")||"",n=[...r,a].filter(Boolean).join(", ");if(this.pendingFeedbackRequest){let d=await this.pendingFeedbackRequest;if(this.pendingFeedbackRequest=null,!d?.ok){this.#h();return}}(await ve(this.feedbackUrlValue,{body:{polymorphic_feedback:{description:n}},responseKind:"json"})).ok?this.closeFeedbackDetails():this.#h()}closeFeedbackDetails(){this.hasDetailsDialogTarget&&this.detailsDialogTarget.close(),this.hasDetailsFormTarget&&this.detailsFormTarget.reset()}openReactionPicker(i){i.stopPropagation(),this.close(),this.element.querySelector("[data-messages--lifelike--reaction-picker-target='hoverButton']")?.click()}#s(i){let s=i.style.boxShadow,r=i.style.transition;i.style.transition="box-shadow 200ms ease",i.style.boxShadow="0 0 0 2px rgba(167, 139, 250, 0.9)",window.setTimeout(()=>{i.style.boxShadow=s,i.style.transition=r},1400)}#r(){this.pressFeedbackActive||(this.previousBoxShadow=this.element.style.boxShadow,this.previousTransition=this.element.style.transition,this.element.style.transition="box-shadow 120ms ease",this.element.style.boxShadow="0 0 0 1px rgba(255, 255, 255, 0.16), 0 0 18px rgba(167, 139, 250, 0.18)",this.pressFeedbackActive=!0)}async#a(i,s){try{let r=await H(this.feedbackUrlValue,{body:{polymorphic_feedback:{reaction:i}},responseKind:"json"});return r.ok||(this.feedbackReactionValue=s||"",this.#d(),this.closeFeedbackDetail
393s()),r}catch{return this.feedbackReactionValue=s||"",this.#d(),this.closeFeedbackDetails(),null}}async#n(i){try{(await Ye(this.feedbackUrlValue,{responseKind:"json"})).ok||(this.feedbackReactionValue=i,this.#d())}catch{this.feedbackReactionValue=i,this.#d()}}#o(){this.pressFeedbackActive&&(this.element.style.boxShadow=this.previousBoxShadow||"",this.element.style.transition=this.previousTransition||"",this.pressFeedbackActive=!1)}#l(i){this.hasDetailsDialogTarget&&(this.hasDetailsFormTarget&&this.detailsFormTarget.reset(),this.#h(),this.#c(i),this.detailsDialogTarget.showModal())}#h(){let i=this.detailsDialogTarget.querySelector("[data-controller~='loading-button-state']");i&&this.application.getControllerForElementAndIdentifier(i,"loading-button-state")?.resetButtonState()}#c(i){!this.hasLikeReasonsTarget||!this.hasDislikeReasonsTarget||(this.likeReasonsTarget.classList.toggle("hidden",i!=="like"),this.dislikeReasonsTarget.classList.toggle("hidden",i!=="dislike"))}#u(i,s){this.menuTarget.style.left="auto",this.menuTarget.style.right="auto",this.menuTarget.style.top="auto",this.menuTarget.style.bottom="auto";let a=this.menuTarget.getBoundingClientRect(),n=Math.min(i,window.innerWidth-a.width-8),l=Math.min(s,window.innerHeight-a.height-8);this.menuTarget.style.left=`${Math.max(8,n)}px`,this.menuTarget.style.right="auto",this.menuTarget.style.top=`${Math.max(8,l)}px`,this.menuTarget.style.bottom="auto"}#g(){this.menuTarget.style.left="12px",this.menuTarget.style.right="12px",this.menuTarget.style.top="auto",this.menuTarget.style.bottom="12px"}#d(){this.#m(this.likeButtonTarget,"like"),this.#m(this.dislikeButtonTarget,"dislike")}#m(i,s){this.feedbackReactionValue===s?i.classList.add("text-[#A78BFA]"):i.classList.remove("text-[#A78BFA]")}#f(){this.constructor.openController&&this.constructor.openController!==this&&this.constructor.openController.close(),this.constructor.openController=this}#p(){this.longPressTimer&&(window.clearTimeout(this.longPressTimer),this.longPressTimer=null)}#b(){this.documentListenersAdded||(document.addEventListener("click",this.boundClose),document.addEventListener("keydown",this.boundCloseOnEscape),this.documentListenersAdded=!0)}#v(){this.documentListenersAdded&&(document.removeEventListener("click",this.boundClose),document.removeEventListener("keydown",this.boundCloseOnEscape),this.documentListenersAdded=!1)}#T(){return window.matchMedia("(hover: hover)").matches||window.matchMedia("(min-width: 1024px)").matches}};var YM=10,lp=class extends u{static targets=["picker","hoverButton","bubble"];static values={createUrl:String,deleteUrl:String,longPressDelay:{type:Number,default:450}};connect(){this.handleOutsideClick=this.handleOutsideClick.bind(this),this.handleExternalClose=this.handleExternalClose.bind(this),this.suppressClickAfterLongPress=this.suppressClickAfterLongPress.bind(this),document.addEventListener("click",this.handleOutsideClick),document.addEventListener("lifelike:reaction:close",this.handleExternalClose),this.element.addEventListener("click",this.suppressClickAfterLongPress,!0)}disconnect(){document.removeEventListener("click",this.handleOutsideClick),document.removeEventListener("lifelike:reaction:close",this.handleExternalClose),this.element.removeEventListener("click",this.suppressClickAfterLongPress,!0),this.#t({notify:!0})}pressStart(i){this.longPressFired=!1,!this.#h()&&(this.flowOpen||(this.#n(),this.pressStartPoint=this.#l(i),this.longPressTimer=setTimeout(()=>{this.longPressTimer=null,this.longPressFired=!0,this.#e()},this.longPressDelayValue)))}pressEnd(i){this.#n(),this.longPressFired&&(i.preventDefault(),this.#r(),clearTimeout(this.longPressResetTimer),this.longPressResetTimer=setTimeout(()=>{this.longPressFired=!1},400))}pressMove(i){if(!this.longPressTimer||!this.pressStartPoint)return;let s=this.#l(i);if(!s)return;let r=s.x-this.pressStartPoint.x,a=s.y-this.pressStartPoint.y;Math.hypot(r,a)>YM&&this.#n()}suppressContextMenu(i){this.#h()||this.selectable||i.preventDefault()}suppressClickAfterLongPress(i){if(i.isTrusted){if(this.longPressFired){i.preventDefault(),i.stopPropagation(),this.longPressFired=!1,clearTimeout(this.longPressResetTimer);return}this.hasPickerTarget&&this.pickerTarget.contains(i.target)||i.target.closest?.('[data-action*="removeReaction"]')||this.flowOpen&&(i.preventDefault(),i.stopPropagation(),this.#t({notify:!0}))}}handleExternalClose(){this.flowOpen?this.#t({notify:!1}):this.hasPickerTarget&&!this.pickerTarget.classList.contains("scale-0")&&this.closePicker()}togglePicker(i){i.stopPropagation();let s=!this.pickerTarget.classList.contains("scale-0");document.querySelectorAll("[data-messages--lifelike--reaction-picker-target='picker']").forEach(r=>{r!==this.pickerTarget&&(r.classList.add("scale-0","opacity-0","pointer-events-none"),r.classList.remove("scale-100","opacity-100","pointer-events-auto"))}),s?this.flowOpen?this.#t({notify:!0}):this.closePicker():(this.positionPicker(),this.openPicker())}positionPicker(){let i=this.pickerTarget,s=this.hoverButtonTarget,r=i.offsetParent||i.parentElement,a=this.element.closest("#messages"),n=s.getBoundingClientRect(),l=r.getBoundingClientRect(),d=a?.getBoundingClientRect()||l,m=i.offsetWidth,v=i.offsetHeight,E=8,D=n.top-v-E>=d.top+E,R=D?n.top-l.top-v-E:n.bottom-l.top+E,W=d.left-l.left+E,Q=d.right-l.left-m-E,X=n.right-l.left-m,ie=Math.max(W,Math.min(X,Q));i.style.bottom="auto",i.style.right="auto",i.style.left=`${ie}px`,i.style.top=`${R}px`,i.style.transformOrigin=D?"bottom right":"top right"}openPicker(){this.element.style.zIndex="90",this.pickerTarget.classList.remove("scale-0","opacity-0","pointer-events-none"),this.pickerTarget.classList.add("scale-100","opacity-100","pointer-events-auto")}closePicker(){this.hasPickerTarget&&(this.element.style.zIndex="",this.pickerTarget.classList.add("scale-0","opacity-0","pointer-events-none"),this.pickerTarget.classList.remove("scale-100","opacity-100","pointer-events-auto"))}handleOutsideClick(i){if(i.isTrusted&&this.hasPickerTarget&&!this.pickerTarget.classList.contains("scale-0")){let s=this.pickerTarget.contains(i.target),r=this.hasHoverButtonTarget&&this.hoverButtonTarget.contains(i.target);!s&&!r&&(this.flowOpen?this.#t({notify:!0}):this.closePicker())}}async react(i){let s=i.currentTarget.dataset.emoji;this.#t({notify:!0}),await H(this.createUrlValue,{body:{emoji:s},responseKind:"turbo-stream"})}async removeReaction(){await Ye(this.deleteUrlValue,{responseKind:"turbo-stream"})}#e(){document.dispatchEvent(new CustomEvent("lifelike:reaction:close")),window.getSelection?.()?.removeAllRanges?.(),this.#o(),this.openPicker(),this.flowOpen=!0,this.#i(),document.dispatchEvent(new CustomEvent("lifelike:reaction:open"))}#t({notify:i}){this.#n(),clearTimeout(this.longPressResetTimer),this.#a(),this.#s(),this.closePicker(),this.flowOpen&&i&&document.dispatchEvent(new CustomEvent("lifelike:reaction:close")),this.flowOpen=!1,this.longPressFired=!1}#i(){this.scrollLockEl=this.element.closest("#messages"),this.scrollLockEl?.classList.add("overflow-hidden"),this.scrollLockEl?.classList.remove("overflow-y-auto")}#s(){this.scrollLockEl?.classList.add("overflow-y-auto"),this.scrollLockEl?.classList.remove("overflow-hidden"),this.scrollLockEl=null}#r(){this.hasBubbleTarget&&(this.bubbleTarget.classList.remove("select-none"),this.bubbleTarget.style.webkitTouchCallout="default",this.selectable=!0)}#a(){this.hasBubbleTarget&&(this.bubbleTarget.classList.add("select-none"),this.bubbleTarget.style.webkitTouchCallout="none",window.getSelection?.()?.removeAllRanges?.()),this.selectable=!1}#n(){this.longPressTimer&&(clearTimeout(this.longPressTimer),this.longPressTimer=null)}#o(){let i=this.pickerTarget,s=i.offsetParent||i.parentElement,r=this.element.closest("#messages"),a=s.getBoundingClientRect(),n=r?.getBoundingClientRect()||a,l=i.offsetWidth,d=i.offsetHeight,m=8,v=a.top-d-m>=n.top+m,E=v?a.top-d-m:a.bottom+m,D=n.top+m,R=n.bottom-d-m,Q=Math.max(D,Math.min(E,R))-a.top,X=n.left-a.left+m,ie=n.right-a.left-l-m,ce=(s.offsetWidth-l)/2,oe=Math.max(X,Math.min(ce,ie));i.style.bottom="auto",i.style.right="auto",i.style.left=`${oe}px`,i.style.top=`${Q}
393px`,i.style.transformOrigin=v?"bottom center":"top center"}#l(i){let s=i.touches?.[0]||i.changedTouches?.[0];return s?{x:s.clientX,y:s.clientY}:null}#h(){return window.matchMedia("(hover: hover)").matches}};var hp=class extends u{static targets=["overlay"];connect(){this.show=this.show.bind(this),this.hide=this.hide.bind(this),document.addEventListener("lifelike:reaction:open",this.show),document.addEventListener("lifelike:reaction:close",this.hide)}disconnect(){document.removeEventListener("lifelike:reaction:open",this.show),document.removeEventListener("lifelike:reaction:close",this.hide)}show(){this.hasOverlayTarget&&this.overlayTarget.classList.remove("hidden")}hide(){this.hasOverlayTarget&&this.overlayTarget.classList.add("hidden")}requestClose(){document.dispatchEvent(new CustomEvent("lifelike:reaction:close"))}};var cp=class extends u{openGifts(i){i.preventDefault();let s=document.getElementById("lifelike-gifts-modal");s&&s.showModal()}};var dp=class extends u{static targets=["image","price","sendButton","giftName","messageInput"];static values={sendUrl:String};initialize(){this.selectedGift=null}show(i){this.selectedGift=i,this.#e(),this.element.showModal()}close(){this.#t(),this.element.close()}backToSelection(){this.close();let i=document.getElementById("lifelike-gifts-modal");i&&i.showModal()}async sendGift(){if(!this.selectedGift)return;let i=this.hasMessageInputTarget?this.messageInputTarget.value:"";this.#i();try{let s=new FormData;if(s.append("gift[gift_id]",this.selectedGift.id),s.append("gift[message]",i),(await H(this.sendUrlValue,{body:s,responseKind:"turbo-stream"})).ok){this.close(),this.selectedGift=null;let a=document.querySelector("[id^='lifelike-gift-banner-']");a&&(a.innerHTML="")}}finally{this.#s()}}#e(){this.hasImageTarget&&this.selectedGift.image&&(this.imageTarget.src=this.selectedGift.image,this.imageTarget.classList.remove("hidden")),this.hasPriceTarget&&(this.priceTarget.textContent=this.selectedGift.price),this.hasGiftNameTarget&&(this.giftNameTarget.textContent=this.selectedGift.name),this.#t()}#t(){this.hasMessageInputTarget&&(this.messageInputTarget.value="",this.messageInputTarget.style.height="auto")}#i(){this.hasSendButtonTarget&&(this.sendButtonTarget.disabled=!0)}#s(){this.hasSendButtonTarget&&(this.sendButtonTarget.disabled=!1)}};var up=class extends u{static outlets=["lifelike--gift-confirmation"];selectGift(i){let{giftId:s,giftName:r,giftPrice:a,giftImage:n}=i.params,l={id:s,name:r,price:a,image:n};this.#e(i.currentTarget,l),this.#t(),this.hasLifelikeGiftConfirmationOutlet&&this.lifelikeGiftConfirmationOutlet.show(l)}#e(i,s){if(typeof window.mixpanel>"u"||!window.mixpanel.track)return;let r=i.closest("[data-category]"),a=i.closest("[data-controller~='gifts--tabs']");window.mixpanel.track("gift_selected",{gift_id:s.id,gift_name:s.name,token_cost:s.price,surface:"lifelike",category:r?r.dataset.category:null,catalog_version:a?a.getAttribute("data-gifts--tabs-catalog-version-value"):"control"})}#t(){let i=document.getElementById("lifelike-gifts-modal");i&&i.close()}};var nb={low:"translate-x-0",medium:"translate-x-full",high:"translate-x-[200%]"},XM="text-white",QM="text-grey-light/70",gp="proactive_media_frequency",JM="(min-width: 40rem)",ob=8,ZM=160,mp=class extends u{static targets=["dropdown","panel","setting","error","frequencyThumb","frequencyOption"];static values={updateUrl:String,errorMessage:String,openedEvent:String};connect(){this.boundCloseOnClickOutside=this.closeOnClickOutside.bind(this),this.hasDropdownTarget&&this.close()}disconnect(){document.removeEventListener("click",this.boundCloseOnClickOutside),this.#t(),this.errorTimeout&&clearTimeout(this.errorTimeout)}toggle(i){i.stopPropagation(),this.dropdownTarget.classList.contains("hidden")?(this.dropdownTarget.classList.remove("hidden"),this.#e(),document.addEventListener("click",this.boundCloseOnClickOutside),this.hasOpenedEventValue&&this.openedEventValue!==""&&document.dispatchEvent(new CustomEvent(this.openedEventValue))):this.close()}async update(i){let s=i.currentTarget,r=s.dataset.settingName,a=!s.checked;this.hideError();try{let n=await ve(this.updateUrlValue,{body:JSON.stringify({[r]:s.checked}),contentType:"application/json"});if(!n.ok)throw new Error(`Failed to save lifelike setting: HTTP ${n.statusCode}`);let l=await n.json;
393if(!(r in l))throw new Error(`Lifelike setting ${r} not accepted`)}catch{s.checked=a,this.showError()}}async updateFrequency(i){let s=i.currentTarget.dataset.frequencyValue,r=this.#h();if(s===r)return;let a=this.frequencyRequestId=(this.frequencyRequestId||0)+1;this.#c(s),this.hideError();try{let n=await ve(this.updateUrlValue,{body:JSON.stringify({[gp]:s}),contentType:"application/json"});if(!n.ok)throw new Error(`Failed to save lifelike frequency: HTTP ${n.statusCode}`);let l=await n.json;if(!(gp in l))throw new Error(`Lifelike setting ${gp} not accepted`);a===this.frequencyRequestId&&this.#c(l[gp])}catch{a===this.frequencyRequestId&&(this.#c(r),this.showError())}}showError(){this.hasErrorTarget&&(this.errorTarget.textContent=this.errorMessageValue,this.errorTarget.classList.remove("hidden"),this.errorTimeout&&clearTimeout(this.errorTimeout),this.errorTimeout=setTimeout(()=>this.hideError(),4e3))}hideError(){this.hasErrorTarget&&this.errorTarget.classList.add("hidden")}close(){this.dropdownTarget.classList.add("hidden"),this.#t(),this.#l(),document.removeEventListener("click",this.boundCloseOnClickOutside)}closeOnClickOutside(i){this.element.contains(i.target)||this.close()}#e(){this.placementObserver||=new ResizeObserver(this.#i);let i=this.element.parentElement;i&&(this.placementObserver.observe(i),Array.from(i.children).forEach(s=>this.placementObserver.observe(s))),this.#o().forEach(s=>this.placementObserver.observe(s)),window.addEventListener("resize",this.#i),this.#i()}#t(){this.placementObserver?.disconnect(),window.removeEventListener("resize",this.#i),this.placementSignature=null}#i=()=>{let i=this.#n(),s=this.#s(),r=`${i.top}|${i.left}|${i.right}|${s.left}|${s.bottom}`;if(r===this.placementSignature)return;this.placementSignature=r;let a=Math.round(window.matchMedia(JM).matches?this.#r(s,i):this.#a(s));if(this.dropdownTarget.style.transform=a===0?"":`translateX(${a}px)`,this.hasPanelTarget){let n=s.bottom-i.top-ob;this.panelTarget.style.maxHeight=`${Math.max(Math.round(n),ZM)}px`}};#s(){let i=this.element.getBoundingClientRect(),s=i.left+this.dropdownTarget.offsetLeft,r=this.dropdownTarget.offsetWidth;return{left:s,right:s+r,width:r,bottom:i.top+this.dropdownTarget.offsetTop+this.dropdownTarget.offsetHeight}}#r(i,s){let r=s.left+ob-i.left;if(r>0)return r;let a=i.right-(s.right-ob);return a>0?-a:0}#a(i){return(document.documentElement.clientWidth-i.width)/2-i.left}#n(){let i={top:0,left:0,right:document.documentElement.clientWidth};return this.#o().forEach(s=>{let{overflowX:r,overflowY:a}=window.getComputedStyle(s),n=s.getBoundingClientRect();a!=="visible"&&(i.top=Math.max(i.top,n.top)),r!=="visible"&&(i.left=Math.max(i.left,n.left),i.right=Math.min(i.right,n.right))}),i}#o(){let i=[],s=this.dropdownTarget.parentElement;for(;s&&s!==document.body;){let{overflowX:r,overflowY:a}=window.getComputedStyle(s);(r!=="visible"||a!=="visible")&&i.push(s),s=s.parentElement}return i}#l(){this.dropdownTarget.style.transform="",this.hasPanelTarget&&(this.panelTarget.style.maxHeight="")}#h(){return this.frequencyOptionTargets.find(s=>s.getAttribute("aria-checked")==="true")?.dataset.frequencyValue??"low"}#c(i){if(this.hasFrequencyThumbTarget){this.frequencyThumbTarget.classList.remove(...Object.values(nb));let s=nb[i]??nb.low;this.frequencyThumbTarget.classList.add(s)}this.frequencyOptionTargets.forEach(s=>{let r=s.dataset.frequencyValue===i;s.setAttribute("aria-checked",r),s.classList.toggle(XM,r),s.classList.toggle(QM,!r)})}};var Fa=8,pp=class extends u{static targets=["tooltip","arrow"];connect(){this.boundCloseOnOutsideClick=this.closeOnOutsideClick.bind(this),this.boundShowOnHover=this.showOnHover.bind(this),this.boundHideOnHover=this.hideOnHover.bind(this),this.boundReposition=this.reposition.bind(this),this.hideTimeout=null,this.hasTooltipTarget&&(this.tooltip=this.tooltipTarget,this.arrow=this.hasArrowTarget?this.arrowTarget:null,document.body.appendChild(this.tooltip)),this.element.addEventListener("mouseenter",this.boundShowOnHover),this.element.addEventListener("mouseleave",this.boundHideOnHover)}disconnect(){this.clearHideTimeout(),document.removeEventListener("click",this.boundCloseOnOutsideClick),window.removeEventListener("scroll",this.boundReposition,!0),window.removeEventListener("resize",this.boundReposition),this.element.removeEventListener("mouseenter",this.boundShowOnHover),this.element.removeEventListener("mouseleave",this.boundHideOnHover),this.tooltip&&this.tooltip.parentNode===document.body&&this.tooltip.remove()}toggle(i){this.supportsHover()||(i.preventDefault(),i.stopPropagation(),this.isOpen()?this.close():this.open())}open(){this.tooltip&&(this.positionTooltip(),this.tooltip.classList.remove("opacity-0","invisible"),this.tooltip.classList.add("opacity-100","visible"),window.addEventListener("scroll",this.boundReposition,!0),window.addEventListener("resize",this.boundReposition),this.supportsHover()||(document.addEventListener("click",this.boundCloseOnOutsideClick),this.clearHideTimeout(),this.hideTimeout=window.setTimeout(()=>this.close(),1800)))}close(){this.tooltip&&(this.tooltip.classList.remove("opacity-100","visible"),this.tooltip.classList.add("opacity-0","invisible"),window.removeEventListener("scroll",this.boundReposition,!0),window.removeEventListener("resize",this.boundReposition),this.clearHideTimeout(),document.removeEventListener("click",this.boundCloseOnOutsideClick))}showOnHover(){this.supportsHover()&&this.open()}hideOnHover(){this.supportsHover()&&this.close()}reposition(){this.isOpen()&&this.positionTooltip()}positionTooltip(){let i=this.element.getBoundingClientRect(),s=window.innerHeight-i.top+Fa;this.tooltip.style.bottom=`${s}px`;let r=this.tooltip.offsetWidth/2,a=i.left+i.width/2,n=Math.min(Math.max(a,Fa+r),window.innerWidth-Fa-r);if(this.tooltip.style.left=`${n}px`,this.arrow){let l=this.arrow.offsetWidth,d=a-(n-r)-l/2,m=this.tooltip.offsetWidth-l-Fa;this.arrow.style.marginLeft=`${Math.min(Math.max(d,Fa),m)}px`,this.arrow.style.marginRight="0"}}closeOnOutsideClick(i){!this.element.contains(i.target)&&!this.tooltip.contains(i.target)&&this.close()}isOpen(){return this.tooltip&&this.tooltip.classList.contains("visible")}supportsHover(){return window.matchMedia("(hover: hover)").matches}clearHideTimeout(){this.hideTimeout&&(window.clearTimeout(this.hideTimeout),this.hideTimeout=null)}};var k0=1,e_=8,fp=class extends u{static targets=["indicator"];static values={timezone:String,forceOnline:{type:Boolean,default:!1},forceOffline:{type:Boolean,default:!1},lastSeen:{type:String,default:""},onlineLabel:{type:String,default:"Online"},seenPrefix:{type:String,default:"seen"}};connect(){this.update(),this.interval=setInterval(()=>this.update(),6e4),this.morphHandler=()=>this.update(),this.element.addEventListener("turbo:morph-element",this.morphHandler)}disconnect(){clearInterval(this.interval),this.element.removeEventListener("turbo:morph-element",this.morphHandler)}update(){if(this.forceOnlineValue){this.showOnline();return}if(this.forceOfflineValue){this.showOfflineWithTime(this.lastSeenValue);return}let i=this.nowInUserTimezone(),s=i.getHours();s>=k0&&s<e_?this.showOfflineNightTime(i):this.showOnline()}showOnline(){this.renderStatus(this.onlineLabelValue,"bg-green-500","text-green-400")}showOfflineWithTime(i){this.renderStatus(`${this.seenPrefixValue} ${i}`,"bg-gray-500","text-white/40")}showOfflineNightTime(i){let s=new Date(i);s.setHours(k0,0,0,0);let r=s.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"});this.showOfflineWithTime(r)}nowInUserTimezone(){let i=this.timezoneValue||"UTC",s=new Date().toLocaleStr
393ing("en-US",{timeZone:i});return new Date(s)}renderStatus(i,s,r){this.indicatorTarget.replaceChildren(this.buildStatusElement(i,s,r))}buildStatusElement(i,s,r){let a=document.createElement("span");a.className="flex items-center gap-1";let n=document.createElement("span");n.className=`w-2 h-2 rounded-full ${s}`,n.setAttribute("role","img"),n.setAttribute("aria-label",i);let l=document.createElement("span");return l.className=`hidden lg:inline text-[10px] lg:text-xs whitespace-nowrap ${r}`,l.textContent=i,a.append(n,l),a}};function x0(){return document._lifelikeDelayedState||(document._lifelikeDelayedState={queue:[],processing:!1}),document._lifelikeDelayedState}function t_(){document._lifelikeDelayedState={queue:[],processing:!1},hb()}document.addEventListener("turbo:before-visit",t_);function i_(i){let s=x0();s.queue.push(i),s.processing||I0()}function I0(){let i=x0();if(i.queue.length===0){i.processing=!1,hb();return}i.processing=!0;let{element:s,delay:r}=i.queue.shift();s_(),lb(),setTimeout(()=>{hb(),s.classList.remove("hidden"),lb(),i.queue.length>0&&(A0(),lb()),I0()},r)}function lb(){requestAnimationFrame(()=>je())}function s_(){document.getElementById("lifelike-typing-indicator")||A0()}function A0(){if(document.getElementById("lifelike-typing-indicator"))return;let s=document.getElementById("messages-list");if(!s)return;let r=document.createElement("div");r.id="lifelike-typing-indicator",r.className="py-2",r.innerHTML=`
394    <div class="justify-start items-start gap-2.5 inline-flex slow-fade py-2">
395      <div class="justify-start items-start gap-3 flex">
396        <div class="flex-col justify-start items-start gap-[9px] inline-flex">
397          <div class="px-8 py-3 bg-[#252525] rounded-tl-3xl rounded-tr-3xl rounded-bl-[4px] rounded-br-3xl justify-start items-start inline-flex">
398            <div class="snippet" data-title="dot-flashing">
399              <div class="stage">
400                <div class="dot-flashing"></div>
401              </div>
402            </div>
403          </div>
404        </div>
405      </div>
406    </div>
407  `,s.appendChild(r)}function hb(){let i=document.getElementById("lifelike-typing-indicator");i&&i.remove()}var vp=class extends u{static values={delay:Number};connect(){i_({element:this.element,delay:this.delayValue})}};var Tp=class extends u{static values={delay:{type:Number,default:0}};connect(){this.delayValue>0?this.timeout=setTimeout(()=>this.#e(),this.delayValue):this.#e()}disconnect(){this.timeout&&clearTimeout(this.timeout)}#e(){this.element.classList.remove("hidden"),this.element.replaceWith(...this.element.children)}};var P0=.05,cb="voice-note-player:play",bp=class extends u{static targets=["audio","playButton","playIcon","pauseIcon","pulse","waveform","bar","elapsed","total","teaser","transcriptWrapper","transcriptToggle","transcriptToggleText","chevron"];static values={autoplay:Boolean,playLabel:String,pauseLabel:String,showTranscript:String,hideTranscript:String};connect(){this.expanded=!1,this.onLoadedMetadata=this.onLoadedMetadata.bind(this),this.onTimeUpdate=this.onTimeUpdate.bind(this),this.onPlay=this.onPlay.bind(this),this.onPause=this.onPause.bind(this),this.onEnded=this.onEnded.bind(this),this.onExclusivePlay=this.onExclusivePlay.bind(this),window.addEventListener(cb,this.onExclusivePlay),this.hiddenObserver=new ResizeObserver(()=>this.pauseWhenHidden()),this.hiddenObserver.observe(this.element),this.hasAudioTarget&&(this.audioTarget.addEventListener("loadedmetadata",this.onLoadedMetadata),this.audioTarget.addEventListener("timeupdate",this.onTimeUpdate),this.audioTarget.addEventListener("play",this.onPlay),this.audioTarget.addEventListener("pause",this.onPause),this.audioTarget.addEventListener("ended",this.onEnded),this.updateProgress(0),this.audioTarget.readyState>=1&&this.onLoadedMetadata(),this.autoplayValue&&this.#e())}#e(){let i=this.audioTarget.play();i&&i.catch(()=>{})}disconnect(){window.removeEventListener(cb,this.onExclusivePlay),this.hiddenObserver?.disconnect(),this.hasAudioTarget&&(this.audioTarget.pause(),this.audioTarget.removeEventListener("loadedmetadata",this.onLoadedMetadata),this.audioTarget.removeEventListener("timeupdate",this.onTimeUpdate),this.audioTarget.removeEventListener("play",this.onPlay),this.audioTarget.removeEventListener("pause",this.onPause),this.audioTarget.removeEventListener("ended",this.onEnded))}toggle(){this.hasAudioTarget&&(this.audioTarget.paused?this.audioTarget.play():this.audioTarget.pause())}pauseWhenHidden(){!this.hasAudioTarget||this.audioTarget.paused||this.element.offsetParent===null&&this.audioTarget.pause()}onExclusivePlay(i){i.detail.source!==this.element&&this.hasAudioTarget&&!this.audioTarget.paused&&this.audioTarget.pause()}onPlay(){window.dispatchEvent(new CustomEvent(cb,{detail:{source:this.element}})),this.showPauseIcon(),this.hidePulse(),this.playButtonTarget.setAttribute("aria-pressed","true"),this.playButtonTarget.setAttribute("aria-label",this.pauseL
407abelValue)}onPause(){this.showPlayIcon(),this.playButtonTarget.setAttribute("aria-pressed","false"),this.playButtonTarget.setAttribute("aria-label",this.playLabelValue)}onEnded(){this.audioTarget.currentTime=0,this.showPlayIcon(),this.updateProgress(0),this.elapsedTarget.textContent=this.formatTime(0),this.playButtonTarget.setAttribute("aria-pressed","false"),this.playButtonTarget.setAttribute("aria-label",this.playLabelValue)}onLoadedMetadata(){this.totalTarget.textContent=this.formatTime(this.audioDuration())}onTimeUpdate(){let i=this.audioDuration();i<=0||(this.elapsedTarget.textContent=this.formatTime(this.audioTarget.currentTime),this.updateProgress(this.audioTarget.currentTime/i))}seek(i){let s=this.audioDuration();s<=0||this.seekToFraction(this.fractionFromPointer(i),s)}onKeydown(i){i.key==="ArrowRight"||i.key==="ArrowLeft"?(i.preventDefault(),this.nudge(i.key==="ArrowRight"?P0:-P0)):(i.key===" "||i.key==="Enter")&&(i.preventDefault(),this.toggle())}nudge(i){let s=this.audioDuration();if(s<=0)return;let r=this.clamp(this.audioTarget.currentTime/s+i,0,1);this.seekToFraction(r,s)}seekToFraction(i,s){this.audioTarget.currentTime=i*s,this.elapsedTarget.textContent=this.formatTime(this.audioTarget.currentTime),this.updateProgress(i)}toggleTranscript(){this.expanded=!this.expanded,this.transcriptWrapperTarget.classList.toggle("grid-rows-[0fr]",!this.expanded),this.transcriptWrapperTarget.classList.toggle("grid-rows-[1fr]",this.expanded),this.hasTeaserTarget&&this.teaserTarget.classList.toggle("hidden",this.expanded),this.transcriptToggleTarget.setAttribute("aria-expanded",this.expanded?"true":"false"),this.transcriptToggleTextTarget.textContent=this.expanded?this.hideTranscriptValue:this.showTranscriptValue,this.chevronTarget.classList.toggle("rotate-180",this.expanded)}updateProgress(i){let s=Math.round(i*this.barTargets.length);this.barTargets.forEach((r,a)=>{r.dataset.state=a<s?"filled":"muted"}),this.hasWaveformTarget&&this.waveformTarget.setAttribute("aria-valuenow",Math.round(i*100).toString())}showPlayIcon(){this.playIconTarget.classList.remove("hidden"),this.pauseIconTarget.classList.add("hidden")}showPauseIcon(){this.pauseIconTarget.classList.remove("hidden"),this.playIconTarget.classList.add("hidden")}hidePulse(){this.hasPulseTarget&&this.pulseTarget.classList.add("hidden")}fractionFromPointer(i){let s=this.waveformTarget.getBoundingClientRect();return s.width<=0?0:this.clamp((i.clientX-s.left)/s.width,0,1)}audioDuration(){if(!this.hasAudioTarget)return 0;let i=this.audioTarget.duration;return Number.isFinite(i)&&i>0?i:0}formatTime(i){let s=Number.isFinite(i)&&i>0?Math.floor(i):0,r=Math.floor(s/60),a=s%60;return`${r}:${a.toString().padStart(2,"0")}`}clamp(i,s,r){return Math.min(Math.max(i,s),r)}};var r_=[500,1e3,2e3,4e3],yp=class extends u{static values={delays:{type:Array,default:r_}};connect(){this.attemptCount=0,this.originalSrc=this.element.src,this.element.addEventListener("error",this.#e),this.element.complete&&this.element.naturalWidth===0&&this.#t()}disconnect(){this.element.removeEventListener("error",this.#e),this.#i()}#e=()=>{this.#t()};#t(){if(this.attemptCount>=this.delaysValue.length)return;let i=this.delaysValue[this.attemptCount];this.attemptCount+=1,this.#i(),this.retryTimer=setTimeout(()=>{let s=this.originalSrc.includes("?")?"&":"?";this.element.src=`${this.originalSrc}${s}_r=${Date.now()}`},i)}#i(){this.retryTimer&&(clearTimeout(this.retryTimer),this.retryTimer=null)}};var a_=15e3,V0="border-[#363636]",M0="border-error-input-border",_0="focus:border-[#525252]",B0="focus:border-error-input-border",Sp=class extends u{static targets=["submitBtn","emailInput","emailError"];connect(){this._onSubmitEnd=this._handleSubmitEnd.bind(this),this._submitSafetyTimeoutId=null,this.element.addEventListener("turbo:submit-end",this._onSubmitEnd)}disconnect(){this._clearSafetyTimeout(),this.element.removeEventListener("turbo:submit-end",this._onSubmitEnd)}toggleSubmit(){this.submitBtnTarget.disabled=!this.emailInputTarget.validity.valid}validateEmail(){this._toggleErrorState(!this.emailInputTarget.validity.valid)}clearError(){this.emailInputTarget.validity.valid&&this._toggleErrorState(!1)}submit(i){if(!this.emailInputTarget.validity.valid){i.preventDefault(),this._toggleErrorState(!0);return}this.submitBtnTarget.disabled=!0,this._startSafetyTimeout(),this._trackEmailCodeRequested()}_handleSubmitEnd(i){this._clearSafetyTimeout(),i.detail.success||(this._toggleErrorState(!1),this.submitBtnTarget.disabled=!this.emailInputTarget.validity.valid)}_startSafetyTimeout(){this._submitSafetyTimeoutId=setTimeout(()=>{this._submitSafetyTimeoutId=null,this.submitBtnTarget.disabled=!this.emailInputTarget.validity.valid},a_)}_clearSafetyTimeout(){this._submitSafetyTimeoutId&&(clearTimeout(this._submitSafetyTimeoutId),this._submitSafetyTimeoutId=null)}_toggleErrorState(i){let s=this.emailInputTarget;i?(s.classList.add(M0,B0),s.classList.remove(V0,_0)):(s.classList.remove(M0,B0),s.classList.add(V0,_0)),this.hasEmailErrorTarget&&this.emailErrorTarget.classList.toggle("hidden",!i)}_trackEmailCodeRequested(){typeof mixpanel<"u"&&mixpanel.track&&mixpanel.track("Email Code Requested",$t({Provider:"email_code"}))}};var n_=15,o_=15e3,wp=class extends u{static targets=["digit","hiddenInput","form","error","loader","resendButton","resendRow","digitsContainer"];connect(){this.hasSubmitted=!1,this._pasteSubmitTimeoutId=null,this._resendTimer=null,this._submitSafetyTimeoutId=null,this.formTarget.addEventListener("submit",this._onSubmit),this.formTarget.addEventListener("turbo:submit-end",this._onSubmitEnd),this.digitTargets[0]?.focu
407s(),this._startResendCooldown()}disconnect(){this._resendTimer&&(clearInterval(this._resendTimer),this._resendTimer=null),this._pasteSubmitTimeoutId&&clearTimeout(this._pasteSubmitTimeoutId),this._submitSafetyTimeoutId&&clearTimeout(this._submitSafetyTimeoutId),this.formTarget.removeEventListener("submit",this._onSubmit),this.formTarget.removeEventListener("turbo:submit-end",this._onSubmitEnd)}handleInput(i){let s=i.target,r=this.digitTargets.indexOf(s);s.value=s.value.replace(/\D/g,"").slice(-1),s.value&&r<this.digitTargets.length-1&&this.digitTargets[r+1].focus(),this._updateHiddenInput(),this._clearError(),this._allFilled()&&this._submitIfComplete()}handleKeydown(i){let s=i.target,r=this.digitTargets.indexOf(s);i.key==="Backspace"&&!s.value&&r>0&&(this.digitTargets[r-1].focus(),this.digitTargets[r-1].value="",this._updateHiddenInput())}handlePaste(i){i.preventDefault();let s=(i.clipboardData||window.clipboardData).getData("text").replace(/\D/g,"");this.digitTargets.forEach((a,n)=>{a.value=s[n]||""}),this._updateHiddenInput();let r=this.digitTargets.findIndex(a=>!a.value);r>=0?this.digitTargets[r].focus():this.digitTargets[this.digitTargets.length-1].focus(),this._pasteSubmitTimeoutId&&clearTimeout(this._pasteSubmitTimeoutId),this._pasteSubmitTimeoutId=setTimeout(()=>{this._pasteSubmitTimeoutId=null,this._allFilled()&&this._submitIfComplete()},0)}handleFocus(i){i.target.select()}async goBack(i){i.preventDefault();let s=i.currentTarget.dataset.url;await H(s,{responseKind:"turbo-stream"})}async resend(i){i.preventDefault();let s=this.resendButtonTarget;if(!s.disabled){this._startResendCooldown();try{let r=await H(s.dataset.url,{responseKind:"turbo-stream"});r.statusCode===429&&r.isTurboStream&&await r.renderTurboStream()}catch{}}}_startResendCooldown(){if(this._resendTimer)return;let i=this.resendButtonTarget,s=i.dataset.originalLabel,r=i.dataset.cooldownLabel;i.disabled=!0;let a=n_,n=()=>{i.textContent=r.replace("%{seconds}",a)};n(),this._resendTimer=setInterval(()=>{if(a-=1,a<=0){clearInterval(this._resendTimer),this._resendTimer=null,i.disabled=!1,i.textContent=s;return}n()},1e3)}_onSubmitEnd=i=>{this._clearSubmitSafetyTimeout(),i.detail.success?this.dispatch("emailVerified"):(this.hasSubmitted=!1,this._hideLoading(),this._clearDigits())};_onSubmit=i=>{if(this.hasSubmitted){i.preventDefault();return}this.hasSubmitted=!0,this._showLoading(),this._startSubmitSafetyTimeout()};_submitIfComplete(){this.hasSubmitted||this.formTarget.requestSubmit()}_updateHiddenInput(){this.hiddenInputTarget.value=this.digitTargets.map(i=>i.value).join("")}_allFilled(){return this.digitTargets.every(i=>i.value.length===1)}_clearDigits(){this.digitTargets.forEach(i=>{i.value=""}),this.hiddenInputTarget.value="",this.digitTargets[0]?.focus()}_clearError(){this.hasErrorTarget&&this.errorTarget.classList.add("hidden")}_startSubmitSafetyTimeout(){this._submitSafetyTimeoutId=setTimeout(()=>{this._submitSafetyTimeoutId=null,this.hasSubmitted=!1,this._hideLoading()},o_)}_clearSubmitSafetyTimeout(){this._submitSafetyTimeoutId&&(clearTimeout(this._submitSafetyTimeoutId),this._submitSafetyTimeoutId=null)}_showLoading(){this.hasDigitsContainerTarget&&this.digitsContainerTarget.classList.add("hidden"),this.hasResendRowTarget&&this.resendRowTarget.classList.add("hidden"),this.hasLoaderTarget&&this.loaderTarget.classList.remove("hidden")}_hideLoading(){this.hasDigitsContainerTarget&&this.digitsContainerTarget.classList.remove("hidden"),this.hasResendRowTarget&&this.resendRowTarget.classList.remove("hidden"),this.hasLoaderTarget&&this.loaderTarget.classList.add("hidden")}};var Cp=class extends u{static targets=["startButton","error","loading","video"];static values={createUrl:String,previewUrl:String,guest:Boolean};#e=!1;#t;#i;connect(){this.#s(),this.#o(),this.#t=()=>this.#r(),this.#i=()=>{this.#e=!1},document.addEventListener("roulette:webcam-ready",this.#t),document.addEventListener("roulette:webcam-skipped",this.#t),document.addEventListener("roulette:webcam-consent-closed",this.#i)}disconnect(){document.removeEventListener("roulette:webcam-ready",this.#t),document.removeEventListener("roulette:webcam-skipped",this.#t),document.removeEventListener("roulette:webcam-consent-closed",this.#i)}#s(){if(!this.hasVideoTarget)return;this.videoTarget.muted=!0;let i=this.videoTarget.play();i&&typeof i.catch=="function"&&i.catch(()=>{})}async start(){let i=pe("roulette--webcam",this.application);if(i&&!i.requestConsentToProceed()){this.#e=!0;return}return this.#a()}#r(){this.#e&&(this.#e=!1,this.#a())}
407async#a(){if(this.#c(!0),this.#g(),this.#l(),this.guestValue){Be.visit(this.previewUrlValue);return}try{let i=await H(this.createUrlValue,{responseKind:"json"});if(i.ok){let r=await i.json;Be.visit(r.redirect_url);return}let s=await i.json.catch(()=>({}));if(s&&s.reason==="upgrade_required"){this.#o(),document.dispatchEvent(new CustomEvent("roulette:upgrade-required"));return}this.#n()}catch{this.#n()}}#n(){this.#h(),this.#c(!1),this.#u()}#o(){this.#h(),this.#c(!1),this.#g()}#l(){this.hasLoadingTarget&&(this.loadingTarget.classList.remove("hidden"),this.loadingTarget.classList.add("flex"))}#h(){this.hasLoadingTarget&&(this.loadingTarget.classList.add("hidden"),this.loadingTarget.classList.remove("flex"))}#c(i){this.hasStartButtonTarget&&(this.startButtonTarget.disabled=i)}#u(){this.hasErrorTarget&&this.errorTarget.classList.remove("hidden")}#g(){this.hasErrorTarget&&this.errorTarget.classList.add("hidden")}};var Ni=null,Da=0,ut={unavailable:"unavailable",off:"off",loading:"loading",on:"on"},Ep=class extends u{static targets=["toggle","pip","video","loading","consent","consentView","blockedView"];#e;#t;connect(){this.#e=()=>this.#n(),this.#t=i=>this.#s(i),window.addEventListener("pagehide",this.#e),document.addEventListener("turbo:before-visit",this.#t),this.#i()}async#i(){if(Ni&&Ni.active){this.#a(),this.#o(ut.on);return}if(!this.#d()){this.#o(ut.unavailable);return}if(!await this.#m()){this.#o(ut.unavailable);return}if(await this.#f()==="granted"){this.#r();return}this.#o(ut.off)}disconnect(){window.removeEventListener("pagehide",this.#e),document.removeEventListener("turbo:before-visit",this.#t)}#s(i){let s=i&&i.detail&&i.detail.url;if(!s)return;let r;try{r=new URL(s,window.location.origin).pathname}catch{return}r.includes("/roulette")||this.#n()}async enable(){let i=await this.#f();if(Ni||i==="granted"){this.#r();return}if(i==="denied"){this.#h();return}this.#l()}confirmConsent(){this.#r()}dismissConsent(){this.#g(),this.#o(ut.off),this.dispatch("webcam-skipped",{prefix:"roulette"})}closeConsent(){this.#g(),this.dispatch("webcam-consent-closed",{prefix:"roulette"})}disable(){this.#n(),this.#o(ut.off)}requestConsentToProceed(){switch(this.element.dataset.state){case ut.on:case ut.unavailable:return!0;case ut.loading:return!1;default:return this.enable(),!1}}async#r(){this.#o(ut.loading),Da+=1;let i=Da;try{let s=await navigator.mediaDevices.getUserMedia({video:!0,audio:!1});if(i!==Da){s.getTracks().forEach(r=>r.stop());return}Ni=s,this.#a(),this.#o(ut.on),this.#g(),this.dispatch("webcam-ready",{prefix:"roulette"})}catch(s){if(i!==Da)return;Ni=null,this.#p(s)?(this.dispatch("webcam-denied",{prefix:"roulette"}),this.#h()):this.dispatch("webcam-error",{prefix:"roulette",detail:{error:s}}),this.#o(this.#b(s)?ut.unavailable:ut.off)}}#a(){this.hasVideoTarget&&(this.videoTarget.srcObject=Ni)}#n(){Da+=1,this.hasVideoTarget&&(this.videoTarget.srcObject=null),Ni&&(Ni.getTracks().forEach(i=>i.stop()),Ni=null)}#o(i){this.element.dataset.state=i,this.hasToggleTarget&&(this.toggleTarget.classList.toggle("hidden",i===ut.loading||i===ut.on),this.toggleTarget.disabled=i===ut.unavailable),this.hasPipTarget&&this.pipTarget.classList.toggle("hidden",i!==ut.loading&&i!==ut.on),this.hasLoadingTarget&&this.loadingTarget.classList.toggle("hidden",i!==ut.loading),this.hasVideoTarget&&this.videoTarget.classList.toggle("opacity-0",i!==ut.on)}#l(){this.#c("consent")}#h(){this.#c("blocked")}#c(i){this.hasConsentViewTarget&&this.#u(this.consentViewTarget,i==="consent"),this.hasBlockedViewTarget&&this.#u(this.blockedViewTarget,i==="blocked"),this.hasConsentTarget&&(this.consentTarget.classList.remove("hidden"),this.consentTarget.classList.add("flex"))}#u(i,s){i.classList.toggle("hidden",!s),i.classList.toggle("flex",s)}#g(){this.hasConsentTarget&&(this.consentTarget.classList.add("hidden"),this.consentTarget.classList.remove("flex"))}#d(){return!!(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia)}async#m(){if(!navigator.mediaDevices||!navigator.mediaDevices.enumerateDevices)return!0;try{return(await navigator.mediaDevices.enumerateDevices()).some(s=>s.kind==="videoinput")}catch{return!0}}async#f(){if(!navigator.permissions||!navigator.permissions.query)return"prompt";try{return(await navigator.permissions.query({name:"camera"})).state}catch{return"prompt"}}#p(i){return!!i&&(i.name==="NotAllowedError"||i.name==="PermissionDeniedError")}#b(i){return!!i&&(i.name==="NotFoundError"||i.name==="DevicesNotFoundError")}};var db=new WeakMap;function lt(i,{soundOn:s=!0,onBlocked:r}={}){if(!i)return;i.muted=!s;let a=(db.get(i)||0)+1;db.set(i,a);let n=i.play();!n||typeof n.catch!="function"||n.catch(l=>{if(db.get(i)!==a||l&&l.name!=="NotAllowedError"||i.muted)return;i.muted=!0;let d=i.play();
407d&&typeof d.catch=="function"&&d.catch(()=>{}),typeof r=="function"&&r()})}var O0=["loadstart","progress","loadeddata","canplay","playing","waiting","timeupdate"];function os(i,{play:s,onFailure:r}={}){if(!i)return()=>{};let a=0,n=null,l=null,d=!1,m=()=>i.readyState>=2,v=()=>{n&&(window.clearTimeout(n),n=null),l&&(window.clearTimeout(l),l=null)},E=()=>{n&&window.clearTimeout(n),n=window.setTimeout(ce,12e3)},D=()=>{d||(d=!0,v(),i.removeEventListener("error",X,!0),O0.forEach(oe=>i.removeEventListener(oe,ie)))},R=()=>{let oe=i.error&&i.error.code;return oe!==3&&oe!==4},W=()=>{D(),i.pause(),typeof r=="function"&&r()},Q=()=>{if(v(),a>=2||!R()){W();return}a+=1,l=window.setTimeout(()=>{l=null,!d&&(i.load(),typeof s=="function"&&s(),E())},700)};function X(){if(!(d||l)){if(i.error){Q();return}i.networkState===3&&!m()&&Q()}}function ie(){if(!(d||l)){if(m()){v();return}E()}}function ce(){n=null,!(d||m())&&Q()}return i.addEventListener("error",X,!0),O0.forEach(oe=>i.addEventListener(oe,ie)),E(),D}var F0="roulette:sound-on",l_=2e3,h_=1e3,D0=3e3,c_=7e3,Lp=class extends u{static targets=["welcomeVideo","skipButton","findingMatch","skippedNotice","loaderFinding","loaderConnecting","soundOnIcon","soundOffIcon","tapForSound","preloadTemplate","fadeable"];static values={skipUrl:String,leaveUrl:String,currentCharacter:Object,preloadCharacter:Object,tier:String,timeLimit:Number,eventsUrl:String,playId:Number,capped:Boolean};#e=!0;#t=!1;#i=null;#s=!1;#r=!1;#a=!1;#n=0;#o=!1;#l=null;#h=null;#c=null;#u=null;#g=null;#d=null;#m=!1;#f;#p;#b;#v;#T;#y;connect(){this.#e=this.#N(),this.#O(),this.#f=()=>this.#D(),this.#p=i=>this.#M(i.detail||{}),this.#b=()=>this.#x(),this.#v=()=>this.#A(),this.#T=()=>this.#B(),this.#y=i=>this.#C("/",i.detail?.reason),this.welcomeVideoTarget.addEventListener("ended",this.#f),document.addEventListener("roulette:ai-skip",this.#p),document.addEventListener("roulette:sound-blocked",this.#b),document.addEventListener("roulette:media-pause",this.#v),document.addEventListener("roulette:media-resume",this.#T),document.addEventListener("roulette:end-play",this.#y),this.#F(),this.startMatch(this.currentCharacterValue,{initial:!0}),this.#R(this.preloadCharacterValue),this.#j(),this.#Z()}disconnect(){this.welcomeVideoTarget.removeEventListener("ended",this.#f),document.removeEventListener("roulette:ai-skip",this.#p),document.removeEventListener("roulette:sound-blocked",this.#b),document.removeEventListener("roulette:media-pause",this.#v),document.removeEventListener("roulette:media-resume",this.#T),document.removeEventListener("roulette:end-play",this.#y),this.#W(),this.#G(),this.#z(),this.#L(),this.#V()}startMatch(i,{initial:s=!1}={}){this.#u=(i&&i.conversation_id)??null,this.#L(),this.#m=!1,this.#V(),this.#G(),this.#P(),s||document.dispatchEvent(new CustomEvent("roulette:match-changing",{detail:{character:i}}));let r=i&&i.ambient_audio_url||null;Promise.resolve().then(()=>{document.dispatchEvent(new CustomEvent("roulette:start-ambient",{detail:{ambientUrl:r}})),document.dispatchEvent(new CustomEvent("roulette:set-sound",{detail:{on:this.#e}}))}),this.#t=!1,this.#i=i,i&&Oi(this.welcomeVideoTarget,i.welcome_video)}#S(){let i=this.#i;if(i){if(this.#i=null,!i.welcome_video||!i.welcome_video.url){this.#t=!1,this.#D();return}this.welcomeVideoTarget.style.opacity="1",this.#t=!0,this.#w(),lt(this.welcomeVideoTarget,{soundOn:this.#e,onBlocked:()=>this.#x()}),this.#I(i)}}#w(){this.#L();let i=this.welcomeVideoTarget;this.#d=os(i,{play:()=>lt(i,{soundOn:this.#e,onBlocked:()=>this.#x()}),onFailure:()=>this.#D()})}#L(){this.#d&&(this.#d(),this.#d=null)}#I(i){if(!i||i.mode!=="skipper")return;let s=D0+Math.random()*(c_-D0);this.#c=window.setTimeout(()=>{this.#c=null,this.#E("ai_skip")},s)}skip(){return document.dispatchEvent(new CustomEvent("roulette:user-activity")),this.#E("user_skip")}async close(i){i.preventDefault();let s=i.currentTarget&&i.currentTarget.getAttribute("href")||"/";await this.#C(s)}async#C(i,s=null){let r=s?{inactivity_outcome:s}:{};try{await H(this.leaveUrlValue,{body:JSON.stringify(r),contentType:"application/json",responseKind:"json"})}catch{}window.location.assign(i)}async#E(i){if(!this.#s){this.#s=!0,this.#r=i==="user_skip",this.#F({skipped:i==="ai_skip"});try{let s=await H(this.skipUrlValue,{body:JSON.stringify({reason:i,conversation_id:(this.currentCharacterValue||{}).conversation_id}),contentType:"application/json",responseKind:"json"});if(s.ok){let r=await s.json,a=r.current_character||{}
407,n=(a.conversation_id??null)===((this.currentCharacterValue||{}).conversation_id??null);if(r.advanced===!1&&n)return;this.currentCharacterValue=a,this.preloadCharacterValue=r.replacement_character||{},this.startMatch(this.currentCharacterValue),this.#R(this.preloadCharacterValue)}else{let r=await s.json.catch(()=>({}));r&&r.reason==="upgrade_required"&&this.#J()}}catch{}finally{this.#s=!1,this.#r=!1,this.#j()}}}toggleUi(i){i&&i.target.closest("a, button, input, textarea, form")||(this.#a=!this.#a,this.fadeableTargets.forEach(s=>{s.classList.toggle("opacity-0",this.#a),s.classList.toggle("invisible",this.#a)}))}toggleSound(){this.#k(!this.#e)}enableSoundFromTap(){this.#k(!0)}#k(i){this.#e=i,this.#$(i),this.#O(),this.#P(),this.#t&&this.hasWelcomeVideoTarget&&lt(this.welcomeVideoTarget,{soundOn:i,onBlocked:()=>this.#x()}),document.dispatchEvent(new CustomEvent("roulette:set-sound",{detail:{on:i}}))}#x(){this.#e&&this.#_()}#A(){this.#t&&this.hasWelcomeVideoTarget&&(this.#L(),this.welcomeVideoTarget.pause())}#B(){this.#t&&this.hasWelcomeVideoTarget&&(this.#w(),lt(this.welcomeVideoTarget,{soundOn:this.#e,onBlocked:()=>this.#x()}))}#_(){this.hasTapForSoundTarget&&(this.tapForSoundTarget.classList.remove("hidden"),this.tapForSoundTarget.classList.add("flex"))}#P(){this.hasTapForSoundTarget&&(this.tapForSoundTarget.classList.add("hidden"),this.tapForSoundTarget.classList.remove("flex"))}#O(){this.hasSoundOnIconTarget&&this.soundOnIconTarget.classList.toggle("hidden",!this.#e),this.hasSoundOffIconTarget&&this.soundOffIconTarget.classList.toggle("hidden",this.#e)}#N(){try{return window.localStorage.getItem(F0)!=="false"}catch{return!0}}#$(i){try{window.localStorage.setItem(F0,i?"true":"false")}catch{}}#D(){if(this.#m)return;this.#m=!0,this.#L(),this.#t=!1;let i=this.currentCharacterValue||{};if(i.mode==="skipper"){this.#E("ai_skip");return}document.dispatchEvent(new CustomEvent("roulette:start-idle",{detail:{idleVideos:i.idle_videos||[]}}))}#M({currentCharacter:i,replacementCharacter:s}){let r=i||{};r.conversation_id&&r.conversation_id===this.#u||(this.#F({skipped:!this.#r}),this.currentCharacterValue=r,this.preloadCharacterValue=s||{},this.startMatch(this.currentCharacterValue,{initial:!1}),this.#R(this.preloadCharacterValue),this.#j())}#V(){document.dispatchEvent(new CustomEvent("roulette:stop-idle"))}#R(i){if(!(!i||!i.welcome_video||!i.welcome_video.url)){if(!this.preloadVideo){let s=this.preloadTemplateTarget.content.cloneNode(!0);this.preloadVideo=s.querySelector("video"),this.element.appendChild(this.preloadVideo)}Oi(this.preloadVideo,i.welcome_video)}}#F({skipped:i=!1}={}){this.#n=Date.now(),this.#W(),this.#o=i,this.hasSkipButtonTarget&&(this.skipButtonTarget.disabled=!0),this.hasFindingMatchTarget&&(this.findingMatchTarget.classList.remove("hidden"),this.findingMatchTarget.classList.add("flex")),this.#q("finding"),this.#h=window.setTimeout(()=>this.#q("connecting"),h_)}#j(){let i=Math.max(0,l_-(Date.now()-this.#n));this.#l=window.setTimeout(()=>this.#U(),i)}#U(){this.#l=null,this.hasSkipButtonTarget&&(this.skipButtonTarget.disabled=!1),this.hasFindingMatchTarget&&(this.findingMatchTarget.classList.add("hidden"),this.findingMatchTarget.classList.remove("flex")),this.#S()}#q(i){this.hasLoaderFindingTarget&&this.loaderFindingTarget.classList.toggle("hidden",i!=="finding"),this.hasLoaderConnectingTarget&&this.loaderConnectingTarget.classList.toggle("hidden",i!=="connecting"),this.hasSkippedNoticeTarget&&this.skippedNoticeTarget.classList.toggle("hidden",!(this.#o&&i==="finding"))}#W(){this.#l&&(window.clearTimeout(this.#l),this.#l=null),this.#h&&(window.clearTimeout(this.#h),this.#h=null)}#G(){this.#c&&(window.clearTimeout(this.#c),this.#c=null)}#Z(){if(this.cappedValue){Promise.resolve().then(()=>this.#J());return}this.#Q()}#Q(){this.tierValue!=="free"||this.timeLimitValue<=0||(this.#g=window.setTimeout(()=>{this.#te("time_cap"),this.#J()},this.timeLimitValue*1e3))}#te(i){!this.hasEventsUrlValue||!this.hasPlayIdValue||H(this.eventsUrlValue,{body:{step:"upgrade_modal_shown",reason:i,play_id:this.playIdValue}}).catch(()=>{})}#z(){this.#g&&(window.clearTimeout(this.#g),this.#g=null)}#J(){document.dispatchEvent(new CustomEvent("roulette:upgrade-required",{detail:{returnToIntro:!0}}))}};var kp=class extends u{static values={helplineId:String,sessionId:String,contactMethod:String,clickToken:String,url:String};connect(){this.boundTrackClick=this.trackClick.bind(this),this.element.addEventListener("click",this.boundTrackClick)}disconnect(){this.element.removeEventListener("click",this.boundTrackClick)}trackClick(i){i.target.closest("a")&&H(this.urlValue,{body:JSON.stringify({helpline_id:this.helplineIdValue,session_id:this.sessionIdValue,contact_method:this.contactMethodValue,click_token:this.clickTokenValue}),contentType:"application/json",responseKind:"json",keepalive:!0}
407).catch(()=>{})}};var xp=class extends u{static targets=["stage","ambientAudio","videoTemplate"];#e=!0;#t=!1;#i=null;#s;#r;#a;#n;#o;#l;#h;#c;#u;connect(){this.videoElements=[],this.currentIndex=0,this.running=!1,this.#s=i=>this.start(i.detail||{}),this.#r=()=>this.stop(),this.#a=()=>this.#w(),this.#n=i=>this.#b(i.detail?.on??!0),this.#o=()=>this.#m(),this.#l=()=>this.#f(),this.#h=i=>this.#I(i.detail?.ambientUrl??null),this.#c=()=>this.#g(),this.#u=()=>this.#d(),document.addEventListener("roulette:start-idle",this.#s),document.addEventListener("roulette:stop-idle",this.#r),document.addEventListener("roulette:set-sound",this.#n),document.addEventListener("roulette:pause-idle",this.#o),document.addEventListener("roulette:resume-idle",this.#l),document.addEventListener("roulette:start-ambient",this.#h),document.addEventListener("roulette:media-pause",this.#c),document.addEventListener("roulette:media-resume",this.#u)}disconnect(){document.removeEventListener("roulette:start-idle",this.#s),document.removeEventListener("roulette:stop-idle",this.#r),document.removeEventListener("roulette:set-sound",this.#n),document.removeEventListener("roulette:pause-idle",this.#o),document.removeEventListener("roulette:resume-idle",this.#l),document.removeEventListener("roulette:start-ambient",this.#h),document.removeEventListener("roulette:media-pause",this.#c),document.removeEventListener("roulette:media-resume",this.#u),this.stop()}#g(){this.#m(),this.hasAmbientAudioTarget&&this.ambientAudioTarget.pause()}#d(){this.#f(),this.hasAmbientAudioTarget&&lt(this.ambientAudioTarget,{soundOn:this.#e,onBlocked:()=>this.#v()})}#m(){let i=this.videoElements[this.currentIndex];i&&(this.#S(),this.#t=!0,i.pause())}#f(){if(!this.running)return;let i=this.videoElements[this.currentIndex];i&&(this.#t=!1,this.#y(i),lt(i,{soundOn:this.#e,onBlocked:()=>this.#v()}))}start({idleVideos:i=[]}={}){this.#p();let s=i.filter(r=>r&&r.url);s.length!==0&&(this.videoElements=s.map(r=>this.#L(r)),this.videoElements.forEach(r=>this.stageTarget.appendChild(r)),this.running=!0,this.currentIndex=0,this.#T())}stop(){this.#p(),this.#C()}#p(){this.running=!1,this.#t=!1,this.#S(),this.videoElements.forEach(i=>{i.pause(),i.removeEventListener("ended",this.#a),i.remove()}),this.videoElements=[]}#b(i){this.#e=i,this.hasAmbientAudioTarget&&lt(this.ambientAudioTarget,{soundOn:i,onBlocked:()=>this.#v()});let s=this.videoElements[this.currentIndex];if(s){if(this.#t){s.muted=!i;return}lt(s,{soundOn:i,onBlocked:()=>this.#v()})}}#v(){document.dispatchEvent(new CustomEvent("roulette:sound-blocked"))}#T(){if(!this.running||this.videoElements.length===0)return;let i=this.videoElements[this.currentIndex];this.videoElements.forEach(s=>{s.style.opacity="0"}),i.style.opacity="1",i.currentTime=0,i.addEventListener("ended",this.#a,{once:!0}),this.#t=!1,this.#y(i),lt(i,{soundOn:this.#e,onBlocked:()=>this.#v()})}#y(i){this.#S(),this.#i=os(i,{play:()=>lt(i,{soundOn:this.#e,onBlocked:()=>this.#v()}),onFailure:()=>this.#w()})}#S(){this.#i&&(this.#i(),this.#i=null)}#w(){let i=this.currentIndex;this.#S();let s=this.videoElements[i];s&&s.removeEventListener("ended",this.#a),this.running&&this.videoElements.length>0&&(this.currentIndex=(this.currentIndex+1)%this.videoElements.length,this.#T()),document.dispatchEvent(new CustomEvent("roulette:idle-clip-ended",{detail:{index:i}}))}#L(i){let r=this.videoTemplateTarget.content.cloneNode(!0).querySelector("video");return Oi(r,i),r}#I(i){this.hasAmbientAudioTarget&&(this.#C(),i&&(this.ambientAudioTarget.src=i,this.ambientAudioTarget.loop=!0,lt(this.ambientAudioTarget,{soundOn:this.#e,onBlocked:()=>this.#v()})))}#C(){this.hasAmbientAudioTarget&&(this.ambientAudioTarget.pause(),this.ambientAudioTarget.removeAttribute("src"))}};var Ip=class extends u{static targets=["actionVideo"];#e=!0;#t=null;#i=null;#s;#r;#a;#n;#o;connect(){this.#s=i=>this.#u(i.detail||{}),this.#r=()=>this.#g(),this.#a=()=>this.#m(),this.#n=()=>this.#l(),this.#o=i=>this.#h(i.detail?.on??!0),document.addEventListener("roulette:action-queued",this.#s),document.addEventListener("roulette:idle-clip-en
407ded",this.#r),document.addEventListener("roulette:stop-idle",this.#n),document.addEventListener("roulette:set-sound",this.#o)}disconnect(){document.removeEventListener("roulette:action-queued",this.#s),document.removeEventListener("roulette:idle-clip-ended",this.#r),document.removeEventListener("roulette:stop-idle",this.#n),document.removeEventListener("roulette:set-sound",this.#o),this.#d(),this.hasActionVideoTarget&&this.actionVideoTarget.removeEventListener("ended",this.#a)}#l(){this.#t=null,this.#d(),this.hasActionVideoTarget&&(this.actionVideoTarget.removeEventListener("ended",this.#a),this.actionVideoTarget.pause(),this.actionVideoTarget.classList.add("hidden"),this.actionVideoTarget.removeAttribute("src"))}#h(i){this.#e=i,this.hasActionVideoTarget&&!this.actionVideoTarget.classList.contains("hidden")&&lt(this.actionVideoTarget,{soundOn:i,onBlocked:()=>this.#c()})}#c(){document.dispatchEvent(new CustomEvent("roulette:sound-blocked"))}#u({url:i,av1_url:s,slug:r}){i&&(this.#t={url:i,av1_url:s,slug:r})}#g(){if(!this.#t||!this.hasActionVideoTarget)return;let{url:i,av1_url:s,slug:r}=this.#t;this.#t=null,document.dispatchEvent(new CustomEvent("roulette:pause-idle")),document.dispatchEvent(new CustomEvent("roulette:action-playing",{detail:{slug:r}}));let a=this.actionVideoTarget;Oi(a,{url:i,av1_url:s}),a.classList.remove("hidden"),a.addEventListener("ended",this.#a,{once:!0}),this.#d(),this.#i=os(a,{play:()=>lt(a,{soundOn:this.#e,onBlocked:()=>this.#c()}),onFailure:()=>this.#m()}),lt(a,{soundOn:this.#e,onBlocked:()=>this.#c()})}#d(){this.#i&&(this.#i(),this.#i=null)}#m(){this.#d(),this.hasActionVideoTarget&&(this.actionVideoTarget.removeEventListener("ended",this.#a),this.actionVideoTarget.pause(),this.actionVideoTarget.classList.add("hidden"),this.actionVideoTarget.removeAttribute("src")),document.dispatchEvent(new CustomEvent("roulette:resume-idle"))}};var Ap=class extends u{static targets=["scroll","messages","input","sendButton","nowChattingTemplate","userBubbleTemplate","assistantBubbleTemplate","typingTemplate","inboxItem"];static values={messageUrl:String,messages:Array,currentCharacter:Object,throughlinecareClickUrl:String};#e;#t=null;#i=!1;connect(){this.#e=i=>this.#r(i.detail?.character||{},{initial:!1}),document.addEventListener("roulette:match-changing",this.#e),this.#r(this.currentCharacterValue||{},{initial:!0})}disconnect(){document.removeEventListener("roulette:match-changing",this.#e)}async send(i){if(i.preventDefault(),this.#i)return;let s=this.inputTarget.value.trim();if(s){this.inputTarget.value="",document.dispatchEvent(new CustomEvent("roulette:user-activity")),this.#n("user",s),this.#h(),this.#d(!0);try{let r=await H(this.messageUrlValue,{body:JSON.stringify({message_body:s}),contentType:"application/json",responseKind:"json"});r.ok||(this.#c(),this.#d(!1),(await r.json?.catch?.(()=>({}))??{}).reason==="upgrade_required"&&document.dispatchEvent(new CustomEvent("roulette:upgrade-required",{detail:{returnToIntro:!0}})))}catch{this.#c(),this.#d(!1)}}}inboxItemTargetConnected(i){try{this.#s(JSON.parse(i.dataset.payload||"{}"))}catch{}finally{i.remove()}}#s(i){this.#c(),this.#d(!1),!(!i||i.error)&&(i.message&&this.#n("assistant",i.message,{html:i.message_html===!0,throughlinecare:i.throughlinecare||null}),i.action_video&&document.dispatchEvent(new CustomEvent("roulette:action-queued",{detail:i.action_video})),i.ai_skip&&document.dispatchEvent(new CustomEvent("roulette:ai-skip",{detail:{currentCharacter:i.current_character||{},replacementCharacter:i.replacement_character||{}}})))}#r(i,{initial:s}){this.#u(),this.#c(),this.#a(i.display_name),s&&this.messagesValue.forEach(r=>{this.#n(r.role,r.body,{html:r.html===!0,throughlinecare:r.throughlinecare||null})}),this.#d(!1)}#a(i){let s=this.nowChattingTemplateTarget.content.cloneNode(!0),r=s.querySelector("[data-name]");r&&(r.textContent=i||""),this.messagesTarget.appendChild(s.querySelector("div")),this.#g()}#n(i,s,{html:r=!1,throughlinecare:a=null}={}){let d=(i==="user"?this.userBubbleTemplateTarget:this.assistantBubbleTemplateTarget).content.cloneNode(!0).querySelector("div");
407r?(d.innerHTML=s,a&&this.#o(d,a)):d.textContent=s,this.messagesTarget.appendChild(d),this.#g()}#o(i,s){i.addEventListener("click",r=>{r.target.closest("a")&&this.#l(s)})}#l(i){this.hasThroughlinecareClickUrlValue&&H(this.throughlinecareClickUrlValue,{body:JSON.stringify({helpline_id:i.helpline_id,session_id:i.session_id,contact_method:i.contact_method,click_token:i.click_token}),contentType:"application/json",responseKind:"json",keepalive:!0}).catch(()=>{})}#h(){this.#c(),this.hasTypingTemplateTarget&&(this.#t=this.typingTemplateTarget.content.cloneNode(!0).querySelector("div"),this.messagesTarget.appendChild(this.#t),this.#g())}#c(){this.#t&&(this.#t.remove(),this.#t=null)}#u(){this.messagesTarget.replaceChildren()}#g(){let i=this.hasScrollTarget?this.scrollTarget:this.messagesTarget;i.scrollTop=i.scrollHeight}#d(i){this.#i=i,this.#m(!i)}#m(i){this.hasInputTarget&&(this.inputTarget.disabled=!i),this.hasSendButtonTarget&&(this.sendButtonTarget.disabled=!i)}};var d_=3e4,u_=1e3,Pp=class extends u{static targets=["gate","timer","timerText"];static values={confirmUrl:String,tickUrl:String,endFreeTimeUrl:String,freeEndsAt:String,paidStartedAt:String,active:Boolean,gated:Boolean,lowTokens:Boolean,tier:String};#e=null;#t=null;#i=null;#s=null;connect(){if(this.tierValue==="premium")if(this.activeValue){this.#l();let i=Date.parse(this.paidStartedAtValue);this.#u(Number.isNaN(i)?Date.now():i)}else this.lowTokensValue||(this.gatedValue?this.#n():this.#r())}disconnect(){this.#h(),this.#c(),this.#g()}async confirm(){try{(await H(this.confirmUrlValue,{responseKind:"json"})).ok&&(this.#o(),this.activeValue=!0,this.#l(),this.#u(Date.now()))}catch{}}#r(){let i=Date.parse(this.freeEndsAtValue),s=Number.isNaN(i)?0:Math.max(0,i-Date.now());this.#t=setTimeout(()=>this.#a(),s)}#a(){H(this.endFreeTimeUrlValue,{responseKind:"json"}).catch(()=>{}),this.#n()}#n(){this.hasGateTarget&&(this.gateTarget.classList.remove("hidden"),this.gateTarget.classList.add("flex"))}#o(){this.hasGateTarget&&(this.gateTarget.classList.add("hidden"),this.gateTarget.classList.remove("flex"))}#l(){this.#e||(this.#e=setInterval(()=>this.#m(),d_),document.dispatchEvent(new CustomEvent("roulette:billing-started")))}#h(){this.#e&&(clearInterval(this.#e),this.#e=null,document.dispatchEvent(new CustomEvent("roulette:billing-stopped")))}#c(){this.#t&&(clearTimeout(this.#t),this.#t=null)}#u(i){this.#s=i,this.hasTimerTarget&&(this.timerTarget.classList.remove("hidden"),this.timerTarget.classList.add("flex"),this.timerTarget.setAttribute("aria-hidden","false")),this.#d(),!this.#i&&(this.#i=setInterval(()=>this.#d(),u_))}#g(){this.#i&&(clearInterval(this.#i),this.#i=null)}#d(){if(!this.hasTimerTextTarget||this.#s===null)return;let i=Math.max(0,Math.floor((Date.now()-this.#s)/1e3)),s=Math.floor(i/60),r=i%60,a=n=>String(n).padStart(2,"0");this.timerTextTarget.textContent=`${a(s)}:${a(r)}`}async#m(){try{(await H(this.tickUrlValue,{responseKind:"json"})).statusCode===422&&(this.#h(),this.#g())}catch{}}};var R0="roulette:sound-on",g_=2e3,m_=1e3,Vp=class extends u{static targets=["welcomeVideo","soundOnIcon","soundOffIcon","tapForSound","findingMatch","loaderFinding","loaderConnecting"];static values={character:Object,redirectUrl:String,eventsUrl:String,timeLimit:{type:Number,default:10}};#e=null;#t=!1;#i=!1;#s=!0;#r=!1;#a=0;#n=null;#o=null;#l=null;#h=!1;#c;#u;connect(){this.#s=this.#L(),this.#y(),this.#c=()=>this.#f(),this.#u=()=>this.#T(),this.welcomeVideoTarget.addEventListener("ended",this.#c),document.addEventListener("roulette:sound-blocked",this.#u),this.#C(),this.#g(),this.#E(),this.#B()}disconnect(){this.welcomeVideoTarget.removeEventListener("ended",this.#c),document.removeEventListener("roulette:sound-blocked",this.#u),this.#_(),this.#A(),this.#m(),document.dispatchEvent(new CustomEvent("roulette:stop-idle"))}promptSignup(i){i&&i.preventDefault(),!this.#t&&(this.#t=!0,this.#_(),this.#p(i?.params?.interaction||"timeout"),this.#b("signup_modal"),pe("main",this.application)?.openRegistrationModal(new CustomEvent("RouletteGuestPreview",{detail:{redirectUrl:this.redirectUrlValue}})),window.setTimeout(()=>{this.#t=!1},500))}toggleSound(){this.#v(!this.#s)}enableSoundFromTap(){this.#v(!0)}#g(){let i=this.characterValue||{},s=i.ambient_audio_url||null;Promise.resolve().then(()=>{document.dispatchEvent(new CustomEvent("roulette:start-ambient",{detail:{ambientUrl:s}})),document.dispatchEvent(new CustomEvent("roulette:set-sound",{detail:{on:this.#s}}))}),Oi(this.welcomeVideoTarget,i.welcome_video)}#d(){let i=this.characterValue||{};if(!i.welcome_video||!i.welcome_video.url){this.#r=!1,this.#f();return}let s=this.welcomeVideoTarget;s.style.opacity="1",this.#r=!0,this.#m(),this.#l=os(s,{play:()=>lt(s,{soundOn:this.#s,onBlocked:()=>this.#T()}),onFailure:()=>this.#f()}),lt(s,{soundOn:this.#s,onBlocked:()=>this.#T()})}#m(){this.#l&&(this.#l(),this.#l=null)}
407#f(){if(this.#h)return;this.#h=!0,this.#m(),this.#r=!1;let i=this.characterValue||{};document.dispatchEvent(new CustomEvent("roulette:start-idle",{detail:{idleVideos:i.idle_videos||[]}}))}#p(i){this.#i||(this.#i=!0,this.#b("first_interaction",{interaction_type:i}))}#b(i,s={}){this.hasEventsUrlValue&&H(this.eventsUrlValue,{body:{step:i,...s}}).catch(()=>{})}#v(i){this.#s=i,this.#I(i),this.#y(),this.#w(),this.#r&&this.hasWelcomeVideoTarget&&lt(this.welcomeVideoTarget,{soundOn:i,onBlocked:()=>this.#T()}),document.dispatchEvent(new CustomEvent("roulette:set-sound",{detail:{on:i}}))}#T(){this.#s&&this.#S()}#y(){this.hasSoundOnIconTarget&&this.soundOnIconTarget.classList.toggle("hidden",!this.#s),this.hasSoundOffIconTarget&&this.soundOffIconTarget.classList.toggle("hidden",this.#s)}#S(){this.hasTapForSoundTarget&&(this.tapForSoundTarget.classList.remove("hidden"),this.tapForSoundTarget.classList.add("flex"))}#w(){this.hasTapForSoundTarget&&(this.tapForSoundTarget.classList.add("hidden"),this.tapForSoundTarget.classList.remove("flex"))}#L(){try{return window.localStorage.getItem(R0)!=="false"}catch{return!0}}#I(i){try{window.localStorage.setItem(R0,i?"true":"false")}catch{}}#C(){this.#a=Date.now(),this.#A(),this.hasFindingMatchTarget&&(this.findingMatchTarget.classList.remove("hidden"),this.findingMatchTarget.classList.add("flex")),this.#x("finding"),this.#o=window.setTimeout(()=>this.#x("connecting"),m_)}#E(){let i=Math.max(0,g_-(Date.now()-this.#a));this.#n=window.setTimeout(()=>this.#k(),i)}#k(){this.#n=null,this.hasFindingMatchTarget&&(this.findingMatchTarget.classList.add("hidden"),this.findingMatchTarget.classList.remove("flex")),this.#d()}#x(i){this.hasLoaderFindingTarget&&this.loaderFindingTarget.classList.toggle("hidden",i!=="finding"),this.hasLoaderConnectingTarget&&this.loaderConnectingTarget.classList.toggle("hidden",i!=="connecting")}#A(){this.#n&&(window.clearTimeout(this.#n),this.#n=null),this.#o&&(window.clearTimeout(this.#o),this.#o=null)}#B(){let i=this.timeLimitValue>0?this.timeLimitValue:10;this.#e=window.setTimeout(()=>this.promptSignup(),i*1e3)}#_(){this.#e&&(window.clearTimeout(this.#e),this.#e=null)}};var Mp=class extends u{static targets=["modal","tracker","video"];static values={dismissUrl:String};#e;#t=!1;connect(){this.#e=i=>this.show(i),document.addEventListener("roulette:upgrade-required",this.#e)}disconnect(){document.removeEventListener("roulette:upgrade-required",this.#e)}show(i){i?.detail?.returnToIntro&&(this.#t=!0),!(!this.hasModalTarget||!this.modalTarget.classList.contains("hidden"))&&(this.modalTarget.classList.remove("hidden"),this.modalTarget.classList.add("flex"),this.hasVideoTarget&&(this.videoTarget.muted=!0,this.videoTarget.play().catch(()=>{})),document.dispatchEvent(new CustomEvent("roulette:media-pause")),this.hasTrackerTarget&&this.trackerTarget.dispatchEvent(new CustomEvent("show-premium-subscription-modal")))}close(){if(this.#t&&this.hasDismissUrlValue&&this.dismissUrlValue){Be.visit(this.dismissUrlValue);return}this.#t=!1,this.hasModalTarget&&(this.modalTarget.classList.add("hidden"),this.modalTarget.classList.remove("flex")),this.hasVideoTarget&&this.videoTarget.pause(),document.dispatchEvent(new CustomEvent("roulette:media-resume"))}cta(){}};var p_=18e4,f_=3e4,_p=class extends u{static targets=["dialog"];static values={active:Boolean};#e=null;#t=null;#i=!1;#s;#r;#a;connect(){this.#s=()=>this.#n(),this.#r=()=>this.arm(),this.#a=()=>this.disarm(),document.addEventListener("roulette:user-activity",this.#s),document.addEventListener("roulette:billing-started",this.#r),document.addEventListener("roulette:billing-stopped",this.#a),this.activeValue&&this.arm()}disconnect(){document.removeEventListener("roulette:user-activity",this.#s),document.removeEventListener("roulette:billing-started",this.#r),document.removeEventListener("roulette:billing-stopped",this.#a),this.#g()}arm(){this.#i=!0,this.#o()}disarm(){this.#i=!1,this.#g(),this.#u()}confirm(){this.#i&&this.#o()}endCall(){this.disarm(),document.dispatchEvent(new CustomEvent("roulette:end-play",{detail:{reason:"user_ended"}}))}forceShow(){this.#i=!0,this.#g(),this.#l()}#n(){this.#i&&this.#o()}#o(){this.#g(),this.#u(),this.#e=window.setTimeout(()=>this.#l(),p_)}#l(){this.#e=null,this.#c(),this.#t=window.setTimeout(()=>this.#h(),f_)}
407#h(){this.disarm(),document.dispatchEvent(new CustomEvent("roulette:end-play",{detail:{reason:"timeout"}}))}#c(){this.hasDialogTarget&&(this.dialogTarget.classList.remove("hidden"),this.dialogTarget.classList.add("flex"))}#u(){this.hasDialogTarget&&(this.dialogTarget.classList.add("hidden"),this.dialogTarget.classList.remove("flex"))}#g(){this.#e&&(window.clearTimeout(this.#e),this.#e=null),this.#t&&(window.clearTimeout(this.#t),this.#t=null)}};var Bp=class extends u{static targets=["line"];static values={character:Object};#e={};#t;#i;#s;connect(){this.#e=this.characterValue||{},this.#t=i=>this.#r(i.detail?.character||{}),this.#i=i=>this.#n(`idle #${(i.detail?.index??0)+1}`),this.#s=i=>this.#n(`action:${i.detail?.slug||"?"}`),document.addEventListener("roulette:match-changing",this.#t),document.addEventListener("roulette:idle-clip-ended",this.#i),document.addEventListener("roulette:action-playing",this.#s),this.#n(`welcome:${this.#a(this.#e)}`)}disconnect(){document.removeEventListener("roulette:match-changing",this.#t),document.removeEventListener("roulette:idle-clip-ended",this.#i),document.removeEventListener("roulette:action-playing",this.#s)}triggerInactivity(){let i=document.querySelector("[data-controller~='roulette--inactivity']");if(!i)return;this.application.getControllerForElementAndIdentifier(i,"roulette--inactivity")?.forceShow()}#r(i){this.#e=i,this.#n(`welcome:${this.#a(i)}`)}#a(i){return i.welcome_video&&i.welcome_video.variant||"?"}#n(i){if(!this.hasLineTarget)return;let s=this.#e.character_id||"?",r=this.#e.character_slug||"?",a=this.#e.mode||"?";this.lineTarget.textContent=`#${s} ${r} \xB7 ${a} \xB7 ${i}`}};var Op=class extends u{static targets=["dialog","cardLabel","confirmationContent","deleteDialog","deleteCardLabel","form","backupButton","backupButtonLabel","backupButtonCheck"];confirmSubmit(i){this.intercept(i,this.dialogTarget,this.cardLabelTarget,this.confirmationContentTarget)}confirmDelete(i){this.intercept(i,this.deleteDialogTarget,this.deleteCardLabelTarget)}proceed(){let i=this.pendingForm;this.pendingForm=null,i&&(this.confirmed=!0,this.closeDialogs(),i.requestSubmit())}cancel(){this.pendingForm=null,this.closeDialogs()}submitStart(i){this.element.setAttribute("aria-busy","true"),this.showBackupConfirmation(i),this.formTargets.forEach(s=>{s.querySelectorAll("button").forEach(r=>{r.disabled=!0})})}submitEnd(i){this.element.removeAttribute("aria-busy"),this.formTargets.forEach(s=>{s.querySelectorAll("button").forEach(r=>{r.disabled=!1})}),i.detail?.success===!1&&this.resetBackupConfirmation()}intercept(i,s,r,a=null){if(this.confirmed){this.confirmed=!1;return}i.preventDefault(),this.pendingForm=i.target,r.textContent=i.target.dataset.cardLabel,a&&(a.textContent=i.target.dataset.confirmationContent),s.showModal()}closeDialogs(){this.dialogTarget.close(),this.deleteDialogTarget.close()}showBackupConfirmation(i){if(i.target.dataset.backupCardConfirmation!=="true")return;let s=i.target,r=this.backupButtonTargets.find(l=>s.contains(l)),a=this.backupButtonLabelTargets.find(l=>s.contains(l)),n=this.backupButtonCheckTargets.find(l=>s.contains(l));!r||!a||!n||(this.activeBackupButton={button:r,label:a,check:n},r.setAttribute("aria-busy","true"),a.classList.add("hidden"),n.classList.remove("hidden"))}resetBackupConfirmation(){if(!this.activeBackupButton)return;let{button:i,label:s,check:r}=this.activeBackupButton;i.removeAttribute("aria-busy"),s.classList.remove("hidden"),r.classList.add("hidden"),this.activeBackupButton=null}};var N0=60*1e3,Fp=class extends u{static targets=["remaining"];static values={endsAt:String,daysFormat:String,hoursFormat:String,minutesFormat:String};connect(){this.endsAtValue&&this.#e()&&(this.interval=setInterval(()=>this.#e(),N0))}disconnect(){clearInterval(this.interval)}#e(){let i=new Date(this.endsAtValue)-new Date;return i<=0?(this.element.hidden=!0,clearInterval(this.interval),!1):(this.hasRemainingTarget&&(this.remainingTarget.textContent=this.#t(i)),!0)}#t(i){let s=Math.floor(i/N0),r=Math.floor(s/60),a=Math.floor(r/24);return a>=1?this.daysFormatValue.replace("%d",a).replace("%h",r%24):r>=1?this.hoursFormatValue.replace("%h",r).replace("%m",s%60):this.minutesFormatValue.replace("%m",s)}};var Dp=class extends u{static values={dismissUrl:String};connect(){this.boundCloseBeforeCache=this.closeBeforeCache.bind(this),document.addEventListener("turbo:before-cache",this.boundCloseBeforeCache),this.element.open||this.element.showModal()}disconnect(){document.removeEventListener("turbo:before-cache",this.boundCloseBeforeCache)}closeBeforeCache(){this.element.open&&(this.closingForCache=!0,this.element.close())}dismiss(){if(this.closingForCache){this.closingForCache=!1;return}this.dismissed||(this.dismissed=!0,this.element.close(),this.element.remove(),this.recordDismissal())}async recordDismissal(){try{await H(this.dismissUrlValue,{responseKind:"json"})}catch{}}};var v_=3e4,Rp=class extends u{static targets=["input","total","baseTotal","buy","confirm","step","notice","token"];static values={unitPrice:Number,baseUnitPrice:Number,min:{type:Number,default:1},max:Number,errorMessage:String,processingMessage:String};connect(){this.reset(),this.#e()}disconnect(){window.clearTimeout(this.watchdog)}increment(){this.#a(1)}
407decrement(){this.#a(-1)}arm(){this.submitting||(this.#r(),this.buyTarget.classList.add("hidden"),this.confirmTarget.classList.remove("hidden"),this.confirmTarget.focus())}confirm(i){if(this.submitting){i.preventDefault();return}this.submitting=!0}lock(){this.submitting=!0,this.confirmTarget.disabled=!0,this.stepTargets.forEach(i=>{i.disabled=!0}),window.clearTimeout(this.watchdog),this.watchdog=window.setTimeout(()=>this.#t(),v_)}reset(i){window.clearTimeout(this.watchdog),this.submitting=!1,this.confirmTarget.disabled=!1,this.stepTargets.forEach(a=>{a.disabled=!1}),this.#s();let s=i?.detail;s?.success&&this.#e();let r=s?.fetchResponse?.statusCode===429;s&&!s.success&&(!s.fetchResponse||r)&&this.#i(this.errorMessageValue)}#e(){this.hasTokenTarget&&(this.tokenTarget.value=window.crypto?.randomUUID?.()??`t-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,12)}`)}#t(){this.reset(),this.#i(this.processingMessageValue)}#i(i){if(!this.hasNoticeTarget||!i)return;let s=document.createElement("p");s.className="font-poppins text-xs text-red-400",s.textContent=i,this.noticeTarget.replaceChildren(s)}#s(){this.confirmTarget.classList.add("hidden"),this.buyTarget.classList.remove("hidden")}#r(){this.hasNoticeTarget&&(this.noticeTarget.innerHTML="")}#a(i){if(this.submitting)return;let s=this.inputTarget,r=Math.min(this.maxValue,Math.max(this.minValue,Number(s.value||this.minValue)+i));s.value=r,this.totalTargets.forEach(a=>{a.textContent=r*this.unitPriceValue}),this.baseUnitPriceValue&&this.baseTotalTargets.forEach(a=>{a.textContent=r*this.baseUnitPriceValue}),this.#r(),this.#s()}};var T_=700,Np=class extends u{static targets=["track","media","dot"];static values={tokenModalId:String};connect(){this.#n(0),document.addEventListener("turbo:before-stream-render",this.#e)}disconnect(){document.removeEventListener("turbo:before-stream-render",this.#e),window.clearTimeout(this.settleTimeout),this.#l()}#e=i=>{this.hasTokenModalIdValue&&i.detail?.newStream?.getAttribute("target")===this.tokenModalIdValue&&typeof this.element.close=="function"&&this.element.open&&this.element.close()};select({params:i}){this.#i(i.index)}next(){this.#i(this.#t()+1)}previous(){this.#i(this.#t()-1)}pause(){this.#l()}scrolled(){this.pendingSync||(this.pendingSync=!0,window.requestAnimationFrame(()=>{this.pendingSync=!1,this.#s()}))}#t(){return this.settling??this.#a()}#i(i){let s=Math.max(0,Math.min(i,this.mediaTargets.length-1)),r=this.mediaTargets[s];r&&(this.settling=s,window.clearTimeout(this.settleTimeout),this.settleTimeout=window.setTimeout(()=>this.#r(),T_),this.trackTarget.scrollTo({left:r.offsetLeft,behavior:"smooth"}),this.#n(s))}#s(){let i=this.#a();if(this.settling!==null&&this.settling!==void 0){if(i!==this.settling)return;window.clearTimeout(this.settleTimeout),this.settling=null}this.#n(i)}#r(){this.settling=null,this.#s()}#a(){let{scrollLeft:i,scrollWidth:s,clientWidth:r}=this.trackTarget,a=s-r;if(a>0&&i>=a-1)return this.mediaTargets.length-1;let n=i+r/2,l=this.mediaTargets.findIndex(d=>d.offsetLeft<=n&&n<d.offsetLeft+d.offsetWidth);return l!==-1?l:this.mediaTargets.reduce((d,m,v)=>{let E=Math.abs(m.offsetLeft-i);return E<d.distance?{index:v,distance:E}:d},{index:0,distance:1/0}).index}#n(i){this.mediaTargets.forEach((s,r)=>{s.tagName==="VIDEO"&&(r===i?this.#o(s):s.pause())}),this.dotTargets.forEach((s,r)=>{s.setAttribute("aria-pressed",r===i?"true":"false")})}#o(i){i.readyState===0&&i.load(),i.play().catch(()=>{})}#l(){this.mediaTargets.forEach(i=>{i.tagName==="VIDEO"&&i.pause()})}};var ub=new Set;document.addEventListener("turbo:load",()=>ub.clear());var Up=class extends u{static values={itemViewsUrl:String,itemId:String,source:{type:String,default:"direct"}};connect(){this.element.dataset.viewed||!this.hasItemViewsUrlValue||!this.itemIdValue||ub.has(this.itemIdValue)||(this.element.dataset.viewed="true",ub.add(this.itemIdValue),H(this.itemViewsUrlValue,{body:{item_id:this.itemIdValue,src:this.sourceValue}}))}};var b_="text-[#FFB300]",y_="text-white/20",Hp=class extends u{static targets=["dialog","star"];static outlets=["candy-shop--buy-bar"];
407open(){this.dialogTarget.showModal()}buyInstead(){this.dialogTarget.close(),this.hasCandyShopBuyBarOutlet&&(this.candyShopBuyBarOutlet.arm(),this.candyShopBuyBarOutletElement.scrollIntoView({block:"nearest"}))}paint(i){let s=Number(i.target.value);this.starTargets.forEach(r=>{let a=Number(r.dataset.score)<=s;r.classList.toggle(b_,a),r.classList.toggle(y_,!a)})}};var qp=class extends u{static values={errorMessage:String,conversationId:String};static targets=["dialog","frame","productFrame","listPanel","confirmPanel","search","row","noResults","pick","pickLabel","profileId","conversationId","title","noteAvatar","note","submit","error","toasts"];connect(){this.boundCloseBeforeCache=this.closeBeforeCache.bind(this),document.addEventListener("turbo:before-cache",this.boundCloseBeforeCache)}open(){this.#s(),this.#i(),this.#r(),this.dialogTarget.open||this.dialogTarget.showModal()}disconnect(){document.removeEventListener("turbo:before-cache",this.boundCloseBeforeCache)}closeBeforeCache(){this.hasDialogTarget&&this.dialogTarget.open&&this.close(),this.#e()}close(){this.dialogTarget.close()}closeOnBackdrop({target:i}){i===this.dialogTarget&&this.close()}filter(){let i=this.searchTarget.value.trim().toLowerCase(),s=0;this.rowTargets.forEach(r=>{let a=!i||r.dataset.name.includes(i);r.classList.toggle("hidden",!a),a&&(s+=1)}),this.hasNoResultsTarget&&this.noResultsTarget.classList.toggle("hidden",s>0)}select({currentTarget:i}){this.rowTargets.forEach(s=>{s.setAttribute("aria-pressed",String(s===i))}),this.selectedIndex=this.rowTargets.indexOf(i),this.pickTarget.disabled=!1,this.pickLabelTarget.textContent=i.dataset.title}openNote(){let i=this.rowTargets[this.selectedIndex];if(!i)return;this.noteTarget.value="",this.profileIdTarget.value=i.dataset.profileId,this.titleTarget.textContent=i.dataset.giftTitle;let s=i.querySelector("img");this.hasNoteAvatarTarget&&(s?(this.noteAvatarTarget.src=s.currentSrc||s.src,this.noteAvatarTarget.classList.remove("hidden")):(this.noteAvatarTarget.removeAttribute("src"),this.noteAvatarTarget.classList.add("hidden"))),this.listPanelTarget.classList.add("hidden"),this.confirmPanelTarget.classList.remove("hidden"),this.confirmPanelTarget.classList.add("flex"),this.noteTarget.focus()}back(){this.#s()}pinConversation(){this.hasConversationIdTarget&&(this.conversationIdTarget.value=this.conversationIdValue)}lock(){this.submitTarget.disabled=!0}unlock(i){this.submitTarget.disabled=!1;let s=i?.detail;s?.success?(this.close(),this.hasToastsTarget&&this.toastsTarget.focus()):s&&!s.fetchResponse&&this.hasErrorTarget&&this.errorTarget.replaceChildren(this.#t())}productFrameFailed(i){if(!(this.hasProductFrameTarget&&i.target!==this.productFrameTarget)&&(i.type==="turbo:frame-missing"&&i.preventDefault(),this.#e(),this.hasToastsTarget)){let s=this.#t("rounded-2xl border border-black-stroke bg-black-dark px-4 py-3 shadow-2xl");this.toastsTarget.replaceChildren(s)}}sheetFrameFailed(i){this.hasFrameTarget&&i.target!==this.frameTarget||(i.type==="turbo:frame-missing"&&i.preventDefault(),this.hasFrameTarget&&(this.frameTarget.removeAttribute("complete"),this.frameTarget.removeAttribute("src")),this.hasDialogTarget&&this.dialogTarget.open&&this.close(),this.hasToastsTarget&&this.toastsTarget.replaceChildren(this.#t("rounded-2xl border border-black-stroke bg-black-dark px-4 py-3 shadow-2xl")))}#e(){this.hasProductFrameTarget&&(this.productFrameTarget.removeAttribute("complete"),this.productFrameTarget.removeAttribute("src"),this.productFrameTarget.replaceChildren())}#t(i=""){let s=document.createElement("p");return s.className=`font-poppins text-sm text-error-input-text ${i}`.trim(),s.textContent=this.errorMessageValue,s}#i(){this.hasSearchTarget&&(this.searchTarget.value="",this.filter())}#s(){this.hasErrorTarget&&(this.errorTarget.innerHTML=""),!(!this.hasConfirmPanelTarget||!this.hasListPanelTarget)&&(this.confirmPanelTarget.classList.add("hidden"),this.confirmPanelTarget.classList.remove("flex"),this.listPanelTarget.classList.remove("hidden"))}#r(){this.selectedIndex=-1,this.rowTargets.forEach(i=>
407i.setAttribute("aria-pressed","false")),this.hasPickTarget&&(this.pickTarget.disabled=!0,this.pickLabelTarget.textContent=this.pickLabelTarget.dataset.idle)}};var S_=1,w_=4,$p=class extends u{static values={prompt:String,wearUrl:String};connect(){this.observer=new MutationObserver(i=>this.#i(i)),this.element.parentElement&&this.observer.observe(this.element.parentElement,{childList:!0})}disconnect(){this.observer?.disconnect()}async askToWear(){if(this.wearInFlight)return;let i=this.#t();if(!i)return;let s=document.getElementById("send-question"),r=i.value;if(i.value=this.promptValue,i.dispatchEvent(new Event("input",{bubbles:!0})),s.disabled){this.#e(i,r);return}if(this.hasWearUrlValue){this.wearInFlight=!0,s.disabled=!0;let a=await ve(this.wearUrlValue,{responseKind:"turbo-stream"}).then(n=>n.ok).catch(()=>!1);if(this.wearInFlight=!1,i.dispatchEvent(new Event("input",{bubbles:!0})),!a||!this.element.isConnected||!this.#t()||s.disabled){this.#e(i,r);return}}s.click(),this.element.remove()}#e(i,s){i.value=s,i.dispatchEvent(new Event("input",{bubbles:!0}))}#t(){let i=document.getElementById("message_body"),s=document.getElementById("send-question");return!i||!s||i.disabled||s.form?.querySelector('input[name="message[id]"]')?null:i}#i(i){i.some(r=>Array.from(r.addedNodes).some(a=>a.nodeType!==S_||a.id==="lifelike-typing-indicator"?!1:this.element.compareDocumentPosition(a)&w_))&&this.element.remove()}};var C_="text/vnd.turbo-stream.html",Gp=class extends u{static targets=["card","badge","defaultChip"];static classes=["worn"];select(i){let s=this.cardTargets.find(r=>r.contains(i.target));s&&(this.pendingForm||(this.previousCard=this.cardTargets.find(r=>r.getAttribute("aria-pressed")==="true")),this.pendingForm=s.form,this.wear(s))}restore(i){i.target===this.pendingForm&&(this.pendingForm=null,!i.detail.fetchResponse?.contentType?.startsWith(C_)&&this.wear(this.previousCard))}wear(i){this.cardTargets.forEach(s=>{let r=s===i;this.wornClasses.forEach(a=>s.classList.toggle(a,r)),s.setAttribute("aria-pressed",r)}),this.badgeTargets.forEach(s=>{let r=i?.contains(s)?s.dataset.wornLabel:s.dataset.idleLabel??"";s.textContent=r,s.classList.toggle("hidden",r==="")}),this.defaultChipTargets.forEach(s=>{s.classList.toggle("hidden",i?.contains(s)??!1)})}};var U0="chat:message-posted",E_=200,H0="pp-gate-rescue-shown",gb="message_body",q0="message-button",L_="[data-premium-plus-gate-blocked]",k_=100,$0="premium_plus_gate",Wp=class extends u{static values={engaged:Boolean,eventsUrl:String,profileId:Number,lockedPlaceholder:String,rescueId:String,autoOpen:Boolean};connect(){this.boundPosted=()=>this.#a(),this.boundBeforeCache=()=>this.#c(),this.boundCancel=i=>this.#r(i),this.boundIntercept=i=>this.#u(i),this.boundCallAttempt=()=>this.#s(),this.boundBlocked=i=>this.#e(i),this.boundStream=()=>{this.locked&&requestAnimationFrame(()=>this.#m())},document.addEventListener(U0,this.boundPosted),document.addEventListener("turbo:before-cache",this.boundBeforeCache),document.addEventListener("turbo:before-stream-render",this.boundStream),this.element.addEventListener(dc,this.boundCallAttempt),this.element.addEventListener("cancel",this.boundCancel),document.addEventListener("click",this.boundBlocked,!0),this.element.open&&this.#s(),this.engagedValue&&this.#d(),this.autoOpenValue&&(this.autoOpenValue=!1,this.#i(),this.autoOpenTimeout=setTimeout(()=>this.#t(),k_))}disconnect(){document.removeEventListener(U0,this.boundPosted),document.removeEventListener("turbo:before-cache",this.boundBeforeCache),document.removeEventListener("turbo:before-stream-render",this.boundStream),this.element.removeEventListener(dc,this.boundCallAttempt),this.element.removeEventListener("cancel",this.boundCancel),document.removeEventListener("click",this.boundBlocked,!0),clearTimeout(this.autoOpenTimeout),this.boundComposer?.removeEventListener("click",this.boundReopen,!0);for(let i of["click","keydown"])document.removeEventListener(i,this.boundIntercept,!0)}reopen(){this.element.open||this.element.showModal()}dismiss(){if(this.dissolving)return;this.#f("dismissed");let i=this.#n();if(!i){this.element.close();return}this.dissolving=!0,this.element.classList.add("bottom-sheet--dissolving"),this.dissolveTimeout=setTimeout(()=>{this.dissolving=!1,this.element.close(),this.element.classList.remove("bottom-sheet--dissolving"),this.#o(),i.open||i.showModal()},E_)}upgrade(){this.#f("upgrade_clicked")}#e(i){i.target.closest?.(L_)&&(i.preventDefault(),i.stopImmediatePropagation(),this.#t())}#t(){this.reopen(),this.#s()}#i(){let i=new URL(window.location.href);i.searchParams.has($0)&&(i.searchParams.delete($0),window.history.replaceState(window.history.state,"",i.toString()))}#s(){this.shown||(this.shown=!0,this.#f("shown"))}#r(i){i.preventDefault(),this.dismiss()}#a(){this.locked||(this.reopen(),this.#d(),this.#s())}#n(){return!this.hasRescueIdValue||!this.rescueIdValue||this.rescueShown||this.#l()==="true"?null:document.getElementById(this.rescueIdValue)}#o(){this.rescueShown=!0,this.#h()}#l(){try{return window.sessionStorage.getItem(H0)}catch{return null}}#h(){try{return window.sessionStorage.setItem(H0,"true"),!0}catch{return!1}}#c(){clearTimeout(this.dissolveTimeout),this.dissolving=!1,this.element.classList.remove("bottom-sheet--dissolving"),this.element.close(),this.locked&&(this.engagedValue=!0)}#u(i){this.#g(i)&&(i.preventDefault(),i.stopImmediatePropagation(),this.reopen())}#g(i){let s=document.getElementById(gb);
407return s?i.type==="keydown"?i.key==="Enter"&&!i.shiftKey&&i.target===s:!!i.target.closest?.(`#${q0}`):!1}#d(){this.locked=!0,this.#m();for(let s of["click","keydown"])document.addEventListener(s,this.boundIntercept,!0);let i=document.getElementById(gb)?.closest("form");!i||this.boundComposer||(this.boundComposer=i,this.boundReopen=s=>{s.preventDefault(),s.stopPropagation(),this.reopen()},i.classList.add("opacity-50","cursor-pointer"),i.addEventListener("click",this.boundReopen,!0))}#m(){document.querySelectorAll(`#${q0} button`).forEach(s=>{s.disabled=!0});let i=document.getElementById(gb);i&&(i.disabled=!0,i.classList.add("pointer-events-none"),i.value="",this.hasLockedPlaceholderValue&&(i.placeholder=this.lockedPlaceholderValue))}#f(i){this.hasEventsUrlValue&&Is(this.eventsUrlValue,{event_type:i,profile_id:this.profileIdValue})}};var jp=class extends u{static values={eventsUrl:String,profileId:Number};connect(){this.boundBeforeCache=()=>this.element.close(),document.addEventListener("turbo:before-cache",this.boundBeforeCache)}disconnect(){document.removeEventListener("turbo:before-cache",this.boundBeforeCache)}shorts(){this.#e("shorts_clicked")}liveCam(){this.#e("live_cam_clicked")}#e(i){this.hasEventsUrlValue&&Is(this.eventsUrlValue,{event_type:i,profile_id:this.profileIdValue})}};var Kp=class extends u{static values={modalId:{type:String,default:"premium-plus-offer-modal"}};connect(){this.premiumPlusModal=document.getElementById(this.modalIdValue),this.boundOnSuccessModalClosed=this.onSuccessModalClosed.bind(this),this.element.addEventListener("close",this.boundOnSuccessModalClosed),this.navigatingAway=!1,this.boundOnTurboBeforeVisit=()=>{this.navigatingAway=!0},this.boundOnTurboLoad=()=>{this.navigatingAway=!1},document.addEventListener("turbo:before-visit",this.boundOnTurboBeforeVisit),document.addEventListener("turbo:load",this.boundOnTurboLoad)}disconnect(){this.element.removeEventListener("close",this.boundOnSuccessModalClosed),document.removeEventListener("turbo:before-visit",this.boundOnTurboBeforeVisit),document.removeEventListener("turbo:load",this.boundOnTurboLoad)}openFromPaymentSuccess(){this.premiumPlusModal&&(this.element.open?this.application.getControllerForElementAndIdentifier(this.element,"dialog")?.close():this.showOffer())}onSuccessModalClosed(){this.navigatingAway||this.showOffer()}showOffer(){if(!this.premiumPlusModal||this.premiumPlusModal.open)return;let i=this.application.getControllerForElementAndIdentifier(this.premiumPlusModal,"dialog");i?i.open():(this.premiumPlusModal.classList.remove("hidden"),this.premiumPlusModal.showModal()),this.premiumPlusModal.dispatchEvent(new CustomEvent("show-premium-subscription-modal"))}};var zp=class extends u{static targets=["planCard","planInput"];static outlets=["dialog"];static values={modalId:{type:String,default:"premium-plus-upgrade-offer-modal"},paymentModalId:{type:String,default:"payment-method-modal-premium-plus"},oneClickModalId:{type:String,default:"one-click-subscription-upgrade-modal"}};connect(){this.resumeUpgradeOfferOnPaymentClose=!1,this.navigatingAway=!1,this.boundOnPaymentModalOpened=this.onPaymentModalOpened.bind(this),this.boundOnPaymentModalClosed=this.onPaymentModalClosed.bind(this),this.boundOnOneClickModalClosed=this.onOneClickModalClosed.bind(this),this.boundOnTurboBeforeVisit=()=>{this.navigatingAway=!0},this.boundOnTurboLoad=()=>{this.navigatingAway=!1,this.resumeUpgradeOfferOnPaymentClose=!1};let i=this.#i(),s=this.#s();i&&(i.addEventListener("dialog:open",this.boundOnPaymentModalOpened),i.addEventListener("close",this.boundOnPaymentModalClosed)),s&&s.addEventListener("close",this.boundOnOneClickModalClosed),document.addEventListener("turbo:before-visit",this.boundOnTurboBeforeVisit),document.addEventListener("turbo:load",this.boundOnTurboLoad),this.#o(this.planCardTargets.find(r=>r.dataset.selected==="true"))}disconnect(){let i=this.#i(),s=this.#s();i&&(i.removeEventListener("dialog:open",this.boundOnPaymentModalOpened),i.removeEventListener("close",this.boundOnPaymentModalClosed)),s&&s.removeEventListener("close",this.boundOnOneClickModalClosed),document.removeEventListener("turbo:before-visit",this.boundOnTurboBeforeVisit),document.removeEventListener("turbo:load",this.boundOnTurboLoad)}selectPlan(i){let s=i.currentTarget;
407this.planCardTargets.forEach(r=>{r.dataset.selected="false",r.setAttribute("aria-checked","false")}),s.dataset.selected="true",s.setAttribute("aria-checked","true"),this.hasPlanInputTarget&&(this.planInputTarget.value=s.dataset.plan),this.#o(s)}onPaymentModalOpened(){let i=this.#t();i?.open&&(this.resumeUpgradeOfferOnPaymentClose=!0,this.#a(i))}onPaymentModalClosed(){!this.resumeUpgradeOfferOnPaymentClose||this.navigatingAway||this.#s()?.open||this.#e()}onOneClickModalClosed(){!this.resumeUpgradeOfferOnPaymentClose||this.navigatingAway||this.#i()?.open||this.#e()}#e(){let i=this.#t();if(!i||i.open){this.resumeUpgradeOfferOnPaymentClose=!1;return}this.#r(i),i.dispatchEvent(new CustomEvent("show-premium-subscription-modal")),this.resumeUpgradeOfferOnPaymentClose=!1}#t(){return document.getElementById(this.modalIdValue)}#i(){return this.hasDialogOutlet?this.dialogOutlet.element:document.getElementById(this.paymentModalIdValue)}#s(){return document.getElementById(this.oneClickModalIdValue)}#r(i){if(!i)return;let s=this.#n(i);if(s){s.open();return}i.classList.remove("hidden"),i.showModal()}#a(i){if(!i?.open)return;let s=this.#n(i);if(s){s.close();return}i.close()}#n(i){let s=this.application.getControllerForElementAndIdentifier(i,"dialog");return s||(window.Stimulus?window.Stimulus.getControllerForElementAndIdentifier(i,"dialog"):null)}#o(i){if(!i)return;let s=document.getElementById("sub-modal-plan-title-premium-plus"),r=document.getElementById("sub-modal-plan-price-premium-plus"),a=document.getElementById("sub-modal-today-price-premium-plus");s&&(s.textContent=i.dataset.planTitle),r&&(r.textContent=i.dataset.planPriceFormatted),a&&(a.textContent=i.dataset.planTodayPriceFormatted)}};var mb="character-progression:open",G0="character-progression:dialog-loaded",Yp=class extends u{static targets=["confirmDialog","confirmTitle","confirmSubtitle","confirmPrice","lengthPicker","lengthOption","trigger","toast"];static values={sceneUrl:String,sceneVideoUrl:String,settingsUrl:String,progressionDialogId:String,videoLength:{type:Number,default:5},photoPricing:Object,videoPricing:Object,photoCost:Number,videoCost5:Number,videoCost10:Number,photoConfirmed:Boolean,videoConfirmed:Boolean,photoNotificationType:String,videoNotificationType:String,photoTitle:String,videoTitle:String,photoSubtitle:String,videoSubtitle:String,requestedToast:String,errorToast:String};#e=null;#t=!1;#i=null;#s=null;#r=null;#a=!1;connect(){this.boundHighlightUnlockRow=this.#p.bind(this),this.boundClearForeignOpen=this.#f.bind(this),document.addEventListener(G0,this.boundHighlightUnlockRow),document.addEventListener(mb,this.boundClearForeignOpen)}disconnect(){clearTimeout(this.#i),clearTimeout(this.#r),document.removeEventListener(G0,this.boundHighlightUnlockRow),document.removeEventListener(mb,this.boundClearForeignOpen)}requestPhoto(){this.photoConfirmedValue?this.#o():this.#n("photo")}requestVideo(){this.videoConfirmedValue?this.#l():this.#n("video")}lockedTap(i){i.params.toastHtml?this.#v(i.params.toastHtml,{html:!0,duration:6e3,anchor:i.currentTarget}):this.#v(i.params.toast,{anchor:i.currentTarget})}openLockedLevel(i){this.#m(i.params.kind)&&(this.toastTarget.classList.add("hidden"),clearTimeout(this.#i))}selectLength(i){let s=i.currentTarget;this.videoLengthValue=Number(s.dataset.length),this.#d(),this.lengthOptionTargets.forEach(r=>{let a=Number(r.dataset.length)===this.videoLengthValue;r.setAttribute("aria-checked",String(a)),r.classList.toggle("bg-white/15",a),r.classList.toggle("text-white",a),r.classList.toggle("text-grey-default",!a)}),this.#e==="video"&&this.#u()}confirm(){if(this.#e==="video"){this.videoConfirmedValue||(this.videoConfirmedValue=!0,Re.markAsShown(this.videoNotificationTypeValue)),this.closeConfirm(),this.#l();return}this.photoConfirmedValue||(this.photoConfirmedValue=!0,Re.markAsShown(this.photoNotificationTypeValue)),this.closeConfirm(),this.#o()}closeConfirm(){this.confirmDialogTarget.close()}#n(i){this.#e=i,this.confirmTitleTarget.textContent=i==="video"?this.videoTitleValue:this.photoTitleValue,this.confirmSubtitleTarget.textContent=i==="video"?this.videoSubtitleValue:this.photoSubtitleValue,this.lengthPickerTarget.classList.toggle("hidden",i!=="video"),this.lengthPickerTarget.classList.toggle("grid",i==="video"),this.#u(),this.confirmDialogTarget.showModal()}#o(){this.#h(this.sceneUrlValue)}#l(){this.#h(this.sceneVideoUrlValue,{duration:String(this.videoLengthValue)})}async#h(i,s=null){if(!this.#t){this.#t=!0,this.#c(!0);try{let r={responseKind:"turbo-stream"};
407s&&(r.body=JSON.stringify(s),r.contentType="application/json");let a=await H(i,r);a.ok?a.contentType?.includes("turbo-stream")||this.#v(this.requestedToastValue):this.#v(this.errorToastValue)}catch{this.#v(this.errorToastValue)}finally{this.#t=!1,this.#c(!1)}}}#c(i){this.triggerTargets.forEach(s=>{s.disabled=i})}#u(){let i=this.#e==="video"?this.videoPricingValue[this.videoLengthValue]:this.photoPricingValue;hi(this.confirmPriceTarget,i?.price!==void 0?i:{price:this.#g()})}#g(){return this.#e==="video"?this.videoLengthValue===10?this.videoCost10Value:this.videoCost5Value:this.photoCostValue}#d(){this.settingsUrlValue&&ve(this.settingsUrlValue,{body:JSON.stringify({universal_chat_settings:{preferred_video_length:this.videoLengthValue}}),contentType:"application/json"}).catch(()=>{})}#m(i){if(!this.progressionDialogIdValue)return!1;this.#s=i,clearTimeout(this.#r),this.#r=setTimeout(()=>{this.#s=null},1e4);let s={dialogId:this.progressionDialogIdValue,handled:!1};return this.#a=!0,document.dispatchEvent(new CustomEvent(mb,{detail:s})),this.#a=!1,s.handled||(this.#s=null),s.handled}#f(){this.#a||(this.#s=null,clearTimeout(this.#r))}#p(i){let s=this.#s;if(!s||i.detail?.dialogId!==this.progressionDialogIdValue)return;this.#s=null,clearTimeout(this.#r);let r=document.getElementById(this.progressionDialogIdValue),a=r?.querySelector(`[data-universal-unlock="${s}"]`);a&&(a.classList.add("border","border-[#4846e6]"),r.querySelector(`[data-universal-unlock-callout="${s}"]`)?.classList.remove("hidden"),requestAnimationFrame(()=>a.scrollIntoView({block:"nearest"})),this.#b(r))}#b(i){let s=i.querySelector("[data-expandable-target='content']");!s||!s.classList.contains("hidden")||i.querySelector("[data-controller='expandable'] button")?.click()}#v(i,{html:s=!1,duration:r=2400,anchor:a=null}={}){s?this.toastTarget.innerHTML=i:this.toastTarget.textContent=i,this.toastTarget.classList.remove("hidden"),this.#T(a),clearTimeout(this.#i),this.#i=setTimeout(()=>this.toastTarget.classList.add("hidden"),r)}#T(i){if(!i){this.toastTarget.style.left="";return}let s=this.element.getBoundingClientRect(),r=i.getBoundingClientRect(),a=this.toastTarget.offsetWidth/2,n=r.left+r.width/2-s.left;n=Math.max(a,Math.min(n,s.width-a)),this.toastTarget.style.left=`${n}px`}};var Xp=class extends u{static targets=["page","rootTitle","pageTitle","backButton","closeButton","body","dropWrap","dropMenu","dropCheck","valueLabel","customStyleInput","customStyleCounter","customStyleError","customStyleSave","error"];static values={updateUrl:String,paramsRoot:{type:String,default:"universal_chat_settings"},customStyleUrl:String,premiumPlus:Boolean,premiumPlusUrl:String,errorMessage:String};connect(){this.saving=!1,this.reloadOnClose=!1,this.boundCloseDrops=this.closeDropsOnOutsideClick.bind(this),this.boundReloadIfNeeded=this.reloadIfNeeded.bind(this),this.boundCancelReload=this.cancelReload.bind(this),document.addEventListener("click",this.boundCloseDrops),this.element.addEventListener("close",this.boundReloadIfNeeded),document.addEventListener("turbo:before-visit",this.boundCancelReload)}disconnect(){document.removeEventListener("click",this.boundCloseDrops),this.element.removeEventListener("close",this.boundReloadIfNeeded),document.removeEventListener("turbo:before-visit",this.boundCancelReload)}cancelReload(){this.reloadOnClose=!1}reloadIfNeeded(){this.reloadOnClose&&window.location.reload()}openPage(i){this.showPage(i.currentTarget.dataset.page,"in")}back(){this.showPage("root","out")}showPage(i,s){this.closeDrops(),this.hideError();let r="";this.pageTargets.forEach(n=>{let l=n.dataset.pageId===i;n.classList.toggle("hidden",!l),n.classList.toggle("flex",l),n.classList.remove("usheet-page-in","usheet-page-out"),l&&(n.classList.add(s==="in"?"usheet-page-in":"usheet-page-out"),r=n.dataset.pageTitle||"")});let a=i==="root";if(this.rootTitleTarget.classList.toggle("hidden",!a),this.pageTitleTarget.classList.toggle("hidden",a),this.pageTitleTarget.textContent=r,this.backButtonTarget.classList.toggle("hidden",a),this.backButtonTarget.classList.toggle("flex",!a),this.closeButtonTarget.classList.toggle("invisible",!a),this.bodyTarget.scrollTop=0,i==="custom_style"&&this.hasCustomStyleInputTarget){let n=this.customStyleInputTarget;n.focus(),n.setSelectionRange(n.value.length,n.value.length)}}toggleDrop(i){i.stopPropagation();let s=i.currentTarget.dataset.drop,r=this.dropMenuTargets.find(n=>n.dataset.dropId===s),a=r.classList.contains("hidden");this.closeDrops(),a&&(r.classList.remove("hidden"),r.classList.add("flex"),i.currentTarget.classList.add("!bg-white/14"))}
407closeDrops(){this.dropMenuTargets.forEach(i=>{i.classList.add("hidden"),i.classList.remove("flex")}),this.dropWrapTargets.forEach(i=>{i.querySelector("button").classList.remove("!bg-white/14")})}closeDropsOnOutsideClick(i){i.target.closest("[data-universal-settings-target='dropWrap']")||this.closeDrops()}async pickDrop(i){if(i.stopPropagation(),this.saving)return;let s=i.currentTarget,{field:r,value:a,label:n,drop:l}=s.dataset,d=this.checkDropOption(s);this.closeDrops(),await this.save({[r]:a})?this.setValueLabel(l,n,s.dataset.pricing):d&&this.checkDropOption(d)}checkDropOption(i){let s=i.closest("[data-universal-settings-target='dropMenu']"),r=null;return s.querySelectorAll("[data-action*='pickDrop']").forEach(a=>{let n=a.querySelector("[data-universal-settings-target='dropCheck']");a!==i&&!n.classList.contains("opacity-0")&&(r=a),n.classList.toggle("opacity-0",a!==i)}),r}async toggleField(i){if(this.saving)return;let s=i.currentTarget,r=s.dataset.field,a=s.getAttribute("aria-checked")!=="true";s.setAttribute("aria-checked",String(a)),s.dataset.media&&this.refreshMediaCount(),await this.save({[r]:a})||(s.setAttribute("aria-checked",String(!a)),s.dataset.media&&this.refreshMediaCount())}refreshMediaCount(){let i=this.element.querySelectorAll("[data-media][aria-checked='true']").length,s=this.valueLabelTargets.find(r=>r.dataset.valueFor==="media_items");s&&(s.textContent=s.textContent.replace(/\d+/,String(i)))}async pickCard(i){if(this.saving)return;let s=i.currentTarget;if(s.dataset.locked==="true"&&!this.premiumPlusValue){this.redirectToPremiumPlus(s.dataset.placement);return}let{field:r,value:a,label:n}=s.dataset,l=this.selectCard(s,r);await this.save({[r]:a})?this.setValueLabel(s.dataset.valueFor||(r==="model_key"?"model":"length"),n):l&&this.selectCard(l,r)}selectCard(i,s){let r=[...i.parentElement.querySelectorAll(`[data-field='${s}']`)],a=r.find(n=>n!==i&&n.className===n.dataset.selectedClass);return r.forEach(n=>{n.className=n===i?n.dataset.selectedClass:n.dataset.unselectedClass}),a}async pickTimezone(i){if(this.saving)return;let s=i.currentTarget,r=this.selectTimezoneRow(s);await this.save({chat_timezone:s.dataset.value})?(this.setValueLabel("timezone",s.dataset.shortLabel),this.back()):r&&this.selectTimezoneRow(r)}selectTimezoneRow(i){let s=[...i.parentElement.querySelectorAll("[data-universal-settings-target='timezoneRow']")],r=s.find(a=>a!==i&&a.className===a.dataset.selectedClass);return s.forEach(a=>{a.className=a===i?a.dataset.selectedClass:a.dataset.unselectedClass,a.querySelector("[data-universal-settings-target='timezoneTick']").classList.toggle("hidden",a!==i)}),r}customStyleChanged(){let i=this.customStyleInputTarget;this.customStyleCounterTarget.textContent=`${i.value.length}/${i.maxLength}`,this.customStyleSaveTarget.disabled=!this.customStyleSavable(),this.customStyleErrorTarget.classList.add("hidden")}customStyleSavable(){return!(this.customStyleInputTarget.value.trim()==="")||this.customStyleSaveTarget.dataset.saved==="true"}async saveCustomStyle(){let i=this.customStyleSaveTarget;i.disabled=!0;let s=i.textContent;i.textContent=i.dataset.savingLabel||"Saving\u2026";try{let r=await ve(this.customStyleUrlValue,{body:JSON.stringify({chat_customization:{custom_style:this.customStyleInputTarget.value}}),responseKind:"json"});if(r.ok){let a=this.customStyleInputTarget.value.trim()==="";i.dataset.saved=String(!a),this.setValueLabel("custom_style",a?"":i.dataset.setLabel),this.back()}else{let a=await r.json.catch(()=>({}));this.customStyleErrorTarget.textContent=a.error||this.errorMessageValue,this.customStyleErrorTarget.classList.remove("hidden")}}catch{this.customStyleErrorTarget.textContent=this.errorMessageValue,this.customStyleErrorTarget.classList.remove("hidden")}finally{i.textContent=s,i.disabled=!this.customStyleSavable()}}async save(i){this.hideError(),this.saving=!0;try{let s=await ve(this.updateUrlValue,{body:JSON.stringify({[this.paramsRootValue]:i}),responseKind:"json"});if(!s.ok){let n=await s.json.catch(()=>({}));return this.showError(n.error),!1}let r=await s.json.catch(()=>({})),a=Object.keys(r.changed_values||{});return(a.includes("chat_mode")||a.includes("progression_ui_enabled"))&&(this.reloadOnClose=!0),!0}catch{return this.showError(),!1}finally{this.saving=!1}}showError(i=null){this.errorTarget.textContent=i||this.errorMessageValue,this.errorTarget.classList.remove("hidden")}hideError(){this.hasErrorTarget&&this.errorTarget.classList.add("hidden")}setValueLabel(i,s,r=null){let a=this.valueLabelTargets.find(n=>n.dataset.valueFor===i);a&&(r?hi(a,JSON.parse(r)):a.textContent=s)}redirectToPremiumPlus(i="chat_customization_model"){this.trackUpsellClick(i),this.cancelReload(),this.element.open&&this.element.close(),Be.visit(this.premiumPlusUrlValue)}upsell(i){this.redirectToPremiumPlus(i.currentTarget.dataset.placement)}trackUpsellClick(i){typeof mixpanel>"u"||!mixpanel.track||mixpanel.track("chat customisation options upsell clicked",$t({placement:i}))}};var Qp=class extends u{static values={url:String};chipClicked(){let i=this.element.querySelector("[data-toggle-target='toggleComponent']");i&&i.classList.contains("hidden")||this.#e("chip_clicked")}nudgeClicked(i){this.#e("nudge_clicked",{state:i.params.state})}packClicked(i){this.#e("pack_clicked",{quantity:i.params.quantity})}buyClicked(i){this.#e("buy_clicked",{label:i.params.label})}#e(i,s={}){let r={event_type:i};
407Object.entries(s).forEach(([a,n])=>{n!=null&&n!==""&&(r[`payload[${a}]`]=n)}),XC(this.urlValue,r)}};var pb="token-chip-confirmation-modal",W0="token-chip-success-modal",Jp=class extends u{connect(){this.selectedAmount=null,this.selectedPrice=null,this.dialogs=[pb,W0].map(i=>this.element.querySelector(`#${i}`)).filter(Boolean),this.dialogs.forEach(i=>document.body.append(i)),this.navigating=!1,this.boundMarkNavigating=()=>{this.navigating=!0},this.boundOnSubmitStart=()=>{this.navigating=!1},this.boundOnSubmitEnd=this.#t.bind(this),document.addEventListener("turbo:before-visit",this.boundMarkNavigating),this.#e()?.addEventListener("turbo:submit-start",this.boundOnSubmitStart),this.#e()?.addEventListener("turbo:submit-end",this.boundOnSubmitEnd)}disconnect(){document.removeEventListener("turbo:before-visit",this.boundMarkNavigating),this.#e()?.removeEventListener("turbo:submit-start",this.boundOnSubmitStart),this.#e()?.removeEventListener("turbo:submit-end",this.boundOnSubmitEnd),[pb,W0].forEach(i=>document.getElementById(i)?.remove())}choose(i){this.remember(i);let s=this.#e();if(!s)return;let r=s.querySelector("input[name='token_amount']");r&&(r.value=this.selectedAmount);let a=s.querySelector("input[name='expected_price']");a&&(a.value=this.selectedPrice);let n=s.querySelector("[data-token-chip-packs-target='confirmPrice']");n&&(n.textContent=i.params.formattedPrice),s.showModal()}remember(i){this.selectedAmount=i.params.quantity,this.selectedPrice=i.params.price}getCurrentTokenQuantity(){return this.selectedAmount}getCurrentTokenPrice(){return this.selectedPrice}#e(){return document.getElementById(pb)}#t(){this.navigating||this.#i()}#i(){let i=this.#e()?.querySelector("[data-controller~='loading-button-state']");i&&this.application.getControllerForElementAndIdentifier(i,"loading-button-state")?.resetButtonState()}};var x_=8,Zp=class extends u{static targets=["frame"];static values={url:String};open(){!this.hasFrameTarget||this.#e()||(this.frameTarget.getAttribute("src")?this.frameTarget.reload():this.frameTarget.setAttribute("src",this.urlValue),this.frameTarget.loaded?.then(()=>this.#t()).catch(()=>{}))}#e(){return this.frameTarget.parentElement?.classList.contains("hidden")??!1}#t(){let i=this.frameTarget.parentElement;if(!i)return;i.style.transform="";let s=x_-this.frameTarget.getBoundingClientRect().left;s>0&&(i.style.transform=`translateX(${Math.round(s)}px)`)}};var I_=`
408class PcmWriter extends AudioWorkletProcessor {
409  process(inputs) {
410    const ch = inputs[0] && inputs[0][0]
411    if (ch) this.port.postMessage(ch.slice(0))
412    return true
413  }
414}
415registerProcessor('pcm-writer', PcmWriter)
416`;function A_(i){let s=0,r=new Int16Array(i.length);for(let a=0;a<i.length;a++){let n=Math.max(-1,Math.min(1,i[a]));r[a]=n<0?n*32768:n*32767,s+=n*n}return{pcm:r,level:Math.sqrt(s/i.length)}}var ef=class{#e=null;#t=null;#i=[];#s=0;constructor({onChunk:s}){this.onChunk=s,this.recording=!1,this.level=0}async start(){if(!this.#e)try{let s=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0}});this.#t=s;let r=new window.AudioContext({sampleRate:16e3});this.#e=r,r.state==="suspended"&&await r.resume();let a=URL.createObjectURL(new window.Blob([I_],{type:"text/javascript"}));await r.audioWorklet.addModule(a),URL.revokeObjectURL(a);let n=r.createMediaStreamSource(s),l=new window.AudioWorkletNode(r,"pcm-writer");n.connect(l),l.connect(r.destination),l.port.onmessage=d=>this.ingest(d.data),this.recording=!0}catch(s){throw this.stop(),s}}stop(){this.#t?.getTracks().forEach(s=>s.stop()),this.#t=null,this.#e?.close().catch(()=>{}),this.#e=null,this.#r(),this.level=0,this.recording=!1}ingest(s){this.#i.push(s),this.#s+=s.length,!(this.#s<1600)&&this.#r()}#r(){if(this.#s===0)return;let s=new Float32Array(this.#s),r=0;for(let l of this.#i)s.set(l,r),r+=l.length;this.#i=[],this.#s=0;let{pcm:a,level:n}=A_(s);this.level=n,this.onChunk?.(a.buffer)}};var af=16e3,tf=2,fb=44,P_=1,vb=1,j0=6e4,V_=.25,M_=af*V_,__=100,B_=200,O_=4,K0=.12,F_=3e3,D_=35e3,R_="(prefers-reduced-motion: reduce)",z0=60,N_="gen-ai--message-form",U_="send_intent",Tb="meter",bb="playback",Y0="status";function sf(i,s,r){for(let a=0;a<r.length;a++)i.setUint8(s+a,r.charCodeAt(a))}function X0(i,s){let r=document.createElement("input");return r.type="hidden",r.name=i,r.value=s,r}function rf(i){let s=Math.max(0,Math.floor(i||0)),r=s%z0;return`${Math.floor(s/z0)}:${r.toString().padStart(2,"0")}`}function H_(i){let s=i.reduce((d,m)=>d+m.length,0)*tf,r=new ArrayBuffer(fb+s),a=new DataView(r);sf(a,0,"RIFF"),a.setUint32(4,fb-8+s,!0),sf(a,8,"WAVE"),sf(a,12,"fmt "),a.setUint32(16,16,!0),a.setUint16(20,P_,!0),a.setUint16(22,vb,!0),a.setUint32(24,af,!0),a.setUint32(28,af*vb*tf,!0),a.setUint16(32,vb*tf,!0),a.setUint16(34,tf*8,!0),sf(a,36,"data"),a.setUint32(40,s,!0);let n=new Int16Array(r,fb),l=0;for(let d of i)n.set(d,l),l+=d.length;return new window.Blob([r],{type:"audio/wav"})}var nf=class extends u{static targets=["inputRow","bar","meter","meterBar","playback","playButton","playIcon","pauseIcon","position","elapsed","status","notice","announcement","cancelButton","stopButton","sendButton"];static values={url:String,recordingLabel:String,reviewLabel:String,playLabel:String,pauseLabel:String,transcribingLabel:String,errorLabel:String};#e=null;#t=!1;#i=[];#s=[];#r=null;#a=null;#n=null;#o=!1;#l=null;#h=null;#c=0;#u=null;#g=0;#d=null;disconnect(){this.#O(),this.#v(),clearTimeout(this.#n)}async record(){if(this.#e||this.#t||this.#o||this.#l)return;this.#j(),this.#i=[],this.#s=[];let i=new ef({onChunk:s=>this.#i.push(new Int16Array(s))});this.#e=i,this.#t=!0;try{await i.start()}catch{this.#O(),this.#U();return}finally{this.#t=!1}if(this.#e!==i){i.stop();return}
416this.#N(!0),this.stopButtonTarget.focus(),this.#q(),this.#S(),this.#r=setTimeout(()=>this.stop(),j0)}stop(){if(!this.#e||this.#t||this.#o)return;let i=this.#f();i&&this.#p(i)}async send(i){if(this.#t||this.#o||this.#x())return;if(this.#A()){this.#U();return}let s=this.#l||this.#f();if(!s)return;this.#o=!0,this.#b(),this.#V(i?.currentTarget);let{text:r,voiceToken:a}=await this.#C(s);if(this.#o=!1,!!this.element.isConnected){if(this.#x()||this.#A()){this.#m(),this.#U();return}this.#v(),this.#R(),this.#N(!1),r?this.#E(r,a):this.#U()}}#m(){for(let i of this.#F())i.disabled=!1,i.setAttribute("aria-busy","false");this.#D(bb)}cancel(){this.#o||!this.#e&&!this.#l||(this.#O(),this.#v(),this.#R(),this.#N(!1),this.#$())}togglePlayback(){this.#d&&(this.#d.paused?this.#d.play()?.catch(()=>{}):this.#d.pause())}#f(){if(!this.#e)return null;this.#O();let i=this.#P();if(i<M_)return this.#_(),null;try{let s=H_(this.#i);return this.#c=i/af,s}catch{return this.#_(),null}}#p(i){this.#l=i,this.#h=URL.createObjectURL(i),this.#d=new window.Audio(this.#h),this.#d.addEventListener("timeupdate",()=>this.#I()),this.#d.addEventListener("play",()=>this.#y(!0)),this.#d.addEventListener("pause",()=>this.#y(!1)),this.#d.addEventListener("ended",()=>this.#T()),this.#D(bb),this.#M(!1),this.#y(!1),this.#I(),this.announcementTarget.textContent=this.reviewLabelValue,this.playButtonTarget.focus()}#b(){this.#d?.pause()}#v(){this.#d?.pause(),this.#d=null,this.#l=null,this.#c=0,this.#i=[],this.#h&&(URL.revokeObjectURL(this.#h),this.#h=null)}#T(){this.#d.currentTime=0,this.#y(!1),this.#I()}#y(i){this.playIconTarget.classList.toggle("hidden",i),this.pauseIconTarget.classList.toggle("hidden",!i),this.playButtonTarget.setAttribute("aria-label",i?this.pauseLabelValue:this.playLabelValue)}#S(){this.#g=performance.now(),this.#L()}#w(){clearTimeout(this.#u),this.#u=null}#L(){let i=(performance.now()-this.#g)/1e3;this.elapsedTarget.textContent=`${rf(i)} / ${rf(j0/1e3)}`,this.#u=setTimeout(()=>this.#L(),B_)}#I(){let i=rf(this.#d?.currentTime);this.positionTarget.textContent=`${i} / ${rf(this.#c)}`}async#C(i){let s=new FormData;s.append("audio",i,"dictation.wav"),s.append(U_,"1");let r=new window.AbortController,a=setTimeout(()=>r.abort(),D_);try{let n=await H(this.urlValue,{body:s,responseKind:"json",signal:r.signal});if(!n.ok)return{};let{text:l,voice_token:d}=await n.json,m=(l||"").trim();return m.length<2?{}:{text:m,voiceToken:d}}catch{return{}}finally{clearTimeout(a)}}#E(i,s){let r=this.element.querySelector("textarea");r&&(r.value=i,r.dispatchEvent(new Event("input",{bubbles:!0})),this.#B(r.form,s))}#k(){let i=this.element.querySelector("textarea")?.form;return i?this.application.getControllerForElementAndIdentifier(i,N_):null}#x(){return!!this.#k()?.hasSubmitted}#A(){return!!this.#k()?.editModeValue}#B(i,s){if(!i)return;let r=[X0("dictated","1")];s&&r.push(X0(ru,s));for(let n of r)i.appendChild(n);let a=this.#k();try{a?a.submitChatMessage():i.requestSubmit()}finally{for(let n of r)n.remove()}}#_(){this.#O(),this.#N(!1),this.#$(),this.#U()}#P(){return this.#i.reduce((i,s)=>i+s.length,0)}#O(){clearTimeout(this.#r),clearTimeout(this.#a),this.#w(),this.#e?.stop(),this.#e=null}#N(i){this.barTarget.classList.toggle("hidden",!i),this.barTarget.classList.toggle("flex",i),this.inputRowTarget.classList.toggle("hidden",i),this.announcementTarget.textContent=i?this.recordingLabelValue:"",i||this.#w()}#$(){this.element.querySelector("textarea")?.focus()}#D(i){let s=i===bb;this.meterTarget.classList.toggle("hidden",i!==Tb),this.elapsedTarget.classList.toggle("hidden",i!==Tb),this.statusTarget.classList.toggle("hidden",i!==Y0),this.playbackTarget.classList.toggle("hidden",!s),this.playbackTarget.classList.toggle("flex",s)}#M(i){this.stopButtonTarget.classList.toggle("hidden",!i),this.stopButtonTarget.classList.toggle("flex",i)}#V(i){this.#D(Y0);for(let s of this.#F())s.disabled=!0;i?.setAttribute("aria-busy","true"),this.announcementTarget.textContent=this.transcribingLabelValue}#R(){this.#w(),this.#D(Tb),this.#M(!0);for(let i of this.#F())i.disabled=!1,i.setAttribute("aria-busy","false")}#F(){return[this.cancelButtonTarget,this.stopButtonTarget,this.sendButtonTarget]}#j(){clearTimeout(this.#n),this.noticeTarget.classList.add("hidden")}#U(){this.announcementTarget.textContent=this.errorLabelValue,this.noticeTarget.classList.remove("hidden"),clearTimeout(this.#n),this.#n=setTimeout(()=>this.noticeTarget.classList.add("hidden"),F_)}#q(){window.matchMedia?.(R_).matches||this.#W()}#W(){let i=this.meterBarTargets;this.#s.push(this.#e?.level||0),this.#s.length>i.length&&this.#s.shift();let s=i.length-this.#s.length;
416i.forEach((r,a)=>{let n=this.#s[a-s]||0,l=K0+Math.min(1,n*O_)*(1-K0);r.style.scale=`1 ${l.toFixed(3)}`}),this.#a=setTimeout(()=>this.#W(),__)}};var q_=3e3,$_=100,of=class extends u{static targets=["container","overlay","processingState","timeoutState"];static values={status:String,statusUrl:String,retryEvent:String};#e=0;#t=null;connect(){this.statusValue&&(this.#i(),this.#s(),document.body.style.overflow="hidden"),this.statusValue==="processing"&&(this.#r(),document.addEventListener("visibilitychange",this.#o))}disconnect(){this.#a(),document.removeEventListener("visibilitychange",this.#o),document.body.style.overflow=""}statusValueChanged(i){i==="timeout"&&(this.processingStateTargets.forEach(s=>s.classList.add("hidden")),this.timeoutStateTargets.forEach(s=>s.classList.remove("hidden")))}close(){this.#a(),this.containerTarget.classList.add("translate-y-full"),this.overlayTarget.classList.add("hidden"),document.body.style.overflow="",setTimeout(()=>{this.containerTarget.classList.add("hidden"),this.containerTarget.classList.remove("transition-transform","duration-300","ease-out","translate-y-full")},300)}retry(){this.close(),this.retryEventValue&&document.dispatchEvent(new CustomEvent(this.retryEventValue,{bubbles:!0}))}#i(){let i=new URL(window.location.href);i.searchParams.has("PaymentRequestId")&&(i.searchParams.delete("PaymentRequestId"),i.searchParams.delete("status"),window.history.replaceState(window.history.state,"",i.toString()))}#s(){this.overlayTarget.classList.remove("hidden"),this.containerTarget.classList.remove("hidden"),this.containerTarget.classList.add("translate-y-full"),this.containerTarget.offsetHeight,this.containerTarget.classList.add("transition-transform","duration-300","ease-out"),this.containerTarget.classList.remove("translate-y-full")}#r(){this.#e=0,this.#t=setInterval(()=>this.#n(),q_)}#a(){clearInterval(this.#t),this.#t=null}async#n(){if(this.#e++,this.#e>=$_){this.#a(),this.statusValue="timeout";return}try{let i=await Ee(this.statusUrlValue,{responseKind:"json"});if(!i.ok)return;let s=await i.json;s&&s.redirect_url&&(this.#a(),window.location.href=s.redirect_url)}catch{}}#o=()=>{!document.hidden&&this.#t&&this.#n()}};var lf=class extends u{static targets=["video"];connect(){this.hasVideoTarget&&(this.motion=window.matchMedia("(prefers-reduced-motion: reduce)"),this.motion.addEventListener("change",this.#t),document.addEventListener("visibilitychange",this.#t),document.addEventListener("turbo:before-cache",this.#i),window.addEventListener("pagehide",this.#i),this.observer=new MutationObserver(this.#t),this.observer.observe(this.element,{attributes:!0,attributeFilter:["class"]}),this.#t())}disconnect(){this.observer?.disconnect(),this.motion?.removeEventListener("change",this.#t),document.removeEventListener("visibilitychange",this.#t),document.removeEventListener("turbo:before-cache",this.#i),window.removeEventListener("pagehide",this.#i),this.#i()}playing(){this.#e()?this.videoTarget.dataset.playing="true":this.#i()}failed(){this.#i()}#e(){return this.element.isConnected&&!this.element.classList.contains("hidden")&&!this.element.classList.contains("translate-y-full")&&document.visibilityState!=="hidden"&&!this.motion?.matches}#t=()=>{if(!this.#e())return this.#i();if(this.playingRequest)return;let i={};this.playingRequest=i,this.videoTarget.muted=!0,this.videoTarget.src=this.videoTarget.dataset.src,this.videoTarget.play().catch(()=>{this.playingRequest===i&&this.#i()})};#i=()=>{if(this.playingRequest=null,!this.hasVideoTarget)return;let i=this.videoTarget;i.dataset.playing="false",i.hasAttribute("src")&&(i.pause(),i.removeAttribute("src"),i.load())}};var hf=class extends u{static targets=["original","amount"];static values={endsAt:String,originalLabel:String};connect(){this.endsAtValue&&(this.timer=setInterval(()=>this.#e(),1e3),this.#e())}disconnect(){clearInterval(this.timer)}#e(){Date.now()<=Date.parse(this.endsAtValue)||(this.hasOriginalTarget&&(this.originalTarget.hidden=!0),this.amountTarget.textContent=this.originalLabelValue,clearInterval(this.timer))}};var cf=class extends u{connect(){this.layout=this.element.parentElement,this.resizeObserver=new ResizeObserver(()=>this.#e()),this.resizeObserver.observe(this.element),this.#e()}disconnect(){this.resizeObserver.disconnect(),this.layout.style.removeProperty("--chat-discount-banner-height")}#e(){this.layout.style.setProperty("--chat-discount-banner-height",`${this.element.offsetHeight}px`)}dismiss(){this.element.remove()}};var df=class extends u{static values={notificationType:String};markShown(){return Re.markAsShown(this.notificationTypeValue)}async follow(i){i.preventDefault();let{href:s}=i.currentTarget;this._closeModal(),await this.markShown(),window.location.href=s}_closeModal(){let i=this.element.querySelector("[data-controller='modal-component']");i&&this.application.getControllerForElementAndIdentifier(i,"modal-component")?.closeModal()}};var uf=class extends u{static targets=["button","menu"];static values={bottomOffset:{type:Number,default:8}};disconnect(){this.close()}toggle(){this.isOpen?this.close():this.open()}open(){this.menuTarget.showPopover(),this.position(),this.buttonTarget.setAttribute("aria-expanded","true")}close(){this.isOpen&&(this.menuTarget.isConnected&&this.menuTarget.hidePopover(),this.buttonTarget.setAttribute("aria-expanded","fal
416se"))}hide(i){!this.isOpen||this.element.contains(i.target)||this.close()}hideOnEscape(i){i.key!=="Escape"||!this.isOpen||(this.close(),this.buttonTarget.focus())}hideOnFocusOut(i){!this.isOpen||!i.relatedTarget||this.element.contains(i.relatedTarget)||this.close()}navigate(i){if(!["ArrowDown","ArrowUp","Home","End"].includes(i.key))return;i.preventDefault(),this.isOpen||this.open();let s=this.items,r=s.indexOf(document.activeElement),a={ArrowDown:r+1>=s.length?0:r+1,ArrowUp:r<=0?s.length-1:r-1,Home:0,End:s.length-1}[i.key];s[a]?.focus()}position(){let i=this.element.closest("nav").getBoundingClientRect(),s=this.buttonTarget.getBoundingClientRect(),r=this.menuTarget,a=r.getBoundingClientRect().height;Object.assign(r.style,{position:"fixed",inset:"auto",margin:"0",left:`${i.right+8}px`,top:`${Math.max(8,s.bottom+this.bottomOffsetValue-a)}px`})}get items(){return Array.from(this.menuTarget.querySelectorAll('[role="menuitem"]'))}get isOpen(){return this.buttonTarget.getAttribute("aria-expanded")==="true"}};T.register("achievement-collection",Un);T.register("sortable",YS);T.register("event-dispatch",io);T.register("confetti",so);T.register("call-bar",ao);T.register("chat-header-expander",no);T.register("notification-dot",oo);T.register("textarea-autogrow",ra);T.register("reveal",lo);T.register("media-guard",ho);T.register("toggle",co);T.register("toggle-modal",uo);T.register("toggle-dialog",go);T.register("sub-card-button",mo);T.register("token-tier-picker",po);T.register("scroll-snap-carousel",fo);T.register("tabs-panels",vo);T.register("composer-scroll-fade",To);T.register("details-dismiss",bo);T.register("tabs-panels-trigger",yo);T.register("char-count",So);T.register("resize-textarea",wo);T.register("tooltips",Co);T.register("navbar-tooltip",Eo);T.register("load-recaptcha-v2",Lo);T.register("loading-button-state",ko);T.register("proactive-gift-claim",xo);T.register("rename-chat",Io);T.register("homepage-gender-dropdown",Ao);T.register("adaptive-card-label",Po);T.register("link-gate",Vo);T.register("navigation-loader",Mo);T.register("loading-payment-button",_o);T.register("message-scroll",Bo);T.register("messages--creator-vault-carousel",Oo);T.register("messages--stream-buffer",Fo);T.register("creator-vault--paywall",Do);T.register("audio",Ro);T.register("audio-v2",No);T.register("companions-chat",Uo);T.register("companions--audio",Ho);T.register("companions--feedback-modal",qo);T.register("companions--welcome-modal",$o);T.register("companions--gift-selector",Go);T.register("companions--gift-confirmation",Wo);T.register("companions--skip-level",jo);T.register("profile-review--feedback-trigger",Ko);T.register("profile-review--feedback",zo);T.register("message-edit-form",Yo);T.register("profile-toggle",Xo);T.register("load-audio-v2",Qo);T.register("disable-save-image",Jo);T.register("create-menu",Zo);T.register("create-video--character-picker",tl);T.register("create-video--project",il);T.register("create-video--gallery",sl);T.register("create-video--feedback",rl);T.register("create-video--paywall",al);T.register("create-video--studio--page",ol);T.register("create-video--studio--scene-builder",hl);T.register("create-video--studio--sheet",cl);T.register("create-video--studio--mode-switch",dl);T.register("create-video--studio--chip-filter",ul);T.register("create-video--studio--custom-character",gl);T.register("create-video--studio--project-card",ml);T.register("create-video--studio--lightbox",pl);T.register("subscription",fl);T.register("one-click-modal",vl);T.register("premium-plus-benefits",Tl);T.register("annual-upsell",bl);T.register("deactivate-form-button",yl);T.register("tokens",Sl);T.register("token-gtm-tracker",wl);T.register("percentage-counter",Cl);T.register("datepicker",El);T.register("regenerate-message",Ll);T.register("create-flow",kl);T.register("loading-button-cma",xl);T.register("email-verification-check",Il);T.register("email-verification-resend",Al);T.register("email-verification-change",Pl);T.register("post-payment-resend-countdown",Vl);T.register("post-payment-signup-verification-modal-component",Ml);T.register("auto-dismiss",_l);T.register("page-reloader",Bl);T.register("post-purchase-return-retry",Ol);T.register("page-section",Fl);T.register("editable",Dl);T.register("server-form",Rl);T.register("phone-call-feedback",Nl);T.register("delete-account",Ul);T.register("main",ql);T.register("timer",$l);T.register("contact-us",Gl);T.register("users",Wl);T.register("chat-search",jl);T.register("chat-customization",Kl);T.register("user-personas",zl);T.register("user-personas--feedback",Yl);T.register("persona-height",Xl);T.register("persona-dropdown",Ql);T.register("persona-list",Jl);T.register("persona-dialogs",Zl);T.register("progression-dialog",eh);T.register("chat-character-limit",th);T.register("render-message-options",ih);T.register("clipboard",sh);T.register("mpc--cta-attention",rh);T.register("mpc--icon-attention",oh);T.register("mpc--purchase-notifier",lh);T.register("mpc--pack-modal-loader",hh);T.register("mpc--modal-container",ch);T.register("mpc--lobby",dh);T.register("mpc--buy-all",uh);T.register("profiles-list",gh);T.register("profile-banner",mh);T.register("modal",ph);T.register("post-purchase-return-processing-modal",fh);T.register("unsubscribe-flow",vh);T.register("message-regenerate-modal-v2",Th);T.register("dynamic-promotions-timer",bh);T.register("dynamic-promotions",yh);T.register("email-validation",Sh);
416T.register("twentyfour-metrics",wh);T.register("carousel",Ch);T.register("banner-component",Eh);T.register("modal-component",Lh);T.register("button-component",kh);T.register("counter-component",xh);T.register("promotion-timer-component",Ih);T.register("mixpanel-tracker",Ah);T.register("mixpanel-session",Ph);T.register("payment-gtm-tracker",Vh);T.register("confirm-content-pack",Mh);T.register("content-pack-gallery",_h);T.register("content-pack-exit-popup",Bh);T.register("refresh-content-pack",Fh);T.register("regenerate-image-message-v2",Dh);T.register("generate-image-form",Rh);T.register("character-selection",Nh);T.register("scroll-to-top",Uh);T.register("video-element",Hh);T.register("gallery-card-component",qh);T.register("conversion-card-component",$h);T.register("expandable",Gh);T.register("dropdown-component",Wh);T.register("homepage-banners",jh);T.register("new-homepage-campaign-banner",Kh);T.register("new-homepage-hover-zoom-guard",zh);T.register("mobile-scroll-behavior",Yh);T.register("content-pack-feedback",Xh);T.register("ab-testing--carousel",Qh);T.register("ab-testing--subscription",Jh);T.register("candy-assistant--chat-form",Zh);T.register("mobile-navbar-visibility",ec);T.register("message-options",tc);T.register("message-feedback",ic);T.register("responsive-placeholder",sc);T.register("message-form-v2",rc);T.register("message-ask-v2",ac);T.register("video-loader",nc);T.register("conversations--show",oc);T.register("conversations--scroll-to-bottom",lc);T.register("conversations--delayed-sidebar-update",ca);T.register("local-timezone",hc);T.register("timezone-detection",cc);T.register("video-calls--entry",uc);T.register("conversations--video-suggestion",gc);T.register("conversations--video-upsell-suggestion",mc);T.register("conversations--favorite-button-component",pc);T.register("messages--media-grid-carousel",fc);T.register("messages--moderation-edit",vc);T.register("pwa",Tc);T.register("messages--video-generation",bc);T.register("messages--video-generation-modal-visibility",yc);T.register("generate-image--video-generation",Sc);T.register("notification-badge",wc);T.register("achievement-sheet",Cc);T.register("achievement-toast",Ec);T.register("account-notifications",Lc);T.register("generate-image--video-toggle",kc);T.register("collections--menu-actions",xc);T.register("candy-shorts--modal",Ic);T.register("candy-shorts--picker-sheet",Ac);T.register("candy-shorts--library",Pc);T.register("candy-shorts--library-filters",Vc);T.register("candy-shorts--sale",Mc);T.register("promo-lobby",_c);T.register("candy-shorts--clips-overlay",Bc);T.register("candy-shorts--clips-feed",Oc);T.register("shorts--player",Rc);T.register("shorts--watch-time",Uc);T.register("candy-shorts--watch-progress",Hc);T.register("candy-shorts--completion",qc);T.register("candy-creators--lobby-filters",$c);T.register("shorts--progress",Gc);T.register("shorts--chrome",Wc);T.register("shorts--entry-layout",jc);T.register("candy-shorts--premium-modal",Kc);T.register("candy-shorts--buy-modal",zc);T.register("shorts--paywall",Yc);T.register("candy-shorts--adult-tracking",Xc);T.register("dialog",Qc);T.register("character-preview",Zc);T.register("character-preview-modal",td);T.register("dialog-v2",id);T.register("bottom-sheet",sd);T.register("tokens--one-time-purchase",rd);T.register("messages--image-mode-toggle",ad);T.register("messages--delayed-render",nd);T.register("messages--immediate-render",od);T.register("messages--premium-paywall-loader",ld);T.register("text-bubble",hd);T.register("user-settings",cd);T.register("auto-top-up-settings",dd);T.register("auto-top-up-upsell",ud);T.register("character-video-preview",gd);T.register("live-actions",md);T.register("cams--show",Td);T.register("cams--token-price-component",bd);T.register("cams--live-video",wd);T.register("cams--media-packs",Ed);T.register("cams--media-pack-feedback",Ld);T.register("cams--viewers-count",kd);T.register("cams--private-session-feedback-modal",xd);T.register("live-audio",Id);T.register("interactive-stories",Ad);T.register("interactive-stories--chat-input",Pd);T.register("interactive-stories--modal",Vd);T.register("interactive-stories--trust-ring",Md);T.register("live-audio-duration",_d);T.register("live-audio-feedback-modal",Bd);T.register("dismissible",Od);T.register("live-actions--feedback-modal",Fd);T.register("greeting-edit-modal",Dd);T.register("character-counter",Rd);T.register("tabs-activation",Nd);T.register("conversations--left-sidebar",Ud);T.register("conversations--chat-filters",Hd);T.register("content-pack-countdown",qd);T.register("exclusive-countdown",$d);T.register("exclusive-purchase-success",Gd);T.register("welcome-offer-banner",Wd);T.register("welcome-offer-modal",jd);T.register("two-step-extra-discount",Kd);T.register("two-step-extra-modal",zd);T.register("gen-ai--image-mode-settings",Yd);T.register("toggle-switch",Xd);T.register("gen-ai--image-settings-modal",Qd);T.register("gen-ai--image-mode",Jd);T.register("gen-ai--nsfw-toggle",Zd);T.register("gen-ai--suggestions-desktop-drawer",eu);T.register("gen-ai--suggestions-toggle",tu);T.register("gen-ai--suggestions-scroll-reset",iu);T.register("gen-ai--chat-input",su);T.register("gen-ai--message-form",au);T.register("gen-ai--message-edit-form",nu);T.register("gen-ai--image-amount-selector",ou);T.register("gen-ai--video-duration-selector",lu);T.register("gen-ai--suggestions",cu);T.register("non-supported-language-hint",du);T.register("chat-supported-language-hint",uu);T.register("gen-ai--video-mode",gu);T.register("gen-ai--mode-toggle-animation",mu);T.register("horizontal-scroll",pu);T.register("scroll-fade",fu);T.register("horizontal-scroll-to-element",vu);T.register("home--gender-selection-tab",Tu);T.register("home--gender-dropdown",bu);T.register("home--content-search",yu);T.register("home--search--filter-tags",Su);T.register("home--search--search-input",wu);T.register("home--search--mobile-search-input",Cu);T.register("home--search--mobile-search-bar",Eu);T.register("tour",xu);T.register("tour-tooltip",Iu);T.register("universal-bar-tour-card",Au);T.register("proactive-media-reminder",Pu);T.register("proactive-media-account",Vu);T.register("dropdown",Mu);T.register("slider",_u);T.register("card-selector",Bu);T.register("chat-mode-selector",Ou);T.register("pill-select",Fu);T.register("pill-search",Du);T.register("pill-show-all",Ru);T.register("video-autoplay",Nu);T.register("characters--new-short",Uu);T.register("characters-v2--first-step",Hu);T.register("characters-v2--preloaded-flow",qu);T.register("cmai--step-tracker",$u);T.register("characters-v2--new4-carousel",Gu);T.register("characters-v2--new4-age-wheel",Wu);T.register("characters-v2--loading-poll",ju);T.register("characters-v2--face-regeneration-grid",Ku);T.register("random-name-generator",zu);T.register("subscription-intent",Yu);T.register("hide-error-on-input",Xu);T.register("filter-config",Qu);T.register("gen-ai--media-grid",Ju);T.register("characters-v2--edit-attribute-form",Zu);T.register("characters-v2--edit-attribute-moderation",eg);T.register("characters-v2--attribute-card-component",tg);T.register("characters-v2--preview-form",ig);T.register("characters-v2--info-attributes",sg);T.register("characters-v2--step-navigation",rg);T.register("characters-v2--selection-not-made",ag);T.register("live-actions--audio",og);T.register("messages--message-alternative",lg);T.register("toast-redirect",hg);T.register("copy-to-input",cg);T.register("characters-v2--custom-prompt-base",ii);T.register("characters-v2--custom-prompt-pill",dg);T.register("characters-v2--custom-prompt-card",ug);T.register("subscription-tier-tabs",gg);T.register("reset-chat-modal",mg);T.register("reset-chat-trigger",pg);T.register("message-gtm-tracker",fg);T.register("visitors--message-form",vg);T.register("visitor-tracking",Tg);T.register("live-actions-chat-input",bg);T.register("live-actions-chat",yg);T.register("live-actions--xp-manager",Sg);T.register("live-actions--xp-progress-bar",wg);T.register("live-actions--xp-gain-notification",Cg);T.register("horizontal-scroll-shadow",Eg);T.register("frame-prefetch",Lg);T.register("feed--mobile",or);T.register("feed--desktop",lr);T.register("feed--swipe-up-overlay",Ig);T.register("discover--mobile",Mg);T.register("discover--desktop",_g);T.register("discover--overlay",Bg);T.register("permission-checkbox",Og);T.register("permission-import-export",Fg);T.register("characters-v2--visitors--show-registration",Dg);T.register("video-duration-selection",Rg);T.register("video-style-selection",Ng);T.register("memory-form",Ug);T.register("memories-scroll",Hg);T.register("delete-confirmation",qg);T.register("premium-onboarding",$g);T.register("locale-switcher",Gg);T.register("upgrade-modal",Wg);T.register("invite-share",jg);T.register("invite-link-form",Kg);T.register("google-one-tap",zg);
416T.register("consent-fb-cookies",Yg);T.register("tiktok-pixel",Xg);T.register("uta-api",Zg);T.register("uta-visitor-id",em);T.register("library--line-clamp-expand",tm);T.register("library--read-more",im);T.register("auth-view-toggle",sm);T.register("group-chat--scene-generation",rm);T.register("group-chat--scene-picker",am);T.register("group-chat--content-guardrails",nm);T.register("group-chat--selection",om);T.register("group-chat--continuation",lm);T.register("group-chat--feedback",hm);T.register("group-chat--feedback-trigger",cm);T.register("group-chat--welcome",dm);T.register("custom-roleplay--welcome",um);T.register("exclusive-profiles--feedback-modal",gm);T.register("group-chat--filters",mm);T.register("cmrp--search",pm);T.register("cmrp--card-filter",fm);T.register("cmrp--submit-gate",vm);T.register("cmrp--show-more",Tm);T.register("cmrp--adaptive-footer",bm);T.register("cmrp--loading-poll",ym);T.register("cmrp--draft-text",Sm);T.register("admin-role-auto-save",wm);T.register("chat-gallery--filter-bar",Cm);T.register("chat-gallery--landscape-card",Em);T.register("shared--filter-pills",Lm);T.register("toast-stack",km);T.register("roleplay--generate-scene",xm);T.register("roleplay--content-guardrails",Im);T.register("roleplay--onboarding",Am);T.register("character-progression--onboarding",Pm);T.register("creator-studio",Vm);T.register("lightbox",Mm);T.register("creator-studio--persona",Bm);T.register("creator-studio--feedback-dialog",Om);T.register("creator-studio--profile-pictures",Fm);T.register("creator-studio--mobile--studio",Dm);T.register("creator-studio--mobile--character-switcher",Rm);T.register("creator-studio--mobile--persona",Nm);T.register("creator-studio--mobile--profile-pictures",Um);T.register("creator-studio--mobile--voices",Hm);T.register("creator-studio--desktop-intro",qm);T.register("creator-studio--preset-picker",$m);T.register("companions-scenes-drawer",Gm);T.register("companions-gifts-dialog",Wm);T.register("companions-relationship-indicator",jm);T.register("character-progression-indicator",Km);T.register("auto-memory-badge",zm);T.register("roleplay--generate-scene-video",Ym);T.register("roleplay--scene-video-settings",Xm);T.register("roleplay--gifts",Qm);T.register("gifts--tabs",Jm);T.register("roleplay--gift-confirmation",Zm);T.register("companion-gift-xp",ep);T.register("bulk-select",tp);T.register("lazy-video",ip);T.register("assistant-offer-tracking",sp);T.register("assistant-offer-modal",rp);T.register("lifelike--message-form",ap);T.register("messages--reply-composer",np);T.register("lifelike--message-context-menu",op);T.register("messages--lifelike--reaction-picker",lp);T.register("messages--lifelike--reaction-overlay",hp);T.register("lifelike--gift-banner",cp);T.register("lifelike--gift-confirmation",dp);T.register("lifelike--gifts",up);T.register("lifelike--media-settings",mp);T.register("lifelike--locked-input-tooltip",pp);T.register("lifelike--status",fp);T.register("lifelike--delayed-message",vp);T.register("lifelike--delayed-reveal",Tp);T.register("lifelike--voice-note-player",bp);T.register("image-retry",yp);T.register("cmai-code-signup-form",Sp);T.register("cmai-code-signup-otp-input",wp);T.register("roulette--intro",Cp);T.register("roulette--webcam",Ep);T.register("roulette--play",Lp);T.register("throughlinecare--helpline-click",kp);T.register("roulette--idle-player",xp);T.register("roulette--action-queue",Ip);T.register("roulette--chat",Ap);T.register("roulette--billing",Pp);T.register("roulette--guest",Vp);T.register("roulette--upgrade-modal",Mp);T.register("roulette--inactivity",_p);T.register("roulette--debug",Bp);T.register("payment-methods",Op);T.register("candy-shop--countdown",Fp);T.register("candy-shop--intro",Dp);T.register("candy-shop--buy-bar",Rp);T.register("candy-shop--product-page",Np);T.register("candy-shop--item-view-tracker",Up);T.register("candy-shop--rating",Hp);T.register("candy-shop--send-sheet",qp);T.register("candy-shop--smart-chips",$p);T.register("candy-shop--wardrobe",Gp);T.register("premium-plus-gate",Wp);T.register("premium-plus-rescue",jp);T.register("premium-plus-offer",Kp);T.register("premium-plus-post-purchase-upgrade-offer",zp);T.register("universal-bar",Yp);T.register("universal-settings",Xp);T.register("token-chip-events",Qp);T.register("token-chip-packs",Jp);T.register("token-chip-popover",Zp);T.register("voice-dictation",nf);T.register("marketing--payment-status-modal",of);T.register("membership-hero-component",lf);T.register("discounts--token-price-component",hf);T.register("conversations--discount-banner-component",cf);T.register("yume-closure-modal",df);T.register("sidebar-more-menu",uf);document.addEventListener("turbo:load",function(){G_()});var gf;function G_(){gf&&document.removeEventListener("click",gf),gf=function(i){let s=i.target.closest(".toggle-popup");if(s){let a=s.dataset.modal;a&&document.querySelectorAll(`.${a}`).forEach(n=>
416{n.classList.toggle("hidden")});return}if(i.target.closest(".success-modal-close")){document.querySelectorAll(".success-modal").forEach(a=>a.classList.add("hidden"));return}if(i.target.closest(".feedback-modal-close")){document.querySelectorAll(".feedback-modal").forEach(a=>a.classList.add("hidden"));return}if(i.target.closest(".gallery-modal-button")){document.querySelectorAll(".gallery-modal").forEach(a=>a.classList.add("hidden"));return}if(i.target.closest(".gallery-modal")){let a=i.target,n=a.classList&&a.classList.contains("modal-photo"),l=a.closest&&a.closest(".gallery-modal-button"),d=a.classList&&(a.classList.contains("pfp-button")||a.classList.contains("pfp-button-action"));!n&&!l&&!d&&document.querySelectorAll(".gallery-modal").forEach(m=>m.classList.add("hidden"));return}if(i.target.closest(".password-toggle-icon")){let a=i.target.closest(".flex-col");if(a){let n=a.querySelector("input[type='password'], input[type='text']");n&&(n.type=n.type==="password"?"text":"password")}return}if(i.target.closest(".password-modal-close-icon")){let a=document.getElementById("password_change_success");a&&a.classList.add("hidden")}},document.addEventListener("click",gf)}function yb(){let i=document.getElementById("pfp-carousel");if(!i)return;let s=0,r=Array.from(i.querySelectorAll(".carousel-item")),a=Array.from(i.querySelectorAll(".dot"));if(r.length===0)return;d(s);let n=i.querySelector("#nextBtn"),l=i.querySelector("#prevBtn");n&&(n.removeEventListener("click",n._carouselHandler),n._carouselHandler=function(){s=(s+1)%r.length,d(s)},n.addEventListener("click",n._carouselHandler)),l&&(l.removeEventListener("click",l._carouselHandler),l._carouselHandler=function(){s=(s-1+r.length)%r.length,d(s)},l.addEventListener("click",l._carouselHandler)),a.forEach(function(m){m.removeEventListener("click",m._carouselHandler),m._carouselHandler=function(){let v=parseInt(m.dataset.index,10);d(v)},m.addEventListener("click",m._carouselHandler)});function d(m){r.forEach(function(v){v.classList.remove("active")}),a.forEach(function(v){v.classList.remove("active")}),r[m]&&r[m].classList.add("active"),a[m]&&a[m].classList.add("active")}}document.addEventListener("turbo:load",yb);document.addEventListener("turbo:frame-load",i=>{["conversation-container-show","profile-partial-turbo"].includes(i.target.id)&&yb()});document.addEventListener("turbo:before-stream-render",i=>{let s=i.detail.render;i.detail.render=r=>{s(r),r.getAttribute("target")==="pfp-carousel"&&yb()}});Turbo.StreamActions.redirect_to=function(){if(this.getAttribute("clear_cache")==="true"){Turbo.cache.clear(),Turbo.visit(this.getAttribute("url"),{shouldCacheSnapshot:!1});return}Turbo.visit(this.getAttribute("url"))};Turbo.StreamActions.hard_redirect_to=function(){window.location.href=this.getAttribute("url")};Turbo.StreamActions.close_modal=function(){let i=this.getAttribute("target");if(i){let s=document.querySelector(i);s&&s.close()}else document.querySelectorAll("dialog").forEach(s=>{s.close()})};Turbo.StreamActions.open_modal=function(){let i=this.getAttribute("modal_id"),s=document.querySelector(i),r=window.Stimulus?.getControllerForElementAndIdentifier(s,"dialog");if(r){r.open();return}s.classList.remove("hidden"),setTimeout(()=>{try{s.showModal()}catch{}},100)};Turbo.StreamActions.remove_attribute=function(){let i=this.getAttribute("target"),s=this.getAttribute("attribute"),r=document.querySelector(i);r&&r.hasAttribute(s)&&r.removeAttribute(s)};Turbo.StreamActions.dispatch_event=function(){let i=this.getAttribute("event"),s=this.getAttribute("target"),r=this.getAttribute("detail");if(!i)return;let a={};if(r)try{a=JSON.parse(r)}catch{a={value:r}}let n=a&&Object.keys(a).length>0?new CustomEvent(i,{detail:a,bubbles:!0}):new Event(i),l=!s||s==="document"?document:document.querySelector(s);l&&l.dispatchEvent(n)};var pf={logger:typeof console<"u"?console:void 0,WebSocket:typeof WebSocket<"u"?WebSocket:void 0},tt={log(...i){this.enabled&&(i.push(Date.now()),pf.logger.log("[ActionCable]",...i))}},Na=()=>new Date().getTime(),mf=i=>(Na()-i)/1e3,Ua=class{constructor(s){this.visibilityDidChange=this.visibilityDidChange.bind(this),this.connection=s,this.reconnectAttempts=0}start(){this.isRunning()||(this.startedAt=Na(),delete this.stoppedAt,this.startPolling(),addEventListener("visibilitychange",this.visibilityDidChange),tt.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`))}stop(){this.isRunning()&&(this.stoppedAt=Na(),this.stopPolling(),removeEventListener("visibilitychange",this.visibilityDidChange),tt.log("ConnectionMonitor stopped"))}isRunning(){return this.startedAt&&!this.stoppedAt}recordMessage(){this.pingedAt=Na()}recordConnect(){this.reconnectAttempts=0,delete this.disconnectedAt,tt.log("ConnectionMonitor recorded connect")}recordDisconnect(){this.disconnectedAt=Na(),tt.log("ConnectionMonitor recorded disconnect")}startPolling(){this.stopPolling(),this.poll()}stopPolling(){clearTimeout(this.pollTimeout)}poll(){this.pollTimeout=setTimeout((()=>{this.reconnectIfStale(),this.poll()}),this.getPollInterval())}getPollInterval(){let{staleThreshold:s,reconnectionBackoffRate:r}=this.constructor,a=Math.pow(1+r,Math.min(this.reconnectAttempts,10)),l=(this.reconnectAttempts===0?1:r)*Math.random();return s*1e3*a*(1+l)}reconnectIfStale(){this.connectionIsStale()&&(tt.log(`ConnectionMonitor detected stale c
416onnection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${mf(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`),this.reconnectAttempts++,this.disconnectedRecently()?tt.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${mf(this.disconnectedAt)} s`):(tt.log("ConnectionMonitor reopening"),this.connection.reopen()))}get refreshedAt(){return this.pingedAt?this.pingedAt:this.startedAt}connectionIsStale(){return mf(this.refreshedAt)>this.constructor.staleThreshold}disconnectedRecently(){return this.disconnectedAt&&mf(this.disconnectedAt)<this.constructor.staleThreshold}visibilityDidChange(){document.visibilityState==="visible"&&setTimeout((()=>{(this.connectionIsStale()||!this.connection.isOpen())&&(tt.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`),this.connection.reopen())}),200)}};Ua.staleThreshold=6;Ua.reconnectionBackoffRate=.15;var J0={message_types:{welcome:"welcome",disconnect:"disconnect",ping:"ping",confirmation:"confirm_subscription",rejection:"reject_subscription"},disconnect_reasons:{unauthorized:"unauthorized",invalid_request:"invalid_request",server_restart:"server_restart",remote:"remote"},default_mount_path:"/cable",protocols:["actioncable-v1-json","actioncable-unsupported"]},{message_types:Ra,protocols:Sb}=J0,W_=Sb.slice(0,Sb.length-1),Q0=[].indexOf,Ha=class{constructor(s){this.open=this.open.bind(this),this.consumer=s,this.subscriptions=this.consumer.subscriptions,this.monitor=new Ua(this),this.disconnected=!0}send(s){return this.isOpen()?(this.webSocket.send(JSON.stringify(s)),!0):!1}open(){if(this.isActive())return tt.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`),!1;{let s=[...Sb,...this.consumer.subprotocols||[]];return tt.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${s}`),this.webSocket&&this.uninstallEventHandlers(),this.webSocket=new pf.WebSocket(this.consumer.url,s),this.installEventHandlers(),this.monitor.start(),!0}}close({allowReconnect:s}={allowReconnect:!0}){if(s||this.monitor.stop(),this.isOpen())return this.webSocket.close()}reopen(){if(tt.log(`Reopening WebSocket, current state is ${this.getState()}`),this.isActive())try{return this.close()}catch(s){tt.log("Failed to reopen WebSocket",s)}finally{tt.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`),setTimeout(this.open,this.constructor.reopenDelay)}else return this.open()}getProtocol(){if(this.webSocket)return this.webSocket.protocol}isOpen(){return this.isState("open")}isActive(){return this.isState("open","connecting")}triedToReconnect(){return this.monitor.reconnectAttempts>0}isProtocolSupported(){return Q0.call(W_,this.getProtocol())>=0}isState(...s){return Q0.call(s,this.getState())>=0}getState(){if(this.webSocket){for(let s in pf.WebSocket)if(pf.WebSocket[s]===this.webSocket.readyState)return s.toLowerCase()}return null}installEventHandlers(){for(let s in this.events){let r=this.events[s].bind(this);this.webSocket[`on${s}`]=r}}uninstallEventHandlers(){for(let s in this.events)this.webSocket[`on${s}`]=function(){}}};Ha.reopenDelay=500;Ha.prototype.events={message(i){if(!this.isProtocolSupported())return;let{identifier:s,message:r,reason:a,reconnect:n,type:l}=JSON.parse(i.data);switch(this.monitor.recordMessage(),l){case Ra.welcome:return this.triedToReconnect()&&(this.reconnectAttempted=!0),this.monitor.recordConnect(),this.subscriptions.reload();case Ra.disconnect:return tt.log(`Disconnecting. Reason: ${a}`),this.close({allowReconnect:n});case Ra.ping:return null;case Ra.confirmation:return this.subscriptions.confirmSubscription(s),this.reconnectAttempted?(this.reconnectAttempted=!1,this.subscriptions.notify(s,"connected",{reconnected:!0})):this.subscriptions.notify(s,"connected",{reconnected:!1});case Ra.rejection:return this.subscriptions.reject(s);default:return this.subscriptions.notify(s,"received",r)}},open(){if(tt.log(`WebSocket onopen event, using '${this.getProtocol()}
416' subprotocol`),this.disconnected=!1,!this.isProtocolSupported())return tt.log("Protocol is unsupported. Stopping monitor and disconnecting."),this.close({allowReconnect:!1})},close(i){if(tt.log("WebSocket onclose event"),!this.disconnected)return this.disconnected=!0,this.monitor.recordDisconnect(),this.subscriptions.notifyAll("disconnected",{willAttemptReconnect:this.monitor.isRunning()})},error(){tt.log("WebSocket onerror event")}};var j_=function(i,s){if(s!=null)for(let r in s){let a=s[r];i[r]=a}return i},wb=class{constructor(s,r={},a){this.consumer=s,this.identifier=JSON.stringify(r),j_(this,a)}perform(s,r={}){return r.action=s,this.send(r)}send(s){return this.consumer.send({command:"message",identifier:this.identifier,data:JSON.stringify(s)})}unsubscribe(){return this.consumer.subscriptions.remove(this)}},Cb=class{constructor(s){this.subscriptions=s,this.pendingSubscriptions=[]}guarantee(s){this.pendingSubscriptions.indexOf(s)==-1?(tt.log(`SubscriptionGuarantor guaranteeing ${s.identifier}`),this.pendingSubscriptions.push(s)):tt.log(`SubscriptionGuarantor already guaranteeing ${s.identifier}`),this.startGuaranteeing()}forget(s){tt.log(`SubscriptionGuarantor forgetting ${s.identifier}`),this.pendingSubscriptions=this.pendingSubscriptions.filter((r=>r!==s))}startGuaranteeing(){this.stopGuaranteeing(),this.retrySubscribing()}stopGuaranteeing(){clearTimeout(this.retryTimeout)}retrySubscribing(){this.retryTimeout=setTimeout((()=>{this.subscriptions&&typeof this.subscriptions.subscribe=="function"&&this.pendingSubscriptions.map((s=>{tt.log(`SubscriptionGuarantor resubscribing ${s.identifier}`),this.subscriptions.subscribe(s)}))}),500)}},Eb=class{constructor(s){this.consumer=s,this.guarantor=new Cb(this),this.subscriptions=[]}create(s,r){let a=s,n=typeof a=="object"?a:{channel:a},l=new wb(this.consumer,n,r);return this.add(l)}add(s){return this.subscriptions.push(s),this.consumer.ensureActiveConnection(),this.notify(s,"initialized"),this.subscribe(s),s}remove(s){return this.forget(s),this.findAll(s.identifier).length||this.sendCommand(s,"unsubscribe"),s}reject(s){return this.findAll(s).map((r=>(this.forget(r),this.notify(r,"rejected"),r)))}forget(s){return this.guarantor.forget(s),this.subscriptions=this.subscriptions.filter((r=>r!==s)),s}findAll(s){return this.subscriptions.filter((r=>r.identifier===s))}reload(){return this.subscriptions.map((s=>this.subscribe(s)))}notifyAll(s,...r){return this.subscriptions.map((a=>this.notify(a,s,...r)))}notify(s,r,...a){let n;return typeof s=="string"?n=this.findAll(s):n=[s],n.map((l=>typeof l[r]=="function"?l[r](...a):void 0))}subscribe(s){this.sendCommand(s,"subscribe")&&this.guarantor.guarantee(s)}confirmSubscription(s){tt.log(`Subscription confirmed ${s}`),this.findAll(s).map((r=>this.guarantor.forget(r)))}sendCommand(s,r){let{identifier:a}=s;return this.consumer.send({command:r,identifier:a})}},Lb=class{constructor(s){this._url=s,this.subscriptions=new Eb(this),this.connection=new Ha(this),this.subprotocols=[]}get url(){return K_(this._url)}send(s){return this.connection.send(s)}connect(){return this.connection.open()}disconnect(){return this.connection.close({allowReconnect:!1})}ensureActiveConnection(){if(!this.connection.isActive())return this.connection.open()}addSubProtocol(s){this.subprotocols=[...this.subprotocols,s]}};function K_(i){if(typeof i=="function"&&(i=i()),i&&!/^wss?:/i.test(i)){let s=document.createElement("a");return s.href=i,s.href=s.href,s.protocol=s.protocol.replace("http","ws"),s.href}else return i}function Z0(i=z_("url")||J0.default_mount_path){return new Lb(i)}function z_(i){let s=document.head.querySelector(`meta[name='action-cable-${i}']`);if(s)return s.getAttribute("content")}var eE={};eE.cable=Z0();window.App=eE;document.addEventListener("turbo:load",function(){document.querySelectorAll("img").forEach(function(s){s.addEventListener("contextmenu",function(r){r.preventDefault()})})});window.toggleOverflow=()=>{document.getElementById("app").classList.toggle("overflow-hidden")};document.querySelector('[name="service-worker-enabled"]')&&"serviceWorker"in navigator&&navigator.serviceWorker.register("/service-worker.js").then(function(i){}).catch(function(i){});document.addEventListener("turbo:frame-missing",i=>{i.preventDefault();let{detail:{response:s,visit:r}}=i;r(s.url)});})();
417/*! Bundled license information:
418
419lottie-web/build/player/lottie_light.js:
420  (*!
421   Transformation Matrix v2.0
422   (c) Epistemex 2014-2015
423   www.epistemex.com
424   By Ken Fyrstenberg
425   Contributions by leeoniya.
426   License: MIT, header required.
427   *)
428
429@hotwired/turbo/dist/turbo.es2017-esm.js:
430  (*!
431  Turbo 8.0.23
432  Copyright © 2026 37signals LLC
433   *)
434
435sortablejs/modular/sortable.esm.js:
436  (**!
437   * Sortable 1.15.7
438   * @author	RubaXa   <[email protected]>
439   * @author	owenm    <[email protected]>
440   * @license MIT
441   *)
442*/;

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.