1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3139],{15958:(e,n,t)=>{t.d(n,{O:()=>m,c:()=>g});var r=t(81494),a=t(8582),o=t(67867),u=t(80542),i=t(71450),c=t(95155),s=t(12115),l=t(67214),d=t(96881),h=t(89678),f=t(63621),g=(0,s.createContext)(null);function m(e){var n=e.children,t=(0,u._)((0,s.useState)(null),2),m=t[0],_=t[1],N=(0,u._)((0,s.useState)(!0),2),E=N[0],b=N[1],k=m?(0,d.E8)(m):null,w=m?(0,d.Gx)(m):null,A=!!m;(0,s.useEffect)(function(){(0,r._)(function(){var e,n,t,r,o,u,c,s,d,g,m;return(0,i.YH)(this,function(i){switch(i.label){case 0:if(e=!1,!(0,h.y0)())return[3,4];i.label=1;case 1:return i.trys.push([1,3,,4]),[4,(0,f.wz)()];case 2:return _(i.sent()),e=!0,[3,4];case 3:return n=i.sent(),(0,a._)(n,l.U)&&(n.code===l.c.AUTH_TOKEN_INVALID||401===n.httpStatus)&&((0,h.L)(),_(null)),[3,4];case 4:if(!(r=(t=new URLSearchParams(window.location.search)).get("code")))return[3,9];if(o=window.location.pathname.includes("forgot-password"),e)return[3,8];u=t.get("email")||void 0,i.label=5;case 5:return i.trys.push([5,7,,8]),[4,(0,f.al)(r,u)];case 6:return s=(c=i.sent()).user,(d=c.token)&&localStorage.setItem("auth_token",d),_(s),e=!0,[3,8];case 7:return i.sent(),[3,8];case 8:o||(0,f.A$)(r).catch(function(){}),t.delete("code"),t.delete("email"),g=t.toString(),m=window.location.pathname+(g?"?".concat(g):"")+window.location.hash,window.history.replaceState(null,"",m),i.label=9;case 9:return b(!1),[2]}})})()},[]);
1var v=(0,s.useCallback)(function(e,n){n&&localStorage.setItem("auth_token",n),_(e)},[]),y=(0,s.useCallback)(function(e,n,t){return(0,r._)(function(){var r;return(0,i.YH)(this,function(a){switch(a.label){case 0:return[4,(0,f.aQ)((0,o._)({email:e,password:n},t))];case 1:return v((r=a.sent()).user,r.token),[2]}})})()},[v]),C=(0,s.useCallback)(function(e){return(0,r._)(function(){var n;return(0,i.YH)(this,function(t){switch(t.label){case 0:return[4,(0,f.kz)(e)];case 1:return v((n=t.sent()).user,n.token),[2]}})})()},[v]),R=(0,s.useCallback)(function(e){return(0,r._)(function(){var n;return(0,i.YH)(this,function(t){switch(t.label){case 0:return[4,(0,f.Xi)(e)];case 1:return v((n=t.sent()).user,n.token),[2]}})})()},[v]),I=(0,s.useCallback)(function(e){return(0,r._)(function(){var n;return(0,i.YH)(this,function(t){switch(t.label){case 0:return[4,(0,f.X9)(e)];case 1:return v((n=t.sent()).user,n.token),[2]}})})()},[v]),p=(0,s.useCallback)(function(){(0,h.L)(),_(null)},[]);(0,s.useEffect)(function(){return(0,h.mV)(function(){return _(null)}),function(){return(0,h.mV)(null)}},[]);var S=(0,s.useCallback)(function(){return(0,r._)(function(){return(0,i.YH)(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,(0,f.wz)()];case 1:return _(e.sent()),[3,3];case 2:return e.sent(),[3,3];case 3:return[2]}})})()},[]),T=(0,s.useCallback)(function(e){return(0,r._)(function(){return(0,i.YH)(this,function(n){switch(n.label){case 0:return[4,(0,f.TK)(e)];case 1:return _(n.sent()),[2]}})})()},[]);return(0,c.jsx)(g.Provider,{value:{user:m,profile:k,plan:w,isAuthenticated:A,isLoading:E,login:y,loginWithGoogle:C,loginWithFacebook:R,loginWithApple:I,logout:p,refreshUser:S,updateUserProfile:T},children:n})}},63621:(e,n,t)=>{t.d(n,{A$:()=>m,AH:()=>_,AM:()=>V,F9:()=>S,G9:()=>D,Gh:()=>y,JG:()=>L,KN:()=>U,L9:()=>w,M2:()=>F,MF:()=>T,PN:()=>M,TF:()=>E,TK:()=>h,X9:()=>s,Xi:()=>c,YW:()=>k,aQ:()=>u,al:()=>l,d8:()=>N,dN:()=>R,dc:()=>C,dq:()=>I,ec:()=>g,ek:()=>v,hG:()=>f,kz:()=>i,lG:()=>b,m_:()=>O,nd:()=>P,r4:()=>H,w2:()=>Y,wz:()=>d,xw:()=>x,yF:()=>p,zk:()=>A});var r=t(81494),a=t(71450),o=t(89678);function u(e){return(0,r._)(function(){var n;return(0,a.YH)(this,function(t){switch(t.label){case 0:return[4,(0,o.$P)("/auth",e)];case 1:return[2,{user:(n=t.sent()).data,token:n.headers.get("X-Renewed-Token")||""}]}})})()}function i(e){return(0,r._)(function(){var n;return(0,a.YH)(this,function(t){switch(t.label){case 0:return[4,(0,o.$P)("/auth",{google:e})];case 1:return[2,{user:(n=t.sent()).data,token:n.headers.get("X-Renewed-Token")||""}]}})})()}function c(e){return(0,r._)(function(){var n;return(0,a.YH)(this,function(t){switch(t.label){case 0:return[4,(0,o.$P)("/auth",{fb:e})];case 1:return[2,{user:(n=t.sent()).data,token:n.headers.get("X-Renewed-Token")||""}]}})})()}function s(e){return(0,r._)(function(){var n;return(0,a.YH)(this,function(t){switch(t.label){case 0:return[4,(0,o.$P)("/auth",{apple:e})];case 1:return[2,{user:(n=t.sent()).data,token:n.headers.get("X-Renewed-Token")||""}]}})})()}function l(e,n){return(0,r._)(function(){var t,r;return(0,a.YH)(this,function(a){switch(a.label){case 0:return t={code:e},n&&(t.email=n),[4,(0,o.$P)("/auth",t)];case 1:return[2,{user:(r=a.sent()).data,token:r.headers.get("X-Renewed-Token")||""}]}})})()}function d(){return(0,r._)(function(){return(0,a.YH)(this,function(e){return[2,(0,o.Vg)("/user")]})})()}function h(e){return(0,r._)(function(){return(0,a.YH)(this,function(n){switch(n.label){case 0:return[4,(0,o.$P)("/user",e)];case 1:return[2,n.sent().data]}})})()}function f(){return(0,r._)(function(){return(0,a.YH)(this,function(e){switch(e.label){case 0:return[4,(0,o.Al)("/user")];case 1:return e.sent(),[2]}})})()}function g(e){return(0,r._)(function(){return(0,a.YH)(this,function(n){switch(n.label){case 0:return[4,(0,o.$P)("/user/password",{newPassword:e})];case 1:return n.sent(),[2]}})})()}function m(e){return(0,r._)(function(){return(0,a.YH)(this,function(n){switch(n.label){case 0:return[4,(0,o.$P)("/user/verify-email",{token:e})];case 1:return n.sent(),[2]}})})()}function _(e){return(0,r._)(function(){var n;return(0,a.YH)(this,function(t){switch(t.label){case 0:return n=e?{email:e}:{},[4,(0,o.$P)("/newsletter/subscribe",n)];case 1:return[2,t.sent().data]}})})()}function N(){return(0,r._)(function(){return(0,a.YH)(this,function(e){switch(e.label){case 0:return[4,(0,o.$P)("/newsletter/unsubscribe")];case 1:return[2,e.sent().data]}})})()}function E(e,n){return(0,r._)(function(){return(0,a.YH)(this,function(t){return[2,(0,o.Vg)("/newsletter/unsubscribe-link",{email:e,token:n})]})})()}function b(e){return(0,r._)(function(){var n;return(0,a.YH)(this,function(t){return n=e?{personId:e}:void 0,[2,(0,o.Vg)("/skinscanner/points",n)]})})()}function k(e){return(0,r._)(function(){return(0,a.YH)(this,function(n){switch(n.label){case 0:return[4,(0,o.$P)("/skinscanner/point",e)];case 1:return[2,n.sent().data]}})})()}function w(e,n){return(0,r._)(function(){return(0,a.YH)(this,function(t){return[2,(0,o.mu)("/skinscanner/point/".concat(e),n)]})})()}function A(e){return(0,r._)(function(){return(0,a.YH)(this,function(n){switch(n.label){case 0:return[4,(0,o.Al)("/skinscanner/point/".concat(e))];case 1:return n.sent(),[2]}})})()}function v(e){return(0,r._)(function(){return(0,a.YH)(this,function(n){switch(n.label){case 0:return[4,(0,o.$P)("/skinscanner/scan",e)];case 1:return[2,n.sent().data]}})})()}function y(e){return(0,r._)(function(){return(0,a.YH)(this,function(n){return[2,(0,o.Vg)("/skinscanner/scan/".concat(e))]})})()}function C(e,n){return(0,r._)(function(){return(0,a.YH)(this,function(t){return[2,(0,o.mu)("/skinscanner/scan/".concat(e),n)]})})()}function R(e){return(0,r._)(function(){return(0,a.YH)(this,function(n){switch(n.label){case 0:return[4,(0,o.Al)("/skinscanner/scan/".concat(e))];case 1:return n.sent(),[2]}})})()}function I(e,n){return(0,r._)(function(){var t;return(0,a.YH)(this,function(r){switch(r.label){case 0:return t={},(null==n?void 0:n.force)&&(t.force=!0),(null==n?void 0:n.tos)&&(t.tos=!0),[4,(0,o.$P)("/skinscanner/scan/".concat(e,"/execute"),t)];case 1:return[2,r.sent().data]}})})()}function p(e){return(0,r._)(function(){return(0,a.YH)(this,function(n){switch(n.label){case 0:return[4,(0,o.$P)("/skinscanner/scan",e)];case 1:return[2,n.sent().data]}})})()}function S(e){return(0,r._)(function(){return(0,a.YH)(this,function(n){return[2,(0,o.Vg)("/skinscanner/point/".concat(e,"/scans"))]})})()}function T(e){return(0,r._)(function(){var n;return(0,a.YH)(this,function(t){return n=e?{lang:e}:void 0,[2,(0,o.Vg)("/skinscanner/diseases",n)]})})()}function O(e){return(0,r._)(function(){return(0,a.YH)(this,function(n){switch(n.label){case 0:return[4,(0,o.$P)("/skinscanner/validate",{image:e})];case 1:return[2,n.sent().data]}})})()}function D(){return(0,r._)(function(){return(0,a.YH)(this,function(e){return[2,(0,o.Vg)("/packages")]})})()}function L(e){return(0,r._)(function(){return(0,a.YH)(this,function(n){switch(n.label){case 0:return[4,(0,o.$P)("/checkout",e)];case 1:return[2,n.sent().data]}})})()}function P(e){return(0,r._)(function(){return(0,a.YH)(this,function(n){return[2,(0,o.Vg)("/checkout/status",{session:e})]})})()}function H(){return(0,r._)(function(){return(0,a.YH)(this,function(e){return[2,(0,r._)(function(){return(0,a.YH)(this,function(e){return[2,(0,o.Vg)("/skinscanner/scans")]})})()]})})()}function U(e){return(0,r._)(function(){return(0,a.YH)(this,function(n){return[2,y(e)]})})()}function Y(e){return(0,r._)(function(){return(0,a.YH)(this,function(n){switch(n.label){case 0:return[4,(0,o.$P)("/u
1ser/forgot-password",{email:e})];case 1:return n.sent(),[2]}})})()}function x(e,n,t){return(0,r._)(function(){var r;return(0,a.YH)(this,function(a){switch(a.label){case 0:return[4,(0,o.$P)("/user/password/reset",{email:e,code:n,newPassword:t})];case 1:return[2,{user:(r=a.sent()).data,token:r.headers.get("X-Renewed-Token")||""}]}})})()}function M(){return(0,r._)(function(){return(0,a.YH)(this,function(e){return[2,(0,o.Vg)("/user/purchases")]})})()}function F(){return(0,r._)(function(){return(0,a.YH)(this,function(e){switch(e.label){case 0:return[4,(0,o.$P)("/user/subscription/cancel")];case 1:return e.sent(),[2]}})})()}function V(e){return(0,r._)(function(){var n,t,r,u,i,c,s,l,d,h;return(0,a.YH)(this,function(a){switch(a.label){case 0:return t="".concat((0,o.$_)(),"/skinscanner/scan/").concat(e,"/pdf"),r=localStorage.getItem("auth_token"),u={},r&&(u.Authorization=r),[4,fetch(t,{headers:u})];case 1:if(!(i=a.sent()).ok)throw Error("PDF download failed");return s=(null==(c=i.headers.get("Content-Disposition"))||null==(n=c.match(/filename="(.+)"/))?void 0:n[1])||"scan-report-".concat(e,".pdf"),[4,i.blob()];case 2:return l=a.sent(),d=URL.createObjectURL(l),(h=document.createElement("a")).href=d,h.download=s,document.body.appendChild(h),h.click(),document.body.removeChild(h),URL.revokeObjectURL(d),[2]}})})()}},67214:(e,n,t)=>{t.d(n,{U:()=>c,c:()=>i});var r=t(67434),a=t(62774),o=t(15104),u=t(89032),i=function(e){return e[e.OK=0]="OK",e[e.INTERNAL_ERROR=1]="INTERNAL_ERROR",e[e.BAD_REQUEST=2]="BAD_REQUEST",e[e.FUNCTION_BLOCKED=3]="FUNCTION_BLOCKED",e[e.NOT_FOUND=5]="NOT_FOUND",e[e.INVALID_PARAM=100]="INVALID_PARAM",e[e.INVALID_AUTH=101]="INVALID_AUTH",e[e.PASSWORD_FORMAT=102]="PASSWORD_FORMAT",e[e.INVALID_SOCIAL_ACCOUNT=103]="INVALID_SOCIAL_ACCOUNT",e[e.INVALID_CODE=104]="INVALID_CODE",e[e.AUTH_TOKEN_INVALID=105]="AUTH_TOKEN_INVALID",e[e.TOS_NOT_ACCEPTED=106]="TOS_NOT_ACCEPTED",e[e.NEWSLETTER_ALREADY_SUBSCRIBED=107]="NEWSLETTER_ALREADY_SUBSCRIBED",e[e.INVALID_PURCHASE_DATA=201]="INVALID_PURCHASE_DATA",e[e.PURCHASE_USED=202]="PURCHASE_USED",e[e.PERSON_LIMIT_REACHED=300]="PERSON_LIMIT_REACHED",e[e.PERSON_NAME_TAKEN=301]="PERSON_NAME_TAKEN",e[e.PERSON_NOT_FOUND=302]="PERSON_NOT_FOUND",e[e.PERSON_OWNER_DELETE=303]="PERSON_OWNER_DELETE",e[e.PERSON_OWNER_TYPE=304]="PERSON_OWNER_TYPE",e[e.PERSON_UNDERAGE=305]="PERSON_UNDERAGE",e[e.SKINPOINT_LIMIT_REACHED=400]="SKINPOINT_LIMIT_REACHED",e[e.CATEGORY_NOT_FOUND=401]="CATEGORY_NOT_FOUND",e[e.INSUFFICIENT_CREDITS=402]="INSUFFICIENT_CREDITS",e[e.IMAGE_NOT_FOUND=403]="IMAGE_NOT_FOUND",e[e.SKINPOINT_NOT_FOUND=404]="SKINPOINT_NOT_FOUND",e[e.DISEASE_NOT_FOUND=405]="DISEASE_NOT_FOUND",e[e.IMAGE_VALIDATION_FAILED=406]="IMAGE_VALIDATION_FAILED",e[e.SCAN_FAILED=407]="SCAN_FAILED",e[e.NO_UNCHECKED_IMAGE=408]="NO_UNCHECKED_IMAGE",e[e.IMAGE_ALREADY_CHECKED=409]="IMAGE_ALREADY_CHECKED",e[e.PADDLE_API_ERROR=900]="PADDLE_API_ERROR",e[e.LEMON_SQUEEZY_API_ERROR=901]="LEMON_SQUEEZY_API_ERROR",e}({}),c=function(e){function n(e,t,o){var u;return(0,a._)(this,n),(u=(0,r._)(this,n,[t])).name="ApiRequestError",u.code=e,u.httpStatus=o,u}return(0,o._)(n,e),n}((0,u._)(Error))},71335:(e,n,t)=>{t.d(n,{Cb:()=>d,Is:()=>s,ok:()=>l});var r=t(95155),a=t(12115),o=t(20063),u=t(77006),i=new RegExp("^\\/(".concat(u.Fc.map(function(e){return e.code}).join("|"),")(?=\\/|$)")),c=(0,a.createContext)(void 0);function s(e){var n=e.children,t=e.lang,s=e.translations,l=(0,o.useRouter)(),d=(0,o.usePathname)(),h=u.hi.has(t)?t:u.eG,f=(0,a.useCallback)(function(e){var n=e.replace(i,"")||"/";return"en"===h?n:"/".concat(h).concat("/"===n?"":n)},[h]),g=(0,a.useCallback)(function(e){if(u.hi.has(e)){var n=d,t=d.match(i);t&&(n=d.slice(t[0].length)||"/");var r="en"===e?n:"/".concat(e).concat("/"===n?"":n);document.cookie="language=".concat(e,";path=/;max-age=").concat(31536e3),l.push(r)}},[d,l]);(0,a.useEffect)(function(){document.documentElement.dir="ltr",document.documentElement.lang=h},[h]);var m=(0,a.useMemo)(function(){return{language:h,setLanguage:g,t:s,getLocalizedPath:f}},[h,g,s,f]);return(0,r.jsx)(c.Provider,{value:m,children:n})}function l(){var e=(0,a.useContext)(c);if(!e)throw Error("useLanguage must be used within a LanguageProvider");return e}function d(e,n){return e.replace(/\{\{(\w+)\}\}|\{(\w+)\}/g,function(e,t,r){var a,o=null!=t?t:r;return String(null!=(a=n[o])?a:t?"{{".concat(o,"}}"):"{".concat(o,"}"))})}}
1,77006:(e,n,t)=>{t.d(n,{Fc:()=>r,b4:()=>i,eG:()=>u,hi:()=>a,jU:()=>o});var r=[{code:"af",name:"Afrikaans",englishName:"Afrikaans",countryCode:"za"},{code:"az",name:"AzÉrbaycan",englishName:"Azerbaijani",countryCode:"az"},{code:"bg",name:"ÐÑлгаÑÑки",englishName:"Bulgarian",countryCode:"bg"},{code:"bn",name:"বাà¦à¦²à¦¾",englishName:"Bengali",countryCode:"bd"},{code:"bs",name:"Bosanski",englishName:"Bosnian",countryCode:"ba"},{code:"ca",name:"Catal\xe0",englishName:"Catalan",countryCode:"ad"},{code:"cs",name:"ÄeÅ¡tina",englishName:"Czech",countryCode:"cz"},{code:"cy",name:"Cymraeg",englishName:"Welsh",countryCode:"gb-wls"},{code:"da",name:"Dansk",englishName:"Danish",countryCode:"dk"},{code:"de",name:"Deutsch",englishName:"German",countryCode:"de"},{code:"el",name:"Îλληνικά",englishName:"Greek",countryCode:"gr"},{code:"en",name:"English",englishName:"English",countryCode:"gb"},{code:"es",name:"Espa\xf1ol",englishName:"Spanish",countryCode:"es"},{code:"et",name:"Eesti",englishName:"Estonian",countryCode:"ee"},{code:"eu",name:"Euskara",englishName:"Basque",countryCode:"es"},{code:"fi",name:"Suomi",englishName:"Finnish",countryCode:"fi"},{code:"fo",name:"F\xf8royskt",englishName:"Faroese",countryCode:"fo"},{code:"fr",name:"Fran\xe7ais",englishName:"French",countryCode:"fr"},{code:"ga",name:"Gaeilge",englishName:"Irish",countryCode:"ie"},{code:"gl",name:"Galego",englishName:"Galician",countryCode:"es"},{code:"hi",name:"हिनà¥à¤¦à¥",englishName:"Hindi",countryCode:"in"},{code:"hr",name:"Hrvatski",englishName:"Croatian",countryCode:"hr"},{code:"hu",name:"Magyar",englishName:"Hungarian",countryCode:"hu"},{code:"id",name:"Indonesia",englishName:"Indonesian",countryCode:"id"},{code:"is",name:"\xcdslenska",englishName:"Icelandic",countryCode:"is"},{code:"it",name:"Italiano",englishName:"Italian",countryCode:"it"},{code:"ja",name:"æ¥æ¬èª",englishName:"Japanese",countryCode:"jp"},{code:"ka",name:"á¥áá áá£áá",englishName:"Georgian",countryCode:"ge"},{code:"kk",name:"ÒазаÒÑа",englishName:"Kazakh",countryCode:"kz"},{code:"ko",name:"íêµì´",englishName:"Korean",countryCode:"kr"},{code:"lt",name:"Lietuvių",englishName:"Lithuanian",countryCode:"lt"},{code:"lv",name:"LatvieÅ¡u",englishName:"Latvian",countryCode:"lv"},{code:"mk",name:"ÐакедонÑки",englishName:"Macedonian",countryCode:"mk"},{code:"ms",name:"Melayu",englishName:"Malay",countryCode:"my"},{code:"mt",name:"Malti",englishName:"Maltese",countryCode:"mt"},{code:"nl",name:"Nederlands",englishName:"Dutch",countryCode:"nl"},{code:"no",name:"Norsk",englishName:"Norwegian",countryCode:"no"},{code:"pl",name:"Polski",englishName:"Polish",countryCode:"pl"},{code:"pt",name:"Portugu\xeas",englishName:"Portuguese",countryCode:"pt"},{code:"ro",name:"Rom\xe2nÄ",englishName:"Romanian",countryCode:"ro"},{code:"ru",name:"Ð ÑÑÑкий",englishName:"Russian",countryCode:"ru"},{code:"sk",name:"SlovenÄina",englishName:"Slovak",countryCode:"sk"},{code:"sl",name:"SlovenÅ¡Äina",englishName:"Slovenian",countryCode:"si"},{code:"sq",name:"Shqip",englishName:"Albanian",countryCode:"al"},{code:"sr",name:"СÑпÑки",englishName:"Serbian",countryCode:"rs"},{code:"sv",name:"Svenska",englishName:"Swedish",countryCode:"se"},{code:"sw",name:"Kiswahili",englishName:"Swahili",countryCode:"ke"},{code:"th",name:"à¹à¸à¸¢",englishName:"Thai",countryCode:"th"},{code:"tl",name:"Filipino",englishName:"Filipino",countryCode:"ph"},{code:"tr",name:"T\xfcrk\xe7e",englishName:"Turkish",countryCode:"tr"},{code:"uk",name:"УкÑаÑнÑÑка",englishName:"Ukrainian",countryCode:"ua"},{code:"uz",name:"OÊ»zbekcha",englishName:"Uzbek",countryCode:"uz"},{code:"vi",name:"Tiếng Viá»t",englishName:"Vietnamese",countryCode:"vn"},{code:"xh",name:"isiXhosa",englishName:"Xhosa",countryCode:"za"},{code:"zh",name:"䏿",englishName:"Chinese",countryCode:"cn"},{code:"zu",name:"isiZulu",englishName:"Zulu",countryCode:"za"}],a=new Set(r.map(function(e){return e.code})),o=["en","de","fr","es"],u="en",i=new Set(r.map(function(e){return e.code}));r.map(function(e){return e.code})},77524:(e,n,t)=>{t.d(n,{Cb:()=>r.Cb,ok:()=>r.ok});var r=t(71335)},82535:(e,n,t)=>{t.d(n,{D6:()=>a,EQ:()=>o,Gf:()=>r,Jv:()=>c,Q9:()=>i,_L:()=>u,kh:()=>s});var r={high:{bg:"bg-red-500",text:"text-red-500",light:"bg-red-100 dark:bg-red-900/30",circle:"bg-red-100 text-red-600 dark:bg-red-900/40 dark:text-red-400",badge:"bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400"},medium:{bg:"bg-yellow-500",text:"text-yellow-500",light:"bg-yellow-100 dark:bg-yellow-900/30",circle:"bg-yellow-100 text-yellow-600 dark:bg-yellow-900/40 dark:text-yellow-400",badge:"bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400"},low:{bg:"bg-green-500",text:"text-green-500",light:"bg-green-100 dark:bg-green-900/30",circle:"bg-green-100 text-green-600 dark:bg-green-900/40 dark:text-green-400",badge:"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400"}},a={high:"#ef4444",medium:"#eab308",low:"#22c55e"};function o(e){return e>=70?"high":e>=35?"medium":"low"}function u(e,n){return({low:n.risk.low,medium:n.risk.moderate,high:n.risk.high})[e]}function i(e,n){var t,r,a;return e?"urgent"===e?{label:(null==(t=n.doctor)?void 0:t.urgent)||"Urgent",color:"text-red-500 dark:text-red-400"}:"soon"===e?{label:(null==(r=n.doctor)?void 0:r.recommended)||"Recommended",color:"text-yellow-500 dark:text-yellow-400"}:{label:(null==(a=n.doctor)?void 0:a.notNeeded)||"Optional",color:"text-green-500 dark:text-green-400"}:null}function c(e){return!!e&&e<Date.now()}function s(e,n){if(!e)return null;var t,r,a,o,u=Math.ceil((e-Date.now())/864e5);if(u<0)return{label:(null==(h=n.dashboard)||null==(d=h.bodyMap)?void 0:d.overdue)||"Overdue",overdue:!0};if(0===u)return{label:(null==(g=n.dashboard)||null==(f=g.bodyMap)?void 0:f.dueToday)||"Due today",overdue:!0};
1if(1===u)return{label:(null==(_=n.dashboard)||null==(m=_.bodyMap)?void 0:m.dueTomorrow)||"Tomorrow",overdue:!1};if(u<=13)return{label:"".concat(u," ").concat((null==(E=n.dashboard)||null==(N=E.bodyMap)?void 0:N.daysLeft)||"days"),overdue:!1};if(u<=28){var i,c,s,l,d,h,f,g,m,_,N,E,b,k,w=Math.round(u/7);return{label:"".concat(w," ").concat((null==(k=n.dashboard)||null==(b=k.bodyMap)?void 0:b.weeksLeft)||"weeks"),overdue:!1}}if(u<=60)return{label:"".concat(u," ").concat((null==(r=n.dashboard)||null==(t=r.bodyMap)?void 0:t.daysLeft)||"days"),overdue:!1};var A=Math.floor(u/30),v=u%30;return 0===v?{label:"".concat(A," ").concat((null==(o=n.dashboard)||null==(a=o.bodyMap)?void 0:a.monthsLeft)||"months"),overdue:!1}:{label:"".concat(A," ").concat((null==(c=n.dashboard)||null==(i=c.bodyMap)?void 0:i.monthsLeft)||"months",", ").concat(v," ").concat((null==(l=n.dashboard)||null==(s=l.bodyMap)?void 0:s.daysLeft)||"days"),overdue:!1}}},89678:(e,n,t)=>{t.d(n,{$P:()=>E,$_:()=>i,Al:()=>k,L:()=>d,Vg:()=>N,mV:()=>g,mu:()=>b,y0:()=>h});var r=t(81494),a=t(80542),o=t(71450),u=t(67214),i=function(){return"https://api.skinscanner.ai"},c=function(){return!0},s=function(){return localStorage.getItem("auth_token")},l=function(e){localStorage.setItem("auth_token",e)},d=function(){localStorage.removeItem("auth_token")},h=function(){return!!s()},f=null,g=function(e){f=e};function m(e){return(0,r._)(function(){var n,t,r,a,i,c,h,g;return(0,o.YH)(this,function(o){switch(o.label){case 0:if((n=e.headers.get("X-Renewed-Token"))&&l(n),e.ok)return[3,5];t=u.c.INTERNAL_ERROR,r="An unknown error occurred",o.label=1;case 1:return o.trys.push([1,3,,4]),[4,e.json()];case 2:return"number"==typeof(a=o.sent()).errorCode&&(t=a.errorCode),a.message?r=a.message:a.error&&(r=a.error),[3,4];case 3:return o.sent(),[3,4];case 4:throw(401===e.status||t===u.c.AUTH_TOKEN_INVALID)&&(i=!!s(),d(),null==f||f(),i&&(h=(c=window.location.pathname.match(/^\/(de|es)\//))?"/".concat(c[1],"/auth"):"/auth",window.location.replace(h))),new u.U(t,r,e.status);case 5:return[4,e.text()];case 6:if(!(g=o.sent()))return[2,{}];return[2,JSON.parse(g)]}})})()}function _(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n={};e&&(n["Content-Type"]="application/json");var t=s();return t&&(n.Authorization=t),n}function N(e,n){return(0,r._)(function(){var t;return(0,o.YH)(this,function(r){switch(r.label){case 0:if(!c())throw new u.U(u.c.INTERNAL_ERROR,"API not configured (VITE_API_BASE_URL missing)",0);return t=new URL(e,i()),n&&Object.entries(n).forEach(function(e){var n=(0,a._)(e,2),r=n[0],o=n[1];null!=o&&t.searchParams.set(r,o)}),[4,fetch(t.toString(),{method:"GET",headers:_()})];case 1:return[2,m(r.sent())]}})})()}function E(e,n){return(0,r._)(function(){var t;return(0,o.YH)(this,function(r){switch(r.label){case 0:if(!c())throw new u.U(u.c.INTERNAL_ERROR,"API not configured (VITE_API_BASE_URL missing)",0);return[4,fetch(new URL(e,i()).toString(),{method:"POST",headers:_(!0),body:n?JSON.stringify(n):void 0})];case 1:return[4,m(t=r.sent())];case 2:return[2,{data:r.sent(),headers:t.headers}]}})})()}function b(e,n){return(0,r._)(function(){return(0,o.YH)(this,function(t){switch(t.label){case 0:if(!c())throw new u.U(u.c.INTERNAL_ERROR,"API not configured (VITE_API_BASE_URL missing)",0);return[4,fetch(new URL(e,i()).toString(),{method:"PUT",headers:_(!0),body:n?JSON.stringify(n):void 0})];case 1:return[2,m(t.sent())]}})})()}function k(e){return(0,r._)(function(){return(0,o.YH)(this,function(n){switch(n.label){case 0:if(!c())throw new u.U(u.c.INTERNAL_ERROR,"API not configured (VITE_API_BASE_URL missing)",0);return[4,fetch(new URL(e,i()).toString(),{method:"DELETE",headers:_()})];case 1:return[2,m(n.sent())]}})})()}},96881:(e,n,t)=>{t.d(n,{E8:()=>a,Gx:()=>o,eP:()=>c,sq:()=>i});var r=t(82535);function a(e){return{id:e.id,email:e.email,full_name:e.name||"",avatar_url:void 0,date_of_birth:e.birthday?new Date(1e3*e.birthday).toISOString().split("T")[0]:void 0,last_skin_check:void 0,created_at:new Date().toISOString(),data_consent:!0,phone:e.phone||void 0,subscription_status:e.isPro?"active":"none",subscription_renewal_date:void 0}}function o(e){var n,t,r,a,o,u=null!=(a=null==(n=e.credits)?void 0:n.single_scan)?a:0,i=null!=(o=null==(t=e.credits)?void 0:t.full_body_scan)?o:0,c="free";e.isPro||e.subscription?c="subscription":i>0?c="fullbody":u>0&&(c="single");var s=(null==(r=e.creditsExpiring)?void 0:r.length)>0?e.creditsExpiring.reduce(function(e,n){return!e||n.expiresAt<e.expiresAt?n:e},null):null;return{type:c,credits_single:u,credits_fullbody:i,currency:"EUR",expires_after_days:s?Math.ceil((s.expiresAt-Date.now())/864e5):void 0,creditsExpiring:s?{count:s.amount,expiresAt:s.expiresAt}:void 0}}var u={head:"Head",neck:"Neck",left_shoulder:"Left Shoulder",right_shoulder:"Right Shoulder",upper_torso:"Upper Torso",belly:"Belly",hip:"Hip",left_upper_arm:"Left Upper Arm",right_upper_arm:"Right Upper Arm",left_forearm:"Left Forearm",right_forearm:"Right Forearm",left_hand:"Left Hand",right_hand:"Right Hand",left_thigh:"Left Thigh",right_thigh:"Right Thigh",left_knee:"Left Knee",right_knee:"Right Knee",left_calf:"Left Calf",right_calf:"Right Calf",left_foot:"Left Foot",right_foot:"Right Foot",unknown:"Unknown"};function i(e,n,t){var r,a,o,i,c=null==(a=t.dashboard)||null==(r=a.bodyMap)?void 0:r.segments,s=null==(i=t.dashboard)||null==(o=i.bodyMap)?void 0:o.segmentsBack;return n>=90&&n<270&&(null==s?void 0:s[e])?s[e]:(null==c?void 0:c[e])||u[e]||e.replace(/_/g," ")}function c(e,n){var t,a=function(e,n,t){var r;return{location:u[e]||"Unknown",side:e.startsWith("left_")?"left":e.startsWith("right_")?"right":"center",view:(r=(n%360+360)%360)>=135&&r<=225?"back":"front"}}(e.segment,e.x,e.y),o=a.location,i=a.side,c=e.images.length>
10?e.images[e.images.length-1]:null,s=e.checkable;if(e.summary){var l,d,h,f=e.summary,g=null!=(d=f.riskLevel)?d:"number"==typeof f.riskScore?(0,r.EQ)(f.riskScore):"low";l={riskLevel:g,category:g,summary:e.summary.riskText||"",diseaseId:null!=(h=e.summary.diseaseId)?h:void 0}}return{id:e.id,created_at:e.createdAt&&!isNaN(new Date(e.createdAt).getTime())?new Date(e.createdAt).toISOString():new Date().toISOString(),status:"scanned"===e.status?"success":(null==c?void 0:c.scanAttempts)&&c.scanAttempts>0?"failed":"pending",body_location:o,body_side:i,segment:e.segment,segment_x:e.x,segment_y:e.y,image_url:(null==c?void 0:c.url)||"",thumbnail_url:(null==c?void 0:c.url)||"",result:l,note:e.descr||void 0,retry_count:(null==c?void 0:c.scanAttempts)||0,max_retries:3,next_check_at:e.nextCheckAt&&!isNaN(new Date(e.nextCheckAt).getTime())?new Date(e.nextCheckAt).toISOString():void 0,canScan:s,archived:null!=(t=e.archived)&&t,diseaseName:function(){var t,r=null==(t=e.summary)?void 0:t.diseaseId;if(r&&n)return n.get(r)}()}}}}]);
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.