1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DbJG4_-_.js","./D0rm-pGk.js","./BsIkG1OG.js","./entry.mA54lP9M.css","./TonalIcon.DWrkw_Gu.css","./E9I3pCSJ.js","./CKmCWprd.js"])))=>i.map(i=>d[i]); 2import{P as ve,M as i,aj as oe,o as pe,dE as he,b_ as ge,b9 as se,b as ie,aa as ye,i as be,h as v,f as p,j as _,w as o,k as s,v as ee,H as re,n as f,p as V,q as D,R as le,t as x,I as K,g as U,F as Q,D as te,r as J,s as C,V as N,L as Y,S as ne,l as Z,at as _e,cG as ke,c as we,aw as xe,A as Ce,N as Ae,aU as De,aV as Se}from"./BsIkG1OG.js";import{_ as $e}from"./gCsm2vqS.js";import{_ as Ie,a as Le}from"./Wqg_tQ9g.js";import{u as ce}from"./Dek6Ww68.js";import{u as de}from"./2xKl9a1R.js";import{t as Re,i as Ne}from"./BZCu-L__.js";import{u as Ve}from"./ClKB9VTC.js";import{_ as Pe}from"./CKmCWprd.js";import{_ as Ee}from"./DOp0Fs0U.js";import Me from"./Djcx6S9U.js";import{u as Te}from"./C1Wpcutk.js";import"./CY0xYNXU.js";import"./CLEnivgB.js";import"./46naOlCv.js";import"./CAHcNIDT.js";import"./Cn0r0yBw.js";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},a=new n.Error().stack;a&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[a]="66099724-f469-4422-a86f-748b28eaae0a",n._sentryDebugIdIdentifier="sentry-dbid-66099724-f469-4422-a86f-748b28eaae0a")}catch{}})();const Oe=Ne?window:void 0;function ae(n){var a;const r=oe(n);return(a=r?.$el)!==null&&a!==void 0?a:r}function ze(){const n=ge(!1),a=he();return a&&pe(()=>{n.value=!0},a),n}function qe(n){const a=ze();return i(()=>(a.value,!!n()))}function Be(n,a,r={}){const{window:h=Oe,...g}=r;let l;const k=qe(()=>h&&"ResizeObserver"in h),m=()=>{l&&(l.disconnect(),l=void 0)},y=ve(i(()=>{const S=oe(n);return Array.isArray(S)?S.map($=>ae($)):[ae(S)]}),S=>{if(m(),k.value&&h){l=new ResizeObserver(a);for(const $ of S)$&&l.observe($,g)}},{immediate:!0,flush:"post"}),I=()=>{m(),y()};return Re(I),{isSupported:k,stop:I}}const Fe={class:"d-flex align-center ga-2"},je={class:"d-flex align-center ga-4 px-4 py-3"},He={class:"flex-grow-1"},Ue={class:"text-subtitle-2"},Ge={class:"text-caption text-medium-emphasis"},We={class:"text-decoration-underline"},Ke={class:"text-decoration-underline"},Qe=se({__name:"DomainRequiredActions",props:{domain:{type:Object,required:!0},onNavClick:{type:Function,required:!0}},emits:["updated"],setup(n,{emit:a}){const r=n,h=a,{$apiFetch:g}=ie(),{formatDateShort:l}=ce(),{hasPermission:k}=ye(),m=be("showSnackbar"),y=Y(null),I=i(()=>r.domain?.donotrenew===!1),S=i(()=>r.domain?.grace_period??0),$=i(()=>!r.domain?.expirydate||r.domain.expirydate==="0000-00-00"?"an unknown date":l(r.domain.expirydate)),O=async()=>{if(!r.domain?.id)return;const c=await g(`/api/domains/${r.domain.id}/settings`,{method:"POST",body:{setting:"donotrenew",value:!1}});if(c.result==="success")m?.("Auto-renewal enabled successfully","success"),h("updated",{donotrenew:!1});else throw new Error(c.message||"Failed to enable auto-renewal")},L=i(()=>r.domain),{isLocked:R,isLockFeatureSupported:z,toggleLock:B}
2=de(L),P=async()=>{if(!z.value)return;const c=await B();if(c.success){h("updated",{lock_status:"locked"});return}if("requires2FA"in c&&c.requires2FA){m?.("2FA is required to enable Domain Lock. Continue in Transfer Domain.","warning"),r.onNavClick({value:"transfer-domain"});return}throw new Error("error"in c?c.error:"Failed to enable domain lock")},F=i(()=>r.domain?.available_features?.idprotection?.enabled===!0),q=i(()=>r.domain?.idprotection===!0),E=i(()=>r.domain?.available_features?.idprotection?.title||"ID Protection"),j=i(()=>r.domain?.available_features?.idprotection?.description||"Protect your personal information"),M=i(()=>{const c=[];if(!I.value){const d=S.value>0?` After ${S.value} days redemption fees apply.`:"";c.push({key:"auto-renew",icon:"$autoRenewIcon",title:"Turn on auto-renewal",description:`Domain will expire ${$.value} unless renewed.${d}`,ctaLabel:"Enable auto-renew",permissions:["managedomains","orders"],isApiCall:!0,action:O})}return F.value&&!q.value&&c.push({key:"id-protection",icon:"$shieldIcon",title:`Get ${E.value||"Domain Protection"}`,description:j.value,ctaLabel:"Get protection",permissions:["managedomains","orders"],action:()=>r.onNavClick({value:"addons",order:"idprotection"})}),z.value&&!R.value&&c.push({key:"lock",icon:"$unlockIcon",title:"Enable Domain Lock",description:"Recommended â prevents unauthorized transfers.",ctaLabel:"Enable lock",permissions:["managedomains"],isApiCall:!0,action:P}),c}),w=c=>c.showCta===!1?!1:c.permissions?.length?c.permissions.every(d=>k(d)):!0,A=async c=>{if(!c.isApiCall){c.action();return}y.value=c.key;try{await c.action()}catch(d){console.error(`Domain action "${c.key}" failed:`,d),m?.(d?.data?.statusMessage||d?.message||"Action failed","error")}finally{y.value=null}};return(c,d)=>v(M).length>0?(p(),_(N,{key:0,cols:"12",class:"mb-4"},{default:o(()=>[s(ee,{style:{"border-color":"rgba(var(--v-theme-warning), 0.5) !important"}},{default:o(()=>[s(re,{style:{"background-color":"rgba(var(--v-theme-warning), 0.1)"}},{default:o(()=>[f("div",Fe,[s(V,{size:"28",color:"warning"},{default:o(()=>[...d[0]||(d[0]=[D(" $warningIcon ",-1)])]),_:1}),d[1]||(d[1]=f("span",{class:"font-weight-medium text-body-1 text-md-h6 text-warning"},"Action needed",-1)),s(le,{size:"x-small",color:"warning",variant:"flat",label:""},{default:o(()=>[D(x(v(M).length),1)]),_:1})])]),_:1}),s(K,{style:{"border-color":"rgba(var(--v-theme-warning), 0.3) !important"}}),(p(!0),U(Q,null,te(v(M),(b,G)=>(p(),U(Q,{key:b.key},[f("div",je,[s(V,{size:"26",color:"warning",class:"flex-shrink-0 align-self-start align-self-md-center mt-1 mt-md-0"},{default:o(()=>[D(x(b.icon),1)]),_:2},1024),f("div",He,[f("div",Ue,x(b.title),1),f("div",Ge,x(b.description),1),w(b)?(p(),_(J,{key:0,variant:"plain",block:"",color:"blackAccent",class:"d-flex d-md-none text-subtitle-2 font-weight-medium opacity-100 justify-start px-0",loading:v(y)===b.key,disabled:v(y)!==null,onClick:W=>A(b)},{default:o(()=>[f("span",We,x(b.ctaLabel),1),s(V,{size:"20"},{default:o(()=>[...d[2]||(d[2]=[D("$chevronRightIcon",-1)])]),_:1})]),_:2},1032,["loading","disabled","onClick"])):C("",!0)]),w(b)?(p(),_(J,{key:0,variant:"text",color:"blackAccent",class:"d-none d-md-flex flex-shrink-0 flex-shrink-0 text-subtitle-2 font-weight-medium opacity-100",loading:v(y)===b.key,disabled:v(y)!==null,onClick:W=>A(b)},{default:o(()=>[f("span",Ke,x(b.ctaLabel),1),s(V,{size:"20"},{default:o(()=>[...d[3]||(d[3]=[D("$chevronRightIcon",-1)])]),_:1})]),_:2},1032,["loading","disabled","onClick"])):C("",!0)]),G<v(M).length-1?(p(),_(K,{key:0,class:"mx-4",style:{"border-color":"rgba(var(--v-theme-warning), 0.2) !important"}})):C("",!0)],64))),128))]),_:1})]),_:1})):C("",!0)}}),Je=Object.assign(Qe,{__name:"DomainRequiredActions"}),Xe={class:"d-flex align-center ga-2"},Ye={class:"d-flex flex-wrap align-start justify-space-between pa-4 pb-1"},Ze={class:"d-flex align-start ga-3 flex-grow-1 min-width-0"},et={class:"min-width-0"},tt={class:"text-caption text-medium-emphasis"},nt={class:"text-h6 font-weight-bold"},at=["title"],ot=se({__name:"DomainHealthStatus",props:{domain:{type:Object,required:!0},onNavClick:{type:Function,required:!0}},setup(n){const a=n,{$apiFetch:r}=ie(),{formatDateShort:h}=ce(),g=i(()=>Number(a.domain?.id||0)),{data:l,pending:k}=ne(()=>`domain-ssl-status-${g.value}`,async()=>g.value?await r("/api/domains/ssl-status",{method:"GET",query:{domainId:g.value}}):null,{watch:[g],default:()=>null,server:!1}),m=i(()=>{const t=l.value;return t?.result==="success"&&t?.data?t.data:null}),y=i(()=>a.domain?.available_features?.dnssec===!0),{data:I,pending:S}=ne(()=>`domain-dnssec-health-${g.value}`,async()=>!g.value||!y.value?null:await r(`/api/domains/${g.value}/dnssec`,{method:"GET"}),{watch:[g,y],default:()=>null,server:!1}),$=i(()=>
2{if(I.value?.result!=="success")return!1;const t=I.value?.data;return((Array.isArray(t?.records)?t.records:null)??(Array.isArray(t?.dnssec?.vars?.DSRecordslist)?t.dnssec.vars.DSRecordslist:[])).length>0}),O=i(()=>(a.domain?.domain_nameservers||[]).filter(t=>t?.trim())),L=i(()=>(a.domain?.default_nameservers||[]).filter(t=>t?.trim())),{hasAnyNameservers:R,statusLabel:z}=Ve(O,L),B=i(()=>a.domain),{isLocked:P,isLockFeatureSupported:F}=de(B),q=i(()=>a.domain?.available_features?.idprotection?.enabled===!0),E=i(()=>a.domain?.idprotection===!0),j=i(()=>a.domain?.available_features?.idprotection?.title||"ID Protection"),M=i(()=>a.domain?.available_features?.idprotection?.description||"Protect your personal information"),w=i(()=>a.domain?.donotrenew===!1),A={healthy:"success",warning:"warning",unhealthy:"error",loading:"grey-lighten-1"},c=()=>{if(!m.value?.has_ssl)return"No SSL certificate detected";const t=[];return m.value.ssl_issuer_name&&t.push(m.value.ssl_issuer_name),m.value.ssl_expiry_date&&m.value.ssl_expiry_date!=="0000-00-00"&&t.push(`expires ${h(m.value.ssl_expiry_date)}`),t.join(" · ")||"Active"},d=i(()=>{const t=[];if(w.value){const e="healthy";t.push({key:"auto-renew",icon:"$autoRenewIcon",category:"Auto-renew",statusLabel:"Enabled",detail:"Renews automatically before expiry",health:e,color:A[e],navValue:"auto-renew"})}if(k.value)t.push({key:"ssl",icon:"$lockIcon",category:"SSL Certificate",statusLabel:"Checking...",detail:"Verifying SSL status",health:"loading",color:A.loading});else{const e=!!m.value?.has_ssl,u=!!m.value?.is_expiring_soon,T=e?u?"warning":"healthy":"unhealthy";t.push({key:"ssl",icon:e?"$lockIcon":"$unlockIcon",category:"SSL Certificate",statusLabel:e?u?"Expiring soon":"Active":"Not secured",detail:c(),health:T,color:A[T]})}{const e=R.value?"healthy":"unhealthy";t.push({key:"nameservers",icon:"$hostIcon",category:"Nameservers",statusLabel:z.value,detail:R.value?O.value.join(" · "):"No nameservers configured",health:e,color:A[e],navValue:"manage-nameservers"})}if(F.value){const e=P.value?"healthy":"unhealthy";t.push({key:"lock",icon:P.value?"$lockIcon":"$unlockIcon",category:"Domain Lock",statusLabel:P.value?"Locked":"Unlocked",detail:P.value?"Transfers blocked until disabled":"Domain can be transferred â lock recommended",health:e,color:A[e],navValue:"transfer-domain"})}if(q.value){const e=E.value?"healthy":"unhealthy";t.push({key:"id-protection",icon:"$shieldIcon",category:j.value,statusLabel:E.value?"Active":"Inactive",detail:E.value?"Covered through this term":M.value,health:e,color:A[e],navValue:"addons"})}if(y.value)if(S.value)t.push({key:"dnssec",icon:"$dnsIcon",category:"DNSSEC",statusLabel:"Checking...",detail:"Verifying DS records",health:"loading",color:A.loading,navValue:"dnssec"});else{const e=$.value?"healthy":"unhealthy";t.push({key:"dnssec",icon:"$dnsIcon",category:"DNSSEC",statusLabel:$.value?"Active":"Not configured",detail:$.value?"DS records published":"No DS records found",health:e,color:A[e],navValue:"dnssec"})}return t.filter(e=>e.health==="healthy"||e.health==="warning")}),b=i(()=>d.value.filter(t=>t.health==="healthy").length),G=Y(null),W=Y(960);Be(G,t=>{const e=t[0]?.contentRect.width;typeof e=="number"&&(W.value=e)});const H=i(()=>{const t=d.value.length;if(t<=1)return 1;const e=W.value,u=e>=960?3:e>=520?2:1;return Math.min(t,u)}),ue=i(()=>12/H.value),me=t=>{const e=d.value.length,u=H.value,T=Math.floor(t/u),X=Math.floor((e-1)/u),fe=(t+1)%u===0;return{"border-b-thin":u>1&&T<X,"border-e-thin":u>1&&!fe}};return(t,e)=>v(d).length>0?(p(),_(N,{key:0,cols:"12",class:"mb-4"},{default:o(()=>[s(ee,{ref_key:"cardRef",ref:G,variant:"outlined",class:"rounded-lg overflow-hidden"},{default:o(()=>[s(re,null,{default:o(()=>[f("div",Xe,[s(V,{size:"28",color:"success"},{default:o(()=>[...e[0]||(e[0]=[D(" $checkIcon ",-1)])]),_:1}),e[1]||(e[1]=f("span",{class:"font-weight-medium text-body-1 text-md-h6 text-success"},"Healthy",-1)),s(le,{size:"x-small",color:"success",variant:"flat",label:""},{default:o(()=>[D(x(v(b)),1)]),_:1})])]),_:1}),s(K),s(Z,{"no-gutters":""},{default:o(()=>[(p(!0),U(Q,null,te(v(d),(u,T)=>(p(),_(N,{key:u.key,cols:v(ue),class:_e(me(T))},{default:o(()=>
2[f("div",Ye,[f("div",Ze,[s(V,{size:"28",color:u.color,class:"flex-shrink-0 align-self-start align-self-md-center"},{default:o(()=>[D(x(u.icon),1)]),_:2},1032,["color"]),f("div",et,[f("div",tt,x(u.category),1),f("div",nt,x(u.statusLabel),1)])]),u.navValue&&v(H)>1?(p(),_(J,{key:0,variant:"text",color:"blackAccent",class:"flex-shrink-0 text-subtitle-2 font-weight-medium opacity-100",onClick:X=>a.onNavClick({value:u.navValue})},{default:o(()=>[e[3]||(e[3]=f("span",{class:"text-decoration-underline"},"Manage",-1)),s(V,{size:"20"},{default:o(()=>[...e[2]||(e[2]=[D("$chevronRightIcon",-1)])]),_:1})]),_:1},8,["onClick"])):C("",!0)]),f("div",{class:"text-caption text-medium-emphasis text-break px-4 pb-4",title:u.detail},[D(x(u.detail)+" ",1),u.navValue&&v(H)===1?(p(),_(J,{key:0,variant:"plain",block:"",color:"blackAccent",class:"text-subtitle-2 font-weight-medium opacity-100 justify-start px-0 mt-1",onClick:X=>a.onNavClick({value:u.navValue})},{default:o(()=>[e[5]||(e[5]=f("span",{class:"text-decoration-underline"},"Manage",-1)),s(V,{size:"20"},{default:o(()=>[...e[4]||(e[4]=[D("$chevronRightIcon",-1)])]),_:1})]),_:1},8,["onClick"])):C("",!0)],8,at),v(H)===1&&T<v(d).length-1?(p(),_(K,{key:0})):C("",!0)]),_:2},1032,["cols","class"]))),128))]),_:1})]),_:1},512)]),_:1})):C("",!0)}}),st=Object.assign(ot,{__name:"DomainHealthStatus"}),it=()=>{const n=ke(),a=i(()=>{const l=n.current.value.colors;return[l.primary,l["primary-dark"],l.secondary,l["secondary-light"],l.success,l.error,l.primary,l["primary-dark"],l.secondary]}),r=l=>{const k=a.value,m=Math.abs(l)%k.length;return k[m]||"#000000"};return{getAccentColor:r,getAccentColors:l=>Array.from({length:l},(k,m)=>r(m)),getRandomAccentColor:()=>{const l=a.value,k=Math.floor(Math.random()*l.length);return l[k]||"#000000"},accentPalette:a,paletteSize:i(()=>a.value.length)}},rt={class:"text-subtitle-2 font-weight-medium"},Ct={__name:"DomainOverviewSection",props:{domain:{type:Object,required:!0},canManageDomain:{type:Boolean,required:!0},onNavClick:{type:Function,required:!0},activeSection:{type:String,required:!0}},emits:["updated"],setup(n,{emit:a}){const r=De(()=>Se(()=>import("./DbJG4_-_.js"),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url)),h=n,g=a,{smAndDown:l}=we(),{getAccentColor:k}=it(),{manage_dns_router:m}=Te(),y=xe(),I=i(()=>y.isRedirectorEnabled&&h.domain?.status==="Active"&&h.domain?.has_redirect!==null&&h.canManageDomain),S=[{id:"ssl-cert",name:"SSL Certificate",description:"Secure your website with industry-standard encryption. Build trust with your visitors.",price:49.99,billingCycle:"year"},{id:"email-hosting",name:"Professional Email",description:"Get branded email addresses for your domain. Look professional with custom @yourdomain.",price:4.99,billingCycle:"month"},{id:"privacy-protection",name:"WHOIS Privacy",description:"Keep your personal details private. Protect against spam and identity theft.",price:9.99,billingCycle:"year"}],$=L=>{},O=i(()=>{const L=[{key:"dns",icon:"$dnsIcon",label:"Manage DNS Records",value:"manage-dns",disabled:!1,onClick:()=>{m({...h.domain,domain_id:h.domain?.id})}}];return I.value&&L.push({key:"redirect",icon:"$linkIcon",label:"Manage Redirect",value:"manage-redirect",disabled:!1,onClick:()=>{Ae(`/domains/redirects/${h.domain?.id}`)}}),L.push({key:"nameservers",icon:"$hostIcon",label:"Manage Nameservers",value:"manage-nameservers",disabled:!1,onClick:()=>{h.onNavClick({value:"manage-nameservers"})}},{key:"contacts",icon:"$contactPhoneIcon",label:"Update Contact Information",value:"manage-contacts",disabled:!1,onClick:()=>{h.onNavClick({value:"manage-contacts"})}}),L});return(L,R)=>{const z=$e,B=Ie,P=Je,F=st,q=Pe,E=Ee,j=Me,M=Le;return p(),U("div",null,[s(z,{title:"Overview","show-divider":!1}),s(Z,null,{default:o(()=>[v(l)?(p(),_(N,{key:0,cols:"12"},{default:o(()=>[s(Z,null,{default:o(()=>[s(N,{cols:"12"},{default:o(()=>[...R[1]||(R[1]=[f("h2",{class:"text-subtitle-1 font-weight-medium"},"Quick Actions",-1)])]),_:1}),(p(!0),U(Q,null,te(v(O),w=>(p(),_(N,{cols:"6",sm:"6",md:"4",lg:"3",xl:"2",key:w.key},{default:o(()=>[s(ee,{disabled:w.disabled,hover:"",role:"button",class:"pl-0 pr-0 pt-0 pb-0 d-flex flex-column align-center justify-center",onClick:w.onClick,"min-height":"140px"},{default:o(()=>[s(Ce,{class:"d-flex flex-column align-center justify-center text-center"},{default:o(()=>[s(V,{size:"48",color:"grey-darken-2",class:"mb-2"},{default:o(()=>[D(x(w.icon),1)]),_:2},1024),f("span",rt,x(w.label),1)]),_:2},1024)]),_:2},1032,["disabled","onClick"])]),_:2},1024))),128))]),_:1})]),_:1})):C("",!0),s(B,{domain:n.domain},null,8,["domain"]),s(P,{domain:n.domain,"on-nav-click":n.onNavClick,onUpdated:R[0]||(R[0]=w=>g("updated",w))},null,8,["domain","on-nav-click"]),s(F,{domain:n.domain,"on-nav-click":n.onNavClick},null,8,["domain","on-nav-click"]),s(q,{permissions:"managedomains"},{default:o(()=>[v(I)?(p(),_(N,{key:0,cols:"12",class:"mb-4"},{default:o(()=>[s(v(r),{domain:n.domain,"has-redirect":n.domain.has_redirect},null,8,["domain","has-redirect"])]),_:1})):C("",!0)]),_:1}),n.domain.status==="Active"&&n.domain.evaluation?.estimated_value?(p(),_(N,{key:1,cols:"12",class:"mb-4"},{default:o(()=>[s(E,{evaluation:n.domain.evaluation,domain:n.domain,"on-nav-click":n.onNavClick,variant:"card"},null,8,["evaluation","domain","on-nav-click"])]),_:1})):C("",!0),s(q,{permissions:"domains,orders"},{default:o(()=>[n.canManageDomain?(p(),_(N,{key:0,cols:"12",class:"mb-4"},{default:o(()=>[s(j,{"domain-id":n.domain?.id},null,8,["domain-id"])]),_:1})):C("",!0)]),_:1}),C("",!0)]),_:1})])}}};export{Ct as default};
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.