1import{I as Re,ag as Me,a as qe}from"./common-4ebc591d.js";import{_ as Ne}from"./vdlVoiceProvider-11da6e38.js";import{bw as Oe,aQ as s,as as Q,o as m,g as S,w as v,b as r,aW as n,eU as Le,a as t,g8 as $e,dd as ze,eV as Be,eR as D,d as de,eW as je,h as R,eE as We,fe as Ke,fz as Ye,a4 as Qe,aV as b,aS as He,aR as Je,ap as Xe,bn as Ze,g9 as ea,ga as aa,t as L,eS as Y,dl as ve,c as pe,fS as oa,fy as sa,e_ as ta}from"./vendor-147ef0d1.js";import{e as ia,h as na,i as ge,d as la,b as _e,s as ra,j as ca}from"./tts.services-608353da.js";import{v as ua}from"./vdl2SendToMessagesDialog-0b595708.js";import{A as da}from"./AIVoiceTabs-4a0978e9.js";import{a as va,b as pa,T as ga,h as _a,c as fa,d as ha,i as ma}from"./ttsVoices-016d5446.js";import{v as Ta}from"./scriptDetection-022944bf.js";import"./vdlRelativeDate-ec503c86.js";import"./playerTime-42955481.js";import"./vdlTabs-463f8eea.js";(function(){try{var p=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};p.SENTRY_RELEASE={id:"[email protected]"};var g=new p.Error().stack;g&&(p._sentryDebugIds=p._sentryDebugIds||{},p._sentryDebugIds[g]="e7027304-2b9a-4e9b-9c7f-03ca940ae022",p._sentryDebugIdIdentifier="sentry-dbid-e7027304-2b9a-4e9b-9c7f-03ca940ae022")}catch{}})();const ya=Oe("ttsVoicesStore",()=>{const p=s([]),g=s([]);return{ttsVoices:p,ttsGeneratedAudios:g,fetchVoices:async()=>{const c=await ia();p.value=c.data},fetchGeneratedAudios:async c=>{const _=await na(c),{rows:d}=_.data;return g.value=d,_.data}}}),Sa=t("h2",{id:"secured-file-dialog-title",class:"title-large black-opacity-87"}," Secure file ",-1),Va={class:"vdl2-file-name-field"},wa=t("label",{class:"dialog-description"}," The generated audio file will be securely stored in your Voice123 account. This action is required to download or share the audio file. ",-1),Ia=Q({__name:"Vdl2SecuredFileDialog",props:{open:{type:Boolean,default:!1},audioData:{default:null},themeColor:{}},emits:["confirm","cancel"],setup(p,{expose:g,emit:T}
1){const k=p,c=s(""),_=s(null),d=s(k.open),A=f=>{c.value=f},V=()=>{d.value=!0},w=()=>{d.value=!1},P=()=>{T("cancel"),d.value=!1,c.value="",_.value=null},M=()=>{if(!c.value||c.value.trim()===""){_.value="File name is required.";return}T("confirm",{audioData:k.audioData,fileName:c.value.trim()}),c.value="",_.value=null};return g({open:V,close:w}),(f,I)=>d.value?(m(),S(n(je),{key:0,open:d.value,"onUpdate:open":I[0]||(I[0]=h=>d.value=h),"max-width":"lg","theme-color":f.themeColor},{title:v(()=>[Sa]),default:v(()=>[r(n(Le),null,{default:v(()=>[t("div",Va,[r(n($e),{"model-value":c.value,"max-length":70,placeholder:"File name here","use-counter":!0,error:_.value,"onUpdate:modelValue":A,onKeydown:ze(M,["enter"])},null,8,["model-value","error","onKeydown"])]),wa]),_:1}),r(n(Be),null,{default:v(()=>[r(n(D),{variant:"ghost",onClick:P},{default:v(()=>[de("Cancel")]),_:1}),r(n(D),{variant:"primary",onClick:M},{default:v(()=>[de("Confirm")]),_:1})]),_:1})]),_:1},8,["open","theme-color"])):R("",!0)}});const ba={class:"vdl2-ai-voices-form-section small-elevate"},Aa={class:"vdl2-script-selector"},Ca={class:"voice-selector-info-section"},Ea={class:"voice-name"},Da={class:"voice-provider"},ka=t("span",null,"Powered by",-1),Pa=t("span",null,"CREATE A NEW AI VOICE",-1),xa=t("span",null,"UPGRADE FOR UNLIMITED AI VOICES",-1),Fa=t("span",null,"FIND AI VOICES",-1),Ga={class:"vdl2-script-field"},Ua={key:0,class:"vdl2-instructions-field"},Ra={class:"vdl2-generate-button"},Ma=t("span",null,"GENERATE",-1),qa={class:"vdl2-ai-voices-generated"},Na=t("h6",null,"Generated AI voiceover",-1),Oa={class:"vdl2-ai-generated-list"},La={class:"voice-selector-info-section"},$a={class:"voice-header"},za={class:"voice-name"},Ba={class:"voice-time-ago"},ja={class:"voice-script truncate"},Wa={key:0},Ka=Q({__name:"aiVoicesForm",setup(p){const g=s(null),T=s(null),k=s("AI Voices"),c=s(""),_=s(""),d=s(null),A=s(null),V=s([]),w=s([]),P=s(""),M=s(""),f=s(null),I=s(null),h=s(1),fe=s(0),C=s(10),H=s(0),q=s(null),x=s(!1),N=s(null),$=s({mdiPlusCircle:We,mdiPlayCircleOutline:Ke,v123AI_sparkles_outline:Re,mdiNumeric9PlusBoxMultiple:Ye}),z=ya(),B=Qe(),y=b(()=>B.getters.activeUser),J=b(()=>{var e,a;return(a=(e=y.value)==null?void 0:e.roles)==null?void 0:a.includes("provider")}),X=b(()=>y.value.roles.indexOf("admin")>=0),he=b(()=>B.getters.getProvider),Z=b(()=>V.value.find(e=>e.id===d.value)),F=He(),G=Je(),me=Xe("eventBus"),j=b(()=>{var e,a;return X.value||((e=y.value)==null?void 0:e.roles.includes("provider"))&&((a=he.value)==null?void 0:a.tts_enabled)}),Te=b(()=>V.value.length==0),ee=s(!1),U=s(!1),W=s(!1),E=async e=>{var a;if(!(!((a=y.value)!=null&&a.id)||W.value)){W.value=!0;try{const{rows:o,count:i,pagination:l}=await z.fetchGeneratedAudios({page:e,size:C.value});fe.value=l&&l.pages?l.pages:Math.ceil(i/C.value),H.value=i,w.value=o.map(u=>fa(u,ce)),F.replace({query:{...F.currentRoute.value.query,page:e,size:C.value}})}catch(o){console.error("Error fetching TTS generated:",o)}finally{W.value=!1}}},ae=async()=>{var e,a;if(!(!((e=y.value)!=null&&e.id)||U.value)){U.value=!0;try{(a=y.value)!=null&&a.provider_id&&await B.dispatch("getProvider",y.value.provider_id),await z.fetchVoices(),V.value=z.ttsVoices.map(l=>va(l)),ee.value||(ee.value=!0,d.value=pa(G.query[ga],V.value));const o=G.query.page?parseInt(G.query.page,10):1,i=G.query.size?parseInt(G.query.size,10):10;C.value=i,h.value=o,await E(o)}catch(o){console.error("Error fetching TTS voices:",o)}finally{U.value=!1}}},ye=()=>{d.value||(I.value="Please select an AI voice."),c.value||(f.value="Please enter a script to generate audio.")},oe=()=>{f.value=null,I.value=null},se=async e=>{var o,i,l;return((l=(i=(o=e.response)==null?void 0:o.data)==null?void 0:i.error)==null?void 0:l.name)!=="InactiveAIVoiceLicenseError"?!1:(d.value=null,await ae(),f.value="Your access to this AI voice has ended.",!0)},Se=async()=>{var e,a,o;if(!d.value||!c.value||f.value){ye();return}try{await ge({ttsVoiceId:d.value,script:c.value,instructions:Z.value.supports_instructions?_.value:void 0}
1),await E(h.value),c.value="",_.value="",oe(),O("Generating audioâ¦")}catch(i){const l=i;(o=(a=(e=l.response)==null?void 0:e.data)==null?void 0:a.error)!=null&&o.message&&(f.value=l.response.data.error.message),await se(i)}},Ve=async e=>{h.value=e,await E(h.value)},we=async e=>{C.value=e,h.value=1,await E(h.value)},Ie=e=>{e.length>800&&(f.value="Script cannot exceed 800 characters.");const a=Ta(e);a.supported||(f.value="This language is not supported."),e&&e.length>0&&a.supported&&oe(),c.value=e},O=(e,a="log")=>{me.emit("snackbar",{type:a,message:e})},te=async(e,a)=>{const i=(await ra(e.id,{filename:a})).data;return i&&O("Audio signed for secure access!"),await E(h.value),i},ie=()=>{q.value=null,A.value=null},be=async({fileName:e})=>{const o={...await te(A.value,e),ttsVoice:{name:e}};g.value.close(),q.value==="download_secure_audio"?await ne(o):q.value==="share_secure_audio"&&await le(o),ie()},ne=async e=>{var o,i,l;let a=e;if(e.project_id){const{data:u}=await la(e.id,{filename:`${(o=e.ttsVoice)==null?void 0:o.name} - ${e.public_hash}`});a=u}if(!((i=a.signedAudio)!=null&&i.signed_url))throw new Error("Secured Audio File is unavailable");Me(a.signedAudio.signed_url,`${(l=e.ttsVoice)==null?void 0:l.name} - ${e.public_hash}`)},le=async e=>{const a=e.signedAudio,o=btoa(a.signed_url),i=window.location.origin;P.value=`${i}/voiceCredentials?source=${encodeURIComponent(o)}`,x.value=!0,N.value=e.signedAudio},Ae=()=>{N.value=null},re=e=>{e||(P.value="",x.value=!1)},Ce=()=>{re(!1),T.value&&T.value.openDialog()},Ee=async e=>{try{await ge({ttsVoiceId:e.tts_voice_id,script:e.script}),O("Generating audioâ¦")}catch(a){if(!await se(a))throw a}},De=async e=>{await ca(e.id)},ce=async(e,a)=>{const o={generate:Ee,download_secure_audio:ne,share_secure_audio:le,add_to_secure_cloud:te,discard_audio:De};if(e.status==="processing"&&(await _e(e.id)).status==="error"){O("There was an error generating the audio. Please try again.");return}if(!e.signedAudio&&ha(a)&&!ma(e,a)){g.value.open(),A.value=e,q.value=a;return}o[a]?(await o[a](e),a!=="share_secure_audio"&&await E(h.value)):console.warn(`No handler for menu action: ${a}`)},ue=()=>{F.push({name:"addAIVoice"})},ke=()=>{F.push({name:"search",query:{ai_voices:"true"}})},Pe=()=>{j.value?Te.value&&ue():F.push("/plans")},xe=async e=>{if(!e.audioUrl){const a=await _e(e.audioId);return w.value=_a(w.value,a,ce),!0}return!1};return Ze(()=>{var e;return(e=y.value)==null?void 0:e.id},async e=>{e&&await ae()},{immediate:!0}),(e,a)=>{const o=Ne,i=qe;return m(),S(i,{class:"vdl2-ai-voices-page",title:U.value?"Loading AI Voices...":k.value,loading:U.value},{"bar-title":v(()=>[r(da)]),default:v(()=>[t("div",null,[r(n(ea),{"theme-color":"ai-voices"},{default:v(()=>{var l;return[t("div",ba,[t("div",Aa,[r(n(aa),{modelValue:d.value,"onUpdate:modelValue":a[0]||(a[0]=u=>d.value=u),"show-action":!0,"show-name-filter":!0,placeholder:{iconSvg:$.value.mdiPlayCircleOutline,text:"Select an AI voice"},options:V.value,required:!0,error:I.value,"helper-text":I.value},{info:v(({audioName:u,provider:K})=>[t("div",Ca,[t("span",Ea,L(u),1),t("div",Da,[ka,r(o,{provider:K},null,8,["provider"])])])]),action:v(()=>[J.value&&j.value?(m(),S(n(D),{key:0,variant:"ghost",onClick:ue},{default:v(()=>[r(n(Y),{class:"vdl2-ai-voices-generate-icon",iconSvg:$.value.mdiPlusCircle,variant:"ghost"},null,8,["iconSvg"]),Pa]),_:1})):J.value&&!j.value?(m(),S(n(D),{key:1,variant:"ghost",onClick:Pe},{default:v(()=>[xa]),_:1})):(m(),S(n(D),{key:2,variant:"ghost",onClick:ke},{default:v(()=>[r(n(Y),{class:"vdl2-ai-voices-generate-icon",variant:"ghost"}),Fa]),_:1}))]),_:1},8,["modelValue","placeholder","options","error","helper-text"])]),t("div",Ga,[r(n(ve),{"model-value":c.value,"max-length":500,size:"tiny",placeholder:"Paste your script to generate audio","use-counter":!0,border:!0,label:"Script",error:f.value,"onUpdate:modelValue":Ie},null,8,["model-value","error"])]),X.value?(m(),pe("div",Ua,[r(n(ve),{modelValue:_.value,"onUpdate:modelValue":a[1]||(a[1]=u=>_.value=u),"max-length":500,size:"tiny",placeholder:"Instructions","use-counter":!0,border:!0,label:"Instructions",disabled:!((l=Z.value)!=null&&l.supports_instructions)},null,8,["modelValue","disabled"])])):R("",!0),t("div",Ra,[r(n(D),{class:"vdl2-ai-voices-generate-action",onClick:Se},{default:v(()=>[Ma,r(n(Y),{class:"vdl2-ai-voices-generate-icon sparkle_ai_icon",iconSvg:$.value.v123AI_sparkles_outline},null,8,["iconSvg"])]),_:1})])]),t("div",qa,[Na,t("div",Oa,[r(n(oa),{items:w.value,"content-type":"custom","disable-pagination":!1,page:h.value,"items-per-page":C.value,"show-page-size-selector":!0,"total-items":H.value,gap:"none","onUpdate:page":Ve,"onUpdate:itemsPerPage":we},{item:v(({raw:u,index:K}
1)=>[r(n(sa),{class:"vdl2-ai-generated-voice","audio-id":u.audioId,"audio-name":u.audioName,"audio-url":u.audioUrl,"audio-data":u,"menu-actions":u.menuActions,"before-play":()=>xe(u),disabled:u.status==="error","theme-color":"ai-voices"},{info:v(({audioName:Fe,provider:Ge,audioData:Ue})=>[t("div",La,[t("div",$a,[t("span",za,L(Fe),1),t("span",Ba,L(e.format.relativeTime(u.createdAt)),1)]),t("div",null,[t("span",ja,L(Ue.audioScript),1),r(o,{provider:Ge},null,8,["provider"])])])]),_:2},1032,["audio-id","audio-name","audio-url","audio-data","menu-actions","before-play","disabled"]),K<w.value.length-1?(m(),pe("hr",Wa)):R("",!0)]),_:1},8,["items","page","items-per-page","total-items"])])])]}),_:1})]),r(n(Ia),{ref_key:"securedFileDialog",ref:g,"audio-data":A.value,onConfirm:be,onCancel:ie,"theme-color":"ai-voices"},null,8,["audio-data"]),N.value?(m(),S(ua,{key:0,ref_key:"aiSendToMessagesDialog",ref:T,theme:"ai-voices","signed-audio":N.value,onSend:Ae},null,8,["signed-audio"])):R("",!0),x.value?(m(),S(n(ta),{key:1,open:x.value,"onUpdate:open":a[2]||(a[2]=l=>x.value=l),shareLink:P.value,text:M.value,onShare:Ce,onOpenChange:re,"theme-color":"ai-voices"},null,8,["open","shareLink","text"])):R("",!0)]),_:1},8,["title","loading"])}}});const io=Q({__name:"AIVoicesGeneratePage",setup(p){return(g,T)=>(m(),S(Ka))}});export{io as default}; 2//# sourceMappingURL=index-739b81fd.js.map
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.