{"version":3,"sources":["services/logService.js","services/httpService.js","config.js","services/userService.js","services/authService.js","components/common/input.jsx","components/common/fieldValidator.jsx","components/common/form.jsx","components/profile.jsx","components/notFound.jsx","components/navBar.jsx","components/loginForm.jsx","services/subscriptionService.js","components/registerForm.jsx","components/forgotPasswordForm.jsx","components/forgotPasswordUpdateForm.jsx","components/logout.jsx","components/common/protectedRoute.jsx","components/home.jsx","components/subscriptions.jsx","App.js","registerServiceWorker.js","index.js"],"names":["init","log","error","console","axios","interceptors","response","use","status","logger","toast","Promise","reject","get","post","put","delete","setJwt","jwt","defaults","headers","common","apiUrl","process","register","user","captchaResponse","http","Email","email","Password","password","Name","name","Captcha","InvoiceName","invoice_name","InvoiceZip","invoice_zip","InvoiceAddress","invoice_address","InvoiceTaxCode","invoice_taxcode","InvoiceEmail","invoice_email","InvoiceCity","invoice_city","update","data","CurrentPassword","current_password","ChangePassword","change_password","getUserProfile","deleteUserProfile","a","localStorage","setItem","token","id","code","new_password","parseInt","getJwt","getItem","login","loginWithJwt","logout","removeItem","getCurrentUser","decodedToken","jwtDecode","exp","Date","now","ex","requestRequestForgotPasswordEmail","forgotPasswordUpdate","Input","label","rest","color","fieldValidator","value","errorMsg","test","length","Form","validate","state","errors","handleSubmit","e","preventDefault","doSubmit","handleChange","input","currentTarget","setState","isDisabled","disabled","variant","type","this","undefined","component","control","onChange","_","checked","required","margin","fullWidth","Component","Profile","password_confirm","componentDidMount","loadData","userService","userData","String","success","changePasswordFields","renderInput","handleProfileDelete","prompt","auth","window","location","prevProps","prevState","onSubmit","renderCheckbox","renderButton","style","marginTop","onClick","NotFound","withStyles","root","flexGrow","grow","props","classes","className","position","href","src","alt","width","document","Fragment","NavLink","to","LoginForm","from","pathname","Redirect","listPlans","listSubscriptions","cancel","subscriptionID","subscribe","plan","origin","RegisterForm","email_confirm","accept_terms","accept_privacy","plans","selected_plan","captchaRef","loadPlanList","filter","authService","doRegistrationSubmit","doProfileUpdateSubmit","subscriptionService","subscribeResponse","payment_url","reset","captcha","renderPlan","key","marginBottom","event","target","whiteSpace","dangerouslySetInnerHTML","__html","fontSize","renderSubscribeFields","Object","keys","map","captchaVerified","values","Boolean","ref","sitekey","onVerify","ForgotPasswordForm","message","ForgotPasswordUpdateForm","showLoginButton","match","params","Logout","ProtectedRoute","path","render","Route","Home","Subscriptions","lastPaymentStatus","lastPaymentID","interval","setInterval","setLastPaymentStatus","componentWillUnmount","clearInterval","r","qs","parse","search","parsed","JSON","atob","toLowerCase","subscriptions","p","find","s","renderLastPaymentStatus","transactionID","fontWeight","renderPlanStatus","renderPlanSubscribe","subscribeToPlan","confirm","cancelPlan","resp","theme","createMuiTheme","palette","primary","main","App","container","maxWidth","Switch","forgotPasswordUpdateForm","height","title","paddingRight","paddingLeft","marginRight","marginLeft","breakpoints","up","isLocalhost","hostname","registerValidSW","swUrl","navigator","serviceWorker","then","registration","onupdatefound","installingWorker","installing","onstatechange","controller","catch","ReactDOM","BrowserRouter","getElementById","URL","addEventListener","fetch","indexOf","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"2WAMe,OACbA,KAPF,aAQEC,IANF,SAAaC,GACXC,QAAQD,MAAMA,KCChBE,IAAMC,aAAaC,SAASC,IAAI,MAAM,SAAAL,GAWpC,OATEA,EAAMI,UACNJ,EAAMI,SAASE,QAAU,KACzBN,EAAMI,SAASE,OAAS,MAGxBC,EAAOR,IAAIC,GACXQ,QAAMR,MAAM,mCAGPS,QAAQC,OAAOV,MAOT,OACbW,IAAKT,IAAMS,IACXC,KAAMV,IAAMU,KACZC,IAAKX,IAAMW,IACXC,OAAQZ,IAAMY,OACdC,OATF,SAAgBC,GACdd,IAAMe,SAASC,QAAQC,OAAvB,+BAA2DH,KCnBvDI,EAASC,6BCgDA,OACbC,SA7CF,SAAkBC,EAAMC,GACtB,OAAOC,EAAKb,KAAKQ,EAAS,2BAA4B,CACpDM,MAAOH,EAAKI,MACZC,SAAUL,EAAKM,SACfC,KAAMP,EAAKQ,KACXC,QAASR,EACTS,YAAaV,EAAKW,aAClBC,WAAYZ,EAAKa,YACjBC,eAAgBd,EAAKe,gBACrBC,eAAgBhB,EAAKiB,gBACrBC,aAAclB,EAAKmB,cACnBC,YAAapB,EAAKqB,gBAmCpBC,OA/BF,SAAgBtB,GACd,IAAIuB,EAAO,CACTpB,MAAOH,EAAKI,MACZG,KAAMP,EAAKQ,KACXE,YAAaV,EAAKW,aAClBC,WAAYZ,EAAKa,YACjBC,eAAgBd,EAAKe,gBACrBC,eAAgBhB,EAAKiB,gBACrBC,aAAclB,EAAKmB,cACnBC,YAAapB,EAAKqB,aAClBG,gBAAiBxB,EAAKyB,iBACtBC,eAAgB1B,EAAK2B,iBAOvB,OAJG3B,EAAK2B,kBACNJ,EAAI,SAAevB,EAAKM,UAGnBJ,EAAKb,KAAKQ,EAAS,iBAAkB0B,IAc5CK,eAXF,WACE,OAAO1B,EAAKd,IAAIS,EAAS,YAWzBgC,kBARF,WACE,OAAO3B,EAAKb,KAAKQ,EAAS,oB,8DCrCrB,WAAqBO,EAAOE,GAA5B,eAAAwB,EAAA,sEACkB5B,EAAKb,KAAKQ,EAAS,4BAA6B,CAAEO,QAAOE,aAD3E,cACCzB,EADD,OAELkD,aAAaC,QANE,QAMgBnD,EAAS0C,KAAKU,OAFxC,kBAGEpD,GAHF,4C,kEAMA,WAAiDuB,GAAjD,SAAA0B,EAAA,sEACQ5B,EAAKb,KAAKQ,EAAS,yCAA0C,CAAEO,UADvE,oF,kEAIA,WAAoC8B,EAAIC,EAAMC,GAA9C,SAAAN,EAAA,sEACQ5B,EAAKb,KAAKQ,EAAS,2CAA4C,CAAE,UAAawC,SAASH,GAAK,KAAQC,EAAM,YAAeC,IADjI,oF,sBA4BA,SAASE,IACd,OAAOP,aAAaQ,QA3CL,SAEjBrC,EAAKV,OAAO8C,KA4CG,OACbE,MA3CK,SAAP,qCA4CEC,aA9BK,SAAsBhD,GAC3BsC,aAAaC,QAnBE,QAmBgBvC,IA8B/BiD,OA3BK,WACLX,aAAaY,WAvBE,UAkDfC,eAxBK,WACL,IACE,IAAMnD,EAAMsC,aAAaQ,QA5BZ,SA6BPM,EAAeC,IAAUrD,GAE/B,OAAIoD,EAAaE,IAAMC,KAAKC,MAAQ,KAClClB,aAAaY,WAhCF,SAiCJ,MAGFE,EACP,MAAOK,GACP,OAAO,OAaTZ,SACAa,kCA1CK,SAAP,mCA2CEC,qBAvCK,SAAP,wC,0CCDeC,EAbD,SAAC,GAAqC,IAAnC7C,EAAkC,EAAlCA,KAAM8C,EAA4B,EAA5BA,MAAO7E,EAAqB,EAArBA,MAAU8E,EAAW,wCACjD,OACE,6BACE,kBAAC,IAAD,iBACMA,EADN,CAEE/C,KAAMA,EACN8C,MAAOA,KAER7E,GAAS,kBAAC,IAAD,CAAY+E,MAAM,SAAS/E,K,qFCZpC,SAASgF,EAAejD,EAAMkD,GAClC,IAAIC,EAAW,KAEhB,OAAQnD,GACN,IAAK,QACL,IAAK,gBACE,4CAA4CoD,KAAKF,KACpDC,EAAW,gCAEb,MACF,IAAK,kBACE,mCAAmCC,KAAKF,KAC3CC,EAAW,uCAEb,MACF,IAAK,WACH,GAAID,GAASA,EAAMG,OAAS,EAC1BF,EAAW,kCAEa,QAAQC,KAAKF,GACb,eAAeE,KAAKF,GAClB,QAAQE,KAAKF,GACb,QAAQE,KAAKF,GAEuC,GAC5EA,IAEAC,EAAW,qIAUnB,OAJKD,GAA0B,IAAjBA,EAAMG,SAClBF,EAAW,8BAGNA,E,ICkDMG,E,2MA3EbC,UAAW,E,EAEXC,MAAQ,CACNzC,KAAM,GACN0C,OAAQ,I,EAGVC,aAAe,SAAAC,GACbA,EAAEC,iBAEF,EAAKC,Y,EAGPC,aAAe,YAA+B,IAAbC,EAAY,EAA3BC,cAA2B,EAClB,EAAKR,MAAtBzC,EADmC,EACnCA,KAAM0C,EAD6B,EAC7BA,OACd1C,EAAKgD,EAAM/D,MAAQ+D,EAAMb,MAEzB,EAAKe,SAAS,CAAElD,SAEZ,EAAKwC,WACPE,EAAOM,EAAM/D,MAAQiD,EAAec,EAAM/D,KAAM+D,EAAMb,OACtD,EAAKe,SAAS,CAAER,a,4EAIPX,EAAOoB,GAClB,OACE,kBAAC,IAAD,CAAQC,SAAUD,EAAYlB,MAAM,UAAUoB,QAAQ,YAAYC,KAAK,UAAUvB,K,qCAItE9C,EAAM8C,GAAQ,IAAD,OAClBW,EAAWa,KAAKd,MAAhBC,OACF1C,EAAI,eAAQuD,KAAKd,MAAMzC,MAE7B,OACE,kCACmBwD,GAAhBd,EAAOzD,GAAqB,kBAAC,IAAD,CAAgBwE,UAAU,SAASvG,OAAO,GAAOwF,EAAOzD,IAAyB,GAC9G,kBAAC,IAAD,CAAkByE,QAChB,kBAAC,IAAD,CACEzE,KAAMA,EACN0E,SAAU,SAACC,EAAGC,GAAc7D,EAAKf,GAAQ4E,EAAS,EAAKX,SAAS,CAAClD,UACjEiC,MAAM,UACN4B,QAASN,KAAKd,MAAMzC,KAAKf,KAE3B8C,MAAOA,O,kCAOH9C,EAAM8C,GAAyC,IAAlCuB,EAAiC,uDAA1B,OAAQQ,EAAkB,0DAC/BP,KAAKd,MAAtBzC,EADgD,EAChDA,KAAM0C,EAD0C,EAC1CA,OAEd,OACE,kBAAC,IAAD,KACE,kBAAC,EAAD,CACEY,KAAMA,EACNrE,KAAMA,EACNkD,MAAOnC,EAAKf,GACZ8C,MAAOA,EACP4B,SAAUJ,KAAKR,aACf7F,MAAOwF,EAAOzD,GACdoE,QAAQ,WACRU,OAAO,SACPC,WAAW,EACXF,SAAUA,S,GArEDG,a,QC8GJC,E,2MAhHbzB,MAAQ,CACNzC,KAAM,CACJnB,MAAO,GACPI,KAAM,GACNG,aAAc,GACdU,aAAc,GACdR,YAAa,GACbE,gBAAiB,GACjBE,gBAAiB,GACjBE,cAAe,GACfb,SAAU,GACVoF,iBAAkB,GAClB/D,iBAAiB,GAEnBsC,OAAQ,I,EAGV0B,kBAAoB,WAClB,EAAKC,Y,EAGPA,S,sBAAW,8BAAA9D,EAAA,6DACLP,EADK,eACO,EAAKyC,MAAMzC,MADlB,SAEesE,EAAYjE,iBAF3B,OAEHkE,EAFG,OAE6CvE,KAAKvB,KAC3DuB,EAAKnB,MAAQ2F,OAAOD,EAAQ,OAC5BvE,EAAKf,KAAOuF,OAAOD,EAAQ,MAC3BvE,EAAKZ,aAAeoF,OAAOD,EAAQ,aACnCvE,EAAKF,aAAe0E,OAAOD,EAAQ,aACnCvE,EAAKV,YAAckF,OAAOD,EAAQ,YAClCvE,EAAKR,gBAAkBgF,OAAOD,EAAQ,gBACtCvE,EAAKN,gBAAkB8E,OAAOD,EAAQ,gBACtCvE,EAAKJ,cAAgB4E,OAAOD,EAAQ,cACpC,EAAKrB,SAAS,CAAElD,SAXP,4C,EA2BX8C,S,sBAAW,4BAAAvC,EAAA,6DACT,EAAK2C,SAAS,CAAER,OAAQ,KADf,kBAIgB4B,EAAYvE,OAAO,EAAK0C,MAAMzC,MAJ9C,cAKPtC,QAAM+G,QAAQ,sBALP,gDAOH,KAAGnH,UAAmC,MAAvB,KAAGA,SAASE,UACvBkF,EADuC,eACzB,EAAKD,MAAMC,SAExB7D,MAAQ,KAAGvB,SAAS0C,KAAK0C,OAAjB,OAAoC,GACnDA,EAAOzD,KAAO,KAAG3B,SAAS0C,KAAK0C,OAAjB,MAAmC,GACjDA,EAAO3D,SAAW,KAAGzB,SAAS0C,KAAK0C,OAAjB,UAAuC,GACzD,EAAKQ,SAAS,CAAER,OAAQA,KAbnB,yD,EAkBXgC,qBAAuB,WACrB,OACE,6BACG,EAAKC,YAAY,WAAY,YAAU,YACvC,EAAKA,YAAY,mBAAoB,mCAAsB,c,EAKlEC,oBAAsB,WAEN,iBADDC,OAAO,mHAElBP,EAAYhE,oBACZwE,EAAK3D,SACL4D,OAAOC,SAAW,M,kFA7CHC,EAAWC,GAC5B,IAAIxC,EAASa,KAAKd,MAAMC,OAErBa,KAAKd,MAAMzC,MAAQuD,KAAKd,MAAMzC,KAAKjB,WAAawE,KAAKd,MAAMzC,KAAKmE,iBAChC,MAA9BzB,EAAM,mBACPA,EAAM,iBAAuB,cAC7Ba,KAAKL,SAAS,CAAER,YAGlBA,EAAM,iBAAuB,O,+BAyC/B,OACE,6BACE,wCACA,0BAAMyC,SAAU5B,KAAKZ,cAClBY,KAAKoB,YAAY,OAAQ,UACzBpB,KAAKoB,YAAY,QAAS,UAC1BpB,KAAKoB,YAAY,eAAgB,8BACjCpB,KAAKoB,YAAY,cAAe,gDAChCpB,KAAKoB,YAAY,eAAgB,gCACjCpB,KAAKoB,YAAY,kBAAmB,kCACpCpB,KAAKoB,YAAY,kBAAmB,iBACpCpB,KAAKoB,YAAY,gBAAiB,2CAClCpB,KAAK6B,eAAe,kBAAmB,iCAEvC7B,KAAKd,MAAMzC,KAAKI,iBAAkBmD,KAAKmB,uBAExC,6BACCnB,KAAK8B,aAAa,cAErB,kBAAC,IAAD,CAAYhC,QAAQ,KAAKpB,MAAM,QAAQqD,MAAO,CAACC,UAAW,SAA1D,0BAEA,kBAAC,IAAD,CAAQC,QAASjC,KAAKqB,oBAAqBvB,QAAQ,YAAYpB,MAAM,YAAYqD,MAAO,CAACC,UAAW,SAApG,+B,GA3GchD,GCDPkD,GAJE,WACf,OAAO,0C,2DCgDMC,yBA1CA,CACbC,KAAM,CACJC,SAAU,GAEZC,KAAM,CACJD,SAAU,IAqCCF,EAjCA,SAACI,GAAW,IACjBC,EAAYD,EAAZC,QACAtH,EAASqH,EAATrH,KAER,OACE,yBAAKuH,UAAWD,EAAQJ,MACtB,kBAAC,KAAD,CAAQM,SAAS,SAAShE,MAAM,WAC9B,kBAAC,KAAD,KACE,uBAAGiE,KAAK,KAAI,yBAAKC,IAAI,0BAA0BC,IAAI,iBAAiBd,MAAO,CAACe,MAAM,OAClF,kBAAC,IAAD,CAAQpE,MAAM,UAAUuD,QAAS,WAAKc,SAAStB,SAAW,MAA1D,4BACEvG,GACA,kBAAC,IAAM8H,SAAP,KACE,kBAAC,IAAD,CAAQtE,MAAM,UAAUwB,UAAW,SAAAqC,GAAK,OAAI,kBAACU,GAAA,EAAD,eAASC,GAAG,YAAeX,MAAvE,iBACA,kBAAC,IAAD,CAAQ7D,MAAM,UAAUwB,UAAW,SAAAqC,GAAK,OAAI,kBAACU,GAAA,EAAD,eAASC,GAAG,eAAkBX,MAA1E,uBAGHrH,GACC,kBAAC,IAAM8H,SAAP,KACE,kBAAC,IAAD,CAAQtE,MAAM,UAAUwB,UAAW,SAAAqC,GAAK,OAAI,kBAACU,GAAA,EAAD,eAASC,GAAG,oBAAuBX,MAA/E,uBACA,kBAAC,IAAD,CAAQ7D,MAAM,UAAUwB,UAAW,SAAAqC,GAAK,OAAI,kBAACU,GAAA,EAAD,eAASC,GAAG,cAAiBX,MAAzE,aAA8FrH,EAAKQ,KAAnG,KACA,kBAAC,IAAD,CAAQgD,MAAM,UAAUwB,UAAW,SAAAqC,GAAK,OAAI,kBAACU,GAAA,EAAD,eAASC,GAAG,aAAgBX,MAAxE,wB,UCqBCY,G,2MAlDblE,UAAW,E,EAEXC,MAAQ,CACNzC,KAAM,CAAEnB,MAAO,GAAIE,SAAU,IAC7B2D,OAAQ,GACRxF,MAAO,I,EAGT4F,S,sBAAW,8BAAAvC,EAAA,sEAECP,EAAS,EAAKyC,MAAdzC,KAFD,SAGD8E,EAAK7D,MAAMjB,EAAKnB,MAAOmB,EAAKjB,UAH3B,OAKC0D,EAAU,EAAKqD,MAAMd,SAArBvC,MAINsC,OAAOC,SAAWvC,EAAQA,EAAMkE,KAAKC,SAAW,2BAT3C,gDAaH,KAAGtJ,UAAmC,MAAvB,KAAGA,SAASE,OAC7B,EAAK0F,SAAS,CAAEhG,MAAO,kDAEvB,EAAKgG,SAAS,CAAEhG,MAAO,4EAhBlB,yD,wEAsBT,OAAI4H,EAAKzD,iBAAyB,kBAACwF,GAAA,EAAD,CAAUJ,GAAG,OAG7C,6BACE,6CAEsB,KAArBlD,KAAKd,MAAMvF,MAAe,KAAQ,kBAAC,IAAD,CAAY+E,MAAM,SAASsB,KAAKd,MAAMvF,OACzE,0BAAMiI,SAAU5B,KAAKZ,cAClBY,KAAKoB,YAAY,QAAS,UAC1BpB,KAAKoB,YAAY,WAAY,YAAU,YACxC,6BACCpB,KAAK8B,aAAa,iBACnB,6BAAM,6BACN,kBAAC,IAAD,CAAQ5B,UAAW,SAAAqC,GAAK,OAAI,kBAACU,GAAA,EAAD,eAASC,GAAG,sBAAyBX,MAAjE,+B,GA5CcvD,G,qBCcT,QACXuE,UApBJ,WACI,OAAOnI,EAAKd,IAAIS,EAAS,sBAoBzByI,kBANJ,WACI,OAAOpI,EAAKd,IAAIS,EAAS,uBAMzB0I,OAXJ,SAAgBC,GACZ,OAAOtI,EAAKb,KAAKQ,EAAS,sBAAsBkG,OAAOyC,GAAgB,YAWvEC,UAnBJ,SAAmBC,GACf,OAAOxI,EAAKb,KAAKQ,EAAS,4BAA6B,CACnD,QAAWwC,SAASqG,EAAI,IACxB,aAAgBpC,OAAOC,SAASoC,OAAO,uBCoRhCC,G,2MA5Qb5E,MAAQ,CACNzC,KAAM,CACJnB,MAAO,GACPyI,cAAe,GACfvI,SAAU,GACVoF,iBAAkB,GAClBlF,KAAM,GACNsI,cAAc,EACdC,gBAAgB,EAChBpI,aAAc,GACdU,aAAc,GACdR,YAAa,GACbE,gBAAiB,GACjBE,gBAAiB,GACjBE,cAAe,IAEjBlB,gBAAiB,GACjBgE,OAAQ,GACR+E,MAAO,GACPC,cAAe,M,EAIjBC,WAAa,K,EAEbvD,kBAAoB,WAClB,EAAKwD,gB,EA4CP9E,S,sBAAW,8BAAAvC,EAAA,yDACL4G,EAAO,EAAK1E,MAAMgF,MAAMI,QAC1B,SAACV,GAAD,OAAUA,EAAI,KAAW,EAAK1E,MAAMiF,iBACpC,GAEmC,OAAjCI,EAAYzG,iBALP,gCAMD,EAAK0G,qBAAqBZ,GANzB,qCAQPxI,EAAKV,OAAO6G,EAAK/D,UARV,SASD,EAAKiH,wBATJ,cAUHb,EAAO,EAAK1E,MAAMgF,MAAMI,QAC1B,SAACV,GAAD,OAAUA,EAAI,KAAW,EAAK1E,MAAMiF,iBACpC,GAZK,UAauBO,GAAoBf,UAAUC,GAbrD,QAaHe,EAbG,OAcP5B,SAAStB,SAAWkD,EAAkBlI,KAAKmI,YAdpC,4C,EAkBXH,sB,sBAAwB,4BAAAzH,EAAA,+EAGd+D,EAAYvE,OAAO,EAAK0C,MAAMzC,MAHhB,2DAKhB,KAAG1C,UAAmC,MAAvB,KAAGA,SAASE,OALX,wBAMZkF,EANY,eAME,EAAKD,MAAMC,QAC/B,EAAKQ,SAAS,CAAER,OAAQA,IAPN,UAQZ,EAAKiF,WAAWS,QARJ,yD,EAaxBL,qB,uCAAuB,WAAOZ,GAAP,mBAAA5G,EAAA,yDACrB,EAAK2C,SAAS,CACZR,OAAQ,KAGJA,EAAS,GAEV,EAAKD,MAAMzC,KAAKuH,eACnB7E,EAAO6E,aAAe,qEACtB,EAAKrE,SAAS,CAAER,YAGb,EAAKD,MAAMzC,KAAKwH,iBACnB9E,EAAO8E,eAAiB,kEACxB,EAAKtE,SAAS,CAAER,YAGb,EAAKD,MAAMzC,KAAKuH,cAAiB,EAAK9E,MAAMzC,KAAKwH,eAjBjC,0EAsBIlD,EAAY9F,SACjC,EAAKiE,MAAMzC,KACX,EAAKyC,MAAM/D,iBAxBM,cAsBbpB,EAtBa,OA0BnBwH,EAAK5D,aAAa5D,EAAS0C,KAAKU,OAChC/B,EAAKV,OAAO6G,EAAK/D,UA3BE,UA4BWkH,GAAoBf,UAAUC,GA5BzC,QA4Bfe,EA5Be,OA6BnB5B,SAAStB,SAAWkD,EAAkBlI,KAAKmI,YA7BxB,sDAgCf,KAAG7K,UAAmC,MAAvB,KAAGA,SAASE,OAhCZ,wBAiCjBkF,EAAO7D,MAAQ,KAAGvB,SAAS0C,KAAK0C,OAAjB,MACfA,EAAO3D,SAAW,KAAGzB,SAAS0C,KAAK0C,OAAjB,SAClBA,EAAOzD,KAAO,KAAG3B,SAAS0C,KAAK0C,OAAjB,KACdA,EAAO2F,QAAU,KAAG/K,SAAS0C,KAAK0C,OAAjB,QAEjB,EAAKQ,SAAS,CAAER,WAtCC,UAuCX,EAAKiF,WAAWS,QAvCL,0D,wDA4CvBR,a,sBAAe,4BAAArH,EAAA,sEACQ0H,GAAoBnB,YAD5B,OACPW,EADO,OACyCzH,KAAKyH,MAC3D,EAAKvE,SAAS,CAAEuE,MAAOA,IACnBA,EAAMnF,OAAS,GACjB,EAAKY,SAAS,CAAEwE,cAAeD,EAAM,GAAN,KAJpB,2C,EAQfa,WAAa,SAACC,EAAKpB,GACjB,OACE,yBAAKoB,IAAKA,EAAKjD,MAAO,CAAEkD,aAAc,SACpC,kBAAC,IAAD,KACE,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAYnF,QAAQ,KAAKI,UAAU,MACjC,kBAAC,IAAD,CACEI,QAAS,EAAKpB,MAAMiF,gBAAkBP,EAAI,GAC1CxD,SAAU,SAAC8E,GACT,EAAKvF,SAAS,CAAEwE,cAAee,EAAMC,OAAOvG,SAE9CA,MAAOgF,EAAI,GACXlI,KAAK,SAENkI,EAAI,OAGP,kBAAC,IAAD,CACE1D,UAAU,IACV6B,MAAO,CAAEqD,WAAY,YACrBC,wBAAyB,CAAEC,OAAQ1B,EAAI,eAGzC,yBAAK7B,MAAO,CAAEC,UAAW,OAAQuD,SAAU,SACxC3B,EAAI,IADP,sB,EASV4B,sBAAwB,WACtB,OACE,6BACG,EAAKpE,YAAY,eAAgB,6BAAkB,QAAQ,GAC3D,EAAKA,YACJ,cACA,+CACA,QACA,GAED,EAAKA,YAAY,eAAgB,+BAAoB,QAAQ,GAC7D,EAAKA,YACJ,kBACA,iCACA,QACA,GAED,EAAKA,YAAY,kBAAmB,gBAAW,QAAQ,GACxD,kBAAC,IAAD,qIACC,EAAKA,YACJ,gBACA,0CACA,QACA,GAGDqE,OAAOC,KAAK,EAAKxG,MAAMgF,OAAOyB,KAAI,SAACX,GAAD,OACjC,EAAKD,WAAWC,EAAK,EAAK9F,MAAMgF,MAAMc,S,EAM9CY,gBAAkB,SAAC7L,GACjB,EAAK4F,SAAS,CAAExE,gBAAiBpB,EAAUoF,OAAQ,M,kFA9LlCuC,EAAWC,GAC5B,IAAIxC,EAASa,KAAKd,MAAMC,OAErBa,KAAKd,MAAMzC,KAAKuH,eAAiBrC,EAAUlF,KAAKuH,eAC9ChE,KAAKd,MAAMzC,KAAKuH,cACjB7E,EAAM,aAAmB,KACzBa,KAAKL,SAAS,CAAER,aAEhBA,EAAM,aAAmB,qEACzBa,KAAKL,SAAS,CAAER,aAGjBa,KAAKd,MAAMzC,MAAQuD,KAAKd,MAAMzC,KAAKwH,iBAAmBtC,EAAUlF,KAAKwH,iBACnEjE,KAAKd,MAAMzC,KAAKwH,gBACjB9E,EAAM,eAAqB,KAC3Ba,KAAKL,SAAS,CAAER,aAEhBA,EAAM,eAAqB,kEAC3Ba,KAAKL,SAAS,CAAER,aAIjBa,KAAKd,MAAMzC,MAAQuD,KAAKd,MAAMzC,KAAKjB,WAAawE,KAAKd,MAAMzC,KAAKmE,iBAChC,MAA9BzB,EAAM,mBACPA,EAAM,iBAAuB,cAC7Ba,KAAKL,SAAS,CAAER,YAGlBA,EAAM,iBAAuB,KAG5Ba,KAAKd,MAAMzC,MAAQuD,KAAKd,MAAMzC,KAAKnB,QAAU0E,KAAKd,MAAMzC,KAAKsH,cAChC,MAA3B5E,EAAM,gBACPA,EAAM,cAAoB,cAC1Ba,KAAKL,SAAS,CAAER,YAGlBA,EAAM,cAAoB,O,+BA4JpB,IAAD,OAIHS,EAFgB6F,OAAOI,OAAO7F,KAAKd,MAAMC,QACVmF,OAAOwB,SACV/G,OAAS,EAEzC,OACE,6BACE,kDACA,0BAAM6C,SAAU5B,KAAKZ,cAClBY,KAAKoB,YAAY,OAAQ,SAAO,QAAQ,GACxCpB,KAAKoB,YAAY,QAAS,SAAU,QAAQ,GAC5CpB,KAAKoB,YAAY,gBAAiB,gCAAsB,QAAQ,GAChEpB,KAAKoB,YAAY,WAAY,YAAU,YAAY,GACnDpB,KAAKoB,YAAY,mBAAoB,mCAAsB,YAAY,GACvEpB,KAAKwF,wBACLxF,KAAK6B,eACJ,eACA,uBAAGc,KAAK,0BAA0BwC,OAAO,UAAzC,oDAIDnF,KAAK6B,eACJ,iBACA,uBACEc,KAAK,oDACLwC,OAAO,UAFT,gDAOF,6BACA,kBAAC,KAAD,CACEY,IAAK,SAACA,GAAD,OAAS,EAAK3B,WAAa2B,GAChCC,QXjRahL,2CWkRbiL,SAAUjG,KAAK4F,kBAEhB5F,KAAKd,MAAMC,OAAO2F,SAAW,0CAAgB9E,KAAKd,MAAMC,OAAO2F,SAChE,6BACC9E,KAAK8B,aAAa,wEAA+ClC,S,GAtQjDZ,GC+BZkH,G,2MAzCXhH,MAAQ,CACJiH,QAAS,GACT1J,KAAM,CAAEnB,MAAO,IACf6D,OAAQ,GACRxF,MAAO,I,EAGX4F,S,sBAAW,4BAAAvC,EAAA,sEAEKP,EAAS,EAAKyC,MAAdzC,KAFL,SAGoB8E,EAAKlD,kCAAkC5B,EAAKnB,OAHhE,OAIwB,SAJxB,OAISmB,KAAKxC,QACb,EAAK0F,SAAS,CAAEhG,MAAO,gCACvB,EAAKgG,SAAS,CAAEwG,QAAS,OAEzB,EAAKxG,SAAS,CAAEwG,QAAS,6GACzB,EAAKxG,SAAS,CAAEhG,MAAO,MATxB,gDAYH,EAAKgG,SAAS,CAAEhG,MAAO,4EAZpB,yD,wEAiBP,OACI,6BACI,qDAEwB,KAAvBqG,KAAKd,MAAMiH,QAAiB,KAAQ,kBAAC,IAAD,CAAYzH,MAAM,WAAWsB,KAAKd,MAAMiH,SAEvD,KAArBnG,KAAKd,MAAMvF,MAAe,KAAQ,kBAAC,IAAD,CAAY+E,MAAM,SAASsB,KAAKd,MAAMvF,OACzE,0BAAMiI,SAAU5B,KAAKZ,cAChBY,KAAKoB,YAAY,QAAS,UAC3B,6BACCpB,KAAK8B,aAAa,qC,GAnCN9C,GCmDlBoH,G,2MAhDXlH,MAAQ,CACJiH,QAAS,GACT1J,KAAM,CAAEjB,SAAU,IAClB2D,OAAQ,GACRxF,MAAO,GACP0M,iBAAiB,G,EAGrB9G,S,sBAAW,4BAAAvC,EAAA,sEAEKP,EAAS,EAAKyC,MAAdzC,KAFL,SAGoB8E,EAAKjD,qBAAqB,EAAKiE,MAAM+D,MAAMC,OAAOnJ,GAAI,EAAKmF,MAAM+D,MAAMC,OAAOlJ,KAAMZ,EAAKjB,UAH7G,OAIwB,SAJxB,OAISiB,KAAKxC,QACb,EAAK0F,SAAS,CAAEhG,MAAO,+DACvB,EAAKgG,SAAS,CAAEwG,QAAS,MAEzB,EAAKxG,SAAS,CAAEwG,QAAS,qBAAmBxM,MAAO,GAAI0M,iBAAiB,IARzE,gDAWH,EAAK1G,SAAS,CAAEhG,MAAO,4EAXpB,yD,wEAgBP,IAEIiG,EAFgB6F,OAAOI,OAAO7F,KAAKd,MAAMC,QACVmF,OAAOwB,SACV/G,OAAS,EAEzC,OACI,6BACI,kEAEwB,KAAvBiB,KAAKd,MAAMiH,QAAiB,KAAQ,kBAAC,IAAD,CAAYzH,MAAM,WAAWsB,KAAKd,MAAMiH,SAEvD,KAArBnG,KAAKd,MAAMvF,MAAe,KAAQ,kBAAC,IAAD,CAAY+E,MAAM,SAASsB,KAAKd,MAAMvF,OAExEqG,KAAKd,MAAMmH,gBAAmB,kBAAC,IAAD,CAAQ3H,MAAM,UAAUwB,UAAW,SAAAqC,GAAK,OAAI,kBAACU,GAAA,EAAD,eAASC,GAAG,YAAeX,MAAvE,gCAAgH,KAE/I,0BAAMX,SAAU5B,KAAKZ,cAChBY,KAAKoB,YAAY,WAAY,kBAAa,YAC3C,6BACCpB,KAAK8B,aAAa,YAAUlC,S,GA1CVZ,GCOxBwH,G,4LAVXjF,EAAK3D,SAEL4D,OAAOC,SAAW,M,+BAIlB,OAAO,S,GARUf,aCqBN+F,GApBQ,SAAC,GAAoD,EAAlDC,KAAmD,IAAlChG,EAAiC,EAA5CR,UAAsByG,EAAsB,EAAtBA,OAAWlI,EAAW,6CAC1E,OACE,kBAACmI,EAAA,EAAD,iBACMnI,EADN,CAEEkI,OAAQ,SAAApE,GACN,OAAKhB,EAAKzD,iBASH4C,EAAY,kBAACA,EAAc6B,GAAYoE,EAAOpE,GAPjD,kBAACe,GAAA,EAAD,CACEJ,GAAI,CACFG,SAAU,WACVnE,MAAO,CAAEkE,KAAMb,EAAMd,kBCRtBoF,GAJF,WACX,OAAO,+B,qBCoNMC,G,2MA1Mb5H,MAAQ,CACNzC,KAAM,CACJyH,MAAO,IAET6C,kBAAmB,GACnBC,cAAe,GACf7H,OAAQ,GACR8H,SAAU,M,EAGZpG,kBAAoB,WAClB,EAAKC,WACL,IAAImG,EAAWC,YAAY,EAAKpG,SAAU,KAC1C,EAAKnB,SAAS,CAAEsH,SAAUA,IAC1B,EAAKE,wB,EAGPC,qBAAuB,WACrBC,cAAc,EAAKnI,MAAM+H,UACzB,EAAKtH,SAAS,CAAEsH,SAAU,Q,EAG5BE,qBAAuB,WACrB,IAAMG,EAAIC,KAAGC,MAAM,EAAKjF,MAAMd,SAASgG,QAAQH,EAC/C,QAAUrH,IAANqH,EAAiB,CACnB,IAAMI,EAASC,KAAKH,MAAMI,KAAKN,IACzBrN,EAASgH,OAAOyG,EAAM,GAAOG,cACnC,EAAKlI,SAAS,CAAEoH,kBAAmB9M,EAAQ+M,cAAeU,EAAM,M,EAIpE5G,S,sBAAW,gCAAA9D,EAAA,6DACLP,EADK,eACO,EAAKyC,MAAMzC,MADlB,SAEYiI,GAAoBnB,YAFhC,cAEHW,EAFG,OAE6CzH,KAAKyH,MAFlD,SAGoBQ,GAAoBlB,oBAHxC,OAGHsE,EAHG,OAG6DrL,KACnEqL,cAEHrL,EAAKyH,MAAQA,EAAMyB,KAAI,SAACoC,GAUtB,OATAA,EAAC,mBAAyBD,EAAcE,MACtC,SAACC,GAAD,OAAOA,EAAC,SAAeF,EAAC,IAAUE,EAAC,UAErCF,EAAC,oBAA0BD,EAAcE,MACvC,SAACC,GAAD,OACEA,EAAC,SAAeF,EAAC,KAChBE,EAAC,QACwB,WAA1BA,EAAC,qBAEEF,KAGT,EAAKpI,SAAS,CAAElD,SAnBP,2C,EAsBXyL,wBAA0B,SAACjO,EAAQkO,GACjC,OACE,kBAAC,IAAD,CAAMpG,MAAO,CAAEkD,aAAc,SAC3B,kBAAC,IAAD,KACE,0BAAMlD,MAAO,CAAErD,MAAO,YAAtB,+BACA,yBAAKqD,MAAO,CAAEwD,SAAU,OAAQ6C,WAAY,SAC/B,WAAVnO,GACC,sDAEE,6BACA,6BAHF,4CAImCkO,GAG1B,QAAVlO,GACC,wDAEE,6BACA,6BAHF,4CAImCkO,EAJnC,IAIkD,6BAJlD,ySAWS,WAAVlO,GACC,iIAKS,UAAVA,GAAsB,yE,EAOjC8K,WAAa,SAACC,EAAKpB,GACjB,OACE,yBAAKoB,IAAKA,EAAKjD,MAAO,CAAEkD,aAAc,SACpC,kBAAC,IAAD,KACE,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAYnF,QAAQ,KAAKI,UAAU,MAChC0D,EAAI,OAEP,kBAAC,IAAD,CACE1D,UAAU,IACV6B,MAAO,CAAEqD,WAAY,YACrBC,wBAAyB,CAAEC,OAAQ1B,EAAI,eAEzC,kBAAC,IAAD,CAAY1D,UAAU,IAAI6B,MAAO,CAAEqD,WAAY,aAC5CxB,EAAI,IADP,QAIF,kBAAC,IAAD,UACiC3D,GAA9B2D,EAAI,mBACD,EAAKyE,iBAAiBzE,GACtB,EAAK0E,oBAAoB1E,O,EAOvCyE,iBAAmB,SAACzE,GAAU,IAAD,EAC3B,OACE,8EACsC,IACnCA,EAAI,mBAAJ,UAFH,IAE4C,6BAC1C,6BACCA,EAAI,mBAAJ,SACC,kBAAC,IAAD,CACE9D,QAAQ,YACRpB,MAAM,UACNuD,QAAS,kBAAM,EAAKsG,gBAAgB3E,KAHtC,2BAQA,kBAAC,KAAD,GACE9D,QAAQ,YACRpB,MAAM,aAFR,wBAGU,aAHV,yBAIW,WACJ8C,OAAOgH,QAAQ,sFAChB,EAAKC,WAAW7E,MANtB,0C,EAiBR0E,oBAAsB,SAAC1E,GACrB,OACE,6BACGA,EAAI,qBACH,2EAEAA,EAAI,qBACJ,6BACE,kBAAC,IAAD,CACE9D,QAAQ,YACRpB,MAAM,UACNuD,QAAS,kBAAM,EAAKsG,gBAAgB3E,KAHtC,sB,EAaV6E,WAAa,SAAC7E,GACZc,GAAoBjB,OAAOG,EAAI,mBAAJ,IAC3B,EAAK9C,Y,EAGPyH,gB,uCAAkB,WAAO3E,GAAP,eAAA5G,EAAA,sEACG0H,GAAoBf,UAAUC,GADjC,OACV8E,EADU,OAEhB3F,SAAStB,SAAWiH,EAAKjM,KAAKmI,YAFd,2C,8HAKR,IAAD,OACP,OACE,6BACE,kDAEiC,IAAhC5E,KAAKd,MAAM6H,kBACR/G,KAAKkI,wBACHlI,KAAKd,MAAM6H,kBACX/G,KAAKd,MAAM8H,eAEb,KAEHvB,OAAOC,KAAK1F,KAAKd,MAAMzC,KAAKyH,OAAOyB,KAAI,SAACX,GAAD,OACtC,EAAKD,WAAWC,EAAK,EAAK9F,MAAMzC,KAAKyH,MAAMc,Y,GApMzBhG,GC+BtB2J,I,cAAQC,0BAAe,CAC3BC,QAAS,CACPC,QAAS,CACPC,KAAM,eAKNC,G,2MACJ9J,MAAQ,G,mFAGN,IAAMhE,EAAOqG,EAAKzD,iBAClBkC,KAAKL,SAAS,CAAEzE,W,+BAGR,IACAA,EAAS8E,KAAKd,MAAdhE,KAER,OACE,kBAAC,oBAAD,CAAkByN,MAAOA,IACvB,kBAAC,IAAM3F,SAAP,KACE,kBAAC,iBAAD,MACA,kBAAC,GAAD,CAAQ9H,KAAMA,IAEd,0BACEuH,UAAWzC,KAAKuC,MAAMC,QAAQyG,UAC9BlH,MAAO,CAAEmH,SAAU,UAEnB,kBAACC,EAAA,EAAD,KACE,kBAACvC,EAAA,EAAD,CAAOF,KAAK,cAAcxG,UAAW4D,KACrC,kBAAC8C,EAAA,EAAD,CAAOF,KAAK,WAAWxG,UAAWiD,KAClC,kBAACyD,EAAA,EAAD,CAAOF,KAAK,YAAYxG,UAAWsG,KACnC,kBAACI,EAAA,EAAD,CAAOF,KAAK,qBAAqBxG,UAAWgG,KAC5C,kBAACU,EAAA,EAAD,CACEF,KAAK,sCACLxG,UAAWkJ,KAEb,kBAAC,GAAD,CAAgB1C,KAAK,aAAaxG,UAAWS,IAC7C,kBAAC,GAAD,CACE+F,KAAK,mBACLxG,UAAW4G,KAEb,kBAACF,EAAA,EAAD,CAAOF,KAAK,eAAexG,UAAWgC,KACtC,kBAAC0E,EAAA,EAAD,CAAOF,KAAK,MAAMxG,UAAW2G,MAE/B,6BACA,6BACA,6BACA,6BACA,6BACE,uBACElE,KAAK,kEACLwC,OAAO,UAEP,yBACEpD,MAAO,CAAEsH,OAAQ,QACjBzG,IACE7H,EACA,qDAEFuO,MAAM,kDACNzG,IAAI,sDAZV,YAgBE,uBAAGsC,OAAO,SAASxC,KAAK,2BAAxB,WAhBF,YAoBE,uBAAGwC,OAAO,SAASxC,KAAK,sCAAxB,yBApBF,YAwBE,uBACEwC,OAAO,SACPxC,KAAK,8CAFP,qCAOF,6BACA,oC,GA1EMjC,aAkFHyB,0BAhHA,SAACwG,GAAD,YAAY,CACzBM,WAAS,GACPM,aAAc,GACdC,YAAa,GACbC,YAAa,OACbC,WAAY,QAJL,cAMNf,EAAMgB,YAAYC,GAAG,MAAQ,CAE5B9G,MAAO,MARF,cAUN6F,EAAMgB,YAAYC,GAAG,MAAQ,CAE5B9G,MAAO,OAZF,cAcN6F,EAAMgB,YAAYC,GAAG,MAAQ,CAE5B9G,MAAO,OAhBF,MA+GIX,CAAmB6G,IC3H5Ba,GAAc/D,QACW,cAA7BtE,OAAOC,SAASqI,UAEe,UAA7BtI,OAAOC,SAASqI,UAEhBtI,OAAOC,SAASqI,SAASxD,MACvB,2DAsCN,SAASyD,GAAgBC,GACvBC,UAAUC,cACPjP,SAAS+O,GACTG,MAAK,SAAAC,GACJA,EAAaC,cAAgB,WAC3B,IAAMC,EAAmBF,EAAaG,WACtCD,EAAiBE,cAAgB,WACA,cAA3BF,EAAiBpL,QACf+K,UAAUC,cAAcO,WAK1B7Q,QAAQF,IAAI,6CAKZE,QAAQF,IAAI,4CAMrBgR,OAAM,SAAA/Q,GACLC,QAAQD,MAAM,4CAA6CA,M,OCvEjEgR,IAAShE,OACP,kBAACiE,EAAA,EAAD,KACE,kBAAC,GAAD,OAEF7H,SAAS8H,eAAe,SDQX,WACb,GAA6C,kBAAmBZ,UAAW,CAGzE,GADkB,IAAIa,IAAI9P,KAAwBwG,OAAOC,UAC3CoC,SAAWrC,OAAOC,SAASoC,OAIvC,OAGFrC,OAAOuJ,iBAAiB,QAAQ,WAC9B,IAAMf,EAAK,UAAMhP,KAAN,sBAEP6O,KAiDV,SAAiCG,GAE/BgB,MAAMhB,GACHG,MAAK,SAAApQ,GAGkB,MAApBA,EAASE,SACuD,IAAhEF,EAASc,QAAQP,IAAI,gBAAgB2Q,QAAQ,cAG7ChB,UAAUC,cAAcgB,MAAMf,MAAK,SAAAC,GACjCA,EAAae,aAAahB,MAAK,WAC7B3I,OAAOC,SAAS2J,eAKpBrB,GAAgBC,MAGnBU,OAAM,WACL9Q,QAAQF,IACN,oEArEA2R,CAAwBrB,GAIxBC,UAAUC,cAAcgB,MAAMf,MAAK,WACjCvQ,QAAQF,IACN,gHAMJqQ,GAAgBC,OClCxBsB,K","file":"static/js/main.66656b5c.chunk.js","sourcesContent":["function init() {}\n\nfunction log(error) {\n console.error(error);\n}\n\nexport default {\n init,\n log\n};\n","import axios from \"axios\";\nimport logger from \"./logService\";\nimport { toast } from \"react-toastify\";\n\naxios.interceptors.response.use(null, error => {\n const expectedError =\n error.response &&\n error.response.status >= 400 &&\n error.response.status < 500;\n\n if (!expectedError) {\n logger.log(error);\n toast.error(\"Belső hiba történt!\");\n }\n\n return Promise.reject(error);\n});\n\nfunction setJwt(jwt) {\n axios.defaults.headers.common[\"Authorization\"] = `Bearer ${jwt}`;\n}\n\nexport default {\n get: axios.get,\n post: axios.post,\n put: axios.put,\n delete: axios.delete,\n setJwt\n};\n","const apiUrl = process.env.REACT_APP_W_API_URL\nconst recaptchaSiteKey = process.env.REACT_APP_W_RECAPTCHA_SITE_KEY\n\nexport {\n apiUrl, \n recaptchaSiteKey \n}\n","import http from \"./httpService\";\nimport { apiUrl } from \"../config\";\n\n\nfunction register(user, captchaResponse) {\n return http.post(apiUrl + \"/public-api/users/create\", {\n Email: user.email,\n Password: user.password,\n Name: user.name,\n Captcha: captchaResponse,\n InvoiceName: user.invoice_name,\n InvoiceZip: user.invoice_zip,\n InvoiceAddress: user.invoice_address,\n InvoiceTaxCode: user.invoice_taxcode,\n InvoiceEmail: user.invoice_email,\n InvoiceCity: user.invoice_city\n });\n}\n\nfunction update(user) {\n let data = {\n Email: user.email,\n Name: user.name,\n InvoiceName: user.invoice_name,\n InvoiceZip: user.invoice_zip,\n InvoiceAddress: user.invoice_address,\n InvoiceTaxCode: user.invoice_taxcode,\n InvoiceEmail: user.invoice_email,\n InvoiceCity: user.invoice_city,\n CurrentPassword: user.current_password,\n ChangePassword: user.change_password,\n }\n \n if(user.change_password) {\n data['Password'] = user.password;\n }\n\n return http.post(apiUrl + \"/api/me/update\", data);\n}\n\nfunction getUserProfile() {\n return http.get(apiUrl + \"/api/me\");\n}\n\nfunction deleteUserProfile() {\n return http.post(apiUrl + \"/api/me/delete\");\n}\n\nexport default {\n register: register,\n update: update,\n getUserProfile: getUserProfile,\n deleteUserProfile: deleteUserProfile,\n};\n","import jwtDecode from \"jwt-decode\";\nimport http from \"./httpService\";\nimport { apiUrl } from \"../config\";\n\nconst tokenKey = \"token\";\n\nhttp.setJwt(getJwt());\n\nexport async function login(email, password) {\n const response = await http.post(apiUrl + '/public-api/users/sign_in', { email, password });\n localStorage.setItem(tokenKey, response.data.token);\n return response\n}\n\nexport async function requestRequestForgotPasswordEmail(email) {\n return await http.post(apiUrl + '/public-api/users/send_forgot_password', { email });\n}\n\nexport async function forgotPasswordUpdate(id, code, new_password) {\n return await http.post(apiUrl + '/public-api/users/update_forgot_password', { 'RequestID': parseInt(id), 'Code': code, 'NewPassword': new_password });\n}\n\nexport function loginWithJwt(jwt) {\n localStorage.setItem(tokenKey, jwt);\n}\n\nexport function logout() {\n localStorage.removeItem(tokenKey);\n}\n\nexport function getCurrentUser() {\n try {\n const jwt = localStorage.getItem(tokenKey);\n const decodedToken = jwtDecode(jwt);\n\n if (decodedToken.exp < Date.now() / 1000) {\n localStorage.removeItem(tokenKey);\n return null\n }\n\n return decodedToken;\n } catch (ex) {\n return null;\n }\n}\n\nexport function getJwt() {\n return localStorage.getItem(tokenKey);\n}\n\nexport default {\n login,\n loginWithJwt,\n logout,\n getCurrentUser,\n getJwt,\n requestRequestForgotPasswordEmail,\n forgotPasswordUpdate\n};\n","import React from \"react\";\nimport TextField from '@material-ui/core/TextField';\nimport Typography from '@material-ui/core/Typography';\n\nconst Input = ({ name, label, error, ...rest }) => {\n return (\n
\n \n {error && {error}}\n
\n );\n};\n\nexport default Input;\n","export function fieldValidator(name, value) {\n let errorMsg = null;\n\n switch (name) {\n case 'email':\n case 'invoice_email':\n if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(value)) {\n errorMsg = 'Helytelen e-mail formátum';\n }\n break;\n case 'invoice_taxcode':\n if (!/^(0|[0-9]{8}-?[0-9]-?[0-9]{2})$/i.test(value)) {\n errorMsg = 'Helytelen adószám formátum';\n }\n break;\n case 'password':\n if (value && value.length < 7) {\n errorMsg = 'A jelszó túl rövid';\n } else {\n const containsNumeric = /[0-9]/.test(value);\n const containsSpecial = /[^a-zA-Z0-9]/.test(value);\n const containsLowerCase = /[a-z]/.test(value);\n const containsUpperCase = /[A-Z]/.test(value);\n if (\n containsNumeric + containsSpecial + containsLowerCase + containsUpperCase < 3 &&\n value\n ) {\n errorMsg = 'A jelszónak tartalmaznia kell legalább 1 számot, 1 nagybetűt és legalább 7 karakter hosszúnak kell lennie.';\n }\n }\n break;\n }\n\n if (!value || value.length === 0) {\n errorMsg = 'Kötelező mező';\n }\n\n return errorMsg;\n};\n","import React, { Component } from \"react\";\nimport Input from \"./input\";\nimport Button from '@material-ui/core/Button';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport { fieldValidator } from './fieldValidator';\n\n\nclass Form extends Component {\n /** Whether to perform validation on field changes */\n validate = true;\n\n state = {\n data: {},\n errors: {}\n };\n\n handleSubmit = e => {\n e.preventDefault();\n\n this.doSubmit();\n };\n\n handleChange = ({ currentTarget: input }) => {\n const { data, errors } = this.state;\n data[input.name] = input.value;\n\n this.setState({ data });\n\n if (this.validate) {\n errors[input.name] = fieldValidator(input.name, input.value);\n this.setState({ errors })\n }\n };\n\n renderButton(label, isDisabled) {\n return (\n \n );\n }\n\n renderCheckbox(name, label) {\n const { errors } = this.state;\n const data = { ...this.state.data };\n\n return (\n
\n {errors[name] != undefined ? {errors[name]}: \"\"}\n { data[name] = checked; this.setState({data}); }}\n color=\"primary\"\n checked={this.state.data[name]}\n />}\n label={label} />\n\n
\n\n );\n }\n\n renderInput(name, label, type = \"text\", required = false) {\n const { data, errors } = this.state;\n\n return (\n \n \n\n \n );\n }\n}\n\nexport default Form;\n","import React from \"react\";\nimport userService from \"../services/userService\";\nimport auth from \"../services/authService\";\nimport Form from \"../components/common/form\";\nimport { toast } from \"react-toastify\";\nimport { Typography, Button } from '@material-ui/core';\n\nclass Profile extends Form {\n state = {\n data: { \n email: \"\", \n name: \"\",\n invoice_name: \"\",\n invoice_city: \"\",\n invoice_zip: \"\",\n invoice_address: \"\",\n invoice_taxcode: \"\",\n invoice_email: \"\",\n password: \"\", \n password_confirm: \"\",\n change_password: false,\n },\n errors: {}\n };\n\n componentDidMount = () => {\n this.loadData()\n }\n\n loadData = async () => {\n let data = { ...this.state.data};\n const userData = (await userService.getUserProfile()).data.user;\n data.email = String(userData['Email']);\n data.name = String(userData['Name']);\n data.invoice_name = String(userData['InvoiceName']);\n data.invoice_city = String(userData['InvoiceCity']);\n data.invoice_zip = String(userData['InvoiceZip']);\n data.invoice_address = String(userData['InvoiceAddress']);\n data.invoice_taxcode = String(userData['InvoiceTaxCode']);\n data.invoice_email = String(userData['InvoiceEmail']);\n this.setState({ data })\n }\n\n componentDidUpdate(prevProps, prevState) {\n let errors = this.state.errors;\n\n if(this.state.data && this.state.data.password !== this.state.data.password_confirm){\n if(errors[\"password_confirm\"] == null) {\n errors[\"password_confirm\"] = 'Nem egyezik';\n this.setState({ errors });\n }\n } else {\n errors[\"password_confirm\"] = null;\n }\n }\n\n doSubmit = async () => {\n this.setState({ errors: {}})\n\n try {\n const response = await userService.update(this.state.data);\n toast.success(\"Sikeres mentés!\");\n } catch (ex) {\n if (ex.response && ex.response.status === 422) {\n const errors = { ...this.state.errors };\n\n errors.email = ex.response.data.errors['Email'] || \"\";\n errors.name = ex.response.data.errors['Name'] || \"\";\n errors.password = ex.response.data.errors['Password'] || \"\";\n this.setState({ errors: errors });\n }\n }\n };\n\n changePasswordFields = () => {\n return (\n
\n {this.renderInput(\"password\", \"Jelszó\", \"password\")}\n {this.renderInput(\"password_confirm\", \"Jelszó megerősítés\", \"password\")}\n
\n )\n }\n\n handleProfileDelete = () => {\n let answer = prompt(\"Ha biztosan törölni szeretnéd a profiladat ird be az alábbi mezőbe a 'törlés' szót!\")\n if(answer === 'törlés') {\n userService.deleteUserProfile()\n auth.logout()\n window.location = \"/\"\n }\n }\n\n render() {\n return (\n
\n

Profilom

\n
\n {this.renderInput(\"name\", \"Név\")}\n {this.renderInput(\"email\", \"E-mail\")}\n {this.renderInput(\"invoice_name\", \"Számlázási név\")}\n {this.renderInput(\"invoice_zip\", \"Számlázási irányítószám\")}\n {this.renderInput(\"invoice_city\", \"Számlázási város\")}\n {this.renderInput(\"invoice_address\", \"Számlázási utca, hsz.\")}\n {this.renderInput(\"invoice_taxcode\", \"Adószám\")}\n {this.renderInput(\"invoice_email\", \"Elektronikus számlázási e-mail\")}\n {this.renderCheckbox(\"change_password\", \"Jelszó változtatás\")}\n\n {this.state.data.change_password ? this.changePasswordFields() : false }\n \n
\n {this.renderButton(\"Mentés\")}\n
\n Profilom törlése\n \n \n
\n );\n }\n}\n\nexport default Profile;\n","import React from \"react\";\n\nconst NotFound = () => {\n return

Not Found

;\n};\n\nexport default NotFound;\n","import React from \"react\";\nimport { NavLink } from \"react-router-dom\";\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport AppBar from '@material-ui/core/AppBar';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport Typography from '@material-ui/core/Typography';\nimport Button from '@material-ui/core/Button';\n\nconst styles = {\n root: {\n flexGrow: 1,\n },\n grow: {\n flexGrow: 1,\n },\n};\n\nconst NavBar = (props) => {\n const { classes } = props;\n const { user } = props;\n \n return (\n
\n \n \n \"Legter.hu\n \n {!user && (\n \n \n \n \n )}\n {user && (\n \n \n \n \n \n )}\n \n \n
\n );\n}\n\nNavBar.propTypes = {\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles)(NavBar);\n","import React from \"react\";\nimport { Redirect } from \"react-router-dom\";\nimport Form from \"./common/form\";\nimport Button from '@material-ui/core/Button';\nimport { NavLink } from \"react-router-dom\";\nimport auth from \"../services/authService\";\nimport { Typography } from \"@material-ui/core\";\n\nclass LoginForm extends Form {\n validate = false;\n\n state = {\n data: { email: \"\", password: \"\" },\n errors: {},\n error: \"\"\n };\n\n doSubmit = async () => {\n try {\n const { data } = this.state;\n await auth.login(data.email, data.password);\n\n const { state } = this.props.location;\n if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') {\n window.location = \"/w\"\n } else {\n window.location = state ? state.from.pathname : \"https://terkep.legter.hu\";\n }\n\n } catch (ex) {\n if (ex.response && ex.response.status === 401) {\n this.setState({ error: \"Hibás felsználónév vagy jelszó\" });\n } else {\n this.setState({ error: \"Átmeneti hiba, kérjük próbálja meg pár perc múlva!\" });\n }\n }\n };\n\n render() {\n if (auth.getCurrentUser()) return ;\n\n return (\n
\n

Belépés

\n\n {this.state.error === \"\" ? null : ({this.state.error})}\n
\n {this.renderInput(\"email\", \"E-mail\")}\n {this.renderInput(\"password\", \"Jelszó\", \"password\")}\n
\n {this.renderButton(\"Belépés\")}\n

\n \n
\n
\n );\n }\n}\n\nexport default LoginForm;\n","import http from \"./httpService\";\nimport { apiUrl } from \"../config\";\n\nfunction listPlans() {\n return http.get(apiUrl + \"/public-api/plans\");\n}\n\nfunction subscribe(plan) {\n return http.post(apiUrl + \"/api/subscriptions/create\", {\n \"plan_id\": parseInt(plan['ID']),\n \"redirect_url\": window.location.origin+\"/w/subscriptions\",\n });\n}\n\nfunction cancel(subscriptionID) {\n return http.post(apiUrl + \"/api/subscriptions/\"+String(subscriptionID)+\"/cancel\");\n}\n\nfunction listSubscriptions() {\n return http.get(apiUrl + \"/api/subscriptions\");\n}\n\nexport default {\n listPlans,\n listSubscriptions,\n cancel,\n subscribe,\n};\n","import React from \"react\";\nimport { recaptchaSiteKey } from \"../config\";\nimport {\n Card,\n CardContent,\n Typography,\n Radio,\n} from \"@material-ui/core\";\nimport Reaptcha from 'reaptcha';\n\nimport Form from \"./common/form\";\nimport userService from \"../services/userService\";\nimport auth from \"../services/authService\";\nimport http from \"../services/httpService\";\nimport subscriptionService from \"../services/subscriptionService\";\nimport authService from \"../services/authService\";\n\nclass RegisterForm extends Form {\n state = {\n data: {\n email: \"\",\n email_confirm: \"\",\n password: \"\",\n password_confirm: \"\",\n name: \"\",\n accept_terms: false,\n accept_privacy: false,\n invoice_name: \"\",\n invoice_city: \"\",\n invoice_zip: \"\",\n invoice_address: \"\",\n invoice_taxcode: \"\",\n invoice_email: \"\",\n },\n captchaResponse: \"\",\n errors: {},\n plans: [],\n selected_plan: null\n };\n \n /** @type {Reaptcha | null} */\n captchaRef = null;\n\n componentDidMount = () => {\n this.loadPlanList();\n };\n\n componentDidUpdate(prevProps, prevState) {\n let errors = this.state.errors;\n\n if(this.state.data.accept_terms !== prevState.data.accept_terms){\n if(this.state.data.accept_terms){\n errors[\"accept_terms\"] = null;\n this.setState({ errors });\n } else {\n errors[\"accept_terms\"] = 'A felhasználási feltételek elfogadása kötelező';\n this.setState({ errors });\n }\n }\n if(this.state.data && this.state.data.accept_privacy !== prevState.data.accept_privacy){\n if(this.state.data.accept_privacy){\n errors[\"accept_privacy\"] = null;\n this.setState({ errors });\n } else {\n errors[\"accept_privacy\"] = 'Az adatkezelési feltételek elfogadása kötelező';\n this.setState({ errors });\n }\n }\n\n if(this.state.data && this.state.data.password !== this.state.data.password_confirm){\n if(errors[\"password_confirm\"] == null) {\n errors[\"password_confirm\"] = 'Nem egyezik';\n this.setState({ errors });\n }\n } else {\n errors[\"password_confirm\"] = null;\n }\n \n if(this.state.data && this.state.data.email !== this.state.data.email_confirm){\n if(errors[\"email_confirm\"] == null) {\n errors[\"email_confirm\"] = 'Nem egyezik';\n this.setState({ errors });\n }\n } else {\n errors[\"email_confirm\"] = null;\n } \n }\n\n doSubmit = async () => {\n var plan = this.state.plans.filter(\n (plan) => plan[\"ID\"] === this.state.selected_plan\n )[0];\n\n if (authService.getCurrentUser() === null) {\n await this.doRegistrationSubmit(plan);\n } else {\n http.setJwt(auth.getJwt());\n await this.doProfileUpdateSubmit();\n var plan = this.state.plans.filter(\n (plan) => plan[\"ID\"] === this.state.selected_plan\n )[0];\n var subscribeResponse = await subscriptionService.subscribe(plan);\n document.location = subscribeResponse.data.payment_url;\n }\n };\n\n doProfileUpdateSubmit = async () => {\n\n try {\n await userService.update(this.state.data);\n } catch (ex) {\n if (ex.response && ex.response.status === 422) {\n const errors = { ...this.state.errors };\n this.setState({ errors: errors });\n await this.captchaRef.reset();\n }\n }\n };\n\n doRegistrationSubmit = async (plan) => {\n this.setState({\n errors: {}\n });\n\n const errors = {};\n\n if (!this.state.data.accept_terms) {\n errors.accept_terms = \"A felhasználási feltételek elfogadása kötelező\";\n this.setState({ errors });\n }\n\n if (!this.state.data.accept_privacy) {\n errors.accept_privacy = \"Az adatkezelési feltételek elfogadása kötelező\";\n this.setState({ errors });\n }\n\n if (!this.state.data.accept_terms || !this.state.data.accept_privacy) {\n return;\n }\n\n try {\n const response = await userService.register(\n this.state.data,\n this.state.captchaResponse\n );\n auth.loginWithJwt(response.data.token);\n http.setJwt(auth.getJwt());\n var subscribeResponse = await subscriptionService.subscribe(plan);\n document.location = subscribeResponse.data.payment_url;\n } catch (ex) {\n\n if (ex.response && ex.response.status === 422) {\n errors.email = ex.response.data.errors[\"Email\"];\n errors.password = ex.response.data.errors[\"Password\"];\n errors.name = ex.response.data.errors[\"Name\"];\n errors.captcha = ex.response.data.errors[\"Captcha\"];\n\n this.setState({ errors });\n await this.captchaRef.reset();\n }\n }\n };\n\n loadPlanList = async () => {\n const plans = (await subscriptionService.listPlans()).data.plans;\n this.setState({ plans: plans });\n if (plans.length > 0) {\n this.setState({ selected_plan: plans[0][\"ID\"] });\n }\n };\n\n renderPlan = (key, plan) => {\n return (\n
\n \n \n \n {\n this.setState({ selected_plan: event.target.value });\n }}\n value={plan[\"ID\"]}\n name=\"plan\"\n />\n {plan[\"Title\"]}\n \n\n \n\n
\n {plan[\"Fee\"]} Ft / hónap\n
\n
\n
\n
\n );\n };\n\n renderSubscribeFields = () => {\n return (\n
\n {this.renderInput(\"invoice_name\", \"Számlázási név\", \"text\", true)}\n {this.renderInput(\n \"invoice_zip\",\n \"Számlázási irányítószám\",\n \"text\",\n true\n )}\n {this.renderInput(\"invoice_city\", \"Számlázási város\", \"text\", true)}\n {this.renderInput(\n \"invoice_address\",\n \"Számlázási utca, hsz.\",\n \"text\",\n true\n )}\n {this.renderInput(\"invoice_taxcode\", \"Adószám\", \"text\", true)}\n Külföldi adóalany esetén kérjük vegye fel velünk a kapcsolatot. Magánszemélyként írjon 0-t!\n {this.renderInput(\n \"invoice_email\",\n \"Elektronikus számlázási e-mail\",\n \"text\",\n true\n )}\n\n {Object.keys(this.state.plans).map((key) =>\n this.renderPlan(key, this.state.plans[key])\n )}\n
\n );\n };\n\n captchaVerified = (response) => {\n this.setState({ captchaResponse: response, errors: {} });\n };\n\n render() {\n\n let errorMessages = Object.values(this.state.errors);\n let numberOfErrors = errorMessages.filter(Boolean);\n let isDisabled = numberOfErrors.length > 0;\n\n return (\n
\n

Regisztráció

\n
\n {this.renderInput(\"name\", \"Név\", \"text\", true)}\n {this.renderInput(\"email\", \"E-mail\", \"text\", true)}\n {this.renderInput(\"email_confirm\", \"E-mail megerősítés\", \"text\", true)}\n {this.renderInput(\"password\", \"Jelszó\", \"password\", true)}\n {this.renderInput(\"password_confirm\", \"Jelszó megerősítés\", \"password\", true)}\n {this.renderSubscribeFields()}\n {this.renderCheckbox(\n \"accept_terms\",\n \n Felhasználási feltételek elfogadása\n \n )}\n {this.renderCheckbox(\n \"accept_privacy\",\n \n Adatkezelési feltételek elfogadása\n \n )}\n
\n this.captchaRef = ref}\n sitekey={recaptchaSiteKey}\n onVerify={this.captchaVerified}\n />\n {this.state.errors.captcha && Captcha: {this.state.errors.captcha}}\n
\n {this.renderButton(\"Pro előfizetés megvásárlása és regisztráció\", isDisabled)}\n \n
\n );\n }\n}\n\nexport default RegisterForm;\n","import React from \"react\";\nimport { Redirect } from \"react-router-dom\";\nimport Form from \"./common/form\";\nimport auth from \"../services/authService\";\nimport { Typography } from \"@material-ui/core\";\n\nclass ForgotPasswordForm extends Form {\n state = {\n message: \"\",\n data: { email: \"\" },\n errors: {},\n error: \"\"\n };\n\n doSubmit = async () => {\n try {\n const { data } = this.state;\n const response = await auth.requestRequestForgotPasswordEmail(data.email);\n if(response.data.status == \"error\") {\n this.setState({ error: \"E-mail nem található!\" });\n this.setState({ message: \"\" });\n } else {\n this.setState({ message: \"A jelszó helyreállításához szükséges információkat e-mailben elküldtük!\" });\n this.setState({ error: \"\" });\n }\n } catch (ex) {\n this.setState({ error: \"Átmeneti hiba, kérjük próbálja meg pár perc múlva!\" });\n }\n };\n\n render() {\n return (\n
\n

Elfelejtett jelszó

\n\n {this.state.message === \"\" ? null : ({this.state.message})}\n\n {this.state.error === \"\" ? null : ({this.state.error})}\n
\n {this.renderInput(\"email\", \"E-mail\")}\n
\n {this.renderButton(\"Új jelszó kérés\")}\n
\n
\n );\n }\n}\n\nexport default ForgotPasswordForm;\n","import React from \"react\";\nimport { Redirect } from \"react-router-dom\";\nimport Form from \"./common/form\";\nimport auth from \"../services/authService\";\nimport { Typography } from \"@material-ui/core\";\nimport Button from '@material-ui/core/Button';\nimport { NavLink } from \"react-router-dom\";\n\nclass ForgotPasswordUpdateForm extends Form {\n state = {\n message: \"\",\n data: { password: \"\" },\n errors: {},\n error: \"\",\n showLoginButton: false\n };\n\n doSubmit = async () => {\n try {\n const { data } = this.state;\n const response = await auth.forgotPasswordUpdate(this.props.match.params.id, this.props.match.params.code, data.password);\n if(response.data.status == \"error\") {\n this.setState({ error: \"Hiba történt a jelszó frissítése közben!\" });\n this.setState({ message: \"\" });\n } else {\n this.setState({ message: \"Sikeres mentés!\", error: \"\", showLoginButton: true });\n }\n } catch (ex) {\n this.setState({ error: \"Átmeneti hiba, kérjük próbálja meg pár perc múlva!\" });\n }\n };\n\n render() {\n let errorMessages = Object.values(this.state.errors);\n let numberOfErrors = errorMessages.filter(Boolean);\n let isDisabled = numberOfErrors.length > 0;\n\n return (\n
\n

Új jelszó beállítás

\n\n {this.state.message === \"\" ? null : ({this.state.message})}\n\n {this.state.error === \"\" ? null : ({this.state.error})}\n\n {this.state.showLoginButton ? (): null}\n\n
\n {this.renderInput(\"password\", \"Új jelszó\", \"password\")}\n
\n {this.renderButton(\"Mentés\", isDisabled)}\n
\n
\n );\n }\n}\n\nexport default ForgotPasswordUpdateForm;\n","import { Component } from \"react\";\nimport auth from \"../services/authService\";\n\nclass Logout extends Component {\n componentDidMount() {\n auth.logout();\n\n window.location = \"/\";\n }\n\n render() {\n return null;\n }\n}\n\nexport default Logout;\n","import React from \"react\";\nimport { Route, Redirect } from \"react-router-dom\";\nimport auth from \"../../services/authService\";\n\nconst ProtectedRoute = ({ path, component: Component, render, ...rest }) => {\n return (\n {\n if (!auth.getCurrentUser())\n return (\n \n );\n return Component ? : render(props);\n }}\n />\n );\n};\n\nexport default ProtectedRoute;\n","import React from \"react\";\n\nconst Home = () => {\n return
;\n};\n\nexport default Home;\n","import React from \"react\";\nimport Form from \"../components/common/form\";\nimport subscriptionService from \"../services/subscriptionService\";\nimport {\n Card,\n CardContent,\n Typography,\n CardActions,\n Button,\n} from \"@material-ui/core\";\nimport qs from \"query-string\";\n\nclass Subscriptions extends Form {\n state = {\n data: {\n plans: {},\n },\n lastPaymentStatus: \"\",\n lastPaymentID: \"\",\n errors: {},\n interval: null,\n };\n\n componentDidMount = () => {\n this.loadData();\n let interval = setInterval(this.loadData, 3000);\n this.setState({ interval: interval });\n this.setLastPaymentStatus();\n };\n\n componentWillUnmount = () => {\n clearInterval(this.state.interval);\n this.setState({ interval: null });\n };\n\n setLastPaymentStatus = () => {\n const r = qs.parse(this.props.location.search).r;\n if (r !== undefined) {\n const parsed = JSON.parse(atob(r));\n const status = String(parsed[\"e\"]).toLowerCase();\n this.setState({ lastPaymentStatus: status, lastPaymentID: parsed[\"t\"] });\n }\n };\n\n loadData = async () => {\n let data = { ...this.state.data };\n const plans = (await subscriptionService.listPlans()).data.plans;\n const subscriptions = (await subscriptionService.listSubscriptions()).data\n .subscriptions;\n\n data.plans = plans.map((p) => {\n p[\"ActiveSubscription\"] = subscriptions.find(\n (s) => s[\"plan_id\"] == p[\"ID\"] && s[\"active\"]\n );\n p[\"PendingSubscription\"] = subscriptions.find(\n (s) =>\n s[\"plan_id\"] == p[\"ID\"] &&\n !s[\"active\"] &&\n s[\"processing_status\"] == \"pending\"\n );\n return p;\n });\n\n this.setState({ data });\n };\n\n renderLastPaymentStatus = (status, transactionID) => {\n return (\n \n \n Az fizetés eredménye:\n
\n {status == \"success\" && (\n
\n Sikeres tranzakció.\n
\n
\n SimplePay tranzakció azonosító: {transactionID}\n
\n )}\n {status == \"fail\" && (\n
\n Sikertelen tranzakció\n
\n
\n SimplePay tranzakció azonosító: {transactionID}
\n Kérjük, ellenőrizze a tranzakció során megadott adatok\n helyességét. Amennyiben minden adatot helyesen adott meg, a\n visszautasítás okának kivizsgálása érdekében kérjük,\n szíveskedjen kapcsolatba lépni kártyakibocsátó bankjával.\n
\n )}\n {status == \"timeout\" && (\n
\n Ön túllépte a tranzakció elindításának lehetséges maximális\n idejét\n
\n )}\n {status == \"cancel\" &&
Ön megszakította a fizetést
}\n
\n
\n
\n );\n };\n\n renderPlan = (key, plan) => {\n return (\n
\n \n \n \n {plan[\"Title\"]}\n \n \n \n {plan[\"Fee\"]} Ft\n \n \n \n {plan[\"ActiveSubscription\"] != undefined\n ? this.renderPlanStatus(plan)\n : this.renderPlanSubscribe(plan)}\n \n \n
\n );\n };\n\n renderPlanStatus = (plan) => {\n return (\n
\n Az előfizetés aktív! Fizetve eddig:{\" \"}\n {plan[\"ActiveSubscription\"][\"expire_at\"]}
\n
\n {plan[\"ActiveSubscription\"][\"canceled\"] ? (\n this.subscribeToPlan(plan)}\n >\n Újra előfizetek\n \n ) : (\n {\n if(window.confirm(\"Biztosan megszakítod előfizetésed automatikus megújítását?\")) {\n this.cancelPlan(plan);\n }\n }}\n >\n A szolgáltatás lemondása\n \n )}\n
\n );\n };\n\n renderPlanSubscribe = (plan) => {\n return (\n
\n {plan[\"PendingSubscription\"] && (\n
A fizetés feldolgozása folyamatban!
\n )}\n {!plan[\"PendingSubscription\"] && (\n
\n this.subscribeToPlan(plan)}\n >\n Előfizetek\n \n
\n )}\n
\n );\n };\n\n cancelPlan = (plan) => {\n subscriptionService.cancel(plan[\"ActiveSubscription\"][\"id\"]);\n this.loadData();\n };\n\n subscribeToPlan = async (plan) => {\n const resp = await subscriptionService.subscribe(plan);\n document.location = resp.data.payment_url;\n };\n\n render() {\n return (\n
\n

Előfizetés

\n\n {this.state.lastPaymentStatus != \"\"\n ? this.renderLastPaymentStatus(\n this.state.lastPaymentStatus,\n this.state.lastPaymentID\n )\n : null}\n\n {Object.keys(this.state.data.plans).map((key) =>\n this.renderPlan(key, this.state.data.plans[key])\n )}\n
\n );\n }\n}\n\nexport default Subscriptions;\n","import React, { Component } from \"react\";\nimport { Route, Redirect, Switch } from \"react-router-dom\";\nimport { ToastContainer } from \"react-toastify\";\nimport Profile from \"./components/profile\";\nimport NotFound from \"./components/notFound\";\nimport NavBar from \"./components/navBar\";\nimport LoginForm from \"./components/loginForm\";\nimport RegisterForm from \"./components/registerForm\";\nimport ForgotPasswordForm from \"./components/forgotPasswordForm\";\nimport forgotPasswordUpdateForm from \"./components/forgotPasswordUpdateForm\";\nimport Logout from \"./components/logout\";\nimport ProtectedRoute from \"./components/common/protectedRoute\";\nimport Home from \"./components/home\";\nimport Subscriptions from \"./components/subscriptions\";\nimport auth from \"./services/authService\";\nimport \"react-toastify/dist/ReactToastify.css\";\nimport { withStyles } from \"@material-ui/core/styles\";\nimport \"./App.css\";\nimport { MuiThemeProvider, createMuiTheme } from \"@material-ui/core/styles\";\nimport { apiUrl } from \"./config\";\n\nconst styles = (theme) => ({\n container: {\n paddingRight: 15,\n paddingLeft: 15,\n marginRight: \"auto\",\n marginLeft: \"auto\",\n\n [theme.breakpoints.up(\"md\")]: {\n // medium: 960px or larger\n width: 920,\n },\n [theme.breakpoints.up(\"lg\")]: {\n // large: 1280px or larger\n width: 1170,\n },\n [theme.breakpoints.up(\"xl\")]: {\n // extra-large: 1920px or larger\n width: 1366,\n },\n },\n});\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n main: \"#00BCD4\",\n },\n },\n});\n\nclass App extends Component {\n state = {};\n\n componentDidMount() {\n const user = auth.getCurrentUser();\n this.setState({ user });\n }\n\n render() {\n const { user } = this.state;\n\n return (\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n \n \n \n  | \n \n ÁSZF\n \n  | \n \n Süti szabályzat\n \n  | \n \n Adatvedelmi tájékoztató\n \n
\n
\n
\n \n
\n
\n );\n }\n}\n\nexport default withStyles(styles)(App);\n","// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register() {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://goo.gl/SC7cgQ'\n );\n });\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport \"./index.css\";\nimport App from \"./App\";\nimport registerServiceWorker from \"./registerServiceWorker\";\nimport \"font-awesome/css/font-awesome.css\";\n\nReactDOM.render(\n \n \n ,\n document.getElementById(\"root\")\n);\nregisterServiceWorker();\n"],"sourceRoot":""}