(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[399,896],{7145:(e,s,t)=>{Promise.resolve().then(t.bind(t,7366))},7366:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>ej});var n=t(5155),a=t(2115),r=t(2928),l=t(3312),i=t(9749),c=t(7549);let o=a.forwardRef((e,s)=>{let{className:t,variant:a="default",...r}=e;return(0,n.jsx)("div",{ref:s,className:(0,c.cn)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}[a],t),...r})});o.displayName="Badge";var d=t(4505),m=t(1466),x=t(7508),u=t(7223),h=t(6764),j=t(6889),p=t(3831),f=t(3817),g=t(6744),v=t(5686),N=t(9351),b=t(6046),y=t(9606),w=t(2679),k=t(534),C=t(814),A=t(3900),R=t(2896),P=t(4870),S=t(8867),L=t(767),B=t(3580),$=t(9581),E=t(3705),z=t(3301);let Z=a.forwardRef((e,s)=>{let{className:t,...a}=e;return(0,n.jsxs)(z.bL,{ref:s,className:(0,c.cn)("relative flex w-full touch-none select-none items-center",t),...a,children:[(0,n.jsx)(z.CC,{className:"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary",children:(0,n.jsx)(z.Q6,{className:"absolute h-full bg-primary"})}),(0,n.jsx)(z.zi,{className:"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"})]})});Z.displayName=z.bL.displayName;let F="http://127.0.0.1:5000/api".replace("/api","");function T(e){let{currentAvatarUrl:s,onUploadSuccess:t}=e,[r,i]=a.useState(s),[c,o]=a.useState(!1),[d,x]=a.useState(null),[u,h]=a.useState({x:0,y:0}),[j,p]=a.useState(1),[f,g]=a.useState(null),v=a.useRef(null),N=function(e){if(e)return e.startsWith("http://")||e.startsWith("https://")?e:e.startsWith("/")?"".concat(F).concat(e):"".concat(F,"/").concat(e)}(r);a.useEffect(()=>{i(s)},[s]);let b=a.useCallback((e,s)=>{g(s)},[]),y=async(e,s)=>{let t=await w(e),n=document.createElement("canvas"),a=n.getContext("2d");if(!a)throw Error("Failed to get canvas context");return n.width=s.width,n.height=s.height,a.drawImage(t,s.x,s.y,s.width,s.height,0,0,s.width,s.height),new Promise(e=>{n.toBlob(s=>{s&&e(s)},"image/jpeg",.95)})},w=e=>new Promise((s,t)=>{let n=new Image;n.addEventListener("load",()=>s(n)),n.addEventListener("error",e=>t(e)),n.src=e}),k=async()=>{if(d&&f){o(!0);try{let e=await y(d,f),s=new File([e],"avatar.jpg",{type:"image/jpeg"}),n=new FormData;n.append("file",s);let a=(await E.F.post("/profile/avatar",n,{headers:{"Content-Type":"multipart/form-data"}})).data.avatarUrl;i(a),x(null),null==t||t(a),C.oR.success("Аватар успешно загружен")}catch(e){console.error("Error uploading avatar:",e),C.oR.error("Ошибка при загрузке аватара")}finally{o(!1)}}};return d?(0,n.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,n.jsx)("div",{className:"relative w-full h-64 bg-muted rounded-lg overflow-hidden",children:(0,n.jsx)($.Ay,{image:d,crop:u,zoom:j,aspect:1,cropShape:"round",showGrid:!1,onCropChange:h,onZoomChange:p,onCropComplete:b})}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Масштаб"}),(0,n.jsx)(Z,{value:[j],min:1,max:3,step:.1,onValueChange:e=>p(e[0])})]}),(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(l.$,{onClick:k,disabled:c,className:"flex-1 bg-blue-600 hover:bg-blue-700",children:c?(0,n.jsx)("div",{className:"w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin"}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(S.A,{className:"w-4 h-4 mr-2"}),"Сохранить"]})}),(0,n.jsxs)(l.$,{onClick:()=>{x(null),h({x:0,y:0}),p(1)},variant:"outline",disabled:c,children:[(0,n.jsx)(L.A,{className:"w-4 h-4 mr-2"}),"Отмена"]})]})]}):(0,n.jsx)("div",{className:"flex flex-col items-center",children:(0,n.jsxs)("div",{className:"relative w-40 h-40 rounded-full overflow-hidden bg-muted cursor-pointer group",onClick:()=>{var e;return null===(e=v.current)||void 0===e?void 0:e.click()},children:[N?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("img",{src:N,alt:"Avatar",className:"w-full h-full object-cover"}),(0,n.jsx)("div",{className:"absolute inset-0 bg-black/50 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity",children:(0,n.jsxs)("div",{className:"flex items-center gap-2 text-white",children:[(0,n.jsx)(B.A,{className:"w-6 h-6"}),(0,n.jsx)("span",{className:"text-sm font-medium",children:"Изменить"})]})})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"w-full h-full flex items-center justify-center",children:(0,n.jsx)(m.A,{className:"w-20 h-20 text-muted-foreground"})}),(0,n.jsx)("div",{className:"absolute inset-0 bg-black/50 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity p-4 text-center",children:(0,n.jsxs)("div",{className:"text-white text-xs space-y-1",children:[(0,n.jsx)("p",{children:"Нажмите, чтобы загрузить"}),(0,n.jsx)("p",{children:"JPG или PNG, до 5 МБ"})]})})]}),(0,n.jsx)("input",{ref:v,type:"file",accept:"image/jpeg,image/jpg,image/png",onChange:e=>{var s;let t=null===(s=e.target.files)||void 0===s?void 0:s[0];if(!t)return;if(t.size>5242880){C.oR.error("Размер файла не должен превышать 5 МБ");return}if(!["image/jpeg","image/jpg","image/png"].includes(t.type)){C.oR.error("Допустимые форматы: JPG, PNG");return}let n=new FileReader;n.onloadend=()=>{x(n.result)},n.readAsDataURL(t)},className:"hidden"})]})})}function I(e){let{value:s=[],onChange:t,placeholder:r="Добавить компетенцию...",maxTags:l=50}=e,[i,c]=a.useState(""),[d,m]=a.useState(null);a.useEffect(()=>{let e=setTimeout(async()=>{if(i.length<2){m(null);return}try{let e=(await E.F.get("/competencies/search?q=".concat(encodeURIComponent(i)))).data.filter(e=>!s.includes(e));m(e.length>0?e[0]:null)}catch(e){console.error("Error fetching suggestions:",e),m(null)}},300);return()=>clearTimeout(e)},[i,s]);let x=e=>{let n=e?e.trim().toLowerCase():e;n&&!s.includes(n)&&s.length{t(s.filter(s=>s!==e))},h=d&&d.toLowerCase().startsWith(i.toLowerCase());return(0,n.jsxs)("div",{className:"w-full",children:[(0,n.jsx)("div",{className:"flex flex-wrap gap-2 mb-3",children:s.map(e=>(0,n.jsxs)(o,{variant:"secondary",className:"gap-1.5 px-3 py-1.5 text-sm bg-blue-50 hover:bg-blue-100 text-blue-900 border-blue-200 dark:bg-blue-950 dark:text-blue-100 dark:border-blue-800 transition-colors",children:[e,(0,n.jsx)("button",{type:"button",onClick:()=>u(e),className:"ml-1 hover:bg-blue-200 dark:hover:bg-blue-800 rounded-full p-0.5 transition-colors","aria-label":"Удалить ".concat(e),children:(0,n.jsx)(L.A,{className:"h-3.5 w-3.5"})})]},e))}),(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsx)(A.p,{value:i,onChange:e=>{c(e.target.value)},onKeyDown:e=>{"Enter"===e.key&&i?(e.preventDefault(),x(i)):"Tab"===e.key&&d?(e.preventDefault(),x(d)):"Escape"===e.key?m(null):"Backspace"===e.key&&!i&&s.length>0&&u(s[s.length-1])},onBlur:()=>m(null),placeholder:s.length>=l?"Максимум ".concat(l," компетенций"):r,disabled:s.length>=l,className:"text-base pr-0"}),h&&(0,n.jsx)("div",{className:"absolute inset-y-0 left-0 pointer-events-none flex items-center px-3",children:(0,n.jsxs)("span",{className:"text-base",children:[i,(0,n.jsx)("span",{className:"text-muted-foreground",children:d.slice(i.length)})]})})]}),s.length>0&&(0,n.jsxs)("p",{className:"text-sm text-muted-foreground mt-2",children:[s.length," / ",l," компетенций"]})]})}var M=t(865);function W(e){let{value:s,showValue:t=!0,size:a="md"}=e,r=()=>s>=4?"text-green-600 dark:text-green-500":s>=3?"text-blue-600 dark:text-blue-500":"text-red-600 dark:text-red-500",l={sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"},i=Array.from({length:5},(e,t)=>{let n=Math.max(0,Math.min(100,(s-t)*100));return{index:t,fillPercentage:n}});return(0,n.jsxs)("div",{className:"flex items-center gap-3",children:[(0,n.jsx)("div",{className:"flex items-center gap-1",children:i.map(e=>{let{index:s,fillPercentage:t}=e;return(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsx)(M.A,{className:"".concat(l[a]," text-muted-foreground/30")}),(0,n.jsx)("div",{className:"absolute inset-0 overflow-hidden",style:{width:"".concat(t,"%")},children:(0,n.jsx)(M.A,{className:"".concat(l[a]," ").concat(r()," fill-current")})})]},s)})}),t&&(0,n.jsx)("span",{className:"font-semibold ".concat(r()),children:s.toFixed(2)})]})}var O=t(1902),J=t(1719);function D(e){let{description:s,maxLines:t=10}=e,[r,i]=(0,a.useState)(!1),[c,o]=(0,a.useState)(!1),d=(0,a.useRef)(null);if((0,a.useEffect)(()=>{if(d.current){let e=20*t;o(d.current.scrollHeight>e)}},[s,t]),(0,a.useEffect)(()=>{let e=e=>{let s=e.target.closest("a");if(s){e.preventDefault();let t=s.getAttribute("href");if(!t)return;if(t.startsWith("http://")||t.startsWith("https://"))try{let e=new URL(t).hostname;confirm("Вы переходите на внешний ресурс: ".concat(e,"\n\n")+"Ссылка: ".concat(t,"\n\n")+"Вы уверены, что хотите перейти?")&&window.open(t,"_blank","noopener,noreferrer")}catch(e){window.open(t,"_blank","noopener,noreferrer")}else window.open(t,"_blank")}},s=d.current;if(s)return s.addEventListener("click",e),()=>s.removeEventListener("click",e)},[]),!s)return null;if(s.includes("<")){let e=20*t;return(0,n.jsxs)("div",{className:"flex py-3 justify-start items-start",children:[(0,n.jsx)("span",{className:"text-muted-foreground mr-4 whitespace-nowrap",children:"Описание"}),(0,n.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,n.jsx)("div",{ref:d,className:"text-left text-sm leading-relaxed prose prose-sm max-w-none dark:prose-invert overflow-hidden transition-all duration-200 ".concat(r?"max-h-none":""),style:{maxHeight:r?"none":"".concat(e,"px")},dangerouslySetInnerHTML:{__html:s}}),c&&(0,n.jsx)(l.$,{variant:"link",size:"sm",onClick:()=>i(!r),className:"mt-2 h-auto p-0 text-blue-600 hover:text-blue-700",children:r?(0,n.jsxs)(n.Fragment,{children:["Свернуть",(0,n.jsx)(O.A,{className:"ml-1 h-4 w-4"})]}):(0,n.jsxs)(n.Fragment,{children:["Показать полностью",(0,n.jsx)(J.A,{className:"ml-1 h-4 w-4"})]})})]})]})}let m=s.split("\n"),x=m.length>t,u=r?m:m.slice(0,t);return(0,n.jsxs)("div",{className:"flex py-3 justify-start items-start",children:[(0,n.jsx)("span",{className:"text-muted-foreground mr-4 whitespace-nowrap",children:"Описание"}),(0,n.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,n.jsx)("div",{className:"text-left text-sm leading-relaxed whitespace-pre-wrap break-words",children:u.join("\n")}),x&&(0,n.jsx)(l.$,{variant:"link",size:"sm",onClick:()=>i(!r),className:"mt-2 h-auto p-0 text-blue-600 hover:text-blue-700",children:r?(0,n.jsxs)(n.Fragment,{children:["Свернуть",(0,n.jsx)(O.A,{className:"ml-1 h-4 w-4"})]}):(0,n.jsxs)(n.Fragment,{children:["Показать полностью",(0,n.jsx)(J.A,{className:"ml-1 h-4 w-4"})]})})]})]})}let Y=[{key:"1",ruKey:"Понедельник",label:"Пн"},{key:"2",ruKey:"Вторник",label:"Вт"},{key:"3",ruKey:"Среда",label:"Ср"},{key:"4",ruKey:"Четверг",label:"Чт"},{key:"5",ruKey:"Пятница",label:"Пт"},{key:"6",ruKey:"Суббота",label:"Сб"},{key:"7",ruKey:"Воскресенье",label:"Вс"}],_={Понедельник:"1",Вторник:"2",Среда:"3",Четверг:"4",Пятница:"5",Суббота:"6",Воскресенье:"7"};function U(e){let{workSchedule:s}=e,t=function(e){if(!e)return{};let s={};if(e.schedulePerDay)s=e.schedulePerDay;else if(e.workingDays)try{s=JSON.parse(e.workingDays)}catch(e){return{}}let t={};for(let[e,n]of Object.entries(s)){if(!Array.isArray(n))continue;let s=e;_[e]&&(s=_[e]),t[s]=n.map(e=>({start:e.start||e.Start||e.startTime||e.StartTime,end:e.end||e.End||e.endTime||e.EndTime}))}return t}(s);return s?s.isAlwaysReady?(0,n.jsxs)(i.Zp,{children:[(0,n.jsx)(i.aR,{children:(0,n.jsx)(i.ZB,{className:"text-lg",children:"Расписание работы"})}),(0,n.jsx)(i.Wu,{children:(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsxs)(o,{variant:"default",className:"bg-green-600 hover:bg-green-700",children:[(0,n.jsx)(j.A,{className:"w-4 h-4 mr-1"}),"Всегда на связи"]}),(0,n.jsx)("span",{className:"text-muted-foreground text-sm",children:"Готов к работе 24/7"})]})})]}):Object.values(t).some(e=>e&&e.length>0)?(0,n.jsxs)(i.Zp,{children:[(0,n.jsx)(i.aR,{children:(0,n.jsx)(i.ZB,{className:"text-lg",children:"Расписание работы"})}),(0,n.jsx)(i.Wu,{children:(0,n.jsx)("div",{className:"grid gap-2",children:Y.map(e=>{let s=t[e.key]||t[e.ruKey],a=s&&s.length>0;return(0,n.jsxs)("div",{className:"flex items-center justify-between p-2 rounded-md ".concat(a?"bg-muted/50":"opacity-50"),children:[(0,n.jsx)("span",{className:"font-medium",children:e.label}),a?(0,n.jsx)("div",{className:"flex gap-1 flex-wrap justify-end",children:s.map((e,s)=>{var t,a;return(0,n.jsxs)(o,{variant:"outline",className:"text-xs",children:[e.start||"--:--"," - ",e.end||"--:--"]},s)})}):(0,n.jsx)("span",{className:"text-muted-foreground text-sm",children:"Выходной"})]},e.key)})})})]}):(0,n.jsxs)(i.Zp,{children:[(0,n.jsx)(i.aR,{children:(0,n.jsx)(i.ZB,{className:"text-lg",children:"Расписание работы"})}),(0,n.jsx)(i.Wu,{children:(0,n.jsx)("p",{className:"text-muted-foreground",children:"Расписание не указано"})})]}):(0,n.jsxs)(i.Zp,{children:[(0,n.jsx)(i.aR,{children:(0,n.jsx)(i.ZB,{className:"text-lg",children:"Расписание работы"})}),(0,n.jsx)(i.Wu,{children:(0,n.jsx)("p",{className:"text-muted-foreground",children:"Расписание не указано"})})]})}var K=t(8986);function G(e){let{open:s,onOpenChange:t,children:a}=e;return s?(0,n.jsx)(n.Fragment,{children:a}):null}function H(e){let{children:s,className:t,onClose:a,...r}=e;return(0,n.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[(0,n.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-sm",onClick:a}),(0,n.jsxs)("div",{className:(0,c.cn)("relative z-50 w-full max-w-lg mx-4 bg-white dark:bg-zinc-900 rounded-lg shadow-lg",t),...r,children:[a&&(0,n.jsxs)("button",{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",onClick:a,children:[(0,n.jsx)(L.A,{className:"h-4 w-4"}),(0,n.jsx)("span",{className:"sr-only",children:"Закрыть"})]}),s]})]})}function V(e){let{className:s,...t}=e;return(0,n.jsx)("div",{className:(0,c.cn)("flex flex-col space-y-1.5 text-center sm:text-left",s),...t})}function q(e){let{className:s,...t}=e;return(0,n.jsx)("div",{className:(0,c.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",s),...t})}function Q(e){let{className:s,...t}=e;return(0,n.jsx)("h2",{className:(0,c.cn)("text-lg font-semibold leading-none tracking-tight",s),...t})}function X(e){let{className:s,...t}=e;return(0,n.jsx)("p",{className:(0,c.cn)("text-sm text-muted-foreground",s),...t})}function ee(e){let{className:s,asChild:a,...r}=e;if(a){let{Slot:e}=t(5942);return(0,n.jsx)(e,{className:(0,c.cn)("absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",s),...r})}return(0,n.jsxs)("button",{className:(0,c.cn)("absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",s),...r,children:[(0,n.jsx)(L.A,{className:"h-4 w-4"}),(0,n.jsx)("span",{className:"sr-only",children:"Закрыть"})]})}var es=t(8686),et=t(738),en=t(2598);let ea=k.Ikc({oldPassword:k.YjP().min(1,"Введите текущий пароль"),newPassword:k.YjP().min(6,"Новый пароль должен содержать минимум 6 символов"),confirmPassword:k.YjP().min(1,"Подтвердите пароль")}).refine(e=>e.newPassword===e.confirmPassword,{message:"Пароли не совпадают",path:["confirmPassword"]});function er(e){let{open:s,onOpenChange:t}=e,[i,c]=(0,a.useState)(!1),[o,d]=(0,a.useState)(!1),[m,x]=(0,a.useState)(!1),{changePassword:u,isLoading:h}=(0,r.B)(),{register:j,handleSubmit:p,reset:f,formState:{errors:g}}=(0,y.mN)({resolver:(0,w.u)(ea)}),v=async e=>{try{await u(e.oldPassword,e.newPassword),C.oR.success("Пароль успешно изменён"),f(),t(!1)}catch(e){var s,n;C.oR.error((null==e?void 0:null===(n=e.response)||void 0===n?void 0:null===(s=n.data)||void 0===s?void 0:s.message)||"Ошибка при смене пароля")}};return(0,n.jsx)(G,{open:s,onOpenChange:()=>{f(),t(!1)},children:(0,n.jsxs)(H,{className:"sm:max-w-[425px]",children:[(0,n.jsxs)(V,{children:[(0,n.jsxs)(Q,{className:"flex items-center gap-2",children:[(0,n.jsx)(es.A,{className:"w-5 h-5"}),"Смена пароля"]}),(0,n.jsx)(X,{children:"Введите текущий пароль и придумайте новый"})]}),(0,n.jsxs)("form",{onSubmit:p(v),className:"space-y-4",children:[(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(K.J,{htmlFor:"oldPassword",children:"Текущий пароль"}),(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsx)(A.p,{id:"oldPassword",type:i?"text":"password",placeholder:"Введите текущий пароль",...j("oldPassword")}),(0,n.jsx)("button",{type:"button",onClick:()=>c(!i),className:"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground",children:i?(0,n.jsx)(et.A,{className:"w-4 h-4"}):(0,n.jsx)(en.A,{className:"w-4 h-4"})})]}),g.oldPassword&&(0,n.jsx)("p",{className:"text-sm text-red-500",children:g.oldPassword.message})]}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(K.J,{htmlFor:"newPassword",children:"Новый пароль"}),(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsx)(A.p,{id:"newPassword",type:o?"text":"password",placeholder:"Введите новый пароль",...j("newPassword")}),(0,n.jsx)("button",{type:"button",onClick:()=>d(!o),className:"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground",children:o?(0,n.jsx)(et.A,{className:"w-4 h-4"}):(0,n.jsx)(en.A,{className:"w-4 h-4"})})]}),g.newPassword&&(0,n.jsx)("p",{className:"text-sm text-red-500",children:g.newPassword.message})]}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(K.J,{htmlFor:"confirmPassword",children:"Подтвердите пароль"}),(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsx)(A.p,{id:"confirmPassword",type:m?"text":"password",placeholder:"Повторите новый пароль",...j("confirmPassword")}),(0,n.jsx)("button",{type:"button",onClick:()=>x(!m),className:"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground",children:m?(0,n.jsx)(et.A,{className:"w-4 h-4"}):(0,n.jsx)(en.A,{className:"w-4 h-4"})})]}),g.confirmPassword&&(0,n.jsx)("p",{className:"text-sm text-red-500",children:g.confirmPassword.message})]}),(0,n.jsxs)(q,{className:"gap-2 sm:gap-0",children:[(0,n.jsx)(ee,{asChild:!0,children:(0,n.jsx)(l.$,{type:"button",variant:"outline",children:"Отмена"})}),(0,n.jsx)(l.$,{type:"submit",disabled:h,children:h?"Сохранение...":"Сохранить"})]})]})]})})}let el=k.Ikc({location:k.YjP().optional(),currentLocation:k.YjP().optional()});function ei(e){let{open:s,onOpenChange:t,initialLocation:a="",initialCurrentLocation:i=""}=e,{updateLocation:c,isLoading:o}=(0,r.B)(),{register:d,handleSubmit:m,reset:x,formState:{errors:h}}=(0,y.mN)({resolver:(0,w.u)(el),defaultValues:{location:a,currentLocation:i}}),j=async e=>{try{await c(e.location||"",e.currentLocation||""),C.oR.success("Локация успешно обновлена"),t(!1)}catch(e){var s,n;C.oR.error((null==e?void 0:null===(n=e.response)||void 0===n?void 0:null===(s=n.data)||void 0===s?void 0:s.message)||"Ошибка при обновлении локации")}};return(0,n.jsx)(G,{open:s,onOpenChange:()=>{x(),t(!1)},children:(0,n.jsxs)(H,{className:"sm:max-w-[425px]",children:[(0,n.jsxs)(V,{children:[(0,n.jsxs)(Q,{className:"flex items-center gap-2",children:[(0,n.jsx)(u.A,{className:"w-5 h-5"}),"Изменить локацию"]}),(0,n.jsx)(X,{children:"Укажите вашу локацию для поиска заказов"})]}),(0,n.jsxs)("form",{onSubmit:m(j),className:"space-y-4",children:[(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(K.J,{htmlFor:"location",children:"Город / Район"}),(0,n.jsx)(A.p,{id:"location",placeholder:"Например: Москва, ЮАО",...d("location")}),h.location&&(0,n.jsx)("p",{className:"text-sm text-red-500",children:h.location.message})]}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(K.J,{htmlFor:"currentLocation",children:"Текущее местоположение"}),(0,n.jsx)(A.p,{id:"currentLocation",placeholder:"Координаты или адрес",...d("currentLocation")}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground",children:"Можно оставить пустым, если не хотите показывать точное местоположение"}),h.currentLocation&&(0,n.jsx)("p",{className:"text-sm text-red-500",children:h.currentLocation.message})]}),(0,n.jsxs)(q,{className:"gap-2 sm:gap-0",children:[(0,n.jsx)(ee,{asChild:!0,children:(0,n.jsx)(l.$,{type:"button",variant:"outline",children:"Отмена"})}),(0,n.jsx)(l.$,{type:"submit",disabled:o,children:o?"Сохранение...":"Сохранить"})]})]})]})})}var ec=t(2291);let eo=["Понедельник","Вторник","Среда","Четверг","Пятница","Суббота","Воскресенье"],ed=(()=>{let e=[];for(let s=0;s<24;s++)for(let t=0;t<60;t+=30){let n=s.toString().padStart(2,"0"),a=t.toString().padStart(2,"0");e.push("".concat(n,":").concat(a))}return e})(),em={Понедельник:"1",Вторник:"2",Среда:"3",Четверг:"4",Пятница:"5",Суббота:"6",Воскресенье:"7"};function ex(e){let{open:s,onOpenChange:t,initialIsAlwaysReady:i=!1,initialSchedulePerDay:c=null}=e,{updateSchedule:o,isLoading:d}=(0,r.B)(),[m,x]=(0,a.useState)(i),[u,h]=(0,a.useState)(!i),[p,f]=(0,a.useState)(()=>{let e={};return eo.forEach(s=>{e[s]=[]}),c&&Object.entries(c).forEach(s=>{let[t,n]=s;if(Array.isArray(n)&&n.length>0){let s=eo[parseInt(t)-1];s&&(e[s]=n.map(e=>({start:e.start||"09:00",end:e.end||"18:00"})))}}),e});(0,a.useEffect)(()=>{if(s){x(i),h(!i);let e={};eo.forEach(s=>e[s]=[]),c&&Object.entries(c).forEach(s=>{let[t,n]=s;if(Array.isArray(n)&&n.length>0){let s=eo[parseInt(t)-1];s&&(e[s]=n.map(e=>({start:e.start||"09:00",end:e.end||"18:00"})))}}),f(e)}},[s,i,c]);let g=e=>{m&&x(!1);let s={...p};s[e].length>0?s[e]=[]:s[e]=[{start:"09:00",end:"18:00"}],f(s)},v=e=>{m&&x(!1);let s={...p};s[e]=[...s[e]||[],{start:"00:00",end:"00:00"}],f(s)},N=(e,s)=>{let t={...p},n=t[e].filter((e,t)=>t!==s);t[e]=n,f(t)},b=(e,s,t,n)=>{m&&x(!1);let a={...p};a[e][s][t]=n,f(a)},y=async()=>{try{let e={};Object.entries(p).forEach(s=>{let[t,n]=s;if(n.length>0){let s=em[t];s&&(e[s]=n)}}),await o(m,Object.keys(e).length>0?e:void 0),C.oR.success("Расписание успешно обновлено"),t(!1)}catch(t){var e,s;C.oR.error((null==t?void 0:null===(s=t.response)||void 0===s?void 0:null===(e=s.data)||void 0===e?void 0:e.message)||"Ошибка при обновлении расписания")}},w=()=>{t(!1)};return(0,n.jsx)(G,{open:s,onOpenChange:w,children:(0,n.jsxs)(H,{className:"sm:max-w-[600px] max-h-[90vh] overflow-y-auto",children:[(0,n.jsxs)(V,{children:[(0,n.jsxs)(Q,{className:"flex items-center gap-2",children:[(0,n.jsx)(j.A,{className:"w-5 h-5"}),"Изменить расписание"]}),(0,n.jsx)(X,{children:"Настройте дни и часы работы"})]}),(0,n.jsxs)("div",{className:"space-y-6",children:[(0,n.jsxs)("div",{className:"flex items-start space-x-3",children:[(0,n.jsx)(ec.S,{id:"always-ready-edit",checked:m,onCheckedChange:e=>{if(x(e),e){let e={};eo.forEach(s=>e[s]=[]),f(e)}}}),(0,n.jsxs)("div",{className:"space-y-1",children:[(0,n.jsx)(K.J,{htmlFor:"always-ready-edit",className:"cursor-pointer",children:"Всегда готов к заказам"}),(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"Если включено, клиенты будут видеть вас доступным в любое время"})]})]}),(0,n.jsxs)("div",{className:"space-y-3",children:[(0,n.jsxs)(l.$,{type:"button",variant:"outline",className:"w-full justify-between",onClick:()=>h(!u),children:[(0,n.jsxs)("span",{className:"flex items-center gap-2",children:[(0,n.jsx)(j.A,{className:"w-4 h-4"}),"Настроить расписание"]}),u?(0,n.jsx)(O.A,{className:"w-4 h-4"}):(0,n.jsx)(J.A,{className:"w-4 h-4"})]}),u&&(0,n.jsxs)("div",{className:"space-y-3 mt-4",children:[(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"Для каждого дня недели укажите периоды работы. Если для дня нет расписания - выходной."}),eo.map(e=>{var s,t,a;return(0,n.jsxs)("div",{className:"border rounded-lg p-4 space-y-3",children:[(0,n.jsxs)("div",{className:"flex items-center gap-3",children:[(0,n.jsx)(ec.S,{id:"edit-".concat(e),checked:(null===(s=p[e])||void 0===s?void 0:s.length)>0,onCheckedChange:()=>g(e)}),(0,n.jsx)("label",{htmlFor:"edit-".concat(e),className:"font-medium cursor-pointer flex-1",children:e}),(null===(t=p[e])||void 0===t?void 0:t.length)>0&&(0,n.jsx)(l.$,{type:"button",variant:"outline",size:"sm",onClick:()=>v(e),children:"+ Добавить период"})]}),null===(a=p[e])||void 0===a?void 0:a.map((s,t)=>{var a;return(0,n.jsxs)("div",{className:"flex items-center gap-2 pl-7",children:[(0,n.jsxs)("select",{className:"flex h-9 w-32 rounded-md border border-input bg-background px-3 py-1 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",value:s.start,onChange:s=>b(e,t,"start",s.target.value),children:[(0,n.jsx)("option",{value:"",disabled:!0,children:"Начало"}),ed.map(e=>(0,n.jsx)("option",{value:e,children:e},"start-".concat(e)))]}),(0,n.jsx)("span",{className:"text-muted-foreground",children:"—"}),(0,n.jsxs)("select",{className:"flex h-9 w-32 rounded-md border border-input bg-background px-3 py-1 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",value:s.end,onChange:s=>b(e,t,"end",s.target.value),children:[(0,n.jsx)("option",{value:"",disabled:!0,children:"Конец"}),ed.filter(e=>e>s.start).map(e=>(0,n.jsx)("option",{value:e,children:e},"end-".concat(e)))]}),(null===(a=p[e])||void 0===a?void 0:a.length)>1&&(0,n.jsx)(l.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>N(e,t),className:"text-red-500 hover:text-red-700",children:"Удалить"})]},t)})]},e)})]})]})]}),(0,n.jsxs)(q,{className:"gap-2 sm:gap-0",children:[(0,n.jsx)(l.$,{type:"button",variant:"outline",onClick:w,children:"Отмена"}),(0,n.jsx)(l.$,{onClick:y,disabled:d,children:d?"Сохранение...":"Сохранить"})]})]})})}let eu=k.Ikc({firstName:k.YjP().min(2,"Имя должно содержать минимум 2 символа").regex(/^[^0-9]*$/,"Имя не должно содержать цифры"),lastName:k.YjP().min(2,"Фамилия должна содержать минимум 2 символа").regex(/^[^0-9]*$/,"Фамилия не должна содержать цифры"),patronymic:k.YjP().optional().refine(e=>!e||/^[^0-9]*$/.test(e),{message:"Отчество не должно содержать цифры"}),companyName:k.YjP().optional(),inn:k.YjP().optional(),description:k.YjP().max(2048,"Описание не может превышать 2048 символов").optional()}),eh=k.Ikc({newPhone:k.YjP().min(10,"Номер телефона должен содержать минимум 10 цифр")});function ej(){var e,s;let{user:t,isAuth:k,isLoading:S,isInitialized:L,getProfile:B,updateProfile:$,changePhone:E,becomePerformer:z,logout:Z,updateCompetencies:F}=(0,r.B)(),M=(0,b.useRouter)(),[O,J]=a.useState(!1),[Y,_]=a.useState(!1),[K,G]=a.useState(!1),[H,V]=a.useState(!1),[q,Q]=a.useState(!1),X=function(){let[e,s]=a.useState(0);return a.useEffect(()=>{s(5*Math.random());let e=setInterval(()=>{s(5*Math.random())},1e3);return()=>clearInterval(e)},[]),e}();a.useEffect(()=>{L&&(S||k?k&&!t&&B():M.push("/auth/login"))},[k,S,t,M,L]);let ee=(0,y.mN)({resolver:(0,w.u)(eu),values:{firstName:(null==t?void 0:t.firstName)||"",lastName:(null==t?void 0:t.lastName)||"",patronymic:(null==t?void 0:t.patronymic)||"",companyName:(null==t?void 0:t.companyName)||"",inn:(null==t?void 0:t.inn)||"",description:(null==t?void 0:t.description)||""}}),es=(0,y.mN)({resolver:(0,w.u)(eh),defaultValues:{newPhone:(null==t?void 0:t.phone)||""}});async function et(e){try{await $(e),J(!1),C.oR.success("Профиль успешно обновлен")}catch(e){C.oR.error("Ошибка при обновлении профиля")}}async function en(e){try{await E(e.newPhone),_(!1),C.oR.success("Номер телефона успешно изменен")}catch(e){C.oR.error("Ошибка при смене номера телефона")}}if(a.useEffect(()=>{(null==t?void 0:t.phone)&&es.reset({newPhone:t.phone})},[null==t?void 0:t.phone,es]),S&&!t)return(0,n.jsx)("div",{className:"flex h-[50vh] items-center justify-center",children:(0,n.jsx)(d.A,{className:"h-8 w-8 animate-spin text-blue-600"})});if(!t)return(0,n.jsxs)("div",{className:"container py-10 text-center",children:[(0,n.jsx)("h1",{className:"text-2xl font-bold mb-4",children:"Пожалуйста, войдите в систему"}),(0,n.jsx)(l.$,{asChild:!0,children:(0,n.jsx)("a",{href:"/auth/login",children:"Войти"})})]});let ea=t.roles.includes("Master")||t.roles.includes("Newbie"),el=t.roles.includes("Company"),ec=t.roles.includes("Candidate"),eo=!ea&&!ec&&!el,ed=e=>({Client:"Клиент",Master:"Мастер",Newbie:"Новичок",Candidate:"Кандидат",Company:"Компания",Admin:"Администратор",User:"Пользователь"})[e]||e;return(0,n.jsxs)("div",{className:"container max-w-4xl py-10",children:[(0,n.jsxs)("div",{className:"flex flex-col md:flex-row md:items-center justify-between gap-4 mb-8",children:[(0,n.jsx)("div",{className:"flex items-center gap-4",children:(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{className:"text-3xl font-bold mb-1",children:el?t.companyName:t.fullName}),(0,n.jsx)("p",{className:"text-muted-foreground mb-2",children:el?"Компания":"Частное лицо"}),(0,n.jsx)("div",{className:"flex items-center gap-2",children:(0,n.jsx)(W,{value:X,size:"md"})})]})}),(0,n.jsx)(l.$,{variant:"outline",className:"text-destructive border-destructive hover:bg-destructive hover:text-white",onClick:()=>Z(),children:"Выйти из аккаунта"})]}),(0,n.jsxs)("div",{className:"grid gap-6 md:grid-cols-2",children:[(0,n.jsxs)(i.Zp,{className:"md:col-span-2",children:[(0,n.jsxs)(i.aR,{className:"flex flex-row items-center justify-between space-y-0",children:[(0,n.jsxs)("div",{className:"space-y-1",children:[(0,n.jsxs)(i.ZB,{className:"flex items-center gap-2",children:[(0,n.jsx)(m.A,{className:"h-5 w-5 text-blue-600"}),el?"Данные компании":"Личные данные"]}),(0,n.jsx)(i.BT,{children:"Основная информация вашего профиля"})]}),(0,n.jsx)(l.$,{variant:"ghost",size:"sm",onClick:()=>{!O&&t&&ee.reset({firstName:t.firstName,lastName:t.lastName,patronymic:t.patronymic||"",companyName:t.companyName||"",inn:t.inn||"",description:t.description||""}),J(!O)},children:O?"Отмена":"Редактировать"})]}),(0,n.jsx)(i.Wu,{children:(0,n.jsxs)("div",{className:"flex flex-col md:flex-row gap-6",children:[(0,n.jsx)("div",{className:"flex-shrink-0",children:(0,n.jsx)(T,{currentAvatarUrl:t.avatarUrl,onUploadSuccess:()=>B()})}),(0,n.jsx)("div",{className:"flex-1",children:O?(0,n.jsx)(P.lV,{...ee,children:(0,n.jsxs)("form",{onSubmit:ee.handleSubmit(et),className:"space-y-4",children:[el?(0,n.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,n.jsx)(P.zB,{control:ee.control,name:"companyName",render:e=>{let{field:s}=e;return(0,n.jsxs)(P.eI,{children:[(0,n.jsx)(P.lR,{children:"Название компании"}),(0,n.jsx)(P.MJ,{children:(0,n.jsx)(A.p,{value:s.value||"",onChange:s.onChange})}),(0,n.jsx)(P.C5,{})]})}}),(0,n.jsx)(P.zB,{control:ee.control,name:"inn",render:e=>{let{field:s}=e;return(0,n.jsxs)(P.eI,{children:[(0,n.jsx)(P.lR,{children:"ИНН"}),(0,n.jsx)(P.MJ,{children:(0,n.jsx)(A.p,{placeholder:"1234567890",maxLength:10,value:s.value||"",onChange:s.onChange})}),(0,n.jsx)(P.C5,{})]})}})]}):(0,n.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,n.jsx)(P.zB,{control:ee.control,name:"firstName",render:e=>{let{field:s}=e;return(0,n.jsxs)(P.eI,{children:[(0,n.jsx)(P.lR,{children:"Имя"}),(0,n.jsx)(P.MJ,{children:(0,n.jsx)(A.p,{value:s.value||"",onChange:s.onChange})}),(0,n.jsx)(P.C5,{})]})}}),(0,n.jsx)(P.zB,{control:ee.control,name:"lastName",render:e=>{let{field:s}=e;return(0,n.jsxs)(P.eI,{children:[(0,n.jsx)(P.lR,{children:"Фамилия"}),(0,n.jsx)(P.MJ,{children:(0,n.jsx)(A.p,{value:s.value||"",onChange:s.onChange})}),(0,n.jsx)(P.C5,{})]})}}),(0,n.jsx)(P.zB,{control:ee.control,name:"patronymic",render:e=>{let{field:s}=e;return(0,n.jsxs)(P.eI,{children:[(0,n.jsx)(P.lR,{children:"Отчество"}),(0,n.jsx)(P.MJ,{children:(0,n.jsx)(A.p,{placeholder:"При наличии",value:s.value||"",onChange:s.onChange})}),(0,n.jsx)(P.C5,{})]})}})]}),(ea||el)&&(0,n.jsx)(P.zB,{control:ee.control,name:"description",render:e=>{let{field:s}=e;return(0,n.jsxs)(P.eI,{children:[(0,n.jsx)(P.lR,{children:"Описание"}),(0,n.jsx)(P.MJ,{children:(0,n.jsx)(R.RichTextEditor,{content:s.value||"",onChange:s.onChange,placeholder:el?"Расскажите о вашей компании...\n\nВы можете использовать кнопки на панели для форматирования текста.":"Расскажите о себе и вашем опыте...\n\nВы можете использовать кнопки на панели для форматирования текста.",maxLength:2048})}),(0,n.jsx)(P.C5,{})]})}}),(0,n.jsxs)(l.$,{type:"submit",className:"bg-blue-600 hover:bg-blue-700",disabled:S,children:[S&&(0,n.jsx)(d.A,{className:"mr-2 h-4 w-4 animate-spin"}),"Сохранить изменения"]})]})}):(0,n.jsx)("div",{className:"divide-y divide-border text-sm",children:el?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"flex py-3 justify-between items-center",children:[(0,n.jsx)("span",{className:"text-muted-foreground",children:"Название компании"}),(0,n.jsx)("span",{className:"font-medium",children:t.companyName})]}),(0,n.jsxs)("div",{className:"flex py-3 justify-between items-center",children:[(0,n.jsx)("span",{className:"text-muted-foreground",children:"ИНН"}),(0,n.jsx)("span",{className:"font-medium",children:t.inn||"—"})]}),(ea||el)&&t.description&&(0,n.jsx)(D,{description:t.description,maxLines:10})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"flex py-3 justify-between items-center",children:[(0,n.jsx)("span",{className:"text-muted-foreground",children:"Имя"}),(0,n.jsx)("span",{className:"font-medium",children:t.firstName})]}),(0,n.jsxs)("div",{className:"flex py-3 justify-between items-center",children:[(0,n.jsx)("span",{className:"text-muted-foreground",children:"Фамилия"}),(0,n.jsx)("span",{className:"font-medium",children:t.lastName})]}),(0,n.jsxs)("div",{className:"flex py-3 justify-between items-center",children:[(0,n.jsx)("span",{className:"text-muted-foreground",children:"Отчество"}),(0,n.jsx)("span",{className:"font-medium",children:t.patronymic||"—"})]}),(ea||el)&&t.description&&(0,n.jsx)(D,{description:t.description,maxLines:10})]})})})]})})]}),(ea||el)&&(0,n.jsxs)(i.Zp,{children:[(0,n.jsxs)(i.aR,{children:[(0,n.jsxs)(i.ZB,{className:"flex items-center gap-2",children:[(0,n.jsx)(x.A,{className:"h-5 w-5 text-blue-600"}),"Компетенции"]}),(0,n.jsx)(i.BT,{children:"Укажите навыки и специализации"})]}),(0,n.jsx)(i.Wu,{children:(0,n.jsx)(I,{value:t.competencies||[],onChange:F,placeholder:"Начните вводить навык...",maxTags:50})})]}),(ea||el)&&t.location&&(0,n.jsxs)(i.Zp,{children:[(0,n.jsxs)(i.aR,{className:"flex flex-row items-center justify-between space-y-0",children:[(0,n.jsxs)("div",{className:"space-y-1",children:[(0,n.jsxs)(i.ZB,{className:"flex items-center gap-2",children:[(0,n.jsx)(u.A,{className:"h-5 w-5 text-blue-600"}),"Локация"]}),(0,n.jsx)(i.BT,{children:"Ваше местоположение"})]}),(0,n.jsxs)(l.$,{variant:"ghost",size:"sm",onClick:()=>V(!0),children:[(0,n.jsx)(h.A,{className:"h-4 w-4 mr-1"}),"Изменить"]})]}),(0,n.jsx)(i.Wu,{children:(0,n.jsxs)("div",{className:"space-y-3",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"text-sm text-muted-foreground mb-1",children:"Базовая локация:"}),(0,n.jsx)("p",{className:"text-sm font-medium",children:t.location})]}),t.currentLocation&&(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"text-sm text-muted-foreground mb-1",children:"Актуальная локация:"}),(0,n.jsx)("p",{className:"text-sm font-medium",children:t.currentLocation})]})]})})]}),(ea||el)&&(0,n.jsxs)(i.Zp,{children:[(0,n.jsxs)(i.aR,{className:"flex flex-row items-center justify-between space-y-0",children:[(0,n.jsxs)("div",{className:"space-y-1",children:[(0,n.jsxs)(i.ZB,{className:"flex items-center gap-2",children:[(0,n.jsx)(j.A,{className:"h-5 w-5 text-blue-600"}),"График работы"]}),(0,n.jsx)(i.BT,{children:"Ваше расписание"})]}),(0,n.jsxs)(l.$,{variant:"ghost",size:"sm",onClick:()=>Q(!0),children:[(0,n.jsx)(h.A,{className:"h-4 w-4 mr-1"}),"Изменить"]})]}),(0,n.jsx)(i.Wu,{children:(0,n.jsx)(U,{workSchedule:t.workSchedule})})]}),(0,n.jsxs)(i.Zp,{children:[(0,n.jsxs)(i.aR,{className:"flex flex-row items-center justify-between space-y-0",children:[(0,n.jsx)("div",{className:"space-y-1",children:(0,n.jsxs)(i.ZB,{className:"flex items-center gap-2",children:[(0,n.jsx)(p.A,{className:"h-5 w-5 text-blue-600"}),"Связь"]})}),(0,n.jsx)(l.$,{variant:"ghost",size:"sm",onClick:()=>_(!Y),children:Y?"Отмена":"Изменить"})]}),(0,n.jsx)(i.Wu,{children:Y?(0,n.jsx)(P.lV,{...es,children:(0,n.jsxs)("form",{onSubmit:es.handleSubmit(en),className:"space-y-4",children:[(0,n.jsx)(P.zB,{control:es.control,name:"newPhone",render:e=>{let{field:s}=e;return(0,n.jsxs)(P.eI,{children:[(0,n.jsx)(P.lR,{children:"Новый номер телефона"}),(0,n.jsx)(P.MJ,{children:(0,n.jsx)(A.p,{placeholder:"+7",value:s.value||"",onChange:s.onChange})}),(0,n.jsx)(P.C5,{})]})}}),(0,n.jsxs)(l.$,{type:"submit",size:"sm",className:"bg-blue-600 hover:bg-blue-700",disabled:S,children:[S&&(0,n.jsx)(d.A,{className:"mr-2 h-4 w-4 animate-spin"}),"Подтвердить"]})]})}):(0,n.jsxs)("div",{className:"flex py-2 justify-between items-center text-sm",children:[(0,n.jsx)("span",{className:"text-muted-foreground",children:"Телефон"}),(0,n.jsx)("span",{className:"font-medium",children:(0,c.n)(t.phone)})]})})]}),(0,n.jsxs)(i.Zp,{children:[(0,n.jsx)(i.aR,{children:(0,n.jsxs)(i.ZB,{className:"flex items-center gap-2",children:[(0,n.jsx)(f.A,{className:"h-5 w-5 text-blue-600"}),"Безопасность"]})}),(0,n.jsx)(i.Wu,{children:(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("span",{className:"text-muted-foreground",children:"Роли аккаунта"}),(0,n.jsx)("div",{className:"flex flex-wrap gap-1 justify-end",children:t.roles.map(e=>(0,n.jsx)(o,{variant:"secondary",children:ed(e)},e))})]}),(0,n.jsxs)(l.$,{variant:"outline",className:"w-full",onClick:()=>G(!0),children:[(0,n.jsx)(g.A,{className:"w-4 h-4 mr-2"}),"Сменить пароль"]})]})})]}),(0,n.jsxs)(i.Zp,{className:"border-destructive/50 bg-destructive/5",children:[(0,n.jsxs)(i.aR,{children:[(0,n.jsxs)(i.ZB,{className:"flex items-center gap-2 text-destructive",children:[(0,n.jsx)(v.A,{className:"h-5 w-5"}),"Опасная зона"]}),(0,n.jsx)(i.BT,{children:"Удаление аккаунта необратимо. Все ваши данные будут удалены."})]}),(0,n.jsx)(i.Wu,{children:(0,n.jsx)(l.$,{variant:"destructive",className:"w-full",onClick:()=>{confirm("Вы уверены, что хотите удалить аккаунт? Это действие необратимо.")&&(Z(),M.push("/"))},children:"Удалить аккаунт"})})]}),eo&&(0,n.jsxs)(i.Zp,{className:"md:col-span-2 border-blue-200 bg-blue-50/50 dark:bg-blue-950/10 dark:border-blue-900",children:[(0,n.jsxs)(i.aR,{children:[(0,n.jsxs)(i.ZB,{className:"flex items-center gap-2 text-blue-700 dark:text-blue-400",children:[(0,n.jsx)(N.A,{className:"h-5 w-5"}),"Зарабатывайте с нами"]}),(0,n.jsx)(i.BT,{children:"Вы можете стать исполнителем и начать получать заказы в вашем городе."})]}),(0,n.jsx)(i.Wu,{children:(0,n.jsxs)(l.$,{className:"w-full bg-blue-600 hover:bg-blue-700 text-white shadow-lg shadow-blue-200 dark:shadow-none",onClick:()=>M.push("/dashboard/become-performer"),disabled:S,children:[S&&(0,n.jsx)(d.A,{className:"mr-2 h-4 w-4 animate-spin"}),"Стать исполнителем"]})})]})]}),(0,n.jsx)(er,{open:K,onOpenChange:G}),(0,n.jsx)(ei,{open:H,onOpenChange:V,initialLocation:t.location,initialCurrentLocation:t.currentLocation}),(0,n.jsx)(ex,{open:q,onOpenChange:Q,initialIsAlwaysReady:null===(e=t.workSchedule)||void 0===e?void 0:e.isAlwaysReady,initialSchedulePerDay:null===(s=t.workSchedule)||void 0===s?void 0:s.schedulePerDay})]})}},2291:(e,s,t)=>{"use strict";t.d(s,{S:()=>c});var n=t(5155),a=t(2115),r=t(6352),l=t(8867),i=t(7549);let c=a.forwardRef((e,s)=>{let{className:t,...a}=e;return(0,n.jsx)(r.bL,{ref:s,className:(0,i.cn)("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",t),...a,children:(0,n.jsx)(r.C1,{className:(0,i.cn)("flex items-center justify-center text-current"),children:(0,n.jsx)(l.A,{className:"h-4 w-4"})})})});c.displayName=r.bL.displayName},2896:(e,s,t)=>{"use strict";t.r(s),t.d(s,{RichTextEditor:()=>f});var n=t(5155),a=t(9372),r=t(9448),l=t(53),i=t(2115),c=t(878),o=t(9201),d=t(8701),m=t(9021),x=t(5814),u=t(4113),h=t(3243),j=t(2921),p=t(3312);function f(e){let{content:s,onChange:t,placeholder:f,maxLength:g}=e,v=(0,a.hG)({immediatelyRender:!1,extensions:[r.A.configure({link:!1}),l.Ay.configure({openOnClick:!1,HTMLAttributes:{class:"text-blue-600 hover:underline cursor-pointer"}})],content:s,onUpdate:e=>{let{editor:s}=e,n=s.getHTML(),a=s.getText();g&&a.length>g||t(n)},editorProps:{attributes:{class:"prose prose-sm max-w-none focus:outline-none min-h-[200px] px-3 py-2"}}});(0,i.useCallback)(e=>{e.preventDefault();let s=e.currentTarget.getAttribute("href");if(s){if(s.startsWith("http://")||s.startsWith("https://")){let e=new URL(s).hostname;confirm("Вы переходите на внешний ресурс: ".concat(e,"\n\n")+"Ссылка: ".concat(s,"\n\n")+"Вы уверены, что хотите перейти?")&&window.open(s,"_blank","noopener,noreferrer")}else window.open(s,"_blank")}},[]);let N=(0,i.useCallback)(()=>{if(!v)return;let e=v.getAttributes("link").href,s=window.prompt("Введите URL ссылки:",e||"");if(null!==s){if(""===s){v.chain().focus().extendMarkRange("link").unsetLink().run();return}v.chain().focus().extendMarkRange("link").setLink({href:s}).run()}},[v]),b=(0,i.useCallback)(()=>{v&&v.chain().focus().extendMarkRange("link").unsetLink().run()},[v]);if((0,i.useEffect)(()=>{v&&s!==v.getHTML()&&v.commands.setContent(s)},[s,v]),!v)return null;let y=v.getText().length,w=g&&y>g;return(0,n.jsxs)("div",{className:"border rounded-md overflow-hidden",children:[(0,n.jsxs)("div",{className:"border-b bg-muted/50 p-2 flex flex-wrap gap-1",children:[(0,n.jsx)(p.$,{type:"button",variant:v.isActive("bold")?"default":"ghost",size:"sm",onClick:()=>v.chain().focus().toggleBold().run(),title:"Жирный (Ctrl+B)",children:(0,n.jsx)(c.A,{className:"h-4 w-4"})}),(0,n.jsx)(p.$,{type:"button",variant:v.isActive("italic")?"default":"ghost",size:"sm",onClick:()=>v.chain().focus().toggleItalic().run(),title:"Курсив (Ctrl+I)",children:(0,n.jsx)(o.A,{className:"h-4 w-4"})}),(0,n.jsx)("div",{className:"w-px h-6 bg-border mx-1"}),(0,n.jsx)(p.$,{type:"button",variant:v.isActive("bulletList")?"default":"ghost",size:"sm",onClick:()=>v.chain().focus().toggleBulletList().run(),title:"Маркированный список",children:(0,n.jsx)(d.A,{className:"h-4 w-4"})}),(0,n.jsx)(p.$,{type:"button",variant:v.isActive("orderedList")?"default":"ghost",size:"sm",onClick:()=>v.chain().focus().toggleOrderedList().run(),title:"Нумерованный список",children:(0,n.jsx)(m.A,{className:"h-4 w-4"})}),(0,n.jsx)("div",{className:"w-px h-6 bg-border mx-1"}),v.isActive("link")?(0,n.jsx)(p.$,{type:"button",variant:"default",size:"sm",onClick:b,title:"Убрать ссылку",children:(0,n.jsx)(x.A,{className:"h-4 w-4"})}):(0,n.jsx)(p.$,{type:"button",variant:"ghost",size:"sm",onClick:N,title:"Добавить ссылку",children:(0,n.jsx)(u.A,{className:"h-4 w-4"})}),(0,n.jsx)("div",{className:"w-px h-6 bg-border mx-1"}),(0,n.jsx)(p.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>v.chain().focus().undo().run(),disabled:!v.can().undo(),title:"Отменить (Ctrl+Z)",children:(0,n.jsx)(h.A,{className:"h-4 w-4"})}),(0,n.jsx)(p.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>v.chain().focus().redo().run(),disabled:!v.can().redo(),title:"Повторить (Ctrl+Y)",children:(0,n.jsx)(j.A,{className:"h-4 w-4"})})]}),(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsx)(a.$Z,{editor:v}),v.isEmpty&&f&&(0,n.jsx)("div",{className:"absolute top-2 left-3 text-muted-foreground pointer-events-none",children:f})]}),g&&(0,n.jsxs)("div",{className:"border-t px-3 py-2 text-xs flex justify-between",children:[(0,n.jsxs)("span",{className:"text-muted-foreground",children:["Поддерживаются: ",(0,n.jsx)("strong",{children:"жирный"}),", ",(0,n.jsx)("em",{children:"курсив"}),", списки, ссылки"]}),(0,n.jsxs)("span",{className:w?"text-destructive font-medium":"text-muted-foreground",children:[y," / ",g," символов"]})]})]})}}},e=>{var s=s=>e(e.s=s);e.O(0,[4,277,92,273,634,554,445,139,318,70,441,517,358],()=>s(7145)),_N_E=e.O()}]);