{"version":3,"sources":["_services/units.js","_services/modal.service.js","_helpers/timeZone.js","_services/clients.js","_services/orders.js","_services/priceSettings.js","_services/certificates.js","_services/audit.js","_services/rentalGroups.js","_services/companies.js","_services/rentalPoints.js","_helpers/history.js","_helpers/index.js","_services/tournament.service.js","_services/staffs.js","_services/rentalTypes.js","_services/services.js","_services/schedule.js","_services/widgets.js","_services/reports.js","_services/index.js","_methods/download.js","i18n.js","_services/user.service.js","_services/authentication.service.js","polyfill.js","App.js","serviceWorker.js","index.js","_helpers/handle-response.js"],"names":["currentUnitSubject","BehaviorSubject","JSON","parse","unitsService","getUnits","getCurrentOrgUnit","selectOrgUnit","getAvailableOptions","getFiltersOptions","createUnit","updateUnit","getFilteredUnits","getOrgUnit","currentUnit","asObservable","value","a","currentUnitValue","localStorage","getItem","_","unitFromApi","Fetch","then","response","error","Error","statusText","json","next","data","setItem","stringify","catch","console","log","orgUnitId","get","orgUnit","model","post","ModalContext","React","createContext","paymentsModal","isOpen","returnUrl","paymentsModalType","purpose","phoneModal","shareLinkModal","link","currentLocation","prevLocation","loader","eventModal","event","filtersModal","filters","filtered","filteredData","filterFields","orderModal","order","createGroupModal","createTypeModal","createOrgUnitModal","createCompany","createStaffModal","createPriceSettingsModal","createReportModal","createOrderModal","showEventModal","hideEventModal","showModalCreateGroup","hideModalCreateGroup","showModalCreateType","hideModalCreateType","showModalCreateOrgUnit","hideModalCreateOrgUnit","showModalCreateCompany","hideModalCreateCompany","showModalCreateStaff","hideModalCreateStaff","showModalCreateService","hideModalCreateService","showModalCreatePriceSettings","hideModalCreatePriceSettings","showOrderModal","hideOrderModal","showModalCreateReport","hideModalCreateReport","showCreateOrderDialog","hideCreateOrderDialog","showPaymentModal","hidePaymentModal","showPhoneModal","hidePhoneModal","showSteamModal","hideSteamModal","showFiltersModal","hideFiltersModal","showShareLinkModal","hideShareLinkModal","setShareLinkModalLink","showLoader","hideLoader","GetTimeByTimeZone","utcTime","moment","lang","result","localTimeZoneIdIana","userService","currentUser","source","_value","utc","tz","GetTimeByTimeZoneOrDefault","mUtc","local","currentClientsSubject","filtersOptions","clientsService","getClients","createClient","updateClient","getFilteredClients","currentClients","sendSmsCard","getClient","id","clientId","currentOrdersSubject","units","paymentMethods","statuses","ordersService","getOrders","getPartnerOrders","acceptPartnerOrder","declinePartnerOrder","getOrder","getEvents","emailTicket","smsConfirmUrl","smsConfirmPrepaymentUrl","createOrder","getSchedule","generateOrderContacts","createOrderDetails","updateOrderDetails","removeOrderDetails","updateOrder","getFilteredOrders","getFilteredPartnerOrders","getOrderUnits","removeOrderUnit","copyOrderUnit","changeStatus","saveContract","clearCertificate","addComment","getHistory","createBreak","currentOrders","companyId","rentalGroupsService","getRentalGroups","groups","rentalTypesService","getRentalTypes","resourceKinds","rentalPointsService","getRentalPoints","orgUnits","resourceGroups","services","servicesService","getServices","date","orderDate","orderDetails","forEach","x","orderId","amount","surcharge","remove","newUnits","filter","maxUnitId","Math","max","apply","map","newUnit","find","copy","Object","assign","push","currentPriceSettingsSubject","priceSettingsData","priceSettingsService","getPriceSettings","getSettings","create","update","removePriceSettings","getFilteredPriceSettings","currentPriceSettings","type","undefined","allPriceSettingsData","today","Date","activePriceSettingsData","activeFromUTC","activeTillUTC","certificatesService","getCertificates","getCertificateByCode","getCertificate","createCertificate","updateCertificate","sendToEmail","sendToSms","printCertificate","number","certificateId","printPdf","url","auditData","auditService","getAuditData","getFilteredAudits","getFilteredRentalGroups","createGroup","editGroup","removeGroup","currentGroups","currentCompanySubject","companiesService","getCompanies","getCurrentCompany","getCompany","editCompany","removeCompany","selectCompany","currentCompany","currentCompanyId","currentCompanyValue","comp","companyFromApi","companies","createOrgUnit","editOrgUnit","removeOrgUnit","getFilteredRentalPoints","createBrowserHistory","currentTournamentSubject","tournamentService","getTournament","refreshTournament","currentTournament","tournamentId","isAuth","allowAnonymous","currentTournamentValue","requestOptions","method","tournamentFromApi","staffsService","getFilteredRentalTypes","createType","editType","removeType","createService","editService","removeService","getOutsourcedServices","schedulesService","getSchedules","createSchedule","updateSchedule","removeSchedule","widgetsService","getWidgets","getWidget","createWidget","updateWidget","removeWidget","getFilteredWidgets","testData","client","resources","reportsService","getReports","createReport","editReport","removeReport","getReport","body","headers","alert","redirectUrl","blob","window","URL","createObjectURL","Blob","document","createElement","href","setAttribute","appendChild","click","parentNode","removeChild","code","status","ok","location","message","exception","errors","err","postFile","en","common","require","navigation","loginRegister","profile","editUserProfile","addOrUpdateTournament","modalTournament","tournament","confirmedPlayers","teams","timeline","challenges","anticheat","dashboard","teamInvite","ru","i18n","use","reactI18nextModule","init","ns","lng","fallbackLng","defaultNS","react","wait","interpolation","escapeValue","currentUserSubject","getCurrentUser","getUser","getUserRights","getPartners","updateUserName","updateUserPassword","refreshUser","searchClientByPhone","getStaffs","unblockAccount","blockAccount","createStaff","deleteAccountFromCompany","lastUpdatedTime","currentUserValue","getAlerts","clear","userFromApi","phone","replace","users","length","user","rights","name","staffs","currentAuthSubject","auth","login","forgotPassword","restorePassword","resetStaffPassword","needSetPassword","logout","register","isAdmin","getAccessToken","access_token","updateAccessToken","token","expires","getValue","expires_in","resetPassword","resetPasswordPost","errorType","Promise","reject","expires_in_timestamp","email","mode","fetch","success","refreshToken","refreshTokenExpires","res","resData","authObj","removeItem","CustomEvent","params","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","prototype","Event","DefaultLayout","lazy","TemplateLayout","Login","ForgotPassword","RestorePassword","Register","Page404","Page500","history","App","props","setState","this","createCompanyModal","createServiceModal","state","confirmationModal","confirmation","steamModal","subscribe","listen","ym","protocol","host","pathname","Provider","accounts","Suspense","fallback","className","exact","path","render","to","Component","withI18n","Boolean","hostname","match","JavascriptTimeAgo","locale","ReactDOM","getElementById","navigator","serviceWorker","ready","registration","unregister","RefreshToken","tokenResponse","resource","addAuthHeader","queryIfNotAuthed","now"],"mappings":"wRAOMA,EAAqB,IAAIC,IAAgBC,KAAKC,MADzC,OAkBEC,EAAe,CACxBC,S,2CAEEC,kB,2CACAC,c,4CACAC,oB,2CACAC,kB,2CACAC,W,4CACAC,W,4CACAC,iB,4CACAC,W,4CACAC,YAAad,EAAmBe,eAClC,uBAAyB,OAAOf,EAAmBgB,Q,4CAGvD,8BAAAC,EAAA,yDACyC,MAAjCb,EAAac,iBADrB,yCAEed,EAAac,kBAF5B,UAIQJ,EAAcK,aAAaC,QAAQ,sBAClCC,QAAQP,GALjB,yCAMeZ,KAAKC,MAAMW,IAN1B,cASMQ,EAAc,KATpB,SAWQC,YAAM,iBAAkB,MAAM,GAAM,GACvCC,MAAK,SAAAC,GACJ,GAAIA,EAAU,OAAOA,EAEnB,IAAIC,EAAQ,IAAIC,MAAMF,EAASG,YAE/B,MADAF,EAAMD,SAAWA,EACXC,KAGTF,MAAK,SAAAC,GAAQ,OAAIA,EAASI,UAC1BL,KAVG,uCAWF,WAAMC,GAAN,SAAAR,EAAA,sDACEjB,EAAmB8B,KAAKR,EAAcG,EAASM,MAC/CZ,aAAaa,QAAQ,qBAAsB9B,KAAK+B,UAAUR,EAASM,OAFrE,2CAXE,uDAeHG,OAAM,SAAAR,GACLS,QAAQC,IAAIV,MA3BlB,gCA8BSJ,GA9BT,4C,kEAiCA,WAA6Be,GAA7B,eAAApB,EAAA,sEACsBqB,YAAI,gBAAD,OAAiBD,IAAa,GADvD,OACME,EADN,OAEEvC,EAAmB8B,KAAKS,EAAQR,MAChCZ,aAAaa,QAAQ,qBAAsB9B,KAAK+B,UAAUM,EAAQR,OAHpE,4C,kEAMA,WAA0BM,GAA1B,eAAApB,EAAA,sEACsBqB,YAAI,gBAAD,OAAiBD,IAAa,GADvD,cACME,EADN,yBAESA,GAFT,4C,kEAKA,sBAAAtB,EAAA,sEACiBqB,YAAI,kCAAkC,GADvD,oF,kEAIA,sBAAArB,EAAA,sEACiBqB,YAAI,gCAAgC,GADrD,oF,kEAIA,WAA0BE,GAA1B,SAAAvB,EAAA,sEACUwB,YAAK,0BAA0B,EAAMD,GAD/C,4C,kEAIA,WAA0BA,GAA1B,SAAAvB,EAAA,sEACUwB,YAAK,0BAA0B,EAAMD,GAD/C,4C,kEAIA,WAAgCA,GAAhC,SAAAvB,EAAA,sEACeqB,YAAI,mBAAmB,EAAME,GAD5C,oF,kEAIA,sBAAAvB,EAAA,sEACiBwB,YAAK,qBAAqB,GAD3C,oF,sBAKerC,O,qGC1GFsC,E,OAAeC,EAAMC,cAC9B,CACIC,cACA,CACIC,QAAQ,EACRC,UAAW,aAGfC,kBAAmB,CACfC,QAAS,GAGbC,WAAY,CAAEJ,QAAQ,EAAOC,UAAW,aACxCI,eAAgB,CAAEL,QAAQ,EAAOM,KAAM,KAAMC,gBAAiB,KAAMC,aAAc,MAClFC,OAAQ,CAAET,QAAQ,GAClBU,WAAY,CAAEV,QAAQ,EAAOC,UAAW,YAAaU,MAAO,MAC5DC,aAAc,CAAEZ,QAAQ,EAAOC,UAAW,YAAaY,QAAS,GAAIC,UAAU,EAAOC,aAAc,GAAIC,aAAa,IACpHC,WAAY,CAAEjB,QAAQ,EAAOkB,MAAO,MAEpCC,iBAAkB,CAAEnB,QAAQ,EAAQC,UAAW,aAC/CmB,gBAAiB,CAAEpB,QAAQ,EAAQC,UAAW,aAC9CoB,mBAAoB,CAAErB,QAAQ,EAAQC,UAAW,aACjDqB,cAAe,CAAEtB,QAAQ,EAAQC,UAAW,aAC5CsB,iBAAkB,CAAEvB,QAAQ,EAAQC,UAAW,aAC/CuB,yBAA0B,CAAExB,QAAQ,EAAQC,UAAW,aACvDwB,kBAAmB,CAAEzB,QAAQ,EAAOC,UAAW,oBAC/CyB,iBAAkB,CAAE1B,QAAQ,EAAON,MAAO,KAAMO,UAAW,aAE3D0B,eAAgB,aAChBC,eAAgB,aAChBC,qBAAsB,aACtBC,qBAAsB,aACtBC,oBAAqB,aACrBC,oBAAqB,aACrBC,uBAAwB,aACxBC,uBAAwB,aACxBC,uBAAwB,aACxBC,uBAAwB,aACxBC,qBAAsB,aACtBC,qBAAsB,aACtBC,uBAAwB,aACxBC,uBAAwB,aACxBC,6BAA8B,aAC9BC,6BAA8B,aAC9BC,eAAe,WAAD,4BAAE,sBAAAxE,EAAA,sEAAkB,GAAlB,mFAAF,kDAAC,GACfyE,eAAgB,aAChBC,sBAAuB,aACvBC,sBAAuB,aAEvBC,sBAAuB,aACvBC,sBAAuB,aAEvBC,iBAAkB,aAClBC,iBAAkB,aAClBC,eAAgB,aAChBC,eAAgB,aAChBC,eAAgB,aAChBC,eAAgB,aAChBC,iBAAkB,aAClBC,iBAAkB,aAClBC,mBAAoB,aACpBC,mBAAoB,aACpBC,sBAAuB,aACvBC,WAAY,aACZC,WAAY,gB,iCClEpB,+GAMO,SAASC,EAAkBC,GAC9BC,MAASC,KAAK,MACd,IAAIC,EAAS,KAEPC,EAA+D,MAAzCC,IAAYC,YAAYC,OAAOC,OAAiBH,IAAYC,YAAYC,OAAOC,OAAOJ,oBAAsB,KAOxI,OALe,MAAXJ,GAA0C,MAAvBI,IAEnBD,EAASF,IAAOQ,IAAIT,GAASU,GAAGN,IAG7BD,EAGJ,SAASQ,EAA2BX,GACvCC,MAASC,KAAK,MACd,IAEME,EAA+D,MAAzCC,IAAYC,YAAYC,OAAOC,OAAiBH,IAAYC,YAAYC,OAAOC,OAAOJ,oBAAsB,KAEpIQ,EAAOX,IAAOQ,IAAIT,GAQtB,OANe,MAAXA,GAA0C,MAAvBI,EACVQ,EAAKF,GAAGN,GAERQ,EAAKC,U,qHCzBhBC,EAAwB,IAAI1H,IAAgBC,KAAKC,MADzC,OA2DRyH,EAAiB,CACrB,kBAAqB,CACnB,CACE,MAAS,EACT,MAAS,kCACR,CACD,MAAS,EACT,MAAS,OACR,CACD,MAAS,EACT,MAAS,8CACR,CACD,MAAS,EACT,MAAS,gDAKFC,EAAiB,CAC1BC,W,4CAEEtH,oB,2CACAC,kB,2CACAsH,a,4CACAC,a,8CACAC,mB,4CACAC,eAAgBP,EAAsB5G,eACtCoH,Y,8CACAC,U,4CACF,0BAA4B,OAAOT,EAAsB3G,Q,4CAG7D,sBAAAC,EAAA,sEACiBqB,YAAI,oCAAoC,GADzD,oF,kEAIA,sBAAArB,EAAA,+EACW2G,GADX,oF,kEAKA,WAA4BpF,GAA5B,SAAAvB,EAAA,sEACgBwB,YAAK,mBAAmB,EAAMD,GAD9C,oF,kEAIA,WAA4B6F,EAAI7F,GAAhC,SAAAvB,EAAA,sEACiBwB,YAAK,mBAAD,OAAoB4F,IAAM,EAAM7F,GADrD,oF,kEAIA,WAAkCA,GAAlC,SAAAvB,EAAA,sEAEiBwB,YAAK,mBAAmB,EAAMD,GAF/C,oF,kEAWA,WAA0BA,GAA1B,SAAAvB,EAAA,sEAEiBwB,YAAK,mBAAmB,EAAMvC,KAAK+B,UAAUO,IAF9D,oF,kEAIA,WAAyB6F,GAAzB,SAAApH,EAAA,sEACiBqB,YAAI,cAAD,OAAe+F,IAAM,GADzC,oF,kEAIA,WAA2BC,EAAUjG,GAArC,SAAApB,EAAA,sEACewB,YAAK,2BAAD,OAA4B6F,EAA5B,YAAwCjG,IAAa,GADxE,oF,sBAIewF,O,6HC1HTU,EAAuB,IAAItI,IAAgBC,KAAKC,MADzC,OA4EPyH,EAAiB,CACrB,WAAc,CACX,CACE,MAAS,EACT,MAAS,kCACR,CACD,MAAS,EACT,MAAS,2DACR,CACD,MAAS,EACT,MAAS,8CACR,CACD,MAAS,EACT,MAAS,+CAGd,kBAAqB,CACnB,CACE,MAAS,EACT,MAAS,kCACR,CACD,MAAS,EACT,MAAS,OACR,CACD,MAAS,EACT,MAAS,8CACR,CACD,MAAS,EACT,MAAS,+CAGb,aAAgB,CACd,CACE,MAAS,EACT,MAAS,oLACR,CACD,MAAS,EACT,MAAS,yFACR,CACD,MAAS,EACT,MAAS,yFACR,CACD,MAAS,EACT,MAAS,gGAIb,aAAgB,CACd,CACE,MAAS,EACT,MAAS,+FACR,CACD,MAAS,EACT,MAAS,+EAKXY,EAAQ,CACV,CACE,GAAM,EACN,MAAS,wCACT,KAAQ,uCACR,KAAQ,QACR,IAAO,GACP,SAAY,EACZ,cAAiB,EACjB,cAAiB,EACjB,gBAAkB,EAClB,gBAAmB,OACnB,cAAiB,GAChB,CACD,GAAM,EACN,MAAS,wCACT,KAAQ,uCACR,KAAQ,QACR,IAAO,GACP,SAAY,EACZ,cAAiB,EACjB,cAAiB,EACjB,gBAAkB,EAClB,gBAAmB,GACnB,eAAkB,GACjB,CACD,GAAM,EACN,MAAS,wCACT,KAAQ,uCACR,KAAQ,QACR,IAAO,GACP,SAAY,EACZ,cAAiB,EACjB,cAAiB,EACjB,gBAAkB,EAClB,gBAAmB,GACnB,eAAkB,GACjB,CACD,GAAM,EACN,MAAS,wCACT,KAAQ,uCACR,KAAQ,QACR,IAAO,GACP,SAAY,EACZ,cAAiB,EACjB,cAAiB,EACjB,gBAAkB,EAClB,gBAAmB,GACnB,eAAkB,IAIlBC,EAAiB,CACjB,CACE,GAAM,EACN,KAAQ,oDAEV,CACE,GAAM,EACN,KAAQ,uEAEV,CACE,GAAM,EACN,KAAQ,iEAIVC,EAAW,CACb,CACE,GAAM,EACN,KAAQ,kCAEV,CACE,GAAM,EACN,KAAQ,+CAEV,CACE,GAAM,EACN,KAAQ,oDAEV,CACE,GAAM,EACN,KAAQ,+CAqBCC,EAAgB,CACzBC,U,4CACEC,iB,4CACAC,mB,4CACAC,oB,4CACAC,S,4CAEAxI,oB,8CACAC,kB,2CACAwI,U,4CACAC,Y,4CACAC,c,4CACAC,wB,gDACAC,Y,4CACAC,Y,8CACAC,sB,4CACAC,mB,4CACAC,mB,8CACAC,mB,4CACAhJ,W,4CACAiJ,Y,8CACAhJ,W,4CACAiJ,kB,4CACAC,yB,4CACAC,c,2CACAC,gB,4CACAC,c,4CACAC,a,8CACAC,a,8CACAC,iB,4CACAC,W,8CACAC,W,4CACAC,Y,4CACAC,cAAehC,EAAqBxH,eACpCoH,Y,4CACF,yBAA2B,OAAOI,EAAqBvH,Q,4CAG3D,WAAmCwJ,EAAWnI,GAA9C,uBAAApB,EAAA,sEACuBwJ,IAAoBC,gBAAgBF,EAAWnI,GADtE,cACQsI,EADR,gBAE8BC,IAAmBC,eAAeL,EAAWnI,GAF3E,cAEQyI,EAFR,gBAGyBC,IAAoBC,gBAAgBR,GAH7D,UAGQS,EAHR,OAIQlJ,EAAO,CACP0G,eAAgBA,EAChBC,SAAUA,EACVwC,eAAgBP,EAAO5I,KACvB+I,cAAeA,EAAc/I,KAC7BoJ,SAAUA,EAAWA,EAASpJ,KAAOoJ,EACrCF,SAAUA,EAASlJ,OAGnByI,EAbR,kCAc2BY,IAAgBC,YAAYb,EAAWnI,GAdlE,QAcU8I,EAdV,OAeMpJ,EAAKoJ,SAAWA,EAftB,iCAiBWpJ,GAjBX,sF,kEAqBA,sBAAAd,EAAA,+EACW2G,GADX,oF,kEAKA,WAA2BpF,GAA3B,SAAAvB,EAAA,sEACiBwB,YAAK,kBAAkB,EAAMD,GAD9C,oF,kEAIA,WAA2BA,GAA3B,SAAAvB,EAAA,sEACiBwB,YAAK,0BAA0B,EAAMD,GADtD,oF,kEAIA,WAAyBA,GAAzB,SAAAvB,EAAA,sEACiBwB,YAAK,qBAAqB,EAAMvC,KAAK+B,UAAUO,IADhE,oF,kEAIA,WAAkCA,GAAlC,SAAAvB,EAAA,sEACiBwB,YAAK,wBAAwB,EAAMD,GADpD,oF,kEAIA,WAAkC6F,EAAI7F,GAAtC,SAAAvB,EAAA,sEACewB,YAAK,yBAAD,OAA0B4F,IAAM,EAAM7F,GADzD,oF,kEAIA,WAA2B8I,EAAMjJ,GAAjC,SAAApB,EAAA,sEACewB,YAAK,0BAA0B,EAAMvC,KAAK+B,UAAU,CAAEsJ,UAAWD,EAAMjJ,eADtF,oF,kEAIA,WAA2BgG,EAAI7F,GAA/B,SAAAvB,EAAA,sEACiBwB,YAAK,mBAAD,OAAoB4F,IAAM,EAAM7F,GADrD,oF,kEAIA,WAA0BA,GAA1B,SAAAvB,EAAA,sEACQwB,YAAK,0BAA0B,EAAMD,GAD7C,4C,kEAIA,WAA0BA,GAA1B,SAAAvB,EAAA,sEACQwB,YAAK,yBAAD,OAA0BD,EAAM6F,KAAM,EAAM7F,GADxD,4C,kEAIA,WAAiCA,GAAjC,SAAAvB,EAAA,sEAEiBwB,YAAK,mBAAmB,EAAMD,GAF/C,oF,kEAKA,WAAwCA,GAAxC,SAAAvB,EAAA,sEAEiBwB,YAAK,sCAAsC,EAAMD,GAFlE,oF,kEAKA,WAAyBA,GAAzB,SAAAvB,EAAA,sEACiBwB,YAAK,kBAAkB,EAAMvC,KAAK+B,UAAUO,IAD7D,oF,kEAIA,WAAkC6F,GAAlC,SAAApH,EAAA,sEACeqB,YAAI,sCAAD,OAAuC+F,IAAM,GAD/D,oF,kEAIA,WAAmCA,GAAnC,SAAApH,EAAA,sEACeqB,YAAI,uCAAD,OAAwC+F,IAAM,GADhE,oF,kEAIA,WAAgC7F,GAAhC,SAAAvB,EAAA,sEACewB,YAAK,qCAAqC,EAAMvC,KAAK+B,UAAUO,IAD9E,oF,kEAIA,WAAwB6F,GAAxB,SAAApH,EAAA,sEAEeqB,YAAI,cAAD,OAAe+F,IAAM,GAFvC,oF,kEAKA,WAA0BA,GAA1B,SAAApH,EAAA,sEACeqB,YAAI,sBAAD,OAAuB+F,IAAM,GAD/C,oF,kEAIA,sBAAApH,EAAA,+EACSuH,GADT,4C,kEAIA,WAA4BH,EAAI7F,GAAhC,SAAAvB,EAAA,sEACiBwB,YAAK,mBAAD,OAAoB4F,IAAM,EAAMnI,KAAK+B,UAAUO,IADpE,oF,kEAKA,WAAqCwB,GAArC,SAAA/C,EAAA,sDACE+C,EAAMwH,aAAaC,QAAnB,uCAA2B,WAAOC,GAAP,SAAAzK,EAAA,sEACnBqB,YAAI,0BAAD,OAA2BoJ,EAAErD,KAAM,GADnB,2CAA3B,uDADF,4C,kEAMA,WAA6BrE,GAA7B,SAAA/C,EAAA,sEACeqB,YAAI,8BAAD,OAA+B0B,EAAMqE,KAAM,GAD7D,oF,kEAIA,WAAuCsD,EAASC,EAAQC,GAAxD,SAAA5K,EAAA,sEACeqB,YAAI,8BAAD,OAA+BqJ,EAA/B,uBAAqDE,EAAY,GAAKD,EAAtE,sBAA0FC,EAAYD,EAAS,KAAM,GADvI,oF,kEAOA,WAA2B5H,GAA3B,SAAA/C,EAAA,sEACewB,YAAK,yBAAD,OAA0BuB,EAAMqE,KAAM,GADzD,oF,kEAIA,WAAkCA,GAAlC,SAAApH,EAAA,sEACQ6K,YAAO,2BAAD,OAA4BzD,IAAM,GADhD,4C,kEAIA,WAA+BA,GAA/B,eAAApH,EAAA,6DACM8K,EAAWvD,EAAMwD,QAAO,SAAAN,GAAC,OAAIA,EAAErD,KAAOA,KAD5C,kBAES0D,GAFT,4C,kEAKA,WAAgCJ,GAAhC,SAAA1K,EAAA,2F,kEAIA,WAA6BoH,GAA7B,mBAAApH,EAAA,6DACQgL,EAAYC,KAAKC,IAAIC,MAAMF,KAAM1D,EAAM6D,KAAI,SAAAX,GAAO,OAAOA,EAAErD,OAC3DiE,EAAU9D,EAAM+D,MAAK,SAAAb,GAAC,OAAIA,EAAErD,IAAMA,KAClCmE,EAAOC,OAAOC,OAAO,GAAIJ,GAC7BL,IAAcA,EACdO,EAAKnE,GAAK4D,EACVzD,EAAMmE,KAAKH,GANf,kBAOShE,GAPT,4C,kEAUA,WAA4BH,EAAI7F,GAAhC,SAAAvB,EAAA,sEACewB,YAAK,iCAAD,OAAkC4F,IAAM,EAAMnI,KAAK+B,UAAUO,IADhF,oF,kEAIA,WAA0B6F,EAAI7F,GAA9B,SAAAvB,EAAA,sEACiBwB,YAAK,yBAAD,OAA0B4F,IAAM,EAAMnI,KAAK+B,UAAUO,IAD1E,oF,kEAGA,WAA2B6F,GAA3B,SAAApH,EAAA,sEACewB,YAAK,0BAAD,OAA2B4F,IAAM,GADpD,oF,sBAGeM,O,qHC1bTiE,EAA8B,IAAI3M,IAAgBC,KAAKC,MADzC,OAEd0M,EAAoB,CACxB,CACE,GAAM,EACN,KAAQ,+CACR,cAAiB,sBACjB,cAAiB,sBACjB,eAAkB,QAClB,iBAAoB,QACpB,iBAAoB,QACpB,SAAY,EACZ,MAAS,KACT,qBAAuB,EACvB,YAAe,EACf,SAAW,GACV,CACD,GAAM,EACN,KAAQ,+CACR,cAAiB,sBACjB,cAAiB,sBACjB,eAAkB,QAClB,iBAAoB,QACpB,iBAAoB,QACpB,SAAY,EACZ,MAAS,KACT,qBAAuB,EACvB,YAAe,EACf,SAAW,GACV,CACD,GAAM,EACN,KAAQ,+CACR,cAAiB,sBACjB,cAAiB,sBACjB,eAAkB,QAClB,iBAAoB,QACpB,iBAAoB,QACpB,SAAY,EACZ,MAAS,KACT,qBAAuB,EACvB,YAAe,EACf,SAAW,GACV,CACD,GAAM,EACN,KAAQ,+CACR,cAAiB,sBACjB,cAAiB,sBACjB,eAAkB,QAClB,iBAAoB,QACpB,iBAAoB,QACpB,SAAY,EACZ,MAAS,KACT,qBAAuB,EACvB,YAAe,EACf,SAAW,GACV,CACD,GAAM,EACN,KAAQ,+CACR,cAAiB,sBACjB,cAAiB,sBACjB,eAAkB,QAClB,iBAAoB,QACpB,iBAAoB,QACpB,SAAY,EACZ,MAAS,KACT,qBAAuB,EACvB,YAAe,EACf,SAAW,IAMXhJ,EAAe,CACjB,CACE,GAAM,EACN,KAAQ,+CACR,cAAiB,sBACjB,cAAiB,sBACjB,eAAkB,QAClB,iBAAoB,QACpB,iBAAoB,QACpB,SAAY,EACZ,MAAS,KACT,qBAAuB,EACvB,YAAe,EACf,SAAW,GACV,CACD,GAAM,EACN,KAAQ,+CACR,cAAiB,sBACjB,cAAiB,sBACjB,eAAkB,QAClB,iBAAoB,QACpB,iBAAoB,QACpB,SAAY,EACZ,MAAS,KACT,qBAAuB,EACvB,YAAe,EACf,SAAW,IAIT+D,EAAiB,CACrB,wBAA2B,CACzB,CACE,MAAS,EACT,MAAS,kCACR,CACD,MAAS,EACT,MAAS,OACR,CACD,MAAS,EACT,MAAS,8CACR,CACD,MAAS,EACT,MAAS,gDAKFkF,EAAuB,CAChCC,iB,gDACEC,Y,4CAEAvM,kB,2CACAwM,O,4CACAC,O,8CACAC,oB,4CACAC,yB,4CACAC,qBAAsBT,EAA4B7L,eACpD,gCAAkC,OAAO6L,EAA4B5L,Q,4CAMzE,WAA2BqH,GAA3B,SAAApH,EAAA,sEACeqB,YAAI,sBAAD,OAAuB+F,IAAM,GAD/C,oF,kEAIA,sBAAApH,EAAA,+EACW2G,GADX,oF,kEAaA,WAAwCpF,GAAxC,SAAAvB,EAAA,+EACS4C,GADT,oF,kEAWA,WAAgCyJ,EAAM9C,EAAWnI,GAAjD,mBAAApB,EAAA,yDAEIoB,OAAyBkL,GAAblL,EAAyB,GAAKA,EACF,KAFxCmI,OAAyB+C,GAAb/C,EAAyB,GAAKA,IAEiB,IAAbnI,EAHlD,gCAG0EI,YAAK,qCAAD,OAAsC+H,EAAtC,sBAA6DnI,IAAa,EAAM,IAH9J,2DAG0KI,YAAK,2BAA2B,EAAM,IAHhN,4BAGQ+K,EAHR,KAIQC,EAAQ,IAAIC,KACZC,EAA0BH,EAAqBzL,KAAKiK,QAAO,SAAAN,GAAC,OAAI,IAAIgC,KAAKhC,EAAEkC,eAAiBH,GAASA,EAAQ,IAAIC,KAAKhC,EAAEmC,kBALhI,KAMYP,EANZ,OAOa,IAPb,QAQa,IARb,kDAOuBE,EAAqBzL,MAP5C,iCAQuB4L,GARvB,iCASwBd,GATxB,6C,kEAaA,WAAsBrK,GAAtB,SAAAvB,EAAA,sEACiBwB,YAAK,0BAA0B,EAAMD,GADtD,oF,kEAIA,WAAsB6F,EAAI7F,GAA1B,SAAAvB,EAAA,sEACewB,YAAK,2BAAD,OAA4B4F,IAAM,EAAM7F,GAD3D,oF,kEAIA,WAAmC6F,GAAnC,SAAApH,EAAA,sEACiB6K,YAAO,6BAAD,OAA8BzD,IAAM,GAD3D,oF,sBAIeyE,O,qHCvLFgB,EAAsB,CAC/BC,gB,4CACEC,qB,4CACAC,e,4CACAhE,a,8CACAiE,kB,4CACAC,kB,8CACA3N,oB,8CACA4N,Y,8CACAC,U,8CACAC,iB,6CAGF7F,EAAiB,CACnB,CACE,GAAM,EACN,KAAQ,oDAEV,CACE,GAAM,EACN,KAAQ,wEAIRC,EAAW,CACb,CACE,GAAM,EACN,KAAQ,kCAEV,CACE,GAAM,EACN,KAAQ,8CAEV,CACE,GAAM,EACN,KAAQ,sEAEV,CACE,GAAM,EACN,KAAQ,+C,4CAIZ,WAAmC8B,EAAWnI,GAA9C,qBAAApB,EAAA,sEAC4BwJ,IAAoBC,gBAAgBF,EAAWnI,GAD3E,cACMsI,EADN,gBAE4BC,IAAmBC,eAAeL,EAAWnI,GAFzE,cAEMyI,EAFN,gBAIuBC,IAAoBC,gBAAgBR,GAJ3D,cAIMS,EAJN,OAKMlJ,EAAO,CACT0G,eAAgBA,EAChBC,SAAUA,EACVwC,eAAgBP,EAAO5I,KACvB+I,cAAeA,EAAc/I,KAE7BkJ,SAAUA,EAASlJ,MAXvB,kBAaSA,GAbT,6C,kEAgBA,WAAoCwM,GAApC,SAAAtN,EAAA,sEACiBqB,YAAI,+BAAD,OAAgCiM,IAAU,GAD9D,oF,kEAIA,WAA+B/L,GAA/B,SAAAvB,EAAA,sEACiBwB,YAAK,4BAA4B,EAAMvC,KAAK+B,UAAUO,IADvE,oF,kEAIA,WAAiCA,GAAjC,SAAAvB,EAAA,sEACiBwB,YAAK,2BAA2B,EAAMD,GADvD,oF,kEAIA,WAAiC6F,EAAI7F,GAArC,SAAAvB,EAAA,sEACewB,YAAK,6BAAD,OAA8B4F,IAAM,EAAM7F,GAD7D,oF,kEAKA,WAA8B6F,GAA9B,SAAApH,EAAA,sEAEeqB,YAAI,wBAAD,OAAyB+F,IAAM,GAFjD,oF,kEAKA,WAA4BA,EAAI7F,GAAhC,SAAAvB,EAAA,sEACewB,YAAK,6BAAD,OAA8B4F,IAAM,EAAMnI,KAAK+B,UAAUO,IAD5E,oF,kEAWA,WAA2BgM,EAAehM,GAA1C,SAAAvB,EAAA,sEACewB,YAAK,oCAAD,OAAqC+L,IAAiB,EAAMhM,GAD/E,oF,kEAIA,WAAyBgM,EAAehM,GAAxC,SAAAvB,EAAA,sEACeqB,YAAI,0CAAD,OAA2CkM,IAAiB,GAD9E,oF,kEAIA,WAAgCA,GAAhC,eAAAvN,EAAA,sEACuBwB,YAAK,6CAAD,OAA8C+L,IAAiB,EAAMtO,KAAK+B,UAAU,CAAEwM,UAAU,KAD3H,cACMhN,EADN,yBAESA,EAASM,KAAK2M,KAFvB,4C,sBAKeZ,O,4EC/GTnG,G,KAAwB,IAAI1H,IAAgBC,KAAKC,MAD3C,QAENwO,EAAY,CAChB,CACE,GAAM,EACN,KAAQ,sBACR,MAAS,gEACT,OAAU,iHACV,OAAU,0CACT,CACD,GAAM,EACN,KAAQ,sBACR,MAAS,gEACT,OAAU,iHACV,OAAU,gDACT,CACD,GAAM,EACN,KAAQ,sBACR,MAAS,gEACT,OAAU,iHACV,OAAU,wEACT,CACD,GAAM,EACN,KAAQ,sBACR,MAAS,gEACT,OAAU,iHACV,OAAU,2CAIV9K,EAAe,CACjB,CACE,GAAM,EACN,KAAQ,sBACR,MAAS,gEACT,OAAU,iHACV,OAAU,gDACT,CACD,GAAM,EACN,KAAQ,sBACR,MAAS,gEACT,OAAU,iHACV,OAAU,yEAKD+K,EAAe,CACxBC,a,4CACEC,kB,4CACA5G,eAAgBP,EAAsB5G,eACxC,0BAA4B,OAAO4G,EAAsB3G,Q,4CAG7D,WAAiCwB,GAAjC,SAAAvB,EAAA,+EACS4C,GADT,oF,kEAKA,WAA4BrB,GAA5B,SAAAvB,EAAA,+EACW0N,GADX,oF,sBAKeC,O,qGCjDFnE,EAAsB,CAC/BC,gB,4CACEqE,wB,4CACAC,Y,4CACAC,U,8CACAC,Y,4CACAC,cArBuB,I,MAAIlP,GAAgBC,KAAKC,MADzC,OAsB6BY,gB,4CAG1C,WAAuCyB,GAAvC,SAAAvB,EAAA,6DACY,KADZ,SAGiBwB,YAAK,2BAA2B,EAAMD,GAHvD,oF,kEAMA,WAA+B6F,GAA/B,eAAApH,EAAA,sEACqBwB,iBAAW8K,GAANlF,EAAA,4CAAuDA,GAAvD,2BAAyF,GADnH,cACQtG,EADR,yBAEWA,GAFX,4C,kEAKA,WAA2BS,GAA3B,SAAAvB,EAAA,sEACiBwB,YAAK,0BAA0B,EAAMD,GADtD,oF,kEAIA,WAAyB6F,EAAI7F,GAA7B,SAAAvB,EAAA,sEACiBwB,YAAK,2BAAD,OAA4B4F,IAAM,EAAM7F,GAD7D,oF,kEAIA,WAA2B6F,GAA3B,SAAApH,EAAA,sEACQ6K,YAAO,6BAAD,OAA8BzD,IAAM,GADlD,4C,sBAIeoC,O,8HC7CT2E,EAAwB,IAAInP,IAAgBC,KAAKC,MADzC,OAGDkP,EAAmB,CAC5BC,a,2CACEC,kB,2CACAC,aACApL,c,4CACAqL,Y,8CACAC,c,4CACAC,c,8CACAC,eAAgBR,EAAsBrO,eACtC,0BAA4B,OAAOqO,EAAsBpO,Q,SAGhDwO,E,8EAAf,WAA0BnH,GAA1B,iBAAApH,EAAA,6DACQ4O,EAA2D,MAAxCR,EAAiBS,oBAA8BT,EAAiBS,oBAAoBzH,GAAK,KADpH,SAEqB/F,YAAI,gCAAMiL,GAANlF,EAAsCA,EAA2BwH,IAAoB,GAF9G,cAEQE,EAFR,yBAGWA,GAHX,4C,kEAMA,8BAAA9O,EAAA,0DACY,KAEoC,MAAxCoO,EAAiBS,oBAHzB,yCAIeT,EAAiBS,qBAJhC,UAMQF,EAAiBzO,aAAaC,QAAQ,sBACrCC,QAAQuO,GAPjB,yCAQa1P,KAAKC,MAAMyP,IARxB,cAWMI,EAAiB,KAXvB,UAaQzO,YAAM,iBAAkB,MAAM,GAAM,GACvCC,MAAK,SAAAC,GACJ,GAAIA,EAAU,OAAOA,EAEnB,IAAIC,EAAQ,IAAIC,MAAMF,EAASG,YAE/B,MADAF,EAAMD,SAAWA,EACXC,KAGTF,MAAK,SAAAC,GAAQ,OAAIA,EAASI,UAC1BL,KAVG,uCAWF,WAAMC,GAAN,SAAAR,EAAA,sDACEmO,EAAsBtN,KAAKkO,EAAiBvO,EAASM,MACrDZ,aAAaa,QAAQ,qBAAsB9B,KAAK+B,UAAUR,EAASM,OAFrE,2CAXE,uDAeHG,OAAM,SAAAR,GACLS,QAAQC,IAAIV,MA7BlB,iCAgCWsO,GAhCX,6C,kEAuCA,WAA6BxF,EAAWnI,GAAxC,eAAApB,EAAA,sEACwBqB,YAAI,gBAAD,OAAiBD,IAAa,GADzD,OACQE,EADR,OAEI6M,EAAsBtN,KAAKS,GAC3BpB,aAAaa,QAAQ,qBAAsB9B,KAAK+B,UAAUM,IAH9D,4C,kEAMA,4BAAAtB,EAAA,sEAC0BqB,YAAI,qBAAqB,GADnD,cACQ2N,EADR,yBAEWA,GAFX,4C,kEAKA,WAA6BzN,GAA7B,SAAAvB,EAAA,sEACewB,YAAK,oBAAoB,EAAMD,GAD9C,oF,kEAIA,WAA2B6F,EAAI7F,GAA/B,SAAAvB,EAAA,sEACewB,YAAK,qBAAD,OAAsB4F,IAAM,EAAM7F,GADrD,oF,kEAIA,WAA6B6F,GAA7B,SAAApH,EAAA,sEACQ6K,YAAO,uBAAD,OAAwBzD,IAAM,GAD5C,4C,sBAIegH,O,qGCjDFtE,EAAsB,CAC/BC,gB,8CACEkF,c,4CACAC,Y,8CACAC,c,4CACAC,wB,yFAGN,WAAuC7N,GAAvC,SAAAvB,EAAA,sEACiBwB,YAAK,qBAAqB,EAAMD,GADjD,oF,kEAIA,WAA+BgI,EAAWnI,GAA1C,SAAApB,EAAA,6DACIuJ,OAAyB+C,GAAb/C,EAAyB,GAAKA,EAC1CnI,OAAyBkL,GAAblL,EAAyB,GAAKA,EAF9C,SAGiBI,YAAK,+BAAD,OAAgC+H,EAAhC,sBAAuDnI,IAAa,GAHzF,oF,kEAMA,WAA6BG,GAA7B,SAAAvB,EAAA,sEACiBwB,YAAK,oBAAoB,EAAMD,GADhD,oF,kEAIA,WAA2B6F,EAAI7F,GAA/B,SAAAvB,EAAA,sEACiBwB,YAAK,qBAAD,OAAsB4F,IAAM,EAAM7F,GADvD,oF,kEAIA,WAA6B6F,GAA7B,SAAApH,EAAA,sEACU6K,YAAO,uBAAD,OAAwBzD,IAAM,GAD9C,4C,sBAIe0C,O,6DCpEQuF,c,QCFvB,6G,2ECKMC,EAA2B,I,MAAItQ,GAAgBC,KAAKC,MADzC,OAGJqQ,EAAoB,CAC7BC,gBACEC,kB,4CACAC,kBAAmBJ,EAAyBxP,eAC9C,6BAA+B,OAAOwP,EAAyBvP,Q,4CAGnE,WAAiC4P,GAAjC,SAAA3P,EAAA,6DACIsP,EAAyBzO,KAAK,MADlC,SAGiB2O,EAAcG,GAH/B,oF,+BAMeH,E,8EAAf,WAA6BG,GAA7B,iCAAA3P,EAAA,yDAA2C4P,EAA3C,gCAA2DC,EAA3D,gCAEoD,MAA5CN,EAAkBO,wBAAkCP,EAAkBO,uBAAuB1I,KAAOuI,EAF5G,yCAGeJ,EAAkBO,wBAHjC,cAKUC,EAAiB,CAAEC,OAAQ,OAC7BC,EAAoB,KAN5B,SAQU3P,YAAM,sBAAD,OAAuBqP,GAAgBI,EAAgBH,EAAQC,GACrEtP,MAAK,SAAAC,GACF,GAAIA,EAAU,OAAOA,EAEjB,IAAIC,EAAQ,IAAIC,MAAMF,EAASG,YAE/B,MADAF,EAAMD,SAAWA,EACXC,KAGbF,MAAK,SAAAC,GAAQ,OAAIA,EAASI,UAC1BL,MACG,SAAAC,GACI8O,EAAyBzO,KAAKoP,EAAsC,MAAlBzP,EAASC,MAAiBD,EAAWA,EAASM,SAEvGG,OAAM,SAAAR,GACHS,QAAQC,IAAIV,MAvBxB,gCA0BWwP,GA1BX,4C,sBA6BeV,I,wBCsBAW,I,oCCpDFvG,EAAqB,CAC9BC,e,gDACEuG,uB,4CACAC,W,4CACAC,S,8CACAC,W,yFAGN,WAAsC/O,GAAtC,SAAAvB,EAAA,sEACiBwB,YAAK,0BAA0B,EAAMD,GADtD,oF,kEAIA,WAA8BgI,EAAWnI,EAAWG,GAApD,SAAAvB,EAAA,6DACIuJ,OAAyB+C,GAAb/C,EAAyB,GAAKA,EAC1CnI,OAAyBkL,GAAblL,EAAyB,GAAKA,EAF9C,SAGiBI,YAAK,oCAAD,OAAqC+H,EAArC,sBAA4DnI,IAAa,EAAMG,GAHpG,oF,kEAMA,WAA0BA,GAA1B,SAAAvB,EAAA,sEACiBwB,YAAK,yBAAyB,EAAMD,GADrD,oF,kEAIA,WAAwB6F,EAAI7F,GAA5B,SAAAvB,EAAA,sEACiBwB,YAAK,0BAAD,OAA2B4F,IAAM,EAAM7F,GAD5D,oF,kEAIA,WAA0B6F,GAA1B,SAAApH,EAAA,sEACU6K,YAAO,4BAAD,OAA6BzD,IAAM,GADnD,4C,sBAIeuC,I,kBC3CFQ,EAAkB,CAC3BC,Y,8CACEmG,c,4CACAC,Y,8CACAC,c,4CACAC,sB,2FAGN,WAA2BnH,EAAWnI,GAAtC,SAAApB,EAAA,6DACEuJ,OAAyB+C,GAAb/C,EAAyB,GAAKA,EAC1CnI,OAAyBkL,GAAblL,EAAyB,GAAKA,EAF5C,SAGeI,YAAK,+BAAD,OAAgC+H,EAAhC,sBAAuDnI,IAAa,GAHvF,oF,kEAMA,WAAqCmI,EAAWnI,GAAhD,SAAApB,EAAA,6DACEuJ,OAAyB+C,GAAb/C,EAAyB,GAAKA,EAC1CnI,OAAyBkL,GAAblL,EAAyB,GAAKA,EAF5C,SAGeI,YAAK,gDAAD,OAAiD+H,EAAjD,sBAAwEnI,IAAa,GAHxG,oF,kEAMA,WAA6BG,GAA7B,SAAAvB,EAAA,sEACewB,YAAK,oBAAoB,EAAMD,GAD9C,oF,kEAIA,WAA2B6F,EAAI7F,GAA/B,SAAAvB,EAAA,sEACewB,YAAK,qBAAD,OAAsB4F,IAAM,EAAM7F,GADrD,oF,kEAIA,WAA6B6F,GAA7B,SAAApH,EAAA,sEACe6K,YAAO,uBAAD,OAAwBzD,IAAM,GADnD,oF,sBAIe+C,ICnCFwG,EAAmB,CAC5BtI,Y,4CACEuI,a,4CACAC,e,4CACAC,e,8CACAC,e,yFAGN,WAA2B3J,GAA3B,SAAApH,EAAA,sEAEiBqB,YAAI,iBAAD,OAAkB+F,IAAM,GAF5C,oF,kEAKA,WAA4B7F,GAA5B,SAAAvB,EAAA,sEACiBwB,YAAK,sBAAsB,EAAMvC,KAAK+B,UAAUO,IADjE,oF,kEAIA,WAA8BA,GAA9B,SAAAvB,EAAA,sEACiBwB,YAAK,qBAAqB,EAAMD,GADjD,oF,kEAIA,WAA8B6F,EAAI7F,GAAlC,SAAAvB,EAAA,sEACiBwB,YAAK,sBAAD,OAAuB4F,IAAM,EAAM7F,GADxD,oF,kEAIA,WAA8B6F,GAA9B,SAAApH,EAAA,sEACiB6K,YAAO,wBAAD,OAAyBzD,IAAM,GADtD,oF,sBAIeuJ,ICOFK,EAAiB,CAC1BC,W,4CACEC,U,4CACAC,a,4CACAC,a,8CACAC,a,4CACAC,mB,yFAGN,WAAyBlK,GAAzB,SAAApH,EAAA,sEACeqB,YAAI,gBAAD,OAAiB+F,EAAjB,MAAwB,GAD1C,oF,kEAIA,WAA0B7F,GAA1B,SAAAvB,EAAA,sEACewB,YAAK,qBAAqB,EAAMvC,KAAK+B,UAAUO,IAD9D,oF,kEAIA,WAAkCA,GAAlC,SAAAvB,EAAA,sEACewB,YAAK,qBAAqB,EAAMD,GAD/C,oF,kEAIA,WAA4BA,GAA5B,SAAAvB,EAAA,sEACQwB,YAAK,oBAAoB,EAAMD,GADvC,4C,kEAIA,WAA4B6F,EAAI7F,GAAhC,SAAAvB,EAAA,sEACewB,YAAK,qBAAD,OAAsB4F,IAAM,EAAM7F,GADrD,oF,kEAIA,WAA4B6F,GAA5B,SAAApH,EAAA,sEACiB6K,YAAO,uBAAD,OAAwBzD,IAAM,GADrD,oF,sBAIe4J,I,kBCtETO,EAAW,CACf,CACEnK,GAAI,EACJiD,KAAM,sBACNmH,OAAQ,gEACR7G,OAAQ,IACR8G,UAAW,4DACV,CACDrK,GAAI,EACJiD,KAAM,sBACNmH,OAAQ,gEACR7G,OAAQ,IACR8G,UAAW,4DACV,CACDrK,GAAI,EACJiD,KAAM,sBACNmH,OAAQ,gEACR7G,OAAQ,IACR8G,UAAW,6DAGFC,EAAiB,CAC1BC,W,8CACEC,a,4CACAC,W,8CACAC,a,4CACAC,U,0FAIN,WAA0BxI,EAAWnI,GAArC,SAAApB,EAAA,6DACIuJ,OAAyB+C,GAAb/C,EAAyB,GAAKA,EAC1CnI,OAAyBkL,GAAblL,EAAyB,GAAKA,EAF9C,kBAIW,CAAEN,KAAMyQ,IAJnB,4C,kEAOA,WAA4BhQ,GAA5B,SAAAvB,EAAA,sEACewB,YAAK,+BAA+B,EAAMD,GADzD,oF,kEAIA,WAA0B6F,EAAI7F,GAA9B,SAAAvB,EAAA,sEACiBwB,YAAK,oBAAD,OAAqB4F,IAAM,EAAM7F,GADtD,oF,kEAIA,WAA4B6F,GAA5B,SAAApH,EAAA,sEACU6K,YAAO,sBAAD,OAAuBzD,IAAM,GAD7C,4C,oEAIA,WAAyBA,GAAzB,SAAApH,EAAA,sEACeqB,YAAI,eAAD,OAAgB+F,IAAM,GADxC,oF,sBCnDA,mhB,kNCGa/F,EAAG,uCAAG,WAAOoM,EAAKmC,EAAQoC,GAApB,iCAAAhS,EAAA,6DAA0B6P,EAA1B,gCACXE,EAAiB,CACrBC,OAAQ,MACRgC,KAAMA,EACNC,aAAkB3F,IAAT0F,EAAqB,GAAM,CAAE,eAAgB,qBAJvC,kBAOQ1R,YAAMmN,EAAKsC,EAAgBH,EAAQC,GAP3C,cAOTrP,EAPS,gBAQIA,EAASI,OARb,cASfmF,EAAyB,OADrBA,EARW,QASCtF,MAAgBsF,EAAOtF,MAAQsF,EAThC,kBAURA,GAVQ,4FAAH,0DAgBH8E,EAAM,uCAAG,WAAO4C,EAAKmC,GAAZ,iCAAA5P,EAAA,6DAAoB6P,EAApB,gCACdE,EAAiB,CACrBC,OAAQ,UAFU,kBAKK1P,YAAMmN,EAAKsC,EAAgBH,EAAQC,GALxC,cAKZrP,EALY,gBAMCA,EAASI,OANV,cAOlBmF,EAAyB,OADrBA,EANc,QAOFtF,MAAgBsF,EAAOtF,MAAQsF,EAP7B,kBAQXA,GARW,kCAUlBmM,MAAM,QAAD,MAVa,0DAAH,wDAcN1Q,EAAI,uCAAG,WAAMiM,EAAKmC,EAAQoC,GAAnB,iCAAAhS,EAAA,6DAAyB6P,EAAzB,gCAAiDsC,EAAjD,+BAA+D,KACzEpC,EAAiB,CACnBC,OAAQ,OACRiC,aAAkB3F,IAAT0F,EAAqB,GAAK,CAAE,OAAS,mBAAmB,eAAgB,oBACjFA,KAAMA,GAJM,SAOO1R,YAAMmN,EAAKsC,EAAgBH,EAAQC,GAAgBtP,KAAnD,uCAErB,WAAgBC,GAAhB,eAAAR,EAAA,0DACQQ,IAAYA,EAASyR,SAAoD,sEAAzCzR,EAASyR,QAAQ5Q,IAAI,gBAD7D,uBAEQb,EAAS4R,OACN7R,MAAK,SAAC6R,GAGL,IAAM3E,EAAM4E,OAAOC,IAAIC,gBAAgB,IAAIC,KAAK,CAACJ,GAC/C,CAAE/F,KAAM,wEACJlK,EAAOsQ,SAASC,cAAc,KACpCvQ,EAAKwQ,KAAOlF,EACZtL,EAAKyQ,aAAa,WAAlB,eAEAH,SAAST,KAAKa,YAAY1Q,GAE1BA,EAAK2Q,QAEL3Q,EAAK4Q,WAAWC,YAAY7Q,MAE7BlB,OAAM,SAACR,GACNyR,MAAMzR,MAnBlB,kBAsBe,MAtBf,WAyBUD,GAA8B,MAAlBA,EAASyS,KAzB/B,gCA0B6BzS,EAASI,OA1BtC,cA0BcmF,EA1Bd,yBA2BeA,GA3Bf,WA8BUvF,GAAgC,MAApBA,EAAS0S,QAAsC,MAApB1S,EAAS0S,OA9B1D,wBA+BYhB,MAAM,gDACF1R,EAAS0S,QAhCzB,8BAoCU1S,GAAYA,EAAS2S,IAAqB,MAAfhB,IAC3BE,OAAOe,SAAST,KAAOR,IAGvB3R,EAxCV,kCAyC2BA,EAASI,OAzCpC,eA0CQmF,EAAyB,OADrBA,EAzCZ,QA0CwBtF,OAAgC,MAAfsF,EAAOjF,KAAeiF,EAAOjF,KAAOiF,EA1C7E,kBA2CeA,GA3Cf,4CAFqB,uDAgDrBxF,MAAK,SAAAC,GAMH,OAJIA,GAA8B,MAAlBA,EAASM,MACrBoR,MAAM,WAAa1R,EAASC,MAAM4S,SAGlC7S,GAAYA,EAAS8S,UACd,CAAE7S,MAAO,CAAE8S,OAAQ,CAAC,CAAEF,QAAS7S,EAAS6S,YAG5C7S,KAERS,OAAM,SAAUuS,GACjBtB,MAAMsB,MApEQ,cAOVhT,EAPU,yBAuETA,GAvES,2CAAH,0DA0EJiT,EAAQ,uCAAG,WAAMhG,EAAKmC,EAAQoC,GAAnB,iCAAAhS,EAAA,6DAAyB6P,EAAzB,gCAAiDsC,EAAjD,+BAA+D,KAE7EpC,EAAiB,CACnBC,OAAQ,OAERgC,KAAMA,GALU,SAQG1R,YAAMmN,EAAKsC,EAAgBH,EAAQC,GAAgBtP,MAEtE,SAAUC,GAEN,GAAwB,MAApBA,EAAS0S,OAUb,OAJI1S,EAAS2S,IAAqB,MAAfhB,IACfE,OAAOe,SAAST,KAAOR,GAGpB3R,EAASI,OATZsR,MAAM,gDACF1R,EAAS0S,WAYvB3S,MAAK,SAAAC,GAMH,OAJsB,MAAlBA,EAASM,MACToR,MAAM,WAAa1R,EAASC,MAAM4S,SAG/B7S,KAERS,OAAM,SAAUuS,GACftB,MAAM,QAASsB,MAnCC,cAQdhT,EARc,yBAsCbA,GAtCa,2CAAH,2D,iCC3GrB,qBAIMiR,EAAY,CAChBiC,GAAI,CACEC,OAAQC,EAAQ,KACdC,WAAYD,EAAQ,KACpBE,cAAeF,EAAQ,KACvBG,QAASH,EAAQ,KACjBI,gBAAiBJ,EAAQ,KACzBK,sBAAuBL,EAAQ,KAC/BM,gBAAiBN,EAAQ,KACzBO,WAAYP,EAAQ,KACpBQ,iBAAkBR,EAAQ,KAC1BS,MAAOT,EAAQ,KACfU,SAAUV,EAAQ,KAClBW,WAAYX,EAAQ,KACpBY,UAAWZ,EAAQ,KACnBa,UAAWb,EAAQ,KACnBc,WAAYd,EAAQ,MAE1Be,GAAI,CACFhB,OAAQC,EAAQ,KACdC,WAAYD,EAAQ,KACpBE,cAAeF,EAAQ,KACvBG,QAASH,EAAQ,KACjBI,gBAAiBJ,EAAQ,KACzBK,sBAAuBL,EAAQ,KAC/BM,gBAAiBN,EAAQ,KACzBO,WAAYP,EAAQ,KACpBQ,iBAAkBR,EAAQ,KAC1BS,MAAOT,EAAQ,KACfU,SAAUV,EAAQ,KAClBW,WAAYX,EAAQ,KACpBY,UAAWZ,EAAQ,KACnBa,UAAWb,EAAQ,KACnBc,WAAYd,EAAQ,OAI5BgB,IACGC,IAAIC,KACJC,KAAK,CACFtD,YACAuD,GAAI,CAAC,SAAU,aAAc,gBAAiB,wBAAyB,kBAAmB,aAAc,mBAAoB,YAAa,YAAa,cACtJC,IAAK,KACLC,YAAa,KACbC,UAAU,SAGVC,MAAO,CACLC,MAAM,GAEVC,cAAe,CACbC,aAAa,KAIJX,MAAf,G,0JCpDMY,G,OAAqB,IAAIxW,IAAgBC,KAAKC,MADzC,QAGE+G,EAAc,CACvBwP,e,2CACEC,UACAC,c,4CACAC,Y,4CACAC,e,4CACAC,mB,4CACAC,Y,2CAEAC,oB,4CACAC,U,8CACAC,e,4CACAC,a,4CACAC,Y,4CAEAC,yB,4CACAnQ,YAAasP,EAAmB1V,eAChCwW,gBAKN,WACI,OAAuC,MAAhCrQ,EAAYsQ,iBAA2BtQ,EAAYsQ,iBAAiBD,gBAAkB,MAL3FE,U,4CACA,uBAAyB,OAAOhB,EAAmBzV,Q,4CAOzD,WAA8BwB,GAA9B,eAAAvB,EAAA,+EAEyBwB,YAAK,sBAAsB,EAAMD,GAF1D,cAEQf,EAFR,QAGiBC,MACXyR,MAAM1R,EAASC,MAAM4S,SAErBnB,MAAM,oIANZ,kBAOWwD,GAAQ,IAPnB,gCASIxD,MAAM,EAAD,IATT,0D,kEAaA,WAAkC3Q,GAAlC,eAAAvB,EAAA,+EAEyBwB,YAAK,8BAA8B,EAAMD,GAFlE,cAEQf,EAFR,QAGiBC,MACXyR,MAAM1R,EAASC,MAAM4S,SAErBnB,MAAM,8HANZ,kBAOWwD,GAAQ,IAPnB,gCASIxD,MAAM,EAAD,IATT,0D,kEAaA,wCAAAlS,EAAA,0DAA2ByW,EAA3B,kCAEQjB,EAAmB3U,KAAK,OAGrB4V,EALX,qBAKmB,KALnB,sCAKgCf,GAAQ,GALxC,sG,kEAQA,4BAAA1V,EAAA,yDACwC,MAAhCiG,EAAYsQ,iBADpB,yCAEatQ,EAAYsQ,kBAFzB,cAKQG,EAAc,KALtB,SAOUpW,YAAM,mBAAoB,MAAM,GAAM,GACvCC,MAAK,SAAAC,GACF,GAAIA,EAAU,OAAOA,EAEjB,IAAIC,EAAQ,IAAIC,MAAMF,EAASG,YAE/B,MADAF,EAAMD,SAAWA,EACXC,KAGbF,MAAK,SAAAC,GAAQ,OAAIA,EAASI,UAC1BL,KAVC,uCAWE,WAAMC,GAAN,SAAAR,EAAA,sDAEIwV,EAAmB3U,KAAK6V,EAAclW,EAASM,MAC/CZ,aAAaa,QAAQ,kBAAmB9B,KAAK+B,UAAUR,EAASM,OAHpE,2CAXF,uDAgBDG,OAAM,SAAAR,GACHS,QAAQC,IAAIV,MAxBxB,gCA2BSiW,GA3BT,4C,kEA8BA,WAAmCC,GAAnC,eAAA3W,EAAA,6DACC2W,EAAQA,EAAMC,QAAQ,IAAI,IAD3B,SAEsBvV,YAAI,6BAAD,OAA8BsV,IAAS,GAFhE,cAEQE,EAFR,yBAGWA,GAASA,EAAM/V,KAAKgW,OAAS,EAAID,EAAM/V,KAAK,GAAK,MAH5D,4C,+BAce4U,I,2EAAf,4BAAA1V,EAAA,sEACqBqB,YAAI,mBAAmB,GAD5C,cACQ0V,EADR,QAEY,EAFZ,kBAGSA,GAHT,4C,kEAMA,WAA6B3V,GAA7B,eAAApB,EAAA,sEACqBqB,YAAI,uCAAD,OAAwCD,IAAa,GAD7E,cACM4V,EADN,QAEU,EAFV,kBAGOA,GAHP,4C,kEAMA,WAAyBzN,EAAW0N,GAApC,eAAAjX,EAAA,6DACSiX,IACHA,EAAO,IAGJ1N,IACHA,EAAY,IANlB,SASuB/H,YAAK,+BAAD,OAAgC+H,EAAhC,iBAAkD0N,IAAQ,GATrF,cASQC,EATR,yBAUWA,GAVX,4C,kEAaA,WAA2BH,GAA3B,eAAA/W,EAAA,sEACqBwB,YAAK,oBAAoB,EAAMvC,KAAK+B,UAAU+V,IADnE,cACMG,EADN,yBAESA,GAFT,4C,kEAKA,WAA4BH,GAA5B,eAAA/W,EAAA,sEACqBwB,YAAK,6BAA6B,EAAMvC,KAAK+B,UAAU+V,IAD5E,cACMG,EADN,yBAESA,GAFT,4C,kEAKA,WAA8BH,GAA9B,eAAA/W,EAAA,sEACqBwB,YAAK,+BAA+B,EAAMvC,KAAK+B,UAAU+V,IAD9E,cACMG,EADN,yBAESA,GAFT,4C,kEAKA,WAAwCH,GAAxC,eAAA/W,EAAA,sEACqBwB,YAAK,yCAAyC,EAAMvC,KAAK+B,UAAU+V,IADxF,cACMG,EADN,yBAESA,GAFT,4C,kEAKA,WAAyB9V,GAAzB,SAAApB,EAAA,sEACeqB,YAAI,oCAAD,OAAqCD,EAAUA,YAAa,GAD9E,oF,kEAIA,WAA2BA,GAA3B,SAAApB,EAAA,6DACIoB,OAAyBkL,GAAblL,EAAyB,GAAKA,EAD9C,SAEiBC,YAAI,sCAAD,OAAuCD,IAAa,GAFxE,oF,sBAKe6E,O,kIC7JX8Q,EAA8C,aAAvC7W,aAAaC,QAAQ,eAAgCD,aAAaC,QAAQ,eAAiB,KAChGgX,EAAqB,IAAInY,IAAgBC,KAAKC,MAAM6X,IAE7CK,EAAO,CAChBC,M,4CACAC,e,4CACAC,gB,4CACAC,mB,8CACAC,gBAiBJ,WACI,OAAyC,MAAlCL,EAAKlR,YAAYC,OAAOC,QAAoE,MAAlDgR,EAAKlR,YAAYC,OAAOC,OAAOqR,iBAjBhFC,O,2CACAC,S,4CACA/H,OAUJ,WACI,OAAyC,MAAlCwH,EAAKlR,YAAYC,OAAOC,QAV/BsP,QA2BJ,WACE,OAA6B,MAAzB0B,EAAKb,kBACPa,EAAKM,SACLrF,OAAOe,SAAST,KAAO,WAChB,OAEPyE,EAAKb,iBAAiBqB,SAAU,EACvBR,EAAKb,mBAjCdsB,eAgBJ,WACI,OAAgC,MAAzBT,EAAKb,iBAA2Ba,EAAKb,iBAAiBuB,aAAe,MAhB5EC,kBAkBJ,SAA2BC,EAAOC,GAC9B,IAAIlB,EAAOI,EAAmBe,WAC9BnB,EAAKe,aAAeE,EACpBjB,EAAKoB,WAAaF,EAClB/X,aAAaa,QAAQ,cAAe9B,KAAK+B,UAAU+V,IACnDI,EAAmBtW,KAAKkW,IAtBxBqB,c,4CACAC,kB,4CACAnS,YAAaiR,EAAmBrX,eAChC,uBAAyB,OAAOqX,EAAmBpX,Q,4CAgCvD,WAA6BqH,GAA7B,SAAApH,EAAA,sEACUqB,YAAI,uBAAuB,GADrC,4C,kEAIA,WAAiCE,GAAjC,eAAAvB,EAAA,sEACqBwB,YAAK,uBAAuB,EAAOD,GADxD,YACMwE,EADN,QAEatF,MAFb,mBAGkC,GAA1BsF,EAAOtF,MAAM6X,UAHrB,yCAIaC,QAAQC,OAAOzS,EAAOtF,MAAM6X,YAJzC,gCAKWC,QAAQC,OAAOzS,EAAOtF,MAAM4S,UALvC,cAQEnT,aAAaa,QAAQ,cAAe9B,KAAK+B,UAAU,CACjDmX,WAAYpS,EAAOoS,WACjBM,qBAAsB1S,EAAO0S,qBAC7BX,aAAc/R,EAAO+R,aACrBL,gBAAiB,KACjBG,SAAS,KAIbT,EAAmBtW,KAAKkF,GACxBE,IAAY8P,cAlBd,kBAmBSqB,EAAKlR,aAnBd,6C,kEAsBA,WAAkCwS,EAAOnP,GAAzC,SAAAvJ,EAAA,sEACiBwB,YAAK,8BAA8B,EAAMvC,KAAK+B,UAAU,CAAE0X,QAAOnP,eADlF,oF,kEAIA,WAAqBhI,GAArB,eAAAvB,EAAA,6DACU+P,EAAiB,CACnBC,OAAQ,OACRiC,QAAS,CAAE,OAAU,mBAAoB,eAAgB,oBACzDD,KAAMzQ,EACNoX,KAAM,QALd,SAOiBtG,OAAOuG,MAAP,kBAAgC7I,GACpCxP,MAAK,SAAAC,GAAQ,OAAIA,EAASI,UAAQL,MAAK,SAAAC,GACpC,OAAIA,EAASC,MACqB,GAA5BD,EAASC,MAAM6X,UACRC,QAAQC,OAAOhY,EAASC,MAAM6X,WAClCC,QAAQC,OAAOhY,EAASC,MAAM4S,UAGvCnT,aAAaa,QAAQ,cAAe9B,KAAK+B,UAAU,CAC/CmX,WAAY3X,EAAS2X,WACnBM,qBAAsBjY,EAASiY,qBAE/BX,aAActX,EAASsX,aACvBL,gBAAiB,KACjBG,SAAS,KAOfT,EAAmBtW,KAAKL,GACxByF,IAAY8P,cACLqB,EAAKlR,gBA9B5B,oF,kEAkCA,WAA8B3E,GAA9B,eAAAvB,EAAA,sEACuBwB,YAAK,uBAAuB,EAAOD,GAD1D,cACQwE,EADR,yBAEWA,GAFX,4C,kEAIA,WAA+BxE,GAA/B,eAAAvB,EAAA,6DACU+P,EAAiB,CACnBC,OAAQ,OACRiC,QAAS,CAAE,eAAgB,oBAC3BD,KAAMzQ,GAJd,SAOU8Q,OAAOuG,MAAP,uBAAqC7I,GACtCxP,MAAK,SAAAC,GAAQ,OAAIA,EAASI,UAAQL,MAAK,SAAAC,GACpC,IAAKA,EAASqY,QACV,OAAON,QAAQC,OAAOhY,EAASC,MAAM4S,SAGzCnT,aAAaa,QAAQ,cAAe9B,KAAK+B,UAAU,CAC/CiX,QAASzX,EAASM,KAAKmX,QACrB7Q,GAAI5G,EAASM,KAAKsG,GAClB0R,aAActY,EAASM,KAAKgY,aAC5Bd,MAAOxX,EAASM,KAAKkX,MACrBe,oBAAqBvY,EAASM,KAAKiY,uBAGzC5B,EAAmBtW,KAAKL,EAASM,MACjCuR,OAAOe,SAAST,KAAO,kBAtBnC,4C,kEAyBA,WAAwBpR,GAAxB,iBAAAvB,EAAA,6DACc+P,EAAiB,CACnBC,OAAQ,OACRiC,QAAS,CAAE,eAAgB,oBAC3BD,KAAM/S,KAAK+B,UAAUO,IAJjC,SAOuB8Q,OAAOuG,MAAP,mDAAiE7I,GAC3ExP,MAAK,SAACC,GACH,GAAwB,MAApBA,EAAS0S,OAMb,OAAI1S,EAAS2S,GAEF3S,EAASI,YAFpB,EALIsR,MAAM,gDACF1R,EAAS0S,WAUlB3S,KAdQ,uCAcF,WAAOyY,GAAP,mBAAAhZ,EAAA,yDACIgZ,EAAIH,QADR,uBAGOrY,EAAW,CACXqY,SAAS,EACTpY,MAAQuY,GAAOA,EAAIvY,OAASuY,EAAIvY,MAAM4S,QAAU2F,EAAIvY,MAAM4S,QAAU,sBAL3E,kBAOU7S,GAPV,cASGyY,EAAUD,EAAIlY,KAEdoY,EAAU,CACZjB,QAASgB,EAAQhB,QACb7Q,GAAI6R,EAAQ7R,GACd0R,aAAcG,EAAQH,aACtBd,MAAOiB,EAAQjB,MACfe,oBAAqBE,EAAQF,qBAhBhC,SAkBK7Y,aAAaa,QAAQ,cAAe9B,KAAK+B,UAAUkY,IAlBxD,uBAoBK/B,EAAmBtW,KAAKqY,GApB7B,cAqBDjT,IAAY8P,cArBX,kBAsBMqB,EAAKlR,aAtBX,4CAdE,uDAuCRjF,OAAM,SAAUuS,GACVtB,MAAM,mBAAqBsB,MA/ChD,cAOQzN,EAPR,yBAiDeA,GAjDf,4C,kEAoDA,sBAAA/F,EAAA,6DAEME,aAAaiZ,WAAW,eACxBjZ,aAAaiZ,WAAW,sBACxBjZ,aAAaiZ,WAAW,SACxBhC,EAAmBtW,KAAK,MAL9B,SAMYwR,OAAOuG,MAAP,mBANZ,OAOMvG,OAAOe,SAAST,KAAO,eAP7B,4C,sBA+BeyE,O,61hGC5Mf,WAEE,GAAmC,oBAAvB/E,OAAO+G,YAA6B,OAAO,EAEvD,SAASA,EAAc5W,EAAO6W,GAC5BA,EAASA,GAAU,CAAEC,SAAS,EAAOC,YAAY,EAAOC,YAAQlN,GAChE,IAAImN,EAAMhH,SAASiH,YAAa,eAEhC,OADAD,EAAIE,gBAAiBnX,EAAO6W,EAAOC,QAASD,EAAOE,WAAYF,EAAOG,QAC/DC,EAGTL,EAAYQ,UAAYvH,OAAOwH,MAAMD,UAErCvH,OAAO+G,YAAcA,EAbvB,G,yMChBMU,EAAgBpY,IAAMqY,MAAK,kBAAM,gEACjCC,EAAiBtY,IAAMqY,MAAK,kBAAM,yDAClCE,EAAQvY,IAAMqY,MAAK,kBAAM,+EACzBG,EAAiBxY,IAAMqY,MAAK,kBAAM,gEAClCI,EAAkBzY,IAAMqY,MAAK,kBAAM,gEACnCK,EAAW1Y,IAAMqY,MAAK,kBAAM,wEAC5BM,EAAU3Y,IAAMqY,MAAK,kBAAM,mCAC3BO,EAAU5Y,IAAMqY,MAAK,kBAAM,mCAG3BQ,EAAUlL,cAEVmL,E,YAGJ,WAAYC,GAAQ,IAAD,8BACjB,4CAAMA,KAEC3V,iBAAmB,SAAChD,EAAWE,GAChC,EAAK0Y,SAAS,CACV9Y,cAAe,CAAEC,QAAQ,EAAMC,UAAWA,GAC1CC,kBACA,CACIC,QAASA,MAKrB,EAAK+C,iBAAmB,WACpB,EAAK2V,SAAS,CAAE9Y,cAAe,CAAEC,QAAQ,MAG7C,EAAKmD,eAAiB,SAAC2R,GACnB,EAAK+D,SAAS,CACVzY,WAAY,CAAEJ,QAAQ,EAAMC,UAAW,gBAI/C,EAAKmD,eAAiB,WAClB,EAAKyV,SAAS,CAAEzY,WAAY,CAAEJ,QAAQ,MAG1C,EAAK2B,eAAiB,SAAChB,GACrB,EAAKkY,SAAS,CACZnY,WAAY,CAAEV,QAAQ,EAAMC,UAAW,YAAaU,MAAOA,MAI/D,EAAKiB,eAAiB,WACpB,EAAKiX,SAAS,CAAEnY,WAAY,CAAEV,QAAQ,EAAOW,MAAO,SAGtD,EAAKgC,eAAL,uCAAsB,WAAM1D,GAAN,SAAAd,EAAA,sEACd,EAAK0a,SAAS,CAChB5X,WAAY,CAAEjB,QAAQ,EAAMkB,MAAOjC,KAFnB,2CAAtB,kCAAA6Z,KAAA,eAMA,EAAKlW,eAAiB,WACpB,EAAKiW,SAAS,CAAE5X,WAAY,CAAEjB,QAAQ,EAAOkB,MAAO,SAGtD,EAAKqC,iBAAmB,SAAC1C,EAAS5B,GAChC,EAAK4Z,SAAS,CACVjY,aAAc,CAAEZ,QAAQ,EAAMC,UAAW,YAAaY,QAASA,EAASC,UAAU,EAAOC,aAAc9B,EAAM+B,aAAc,OAIjI,EAAKwC,iBAAmB,WACpB,EAAKqV,SAAS,CAAEjY,aAAc,CAAEZ,QAAQ,EAAOa,QAAS,GAAIE,aAAc,KAAMC,aAAc,OAGlG,EAAK4C,WAAa,WACd,EAAKiV,SAAS,CAAEpY,OAAQ,CAAET,QAAQ,MAGtC,EAAK6D,WAAa,WACd,EAAKgV,SAAS,CAAEpY,OAAQ,CAAET,QAAQ,MAGtC,EAAK6B,qBAAuB,SAACnC,GACzB,EAAKmZ,SAAS,CAAE1X,iBAAkB,CAAEnB,QAAQ,EAAMN,MAAOA,MAG7D,EAAKoC,qBAAuB,WACxB,EAAK+W,SAAS,CAAE1X,iBAAkB,CAAEnB,QAAQ,MAGhD,EAAK+B,oBAAsB,SAACrC,GAC1B,EAAKmZ,SAAS,CAAEzX,gBAAiB,CAAEpB,QAAQ,EAAMN,MAAOA,MAG1D,EAAKsC,oBAAsB,WACzB,EAAK6W,SAAS,CAAEzX,gBAAiB,CAAEpB,QAAQ,MAG7C,EAAKiC,uBAAyB,SAACvC,GAC7B,EAAKmZ,SAAS,CAAExX,mBAAoB,CAAErB,QAAQ,EAAMN,MAAOA,MAG7D,EAAKwC,uBAAyB,WAC5B,EAAK2W,SAAS,CAAExX,mBAAoB,CAAErB,QAAQ,MAGhD,EAAKmC,uBAAyB,SAACzC,GAC7B,EAAKmZ,SAAS,CAAEE,mBAAoB,CAAE/Y,QAAQ,EAAMN,MAAOA,MAG7D,EAAK0C,uBAAyB,WAC5B,EAAKyW,SAAS,CAAEE,mBAAoB,CAAE/Y,QAAQ,MAGhD,EAAKqC,qBAAuB,SAAC3C,GAC3B,EAAKmZ,SAAS,CAAEtX,iBAAkB,CAAEvB,QAAQ,EAAMN,MAAOA,MAG3D,EAAK4C,qBAAuB,WAC1B,EAAKuW,SAAS,CAAEtX,iBAAkB,CAAEvB,QAAQ,MAG9C,EAAKuC,uBAAyB,SAAC7C,GAC7B,EAAKmZ,SAAS,CAAEG,mBAAoB,CAAEhZ,QAAQ,EAAMN,MAAOA,MAG7D,EAAK8C,uBAAyB,WAC5B,EAAKqW,SAAS,CAAEG,mBAAoB,CAAEhZ,QAAQ,MAGhD,EAAK6C,sBAAwB,SAACnD,GAC5B,EAAKmZ,SAAS,CAAEpX,kBAAmB,CAAEzB,QAAQ,EAAMN,MAAOA,MAG5D,EAAKoD,sBAAwB,WAC3B,EAAK+V,SAAS,CAAEpX,kBAAmB,CAAEzB,QAAQ,MAG/C,EAAKyC,6BAA+B,SAAC/C,GACnC,EAAKmZ,SAAS,CAAEG,mBAAoB,CAAEhZ,QAAQ,EAAMN,MAAOA,MAG7D,EAAKgD,6BAA+B,WAClC,EAAKmW,SAAS,CAAErX,yBAA0B,CAAExB,QAAQ,MAGtD,EAAK+C,sBAAwB,SAACrD,GAC5B,EAAKmZ,SAAS,CAAEnX,iBAAkB,CAAE1B,QAAQ,EAAMN,MAAOA,MAG3D,EAAKsD,sBAAwB,WAC3B,EAAK6V,SAAS,CAAEnX,iBAAkB,CAAE1B,QAAQ,EAAON,MAAO,SAG5D,EAAKuZ,MAAQ,CACT5U,YAAa,KACbtE,cACA,CACIC,QAAQ,EACRC,UAAW,aAEfC,kBAAmB,CACfC,QAAS,GAEb+Y,kBAAmB,CAAElZ,QAAQ,EAAOmZ,aAAc,IAClD/Y,WAAY,CAAEJ,QAAQ,EAAOC,UAAW,aACxCmZ,WAAY,CAAEpZ,QAAQ,EAAOC,UAAW,aACxCW,aAAc,CAAEZ,QAAQ,EAAOC,UAAW,YAAaY,QAAS,GAAIC,UAAU,EAAOC,aAAc,GAAIC,aAAc,IACrHN,WAAY,CAAEV,QAAQ,EAAOC,UAAW,YAAaU,MAAO,MAC5DM,WAAY,CAAEjB,QAAQ,EAAOkB,MAAO,MACpCb,eAAgB,CAAEL,QAAQ,EAAOM,KAAM,KAAMC,gBAAiB,KAAMC,aAAc,MAClFC,OAAQ,CAAET,QAAQ,GAClBmB,iBAAkB,CAACnB,QAAQ,GAC3BoB,gBAAiB,CAACpB,QAAQ,GAC1BqB,mBAAoB,CAACrB,QAAQ,GAC7B+Y,mBAAoB,CAAC/Y,QAAQ,GAC7BuB,iBAAkB,CAACvB,QAAQ,GAC3BgZ,mBAAoB,CAAChZ,QAAQ,GAC7BwB,yBAA0B,CAACxB,QAAQ,GACnCyB,kBAAmB,CAAEzB,QAAQ,GAC7B0B,iBAAkB,CAAE1B,QAAQ,EAAON,MAAO,KAAMO,UAAW,aAE3DgD,iBAAkB,EAAKA,iBACvBC,iBAAkB,EAAKA,iBACvBC,eAAgB,EAAKA,eACrBC,eAAgB,EAAKA,eACrBzB,eAAgB,EAAKA,eACrBC,eAAgB,EAAKA,eACrBe,eAAgB,EAAKA,eACrBC,eAAgB,EAAKA,eACrBW,iBAAkB,EAAKA,iBACvBC,iBAAkB,EAAKA,iBACvBI,WAAY,EAAKA,WACjBC,WAAY,EAAKA,WAEjBd,sBAAuB,EAAKA,sBAC5BC,sBAAuB,EAAKA,sBAG5BnB,qBAAsB,EAAKA,qBAC3BC,qBAAsB,EAAKA,qBAC3BC,oBAAqB,EAAKA,oBAC1BC,oBAAqB,EAAKA,oBAC1BC,uBAAwB,EAAKA,uBAC7BC,uBAAwB,EAAKA,uBAC7BC,uBAAwB,EAAKA,uBAC7BC,uBAAwB,EAAKA,uBAC7BC,qBAAsB,EAAKA,qBAC3BC,qBAAsB,EAAKA,qBAC3BC,uBAAwB,EAAKA,uBAC7BC,uBAAwB,EAAKA,uBAC7BC,6BAA8B,EAAKA,6BACnCC,6BAA8B,EAAKA,6BACnCG,sBAAuB,EAAKA,sBAC5BC,sBAAuB,EAAKA,uBArMjB,E,iFAyMI,IAAD,OAClByS,IAAKlR,YAAYgV,WAAU,SAAAzQ,GAAC,OAAI,EAAKiQ,SAAS,CAAExU,YAAauE,OAE7DxE,IAAYC,YAAYgV,WAAU,SAAAnE,GAC9B,EAAK2D,SAAS,CAAE3D,YAIpBwD,EAAQY,QAAO,WACXC,IAAG,MAAO/I,OAAOe,SAASiI,SAAW,KAAOhJ,OAAOe,SAASkI,KAAO,IAAMjJ,OAAOe,SAASmI,e,+BAI7F,IAAI9D,EAAkBL,IAAKK,kBAC7B,OACI,6BACI,kBAAC,IAAa+D,SAAd,CAAuBzb,MAAO4a,KAAKG,OACnC,kBAAC,gBAAD,CAAeW,SAAU,CAAC,YAC1B,kBAAC,IAAD,KACQ,kBAAC,IAAMC,SAAP,CAAgBC,SA9Od,yBAAKC,UAAU,oCAAmC,yBAAKA,UAAU,4BA+O/D,kBAAC,IAAD,KACI,kBAAC,IAAD,CAAOC,OAAK,EAACC,KAAK,SAAS7E,KAAK,aAAa8E,OAAQ,SAAAtB,GAAK,OAAI,kBAACR,EAAUQ,MACzE,kBAAC,IAAD,CAAOoB,OAAK,EAACC,KAAK,kBAAkB7E,KAAK,kBAAkB8E,OAAQ,SAAAtB,GAAK,OAAI,kBAACP,EAAmBO,MAChG,kBAAC,IAAD,CAAOoB,OAAK,EAACC,KAAK,2BAA2B7E,KAAK,mBAAmB8E,OAAQ,SAAAtB,GAAK,OAAI,kBAACN,EAAoBM,MAC3G,kBAAC,IAAD,CAAOoB,OAAK,EAACC,KAAK,YAAY7E,KAAK,gBAAgB8E,OAAQ,SAAAtB,GAAK,OAAI,kBAACL,EAAaK,MAClF,kBAAC,IAAD,CAAOoB,OAAK,EAACC,KAAK,OAAO7E,KAAK,WAAW8E,OAAQ,SAAAtB,GAAK,OAAI,kBAACJ,EAAYI,MACvE,kBAAC,IAAD,CAAOoB,OAAK,EAACC,KAAK,OAAO7E,KAAK,WAAW8E,OAAQ,SAAAtB,GAAK,OAAI,kBAACH,EAAYG,MACvE,kBAAC,IAAD,CAAOoB,OAAK,EAACC,KAAK,aAAa7E,KAAK,YAAY8E,OAAQ,SAAAtB,GAAK,OAAI,kBAACT,EAAmBS,MACrF,kBAAC,IAAD,CAAOqB,KAAK,IAAI7E,KAAK,OAAO8E,OAAQ,SAAAtB,GAAK,OAAIrD,IAAKxH,SAAW6H,EAAkB,kBAAC,IAAD,CAAUuE,GAAG,sBAAyB,kBAAClC,EAAkBW,GAAY,kBAAC,IAAD,CAAUuB,GAAG,uB,GAxO3KC,aAmPHC,cAAS,SAATA,CAAmB1B,GCrQd2B,QACW,cAA7B9J,OAAOe,SAASgJ,UAEe,UAA7B/J,OAAOe,SAASgJ,UAEhB/J,OAAOe,SAASgJ,SAASC,MACvB,2D,iDCENC,IAAkBC,OAAO7I,KACzB4I,IAAkBC,OAAO5H,KAEzB6H,IAAST,OAAO,kBAAC,IAAD,CAAiBnH,KAAMA,KAAM,kBAAC,EAAD,OAA2BnC,SAASgK,eAAe,SDoG1F,kBAAmBC,WACrBA,UAAUC,cAAcC,MAAMrc,MAAK,SAAAsc,GACjCA,EAAaC,iB,8GE1HJC,I,2EAAf,8BAAA/c,EAAA,6DACM+W,EAAOK,IAAKb,iBACZyB,EAAQjB,EAAKe,aAFnB,SAIWc,MAAM,oBACL,CACI5I,OAAQ,OACRiC,QAAS,CACP,eAAgB,mBACd,cAAgB,UAAhB,OAA2B+F,MAGtCzX,MAAK,SAAAyc,GAAa,OAAIA,EAAcpc,UACnCL,MAAK,SAAAyc,GACmB,MAAjBA,GAAuD,MAA9BA,EAAclF,cACzCV,IAAKW,kBAAkBiF,EAAclF,aAAckF,EAAcvE,yBAfhF,4C,sBAmBO,SAAenY,EAAtB,oC,4CAAO,WAAqB2c,EAAUlI,GAA/B,mCAAA/U,EAAA,yDAAqCkd,IAArC,iCAA2DC,EAA3D,iCACCD,EADD,sBAEOlF,EAAQZ,IAAKS,oBACNsF,EAHd,iBAIiB,MAARpI,IACAA,EAAO,IAES,MAAhBA,EAAK9C,UACL8C,EAAK9C,QAAU,IAGf+F,IACAjD,EAAK9C,QAAL,+BAA0C+F,IAZnD,+BAeK3F,OAAOe,SAAST,KAAO,WAf5B,kBAgBY,MAhBZ,yBAoBaiG,MAAMqE,EAAUlI,GApB7B,WAoBCiE,EApBD,OAqBCjC,EAAOK,IAAKb,kBAER,EAES,MAAfyC,EAAI9F,SAAkB6D,EAzBrB,sBA0BKtK,KAAKvN,MAAM6X,EAAK0B,uBAA0BhM,KAAK2Q,MAAS,QA1B7D,wBA2BK/K,OAAOe,SAAST,KAAO,WA3B5B,kBA4BY,MA5BZ,eA8BKzR,QAAQC,IAAI,wBAA0B6X,EAAI9F,QA9B/C,UAgCW6J,IAhCX,yBAkCkBzc,EAAM2c,EAAUlI,EAAMmI,EAAeC,GAlCvD,4EAoCuB,MAAfnE,EAAI9F,OApCZ,uBAqCK,IAAIxS,MAAM,gBArCf,eAuCK,EAvCL,kBAwCIsY,GAxCJ,6C","file":"static/js/main.cbfd468d.chunk.js","sourcesContent":["//import config from 'config';\nimport { authHeader, Fetch } from './../_helpers';\nimport { BehaviorSubject } from 'rxjs';\nimport { get, post } from \"../_methods/download\";\nimport * as _ from \"lodash\";\n\nvar unit = null;\nconst currentUnitSubject = new BehaviorSubject(JSON.parse(unit));\nconst unitsData = [\n {\n \"id\": 1,\n \"name\": \"Катер Шустрый\",\n }, {\n \"id\": 2,\n \"name\": \"Катер Толстый\",\n }, {\n \"id\": 3,\n \"name\": \"Катер Стремительный\",\n }\n];\n\nconst schedules = [{ \"excludedPeriods\": [{ \"time\": \"00:00\", \"nextDay\": false }, { \"time\": \"00:00\", \"nextDay\": true }], \"startDate\": \"2020-04-15T14:15:54.288Z\", \"endDate\": \"2020-04-15T14:15:54.291Z\", \"startTime\": \"00:00\", \"endTime\": \"21:00\", \"nextDay\": true, \"period\": 15, \"cost\": 4900 },\n { \"excludedPeriods\": [{ \"time\": \"01:30\", \"nextDay\": false }, { \"time\": \"01:45\", \"nextDay\": false }], \"startDate\": \"2020-04-14T14:15:54.288Z\", \"endDate\": \"2020-04-14T14:15:54.291Z\", \"startTime\": \"00:00\", \"endTime\": \"21:00\", \"nextDay\": true, \"period\": 15, \"cost\": 4900 }];\n\nexport const unitsService = {\n getUnits\n //, refreshUnits\n , getCurrentOrgUnit\n , selectOrgUnit\n , getAvailableOptions\n , getFiltersOptions\n , createUnit\n , updateUnit\n , getFilteredUnits\n , getOrgUnit\n , currentUnit: currentUnitSubject.asObservable(),\n get currentUnitValue() { return currentUnitSubject.value }\n};\n\nasync function getCurrentOrgUnit() {\n if (unitsService.currentUnitValue != null) {\n return unitsService.currentUnitValue;\n }\n var currentUnit = localStorage.getItem(\"currentOrgUnitData\");\n if (!_.isNil(currentUnit)) {\n return JSON.parse(currentUnit);\n }\n\n var unitFromApi = null;\n\n await Fetch(`/api/orgunit/1`, null, true, true)\n .then(response => {\n if (response) return response;\n else {\n let error = new Error(response.statusText);\n error.response = response;\n throw error;\n }\n })\n .then(response => response.json())\n .then(\n async response => {\n currentUnitSubject.next(unitFromApi = response.data);\n localStorage.setItem('currentOrgUnitData', JSON.stringify(response.data));\n })\n .catch(error => {\n console.log(error);\n });\n\n return unitFromApi;\n}\n\nasync function selectOrgUnit(orgUnitId) {\n var orgUnit = await get(`/api/orgunit/${orgUnitId}`, true);\n currentUnitSubject.next(orgUnit.data);\n localStorage.setItem('currentOrgUnitData', JSON.stringify(orgUnit.data));\n}\n\nasync function getOrgUnit(orgUnitId) {\n var orgUnit = await get(`/api/orgunit/${orgUnitId}`, true);\n return orgUnit;\n}\n\nasync function getAvailableOptions() {\n return await get(`api/units/getAvailableOptions/`, true);\n}\n\nasync function getFiltersOptions() {\n return await get(`api/units/getFiltersOptions/`, true);\n}\n\nasync function createUnit(model) {\n await post(`api/units/addOrUpdate/`, true, model);\n}\n\nasync function updateUnit(model) {\n await post(`api/units/addOrUpdate/`, true, model);\n}\n\nasync function getFilteredUnits(model) {\n return await get(`api/units/list/`, true, model);\n}\n\nasync function getUnits() {\n return await post(`/api/orgunit/list`, true);\n}\n\n\nexport default unitsService;\n","import React from 'react'\n\nexport const ModalContext = React.createContext(\n {\n paymentsModal:\n {\n isOpen: false,\n returnUrl: 'dashboard'\n },\n\n paymentsModalType: {\n purpose: 0\n },\n\n phoneModal: { isOpen: false, returnUrl: 'dashboard' },\n shareLinkModal: { isOpen: false, link: null, currentLocation: null, prevLocation: null },\n loader: { isOpen: false },\n eventModal: { isOpen: false, returnUrl: 'dashboard', event: null },\n filtersModal: { isOpen: false, returnUrl: 'dashboard', filters: [], filtered: false, filteredData: [], filterFields:[] },\n orderModal: { isOpen: false, order: null },\n\n createGroupModal: { isOpen: false , returnUrl: 'dashboard'},\n createTypeModal: { isOpen: false , returnUrl: 'dashboard'},\n createOrgUnitModal: { isOpen: false , returnUrl: 'dashboard'},\n createCompany: { isOpen: false , returnUrl: 'dashboard'},\n createStaffModal: { isOpen: false , returnUrl: 'dashboard'},\n createPriceSettingsModal: { isOpen: false , returnUrl: 'dashboard'},\n createReportModal: { isOpen: false, returnUrl: 'settings/reports' },\n createOrderModal: { isOpen: false, model: null, returnUrl: 'dashboard' },\n\n showEventModal: () => {},\n hideEventModal: () => {},\n showModalCreateGroup: () => {},\n hideModalCreateGroup: () => { },\n showModalCreateType: () => { },\n hideModalCreateType: () => { },\n showModalCreateOrgUnit: () => { },\n hideModalCreateOrgUnit: () => { },\n showModalCreateCompany: () => { },\n hideModalCreateCompany: () => { },\n showModalCreateStaff: () => { },\n hideModalCreateStaff: () => { },\n showModalCreateService: () => { },\n hideModalCreateService: () => { },\n showModalCreatePriceSettings: () => { },\n hideModalCreatePriceSettings: () => { },\n showOrderModal: async () => await {},\n hideOrderModal: () => {},\n showModalCreateReport: () => { },\n hideModalCreateReport: () => { },\n\n showCreateOrderDialog: () => { },\n hideCreateOrderDialog: () => { },\n\n showPaymentModal: () => {},\n hidePaymentModal: () => {},\n showPhoneModal: () => {},\n hidePhoneModal: () => {},\n showSteamModal: () => {},\n hideSteamModal: () => {},\n showFiltersModal: () => {},\n hideFiltersModal: () => {},\n showShareLinkModal: () => {},\n hideShareLinkModal: () => {},\n setShareLinkModalLink: () => {},\n showLoader: () => {},\n hideLoader: () => {}\n }\n);\n","//import auth from './../_services/authentication.service';\nimport userService from \"./../_services/user.service\";\nimport moment from 'moment';\nimport 'moment-timezone';\nimport 'moment/locale/ru';\n\nexport function GetTimeByTimeZone(utcTime) {\n moment().lang(\"ru\");\n let result = null;\n \n const localTimeZoneIdIana = userService.currentUser.source._value != null ? userService.currentUser.source._value.localTimeZoneIdIana : null;\n\n if (utcTime != null && localTimeZoneIdIana != null)\n {\n result = moment.utc(utcTime).tz(localTimeZoneIdIana);\n }\n\n return result;\n}\n\nexport function GetTimeByTimeZoneOrDefault(utcTime) {\n moment().lang(\"ru\");\n let result = null;\n\n const localTimeZoneIdIana = userService.currentUser.source._value != null ? userService.currentUser.source._value.localTimeZoneIdIana : null;\n\n let mUtc = moment.utc(utcTime);\n\n if (utcTime != null && localTimeZoneIdIana != null) {\n result = mUtc.tz(localTimeZoneIdIana);\n } else {\n result = mUtc.local();\n }\n\n return result;\n}\n\nexport function GetCurrentTimeByTimeZone() {\n return GetTimeByTimeZone(Date.now());\n}\n","//import config from 'config';\nimport { authHeader, Fetch } from './../_helpers';\nimport { BehaviorSubject } from 'rxjs';\nimport {get, post} from \"../_methods/download\"\n\nvar clients = null;\nconst currentClientsSubject = new BehaviorSubject(JSON.parse(clients));\nconst clientsData = [\n {\n \"id\": 1,\n \"fio\": \"Вася Пупкин\", //enum\n \"phone\": \"+7(923) 999-99-99\",\n \"statusClient\": 1, //enum\n \"countOrders\": 1,\n \"lastOrderDate\": \"2020-03-31 13:05:21\"\n }, {\n \"id\": 2,\n \"fio\": \"Вася Пупкин\", //enum\n \"phone\": \"+7(985) 999-99-99\",\n \"statusClient\": 2, //enum\n \"countOrders\": 1,\n \"lastOrderDate\": \"2020-03-31 13:05:21\"\n }, {\n \"id\": 3,\n \"fio\": \"Вася Пупкин\", //enum\n \"phone\": \"+7(974) 999-99-99\",\n \"statusClient\": 3, //enum\n \"countOrders\": 1,\n \"lastOrderDate\": \"2020-03-31 13:05:21\"\n }, {\n \"id\": 4,\n \"fio\": \"Вася Пупкин\", //enum\n \"phone\": \"+7(992) 999-99-99\",\n \"statusClient\": 4, //enum\n \"countOrders\": 1,\n \"lastOrderDate\": \"2020-03-31 13:05:21\"\n }, {\n \"id\": 5,\n \"fio\": \"Вася Пупкин\", //enum\n \"phone\": \"+7(910) 999-99-99\",\n \"statusClient\": 5, //enum\n \"countOrders\": 1,\n \"lastOrderDate\": \"2020-03-31 13:05:21\"\n }\n];\n\nvar filteredData = [\n {\n \"id\": 2,\n \"fio\": \"Вася Пупкин\", //enum\n \"phone\": \"+7(999) 999-99-99\",\n \"statusClient\": 2, //enum\n \"countOrders\": 1,\n \"lastOrderDate\": \"2020-03-31 13:05:21\"\n }, {\n \"id\": 3,\n \"fio\": \"Вася Пупкин\", //enum\n \"phone\": \"+7(999) 999-99-99\",\n \"statusClient\": 3, //enum\n \"countOrders\": 1,\n \"lastOrderDate\": \"2020-03-31 13:05:21\"\n }\n];\n\nconst filtersOptions = {\n \"statusClientsData\": [\n {\n \"value\": 1,\n \"label\": \"Новый\"\n }, {\n \"value\": 2,\n \"label\": \"VIP\"\n }, {\n \"value\": 3,\n \"label\": \"Бывалый\"\n }, {\n \"value\": 4,\n \"label\": \"Бедовый\"\n }\n ]\n}\n\nexport const clientsService = {\n getClients\n //, refreshClients\n , getAvailableOptions\n , getFiltersOptions\n , createClient\n , updateClient\n , getFilteredClients\n , currentClients: currentClientsSubject.asObservable()\n , sendSmsCard\n , getClient,\n get currentClientsValue() { return currentClientsSubject.value }\n};\n\nasync function getAvailableOptions() {\n return await get(`api/clients/getAvailableOptions/`, true);\n}\n\nasync function getFiltersOptions() {\n return filtersOptions;\n return await get(`api/clients/getFiltersOptions/`, true);\n}\n\nasync function createClient(model) {\n return await post(`/api/client/add`, true, model);\n}\n\nasync function updateClient(id, model) {\n return await post(`api/client/edit/${id}`, true, model);\n}\n\nasync function getFilteredClients(model) {\n //return filteredData;\n return await post(`api/client/list`, true, model);\n}\n\n//async function refreshClients(tournamentId) {\n// currentClientsSubject.next(null);\n//\n// return await getClients(tournamentId);\n//}\n\nasync function getClients(model) {\n //return clientsData;\n return await post(`api/client/list`, true, JSON.stringify(model));\n}\nasync function getClient(id) {\n return await get(`api/client/${id}`, true);\n}\n\nasync function sendSmsCard(clientId, orgUnitId) {\n return await post(`/api/client/sendSmsCard/${clientId}/${orgUnitId}`, true);\n}\n\nexport default clientsService;\n","//import config from 'config';\nimport { authHeader, Fetch } from './../_helpers';\nimport { BehaviorSubject } from 'rxjs';\nimport { get, post, remove } from \"../_methods/download\";\nimport {\n certificatesService,\n unitsService,\n rentalGroupsService,\n rentalPointsService,\n rentalTypesService,\n servicesService\n} from \"./index\";\n\nvar orders = null;\nconst currentOrdersSubject = new BehaviorSubject(JSON.parse(orders));\nconst ordersData = [\n {\n \"id\": 1,\n \"status\": 2, //enum\n \"client\": \"Коля Пупкин\",\n \"phone\": \"+7(912) 999-99-99\",\n \"statusClient\": 1, //enum\n \"services\": 1,\n \"rentalTime\": 4,\n \"rentalFee\": 3000,\n \"paymentMethod\": 1, //enum\n \"date\": \"2020-03-31 13:05:21\"\n }, {\n \"id\": 2,\n \"status\": 3, //enum\n \"client\": \"Вася Пупкин\",\n \"phone\": \"+7(921) 999-99-99\",\n \"statusClient\": 1, // enum\n \"services\": 2,\n \"rentalTime\": 5,\n \"rentalFee\": 3500,\n \"paymentMethod\": 1, //enum\n \"date\": \"2020-03-31 13:05:21\"\n }, {\n \"id\": 3,\n \"status\": 4,\n \"client\": \"Саша Пупкин\",\n \"phone\": \"+7(939) 999-99-99\",\n \"statusClient\": 3,\n \"services\": 3,\n \"rentalTime\": 4,\n \"rentalFee\": 3000,\n \"paymentMethod\": 1, //enum\n \"date\": \"2020-03-31 13:05:21\"\n }, {\n \"id\": 4,\n \"status\": 8,\n \"client\": \"Вася Пупкин\",\n \"phone\": \"+7(999) 999-99-99\",\n \"statusClient\": 1,\n \"services\": 8,\n \"rentalTime\": 4,\n \"rentalFee\": 3000,\n \"paymentMethod\": 1, //enum\n \"date\": \"2020-03-31 13:05:21\"\n }\n];\n\nvar filteredData = [\n {\n \"id\": 1,\n \"status\": 4,\n \"client\": \"Вася Пупкин\",\n \"phone\": \"+7(900) 999-99-99\",\n \"statusClient\": 3,\n \"services\": 3,\n \"rentalTime\": 4,\n \"rentalFee\": 3000,\n \"paymentMethod\": 1, //enum\n \"date\": \"2020-03-31 13:05:21\"\n }, {\n \"id\": 1,\n \"status\": 8,\n \"client\": \"Вася Пупкин\",\n \"phone\": \"+7(999) 999-99-99\",\n \"statusClient\": 1,\n \"services\": 8,\n \"rentalTime\": 4,\n \"rentalFee\": 3000,\n \"paymentMethod\": 1, //enum\n \"date\": \"2020-03-31 13:05:21\"\n }\n];\n\nconst filtersOptions = {\n \"statusData\": [\n {\n \"value\": 1,\n \"label\": \"Новый\"\n }, {\n \"value\": 2,\n \"label\": \"Не оплачен\"\n }, {\n \"value\": 3,\n \"label\": \"Оплачен\"\n }, {\n \"value\": 4,\n \"label\": \"Отменен\"\n }\n ],\n \"statusClientsData\": [\n {\n \"value\": 1,\n \"label\": \"Новый\"\n }, {\n \"value\": 2,\n \"label\": \"VIP\"\n }, {\n \"value\": 3,\n \"label\": \"Бывалый\"\n }, {\n \"value\": 4,\n \"label\": \"Бедовый\"\n }\n ],\n \"servicesData\": [\n {\n \"value\": 1,\n \"label\": \"Прокат трехколесного велосипеда\"\n }, {\n \"value\": 2,\n \"label\": \"Прокат самолета\"\n }, {\n \"value\": 3,\n \"label\": \"Аренда магазина\"\n }, {\n \"value\": 4,\n \"label\": \"Услуги грузчиков\"\n }\n ],\n\n \"paymentsData\": [\n {\n \"value\": 2,\n \"label\": \"Оплата наличными\"\n }, {\n \"value\": 1,\n \"label\": \"Оплата картой\"\n }\n ]\n}\n\nlet units = [\n {\n \"id\": 1,\n \"group\": \"Группа1\",\n \"type\": \"Аренда\", \n \"unit\": \"unit1\",\n \"sum\": 20,\n \"discount\": 2,\n \"paymentMethod\": 1,\n \"paymentStatus\": 2,\n \"hasCertificate\": true,\n \"certificateCode\": \"1252\",\n \"certificateId\": 1\n }, {\n \"id\": 2,\n \"group\": \"Группа2\",\n \"type\": \"Аренда\",\n \"unit\": \"unit2\",\n \"sum\": 25,\n \"discount\": 3,\n \"paymentMethod\": 1,\n \"paymentStatus\": 2,\n \"hasCertificate\": false,\n \"certificateCode\": \"\",\n \"certificateId\": -1\n }, {\n \"id\": 3,\n \"group\": \"Группа3\",\n \"type\": \"Аренда\",\n \"unit\": \"unit3\",\n \"sum\": 20,\n \"discount\": 2,\n \"paymentMethod\": 1,\n \"paymentStatus\": 2,\n \"hasCertificate\": false,\n \"certificateCode\": \"\",\n \"certificateId\": -1\n }, {\n \"id\": 4,\n \"group\": \"Группа4\",\n \"type\": \"Аренда\",\n \"unit\": \"unit4\",\n \"sum\": 20,\n \"discount\": 2,\n \"paymentMethod\": 1,\n \"paymentStatus\": 2,\n \"hasCertificate\": false,\n \"certificateCode\": \"\",\n \"certificateId\": -1\n }\n];\n\nlet paymentMethods = [\n {\n \"id\": 2,\n \"name\": \"Наличные\"\n },\n {\n \"id\": 1,\n \"name\": \"Карта онлайн\"\n },\n {\n \"id\": 3,\n \"name\": \"Сертификат\"\n },\n];\n\nlet statuses = [\n {\n \"id\": 0,\n \"name\": \"Новый\"\n },\n {\n \"id\": 1,\n \"name\": \"В работе\"\n },\n {\n \"id\": 2,\n \"name\": \"Исполнен\"\n },\n {\n \"id\": 3,\n \"name\": \"Отменен\"\n }\n];\n\nlet order = {\n date: \"12.05.2020\",\n client: \"Вася Пупкин / 8-800-800-8000 / Заблокирован\",\n status: {id: 1, name: \"Не оплачен\" },\n timeFrom: \"15:00\",\n timeTo: \"16:00\",\n point: \"ул. Ленина, 100\",\n complex: false,\n time: \"60 минут\",\n cost: 5000,\n discount: 100,\n paymentMethod: 1,\n hasCertificate: true,\n certificateCode: \"9521\",\n certificateId: 1\n};\n\nexport const ordersService = {\n getOrders\n , getPartnerOrders\n , acceptPartnerOrder\n , declinePartnerOrder\n , getOrder\n //, refreshOrders\n , getAvailableOptions\n , getFiltersOptions\n , getEvents\n , emailTicket\n , smsConfirmUrl\n , smsConfirmPrepaymentUrl\n , createOrder\n , getSchedule\n , generateOrderContacts\n , createOrderDetails\n , updateOrderDetails\n , removeOrderDetails\n , createUnit\n , updateOrder\n , updateUnit\n , getFilteredOrders\n , getFilteredPartnerOrders\n , getOrderUnits\n , removeOrderUnit\n , copyOrderUnit\n , changeStatus\n , saveContract\n , clearCertificate\n , addComment\n , getHistory\n , createBreak\n , currentOrders: currentOrdersSubject.asObservable()\n , sendSmsCard,\n get currentOrdersValue() { return currentOrdersSubject.value }\n};\n\nasync function getAvailableOptions(companyId, orgUnitId) {\n var groups = await rentalGroupsService.getRentalGroups(companyId, orgUnitId);\n var resourceKinds = await rentalTypesService.getRentalTypes(companyId, orgUnitId);\n var orgUnits = await rentalPointsService.getRentalPoints(companyId);\n var data = {\n paymentMethods: paymentMethods,\n statuses: statuses,\n resourceGroups: groups.data,\n resourceKinds: resourceKinds.data,\n services: services ? services.data : services,\n orgUnits: orgUnits.data\n };\n\n if (companyId) {\n var services = await servicesService.getServices(companyId, orgUnitId);\n data.services = services;\n }\n return data;\n return await get(`api/orders/getAvailableOptions/`, true);\n}\n\nasync function getFiltersOptions() {\n return filtersOptions;\n return await get(`api/orders/getFiltersOptions/`, true);\n}\n\nasync function createOrder(model) {\n return await post(`/api/order/add`, true, model);\n}\n\nasync function createBreak(model) {\n return await post(`/api/order/createBreak`, true, model);\n}\n\nasync function getEvents(model) {\n return await post(`/api/order/events`, true, JSON.stringify(model));\n}\n\nasync function createOrderDetails(model) {\n return await post(`/api/orderdetail/add`, true, model);\n}\n\nasync function updateOrderDetails(id, model) {\n return await post(`/api/orderdetail/edit/${id}`, true, model);\n}\n\nasync function getSchedule(date, orgUnitId) {\n return await post(`/api/order/getSchedule`, true, JSON.stringify({ orderDate: date, orgUnitId }));\n}\n\nasync function updateOrder(id, model) {\n return await post(`/api/order/edit/${id}`, true, model);\n}\n\nasync function createUnit(model) {\n await post(`api/orders/createUnit/`, true, model);\n}\n\nasync function updateUnit(model) {\n await post(`api/orders/updateUnit/${model.id}`, true, model);\n}\n\nasync function getFilteredOrders(model) {\n //return filteredData;\n return await post(`/api/order/list`, true, model);\n}\n\nasync function getFilteredPartnerOrders(model) {\n //return filteredData;\n return await post(`/api/orderdetail/listPartnerOrders`, true, model);\n}\n\nasync function getOrders(model) {\n return await post(`api/order/list`, true, JSON.stringify(model));\n}\n\nasync function acceptPartnerOrder(id) {\n return await get(`api/orderdetail/acceptPartnerOrder/${id}`, true);\n}\n\nasync function declinePartnerOrder(id) {\n return await get(`api/orderdetail/declinePartnerOrder/${id}`, true);\n}\n\nasync function getPartnerOrders(model) {\n return await post(`api/orderdetail/listPartnerOrders`, true, JSON.stringify(model));\n}\n\nasync function getOrder(id) {\n //return order;\n return await get(`/api/order/${id}`, true);\n}\n\nasync function getHistory(id) {\n return await get(`/api/order/history/${id}`, true);\n}\n\nasync function getOrderUnits() {\n return units;\n}\n\nasync function changeStatus(id, model) {\n return await post(`/api/order/edit/${id}`, true, JSON.stringify(model));\n //return await post(`api/orders/changeStatus/${id}`, true, model);\n}\n\nasync function generateOrderContacts(order) {\n order.orderDetails.forEach(async (x) => {\n await get(`/api/contract/generate/${x.id}`, true);\n });\n}\n\nasync function smsConfirmUrl(order) {\n return await get(`/api/payment/smsConfirmUrl/${order.id}`, true);\n}\n\nasync function smsConfirmPrepaymentUrl(orderId, amount, surcharge) {\n return await get(`/api/payment/smsConfirmUrl/${orderId}?prepayment=${surcharge ? \"\" : amount}&surcharge=${surcharge ? amount : \"\"}`, true);\n}\n\nasync function downloadPdf(order) {\n return await get(`/api/ticket/generateUrl/${order.id}`, true);\n}\nasync function emailTicket(order) {\n return await post(`/api/ticket/emailSend/${order.id}`, true);\n}\n\nasync function removeOrderDetails(id) {\n await remove(`/api/orderdetail/delete/${id}`, true);\n}\n\nasync function removeOrderUnit(id) {\n var newUnits = units.filter(x => x.id !== id);\n return newUnits;\n}\n\nasync function clearCertificate(orderId) {\n //await post(`api/orders/clearCertificate/${orderId}`, true);\n}\n\nasync function copyOrderUnit(id) {\n var maxUnitId = Math.max.apply(Math, units.map(x => { return x.id }));\n var newUnit = units.find(x => x.id == id);\n var copy = Object.assign({}, newUnit); \n maxUnitId = ++maxUnitId;\n copy.id = maxUnitId;\n units.push(copy);\n return units;\n}\n\nasync function saveContract(id, model) {\n return await post(`api/client/updateContractData/${id}`, true, JSON.stringify(model));\n}\n\nasync function addComment(id, model) {\n return await post(`/api/order/addComment/${id}`, true, JSON.stringify(model));\n}\nasync function sendSmsCard(id) {\n return await post(`/api/order/sendSmsCard/${id}`, true);\n}\nexport default ordersService;\n","//import config from 'config';\nimport { authHeader, Fetch } from './../_helpers';\nimport { BehaviorSubject } from 'rxjs';\nimport {get, post, remove} from \"../_methods/download\"\n\nvar priceSettings = null;\nconst currentPriceSettingsSubject = new BehaviorSubject(JSON.parse(priceSettings));\nconst priceSettingsData = [\n {\n \"id\": 1,\n \"name\": \"Вариант 1\",\n \"activeFromUTC\": \"2020-04-13 12:03:45\",\n \"activeTillUTC\": \"2020-04-14 12:03:45\",\n \"enabledForDays\": \"1,4,7\",//string(через запятую номера дней недели, когда применяется схема)\n \"applyingFromTime\": \"09:00\",//int(когда начинает действовать в течение дня с 9 утра, с 11 утра и т.д.)\n \"applyingTillTime\": \"21:00\",//int(когда заканчивает действовать в течение дня с 9 утра, с 11 утра и т.д.)\n \"priority\": 2,\n \"price\": 4500,\n \"overrideMinBookTime\": false,\n \"minBookTime\": 2,\n \"isPromo\": false\n }, {\n \"id\": 2,\n \"name\": \"Вариант 2\",\n \"activeFromUTC\": \"2020-04-14 12:03:45\",\n \"activeTillUTC\": \"2020-04-15 12:03:45\",\n \"enabledForDays\": \"1,4,7\",\n \"applyingFromTime\": \"09:00\",\n \"applyingTillTime\": \"21:00\",\n \"priority\": 2,\n \"price\": 4500,\n \"overrideMinBookTime\": false,\n \"minBookTime\": 2,\n \"isPromo\": false\n }, {\n \"id\": 3,\n \"name\": \"Вариант 3\",\n \"activeFromUTC\": \"2020-04-13 12:03:45\",\n \"activeTillUTC\": \"2020-04-16 12:03:45\",\n \"enabledForDays\": \"1,4,7\",\n \"applyingFromTime\": \"09:00\",\n \"applyingTillTime\": \"21:00\",\n \"priority\": 2,\n \"price\": 4500,\n \"overrideMinBookTime\": false,\n \"minBookTime\": 2,\n \"isPromo\": false\n }, {\n \"id\": 4,\n \"name\": \"Вариант 4\",\n \"activeFromUTC\": \"2020-04-13 12:03:45\",\n \"activeTillUTC\": \"2020-04-14 12:03:45\",\n \"enabledForDays\": \"1,4,7\",\n \"applyingFromTime\": \"09:00\",\n \"applyingTillTime\": \"21:00\",\n \"priority\": 2,\n \"price\": 4500,\n \"overrideMinBookTime\": false,\n \"minBookTime\": 2,\n \"isPromo\": false\n }, {\n \"id\": 5,\n \"name\": \"Вариант 5\",\n \"activeFromUTC\": \"2020-04-13 12:03:45\",\n \"activeTillUTC\": \"2020-04-14 12:03:45\",\n \"enabledForDays\": \"1,4,7\",\n \"applyingFromTime\": \"09:00\",\n \"applyingTillTime\": \"21:00\",\n \"priority\": 2,\n \"price\": 4500,\n \"overrideMinBookTime\": false,\n \"minBookTime\": 2,\n \"isPromo\": false\n }\n];\n\n\n\nvar filteredData = [\n {\n \"id\": 4,\n \"name\": \"Вариант 4\",\n \"activeFromUTC\": \"2020-04-13 12:03:45\",\n \"activeTillUTC\": \"2020-04-14 12:03:45\",\n \"enabledForDays\": \"1,4,7\",\n \"applyingFromTime\": \"09:00\",\n \"applyingTillTime\": \"21:00\",\n \"priority\": 2,\n \"price\": 4500,\n \"overrideMinBookTime\": false,\n \"minBookTime\": 2,\n \"isPromo\": false\n }, {\n \"id\": 1,\n \"name\": \"Вариант 5\",\n \"activeFromUTC\": \"2020-04-13 12:03:45\",\n \"activeTillUTC\": \"2020-04-14 12:03:45\",\n \"enabledForDays\": \"1,4,7\",\n \"applyingFromTime\": \"09:00\",\n \"applyingTillTime\": \"21:00\",\n \"priority\": 2,\n \"price\": 4500,\n \"overrideMinBookTime\": false,\n \"minBookTime\": 2,\n \"isPromo\": false\n }\n];\n\nconst filtersOptions = {\n \"statusPriceSettingsData\": [\n {\n \"value\": 1,\n \"label\": \"Новый\"\n }, {\n \"value\": 2,\n \"label\": \"VIP\"\n }, {\n \"value\": 3,\n \"label\": \"Бывалый\"\n }, {\n \"value\": 4,\n \"label\": \"Бедовый\"\n }\n ]\n}\n\nexport const priceSettingsService = {\n getPriceSettings\n , getSettings\n //, getAvailableOptions\n , getFiltersOptions\n , create\n , update\n , removePriceSettings\n , getFilteredPriceSettings\n , currentPriceSettings: currentPriceSettingsSubject.asObservable(),\n get currentPriceSettingsValue() { return currentPriceSettingsSubject.value }\n};\n\n//async function getAvailableOptions() {\n// return await get(`api/priceSettings/getAvailableOptions/`, true);\n//}\nasync function getSettings(id) {\n return await get(`/api/pricesettings/${id}`, true);\n}\n\nasync function getFiltersOptions() {\n return filtersOptions;\n return await get(`api/priceSettings/getFiltersOptions/`, true);\n}\n\nasync function createOrder(model) {\n await post(`api/priceSettings/addOrUpdate/`, true, model);\n}\n\nasync function updateOrder(model) {\n await post(`api/priceSettings/addOrUpdate/`, true, model);\n}\n\nasync function getFilteredPriceSettings(model) {\n return filteredData;\n return await get(`api/priceSettings/list/`, true, model);\n}\n\n//async function refreshPriceSettings(tournamentId) {\n// currentPriceSettingsSubject.next(null);\n//\n// return await getPriceSettings(tournamentId);\n//}\n\nasync function getPriceSettings(type, companyId, orgUnitId) {\n companyId = companyId == undefined ? '' : companyId;\n orgUnitId = orgUnitId == undefined ? '' : orgUnitId;\n var allPriceSettingsData = companyId != '' && orgUnitId != '' ? await post(`/api/pricesettings/list?companyId=${companyId}&orgUnitId=${orgUnitId}`, true, {}) : await post(`/api/pricesettings/list`, true, {});\n var today = new Date();\n var activePriceSettingsData = allPriceSettingsData.data.filter(x => new Date(x.activeFromUTC) < today && today < new Date(x.activeTillUTC));\n switch (type) {\n case 0: return allPriceSettingsData.data;\n case 1: return activePriceSettingsData;\n default: return priceSettingsData;\n }\n}\n\nasync function create(model) {\n return await post(`/api/pricesettings/add`, true, model);\n}\n\nasync function update(id, model) {\n return await post(`/api/pricesettings/edit/${id}`, true, model);\n}\n\nasync function removePriceSettings(id) {\n return await remove(`/api/pricesettings/delete/${id}`, true);\n}\n\nexport default priceSettingsService;\n","//import config from 'config';\nimport { authHeader, Fetch } from './../_helpers';\nimport { BehaviorSubject } from 'rxjs';\nimport {get, post} from \"../_methods/download\"\nimport {\n unitsService,\n rentalGroupsService,\n rentalPointsService,\n rentalTypesService,\n servicesService\n} from \"./index\";\n\nexport const certificatesService = {\n getCertificates\n , getCertificateByCode\n , getCertificate\n , changeStatus\n , createCertificate\n , updateCertificate\n , getAvailableOptions\n , sendToEmail\n , sendToSms\n , printCertificate\n};\n\nlet paymentMethods = [\n {\n \"id\": 2,\n \"name\": \"Наличные\"\n },\n {\n \"id\": 1,\n \"name\": \"Карта онлайн\"\n }\n];\n\nlet statuses = [\n {\n \"id\": 0,\n \"name\": \"Новый\"\n },\n {\n \"id\": 1,\n \"name\": \"Оплачен\"\n },\n {\n \"id\": 2,\n \"name\": \"Использован\"\n },\n {\n \"id\": 3,\n \"name\": \"Отменен\"\n }\n];\n\nasync function getAvailableOptions(companyId, orgUnitId) {\n var groups = await rentalGroupsService.getRentalGroups(companyId, orgUnitId);\n var resourceKinds = await rentalTypesService.getRentalTypes(companyId, orgUnitId);\n //var services = await servicesService.getServices(companyId, orgUnitId);\n var orgUnits = await rentalPointsService.getRentalPoints(companyId);\n var data = {\n paymentMethods: paymentMethods,\n statuses: statuses,\n resourceGroups: groups.data,\n resourceKinds: resourceKinds.data,\n //services: services.data,\n orgUnits: orgUnits.data\n };\n return data;\n}\n\nasync function getCertificateByCode(number) {\n return await get(`/api/giftcertificate/search/${number}`, true);\n}\n\nasync function getCertificates(model) {\n return await post(`api/giftcertificate/list`, true, JSON.stringify(model));\n}\n\nasync function createCertificate(model) {\n return await post(`api/giftcertificate/add`, true, model);\n}\n\nasync function updateCertificate(id, model) {\n return await post(`/api/giftcertificate/edit/${id}`, true, model);\n}\n\n\nasync function getCertificate(id) {\n //return order;\n return await get(`/api/giftcertificate/${id}`, true);\n}\n\nasync function changeStatus(id, model) {\n return await post(`/api/giftcertificate/edit/${id}`, true, JSON.stringify(model));\n //return await post(`api/orders/changeStatus/${id}`, true, model);\n}\n\nfunction matchCertificateToTerm(code, value) {\n return (\n code.toLowerCase().indexOf(value.toLowerCase()) !== -1\n );\n}\n\nasync function sendToEmail(certificateId, model) {\n return await post(`/api/giftcertificate/sendToEmail/${certificateId}`, true, model);\n}\n\nasync function sendToSms(certificateId, model) {\n return await get(`/api/payment/smsConfirmUrl/certificate/${certificateId}`, true);\n}\n\nasync function printCertificate(certificateId) {\n var response = await post(`/api/giftcertificate/printCertificateLink/${certificateId}`, true, JSON.stringify({ printPdf: true }));\n return response.data.url;\n}\n\nexport default certificatesService;\n","//import config from 'config';\nimport { authHeader, Fetch } from './../_helpers';\nimport { BehaviorSubject } from 'rxjs';\nimport {get, post} from \"../_methods/download\"\n\nvar audit = null;\nconst currentClientsSubject = new BehaviorSubject(JSON.parse(audit));\nconst auditData = [\n {\n \"id\": 1,\n \"data\": \"2020-04-06 21:54:20\", //enum\n \"staff\": \"Вася Пупкин\",\n \"action\": \"Просмотр чего-нибудь\",\n \"object\": \"Заказ №1\"\n }, {\n \"id\": 2,\n \"data\": \"2020-04-06 21:54:20\", //enum\n \"staff\": \"Вася Пупкин\",\n \"action\": \"Просмотр чего-нибудь\",\n \"object\": \"Клиент №1\"\n }, {\n \"id\": 3,\n \"data\": \"2020-04-06 21:54:20\", //enum\n \"staff\": \"Вася Пупкин\",\n \"action\": \"Просмотр чего-нибудь\",\n \"object\": \"Сертификат №1\"\n }, {\n \"id\": 4,\n \"data\": \"2020-04-06 21:54:20\", //enum\n \"staff\": \"Вася Пупкин\",\n \"action\": \"Просмотр чего-нибудь\",\n \"object\": \"Заказ №2\"\n }\n];\n\nvar filteredData = [\n {\n \"id\": 2,\n \"data\": \"2020-04-06 21:54:20\", //enum\n \"staff\": \"Вася Пупкин\",\n \"action\": \"Просмотр чего-нибудь\",\n \"object\": \"Клиент №1\"\n }, {\n \"id\": 3,\n \"data\": \"2020-04-06 21:54:20\", //enum\n \"staff\": \"Вася Пупкин\",\n \"action\": \"Просмотр чего-нибудь\",\n \"object\": \"Сертификат №1\"\n }\n];\n\n\nexport const auditService = {\n getAuditData\n , getFilteredAudits\n , currentClients: currentClientsSubject.asObservable(),\n get currentClientsValue() { return currentClientsSubject.value }\n};\n\nasync function getFilteredAudits(model) {\n return filteredData;\n return await get(`api/audit/list/`, true, model);\n}\n\nasync function getAuditData(model) {\n return auditData;\n return await get(`api/audit/list`, true, model);\n}\n\nexport default auditService;\n","//import config from 'config';\nimport { get, post, remove } from \"../_methods/download\";\nimport { BehaviorSubject } from 'rxjs';\n\nvar groups = null;\nconst currentGroupsSubject = new BehaviorSubject(JSON.parse(groups));\n\nvar filteredData = [\n {\n \"id\": 3,\n \"name\": \"Группа3\", //enum\n \"description\": \"Описание 3\",\n }, {\n \"id\": 4,\n \"name\": \"Группа4\", //enum\n \"description\": \"Описание 4\",\n }\n];\n\n\nexport const rentalGroupsService = {\n getRentalGroups\n , getFilteredRentalGroups\n , createGroup\n , editGroup\n , removeGroup\n , currentGroups: currentGroupsSubject.asObservable(),\n};\n\nasync function getFilteredRentalGroups(model) {\n var x = true;\n var y = x;\n return await post(`/api/resourcegroup/list`, true, model);\n}\n\nasync function getRentalGroups(id) {\n var data = await post(id != undefined ? `/api/resourcegroup/list?orgUnitId=${id}` : `/api/resourcegroup/list`, true);\n return data;\n}\n\nasync function createGroup(model) {\n return await post(\"/api/resourcegroup/add\", true, model);\n}\n\nasync function editGroup(id, model) {\n return await post(`/api/resourcegroup/edit/${id}`, true, model);\n}\n\nasync function removeGroup(id) {\n await remove(`/api/resourcegroup/delete/${id}`, true);\n}\n\nexport default rentalGroupsService;\n","//import config from 'config';\nimport { authHeader, Fetch } from './../_helpers';\nimport { BehaviorSubject } from 'rxjs';\nimport { get, post, remove } from \"../_methods/download\";\nimport * as _ from \"lodash\";\n\nvar company = null;\nconst currentCompanySubject = new BehaviorSubject(JSON.parse(company));\n\nexport const companiesService = {\n getCompanies\n , getCurrentCompany\n , getCompany\n , createCompany\n , editCompany\n , removeCompany\n , selectCompany\n , currentCompany: currentCompanySubject.asObservable()\n , get currentCompanyValue() { return currentCompanySubject.value }\n};\n\nasync function getCompany(id) {\n var currentCompanyId = companiesService.currentCompanyValue != null ? companiesService.currentCompanyValue.id : null;\n var comp = await get(id != undefined ? `/api/company/get/${id}` : `/api/company/get/${currentCompanyId}`, true);\n return comp;\n}\n\nasync function getCurrentCompany() {\n var x = true;\n var y = x;\n if (companiesService.currentCompanyValue != null) {\n return companiesService.currentCompanyValue;\n }\n var currentCompany = localStorage.getItem(\"currentOrgUnitData\");\n if (!_.isNil(currentCompany)) {\n return JSON.parse(currentCompany);\n }\n\n var companyFromApi = null;\n\n await Fetch(`/api/company/1`, null, true, true)\n .then(response => {\n if (response) return response;\n else {\n let error = new Error(response.statusText);\n error.response = response;\n throw error;\n }\n })\n .then(response => response.json())\n .then(\n async response => {\n currentCompanySubject.next(companyFromApi = response.data);\n localStorage.setItem('currentOrgUnitData', JSON.stringify(response.data));\n })\n .catch(error => {\n console.log(error);\n });\n\n return companyFromApi;\n}\n\nasync function refreshCompany() {\n return await getCompany();\n}\n\nasync function selectCompany(companyId, orgUnitId) {\n var orgUnit = await get(`/api/orgunit/${orgUnitId}`, true);\n currentCompanySubject.next(orgUnit);\n localStorage.setItem('currentOrgUnitData', JSON.stringify(orgUnit));\n}\n\nasync function getCompanies() {\n var companies = await get(`/api/company/list`, true);\n return companies;\n}\n\nasync function createCompany(model) {\n return await post(\"/api/company/add\", true, model);\n}\n\nasync function editCompany(id, model) {\n return await post(`/api/company/edit/${id}`, true, model);\n}\n\nasync function removeCompany(id) {\n await remove(`/api/company/delete/${id}`, true);\n}\n\nexport default companiesService;\n","//import config from 'config';\nimport {get, post, remove} from \"../_methods/download\"\n\nconst rentalPointsData = [\n {\n \"id\": 1,\n \"name\": \"Точка1\", //enum\n \"description\": \"Описание 1\",\n }, {\n \"id\": 2,\n \"name\": \"Точка2\", //enum\n \"description\": \"Описание 2\",\n }, {\n \"id\": 3,\n \"name\": \"Точка3\", //enum\n \"description\": \"Описание 3\",\n }, {\n \"id\": 4,\n \"name\": \"Точка4\", //enum\n \"description\": \"Описание 4\",\n }, {\n \"id\": 5,\n \"name\": \"Точка5\", //enum\n \"description\": \"Описание 5\",\n }\n];\n\nvar filteredData = [\n {\n \"id\": 3,\n \"name\": \"Точка3\", //enum\n \"description\": \"Описание 3\",\n }, {\n \"id\": 4,\n \"name\": \"Точка4\", //enum\n \"description\": \"Описание 4\",\n }\n];\n\n\nexport const rentalPointsService = {\n getRentalPoints\n , createOrgUnit\n , editOrgUnit\n , removeOrgUnit\n , getFilteredRentalPoints\n};\n\nasync function getFilteredRentalPoints(model) {\n return await post(`/api/orgunit/list`, true, model);\n}\n\nasync function getRentalPoints(companyId, orgUnitId) {\n companyId = companyId == undefined ? '' : companyId;\n orgUnitId = orgUnitId == undefined ? '' : orgUnitId;\n return await post(`/api/orgunit/list?companyId=${companyId}&orgUnitId=${orgUnitId}`, true);\n}\n\nasync function createOrgUnit(model) {\n return await post(\"/api/orgunit/add\", true, model);\n}\n\nasync function editOrgUnit(id, model) {\n return await post(`/api/orgunit/edit/${id}`, true, model);\n}\n\nasync function removeOrgUnit(id) {\n await remove(`/api/orgunit/delete/${id}`, true);\n}\n\nexport default rentalPointsService;\n","import { createBrowserHistory } from 'history';\n\nexport const history = createBrowserHistory();","export * from './auth-header';\nexport * from './fake-backend';\nexport * from './handle-response';\nexport * from './history';\nexport * from './timeZone';","//import config from 'config';\nimport { authHeader, Fetch } from './../_helpers';\nimport { BehaviorSubject } from 'rxjs';\n\nvar tournament = null;\nconst currentTournamentSubject = new BehaviorSubject(JSON.parse(tournament));\n\nexport const tournamentService = {\n getTournament\n , refreshTournament\n , currentTournament: currentTournamentSubject.asObservable(),\n get currentTournamentValue() { return currentTournamentSubject.value }\n};\n\nasync function refreshTournament(tournamentId) {\n currentTournamentSubject.next(null);\n\n return await getTournament(tournamentId);\n}\n\nasync function getTournament(tournamentId, isAuth = false, allowAnonymous = false) {\n\n if (tournamentService.currentTournamentValue != null && tournamentService.currentTournamentValue.id === tournamentId) \n return tournamentService.currentTournamentValue;\n\n const requestOptions = { method: 'GET'};\n var tournamentFromApi = null;\n\n await Fetch(`api/tournament/get/${tournamentId}`, requestOptions, isAuth, allowAnonymous)\n .then(response => {\n if (response) return response;\n else {\n let error = new Error(response.statusText);\n error.response = response;\n throw error;\n }\n })\n .then(response => response.json())\n .then(\n response => {\n currentTournamentSubject.next(tournamentFromApi = response.error != null ? response : response.data);\n })\n .catch(error => {\n console.log(error);\n });\n\n return tournamentFromApi;\n}\n\nexport default tournamentService;\n","//Staff management service, i.e. edit/add/delete reset pw by admin etc.\n\n//import config from 'config';\nimport {get} from \"../_methods/download\"\n\nconst staffsData = [\n {\n \"id\": 1,\n \"name\": \"Сотрудник1\", //enum\n \"point\": \"Точка1\",\n \"description\": \"Описание 1\",\n \"needSetPassword\": false\n }, {\n \"id\": 2,\n \"name\": \"Сотрудник2\", //enum\n \"point\": \"Точка1\",\n \"description\": \"Описание 2\",\n \"needSetPassword\": true\n }, {\n \"id\": 3,\n \"name\": \"Сотрудник3\", //enum\n \"point\": \"Точка1\",\n \"description\": \"Описание 3\",\n \"needSetPassword\": false\n }, {\n \"id\": 4,\n \"name\": \"Сотрудник4\", //enum\n \"point\": \"Точка1\",\n \"description\": \"Описание 4\",\n \"needSetPassword\": false\n }, {\n \"id\": 5,\n \"name\": \"Сотрудник5\", //enum\n \"point\": \"Точка1\",\n \"description\": \"Описание 5\",\n \"needSetPassword\": false\n }\n];\n\nvar filteredData = [\n {\n \"id\": 3,\n \"name\": \"Группа3\", //enum\n \"point\": \"Точка1\",\n \"description\": \"Описание 3\",\n \"needSetPassword\": false\n }, {\n \"id\": 4,\n \"name\": \"Группа4\", //enum\n \"point\": \"Точка1\",\n \"description\": \"Описание 4\",\n \"needSetPassword\": false\n }\n];\n\n\nexport const staffsService = {\n getStaffs\n , getFilteredStaffs\n};\n\nasync function getFilteredStaffs(model) {\n return filteredData;\n return await get(`api/staffs/list/`, true, model);\n}\n\nasync function getStaffs(model) {\n return staffsData;\n return await get(`api/staffs/list`, true, model);\n}\n\nexport default staffsService;\n","//import config from 'config';\nimport { get, post, remove } from \"../_methods/download\";\nimport { unitsService } from \"./units\";\n\nvar filteredData = [\n {\n \"id\": 3,\n \"rentalGroup\": \"Группа1\", //enum\n \"name\": \"Аренда\", //enum\n \"description\": \"Описание 3\",\n }, {\n \"id\": 4,\n \"rentalGroup\": \"Группа1\", //enum\n \"name\": \"Аренда\", //enum\n \"description\": \"Описание 4\",\n }\n];\n\n\nexport const rentalTypesService = {\n getRentalTypes\n , getFilteredRentalTypes\n , createType\n , editType\n , removeType\n};\n\nasync function getFilteredRentalTypes(model) {\n return await post(`/api/resourcekind/list`, true, model);\n}\n\nasync function getRentalTypes(companyId, orgUnitId, model) {\n companyId = companyId == undefined ? '' : companyId;\n orgUnitId = orgUnitId == undefined ? '' : orgUnitId;\n return await post(`/api/resourcekind/list?companyId=${companyId}&orgUnitId=${orgUnitId}`, true, model);\n}\n\nasync function createType(model) {\n return await post(\"/api/resourcekind/add\", true, model);\n}\n\nasync function editType(id, model) {\n return await post(`/api/resourcekind/edit/${id}`, true, model);\n}\n\nasync function removeType(id) {\n await remove(`/api/resourcekind/delete/${id}`, true);\n}\n\nexport default rentalTypesService;\n","//Staff management service, i.e. edit/add/delete reset pw by admin etc.\n\n//import config from 'config';\nimport {get, post, remove} from \"../_methods/download\"\n\n\nexport const servicesService = {\n getServices\n , createService\n , editService\n , removeService\n , getOutsourcedServices\n};\n\nasync function getServices(companyId, orgUnitId) {\n companyId = companyId == undefined ? '' : companyId;\n orgUnitId = orgUnitId == undefined ? '' : orgUnitId;\n return await post(`/api/service/list?companyId=${companyId}&orgUnitId=${orgUnitId}`, true);\n}\n\nasync function getOutsourcedServices(companyId, orgUnitId) {\n companyId = companyId == undefined ? '' : companyId;\n orgUnitId = orgUnitId == undefined ? '' : orgUnitId;\n return await post(`/api/service/getOutsourcedServices?companyId=${companyId}&orgUnitId=${orgUnitId}`, true);\n}\n\nasync function createService(model) {\n return await post(`/api/service/add`, true, model);\n}\n\nasync function editService(id, model) {\n return await post(`/api/service/edit/${id}`, true, model);\n}\n\nasync function removeService(id) {\n return await remove(`/api/service/delete/${id}`, true);\n}\n\nexport default servicesService;\n","//import config from 'config';\nimport {get, post, remove} from \"../_methods/download\"\nconst editModel = { \"excludedPeriods\": [{ \"time\": \"00:00\", \"nextDay\": false }, { \"time\": \"00:00\", \"nextDay\": true }], \"startDate\": \"2020-04-03T14:15:54.288Z\", \"endDate\": \"2020-04-04T14:15:54.291Z\", \"startTime\": \"00:00\", \"endTime\": \"21:00\", \"nextDay\": true, \"period\": 15 };\nexport const schedulesService = {\n getSchedule\n , getSchedules\n , createSchedule\n , updateSchedule\n , removeSchedule\n};\n\nasync function getSchedule(id) {\n //return editModel;\n return await get(`/api/schedule/${id}`, true);\n}\n\nasync function getSchedules(model) {\n return await post(`/api/schedule/list`, true, JSON.stringify(model));\n}\n\nasync function createSchedule(model) {\n return await post(`/api/schedule/add`, true, model);\n}\n\nasync function updateSchedule(id, model) {\n return await post(`/api/schedule/edit/${id}`, true, model);\n}\n\nasync function removeSchedule(id) {\n return await remove(`/api/schedule/delete/${id}`, true);\n}\n\nexport default schedulesService;\n","//import config from 'config';\nimport {get, post, remove} from \"../_methods/download\"\n\nconst widgetsData = [\n {\n \"id\": 1,\n \"name\": \"Widget1\", //enum\n \"description\": \"Описание 1\",\n }, {\n \"id\": 2,\n \"name\": \"Widget2\", //enum\n \"description\": \"Описание 2\",\n }, {\n \"id\": 3,\n \"name\": \"Widget3\", //enum\n \"description\": \"Описание 3\",\n }, {\n \"id\": 4,\n \"name\": \"Widget4\", //enum\n \"description\": \"Описание 4\",\n }, {\n \"id\": 5,\n \"name\": \"Widget5\", //enum\n \"description\": \"Описание 5\",\n }\n];\n\nvar filteredData = [\n {\n \"id\": 3,\n \"name\": \"Widget3\", //enum\n \"description\": \"Описание 3\",\n }, {\n \"id\": 4,\n \"name\": \"Widget5\", //enum\n \"description\": \"Описание 4\",\n }\n];\n\nexport const widgetsService = {\n getWidgets\n , getWidget\n , createWidget\n , updateWidget\n , removeWidget\n , getFilteredWidgets\n};\n\nasync function getWidget(id) {\n return await get(`/api/widgets/${id}}`, true);\n}\n\nasync function getWidgets(model) {\n return await post(`/api/widgets/list`, true, JSON.stringify(model));\n}\n\nasync function getFilteredWidgets(model) {\n return await post(`/api/widgets/list`, true, model);\n}\n\nasync function createWidget(model) {\n await post(`/api/widgets/add`, true, model);\n}\n\nasync function updateWidget(id, model) {\n return await post(`/api/widgets/edit/${id}`, true, model);\n}\n\nasync function removeWidget(id) {\n return await remove(`/api/widgets/delete/${id}`, true);\n}\n\nexport default widgetsService;\n","import {get, post, remove} from \"../_methods/download\"\n\nconst testData = [\n {\n id: 1,\n date: \"2020-10-09 23:00:00\",\n client: \"Вася пупкин\",\n amount: 5000,\n resources: \"Катер вжух1\"\n }, {\n id: 2,\n date: \"2020-10-09 23:00:00\",\n client: \"Вася Попкин\",\n amount: 5000,\n resources: \"Катер вжух2\"\n }, {\n id: 3,\n date: \"2020-10-09 23:00:00\",\n client: \"Вася Папкин\",\n amount: 5000,\n resources: \"Катер вжух3\"\n }];\n\nexport const reportsService = {\n getReports\n , createReport\n , editReport\n , removeReport\n , getReport\n //, getFilteredReports\n};\n\nasync function getReports(companyId, orgUnitId) {\n companyId = companyId == undefined ? '' : companyId;\n orgUnitId = orgUnitId == undefined ? '' : orgUnitId;\n //return await post(`/api/report/list?companyId=${companyId}&orgUnitId=${orgUnitId}`, true);\n return { data: testData };\n}\n\nasync function createReport(model) {\n return await post(\"/api/reports/partnersOrders\", true, model);\n}\n\nasync function editReport(id, model) {\n return await post(`/api/report/edit/${id}`, true, model);\n}\n\nasync function removeReport(id) {\n await remove(`/api/report/delete/${id}`, true);\n}\n\nasync function getReport(id) {\n return await get(`/api/report/${id}`, true);\n}\n\nexport default reportsService;\n","export * from './authentication.service';\nexport * from './tournament.service';\nexport * from './user.service';\r\nexport * from './audit';\nexport * from './staffs';\nexport * from './orders';\nexport * from './priceSettings';\nexport * from './rentalGroups';\nexport * from './rentalTypes';\nexport * from './companies';\nexport * from './units';\nexport * from './clients';\nexport * from './services';\nexport * from './schedule';\nexport * from './widgets';\nexport * from './rentalPoints';\nexport * from './certificates';\nexport * from './reports';\n","import auth from \"../_services/authentication.service\";\nimport { Fetch } from \"../_helpers/handle-response\"\n\nexport const get = async (url, isAuth, body, allowAnonymous = false) => {\n const requestOptions = {\n method: 'GET',\n body: body,\n headers: body === undefined ? { } : { 'Content-Type': 'application/json' },\n };\n try {\n const response = await Fetch(url, requestOptions, isAuth, allowAnonymous);\n var result = await response.json();\n result = result.error != null ? result.error : result;\n return result;\n } catch (err) {\n //alert(\"Error\", err);\n }\n};\n\nexport const remove = async (url, isAuth, allowAnonymous = false) => {\n const requestOptions = {\n method: 'DELETE'\n };\n try {\n const response = await Fetch(url, requestOptions, isAuth, allowAnonymous);\n var result = await response.json();\n result = result.error != null ? result.error : result;\n return result;\n } catch (err) {\n alert(\"Error\", err);\n }\n};\n\nexport const post = async(url, isAuth, body, allowAnonymous = false, redirectUrl = null) => {\n const requestOptions = {\n method: 'POST',\n headers: body === undefined ? {} : { 'Accept':'application/json','Content-Type': 'application/json' },\n body: body\n };\n\n const response = await Fetch(url, requestOptions, isAuth, allowAnonymous).then(\n\n async function (response) {\n if (response && response.headers && response.headers.get(\"content-type\") === \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\") {\n response.blob()\n .then((blob) => {\n \n // 2. Create blob link to download\n const url = window.URL.createObjectURL(new Blob([blob],\n { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;' }));\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', `export.xlsx`);\n // 3. Append to html page\n document.body.appendChild(link);\n // 4. Force download\n link.click();\n // 5. Clean up and remove the link\n link.parentNode.removeChild(link);\n })\n .catch((error) => {\n alert(error);\n });\n\n return null;\n }\n\n if (response && response.code !== 422) {\n var result = await response.json();\n return result;\n }\n\n if (response && response.status !== 200 && response.status !== 201) {\n alert('Looks like there was a problem. Status Code: ' +\n response.status);\n return;\n }\n\n if (response && response.ok && redirectUrl != null) {\n window.location.href = redirectUrl;\n }\n\n if (response) {\n var result = await response.json();\n result = result.error != null && result.data != null ? result.data : result;\n return result;\n }\n }\n ).then(response => {\n\n if (response && response.data === 400) {\n alert('Error : ' + response.error.message);\n }\n\n if (response && response.exception) {\n return { error: { errors: [{ message: response.message }]}}\n }\n\n return response;\n\n }).catch(function (err) {\n alert(err);\n });\n\n return response;\n}\n\nexport const postFile = async(url, isAuth, body, allowAnonymous = false, redirectUrl = null) => {\n\n const requestOptions = {\n method: 'POST',\n //headers: body === undefined ? { } : { },\n body: body\n };\n\n const response = await Fetch(url, requestOptions, isAuth, allowAnonymous).then(\n\n function (response) {\n\n if (response.status !== 200) {\n alert('Looks like there was a problem. Status Code: ' +\n response.status);\n return;\n }\n\n if (response.ok && redirectUrl != null) {\n window.location.href = redirectUrl;\n }\n\n return response.json();\n\n }\n\n ).then(response => {\n\n if (response.data === 400) {\n alert('Error : ' + response.error.message);\n }\n\n return response;\n\n }).catch(function (err) {\n alert('Error', err);\n });\n\n return response;\n}\n","import i18n from \"i18next\";\nimport { reactI18nextModule } from \"react-i18next\";\n\n// the translations\nconst resources = {\n en: {\n common: require(\"./translations/en/common.json\")\n , navigation: require(\"./translations/en/navigation.json\")\n , loginRegister: require(\"./translations/en/login_register.json\")\n , profile: require(\"./translations/en/profile.json\")\n , editUserProfile: require(\"./translations/en/editUserProfile.json\")\n , addOrUpdateTournament: require(\"./translations/en/addOrUpdateTournament.json\")\n , modalTournament: require(\"./translations/en/modalTournament.json\")\n , tournament: require(\"./translations/en/tournament.json\")\n , confirmedPlayers: require(\"./translations/en/confirmedPlayers.json\")\n , teams: require(\"./translations/en/teams.json\")\n , timeline: require(\"./translations/en/timeline.json\")\n , challenges: require(\"./translations/en/challenges.json\")\n , anticheat: require(\"./translations/en/anticheat.json\")\n , dashboard: require(\"./translations/en/dashboard.json\")\n , teamInvite: require(\"./translations/en/teamInvite.json\")\n }\n , ru: {\n common: require(\"./translations/ru/common.json\")\n , navigation: require(\"./translations/ru/navigation.json\")\n , loginRegister: require(\"./translations/ru/login_register.json\")\n , profile: require(\"./translations/ru/profile.json\")\n , editUserProfile: require(\"./translations/ru/editUserProfile.json\")\n , addOrUpdateTournament: require(\"./translations/ru/addOrUpdateTournament.json\")\n , modalTournament: require(\"./translations/ru/modalTournament.json\")\n , tournament: require(\"./translations/ru/tournament.json\")\n , confirmedPlayers: require(\"./translations/ru/confirmedPlayers.json\")\n , teams: require(\"./translations/ru/teams.json\")\n , timeline: require(\"./translations/ru/timeline.json\")\n , challenges: require(\"./translations/ru/challenges.json\")\n , anticheat: require(\"./translations/ru/anticheat.json\")\n , dashboard: require(\"./translations/ru/dashboard.json\")\n , teamInvite: require(\"./translations/ru/teamInvite.json\")\n }\n};\n\ni18n\n .use(reactI18nextModule) // passes i18n down to react-i18next\n .init({\n resources,\n ns: [\"common\", \"navigation\", \"loginRegister\", \"addOrUpdateTournament\", \"modalTournament\", \"tournament\", \"confirmedPlayers\", \"anticheat\", \"dashboard\", 'teamInvite'],\n lng: \"ru\",\n fallbackLng: 'ru',\n defaultNS:\"common\",\n\n // react-i18next options\n react: {\n wait: true\n },\n interpolation: {\n escapeValue: false // react already safes from xss\n }\n });\n\nexport default i18n;\n","//import config from 'config';\nimport { authHeader, Fetch } from './../_helpers';\nimport { BehaviorSubject } from 'rxjs';\nimport { get, post } from \"../_methods/download\";\nimport { getActiveElement } from 'formik';\n\nvar user = null;\nconst currentUserSubject = new BehaviorSubject(JSON.parse(user));\n\nexport const userService = {\n getCurrentUser\n , getUser\n , getUserRights\n , getPartners\n , updateUserName\n , updateUserPassword\n , refreshUser\n //, searchUser\n , searchClientByPhone\n , getStaffs\n , unblockAccount\n , blockAccount\n , createStaff\n //, editStaff\n , deleteAccountFromCompany\n , currentUser: currentUserSubject.asObservable()\n , lastUpdatedTime\n , getAlerts\n , get currentUserValue() { return currentUserSubject.value }\n};\n\nfunction lastUpdatedTime() {\n return userService.currentUserValue != null ? userService.currentUserValue.lastUpdatedTime : null;\n}\n\nasync function updateUserName(model) {\n try {\n var response = await post(`api/account/change`, true, model);\n if (response.error)\n alert(response.error.message);\n else\n alert(\"Профиль успешно изменен\");\n return getUser(true);\n } catch (err) {\n alert(err);\n }\n}\n\nasync function updateUserPassword(model) {\n try {\n var response = await post(`api/account/changePassword`, true, model);\n if (response.error)\n alert(response.error.message);\n else\n alert(\"Пароль успешно изменен\");\n return getUser(true);\n } catch (err) {\n alert(err);\n }\n}\n\nasync function refreshUser(clear = false) {\n if (clear) {\n currentUserSubject.next(null);\n }\n\n return clear ? null : await getUser(true);\n}\n\nasync function getCurrentUser() {\n if (userService.currentUserValue != null) {\n return userService.currentUserValue;\n }\n\n var userFromApi = null;\n\n await Fetch(`/api/account/get`, null, true, true)\n .then(response => {\n if (response) return response;\n else {\n let error = new Error(response.statusText);\n error.response = response;\n throw error;\n }\n })\n .then(response => response.json())\n .then(\n async response => {\n \n currentUserSubject.next(userFromApi = response.data);\n localStorage.setItem('currentUserData', JSON.stringify(response.data));\n })\n .catch(error => {\n console.log(error);\n });\n\n return userFromApi;\n}\n\nasync function searchClientByPhone(phone) {\n\tphone = phone.replace(\"+\",\"\");\n var users = await get(`/api/client/searchByPhone/${phone}`, true);\n return users && users.data.length > 0 ? users.data[0] : null;\n}\n\nfunction matchClientToTerm(phone, value) {\n var x = phone.toLowerCase().indexOf(value.toLowerCase()) !== -1;\n var y = x;\n return (\n phone.toLowerCase().indexOf(value.toLowerCase()) !== -1\n );\n}\n\nasync function getUser() {\n var user = await get(`api/account/get`, true);\n var x = true;\n return user;\n}\n\nasync function getUserRights(orgUnitId) {\n var rights = await get(`api/account/getUserRights?orgUnitId=${orgUnitId}`, true);\n var x = true;\nreturn rights;\n}\n\nasync function getStaffs(companyId, name) {\n if (!name) {\n name = \"\";\n }\n\n if (!companyId) {\n companyId = \"\";\n }\n\n var staffs = await post(`/api/account/list?companyId=${companyId}&name=${name}`, true);\n return staffs;\n}\n\nasync function createStaff(user) {\n var staffs = await post(`/api/account/add`, true, JSON.stringify(user));\n return staffs;\n}\n\nasync function blockAccount(user) {\n var staffs = await post(`/api/account/blockAccount`, true, JSON.stringify(user));\n return staffs;\n}\n\nasync function unblockAccount(user) {\n var staffs = await post(`/api/account/unblockAccount`, true, JSON.stringify(user));\n return staffs;\n}\n\nasync function deleteAccountFromCompany(user) {\n var staffs = await post(`/api/account/deleteAccountFromCompany`, true, JSON.stringify(user));\n return staffs;\n}\n\nasync function getAlerts(orgUnitId) {\n return await get(`/api/account/getAlerts?orgUnitId=${orgUnitId.orgUnitId}`, true);\n}\n\nasync function getPartners(orgUnitId) {\n orgUnitId = orgUnitId == undefined ? '' : orgUnitId;\n return await get(`/api/account/getPartners?orgUnitId=${orgUnitId}`, true);\n}\n\nexport default userService;\n","import { BehaviorSubject } from 'rxjs';\nimport moment from 'moment'\nimport { authHeader } from './../_helpers';\nimport { Fetch } from './../_helpers';\nimport userService from \"./../_services/user.service\";\nimport { get, post } from \"../_methods/download\";\n\n//localStorage.setItem('currentUser', null)\n//saving token data to \n\nvar user = localStorage.getItem('currentAuth') != 'undefined' ? localStorage.getItem('currentAuth') : null;\nconst currentAuthSubject = new BehaviorSubject(JSON.parse(user));\n\nexport const auth = {\n login,\n forgotPassword,\n restorePassword,\n resetStaffPassword,\n needSetPassword,\n logout,\n register,\n isAuth,\n getUser,\n getAccessToken,\n updateAccessToken,\n resetPassword,\n resetPasswordPost,\n currentUser: currentAuthSubject.asObservable(),\n get currentUserValue() { return currentAuthSubject.value }\n};\n\nfunction isAuth() {\n return auth.currentUser.source._value != null;\n}\n\nfunction needSetPassword() {\n return auth.currentUser.source._value != null && auth.currentUser.source._value.needSetPassword != null ? true : false;\n}\n\nfunction getAccessToken() {\n return auth.currentUserValue != null ? auth.currentUserValue.access_token : null;\n}\nfunction updateAccessToken(token, expires) {\n var user = currentAuthSubject.getValue();\n user.access_token = token;\n user.expires_in = expires;\n localStorage.setItem('currentAuth', JSON.stringify(user));\n currentAuthSubject.next(user);\n}\nfunction getUser() {\n if (auth.currentUserValue == null) {\n auth.logout();\n window.location.href = \"/#/login\";\n return null;\n } else {\n auth.currentUserValue.isAdmin = true;\n return auth.currentUserValue;\n }\n}\n\nasync function resetPassword(id) {\n await get(`/api/password/reset`, true); //todo:drop staff password in backend and set needSetPassword = true\n}\n\nasync function resetPasswordPost(model) {\n var result = await post(`/api/password/reset`, false, model); \n if (result.error) {\n if (result.error.errorType == 2)\n return Promise.reject(result.error.errorType);\n return Promise.reject(result.error.message);\n }\n\n localStorage.setItem('currentAuth', JSON.stringify({\n expires_in: result.expires_in\n , expires_in_timestamp: result.expires_in_timestamp\n , access_token: result.access_token\n , needSetPassword: null\n , isAdmin: true\n }));\n\n //saving user account to user service variable\n currentAuthSubject.next(result);\n userService.refreshUser();\n return auth.currentUser;\n}\n\nasync function resetStaffPassword(email, companyId) {\n return await post(`/api/account/resetPassword`, true, JSON.stringify({ email, companyId }));\n}\n\nasync function login(model) {\n const requestOptions = {\n method: 'POST',\n headers: { \"Accept\": \"application/json\", 'Content-Type': 'application/json' },\n body: model,\n mode: 'cors'\n };\n return await window.fetch(`/api/auth/login`, requestOptions)\n .then(response => response.json()).then(response => {\n if (response.error) {\n if (response.error.errorType == 2)\n return Promise.reject(response.error.errorType);\n return Promise.reject(response.error.message);\n }\n \n localStorage.setItem('currentAuth', JSON.stringify({\n expires_in: response.expires_in\n , expires_in_timestamp: response.expires_in_timestamp\n //, refreshToken: response.data.refreshToken\n , access_token: response.access_token\n , needSetPassword: null\n , isAdmin: true\n //, refreshTokenExpires: response.data.refreshTokenExpires\n //, isOnline: response.data.isOnline\n //, lastSeenOnlineUtc: response.data.lastSeenOnlineUtc\n }));\n \n //saving user account to user service variable\n currentAuthSubject.next(response);\n userService.refreshUser();\n return auth.currentUser;\n });\n}\n\nasync function forgotPassword(model) {\n var result = await post(`/api/password/email`, false, model);\n return result;\n}\nasync function restorePassword(model) {\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: model\n };\n\n await window.fetch(`api/password/restore`, requestOptions)\n .then(response => response.json()).then(response => {\n if (!response.success) {\n return Promise.reject(response.error.message);\n }\n\n localStorage.setItem('currentAuth', JSON.stringify({\n expires: response.data.expires\n , id: response.data.id\n , refreshToken: response.data.refreshToken\n , token: response.data.token\n , refreshTokenExpires: response.data.refreshTokenExpires\n }));\n\n currentAuthSubject.next(response.data);\n window.location.href = '/#/dashboard';\n });\n}\nasync function register(model) {\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(model)\n };\n \n var result = await window.fetch(`http://booking-system:6565/api/auth/registration`, requestOptions)\n .then((response) => {\n if (response.status !== 200) {\n alert('Looks like there was a problem. Status Code: ' +\n response.status);\n return;\n }\n\n if (response.ok) {\n //TODO: add return url?\n return response.json();\n } else {\n //TODO: show error message\n }\n }).then( async (res) => {\n if (!res.success) {\n //TODO: error without message like bad code\n var response = {\n success: false,\n error: (res && res.error && res.error.message ? res.error.message : \"Please retry later\")\n };\n return response;\n }\n var resData = res.data;\n\n var authObj = {\n expires: resData.expires\n , id: resData.id\n , refreshToken: resData.refreshToken\n , token: resData.token\n , refreshTokenExpires: resData.refreshTokenExpires\n };\n await localStorage.setItem('currentAuth', JSON.stringify(authObj));\n\n await currentAuthSubject.next(authObj);\n userService.refreshUser();\n return auth.currentUser;\n }\n \n ).catch(function (err) {\n alert('Error Register: ' + err);\n });\n return result;\n}\n\nasync function logout() {\n // remove user from local storage to log user out\n localStorage.removeItem('currentAuth');\n localStorage.removeItem('currentOrgUnitData');\n localStorage.removeItem('token');\n currentAuthSubject.next(null);\n await window.fetch(`api/auth/logout`);\n window.location.href = '/#/dashboard';\n}\n//export async function updateOnlineStatus() {\n// var lastUpdated = localStorage.getItem(\"onlineStatusUpdatedUtc\");\n// var needUpdate = lastUpdated == null || (moment().diff(moment(lastUpdated), 'seconds')) >= 30;\n// if (auth.isAuth() && needUpdate) {\n// var requestOptions = {\n// method: 'POST'\n// }\n// var lastUserActive = localStorage.getItem(\"lastUserActive\");\n// var status = (moment().diff(moment(lastUserActive), 'seconds')) < 30 ? 0 : 1;\n// Fetch(`api/utility/online/${status}`, requestOptions)\n// .then(response => response.json()).then(response => {\n// if (response.success) {\n// localStorage.setItem(\"onlineStatusUpdatedUtc\", new Date());\n\n// }\n// });\n// }\n//}\n//export function updateLastUserActive(){\n// localStorage.setItem(\"lastUserActive\", new Date());\n//}\n\nexport default auth;\n","/*\n* required polyfills\n*/\nimport \"core-js\";\nimport 'core-js/features/set/map';\nimport 'core-js/features/map';\n\n/** IE9, IE10 and IE11 requires all of the following polyfills. **/\n// import 'core-js/es6/symbol'\n// import 'core-js/es6/object'\n// import 'core-js/es6/function'\n// import 'core-js/es6/parse-int'\n// import 'core-js/es6/parse-float'\n// import 'core-js/es6/number'\n// import 'core-js/es6/math'\n// import 'core-js/es6/string'\n// import 'core-js/es6/date'\n// import 'core-js/es6/array'\n// import 'core-js/es6/regexp'\n// import 'core-js/es6/map'\n// import 'core-js/es6/weak-map'\n// import 'core-js/es6/set'\n// import 'core-js/es7/object'\n\n/** IE10 and IE11 requires the following for the Reflect API. */\n// import 'core-js/es6/reflect'\n\n/** Evergreen browsers require these. **/\n// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.\n// import 'core-js/es7/reflect'\n\n// CustomEvent() constructor functionality in IE9, IE10, IE11\n(function () {\n\n if ( typeof window.CustomEvent === \"function\" ) return false\n\n function CustomEvent ( event, params ) {\n params = params || { bubbles: false, cancelable: false, detail: undefined }\n var evt = document.createEvent( 'CustomEvent' )\n evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail )\n return evt\n }\n\n CustomEvent.prototype = window.Event.prototype\n\n window.CustomEvent = CustomEvent\n})()\n","// ReSharper disable InconsistentNaming\nimport React, { Component } from 'react';\nimport { HashRouter, Route, Switch, Redirect} from 'react-router-dom';\nimport './App.scss';\nimport { auth, userService} from \"./_services\";\nimport { ModalContext } from \"./_services/modal.service\";\n\nimport { withI18n } from 'react-i18next';\nimport { createBrowserHistory } from 'history';\nimport { YMInitializer } from 'react-yandex-metrika';\nimport ym from 'react-yandex-metrika';\n\n// ReSharper disable once UnknownCssClass\nconst loading = () =>
;\n\n// Containers\nconst DefaultLayout = React.lazy(() => import('./containers/DefaultLayout'));\nconst TemplateLayout = React.lazy(() => import(\"./containers/TemplateLayout\"));\nconst Login = React.lazy(() => import('./views/Pages/Login'));\nconst ForgotPassword = React.lazy(() => import('./views/Pages/RestorePassword/ForgotPassword'));\nconst RestorePassword = React.lazy(() => import('./views/Pages/RestorePassword/RestorePassword'));\nconst Register = React.lazy(() => import('./views/Pages/Register'));\nconst Page404 = React.lazy(() => import('./views/Pages/Page404'));\nconst Page500 = React.lazy(() => import('./views/Pages/Page500'));\n//const Templates = React.lazy(() => import('./views/Templates/Templates'));\n\nconst history = createBrowserHistory();\n\nclass App extends Component {\n// ReSharper restore InconsistentNaming\n \n constructor(props) {\n super(props);\n\n this.showPaymentModal = (returnUrl, purpose) => {\n this.setState({\n paymentsModal: { isOpen: true, returnUrl: returnUrl },\n paymentsModalType:\n {\n purpose: purpose\n }\n });\n };\n\n this.hidePaymentModal = () => {\n this.setState({ paymentsModal: { isOpen: false } });\n };\n\n this.showPhoneModal = (phone) => {\n this.setState({\n phoneModal: { isOpen: true, returnUrl: 'dashboard' }\n });\n };\n\n this.hidePhoneModal = () => {\n this.setState({ phoneModal: { isOpen: false } });\n };\n\n this.showEventModal = (event) => {\n this.setState({\n eventModal: { isOpen: true, returnUrl: 'dashboard', event: event }\n });\n };\n\n this.hideEventModal = () => {\n this.setState({ eventModal: { isOpen: false, event: null } });\n };\n\n this.showOrderModal = async(data) => {\n await this.setState({\n orderModal: { isOpen: true, order: data }\n });\n };\n\n this.hideOrderModal = () => {\n this.setState({ orderModal: { isOpen: false, order: null } });\n };\n\n this.showFiltersModal = (filters, data) => {\n this.setState({\n filtersModal: { isOpen: true, returnUrl: 'dashboard', filters: filters, filtered: false, filteredData: data, filterFields: [] }\n });\n };\n\n this.hideFiltersModal = () => {\n this.setState({ filtersModal: { isOpen: false, filters: [], filteredData: null, filterFields: [] }});\n };\n\n this.showLoader = () => {\n this.setState({ loader: { isOpen: true } });\n };\n\n this.hideLoader = () => {\n this.setState({ loader: { isOpen: false } });\n };\n\n this.showModalCreateGroup = (model) => {\n this.setState({ createGroupModal: { isOpen: true, model: model } });\n };\n\n this.hideModalCreateGroup = () => {\n this.setState({ createGroupModal: { isOpen: false } });\n };\n\n this.showModalCreateType = (model) => {\n this.setState({ createTypeModal: { isOpen: true, model: model } });\n };\n\n this.hideModalCreateType = () => {\n this.setState({ createTypeModal: { isOpen: false } });\n };\n\n this.showModalCreateOrgUnit = (model) => {\n this.setState({ createOrgUnitModal: { isOpen: true, model: model } });\n };\n\n this.hideModalCreateOrgUnit = () => {\n this.setState({ createOrgUnitModal: { isOpen: false } });\n };\n\n this.showModalCreateCompany = (model) => {\n this.setState({ createCompanyModal: { isOpen: true, model: model } });\n };\n\n this.hideModalCreateCompany = () => {\n this.setState({ createCompanyModal: { isOpen: false } });\n };\n\n this.showModalCreateStaff = (model) => {\n this.setState({ createStaffModal: { isOpen: true, model: model } });\n };\n\n this.hideModalCreateStaff = () => {\n this.setState({ createStaffModal: { isOpen: false } });\n };\n\n this.showModalCreateService = (model) => {\n this.setState({ createServiceModal: { isOpen: true, model: model } });\n };\n\n this.hideModalCreateService = () => {\n this.setState({ createServiceModal: { isOpen: false } });\n };\n\n this.showModalCreateReport = (model) => {\n this.setState({ createReportModal: { isOpen: true, model: model } });\n };\n\n this.hideModalCreateReport = () => {\n this.setState({ createReportModal: { isOpen: false } });\n };\n\n this.showModalCreatePriceSettings = (model) => {\n this.setState({ createServiceModal: { isOpen: true, model: model } });\n };\n\n this.hideModalCreatePriceSettings = () => {\n this.setState({ createPriceSettingsModal: { isOpen: false } });\n };\n\n this.showCreateOrderDialog = (model) => {\n this.setState({ createOrderModal: { isOpen: true, model: model } });\n };\n\n this.hideCreateOrderDialog = () => {\n this.setState({ createOrderModal: { isOpen: false, model: null } });\n };\n \n this.state = {\n currentUser: null,\n paymentsModal:\n {\n isOpen: false,\n returnUrl: 'dashboard'\n },\n paymentsModalType: {\n purpose: 0\n },\n confirmationModal: { isOpen: false, confirmation: '' },\n phoneModal: { isOpen: false, returnUrl: 'dashboard' },\n steamModal: { isOpen: false, returnUrl: 'dashboard' },\n filtersModal: { isOpen: false, returnUrl: 'dashboard', filters: [], filtered: false, filteredData: [], filterFields: [] },\n eventModal: { isOpen: false, returnUrl: 'dashboard', event: null },\n orderModal: { isOpen: false, order: null },\n shareLinkModal: { isOpen: false, link: null, currentLocation: null, prevLocation: null },\n loader: { isOpen: false },\n createGroupModal: {isOpen: false},\n createTypeModal: {isOpen: false},\n createOrgUnitModal: {isOpen: false},\n createCompanyModal: {isOpen: false},\n createStaffModal: {isOpen: false},\n createServiceModal: {isOpen: false},\n createPriceSettingsModal: {isOpen: false},\n createReportModal: { isOpen: false },\n createOrderModal: { isOpen: false, model: null, returnUrl: 'dashboard' },\n\n showPaymentModal: this.showPaymentModal,\n hidePaymentModal: this.hidePaymentModal,\n showPhoneModal: this.showPhoneModal,\n hidePhoneModal: this.hidePhoneModal,\n showEventModal: this.showEventModal,\n hideEventModal: this.hideEventModal,\n showOrderModal: this.showOrderModal,\n hideOrderModal: this.hideOrderModal,\n showFiltersModal: this.showFiltersModal,\n hideFiltersModal: this.hideFiltersModal,\n showLoader: this.showLoader,\n hideLoader: this.hideLoader,\n\n showCreateOrderDialog: this.showCreateOrderDialog,\n hideCreateOrderDialog: this.hideCreateOrderDialog,\n\n\n showModalCreateGroup: this.showModalCreateGroup,\n hideModalCreateGroup: this.hideModalCreateGroup,\n showModalCreateType: this.showModalCreateType,\n hideModalCreateType: this.hideModalCreateType,\n showModalCreateOrgUnit: this.showModalCreateOrgUnit,\n hideModalCreateOrgUnit: this.hideModalCreateOrgUnit,\n showModalCreateCompany: this.showModalCreateCompany,\n hideModalCreateCompany: this.hideModalCreateCompany,\n showModalCreateStaff: this.showModalCreateStaff,\n hideModalCreateStaff: this.hideModalCreateStaff,\n showModalCreateService: this.showModalCreateService,\n hideModalCreateService: this.hideModalCreateService,\n showModalCreatePriceSettings: this.showModalCreatePriceSettings,\n hideModalCreatePriceSettings: this.hideModalCreatePriceSettings,\n showModalCreateReport: this.showModalCreateReport,\n hideModalCreateReport: this.hideModalCreateReport,\n };\n }\n\n componentDidMount() {\n auth.currentUser.subscribe(x => this.setState({ currentUser: x }));\n\n userService.currentUser.subscribe(user => {\n this.setState({ user });\n });\n\n \n history.listen(() => {\n ym('hit', window.location.protocol + \"//\" + window.location.host + \"/\" + window.location.pathname);\n });\n }\n render() {\n var needSetPassword = auth.needSetPassword();\n return (\n
\n \n \n \n \n \n } />\n } />\n } />\n } />\n } />\n } />\n } />\n auth.isAuth() ? needSetPassword ? : : } />\n \n \n \n \n
\n );\n }\n}\n\n// ... definition of App class ...\nexport default withI18n('common')(App);\n//export default App;\n\n\n","// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://goo.gl/SC7cgQ'\n );\n });\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\n\n // Execute callback\n if (config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","// import 'react-app-polyfill/ie9'; // For IE 9-11 support\nimport 'react-app-polyfill/ie11'; // For IE 11 support\nimport 'react-app-polyfill/stable';\nimport './polyfill'\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport i18n from './i18n';\nimport { I18nextProvider } from 'react-i18next';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\nimport JavascriptTimeAgo from 'javascript-time-ago';\n\n// The desired locales.\nimport en from 'javascript-time-ago/locale/en';\nimport ru from 'javascript-time-ago/locale/ru';\n\n// Initialize the desired locales.\nJavascriptTimeAgo.locale(en);\nJavascriptTimeAgo.locale(ru);\n\nReactDOM.render(, document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: http://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","import auth from './../_services/authentication.service';\nasync function RefreshToken() {\n var user = auth.currentUserValue;\n var token = user.access_token;\n\n await fetch('/api/auth/refresh',\n {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json'\n , 'Authorization': `Bearer ${token}`\n }\n })\n .then(tokenResponse => tokenResponse.json())\n .then(tokenResponse => {\n if (tokenResponse != null && tokenResponse.access_token != null)\n auth.updateAccessToken(tokenResponse.access_token, tokenResponse.expires_in_timestamp);\n });\n}\n\nexport async function Fetch(resource, init, addAuthHeader = true, queryIfNotAuthed = false) {\n if (addAuthHeader) {\n const token = auth.getAccessToken();\n if (token || queryIfNotAuthed) {\n if (init == null) {\n init = {}\n }\n if (init.headers == null) {\n init.headers = {}\n }\n\n if (token) {\n init.headers[\"Authorization\"] = `Bearer ${token}`;\n }\n } else {\n window.location.href = \"/#/login\";\n return null;\n }\n }\n\n var res = await fetch(resource, init);\n var user = auth.currentUserValue;\n\n var y = true;\n\n if (res.status === 401 && user) {\n if (Date.parse(user.expires_in_timestamp) <= (Date.now() - 60*60*24*1000*2)) {\n window.location.href = \"/#/login\";\n return null;\n } else {\n console.log(\"Getting new response \" + res.status);\n\n await RefreshToken();\n\n return await Fetch(resource, init, addAuthHeader, queryIfNotAuthed);\n }\n } else if (res.status === 401) {\n throw new Error(\"Unauthorized\");\n }\n var x = true;\n return res;\n}\n\nexport async function FetchAllowAnonymous(resource, init) {\n return await Fetch(resource, init, true, true);\n}\n"],"sourceRoot":""}