1import{_ as O}from"./vdlDataList-96569067.js";import{as as $,aV as b,aQ as _,r as q,o as n,c as p,b as I,w,au as T,av as G,t as R,h as y,a as m,g as E,d as B,j as Y,bU as M,ea as K,_ as F,a4 as Q,at as W,aW as Z,cl as H,l as J,bS as X,p as ee,k as ae}from"./vendor-147ef0d1.js";import{_ as se}from"./vdlUserInfo-2fcba52c.js";import{cS as te}from"./common-4ebc591d.js";import{c as oe}from"./aiVoiceLicenseEndAccess-53f1e0d5.js";import{g as ie,a as ne,A as j,b as ce}from"./aiVoicePermissions-47b9f6cc.js";import{m as le,a as re}from"./tts.services-608353da.js";import{b as ue}from"./ownedAIVoices-63cabaf4.js";import"./vdlPagination.vue_vue_type_style_index_0_lang-a47b7663.js";import"./vdlFormDialog-95ff4290.js";import"./getMinutesPassed-9927a987.js";import"./aiVoiceLicenseGeneration-704b226d.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"[email protected]"};var t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="24f452b2-6a3f-4cac-bc22-61d7f31b5671",e._sentryDebugIdIdentifier="sentry-dbid-24f452b2-6a3f-4cac-bc22-61d7f31b5671")}catch{}})();const de={key:0,class:"content-text item-info ai-voice-access-usage"},ve={class:"ai-voice-access-actions"},_e=$({__name:"vdlAIVoiceAccessListItem",props:{project:{},activeUser:{},usage:{},usageFailed:{type:Boolean}},emits:["revoke"],setup(e,{emit:t}){const c=e,l=b(()=>ie(c.project,c.activeUser)),S=b(()=>ne(c.usage)),A=b(()=>te(c.project)),v=b(()=>oe(c.project,c.activeUser)),k=_(null),V=b(()=>`${l.value.name} will no longer be able to generate or download audio from this AI voice. This cannot be undone.`),o=()=>{var g;return(g=k.value)==null?void 0:g.open()},P=g=>{g==="ok"&&t("revoke",c.project)};return(g,r)=>{const D=se,C=Y,U=M,L=q("router-link"),x=K;return n(),p(T,null,[I(L,{class:"ai-voice-access-request-link",to:A.value},{default:w(()=>[I(U,{class:"ai-voice-access-item"},{default:w(()=>[I(D,{class:"ai-voice-access-client",name:l.value.name,picture:l.value.picture,"user-reference":l.value.username||l.value.id,"is-client":!0,"show-badge":!1,mini:!0},{content:w(()=>[(n(!0),p(T,null,G(S.value,s=>(n(),p("p",{key:s,class:"content-text item-info ai-voice-access-usage"},R(s),1))),128)),g.usageFailed?(n(),p("p",de," Usage unavailable ")):y("",!0)]),_:1},8,["name","picture","user-reference"]),m("div",ve,[v.value?(n(),E(C,{key:0,class:"md-primary md-outlined md-theme-v123 ai-voice-access-revoke",onClick:o},{default:w(()=>[B(" REVOKE ACCESS ")]),_:1})):y("",!0)])]),_:1})]),_:1},8,["to"]),I(x,{ref_key:"revokeDialog",ref:k,"md-title":"Revoke access?","md-content":V.value,"md-ok-text":"Revoke access","md-cancel-text":"Cancel","md-ok-raised":!0,class:"ai-voices",onClose:P},null,8,["md-content"])],64)}}});const pe=F(_e,[["__scopeId","data-v-632d7921"]]),me="Unable to change who can find this AI voice.";function ge(e){return(e==null?void 0:e.discoverable)!==!1}function fe(e){return{value:ge(e),saving:!1,previous:null,error:""}}function he(e,t){return{value:t,saving:!0,previous:e.previous===null?e.value:e.previous,error:""}}function be(e,t){return{value:(t==null?void 0:t.discoverable)===void 0?e.value:t.discoverable,saving:!1,previous:null,error:""}}function ye(e){return e.previous===null?e:{value:e.previous,saving:!1,previous:null,error:me}}const z=e=>(ee("data-v-963a0676"),e=e(),ae(),e),Ie={class:"ai-voice-permissions-tab"},Ae={class:"ai-voice-discoverability"},ke={key:0,class:"ai-voice-permissions-error ai-voice-discoverability-error"},we={class:"ai-voice-discoverability-row"},Se=z(()=>m("div",{class:"ai-voice-discoverability-copy"},[m("p",{class:"md-subheading-1 no-margin-title"},"Instant Auditions"),m("p",{class:"md-caption ai-voice-discoverability-caption"}," Let Voice123 users find this AI voice in search and on your profile, and preview it with short scripts. ")],-1)),Ve={class:"md-subheading-1 ai-voice-access-granted-title"},Ce={key:0,class:"md-caption ai-voice-access-granted-count"},Pe=z(()=>m("p",{class:"md-caption ai-voice-access-granted-caption"}," Clients with generate and download access to this AI voice. ",-1)),Re={key:0,class:"ai-voice-permissions-error"},Ee={key:1,class:"ai-voice-permissions-loading"},De=z(()=>m("p",{class:"md-subheading-1 empty-state"}," You have not granted anyone access to this AI voice. ",-1)),Ue=$({__name:"AIVoicePermissionsTab",props:{voice:{}},setup(e){const t=e,c=Q(),l=_(""),S=_(!0),A=_(!1),v=_([]),k=_({}),V=_([]),o=_({currentPage:1,pageSize:j,totalRows:0,totalPages:1}),P=b(()=>c.getters.activeUser||{}),g=b(()=>{const{currentPage:s,totalRows:i,pageSize:u}=o.value||{},d=(s-1)*u+1,a=s*u;return`Showing ${d} - ${a>i?i:a} of ${i}`}),r=_(fe(t.voice));async function D(s){r.value=he(r.value,s);try{const{data:i}=await le(t.voice.id,s);r.value=be(r.value,i)}catch{r.value=ye(r.value)}}async function C(){var s,i,u,d;S.value=!0,l.value="";try{const a=await c.dispatch("getUserProjectsPublic",ce(P.value,{ttsVoiceId:t.voice.id,page:o.value.currentPage,size:o.value.pageSize}));v.value=(a==null?void 0:a.data)||[],o.value={currentPage:((s=a==null?void 0:a.stats)==null?void 0:s.current_page)||o.value.currentPage,pageSize:((i=a==null?void 0:a.stats)==null?void 0:i.page_size)||o.value.pageSize,totalPages:((u=a==null?void 0:a.stats)==null?void 0:u.total_pages)||1,totalRows:((d=a==null?void 0:a.stats)==null?void 0:d.total_rows)??v.value.length},A.value=!1,await U()}catch{A.value=!0,l.value="Unable to load who has access to this AI voice."}finally{S.value=!1}}async function U(){k.value={},V.value=[];const s=v.value.map(a=>a.id),i=await Promise.allSettled(s.map(a=>re(a,{page:1,size:1}).then(({data:f})=>f==null?void 0:f.summary))),u={},d=[];
1i.forEach((a,f)=>{const h=s[f];a.status==="fulfilled"&&a.value?u[h]=a.value:d.push(h)}),k.value=u,V.value=d}async function L(s){o.value.currentPage=s.page||1,o.value.pageSize=s.size||j,await C()}async function x(s){l.value="";try{await c.dispatch("endAIVoiceLicenseAccess",s.id),o.value.currentPage=ue(o.value.currentPage,v.value.filter(i=>i.id!==s.id).length)}catch{l.value="Unable to revoke access.";return}await C()}return W(C),(s,i)=>{const u=H,d=J,a=X,f=O;return n(),p("div",Ie,[m("section",Ae,[r.value.error?(n(),p("p",ke,R(r.value.error),1)):y("",!0),m("div",we,[Se,I(u,{"md-theme":"v123",class:"md-primary",disabled:r.value.saving,"model-value":r.value.value,"onUpdate:modelValue":D},null,8,["disabled","model-value"])])]),I(d),m("h2",Ve,[B(" Granted access "),!A.value&&v.value.length?(n(),p("span",Ce,"("+R(g.value)+")",1)):y("",!0)]),Pe,l.value?(n(),p("p",Re,R(l.value),1)):y("",!0),S.value?(n(),p("div",Ee,[I(a,{"md-indeterminate":"","md-size":28})])):A.value?y("",!0):(n(),E(f,{key:2,items:v.value,"pagination-settings":o.value,disablePaginationCount:!0,"filters-schema":[],"disable-filtering":!0,"disable-search":!0,alwaysShowPageStats:!0,onUpdateFilters:L},{default:w(({item:h,index:N})=>[(n(),E(Z(pe),{key:h.id,project:h,"active-user":P.value,usage:k.value[h.id],"usage-failed":V.value.includes(h.id),onRevoke:x},null,8,["project","active-user","usage","usage-failed"])),N<v.value.length-1?(n(),E(d,{key:0,class:"md-inset"})):y("",!0)]),"empty-state":w(()=>[De]),_:1},8,["items","pagination-settings"]))])}}});const Ye=F(Ue,[["__scopeId","data-v-963a0676"]]);export{Ye as default}; 2//# sourceMappingURL=AIVoicePermissionsTab-2692ff7f.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.