{"version":3,"sources":["Components/Header/headerLogo.png","Components/InputFieldSet/InputFieldSet.js","Components/repository/globals.js","Components/repository/Cookies.js","Components/LanguageSelector.js","Components/LoggedUser/LoggedUser-languageElements.js","Components/repository/LanguageElementsHandler.js","Components/LoggedUser/LoggedUser.js","Components/TokenExpirationMessage/TokenExpirationMessage-languageElements.js","Components/repository/wakeUp.js","Components/TokenExpirationMessage/TokenExpirationMessage.js","Components/Header/Header.js","Components/HeaderLine/HeaderLine-languageElements.js","Components/HeaderLine/pictures/invoices.svg","Components/HeaderLine/pictures/invoices_selected.svg","Components/HeaderLine/pictures/stocks.svg","Components/HeaderLine/pictures/stocks_selected.svg","Components/HeaderLine/pictures/tracking.svg","Components/HeaderLine/pictures/tracking_selected.svg","Components/HeaderLine/pictures/settings.svg","Components/HeaderLine/pictures/settings_selected.svg","Components/HeaderLine/pictures/contact.svg","Components/HeaderLine/pictures/contact_selected.svg","Components/HeaderLine/pictures/PictHandler.js","Components/HeaderLine/HeaderLine.js","Components/Infobox/headerLogo.png","Components/Infobox/Infobox.js","Pages/Greeting/PageGreeting-languageElements.js","Pages/Greeting/PageGreeting.js","Components/FormBorder/FormBorder.js","Components/FormBorder/headerLogo.png","Components/FirstLoginForm/FirstLoginForm-languageElements.js","Components/repository/LoginData.js","Components/repository/jwt.js","Components/FirstLoginForm/FirstLoginForm.js","Pages/FirstLogin/PageFirstLogin-languageElements.js","Pages/FirstLogin/PageFirstLogin.js","Pages/DismissRegistration/PageDismissRegistration-languageElements.js","Pages/DismissRegistration/PageDismissRegistration.js","Components/LoginForm/LoginForm-languageElements.js","Components/LoginForm/LoginForm.js","Pages/Login/PageLogin.js","Components/repository/FieldFormatters.js","Components/DataGrid/DataGrid.js","Components/Filters/FilterField.js","Components/Filters/clearAll.svg","Components/Filters/Filters.js","Components/ExcelExport/ExcelExport-icon.svg","Components/ExcelExport/ExcelExport.js","Components/GridReportIdeiglenes/GridReportIdeiglenes.js","Components/ReportInvoices/ReportInvoices-languageElements.js","Components/ReportInvoices/file_download_black_24dp.svg","Components/ReportInvoices/x.svg","Components/ReportInvoices/ReportInvoices-FunctionCell.js","Components/repository/base64ToBlob.js","Components/ReportInvoices/ReportInvoices.js","Pages/Invoices/PageInvoices.js","Components/HamMenu/HamMenuItem/HamMenuItem.js","Components/HamMenu/HamMenu.js","Pages/Warehouse/WarehouseHamMenu/WarehouseHamMenu-languageElements.js","Pages/Warehouse/WarehouseHamMenu/WarehouseHamMenu.js","Pages/Warehouse/PageWarehouse.js","Components/UserDataForm/UserDataForm-languageElements.js","Components/UserDataForm/UserDataForm.js","Pages/Settings/PageSettings-languageElements.js","Pages/Settings/PageSettings.js","Components/ReportStocks/ReportStocks-languageElements.js","Components/ReportStocks/ReportStocks.js","Pages/Warehouse/PageStocks/PageStocks.js","Components/ReportJournal/ReportJournal-languageElements.js","Components/ReportJournal/file_download_black_24dp.svg","Components/ReportJournal/x.svg","Components/ReportJournal/ReportJournal-FunctionCell.js","Components/ReportJournal/ReportJournal.js","Pages/Warehouse/PageJournal/PageJournal.js","Components/ReportDeliveries/ReportDeliveries-languageElements.js","Components/ReportDeliveries/file_download_black_24dp.svg","Components/ReportDeliveries/x.svg","Components/ReportDeliveries/ReportDeliveries-FunctionCell.js","Components/ReportDeliveries/ReportDeliveries.js","Pages/Tracking/PageTracking.js","App.js","reportWebVitals.js","index.js"],"names":["InputFieldSet","_ref","labelArea","explanationTextArea","linkArea","input","options","divError","errors","fieldValues","handleInputChange","handleInputBlur","type","name","labelText","explanationText","link","linkText","required","reference","optionList","divErrorClass","undefined","_jsx","htmlFor","className","children","href","rel","target","concat","map","option","value","text","id","onChange","onBlur","ref","_jsxs","checked","e","replaceAll","str","toFind","ReplaceWith","split","join","Cookies","out","document","cookie","c","JSON","stringify","gl","parse","key","expireDateUTC","valueWhenNull","arguments","length","trim","Date","toUTCString","LanguageSelector","props","refLangSelector","useRef","setFieldValues","useState","defaultLanguage","setLanguage","newLanguage","set","onLanguageChanged","handleLanguageChanged","useEffect","cookies","get","lang","languages","languageElements","items","hu","de","en","LanguageElementsHandler","constructor","currentLanguage","this","_this$languageElement","_this$languageElement2","_this$languageElement3","element","LoggedUser","_props$loginData","languageElementsHandler","language","onClick","onLogout","loginData","user","email","wakeUp","fetch","process","method","mode","cache","catch","error","console","TokenExpirationMessage","tokenStatus","setTokenStatus","async","onExtendValidity","headers","token","getToken","then","data","status","Error","json","jsonData","onExtendToken","message","timerOfExpiresShortly","timerOfValidity","userLevel","_props$loginData2","currentDate","validUntil","valid","getTime","setTimerShortly","setTimeout","getLastActivity","clearTimeout","role","Header","src","headerLogo","alt","newToken","PictHandler","img","pictureCode","invoices","stocks","tracking","settings","contact","invoices_selected","stocks_selected","tracking_selected","settings_selected","contact_selected","HeaderLine","selectedPage","navbar","navItems","tokenData","linkStyle","width","item","style","Link","to","onHamClicked","MenuOutlinedIcon","fontSize","Infobox","height","info","PageGreeting","infobox","_Fragment","left","top","FormBorder","form","LoginData","lastActivity","setLastActivity","getDataFromToken","base64","replace","jsonPayload","decodeURIComponent","atob","charCodeAt","toString","slice","parseJwt","getUserLevel","_this$tokenData","_this$tokenData$user","FirstLoginForm","useParams","formWasValidated","setFormWasValidated","dataStatus","setDataStatus","setErrors","password","passwordAgain","gdprAccepted","termsOfServiceAccepted","emailAnnouncementsAccepted","newsletterAccepted","references","formAlertText","setFormAlertText","formAlertType","setFormAlertType","validators","isNotEmpty","validEmail","validator","isEmail","passwordStrongEnough","test","passwordAndPasswordAgainSame","chkboxChecked","errorTypes","fieldName","previousErrors","validateField","isValid","current","setCustomValidity","validationType","validatorFn","Object","entries","errorText","onSubmit","preventDefault","isFormValid","keys","body","newLogin","onLogin","codeOfMessage","typeOfAlert","noValidate","Redirect","PageFirstLogin","regForm","newLoginData","PageDismissRegistration","statusOfDelete","setStatusOfDelete","LoginForm","serverState","setServerState","login","pass","portalOwnersId","PageLogin","FieldFormatters","yearStr","substr","monthStr","dayStr","numberOfDigits","isNaN","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","format","DataGrid","columnTypes","date","valueFormatter","params","dateFormatter","filter","filterParams","debounceMs","buttons","comparator","filterLocalDateAtMidnight","cellValue","filterLocalDateAtMidnightInt","getFullYear","getMonth","getDate","cellValueInt","parseInt","d1","d2","float","numberFormatter","headerClass","cellStyle","textAlign","float4","boolean","default","gridColumns","columns","col","fieldCellRenderer","cellRenderers","find","renderer","field","cellRenderer","cellRendererParams","languageColumns","forEach","languageItems","objectOfLanguageItems","i","languageItem","gridData","row","_origData","newRow","languageValue","AgGridReact","rowData","frameworkComponents","AgGridColumn","headerName","sortable","resizable","FilterField","filterField","filterType","description","Filters","_props$reportParams","selectedFilters","reportParams","filters","column","Array","from","querySelectorAll","pictureClearAll","ExcelExport","workbook","Sheets","xlsx","utils","json_to_sheet","SheetNames","excelBuffer","write","bookType","Blob","FileSaver","saveAs","ExcelExportIcon","GridReportIdeiglenes","report","accordionData","setReportParams","dataLoadingState","setDataLoadingState","setGridData","setGridColumns","loggedEmail","showDataIfNotCollapsed","classList","contains","select","selectedColumns","sqlFromIdeiglenes","where","getFilter","orderby","sqlOrderBy","dateValue","sqlDate","sqlDate2359","result","dataset","sql","reportid","columnName","columnDef","ReportInvoicesFunctionCell","Component","super","btnClickedHandler","bind","renderStatus","newStatus","forceUpdate","clicked","render","hasDocuments","xIcon","downloadIcon","base64ToBlob","b64Data","contentType","sliceSize","byteCharacters","byteArrays","offset","byteNumbers","byteArray","Uint8Array","push","blob","ReportInvoices","dataEndpoint","reportId","invId","invid","documents","doc","imageData","fileName","err","downloadFiles","PageReports","HamMenuItem","itemId","isSelected","redirected","setRedirected","HamMenu","show","menuItems","WarehouseHamMenu","PageWarehouse","hamShowed","showHam","UserDataForm","showMessageShortly","PageSettings","ReportStocks","ReportJournalFunctionCell","ReportJournals","wrhsId","reportJournalFunctionCell","wrhsid","ReportJournal","ReportDeliveriesFunctionCell","ReportDeliveries","ordId","reportDeliveriesFunctionCell","ordid","PageTracking","App","setLoginData","setActivity","onMouseDown","onKeyDown","Router","Switch","Route","exact","path","PageInvoices","PageStocks","PageJournal","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","React","StrictMode","getElementById"],"mappings":"4lBAAe,G,MAAA,IAA0B,wC,OCA1B,SAASA,EAAaC,GAG/B,IAEAC,EACAC,EACAC,EACAC,EACAC,EACAC,GATJ,OACEC,EAAM,YAAEC,EAAW,kBAAEC,EAAiB,gBAAEC,EAAe,KAAEC,EAAI,KAAEC,EAAI,UAAEC,EAAS,gBAAEC,EAAe,KAAEC,EAAI,SAAEC,EAAQ,SAAEC,EAAQ,UAAEC,EAAS,WAAEC,GACvInB,EAQGoB,EAAgB,GAmBpB,YAjBkBC,IAAdR,IACFZ,EAAYqB,cAAA,SAAOC,QAASX,EAAMY,UAAU,aAAYC,SAAEZ,IACtDC,IACFZ,EAAsBoB,cAAA,SAAOE,UAAU,6BAA4BC,SAAEX,KAEnEC,IACFZ,EAAWmB,cAAA,KAAGI,KAAMX,EAAMY,IAAI,aAAaC,OAAO,SAAQH,SAAGT,GAAuBD,WAIzEM,IAAXd,IACFa,EAAa,QAAAS,OAA4B,KAAjBtB,EAAOK,GAAe,gBAAkB,IAChEN,EAAWgB,cAAA,OAAKE,UAAU,mBAAkBC,SACzClB,EAAOK,MAIJD,GACN,IAAK,cACgBU,IAAfF,IACFd,EAAUc,EAAWW,KAAIC,GACfT,cAAA,UAAuCU,MAAOD,EAAOC,MAAMP,SAAEM,EAAOE,MAAI,UAAAJ,OAAjDE,EAAOC,WAI1C5B,EAAQkB,cAAA,UACNE,UAAU,cACVU,GAAItB,EACJA,KAAMA,EACNoB,MAAOxB,EAAYI,GACnBuB,SAAU1B,EACV2B,OAAQ1B,EACRO,SAAUA,EACVoB,IAAKnB,EAAUO,SAEdpB,IAEH,MAEF,IAAK,QAEDD,OADiBiB,IAAfF,EACMG,cAAA,OAAKe,IAAKnB,EAAUO,SAAA,oDAEpBH,cAAA,OAAKe,IAAKnB,EAAWM,UAAU,cAAaC,SACjDN,EAAWW,KAAIC,GAEZO,eAAA,OAAKd,UAAU,aAAYC,SAAA,CACzBH,cAAA,SACEE,UAAU,mBACVb,KAAK,QACLC,KAAMA,EACNoB,MAAOD,EAAOC,MACdE,GAAE,GAAAL,OAAKjB,EAAI,KAAAiB,OAAIE,EAAOnB,MACtB2B,QAAU/B,EAAYI,KAAUmB,EAAOC,MACvCG,SAAWK,IACT/B,EAAkB,CAChBmB,OAAQ,CACNhB,KAAMA,EACNoB,MAAOD,EAAOC,YAMtBV,cAAA,SAAOE,UAAU,mBAAmBD,QAASQ,EAAOnB,KAAKa,SACtDM,EAAOE,SAnBqBF,EAAOC,WA2BhD,MAEF,IAAK,WACH5B,EAAQkB,cAAA,YACNE,UAAU,eACVU,GAAItB,EACJA,KAAMA,EACNoB,MAAOxB,EAAYI,GACnBuB,SAAU1B,EACV2B,OAAQ1B,EACRO,SAAUA,EACVoB,IAAKnB,EAAUO,SAEdpB,IAEH,MAEF,IAAK,WACHD,EAAQkB,cAAA,SACNE,UAAU,mBACVU,GAAItB,EACJA,KAAMA,EACND,KAAMA,EACNwB,SAAU1B,EACV2B,OAAQ1B,EACRO,SAAUA,EACVoB,IAAKnB,EACLqB,QAAU/B,EAAYI,GAAOa,SAE5BpB,IAEH,MAEF,QACED,EAAQkB,cAAA,SACNX,KAAMA,EACNa,UAAU,eACVU,GAAItB,EACJA,KAAMA,EACNoB,MAAOxB,EAAYI,GACnBuB,SAAU1B,EACV2B,OAAQ1B,EACRO,SAAUA,EACVoB,IAAKnB,IAKX,MAAa,aAATP,EAEA2B,eAAA,OAAKd,UAAWJ,EAAcK,SAAA,CAC3BrB,EACAH,EACAC,EACAC,EACAG,KAKM,UAATK,EAEA2B,eAAA,OAAKd,UAAWJ,EAAcK,SAAA,CAC3BrB,EACAE,KAMLgC,eAAA,OAAKd,UAAWJ,EAAcK,SAAA,CAC3BxB,EACAC,EACAE,EACAE,KC5JA,SAASmC,EAAWC,EAAKC,EAAQC,GACpC,OAAOF,EAAIG,MAAMF,GAAQG,KAAKF,GCHnB,MAAMG,EACnB,aACE,IAAIC,EAAMC,SAASC,OAEnB,OAAKF,GAILA,EAAMC,SAASC,OAAOL,MAAM,KAAKf,KAAKqB,GAAMA,EAAEN,MAAM,OACpDG,EAAMI,KAAKC,UAAUL,GACrBA,EAAMM,EAAcN,EAAK,MAAO,MAChCA,EAAMM,EAAcN,EAAK,MAAO,QAChCA,EAAMM,EAAcN,EAAK,MAAO,MAChCA,EAAMM,EAAcN,EAAK,KAAM,KAC/BA,EAAMM,EAAcN,EAAK,KAAM,KAC/BA,EAAMI,KAAKG,MAAMP,GAEVA,GAZE,GAeX,WAAWQ,EAAKxB,EAAOyB,GAChBD,IAILP,SAASC,OAAM,GAAArB,OAAM2B,EAAG,KAAA3B,OD3BrB,SAAgBI,GAAuC,IAAjCyB,EAAaC,UAAAC,OAAA,QAAAvC,IAAAsC,UAAA,GAAAA,UAAA,GAAG,GACzC,OAAiB,OAAT1B,QAA0BZ,IAATY,EAAsByB,EAAgBzB,EC0BnCqB,CAAUtB,GAAO6B,OAAM,cAAAhC,OAChD4B,GAAgB,IAAIK,KAAK,KAAM,EAAG,GAAGC,cAA6B,YAIvE,cAAcP,GACPA,IAILP,SAASC,OACP,GAAArB,OAAG2B,EAAG,iBAAkB,IAAIM,KAAK,KAAM,EAAG,GAAGC,gBClCpC,SAASC,EAAiBC,GACrC,MAAMC,EAAkBC,oBACjB3D,EAAa4D,GAAkBC,mBAAS,CAC3CL,iBAAkBC,EAAMK,kBAG5B,SAASC,EAAYC,GACbhE,EAAYwD,mBAAqBQ,IACjCJ,EAAe,CACXJ,iBAAkBQ,IAEtBzB,EAAQ0B,IAAI,OAAQD,GACpBP,EAAMS,kBAAkBF,IAIhC,SAASG,EAAsBnC,GAC3B+B,EAAY/B,EAAEZ,OAAOI,OAUzB,OAPA4C,qBAAU,KACN,IAAIC,EAAU9B,EAAQ+B,WACDzD,IAAjBwD,EAAQE,MACRR,EAAYM,EAAQE,QAEzB,IAGCzD,cAAA,OAAAG,SACIH,cAACvB,EAAa,CACVmB,UAAWgD,EACXtD,KAAK,mBACLD,KAAK,SACLH,YAAaA,EACbW,WAAY8C,EAAMe,UAClBtE,gBAAiBiE,EACjBlE,kBAAmBkE,EACnB1D,UAAU,M,MCzCnB,MAAMgE,EAAmB,CAC9BC,MAAO,CACL,iBAAkB,CAChBC,GAAI,gBACJC,GAAI,SACJC,GAAI,YCLK,MAAMC,EACjBC,YAAYN,EAAkBO,GAC1BC,KAAKR,iBAAmBA,EACxBQ,KAAKD,gBAAkBA,EAG3BV,IAAItB,GAAM,IAADkC,EAAAC,EAAAC,EACL,IAAIC,EAA+B,QAAxBH,EAAGD,KAAKR,wBAAgB,IAAAS,GAAW,QAAXC,EAArBD,EAA+B,aAAC,IAAAC,GAAO,QAAPC,EAAhCD,EAAmCnC,UAAI,IAAAoC,OAAlB,EAArBA,EAA0CH,KAAKD,iBAC7D,YAAmBnE,IAAZwE,EAAqB,OAAAhE,OAAU2B,GAAQqC,GCJvC,SAASC,EAAW7B,GAAQ,IAAD8B,EACxC,MAAMC,EAA0B,IAAIV,EAClCL,EACAhB,EAAMgC,UAOR,OACE3D,eAAA,OAAKJ,GAAG,aAAaV,UAAU,kBAAkB0E,QALnD,WACIjC,EAAMkC,YAI2D1E,SAAA,CACjEH,cAAA,OAAKY,GAAG,yBACP8D,EAAwBlB,IAAI,kBAC7BxD,cAAA,QAAAG,SAAsB,QAAtBsE,EAAO9B,EAAMmC,iBAAS,IAAAL,OAAA,EAAfA,EAAiBjB,MAAMuB,KAAKC,W,MClBlC,MAAMrB,EAAmB,CACxB,MAAS,CACL,0BAA2B,CACvB,GAAM,sDACN,GAAM,+BACN,GAAM,yCAGV,aAAc,CACV,GAAM,yBACN,GAAM,gCACN,GAAM,2BCXP,SAASsB,IAEpB,OAAOC,MAAM,GAAD3E,OAAI4E,mFAAkC,kBAAkB,CAChEC,OAAQ,MACRC,KAAM,OACNC,MAAO,aACRC,OAAOC,IACNC,QAAQD,MAAMA,MCDP,SAASE,EAAuB/C,GAC7C,MAAM+B,EAA0B,IAAIV,EAClCL,EACAhB,EAAMgC,WAGDgB,EAAaC,GAAkB7C,mBAAS,aAE/C8C,eAAeC,EAAiB5E,GAC9BgE,MAAM,GAAD3E,OAAI4E,mFAAkC,UAAU,CACnDC,OAAQ,MACRC,KAAM,OACNC,MAAO,WACPS,QAAS,CACP,eAAgB,mBAChBC,MAAOrD,EAAMmC,UAAUmB,cAGxBC,MAAMC,IACL,GAAoB,MAAhBA,EAAKC,OACP,MAAMC,MAAM,WAEd,OAAOF,EAAKG,UAEbJ,MAAMK,IACL5D,EAAM6D,cAAcD,EAASP,UAE9BT,OAAOC,IACNC,QAAQD,MAAMA,GACd7C,EAAMkC,cAiEZ,IAAI4B,EAuBJ,OApFAnD,qBAAU,KAAO,IAADmB,EACd,IAAIiC,EACAC,EAEA5B,EAAsB,QAAlBN,EAAG9B,EAAMmC,iBAAS,IAAAL,OAAA,EAAfA,EAAiBjB,MAAMuB,KAElC,GAAwB,WAAhB,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAM6B,WAAV,CAKA,GAAK7B,EAEE,CAAC,IAAD8B,EACL,MAAMC,EAAc,IAAItE,KAClBuE,GACW,QAAfF,EAAAlE,EAAMmC,iBAAS,IAAA+B,OAAA,EAAfA,EAAiBrD,MAAMwC,MAAMgB,OAAQF,EAAYG,UAEnD,QAAmBlH,IAAfgH,GAA4BA,EAAa,IAC3CnB,EAAe,iBACV,CACL,IAAIsB,GAAkB,EAElBH,EAAa,KACf9B,IAASiB,MAAK,KACZN,EAAe,uBAGjBA,EAAe,SACfsB,GAAkB,GAEpBP,EAAkBQ,YAAW,KAC3BxE,EAAM6D,cAAc,QACnBO,EAAa,KAEZG,IACFR,EAAwBS,YAAW,MACf,IAAI3E,MACRyE,UAAYtE,EAAMmC,UAAUsC,kBAAoB,IAC5DtB,IAGFb,IAASiB,MAAK,KACZN,EAAe,wBAEhBmB,EAAa,aAjCpBnB,EAAe,aAsCjB,MAAO,UACyB7F,IAA1B2G,GACFW,aAAaX,QAGS3G,IAApB4G,GACFU,aAAaV,IAjDff,EAAe,WAoDhB,CAACjD,EAAMmC,YAIU,oBAAhBa,IACFc,EACEzF,eAAA,OACEd,UAAU,kDACVoH,KAAK,QAAOnH,SAAA,CAEZH,cAAA,UAAAG,SACGuE,EAAwBlB,IAAI,6BAE/BxD,cAAA,UACEX,KAAK,SACLa,UAAU,oCACV,aAAW,QACX0E,QAAU1D,GAAM4E,IAAoB3F,SAEnCuE,EAAwBlB,IAAI,oBAM9BxD,cAAA,OAAKE,UAAU,2BAA0BC,SAAEsG,ICrHrC,SAASc,EAAO5E,GAAQ,IAAD8B,EAKpC,SAASI,IACPlC,EAAMkC,WAGR,OACE7D,eAAA,UAAAb,SAAA,CACEa,eAAA,OAAKd,UAAU,cAAaC,SAAA,CAC1BH,cAAA,OAAKE,UAAU,YAAWC,SACxBH,cAAA,OAAKE,UAAU,cAAcsH,IAAKC,EAAYC,IAAI,WAGpD1G,eAAA,OAAKd,UAAU,gCAA+BC,SAAA,EAC5B,QAAfsE,EAAA9B,EAAMmC,iBAAS,IAAAL,OAAA,EAAfA,EAAiBjB,MAAMuB,OACtB/E,cAACwE,EAAU,CACTG,SAAUhC,EAAMgC,SAChBG,UAAWnC,EAAMmC,UACjBD,SAAUA,IAId7E,cAAC0C,EAAgB,CACfgB,UAAW,CACT,CAAEhD,MAAO,KAAMC,KAAM,MACrB,CAAED,MAAO,KAAMC,KAAM,MACrB,CAAED,MAAO,KAAMC,KAAM,OAEvBqC,gBAAiBL,EAAMgC,SACvBvB,kBAAoBF,KA/B9B,SAA2BA,GACzBP,EAAMS,kBAAkBF,GA+BdE,CAAkBF,YAM1BlD,cAAC0F,EAAsB,CACbf,SAAUhC,EAAMgC,SAChBG,UAAWnC,EAAMmC,UACjB0B,cAAemB,GAAYhF,EAAM6D,cAAcmB,GAC/C9C,SAAUA,O,YCjDnB,MAAMlB,EAAmB,CAC9BC,MAAO,CACL,wBAAyB,CACvBC,GAAI,mBACJC,GAAI,kBACJC,GAAI,mBAGN,mCAAoC,CAClCF,GAAI,iBACJC,GAAI,YACJC,GAAI,eAGN,0BAA2B,CACzBF,GAAI,0BACJC,GAAI,kBACJC,GAAI,eAGN,qBAAsB,CACpBF,GAAI,mCACJC,GAAI,0BACJC,GAAI,2BAGN,wBAAyB,CACvBF,GAAI,iBACJC,GAAI,eACJC,GAAI,YAGN,yBAA0B,CACxBF,GAAI,YACJC,GAAI,QACJC,GAAI,aAGN,gCAAiC,CAC/BF,GAAI,8BACJC,GAAI,mBACJC,GAAI,mBAGN,iCAAkC,CAChCF,GAAI,sBACJC,GAAI,gBACJC,GAAI,uBAGN,sBAAuB,CACrBF,GAAI,8BACJC,GAAI,mBACJC,GAAI,mBAGN,wBAAyB,CACvBF,GAAI,YACJC,GAAI,aACJC,GAAI,WAGN,wBAAyB,CACvBF,GAAI,uBACJC,GAAI,gBACJC,GAAI,YAGN,uBAAwB,CACtBF,GAAI,YACJC,GAAI,UACJC,GAAI,aCvEK,UAA0B,qCCA1B,MAA0B,8CCA1B,MAA0B,mCCA1B,MAA0B,4CCA1B,MAA0B,qCCA1B,MAA0B,8CCA1B,MAA0B,qCCA1B,MAA0B,8CCA1B,MAA0B,oCCA1B,MAA0B,6CCW1B,SAAS6D,EAAYjF,GAChC,IAAIkF,EAEJ,OAAQlF,EAAMmF,aACV,IAAK,WACDD,EAAM7H,cAAA,OAAKwH,IAAKO,EAAUL,IAAI,aAC9B,MAEJ,IAAK,YACDG,EAAM7H,cAAA,OAAKwH,IAAKQ,EAAQN,IAAI,WAC5B,MAEJ,IAAK,WACDG,EAAM7H,cAAA,OAAKwH,IAAKS,EAAUP,IAAI,aAC9B,MAEJ,IAAK,WACDG,EAAM7H,cAAA,OAAKwH,IAAKU,EAAUR,IAAI,aAC9B,MAEJ,IAAK,UACDG,EAAM7H,cAAA,OAAKwH,IAAKW,EAAST,IAAI,YAC7B,MAEJ,IAAK,oBACDG,EAAM7H,cAAA,OAAKwH,IAAKY,EAAmBV,IAAI,sBACvC,MAEJ,IAAK,qBACDG,EAAM7H,cAAA,OAAKwH,IAAKa,EAAiBX,IAAI,oBACrC,MAEJ,IAAK,oBACDG,EAAM7H,cAAA,OAAKwH,IAAKc,EAAmBZ,IAAI,sBACvC,MAEJ,IAAK,oBACDG,EAAM7H,cAAA,OAAKwH,IAAKe,EAAmBb,IAAI,sBACvC,MAEJ,IAAK,mBACDG,EAAM7H,cAAA,OAAKwH,IAAKgB,EAAkBd,IAAI,qBACtC,MAEJ,QACIG,EAAM7H,cAAA,QAAAG,SAAA,qCAAAI,OAA4CoC,EAAMmF,eAGhE,OAAOD,E,qBCpDI,SAASY,EAAW9F,GAAQ,IAAD8B,EACxC,MAAMC,EAA0B,IAAIV,EAClCL,EACAhB,EAAMgC,UAEF+D,EAAe/F,EAAM+F,aAC3B,IAAIC,EACAC,EAEJ,OAAuB,QAAvBnE,EAAQ9B,EAAMmC,iBAAS,IAAAL,OAAA,EAAfA,EAAiBoE,UAAU9D,KAAK6B,WACtC,IAAK,WAQL,IAAK,YAQL,IAAK,aAQL,IAAK,YACHgC,EAAW,CACT,WACA,YACA,YAEF,MAEF,QACEA,EAAW,GAIf,GAAIjG,EAAMmC,WAAa8D,EAAStG,OAAS,EAAG,CAC1C,IAAIwG,EAAY,CAAEC,MAAM,gBAADxI,OAAkBqI,EAAStG,OAAM,aACxDqG,EAASC,EAASpI,KAAKwI,GACjBA,IAASN,EAET1I,cAAA,OAAgBiJ,MAAOH,EAAU3I,SAC/Ba,eAACkI,IAAI,CAACC,GAAE,IAAA5I,OAAMyI,GAAQ9I,UAAU,mCAAkCC,SAAA,CAChEH,cAAC4H,EAAW,CAACE,YAAW,GAAAvH,OAAKyI,EAAI,eACjChJ,cAAA,QAAAG,SAAOuE,EAAwBlB,IAAI,gBAADjD,OAAiByI,UAH7CA,GAUZhJ,cAAA,OAAgBiJ,MAAOH,EAAU3I,SAC/Ba,eAACkI,IAAI,CAACC,GAAE,IAAA5I,OAAMyI,GAAQ9I,UAAU,iCAAgCC,SAAA,CAC9DH,cAAC4H,EAAW,CAACE,YAAakB,IAC1BhJ,cAAA,QAAAG,SAAOuE,EAAwBlB,IAAI,gBAADjD,OAAiByI,UAH7CA,KAUhB,OACEhI,eAAA,OAAKd,UAAU,cAAaC,SAAA,CAC1BH,cAAA,OAAKE,UAAU,cAAaC,SAAEwI,IAC9B3H,eAAA,MAAId,UAAU,mBAAkBC,SAAA,CAC9BH,cAAA,OAAKE,UAAU,4BAA4B0E,QAASjC,EAAMyG,aAAajJ,SACpEwC,EAAMyG,aAAepJ,cAACqJ,IAAgB,CAACC,SAAS,UAAa,OAEhEtJ,cAAA,OAAKE,UAAU,4BAA2BC,SACvCuE,EAAwBlB,IAAI,gBAADjD,OAAiBmI,MAE/C1I,cAAA,OAAKE,UAAU,oC,UCzFR,MAA0B,uCCG1B,SAASqJ,EAAQ5G,GAC9B,OACE3C,cAAA,OAAKE,UAAU,oBAAmBC,SAChCH,cAAA,OAAKE,UAAU,UAASC,SACtBa,eAAA,OAAKd,UAAU,kBAAiBC,SAAA,CAC9BH,cAAA,OAAKE,UAAU,iBAAgBC,SAC7BH,cAAA,OAAKE,UAAU,YAAWC,SACxBH,cAAA,OACEE,UAAU,cACVsH,IAAKC,EACL+B,OAAO,OACP9B,IAAI,aAIV1H,cAAA,OAAKE,UAAU,eAAcC,SAAEwC,EAAM8G,cClBxC,MAAM9F,EAAmB,CAC9BC,MAAO,CACL,kBAAmB,CACjBC,GAAI,0BACJC,GAAI,sBACJC,GAAI,YAGN,gBAAiB,CACfF,GAAI,oJACJC,GAAI,+HACJC,GAAI,oHAGN,YAAa,CACXF,GAAI,gBACJC,GAAI,QACJC,GAAI,WCRK,SAAS2F,EAAa/G,GACjC,MAAM+B,EAA0B,IAAIV,EAChCL,EACAhB,EAAMgC,UAGJgF,EAAU3I,eAAA4I,WAAA,CAAAzJ,SAAA,CACZH,cAAA,OAAKE,UAAU,cAAaC,SACxBH,cAAA,MAAAG,SAAKuE,EAAwBlB,IAAI,uBAErCxD,cAAA,SACAA,cAAA,OAAKE,UAAU,gBAAeC,SAC1BH,cAAA,MAAAG,SAAKuE,EAAwBlB,IAAI,qBAErCxD,cAAA,OAAKE,UAAU,mBAAkBC,SAC7BH,cAACkJ,IAAI,CAACC,GAAI,SAAUjJ,UAAU,kBAAiBC,SAAEuE,EAAwBlB,IAAI,oBAQrF,OAJAF,qBAAU,KACN2B,MACD,IAGCjE,eAAA,OAAKd,UAAU,gBAAeC,SAAA,CAC1BH,cAACyI,EAAU,CACP9D,SAAUhC,EAAMgC,SAChB+D,aAAc,WACd5D,UAAWnC,EAAMmC,YAErB9E,cAAA,QAAME,UAAU,qBAAoBC,SAChCH,cAACuJ,EAAO,CACJM,KAAM,QACNC,IAAK,OACLL,KAAME,S,YCxCX,SAASI,EAAWpH,GAC/B,OACI3C,cAAA,OAAKE,UAAU,cAAaC,SACxBa,eAAA,OAAKd,UAAU,sBAAqBC,SAAA,CAEhCH,cAAA,OAAKE,UAAU,qBAAoBC,SAC/BH,cAAA,OAAKE,UAAU,YAAWC,SACtBH,cAAA,OAAKE,UAAU,cAAcsH,ICVtC,ykWDUuDgC,OAAO,OAAO9B,IAAI,aAGxE1H,cAAA,OAAKE,UAAU,mBAAkBC,SAC5BwC,EAAMqH,Y,MEdpB,MAAMrG,EAAmB,CAC9BC,MAAO,CACL,aAAc,CACZC,GAAI,iBACJC,GAAI,gBACJC,GAAI,cAGN,cAAe,CACbF,GAAI,SACJC,GAAI,SACJC,GAAI,UAGN,iBAAkB,CAChBF,GAAI,qCACJC,GAAI,oCACJC,GAAI,4BAGN,6BAA8B,CAC5BF,GAAI,kEACJC,GAAI,mGACJC,GAAI,8FAGN,sBAAuB,CACrBF,GAAI,sBACJC,GAAI,wBACJC,GAAI,mBAGN,qBAAsB,CACpBF,GAAI,wFACJC,GAAI,sFACJC,GAAI,wEAGN,+BAAgC,CAC9BF,GAAI,6BACJC,GAAI,mBACJC,GAAI,iBAGN,+BAAgC,CAC9BF,GAAI,8FACJC,GAAI,uEACJC,GAAI,iEAGN,yCAA0C,CACxCF,GAAI,6BACJC,GAAI,mBACJC,GAAI,iBAGN,mCAAoC,CAClCF,GAAI,uFACJC,GAAI,yDACJC,GAAI,gDAGN,2BAA4B,CAC1BF,GAAI,kCACJC,GAAI,+BACJC,GAAI,8BAGN,YAAa,CACXF,GAAI,aACJC,GAAI,QACJC,GAAI,SAGN,sBAAuB,CACrBF,GAAI,qCACJC,GAAI,4BACJC,GAAI,4BAGN,2BAA4B,CAC1BF,GAAI,yDACJC,GAAI,wDACJC,GAAI,4CAGN,wBAAyB,CACvBF,GAAI,4BACJC,GAAI,sBACJC,GAAI,iBAGN,kCAAmC,CACjCF,GAAI,oCACJC,GAAI,iCACJC,GAAI,qCAGN,0CAA2C,CACzCF,GAAI,6BACJC,GAAI,2CACJC,GAAI,gDAGN,cAAe,CACbF,GAAI,mEACJC,GAAI,yEACJC,GAAI,yDAGN,0BAA2B,CACzBF,GAAI,4BACJC,GAAI,4BACJC,GAAI,wBAGN,yBAA0B,CACxBF,GAAI,mEACJC,GAAI,yEACJC,GAAI,yDAGN,qBAAsB,CACpBF,GAAI,gCACJC,GAAI,uBACJC,GAAI,uB,qBC3HK,MAAMkG,EACnBhG,YAAY+B,GAGV,GAFA7B,KAAK+F,aAAe,GAEflE,EAUH,OATA7B,KAAK6B,MAAQ,UACb7B,KAAK0E,UAAY,CACf9D,KAAM,CACJzF,KAAM,KACN0F,MAAO,KACP4B,UAAW,WAMjBzC,KAAK6B,MAAQA,EACb7B,KAAKgG,kBACLhG,KAAK0E,UAAY1E,KAAKiG,mBAGxBD,kBACE,MAAMrD,EAAc,IAAItE,KACxB2B,KAAK+F,aAAepD,EAAYG,UAGlCG,kBACE,OAAOjD,KAAK+F,aAGdE,mBACE,IAAKjG,KAAK6B,MACR,OAAO,KAGT,MAAM6C,ECrCH,SAAmB7C,GACtB,IACIqE,EADYrE,EAAMzE,MAAM,KAAK,GACV+I,QAAQ,KAAM,KAAKA,QAAQ,KAAM,KACpDC,EAAcC,mBAAmBC,KAAKJ,GAAQ9I,MAAM,IAAIf,KAAI,SAASqB,GACrE,MAAO,KAAO,KAAOA,EAAE6I,WAAW,GAAGC,SAAS,KAAKC,OAAO,MAC3DpJ,KAAK,KAER,OAAOM,KAAKG,MAAMsI,GD8BAM,CAAS1G,KAAK6B,OAChC,MAAO,CACLjB,KAAM,CACJzF,KAAMuJ,EAAUvJ,KAChB0F,MAAO6D,EAAU7D,MACjB4B,UAAWiC,EAAUjC,WAEvBZ,MAAO,CACLA,MAAO7B,KAAK6B,MACZgB,MAAO6B,EAAU7B,QAKvBxD,MACE,OAAOW,KAAK0E,UAGd5C,WACE,OAAO9B,KAAK6B,MAGd8E,eAAgB,IAADC,EAAAC,EACb,OAAqB,QAArBD,EAAO5G,KAAK0E,iBAAS,IAAAkC,GAAM,QAANC,EAAdD,EAAgBhG,YAAI,IAAAiG,OAAN,EAAdA,EAAsBpE,WEnDlB,SAASqE,EAAetI,GACrC,IAAI,MAAEqD,GAAUkF,cAEhB,MAAMxG,EAA0B,IAAIV,EAClCL,EACAhB,EAAMgC,WAGDwG,EAAkBC,GAAuBrI,oBAAS,IAElDsI,EAAYC,GAAiBvI,mBAAS,KAEtC9D,EAAQsM,GAAaxI,mBAAS,CACnCzD,KAAM,GACN0F,MAAO,GACPwG,SAAU,GACVC,cAAe,GACfC,aAAc,GACdC,uBAAwB,GACxBC,2BAA4B,GAC5BC,mBAAoB,KAyBtB,MAAO3M,EAAa4D,GAAkBC,mBAAS,CAC7CzD,KAAM,GACN0F,MAAO,GACPwG,SAAU,GACVC,cAAe,GACfC,aAAc,GACdC,uBAAwB,GACxBC,2BAA4B,GAC5BC,mBAAoB,KAGhBC,EAAa,CACjBxM,KAAMuD,mBACNmC,MAAOnC,mBACP2I,SAAU3I,mBACV4I,cAAe5I,mBACf6I,aAAc7I,mBACd8I,uBAAwB9I,mBACxB+I,2BAA4B/I,mBAC5BgJ,mBAAoBhJ,qBAGfkJ,EAAeC,GAAoBjJ,mBAAS,KAC5CkJ,EAAeC,GAAoBnJ,mBAAS,IAE7CoJ,EAAa,CACjB7M,KAAM,CACJK,SAAUyM,GAGZpH,MAAO,CACLrF,SAAUyM,EACVC,WAqDJ,SAAsB3L,GACpB,OAAO4L,IAAUC,QAAQ7L,KAnDzB8K,SAAU,CACR7L,SAAUyM,EACVI,qBAgCJ,SAAgC9L,GAC9B,MAAO,4DAA4D+L,KACjE/L,KA/BF+K,cAAe,CACb9L,SAAUyM,EACVM,6BAiCJ,SAAwChM,GACtC,GAAIxB,EAAsB,UAAKA,EAA2B,cACxD,OAAOA,EAAsB,WAAMA,EAA2B,gBAhChEwM,aAAc,CACZiB,cAAeP,GAGjBT,uBAAwB,CACtBgB,cAAeP,GAGjBR,2BAA4B,GAC5BC,mBAAoB,IAGhBe,EAAa,CACjBjN,SAAU+E,EAAwBlB,IAAI,uBACtCmJ,cAAejI,EAAwBlB,IAAI,4BAC3C6I,WAAY3H,EAAwBlB,IAAI,yBACxCgJ,qBAAsB9H,EAAwBlB,IAC5C,mCAEFkJ,6BAA8BhI,EAAwBlB,IACpD,4CAgBJ,SAAS4I,EAAW1L,GAClB,OAAOA,EA6GT,SAAStB,EAAgB8B,GACvB,MAAM2L,EAAY3L,EAAEZ,OAAOhB,KAC3BiM,GAAWuB,IAAc,IACpBA,EACH,CAACD,GAAY,OAGfE,EAAcF,GAGhB,SAAS1N,EAAkB+B,GACzB,MAAMR,EAAQQ,EAAEZ,OAAOI,MACjBmM,EAAY3L,EAAEZ,OAAOhB,KAC3BwD,EAAe,IACV5D,EACH,CAAC2N,GAAYnM,IAEf6K,GAAWuB,IAAc,IACpBA,EACH,CAACD,GAAY,OAIjB,SAASE,EAAcF,GACrB,MAAMnM,EAAQxB,EAAY2N,GAC1B,IAAIG,GAAU,EAOd,GANAzB,GAAWuB,IAAc,IACpBA,EACH,CAACD,GAAY,OAEff,EAAWe,GAAWI,QAAQC,kBAAkB,SAElBnN,IAA1BoM,EAAWU,GACb,IAAK,MAAOM,EAAgBC,KAAgBC,OAAOC,QACjDnB,EAAWU,IAEX,GAAIG,IACFA,EAAUI,EAAY1M,IACjBsM,GAAS,CACZ,MAAMO,EAAYX,EAAWO,GAC7B5B,GAAWuB,IACF,IACFA,EACH,CAACD,GAAYU,MAGjBzB,EAAWe,GAAWI,QAAQC,kBAAkBK,GAKxD,OAAOP,EAGT,OA5JA1J,qBAAU,KACR4B,MAAM,GAAD3E,OAAI4E,mFAAkC,cAAc,CACvDC,OAAQ,MACRC,KAAM,OACNC,MAAO,WACPS,QAAS,CACP,eAAgB,mBAChBC,WAGDE,MAAMC,IACL,GAAoB,MAAhBA,EAAKC,OAAgB,CACvBkF,EAAc,WACd,MAAM9F,EAAQ,IAAIa,MAAM,WAExB,MADAb,EAAMY,OAASD,EAAKC,OACdZ,EAER,OAAOW,EAAKG,UAEbJ,MAAMK,IACL+E,EAAc,SACdxI,EAAe,CACbxD,KAAMiH,EAASjH,KACf0F,MAAOuB,EAASvB,MAChBwG,SAAU,GACVC,cAAe,GACfC,aAAcnF,EAASmF,aACvBC,uBAAwBpF,EAASoF,uBACjCC,2BAA4BrF,EAASqF,2BACrCC,mBAAoBtF,EAASsF,wBAGhCtG,OAAOC,IACgB,oBAAlBA,EAAMiB,SACR6E,EAAc,oBAGnB,IAEHhI,qBAAU,KA5IRiI,EAAU,CACRjM,KAAM,GACN0F,MAAO,GACPwG,SAAU,GACVC,cAAe,GACfC,aAAc,GACdC,uBAAwB,GACxBC,2BAA4B,GAC5BC,mBAAoB,OAsIrB,CAAClJ,EAAMgC,WAmHLqB,EAKHhF,eAAA,OAAKd,UAAU,kBAAiBC,SAAA,EAC5BkL,GACArL,cAAA,OAAKE,UAAS,wBAA2BoH,KAAK,QAAOnH,SAClDuE,EAAwBlB,IAAI,6BAGjB,gBAAf6H,GACCrL,cAAA,OAAKE,UAAS,0BAA6BoH,KAAK,QAAOnH,SACpDuE,EAAwBlB,IAAI,iBAGjB,YAAf6H,GACCrL,cAAA,OAAKE,UAAS,0BAA6BoH,KAAK,QAAOnH,SACpDuE,EAAwBlB,IAAI,wBAGhCuI,GACC/L,cAAA,OAAKE,UAAS,oBAAAK,OAAsB0L,GAAiB3E,KAAK,QAAOnH,SAC9D4L,IAGW,UAAfV,GACCrK,eAAA,QACEwM,SA7IR3H,eAA4B3E,GAC1BA,EAAEuM,iBA+CJ,WACE,IAAIC,GAAc,EAClB,IAAK,MAAMb,KAAaQ,OAAOM,KAAKzO,GAAc,CAC3B6N,EAAcF,KAEjCa,GAAc,GAGlB,OAAOA,EAtDHA,IACFxI,MAAM,GAAD3E,OAAI4E,mFAAkC,sBAAsB,CAC/DC,OAAQ,MACRC,KAAM,OACNC,MAAO,WACPS,QAAS,CACP,eAAgB,mBAChBC,SAEF4H,KAAM9L,KAAKC,UAAU,CACnBzC,KAAMJ,EAAYI,KAClB0F,MAAO9F,EAAY8F,MACnBwG,SAAUtM,EAAYsM,SACtBpF,OAAQ,SACRsF,eAAcxM,EAAYwM,aAC1BC,yBAAwBzM,EAAYyM,uBAIpCC,6BAA4B1M,EAAY0M,2BAGxCC,qBAAoB3M,EAAY2M,mBAEhClH,SAAUhC,EAAMgC,aAGjBuB,MAAMC,IACL,GAAoB,MAAhBA,EAAKC,OACP,MAAM,IAAIC,MAAM,cAElB,OAAOF,EAAKG,UAEbJ,MAAMK,IACL,IAAIsH,EAAW,IAAI5D,EAAU1D,EAASP,OACtCrD,EAAMmL,QAAQD,MAEftI,OAAOC,IAjMd,IAA4BuI,EAAeC,EAAfD,EAmMA,eAAlBvI,EAAMiB,QAA2BjB,EAAMiB,QAAU,qBAnMhBuH,EAoMjC,SAnMRhC,EAAiBtH,EAAwBlB,IAAIuK,IAC7C7B,EAAiB8B,GACjB7G,YAAW,KACT6E,EAAiB,IACjBE,EAAiB,MAChB,SAkSG+B,YAAY,EACZ/N,UAAS,oBAAAK,OACP4K,EAAmB,gBAAkB,IACpChL,SAAA,CAEHH,cAACvB,EAAa,CACZmB,UAAWkM,EAAiB,KAC5BxM,KAAK,OACLC,UAAWmF,EAAwBlB,IAAI,cACvCnE,KAAK,OACLJ,OAAQA,EACRC,YAAaA,EACbE,gBAAiBA,EACjBD,kBAAmBA,EACnBQ,UAAU,IAEZK,cAACvB,EAAa,CACZmB,UAAWkM,EAAkB,MAC7BxM,KAAK,QACLC,UAAWmF,EAAwBlB,IAAI,eACvCnE,KAAK,QACLJ,OAAQA,EACRC,YAAaA,EACbE,gBAAiBA,EACjBD,kBAAmBA,EACnBQ,UAAU,IAEZK,cAACvB,EAAa,CACZmB,UAAWkM,EAAqB,SAChCxM,KAAK,WACLC,UAAWmF,EAAwBlB,IAAI,kBACvChE,gBAAiBkF,EAAwBlB,IACvC,8BAEFnE,KAAK,WACLJ,OAAQA,EACRC,YAAaA,EACbE,gBAAiBA,EACjBD,kBAAmBA,EACnBQ,UAAU,IAEZK,cAACvB,EAAa,CACZmB,UAAWkM,EAA0B,cACrCxM,KAAK,gBACLC,UAAWmF,EAAwBlB,IAAI,uBACvCnE,KAAK,WACLJ,OAAQA,EACRC,YAAaA,EACbE,gBAAiBA,EACjBD,kBAAmBA,EACnBQ,UAAU,IAEZK,cAACvB,EAAa,CACZmB,UAAWkM,EAAyB,aACpCxM,KAAK,eACLC,UAAWmF,EAAwBlB,IAAI,sBACvC/D,KACE,sEAEFC,SAAUgF,EAAwBlB,IAChC,gCAEFnE,KAAK,WACLJ,OAAQA,EACRC,YAAaA,EACbE,gBAAiBA,EACjBD,kBAAmBA,EACnBQ,UAAU,IAEZK,cAACvB,EAAa,CACZmB,UAAWkM,EAAmC,uBAC9CxM,KAAK,yBACLC,UAAWmF,EAAwBlB,IAAI,gCAGvC/D,KACE,2EAEFC,SAAUgF,EAAwBlB,IAChC,0CAEFnE,KAAK,WACLJ,OAAQA,EACRC,YAAaA,EACbE,gBAAiBA,EACjBD,kBAAmBA,EACnBQ,UAAU,IAEZK,cAACvB,EAAa,CACZmB,UAAWkM,EAAuC,2BAClDxM,KAAK,6BACLC,UAAWmF,EAAwBlB,IAAI,oCAGvCnE,KAAK,WACLJ,OAAQA,EACRC,YAAaA,EACbE,gBAAiBA,EACjBD,kBAAmBA,EACnBQ,UAAU,IAEZK,cAACvB,EAAa,CACZmB,UAAWkM,EAA+B,mBAC1CxM,KAAK,qBACLC,UAAWmF,EAAwBlB,IAAI,4BACvCnE,KAAK,WACLJ,OAAQA,EACRC,YAAaA,EACbE,gBAAiBA,EACjBD,kBAAmBA,EACnBQ,UAAU,IAEZK,cAAA,OAAKE,UAAU,WAAUC,SACvBH,cAAA,UAAQX,KAAK,SAASa,UAAU,kBAAiBC,SAC9CuE,EAAwBlB,IAAI,uBA9IhCxD,cAACkO,IAAQ,CAAC/E,GAAG,MC5SjB,MAAMxF,EAAmB,CAC9BC,MAAO,CACL,aAAc,CACZC,GAAI,0BACJC,GAAI,kBACJC,GAAI,iBCGK,SAASoK,EAAexL,GACnC,MAAM+B,EAA0B,IAAIV,EAChCL,EACAhB,EAAMgC,UAGV,GAAIhC,EAAMmC,UACN,OAAO9E,cAACkO,IAAQ,CAAC/E,GAAG,MAOxB,IAAIiF,EAAUpN,eAAA4I,WAAA,CAAAzJ,SAAA,CACVH,cAAA,MAAAG,SAAKuE,EAAwBlB,IAAI,gBACjCxD,cAACiL,EAAc,CACXtG,SAAUhC,EAAMgC,SAChBmJ,QAAUO,GARlB,SAAiBA,GACb1L,EAAMmL,QAAQO,GAOiBP,CAAQO,QAI3C,OACIrN,eAAA,OAAKd,UAAU,kBAAiBC,SAAA,CAC5BH,cAACyI,EAAU,CACP9D,SAAUhC,EAAMgC,SAChB+D,aAAc,aACd5D,UAAWnC,EAAMmC,YAErB9E,cAAA,QAAME,UAAU,uBAAsBC,SAClCH,cAAA,OAAKE,UAAU,uBAAsBC,SACjCH,cAAC+J,EAAU,CACPpF,SAAUhC,EAAMgC,SAChBqF,KAAMoE,W,OCzCvB,MAAMzK,EAAmB,CACxB,MAAS,CACL,iBAAkB,CACd,GAAM,iCACN,GAAM,kBACN,GAAM,iBAGV,eAAgB,CACZ,GAAM,GACN,GAAM,GACN,GAAM,IAGV,iBAAkB,CACd,GAAM,yBACN,GAAM,yBACN,GAAM,0BAGV,eAAgB,CACZ,GAAM,qFACN,GAAM,0GACN,GAAM,sGAGV,qBAAsB,CAClB,GAAM,4BACN,GAAM,yBACN,GAAM,4BAGV,mBAAoB,CAChB,GAAM,iDACN,GAAM,0CACN,GAAM,0BAGV,iBAAkB,CACd,GAAM,gCACN,GAAM,uBACN,GAAM,qBAGV,eAAgB,CACZ,GAAM,GACN,GAAM,GACN,GAAM,MCvCP,SAAS2K,EAAwB3L,GAC9C,IAAI,MAAEqD,GAAUkF,cAEhB,MAAOqD,EAAgBC,GAAqBzL,mBAAS,WAE/C2B,EAA0B,IAAIV,EAClCL,EACAhB,EAAMgC,UAGRrB,qBAAU,KACR4B,MAAM,GAAD3E,OAAI4E,mFAAkC,8BAA8B,CACvEC,OAAQ,SACRC,KAAM,OACNC,MAAO,WACPS,QAAS,CACP,eAAgB,mBAChBC,WAGDE,MAAMC,GACLqI,EAAkC,MAAhBrI,EAAKC,OAAiB,UAAY,aAErDb,OAAM,IAAMiJ,EAAkB,mBAChC,IAEH,MAAM7E,EACJ3I,eAAA4I,WAAA,CAAAzJ,SAAA,CACEH,cAAA,OAAKE,UAAU,cAAaC,SAC1BH,cAAA,MAAAG,SAAKuE,EAAwBlB,IAAI,GAADjD,OAAIgO,EAAc,gBAEpDvO,cAAA,SACAA,cAAA,OAAKE,UAAU,gBAAeC,SAC5BH,cAAA,MAAAG,SAAKuE,EAAwBlB,IAAI,GAADjD,OAAIgO,EAAc,iBAKxD,OAAKvI,EAKHhF,eAAA,OAAKd,UAAU,2BAA0BC,SAAA,CACvCH,cAACyI,EAAU,CACT9D,SAAUhC,EAAMgC,SAChB+D,aAAc,sBACd5D,UAAWnC,EAAMmC,YAEnB9E,cAAA,QAAME,UAAU,qBAAoBC,SAClCH,cAACuJ,EAAO,CAACM,KAAM,QAASC,IAAK,OAAQL,KAAME,SAXxC3J,cAACkO,IAAQ,CAAC/E,GAAG,M,cC/CjB,MAAMxF,EAAmB,CAC9BC,MAAO,CACL,cAAe,CACbC,GAAI,2BACJC,GAAI,uBACJC,GAAI,sBAGN,aAAc,CACZF,GAAI,aACJC,GAAI,YACJC,GAAI,aAGN,YAAa,CACXF,GAAI,gBACJC,GAAI,QACJC,GAAI,SAGN,mBAAoB,CAClBF,GAAI,YACJC,GAAI,qBACJC,GAAI,kBAGN,sBAAuB,CACrBF,GAAI,yBACJC,GAAI,4BACJC,GAAI,oBAGN,qBAAsB,CACpBF,GAAI,kDACJC,GAAI,2DACJC,GAAI,oDAGN,mBAAoB,CAClBF,GAAI,oCACJC,GAAI,kBACJC,GAAI,wBAGN,aAAc,CACZF,GAAI,oCACJC,GAAI,qBACJC,GAAI,wBAGN,qBAAsB,CACpBF,GAAI,mEACJC,GAAI,yEACJC,GAAI,yDAGN,uBAAwB,CACtBF,GAAI,2EACJC,GAAI,2EACJC,GAAI,+DCnDK,SAAS0K,EAAU9L,GAChC,MAAM+B,EAA0B,IAAIV,EAClCL,EACAhB,EAAMgC,WAGD+J,EAAaC,GAAkB5L,mBAAS,aACxCoI,EAAkBC,GAAuBrI,oBAAS,IAElD9D,EAAQsM,GAAaxI,mBAAS,CACnC6L,MAAO,GACPC,KAAM,KAmBR,MAAO3P,EAAa4D,GAAkBC,mBAAS,CAC7C6L,MAAO,GACPC,KAAM,KAGF/C,EAAa,CACjB8C,MAAO/L,mBACPgM,KAAMhM,qBAGDkJ,EAAeC,GAAoBjJ,mBAAS,KAC5CkJ,EAAeC,GAAoBnJ,mBAAS,IAE7CoJ,EAAa,CACjByC,MAAO,CACLjP,SAAUyM,GAEZyC,KAAM,CACJlP,SAAUyM,IAIRQ,EAAa,CACjBjN,SAAU+E,EAAwBlB,IAAI,wBAGxC,SAAS4I,EAAW1L,GAClB,MAAiB,KAAVA,EA2DT,SAAStB,EAAgB8B,GACvB,MAAM2L,EAAY3L,EAAEZ,OAAOhB,KAC3BiM,GAAWuB,IAAc,IACpBA,EACH,CAACD,GAAY,OAGfE,EAAcF,GAGhB,SAAS1N,EAAkB+B,GACzB,MAAMR,EAAQQ,EAAEZ,OAAOI,MACjBmM,EAAY3L,EAAEZ,OAAOhB,KAC3BwD,EAAe,IACV5D,EACH,CAAC2N,GAAYnM,IAEf6K,GAAWuB,IAAc,IACpBA,EACH,CAACD,GAAY,OAIjB,SAASE,EAAcF,GACrB,MAAMnM,EAAQxB,EAAY2N,GAC1B,IAAIG,GAAU,EAOd,GANAzB,GAAWuB,IAAc,IACpBA,EACH,CAACD,GAAY,OAEff,EAAWe,GAAWI,QAAQC,kBAAkB,SAElBnN,IAA1BoM,EAAWU,GACb,IAAK,MAAOM,EAAgBC,KAAgBC,OAAOC,QACjDnB,EAAWU,IAEX,GAAIG,IACFA,EAAUI,EAAY1M,IACjBsM,GAAS,CACZ,MAAMO,EAAYX,EAAWO,GAC7B5B,GAAWuB,IACF,IACFA,EACH,CAACD,GAAYU,MAGjBzB,EAAWe,GAAWI,QAAQC,kBAAkBK,GAKxD,OAAOP,EAGT,OA9GA1J,qBAAU,KACR2B,IAASiB,MAAK,KACZyI,EAAe,gBAEhB,IAEHrL,qBAAU,KA1CRiI,EAAU,CACRqD,MAAO,GACPC,KAAM,OA0CP,CAAClM,EAAMgC,WAsGU,aAAhB+J,EAEA1O,cAAA,OAAKE,UAAU,aAAYC,SACzBa,eAAA,OAAKd,UAAU,kBAAiBC,SAAA,CAC9BH,cAAA,OAAKE,UAAU,6BAA6BoH,KAAK,SAAQnH,SACvDH,cAAA,QAAME,UAAU,kBAAiBC,SAAC,iBAEpCH,cAAA,MAAAG,SAAKuE,EAAwBlB,IAAI,+BAOvCxC,eAAA,OAAKd,UAAU,aAAYC,SAAA,CACxB4L,GACC/L,cAAA,OAAKE,UAAS,oBAAAK,OAAsB0L,GAAiB3E,KAAK,QAAOnH,SAC9D4L,IAGL/K,eAAA,QACEwM,SAzHN3H,eAA4B3E,GAC1BA,EAAEuM,iBAkCJ,WACE,IAAIC,GAAc,EAClB,IAAK,MAAMb,KAAaQ,OAAOM,KAAKzO,GAAc,CAC3B6N,EAAcF,KAEjCa,GAAc,GAGlB,OAAOA,EAzCHA,IACFxI,MAAM,GAAD3E,OAAI4E,mFAAkC,UAAU,CACnDC,OAAQ,MACRC,KAAM,OACNC,MAAO,WACPS,QAAS,CACP,eAAgB,mBAChB+I,eAAgB3J,UAChBH,MAAO9F,EAAY0P,MACnBpD,SAAUtM,EAAY2P,QAGvB3I,MAAMC,IACL,GAAoB,MAAhBA,EAAKC,OACP,MAAM,IAAIC,MAAM,cAElB,OAAOF,EAAKG,UAEbJ,MAAMK,IACL,IAAIsH,EAAW,IAAI5D,EAAU1D,EAASP,OACtCrD,EAAMmL,QAAQD,MAEftI,OAAOC,IAhFd,IAA4BuI,EAAeC,EAAfD,EAkFA,eAAlBvI,EAAMiB,QACFjB,EAAMiB,QACN,qBApF6BuH,EAqFjC,SApFRhC,EAAiBtH,EAAwBlB,IAAIuK,IAC7C7B,EAAiB8B,GACjB7G,YAAW,KACT6E,EAAiB,IACjBE,EAAiB,MAChB,SA4KC+B,YAAY,EACZ/N,UAAS,oBAAAK,OAAsB4K,EAAmB,gBAAkB,IAC/DhL,SAAA,CAELH,cAACvB,EAAa,CACZmB,UAAWkM,EAAkB,MAC7BxM,KAAK,QACLC,UAAWmF,EAAwBlB,IAAI,eACvCnE,KAAK,OACLJ,OAAQA,EACRC,YAAaA,EACbE,gBAAiBA,EACjBD,kBAAmBA,EACnBQ,UAAU,IAEZK,cAACvB,EAAa,CACZmB,UAAWkM,EAAiB,KAC5BxM,KAAK,OACLC,UAAWmF,EAAwBlB,IAAI,cACvCnE,KAAK,WACLJ,OAAQA,EACRC,YAAaA,EACbE,gBAAiBA,EACjBD,kBAAmBA,EACnBQ,UAAU,IAEZK,cAAA,OAAKE,UAAU,cAAaC,SAC1BH,cAAA,UAAQX,KAAK,SAASa,UAAU,kBAAiBC,SAC9CuE,EAAwBlB,IAAI,uBC9N1B,SAASuL,EAAUpM,GAK9B,GAAIA,EAAMmC,UACN,OAAO9E,cAACkO,IAAQ,CAAC/E,GAAG,cAGxB,MAAMQ,EACF3J,cAACyO,EAAS,CACN9J,SAAUhC,EAAMgC,SAChBuD,SAAUvF,EAAMuF,SAChBpD,UAAWnC,EAAMmC,UACjBgJ,QAASO,GAbjB,SAAiBA,GACb1L,EAAMmL,QAAQO,GAYeP,CAAQO,KAGzC,OACIrN,eAAA,OAAKd,UAAU,aAAYC,SAAA,CACvBH,cAACyI,EAAU,CACP9D,SAAUhC,EAAMgC,SAChB+D,aAAc,QACd5D,UAAWnC,EAAMmC,YAGrB9E,cAAA,QAAAG,SACIH,cAACuJ,EAAO,CACJM,KAAM,QACNC,IAAK,OACLL,KAAME,S,yCCnCX,MAAMqF,GACnB,qBAAqBtO,EAAO+C,GAC1B,IAAK/C,EACH,MAAO,GAGT,IAAIuO,EAAUvO,EAAMwO,OAAO,EAAG,GAC1BC,EAAWzO,EAAMwO,OAAO,EAAG,GAC3BE,EAAS1O,EAAMwO,OAAO,EAAG,GAC7B,OAAQzL,GACN,IAAK,KACH,MAAM,GAANlD,OAAU0O,EAAO,KAAA1O,OAAI4O,EAAQ,KAAA5O,OAAI6O,GAEnC,IAAK,KACH,MAAM,GAAN7O,OAAU4O,EAAQ,KAAA5O,OAAI6O,EAAM,KAAA7O,OAAI0O,GAElC,QACE,MAAM,GAAN1O,OAAU6O,EAAM,KAAA7O,OAAI4O,EAAQ,KAAA5O,OAAI0O,IAItC,gBAAgBvO,GACd,IAAKA,EACH,OAAO,KAGT,IAAIuO,EAAUvO,EAAMwO,OAAO,EAAG,GAC1BC,EAAWzO,EAAMwO,OAAO,EAAG,GAC3BE,EAAS1O,EAAMwO,OAAO,EAAG,GAC7B,MAAM,GAAN3O,OAAU0O,EAAO,KAAA1O,OAAI4O,EAAQ,KAAA5O,OAAI6O,GAGnC,uBAAuB1O,EAAO+C,EAAM4L,GAClC,GAAIC,MAAM5O,GACR,MAAO,GAQT,OALuB,IAAI6O,KAAKC,aAAa/L,EAAM,CACjDgM,sBAAuBJ,EACvBK,sBAAuBL,IACtBM,OAAOjP,I,cCjCC,SAASkP,GAASjN,GAC/B,MAAM+B,EAA0B,IAAIV,EAClCrB,EAAMgB,iBACNhB,EAAMgC,UAeR,MAAMkL,EAAc,CAClBC,KAAM,CACJC,eAdJ,SAAuBC,GACrB,OAAOhB,GAAgBiB,cAAcD,EAAOtP,MAAOiC,EAAMgC,WAcvDuL,OAAQ,qBACRC,aAAc,CACZC,WAAY,IACZC,QAAS,CAAC,SACVC,WAAY,SAAUC,EAA2BC,GAC/C,GAAiB,MAAbA,EACF,OAAO,EAET,MAAMC,EACsC,IAA1CF,EAA0BG,cACmB,KAA5CH,EAA0BI,WAAa,GACxCJ,EAA0BK,UACtBC,EACmC,IAAvCC,SAASN,EAAUtB,OAAO,EAAG,GAAI,IACM,IAAvC4B,SAASN,EAAUtB,OAAO,EAAG,GAAI,IACjC4B,SAASN,EAAUtB,OAAO,EAAG,GAAI,IACnC,OAAI2B,EAAeJ,GACT,EACCI,EAAeJ,EACjB,EAEA,IAIbH,WAAYA,CAACS,EAAIC,IACVD,GAAOC,EAIPD,EAIAC,EAIDD,IAAOC,EACF,EAEFD,EAAKC,EAAK,GAAK,EANb,GAJC,EAJD,GAkBbC,MAAO,CACLlB,eAzDJ,SAAwBC,GACtB,OAAOhB,GAAgBkC,gBAAgBlB,EAAOtP,MAAOiC,EAAMgC,SAAU,IAyDnEwM,YAAa,oBACbC,UAAW,CAAEC,UAAW,SACxBnB,OAAQ,uBACRC,aAAc,CACZE,QAAS,CAAC,WAIdiB,OAAQ,CACNvB,eA/DJ,SAAyBC,GACvB,OAAOhB,GAAgBkC,gBAAgBlB,EAAOtP,MAAOiC,EAAMgC,SAAU,IA+DnEwM,YAAa,oBACbC,UAAW,CAAEC,UAAW,SACxBnB,OAAQ,uBACRC,aAAc,CACZE,QAAS,CAAC,WAIdkB,QAAS,GAETC,QAAS,CACPtB,OAAQ,qBACRC,aAAc,CACZE,QAAS,CAAC,YAKVoB,EAAc9O,EAAM+O,QAAQlR,KAAKmR,IACrC,IAAIC,EAQJ,GANIjP,EAAMkP,gBACRD,EAAoBjP,EAAMkP,cAAcC,MACrCC,GAAaA,EAASC,QAAUL,EAAIK,UAIpCJ,EACH,OAAQD,EAAItS,MACV,IAAK,UACHuS,EAAqB5B,GACb,0BAANzP,OAAiCyP,EAAOtP,MAAQ,UAAY,GAAE,OAEhE,MAEF,QACEkR,EAAoB,GAK1B,MAAO,IACFD,EACHM,aAAcL,EAAkBK,aAChCC,mBAAoBN,EAAkBM,uBAI1C,IAAIC,EAAkB,GACtBxP,EAAM+O,QAAQU,SAAST,IACrB,GAAIA,EAAI5S,QAAS,CACf,MAAMsT,EAAgBV,EAAI5S,QAAQmR,QAAQzP,GAAWA,EAAOC,QAC5D,GAAI2R,EAAe,CACjB,IAAIC,EAAwB,GAC5B,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAAc/P,OAAQiQ,IAAK,CAC7C,MAAMC,EAAeH,EAAcE,GACnCD,EAAsBE,EAAa9R,OACE,SAAnC8R,EAAa7R,KAAKuO,OAAO,EAAG,GACxBxK,EAAwBlB,IAAIgP,EAAa7R,KAAKuO,OAAO,IACrDsD,EAAa7R,KAErBwR,EAAgBR,EAAIK,OAASM,OAKnC,IAAIG,EAAW9P,EAAMwD,KAAK3F,KAAKkS,IACtB,CAAEC,UAAW,IAAKD,MAAUA,MAmBrC,OAhBIrF,OAAOM,KAAKwE,GAAiB7P,OAAS,GACxC+K,OAAOM,KAAKwE,GAAiBC,SAASlQ,IACpCuQ,EAAWA,EAASjS,KAAKkS,IACvB,IAAIE,EAASF,EACb,GAAIA,EAAIxQ,GAAM,CACZ,MAAM2Q,EAAgBV,EAAgBjQ,GAAKwQ,EAAIxQ,IAC3C2Q,IACFD,EAAO1Q,GAAO2Q,GAGlB,OAAOD,QAOX5S,cAAA,OACEY,GAAI+B,EAAM/B,GACVV,UAAU,kBACV+I,MAAO,CAAEO,OAAQ,OAAQT,MAAO,QAAS5I,SAEzCH,cAAC8S,eAAW,CACVC,QAASN,EACT5C,YAAaA,EACbmD,oBAAqBrQ,EAAMqQ,oBAAoB7S,SAE9CsR,EAAYjR,KAAKmR,GAChB3R,cAACiT,gBAAY,CAEXjB,MAAOL,EAAIK,MACXkB,WAAYxO,EAAwBlB,IAAI,SAADjD,OAAUoR,EAAIK,QACrDmB,UAAQ,EACR9T,KAAMsS,EAAItS,KAAOsS,EAAItS,KAAO,UAC5B4S,aAAcN,EAAIM,aAClBC,mBAAoBP,EAAIO,mBACxBkB,WAAS,EACTrK,MAAO4I,EAAI5I,OARN4I,EAAIK,a,OCtLN,SAASqB,GAAY1Q,GAClC,MAAM+B,EAA0B,IAAIV,EAClCrB,EAAMgB,iBACNhB,EAAMgC,UAGR,IAAI2O,EACAC,EAAa5Q,EAAM4Q,gBAEJxT,IAAfwT,GAA4B5Q,EAAM5D,UACpCwU,EAAa,UAGf,MAAMC,EAAc9O,EAAwBlB,IAAI,SAADjD,OAAUoC,EAAMkK,YAE/D,OAAQ0G,GACN,IAAK,OACHD,EACEtS,eAAA,OAAKd,UAAU,6BAA4BC,SAAA,CACzCH,cAAA,OAAKE,UAAU,QAAOC,SACpBH,cAAA,SAAOE,UAAU,iBAAgBC,SAAEqT,MAErCxT,cAAA,OAAKE,UAAU,QAAOC,SACpBH,cAAA,SACEX,KAAK,OACLa,UAAU,4BACV,cAAAK,OAAaoC,EAAMkK,UAAS,SAC5B,kBAAgB,OAChB,aAAYlK,EAAMkK,cAGtB7M,cAAA,OAAKE,UAAU,oBAAmBC,SAAC,MACnCH,cAAA,OAAKE,UAAU,QAAOC,SACpBH,cAAA,SACEX,KAAK,OACLa,UAAU,4BACV,cAAAK,OAAaoC,EAAMkK,UAAS,eAC5B,kBAAgB,OAChB,aAAYlK,EAAMkK,iBAK1B,MAEF,IAAK,SACHyG,EACEtS,eAAA,OAAKd,UAAU,6BAA4BC,SAAA,CACzCH,cAAA,OAAKE,UAAU,QAAOC,SACpBH,cAAA,SAAOE,UAAU,iBAAgBC,SAAEqT,MAErCxT,cAAA,OAAKE,UAAU,QAAOC,SACpBH,cAAA,UACEE,UAAU,2BACV,cAAAK,OAAaoC,EAAMkK,UAAS,UAC5B,aAAW,yBACX,aAAYlK,EAAMkK,UAAU1M,SAG5BwC,EAAM5D,QAAQyB,KAAKC,IACjB,GAAwB,kBAAZA,EACV,OACET,cAAA,UAAAG,SACGM,GAAM,GAAAF,OADOoC,EAAMkK,UAAS,YAAAtM,OAAWE,IAK9C,GAAwB,kBAAZA,IAAyBA,EAAOC,OAA0B,KAAjBD,EAAOC,OAAe,CACzE,MAAMwB,EAAG,SAAA3B,OAAYoC,EAAMkK,UAAS,YAAAtM,OAAWE,EAAOC,OAChDC,EAAqC,SAA7BF,EAAOE,KAAKuO,OAAO,EAAG,GAAiBxK,EAAwBlB,IAAI/C,EAAOE,KAAKuO,OAAO,IAAMzO,EAAOE,KAEjH,OAAOX,cAAA,UAAkBU,MAAOD,EAAOC,MAAMP,SAAEQ,GAA3BuB,GAGtB,OAAO,eAQjB,MAEF,QACEoR,EACEtS,eAAA,OAAKd,UAAU,6BAA4BC,SAAA,CACzCH,cAAA,OAAKE,UAAU,QAAOC,SACpBH,cAAA,SAAOE,UAAU,iBAAgBC,SAAEqT,MAErCxT,cAAA,OAAKE,UAAU,QAAOC,SACpBH,cAAA,SACEX,KAAK,OACLa,UAAU,4BACV,cAAAK,OAAaoC,EAAMkK,UAAS,cAC5B,aAAYlK,EAAMkK,iBAQ9B,OAAOyG,ECzGM,WAA0B,qCCI1B,SAASG,GAAQ9Q,GAAQ,IAAD+Q,EACrC,MAAMC,EAAuB,OAALhR,QAAK,IAALA,GAAmB,QAAd+Q,EAAL/Q,EAAOiR,oBAAY,IAAAF,OAAd,EAALA,EAAqBC,gBAC7C,IAAKA,EACH,OAAO3T,cAAA,UAGT,MAAM6T,EAAUF,EAAgBnT,KAAKqM,IACnC,MAAMiH,EAASnR,EAAMiR,aAAalC,QAAQI,MAAMgC,GACvCA,EAAO9B,QAAUnF,IAO1B,MALoB,CAClBA,YACA0G,WAAYO,EAAOzU,KACnBN,QAAS+U,EAAO/U,YAapB,OACEiC,eAAA,OAAKd,UAAU,UAASC,SAAA,CACtBH,cAAA,OAAKE,UAAU,qBAAqBoH,KAAK,QAAOnH,SAC9CH,cAAA,UAAQX,KAAK,SAASa,UAAU,kBAAkB0E,QAXxD,WACEmP,MAAMC,KAAKrS,SAASsS,iBAAiB,kBAClC/D,QAAQhP,GAAMA,EAAER,QAChB0R,SAAQJ,IACPA,EAAMtR,MAAQ,OAOsDP,SAClEH,cAAA,OAAKwH,IAAK0M,GAAiBxM,IAAI,wBAAwBqB,MAAM,OAAOS,OAAO,aAG/ExJ,cAAA,OAAKE,UAAU,uBAAsBC,SAElC0T,EAAQrT,KAAK8S,GAEVtT,cAACqT,GAAW,CAEVxG,UAAWyG,EAAYzG,UACvB0G,WAAYD,EAAYC,WACxBxU,QAASuU,EAAYvU,QACrB4F,SAAUhC,EAAMgC,SAChBhB,iBAAkBhB,EAAMgB,kBAAiB,UAAApD,OAL1B+S,EAAYzG,mBC1C1B,WAA0B,6C,iDCK1B,SAASsH,GAAYxR,GAWhC,OACI3C,cAAA,OAAKE,UAAU,mBAAmB0E,QAXtC,WACI,MAGMwP,EAAW,CAAEC,OAAQ,CAAE,KADXC,KAAKC,MAAMC,cAAc7R,EAAMwD,OACCsO,WAAY,CAAC,SACzDC,EAAcJ,KAAKK,MAAMP,EAAU,CAACQ,SAAU,OAAQvV,KAAM,UAC5D8G,EAAO,IAAI0O,KAAK,CAACH,GAAc,CAACrV,KALnB,oFAMnByV,KAAUC,OAAO5O,EAAM,mBAIkChG,SACrDH,cAAA,OAAKE,UAAU,mBAAmBsH,IAAKwN,GAAiBtN,IAAI,2BCTzD,SAASuN,GAAqBtS,GAAQ,IAAD8B,EAClD,MAAMC,EAA0B,IAAIV,EAClCrB,EAAMuS,OAAOvR,iBACbhB,EAAMgC,UAGFwQ,EAAgBtS,oBACf+Q,EAAcwB,GAAmBrS,mBAAS,KAC1CsS,EAAkBC,GAAuBvS,mBAAS,iBAClD0P,EAAU8C,GAAexS,mBAAS,KAClC0O,EAAa+D,GAAkBzS,mBAAS,IAEzC0S,EAA6B,QAAlBhR,EAAG9B,EAAMmC,iBAAS,IAAAL,OAAA,EAAfA,EAAiB2F,mBAAmBrF,KAAKC,MAkD7D,SAAS0Q,IACPzQ,IAASiB,MAAK,KACRiP,EAAclI,UACXkI,EAAclI,QAAQ0I,UAAUC,SAAS,eA+BlDN,EAAoB,WAEpBpQ,MAAM,GAAD3E,OAAI4E,mFAAkC,SAAS,CAClDC,OAAQ,MACRC,KAAM,OACNC,MAAO,WACPS,QAAS,CACP,eAAgB,mBAChBC,MAAOrD,EAAMmC,UAAUmB,WACvB4P,OAAQjC,EAAakC,gBAAgBtU,KAAK,MAC1CwS,KAAMrR,EAAMuS,OAAOa,kBACnBC,MAAOC,IACPC,QAAStC,EAAauC,WACtBxR,SAAUhC,EAAMgC,YAGjBuB,MAAMC,IACL,GAAoB,MAAhBA,EAAKC,OAAgB,CACvBkP,EAAoB,cACpB,MAAM9P,EAAQ,IAAIa,MAAM,WAExB,MADAb,EAAMY,OAASD,EAAKC,OACdZ,EAER,OAAOW,EAAKG,UAEbJ,MAAMK,IACLgP,EAAYhP,EAASJ,MACrBmP,EAAoB,aAErB/P,OAAOC,IACN8P,EAAoB,sBAtD1B,SAASW,IAoBP,OAnBqBlC,MAAMC,KAAKrS,SAASsS,iBAAiB,kBACvD/D,QAAQhP,GAAMA,EAAER,QAChBF,KAAKU,IACJ,OAAQA,EAAE7B,MACR,IAAK,OACH,MAAM+W,EAAY,IAAI5T,KAAKtB,EAAER,OACvB2V,EAAO,sBAAA9V,OAAyB6V,EAAU1F,cAAa,KAAAnQ,OAAI6V,EAAUzF,WAAa,EAAC,KAAApQ,OACnF6V,EAAUxF,UAAS,WACnB0F,EAAW,sBAAA/V,OAAyB6V,EAAU1F,cAAa,KAAAnQ,OAAI6V,EAAUzF,WAAa,EAAC,KAAApQ,OACvF6V,EAAUxF,UAAS,oBAEzB,IAAI2F,EAASrV,EAAEsV,QAAQC,IAAInM,QAAQ,cAAegM,GAElD,OADAC,EAASA,EAAOjM,QAAQ,MAAO+L,GACxBE,EAET,QACE,MAAM,IAANhW,OAAWW,EAAEsV,QAAQC,IAAInM,QAAQ,MAAOpJ,EAAER,OAAM,SAGpCc,KAAK,SAsC3B,OApHA8B,qBAAU,KACRgS,EAAoB,kBACpBpQ,MAAM,GAAD3E,OAAI4E,mFAAkC,mBAAmB,CAC5DC,OAAQ,MACRC,KAAM,OACNC,MAAO,WACPS,QAAS,CACP,eAAgB,mBAChBC,MAAOrD,EAAMmC,UAAUmB,WACvByQ,SAAU/T,EAAM/B,MAGjBsF,MAAMC,IACL,GAAoB,MAAhBA,EAAKC,OAAgB,CACvBkP,EAAoB,gBACpB,MAAM9P,EAAQ,IAAIa,MAAM,WAExB,MADAb,EAAMY,OAASD,EAAKC,OACdZ,EAER,OAAOW,EAAKG,UAEbJ,MAAMK,IACL6O,EAAgB7O,GAChBiP,EACEjP,EAASuP,gBAAgBtV,KAAKmW,IAC5B,MAAMC,EAAYrQ,EAASmL,QAAQI,MAAMgC,GAChCA,EAAO9B,QAAU2E,IAE1B,MAAO,CACL3E,MAAO2E,EACPtX,KAAMuX,EAAUvX,KAChB0J,MAAO6N,EAAU7N,MACjBhK,QAAS6X,EAAU7X,aAKzBuW,EAAoB,iBAErB/P,OAAOC,IACN8P,EAAoB,qBAEvB,CAACG,IAEJnS,qBAAU,KACRoS,MACC,CAAC/S,EAAMgC,WAsEe,mBAArB0Q,EAEArV,cAAA,OAAKE,UAAU,cAAaC,SAC1BH,cAAA,OAAKE,UAAU,kBAAiBC,SAC9BH,cAAA,OAAKE,UAAU,6BAA6BoH,KAAK,SAAQnH,SACvDH,cAAA,QAAME,UAAU,kBAAiBC,SAAC,qBAOnB,iBAArBkV,EACKrV,cAAA4J,WAAA,IAIP5J,cAAA,OAAKE,UAAU,cAAaC,SAC1Ba,eAAA,OAAKd,UAAU,4BAA4BU,GAAG,wBAAuBT,SAAA,CACnEa,eAAA,OAAKd,UAAU,uCAAsCC,SAAA,CACnDH,cAAA,MAAIE,UAAU,mBAAmBU,GAAG,2BAA0BT,SAC5DH,cAAA,UACEE,UAAU,6BACVb,KAAK,SACL,iBAAe,WACf,iBAAe,yBACf,gBAAc,QACd,gBAAc,wBAAuBc,SAEpCuE,EAAwBlB,IAAI,oBAGjCxD,cAAA,OACEY,GAAG,wBACHV,UAAU,8BACV,kBAAgB,2BAChB,iBAAe,yBAAwBC,SAEvCH,cAAA,OAAKE,UAAU,iBAAgBC,SAC7BH,cAACyT,GAAO,CACNG,aAAcA,EACdjQ,iBAAkBhB,EAAMuS,OAAOvR,iBAC/BgB,SAAUhC,EAAMgC,kBAKxB3D,eAAA,OAAKd,UAAU,qCAAoCC,SAAA,CACjDH,cAAA,MAAIE,UAAU,mBAAmBU,GAAG,yBAAwBT,SAC1DH,cAAA,UACEe,IAAKoU,EACLjV,UAAU,6BACVb,KAAK,SACL,iBAAe,WACf,iBAAe,uBACf,gBAAc,QACd,gBAAc,sBACduF,QAAU1D,GAAMwU,IAAyBvV,SAExCuE,EAAwBlB,IAAI,kBAGjCxC,eAAA,OACEJ,GAAG,sBACHV,UAAU,8BACV,kBAAgB,yBAChB,iBAAe,yBAAwBC,SAAA,CAEjB,eAArBkV,GACCrV,cAAA,OAAKE,UAAU,oBAGM,YAArBmV,GAAuD,iBAArBA,IAClCrV,cAAA,OAAKE,UAAU,iCAAgCC,SAC7CH,cAAA,OAAKE,UAAU,6BAA6BoH,KAAK,SAAQnH,SACvDH,cAAA,QAAME,UAAU,kBAAiBC,SAAC,mBAKlB,WAArBkV,GACCrU,eAAA,OAAKd,UAAU,iBAAgBC,SAAA,CAC7BH,cAAA,OAAKE,UAAU,wBAAuBC,SACpCH,cAACmU,GAAW,CAAChO,KAAMsM,MAGrBzS,cAAC4P,GAAQ,CACPhP,GAAE,GAAAL,OAAKoC,EAAM/B,GAAE,aACf8Q,QAASD,EACT9M,SAAUhC,EAAMgC,SAChBhB,iBAAkBhB,EAAMuS,OAAOvR,iBAC/BwC,KAAMsM,EACNO,oBAAqBrQ,EAAMuS,OAAOlC,oBAClCnB,cAAelP,EAAMuS,OAAOrD,yBAMtC7Q,eAAA,OAAKd,UAAU,wBAAuBC,SAAA,CACpCH,cAAA,MACEE,UAAU,mBACVU,GAAG,mCAAkCT,SAErCH,cAAA,UACEE,UAAU,6BACVb,KAAK,SACL,iBAAe,WACf,iBAAe,gCACf,gBAAc,QACd,gBAAc,+BAA8Bc,SAE3C,8BAGLH,cAAA,OACEY,GAAG,+BACHV,UAAU,8BACV,kBAAgB,mCAChB,iBAAe,yBAAwBC,SAEvCa,eAAA,OAAKd,UAAU,iBAAgBC,SAAA,CAAC,gFAEdH,cAAA,QAAAG,SAAM,qBAAuB,iRCtQpD,MAAMwD,GAAmB,CAC9BC,MAAO,CACL,eAAgB,CACdC,GAAI,iCACJC,GAAI,gBACJC,GAAI,kBAGN,aAAc,CACZF,GAAI,iBACJC,GAAI,uBACJC,GAAI,oBAGN,0BAA2B,CACzBF,GAAI,iBACJC,GAAI,WACJC,GAAI,YAEN,kCAAmC,CACjCF,GAAI,8BACJC,GAAI,8BACJC,GAAI,+BAEN,oBAAqB,CACnBF,GAAI,WACJC,GAAI,eACJC,GAAI,UAEN,eAAgB,CACdF,GAAI,mBACJC,GAAI,kBACJC,GAAI,kBAEN,mBAAoB,CAClBF,GAAI,mBACJC,GAAI,sBACJC,GAAI,uBAEN,oBAAqB,CACnBF,GAAI,6BACJC,GAAI,SACJC,GAAI,UAEN,gBAAiB,CACfF,GAAI,sBACJC,GAAI,QACJC,GAAI,SAEN,iBAAkB,CAChBF,GAAI,qBACJC,GAAI,eACJC,GAAI,oBAEN,mBAAoB,CAClBF,GAAI,wBACJC,GAAI,eACJC,GAAI,oBAEN,sBAAuB,CACrBF,GAAI,oBACJC,GAAI,gBACJC,GAAI,gBAEN,yBAA0B,CACxBF,GAAI,8BACJC,GAAI,cACJC,GAAI,oBAEN,gCAAiC,CAC/BF,GAAI,oBACJC,GAAI,oBACJC,GAAI,uBAEN,kBAAmB,CACjBF,GAAI,uBACJC,GAAI,eACJC,GAAI,aAEN,yBAA0B,CACxBF,GAAI,qCACJC,GAAI,uBACJC,GAAI,oBAEN,6BAA8B,CAC5BF,GAAI,6BACJC,GAAI,mBACJC,GAAI,iBAEN,6BAA8B,CAC5BF,GAAI,6BACJC,GAAI,mBACJC,GAAI,iBAEN,qBAAsB,CACpBF,GAAI,6BACJC,GAAI,mBACJC,GAAI,iBAEN,qBAAsB,CACpBF,GAAI,6BACJC,GAAI,mBACJC,GAAI,iBAEN,uBAAwB,CACtBF,GAAI,8BACJC,GAAI,iBACJC,GAAI,kBAEN,qBAAsB,CACpBF,GAAI,0BACJC,GAAI,uBACJC,GAAI,gBAEN,mBAAoB,CAClBF,GAAI,+BACJC,GAAI,gBACJC,GAAI,mBAGN,6BAA8B,CAC5BF,GAAI,+BACJC,GAAI,mBACJC,GAAI,mBAEN,oBAAqB,CACnBF,GAAI,+BACJC,GAAI,gBACJC,GAAI,eAEN,+BAAgC,CAC9BF,GAAI,yBACJC,GAAI,oBACJC,GAAI,iBAEN,4BAA6B,CAC3BF,GAAI,+CACJC,GAAI,oCACJC,GAAI,gCAEN,4BAA6B,CAC3BF,GAAI,kCACJC,GAAI,uBACJC,GAAI,uBAEN,6BAA8B,CAC5BF,GAAI,iCACJC,GAAI,uBACJC,GAAI,mBAEN,6BAA8B,CAC5BF,GAAI,yCACJC,GAAI,wBACJC,GAAI,mBAEN,0BAA2B,CACzBF,GAAI,2BACJC,GAAI,kBACJC,GAAI,gBAEN,yBAA0B,CACxBF,GAAI,4BACJC,GAAI,mBACJC,GAAI,eAEN,uBAAwB,CACtBF,GAAI,sCACJC,GAAI,oBACJC,GAAI,kBAEN,qBAAsB,CACpBF,GAAI,yBACJC,GAAI,iBACJC,GAAI,gBAEN,qBAAsB,CACpBF,GAAI,0BACJC,GAAI,kBACJC,GAAI,gBAEN,+BAAgC,CAC9BF,GAAI,gDACJC,GAAI,4BACJC,GAAI,wBAEN,sBAAuB,CACrBF,GAAI,kCACJC,GAAI,sBACJC,GAAI,oBAEN,uBAAwB,CACtBF,GAAI,qDACJC,GAAI,yBACJC,GAAI,uBAEN,uBAAwB,CACtBF,GAAI,uDACJC,GAAI,4BACJC,GAAI,oBAGN,+BAAgC,CAC9BF,GAAI,6DACJC,GAAI,mCACJC,GAAI,iCAEN,uBAAwB,CACtBF,GAAI,kCACJC,GAAI,sBACJC,GAAI,uBAEN,oBAAqB,CACnBF,GAAI,yBACJC,GAAI,iBACJC,GAAI,eAEN,qBAAsB,CACpBF,GAAI,0BACJC,GAAI,kBACJC,GAAI,gBAEN,sBAAuB,CACrBF,GAAI,mCACJC,GAAI,uBACJC,GAAI,qBAEN,oBAAqB,CACnBF,GAAI,aACJC,GAAI,SACJC,GAAI,aAEN,2BAA4B,CAC1BF,GAAI,6BACJC,GAAI,mBACJC,GAAI,sBAEN,+BAAgC,CAC9BF,GAAI,qBACJC,GAAI,eACJC,GAAI,mBAEN,+BAAgC,CAC9BF,GAAI,qBACJC,GAAI,eACJC,GAAI,mBAEN,sBAAuB,CACrBF,GAAI,mBACJC,GAAI,aACJC,GAAI,iBAGN,uBAAwB,CACtBF,GAAI,qBACJC,GAAI,eACJC,GAAI,mBAGN,uBAAwB,CACtBF,GAAI,qBACJC,GAAI,eACJC,GAAI,mBAEN,yBAA0B,CACxBF,GAAI,sBACJC,GAAI,aACJC,GAAI,oBAEN,uBAAwB,CACtBF,GAAI,kBACJC,GAAI,mBACJC,GAAI,kBAEN,qBAAsB,CACpBF,GAAI,uBACJC,GAAI,YACJC,GAAI,qBAGN,+BAAgC,CAC9BF,GAAI,uBACJC,GAAI,eACJC,GAAI,qBAEN,sBAAuB,CACrBF,GAAI,uBACJC,GAAI,YACJC,GAAI,iBAEN,iCAAkC,CAChCF,GAAI,iBACJC,GAAI,gBACJC,GAAI,mBAEN,8BAA+B,CAC7BF,GAAI,uCACJC,GAAI,gCACJC,GAAI,kCAEN,8BAA+B,CAC7BF,GAAI,0BACJC,GAAI,mBACJC,GAAI,yBAEN,+BAAgC,CAC9BF,GAAI,yBACJC,GAAI,mBACJC,GAAI,qBAEN,+BAAgC,CAC9BF,GAAI,iCACJC,GAAI,oBACJC,GAAI,qBAGN,4BAA6B,CAC3BF,GAAI,mBACJC,GAAI,cACJC,GAAI,kBAEN,2BAA4B,CAC1BF,GAAI,oBACJC,GAAI,eACJC,GAAI,iBAEN,yBAA0B,CACxBF,GAAI,8BACJC,GAAI,gBACJC,GAAI,oBAEN,uBAAwB,CACtBF,GAAI,iBACJC,GAAI,aACJC,GAAI,kBAEN,uBAAwB,CACtBF,GAAI,kBACJC,GAAI,cACJC,GAAI,kBAEN,iCAAkC,CAChCF,GAAI,wCACJC,GAAI,uBACJC,GAAI,0BAEN,wBAAyB,CACvBF,GAAI,0BACJC,GAAI,kBACJC,GAAI,sBAGN,yBAA0B,CACxBF,GAAI,6CACJC,GAAI,qBACJC,GAAI,yBAEN,yBAA0B,CACxBF,GAAI,+CACJC,GAAI,wBACJC,GAAI,sBAEN,iCAAkC,CAChCF,GAAI,qDACJC,GAAI,+BACJC,GAAI,mCAEN,yBAA0B,CACxBF,GAAI,0BACJC,GAAI,kBACJC,GAAI,yBAGN,sBAAuB,CACrBF,GAAI,iBACJC,GAAI,aACJC,GAAI,iBAEN,uBAAwB,CACtBF,GAAI,kBACJC,GAAI,cACJC,GAAI,kBAEN,wBAAyB,CACvBF,GAAI,2BACJC,GAAI,mBACJC,GAAI,uBAEN,oBAAqB,CACnBF,GAAI,sBACJC,GAAI,qBACJC,GAAI,uBAGN,kBAAmB,CACjBF,GAAI,sBACJC,GAAI,mBACJC,GAAI,iBAEN,gBAAiB,CACfF,GAAI,kBACJC,GAAI,iBACJC,GAAI,gBAEN,qBAAsB,CACpBF,GAAI,6BACJC,GAAI,iBACJC,GAAI,gBAEN,gBAAiB,CACfF,GAAI,4BACJC,GAAI,aACJC,GAAI,aAEN,sBAAuB,CACrBF,GAAI,aACJC,GAAI,SACJC,GAAI,kBAEN,gBAAiB,CACfF,GAAI,+BACJC,GAAI,gBACJC,GAAI,oBAEN,mBAAoB,CAClBF,GAAI,4BACJC,GAAI,oBACJC,GAAI,mBAEN,qBAAsB,CACpBF,GAAI,yBACJC,GAAI,gCACJC,GAAI,2BAEN,eAAgB,CACdF,GAAI,eACJC,GAAI,YACJC,GAAI,WAEN,eAAgB,CACdF,GAAI,aACJC,GAAI,YACJC,GAAI,WAEN,iBAAkB,CAChBF,GAAI,gBACJC,GAAI,aACJC,GAAI,aAEN,kBAAmB,CACjBF,GAAI,yBACJC,GAAI,iBACJC,GAAI,kBAEN,wBAAyB,CACvBF,GAAI,mCACJC,GAAI,8BACJC,GAAI,wBAEN,sBAAuB,CACrBF,GAAI,kBACJC,GAAI,cACJC,GAAI,mBAEN,sBAAuB,CACrBF,GAAI,sBACJC,GAAI,kBACJC,GAAI,uBAEN,sBAAuB,CACrBF,GAAI,sBACJC,GAAI,kBACJC,GAAI,uBAEN,mBAAoB,CAClBF,GAAI,iBACJC,GAAI,SACJC,GAAI,aAEN,mBAAoB,CAClBF,GAAI,qBACJC,GAAI,aACJC,GAAI,iBAEN,mBAAoB,CAClBF,GAAI,qBACJC,GAAI,aACJC,GAAI,iBAEN,eAAgB,CACdF,GAAI,WACJC,GAAI,QACJC,GAAI,OAEN,eAAgB,CACdF,GAAI,SACJC,GAAI,QACJC,GAAI,OAEN,iBAAkB,CAChBF,GAAI,YACJC,GAAI,SACJC,GAAI,SAEN,aAAc,CACZF,GAAI,mBACJC,GAAI,eACJC,GAAI,iBAEN,oBAAqB,CACnBF,GAAI,uBACJC,GAAI,sBACJC,GAAI,oBAEN,eAAgB,CACdF,GAAI,eACJC,GAAI,YACJC,GAAI,WAEN,eAAgB,CACdF,GAAI,aACJC,GAAI,YACJC,GAAI,WAEN,iBAAkB,CAChBF,GAAI,gBACJC,GAAI,aACJC,GAAI,aAEN,iBAAkB,CAChBF,GAAI,kBACJC,GAAI,cACJC,GAAI,WAEN,iBAAkB,CAChBF,GAAI,oBACJC,GAAI,gBACJC,GAAI,aAEN,oBAAqB,CACnBF,GAAI,uBACJC,GAAI,WACJC,GAAI,sBAEN,mBAAoB,CAClBF,GAAI,wBACJC,GAAI,kBACJC,GAAI,iBAEN,uBAAwB,CACtBF,GAAI,eACJC,GAAI,aACJC,GAAI,iBAEN,wBAAyB,CACvBF,GAAI,qBACJC,GAAI,mBACJC,GAAI,0BAEN,wBAAyB,CACvBF,GAAI,oBACJC,GAAI,kBACJC,GAAI,2BAEN,iBAAkB,CAChBF,GAAI,oCACJC,GAAI,YACJC,GAAI,oBAEN,+BAAgC,CAC9BF,GAAI,uCACJC,GAAI,6BACJC,GAAI,oBAGN,UAAa,CACXF,GAAI,aACJC,GAAI,SACJC,GAAI,aAGR,WAAY,CACRF,GAAI,cACJC,GAAI,gBACJC,GAAI,YAGN,KAAQ,CACNF,GAAI,UACJC,GAAI,UACJC,GAAI,QAGN,qBAAsB,CACpBF,GAAI,4BACJC,GAAI,0BACJC,GAAI,wBCnlBK,WAA0B,qDCA1B,OAA0B,8B,OCK1B,MAAM8S,WAAmCC,YACtD7S,YAAYtB,GACVoU,MAAMpU,GACNwB,KAAK6S,kBAAoB7S,KAAK6S,kBAAkBC,KAAK9S,MACrDA,KAAKiC,OAAS,GAGhB8Q,aAAaC,GACXhT,KAAKiC,OAAS+Q,EACdhT,KAAKiT,cAGPJ,oBACE7S,KAAKxB,MAAM0U,QAAQlT,KAAKxB,MAAMjC,MAAOyD,KAAK+S,aAAaD,KAAK9S,OAG9DmT,SACE,GAAInT,KAAKxB,MAAMwD,KAAKwM,UAAU4E,aAC5B,OAAQpT,KAAKiC,QACX,IAAK,UACH,OACEpG,cAAA,OAAKE,UAAU,uCAAsCC,SACnDH,cAAA,OAAKE,UAAU,6BAA6BoH,KAAK,SAAQnH,SACvDH,cAAA,QAAME,UAAU,kBAAiBC,SAAC,mBAK1C,IAAK,QACH,OACEH,cAAA,OAAKE,UAAU,uCAAsCC,SACnDH,cAAA,OACEwH,IAAKgQ,GACL5S,QAAST,KAAK6S,kBACdtP,IAAI,eAKZ,QACE,OACE1H,cAAA,OAAKE,UAAU,uCAAsCC,SACnDH,cAAA,OACEwH,IAAKiQ,GACL7S,QAAST,KAAK6S,kBACdtP,IAAI,eAOhB,OACE1H,cAAA,OAAKE,UAAU,qCC1DN,SAASwX,GAAaC,GAAyC,IAAhCC,EAAWvV,UAAAC,OAAA,QAAAvC,IAAAsC,UAAA,GAAAA,UAAA,GAAC,GAAIwV,EAASxV,UAAAC,OAAA,QAAAvC,IAAAsC,UAAA,GAAAA,UAAA,GAAC,IACpE,MAAMyV,EAAiBrN,KAAKkN,GACtBI,EAAa,GAEnB,IAAK,IAAIC,EAAS,EAAGA,EAASF,EAAexV,OAAQ0V,GAAUH,EAAW,CACxE,MAAMjN,EAAQkN,EAAelN,MAAMoN,EAAQA,EAASH,GAE9CI,EAAc,IAAIlE,MAAMnJ,EAAMtI,QACpC,IAAK,IAAIiQ,EAAI,EAAGA,EAAI3H,EAAMtI,OAAQiQ,IAChC0F,EAAY1F,GAAK3H,EAAMF,WAAW6H,GAGpC,MAAM2F,EAAY,IAAIC,WAAWF,GACjCF,EAAWK,KAAKF,GAGlB,MAAMG,EAAO,IAAIxD,KAAKkD,EAAY,CAAC1Y,KAAMuY,IACzC,OAAOS,ECXI,SAASC,GAAe3V,GAmCrC,OACE3C,cAAA,OAAKE,UAAU,iBAAgBC,SAC7BH,cAACiV,GAAoB,CACnBrU,GAAG,iBACH2X,aAAa,WACb5T,SAAUhC,EAAMgC,SAChBG,UAAWnC,EAAMmC,UACjBoQ,OAAQ,CACNsD,SAAU,GACV7U,iBAAkBA,GAClBoS,kBAAmB,iBACnB/C,oBAAqB,CACnB6D,+BAEFhF,cAAe,CACb,CACEG,MAAO,uBACPC,aAAc,6BACdC,mBAAoB,CAClBmF,QAASA,CAACoB,EAAO5B,IApD/BhR,eAA6B4S,EAAOvB,GAClCA,EAAa,WACbhS,MAAM,GAAD3E,OAAI4E,mFAAkC,wBAAwB,CACjEC,OAAQ,MACRC,KAAM,OACNC,MAAO,WACPS,QAAS,CACP,eAAgB,mBAChBC,MAAOrD,EAAMmC,UAAUmB,WACvByS,MAAOD,KAGRvS,MAAMC,IACL,GAAoB,MAAhBA,EAAKC,OAAgB,CACvB,MAAMZ,EAAQ,IAAIa,MAAM,WAExB,MADAb,EAAMY,OAASD,EAAKC,OACdZ,EAER,OAAOW,EAAKG,UAEbJ,MAAMK,IACLA,EAASoS,UAAUvG,SAAQwG,IACzB,MAAMP,EAAOX,GAAakB,EAAIC,WAC9B9D,kBAAOsD,EAAMO,EAAIE,aAEnB5B,EAAa,OAEd3R,OAAOwT,IACNtT,QAAQD,MAAMuT,GACd7B,EAAa,YAuB2C8B,CAAcP,EAAO5B,WCvDtE,SAASoC,GAAYtW,GAClC,OAAKA,EAAMmC,UAKT9D,eAAA,OAAKd,UAAU,eAAcC,SAAA,CAC3BH,cAACyI,EAAU,CACT9D,SAAUhC,EAAMgC,SAChB+D,aAAc,WACd5D,UAAWnC,EAAMmC,YAGnB9E,cAACsY,GAAc,CACb3T,SAAUhC,EAAMgC,SAChBG,UAAWnC,EAAMmC,eAbd9E,cAACkO,IAAQ,CAAC/E,GAAG,M,cCFT,SAAS+P,GAAWxa,GAA4D,IAA3D,SAAEiG,EAAQ,iBAAEhB,EAAgB,OAAEwV,EAAM,WAAEC,EAAU,KAAE3Z,GAAMf,EACxF,MAAO2a,EAAYC,GAAiBvW,mBAAS,IAEvC2B,EAA0B,IAAIV,EAChCL,EACAgB,GAGJ,GAAI0U,EACA,OACIrZ,cAACkO,IAAQ,CAAC/E,GAAIkQ,IAQtB,OACIrZ,cAAA,OAAKY,GAAIuY,EAAQjZ,UAAS,eAAAK,OAAkB6Y,EAAc,WAAa,IAAMxU,QALjF,WACI0U,EAAc7Z,IAI0FU,SACpGa,eAAA,OAAKd,UAAU,WAAUC,SAAA,CACrBH,cAAA,OAAKE,UAAU,QAAOC,SAClBH,cAAA,MAAAG,SAAKuE,EAAwBlB,IAAI,GAADjD,OAAI4Y,EAAM,eAE9CnZ,cAAA,OAAKE,UAAU,QAAOC,SAClBH,cAAA,MAAAG,SAAKuE,EAAwBlB,IAAI,GAADjD,OAAI4Y,EAAM,oBC3B/C,SAASI,GAAQ5W,GAC5B,OAAKA,EAAM6W,KAKPxZ,cAAA,OAAKE,UAAU,UAASC,SAEhBwC,EAAM8W,UAAUjZ,KAAIwI,GAEZhJ,cAACkZ,GAAW,CAERvU,SAAUhC,EAAMgC,SAChBhB,iBAAkBhB,EAAMgB,iBACxBwV,OAAQnQ,EAAKmQ,OACbC,WAAYpQ,EAAKoQ,WACjB3Z,KAAMuJ,EAAKvJ,MALNuJ,EAAKmQ,YATvB,KCLR,MAAMxV,GAAmB,CAC9BC,MAAO,CACL,yBAA0B,CACxBC,GAAI,8BACJC,GAAI,cACJC,GAAI,UAGN,yBAA0B,CACxBF,GAAI,8CACJC,GAAI,iCACJC,GAAI,wCAGN,0BAA2B,CACzBF,GAAI,oBACJC,GAAI,iBACJC,GAAI,qBAGN,0BAA2B,CACzBF,GAAI,6CACJC,GAAI,gDACJC,GAAI,4CCpBK,SAAS2V,GAAiB/W,GACrC,OACI3C,cAACuZ,GAAO,CACJC,KAAM7W,EAAM6W,KACZ7U,SAAUhC,EAAMgC,SAChBhB,iBAAkBA,GAClB8V,UACI,CACI,CAAEN,OAAQ,mBAAoB1Z,KAAM,qBACpC,CAAE0Z,OAAQ,oBAAqB1Z,KAAM,yBCP1C,SAASka,GAAchX,GAClC,MAAOiX,EAAWC,GAAW9W,oBAAS,GAMtC,OAAKJ,EAAMmC,UAOP9D,eAAA,OAAKd,UAAU,iBAAgBC,SAAA,CAC3BH,cAACyI,EAAU,CACP9D,SAAUhC,EAAMgC,SAChB+D,aAAc,YACd5D,UAAWnC,EAAMmC,UACjBsE,aAhBZ,WACIyQ,GAASD,MAkBL5Z,cAAA,QAAAG,SACIH,cAAA,SAAAG,SACIH,cAAC0Z,GAAgB,CACbF,KAAMI,EACNjV,SAAUhC,EAAMgC,kBAjB5B3E,cAACkO,IAAQ,CAAC/E,GAAG,M,cCdlB,MAAMxF,GAAmB,CAC9BC,MAAO,CACL,aAAc,CACZC,GAAI,iBACJC,GAAI,gBACJC,GAAI,cAGN,cAAe,CACbF,GAAI,SACJC,GAAI,SACJC,GAAI,UAGN,mCAAoC,CAClCF,GAAI,uFACJC,GAAI,yDACJC,GAAI,gDAGN,2BAA4B,CAC1BF,GAAI,kCACJC,GAAI,+BACJC,GAAI,8BAGN,aAAc,CACZF,GAAI,oBACJC,GAAI,YACJC,GAAI,gBAGN,sBAAuB,CACrBF,GAAI,qCACJC,GAAI,4BACJC,GAAI,4BAGN,wBAAyB,CACvBF,GAAI,4BACJC,GAAI,sBACJC,GAAI,iBAGN,cAAe,CACbF,GAAI,mEACJC,GAAI,yEACJC,GAAI,yDAGN,YAAa,CACXF,GAAI,uDACJC,GAAI,iCACJC,GAAI,8BC7CK,SAAS+V,GAAanX,GACnC,MAAM+B,EAA0B,IAAIV,EAClCL,GACAhB,EAAMgC,WAGDwG,EAAkBC,GAAuBrI,oBAAS,IAElDsI,EAAYC,GAAiBvI,mBAAS,KAEtC9D,EAAQsM,GAAaxI,mBAAS,CACnCzD,KAAM,GACN0F,MAAO,GACP4G,2BAA4B,GAC5BC,mBAAoB,KAGtB,SAASkO,EAAmBhM,EAAeC,GACzChC,EAAiBtH,EAAwBlB,IAAIuK,IAC7C7B,EAAiB8B,GACjB7G,YAAW,KACT6E,EAAiB,IACjBE,EAAiB,MAChB,KAYL,MAAOhN,EAAa4D,GAAkBC,mBAAS,CAC7CzD,KAAM,GACN0F,MAAO,GACP4G,2BAA4B,GAC5BC,mBAAoB,KAGhBC,EAAa,CACjBxM,KAAMuD,mBACNmC,MAAOnC,mBACP+I,2BAA4B/I,mBAC5BgJ,mBAAoBhJ,qBAGfkJ,EAAeC,GAAoBjJ,mBAAS,KAC5CkJ,EAAeC,GAAoBnJ,mBAAS,IAE7CoJ,EAAa,CACjB7M,KAAM,CACJK,SAAUyM,GAGZpH,MAAO,CACLrF,SAAUyM,EACVC,WAuBJ,SAAsB3L,GACpB,OAAO4L,IAAUC,QAAQ7L,KArBzBkL,2BAA4B,GAC5BC,mBAAoB,IAGhBe,EAAa,CACjBjN,SAAU+E,EAAwBlB,IAAI,uBACtCmJ,cAAejI,EAAwBlB,IAAI,4BAC3C6I,WAAY3H,EAAwBlB,IAAI,yBACxCgJ,qBAAsB9H,EAAwBlB,IAC5C,mCAEFkJ,6BAA8BhI,EAAwBlB,IACpD,4CAIJ,SAAS4I,EAAW1L,GAClB,OAAOA,EA8FT,SAAStB,EAAgB8B,GACvB,MAAM2L,EAAY3L,EAAEZ,OAAOhB,KAC3BiM,GAAWuB,IAAc,IACpBA,EACH,CAACD,GAAY,OAGfE,EAAcF,GAGhB,SAAS1N,EAAkB+B,GACzB,MAAMR,EAAQQ,EAAEZ,OAAOI,MACjBmM,EAAY3L,EAAEZ,OAAOhB,KAC3BwD,EAAe,IACV5D,EACH,CAAC2N,GAAYnM,IAEf6K,GAAWuB,IAAc,IACpBA,EACH,CAACD,GAAY,OAIjB,SAASE,EAAcF,GACrB,MAAMnM,EAAQxB,EAAY2N,GAC1B,IAAIG,GAAU,EAOd,GANAzB,GAAWuB,IAAc,IACpBA,EACH,CAACD,GAAY,OAEff,EAAWe,GAAWI,QAAQC,kBAAkB,SAElBnN,IAA1BoM,EAAWU,GACb,IAAK,MAAOM,EAAgBC,KAAgBC,OAAOC,QACjDnB,EAAWU,IAEX,GAAIG,IACFA,EAAUI,EAAY1M,IACjBsM,GAAS,CACZ,MAAMO,EAAYX,EAAWO,GAC7B5B,GAAWuB,IACF,IACFA,EACH,CAACD,GAAYU,MAGjBzB,EAAWe,GAAWI,QAAQC,kBAAkBK,GAKxD,OAAOP,EAGT,OA7IA1J,qBAAU,KACR4B,MAAM,GAAD3E,OAAI4E,mFAAkC,cAAc,CACvDC,OAAQ,MACRC,KAAM,OACNC,MAAO,WACPS,QAAS,CACP,eAAgB,mBAChB,MAASpD,EAAMmC,UAAUmB,cAG1BC,MAAMC,IACL,GAAoB,MAAhBA,EAAKC,OAAgB,CACvBkF,EAAc,WACd,MAAM9F,EAAQ,IAAIa,MAAM,WAExB,MADAb,EAAMY,OAASD,EAAKC,OACdZ,EAER,OAAOW,EAAKG,UAEbJ,MAAMK,IACL+E,EAAc,SACdxI,EAAe,CACbxD,KAAMiH,EAASjH,KACf0F,MAAOuB,EAASvB,MAChB4G,2BAA4BrF,EAASqF,2BACrCC,mBAAoBtF,EAASsF,wBAGhCtG,OAAOC,IACgB,oBAAlBA,EAAMiB,SACR6E,EAAc,oBAGnB,IAEHhI,qBAAU,KA9FRiI,EAAU,CACRjM,KAAM,GACN0F,MAAO,GACP4G,2BAA4B,GAC5BC,mBAAoB,OA4FrB,CAAClJ,EAAMgC,WAwGLhC,EAAMmC,UAKT9D,eAAA,OAAKd,UAAU,gBAAeC,SAAA,EAC1BkL,GACArL,cAAA,OAAKE,UAAS,wBAA2BoH,KAAK,QAAOnH,SAClDuE,EAAwBlB,IAAI,6BAGjB,gBAAf6H,GACCrL,cAAA,OAAKE,UAAS,0BAA6BoH,KAAK,QAAOnH,SACpDuE,EAAwBlB,IAAI,iBAGjB,YAAf6H,GACCrL,cAAA,OAAKE,UAAS,0BAA6BoH,KAAK,QAAOnH,SACpDuE,EAAwBlB,IAAI,wBAGhCuI,GACC/L,cAAA,OAAKE,UAAS,oBAAAK,OAAsB0L,GAAiB3E,KAAK,QAAOnH,SAC9D4L,IAGW,UAAfV,GACCrK,eAAA,QACEwM,SAlIR3H,eAA4B3E,GAC1BA,EAAEuM,iBAoCJ,WACE,IAAIC,GAAc,EAClB,IAAK,MAAMb,KAAaQ,OAAOM,KAAKzO,GAAc,CAC3B6N,EAAcF,KAEjCa,GAAc,GAGlB,OAAOA,EA3CHA,IACFxI,MAAM,GAAD3E,OAAI4E,mFAAkC,cAAc,CACvDC,OAAQ,MACRC,KAAM,OACNC,MAAO,WACPS,QAAS,CACP,eAAgB,mBAChB,MAASpD,EAAMmC,UAAUmB,YAE3B2H,KAAM9L,KAAKC,UAAU,CACnBzC,KAAMJ,EAAYI,KAClB0F,MAAO9F,EAAY8F,MACnB4G,6BAA4B1M,EAAY0M,2BAGxCC,qBAAoB3M,EAAY2M,uBAGjC3F,MAAMC,IACL,GAAoB,MAAhBA,EAAKC,OACP,MAAM,IAAIC,MAAM,cAIlB,OAFA0T,EAAmB,YAAa,WAEzB5T,EAAKG,UAEbf,OAAOC,IACNuU,EACoB,eAAlBvU,EAAMiB,QAA2BjB,EAAMiB,QAAU,qBACjD,cAoGFwH,YAAY,EACZ/N,UAAS,oBAAAK,OACP4K,EAAmB,gBAAkB,IACpChL,SAAA,CAEHH,cAACvB,EAAa,CACZmB,UAAWkM,EAAiB,KAC5BxM,KAAK,OACLC,UAAWmF,EAAwBlB,IAAI,cACvCnE,KAAK,OACLJ,OAAQA,EACRC,YAAaA,EACbE,gBAAiBA,EACjBD,kBAAmBA,EACnBQ,UAAU,IAEZK,cAACvB,EAAa,CACZmB,UAAWkM,EAAkB,MAC7BxM,KAAK,QACLC,UAAWmF,EAAwBlB,IAAI,eACvCnE,KAAK,QACLJ,OAAQA,EACRC,YAAaA,EACbE,gBAAiBA,EACjBD,kBAAmBA,EACnBQ,UAAU,IAEZK,cAACvB,EAAa,CACZmB,UAAWkM,EAAuC,2BAClDxM,KAAK,6BACLC,UAAWmF,EAAwBlB,IAAI,oCAGvCnE,KAAK,WACLJ,OAAQA,EACRC,YAAaA,EACbE,gBAAiBA,EACjBD,kBAAmBA,EACnBQ,UAAU,IAEZK,cAACvB,EAAa,CACZmB,UAAWkM,EAA+B,mBAC1CxM,KAAK,qBACLC,UAAWmF,EAAwBlB,IAAI,4BACvCnE,KAAK,WACLJ,OAAQA,EACRC,YAAaA,EACbE,gBAAiBA,EACjBD,kBAAmBA,EACnBQ,UAAU,IAEZK,cAAA,OAAKE,UAAU,WAAUC,SACvBH,cAAA,UAAQX,KAAK,SAASa,UAAU,kBAAiBC,SAC9CuE,EAAwBlB,IAAI,wBAjFhCxD,cAACkO,IAAQ,CAAC/E,GAAG,MC5OjB,MAAMxF,GAAmB,CAC9BC,MAAO,CACL,aAAc,CACZC,GAAI,4BACJC,GAAI,mBACJC,GAAI,mBCGK,SAASiW,GAAarX,GACnC,MAAM+B,EAA0B,IAAIV,EAClCL,GACAhB,EAAMgC,UAGR,IAAKhC,EAAMmC,UACT,OAAO9E,cAACkO,IAAQ,CAAC/E,GAAG,MAGtB,IAAIiF,EACFpN,eAAA4I,WAAA,CAAAzJ,SAAA,CACEH,cAAA,MAAAG,SAAKuE,EAAwBlB,IAAI,gBACjCxD,cAAC8Z,GAAY,CAACnV,SAAUhC,EAAMgC,SAAUG,UAAWnC,EAAMmC,eAI7D,OACE9D,eAAA,OAAKd,UAAU,gBAAeC,SAAA,CAC5BH,cAACyI,EAAU,CACT9D,SAAUhC,EAAMgC,SAChB+D,aAAc,WACd5D,UAAWnC,EAAMmC,YAEnB9E,cAAA,QAAME,UAAU,qBAAoBC,SAClCH,cAAA,OAAKE,UAAU,qBAAoBC,SACjCH,cAAC+J,EAAU,CAACpF,SAAUhC,EAAMgC,SAAUqF,KAAMoE,W,OClC/C,MAAMzK,GAAmB,CAC9BC,MAAO,CACL,eAAgB,CACdC,GAAI,iCACJC,GAAI,gBACJC,GAAI,kBAGN,aAAc,CACZF,GAAI,0BACJC,GAAI,gBACJC,GAAI,kBAEN,oBAAqB,CACnBF,GAAI,yBACJC,GAAI,QACJC,GAAI,UAEN,iBAAkB,CAChBF,GAAI,cACJC,GAAI,gBACJC,GAAI,YAEN,mBAAoB,CAClBF,GAAI,gBACJC,GAAI,cACJC,GAAI,oBAEN,cAAe,CACbF,GAAI,QACJC,GAAI,MACJC,GAAI,OAEN,gBAAiB,CACfF,GAAI,uBACJC,GAAI,MACJC,GAAI,eAEN,gBAAiB,CACfF,GAAI,aACJC,GAAI,UACJC,GAAI,SAEN,mBAAoB,CAClBF,GAAI,gBACJC,GAAI,aACJC,GAAI,aAGN,yBAA0B,CACxBF,GAAI,qBACJC,GAAI,qBACJC,GAAI,sBAGN,kBAAmB,CACjBF,GAAI,aACJC,GAAI,aACJC,GAAI,gBCvDK,SAASkW,GAAatX,GACnC,OACE3C,cAAA,OAAKE,UAAU,SAAQC,SACrBH,cAACiV,GAAoB,CACnBrU,GAAG,eACH2X,aAAa,WACb5T,SAAUhC,EAAMgC,SAChBG,UAAWnC,EAAMmC,UACjBoQ,OAAQ,CACNsD,SAAU,GACV7U,iBAAkBA,GAClBoS,kBAAmB,uBCTd,SAASkD,GAAYtW,GAChC,OAAKA,EAAMmC,UAOP9D,eAAA,OAAKd,UAAU,wBAAuBC,SAAA,CAClCH,cAACyI,EAAU,CACP9D,SAAUhC,EAAMgC,SAChB+D,aAAc,mBACd5D,UAAWnC,EAAMmC,YAGrB9E,cAACia,GAAY,CACTtV,SAAUhC,EAAMgC,SAChBG,UAAWnC,EAAMmC,eAdrB9E,cAACkO,IAAQ,CAAC/E,GAAG,M,OCRlB,MAAMxF,GAAmB,CAC9BC,MAAO,CACL,eAAgB,CACdC,GAAI,iCACJC,GAAI,gBACJC,GAAI,kBAGN,aAAc,CACZF,GAAI,yBACJC,GAAI,UACJC,GAAI,WAEN,mBAAoB,CAClBF,GAAI,mBACJC,GAAI,kBACJC,GAAI,gBAEN,oBAAqB,CACnBF,GAAI,yBACJC,GAAI,QACJC,GAAI,UAEN,wBAAyB,CACvBF,GAAI,4BACJC,GAAI,gBACJC,GAAI,iBAEN,2BAA4B,CAC1BF,GAAI,qCACJC,GAAI,mBACJC,GAAI,qBAEN,iBAAkB,CAChBF,GAAI,cACJC,GAAI,cACJC,GAAI,YAEN,qBAAsB,CACpBF,GAAI,wBACJC,GAAI,uBACJC,GAAI,oBAEN,cAAe,CACbF,GAAI,QACJC,GAAI,MACJC,GAAI,OAEN,aAAc,CACZF,GAAI,UACJC,GAAI,UACJC,GAAI,UAEN,cAAe,CACbF,GAAI,QACJC,GAAI,YACJC,GAAI,aAEN,gBAAiB,CACfF,GAAI,UACJC,GAAI,MACJC,GAAI,eAEN,gBAAiB,CACfF,GAAI,UACJC,GAAI,UACJC,GAAI,WAEN,oBAAqB,CACnBF,GAAI,iBACJC,GAAI,UACJC,GAAI,UAEN,kBAAmB,CACjBF,GAAI,eACJC,GAAI,eACJC,GAAI,oBAEN,WAAc,CACZF,GAAI,WACJC,GAAI,cACJC,GAAI,eAEN,YAAe,CACbF,GAAI,WACJC,GAAI,cACJC,GAAI,gBAGN,yBAA0B,CACxBF,GAAI,qBACJC,GAAI,qBACJC,GAAI,sBAEN,kBAAmB,CACjBF,GAAI,aACJC,GAAI,aACJC,GAAI,cAEN,qBAAsB,CACpBF,GAAI,4BACJC,GAAI,0BACJC,GAAI,wBCtGK,WAA0B,qDCA1B,OAA0B,8B,OCK1B,MAAMmW,WAAkCpD,YACrD7S,YAAYtB,GACVoU,MAAMpU,GACNwB,KAAK6S,kBAAoB7S,KAAK6S,kBAAkBC,KAAK9S,MACrDA,KAAKiC,OAAS,GAGhB8Q,aAAaC,GACXhT,KAAKiC,OAAS+Q,EACdhT,KAAKiT,cAGPJ,oBACE7S,KAAKxB,MAAM0U,QAAQlT,KAAKxB,MAAMjC,MAAOyD,KAAK+S,aAAaD,KAAK9S,OAG9DmT,SACE,GAAInT,KAAKxB,MAAMwD,KAAKwM,UAAU4E,aAC5B,OAAQpT,KAAKiC,QACX,IAAK,UACH,OACEpG,cAAA,OAAKE,UAAU,sCAAqCC,SAClDH,cAAA,OAAKE,UAAU,6BAA6BoH,KAAK,SAAQnH,SACvDH,cAAA,QAAME,UAAU,kBAAiBC,SAAC,mBAK1C,IAAK,QACH,OACEH,cAAA,OAAKE,UAAU,sCAAqCC,SAClDH,cAAA,OACEwH,IAAKgQ,GACL5S,QAAST,KAAK6S,kBACdtP,IAAI,eAKZ,QACE,OACE1H,cAAA,OAAKE,UAAU,sCAAqCC,SAClDH,cAAA,OACEwH,IAAKiQ,GACL7S,QAAST,KAAK6S,kBACdtP,IAAI,eAOhB,OACE1H,cAAA,OAAKE,UAAU,oCCpDN,SAASia,GAAexX,GAoCrC,OACE3C,cAAA,OAAKE,UAAU,UAASC,SACtBH,cAACiV,GAAoB,CACnBrU,GAAG,kBACH2X,aAAa,WACb5T,SAAUhC,EAAMgC,SAChBG,UAAWnC,EAAMmC,UACjBoQ,OAAQ,CACNsD,SAAU,GACV7U,iBAAkBA,GAClBoS,kBAAmB,kBACnB/C,oBAAqB,CACnBkH,8BAEFrI,cAAe,CACb,CACEG,MAAO,uBACPC,aAAc,4BACdC,mBAAoB,CAClBmF,QAASA,CAAC+C,EAAQC,IArDhCxU,eAA6BuU,EAAQlD,GACnCA,EAAa,WAEbhS,MAAM,GAAD3E,OAAI4E,mFAAkC,6BAA6B,CACtEC,OAAQ,MACRC,KAAM,OACNC,MAAO,WACPS,QAAS,CACP,eAAgB,mBAChBC,MAAOrD,EAAMmC,UAAUmB,WACvBqU,OAAQF,KAGTlU,MAAMC,IACL,GAAoB,MAAhBA,EAAKC,OAAgB,CACvB,MAAMZ,EAAQ,IAAIa,MAAM,WAExB,MADAb,EAAMY,OAASD,EAAKC,OACdZ,EAER,OAAOW,EAAKG,UAEbJ,MAAMK,IACLA,EAASoS,UAAUvG,SAAQwG,IACzB,MAAMP,EAAOX,GAAakB,EAAIC,WAC9B9D,kBAAOsD,EAAMO,EAAIE,aAEnB5B,EAAa,OAEd3R,OAAOwT,IACNtT,QAAQD,MAAMuT,GACd7B,EAAa,YAuB2C8B,CAAcoB,EAAQC,WCxDvE,SAASpB,GAAYtW,GAChC,OAAKA,EAAMmC,UAOP9D,eAAA,OAAKd,UAAU,yBAAwBC,SAAA,CACnCH,cAACyI,EAAU,CACP9D,SAAUhC,EAAMgC,SAChB+D,aAAc,oBACd5D,UAAWnC,EAAMmC,YAGrB9E,cAACua,GAAa,CACV5V,SAAUhC,EAAMgC,SAChBG,UAAWnC,EAAMmC,eAdrB9E,cAACkO,IAAQ,CAAC/E,GAAG,M,OCRlB,MAAMxF,GAAmB,CAC9BC,MAAO,CACL,eAAgB,CACdC,GAAI,iCACJC,GAAI,gBACJC,GAAI,kBAGN,aAAc,CACZF,GAAI,YACJC,GAAI,iBACJC,GAAI,gBAGN,kCAAmC,CACjCF,GAAI,8BACJC,GAAI,8BACJC,GAAI,+BAGN,oBAAqB,CACnBF,GAAI,uBACJC,GAAI,iBACJC,GAAI,cAGN,gBAAiB,CACfF,GAAI,gBACJC,GAAI,QACJC,GAAI,YAGN,wBAAyB,CACvBF,GAAI,wBACJC,GAAI,gBACJC,GAAI,aAGN,eAAgB,CACdF,GAAI,aACJC,GAAI,SACJC,GAAI,wBAGN,oBAAqB,CACnBF,GAAI,iBACJC,GAAI,aACJC,GAAI,cAGN,kBAAmB,CACjBF,GAAI,YACJC,GAAI,WACJC,GAAI,YAGN,mBAAoB,CAClBF,GAAI,aACJC,GAAI,YACJC,GAAI,aAGN,oBAAqB,CACnBF,GAAI,iBACJC,GAAI,eACJC,GAAI,iBAGN,iCAAkC,CAChCF,GAAI,4CACJC,GAAI,qBACJC,GAAI,2BAGN,0BAA2B,CACzBF,GAAI,4BACJC,GAAI,qBACJC,GAAI,wBAGN,wBAAyB,CACvBF,GAAI,0BACJC,GAAI,yBACJC,GAAI,2BAGN,wBAAyB,CACvBF,GAAI,wBACJC,GAAI,cACJC,GAAI,mBAGN,mBAAoB,CAClBF,GAAI,gBACJC,GAAI,gBACJC,GAAI,YAGN,gCAAiC,CAC/BF,GAAI,2CACJC,GAAI,sBACJC,GAAI,sBAGN,yBAA0B,CACxBF,GAAI,2BACJC,GAAI,sBACJC,GAAI,mBAGN,uBAAwB,CACtBF,GAAI,yBACJC,GAAI,0BACJC,GAAI,sBAGN,uBAAwB,CACtBF,GAAI,uBACJC,GAAI,eACJC,GAAI,oBAGN,qBAAsB,CACpBF,GAAI,4BACJC,GAAI,0BACJC,GAAI,wBC7HK,WAA0B,qDCA1B,OAA0B,8B,OCK1B,MAAMyW,WAAqC1D,YACxD7S,YAAYtB,GACVoU,MAAMpU,GACNwB,KAAK6S,kBAAoB7S,KAAK6S,kBAAkBC,KAAK9S,MACrDA,KAAKiC,OAAS,GAGhB8Q,aAAaC,GACXhT,KAAKiC,OAAS+Q,EACdhT,KAAKiT,cAGPJ,oBACE7S,KAAKxB,MAAM0U,QAAQlT,KAAKxB,MAAMjC,MAAOyD,KAAK+S,aAAaD,KAAK9S,OAG9DmT,SACE,GAAInT,KAAKxB,MAAMwD,KAAKwM,UAAU4E,aAC5B,OAAQpT,KAAKiC,QACX,IAAK,UACH,OACEpG,cAAA,OAAKE,UAAU,yCAAwCC,SACrDH,cAAA,OAAKE,UAAU,6BAA6BoH,KAAK,SAAQnH,SACvDH,cAAA,QAAME,UAAU,kBAAiBC,SAAC,mBAK1C,IAAK,QACH,OACEH,cAAA,OAAKE,UAAU,yCAAwCC,SACrDH,cAAA,OACEwH,IAAKgQ,GACL5S,QAAST,KAAK6S,kBACdtP,IAAI,eAKZ,QACE,OACE1H,cAAA,OAAKE,UAAU,yCAAwCC,SACrDH,cAAA,OACEwH,IAAKiQ,GACL7S,QAAST,KAAK6S,kBACdtP,IAAI,eAOhB,OACE1H,cAAA,OAAKE,UAAU,uCCpDN,SAASua,GAAiB9X,GAmCvC,OACE3C,cAAA,OAAKE,UAAU,aAAYC,SACzBH,cAACiV,GAAoB,CACnBrU,GAAG,mBACH2X,aAAa,WACb5T,SAAUhC,EAAMgC,SAChBG,UAAWnC,EAAMmC,UACjBoQ,OAAQ,CACNsD,SAAU,GACV7U,iBAAkBA,GAClBoS,kBAAmB,mBACnB/C,oBAAqB,CACnBwH,iCAEF3I,cAAe,CACb,CACEG,MAAO,uBACPC,aAAc,+BACdC,mBAAoB,CAClBmF,QAASA,CAACqD,EAAOC,IArD/B9U,eAA6B6U,EAAOxD,GAClCA,EAAa,WAEbhS,MAAM,GAAD3E,OAAI4E,mFAAkC,0BAA0B,CACnEC,OAAQ,MACRC,KAAM,OACNC,MAAO,WACPS,QAAS,CACP,eAAgB,mBAChBC,MAAOrD,EAAMmC,UAAUmB,WACvB2U,MAAOF,KAGRxU,MAAMC,IACL,GAAoB,MAAhBA,EAAKC,OAAgB,CACvB,MAAMZ,EAAQ,IAAIa,MAAM,WAExB,MADAb,EAAMY,OAASD,EAAKC,OACdZ,EAER,OAAOW,EAAKG,UAEbJ,MAAMK,IACLA,EAASoS,UAAUvG,SAAQwG,IACzB,MAAMP,EAAOX,GAAakB,EAAIC,WAC9B9D,kBAAOsD,EAAMO,EAAIE,aAEnB5B,EAAa,OAEd3R,OAAOwT,IACNtT,QAAQD,MAAMuT,GACd7B,EAAa,YAuB6C8B,CAAc0B,EAAOC,WCtDxE,SAASE,GAAalY,GACjC,OAAKA,EAAMmC,UAKP9D,eAAA,OAAKd,UAAU,gBAAeC,SAAA,CAC1BH,cAACyI,EAAU,CACP9D,SAAUhC,EAAMgC,SAChB+D,aAAc,WACd5D,UAAWnC,EAAMmC,YAGrB9E,cAACya,GAAgB,CACb9V,SAAUhC,EAAMgC,SAChBG,UAAWnC,EAAMmC,eAblB9E,cAACkO,IAAQ,CAAC/E,GAAG,MCsIb2R,OA9Hf,WACE,MAAOnW,EAAU1B,GAAeF,mBAAS,OAClC+B,EAAWiW,GAAgBhY,mBAAS,MAM3C,SAAS8B,IACPkW,EAAa,MAYf,SAASjN,EAAQO,GACf0M,EAAa1M,GAGf,SAAS2M,IACHlW,GACFA,EAAUqF,kBAId,OACEnK,cAAA,OAAKE,UAAU,MAAM+a,YAAaD,EAAaE,UAAWF,EAAY7a,SACpEa,eAACma,IAAM,CAAAhb,SAAA,CACLH,cAACuH,EAAM,CACL5C,SAAUA,EACVvB,kBAAoBF,GAhC5B,SAA2BA,GACzBD,EAAYC,GA+B8BE,CAAkBF,GACtD4B,UAAWA,EACX0B,cAAgBmB,GA1BxB,SAAuBA,GACrB,IAAKA,EAEH,YADA9C,IAGF,IAAIgJ,EAAW,IAAI5D,EAAUtC,GAC7BoT,EAAalN,GAoBsBrH,CAAcmB,GAC3C9C,SAAUA,IAGZ7D,eAACoa,IAAM,CAAAjb,SAAA,CACLH,cAACqb,IAAK,CAACC,OAAK,EAACC,KAAK,IAAGpb,SACnBH,cAAC0J,EAAY,CAAC/E,SAAUA,MAG1B3E,cAACqb,IAAK,CAACE,KAAK,8BAA6Bpb,SACvCH,cAACsO,EAAuB,CACtB3J,SAAUA,MAId3E,cAACqb,IAAK,CAACE,KAAK,qBAAoBpb,SAC9BH,cAACmO,EAAc,CACbxJ,SAAUA,EACVG,UAAWA,EACXgJ,QAAUO,GAAiBP,EAAQO,OAIvCrO,cAACqb,IAAK,CAACC,OAAK,EAACC,KAAK,SAAQpb,SACxBH,cAAC+O,EAAS,CACRpK,SAAUA,EACVG,UAAWA,EACXgJ,QAAUO,GAAiBP,EAAQO,OAIvCrO,cAACqb,IAAK,CAACC,OAAK,EAACC,KAAK,YAAWpb,SAC3BH,cAACwb,GAAY,CACX7W,SAAUA,EACVG,UAAWA,EACXD,SAAUA,MAId7E,cAACqb,IAAK,CAACC,OAAK,EAACC,KAAK,aAAYpb,SAC5BH,cAAC2Z,GAAa,CACZhV,SAAUA,EACVG,UAAWA,EACXD,SAAUA,MAId7E,cAACqb,IAAK,CAACC,OAAK,EAACC,KAAK,YAAWpb,SAC3BH,cAAC6a,GAAY,CACXlW,SAAUA,EACVG,UAAWA,EACXD,SAAUA,MAId7E,cAACqb,IAAK,CAACC,OAAK,EAACC,KAAK,oBAAmBpb,SACnCH,cAACyb,GAAU,CACT9W,SAAUA,EACVG,UAAWA,EACXD,SAAUA,MAId7E,cAACqb,IAAK,CAACC,OAAK,EAACC,KAAK,qBAAoBpb,SACpCH,cAAC0b,GAAW,CACV/W,SAAUA,EACVG,UAAWA,EACXD,SAAUA,MAId7E,cAACqb,IAAK,CAACC,OAAK,EAACC,KAAK,YAAWpb,SAC3BH,cAACga,GAAY,CACXrV,SAAUA,EACVG,UAAWA,EACXD,SAAUA,MAId7E,cAACqb,IAAK,CAACE,KAAK,IAAGpb,SACbH,cAAC0J,EAAY,CAAC/E,SAAUA,eC1HrBgX,OAZSC,IAClBA,GAAeA,aAAuBC,UACxC,8BAAqB3V,MAAKxH,IAAkD,IAAjD,OAAEod,EAAM,OAAEC,EAAM,OAAEC,EAAM,OAAEC,EAAM,QAAEC,GAASxd,EACpEod,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAOL,GACPM,EAAQN,OCFdO,IAAS7E,OACPtX,cAACoc,IAAMC,WAAU,CAAAlc,SACfH,cAAC8a,GAAG,MAENnZ,SAAS2a,eAAe,SAG1BX,M","file":"static/js/main.6476c641.chunk.js","sourcesContent":["export default __webpack_public_path__ + \"static/media/headerLogo.c2a09d1a.png\";","export default function InputFieldSet(\r\n {\r\n errors, fieldValues, handleInputChange, handleInputBlur, type, name, labelText, explanationText, link, linkText, required, reference, optionList\r\n }) {\r\n\r\n let labelArea;\r\n let explanationTextArea;\r\n let linkArea;\r\n let input;\r\n let options;\r\n let divError;\r\n let divErrorClass = '';\r\n\r\n if (labelText !== undefined) {\r\n labelArea = \r\n if (explanationText) {\r\n explanationTextArea = \r\n }\r\n if (link) {\r\n linkArea = {(linkText) ? linkText : link}\r\n }\r\n }\r\n\r\n if (errors !== undefined) {\r\n divErrorClass = `mb-3 ${errors[name] !== '' ? \"was-validated\" : \"\"}`\r\n divError =
\r\n {errors[name]}\r\n
\r\n }\r\n\r\n switch (type) {\r\n case \"select\":\r\n if (optionList !== undefined) {\r\n options = optionList.map(option => {\r\n return ()\r\n });\r\n }\r\n\r\n input = \r\n {options}\r\n \r\n break;\r\n\r\n case \"radio\":\r\n if (optionList === undefined) {\r\n input =
{`InputFieldSet - radio: options are not defined!`}
\r\n } else {\r\n input =
\r\n {optionList.map(option => {\r\n return (\r\n
\r\n {\r\n handleInputChange({\r\n target: {\r\n name: name,\r\n value: option.value\r\n }\r\n }\r\n )}}\r\n />\r\n\r\n \r\n
\r\n\r\n )\r\n })}\r\n
\r\n }\r\n break;\r\n\r\n case \"textarea\":\r\n input = \r\n {options}\r\n \r\n break;\r\n\r\n case \"checkbox\":\r\n input = \r\n {options}\r\n \r\n break;\r\n\r\n default:\r\n input = \r\n break;\r\n }\r\n\r\n if (type === 'checkbox') {\r\n return (\r\n
\r\n {input}\r\n {labelArea}\r\n {explanationTextArea}\r\n {linkArea}\r\n {divError}\r\n
\r\n );\r\n }\r\n\r\n if (type === 'radio') {\r\n return (\r\n
\r\n {input}\r\n {divError}\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n {labelArea}\r\n {explanationTextArea}\r\n {input}\r\n {divError}\r\n
\r\n );\r\n}","export function isNull(text, valueWhenNull = '', expireDate) {\r\n return (text === null || text === undefined) ? valueWhenNull : text;\r\n}\r\n\r\nexport function replaceAll(str, toFind, ReplaceWith) {\r\n return str.split(toFind).join(ReplaceWith);\r\n}\r\n","import * as gl from \"./globals\";\r\n\r\nexport default class Cookies {\r\n static get() {\r\n let out = document.cookie;\r\n\r\n if (!out) {\r\n return {};\r\n }\r\n\r\n out = document.cookie.split(\";\").map((c) => c.split(\"=\"));\r\n out = JSON.stringify(out);\r\n out = gl.replaceAll(out, '[\" ', '[\"');\r\n out = gl.replaceAll(out, '\",\"', '\": \"');\r\n out = gl.replaceAll(out, \"],[\", \", \");\r\n out = gl.replaceAll(out, \"[[\", \"{\");\r\n out = gl.replaceAll(out, \"]]\", \"}\");\r\n out = JSON.parse(out);\r\n\r\n return out;\r\n }\r\n\r\n static set(key, value, expireDateUTC) {\r\n if (!key) {\r\n return;\r\n }\r\n\r\n document.cookie = `${key}=${gl.isNull(value).trim()}; expires=${\r\n !expireDateUTC ? new Date(2050, 0, 1).toUTCString() : expireDateUTC\r\n };path=/`;\r\n }\r\n\r\n static remove(key) {\r\n if (!key) {\r\n return;\r\n }\r\n\r\n document.cookie =\r\n `${key}=''; expires=` + new Date(2001, 0, 1).toUTCString();\r\n }\r\n}\r\n","import InputFieldSet from './InputFieldSet/InputFieldSet';\r\nimport { useState, useRef, useEffect } from 'react';\r\nimport Cookies from './repository/Cookies';\r\n\r\nexport default function LanguageSelector(props) {\r\n const refLangSelector = useRef()\r\n const [fieldValues, setFieldValues] = useState({\r\n LanguageSelector: props.defaultLanguage\r\n })\r\n\r\n function setLanguage(newLanguage) {\r\n if (fieldValues.LanguageSelector !== newLanguage) {\r\n setFieldValues({\r\n LanguageSelector: newLanguage\r\n });\r\n Cookies.set('lang', newLanguage);\r\n props.onLanguageChanged(newLanguage)\r\n }\r\n }\r\n\r\n function handleLanguageChanged(e) {\r\n setLanguage(e.target.value);\r\n }\r\n\r\n useEffect(() => {\r\n let cookies = Cookies.get();\r\n if (cookies.lang !== undefined) {\r\n setLanguage(cookies.lang);\r\n }\r\n }, [])\r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n","export const languageElements = {\r\n items: {\r\n \"div-LoggedUser\": {\r\n hu: \"Kilépés\",\r\n de: \"Logout\",\r\n en: \"Logout\",\r\n },\r\n },\r\n};\r\n","export default class LanguageElementsHandler {\r\n constructor(languageElements, currentLanguage) {\r\n this.languageElements = languageElements;\r\n this.currentLanguage = currentLanguage;\r\n }\r\n\r\n get(key) {\r\n let element = this.languageElements?.['items']?.[key]?.[this.currentLanguage];\r\n return element === undefined ? `###_${key}` : element;\r\n } \r\n}\r\n","import './LoggedUser.scss';\r\nimport { languageElements } from './LoggedUser-languageElements';\r\nimport LanguageElementsHandler from '../repository/LanguageElementsHandler';\r\n\r\nexport default function LoggedUser(props) {\r\n const languageElementsHandler = new LanguageElementsHandler(\r\n languageElements,\r\n props.language\r\n );\r\n\r\n function onLogout() {\r\n props.onLogout();\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {languageElementsHandler.get(\"div-LoggedUser\")}\r\n {props.loginData?.get().user.email}\r\n
\r\n );\r\n}\r\n","export const languageElements = {\r\n \"items\": {\r\n \"message-expires-shortly\": {\r\n \"hu\": \"A belépési engedély rövidesen lejár!\",\r\n \"de\": \"User Token läuft bald ab!\",\r\n \"en\": \"Access authorization expires shortly!\"\r\n },\r\n\r\n \"btn-extend\": {\r\n \"hu\": \" Meghosszabbítás\",\r\n \"de\": \" Gültigkeit verlängern.\",\r\n \"en\": \" Extend authorization\"\r\n }\r\n }\r\n }\r\n","export default function wakeUp() {\r\n //Wakes up the backend\r\n return fetch(`${process.env.REACT_APP_API_BASE_URL}/api/heartbeat`, {\r\n method: 'GET',\r\n mode: 'cors',\r\n cache: 'no-cache',\r\n }).catch((error) => {\r\n console.error(error);\r\n })\r\n}\r\n","import \"./TokenExpirationMessage.scss\";\r\nimport { useState, useEffect } from \"react\";\r\nimport { languageElements } from \"./TokenExpirationMessage-languageElements\";\r\nimport LanguageElementsHandler from \"../repository/LanguageElementsHandler\";\r\nimport wakeUp from '../repository/wakeUp';\r\n\r\nexport default function TokenExpirationMessage(props) {\r\n const languageElementsHandler = new LanguageElementsHandler(\r\n languageElements,\r\n props.language\r\n );\r\n\r\n const [tokenStatus, setTokenStatus] = useState(\"NOT VALID\");\r\n\r\n async function onExtendValidity(e) {\r\n fetch(`${process.env.REACT_APP_API_BASE_URL}/token`, {\r\n method: \"PUT\",\r\n mode: \"cors\",\r\n cache: \"no-cache\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n token: props.loginData.getToken(),\r\n },\r\n })\r\n .then((data) => {\r\n if (data.status !== 200) {\r\n throw Error(\"invalid\");\r\n }\r\n return data.json();\r\n })\r\n .then((jsonData) => {\r\n props.onExtendToken(jsonData.token);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n props.onLogout();\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n let timerOfExpiresShortly;\r\n let timerOfValidity;\r\n\r\n let user = props.loginData?.get().user;\r\n\r\n if (user?.userLevel === \"GUEST\") {\r\n setTokenStatus(\"VALID\");\r\n return;\r\n }\r\n\r\n if (!user) {\r\n setTokenStatus(\"NOT VALID\");\r\n } else {\r\n const currentDate = new Date();\r\n const validUntil =\r\n props.loginData?.get().token.valid - currentDate.getTime();\r\n\r\n if (validUntil === undefined || validUntil < 2000) {\r\n setTokenStatus(\"NOT VALID\");\r\n } else {\r\n let setTimerShortly = false;\r\n\r\n if (validUntil < 120000) {\r\n wakeUp().then(() => {\r\n setTokenStatus(\"EXPIRES SHORTLY\");\r\n })\r\n } else {\r\n setTokenStatus(\"VALID\");\r\n setTimerShortly = true;\r\n }\r\n timerOfValidity = setTimeout(() => {\r\n props.onExtendToken(null);\r\n }, validUntil - 5000);\r\n\r\n if (setTimerShortly) {\r\n timerOfExpiresShortly = setTimeout(() => {\r\n const timerDate = new Date();\r\n if (timerDate.getTime() - props.loginData.getLastActivity() < 300000) {\r\n onExtendValidity();\r\n return;\r\n }\r\n wakeUp().then(() => {\r\n setTokenStatus(\"EXPIRES SHORTLY\");\r\n })\r\n }, validUntil - 120000);\r\n }\r\n }\r\n }\r\n\r\n return () => {\r\n if (timerOfExpiresShortly !== undefined) {\r\n clearTimeout(timerOfExpiresShortly);\r\n }\r\n\r\n if (timerOfValidity !== undefined) {\r\n clearTimeout(timerOfValidity);\r\n }\r\n };\r\n }, [props.loginData]);\r\n\r\n let message;\r\n\r\n if (tokenStatus === \"EXPIRES SHORTLY\") {\r\n message = (\r\n \r\n \r\n {languageElementsHandler.get(\"message-expires-shortly\")}\r\n \r\n onExtendValidity(e)}\r\n >\r\n {languageElementsHandler.get(\"btn-extend\")}\r\n \r\n \r\n );\r\n }\r\n\r\n return
{message}
;\r\n}\r\n","import './Header.scss';\r\nimport headerLogo from './headerLogo.png';\r\nimport LanguageSelector from '../LanguageSelector';\r\nimport LoggedUser from '../LoggedUser/LoggedUser';\r\nimport TokenExpirationMessage from '../TokenExpirationMessage/TokenExpirationMessage';\r\n\r\nexport default function Header(props) {\r\n function onLanguageChanged(newLanguage) {\r\n props.onLanguageChanged(newLanguage);\r\n }\r\n\r\n function onLogout() {\r\n props.onLogout();\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \"logo\"\r\n
\r\n\r\n
\r\n {props.loginData?.get().user && (\r\n \r\n )}\r\n\r\n {\r\n onLanguageChanged(newLanguage);\r\n }}\r\n />\r\n
\r\n
\r\n\r\n props.onExtendToken(newToken)}\r\n onLogout={onLogout}\r\n />\r\n
\r\n );\r\n}\r\n","export const languageElements = {\r\n items: {\r\n \"header-title-greeting\": {\r\n hu: \"ÜGYFÉLKAPU\",\r\n de: \"CUSTOMER PORTAL\",\r\n en: \"CUSTOMER PORTAL\",\r\n },\r\n\r\n \"header-title-dismissRegistration\": {\r\n hu: \"LEIRATKOZÁS\",\r\n de: \"ABMELDUNG\",\r\n en: \"UNSUBSCRIBE\",\r\n },\r\n\r\n \"header-title-firstLogin\": {\r\n hu: \"Első belépés\",\r\n de: \"Erste Anmeldung\",\r\n en: \"First login\",\r\n },\r\n\r\n \"header-title-login\": {\r\n hu: \"ÜGYFÉLKAPU - Belépés\",\r\n de: \"CUSTOMER PORTAL - Login\",\r\n en: \"CUSTOMER PORTAL - Login\",\r\n },\r\n\r\n \"header-title-invoices\": {\r\n hu: \"Számláim\",\r\n de: \"Abrechnungen\",\r\n en: \"Invoices\",\r\n },\r\n\r\n \"header-title-warehouse\": {\r\n hu: \"Raktár\",\r\n de: \"Lager\",\r\n en: \"Warehouse\",\r\n },\r\n\r\n \"header-title-warehouse-stocks\": {\r\n hu: \"Készlet információ\",\r\n de: \"Warenbestände\",\r\n en: \"Stocks of goods\",\r\n },\r\n\r\n \"header-title-warehouse-journal\": {\r\n hu: \"Mozgási napló\",\r\n de: \"Lager Journal\",\r\n en: \"Warehouse - Journal\",\r\n },\r\n\r\n \"header-title-stocks\": {\r\n hu: \"Készlet információ\",\r\n de: \"Warenbestände\",\r\n en: \"Stocks of goods\",\r\n },\r\n\r\n \"header-title-tracking\": {\r\n hu: \"Fuvarjaim\",\r\n de: \"Frächte\",\r\n en: \"Freight\",\r\n },\r\n\r\n \"header-title-settings\": {\r\n hu: \"Beállítások\",\r\n de: \"Einstellungen\",\r\n en: \"Settings\",\r\n },\r\n\r\n \"header-title-contact\": {\r\n hu: \"Kapcsolat\",\r\n de: \"Kontakt\",\r\n en: \"Contact\",\r\n },\r\n },\r\n};\r\n","export default __webpack_public_path__ + \"static/media/invoices.0dcf88a8.svg\";","export default __webpack_public_path__ + \"static/media/invoices_selected.bc64352f.svg\";","export default __webpack_public_path__ + \"static/media/stocks.edebaea8.svg\";","export default __webpack_public_path__ + \"static/media/stocks_selected.301e4655.svg\";","export default __webpack_public_path__ + \"static/media/tracking.4fe8c5b3.svg\";","export default __webpack_public_path__ + \"static/media/tracking_selected.27f86bcd.svg\";","export default __webpack_public_path__ + \"static/media/settings.723c06ed.svg\";","export default __webpack_public_path__ + \"static/media/settings_selected.5cb15e56.svg\";","export default __webpack_public_path__ + \"static/media/contact.aa21320b.svg\";","export default __webpack_public_path__ + \"static/media/contact_selected.e90a0432.svg\";","import invoices from \"./invoices.svg\";\r\nimport invoices_selected from \"./invoices_selected.svg\";\r\nimport stocks from \"./stocks.svg\";\r\nimport stocks_selected from \"./stocks_selected.svg\";\r\nimport tracking from \"./tracking.svg\";\r\nimport tracking_selected from \"./tracking_selected.svg\";\r\nimport settings from \"./settings.svg\";\r\nimport settings_selected from \"./settings_selected.svg\";\r\nimport contact from \"./contact.svg\";\r\nimport contact_selected from \"./contact_selected.svg\";\r\n\r\nexport default function PictHandler(props) {\r\n let img\r\n\r\n switch (props.pictureCode) {\r\n case \"invoices\":\r\n img = \"invoices\"\r\n break;\r\n\r\n case \"warehouse\":\r\n img = \"stocks\"\r\n break;\r\n\r\n case \"tracking\":\r\n img = \"tracking\"\r\n break;\r\n\r\n case \"settings\":\r\n img = \"settings\"\r\n break;\r\n\r\n case \"contact\":\r\n img = \"contact\"\r\n break;\r\n\r\n case \"invoices_selected\":\r\n img = \"invoices_selected\"\r\n break;\r\n\r\n case \"warehouse_selected\":\r\n img = \"stocks_selected\"\r\n break;\r\n\r\n case \"tracking_selected\":\r\n img = \"tracking_selected\"\r\n break;\r\n\r\n case \"settings_selected\":\r\n img = \"settings_selected\"\r\n break;\r\n\r\n case \"contact_selected\":\r\n img = \"contact_selected\"\r\n break;\r\n\r\n default:\r\n img = {`PictHandler: Unknown pictureCode: ${props.pictureCode}`}\r\n break;\r\n }\r\n return img\r\n}","import \"./HeaderLine.scss\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { languageElements } from \"./HeaderLine-languageElements\";\r\nimport LanguageElementsHandler from \"../repository/LanguageElementsHandler\";\r\nimport PictHandler from \"./pictures/PictHandler\";\r\nimport MenuOutlinedIcon from \"@material-ui/icons/MenuOutlined\";\r\n\r\nexport default function HeaderLine(props) {\r\n const languageElementsHandler = new LanguageElementsHandler(\r\n languageElements,\r\n props.language\r\n );\r\n const selectedPage = props.selectedPage;\r\n let navbar;\r\n let navItems;\r\n\r\n switch (props.loginData?.tokenData.user.userLevel) {\r\n case \"CUSTOMER\":\r\n navItems = [\r\n \"tracking\",\r\n \"warehouse\",\r\n \"invoices\",\r\n ];\r\n break;\r\n\r\n case \"CUST_ROOT\":\r\n navItems = [\r\n \"tracking\",\r\n \"warehouse\",\r\n \"invoices\",\r\n ];\r\n break;\r\n\r\n case \"OWNER_ROOT\":\r\n navItems = [\r\n \"tracking\",\r\n \"warehouse\",\r\n \"invoices\",\r\n ];\r\n break;\r\n\r\n case \"SEL_ADMIN\":\r\n navItems = [\r\n \"tracking\",\r\n \"warehouse\",\r\n \"invoices\",\r\n ];\r\n break;\r\n\r\n default:\r\n navItems = [\r\n ];\r\n }\r\n\r\n if (props.loginData && navItems.length > 0) {\r\n let linkStyle = { width: `calc( 100% / ${navItems.length} - 4px )` };\r\n navbar = navItems.map((item) => {\r\n if (item === selectedPage) {\r\n return (\r\n
\r\n \r\n \r\n {languageElementsHandler.get(`header-title-${item}`)}\r\n \r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n {languageElementsHandler.get(`header-title-${item}`)}\r\n \r\n
\r\n );\r\n });\r\n }\r\n\r\n return (\r\n
\r\n
{navbar}
\r\n

\r\n
\r\n {props.onHamClicked ? : null}\r\n
\r\n
\r\n {languageElementsHandler.get(`header-title-${selectedPage}`)}\r\n
\r\n
\r\n

\r\n
\r\n );\r\n}\r\n","export default __webpack_public_path__ + \"static/media/headerLogo.25c565a6.png\";","import \"./Infobox.scss\";\r\nimport headerLogo from \"./headerLogo.png\";\r\n\r\nexport default function Infobox(props) {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{props.info}
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","export const languageElements = {\r\n items: {\r\n \"greeting-header\": {\r\n hu: \"Üdvözöljük!\",\r\n de: \"Herzlich wilkommen!\",\r\n en: \"Welcome!\",\r\n },\r\n\r\n \"greeting-p-01\": {\r\n hu: \"Ezen az oldalon információkat kaphat számláiról, raktári készleteiről és fuvarmegbízásai állapotáról.\",\r\n de: \"Auf dieser Website erhalten Sie Informationen zu Ihren Rechnungen, Lagerbeständen und dem Status Ihrer Frachtaufträge.\",\r\n en: \"On this website you can get information about your invoices, stock levels and the status of your freight orders.\",\r\n },\r\n\r\n \"btn-login\": {\r\n hu: \"Belépés\",\r\n de: \"Login\",\r\n en: \"Login\",\r\n },\r\n },\r\n};\r\n","import './PageGreeting.scss';\r\nimport { useEffect } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport HeaderLine from '../../Components/HeaderLine/HeaderLine'\r\nimport Infobox from '../../Components/Infobox/Infobox';\r\nimport { languageElements } from './PageGreeting-languageElements'\r\nimport LanguageElementsHandler from '../../Components/repository/LanguageElementsHandler';\r\nimport wakeUp from '../../Components/repository/wakeUp';\r\n\r\nexport default function PageGreeting(props) {\r\n const languageElementsHandler = new LanguageElementsHandler(\r\n languageElements,\r\n props.language\r\n );\r\n\r\n const infobox = <>\r\n
\r\n

{languageElementsHandler.get(\"greeting-header\")}

\r\n
\r\n
\r\n
\r\n
{languageElementsHandler.get(\"greeting-p-01\")}
\r\n
\r\n
\r\n {languageElementsHandler.get(\"btn-login\")}\r\n
\r\n \r\n\r\n useEffect(() => {\r\n wakeUp();\r\n }, [])\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n
)\r\n}","import \"./FormBorder.scss\";\r\nimport headerLogo from \"./headerLogo.png\";\r\n\r\nexport default function FormBorder(props) {\r\n return (\r\n
\r\n
\r\n\r\n
\r\n
\r\n \"logo\"\r\n
\r\n
\r\n
\r\n {props.form}\r\n
\r\n
\r\n
\r\n )\r\n}","export default \"data:image/png;base64,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\"","export const languageElements = {\r\n items: {\r\n \"field-name\": {\r\n hu: \"Az Ön neve:\",\r\n de: \"Ihre(n) Name:\",\r\n en: \"Your name:\",\r\n },\r\n\r\n \"field-email\": {\r\n hu: \"Email:\",\r\n de: \"Email:\",\r\n en: \"Email:\",\r\n },\r\n\r\n \"field-password\": {\r\n hu: \"Kérem adjon meg egy jelszót:\",\r\n de: \"Bitte wählen Sie ein Password:\",\r\n en: \"Please enter a password:\",\r\n },\r\n\r\n \"field-password-explanation\": {\r\n hu: \"(min. 8 hosszú, szám, kis-/nagybetű, spec. karakter)\",\r\n de: \"Bitte wählen Sie ein Password:\\n(min. 8 Zeichen/Nummer, Klein-/Grossbuchstaben, spez.Zeichen)\",\r\n en: \"Please enter a password:\\n(min. 8 char, number, lower-/uppercase letters, spec.characters)\",\r\n },\r\n\r\n \"field-passwordAgain\": {\r\n hu: \"Jelszó ismét:\",\r\n de: \"Passwort wiederholen:\",\r\n en: \"Password again:\",\r\n },\r\n\r\n \"field-gdprAccepted\": {\r\n hu: \"Az adatkezelési szabályzatot (GDPR) elolvastam, megértettem és elfogadom.\",\r\n de: \"Ich habe die Datenverwaltungsrichtlinien (GDPR) gelesen, verstanden und akzeptiert.\",\r\n en: \"I have read, understood and accept the data management policy (GDPR)\",\r\n },\r\n\r\n \"field-gdprAccepted-link-text\": {\r\n hu: \"Dokumentum megtekintése\",\r\n de: \"Dokument ansehen\",\r\n en: \"View document\",\r\n },\r\n\r\n \"field-termsOfServiceAccepted\": {\r\n hu: \"A szolgáltatási feltételeket (ÁSZF) elolvastam, megértettem és elfogadom.\",\r\n de: \"Ich habe die Nutzungsbedingungen gelesen, verstanden und akzeptiert.\",\r\n en: \"I have read, understood and accept the terms of service (TOS)\",\r\n },\r\n\r\n \"field-termsOfServiceAccepted-link-text\": {\r\n hu: \"Dokumentum megtekintése\",\r\n de: \"Dokument ansehen\",\r\n en: \"View document\",\r\n },\r\n\r\n \"field-emailAnnouncementsAccepted\": {\r\n hu: \"Az engem érintő információkat és dokumentumokat, emailben elfogadom\",\r\n de: \"Ich akzeptiere Informationen und Unterlagen per E-Mail\",\r\n en: \"I accept information and documents by e-mail\",\r\n },\r\n\r\n \"field-newsletterAccepted\": {\r\n hu: \"Feliratkozom a hírlevélre\",\r\n de: \"Ich abonniere den Newsletter\",\r\n en: \"I subscribe the newsletter\",\r\n },\r\n\r\n \"btn-login\": {\r\n hu: \"Belépek\",\r\n de: \"Login\",\r\n en: \"Login\",\r\n },\r\n\r\n \"validation-required\": {\r\n hu: \"Kérem töltse ki a mezőt\",\r\n de: \"Dateneingabe erforderlich\",\r\n en: \"Please fill in the field\",\r\n },\r\n\r\n \"validation-chkboxChecked\": {\r\n hu: \"Kérem fogadja el az adatkezelési szabályzatot\",\r\n de: \"Bitte akzeptieren Sie die Datenverwaltungsrichtlinien\",\r\n en: \"Please accept the data management policy\",\r\n },\r\n\r\n \"validation-validEmail\": {\r\n hu: \"A megadott email hibás\",\r\n de: \"Ungültige E-Mail\",\r\n en: \"Invalid email\",\r\n },\r\n\r\n \"validation-passwordStrongEnough\": {\r\n hu: \"A jelszó nem elég erős\",\r\n de: \"Passwort ist nicht stark genug\",\r\n en: \"The password is not strong enough\",\r\n },\r\n\r\n \"validation-passwordAndPasswordAgainSame\": {\r\n hu: \"Nem egyezik a jelszóval\",\r\n de: \"Stimmt nicht mit dem Passwort überein\",\r\n en: \"The Password and Password again do not match\",\r\n },\r\n\r\n \"no-response\": {\r\n hu: \"A szerviz nem reagál. Kérem próbálja később.\",\r\n de: \"Service antwortet nicht. Bitte versuchen Sie es später noch einmal.\",\r\n en: \"The service does not respond. Please try again later.\",\r\n },\r\n\r\n \"info-waiting-for-server\": {\r\n hu: \"Adatellenőrzés...\",\r\n de: \"Datenüberprüfung...\",\r\n en: \"Data verification...\",\r\n },\r\n\r\n \"dataStatus-no-response\": {\r\n hu: \"A szerviz nem reagál. Kérem próbálja később.\",\r\n de: \"Service antwortet nicht. Bitte versuchen Sie es später noch einmal.\",\r\n en: \"The service does not respond. Please try again later.\",\r\n },\r\n\r\n \"dataStatus-invalid\": {\r\n hu: \"Érvénytelen kérés\",\r\n de: \"Ungültige Angaben\",\r\n en: \"Invalid operation\",\r\n },\r\n },\r\n};\r\n","import { parseJwt } from \"../repository/jwt\";\r\n\r\nexport default class LoginData {\r\n constructor(token) {\r\n this.lastActivity = 0;\r\n\r\n if (!token) {\r\n this.token = null;\r\n this.tokenData = {\r\n user: {\r\n name: null,\r\n email: null,\r\n userLevel: \"GUEST\",\r\n }\r\n }\r\n\r\n return;\r\n }\r\n this.token = token;\r\n this.setLastActivity();\r\n this.tokenData = this.getDataFromToken();\r\n }\r\n\r\n setLastActivity() {\r\n const currentDate = new Date();\r\n this.lastActivity = currentDate.getTime();\r\n }\r\n\r\n getLastActivity() {\r\n return this.lastActivity;\r\n }\r\n\r\n getDataFromToken() {\r\n if (!this.token) {\r\n return null;\r\n }\r\n\r\n const tokenData = parseJwt(this.token);\r\n return {\r\n user: {\r\n name: tokenData.name,\r\n email: tokenData.email,\r\n userLevel: tokenData.userLevel,\r\n },\r\n token: {\r\n token: this.token,\r\n valid: tokenData.valid,\r\n },\r\n };\r\n }\r\n\r\n get() {\r\n return this.tokenData;\r\n }\r\n\r\n getToken() {\r\n return this.token;\r\n }\r\n\r\n getUserLevel() {\r\n return this.tokenData?.user?.userLevel;\r\n }\r\n}\r\n","export function parseJwt (token) {\r\n var base64Url = token.split('.')[1];\r\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\r\n var jsonPayload = decodeURIComponent(atob(base64).split('').map(function(c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n }).join(''));\r\n\r\n return JSON.parse(jsonPayload);\r\n};\r\n","import './FirstLoginForm.scss';\r\nimport { useRef, useState, useEffect } from 'react';\r\nimport { useParams, Redirect } from 'react-router-dom';\r\nimport InputFieldSet from '../InputFieldSet/InputFieldSet';\r\nimport { languageElements } from './FirstLoginForm-languageElements';\r\nimport LanguageElementsHandler from '../repository/LanguageElementsHandler';\r\nimport validator from 'validator';\r\nimport LoginData from '../repository/LoginData';\r\n\r\nexport default function FirstLoginForm(props) {\r\n let { token } = useParams();\r\n\r\n const languageElementsHandler = new LanguageElementsHandler(\r\n languageElements,\r\n props.language\r\n );\r\n\r\n const [formWasValidated, setFormWasValidated] = useState(false);\r\n\r\n const [dataStatus, setDataStatus] = useState('');\r\n\r\n const [errors, setErrors] = useState({\r\n name: '',\r\n email: '',\r\n password: '',\r\n passwordAgain: '',\r\n gdprAccepted: '',\r\n termsOfServiceAccepted: '',\r\n emailAnnouncementsAccepted: '',\r\n newsletterAccepted: '',\r\n });\r\n\r\n function showMessageShortly(codeOfMessage, typeOfAlert) {\r\n setFormAlertText(languageElementsHandler.get(codeOfMessage));\r\n setFormAlertType(typeOfAlert);\r\n setTimeout(() => {\r\n setFormAlertText('');\r\n setFormAlertType('');\r\n }, 5000);\r\n }\r\n\r\n function clearAllErrors() {\r\n setErrors({\r\n name: '',\r\n email: '',\r\n password: '',\r\n passwordAgain: '',\r\n gdprAccepted: '',\r\n termsOfServiceAccepted: '',\r\n emailAnnouncementsAccepted: '',\r\n newsletterAccepted: '',\r\n });\r\n }\r\n\r\n const [fieldValues, setFieldValues] = useState({\r\n name: '',\r\n email: '',\r\n password: '',\r\n passwordAgain: '',\r\n gdprAccepted: '',\r\n termsOfServiceAccepted: '',\r\n emailAnnouncementsAccepted: '',\r\n newsletterAccepted: '',\r\n });\r\n\r\n const references = {\r\n name: useRef(),\r\n email: useRef(),\r\n password: useRef(),\r\n passwordAgain: useRef(),\r\n gdprAccepted: useRef(),\r\n termsOfServiceAccepted: useRef(),\r\n emailAnnouncementsAccepted: useRef(),\r\n newsletterAccepted: useRef(),\r\n };\r\n\r\n const [formAlertText, setFormAlertText] = useState('');\r\n const [formAlertType, setFormAlertType] = useState('');\r\n\r\n const validators = {\r\n name: {\r\n required: isNotEmpty,\r\n },\r\n\r\n email: {\r\n required: isNotEmpty,\r\n validEmail: isValidEmail,\r\n },\r\n\r\n password: {\r\n required: isNotEmpty,\r\n passwordStrongEnough: isPasswordStrongEnough,\r\n },\r\n\r\n passwordAgain: {\r\n required: isNotEmpty,\r\n passwordAndPasswordAgainSame: isPasswordAndPasswordAgainSame,\r\n },\r\n\r\n gdprAccepted: {\r\n chkboxChecked: isNotEmpty,\r\n },\r\n\r\n termsOfServiceAccepted: {\r\n chkboxChecked: isNotEmpty,\r\n },\r\n\r\n emailAnnouncementsAccepted: {},\r\n newsletterAccepted: {},\r\n };\r\n\r\n const errorTypes = {\r\n required: languageElementsHandler.get('validation-required'),\r\n chkboxChecked: languageElementsHandler.get('validation-chkboxChecked'),\r\n validEmail: languageElementsHandler.get('validation-validEmail'),\r\n passwordStrongEnough: languageElementsHandler.get(\r\n 'validation-passwordStrongEnough'\r\n ),\r\n passwordAndPasswordAgainSame: languageElementsHandler.get(\r\n 'validation-passwordAndPasswordAgainSame'\r\n ),\r\n };\r\n\r\n function isPasswordStrongEnough(value) {\r\n return /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\\w\\s]).{8,}$/.test(\r\n value\r\n );\r\n }\r\n\r\n function isPasswordAndPasswordAgainSame(value) {\r\n if (fieldValues['password'] && fieldValues['passwordAgain']) {\r\n return fieldValues['password'] === fieldValues['passwordAgain'];\r\n }\r\n }\r\n\r\n function isNotEmpty(value) {\r\n return value;\r\n }\r\n\r\n function isValidEmail(value) {\r\n return validator.isEmail(value);\r\n }\r\n\r\n useEffect(() => {\r\n fetch(`${process.env.REACT_APP_API_BASE_URL}/users/get`, {\r\n method: 'GET',\r\n mode: 'cors',\r\n cache: 'no-cache',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n token,\r\n },\r\n })\r\n .then((data) => {\r\n if (data.status !== 200) {\r\n setDataStatus('invalid');\r\n const error = new Error('invalid');\r\n error.status = data.status;\r\n throw error;\r\n }\r\n return data.json();\r\n })\r\n .then((jsonData) => {\r\n setDataStatus('valid');\r\n setFieldValues({\r\n name: jsonData.name,\r\n email: jsonData.email,\r\n password: '',\r\n passwordAgain: '',\r\n gdprAccepted: jsonData.gdprAccepted,\r\n termsOfServiceAccepted: jsonData.termsOfServiceAccepted,\r\n emailAnnouncementsAccepted: jsonData.emailAnnouncementsAccepted,\r\n newsletterAccepted: jsonData.newsletterAccepted,\r\n });\r\n })\r\n .catch((error) => {\r\n if (error.message === 'Failed to fetch') {\r\n setDataStatus('no-response');\r\n }\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n clearAllErrors();\r\n }, [props.language]);\r\n\r\n async function handleSubmit(e) {\r\n e.preventDefault();\r\n if (isFormValid()) {\r\n fetch(`${process.env.REACT_APP_API_BASE_URL}/users/putandlogin`, {\r\n method: 'PUT',\r\n mode: 'cors',\r\n cache: 'no-cache',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n token,\r\n },\r\n body: JSON.stringify({\r\n name: fieldValues.name,\r\n email: fieldValues.email,\r\n password: fieldValues.password,\r\n status: 'ACTIVE',\r\n gdprAccepted: fieldValues.gdprAccepted ? true : false,\r\n termsOfServiceAccepted: fieldValues.termsOfServiceAccepted\r\n ? true\r\n : false,\r\n\r\n emailAnnouncementsAccepted: fieldValues.emailAnnouncementsAccepted\r\n ? true\r\n : false,\r\n newsletterAccepted: fieldValues.newsletterAccepted ? true : false,\r\n\r\n language: props.language\r\n }),\r\n })\r\n .then((data) => {\r\n if (data.status !== 200) {\r\n throw new Error('result-nok');\r\n }\r\n return data.json();\r\n })\r\n .then((jsonData) => {\r\n let newLogin = new LoginData(jsonData.token);\r\n props.onLogin(newLogin);\r\n })\r\n .catch((error) => {\r\n showMessageShortly(\r\n error.message === 'result-nok' ? error.message : 'result-no-response',\r\n 'danger'\r\n );\r\n });\r\n }\r\n }\r\n\r\n function isFormValid() {\r\n let isFormValid = true;\r\n for (const fieldName of Object.keys(fieldValues)) {\r\n const isFieldValid = validateField(fieldName);\r\n if (!isFieldValid) {\r\n isFormValid = false;\r\n }\r\n }\r\n return isFormValid;\r\n }\r\n\r\n function handleInputBlur(e) {\r\n const fieldName = e.target.name;\r\n setErrors((previousErrors) => ({\r\n ...previousErrors,\r\n [fieldName]: '',\r\n }));\r\n\r\n validateField(fieldName);\r\n }\r\n\r\n function handleInputChange(e) {\r\n const value = e.target.value;\r\n const fieldName = e.target.name;\r\n setFieldValues({\r\n ...fieldValues,\r\n [fieldName]: value,\r\n });\r\n setErrors((previousErrors) => ({\r\n ...previousErrors,\r\n [fieldName]: '',\r\n }));\r\n }\r\n\r\n function validateField(fieldName) {\r\n const value = fieldValues[fieldName];\r\n let isValid = true;\r\n setErrors((previousErrors) => ({\r\n ...previousErrors,\r\n [fieldName]: '',\r\n }));\r\n references[fieldName].current.setCustomValidity('');\r\n\r\n if (validators[fieldName] !== undefined) {\r\n for (const [validationType, validatorFn] of Object.entries(\r\n validators[fieldName]\r\n )) {\r\n if (isValid) {\r\n isValid = validatorFn(value);\r\n if (!isValid) {\r\n const errorText = errorTypes[validationType];\r\n setErrors((previousErrors) => {\r\n return {\r\n ...previousErrors,\r\n [fieldName]: errorText,\r\n };\r\n });\r\n references[fieldName].current.setCustomValidity(errorText);\r\n }\r\n }\r\n }\r\n }\r\n return isValid;\r\n }\r\n\r\n if (!token) {\r\n return ;\r\n }\r\n\r\n return (\r\n
\r\n {!dataStatus && (\r\n
\r\n {languageElementsHandler.get('info-waiting-for-server')}\r\n
\r\n )}\r\n {dataStatus === 'no-response' && (\r\n
\r\n {languageElementsHandler.get('no-response')}\r\n
\r\n )}\r\n {dataStatus === 'invalid' && (\r\n
\r\n {languageElementsHandler.get('dataStatus-invalid')}\r\n
\r\n )}\r\n {formAlertText && (\r\n
\r\n {formAlertText}\r\n
\r\n )}\r\n {dataStatus === 'valid' && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n )}\r\n
\r\n );\r\n}\r\n","export const languageElements = {\r\n items: {\r\n \"form-title\": {\r\n hu: \"Első belépés\",\r\n de: \"Erste Anmeldung\",\r\n en: \"First login\",\r\n },\r\n },\r\n};\r\n","import { Redirect } from 'react-router-dom';\r\nimport './PageFirstLogin.scss';\r\nimport HeaderLine from '../../Components/HeaderLine/HeaderLine';\r\nimport FormBorder from '../../Components/FormBorder/FormBorder';\r\nimport FirstLoginForm from '../../Components/FirstLoginForm/FirstLoginForm';\r\nimport { languageElements } from './PageFirstLogin-languageElements';\r\nimport LanguageElementsHandler from '../../Components/repository/LanguageElementsHandler';\r\n\r\nexport default function PageFirstLogin(props) {\r\n const languageElementsHandler = new LanguageElementsHandler(\r\n languageElements,\r\n props.language\r\n );\r\n\r\n if (props.loginData) {\r\n return \r\n }\r\n\r\n function onLogin(newLoginData) {\r\n props.onLogin(newLoginData)\r\n }\r\n\r\n let regForm = <>\r\n

{languageElementsHandler.get('form-title')}

\r\n onLogin(newLoginData)}\r\n />\r\n \r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
)\r\n}\r\n","export const languageElements = {\r\n \"items\": {\r\n \"waiting-header\": {\r\n \"hu\": \"Várakozás a szerverre...\",\r\n \"de\": \"Verarbeitung...\",\r\n \"en\": \"Processing...\"\r\n },\r\n\r\n \"waiting-p-01\": {\r\n \"hu\": \"\",\r\n \"de\": \"\",\r\n \"en\": \"\"\r\n },\r\n\r\n \"success-header\": {\r\n \"hu\": \"Sikeres leiratkozás\",\r\n \"de\": \"Erfolgreiche Abmeldung\",\r\n \"en\": \"Unsubscribe successful\"\r\n },\r\n\r\n \"success-p-01\": {\r\n \"hu\": \"Sikeresen leiratkozott, személyes adatait töröltük a rendszerből.\",\r\n \"de\": \"Sie haben sich erfolgreich abgemeldet und Ihre persönlichen Daten wurden aus dem System gelöscht.\",\r\n \"en\": \"You have successfully unsubscribed and your personal information has been deleted from the system.\"\r\n },\r\n\r\n \"no-response-header\": {\r\n \"hu\": \"A szerver nem válaszol\",\r\n \"de\": \"Server antwortet nicht\",\r\n \"en\": \"Server is not responding\"\r\n },\r\n\r\n \"no-response-p-01\": {\r\n \"hu\": \"Kérjük próbálja meg később\",\r\n \"de\": \"Bitte versuche es später noch einmal\",\r\n \"en\": \"Please try again later\"\r\n },\r\n\r\n \"invalid-header\": {\r\n \"hu\": \"Érvénytelen kérés\",\r\n \"de\": \"Ungültige Angaben\",\r\n \"en\": \"Invalid operation\"\r\n },\r\n\r\n \"invalid-p-01\": {\r\n \"hu\": \"\",\r\n \"de\": \"\",\r\n \"en\": \"\"\r\n },\r\n },\r\n };\r\n","import { useState, useEffect } from \"react\";\r\nimport { useParams, Redirect } from \"react-router-dom\";\r\nimport \"./PageDismissRegistration.scss\";\r\nimport HeaderLine from \"../../Components/HeaderLine/HeaderLine\";\r\nimport Infobox from \"../../Components/Infobox/Infobox\";\r\nimport { languageElements } from \"./PageDismissRegistration-languageElements\";\r\nimport LanguageElementsHandler from \"../../Components/repository/LanguageElementsHandler\";\r\n\r\nexport default function PageDismissRegistration(props) {\r\n let { token } = useParams();\r\n\r\n const [statusOfDelete, setStatusOfDelete] = useState(\"waiting\");\r\n\r\n const languageElementsHandler = new LanguageElementsHandler(\r\n languageElements,\r\n props.language\r\n );\r\n\r\n useEffect(() => {\r\n fetch(`${process.env.REACT_APP_API_BASE_URL}/users/dismissRegistration`, {\r\n method: \"DELETE\",\r\n mode: \"cors\",\r\n cache: \"no-cache\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n token,\r\n },\r\n })\r\n .then((data) =>\r\n setStatusOfDelete(data.status === 200 ? \"success\" : \"invalid\")\r\n )\r\n .catch(() => setStatusOfDelete(\"no-response\"));\r\n }, []);\r\n\r\n const infobox = (\r\n <>\r\n
\r\n

{languageElementsHandler.get(`${statusOfDelete}-header`)}

\r\n
\r\n
\r\n
\r\n
{languageElementsHandler.get(`${statusOfDelete}-p-01`)}
\r\n
\r\n \r\n );\r\n\r\n if (!token) {\r\n return ;\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n","export const languageElements = {\r\n items: {\r\n \"field-login\": {\r\n hu: \"Az ön e-mail címe:\",\r\n de: \"Ihre E-Mail-Adresse:\",\r\n en: \"Your email adress:\",\r\n },\r\n\r\n \"field-pass\": {\r\n hu: \"Jelszó:\",\r\n de: \"Passwort:\",\r\n en: \"Password:\",\r\n },\r\n\r\n \"btn-login\": {\r\n hu: \"Belépés\",\r\n de: \"Login\",\r\n en: \"Login\",\r\n },\r\n\r\n \"btn-loginAsGuest\": {\r\n hu: \"Vendég\",\r\n de: \"Als Gast einloggen\",\r\n en: \"Login as guest\",\r\n },\r\n\r\n \"validation-required\": {\r\n hu: \"Nem elhagyható adat\",\r\n de: \"Dateneingabe erforderlich\",\r\n en: \"Data is required\",\r\n },\r\n\r\n \"password-forgotten\": {\r\n hu: \"Ha elfelejtette a jelszavát, kattintson ide.\",\r\n de: \"Wenn Sie Ihr Passwort vergessen haben, klicken Sie hier.\",\r\n en: \"If you have forgotten your password, click here.\",\r\n },\r\n\r\n \"invalid-password\": {\r\n hu: \"Hibás bejelentkezési adatok\",\r\n de: \"Falsche Angaben\",\r\n en: \"Incorrect login data\",\r\n },\r\n\r\n \"result-nok\": {\r\n hu: \"Hibás bejelentkező adatok\",\r\n de: \"Inkorrekte Angaben\",\r\n en: \"Incorrect login data\",\r\n },\r\n\r\n \"result-no-response\": {\r\n hu: \"A szerviz nem reagál. Kérem próbálja később.\",\r\n de: \"Service antwortet nicht. Bitte versuchen Sie es später noch einmal.\",\r\n en: \"The service does not respond. Please try again later.\",\r\n },\r\n\r\n \"serverstate-sleeping\": {\r\n hu: \"Kapcsolódás a szerverhez biztonságos csatornán... (kb. 30mp)\",\r\n de: \"Verbindung zum Server über einen sicheren Kanal... (etwa 30 Sekunden)\",\r\n en: \"Connect to the server over a secure channel (approx. 30s)\",\r\n },\r\n },\r\n};\r\n","import './LoginForm.scss';\r\nimport { useRef, useState, useEffect } from 'react';\r\nimport InputFieldSet from '../InputFieldSet/InputFieldSet';\r\nimport { languageElements } from './LoginForm-languageElements';\r\nimport LanguageElementsHandler from '../repository/LanguageElementsHandler';\r\nimport LoginData from '../repository/LoginData';\r\nimport wakeUp from '../repository/wakeUp';\r\n\r\nexport default function LoginForm(props) {\r\n const languageElementsHandler = new LanguageElementsHandler(\r\n languageElements,\r\n props.language\r\n );\r\n\r\n const [serverState, setServerState] = useState('SLEEPING');\r\n const [formWasValidated, setFormWasValidated] = useState(false);\r\n\r\n const [errors, setErrors] = useState({\r\n login: '',\r\n pass: '',\r\n });\r\n\r\n function showMessageShortly(codeOfMessage, typeOfAlert) {\r\n setFormAlertText(languageElementsHandler.get(codeOfMessage));\r\n setFormAlertType(typeOfAlert);\r\n setTimeout(() => {\r\n setFormAlertText('');\r\n setFormAlertType('');\r\n }, 5000);\r\n }\r\n\r\n function clearAllErrors() {\r\n setErrors({\r\n login: '',\r\n pass: '',\r\n });\r\n }\r\n\r\n const [fieldValues, setFieldValues] = useState({\r\n login: '',\r\n pass: '',\r\n });\r\n\r\n const references = {\r\n login: useRef(),\r\n pass: useRef(),\r\n };\r\n\r\n const [formAlertText, setFormAlertText] = useState('');\r\n const [formAlertType, setFormAlertType] = useState('');\r\n\r\n const validators = {\r\n login: {\r\n required: isNotEmpty,\r\n },\r\n pass: {\r\n required: isNotEmpty,\r\n },\r\n };\r\n\r\n const errorTypes = {\r\n required: languageElementsHandler.get(`validation-required`),\r\n };\r\n\r\n function isNotEmpty(value) {\r\n return value !== '';\r\n }\r\n\r\n useEffect(() => {\r\n wakeUp().then(() => {\r\n setServerState('RUNNING');\r\n })\r\n }, []);\r\n\r\n useEffect(() => {\r\n clearAllErrors();\r\n }, [props.language]);\r\n\r\n async function handleSubmit(e) {\r\n e.preventDefault();\r\n if (isFormValid()) {\r\n fetch(`${process.env.REACT_APP_API_BASE_URL}/token`, {\r\n method: 'GET',\r\n mode: 'cors',\r\n cache: 'no-cache',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n portalOwnersId: process.env.REACT_APP_PORTAL_OWNERS_ID,\r\n email: fieldValues.login,\r\n password: fieldValues.pass,\r\n },\r\n })\r\n .then((data) => {\r\n if (data.status !== 200) {\r\n throw new Error('result-nok');\r\n }\r\n return data.json();\r\n })\r\n .then((jsonData) => {\r\n let newLogin = new LoginData(jsonData.token);\r\n props.onLogin(newLogin);\r\n })\r\n .catch((error) => {\r\n showMessageShortly(\r\n error.message === 'result-nok'\r\n ? error.message\r\n : 'result-no-response',\r\n 'danger'\r\n );\r\n });\r\n }\r\n }\r\n\r\n function isFormValid() {\r\n let isFormValid = true;\r\n for (const fieldName of Object.keys(fieldValues)) {\r\n const isFieldValid = validateField(fieldName);\r\n if (!isFieldValid) {\r\n isFormValid = false;\r\n }\r\n }\r\n return isFormValid;\r\n }\r\n\r\n function handleInputBlur(e) {\r\n const fieldName = e.target.name;\r\n setErrors((previousErrors) => ({\r\n ...previousErrors,\r\n [fieldName]: '',\r\n }));\r\n\r\n validateField(fieldName);\r\n }\r\n\r\n function handleInputChange(e) {\r\n const value = e.target.value;\r\n const fieldName = e.target.name;\r\n setFieldValues({\r\n ...fieldValues,\r\n [fieldName]: value,\r\n });\r\n setErrors((previousErrors) => ({\r\n ...previousErrors,\r\n [fieldName]: '',\r\n }));\r\n }\r\n\r\n function validateField(fieldName) {\r\n const value = fieldValues[fieldName];\r\n let isValid = true;\r\n setErrors((previousErrors) => ({\r\n ...previousErrors,\r\n [fieldName]: '',\r\n }));\r\n references[fieldName].current.setCustomValidity('');\r\n\r\n if (validators[fieldName] !== undefined) {\r\n for (const [validationType, validatorFn] of Object.entries(\r\n validators[fieldName]\r\n )) {\r\n if (isValid) {\r\n isValid = validatorFn(value);\r\n if (!isValid) {\r\n const errorText = errorTypes[validationType];\r\n setErrors((previousErrors) => {\r\n return {\r\n ...previousErrors,\r\n [fieldName]: errorText,\r\n };\r\n });\r\n references[fieldName].current.setCustomValidity(errorText);\r\n }\r\n }\r\n }\r\n }\r\n return isValid;\r\n }\r\n\r\n if (serverState === 'SLEEPING') {\r\n return (\r\n
\r\n
\r\n
\r\n Loading...\r\n
\r\n
{languageElementsHandler.get(`serverstate-sleeping`)}
\r\n
\r\n
\r\n )\r\n }\r\n\r\n return (\r\n
\r\n {formAlertText && (\r\n
\r\n {formAlertText}\r\n
\r\n )}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n","import \"./PageLogin.scss\";\r\nimport { Redirect } from 'react-router-dom';\r\nimport HeaderLine from '../../Components/HeaderLine/HeaderLine';\r\nimport Infobox from '../../Components/Infobox/Infobox';\r\nimport LoginForm from '../../Components/LoginForm/LoginForm';\r\n\r\nexport default function PageLogin(props) {\r\n function onLogin(newLoginData) {\r\n props.onLogin(newLoginData)\r\n }\r\n\r\n if (props.loginData) {\r\n return \r\n }\r\n\r\n const infobox =\r\n onLogin(newLoginData)}\r\n />\r\n\r\n return (\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n","export default class FieldFormatters {\r\n static dateFormatter(value, lang) {\r\n if (!value) {\r\n return \"\";\r\n }\r\n\r\n let yearStr = value.substr(0, 4);\r\n let monthStr = value.substr(5, 2);\r\n let dayStr = value.substr(8, 2);\r\n switch (lang) {\r\n case \"hu\":\r\n return `${yearStr}.${monthStr}.${dayStr}`;\r\n\r\n case \"en\":\r\n return `${monthStr}.${dayStr}.${yearStr}`;\r\n\r\n default:\r\n return `${dayStr}.${monthStr}.${yearStr}`;\r\n }\r\n }\r\n\r\n static onlyDate(value) {\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n let yearStr = value.substr(0, 4);\r\n let monthStr = value.substr(5, 2);\r\n let dayStr = value.substr(8, 2);\r\n return `${yearStr}-${monthStr}-${dayStr}`;\r\n }\r\n\r\n static numberFormatter(value, lang, numberOfDigits) {\r\n if (isNaN(value)) {\r\n return \"\";\r\n }\r\n\r\n const formattedValue = new Intl.NumberFormat(lang, {\r\n minimumFractionDigits: numberOfDigits,\r\n maximumFractionDigits: numberOfDigits,\r\n }).format(value);\r\n\r\n return formattedValue;\r\n }\r\n}\r\n","import \"./DataGrid.scss\";\r\nimport { AgGridColumn, AgGridReact } from \"ag-grid-react\";\r\nimport FieldFormatters from \"../repository/FieldFormatters\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport LanguageElementsHandler from \"../repository/LanguageElementsHandler\";\r\n\r\nexport default function DataGrid(props) {\r\n const languageElementsHandler = new LanguageElementsHandler(\r\n props.languageElements,\r\n props.language\r\n );\r\n\r\n function dateFormatter(params) {\r\n return FieldFormatters.dateFormatter(params.value, props.language);\r\n }\r\n\r\n function floatFormatter(params) {\r\n return FieldFormatters.numberFormatter(params.value, props.language, 2);\r\n }\r\n\r\n function float4Formatter(params) {\r\n return FieldFormatters.numberFormatter(params.value, props.language, 2);\r\n }\r\n\r\n const columnTypes = {\r\n date: {\r\n valueFormatter: dateFormatter,\r\n filter: \"agDateColumnFilter\",\r\n filterParams: {\r\n debounceMs: 500,\r\n buttons: [\"reset\"],\r\n comparator: function (filterLocalDateAtMidnight, cellValue) {\r\n if (cellValue == null) {\r\n return 0;\r\n }\r\n const filterLocalDateAtMidnightInt =\r\n filterLocalDateAtMidnight.getFullYear() * 10000 +\r\n (filterLocalDateAtMidnight.getMonth() + 1) * 100 +\r\n filterLocalDateAtMidnight.getDate();\r\n const cellValueInt =\r\n parseInt(cellValue.substr(0, 4), 10) * 10000 +\r\n parseInt(cellValue.substr(5, 2), 10) * 100 +\r\n parseInt(cellValue.substr(8, 2), 10);\r\n if (cellValueInt < filterLocalDateAtMidnightInt) {\r\n return -1;\r\n } else if (cellValueInt > filterLocalDateAtMidnightInt) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n },\r\n },\r\n comparator: (d1, d2) => {\r\n if (!d1 && !d2) {\r\n return 0;\r\n }\r\n\r\n if (!d1) {\r\n return -1;\r\n }\r\n\r\n if (!d2) {\r\n return 1;\r\n }\r\n\r\n if (d1 === d2) {\r\n return 0;\r\n }\r\n return d1 > d2 ? 1 : -1;\r\n },\r\n },\r\n\r\n float: {\r\n valueFormatter: floatFormatter,\r\n headerClass: \"grid-header-right\",\r\n cellStyle: { textAlign: \"right\" },\r\n filter: \"agNumberColumnFilter\",\r\n filterParams: {\r\n buttons: [\"reset\"],\r\n },\r\n },\r\n\r\n float4: {\r\n valueFormatter: float4Formatter,\r\n headerClass: \"grid-header-right\",\r\n cellStyle: { textAlign: \"right\" },\r\n filter: \"agNumberColumnFilter\",\r\n filterParams: {\r\n buttons: [\"reset\"],\r\n },\r\n },\r\n\r\n boolean: {},\r\n\r\n default: {\r\n filter: \"agTextColumnFilter\",\r\n filterParams: {\r\n buttons: [\"reset\"],\r\n },\r\n },\r\n };\r\n\r\n const gridColumns = props.columns.map((col) => {\r\n let fieldCellRenderer;\r\n\r\n if (props.cellRenderers) {\r\n fieldCellRenderer = props.cellRenderers.find(\r\n (renderer) => renderer.field === col.field\r\n );\r\n }\r\n\r\n if (!fieldCellRenderer) {\r\n switch (col.type) {\r\n case \"boolean\":\r\n fieldCellRenderer = (params) => {\r\n return ``;\r\n };\r\n break;\r\n\r\n default:\r\n fieldCellRenderer = {};\r\n break;\r\n }\r\n }\r\n\r\n return {\r\n ...col,\r\n cellRenderer: fieldCellRenderer.cellRenderer,\r\n cellRendererParams: fieldCellRenderer.cellRendererParams,\r\n };\r\n });\r\n\r\n let languageColumns = {};\r\n props.columns.forEach((col) => {\r\n if (col.options) {\r\n const languageItems = col.options.filter((option) => option.value);\r\n if (languageItems) {\r\n let objectOfLanguageItems = {};\r\n for (let i = 0; i < languageItems.length; i++) {\r\n const languageItem = languageItems[i];\r\n objectOfLanguageItems[languageItem.value] =\r\n languageItem.text.substr(0, 4) === \"###-\"\r\n ? languageElementsHandler.get(languageItem.text.substr(4))\r\n : languageItem.text;\r\n }\r\n languageColumns[col.field] = objectOfLanguageItems;\r\n }\r\n }\r\n });\r\n\r\n let gridData = props.data.map((row) => {\r\n return { _origData: { ...row }, ...row };\r\n });\r\n\r\n if (Object.keys(languageColumns).length > 0) {\r\n Object.keys(languageColumns).forEach((key) => {\r\n gridData = gridData.map((row) => {\r\n let newRow = row;\r\n if (row[key]) {\r\n const languageValue = languageColumns[key][row[key]];\r\n if (languageValue) {\r\n newRow[key] = languageValue;\r\n }\r\n }\r\n return newRow;\r\n });\r\n });\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n {gridColumns.map((col) => (\r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n","import LanguageElementsHandler from '../repository/LanguageElementsHandler';\r\n\r\nexport default function FilterField(props) {\r\n const languageElementsHandler = new LanguageElementsHandler(\r\n props.languageElements,\r\n props.language,\r\n );\r\n\r\n let filterField;\r\n let filterType = props.filterType;\r\n\r\n if (filterType === undefined && props.options) {\r\n filterType = 'select';\r\n }\r\n\r\n const description = languageElementsHandler.get(`field-${props.fieldName}`);\r\n\r\n switch (filterType) {\r\n case 'date':\r\n filterField = (\r\n
\r\n
\r\n \r\n
\r\n
\r\n = ?`}\r\n data-comparator=\"$gte\"\r\n data-field={props.fieldName}\r\n />\r\n
\r\n
-
\r\n
\r\n \r\n
\r\n
\r\n );\r\n break;\r\n\r\n case 'select':\r\n filterField = (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {\r\n props.options.map((option) => {\r\n if (typeof (option) === 'string') {\r\n return (\r\n \r\n );\r\n }\r\n if (typeof (option) === 'object' && (option.value || option.value === '')) {\r\n const key = `field-${props.fieldName}-option-${option.value}`;\r\n const text = (option.text.substr(0, 4) === '###-') ? languageElementsHandler.get(option.text.substr(4)) : option.text;\r\n\r\n return ;\r\n }\r\n\r\n return null;\r\n })\r\n }\r\n \r\n
\r\n
\r\n );\r\n\r\n break;\r\n\r\n default:\r\n filterField = (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n break;\r\n }\r\n\r\n return filterField;\r\n}\r\n","export default __webpack_public_path__ + \"static/media/clearAll.49454f19.svg\";","import './Filters.scss';\r\nimport FilterField from './FilterField';\r\nimport pictureClearAll from './clearAll.svg';\r\n\r\nexport default function Filters(props) {\r\n const selectedFilters = props?.reportParams?.selectedFilters;\r\n if (!selectedFilters) {\r\n return
;\r\n }\r\n\r\n const filters = selectedFilters.map((fieldName) => {\r\n const column = props.reportParams.columns.find((column) => {\r\n return column.field === fieldName;\r\n });\r\n const filterField = {\r\n fieldName,\r\n filterType: column.type,\r\n options: column.options,\r\n };\r\n return filterField;\r\n });\r\n\r\n function clearAll() {\r\n Array.from(document.querySelectorAll('.reportFilter'))\r\n .filter((e) => e.value)\r\n .forEach(field => {\r\n field.value = '';\r\n })\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n {filters.map((filterField) => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n
\r\n );\r\n}\r\n","export default __webpack_public_path__ + \"static/media/ExcelExport-icon.ece6fb84.svg\";","import ExcelExportIcon from './ExcelExport-icon.svg';\r\nimport './ExcelExport.scss';\r\nimport xlsx from 'xlsx';\r\nimport FileSaver from 'file-saver';\r\n\r\nexport default function ExcelExport(props) {\r\n function exportToExcel() {\r\n const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\n const EXCEL_EXTENSION = '.xlsx';\r\n const worksheet = xlsx.utils.json_to_sheet(props.data);\r\n const workbook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\r\n const excelBuffer = xlsx.write(workbook, {bookType: 'xlsx', type: 'array'});\r\n const data = new Blob([excelBuffer], {type: EXCEL_TYPE});\r\n FileSaver.saveAs(data, 'excelData'+EXCEL_EXTENSION);\r\n }\r\n\r\n return (\r\n
\r\n ExcelExport-icon.svg\r\n
\r\n )\r\n}","import { useState, useEffect, useRef } from 'react';\r\nimport './GridReport.scss';\r\nimport { Accordion } from 'bootstrap';\r\nimport DataGrid from '../DataGrid/DataGrid';\r\nimport Filters from '../Filters/Filters';\r\nimport LanguageElementsHandler from '../repository/LanguageElementsHandler';\r\nimport ExcelExport from '../ExcelExport/ExcelExport';\r\nimport wakeUp from '../repository/wakeUp';\r\n\r\nexport default function GridReportIdeiglenes(props) {\r\n const languageElementsHandler = new LanguageElementsHandler(\r\n props.report.languageElements,\r\n props.language,\r\n );\r\n\r\n const accordionData = useRef();\r\n const [reportParams, setReportParams] = useState({});\r\n const [dataLoadingState, setDataLoadingState] = useState('NOT PREPARED');\r\n const [gridData, setGridData] = useState([]);\r\n const [gridColumns, setGridColumns] = useState([]);\r\n\r\n const loggedEmail = props.loginData?.getDataFromToken().user.email\r\n\r\n useEffect(() => {\r\n setDataLoadingState('LOADING-PARAMS');\r\n fetch(`${process.env.REACT_APP_API_BASE_URL}/reports/params`, {\r\n method: 'GET',\r\n mode: 'cors',\r\n cache: 'no-cache',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n token: props.loginData.getToken(),\r\n reportid: props.id,\r\n },\r\n })\r\n .then((data) => {\r\n if (data.status !== 200) {\r\n setDataLoadingState('NOT PREPARED');\r\n const error = new Error('invalid');\r\n error.status = data.status;\r\n throw error;\r\n }\r\n return data.json();\r\n })\r\n .then((jsonData) => {\r\n setReportParams(jsonData);\r\n setGridColumns(\r\n jsonData.selectedColumns.map((columnName) => {\r\n const columnDef = jsonData.columns.find((column) => {\r\n return column.field === columnName;\r\n });\r\n return {\r\n field: columnName,\r\n type: columnDef.type,\r\n width: columnDef.width,\r\n options: columnDef.options,\r\n };\r\n }),\r\n );\r\n\r\n setDataLoadingState('NOT LOADED');\r\n })\r\n .catch((error) => {\r\n setDataLoadingState('NOT PREPARED');\r\n });\r\n }, [loggedEmail]);\r\n\r\n useEffect(() => {\r\n showDataIfNotCollapsed();\r\n }, [props.language]);\r\n\r\n function showDataIfNotCollapsed() {\r\n wakeUp().then(() => {\r\n if (accordionData.current) {\r\n if (!accordionData.current.classList.contains('collapsed')) {\r\n showData();\r\n }\r\n }\r\n })\r\n }\r\n\r\n function getFilter() {\r\n const filterFields = Array.from(document.querySelectorAll('.reportFilter'))\r\n .filter((e) => e.value)\r\n .map((e) => {\r\n switch (e.type) {\r\n case 'date':\r\n const dateValue = new Date(e.value);\r\n const sqlDate = `CONVERT(DATETIME, '${dateValue.getFullYear()}-${dateValue.getMonth() + 1\r\n }-${dateValue.getDate()}', 102)`;\r\n const sqlDate2359 = `CONVERT(DATETIME, '${dateValue.getFullYear()}-${dateValue.getMonth() + 1\r\n }-${dateValue.getDate()} 23:59:59', 102)`;\r\n\r\n let result = e.dataset.sql.replace(/\\?\\(2359\\)/g, sqlDate2359);\r\n result = result.replace(/\\?/g, sqlDate);\r\n return result;\r\n\r\n default:\r\n return `(${e.dataset.sql.replace(/\\?/g, e.value)})`;\r\n }\r\n });\r\n return filterFields.join(' AND ');\r\n }\r\n\r\n function showData() {\r\n setDataLoadingState('LOADING');\r\n \r\n fetch(`${process.env.REACT_APP_API_BASE_URL}/data`, {\r\n method: 'GET',\r\n mode: 'cors',\r\n cache: 'no-cache',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n token: props.loginData.getToken(),\r\n select: reportParams.selectedColumns.join(', '),\r\n from: props.report.sqlFromIdeiglenes,\r\n where: getFilter(),\r\n orderby: reportParams.sqlOrderBy,\r\n language: props.language,\r\n },\r\n })\r\n .then((data) => {\r\n if (data.status !== 200) {\r\n setDataLoadingState('NOT LOADED');\r\n const error = new Error('invalid');\r\n error.status = data.status;\r\n throw error;\r\n }\r\n return data.json();\r\n })\r\n .then((jsonData) => {\r\n setGridData(jsonData.data);\r\n setDataLoadingState('LOADED');\r\n })\r\n .catch((error) => {\r\n setDataLoadingState('NOT LOADED');\r\n });\r\n }\r\n\r\n if (dataLoadingState === 'LOADING-PARAMS') {\r\n return (\r\n
\r\n
\r\n
\r\n Loading...\r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n if (dataLoadingState === 'NOT PREPARED') {\r\n return <>;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

\r\n \r\n {languageElementsHandler.get(\"flush-filter\")}\r\n \r\n

\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n showDataIfNotCollapsed()}\r\n >\r\n {languageElementsHandler.get(\"flush-data\")}\r\n \r\n

\r\n \r\n {dataLoadingState === 'NOT LOADED' && (\r\n
\r\n )}\r\n\r\n {(dataLoadingState === 'LOADING' || dataLoadingState === 'NOT PREPARED') && (\r\n
\r\n
\r\n Loading...\r\n
\r\n
\r\n )}\r\n\r\n {dataLoadingState === 'LOADED' && (\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n \r\n {\"###flush-select-columns\"}\r\n \r\n \r\n \r\n
\r\n Placeholder content for this accordion, which is intended to\r\n demonstrate the .accordion-flush class. This is the\r\n third item's accordion body. Nothing more exciting happening here\r\n in terms of content, but just filling up the space to make it\r\n look, at least at first glance, a bit more representative of how\r\n this would look in a real-world application.\r\n
\r\n
\r\n \r\n \r\n \r\n );\r\n}\r\n","export const languageElements = {\r\n items: {\r\n 'flush-filter': {\r\n hu: 'Adatok előszűrése',\r\n de: 'Daten filtern',\r\n en: 'Filtering data',\r\n },\r\n\r\n 'flush-data': {\r\n hu: 'Számláim',\r\n de: 'Liste der Rechnungen',\r\n en: 'List of invoices',\r\n },\r\n\r\n 'field-ExternalSystem_ID': {\r\n hu: 'Letöltés',\r\n de: 'Download',\r\n en: 'Download',\r\n },\r\n 'field-ExternalSystem_TransactID': {\r\n hu: 'External System Transact ID',\r\n de: 'External System Transact ID',\r\n en: 'External System Transact ID',\r\n },\r\n 'field-Vendor_Name': {\r\n hu: 'Eladó',\r\n de: 'Verkäufer',\r\n en: 'Vendor',\r\n },\r\n 'field-InvNum': {\r\n hu: 'Számlaszám',\r\n de: 'Rechnungsnummer',\r\n en: 'Invoice number',\r\n },\r\n 'field-Inv_SeqNum': {\r\n hu: 'Iktatószám',\r\n de: 'Registrationsnummer',\r\n en: 'Registration number',\r\n },\r\n 'field-ACCT_Period': {\r\n hu: 'Pénzügyi periódus',\r\n de: 'Period',\r\n en: 'Period',\r\n },\r\n 'field-InvType': {\r\n hu: 'Bizonylat típusa',\r\n de: 'Re/Gu',\r\n en: 'AC/AR',\r\n },\r\n 'field-InvClass': {\r\n hu: 'Eseti / folyamatos',\r\n de: 'Leistungsart',\r\n en: 'Type of delivery',\r\n },\r\n 'field-Ref_InvNum': {\r\n hu: 'Hivatkozott bizonylat',\r\n de: 'Ref.Rechnung',\r\n en: 'Referred invoice',\r\n },\r\n 'field-Parent_InvNum': {\r\n hu: 'Ős bizonylat',\r\n de: 'Basisrechnung',\r\n en: 'Root invoice',\r\n },\r\n 'field-AccountingStatus': {\r\n hu: 'Könyvelési státusz',\r\n de: 'FIBU-Status',\r\n en: 'Accounting state',\r\n },\r\n 'field-Cancellation_ReasonCode': {\r\n hu: 'Javítás oka',\r\n de: 'Grund Stornierung',\r\n en: 'Cancellation reason',\r\n },\r\n 'field-Vendor_ID': {\r\n hu: 'Szállító ID',\r\n de: 'Lieferant ID',\r\n en: 'Vendor ID',\r\n },\r\n 'field-Vendor_ACCT_Code': {\r\n hu: 'Szállító fők.szám',\r\n de: 'Lieferant FIBU-Konto',\r\n en: 'Vendor acct.num.',\r\n },\r\n 'field-Vendor_ExternalCode1': {\r\n hu: 'Szállító kód 1',\r\n de: 'Lieferant Code 1',\r\n en: 'Vendor Code 1',\r\n },\r\n 'field-Vendor_ExternalCode2': {\r\n hu: 'Szállító kód 2',\r\n de: 'Lieferant Code 2',\r\n en: 'Vendor Code 2',\r\n },\r\n 'field-Vendor_Name1': {\r\n hu: 'Szállító név 1',\r\n de: 'Lieferant Name 1',\r\n en: 'Vendor name 1',\r\n },\r\n 'field-Vendor_Name2': {\r\n hu: 'Szállító név 2',\r\n de: 'Lieferant Name 2',\r\n en: 'Vendor name 2',\r\n },\r\n 'field-Vendor_Country': {\r\n hu: 'Szállító ország',\r\n de: 'Lieferant Land',\r\n en: 'Vendor country',\r\n },\r\n 'field-Vendor_State': {\r\n hu: 'Szállító megye',\r\n de: 'Lieferant Bundesland',\r\n en: 'Vendor state',\r\n },\r\n 'field-Vendor_ZIP': {\r\n hu: 'Szállító ir.szám',\r\n de: 'Lieferant PLZ',\r\n en: 'Vendor zip code',\r\n },\r\n\r\n 'field-Vendor_Addr_District': {\r\n hu: 'Szállító kerület',\r\n de: 'Lieferant Bezirk',\r\n en: 'Vendor district',\r\n },\r\n 'field-Vendor_City': {\r\n hu: 'Szállító helység',\r\n de: 'Lieferant Ort',\r\n en: 'Vendor city',\r\n },\r\n 'field-Vendor_Addr_StreetName': {\r\n hu: 'Szállító utca',\r\n de: 'Lieferant Strasse',\r\n en: 'Vendor street',\r\n },\r\n 'field-Vendor_Addr_ps_type': {\r\n hu: 'Szállító közterület típusa',\r\n de: 'Lieferant Typ von Verkehrsbauwerk',\r\n en: 'Vendor public place category',\r\n },\r\n 'field-Vendor_Addr_housenr': {\r\n hu: 'Szállító házszám',\r\n de: 'Lieferant Hausnummer',\r\n en: 'Vendor house number',\r\n },\r\n 'field-Vendor_Addr_building': {\r\n hu: 'Szállító épület',\r\n de: 'Lieferant Gebäude',\r\n en: 'Vendor building',\r\n },\r\n 'field-Vendor_Addr_stairway': {\r\n hu: 'Szállító lépcsőház',\r\n de: 'Lieferant Treppenhaus',\r\n en: 'Vendor stairway',\r\n },\r\n 'field-Vendor_Addr_floor': {\r\n hu: 'Szállító emelet',\r\n de: 'Lieferant Etage',\r\n en: 'Vendor floor',\r\n },\r\n 'field-Vendor_Addr_door': {\r\n hu: 'Szállító ajtó',\r\n de: 'Lieferant Tür',\r\n en: 'Vendor door',\r\n },\r\n 'field-Vendor_Contact': {\r\n hu: 'Szállító kapcsolattartó',\r\n de: 'Lieferant Kontakt',\r\n en: 'Vendor Contact',\r\n },\r\n 'field-Vendor_Phone': {\r\n hu: 'Szállító tel.',\r\n de: 'Lieferant Tel.',\r\n en: 'Vendor phone',\r\n },\r\n 'field-Vendor_Email': {\r\n hu: 'Szállító email',\r\n de: 'Lieferant Email',\r\n en: 'Vendor email',\r\n },\r\n 'field-Vendor_LegalPersonType': {\r\n hu: 'Szállító adófizető típusa',\r\n de: 'Lieferant Steuerzahlerart',\r\n en: 'Vendor taxpayer type',\r\n },\r\n 'field-Vendor_TaxNum': {\r\n hu: 'Szállító adószám',\r\n de: 'Lieferant St.Nummer',\r\n en: 'Vendor taxnumber',\r\n },\r\n 'field-Vendor_TaxNum2': {\r\n hu: 'Szállító közösségi adószám',\r\n de: 'Lieferant EU St.Nummer',\r\n en: 'Vendor EU taxnumber',\r\n },\r\n 'field-Vendor_TaxNum3': {\r\n hu: 'Szállító adóazonosító 3. ország',\r\n de: 'Lieferant St.Nr.Drittland',\r\n en: 'Vendor 3.country',\r\n },\r\n\r\n 'field-Vendor_PrivatePersonID': {\r\n hu: 'Szállító magánszemély adóazonosító',\r\n de: 'Lieferant Privatperson St.Nummer',\r\n en: 'Vendor private person tax no.',\r\n },\r\n 'field-Vendor_BankAcc': {\r\n hu: 'Szállító bankszámla',\r\n de: 'Lieferant Bankkonto',\r\n en: 'Vendor bank account',\r\n },\r\n 'field-Vendor_IBAN': {\r\n hu: 'Szállító IBAN',\r\n de: 'Lieferant IBAN',\r\n en: 'Vendor IBAN',\r\n },\r\n 'field-Vendor_SWIFT': {\r\n hu: 'Szállító SWIFT',\r\n de: 'Lieferant SWIFT',\r\n en: 'Vendor SWIFT',\r\n },\r\n 'field-Vendor_AccNum': {\r\n hu: 'Szállító fők.szla.',\r\n de: 'Lieferant FIBU Konto',\r\n en: 'Vendor ledger no.',\r\n },\r\n 'field-Customer_ID': {\r\n hu: 'Vevő ',\r\n de: 'Kunde ',\r\n en: 'Customer ',\r\n },\r\n 'field-Customer_ACCT_Code': {\r\n hu: 'Vevő fők.szám',\r\n de: 'Kunde FIBU-Konto',\r\n en: 'Customer acct.num.',\r\n },\r\n 'field-Customer_ExternalCode1': {\r\n hu: 'Vevő kód 1',\r\n de: 'Kunde Code 1',\r\n en: 'Customer Code 1',\r\n },\r\n 'field-Customer_ExternalCode2': {\r\n hu: 'Vevő kód 2',\r\n de: 'Kunde Code 2',\r\n en: 'Customer Code 2',\r\n },\r\n 'field-Customer_Name': {\r\n hu: 'Vevő név',\r\n de: 'Kunde Name',\r\n en: 'Customer name',\r\n },\r\n\r\n 'field-Customer_Name1': {\r\n hu: 'Vevő név 1',\r\n de: 'Kunde Name 1',\r\n en: 'Customer name 1',\r\n },\r\n\r\n 'field-Customer_Name2': {\r\n hu: 'Vevő név 2',\r\n de: 'Kunde Name 2',\r\n en: 'Customer name 2',\r\n },\r\n 'field-Customer_Country': {\r\n hu: 'Vevő ország',\r\n de: 'Kunde Land',\r\n en: 'Customer country',\r\n },\r\n 'field-Customer_State': {\r\n hu: 'Vevő megye',\r\n de: 'Kunde Bundesland',\r\n en: 'Customer state',\r\n },\r\n 'field-Customer_ZIP': {\r\n hu: 'Vevő ir.szám',\r\n de: 'Kunde PLZ',\r\n en: 'Customer zip code',\r\n },\r\n\r\n 'field-Customer_Addr_District': {\r\n hu: 'Vevő kerület',\r\n de: 'Kunde Bezirk',\r\n en: 'Customer district',\r\n },\r\n 'field-Customer_City': {\r\n hu: 'Vevő helység',\r\n de: 'Kunde Ort',\r\n en: 'Customer city',\r\n },\r\n 'field-Customer_Addr_StreetName': {\r\n hu: 'Vevő utca',\r\n de: 'Kunde Strasse',\r\n en: 'Customer street',\r\n },\r\n 'field-Customer_Addr_ps_type': {\r\n hu: 'Vevő közterület típusa',\r\n de: 'Kunde Typ von Verkehrsbauwerk',\r\n en: 'Customer public place category',\r\n },\r\n 'field-Customer_Addr_housenr': {\r\n hu: 'Vevő házszám',\r\n de: 'Kunde Hausnummer',\r\n en: 'Customer house number',\r\n },\r\n 'field-Customer_Addr_building': {\r\n hu: 'Vevő épület',\r\n de: 'Kunde Gebäude',\r\n en: 'Customer building',\r\n },\r\n 'field-Customer_Addr_stairway': {\r\n hu: 'Vevő lépcsőház',\r\n de: 'Kunde Treppenhaus',\r\n en: 'Customer stairway',\r\n },\r\n\r\n 'field-Customer_Addr_floor': {\r\n hu: 'Vevő emelet',\r\n de: 'Kunde Etage',\r\n en: 'Customer floor',\r\n },\r\n 'field-Customer_Addr_door': {\r\n hu: 'Vevő ajtó',\r\n de: 'Kunde Tür',\r\n en: 'Customer door',\r\n },\r\n 'field-Customer_Contact': {\r\n hu: 'Vevő kapcsolattartó',\r\n de: 'Kunde Kontakt',\r\n en: 'Customer Contact',\r\n },\r\n 'field-Customer_Phone': {\r\n hu: 'Vevő tel.',\r\n de: 'Kunde Tel.',\r\n en: 'Customer phone',\r\n },\r\n 'field-Customer_Email': {\r\n hu: 'Vevő email',\r\n de: 'Kunde Email',\r\n en: 'Customer email',\r\n },\r\n 'field-Customer_LegalPersonType': {\r\n hu: 'Vevő adófizető típusa',\r\n de: 'Kunde Steuerzalerart',\r\n en: 'Customer taxpayer type',\r\n },\r\n 'field-Customer_TaxNum': {\r\n hu: 'Vevő adószám',\r\n de: 'Kunde St.Nummer',\r\n en: 'Customer taxnumber',\r\n },\r\n\r\n 'field-Customer_TaxNum2': {\r\n hu: 'Vevő közösségi adószám',\r\n de: 'Kunde EU St.Nummer',\r\n en: 'Customer EU taxnumber',\r\n },\r\n 'field-Customer_TaxNum3': {\r\n hu: 'Vevő adóazonosító 3. ország',\r\n de: 'Kunde St.Nr.Drittland',\r\n en: 'Customer 3.country',\r\n },\r\n 'field-Customer_PrivatePersonID': {\r\n hu: 'Vevő magánszemély adóazonosító',\r\n de: 'Kunde Privatperson St.Nummer',\r\n en: 'Customer private person tax no.',\r\n },\r\n 'field-Customer_BankAcc': {\r\n hu: 'Vevő bankszámla',\r\n de: 'Kunde Bankkonto',\r\n en: 'Customer bank account',\r\n },\r\n\r\n 'field-Customer_IBAN': {\r\n hu: 'Vevő IBAN',\r\n de: 'Kunde IBAN',\r\n en: 'Customer IBAN',\r\n },\r\n 'field-Customer_SWIFT': {\r\n hu: 'Vevő SWIFT',\r\n de: 'Kunde SWIFT',\r\n en: 'Customer SWIFT',\r\n },\r\n 'field-Customer_AccNum': {\r\n hu: 'Vevő fők.szla.',\r\n de: 'Kunde FIBU Konto',\r\n en: 'Customer ledger no.',\r\n },\r\n 'field-Period_FROM': {\r\n hu: 'Periódus kezdete',\r\n de: 'Beginn der Periode',\r\n en: 'Beginning of period',\r\n },\r\n\r\n 'field-Period_TO': {\r\n hu: 'Periódus vége',\r\n de: 'Ende der Periode',\r\n en: 'End of period',\r\n },\r\n 'field-InvDate': {\r\n hu: 'Bizonylat kelte',\r\n de: 'Rechnungsdatum',\r\n en: 'Invoice date',\r\n },\r\n 'field-DeliveryDate': {\r\n hu: 'Teljesítés dátuma',\r\n de: 'Leistungsdatum',\r\n en: 'Deliverydate',\r\n },\r\n 'field-AccDate': {\r\n hu: 'Könyvelési dátum',\r\n de: 'FIBU Datum',\r\n en: 'Acct.date',\r\n },\r\n 'field-PaymentMethod': {\r\n hu: 'Fiz.mód',\r\n de: 'Za.Art',\r\n en: 'Payment method',\r\n },\r\n 'field-DueDate': {\r\n hu: 'Fizetési határidő',\r\n de: 'Zahlungsfrist',\r\n en: 'Payment deadline',\r\n },\r\n 'field-PostInDate': {\r\n hu: 'Beérkezés dátuma',\r\n de: 'Datum der Ankunft',\r\n en: 'Date of arrival',\r\n },\r\n 'field-InvInDueDate': {\r\n hu: 'Tervezett kifizetés',\r\n de: 'Datum der geplannte Bezahlung',\r\n en: 'Planned date of payment',\r\n },\r\n 'field-Net_LC': {\r\n hu: 'Nettó HUF',\r\n de: 'Netto HUF',\r\n en: 'Net HUF',\r\n },\r\n 'field-Tax_LC': {\r\n hu: 'ÁFA HUF',\r\n de: 'MwSt. HUF',\r\n en: 'VAT HUF',\r\n },\r\n 'field-Gross_LC': {\r\n hu: 'Bruttó HUF',\r\n de: 'Brutto HUF',\r\n en: 'Gross HUF',\r\n },\r\n 'field-PayStatus': {\r\n hu: 'Fizetési állapot',\r\n de: 'Zahlungsstatus',\r\n en: 'Payment status',\r\n },\r\n 'field-Fully_paid_date': {\r\n hu: 'Pénzügyi rendezés napja',\r\n de: 'Finanzieller Abrechnungstag',\r\n en: 'Financial settlement',\r\n },\r\n 'field-PaidAmount_DC': {\r\n hu: 'Eddig kifizetve',\r\n de: 'Teilzahlung',\r\n en: 'Partial payment',\r\n },\r\n 'field-PaidAmount_FC': {\r\n hu: 'Eddig kifizetve EUR',\r\n de: 'Teilzahlung EUR',\r\n en: 'Partial payment EUR',\r\n },\r\n 'field-PaidAmount_LC': {\r\n hu: 'Eddig kifizetve HUF',\r\n de: 'Teilzahlung HUF',\r\n en: 'Partial payment HUF',\r\n },\r\n 'field-Backlog_DC': {\r\n hu: 'Hátralék',\r\n de: 'Verzug',\r\n en: 'Remainder',\r\n },\r\n 'field-Backlog_FC': {\r\n hu: 'Hátralék EUR',\r\n de: 'Verzug EUR',\r\n en: 'Remainder EUR',\r\n },\r\n 'field-Backlog_LC': {\r\n hu: 'Hátralék HUF',\r\n de: 'Verzug HUF',\r\n en: 'Remainder HUF',\r\n },\r\n 'field-Net_DC': {\r\n hu: 'Nettó',\r\n de: 'Netto',\r\n en: 'Net',\r\n },\r\n 'field-Tax_DC': {\r\n hu: 'ÁFA',\r\n de: 'MwSt.',\r\n en: 'VAT',\r\n },\r\n 'field-Gross_DC': {\r\n hu: 'Bruttó',\r\n de: 'Brutto',\r\n en: 'Gross',\r\n },\r\n 'field-Lang': {\r\n hu: 'Bizonylat nyelve',\r\n de: 'Dok. Sprache',\r\n en: 'Doc. language',\r\n },\r\n 'field-Inv_Curr_DC': {\r\n hu: 'Számla devizaneme',\r\n de: 'Rechnungswährung',\r\n en: 'Invoice currency',\r\n },\r\n 'field-Net_FC': {\r\n hu: 'Nettó EUR',\r\n de: 'Netto EUR',\r\n en: 'Net EUR',\r\n },\r\n 'field-Tax_FC': {\r\n hu: 'ÁFA EUR',\r\n de: 'MwSt. EUR',\r\n en: 'VAT EUR',\r\n },\r\n 'field-Gross_FC': {\r\n hu: 'Bruttó EUR',\r\n de: 'Brutto EUR',\r\n en: 'Gross EUR',\r\n },\r\n 'field-Remarks1': {\r\n hu: 'Megjegyzések',\r\n de: 'Bemerkungen',\r\n en: 'Remarks',\r\n },\r\n 'field-Remarks2': {\r\n hu: 'Megjegyzések 2',\r\n de: 'Bemerkungen 2',\r\n en: 'Remarks 2',\r\n },\r\n 'field-Attachments': {\r\n hu: 'Csatolt dokumentumok',\r\n de: 'Beilagen',\r\n en: 'Attached documents',\r\n },\r\n 'field-Added_Date': {\r\n hu: 'Felvétel dátuma',\r\n de: 'Erfassungsdatum',\r\n en: 'Date of entry',\r\n },\r\n 'field-Added_UserName': {\r\n hu: 'Felvevő',\r\n de: 'Bearbeiter',\r\n en: 'Registered by',\r\n },\r\n 'field-Added_UserEmail': {\r\n hu: 'Felvevő email',\r\n de: 'Bearbeiter Email',\r\n en: 'Email of administrator',\r\n },\r\n 'field-Added_UserPhone': {\r\n hu: 'Felvevő tel.',\r\n de: 'Bearbeiter Tel.',\r\n en: 'Administrator phone no.',\r\n },\r\n 'field-ACC_Info': {\r\n hu: 'Könyvelési információ',\r\n de: 'FIBU Info',\r\n en: 'Acct information',\r\n },\r\n 'field-Subcontracted_Services': {\r\n hu: 'Közvetített szolgáltatás',\r\n de: 'Vermittelte Dienstleistung',\r\n en: 'Mediated Service',\r\n },\r\n\r\n 'CANCELLED': {\r\n hu: 'Sztornó',\r\n de: 'Storno',\r\n en: 'Cancelled',\r\n },\r\n\r\n 'NOT PAID': {\r\n hu: 'Rendezetlen',\r\n de: 'Nicht bezahlt',\r\n en: 'Not paid',\r\n },\r\n\r\n 'PAID': {\r\n hu: 'Fizetve',\r\n de: 'Bezahlt',\r\n en: 'Paid',\r\n },\r\n\r\n \"field-hasDocuments\": {\r\n hu: \"Dokumentumok feltöltve\",\r\n de: \"Beigefügte Dokumente\",\r\n en: \"Attached documents\",\r\n },\r\n },\r\n};\r\n","export default __webpack_public_path__ + \"static/media/file_download_black_24dp.844f9ccc.svg\";","export default __webpack_public_path__ + \"static/media/x.af4c839d.svg\";","import { Component } from \"react\";\r\nimport downloadIcon from \"./file_download_black_24dp.svg\";\r\nimport xIcon from \"./x.svg\";\r\nimport \"./ReportInvoices-FunctionCell.scss\";\r\n\r\nexport default class ReportInvoicesFunctionCell extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.btnClickedHandler = this.btnClickedHandler.bind(this);\r\n this.status = '';\r\n }\r\n\r\n renderStatus(newStatus) {\r\n this.status = newStatus;\r\n this.forceUpdate();\r\n }\r\n\r\n btnClickedHandler() {\r\n this.props.clicked(this.props.value, this.renderStatus.bind(this));\r\n }\r\n\r\n render() {\r\n if (this.props.data._origData.hasDocuments) {\r\n switch (this.status) {\r\n case 'LOADING':\r\n return (\r\n
\r\n
\r\n Loading...\r\n
\r\n
\r\n );\r\n\r\n case 'ERROR':\r\n return (\r\n
\r\n \r\n
\r\n )\r\n\r\n default:\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n )\r\n }\r\n}\r\n","export default function base64ToBlob(b64Data, contentType='', sliceSize=512) {\r\n const byteCharacters = atob(b64Data);\r\n const byteArrays = [];\r\n \r\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n const slice = byteCharacters.slice(offset, offset + sliceSize);\r\n \r\n const byteNumbers = new Array(slice.length);\r\n for (let i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n \r\n const byteArray = new Uint8Array(byteNumbers);\r\n byteArrays.push(byteArray);\r\n }\r\n \r\n const blob = new Blob(byteArrays, {type: contentType});\r\n return blob; \r\n }\r\n ","import GridReportIdeiglenes from \"../GridReportIdeiglenes/GridReportIdeiglenes\";\r\nimport { languageElements } from \"./ReportInvoices-languageElements\";\r\nimport ReportInvoicesFunctionCell from \"./ReportInvoices-FunctionCell\";\r\nimport { saveAs } from \"file-saver\";\r\nimport base64ToBlob from '../repository/base64ToBlob';\r\n\r\nexport default function ReportInvoices(props) {\r\n\r\n async function downloadFiles(invId, renderStatus) {\r\n renderStatus('LOADING');\r\n fetch(`${process.env.REACT_APP_API_BASE_URL}/data/files/invoices`, {\r\n method: 'GET',\r\n mode: 'cors',\r\n cache: 'no-cache',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n token: props.loginData.getToken(),\r\n invid: invId,\r\n },\r\n })\r\n .then((data) => {\r\n if (data.status !== 200) {\r\n const error = new Error('invalid');\r\n error.status = data.status;\r\n throw error;\r\n }\r\n return data.json();\r\n })\r\n .then((jsonData) => {\r\n jsonData.documents.forEach(doc => {\r\n const blob = base64ToBlob(doc.imageData)\r\n saveAs(blob, doc.fileName)\r\n })\r\n renderStatus('');\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n renderStatus('ERROR');\r\n });\r\n };\r\n\r\n return (\r\n
\r\n downloadFiles(invId, ReportInvoicesFunctionCell),\r\n },\r\n },\r\n ],\r\n }}\r\n />\r\n
\r\n );\r\n}\r\n","import './PageInvoices.scss';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport HeaderLine from \"../../Components/HeaderLine/HeaderLine\";\r\nimport ReportInvoices from \"../../Components/ReportInvoices/ReportInvoices\";\r\n\r\nexport default function PageReports(props) {\r\n if (!props.loginData) {\r\n return ;\r\n }\r\n\r\n return (\r\n
\r\n \r\n\r\n \r\n
\r\n );\r\n}\r\n","import { useState } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport './HamMenuItem.scss';\r\nimport LanguageElementsHandler from '../../repository/LanguageElementsHandler';\r\n\r\nexport default function HamMenuItem({ language, languageElements, itemId, isSelected, link }) {\r\n const [redirected, setRedirected] = useState('');\r\n\r\n const languageElementsHandler = new LanguageElementsHandler(\r\n languageElements,\r\n language\r\n );\r\n \r\n if (redirected) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n function onMenuItemClicked() {\r\n setRedirected(link);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

{languageElementsHandler.get(`${itemId}-title`)}

\r\n
\r\n
\r\n
{languageElementsHandler.get(`${itemId}-descr`)}
\r\n
\r\n
\r\n
\r\n )\r\n}","import './HamMenu.scss';\r\nimport HamMenuItem from './HamMenuItem/HamMenuItem';\r\n\r\nexport default function HamMenu(props) {\r\n if (!props.show) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n {\r\n props.menuItems.map(item => {\r\n return (\r\n \r\n\r\n )\r\n })\r\n\r\n }\r\n
\r\n )\r\n}","export const languageElements = {\r\n items: {\r\n \"warehouse-stocks-title\": {\r\n hu: \"Készlet információ\",\r\n de: \"Bestände\",\r\n en: \"Stocks\",\r\n },\r\n\r\n \"warehouse-stocks-descr\": {\r\n hu: \"Excel-be exportálható készletlista\",\r\n de: \"Bestandsliste mit Excel Export\",\r\n en: \"List of stocks, export data to Excel\",\r\n },\r\n\r\n \"warehouse-journal-title\": {\r\n hu: \"Mozgásnapló\",\r\n de: \"Bewegungsliste\",\r\n en: \"List of movements\",\r\n },\r\n\r\n \"warehouse-journal-descr\": {\r\n hu: \"Excel-be exportálható mozgáslista\",\r\n de: \"Liste der Bewegungen, exportierbar nach Excel\",\r\n en: \"List of movements, exportable to Excel\",\r\n },\r\n },\r\n};\r\n","import HamMenu from \"../../../Components/HamMenu/HamMenu\";\r\nimport { languageElements } from './WarehouseHamMenu-languageElements';\r\n\r\nexport default function WarehouseHamMenu(props) {\r\n return (\r\n \r\n )\r\n}\r\n","import { useState } from 'react'\r\nimport { Redirect } from \"react-router-dom\";\r\nimport HeaderLine from \"../../Components/HeaderLine/HeaderLine\";\r\nimport WarehouseHamMenu from \"./WarehouseHamMenu/WarehouseHamMenu\";\r\n\r\nexport default function PageWarehouse(props) {\r\n const [hamShowed, showHam] = useState(true)\r\n\r\n function onHamClicked() {\r\n showHam(!hamShowed);\r\n }\r\n\r\n if (!props.loginData) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n return (\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n )\r\n}","export const languageElements = {\r\n items: {\r\n \"field-name\": {\r\n hu: \"Az Ön neve:\",\r\n de: \"Ihre(n) Name:\",\r\n en: \"Your name:\",\r\n },\r\n\r\n \"field-email\": {\r\n hu: \"Email:\",\r\n de: \"Email:\",\r\n en: \"Email:\",\r\n },\r\n\r\n \"field-emailAnnouncementsAccepted\": {\r\n hu: \"Az engem érintő információkat és dokumentumokat, emailben elfogadom\",\r\n de: \"Ich akzeptiere Informationen und Unterlagen per E-Mail\",\r\n en: \"I accept information and documents by e-mail\",\r\n },\r\n\r\n \"field-newsletterAccepted\": {\r\n hu: \"Feliratkozom a hírlevélre\",\r\n de: \"Ich abonniere den Newsletter\",\r\n en: \"I subscribe the newsletter\",\r\n },\r\n\r\n \"btn-submit\": {\r\n hu: \"Adatok mentése\",\r\n de: \"Speichern\",\r\n en: \"Save changes\",\r\n },\r\n\r\n \"validation-required\": {\r\n hu: \"Kérem töltse ki a mezőt\",\r\n de: \"Dateneingabe erforderlich\",\r\n en: \"Please fill in the field\",\r\n },\r\n\r\n \"validation-validEmail\": {\r\n hu: \"A megadott email hibás\",\r\n de: \"Ungültige E-Mail\",\r\n en: \"Invalid email\",\r\n },\r\n\r\n \"no-response\": {\r\n hu: \"A szerviz nem reagál. Kérem próbálja később.\",\r\n de: \"Service antwortet nicht. Bitte versuchen Sie es später noch einmal.\",\r\n en: \"The service does not respond. Please try again later.\",\r\n },\r\n\r\n \"result-ok\": {\r\n hu: \"Az adatok mentése sikeresen befejeződött.\",\r\n de: \"Daten erfolgreich gespeichert.\",\r\n en: \"Data saved successfully.\",\r\n },\r\n },\r\n};\r\n","import './UserDataForm.scss';\r\nimport { useRef, useState, useEffect } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport InputFieldSet from '../InputFieldSet/InputFieldSet';\r\nimport { languageElements } from './UserDataForm-languageElements';\r\nimport LanguageElementsHandler from '../repository/LanguageElementsHandler';\r\nimport validator from 'validator';\r\n\r\nexport default function UserDataForm(props) {\r\n const languageElementsHandler = new LanguageElementsHandler(\r\n languageElements,\r\n props.language\r\n );\r\n\r\n const [formWasValidated, setFormWasValidated] = useState(false);\r\n\r\n const [dataStatus, setDataStatus] = useState('');\r\n\r\n const [errors, setErrors] = useState({\r\n name: '',\r\n email: '',\r\n emailAnnouncementsAccepted: '',\r\n newsletterAccepted: '',\r\n });\r\n\r\n function showMessageShortly(codeOfMessage, typeOfAlert) {\r\n setFormAlertText(languageElementsHandler.get(codeOfMessage));\r\n setFormAlertType(typeOfAlert);\r\n setTimeout(() => {\r\n setFormAlertText('');\r\n setFormAlertType('');\r\n }, 5000);\r\n }\r\n\r\n function clearAllErrors() {\r\n setErrors({\r\n name: '',\r\n email: '',\r\n emailAnnouncementsAccepted: '',\r\n newsletterAccepted: '',\r\n });\r\n }\r\n\r\n const [fieldValues, setFieldValues] = useState({\r\n name: '',\r\n email: '',\r\n emailAnnouncementsAccepted: '',\r\n newsletterAccepted: '',\r\n });\r\n\r\n const references = {\r\n name: useRef(),\r\n email: useRef(),\r\n emailAnnouncementsAccepted: useRef(),\r\n newsletterAccepted: useRef(),\r\n };\r\n\r\n const [formAlertText, setFormAlertText] = useState('');\r\n const [formAlertType, setFormAlertType] = useState('');\r\n\r\n const validators = {\r\n name: {\r\n required: isNotEmpty,\r\n },\r\n\r\n email: {\r\n required: isNotEmpty,\r\n validEmail: isValidEmail,\r\n },\r\n\r\n emailAnnouncementsAccepted: {},\r\n newsletterAccepted: {},\r\n };\r\n\r\n const errorTypes = {\r\n required: languageElementsHandler.get('validation-required'),\r\n chkboxChecked: languageElementsHandler.get('validation-chkboxChecked'),\r\n validEmail: languageElementsHandler.get('validation-validEmail'),\r\n passwordStrongEnough: languageElementsHandler.get(\r\n 'validation-passwordStrongEnough'\r\n ),\r\n passwordAndPasswordAgainSame: languageElementsHandler.get(\r\n 'validation-passwordAndPasswordAgainSame'\r\n ),\r\n };\r\n\r\n function isNotEmpty(value) {\r\n return value;\r\n }\r\n\r\n function isValidEmail(value) {\r\n return validator.isEmail(value);\r\n }\r\n\r\n useEffect(() => {\r\n fetch(`${process.env.REACT_APP_API_BASE_URL}/users/get`, {\r\n method: 'GET',\r\n mode: 'cors',\r\n cache: 'no-cache',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'token': props.loginData.getToken(),\r\n },\r\n })\r\n .then((data) => {\r\n if (data.status !== 200) {\r\n setDataStatus('invalid');\r\n const error = new Error('invalid');\r\n error.status = data.status;\r\n throw error;\r\n }\r\n return data.json();\r\n })\r\n .then((jsonData) => {\r\n setDataStatus('valid');\r\n setFieldValues({\r\n name: jsonData.name,\r\n email: jsonData.email,\r\n emailAnnouncementsAccepted: jsonData.emailAnnouncementsAccepted,\r\n newsletterAccepted: jsonData.newsletterAccepted,\r\n });\r\n })\r\n .catch((error) => {\r\n if (error.message === 'Failed to fetch') {\r\n setDataStatus('no-response');\r\n }\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n clearAllErrors();\r\n }, [props.language]);\r\n\r\n async function handleSubmit(e) {\r\n e.preventDefault();\r\n if (isFormValid()) {\r\n fetch(`${process.env.REACT_APP_API_BASE_URL}/users/put`, {\r\n method: 'PUT',\r\n mode: 'cors',\r\n cache: 'no-cache',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'token': props.loginData.getToken(),\r\n },\r\n body: JSON.stringify({\r\n name: fieldValues.name,\r\n email: fieldValues.email,\r\n emailAnnouncementsAccepted: fieldValues.emailAnnouncementsAccepted\r\n ? true\r\n : false,\r\n newsletterAccepted: fieldValues.newsletterAccepted ? true : false,\r\n }),\r\n })\r\n .then((data) => {\r\n if (data.status !== 200) {\r\n throw new Error('result-nok');\r\n }\r\n showMessageShortly('result-ok', 'success');\r\n\r\n return data.json();\r\n })\r\n .catch((error) => {\r\n showMessageShortly(\r\n error.message === 'result-nok' ? error.message : 'result-no-response',\r\n 'danger'\r\n );\r\n });\r\n }\r\n }\r\n\r\n function isFormValid() {\r\n let isFormValid = true;\r\n for (const fieldName of Object.keys(fieldValues)) {\r\n const isFieldValid = validateField(fieldName);\r\n if (!isFieldValid) {\r\n isFormValid = false;\r\n }\r\n }\r\n return isFormValid;\r\n }\r\n\r\n function handleInputBlur(e) {\r\n const fieldName = e.target.name;\r\n setErrors((previousErrors) => ({\r\n ...previousErrors,\r\n [fieldName]: '',\r\n }));\r\n\r\n validateField(fieldName);\r\n }\r\n\r\n function handleInputChange(e) {\r\n const value = e.target.value;\r\n const fieldName = e.target.name;\r\n setFieldValues({\r\n ...fieldValues,\r\n [fieldName]: value,\r\n });\r\n setErrors((previousErrors) => ({\r\n ...previousErrors,\r\n [fieldName]: '',\r\n }));\r\n }\r\n\r\n function validateField(fieldName) {\r\n const value = fieldValues[fieldName];\r\n let isValid = true;\r\n setErrors((previousErrors) => ({\r\n ...previousErrors,\r\n [fieldName]: '',\r\n }));\r\n references[fieldName].current.setCustomValidity('');\r\n\r\n if (validators[fieldName] !== undefined) {\r\n for (const [validationType, validatorFn] of Object.entries(\r\n validators[fieldName]\r\n )) {\r\n if (isValid) {\r\n isValid = validatorFn(value);\r\n if (!isValid) {\r\n const errorText = errorTypes[validationType];\r\n setErrors((previousErrors) => {\r\n return {\r\n ...previousErrors,\r\n [fieldName]: errorText,\r\n };\r\n });\r\n references[fieldName].current.setCustomValidity(errorText);\r\n }\r\n }\r\n }\r\n }\r\n return isValid;\r\n }\r\n\r\n if (!props.loginData) {\r\n return ;\r\n }\r\n\r\n return (\r\n
\r\n {!dataStatus && (\r\n
\r\n {languageElementsHandler.get('info-waiting-for-server')}\r\n
\r\n )}\r\n {dataStatus === 'no-response' && (\r\n
\r\n {languageElementsHandler.get('no-response')}\r\n
\r\n )}\r\n {dataStatus === 'invalid' && (\r\n
\r\n {languageElementsHandler.get('dataStatus-invalid')}\r\n
\r\n )}\r\n {formAlertText && (\r\n
\r\n {formAlertText}\r\n
\r\n )}\r\n {dataStatus === 'valid' && (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n )}\r\n
\r\n );\r\n}\r\n","export const languageElements = {\r\n items: {\r\n \"form-title\": {\r\n hu: \"Felhasználói adatok\",\r\n de: \"Benutzer Angaben\",\r\n en: \"User settings\",\r\n },\r\n },\r\n};\r\n","import { Redirect } from 'react-router-dom';\r\nimport './PageSettings.scss';\r\nimport HeaderLine from '../../Components/HeaderLine/HeaderLine';\r\nimport FormBorder from '../../Components/FormBorder/FormBorder';\r\nimport UserDataForm from '../../Components/UserDataForm/UserDataForm';\r\nimport { languageElements } from './PageSettings-languageElements';\r\nimport LanguageElementsHandler from '../../Components/repository/LanguageElementsHandler';\r\n\r\nexport default function PageSettings(props) {\r\n const languageElementsHandler = new LanguageElementsHandler(\r\n languageElements,\r\n props.language\r\n );\r\n\r\n if (!props.loginData) {\r\n return ;\r\n }\r\n\r\n let regForm = (\r\n <>\r\n

{languageElementsHandler.get('form-title')}

\r\n \r\n \r\n );\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","export const languageElements = {\r\n items: {\r\n \"flush-filter\": {\r\n hu: \"Adatok előszűrése\",\r\n de: \"Daten filtern\",\r\n en: \"Filtering data\",\r\n },\r\n\r\n \"flush-data\": {\r\n hu: \"Raktári készletek\",\r\n de: \"Bestandsliste\",\r\n en: \"List of Stocks\",\r\n },\r\n \"field-Raktarberlo\": {\r\n hu: \"Raktárbérlő\",\r\n de: \"Kunde\",\r\n en: \"Renter\",\r\n },\r\n \"field-Cikkszam\": {\r\n hu: \"Cikkszám\",\r\n de: \"Artikelnummer\",\r\n en: \"Item no.\",\r\n },\r\n \"field-Megnevezes\": {\r\n hu: \"Megnevezés\",\r\n de: \"Bezeichnung\",\r\n en: \"Item description\",\r\n },\r\n \"field-Sarzs\": {\r\n hu: \"Sarzs\",\r\n de: \"LOT\",\r\n en: \"LOT\",\r\n },\r\n \"field-Lejarat\": {\r\n hu: \"Lejárati dátum\",\r\n de: \"MHD\",\r\n en: \"Expire date\",\r\n },\r\n \"field-Keszlet\": {\r\n hu: \"Készlet\",\r\n de: \"Bestand\",\r\n en: \"Stock\",\r\n },\r\n \"field-Csomagolas\": {\r\n hu: \"Csomagolás\",\r\n de: \"Verpackung\",\r\n en: \"Packaging\",\r\n },\r\n\r\n \"field-externalSystemId\": {\r\n hu: \"External System ID\",\r\n de: \"External System ID\",\r\n en: \"External System ID\",\r\n },\r\n\r\n \"field-PartnerId\": {\r\n hu: \"Partner ID\",\r\n de: \"Partner ID\",\r\n en: \"Partner ID\",\r\n },\r\n },\r\n};\r\n","import GridReportIdeiglenes from '../GridReportIdeiglenes/GridReportIdeiglenes';\r\nimport { languageElements } from './ReportStocks-languageElements';\r\n\r\nexport default function ReportStocks(props) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n","import './PageStocks.scss';\r\nimport { Redirect } from 'react-router-dom'\r\nimport HeaderLine from '../../../Components/HeaderLine/HeaderLine'\r\nimport ReportStocks from '../../../Components/ReportStocks/ReportStocks'\r\n\r\nexport default function PageReports(props) {\r\n if (!props.loginData) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n return (\r\n
\r\n \r\n\r\n \r\n
\r\n )\r\n}\r\n","export const languageElements = {\r\n items: {\r\n \"flush-filter\": {\r\n hu: \"Adatok előszűrése\",\r\n de: \"Daten filtern\",\r\n en: \"Filtering data\",\r\n },\r\n\r\n \"flush-data\": {\r\n hu: \"Raktári mozgások\",\r\n de: \"Journal\",\r\n en: \"Journal\",\r\n },\r\n \"field-Mozgasszam\": {\r\n hu: \"Mozgásszám\",\r\n de: \"Bewegungsnummer\",\r\n en: \"Movement no.\",\r\n },\r\n \"field-Raktarberlo\": {\r\n hu: \"Raktárbérlő\",\r\n de: \"Kunde\",\r\n en: \"Renter\",\r\n },\r\n \"field-BeerkezesDatuma\": {\r\n hu: \"Beérkezés dátuma\",\r\n de: \"Ankunft datum\",\r\n en: \"Incoming date\",\r\n },\r\n \"field-SzallitolevelSzama\": {\r\n hu: \"Szállítólevél száma\",\r\n de: \"Lieferschein nr.\",\r\n en: \"Delivery note no.\",\r\n },\r\n \"field-Cikkszam\": {\r\n hu: \"Cikkszám\",\r\n de: \"Artikel nr.\",\r\n en: \"Item no.\",\r\n },\r\n \"field-Termekleiras\": {\r\n hu: \"Termékleírás\",\r\n de: \"Artikel beschreibung\",\r\n en: \"Item description\",\r\n },\r\n \"field-Darab\": {\r\n hu: \"Darab\",\r\n de: \"Anz\",\r\n en: \"Pcs\",\r\n },\r\n \"field-Suly\": {\r\n hu: \"Súly\",\r\n de: \"Gewicht\",\r\n en: \"Weight\",\r\n },\r\n \"field-Sarzs\": {\r\n hu: \"Sarzs\",\r\n de: \"Batch no.\",\r\n en: \"Batch no.\",\r\n },\r\n \"field-Lejarat\": {\r\n hu: \"Lejarat\",\r\n de: \"MHD\",\r\n en: \"Expiry date\",\r\n },\r\n \"field-Barcode\": {\r\n hu: \"Barcode\",\r\n de: \"Barcode\",\r\n en: \"Barcode\",\r\n },\r\n \"field-Elkonyvelve\": {\r\n hu: \"Elkönyvelve\",\r\n de: \"Gebuckt\",\r\n en: \"Booked\",\r\n },\r\n \"field-Mozgasnem\": {\r\n hu: \"Mozgásnem\",\r\n de: \"Bewegungsart\",\r\n en: \"Type of movement\",\r\n },\r\n \"MOVEMENTIN\": {\r\n hu: \"Betár\",\r\n de: \"Einlagerung\",\r\n en: \"Movement IN\",\r\n },\r\n \"MOVEMENTOUT\": {\r\n hu: \"Kitár\",\r\n de: \"Auslagerung\",\r\n en: \"Movement OUT\",\r\n },\r\n\r\n \"field-externalSystemId\": {\r\n hu: \"External System ID\",\r\n de: \"External System ID\",\r\n en: \"External System ID\",\r\n }, \r\n \"field-PartnerId\": {\r\n hu: \"Partner ID\",\r\n de: \"Partner ID\",\r\n en: \"Partner ID\",\r\n }, \r\n \"field-hasDocuments\": {\r\n hu: \"Dokumentumok feltöltve\",\r\n de: \"Beigefügte Dokumente\",\r\n en: \"Attached documents\",\r\n },\r\n },\r\n};\r\n","export default __webpack_public_path__ + \"static/media/file_download_black_24dp.844f9ccc.svg\";","export default __webpack_public_path__ + \"static/media/x.af4c839d.svg\";","import { Component } from \"react\";\r\nimport downloadIcon from \"./file_download_black_24dp.svg\";\r\nimport xIcon from \"./x.svg\";\r\nimport \"./ReportJournal-FunctionCell.scss\";\r\n\r\nexport default class ReportJournalFunctionCell extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.btnClickedHandler = this.btnClickedHandler.bind(this);\r\n this.status = '';\r\n }\r\n\r\n renderStatus(newStatus) {\r\n this.status = newStatus;\r\n this.forceUpdate();\r\n }\r\n\r\n btnClickedHandler() {\r\n this.props.clicked(this.props.value, this.renderStatus.bind(this));\r\n }\r\n\r\n render() {\r\n if (this.props.data._origData.hasDocuments) {\r\n switch (this.status) {\r\n case 'LOADING':\r\n return (\r\n
\r\n
\r\n Loading...\r\n
\r\n
\r\n );\r\n\r\n case 'ERROR':\r\n return (\r\n
\r\n \r\n
\r\n )\r\n\r\n default:\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n )\r\n }\r\n}\r\n","import GridReportIdeiglenes from '../GridReportIdeiglenes/GridReportIdeiglenes';\r\nimport { languageElements } from './ReportJournal-languageElements';\r\nimport ReportJournalFunctionCell from './ReportJournal-FunctionCell';\r\nimport { saveAs } from \"file-saver\";\r\nimport base64ToBlob from '../repository/base64ToBlob';\r\n\r\nexport default function ReportJournals(props) {\r\n\r\n async function downloadFiles(wrhsId, renderStatus) {\r\n renderStatus('LOADING');\r\n\r\n fetch(`${process.env.REACT_APP_API_BASE_URL}/data/files/wrhsmovements`, {\r\n method: 'GET',\r\n mode: 'cors',\r\n cache: 'no-cache',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n token: props.loginData.getToken(),\r\n wrhsid: wrhsId,\r\n },\r\n })\r\n .then((data) => {\r\n if (data.status !== 200) {\r\n const error = new Error('invalid');\r\n error.status = data.status;\r\n throw error;\r\n }\r\n return data.json();\r\n })\r\n .then((jsonData) => {\r\n jsonData.documents.forEach(doc => {\r\n const blob = base64ToBlob(doc.imageData)\r\n saveAs(blob, doc.fileName)\r\n })\r\n renderStatus('');\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n renderStatus('ERROR');\r\n });\r\n };\r\n\r\n return (\r\n
\r\n downloadFiles(wrhsId, reportJournalFunctionCell),\r\n },\r\n },\r\n ],\r\n\r\n }}\r\n />\r\n
\r\n );\r\n}\r\n","import './PageJournal.scss';\r\nimport { Redirect } from 'react-router-dom'\r\nimport HeaderLine from '../../../Components/HeaderLine/HeaderLine'\r\nimport ReportJournal from '../../../Components/ReportJournal/ReportJournal'\r\n\r\nexport default function PageReports(props) {\r\n if (!props.loginData) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n return (\r\n
\r\n \r\n\r\n \r\n
\r\n )\r\n}\r\n","export const languageElements = {\r\n items: {\r\n \"flush-filter\": {\r\n hu: \"Adatok előszűrése\",\r\n de: \"Daten filtern\",\r\n en: \"Filtering data\",\r\n },\r\n\r\n \"flush-data\": {\r\n hu: \"Fuvarjaim\",\r\n de: \"Fracht Journal\",\r\n en: \"Freight list\",\r\n },\r\n\r\n 'field-ExternalSystem_TransactID': {\r\n hu: 'External System Transact ID',\r\n de: 'External System Transact ID',\r\n en: 'External System Transact ID',\r\n },\r\n\r\n \"field-Pozicioszam\": {\r\n hu: \"Pozíciószám\",\r\n de: \"Sendungsnummer\",\r\n en: \"Job number\",\r\n },\r\n\r\n \"field-Megbizo\": {\r\n hu: \"Megbízó\",\r\n de: \"Kunde\",\r\n en: \"Customer\",\r\n },\r\n\r\n \"field-Megrendelesszam\": {\r\n hu: \"Megrendelésszám\",\r\n de: \"Bestellnummer\",\r\n en: \"PO number\",\r\n },\r\n\r\n \"field-Status\": {\r\n hu: \"Státusz\",\r\n de: \"Status\",\r\n en: \"Track & trace status\",\r\n },\r\n\r\n \"status-registered\": {\r\n hu: \"Rögzítve\",\r\n de: \"Registered\",\r\n en: \"Registered\",\r\n },\r\n\r\n \"status-finished\": {\r\n hu: \"Befejezve\",\r\n de: \"Finished\",\r\n en: \"Finished\",\r\n },\r\n\r\n \"status-cancelled\": {\r\n hu: \"Sztornó\",\r\n de: \"Cancelled\",\r\n en: \"Cancelled\",\r\n },\r\n\r\n \"field-Felrakohely\": {\r\n hu: \"Felrakóhely\",\r\n de: \"Beladestelle\",\r\n en: \"Loading point\",\r\n },\r\n\r\n \"field-Felrakohely_Iranyitoszam\": {\r\n hu: \"Felrakóhely - irányítószám\",\r\n de: \"Beladestelle - PLZ\",\r\n en: \"Loading point - zipcode\",\r\n },\r\n\r\n \"field-Felrakohely_Varos\": {\r\n hu: \"Felrakóhely - város\",\r\n de: \"Beladestelle - Ort\",\r\n en: \"Loading point - city\",\r\n },\r\n\r\n \"field-Felrakohely_Cim\": {\r\n hu: \"Felrakóhely - cím\",\r\n de: \"Beladestelle - Adresse\",\r\n en: \"Loading point - address\",\r\n },\r\n\r\n \"field-Felrakas_datuma\": {\r\n hu: \"Felrakás dátuma\",\r\n de: \"Beladedatum\",\r\n en: \"Date of loading\",\r\n },\r\n\r\n \"field-Lerakohely\": {\r\n hu: \"Lerakóhely\",\r\n de: \"Entladestelle\",\r\n en: \"Delivery\",\r\n },\r\n\r\n \"field-Lerakohely_Iranyitoszam\": {\r\n hu: \"Lerakóhely - irányítószám\",\r\n de: \"Entladestelle - PLZ\",\r\n en: \"Delivery - zipcode\",\r\n },\r\n\r\n \"field-Lerakohely_Varos\": {\r\n hu: \"Lerakóhely - város\",\r\n de: \"Entladestelle - Ort\",\r\n en: \"Delivery - city\",\r\n },\r\n\r\n \"field-Lerakohely_Cim\": {\r\n hu: \"Lerakóhely - cím\",\r\n de: \"Entladestelle - Adresse\",\r\n en: \"Delivery - address\",\r\n },\r\n\r\n \"field-Lerakas_datuma\": {\r\n hu: \"Lerakás dátuma\",\r\n de: \"Entladedatum\",\r\n en: \"Date of delivery\",\r\n },\r\n\r\n \"field-hasDocuments\": {\r\n hu: \"Dokumentumok feltöltve\",\r\n de: \"Beigefügte Dokumente\",\r\n en: \"Attached documents\",\r\n },\r\n },\r\n};\r\n","export default __webpack_public_path__ + \"static/media/file_download_black_24dp.844f9ccc.svg\";","export default __webpack_public_path__ + \"static/media/x.af4c839d.svg\";","import { Component } from \"react\";\r\nimport downloadIcon from \"./file_download_black_24dp.svg\";\r\nimport xIcon from \"./x.svg\";\r\nimport \"./ReportDeliveries-FunctionCell.scss\";\r\n\r\nexport default class ReportDeliveriesFunctionCell extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.btnClickedHandler = this.btnClickedHandler.bind(this);\r\n this.status = '';\r\n }\r\n\r\n renderStatus(newStatus) {\r\n this.status = newStatus;\r\n this.forceUpdate();\r\n }\r\n\r\n btnClickedHandler() {\r\n this.props.clicked(this.props.value, this.renderStatus.bind(this));\r\n }\r\n\r\n render() {\r\n if (this.props.data._origData.hasDocuments) {\r\n switch (this.status) {\r\n case 'LOADING':\r\n return (\r\n
\r\n
\r\n Loading...\r\n
\r\n
\r\n );\r\n\r\n case 'ERROR':\r\n return (\r\n
\r\n \r\n
\r\n )\r\n\r\n default:\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n )\r\n }\r\n}\r\n","import GridReportIdeiglenes from '../GridReportIdeiglenes/GridReportIdeiglenes';\r\nimport { languageElements } from './ReportDeliveries-languageElements';\r\nimport ReportDeliveriesFunctionCell from './ReportDeliveries-FunctionCell';\r\nimport { saveAs } from \"file-saver\";\r\nimport base64ToBlob from '../repository/base64ToBlob';\r\n\r\nexport default function ReportDeliveries(props) {\r\n async function downloadFiles(ordId, renderStatus) {\r\n renderStatus('LOADING');\r\n\r\n fetch(`${process.env.REACT_APP_API_BASE_URL}/data/files/deliveries`, {\r\n method: 'GET',\r\n mode: 'cors',\r\n cache: 'no-cache',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n token: props.loginData.getToken(),\r\n ordid: ordId,\r\n },\r\n })\r\n .then((data) => {\r\n if (data.status !== 200) {\r\n const error = new Error('invalid');\r\n error.status = data.status;\r\n throw error;\r\n }\r\n return data.json();\r\n })\r\n .then((jsonData) => {\r\n jsonData.documents.forEach(doc => {\r\n const blob = base64ToBlob(doc.imageData)\r\n saveAs(blob, doc.fileName)\r\n })\r\n renderStatus('');\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n renderStatus('ERROR');\r\n });\r\n };\r\n\r\n return (\r\n
\r\n downloadFiles(ordId, reportDeliveriesFunctionCell),\r\n },\r\n },\r\n ],\r\n\r\n }}\r\n />\r\n
\r\n );\r\n}\r\n","import './PageTracking.scss';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport HeaderLine from \"../../Components/HeaderLine/HeaderLine\";\r\nimport ReportDeliveries from \"../../Components/ReportDeliveries/ReportDeliveries\";\r\nimport DownloadManager from \"../../Components/repository/fileStream/DownloadManager\";\r\n\r\nexport default function PageTracking(props) {\r\n if (!props.loginData) {\r\n return ;\r\n }\r\n\r\n return (\r\n
\r\n \r\n\r\n \r\n
\r\n );\r\n}\r\n","import './App.scss';\r\nimport { useState } from 'react';\r\nimport { BrowserRouter as Router, Switch, Route } from 'react-router-dom';\r\nimport Header from './Components/Header/Header';\r\nimport PageGreeting from './Pages/Greeting/PageGreeting';\r\nimport PageFirstLogin from './Pages/FirstLogin/PageFirstLogin';\r\nimport PageDismissRegistration from './Pages/DismissRegistration/PageDismissRegistration';\r\nimport PageLogin from './Pages/Login/PageLogin';\r\nimport PageInvoices from './Pages/Invoices/PageInvoices';\r\nimport PageWarehouse from './Pages/Warehouse/PageWarehouse';\r\nimport PageSettings from './Pages/Settings/PageSettings';\r\nimport PageStocks from './Pages/Warehouse/PageStocks/PageStocks';\r\nimport PageJournal from './Pages/Warehouse/PageJournal/PageJournal';\r\nimport PageTracking from './Pages/Tracking/PageTracking';\r\nimport LoginData from './Components/repository/LoginData';\r\n\r\nfunction App() {\r\n const [language, setLanguage] = useState('en');\r\n const [loginData, setLoginData] = useState(null);\r\n\r\n function onLanguageChanged(newLanguage) {\r\n setLanguage(newLanguage);\r\n }\r\n\r\n function onLogout() {\r\n setLoginData(null);\r\n }\r\n\r\n function onExtendToken(newToken) {\r\n if (!newToken) {\r\n onLogout();\r\n return;\r\n }\r\n let newLogin = new LoginData(newToken);\r\n setLoginData(newLogin);\r\n }\r\n\r\n function onLogin(newLoginData) {\r\n setLoginData(newLoginData);\r\n }\r\n\r\n function setActivity() {\r\n if (loginData) {\r\n loginData.setLastActivity();\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n onLanguageChanged(newLanguage)}\r\n loginData={loginData}\r\n onExtendToken={(newToken) => onExtendToken(newToken)}\r\n onLogout={onLogout}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n onLogin(newLoginData)}\r\n />\r\n \r\n\r\n \r\n onLogin(newLoginData)}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default App;\r\n","const reportWebVitals = onPerfEntry => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport App from './App';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\nreportWebVitals();\r\n"],"sourceRoot":""}