1import{aa as j,ag as Y,o as se,a0 as ne,B as u,c as y,j as P,D as s,g as r,k as S,x as a,i as A,R as N,r as i,e as M,F as B,q as H,t as K,p as ie,w as re,G as ue,H as de}from"./vendor-vue-CWMYJQp1.js";import{a as Q,C as L,T as W,af as ce,H as J,ag as me,Y as oe,n as pe,I as ve,ah as fe,ai as ge,u as _e}from"./index-CCtncUPz.js";import{u as G,r as U,c as F,e as we,b as X,a as ye,m as Z,s as he}from"./index.esm-D_hLVnX1.js";import{T as D}from"./TextInput-8IZhHVlz.js";import{T as ee}from"./TableCellText-BH5V8W7g.js";import{T as le}from"./TablePaginationSkeleton-DFMAysnx.js";import{I as be}from"./IconConfirm-B03ypAxr.js";import{I as Ve}from"./IconReject-CEWCbr6M.js";import{C as Ce}from"./CompositionTable-BsB7UKi9.js";import{_ as q,y as Se}from"./index-2vIWNS4O.js";import{c as O}from"./cloneDeep-CLIfd78A.js";import{C as $e}from"./Checkbox-D37DAujs.js";import{N as ae}from"./NumberInput-Dp2NF6_H.js";import{S as ke}from"./Spinner-DmOBClv8.js";import{f as Ne}from"./vendor-charts-C7GLEJbE.js";import{g as Te,M as Pe,I as Ie,C as xe}from"./IconAlert-D0EshKNj.js";import{l as Ee}from"./enums.service-DBABrS_p.js";import{C as te}from"./CustomSelect-BVSVwImb.js";import{b as Ue}from"./responvise-B69JPF5h.js";import{V as De}from"./Validation-CeDCPdP_.js";import{P as ze,a as Ae}from"./PasswordComplexityAlert-CfqJ94sy.js";import{I as Me}from"./IconInformer-B-W3XAPJ.js";import{C as Fe}from"./CardInfo-1eNC4CqH.js";import{C as Oe}from"./ClientName-BIvinAjs.js";import{T as Le}from"./Tabs-Ckn8EwzO.js";import"./InputWrapper-Czi17J3J.js";import"./CopyButton-BzvjmJ1Q.js";import"./Tooltip-BChViCs8.js";import"./useAnchoredPosition-CN9w8N4O.js";import"./IconTableSortAscDescArrow-COm3BTbo.js";import"./IconWarning-b4chff4t.js";import"./IconChevron-CU0SVSE4.js";import"./IconMinus-OA52ZhI6.js";import"./IconPlus-DS0UgZN4.js";import"./Switcher-xmqtZD0_.js";async function Be(){return Q.get("page/3ds-email-settings/listOfEmails").then($=>$.data.data)}async function je($){return Q.post("page/3ds-email-settings/setDefaultEmail",{otp3DSEmail:$}).then(b=>b.data.data)}async function qe($){return Q.post("page/3ds-email-settings/updateEmails",{emailToChange:$}).then(b=>b.data.data)}const Re={class:"settings-email"},Je={key:0,class:"settings-email__value-controls"},Ge={class:"settings-email__emails"},He={class:"settings-email__emails-table__button"},Ke={__name:"SettingsEmail",setup($){const b=Object.freeze([{title:"E-mail",sortKey:"email",width:1200},{title:"Cards",align:"right",sortKey:"cards",width:260,contentWidth:100},{title:"Options",sortKey:"",width:220}]),V=j(),C=i(!0),p=i(!1),v=i({}),f=i(""),d=i(""),c=i(!1),T=i(!1),h=i(null),x=i(null);async function w(){const l=await Be();return{records:Object.entries(l).map(([I,R])=>
1({email:I,count:R}))}}const m=N(()=>({otp3DSEmail:{required:U,email:F.withMessage("Value is not a valid e-mail address",we)}})),k=G(m,{otp3DSEmail:f});function z(){c.value=!0}function E(l){h.value&&!h.value.contains(l.target)&&n()}async function g(){C.value=!0;try{const{otp3DSEmail:l}=V.state.user.me;f.value=l,d.value=l}catch(l){console.error(l)}finally{C.value=!1}}async function o(){p.value=!0;try{await je(f.value),await V.dispatch("user/updateMe"),d.value=f.value,c.value=!1,t()}catch(l){console.error(l)}finally{p.value=!1}}async function e(l){v.value[l]=!0,T.value=!0;try{await qe(l),t()}catch(_){console.error(_)}finally{T.value=!1,v.value[l]=!1}}function n(){c.value=!1,f.value=d.value}function t(){x.value.refetch()}return Y(()=>{g()}),se(()=>{document.addEventListener("click",E)}),ne(()=>{document.removeEventListener("click",E)}),(l,_)=>(u(),y("div",Re,[P("div",{ref_key:"inputWrapper",ref:h,class:"settings-email__value"},[s(D,{modelValue:a(k).otp3DSEmail.$model,"onUpdate:modelValue":_[0]||(_[0]=I=>a(k).otp3DSEmail.$model=I),class:"settings-email__value-input","input-id":"email",label:"Default e-mail for new cards (3DS, Meta Pay, Google)",placeholder:"Default e-mail for new cards (3DS, Meta Pay, Google)","only-read":p.value,v:a(k).otp3DSEmail,onFocus:z},{info:r(()=>[s(le,{"icon-size":"s"},{default:r(()=>[..._[1]||(_[1]=[S(" New e-mail will be linked by default when new cards are created. ",-1)])]),_:1})]),_:1},8,["modelValue","only-read","v"]),c.value?(u(),y("div",Je,[s(L,{appearance:"icon","icon-size":"s",disabled:a(k).$invalid,loading:p.value,onClick:o},{icon:r(()=>[s(be)]),_:1},8,["disabled","loading"]),s(L,{appearance:"icon",class:"reject","icon-size":"s",disabled:p.value,onClick:n},{icon:r(()=>[s(Ve)]),_:1},8,["disabled"])])):A("",!0)],512),P("div",Ge,[s(W,{weight:"bold"},{default:r(()=>[..._[2]||(_[2]=[S("Currently used e-mails",-1)])]),_:1}),s(Ce,{ref_key:"table",ref:x,class:"settings-email__emails-table","key-field":"id","table-id":"emails-table","all-time":"",sortable:"",callback:w,columns:a(b)},{row:r(({item:I})=>{var R;return[s(ee,{content:I.email},null,8,["content"]),s(ee,{content:I.count},null,8,["content"]),P("td",He,[s(L,{appearance:"secondary",disabled:I.email===d.value||c.value||T.value,loading:(R=v.value)==null?void 0:R[I.email],onClick:ya=>e(I.email)},{default:r(()=>[..._[3]||(_[3]=[S(" Change to default ",-1)])]),_:1},8,["disabled","loading","onClick"])])]}),_:1},8,["columns"])])]))}},We=q(Ke,[["__scopeId","data-v-c0025cee"]]),Ye={class:"settings-notification"},Qe={class:"settings-notification__titles"},Xe={class:"settings-notification__group-wrapper"},Ze={class:"settings-notification__group-items"},ea=["textContent"],aa={key:0,class:"settings-notification__group-additional"},ta={key:1,class:"settings-notification__group-additional"},sa={__name:"SettingsNotification",setup($){const b=i([{name:"System notification",systemName:null},{name:"Interface",systemName:"interface"},{name:"E-mail",systemName:"email"},{name:"Telegram",systemName:"telegram"}]),V=j(),C=i(!0),p=i(!1),v=i([]),f=i([]),d=i({}),c=i({});se(()=>{z()});const T=N(()=>({settingsThresholds:{1:{value:{minValue:X(0)}},2:{value:{maxValue:ye(100),minValue:X(0)}}}})),h=G(T,{settingsThresholds:d}),x=N(()=>`To receive Telegram notifications please add bot @${V.getters["auth/telegramName"]}`),w=N(()=>{if(JSON.stringify(f.value)===JSON.stringify(v.value))return!1;let e={};return f.value.forEach(n=>{const t=v.value.find(l=>l.id===n.id);b.value.forEach(l=>{const _=l.systemName;_&&t[_].enabled!==n[_].enabled&&(e[n.id]={...e[n.id],[_]:t[_].enabled})})}),e}),m=N(()=>{if(JSON.stringify(c.value)===JSON.stringify(d.value))return!1;const e={};for(const n in d.value)d.value[n].value!==c.value[n].value&&(e[n]=+d.value[n].value);return e});function k(e){return e.email.enabled||e.interface.enabled||e.telegram.enabled}async function z(){C.value=!0;try{const e=await ce();d.value=E(e),c.value=O(d.value),v.value=e,f.value=O(v.value)}catch(e){console.error("error",e)}C.value=!1}function E(e){const n={};return e.forEach(t=>{t.threshold&&(n[t.id]={default:t.threshold.default,value:t.threshold.value+""||""})}),n}function g(e){const{value:n,default:t}=d.value[e];!n||n<0?d.value[e].value=t:h.value.settingsThresholds[e].$invalid&&(d.value[e].value=100)}async function o(){p.value=!0;try{await me({notificationSettingsList:w.value||void 0,notificationThresholdsList:m.value||void 0}),f.value=O(v.value),c.value=O(d.value)}catch(e){console.error("error",e)}p.value=!1}return(e,n)=>(u(),y("div",Ye,[C.value?(u(),M(ke,{key:0})):(u(),y(B,{key:1},[P("div",Qe,[(u(!0),y(B,null,H(b.value,t=>(u(),y("div",{key:t.name,class:"settings-notification__titles-item"},[s(J,{level:"2"},{default:r(()=>[S(K(t.name),1)]),_:2},1024),t.systemName==="telegram"?(u(),M(le,{key:0,class:"settings-notification__titles-tooltip","content-width":"300
1px","icon-size":"s"},{default:r(()=>[S(K(x.value),1)]),_:1})):A("",!0)]))),128))]),P("div",Xe,[(u(!0),y(B,null,H(v.value,t=>(u(),y("div",{key:t.id,class:"settings-notification__group"},[P("div",Ze,[P("span",{textContent:K(t.name)},null,8,ea),(u(!0),y(B,null,H(b.value,l=>(u(),y(B,null,[l.systemName?(u(),M($e,{key:t.id+"-"+l.systemName,modelValue:t[l.systemName].enabled,"onUpdate:modelValue":_=>t[l.systemName].enabled=_,color:"dark",disabled:t[l.systemName].disabled,"input-id":t.id+"-"+l.systemName},null,8,["modelValue","onUpdate:modelValue","disabled","input-id"])):A("",!0)],64))),256))]),t.id===1&&k(t)?(u(),y("div",aa,[s(W,{class:"settings-notification__group-additional__title",type:"table-text"},{default:r(()=>[...n[0]||(n[0]=[S(" Set up the value to receive notification ",-1)])]),_:1}),s(ae,{modelValue:a(h).settingsThresholds[t.id].value.$model,"onUpdate:modelValue":l=>a(h).settingsThresholds[t.id].value.$model=l,"no-label":"","without-blur-action":"",min:0,placeholder:c.value[t.id].default,v:a(h).settingsThresholds[t.id].value,onFocusout:l=>g(t.id)},null,8,["modelValue","onUpdate:modelValue","placeholder","v","onFocusout"])])):A("",!0),t.id===2&&k(t)?(u(),y("div",ta,[s(W,{class:"settings-notification__group-additional__title",type:"table-text"},{default:r(()=>[...n[1]||(n[1]=[S(" Set up the value to receive notification ",-1)])]),_:1}),s(ae,{modelValue:a(h).settingsThresholds[t.id].value.$model,"onUpdate:modelValue":l=>a(h).settingsThresholds[t.id].value.$model=l,"is-percent":"","no-label":"","without-blur-action":"",max:c.value[t.id].default,min:0,placeholder:c.value[t.id].default+"%",v:a(h).settingsThresholds[t.id].value,onFocusout:l=>g(t.id)},null,8,["modelValue","onUpdate:modelValue","max","placeholder","v","onFocusout"])])):A("",!0)]))),128)),s(L,{class:"settings-notification__button",disabled:!w.value&&!m.value||a(h).$invalid,loading:p.value,onClick:o},{default:r(()=>[...n[2]||(n[2]=[S(" Save ",-1)])]),_:1},8,["disabled","loading"])])],64))]))}},oa=q(sa,[["__scopeId","data-v-f372cd79"]]),la={class:"settings-personal"},na={class:"settings-personal__wrapper"},ia={key:0,class:"error"},ra={__name:"SettingsPersonal",props:{userId:{type:Number,required:!0}},setup($){const b=$,V=j(),C=i(!1),p=i(!0),v=i({}),f=i({}),d=i(""),c=i([]),T=N(()=>V.state.user.me.roles[0].id===3),h=N(()=>Ne(v.value,f.value)),x=N(()=>V.getters["user/currencyList"]),w=N(()=>({user:{firstName:{required:U,maxLength:Z(255)},lastName:{required:U,maxLength:Z(255)},teamName:{},balanceCurrency:{required:U},timezone:{required:U}}})),m=G(w,{user:v});async function k(){p.value=!0;try{const{firstName:g,lastName:o,teamName:e,email:n,balanceCurrency:t,timezone:l}=V.state.user.me;d.value=n,v.value={firstName:g,lastName:o,teamName:e,balanceCurrency:t,timezone:l},f.value=O(v.value)}catch{C.value=!0}p.value=!1}async function z(){p.value=!0;try{c.value=await Ee()}catch(g){C.value=!0,console.log(g)}p.value=!1}async function E(){p.value=!0;try{await oe({id:b.userId,...Te(f.value,v.value)}),await V.dispatch("user/updateMe"),k(),pe("Personal data has been successfully updated")}catch(g){console.log(g)}p.value=!1}return Y(()=>{k(),z()}),(g,o)=>(u(),y("div",la,[P("div",na,[s(J,{class:"settings-personal__title",level:"2"},{default:r(()=>[...o[6]||(o[6]=[S(" Personal data ",-1)])]),_:1}),C.value?(u(),y("div",ia,"Error")):p.value?(u(),M(Pe,{key:1})):(u(),y("form",{key:2,action:"",onSubmit:o[5]||(o[5]=ie(()=>{},["prevent"]))},[s(D,{modelValue:a(m).user.firstName.$model,"onUpdate:modelValue":o[0]||(o[0]=e=>a(m).user.firstName.$model=e),"input-id":"first-name",label:"First name",placeholder:"First name",v:a(m).user.firstName},null,8,["modelValue","v"]),s(D,{modelValue:a(m).user.lastName.$model,"onUpdate:modelValue":o[1]||(o[1]=e=>a(m).user.lastName.$model=e),"input-id":"last-name",label:"Last name",placeholder:"Last name",v:a(m).user.lastName},null,8,["modelValue","v"]),T.value?(u(),M(D,{key:0,modelValue:a(m).user.teamName.$model,"onUpdate:modelValue":o[2]||(o[2]=e=>a(m).user.teamName.$model=e),"input-id":"team-name",label:"Team name",placeholder:"Team name",v:a(m).user.teamName},null,8,["modelValue","v"])):A("",!0),s(D,{"input-id":"login",label:"Login","only-read":"","model-value":d.value,v:{}},null,8,["model-value"]),s(te,{modelValue:a(m).user.balanceCurrency.$model,"onUpdate:modelValue":o[3]||(o[3]=e=>a(m).user.balanceCurrency.$model=e),"input-id":"currency",label:"Balance currency",placeholder:"Choose currency","not-empty":"",options:x.value,v:a(m).user.balanceCurrency},null,8,["modelValue","options","v"]),s(te,{modelValue:a(m).user.timezone.$model,"onUpdate:modelValue":o[4]||(o[4]=e=>a(m).user.timezone.$model=e),"input-id":"timezone",label:"Time zone",placeholder:"Choose time zone","not-empty":"",options:c.value,v:a(m).user.timezone},null,8,["modelValue","options","v"])],32)),s(L,{class:"settings-personal__submit",disabled:a(m).$invalid||h.value,loading:p.value,onClick:E},{default:r(()=>[...o[7]||(o[7]=[S(" Save ",-1)])]),_:1},8,["disabled","loading"])])]))}},ua=q(ra,[["__scopeId","data-v-3c0c143a"]]),da={class:"settings-security"},ca={class:"settings-security__wrapper"},ma={class:"settings-security__password"},pa={class:"settings-security__password-checker"},va={key:0,class:"skeleton_item"},fa={__name:"SettingsSecurity",props:{userId:{type:Number,required:!0}},setup($){const b=$,V=()=>O({oldPassword:"",newPassword:"",newPasswordConfirmation:""}),p=Se(Ue).smallerOrEqual("sm"),v=j(),f=i(!1),d=i(!1),c=i(V()),T=i(!1),h=N(()=>v.state.user.me.twoFA),x=N(()=>({passwords:{oldPassword:{required:U,incorrect:F.withMessage("Incorrect password",m)},newPassword:{required:U,latin:F.withMessage("Password can only contain latin character",F.regex(/[^Ð-ÑÐÑ]/gi)),isStrongPassword:F.withMessage("Password is weak",De.isStrongPassword)},newPasswordConfirmation:{required:U,sameAs:F.withMessage("Passwords don't match",he(c.value.newPassword))}}})),w=G(x,{passwords:c});function m(){return!T.value}async function k(){d.value=!0;try{const{twoFA:g}=await fe();h.value=g}catch(g){console.error(g)}d.value=!1}async function z(){f.value=!0;try{await ge({...c.value})}catch(g){T.value=!0,console.error(g)}f.value=!1}async function E(g){try{await oe({id:b.userId,twoFA:g}),await v.dispatch("user/updateMe")}catch(o){console.error(o)}}return re(()=>c.value.oldPassword,()=>
1{w.value.passwords.oldPassword.incorrect.$invalid&&(T.value=!1)}),Y(()=>{k()}),(g,o)=>(u(),y("div",da,[P("div",ca,[P("div",ma,[s(J,{class:"settings-security__title",level:"2"},{default:r(()=>[...o[3]||(o[3]=[S(" Change password ",-1)])]),_:1}),s(D,{modelValue:a(w).passwords.oldPassword.$model,"onUpdate:modelValue":o[0]||(o[0]=e=>a(w).passwords.oldPassword.$model=e),"input-id":"current-password",label:"Current password",placeholder:"Current password",type:"password",v:a(w).passwords.oldPassword},null,8,["modelValue","v"]),s(D,{modelValue:a(w).passwords.newPassword.$model,"onUpdate:modelValue":o[1]||(o[1]=e=>a(w).passwords.newPassword.$model=e),"input-id":"new-password",label:"New password",placeholder:"New password",type:"password",v:a(w).passwords.newPassword},{info:r(()=>[s(ze,{type:"info"},{default:r(()=>[s(ve,{size:a(p)?"m":"xs"},{default:r(()=>[s(Me)]),_:1},8,["size"])]),_:1})]),_:1},8,["modelValue","v"]),P("div",pa,[ue(s(Ae,{value:c.value.newPassword},null,8,["value"]),[[de,c.value.newPassword]])]),s(D,{modelValue:a(w).passwords.newPasswordConfirmation.$model,"onUpdate:modelValue":o[2]||(o[2]=e=>a(w).passwords.newPasswordConfirmation.$model=e),"input-id":"repeat-password",label:"Re-enter password",placeholder:"Re-enter password",type:"password",v:a(w).passwords.newPasswordConfirmation},null,8,["modelValue","v"]),s(L,{class:"settings-security__submit",disabled:a(w).$invalid,loading:f.value,onClick:z},{default:r(()=>[...o[4]||(o[4]=[S(" Save ",-1)])]),_:1},8,["disabled","loading"])]),s(J,{class:"settings-security__title",level:"2"},{default:r(()=>[...o[5]||(o[5]=[S(" Account actions ",-1)])]),_:1}),d.value?(u(),y("div",va)):(u(),M(xe,{key:1,subtitle:"2-step verification (2FA) ensures your account is better protected",title:"2-step verification methods","model-value":h.value,"onUpdate:modelValue":E},{icon:r(()=>[s(Ie)]),_:1},8,["model-value"]))])]))}},ga=q(fa,[["__scopeId","data-v-fa4f4a12"]]),_a={class:"settings"},wa={__name:"SettingsView",setup($){const b=Object.freeze([{title:"Personal data",value:"personal"},{title:"Security",value:"security"},{title:"Notification",value:"notification"},{title:"E-mail for cards",value:"email"}]),V=j(),C=V.state.user.me.id,p=N(()=>V.getters["user/role"]);function v(f){return _e.getIsAvailableMethod("main")(p.value,f)}return(f,d)=>(u(),y("section",_a,[v("layout:client-information")?(u(),M(Oe,{key:0})):A("",!0),s(Fe,{class:"settings-tabs"},{default:r(()=>[s(Le,{"tabs-id":"settings",tabs:a(b)},{personal:r(()=>[s(ua,{"user-id":a(C)},null,8,["user-id"])]),security:r(()=>[s(ga,{"user-id":a(C)},null,8,["user-id"])]),notification:r(()=>[s(oa)]),email:r(()=>[s(We)]),_:1},8,["tabs"])]),_:1})]))}},at=q(wa,[["__scopeId","data-v-4c5e9873"]]);export{at 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.