{"version":3,"sources":["services/plantas/plantas.service.js","services/users/users.service.js","store/actions/proyectAction.js","components/Conexion/AxiosConexionConfig.js","Config/const.js","components/Azure/adalConfig.js","components/Azure/AADService.js","components/LayoutComponents/AppSubMenu.js","components/LayoutComponents/AppMenu.js","components/LayoutComponents/AppProfile.js","components/LayoutComponents/ConfirmDialog.js","components/LayoutComponents/PopUpMenu.js","components/LayoutComponents/AppTopbar.js","components/Portada.js","components/MapPlantas.js","components/Configuacion/Activo.js","components/Configuacion/ActualizarRol.js","components/Configuacion/DiscoverGPMPlants.js","components/Configuacion/PlantasUsuario.js","components/Configuacion/TablaUsuarios.js","components/Configuacion/Configuracion.js","components/NoAcceso.js","components/AddUser.js","components/LayoutComponents/Routes.js","components/LayoutComponents/AppFooter.js","components/Loadding.js","components/NoConexion.js","App.js","ScrollToTop.js","components/Translation/i18n.js","store/reducers/proyectReducer.js","store/reducers/authReducer.js","store/reducers/rootReducer.js","index.js","components/LoadingComponent.js"],"names":["plantasService","idusuario","plantasUsuario","url","apiUsuarioActualizarPlantas","axiosConfig","put","data","Error","usersService","loadPlantas","loadPlantaImagen","apiUsuario","relacionPlantas","encodeURIComponent","JSON","stringify","include","relation","scope","fields","get","console","error","user","includePlantas","updatedUserReq","plantas","undefined","patch","errorConexionServer","dispatch","a","type","initProyectGlovalData","initProyectGlovalData1","values","dataT","setProyectPlantaVisible","setWidgesVisibles","setPlantas","setPlantaActual","setBreadCrumb","setIdioma","setUserDataFromLocalStorage","setConfigurationUsers","getUsers","users","setCurrentUser","e","setConfigurationUsersAfterAzureSync","syncUsersWithAzure","updateUser","getState","updatedUser","proyect","configuration","userIndex","findIndex","currentUser","updatePlantasUsuarios","selectedPlantas","map","planta","idplanta","loading","setConfigurationUser","setConfigurationPlantas","axiosConexionConfig","defaultOptions","baseURL","apiUrl","headers","instance","axios","create","CancelToken","interceptors","request","use","config","token","localStorage","getItem","window","location","href","Authorization","apiGetPlantas","apiUsuarioMe","apiPing","apiGetStreamin","PageTitle","tenant","redirectUri","clientId","localStoregeTitle","localStorageBoard","urlVideo","rutaIndex","rutaPlantas","rutaMapa","rutaConfig","rutaAddUser","rutaPrecioMercado","rolAcceso","widges","id","nombre","value","widge","valor","LayoutLg","i","x","y","w","h","minW","minH","LayoutMd","LayoutSm","endpoint","adalConfig","authority","endpoints","api","cacheLocation","authContext","AuthenticationContext","withAdalLogin","AADService","this","login","getUser","logOut","getCachedToken","acquireToken","getToken","registerCallback","log","getCachedUser","decode","claims","getClaims","hasOwnProperty","roles","role","getRoles","length","AppSubmenu","props","state","activeIndex","AzureADService","preventDefault","logout","event","item","index","disabled","command","originalEvent","setState","onMenuItemClick","submenuIcon","items","className","badge","Fragment","icon","label","content","renderLinkContent","to","activeClassName","onClick","exact","target","t","active","styleClass","classNames","badgeStyleClass","root","renderLink","global","Component","defaultProps","connect","rootReducer","proyectAction","withTranslation","AppMenu","model","AppProfile","expanded","given_name","bind","useTranslation","useState","visible","setVisible","toast","useRef","ref","onHide","message","header","acceptLabel","rejectLabel","accept","current","show","severity","summary","detail","life","onClickAction","reject","tooltip","tooltipOptions","position","handleChangeLanguage","accion","refreshPanel","menu","toggle","onChange","handleRefreshCantDias","cantDiasValue","src","alt","style","width","popup","AppTopbar","visibleMenubar","visibleDialog","React","createRef","plantasVisibles","refreshCantDias","lenguage","itemsBannderas","changeLenguage","onToggleMenu","visibility","ConfirmDialog","restoreBoard","Portada","authenticated","userName","name","isWriter","isContributor","key","mapa","video","weather","energy","perfRatio","roi","energyRvE","retornoOper","radiacion","valueMapa","valueVideo","valueWeather","valueEnergy","valueRoi","valuePerformanceRatio","valueRetorno","valueEnergyRvE","valueRadiacion","options","isAuthenticated","widgesVisibles","datosUsuario","family_name","loggedIn","temp","alert","forEach","posicion","indice","push","widgetInfo","checked","setValue","mapDispatchToProps","useEffect","breadCrumbLabel","breadCrumbUrl","setmarcadorActual","SetMapa","positions","splice","marcadorActual","markers","Marker","latitud","longitud","Popup","actualizarMapa","nameBodyTemplate","rowData","BodyTemplate","picoBodyTemplate","pico","probjetivoBodyTemplate","probjetivo","direccionBodyTemplate","direccion","paisBodyTemplate","pais","field","Map","center","zoom","TileLayer","attribution","onSelectionChange","selectionMode","dataKey","paginator","paginatorTemplate","currentPageReportTemplate","rows","rowsPerPageOptions","sortable","body","bindActionCreators","updateUsuarioActivo","activo","transform","marginRight","updateUserRole","rol","toLowerCase","marginBottom","charAt","toUpperCase","slice","DiscoverGPMPlants","setLoading","handleGPMSyncBtn","urlDiscoverPlants","AxiosConexionConfig","urlDiscoverDatasources","backgroundColor","color","setSelectedPlantas","changedPlantas","setChangedPlantas","optionLabel","placeholder","selectedItemsLabel","filter","padding","selected","resizableColumns","columnResizeMode","correo","NoAcceso","cursor","validationSchema","yup","shape","required","history","useHistory","rolOptions","setRol","errors","post","onRolChenge","initialValues","onSubmit","touched","focus","onBlur","handleBlur","handleChange","handleSubmit","onFocus","htmlFor","tabIndex","Planta","lazy","reloadLayout","refreshInterval","layoutColorDark","staticMenuInactive","layoutMode","cantDias","home","respuesta","breadCrumb","elemento","marcador","path","render","AppFooter","Loadding","NoConexion","App","datos","requestOptions","urlPlantasConfiguracion","Promise","all","usuario","setUsuarioLocal","configuracionMenu","menuTemporal","datosPlantasMarcadores","menuItems","usuarioApi","usuarioAzure","profile","isInRole","loadProfile","emptyPanel","EnerlandPanel","parse","LoadIntervalRefresh","panel","LoadCantDias","language","prevState","i18n","changeLanguage","enerlandPanel","refreshKey","Math","random","defaultBoardLayout","serializedPanel","setItem","serializedPanels","lg","md","sm","xs","xxs","setCantDias","idioma","frequency","layoutColorMode","layoutColorText","overlayMenuActive","mobileMenuActive","ripple","load","onSidebarClick","handleConexioApi","document","title","menuClick","isDesktop","innerWidth","marcadores","menuTemp","tipo","text","potenciapico","imagen","link","status","logo","wrapperClass","sidebarClassName","el","sidebar","ScrollToToph","prevProps","scrollTo","children","withRouter","Backend","initReactI18next","LanguageDetector","init","resources","en","es","por","fre","fallbackLng","ns","defaultNS","keySeparator","interpolation","escapeValue","formatSeparator","react","wait","useSuspense","initState","conexionError","plantaActual","proyectReducer","action","idleTimeOut","cookies","authReducer","removeItem","persitedState","serializedState","loadFromLocalStorage","combineReducers","auth","composeEnhancers","compose","store","createStore","applyMiddleware","reduxThunk","subscribe","saveToLocalStorage","handleWindowCallback","runWithAdal","ReactDOM","fallback","ScrollToTop","getElementById","LoaddingComponent"],"mappings":"6hCAeaA,EAAiB,IAZ9B,uJAC8BC,EAAWC,GADzC,kFAEUC,EAAMC,IAA2B,WAAOH,GAFlD,kBAI6BI,IAAYC,IAAIH,EAAKD,GAJlD,uBAIcK,EAJd,EAIcA,KAJd,kBAKaA,GALb,sCAOY,IAAIC,MAAJ,MAPZ,0HC+DaC,EAAe,IA/D5B,0IACiBC,EAAaC,GAD9B,oFAEUR,EAAMS,IAAa,WACnBC,EAAkBC,mBACtBC,KAAKC,UAAU,CACbC,QAAS,CACP,CACEC,SAAU,UACVC,MAAO,CACLC,OAAQ,CACN,WACA,SACA,YACA,OACA,OACA,UACA,WACA,eACA,aACA,UACA,eApBhB,kBA4B6Bf,IAAYgB,IACjClB,GAAOO,EAAcG,EAAkB,KA7B/C,uBA4BcN,EA5Bd,EA4BcA,KA5Bd,kBA+BaA,GA/Bb,wCAiCMe,QAAQC,MAAR,MACM,IAAIf,MAAJ,MAlCZ,6LAsCmBgB,EAAMC,GAtCzB,gFAuCUtB,EAAMS,IAAU,WAAOY,EAAKvB,WAC5ByB,EAxCV,2BAyCSF,GAzCT,IA0CMG,QAASF,EAAiBD,EAAKG,aAAUC,IA1C/C,kBA6CYvB,IAAYwB,MAAM1B,EAAKuB,GA7CnC,gCA8CaF,GA9Cb,sCAgDY,IAAIhB,MAAJ,MAhDZ,qRAqDgB,wBArDhB,kBAuD6BH,IAAYgB,IAFzB,yBArDhB,uBAuDcd,EAvDd,EAuDcA,KAvDd,kBAwDaA,GAxDb,sCA0DY,IAAIC,MAAJ,MA1DZ,uHCDasB,EAAsB,yDAAM,WAAMC,GAAN,SAAAC,EAAA,sDACvCD,EAAS,CACPE,KAAM,wBAF+B,2CAAN,uDAKtBC,EAAwB,yDAAM,WAAMH,GAAN,SAAAC,EAAA,sDACzCD,EAAS,CACPE,KAAM,eAFiC,2CAAN,uDAMxBE,EAAyB,SAAAC,GAAM,8CAAI,WAAML,GAAN,SAAAC,EAAA,sDAC9CD,EAAS,CACPE,KAAM,cACNI,MAAOD,IAHqC,2CAAJ,uDAM/BE,EAA0B,SAAAF,GAAM,8CAAI,WAAML,GAAN,SAAAC,EAAA,sDAC/CD,EAAS,CACPE,KAAM,mBACNI,MAAOD,IAHsC,2CAAJ,uDAMhCG,EAAoB,SAAAH,GAAM,8CAAI,WAAML,GAAN,SAAAC,EAAA,sDACzCD,EAAS,CACPE,KAAM,oBACNI,MAAOD,IAHgC,2CAAJ,uDAM1BI,EAAa,SAAAJ,GAAM,8CAAI,WAAML,GAAN,SAAAC,EAAA,sDAClCD,EAAS,CACPE,KAAM,aACNI,MAAOD,IAHyB,2CAAJ,uDAMnBK,EAAkB,SAAAL,GAAM,8CAAI,WAAML,GAAN,SAAAC,EAAA,sDACvCD,EAAS,CACPE,KAAM,kBACNI,MAAOD,IAH8B,2CAAJ,uDAMxBM,EAAgB,SAAAN,GAAM,8CAAI,WAAML,GAAN,SAAAC,EAAA,sDACrCD,EAAS,CACPE,KAAM,gBACNI,MAAOD,IAH4B,2CAAJ,uDAMtBO,EAAY,SAAAP,GAAM,8CAAI,WAAML,GAAN,SAAAC,EAAA,sDACjCD,EAAS,CACPE,KAAM,YACNI,MAAOD,IAHwB,2CAAJ,uDAOlBQ,EAA8B,SAAAR,GAAM,8CAAI,WAAML,GAAN,SAAAC,EAAA,sDACnDD,EAAS,CACPE,KAAM,8BACNI,MAAOD,IAH0C,2CAAJ,uDAOpCS,EAAwB,yDAAM,WAAMd,GAAN,eAAAC,EAAA,sEAEvCD,EAAS,CACPE,KAAM,uBACNI,OAAO,IAJ8B,SAMnB5B,EAAaqC,UAAS,GAAM,GANT,OAMjCC,EANiC,OAOvChB,EAAS,CACPE,KAAM,wBACNI,MAAOU,IAEThB,EAAS,CACPE,KAAM,iBACNI,MAAOU,EAAM,KAEfhB,EAAS,CACPE,KAAM,uBACNI,OAAO,IAjB8B,kDAoBvCf,QAAQC,MAAR,MApBuC,0DAAN,uDAwBxByB,EAAiB,SAAAxB,GAAI,8CAAI,WAAMO,GAAN,SAAAC,EAAA,sDACpC,IACED,EAAS,CACPE,KAAM,iBACNI,MAAOb,IAET,MAAOyB,GACP3B,QAAQC,MAAM0B,GAPoB,2CAAJ,uDAWrBC,EAAsC,yDAAM,WAAMnB,GAAN,eAAAC,EAAA,sEAErDD,EAAS,CACPE,KAAM,uBACNI,OAAO,IAJ4C,SAMjC5B,EAAa0C,qBANoB,OAM/CJ,EAN+C,OAOrDhB,EAAS,CACPE,KAAM,wBACNI,MAAOU,IAEThB,EAAS,CACPE,KAAM,iBACNI,MAAOU,EAAM,KAEfhB,EAAS,CACPE,KAAM,uBACNI,OAAO,IAjB4C,kDAoBrDf,QAAQC,MAAR,MApBqD,0DAAN,uDAwBtC6B,EACX,SAAC5B,EAAMC,GAAP,8CAA0B,WAAOM,EAAUsB,GAAjB,mBAAArB,EAAA,sEAEtBD,EAAS,CACPE,KAAM,uBACNI,OAAO,IAJa,SAMI5B,EAAa2C,WAAW5B,EAAMC,GANlC,OAMhB6B,EANgB,OAOdP,EAAUM,IAAWE,QAAQC,cAA7BT,MACFU,EAAYV,EAAMW,WACtB,SAAAlC,GAAI,OAAIA,EAAKvB,YAAcqD,EAAYrD,aAEzC8C,EAAMU,GAAaH,EACnBvB,EAAS,CACPE,KAAM,0BACNI,MAAO,CACLU,QACAY,YAAaL,KAGjBvB,EAAS,CACPE,KAAM,uBACNI,OAAO,IArBa,wDAwBtBf,QAAQC,MAAR,MACM,IAAIf,MAAJ,MAzBgB,0DAA1B,yDA6BWoD,EACX,SAACD,EAAaE,GAAd,8CAAkC,WAAO9B,EAAUsB,GAAjB,mBAAArB,EAAA,sEAE9BD,EAAS,CACPE,KAAM,uBACNI,OAAO,IAJqB,SAMxBrC,EAAe4D,sBACnBD,EAAY1D,UACZ4D,EAAgBC,KAAI,SAAAC,GAAM,MAAK,CAC7B9D,UAAW0D,EAAY1D,UACvB+D,SAAUD,EAAOC,cAVS,OAatBjB,EAAUM,IAAWE,QAAQC,cAA7BT,MACFU,EAAYV,EAAMW,WACtB,SAAAlC,GAAI,OAAIA,EAAKvB,YAAc0D,EAAY1D,aAEnCqD,EAjBwB,2BAiBLK,GAjBK,IAiBQhC,QAASkC,IAC/Cd,EAAMU,GAAaH,EACnBvB,EAAS,CACPE,KAAM,0BACNI,MAAO,CACLU,QACAY,YAAaL,EACbW,SAAS,KAxBiB,wDA4B9B3C,QAAQC,MAAR,MACM,IAAIf,MAAJ,MA7BwB,0DAAlC,yDAiCW0D,EAAuB,SAAA9B,GAAM,8CAAI,WAAML,GAAN,SAAAC,EAAA,sDAC5CD,EAAS,CACPE,KAAM,uBACNI,MAAOD,IAHmC,2CAAJ,uDAO7B+B,EAA0B,SAAAxC,GAAO,8CAAI,WAAMI,GAAN,SAAAC,EAAA,sDAChDD,EAAS,CACPE,KAAM,0BACNI,MAAOV,IAHuC,2CAAJ,wD,sraCjM9C,6BA2BgByC,IAzBY,WACxB,IAAMC,EAAiB,CACnBC,QAASC,IACTC,QAAS,CACL,yBAA0B,MAC1B,eAAgB,qBAKpBC,EAAWC,IAAMC,OAAON,GAa5B,OAZAI,EAASG,YAAYF,IAAME,YAE1BH,EAASI,aAAaC,QAAQC,KAAI,SAAUC,GACzC,IAAMC,EAAQC,aAAaC,QAAQ,gBACnC,YAAWvD,IAARqD,GAA2B,KAARA,GAAoB,OAARA,EACvBG,OAAOC,SAASC,KAAO,WAE9BN,EAAOR,QAAQe,cAAgB,UAAYN,EAExCD,MAGJP,EAEKL,I,2EC3BhB,k1BAAO,IAWMG,EAAO,mDAEPiB,EAAgB,WAChB5E,EAAa,YACbR,EAA8B,oBAC9BqF,EAAe,eACfC,EAAU,QAGVC,EAAiB,gBAGjBC,EAAY,2BACZC,EAAS,uCACTC,EAAY,yCAGZC,EAAU,uCAGVC,EAAoB,uBACpBC,EAAoB,gBAUpBC,EAAW,qDAEXC,EAAY,IACZC,EAAc,SACdC,EAAW,OACXC,EAAa,UACbC,EAAc,WACdC,EAAoB,mBAEpBC,EAAY,gBAEZC,EAAS,CACpB,CAAEC,GAAI,YAAaC,OAAQ,OAAQC,MAAO,KAAMC,MAAO,OAAQC,OAAO,GACtE,CACEJ,GAAI,aACJC,OAAQ,QACRC,MAAO,KACPC,MAAO,QACPC,OAAO,GAET,CACEJ,GAAI,eACJC,OAAQ,UACRC,MAAO,KACPC,MAAO,UACPC,OAAO,GAET,CACEJ,GAAI,cACJC,OAAQ,SACRC,MAAO,KACPC,MAAO,SACPC,OAAO,GAET,CACEJ,GAAI,wBACJC,OAAQ,yBACRC,MAAO,KACPC,MAAO,YACPC,OAAO,GAET,CACEJ,GAAI,WACJC,OAAQ,iBACRC,MAAO,KACPC,MAAO,MACPC,OAAO,GAET,CACEJ,GAAI,eACJC,OAAQ,yBACRC,MAAO,KACPC,MAAO,cACPC,OAAO,GAET,CACEJ,GAAI,iBACJC,OAAQ,+BACRC,MAAO,KACPC,MAAO,YACPC,OAAO,GAET,CACEJ,GAAI,iBACJC,OAAQ,iCACRC,MAAO,KACPC,MAAO,YACPC,OAAO,GAET,CACEJ,GAAI,eACJC,OAAQ,oBACRC,MAAO,KACPC,MAAO,UACPC,OAAO,GAET,CACEJ,GAAI,oBACJC,OAAQ,WACRC,MAAO,KACPC,MAAO,eACPC,OAAO,GAET,CACEJ,GAAI,kBACJC,OAAQ,wBACRC,MAAO,KACPC,MAAO,MACPC,OAAO,IAoBEC,EAAW,CACtB,CACEC,EAAG,IACHC,EAAG,EACHC,EAAG,EACHC,EArBa,EAsBbC,EAtBa,EAsBC,IACdlH,IAAK,OACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,EACHC,EA/Ba,EAgCbC,EAhCa,EAgCC,IACdlH,IAAK,SACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,EACHC,EAzCa,EA0CbC,EA1Ca,EA0CC,IACdlH,IAAK,WACLmH,KAAM,EACNC,KAAM,EAAI,KAEZ,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,EACHC,EAnDa,EAoDbC,EApDa,EAoDC,IACdlH,IAAK,OACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,EACHC,EA7Da,EA8DbC,EA9Da,EA8DC,IACdlH,IAAK,OACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,EACHC,EAvEa,EAwEbC,EAxEa,EAwEC,IACdlH,IAAK,QACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,EACHC,EAjFa,EAkFbC,EAlFa,EAkFC,IACdlH,IAAK,QACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,EACHC,EA3Fa,EA4FbC,EA5Fa,EA4FC,IACdlH,IAAK,OACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,EACHC,EArGa,EAsGbC,EAtGa,EAsGC,IACdlH,IAAK,YACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,KACHC,EAAG,EACHC,EAAG,GACHC,EA/Ga,EAgHbC,EAhHa,EAgHC,IACdlH,IAAK,QACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,KACHC,EAAG,EACHC,EAAG,GACHC,EAzHa,EA0HbC,EA1Ha,EA0HC,IACdlH,IAAK,QACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,KACHC,EAAG,EACHC,EAAG,GACHC,EAnIa,EAoIbC,EApIa,EAoIC,IACdlH,IAAK,QACLmH,KAAM,EACNC,KAAM,IAGGC,EAAW,CACtB,CACEP,EAAG,IACHC,EAAG,EACHC,EAAG,EACHC,EA/Ia,EAgJbC,EAhJa,EAgJC,IACdlH,IAAK,OACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,EACHC,EAzJa,EA0JbC,EA1Ja,EA0JC,IACdlH,IAAK,SACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,EACHC,EAnKa,EAoKbC,EApKa,EAoKC,IACdlH,IAAK,WACLmH,KAAM,EACNC,KAAM,EAAI,KAEZ,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,EACHC,EA7Ka,EA8KbC,EA9Ka,EA8KC,IACdlH,IAAK,OACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,EACHC,EAvLa,EAwLbC,EAxLa,EAwLC,IACdlH,IAAK,OACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,EACHC,EAjMa,EAkMbC,EAlMa,EAkMC,IACdlH,IAAK,QACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,GACHC,EA3Ma,EA4MbC,EA5Ma,EA4MC,IACdlH,IAAK,QACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,GACHC,EArNa,EAsNbC,EAtNa,EAsNC,IACdlH,IAAK,OACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,GACHC,EA/Na,EAgObC,EAhOa,EAgOC,IACdlH,IAAK,YACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,KACHC,EAAG,EACHC,EAAG,GACHC,EAzOa,EA0ObC,EA1Oa,EA0OC,IACdlH,IAAK,QACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,KACHC,EAAG,EACHC,EAAG,GACHC,EAnPa,EAoPbC,EApPa,EAoPC,IACdlH,IAAK,QACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,KACHC,EAAG,EACHC,EAAG,GACHC,EA7Pa,EA8PbC,EA9Pa,EA8PC,IACdlH,IAAK,QACLmH,KAAM,EACNC,KAAM,IAIGE,EAAW,CACtB,CACER,EAAG,IACHC,EAAG,EACHC,EAAG,EACHC,EA1Qa,EA2QbC,EA3Qa,EA2QC,IACdlH,IAAK,OACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,EACHC,EApRa,EAqRbC,EArRa,EAqRC,IACdlH,IAAK,SACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,EACHC,EA9Ra,EA+RbC,EA/Ra,EA+RC,IACdlH,IAAK,WACLmH,KAAM,EACNC,KAAM,EAAI,KAEZ,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,GACHC,EAxSa,EAySbC,EAzSa,EAySC,IACdlH,IAAK,OACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,GACHC,EAlTa,EAmTbC,EAnTa,EAmTC,IACdlH,IAAK,OACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,GACHC,EA5Ta,EA6TbC,EA7Ta,EA6TC,IACdlH,IAAK,QACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,GACHC,EAtUa,EAuUbC,EAvUa,EAuUC,IACdlH,IAAK,QACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,GACHC,EAhVa,EAiVbC,EAjVa,EAiVC,IACdlH,IAAK,OACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,IACHC,EAAG,EACHC,EAAG,GACHC,EA1Va,EA2VbC,EA3Va,EA2VC,IACdlH,IAAK,YACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,KACHC,EAAG,EACHC,EAAG,GACHC,EApWa,EAqWbC,EArWa,EAqWC,IACdlH,IAAK,QACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,KACHC,EAAG,EACHC,EAAG,GACHC,EA9Wa,EA+WbC,EA/Wa,EA+WC,IACdlH,IAAK,QACLmH,KAAM,EACNC,KAAM,GAER,CACEN,EAAG,KACHC,EAAG,EACHC,EAAG,GACHC,EAxXa,EAyXbC,EAzXa,EAyXC,IACdlH,IAAK,QACLmH,KAAM,EACNC,KAAM,K,kEC7fGG,EAAU3B,IAEV4B,EAAa,CACtB9B,OAAQA,IACRE,SAAUA,IACVD,YAAYA,IACZ8B,UAAU,qCAAqC/B,IAC/CgC,UAAW,CACPC,IAAKJ,GAETK,cAAe,gBAGNC,EAAc,IAAIC,wBAAsBN,G,GAMrBO,wBAAcF,EAAaL,EAAWE,UAAUC,K,8OCrB3DK,E,qGAEjB,OAAOC,O,8CAGP,OAAOJ,I,8BAGPA,EAAYK,U,iCAIZ,QAAOD,KAAKE,Y,+BAIZN,EAAYO,W,iCAIZ,OAAOP,EAAYQ,eAAed,K,mLAK3BM,EAAYS,aAAad,EAAW5B,UAAU,WACnD,EAAK2C,e,0IAIP,OAAOV,EAAYW,iBAAiBhB,EAAW5B,UAAU,SAAAd,GACvD3D,QAAQsH,IAAI,c,gCAKd,OAAOZ,EAAYa,kB,kCAInB,OAAOC,YAAOV,KAAKM,c,iCAInB,IAAMK,EAASX,KAAKY,YAEpB,OAAID,EAAOE,eAAe,SACjBF,EAAOG,MAGT,O,+BAGAC,GACP,GAAIf,KAAKgB,WACP,IAAK,IAAInC,EAAI,EAAGA,EAAImB,KAAKgB,WAAWC,OAAQpC,IAC1C,GAAImB,KAAKgB,WAAWnC,KAAOkC,EAAM,OAAO,EAG5C,OAAO,M,qBCpDLG,E,kDAgBF,WAAYC,GAAQ,IAAD,8BACf,cAAMA,IACDC,MAAQ,CAACC,YAAa,MAC3B,EAAKC,eAAiB,IAAIvB,EAHX,E,mDAKZlF,GACHA,EAAE0G,iBACFvB,KAAKmB,MAAM3G,4BAA4B,MACvCwF,KAAKsB,eAAeE,W,sCAERC,EAAOC,EAAMC,GAIzB,GAFA3B,KAAKmB,MAAM9G,gBAAgBqH,GAExBA,EAAKE,SAEJ,OADAH,EAAMF,kBACC,EAIRG,EAAKG,SACJH,EAAKG,QAAQ,CAACC,cAAeL,EAAOC,KAAMA,IAG3CC,IAAU3B,KAAKoB,MAAMC,YACpBrB,KAAK+B,SAAS,CAACV,YAAa,OAE5BrB,KAAK+B,SAAS,CAACV,YAAaM,IAE7B3B,KAAKmB,MAAMa,iBACVhC,KAAKmB,MAAMa,gBAAgB,CACvBF,cAAeL,EACfC,KAAMA,M,wCAKHA,GACjB,IAAIO,EAAcP,EAAKQ,OAAS,mBAAGC,UAAU,gDACzCC,EAAQV,EAAKU,OAAS,sBAAMD,UAAU,iBAAhB,SAAkCT,EAAKU,QAEjE,OACC,eAAC,IAAMC,SAAP,WACC,mBAAGF,UAAWT,EAAKY,OACnB,iCAAQZ,EAAKa,MAAb,OACCN,EACAG,O,iCAKOV,EAAM7C,GAAI,IAAD,OACf2D,EAAUxC,KAAKyC,kBAAkBf,GACrC,OAAIA,EAAKgB,GAEP,cAAC,IAAD,CAASC,gBAAgB,gBAAgBD,GAAIhB,EAAKgB,GAAIE,QAAS,SAAC/H,GAAD,OAAO,EAAKmH,gBAAgBnH,EAAG6G,EAAM7C,IAAIgE,OAAO,EAAMC,OAAQpB,EAAKoB,OAAlI,SACiBN,IAMjB,mBAAGtF,KAAMwE,EAAK3J,IAAK6K,QAAS,SAAC/H,GAAD,OAAO,EAAKmH,gBAAgBnH,EAAG6G,EAAM7C,IAAIiE,OAAQpB,EAAKoB,OAAlF,SACEN,M,+BAOQ,IAAD,OACGO,EAAM/C,KAAKmB,MAAX4B,EACJb,EAAQlC,KAAKmB,MAAMe,OAASlC,KAAKmB,MAAMe,MAAMxG,KAAI,SAACgG,EAAM7C,GACxD,IAAImE,EAAS,EAAK5B,MAAMC,cAAgBxC,EACpCoE,EAAaC,IAAWxB,EAAKyB,gBAAiB,CAAC,kBAAmBH,IAAWtB,EAAKgB,KAItF,MAHgB,kBAAbhB,EAAKa,QACJb,EAAKa,MAAMQ,EAAE,kBAGb,qBAAIZ,UAAWc,EAAf,UACKvB,EAAKQ,QAA2B,IAAlB,EAAKf,MAAMiC,MAAe,qBAAKjB,UAAU,UACvD,EAAKkB,WAAW3B,EAAM7C,GACvB,cAACqC,EAAD,CAAYgB,MAAOR,EAAKQ,MAAOF,gBAAiB,EAAKb,MAAMa,oBAH/BnD,MAQrCmB,KAAKmB,MAAMmC,QACPtD,KAAKmB,MAAMmC,OAAOlK,MACb4G,KAAKmB,MAAMmC,OAAOlK,KAAK0H,MAgBnC,OAAOoB,EAAQ,qBAAIC,UAAWnC,KAAKmB,MAAMgB,UAA1B,UAAsCD,EAV7C,cAAC,WAAD,UACI,6BACI,eAAC,IAAD,CAASS,gBAAgB,eAAeD,GAAI,IAAKE,QAAS,SAAC/H,GAAD,OAAO,EAAKsF,OAAOtF,IAAIgI,OAAO,EAAxF,UACI,mBAAGV,UAAU,yBACb,+BAAOY,EAAE,sBAMgD,S,GAzH5DQ,aAAnBrC,EAEKsC,aAAe,CAClBrB,UAAW,KACXD,MAAO,KACPF,gBAAiB,KACjBoB,MAAM,GAuHd,IAIeK,eAJS,SAACC,GACrB,MAAO,CAACJ,OAAQI,EAAYvI,WAGQwI,EAAzBF,CAAwCG,YAAiB,eAAjBA,CAAkC1C,ICpInF2C,E,uKAWF,OACE,qBAAK1B,UAAU,wBAAf,SACE,cAAC,EAAD,CACED,MAAOlC,KAAKmB,MAAM2C,MAClB3B,UAAU,cACVH,gBAAiBhC,KAAKmB,MAAMa,gBAC5BoB,MAAM,U,GAjBMG,aAAhBM,EACGL,aAAe,CACpBM,MAAO,KACP9B,gBAAiB,MAqBrB,IAIeyB,eAJS,SAAAC,GACtB,MAAO,CAAEJ,OAAQI,EAAYvI,WAK7BwI,EAFaF,CAGbG,YAAgB,eAAhBA,CAAgCC,IC/B5BE,E,kDAEF,WAAY5C,GAAQ,IAAD,8BACf,cAAMA,IACDC,MAAQ,CACT4C,UAAU,EACVC,WAAoC,OAAzB,EAAK9C,MAAMmC,OAAOlK,KAAY,EAAK+H,MAAMmC,OAAOlK,KAAK6K,WAAW,MAE/E,EAAKrB,QAAU,EAAKA,QAAQsB,KAAb,gBACf,EAAK5C,eAAiB,IAAIvB,EAPX,E,wGAaf,IAAM3G,EAAM4G,KAAKmB,MAAMmC,OAAOlK,UACpBI,IAAPJ,GAA2B,OAAPA,GACnB4G,KAAK+B,SAAS,CACVkC,WAAY7K,EAAK6K,e,8BAIrBxC,GACJzB,KAAK+B,SAAS,CAACiC,UAAWhE,KAAKoB,MAAM4C,WACrCvC,EAAMF,mB,iCAIN,OACI,gCACI,yBAAQY,UAAU,6BAA6BS,QAAS5C,KAAK4C,QAA7D,UACI,sBAAMT,UAAU,WAAhB,SAA4BnC,KAAKoB,MAAM6C,aACvC,mBAAG9B,UAAU,uBAEjB,oBAAIA,UAAWe,IAAW,CAAC,0BAA2BlD,KAAKoB,MAAM4C,WAAjE,SACI,8B,+BASZ,OACI,qBAAK7B,UAAU,iBAAf,SACI,qBAAKA,UAAU,GAAf,SACI,sBAAMA,UAAU,YAAhB,SAA6BnC,KAAKoB,MAAM6C,qB,GA/CnCV,aAyDVE,eAHS,SAACC,GACrB,MAAO,CAACJ,OAAQI,EAAYvI,WAEQwI,EAAzBF,CAAwCG,YAAiB,eAAjBA,CAAkCG,I,2CCd1EN,eAHS,SAACC,GACrB,MAAO,CAACJ,OAAQI,EAAYvI,WAEQwI,EAAzBF,CAAwCG,YAAiB,eAAjBA,EA1C7B,SAACzC,EAAMmC,GAAY,IAClCP,EAAGoB,cAAHpB,EADiC,EAEVqB,oBAAS,GAFC,mBAEjCC,EAFiC,KAExBC,EAFwB,KAGlCC,EAAQC,iBAAO,MAWrB,OACI,eAAC,WAAD,WACI,cAAC,QAAD,CAAOC,IAAKF,IACZ,cAAC,gBAAD,CAAeF,QAASA,EACpBK,OAAQ,kBAAMJ,GAAW,IACzBK,QAAS5B,EAAE,qCACX6B,OAAQ7B,EAAE,gBACVT,KAAK,6BACLuC,YAAa9B,EAAE,MACf+B,YAAa/B,EAAE,MACfgC,OAAQ,kBAlBhBR,EAAMS,QAAQC,KAAK,CAAEC,SAAU,OAAQC,QAASpC,EAAE,aAAcqC,OAAQrC,EAAE,qBAAsBsC,KAAM,WACtGlE,EAAMmE,eAAc,IAkBZC,OAAQ,WAdhBhB,EAAMS,QAAQC,KAAK,CAAEC,SAAU,OAAQC,QAASpC,EAAE,YAAaqC,OAAQrC,EAAE,qBAAsBsC,KAAM,SAejG,eAAC,SAAD,CAAQlD,UAAW,4BACfS,QAAS,kBAAM0B,GAAW,IAC1BkB,QAASzC,EAAE,mCACX0C,eAAgB,CAACC,SAAU,OAAOvD,UAAW,cAHjD,UAMI,mBAAGA,UAAU,kBACb,uBAAOA,UAAU,4BAAjB,SAA8CY,EAAE,wBCoFjDU,G,cAAAA,aAHS,SAACC,GACrB,MAAO,CAACJ,OAAQI,EAAYvI,WAEQwI,EAAzBF,CAAwCG,YAAiB,eAAjBA,EA/GrC,SAACN,EAAD,EAAmDnC,GAAU,EAApDwE,qBAAoD,EAA/BC,OAA+B,EAAxBC,aAAyB,IACtEC,EAAOtB,iBAAO,MACZzB,EAAMoB,cAANpB,EACFwB,EAAQC,iBAAO,MAHsD,EAI7CJ,oBAAS,GAJoC,mBAIpEC,EAJoE,KAI3DC,EAJ2D,KAqF3E,OACI,sBAAKnC,UAAW,YAAhB,UACI,wBAAQA,UAAU,6BAA6BS,QAAS,SAACnB,GAAD,OAAWqE,EAAKd,QAAQe,OAAOtE,IAAvF,SACI,mBAAGU,UAAU,sBAEjB,gCACA,eAAC,WAAD,WACI,cAAC,QAAD,CAAOsC,IAAKF,IACZ,cAAC,gBAAD,CAAeF,QAASA,EACpBK,OAAQ,kBAAMJ,GAAW,IACzBK,QAAS5B,EAAE,qCACX6B,OAAQ7B,EAAE,gBACVT,KAAK,6BACLuC,YAAa9B,EAAE,MACf+B,YAAa/B,EAAE,MACfgC,OAAQ,kBA7FpBR,EAAMS,QAAQC,KAAK,CAAEC,SAAU,OAAQC,QAASpC,EAAE,aAAcqC,OAAQrC,EAAE,qBAAsBsC,KAAM,WACtG/B,EAAOsC,UA6FKL,OAAQ,WAzFpBhB,EAAMS,QAAQC,KAAK,CAAEC,SAAU,OAAQC,QAASpC,EAAE,YAAaqC,OAAQrC,EAAE,qBAAsBsC,KAAM,YA2F7F,cAAC,OAAD,CAAMvB,MAxFJ,CACV,CACIvB,MAAQ,oBAAGJ,UAAU,iBAAb,UACI,sBAAMA,UAAU,yBAAhB,SAAyC,sBAAMA,UAAU,yBAAhB,SAA0CY,EAAE,eACrF,yBAAQiD,SAAU,SAACnL,GAAD,OAAKyI,EAAO2C,sBAAsBpL,IAAI4D,MAAO6E,EAAO4C,cAAtE,UACA,wBAAQzH,MAAM,IAAd,SACK,KAAKsE,EAAE,YAEZ,wBAAQtE,MAAM,IAAd,SACK,KAAKsE,EAAE,YAEZ,wBAAQtE,MAAM,IAAd,SACK,KAAKsE,EAAE,SAEZ,wBAAQtE,MAAM,IAAd,SACK,KAAKsE,EAAE,WAEZ,wBAAQtE,MAAM,IAAd,SACK,KAAKsE,EAAE,WAEZ,wBAAQtE,MAAM,IAAd,SACK,KAAKsE,EAAE,kBAIxBb,MAAO,IAEX,CACIK,MAAQ,mBAAGJ,UAAU,oBAAb,SAAiC,sBAAMA,UAAU,yBAAhB,SAA0CY,EAAE,cACrFb,MAAO,CAAE,CACLK,MACI,gCACI,qBAAK4D,IAAI,oCAAoCC,IAAI,GAAGC,MAAO,CAACC,MAAM,UAClE,sBAAMnE,UAAU,wBAAhB,SAAyCY,EAAE,mBAEnDlB,QAAS,WAAKyB,EAAOqC,qBAAqB,QAE9C,CACIpD,MACI,gCACI,qBAAK4D,IAAI,mCAAmCC,IAAI,GAAGC,MAAO,CAACC,MAAM,UACjE,sBAAMnE,UAAU,yBAAhB,SAA0CY,EAAE,eAEpDlB,QAAS,WAAKyB,EAAOqC,qBAAqB,QAE9C,CACIpD,MACI,gCACI,qBAAK4D,IAAI,wCAAwCC,IAAI,GAAGC,MAAO,CAACC,MAAM,UACtE,sBAAMnE,UAAU,yBAAhB,SAA0CY,EAAE,kBAEpDlB,QAAS,WAAKyB,EAAOqC,qBAAqB,SAE9C,CACIpD,MACI,gCACI,qBAAK4D,IAAI,sCAAsCC,IAAI,GAAGC,MAAO,CAACC,MAAM,UACpE,sBAAMnE,UAAU,yBAAhB,SAA0CY,EAAE,gBAEpDlB,QAAS,WAAKyB,EAAOqC,qBAAqB,WAIlD,CACIzD,MAAO,CAAC,CAACK,MAAO,mBAAGJ,UAAU,gBAAb,SAA6B,sBAAMA,UAAU,yBAAhB,SAA0CY,EAAE,gBAAwBlB,QAAQ,WAAKyC,GAAW,OAE7I,CACIpC,MAAO,CAAC,CAACK,MAAQ,mBAAGJ,UAAU,eAAb,SAA4B,sBAAMA,UAAU,yBAAhB,SAA0CY,EAAE,kBAA0BlB,QAAQ,WAAKyB,EAAOuC,oBAqB9GU,OAAK,EAAC9B,IAAKqB,EAAMvH,GAAG,aAAa4D,UAAW,+BC3G3EqE,E,kDACJ,aAAe,IAAD,8BACZ,gBACKpF,MAAQ,CACX4C,UAAU,EACVyC,gBAAgB,EAChBC,eAAe,GAEjB,EAAK9D,QAAU,EAAKA,QAAQsB,KAAb,gBACf,EAAK4B,KAAOa,IAAMC,YARN,E,gEAWZ5G,KAAK+B,SAAS,CAAE0E,eAAgBzG,KAAKmB,MAAMmC,OAAOuD,oB,4CAW9BpF,GAEpBzB,KAAKmB,MAAM2F,gBAAgBrF,EAAMqB,OAAOrE,S,8BAElCgD,GACNzB,KAAK+B,SAAS,CAAEiC,UAAWhE,KAAKoB,MAAM4C,WACtCvC,EAAMF,mB,qCAEOwF,GACb/G,KAAKmB,MAAMwE,qBAAqBoB,K,+BAGxB,IAAD,OACChE,EAAM/C,KAAKmB,MAAX4B,EAwEJiE,EAAiB,WACnB,MAAO,CACL,CACEzE,MACE,yBAAQJ,UAAU,4BAAlB,UACE,qBACEgE,IAAI,oCACJC,IAAI,GACJC,MAAO,CAAEC,MAAO,UAElB,sBAAMnE,UAAU,uCAAhB,SACGY,EAAE,mBAITlB,QAAS,kBAAM,EAAKoF,eAAe,QAErC,CACE1E,MACE,yBAAQJ,UAAU,4BAAlB,UACE,qBACEgE,IAAI,mCACJC,IAAI,GACJC,MAAO,CAAEC,MAAO,UAElB,sBAAMnE,UAAU,sCAAhB,SACGY,EAAE,eAITlB,QAAS,kBAAM,EAAKoF,eAAe,QAErC,CACE1E,MACE,yBAAQJ,UAAU,4BAAlB,UACE,qBACEgE,IAAI,wCACJC,IAAI,GACJC,MAAO,CAAEC,MAAO,UAElB,sBAAMnE,UAAU,sCAAhB,SACGY,EAAE,kBAITlB,QAAS,kBAAM,EAAKoF,eAAe,SAErC,CACE1E,MACE,yBAAQJ,UAAU,4BAAlB,UACE,qBACEgE,IAAI,sCACJC,IAAI,GACJC,MAAO,CAAEC,MAAO,UAElB,sBAAMnE,UAAU,uCAAhB,SACGY,EAAE,gBAITlB,QAAS,kBAAM,EAAKoF,eAAe,WAKzC,OACE,sBAAK9E,UAAU,yBAAf,UACE,wBACEA,UAAU,4BACVS,QAAS5C,KAAKmB,MAAM+F,aAFtB,SAIE,sBAAM/E,UAAU,iBAElB,sBAAKA,UAAU,8CAAf,UA9IA,qBACEA,UAAU,YACVkE,MAAO,CACLc,WAAY,EAAKhG,MAAMmC,OAAOuD,gBAC1B,UACA,UALR,SAQE,sBAAK1E,UAAU,eAAf,UACE,uBAAOA,UAAU,wCAAjB,SACGY,EAAE,aAEL,yBACEiD,SAAU,EAAKC,sBAAsB/B,KAAK,GAC1CzF,MAAO,EAAK0C,MAAM+E,cAFpB,UAIE,wBAAQzH,MAAM,IAAd,SAAmB,KAAOsE,EAAE,YAC5B,wBAAQtE,MAAM,IAAd,SAAmB,KAAOsE,EAAE,YAC5B,wBAAQtE,MAAM,IAAd,SAAmB,KAAOsE,EAAE,WAC5B,wBAAQtE,MAAM,IAAd,SAAmB,KAAOsE,EAAE,cAG9B,cAACqE,EAAD,CACE9B,cAAe,kBAAM,EAAKnE,MAAMkG,cAAa,MAG/C,eAAC,SAAD,CACExN,KAAK,SACLsI,UAAU,6BACVqD,QAASzC,EAAE,wBACX0C,eAAgB,CAAEC,SAAU,QAC5B9C,QAAS,kBAAM,EAAKzB,MAAM0E,gBAL5B,UAOE,mBAAG1D,UAAU,iBACb,uBAAOA,UAAU,4BAAjB,SACGY,EAAE,wBAUX,eAAC,WAAD,WACE,qBAAKZ,UAAW,YAAhB,SACE,eAAC,SAAD,CACEA,UAAU,6BACVS,QAAS,SAAAnB,GAAK,OAAI,EAAKqE,KAAKd,QAAQe,OAAOtE,IAC3C+D,QAASzC,EAAE,sBACX0C,eAAgB,CAAEC,SAAU,QAJ9B,UAME,mBAAGvD,UAAU,sCACb,uBAAOA,UAAU,aAAjB,SAA+BY,EAAE,iBAGrC,8BACE,cAAC,OAAD,CACEe,MAAOkD,IACPT,OAAK,EACL9B,IAAK,EAAKqB,KACVvH,GAAG,aACH4D,UAAW,qCAmFjB,qBAAKA,UAAU,8CAAf,SACE,cAAC,EAAD,CACEyD,OAAQ,WACN,EAAKzE,MAAMkG,cAAa,IAE1B1B,qBAAsB3F,KAAKiH,eAAe/C,KAAKlE,MAC/C6F,aAAc,WACZ,EAAK1E,MAAM0E,gBAEbI,sBAAuBjG,KAAKiG,sBAAsB/B,KAAKlE,MACvDkG,cAAelG,KAAKmB,MAAM+E,yB,GAnMd3C,aAAlBiD,EAcGhD,aAAe,CACpB0D,aAAc,KACdvB,qBAAsB,MA0L1B,IAGelC,eAHS,SAAAC,GACtB,MAAO,CAAEJ,OAAQI,EAAYvI,WAI7BwI,EAFaF,CAGbG,YAAgB,eAAhBA,CAAgC4C,I,iCClN5Bc,E,kDACJ,WAAYnG,GAAQ,IAAD,8BACjB,cAAMA,IAEDC,MAAQ,CACXmG,cAAe,KACfC,SAAU,KACVC,KAAM,KACNxD,WAAY,KACZnD,MAAO,KACP4G,SAAU,KACVC,cAAe,KACfC,KAAK,EACL/K,MAAO,KACPgL,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,QAAQ,EACRC,WAAW,EACXC,KAAK,EACLC,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,UAAW,KACXC,WAAY,KACZC,aAAc,KACdC,YAAa,KACbC,SAAU,KACVC,sBAAuB,KACvBC,aAAc,KACdC,eAAgB,KAChBC,eAAgB,KAChBC,QAAS,CAAC,MAAO,MACjBzK,OAAQA,KAGV,EAAKgD,eAAiB,IAAIvB,EAC1B,EAAKiJ,gBAAkB,EAAKA,gBAAgB9E,KAArB,gBApCN,E,iLAwCwB,OAArClE,KAAKmB,MAAMmC,OAAO2F,gBACpBjJ,KAAK+B,SAAS,CAAEzD,OAAQ0B,KAAKmB,MAAMmC,OAAO2F,iBAE5CjJ,KAAKkJ,e,SACClJ,KAAKsB,eAAejB,e,OAE1BL,KAAKgJ,kBACLhJ,KAAKmB,MAAMjH,yBAAwB,GACnC8F,KAAKmB,MAAM7G,cAAc,I,2IAIzB,IAAMlB,EAAO4G,KAAKmB,MAAMmC,OAAOlK,UAClBI,IAATJ,GAA+B,OAATA,GACxB4G,KAAK+B,SAAS,CACZyF,SAAUpO,EAAKoO,SACfC,KAAMrO,EAAKqO,KACXxD,WAAY7K,EAAK6K,WACjBkF,YAAa/P,EAAK+P,YAClBrI,MAAO1H,EAAK0H,MACZ4G,SAAUtO,EAAKsO,SACfC,cAAevO,EAAKuO,cACpB9K,MAAOzD,EAAKyD,U,wCAMbmD,KAAKsB,eAAe8H,YACc,OAAnCpJ,KAAKsB,eAAehB,YAEpBN,KAAKsB,eAAejB,iB,mCAIXxF,GACXmF,KAAK+B,SAAS,CAAEuG,UAAWzN,EAAE4D,U,uCAEd5D,GACf,IAAIwO,EAAO,GACK,OAAZxO,EAAE4D,OACJ6K,MAAM,uBAGRtJ,KAAKoB,MAAM9C,OAAOiL,SAAQ,SAAUC,EAAUC,GACxCD,EAASjL,KAAQ1D,EAAEiI,OAAOvE,GAC5B8K,EAAKK,KAAK,CACRnL,GAAIiL,EAASjL,GACbC,OAAQgL,EAAShL,OACjBC,MAAO5D,EAAE4D,MACTC,MAAO8K,EAAS9K,MAChBC,MAAO6K,EAAS7K,QAGlB0K,EAAKK,KAAKF,MAGdxJ,KAAK+B,SAAS,CAAEzD,OAAQ+K,IACxBrJ,KAAK+B,SAAL,eAAiBlH,EAAEiI,OAAOvE,GAAK1D,EAAE4D,QACjCuB,KAAKmB,MAAMhH,kBAAkBkP,K,+BAGtBxO,GACP,IAAIwO,EAAO,GACXrJ,KAAKoB,MAAM9C,OAAOiL,SAAQ,SAACC,EAAUC,GAC/BD,EAAS9K,QAAW7D,EAAEiI,OAAOvE,GAC/B8K,EAAKK,KAAK,CACRnL,GAAIiL,EAASjL,GACbC,OAAQgL,EAAShL,OACjBC,MAAO5D,EAAE4D,MACTC,MAAO8K,EAAS9K,MAChBC,OAAQ6K,EAAS7K,QAGnB0K,EAAKK,KAAKF,MAUdxJ,KAAK+B,SAAS,CAAEzD,OAAQ+K,IACxBrJ,KAAKmB,MAAMhH,kBAAkBkP,K,+BAGrB,IAAD,OAECtG,EAAM/C,KAAKmB,MAAX4B,EAeR,OACE,qBAAKZ,UAAU,SAAf,SACE,sBAAKA,UAAU,WAAf,UACE,qBAAKA,UAAU,yBAAf,SACE,qBACEA,UAAU,WACVgE,IAAI,wCACJC,IAAI,OAIR,qBAAKjE,UAAU,wBAAf,SACE,gCACGY,EAAE,sCACH,gCACE,gCA5BH,EAAK3B,MAAM9C,OAAO5C,KAAI,SAACiO,EAAYhI,GAAb,OAC3B,qBAA4BQ,UAAU,4BAAtC,UACE,oBAAIA,UAAU,kBAAd,SAAiCY,EAAE4G,EAAWnL,UAC9C,oBAAI2D,UAAU,kBAAd,SACE,cAAC,cAAD,CACE5D,GAAIoL,EAAWjL,MACfkL,QAASD,EAAWhL,MACpBqH,SAAU,SAAAnL,GAAC,OAAI,EAAKgP,SAAShP,UAN1B8O,EAAWnL,wBAaOwB,KAAKoB,MAAMwG,S,GAnJxBrE,aA6KPE,eAHS,SAAAC,GACtB,MAAO,CAAEJ,OAAQI,EAAYvI,WAI7BwI,EAFaF,CAGbG,YAAgB,eAAhBA,CAAgC0D,I,mEC8B5BwC,GAAqBnG,EAEZF,gBALS,SAAAC,GACtB,MAAO,CAAEJ,OAAQI,EAAYvI,WAM7B2O,GAFarG,CAGbG,YAAgB,eAAhBA,EAhNiB,SAAAN,GAAW,IACpBP,EAAMoB,cAANpB,EACRgH,qBAAU,WAoBRzG,EAAOpJ,yBAAwB,GAC/BoJ,EAAOhJ,cAAc,CACnBiI,MAAOe,EAAO0G,gBACdjS,IAAKuL,EAAO2G,kBApBb,IAEHF,qBAAU,WAAO,IAAD,EACc,GAA5B,UAAIzG,EAAOA,cAAX,aAAI,EAAe/J,UACjB2Q,EAAiB,UAAC5G,EAAOA,cAAR,aAAC,EAAe/J,QAAQ,MAG1C,CAAC+J,EAAOA,SAEXyG,qBAAU,WAAO,IAAD,EACc,GAA5B,UAAIzG,EAAOA,cAAX,aAAI,EAAe/J,UACjB2Q,EAAiB,UAAC5G,EAAOA,cAAR,aAAC,EAAe/J,QAAQ,MAG1C,CAAC+J,EAAOA,SAnBgB,MA4BHc,oBAAS,GA5BN,mBA4BpByD,EA5BoB,KA4BdsC,EA5Bc,KA6BrBC,EAAY9G,EAAOA,OAAO/J,QACY,WAAxC6Q,GAAmB,OAATA,QAAS,IAATA,OAAA,EAAAA,EAAWnJ,QAAS,GAAGyB,IACnC0H,EAAUC,OAAOD,EAAUnJ,OAAS,EAAG,GA/Bd,MAiCiBmD,mBAC5B,OAAdgG,EAAqBA,EAAU,GAAK,MAlCX,mBAiCpBE,EAjCoB,KAiCJJ,EAjCI,KAuCrBK,EACU,OAAdH,GACAA,EAAU1O,KAAI,SAAUgK,EAAU/D,GAChC,MAAoB,WAAhB+D,EAAShD,GACJ,KAGL,cAAC8H,GAAA,EAAD,CAAoB9E,SAAU,CAACA,EAAS+E,QAAS/E,EAASgF,UAA1D,SACE,cAACC,GAAA,EAAD,UACE,sBAAKxI,UAAU,SAAf,UACE,6BAAKuD,EAASlH,SACd,8BACE,cAAC,IAAD,CACEmE,gBAAgB,eAChBD,GAAIgD,EAAShD,GACbG,OAAO,EACPD,QAAS,SAAA/H,GACPA,EAAE0G,iBACFqJ,EAAelF,IANnB,SASE,+BAAO3C,EAAE,4BAGb,8BACE,cAAC,IAAD,CACEJ,gBAAgB,eAChBD,GAAIgD,EAAShD,GACbE,QAAS,kBA/BHjH,EA+ByB+J,OA9B/CpC,EAAOjJ,gBAAgBsB,GADD,IAAAA,GAgCNkH,OAAO,EAJT,SAME,+BAAOE,EAAE,4BAxBNpB,MAkCfiJ,EAAiB,SAAAlF,GAEnB4E,EAAeG,UAAY/E,EAAS+E,SACpCH,EAAeI,WAAahF,EAASgF,SAErCP,GAAStC,GAETqC,EAAkBxE,IAIhBmF,EAAmB,SAAAC,GACvB,OAAOC,EAAahI,EAAE,UAAW+H,EAAQvI,QAErCyI,EAAmB,SAAAF,GACvB,OAAOC,EAAahI,EAAE,iBAAkB+H,EAAQG,OAE5CC,EAAyB,SAAAJ,GAC7B,OAAOC,EAAahI,EAAE,eAAgB+H,EAAQK,aAE1CC,EAAwB,SAAAN,GAC5B,OAAOC,EAAahI,EAAE,aAAc+H,EAAQO,YAExCC,EAAmB,SAAAR,GACvB,OAAOC,EAAahI,EAAE,QAAS+H,EAAQS,OAEnCR,EAAe,SAACxI,EAAOiJ,GAC3B,OACE,eAAC,IAAMnJ,SAAP,WACE,sBAAMF,UAAU,iBAAhB,SAAkCI,IACjCiJ,MAwFP,OA/BoB,OAAdpB,QAAuC5Q,IAAjB4Q,EAAU,GAEhC,qBAAKjI,UAAU,4BAAf,SACE,qBAAKA,UAAU,wBAAf,yBAKF,sBAAKA,UAAU,4BAAf,UACE,qBAAKA,UAAU,wBAAf,SACsB,OAAnBmI,EACC,eAACmB,GAAA,EAAD,CACEC,OAAQ,CAACpB,EAAeG,QAASH,EAAeI,UAChDiB,KAAM,EAFR,UAKE,cAACC,GAAA,EAAD,CACEC,YAAY,yEACZ9T,IAAI,uDAELwS,IANI1C,GASP,cAAC,KAAD,MAzER,qBAAK1F,UAAU,4BAAf,SACE,qBAAKA,UAAU,OAAf,SACE,eAAC,aAAD,CACE1D,MAAO2L,EACPjI,UAAU,qCACV2J,kBAAmB,SAAAjR,GAAC,OAAI+P,EAAe/P,EAAE4D,QACzCsN,cAAc,SACdC,QAAQ,KACRC,WAAS,EACTC,kBAAkB,uGAClBC,0BAA0B,GAC1BC,KAAM,GACNC,mBAAoB,CAAC,GAAI,GAAI,IAV/B,UAYE,cAAC,UAAD,CACEb,MAAM,QACN5G,OAAQ7B,EAAE,UACVuJ,UAAQ,EACRC,KAAM1B,IAER,cAAC,UAAD,CACEW,MAAM,OACN5G,OAAQ7B,EAAE,iBACVuJ,UAAQ,EACRC,KAAMvB,IAER,cAAC,UAAD,CACEQ,MAAM,aACN5G,OAAQ7B,EAAE,eACVuJ,UAAQ,EACRC,KAAMrB,IAER,cAAC,UAAD,CACEM,MAAM,YACN5G,OAAQ7B,EAAE,aACVuJ,UAAQ,EACRC,KAAMnB,IAER,cAAC,UAAD,CACEI,MAAM,OACN5G,OAAQ7B,EAAE,QACVuJ,UAAQ,EACRC,KAAMjB,kB,oBClHL7H,eACb,MATyB,SAAA9J,GAAQ,OACjC6S,YACE,CACExR,yBAEFrB,KAGW8J,CAGbG,YAAgB,eAAhBA,EApDa,SAAC,GAA2C,IAAzCb,EAAwC,EAAxCA,EAAG/H,EAAqC,EAArCA,WAAYO,EAAyB,EAAzBA,YAAagJ,EAAY,EAAZA,MACtCwE,EAAU,CAAChG,EAAE,aAAcA,EAAE,iBAC7B0J,EAAmB,uCAAG,WAAMhO,GAAN,mBAAA7E,EAAA,6DACpB8S,EAASjO,IAAUsE,EAAE,aADD,kBAGlB/H,EAAW,2BAAKO,GAAN,IAAmBmR,YAHX,OAInB,OAALnI,QAAK,IAALA,GAAA,UAAAA,EAAOS,eAAP,SAAgBC,KAAK,CACnBC,SAAU,OACVC,QAASpC,EAAE,aACXqC,OAAQrC,EAAE,iCACVsC,KAAM,MARgB,sDAWnB,OAALd,QAAK,IAALA,GAAA,UAAAA,EAAOS,eAAP,SAAgBC,KAAK,CACnBC,SAAU,QACVC,QAASpC,EAAE,YACXqC,OAAQrC,EAAE,oCACVsC,KAAM,MAEF,IAAIjN,MAAJ,MAjBkB,yDAAH,sDAoBzB,OACE,sBAAK+J,UAAU,6BAAf,UACE,qBACEA,UAAU,YACVkE,MAAO,CAAEsG,UAAW,mBAAoBC,YAAa,OAFvD,UAIG,IACA7J,EAAE,sBALL,OAOA,cAAC,gBAAD,CACEZ,UAAU,WACV1D,OAAkB,OAAXlD,QAAW,IAAXA,OAAA,EAAAA,EAAamR,QAAS3J,EAAE,aAAeA,EAAE,gBAChDgG,QAASA,EACT/C,SAAU,SAAAnL,GAAC,OAAI4R,EAAoB5R,EAAE4D,iBCiB9BgF,eAAQ,MARI,SAAA9J,GAAQ,OACjC6S,YACE,CACExR,yBAEFrB,KAGW8J,EArDO,SAAC,GAA2C,IAAD,MAAxClI,EAAwC,EAAxCA,YAAaP,EAA2B,EAA3BA,WAAY+H,EAAe,EAAfA,EAAGwB,EAAY,EAAZA,MAE7CsI,EAAc,uCAAG,WAAMC,GAAN,iBAAAlT,EAAA,+EAEboB,EAAW,2BACZO,GADW,IAEduR,IAAKA,EAAIC,iBAJQ,OAMd,OAALxI,QAAK,IAALA,GAAA,UAAAA,EAAOS,eAAP,SAAgBC,KAAK,CACnBC,SAAU,OACVC,QAASpC,EAAE,aACXqC,OAAQrC,EAAE,8BACVsC,KAAM,MAVW,+CAad,OAALd,QAAK,IAALA,GAAA,UAAAA,EAAOS,eAAP,SAAgBC,KAAK,CACnBC,SAAU,QACVC,QAASpC,EAAE,YACXqC,OAAQrC,EAAE,iCACVsC,KAAM,MAjBW,wDAAH,sDAsBpB,OACE,sBAAKlD,UAAU,qCAAf,UACE,qBACEA,UAAU,kCACVkE,MAAO,CAAE2G,aAAc,OAFzB,UAIGjK,EAAE,sBAJL,YAI8BxH,QAJ9B,IAI8BA,OAJ9B,EAI8BA,EAAaiD,UAE3C,cAAC,gBAAD,CACE2D,UAAU,WACV1D,OACa,OAAXlD,QAAW,IAAXA,GAAA,UAAAA,EAAauR,WAAb,mBAAkBG,OAAO,UAAzB,eAA6BC,gBAA7B,OACA3R,QADA,IACAA,GADA,UACAA,EAAauR,WADb,aACA,EAAkBK,MAAM,IAE1BpE,QArCQ,CAAC,gBAAiB,UAAW,WAsCrC/C,SAAU,SAAAnL,GAAC,OAAIgS,EAAehS,EAAE4D,gBCHzB2O,I,OApCW,WAAO,IAAD,EACAhJ,oBAAS,GADT,mBACvBvI,EADuB,KACdwR,EADc,KAEtBtK,EAAMoB,cAANpB,EAEFuK,EAAgB,uCAAG,8BAAA1T,EAAA,6DACvByT,GAAW,GACLE,EAAoBnQ,IAAgB,gCAFnB,SAGjBoQ,IAAoBvU,IAAIsU,GAHP,cAKjBE,EACJrQ,IAAgB,qCANK,SAOjBoQ,IAAoBvU,IAAIwU,GAPP,OASvBJ,GAAW,GATY,2CAAH,qDAYtB,OACE,8BACE,eAAC,SAAD,CACExT,KAAK,SACLsI,UAAS,kDACPtG,GAAW,uBAEb+G,QAAS0K,EACTjH,MAAO,CACLqH,gBAAiB,UACjBC,MAAO,WARX,UAWE,mBAAGxL,UAAS,aAAQtG,EAAU,qBAAuB,eACrD,uBAAOsG,UAAU,iBAAjB,SAAmCY,EAAE,oC,UC4D9BU,gBAZS,SAAAC,GAAW,MAAK,CACtCnK,QAASmK,EAAYvI,QAAQC,cAAc7B,YAGlB,SAAAI,GAAQ,OACjC6S,YACE,CACEhR,+CAEF7B,KAGW8J,CAGbG,YAAgB,eAAhBA,EAzFqB,SAAC,GAAqD,IAAnDrK,EAAkD,EAAlDA,QAASgC,EAAyC,EAAzCA,YAAaC,EAA4B,EAA5BA,sBACtCuH,EAAMoB,cAANpB,EADkE,EAE5BqB,mBAAQ,OAAC7I,QAAD,IAACA,OAAD,EAACA,EAAahC,SAFM,mBAEnEkC,EAFmE,KAElDmS,EAFkD,OAG9BxJ,oBAAS,GAHqB,mBAGnEyJ,EAHmE,KAGnDC,EAHmD,KAK1E/D,qBAAU,WACR6D,EAAkB,OAACrS,QAAD,IAACA,OAAD,EAACA,EAAahC,SAChCuU,GAAkB,KACjB,CAACvS,IAUJ,OACE,eAAC,WAAD,WACE,sBAAK4G,UAAU,kBAAf,UACE,qBAAIA,UAAU,YAAYkE,MAAO,CAAE2G,aAAc,QAAjD,UACGjK,EAAE,sBADL,YAC8BxH,QAD9B,IAC8BA,OAD9B,EAC8BA,EAAaiD,UAE3C,gCACE,cAAC,eAAD,CACEC,MAAOhD,GAAmB,GAC1BsN,QAASxP,GAAW,GACpByM,SAAU,SAAAnL,GACR+S,EAAmB/S,EAAEiI,OAAOrE,OAC5BqP,GAAkB,IAEpBC,YAAY,SACZC,YAAajL,EAAE,0BACfkL,mBAAoB,OAASlL,EAAE,yBAC/BmL,QAAQ,EACR/L,UAAW,aAEb,cAAC,SAAD,CACEI,MAAOQ,EAAE,WACTH,QA9BiB,WACzB,IACEpH,EAAsBD,EAAaE,GACnC,MAAOZ,GACP3B,QAAQC,MAAM0B,KA2BR+G,UAAWiM,EACX1L,UAAU,0CACVkE,MAAO,CACLqH,gBAAiB,UACjBC,MAAO,UACPhB,UAAW,gCAKnB,qBAAKtG,MAAO,CAAE8H,QAAS,QAAvB,UACc,OAAX5S,QAAW,IAAXA,OAAA,EAAAA,EAAahC,SACZ,qBAAK4I,UAAU,4BAAf,SACE,eAAC,aAAD,CACE1D,MAAOlD,EAAYhC,QACnB6U,SAAS,IACTjM,UAAU,qCACV4J,cAAc,SACdC,QAAQ,KALV,UAOE,cAAC,UAAD,CAAQR,MAAM,SAAS5G,OAAQ7B,EAAE,YACjC,cAAC,UAAD,CAAQyI,MAAM,eAAe5G,OAAQ7B,EAAE,mBACvC,cAAC,UAAD,CAAQyI,MAAM,aAAa5G,OAAQ7B,EAAE,sBAIzC,iCCkBKa,eAAgB,eAAhBA,EAzFO,SAAC,GAIhB,IAHLjJ,EAGI,EAHJA,MACAG,EAEI,EAFJA,oCACAF,EACI,EADJA,eAEQmI,EAAMoB,cAANpB,EAwCR,OACE,sBAAKZ,UAAU,4BAAf,UACE,qBAAKA,UAAU,SACf,eAAC,aAAD,CACE1D,MAAO9D,EACPyT,SAAS,IACTjM,UAAU,qCACV2J,kBAAmB,SAAAjR,GAAC,OAAID,EAAeC,EAAE4D,QACzCsN,cAAc,SACdC,QAAQ,KACRpH,OAvBJ,sBAAKzC,UAAU,eAAf,UACGY,EAAE,uBACH,eAAC,SAAD,CACElJ,KAAK,SACLsI,UAAU,6BACVS,QAAS9H,EAHX,UAKE,mBAAGqH,UAAU,iBACb,uBAAOA,UAAU,iBAAjB,SAAmCY,EAAE,gCAgBrCsL,kBAAgB,EAChBC,iBAAiB,MACjBrC,WAAS,EACTC,kBAAkB,uGAClBC,0BAA0B,GAC1BC,KAAM,GACNC,mBAAoB,CAAC,GAAI,GAAI,IAd/B,UAgBE,cAAC,UAAD,CACEb,MAAM,SACN5G,OAAQ7B,EAAE,UACVwJ,KArDiB,SAAAzB,GACvB,OACE,eAAC,IAAMzI,SAAP,WACE,sBAAMF,UAAU,iBAAhB,SAAkCY,EAAE,YACnC+H,EAAQtM,WAkDP6H,MAAO,CAAEC,MAAO,OAChBgG,UAAQ,IAEV,cAAC,UAAD,CACEd,MAAM,MACN5G,OAAQ7B,EAAE,OACVsD,MAAO,CAAEC,MAAO,OAChBiG,KArDgB,SAAAzB,GACtB,OACE,eAAC,IAAMzI,SAAP,WACE,sBAAMF,UAAU,iBAAhB,SAAkCY,EAAE,SACnC+H,EAAQgC,QAkDPR,UAAQ,IAEV,cAAC,UAAD,CACEd,MAAM,SACN5G,OAAQ7B,EAAE,UACVwJ,KA3EqB,SAAAzB,GAC3B,OACE,eAAC,IAAMzI,SAAP,WACE,sBAAMF,UAAU,iBAAhB,SAAkCY,EAAE,YACnC+H,EAAQyD,WAwEPjC,UAAQ,aCoBH7I,gBAhBS,SAAAC,GAAW,MAAK,CACtC/I,MAAO+I,EAAYvI,QAAQC,cAAcT,OAAS,GAClDY,YAAamI,EAAYvI,QAAQC,cAAcG,YAC/CM,QAAS6H,EAAYvI,QAAQC,cAAcS,YAGlB,SAAAlC,GAAQ,OACjC6S,YACE,CACE/R,8CACAK,0EACAF,iCAEFjB,KAGW8J,EA1FO,SAAC,GAOhB,IANLhJ,EAMI,EANJA,sBACAK,EAKI,EALJA,oCACAH,EAII,EAJJA,MACAY,EAGI,EAHJA,YACAX,EAEI,EAFJA,eACAiB,EACI,EADJA,QAEM0I,EAAQC,iBAAO,MACbzB,EAAMoB,cAANpB,EAKR,OAJAgH,qBAAU,WACRtP,MACC,CAACA,IAGF,sBAAK0H,UAAU,gBAAf,UACE,cAAC,QAAD,CAAOsC,IAAKF,IACZ,qBAAKpC,UAAU,SAAf,SACE,qBAAKA,UAAU,WAAf,SACGtG,EACC,qBAAKsG,UAAU,UAAf,SACE,cAAC,KAAD,MAGF,qCACE,sBAAKA,UAAU,oCAAf,UACE,qBAAKA,UAAU,gBAAf,SAEI,cAAC,GAAD,CACExH,MAAOA,EACPG,oCACEA,EAEFF,eAAgBA,MAOtB,sBAAKuH,UAAU,gBAAf,UACE,oBAAIA,UAAU,wBAAd,SACGY,EAAE,yCAEL,cAAC,GAAD,UAIJ,qBAAKZ,UAAU,iDAAf,SACE,sBAAKA,UAAU,SAAf,UACE,qBAAKA,UAAU,0BAAf,SACE,cAAC,GAAD,CACEoC,MAAOA,EACPxB,EAAGA,EACHxH,YAAaA,MAGjB,sBACE4G,UAAU,0BACVkE,MAAO,CAAE8H,QAAS,QAFpB,UAIE,cAAC,GAAD,CAAQ5S,YAAaA,EAAawH,EAAGA,EAAGwB,MAAOA,IAC/C,cAAC,GAAD,CAAgBhJ,YAAaA,yBC3E3CiT,G,kLAGExO,KAAKmB,MAAM7G,cAAc,CAACiI,MAAOvC,KAAKmB,MAAM6I,gBAAiBjS,IAAKiI,KAAKmB,MAAM8I,kB,+BAEvE,IACElH,EAAM/C,KAAKmB,MAAX4B,EACR,OACI,8BACI,sBAAKZ,UAAU,WAAf,UACI,qBAAKA,UAAU,cAAf,SACI,6BAAKY,EAAE,gBACP,qBAAKZ,UAAU,gBAEnB,qBAAKA,UAAU,SAAf,SACA,qBAAKiE,IAAI,OAAQC,MAAO,CAACC,MAAM,MAAMmI,OAAQ,WAAYtI,IAAI,kD,GAf1D5C,aAyBRE,gBAHS,SAACC,GACrB,OAAOA,EAAYvI,UAEiBwI,EAAzBF,CAAwCG,YAAiB,eAAjBA,CAAkC4K,K,6BCqEnFE,GAAmBC,OAAaC,MAAM,CACxCL,OAAQI,OAAaE,SAAS,+BAC9BrQ,OAAQmQ,OAAaE,SAAS,kCAKnBpL,gBAHS,SAACC,GACrB,OAAOA,EAAYvI,UAEiBwI,EAAzBF,EA7FD,SAACtC,GACX,IAAM2N,EAAUC,cAMVC,EAAW,CAAC,UAAU,gBAAgB,WAPxB,EAQA5K,mBAAS4K,EAAW,IARpB,mBAQblC,EARa,KAQRmC,EARQ,iDAmBpB,WAA4BjV,EAAQkV,GAApC,eAAAtV,EAAA,sDAEII,EAAO8S,IAAIA,EAEL/U,EAAMS,IACZ,IACIgV,IAAoB2B,KAAKpX,EAAKiC,GAE9B8U,EAAQpF,KAAKxL,KACf,MAAOrD,GACL3B,QAAQsH,IAAI3F,GAVpB,4CAnBoB,sBAapBkP,qBAAU,WACN5I,EAAMjH,yBAAwB,GAC9BiH,EAAM7G,cAAc,CAAC,CAACiI,MAAOpB,EAAM6I,gBAAgB,GAAIjS,IAAKoJ,EAAM8I,cAAc,IAAI,CAAC1H,MAAMpB,EAAM6I,gBAAgB,GAAIjS,IAAKoJ,EAAM8I,cAAc,QAEhJ,IAeF,IAAMmF,EAAc,SAACvU,GACjBoU,EAAOpU,EAAE4D,QAEd,OACI,sBAAK0D,UAAU,gBAAf,UACI,qBAAKA,UAAU,SAAf,SACS,qBAAKkE,MAAO,CAACC,MAAM,SAAUH,IAAI,mCAAmCC,IAAI,cAEjF,cAAC,KAAD,CAAQiJ,cAtCO,CAClBd,OAAQ,GACR/P,OAAQ,GACRsO,IAAI,IAmCqCwC,SAxCzB,8CAyCJZ,iBAAkBA,GAD3B,SAEU,cAAE1U,OAAF,EAAUkV,OAAV,EAAkBK,QAAlB,EAA2BC,MAA3B,EAAkCC,OAAlC,EAA0CC,WAA1C,EAAsDC,aAAtD,IAAoEC,EAApE,EAAoEA,aAApE,EAAkFC,QAAlF,OACG,uBAAMP,SAAUM,EAAczN,UAAU,gBAAxC,UACI,cAAC,KAAD,CAAcsF,KAAK,OAAOtF,UAAU,mBAApC,SAAwD,SAAAwC,GAAO,OAC3D,8BAAMA,OACT,sBAAKxC,UAAU,8CAAf,UACG,sBAAKA,UAAU,oBAAf,UACI,sBAAKA,UAAU,gCAAf,UACI,uBAAO2N,QAAS,SAAU3N,UAAU,iBAApC,qBACA,8BAAK,cAAC,KAAD,CAAOsF,KAAK,SAAS5N,KAAK,OAAOsI,UAAU,+BAA+BI,MAAO,UAAWwN,SAAS,QAC1G,8BAAK,cAAC,KAAD,CAActI,KAAM,SAAUtF,UAAU,mBAAxC,SAA4D,SAAAwC,GAAO,OAAI,8BAAK,uBAAOxC,UAAU,UAAjB,SAA4BwC,cAEjH,sBAAKxC,UAAU,gCAAf,UACI,uBAAO2N,QAAS,SAAU3N,UAAU,iBAApC,oBACA,8BAAK,cAAC,KAAD,CAAOsF,KAAK,SAAStF,UAAU,+BAA+BtI,KAAK,QAAQ0I,MAAO,QAASwN,SAAS,QACzG,8BAAK,cAAC,KAAD,CAActI,KAAM,SAApB,SAAgC,SAAA9C,GAAO,OAAI,8BAAK,uBAAOxC,UAAU,UAAjB,SAA4BwC,iBAGzF,qBAAKxC,UAAU,oBAAf,SAEI,sBAAKA,UAAU,gCAAf,UACI,uBAAO2N,QAAS,MAAO3N,UAAU,iBAAjC,kBACA,cAAC,YAAD,CACI1D,MAAOqO,EACPrF,KAAK,MACLsB,QAASiG,EACThJ,SAAUoJ,EACVrB,YAAY,GACZC,YAAY,iBAEhB,8BAAK,cAAC,KAAD,CAAcvG,KAAM,MAApB,SAA6B,SAAA9C,GAAO,OAAI,8BAAK,uBAAOxC,UAAU,UAAjB,SAA4BwC,mBAI1F,qBAAKxC,UAAU,MAAf,SACI,qBAAKA,UAAW,SAAhB,SACI,cAAC,SAAD,CAAQI,MAAM,UAAU1I,KAAK,SAASsI,UAAU,oEC5E9E6N,GAASC,gBAAK,kBAAM,uDACpB3O,GAAiB,IAAIvB,EA0HZ0D,gBAJS,SAACC,GACrB,MAAO,CAACJ,OAAQI,EAAYvI,WAGQwI,EAAzBF,CAAwCG,YAAiB,eAAjBA,EAvHxC,SAAC,GAA+G,IAA9GsM,EAA6G,EAA7GA,aAAa7I,EAAgG,EAAhGA,aAAa8I,EAAmF,EAAnFA,gBAAgBC,EAAmE,EAAnEA,gBAAgBC,EAAmD,EAAnDA,mBAAmBC,EAAgC,EAAhCA,WAAWC,EAAqB,EAArBA,SAASjN,EAAY,EAAZA,OAEtGP,EAAKoB,cAALpB,EACJhC,EAAK,KACNuC,GACIA,EAAOlK,OACN2H,EAAKuC,EAAOlK,KAAK0H,OAGzBiJ,qBAAU,WAMyB,OAA5BzI,GAAehB,YACdgB,GAAejB,kBAIvB,IAgBMmQ,EAAO,CAAElO,KAAM,aAAcvK,IAAKgG,KAwDxC,OACI,sBAAKoE,UAAU,cAAf,UACI,8BACI,cAAC,cAAD,CAAYA,UAAW,aAAc2B,MA3EpC,WAET,IAAI2M,EAAU,GAWd,YAVuBjX,IAApB8J,EAAOoN,YAAwBpN,EAAOoN,aAAa,KAC/CpN,EAAOoN,WAAWzP,OAAO,EAExBqC,EAAOoN,WAAWnH,SAAQ,SAASoH,EAAUhP,GACzC8O,EAAU/G,KAAKiH,MAGnBF,EAAU/G,KAAKpG,EAAOoN,aAGvBD,EA8D6CvO,GAASsO,KAAMA,MAG/D,eAAC,IAAD,WA7DM,WACV,GAAoB,OAAjBlN,EAAO/J,QACN,OACI+J,EAAO/J,QAAQmC,KAAI,SAACkV,EAAUjP,GAAX,OACf,cAAC,IAAD,CAAOkB,OAAK,EAACgO,KAAM7S,IAAY2D,EAAmBmP,OAAQ,SAAA3P,GAAK,OAC3D,cAAC6O,GAAD,2BAAY7O,GAAZ,IACIiP,gBAAiBA,EACjBF,aAAcA,EACd7I,aAAcA,EACd8I,gBAAiBA,EACjBE,mBAAoBA,EACpBC,WAAYA,EACZ3O,MAAOA,EACP4O,SAAUA,EACVvG,gBAAkB4G,EAASpS,OAC3ByL,cAAejM,IAAY2D,OAXQA,MA0D9CpI,GACD,cAAC,IAAD,CAAOsJ,OAAK,EAACgO,KAAM5S,IAAU6S,OAAQ,SAAA3P,GAAK,OACtC,cAAC,GAAD,2BAAgBA,GAAhB,IACI6I,gBAAiBjH,EAAE,OACnBkH,cAAehM,UAzC3B,cAAC,IAAD,CAAO4E,OAAK,EAACgO,KAAM3S,IAAY4S,OAAQ,SAAA3P,GAAK,OACvCJ,IAAO1C,IACP,cAAC,GAAD,2BAAmB8C,GAAnB,IACG6I,gBAAiBjH,EAAE,UACnBkH,cAAe/L,OAElB,cAAC,GAAD,2BAAciD,GAAd,IACG6I,gBAAiBjH,EAAE,UACnBkH,cAAe/L,UAQvB,cAAC,IAAD,CAAO2E,OAAK,EAACgO,KAAM1S,IAAa2S,OAAQ,SAAA3P,GAAK,OACxCJ,IAAO1C,IACP,cAAC,GAAD,2BAAa8C,GAAb,IACG6I,gBAAiB,CAACjH,EAAE,UAAUA,EAAE,YAChCkH,cAAe,CAAC/L,IAAWC,QAE9B,cAAC,GAAD,2BAAcgD,GAAd,IACG6I,gBAAiBjH,EAAE,WACnBkH,cAAe9L,UAsBnB,cAAC,IAAD,CAAO0S,KAAM9S,IAAW+S,OAAQ,SAAA3P,GAAK,OAAI,cAAC,EAAD,eAAaA,iBC5HzD4P,GAAb,uKAGQ,OACI,sBAAK5O,UAAU,gBAAf,UACI,qBAAKgE,IAAI,2CAA2CC,IAAI,GAAGE,MAAM,OACjE,sBAAMnE,UAAU,cAAckE,MAAO,CAAC,YAAe,OAArD,SAA8D7I,aAN9E,GAA+B+F,aCazByN,I,8KAEQ,IACEjO,EAAM/C,KAAKmB,MAAX4B,EACR,OACI,gCACI,sBAAKZ,UAAU,cAAf,UACI,qBAAKA,UAAU,qBAAf,SACI,cAAC,IAAD,CAASQ,gBAAgB,eAAeD,GAAI,IAAKG,OAAO,EAAxD,SACI,qBAAKuD,IAAI,OAAQC,MAAO,CAACC,MAAM,MAAMmI,OAAQ,WAAYtI,IAAI,iDAGjE,sBAAKhE,UAAU,WAAf,UACI,qBAAKA,UAAU,cAAf,SACI,6BAAKY,EAAE,gBACP,qBAAKZ,UAAU,cAAf,SACA,qBAAKiE,IAAI,OAAOC,MAAO,CAACC,MAAM,QAAQmI,OAAQ,WAAYtI,IAAI,8CAI9E,cAAC,GAAD,IACA,qBAAKhE,UAAU,uB,GArBRoB,cA0BRK,eAAiB,eAAjBA,CAAkCoN,ICpC3CC,G,kLAEFjR,KAAKmB,MAAM7G,cAAc,CACvBiI,MAAOvC,KAAKmB,MAAM6I,gBAClBjS,IAAKiI,KAAKmB,MAAM8I,kB,+BAGV,IACAlH,EAAM/C,KAAKmB,MAAX4B,EACR,OACE,8BACE,sBAAKZ,UAAU,WAAf,UACE,qBAAKA,UAAU,cAAf,SACE,6BAAKY,EAAE,mBAET,sBAAKZ,UAAU,SAAf,UACE,6BAAKY,EAAE,wBACP,6BAAKA,EAAE,6CACP,qBACEqD,IAAI,OACJC,MAAO,CAAEC,MAAO,MAAOmI,OAAQ,WAC/BtI,IAAI,+C,GArBO5C,aAgCVE,gBAHS,SAAAC,GACtB,OAAOA,EAAYvI,UAInBwI,EAFaF,CAGbG,YAAgB,eAAhBA,CAAgCqN,KCC5BC,G,kDACJ,WAAY/P,GAAQ,IAAD,8BACjB,cAAMA,IA2CRgQ,MA5CmB,sBA4CX,gDAAAvX,EAAA,6DACiC,OAAnC,EAAK0H,eAAehB,YACtB,EAAKgB,eAAejB,eAEhBjH,EAAO,EAAKkI,eAAepB,UAC3BkR,EAAiB1Y,mBACrBC,KAAKC,UAAU,CACbC,QAAS,CACP,CACEC,SAAU,UACVC,MAAO,CACLC,OAAQ,CACN,WACA,SACA,YACA,OACA,OACA,UACA,WACA,eACA,aACA,UACA,eAtBN,SA8BEjB,EAAMsF,IAAY,kBAAc+T,GAEhCC,EACJjU,IAAgB,gCAjCd,SAmC6BkU,QAAQC,IAAI,CAC3C/D,IAAoBvU,IAAIlB,GACxByV,IAAoBvU,IAAIoY,KArCtB,mCAmCGG,EAnCH,KAmCYjY,EAnCZ,KAwCJ,EAAKkY,gBAAgBD,EAAQrZ,KAAMiB,GAE/BsY,EAAoB,CACtBnP,MAAO,gBACPD,KAAM,kBACNI,GAAI,UAGN,EAAKvB,MAAMpF,wBAAwBxC,EAAQpB,MAEvCwZ,EAAe,GAEnBA,EAAe,EAAKC,uBAAuBJ,EAAQrZ,KAAKoB,SAExD,EAAK4H,MAAM/G,WAAWuX,QAELnY,IAAjBmY,QAAkDnY,IAApBmY,EAAa,GACvC,EAAKxQ,MAAM9G,gBAAgBsX,EAAa,IACxC,EAAKxQ,MAAM9G,gBAAgB,MAE/BsX,EAAajI,KAAKgI,GAEZG,EA9DF,sBA8DkB,EAAKzQ,MAAM0E,MA9D7B,YA8DsC6L,IAE1C,EAAK5P,SAAS,CAAE+D,KAAM+L,EAAWhW,SAAS,IAhEtC,kDAkEJ3C,QAAQsH,IAAR,MAlEI,0DA5CW,EAkHnBiR,gBAAkB,SAACK,EAAYC,GAC7B,IAAMP,EAAU,CACdhK,SAAUuK,EAAavK,SACvBC,KAAMsK,EAAaC,QAAQvK,KAC3BxD,WAAY8N,EAAaC,QAAQ/N,WACjCkF,YAAa4I,EAAaC,QAAQ7I,YAClCrI,MAAOgR,EAAWhF,IAClBpF,SAAU,EAAKpG,eAAe2Q,SAAS,UAAY,MAAQ,KAC3DtK,cAAe,EAAKrG,eAAe2Q,SAAS,eAAiB,MAAQ,KACrEpV,MAAO,EAAKyE,eAAehB,YAE7B,EAAKa,MAAM3G,4BAA4BgX,GACvC,EAAKzP,SAAS,CAAEmQ,aAAc,EAAK9Q,MAAM8Q,eA9HxB,EAiInBC,WAAa,WACX,MAAO,CACL5B,SAAU,IACVJ,gBAAiB,SApIF,EAuInBiC,cAAgB,WACd,IAAMA,EAAgBtV,aAAaC,QAAQc,KAO3C,OALoB,OAAlBuU,QACkB5Y,IAAlB4Y,GACkB,cAAlBA,EACI,EAAKD,aACLxZ,KAAK0Z,MAAMD,IA9IA,EAiJnBE,oBAAsB,WACpB,IAAMC,EAAQ,EAAKH,gBASnB,OAP4B,OAA1BG,EAAMpC,sBACoB3W,IAA1B+Y,EAAMpC,iBACoB,cAA1BoC,EAAMpC,kBAENoC,EAAMpC,gBAAkB,WAGnB,WA3JU,EA6JnBqC,aAAe,WACb,IAAMD,EAAQ,EAAKH,gBAQnB,OANqB,OAAnBG,EAAMhC,eACa/W,IAAnB+Y,EAAMhC,UACa,cAAnBgC,EAAMhC,WAENgC,EAAMhC,SAAW,KAEZgC,EAAMhC,UAtKI,EAwKnB5K,qBAAuB,SAAA8M,GACrB,EAAK1Q,UAAS,SAAA2Q,GAAS,MAAK,CAAE3L,SAAU0L,MAExC,EAAKtR,MAAMwR,KAAKC,eAAeH,IA3Kd,EA8KnBpL,aAAe,SAAA5I,GACb,IAAI8T,EAAQ,EAAKJ,aACjB,EAAKpQ,SAAS,CACZ8Q,cAAeN,EACfhC,SAAUgC,EAAMhC,SAEhBuC,WAAYC,KAAKC,SACjBC,mBAAoBxU,IAEtB,IAAMyU,EAAkBva,KAAKC,UAAU2Z,GACvCzV,aAAaqW,QAAQ,oBAAqBD,GAC1C,IAAME,EAAmBza,KAAKC,UAAU,CACtCya,GAAIzU,IACJ0U,GAAI1U,IACJ2U,GAAInU,IACJoU,GAAIpU,IACJqU,IAAKpU,MAEPvC,aAAaqW,QAAQ,sBAAuBC,IAhM3B,EAmMnBM,YAAc,SAAAjV,GACZ,IAAI8T,EAAQ,EAAKH,gBACjBG,EAAMhC,SAAW9R,EACjB,IAAMyU,EAAkBva,KAAKC,UAAU2Z,GACvCzV,aAAaqW,QAAQtV,IAAmBqV,GACxC,EAAKnR,SAAS,CACZ8Q,cAAeN,EACfhC,SAAU9R,EACVqU,WAAYC,KAAKC,YA3MF,EA+MnBnN,aAAe,WACb,EAAK9D,SAAS,CACZ+Q,WAAYC,KAAKC,YA/MnB,EAAK5R,MAAQ,CACX2F,SAAU,EAAK5F,MAAMmC,OAAOqQ,OAC5BC,UAAW,GACXX,oBAAoB,EACpBJ,cAAe,EAAKT,gBACpB9B,WAAY,SACZF,iBAAiB,EACjByD,gBAAiB,QACjBC,gBAAiB,kBACjBzD,oBAAoB,EACpB0D,mBAAmB,EACnBC,kBAAkB,EAClBlB,YAAY,EACZmB,QAAQ,EACR9D,gBAAiB,EAAKmC,sBACtB/B,SAAU,EAAKiC,eACflR,eAAgB,KAChBiR,MAAO,GACP2B,MAAM,EACNrY,SAAS,EACTiK,KAAM,CACJ,CACEvD,MAAO,EAAKpB,MAAM4B,EAAE,WACpBT,KAAM,yBACNI,GAAI,SAGRpE,OAAQA,IACR4T,aAAa,GAEf,EAAKhL,aAAe,EAAKA,aAAahD,KAAlB,gBACpB,EAAKiQ,eAAiB,EAAKA,eAAejQ,KAApB,gBACtB,EAAKlC,gBAAkB,EAAKA,gBAAgBkC,KAArB,gBACvB,EAAK5C,eAAiB,IAAIvB,EAC1B,EAAKqU,mBACL,EAAKjD,QArCY,E,gEAyCjBkD,SAASC,MAAQtU,KAAKmB,MAAM4B,EAAE,W,mCA4KnBtB,GAGX,GAFAzB,KAAKuU,WAAY,EAEbvU,KAAKwU,YACuB,YAA1BxU,KAAKoB,MAAMkP,WACbtQ,KAAK+B,SAAS,CACZgS,mBAAoB/T,KAAKoB,MAAM2S,oBAEE,WAA1B/T,KAAKoB,MAAMkP,YACpBtQ,KAAK+B,SAAS,CACZsO,oBAAqBrQ,KAAKoB,MAAMiP,yBAG/B,CACL,IAAM2D,EAAmBhU,KAAKoB,MAAM4S,iBACpChU,KAAK+B,SAAS,CACZiS,kBAAmBA,IAGvBhU,KAAK+B,SAAS,CAAE+Q,YAAa9S,KAAKoB,MAAM0R,aACxCrR,EAAMF,mB,qCAGOE,GACbzB,KAAKuU,WAAY,I,sCAGH9S,GACTA,EAAMC,KAAKQ,OACdlC,KAAK+B,SAAS,CACZgS,mBAAmB,EACnBC,kBAAkB,M,kCAMtB,OAAOhX,OAAOyX,WAAa,O,6CAGNC,GACrB,IAAIC,EAAW,GAqBf,OApBAD,EAAWnL,SAAQ,SAAUqH,EAAUjP,GACrCgT,EAASjL,KAAK,CACZlL,OAAQoS,EAASpS,OACjB+D,MAAOqO,EAASpS,OAChB5C,SAAUgV,EAAShV,SACnB0G,KAAM,yBACNI,GAAI,QAAUf,EACd+D,SAAUkL,EAASlL,SACnB2F,UAAWuF,EAASvF,UACpBZ,QAASmG,EAASnG,QAClBC,SAAUkG,EAASlG,SACnBa,KAAMqF,EAASrF,KACfJ,WAAYyF,EAASzF,WACrByJ,KAAMhE,EAASgE,KACfC,KAAMjE,EAASpS,OACfyM,KAAM2F,EAASkE,aACfC,OAAQnE,EAASmE,OACjBC,KAAM,QAAUrT,OAGbgT,I,gKAID5c,EAAMuF,I,kBAESkQ,IAAoBvU,IAAIlB,G,OACvB,M,OAAXkd,OACPjV,KAAK+B,SAAS,CAAEmS,MAAM,IAEtBlU,KAAK+B,SAAS,CAAEmS,MAAM,I,gDAGxBhb,QAAQsH,IAAR,MACAR,KAAK+B,SAAS,CAAEmS,MAAM,I,8IAIhB,IAAD,OAEDgB,EAC2B,SAA/BlV,KAAKoB,MAAMyS,gBACP,sCACA,gCACAsB,EAAejS,IAAW,iBAAkB,CAChD,iBAA4C,YAA1BlD,KAAKoB,MAAMkP,WAC7B,gBAA2C,WAA1BtQ,KAAKoB,MAAMkP,WAC5B,iCACEtQ,KAAKoB,MAAMiP,oBAAgD,WAA1BrQ,KAAKoB,MAAMkP,WAC9C,gCACEtQ,KAAKoB,MAAM2S,mBAA+C,YAA1B/T,KAAKoB,MAAMkP,WAC7C,+BAAgCtQ,KAAKoB,MAAM4S,mBAGvCoB,EAAmBlS,IAAW,iBAAkB,CACpD,sBAAsD,SAA/BlD,KAAKoB,MAAMyS,gBAClC,uBAAuD,UAA/B7T,KAAKoB,MAAMyS,kBAwErC,OAVM,EAAKzS,MAAMvF,QACN,cAAC,GAAD,IAEH,EAAKuF,MAAM8S,KA5Df,sBAAK/R,UAAWgT,EAAhB,UACE,cAAC,EAAD,CACEjO,aAAc,EAAKA,aACnBgO,KAAMA,EAENvP,qBAAsB,EAAKA,qBAAqBzB,KAAK,GACrDmD,aAAc,EAAKA,aAAanD,KAAK,GACrC4C,gBAAiB,EAAK4M,YAAYxP,KAAK,GACvCgC,cAAe,EAAK9E,MAAMmP,SAC1B1K,aAAc,EAAKA,aAAa3B,KAAK,IALhC,EAAK/C,MAAM0F,gBAAkB,EAAI,GAOxC,sBACEpC,IAAK,SAAA4Q,GAAE,OAAK,EAAKC,QAAUD,GAC3BlT,UAAWiT,EACXxS,QAAS,EAAKuR,eAHhB,UAKE,qBAAKhS,UAAU,cAAf,SACE,cAAC,IAAD,CACEQ,gBAAgB,eAChBD,GAAI3E,IACJ8E,OAAO,EAHT,SAKE,qBACEuD,IAAI,OACJC,MAAO,CAAEC,MAAO,MAAOmI,OAAQ,WAC/BtI,IAAI,iDAIV,cAAC,EAAD,GAAiB,EAAK/E,MAAM8Q,aAC5B,cAAC,EAAD,CACEpO,MAAO,EAAK1C,MAAM0E,KAClB9D,gBAAiB,EAAKA,gBAEtBqF,aAAc,EAAKA,aAAanD,KAAK,IADhC,EAAK/C,MAAM0F,gBAAkB,EAAI,MAI1C,cAAC,GAAD,CAMEuJ,gBAAiB,EAAKhP,MAAMyS,gBAC5B3D,aAAc,EAAK9O,MAAM6R,mBACzB5L,aAAc,EAAKA,aAAanD,KAAK,GACrCiM,gBAAiB,EAAK/O,MAAM+O,gBAC5BE,mBAAoB,EAAKjP,MAAMiP,mBAC/BC,WAAY,EAAKlP,MAAMkP,WACvBC,SAAU,EAAKnP,MAAMmP,UAVnB,EAAKnP,MAAM0R,WACX,EAAK1R,MAAM6R,mBACX,EAAK7R,MAAMiP,oBAUf,qBAAKlO,UAAU,mBAYR,cAAC,GAAD,Q,GA5XCoB,aAmZHE,gBAfS,SAAAC,GACtB,MAAO,CAAEJ,OAAQI,EAAYvI,YAGJ,SAAAxB,GAAQ,OACjC6S,YACE,CACEzQ,kDACAvB,0DACAJ,wBACAC,mCAEFV,KAGW8J,CAGbG,YAAgB,eAAhBA,CAAgCsN,KC5b5BqE,G,iLACiBC,GACXxV,KAAKmB,MAAMlE,WAAauY,EAAUvY,UAClCD,OAAOyY,SAAS,EAAG,K,+BAKvB,OAAOzV,KAAKmB,MAAMuU,a,GARCnS,aAYZoS,eAAWJ,I,+ECP1B5C,KAGGhW,IAAIiZ,MAGJjZ,IAAIkZ,MACJlZ,IAAImZ,MACJC,KAAK,CAEJC,UAAW,CACTC,MACAC,MACAC,OACAC,QAEFC,YAAa,KAIbC,GAAI,CAAC,gBACLC,UAAW,eAEXC,cAAc,EAEdC,cAAe,CACbC,aAAa,EACbC,gBAAiB,KAGnBC,MAAO,CACLC,MAAM,EACNC,aAAa,KAIJnE,GAAf,EAAeA,IC1CToE,GAAY,CAChBC,eAAe,EACfnQ,iBAAiB,EACjBoQ,aAAc,KACd7d,KAAM,KAENG,QAAS,KACToa,OAAQ,KACR1K,eAAgB3K,IAChBoS,WAAY,GACZtV,cAAe,CACbT,MAAO,GACPY,YAAa,KACbhC,QAAS,GACTsC,SAAS,IAoEEqb,GAjEQ,WAAgC,IAA/B9V,EAA8B,uDAAtB2V,GAAWI,EAAW,uCACpD,OAAQA,EAAOtd,MACb,IAAK,aACH,OAAO,2BAAKuH,GAAZ,IAAmB4V,eAAe,IACpC,IAAK,cACH,OAAO,2BAAK5V,GAAZ,IAAmB4V,cAAeG,EAAOld,QAC3C,IAAK,mBACH,OAAO,2BAAKmH,GAAZ,IAAmByF,gBAAiBsQ,EAAOld,QAC7C,IAAK,oBACH,OAAO,2BAAKmH,GAAZ,IAAmB6H,eAAgBkO,EAAOld,QAC5C,IAAK,aACH,OAAO,2BAAKmH,GAAZ,IAAmB7H,QAAS4d,EAAOld,QACrC,IAAK,kBACH,OAAO,2BAAKmH,GAAZ,IAAmB6V,aAAcE,EAAOld,QAC1C,IAAK,gBACH,OAAO,2BAAKmH,GAAZ,IAAmBsP,WAAYyG,EAAOld,QACxC,IAAK,YACH,OAAO,2BAAKmH,GAAZ,IAAmBuS,OAAQwD,EAAOld,QACpC,IAAK,8BACH,OAAO,2BAAKmH,GAAZ,IAAmBhI,KAAM+d,EAAOld,QAClC,IAAK,wBACH,OAAO,2BACFmH,GADL,IAEEhG,cAAc,2BAAMgG,EAAMhG,eAAb,IAA4BT,MAAOwc,EAAOld,UAE3D,IAAK,0BACH,OAAO,2BACFmH,GADL,IAEEhG,cAAc,2BAAMgG,EAAMhG,eAAkB+b,EAAOld,SAEvD,IAAK,uBACH,OAAO,2BACFmH,GADL,IAEEhG,cAAc,2BACTgG,EAAMhG,eADE,IAEXT,MAAM,GAAD,mBAAMyG,EAAMhG,cAAcT,OAA1B,CAAiCwc,EAAOld,YAGnD,IAAK,0BACH,OAAO,2BACFmH,GADL,IAEEhG,cAAc,2BACTgG,EAAMhG,eADE,IAEX7B,QAAS4d,EAAOld,UAGtB,IAAK,uBACH,OAAO,2BACFmH,GADL,IAEEhG,cAAc,2BACTgG,EAAMhG,eADE,IAEXS,QAASsb,EAAOld,UAGtB,IAAK,iBACH,OAAO,2BACFmH,GADL,IAEEhG,cAAc,2BAAMgG,EAAMhG,eAAb,IAA4BG,YAAa4b,EAAOld,UAEjE,IAAK,QACH,OAAO,2BAAKmH,GAAZ,IAAmBjI,MAAOge,EAAOld,MAAO4B,SAAS,IACnD,QACE,OAAOuF,ICjFP2V,GAAW,CACblb,SAAS,EACToE,OAAO,EACP9H,KAAM,GACNgB,MAAM,GACNie,YAAa,KACbC,SAAS,GA8BEC,GA5BG,WAA8B,IAA7BlW,EAA4B,uDAApB2V,GAAWI,EAAS,uCAC3C,OAAQA,EAAOtd,MACX,IAAK,SAED,OADAiD,aAAaya,WAAW,cACjB,2BAAInW,GAAX,IAAkBnB,OAAO,EAAO9H,KAAM,GAAIgB,MAAO,KACrD,IAAK,aACD,OAAO,2BAAIiI,GAAX,IAAkBnB,OAAO,EAAO9H,KAAM,GAAIgB,MAAO,KACrD,IAAK,UACD,OAAO,2BAAIiI,GAAX,IAAkBvF,SAAS,IAC/B,IAAK,YACD,OAAO,2BAAIuF,GAAX,IAAkBiW,SAAS,IAC/B,IAAK,aACD,OAAO,2BAAIjW,GAAX,IAAkBiW,SAAS,IAC/B,IAAK,UACD,OAAO,2BAAIjW,GAAX,IAAkBgW,YAAaD,EAAOhf,OAC1C,IAAK,OACD,OAAO,2BAAIiJ,GAAX,IACIjJ,KAAKgf,EAAOld,MACZ4B,SAAS,EACT1C,MAAO,GACP8G,OAAO,IAEf,IAAK,QACD,OAAO,2BAAImB,GAAX,IAAiBjI,MAAOge,EAAOld,MAAO4B,SAAS,IACnD,QACI,OAAOuF,I,UCHnB,IAAMoW,GAbN,WACI,IAEI,IAAMC,EAAkB3a,aAAaC,QAAQa,KAE7C,GAAwB,OAApB6Z,EAA0B,OAC9B,OAAO9e,KAAK0Z,MAAMoF,GACpB,MAAO5c,GAEL,YADA3B,QAAQsH,IAAI3F,IAKE6c,GAEhBhU,GAAciU,YAAgB,CAChCC,KAAMN,GACNnc,QAAS+b,KAGTW,GAAmBC,IAOvB,IAAMC,GAAQC,YAAYtU,GAAa8T,GAAeK,GAAiBI,YAAgBC,QAGvFH,GAAMI,WAAU,kBAzChB,SAA4BJ,GACxB,IAGI,IAAMN,EAAkB9e,KAAKC,UAAUmf,GACvCjb,aAAaqW,QAAQvV,IAAmB6Z,GAC1C,MAAO5c,GACL3B,QAAQsH,IAAI3F,IAkCEud,CAAmBL,GAAM9c,eAChC8c,UC3BfnY,EAAYyY,uBACZ,IACIC,sBAAY1Y,GAAa,WAEvB2Y,IAASzH,OACP,cAAC,IAAD,CAAUiH,MAAOA,GAAjB,SACI,cAAC,IAAD,UACI,cAAC,WAAD,CAAUS,SAAW,cAAC,GAAD,IAArB,SACQ,cAACC,GAAD,UACI,cAAC,GAAD,YAKpBpE,SAASqE,eAAe,YAjBX,GAoBpB,MAAM7d,IACH3B,QAAQsH,IAAI3F,M,gDC9BD8d,IANS,WACpB,OACA,qBAAKxW,UAAU,mBAAf,SACI,qBAAKiE,IAAI,OAAQjE,UAAU,oBAAoBgE,IAAI,2C","file":"static/js/main.bbd4b99f.chunk.js","sourcesContent":["import axiosConfig from '../../components/Conexion/AxiosConexionConfig';\r\nimport { apiUsuarioActualizarPlantas } from '../../Config/const';\r\n\r\nexport class PlantasService {\r\n async updatePlantasUsuarios(idusuario, plantasUsuario) {\r\n const url = apiUsuarioActualizarPlantas + `/${idusuario}`;\r\n try {\r\n const { data } = await axiosConfig.put(url, plantasUsuario);\r\n return data;\r\n } catch (e) {\r\n throw new Error(e);\r\n }\r\n }\r\n}\r\n\r\nexport const plantasService = new PlantasService();\r\n","import axiosConfig from '../../components/Conexion/AxiosConexionConfig';\r\nimport { apiUsuario } from '../../Config/const';\r\n\r\nexport class UsersService {\r\n async getUsers(loadPlantas, loadPlantaImagen) {\r\n const url = apiUsuario + '?filter=';\r\n const relacionPlantas = encodeURIComponent(\r\n JSON.stringify({\r\n include: [\r\n {\r\n relation: 'plantas',\r\n scope: {\r\n fields: [\r\n 'idplanta',\r\n 'nombre',\r\n 'direccion',\r\n 'pais',\r\n 'tipo',\r\n 'latitud',\r\n 'longitud',\r\n 'potenciapico',\r\n 'probjetivo',\r\n 'mwtotal',\r\n 'idGpm',\r\n ],\r\n },\r\n },\r\n ],\r\n }),\r\n );\r\n try {\r\n const { data } = await axiosConfig.get(\r\n url + (loadPlantas ? relacionPlantas : ''),\r\n );\r\n return data;\r\n } catch (e) {\r\n console.error(e);\r\n throw new Error(e);\r\n }\r\n }\r\n\r\n async updateUser(user, includePlantas) {\r\n const url = apiUsuario + `/${user.idusuario}`;\r\n const updatedUserReq = {\r\n ...user,\r\n plantas: includePlantas ? user.plantas : undefined,\r\n };\r\n try {\r\n await axiosConfig.patch(url, updatedUserReq);\r\n return user;\r\n } catch (e) {\r\n throw new Error(e);\r\n }\r\n }\r\n\r\n async syncUsersWithAzure() {\r\n const url = '/updateusersazureddbb';\r\n try {\r\n const { data } = await axiosConfig.get(url);\r\n return data;\r\n } catch (e) {\r\n throw new Error(e);\r\n }\r\n }\r\n}\r\n\r\nexport const usersService = new UsersService();\r\n","import { plantasService, usersService } from '../../services';\r\n\r\nexport const errorConexionServer = () => async dispatch => {\r\n dispatch({\r\n type: 'errorConexionServer',\r\n });\r\n};\r\nexport const initProyectGlovalData = () => async dispatch => {\r\n dispatch({\r\n type: 'initGlobal',\r\n });\r\n};\r\n\r\nexport const initProyectGlovalData1 = values => async dispatch => {\r\n dispatch({\r\n type: 'initGlobal1',\r\n dataT: values,\r\n });\r\n};\r\nexport const setProyectPlantaVisible = values => async dispatch => {\r\n dispatch({\r\n type: 'setPlantaVisible',\r\n dataT: values,\r\n });\r\n};\r\nexport const setWidgesVisibles = values => async dispatch => {\r\n dispatch({\r\n type: 'setWidgesVisibles',\r\n dataT: values,\r\n });\r\n};\r\nexport const setPlantas = values => async dispatch => {\r\n dispatch({\r\n type: 'setPlantas',\r\n dataT: values,\r\n });\r\n};\r\nexport const setPlantaActual = values => async dispatch => {\r\n dispatch({\r\n type: 'setPlantaActual',\r\n dataT: values,\r\n });\r\n};\r\nexport const setBreadCrumb = values => async dispatch => {\r\n dispatch({\r\n type: 'setBreadCrumb',\r\n dataT: values,\r\n });\r\n};\r\nexport const setIdioma = values => async dispatch => {\r\n dispatch({\r\n type: 'setIdioma',\r\n dataT: values,\r\n });\r\n};\r\n\r\nexport const setUserDataFromLocalStorage = values => async dispatch => {\r\n dispatch({\r\n type: 'setUserDataFromLocalStorage',\r\n dataT: values,\r\n });\r\n};\r\n\r\nexport const setConfigurationUsers = () => async dispatch => {\r\n try {\r\n dispatch({\r\n type: 'loadingConfiguration',\r\n dataT: true,\r\n });\r\n const users = await usersService.getUsers(true, true);\r\n dispatch({\r\n type: 'setConfigurationUsers',\r\n dataT: users,\r\n });\r\n dispatch({\r\n type: 'setCurrentUser',\r\n dataT: users[0],\r\n });\r\n dispatch({\r\n type: 'loadingConfiguration',\r\n dataT: false,\r\n });\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n};\r\n\r\nexport const setCurrentUser = user => async dispatch => {\r\n try {\r\n dispatch({\r\n type: 'setCurrentUser',\r\n dataT: user,\r\n });\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n};\r\n\r\nexport const setConfigurationUsersAfterAzureSync = () => async dispatch => {\r\n try {\r\n dispatch({\r\n type: 'loadingConfiguration',\r\n dataT: true,\r\n });\r\n const users = await usersService.syncUsersWithAzure();\r\n dispatch({\r\n type: 'setConfigurationUsers',\r\n dataT: users,\r\n });\r\n dispatch({\r\n type: 'setCurrentUser',\r\n dataT: users[0],\r\n });\r\n dispatch({\r\n type: 'loadingConfiguration',\r\n dataT: false,\r\n });\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n};\r\n\r\nexport const updateUser =\r\n (user, includePlantas) => async (dispatch, getState) => {\r\n try {\r\n dispatch({\r\n type: 'loadingConfiguration',\r\n dataT: true,\r\n });\r\n const updatedUser = await usersService.updateUser(user, includePlantas);\r\n const { users } = getState().proyect.configuration;\r\n const userIndex = users.findIndex(\r\n user => user.idusuario === updatedUser.idusuario,\r\n );\r\n users[userIndex] = updatedUser;\r\n dispatch({\r\n type: 'updateConfigurationUser',\r\n dataT: {\r\n users,\r\n currentUser: updatedUser,\r\n },\r\n });\r\n dispatch({\r\n type: 'loadingConfiguration',\r\n dataT: false,\r\n });\r\n } catch (e) {\r\n console.error(e);\r\n throw new Error(e);\r\n }\r\n };\r\n\r\nexport const updatePlantasUsuarios =\r\n (currentUser, selectedPlantas) => async (dispatch, getState) => {\r\n try {\r\n dispatch({\r\n type: 'loadingConfiguration',\r\n dataT: true,\r\n });\r\n await plantasService.updatePlantasUsuarios(\r\n currentUser.idusuario,\r\n selectedPlantas.map(planta => ({\r\n idusuario: currentUser.idusuario,\r\n idplanta: planta.idplanta,\r\n })),\r\n );\r\n const { users } = getState().proyect.configuration;\r\n const userIndex = users.findIndex(\r\n user => user.idusuario === currentUser.idusuario,\r\n );\r\n const updatedUser = { ...currentUser, plantas: selectedPlantas };\r\n users[userIndex] = updatedUser;\r\n dispatch({\r\n type: 'updateConfigurationUser',\r\n dataT: {\r\n users,\r\n currentUser: updatedUser,\r\n loading: false,\r\n },\r\n });\r\n } catch (e) {\r\n console.error(e);\r\n throw new Error(e);\r\n }\r\n };\r\n\r\nexport const setConfigurationUser = values => async dispatch => {\r\n dispatch({\r\n type: 'setConfigurationUser',\r\n dataT: values,\r\n });\r\n};\r\n\r\nexport const setConfigurationPlantas = plantas => async dispatch => {\r\n dispatch({\r\n type: 'setConfigurationPlantas',\r\n dataT: plantas,\r\n });\r\n};\r\n","import axios from \"axios\";\r\nimport {apiUrl} from \"../../Config/const\";\r\nconst axiosConexionConfig = () => {\r\n const defaultOptions = {\r\n baseURL: apiUrl,\r\n headers: {\r\n 'Access-Control-Max-Age': '600',\r\n 'Content-Type': 'application/json',\r\n }\r\n };\r\n \r\n // Create instance\r\n let instance = axios.create(defaultOptions);\r\n instance.CancelToken=axios.CancelToken\r\n //Create an interceptor for each request\r\n instance.interceptors.request.use(function (config) {\r\n const token = localStorage.getItem('adal.idtoken');\r\n if(token===undefined||token===\"\"||token===null){\r\n return window.location.href = '/logout';\r\n }else{\r\n config.headers.Authorization = 'Bearer ' + token;\r\n }\r\n return config;\r\n });\r\n\r\n return instance;\r\n};\r\nexport default (axiosConexionConfig());\r\n","export const USER_KEY = 'USER_KEY';\r\nexport const Facebook = 'http://www.facebook.com';\r\nexport const Twitter = 'http://www.twitter.com';\r\nexport const Linkedin = 'http://www.linkedin.com';\r\nexport const Pinterest = 'http://www.pinterest.com';\r\nexport const Google = 'http://www.google.com';\r\n//export const baseURL='https://enerland-loopback.pre.geoactio.com/';\r\n//export const baseURL='http://api.marketstack.com/v1/eod';\r\n//export const baseURL='http://localhost:3001/';\r\nexport const baseURL = 'http://ayax:3000/';\r\n//export const apiUrl=\"https://enerlandapi.pre.geoactio.com\";\r\nexport const apiUrl=\"https://enerlandapi-enerlandgroup.msappproxy.net\";\r\n//export const apiUrl=\"http://localhost:3010\";\r\nexport const apiGetPlantas = '/plantas';\r\nexport const apiUsuario = '/usuarios';\r\nexport const apiUsuarioActualizarPlantas = '/usuarios/plantas';\r\nexport const apiUsuarioMe = '/usuarios/me';\r\nexport const apiPing = '/ping';\r\nexport const apiPlantaUsuario = '/planta-usuarios';\r\nexport const apiCo2 = '/ahorroco2';\r\nexport const apiGetStreamin = '/cctvs/stream';\r\nexport const apiGetStreaminFile = '/cctvs/streaming/file';\r\nexport const apiRelojStreamin = '/cctvs/stream/timeutciso';\r\nexport const PageTitle = 'Enerland Group - Plantas';\r\nexport const tenant = '943fa85b-068d-404a-bacb-5f0baf8d31a8';\r\nexport const redirectUri=\"https://enerlandapp.enerlandgroup.com/\";\r\n\r\n//export const redirectUri='https://enerlandapp.azurewebsites.net';\r\nexport const clientId= 'd36e44a9-4802-4ec1-8411-408746c84ea2';\r\n//export const redirectUri='https://localhost:3000';\r\n//export const clientId= '1ea75abe-b119-405a-bf38-31feb5b35f58';\r\nexport const localStoregeTitle = 'localStoregeEnerland';\r\nexport const localStorageBoard = 'EnerlandPanel';\r\nexport const valor = 'Valor';\r\nexport const usuario = 'Usuario';\r\nexport const propiedad = 'Propiedad';\r\nexport const nombre = 'Nombre';\r\nexport const nombrePila = 'Nombre de pila';\r\nexport const apellidos = 'Apellidos';\r\nexport const roles = 'Roles';\r\nexport const esEscritor = 'es Escritor?';\r\nexport const esContribuidor = 'es Contribuidor?';\r\nexport const urlVideo = 'https://media.w3.org/2010/05/sintel/trailer_hd.mp4';\r\n\r\nexport const rutaIndex = '/';\r\nexport const rutaPlantas = '/plant';\r\nexport const rutaMapa = '/map';\r\nexport const rutaConfig = '/config';\r\nexport const rutaAddUser = '/adduser';\r\nexport const rutaPrecioMercado = '/precio-mercados';\r\n\r\nexport const rolAcceso = 'administrador';\r\n\r\nexport const widges = [\r\n { id: 'valueMapa', nombre: 'Mapa', value: 'On', widge: 'mapa', valor: true },\r\n {\r\n id: 'valueVideo',\r\n nombre: 'Video',\r\n value: 'On',\r\n widge: 'video',\r\n valor: true,\r\n },\r\n {\r\n id: 'valueWeather',\r\n nombre: 'Weather',\r\n value: 'On',\r\n widge: 'weather',\r\n valor: true,\r\n },\r\n {\r\n id: 'valueEnergy',\r\n nombre: 'Energy',\r\n value: 'On',\r\n widge: 'energy',\r\n valor: true,\r\n },\r\n {\r\n id: 'valuePerformanceRatio',\r\n nombre: 'Performance Ratio (PR)',\r\n value: 'On',\r\n widge: 'perfRatio',\r\n valor: true,\r\n },\r\n {\r\n id: 'valueRoi',\r\n nombre: 'disponibilidad',\r\n value: 'On',\r\n widge: 'roi',\r\n valor: true,\r\n },\r\n {\r\n id: 'valueRetorno',\r\n nombre: 'potencia específica',\r\n value: 'On',\r\n widge: 'retornoOper',\r\n valor: true,\r\n },\r\n {\r\n id: 'valueEnergyRvE',\r\n nombre: 'Energía real vs. estimada',\r\n value: 'On',\r\n widge: 'energyRvE',\r\n valor: true,\r\n },\r\n {\r\n id: 'valueRadiacion',\r\n nombre: 'Radiación real vs. estimada',\r\n value: 'On',\r\n widge: 'radiacion',\r\n valor: true,\r\n },\r\n {\r\n id: 'valueMercado',\r\n nombre: 'Precio de mercado',\r\n value: 'On',\r\n widge: 'mercado',\r\n valor: true,\r\n },\r\n {\r\n id: 'valueRentabilidad',\r\n nombre: 'potencia',\r\n value: 'On',\r\n widge: 'rentabilidad',\r\n valor: true,\r\n },\r\n {\r\n id: 'valueImpactoCO2',\r\n nombre: 'Impacto huella de CO2',\r\n value: 'On',\r\n widge: 'co2',\r\n valor: true,\r\n },\r\n];\r\n\r\nconst withCard = 4;\r\n\r\nexport const LayoutData = width => {\r\n return [\r\n { i: '1', x: 0, y: 0, w: width, h: width / 1.5, minW: 1, minH: 1 },\r\n { i: '2', x: 4, y: 0, w: width, h: width / 1.5, minW: 1, minH: 1 },\r\n { i: '3', x: 8, y: 0, w: width, h: width / 1.5, minW: 1, minH: 1 },\r\n { i: '4', x: 0, y: 6, w: width, h: width / 1.5, minW: 1, minH: 1 },\r\n { i: '5', x: 4, y: 6, w: width, h: width / 1.5, minW: 1, minH: 1 },\r\n { i: '6', x: 8, y: 6, w: width, h: width / 1.5, minW: 1, minH: 1 },\r\n { i: '7', x: 0, y: 9, w: width, h: width / 1.5, minW: 1, minH: 1 },\r\n { i: '8', x: 4, y: 9, w: width, h: width / 1.5, minW: 1, minH: 1 },\r\n { i: '9', x: 8, y: 9, w: width, h: width / 1.5, minW: 1, minH: 1 },\r\n ];\r\n};\r\n\r\nexport const LayoutLg = [\r\n {\r\n i: '1',\r\n x: 0,\r\n y: 0,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/map',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '2',\r\n x: 4,\r\n y: 0,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/video',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '3',\r\n x: 8,\r\n y: 0,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/weather',\r\n minW: 4,\r\n minH: 4 / 1.5,\r\n },\r\n {\r\n i: '4',\r\n x: 0,\r\n y: 6,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/bar',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '5',\r\n x: 4,\r\n y: 6,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/pie',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '6',\r\n x: 8,\r\n y: 6,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/line',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '7',\r\n x: 0,\r\n y: 9,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/area',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '8',\r\n x: 4,\r\n y: 9,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/bar',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '9',\r\n x: 8,\r\n y: 9,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/doughnut',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '10',\r\n x: 0,\r\n y: 12,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/line',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '11',\r\n x: 4,\r\n y: 12,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/line',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '12',\r\n x: 8,\r\n y: 12,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/line',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n];\r\nexport const LayoutMd = [\r\n {\r\n i: '1',\r\n x: 0,\r\n y: 0,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/map',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '2',\r\n x: 4,\r\n y: 0,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/video',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '3',\r\n x: 0,\r\n y: 6,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/weather',\r\n minW: 4,\r\n minH: 4 / 1.5,\r\n },\r\n {\r\n i: '4',\r\n x: 4,\r\n y: 6,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/bar',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '5',\r\n x: 0,\r\n y: 9,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/pie',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '6',\r\n x: 4,\r\n y: 9,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/line',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '7',\r\n x: 0,\r\n y: 12,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/area',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '8',\r\n x: 4,\r\n y: 12,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/bar',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '9',\r\n x: 0,\r\n y: 15,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/doughnut',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '10',\r\n x: 4,\r\n y: 15,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/line',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '11',\r\n x: 0,\r\n y: 18,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/line',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '12',\r\n x: 4,\r\n y: 18,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/line',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n];\r\n\r\nexport const LayoutSm = [\r\n {\r\n i: '1',\r\n x: 0,\r\n y: 0,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/map',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '2',\r\n x: 0,\r\n y: 6,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/video',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '3',\r\n x: 0,\r\n y: 9,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/weather',\r\n minW: 4,\r\n minH: 4 / 1.5,\r\n },\r\n {\r\n i: '4',\r\n x: 0,\r\n y: 12,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/bar',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '5',\r\n x: 0,\r\n y: 15,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/pie',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '6',\r\n x: 0,\r\n y: 18,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/line',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '7',\r\n x: 0,\r\n y: 21,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/area',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '8',\r\n x: 0,\r\n y: 24,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/bar',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '9',\r\n x: 0,\r\n y: 27,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/doughnut',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '10',\r\n x: 0,\r\n y: 30,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/line',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '11',\r\n x: 0,\r\n y: 33,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/line',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n {\r\n i: '12',\r\n x: 0,\r\n y: 36,\r\n w: withCard,\r\n h: withCard / 1.5,\r\n url: '/line',\r\n minW: 1,\r\n minH: 1,\r\n },\r\n];\r\n\r\nexport const users = [\r\n { name: 'Usuario1', role: 'admin', alta: true, plantas: [0, 1] },\r\n { name: 'Usuario2', role: 'admin', alta: true, plantas: [1, 2] },\r\n { name: 'Usuario3', role: 'admin', alta: true, plantas: [0, 2] },\r\n { name: 'Usuario4', role: 'user', alta: false, plantas: [2] },\r\n { name: 'Usuario5', role: 'user', alta: true, plantas: [0, 1, 2] },\r\n { name: 'Usuario5', role: 'user', alta: true, plantas: [0, 1, 2] },\r\n { name: 'Usuario5', role: 'user', alta: true, plantas: [0, 1, 2] },\r\n { name: 'Usuario5', role: 'user', alta: true, plantas: [0, 1, 2] },\r\n { name: 'Usuario5', role: 'user', alta: true, plantas: [0, 1, 2] },\r\n { name: 'Usuario5', role: 'user', alta: true, plantas: [0, 1, 2] },\r\n { name: 'Usuario6', role: 'user', alta: true, plantas: [0, 2] },\r\n];\r\nexport const plantas = [\r\n { name: 'Planta 0', value: true, code: 'Planta 0' },\r\n { name: 'Planta 1', value: true, code: 'Planta 1' },\r\n { name: 'Planta 2', value: true, code: 'Planta 2' },\r\n { name: 'Planta 3', value: true, code: 'Planta 3' },\r\n { name: 'Planta 4', value: true, code: 'Planta 4' },\r\n { name: 'Planta 5', value: true, code: 'Planta 5' },\r\n { name: 'Planta 6', value: true, code: 'Planta 6' },\r\n];\r\n\r\nexport const markers = {\r\n markers: [\r\n {\r\n position: [42.7723478, -1.6272936],\r\n latitud: 42.7723478,\r\n longitud: -1.6272936,\r\n title: 'Marcador 1',\r\n text: 'Geoactio lacation',\r\n planta: 'planta0',\r\n pico: '115',\r\n pais: 'España',\r\n probjetivo: '11',\r\n tipo: 'asd',\r\n },\r\n {\r\n position: [42.7723478, -1.617292],\r\n latitud: 42.7723478,\r\n longitud: -1.617292,\r\n title: 'Marcador 2',\r\n text: 'Geoactio2 lacation',\r\n planta: 'planta1',\r\n pico: '90',\r\n pais: 'España',\r\n probjetivo: '11',\r\n tipo: 'asd',\r\n },\r\n {\r\n position: [42.7623478, -1.617292],\r\n latitud: 42.7623478,\r\n longitud: -1.617292,\r\n title: 'Marcador 3',\r\n text: 'Geoactio3 lacation',\r\n planta: 'planta2',\r\n pico: '70',\r\n pais: 'España',\r\n probjetivo: '11',\r\n tipo: 'asd',\r\n },\r\n {\r\n position: [42.7523478, -1.647292],\r\n latitud: 42.7523478,\r\n longitud: -1.647292,\r\n title: 'Marcador 4',\r\n text: 'Geoactio4 lacation',\r\n planta: 'planta3',\r\n pico: '80',\r\n pais: 'España',\r\n probjetivo: '11',\r\n tipo: 'asd',\r\n },\r\n {\r\n position: [42.79234, -1.647202],\r\n latitud: 42.79234,\r\n longitud: -1.647202,\r\n title: 'Marcador 5',\r\n text: 'Geoactio5 lacation',\r\n planta: 'planta4',\r\n pico: '190',\r\n pais: 'España',\r\n probjetivo: '11',\r\n tipo: 'asd',\r\n },\r\n {\r\n position: [41.547852, -0.890558],\r\n latitud: 41.547852,\r\n longitud: -0.890558,\r\n title: 'OMES30 Mi Ranchito',\r\n text: 'OMES30 Mi Ranchito',\r\n planta: 'planta6',\r\n pico: '95.5',\r\n pais: 'México',\r\n probjetivo: '87',\r\n tipo: 'asd',\r\n },\r\n ],\r\n};\r\n","import { AuthenticationContext, adalFetch, withAdalLogin} from 'react-adal';\r\n//import dotenv from 'dotenv';\r\n//dotenv.config();\r\nimport {tenant, clientId, redirectUri} from '../../Config/const'\r\n\r\nexport const endpoint =clientId;\r\n\r\nexport const adalConfig = {\r\n tenant: tenant,\r\n clientId: clientId,\r\n redirectUri:redirectUri,\r\n authority:\"https://login.microsoftonline.com/\"+tenant,\r\n endpoints: {\r\n api: endpoint,\r\n },\r\n cacheLocation: 'localStorage',\r\n};\r\n\r\nexport const authContext = new AuthenticationContext(adalConfig);\r\n\r\nexport const adalApiFetch = (fetch, url, options) =>\r\n adalFetch(authContext, adalConfig.endpoints.api, fetch, url, options);\r\n\r\n \r\nexport const withAdalLoginApi = withAdalLogin(authContext, adalConfig.endpoints.api);","import decode from 'jwt-decode';\r\nimport { adalConfig, authContext, endpoint } from './adalConfig';\r\n\r\nexport default class AADService {\r\n AADService() {\r\n return this;\r\n }\r\n AADServiceAuthContext() {\r\n return authContext;\r\n }\r\n login() {\r\n authContext.login();\r\n }\r\n\r\n loggedIn() {\r\n return this.getUser() ? true : false;\r\n }\r\n\r\n logout() {\r\n authContext.logOut();\r\n }\r\n\r\n getToken() {\r\n return authContext.getCachedToken(endpoint);\r\n }\r\n async acquireToken() {\r\n //const a=await authContext.acquireToken(adalConfig.clientId, ()=>{this.getToken()});\r\n //return(a);\r\n return authContext.acquireToken(adalConfig.clientId, () => {\r\n this.getToken();\r\n });\r\n }\r\n registerCallback() {\r\n return authContext.registerCallback(adalConfig.clientId, token => {\r\n console.log('token');\r\n });\r\n }\r\n\r\n getUser() {\r\n return authContext.getCachedUser();\r\n }\r\n\r\n getClaims() {\r\n return decode(this.getToken());\r\n }\r\n\r\n getRoles() {\r\n const claims = this.getClaims();\r\n\r\n if (claims.hasOwnProperty('roles')) {\r\n return claims.roles;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n isInRole(role) {\r\n if (this.getRoles()) {\r\n for (var i = 0; i < this.getRoles().length; i++) {\r\n if (this.getRoles()[i] === role) return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import React, { Component, Fragment } from 'react';\r\nimport {NavLink} from 'react-router-dom'\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport AADService from '../Azure/AADService';\r\nimport { withTranslation } from \"react-i18next\";\r\nimport { connect } from 'react-redux';\r\nimport * as proyectAction from \"../../store/actions/proyectAction\";\r\nimport { rolAcceso } from '../../Config/const';\r\n\r\nclass AppSubmenu extends Component {\r\n\r\n static defaultProps = {\r\n className: null,\r\n items: null,\r\n onMenuItemClick: null,\r\n root: false\r\n }\r\n\r\n static propTypes = {\r\n className: PropTypes.string,\r\n items: PropTypes.array,\r\n onMenuItemClick: PropTypes.func,\r\n root: PropTypes.bool\r\n }\r\n \r\n constructor(props) {\r\n super(props);\r\n this.state = {activeIndex: null};\r\n this.AzureADService = new AADService();\r\n }\r\n logOut(e) {\r\n e.preventDefault()\r\n this.props.setUserDataFromLocalStorage(null);\r\n this.AzureADService.logout(); \r\n }\r\n onMenuItemClick(event, item, index) {\r\n //console.log(item)\r\n this.props.setPlantaActual(item)\r\n //avoid processing disabled items\r\n if(item.disabled) {\r\n event.preventDefault();\r\n return true;\r\n }\r\n \r\n //execute command\r\n if(item.command) {\r\n item.command({originalEvent: event, item: item});\r\n }\r\n\r\n if(index === this.state.activeIndex)\r\n this.setState({activeIndex: null}); \r\n else\r\n this.setState({activeIndex: index});\r\n\r\n if(this.props.onMenuItemClick) {\r\n this.props.onMenuItemClick({\r\n originalEvent: event,\r\n item: item\r\n });\r\n }\r\n }\r\n\r\n\trenderLinkContent(item) {\r\n\t\tlet submenuIcon = item.items && ;\r\n\t\tlet badge = item.badge && {item.badge};\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{(item.label)} \r\n\t\t\t\t{submenuIcon}\r\n\t\t\t\t{badge}\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\trenderLink(item, i) {\r\n\t\tlet content = this.renderLinkContent(item);\r\n\t\tif (item.to) {\r\n\t\t\treturn (\r\n\t\t\t\t this.onMenuItemClick(e, item, i)} exact={true} target={item.target}>\r\n {content}\r\n \r\n\t\t\t)\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn (\r\n\t\t\t\t this.onMenuItemClick(e, item, i)} target={item.target}>\r\n\t\t\t\t\t{content}\r\n\t\t\t\t\r\n\t\t\t);\r\n\r\n\t\t}\r\n\t}\r\n \r\n render() { \r\n const { t } = this.props;\r\n let items = this.props.items && this.props.items.map((item, i) => {\r\n let active = this.state.activeIndex === i;\r\n let styleClass = classNames(item.badgeStyleClass, {'active-menuitem': active && !item.to});\r\n if(item.label===\"Configuracion\"){\r\n item.label=t(\"Configuracion\")\r\n }\r\n return (\r\n
  • \r\n {item.items && this.props.root===true &&
    }\r\n {this.renderLink(item, i)}\r\n \r\n
  • \r\n );\r\n });\r\n let rol=\"\";\r\n if(this.props.global){\r\n if(this.props.global.user){\r\n rol=this.props.global.user.roles\r\n }\r\n }\r\n \r\n const Logout=()=>{\r\n return(\r\n \r\n
  • \r\n this.logOut(e)} exact={true} >\r\n \r\n {t(\"Logout\")}\r\n \r\n
  • \r\n
    \r\n );\r\n } \r\n return items ? : null;\r\n }\r\n}\r\n\r\nconst mapStateToProps = (rootReducer) => {\r\n return {global: rootReducer.proyect};\r\n};\r\n\r\nexport default connect(mapStateToProps, proyectAction)(withTranslation (\"translations\") (AppSubmenu));","import PropTypes from 'prop-types';\r\nimport React, { Component } from 'react';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { connect } from 'react-redux';\r\nimport * as proyectAction from '../../store/actions/proyectAction';\r\nimport AppSubmenu from './AppSubMenu';\r\n\r\nclass AppMenu extends Component {\r\n static defaultProps = {\r\n model: null,\r\n onMenuItemClick: null,\r\n };\r\n\r\n static propTypes = {\r\n model: PropTypes.array,\r\n onMenuItemClick: PropTypes.func,\r\n };\r\n render() {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = rootReducer => {\r\n return { global: rootReducer.proyect };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n proyectAction,\r\n)(withTranslation('translations')(AppMenu));\r\n","import React, { Component } from 'react';\r\nimport classNames from 'classnames';\r\nimport AADService from '../Azure/AADService';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { connect } from 'react-redux';\r\nimport * as proyectAction from \"../../store/actions/proyectAction\";\r\n\r\nclass AppProfile extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n expanded: false,\r\n given_name:this.props.global.user!==null?this.props.global.user.given_name:null\r\n };\r\n this.onClick = this.onClick.bind(this);\r\n this.AzureADService = new AADService();\r\n }\r\n componentDidMount() {\r\n //this.datosUsuario();\r\n }\r\n datosUsuario(){\r\n const user=(this.props.global.user);\r\n if(user!==undefined && user!==null){\r\n this.setState({\r\n given_name: user.given_name,\r\n });\r\n } \r\n }\r\n onClick(event) {\r\n this.setState({expanded: !this.state.expanded});\r\n event.preventDefault();\r\n }\r\n\r\n Opciones(){\r\n return(\r\n
    \r\n \r\n
      \r\n
    • \r\n\r\n
    • \r\n
    \r\n
    \r\n ); \r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n {this.state.given_name} \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\nconst mapStateToProps = (rootReducer) => {\r\n return {global: rootReducer.proyect};\r\n};\r\nexport default connect(mapStateToProps, proyectAction)(withTranslation (\"translations\") (AppProfile));","import React, { useState, useRef, Fragment } from 'react';\r\nimport { ConfirmDialog } from 'primereact/confirmdialog';\r\nimport { Button } from 'primereact/button';\r\nimport { Toast } from 'primereact/toast';\r\nimport { useTranslation, withTranslation } from 'react-i18next';\r\nimport { connect } from 'react-redux';\r\nimport * as proyectAction from \"../../store/actions/proyectAction\";\r\n\r\nconst ConfirmDialogDemo = (props,global) => {\r\n const {t}=useTranslation();\r\n const [visible, setVisible] = useState(false);\r\n const toast = useRef(null);\r\n\r\n const accept = () => {\r\n toast.current.show({ severity: 'info', summary: t('Confirmed'), detail: t('You have accepted'), life: 3000 });\r\n props.onClickAction(true);\r\n }\r\n\r\n const reject = () => {\r\n toast.current.show({ severity: 'info', summary: t('Rejected'), detail: t('You have rejected'), life: 3000 });\r\n }\r\n\r\n return (\r\n \r\n \r\n setVisible(false)} \r\n message={t(\"Are you sure you want to proceed?\")}\r\n header={t(\"Confirmation\")} \r\n icon=\"pi pi-exclamation-triangle\" \r\n acceptLabel={t(\"Si\")}\r\n rejectLabel={t(\"No\")}\r\n accept={()=>accept()} \r\n reject={()=>reject()} />\r\n \r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (rootReducer) => {\r\n return {global: rootReducer.proyect};\r\n};\r\nexport default connect(mapStateToProps, proyectAction)(withTranslation (\"translations\") (ConfirmDialogDemo));\r\n","\r\nimport { Menu } from 'primereact/menu';\r\nimport { useTranslation, withTranslation } from 'react-i18next';\r\nimport { connect } from 'react-redux';\r\nimport React, { useRef, Fragment, useState } from 'react';\r\nimport { ConfirmDialog } from 'primereact/confirmdialog';\r\nimport { Toast } from 'primereact/toast';\r\nimport * as proyectAction from \"../../store/actions/proyectAction\";\r\nimport 'primeicons/primeicons.css';\r\nimport 'primereact/resources/themes/saga-blue/theme.css';\r\nimport 'primereact/resources/primereact.css';\r\nimport 'primeflex/primeflex.css';\r\nimport '../../index.css';\r\n\r\nconst PopUpMenu = (global,{handleChangeLanguage,accion,refreshPanel},props) => {\r\n const menu = useRef(null);\r\n const { t } = useTranslation();\r\n const toast = useRef(null);\r\n const [visible, setVisible] = useState(false);\r\n\r\n const accept = () => {\r\n toast.current.show({ severity: 'info', summary: t('Confirmed'), detail: t('You have accepted'), life: 3000 });\r\n global.accion()\r\n }\r\n\r\n const reject = () => {\r\n toast.current.show({ severity: 'info', summary: t('Rejected'), detail: t('You have rejected'), life: 3000 });\r\n }\r\n\r\n let item=()=>([\r\n {\r\n label: \r\n {t(\"periodo\")}\r\n \r\n , \r\n items: [ ]\r\n },\r\n {\r\n label: {t(\"Idioma\")}, \r\n items: [ {\r\n label: \r\n
    \r\n \"\"\r\n {t(\"Español\")}\r\n
    ,\r\n command: ()=>{global.handleChangeLanguage(\"es\")},\r\n },\r\n {\r\n label: \r\n
    \r\n \"\" \r\n {t(\"Ingles\")}\r\n
    ,\r\n command: ()=>{global.handleChangeLanguage(\"en\")},\r\n },\r\n {\r\n label:\r\n
    \r\n \"\" \r\n {t(\"Portugues\")}\r\n
    ,\r\n command: ()=>{global.handleChangeLanguage(\"por\")},\r\n },\r\n {\r\n label: \r\n
    \r\n \"\"\r\n {t(\"Frances\")}\r\n
    ,\r\n command: ()=>{global.handleChangeLanguage(\"fre\")},\r\n }\r\n ]\r\n },\r\n {\r\n items: [{label: {t(\"Resetear\")},command:()=>{setVisible(true) }}]\r\n }, \r\n {\r\n items: [{label: {t(\"Actualizar\")},command:()=>{global.refreshPanel() }}]\r\n }\r\n ])\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n \r\n setVisible(false)} \r\n message={t(\"Are you sure you want to proceed?\")}\r\n header={t(\"Confirmation\")} \r\n icon=\"pi pi-exclamation-triangle\" \r\n acceptLabel={t(\"Si\")}\r\n rejectLabel={t(\"No\")}\r\n accept={()=>accept()} \r\n reject={()=>reject()} />\r\n \r\n \r\n
    \r\n
    \r\n );\r\n}\r\nconst mapStateToProps = (rootReducer) => {\r\n return {global: rootReducer.proyect};\r\n};\r\nexport default connect(mapStateToProps, proyectAction)(withTranslation (\"translations\") (PopUpMenu));","import { Button } from 'primereact/button';\r\nimport { Menu } from 'primereact/menu';\r\nimport PropTypes from 'prop-types';\r\nimport React, { Component, Fragment } from 'react';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { connect } from 'react-redux';\r\nimport * as proyectAction from '../../store/actions/proyectAction';\r\nimport ConfirmDialog from './ConfirmDialog';\r\nimport PopUpMenu from './PopUpMenu';\r\n\r\nclass AppTopbar extends Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n expanded: false,\r\n visibleMenubar: false,\r\n visibleDialog: false,\r\n };\r\n this.onClick = this.onClick.bind(this);\r\n this.menu = React.createRef();\r\n }\r\n componentDidMount() {\r\n this.setState({ visibleMenubar: this.props.global.plantasVisibles });\r\n }\r\n static defaultProps = {\r\n onToggleMenu: null,\r\n handleChangeLanguage: null,\r\n };\r\n\r\n static propTypes = {\r\n onToggleMenu: PropTypes.func.isRequired,\r\n handleChangeLanguage: PropTypes.func.isRequired,\r\n };\r\n handleRefreshCantDias(event) {\r\n //console.log(event);\r\n this.props.refreshCantDias(event.target.value);\r\n }\r\n onClick(event) {\r\n this.setState({ expanded: !this.state.expanded });\r\n event.preventDefault();\r\n }\r\n changeLenguage(lenguage) {\r\n this.props.handleChangeLanguage(lenguage);\r\n }\r\n\r\n render() {\r\n const { t } = this.props;\r\n const botones = () => {\r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n this.props.restoreBoard(true)}\r\n />\r\n\r\n this.props.refreshPanel()}\r\n >\r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n };\r\n\r\n const idioma = () => {\r\n return (\r\n \r\n
    \r\n this.menu.current.toggle(event)}\r\n tooltip={t('Seleccionar Idioma')}\r\n tooltipOptions={{ position: 'left' }}\r\n >\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n };\r\n let itemsBannderas = () => {\r\n return [\r\n {\r\n label: (\r\n \r\n ),\r\n command: () => this.changeLenguage('es'),\r\n },\r\n {\r\n label: (\r\n \r\n ),\r\n command: () => this.changeLenguage('en'),\r\n },\r\n {\r\n label: (\r\n \r\n ),\r\n command: () => this.changeLenguage('por'),\r\n },\r\n {\r\n label: (\r\n \r\n ),\r\n command: () => this.changeLenguage('fre'),\r\n },\r\n ];\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n {botones()}\r\n {idioma()}\r\n
    \r\n
    \r\n {\r\n this.props.restoreBoard(true);\r\n }}\r\n handleChangeLanguage={this.changeLenguage.bind(this)}\r\n refreshPanel={() => {\r\n this.props.refreshPanel();\r\n }}\r\n handleRefreshCantDias={this.handleRefreshCantDias.bind(this)}\r\n cantDiasValue={this.props.cantDiasValue}\r\n />\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\nconst mapStateToProps = rootReducer => {\r\n return { global: rootReducer.proyect };\r\n};\r\nexport default connect(\r\n mapStateToProps,\r\n proyectAction,\r\n)(withTranslation('translations')(AppTopbar));\r\n","import { InputSwitch } from 'primereact/inputswitch';\r\nimport React, { Component } from 'react';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { connect } from 'react-redux';\r\nimport { widges } from '../Config/const';\r\nimport * as proyectAction from '../store/actions/proyectAction';\r\nimport AADService from './Azure/AADService';\r\n\r\nclass Portada extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n authenticated: null,\r\n userName: null,\r\n name: null,\r\n given_name: null,\r\n roles: null,\r\n isWriter: null,\r\n isContributor: null,\r\n key: true,\r\n token: null,\r\n mapa: true,\r\n video: true,\r\n weather: true,\r\n energy: true,\r\n perfRatio: true,\r\n roi: true,\r\n energyRvE: true,\r\n retornoOper: true,\r\n radiacion: true,\r\n valueMapa: 'On',\r\n valueVideo: 'On',\r\n valueWeather: 'On',\r\n valueEnergy: 'On',\r\n valueRoi: 'On',\r\n valuePerformanceRatio: 'On',\r\n valueRetorno: 'On',\r\n valueEnergyRvE: 'On',\r\n valueRadiacion: 'On',\r\n options: ['Off', 'On'],\r\n widges: widges,\r\n };\r\n\r\n this.AzureADService = new AADService();\r\n this.isAuthenticated = this.isAuthenticated.bind(this);\r\n }\r\n\r\n async componentDidMount() {\r\n if (this.props.global.widgesVisibles !== null) {\r\n this.setState({ widges: this.props.global.widgesVisibles });\r\n }\r\n this.datosUsuario();\r\n await this.AzureADService.acquireToken();\r\n //this.setState({key:!this.state.key, token: a});\r\n this.isAuthenticated();\r\n this.props.setProyectPlantaVisible(false);\r\n this.props.setBreadCrumb({});\r\n }\r\n\r\n datosUsuario() {\r\n const user = this.props.global.user;\r\n if (user !== undefined && user !== null) {\r\n this.setState({\r\n userName: user.userName,\r\n name: user.name,\r\n given_name: user.given_name,\r\n family_name: user.family_name,\r\n roles: user.roles,\r\n isWriter: user.isWriter,\r\n isContributor: user.isContributor,\r\n token: user.token,\r\n });\r\n }\r\n }\r\n isAuthenticated() {\r\n if (\r\n !this.AzureADService.loggedIn() ||\r\n this.AzureADService.getToken() === null\r\n ) {\r\n this.AzureADService.acquireToken();\r\n //this.setState({key:!this.state.key});\r\n }\r\n }\r\n setMapaValue(e) {\r\n this.setState({ valueMapa: e.value });\r\n }\r\n setVariableValue(e) {\r\n let temp = [];\r\n if (e.value === null) {\r\n alert('Seleccione un valor');\r\n }\r\n // console.log(e.value);\r\n this.state.widges.forEach(function (posicion, indice) {\r\n if (posicion.id === [e.target.id][0]) {\r\n temp.push({\r\n id: posicion.id,\r\n nombre: posicion.nombre,\r\n value: e.value,\r\n widge: posicion.widge,\r\n valor: posicion.valor,\r\n });\r\n } else {\r\n temp.push(posicion);\r\n }\r\n });\r\n this.setState({ widges: temp });\r\n this.setState({ [e.target.id]: e.value });\r\n this.props.setWidgesVisibles(temp);\r\n }\r\n\r\n setValue(e) {\r\n let temp = [];\r\n this.state.widges.forEach((posicion, indice) => {\r\n if (posicion.widge === [e.target.id][0]) {\r\n temp.push({\r\n id: posicion.id,\r\n nombre: posicion.nombre,\r\n value: e.value,\r\n widge: posicion.widge,\r\n valor: !posicion.valor,\r\n });\r\n } else {\r\n temp.push(posicion);\r\n }\r\n });\r\n /*this.state.widges.map(function(posicion, indice){\r\n if(posicion.widge===[e.target.id][0]){\r\n temp.push({id:posicion.id, nombre:posicion.nombre, value: e.value, widge: posicion.widge, valor: !posicion.valor});\r\n }else{\r\n temp.push(posicion);\r\n }\r\n })*/\r\n this.setState({ widges: temp });\r\n this.props.setWidgesVisibles(temp);\r\n }\r\n\r\n render() {\r\n // console.log(this.state.widges);\r\n const { t } = this.props;\r\n const administrarWidges = () => {\r\n return this.state.widges.map((widgetInfo, index) => (\r\n \r\n {t(widgetInfo.nombre)}\r\n \r\n this.setValue(e)}\r\n />\r\n \r\n \r\n ));\r\n };\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n {t('Seleccione los cards que desea ver')}\r\n \r\n {administrarWidges()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\nconst mapStateToProps = rootReducer => {\r\n return { global: rootReducer.proyect };\r\n};\r\nexport default connect(\r\n mapStateToProps,\r\n proyectAction,\r\n)(withTranslation('translations')(Portada));\r\n","import { Column } from 'primereact/column';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport React, { useEffect, useState } from 'react';\r\n//import {Chart} from 'primereact/chart';\r\nimport { useTranslation, withTranslation } from 'react-i18next';\r\nimport { Map, Marker, Popup, TileLayer } from 'react-leaflet';\r\nimport { connect } from 'react-redux';\r\nimport { NavLink } from 'react-router-dom';\r\nimport * as proyectAction from '../store/actions/proyectAction';\r\nimport LoaddingComponent from './LoadingComponent';\r\n\r\nconst MapPlantas = global => {\r\n const { t } = useTranslation();\r\n useEffect(() => {\r\n update();\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (global.global?.plantas) {\r\n setmarcadorActual(global.global?.plantas[0]);\r\n }\r\n // eslint-disable-next-line\r\n }, [global.global]);\r\n\r\n useEffect(() => {\r\n if (global.global?.plantas) {\r\n setmarcadorActual(global.global?.plantas[0]);\r\n }\r\n // eslint-disable-next-line\r\n }, [global.global]);\r\n\r\n function update() {\r\n global.setProyectPlantaVisible(false);\r\n global.setBreadCrumb({\r\n label: global.breadCrumbLabel,\r\n url: global.breadCrumbUrl,\r\n });\r\n }\r\n const [mapa, SetMapa] = useState(true);\r\n const positions = global.global.plantas;\r\n if (positions[positions?.length - 1].to === 'config') {\r\n positions.splice(positions.length - 1, 1);\r\n }\r\n const [marcadorActual, setmarcadorActual] = useState(\r\n positions !== null ? positions[0] : null,\r\n );\r\n const setPlantaActual = planta => {\r\n global.setPlantaActual(planta);\r\n };\r\n const markers =\r\n positions !== null &&\r\n positions.map(function (position, index) {\r\n if (position.to === 'config') {\r\n return null;\r\n } else {\r\n return (\r\n \r\n \r\n
    \r\n

    {position.nombre}

    \r\n
    \r\n {\r\n e.preventDefault();\r\n actualizarMapa(position);\r\n }}\r\n >\r\n {t('Centrar en el mapa')}\r\n \r\n
    \r\n
    \r\n setPlantaActual(position)}\r\n exact={true}\r\n >\r\n {t('Ver detalles')}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n });\r\n\r\n const actualizarMapa = position => {\r\n if (\r\n marcadorActual.latitud === position.latitud &&\r\n marcadorActual.longitud === position.longitud\r\n ) {\r\n SetMapa(!mapa);\r\n } else {\r\n setmarcadorActual(position);\r\n }\r\n };\r\n\r\n const nameBodyTemplate = rowData => {\r\n return BodyTemplate(t('Nombre'), rowData.label);\r\n };\r\n const picoBodyTemplate = rowData => {\r\n return BodyTemplate(t('Potencia Pico'), rowData.pico);\r\n };\r\n const probjetivoBodyTemplate = rowData => {\r\n return BodyTemplate(t('PR Objetivo'), rowData.probjetivo);\r\n };\r\n const direccionBodyTemplate = rowData => {\r\n return BodyTemplate(t('Direccion'), rowData.direccion);\r\n };\r\n const paisBodyTemplate = rowData => {\r\n return BodyTemplate(t('Pais'), rowData.pais);\r\n };\r\n const BodyTemplate = (label, field) => {\r\n return (\r\n \r\n {label}\r\n {field}\r\n \r\n );\r\n };\r\n\r\n const tabla = () => {\r\n return (\r\n
    \r\n
    \r\n actualizarMapa(e.value)}\r\n selectionMode=\"single\"\r\n dataKey=\"id\"\r\n paginator\r\n paginatorTemplate=\"CurrentPageReport FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown\"\r\n currentPageReportTemplate=\"\"\r\n rows={10}\r\n rowsPerPageOptions={[10, 20, 50]}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const respuesta = () => {\r\n if (positions === null || positions[0] === undefined) {\r\n return (\r\n
    \r\n
    Sin datos
    \r\n
    \r\n );\r\n } else {\r\n return (\r\n
    \r\n
    \r\n {marcadorActual !== null ? (\r\n \r\n \r\n {markers}\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n {tabla()}\r\n
    \r\n );\r\n }\r\n };\r\n return respuesta();\r\n};\r\nconst mapStateToProps = rootReducer => {\r\n return { global: rootReducer.proyect };\r\n};\r\nconst mapDispatchToProps = proyectAction;\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(withTranslation('translations')(MapPlantas));\r\n","import { SelectButton } from 'primereact/selectbutton';\r\nimport React from 'react';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { updateUser } from '../../store/actions/proyectAction';\r\n\r\nconst Activo = ({ t, updateUser, currentUser, toast }) => {\r\n const options = [t('Habilitar'), t('Deshabilitar')];\r\n const updateUsuarioActivo = async value => {\r\n const activo = value === t('Habilitar') ? true : false;\r\n try {\r\n await updateUser({ ...currentUser, activo });\r\n toast?.current?.show({\r\n severity: 'info',\r\n summary: t('Confirmed'),\r\n detail: t('Estado de usuario actualizado'),\r\n life: 3000,\r\n });\r\n } catch (e) {\r\n toast?.current?.show({\r\n severity: 'error',\r\n summary: t('Rejected'),\r\n detail: t('Estado de usuario no actualizado'),\r\n life: 3000,\r\n });\r\n throw new Error(e);\r\n }\r\n };\r\n return (\r\n
    \r\n \r\n {' '}\r\n {t('Estado del Usuario')}:\r\n \r\n updateUsuarioActivo(e.value)}\r\n />\r\n
    \r\n );\r\n};\r\n\r\nconst mapDispatchToProps = dispatch =>\r\n bindActionCreators(\r\n {\r\n updateUser,\r\n },\r\n dispatch,\r\n );\r\n\r\nexport default connect(\r\n null,\r\n mapDispatchToProps,\r\n)(withTranslation('translations')(Activo));\r\n","import { SelectButton } from 'primereact/selectbutton';\r\nimport React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { updateUser } from '../../store/actions/proyectAction';\r\n\r\nconst ActualizarRol = ({ currentUser, updateUser, t, toast }) => {\r\n const roles = ['Administrador', 'Cliente', 'Tecnico'];\r\n const updateUserRole = async rol => {\r\n try {\r\n await updateUser({\r\n ...currentUser,\r\n rol: rol.toLowerCase(),\r\n });\r\n toast?.current?.show({\r\n severity: 'info',\r\n summary: t('Confirmed'),\r\n detail: t('Rol de usuario actualizado'),\r\n life: 3000,\r\n });\r\n } catch (e) {\r\n toast?.current?.show({\r\n severity: 'error',\r\n summary: t('Rejected'),\r\n detail: t('Rol de usuario no actualizado'),\r\n life: 3000,\r\n });\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n \r\n {t('Rol Actual Usuario')}: {currentUser?.nombre}\r\n \r\n updateUserRole(e.value)}\r\n />\r\n
    \r\n );\r\n};\r\n\r\nconst mapDispatchToProps = dispatch =>\r\n bindActionCreators(\r\n {\r\n updateUser,\r\n },\r\n dispatch,\r\n );\r\n\r\nexport default connect(null, mapDispatchToProps)(ActualizarRol);\r\n","import { Button } from 'primereact/button';\r\nimport React, { useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport AxiosConexionConfig from '../../components/Conexion/AxiosConexionConfig';\r\nimport { apiGetPlantas } from '../../Config/const';\r\n\r\nconst DiscoverGPMPlants = () => {\r\n const [loading, setLoading] = useState(false);\r\n const { t } = useTranslation();\r\n\r\n const handleGPMSyncBtn = async () => {\r\n setLoading(true);\r\n const urlDiscoverPlants = apiGetPlantas + '/discover-plants-from-gpm-api';\r\n await AxiosConexionConfig.get(urlDiscoverPlants);\r\n\r\n const urlDiscoverDatasources =\r\n apiGetPlantas + '/discover-datasources-from-gpm-api';\r\n await AxiosConexionConfig.get(urlDiscoverDatasources);\r\n\r\n setLoading(false);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default DiscoverGPMPlants;\r\n","import { Button } from 'primereact/button';\r\nimport { Column } from 'primereact/column';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { MultiSelect } from 'primereact/multiselect';\r\nimport React, { Fragment, useEffect, useState } from 'react';\r\nimport { useTranslation, withTranslation } from 'react-i18next';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { updatePlantasUsuarios } from '../../store/actions/proyectAction';\r\n\r\nconst PlantasUsuario = ({ plantas, currentUser, updatePlantasUsuarios }) => {\r\n const { t } = useTranslation();\r\n const [selectedPlantas, setSelectedPlantas] = useState(currentUser?.plantas);\r\n const [changedPlantas, setChangedPlantas] = useState(false);\r\n\r\n useEffect(() => {\r\n setSelectedPlantas(currentUser?.plantas);\r\n setChangedPlantas(false);\r\n }, [currentUser]);\r\n\r\n const updateValuePlantas = () => {\r\n try {\r\n updatePlantasUsuarios(currentUser, selectedPlantas);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n };\r\n\r\n return (\r\n \r\n
    \r\n

    \r\n {t('Listado de plantas')}: {currentUser?.nombre}\r\n

    \r\n
    \r\n {\r\n setSelectedPlantas(e.target.value);\r\n setChangedPlantas(true);\r\n }}\r\n optionLabel=\"nombre\"\r\n placeholder={t('Seleccione las plantas')}\r\n selectedItemsLabel={'{0} ' + t('plantas seleccionadas')}\r\n filter={true}\r\n className={'width350'}\r\n />\r\n \r\n
    \r\n
    \r\n
    \r\n {currentUser?.plantas ? (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n ) : (\r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nconst mapStateToProps = rootReducer => ({\r\n plantas: rootReducer.proyect.configuration.plantas,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch =>\r\n bindActionCreators(\r\n {\r\n updatePlantasUsuarios,\r\n },\r\n dispatch,\r\n );\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(withTranslation('translations')(PlantasUsuario));\r\n","import { Button } from 'primereact/button';\r\nimport { Column } from 'primereact/column';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport React from 'react';\r\nimport { useTranslation, withTranslation } from 'react-i18next';\r\n\r\nconst TablaUsuarios = ({\r\n users,\r\n setConfigurationUsersAfterAzureSync,\r\n setCurrentUser,\r\n}) => {\r\n const { t } = useTranslation();\r\n const quantityBodyTemplate = rowData => {\r\n return (\r\n \r\n {t('Correo')}\r\n {rowData.correo}\r\n \r\n );\r\n };\r\n const nameBodyTemplate = rowData => {\r\n return (\r\n \r\n {t('Nombre')}\r\n {rowData.nombre}\r\n \r\n );\r\n };\r\n const rolBodyTemplate = rowData => {\r\n return (\r\n \r\n {t('Rol')}\r\n {rowData.rol}\r\n \r\n );\r\n };\r\n\r\n const renderHeader = () => (\r\n
    \r\n {t('Listado de Usuarios')}\r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n\r\n return (\r\n
    \r\n
    \r\n setCurrentUser(e.value)}\r\n selectionMode=\"single\"\r\n dataKey=\"id\"\r\n header={renderHeader()}\r\n resizableColumns\r\n columnResizeMode=\"fit\"\r\n paginator\r\n paginatorTemplate=\"CurrentPageReport FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown\"\r\n currentPageReportTemplate=\"\"\r\n rows={10}\r\n rowsPerPageOptions={[10, 20, 50]}\r\n >\r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default withTranslation('translations')(TablaUsuarios);\r\n","import { Toast } from 'primereact/toast';\r\nimport React, { useEffect, useRef } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport {\r\n setConfigurationUsers,\r\n setConfigurationUsersAfterAzureSync,\r\n setCurrentUser,\r\n} from '../../store/actions/proyectAction';\r\nimport LoaddingComponent from '../LoadingComponent';\r\nimport Activo from './Activo';\r\nimport ActualizarRol from './ActualizarRol';\r\nimport './Configuracion.scss';\r\nimport DiscoverGPMPlants from './DiscoverGPMPlants';\r\nimport PlantasUsuario from './PlantasUsuario';\r\nimport TablaUsuarios from './TablaUsuarios';\r\n\r\nconst Configuracion = ({\r\n setConfigurationUsers,\r\n setConfigurationUsersAfterAzureSync,\r\n users,\r\n currentUser,\r\n setCurrentUser,\r\n loading,\r\n}) => {\r\n const toast = useRef(null);\r\n const { t } = useTranslation();\r\n useEffect(() => {\r\n setConfigurationUsers();\r\n }, [setConfigurationUsers]);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n {loading ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n <>\r\n
    \r\n
    \r\n {true ? (\r\n \r\n ) : (\r\n
    Sin datos
    \r\n )}\r\n
    \r\n\r\n
    \r\n

    \r\n {t('Configuración general de plantas')}\r\n

    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = rootReducer => ({\r\n users: rootReducer.proyect.configuration.users || [],\r\n currentUser: rootReducer.proyect.configuration.currentUser,\r\n loading: rootReducer.proyect.configuration.loading,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch =>\r\n bindActionCreators(\r\n {\r\n setConfigurationUsers,\r\n setConfigurationUsersAfterAzureSync,\r\n setCurrentUser,\r\n },\r\n dispatch,\r\n );\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Configuracion);\r\n","import React, {Component} from 'react';\r\nimport { withTranslation } from \"react-i18next\";\r\nimport { connect } from 'react-redux';\r\nimport * as proyectAction from \"../store/actions/proyectAction\";\r\n\r\nclass NoAcceso extends Component {\r\n\r\n componentDidMount(){\r\n this.props.setBreadCrumb({label: this.props.breadCrumbLabel, url: this.props.breadCrumbUrl})\r\n }\r\n render() {\r\n const { t } = this.props;\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    {t(\"NoAcceso\")}

    \r\n
    \r\n
    \r\n
    \r\n \"Logo\"\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n};\r\nconst mapStateToProps = (rootReducer) => {\r\n return rootReducer.proyect;\r\n};\r\nexport default connect(mapStateToProps, proyectAction)(withTranslation (\"translations\") (NoAcceso));","\r\nimport React, { useEffect, useState } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport {ErrorMessage, Field, Formik} from \"formik\";\r\nimport * as yup from \"yup\";\r\n\r\nimport * as proyectAction from \"../store/actions/proyectAction\";\r\nimport { Button } from 'primereact/button';\r\nimport { useHistory } from 'react-router';\r\nimport { apiUsuario, rutaConfig } from '../Config/const';\r\nimport AxiosConexionConfig from './Conexion/AxiosConexionConfig';\r\nimport { Dropdown } from 'primereact/dropdown';\r\n\r\nconst AddUser=(props)=> {\r\n const history = useHistory();\r\n const initialValues = {\r\n correo: \"\",\r\n nombre: \"\",\r\n rol:\"\",\r\n };\r\n const rolOptions=[\"usuario\",\"administrador\",\"tecnico\"];\r\n const [rol, setRol]=useState(rolOptions[0])\r\n //Obtener usuarios desde la api y definir usuario actual\r\n //props.setProyectPlantaVisible(false); \r\n //props.setBreadCrumb([{label: props.breadCrumbLabel[0], url: props.breadCrumbUrl[0]},{label:props.breadCrumbLabel[1], url: props.breadCrumbUrl[1]}])\r\n\r\n useEffect(() => {\r\n props.setProyectPlantaVisible(false); \r\n props.setBreadCrumb([{label: props.breadCrumbLabel[0], url: props.breadCrumbUrl[0]},{label:props.breadCrumbLabel[1], url: props.breadCrumbUrl[1]}])\r\n // eslint-disable-next-line\r\n },[]);\r\n \r\n async function handleSubmit(values, errors) {\r\n //console.log(values)\r\n values.rol=rol;\r\n //console.log(values)\r\n const url = apiUsuario;\r\n try {\r\n AxiosConexionConfig.post(url, values);\r\n //console.log(user);\r\n history.push(rutaConfig)\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n const onRolChenge = (e) => {\r\n setRol(e.value);\r\n }\r\n return(\r\n
    \r\n
    \r\n \"Profile\"\r\n
    \r\n \r\n {({values, errors, touched, focus, onBlur, handleBlur, handleChange, handleSubmit, onFocus}) => (\r\n
    \r\n {message =>\r\n
    {message}
    }
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    {message =>
    {message}
    }
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    {message =>
    {message}
    }
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    {message =>
    {message}
    }
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n}\r\nconst validationSchema = yup.object().shape({\r\n correo: yup.string().required(\"Email de usuario requerido.\"),\r\n nombre: yup.string().required(\"Nombre de usuario requerido.\"),\r\n});\r\nconst mapStateToProps = (rootReducer) => {\r\n return rootReducer.proyect;\r\n};\r\nexport default connect(mapStateToProps, proyectAction)(AddUser);","import React, {lazy, useEffect} from \"react\";\r\nimport {Route, Switch} from \"react-router-dom\";\r\nimport Portada from \"../Portada\";\r\nimport AADService from '../Azure/AADService';\r\nimport MapPlantas from \"../MapPlantas\";\r\nimport { BreadCrumb } from 'primereact/breadcrumb';\r\nimport { useTranslation,withTranslation } from \"react-i18next\";\r\nimport { connect } from 'react-redux';\r\nimport * as proyectAction from \"../../store/actions/proyectAction\";\r\nimport Configuracion from \"../Configuacion/Configuracion\";\r\nimport { rolAcceso, rutaConfig, rutaAddUser, rutaPlantas, rutaMapa, rutaIndex } from \"../../Config/const\";\r\nimport NoAcceso from \"../NoAcceso\";\r\nimport AddUser from \"../AddUser\";\r\n\r\nconst Planta = lazy(() => import('../Planta'));\r\nconst AzureADService = new AADService();\r\n\r\n\r\nconst Routes = ({reloadLayout,restoreBoard,refreshInterval,layoutColorDark,staticMenuInactive,layoutMode,cantDias,global}) => {\r\n //console.log(\"Route\")\r\n const { t } =useTranslation();\r\n let role=null;\r\n if(global){\r\n if(global.user){\r\n role=global.user.roles\r\n }\r\n }\r\n useEffect(() => {\r\n //first();\r\n /*console.log(AzureADService)\r\n console.log(AzureADService.getToken())\r\n console.log(AzureADService.getRoles())\r\n console.log(AzureADService.AADServiceAuthContext())*/\r\n if(AzureADService.getToken()===null){\r\n AzureADService.acquireToken();\r\n }\r\n });\r\n \r\n const items =()=>{\r\n //console.log(global)\r\n let respuesta=[];\r\n if(global.breadCrumb!==undefined&&global.breadCrumb!=={}){\r\n if(global.breadCrumb.length>1){\r\n //console.log(global.breadCrumb)\r\n global.breadCrumb.forEach(function(elemento, index){\r\n respuesta.push(elemento)\r\n })\r\n }else{\r\n respuesta.push(global.breadCrumb);\r\n }\r\n }\r\n return(respuesta) \r\n } \r\n\r\n const home = { icon: 'pi pi-home', url: rutaIndex }\r\n const plantas=()=>{\r\n if(global.plantas!==null){\r\n return(\r\n global.plantas.map((marcador, index)=>(\r\n \r\n \r\n }/> \r\n ))\r\n )\r\n }\r\n }\r\n\r\n const restringido=()=>{\r\n return( \r\n \r\n (role===rolAcceso)?\r\n ():\r\n ()\r\n }\r\n /> \r\n )\r\n }\r\n\r\n const addUser=()=>{\r\n return( \r\n \r\n (role===rolAcceso)?\r\n ():\r\n ()\r\n }\r\n /> \r\n )\r\n }\r\n\r\n return(\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n \r\n {plantas()}\r\n \r\n }\r\n /> \r\n {restringido()}\r\n {addUser()}\r\n }/>\r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nconst mapStateToProps = (rootReducer) => {\r\n return {global: rootReducer.proyect};\r\n};\r\n\r\nexport default connect(mapStateToProps, proyectAction)(withTranslation (\"translations\") (Routes));\r\n","import React, { Component } from 'react';\r\nimport {PageTitle} from \"../../Config/const\";\r\nexport class AppFooter extends Component {\r\n\r\n render() {\r\n return (\r\n
    \r\n \"\"\r\n {PageTitle}\r\n
    \r\n );\r\n }\r\n}","import React, {Component} from 'react';\r\nimport { withTranslation } from \"react-i18next\";\r\nimport { AppFooter } from './LayoutComponents/AppFooter';\r\nimport 'primereact/resources/themes/saga-blue/theme.css';\r\n//import 'primereact/resources/themes/nova-light/theme.css';\r\nimport 'primereact/resources/primereact.min.css';\r\nimport 'primeicons/primeicons.css';\r\nimport 'primeflex/primeflex.css';\r\nimport '@fullcalendar/core/main.css';\r\nimport '@fullcalendar/daygrid/main.css';\r\nimport '@fullcalendar/timegrid/main.css';\r\nimport '../layout/layout.scss';\r\nimport '../App.scss';\r\nimport { NavLink } from 'react-router-dom';\r\n\r\nclass Loadding extends Component {\r\n\r\n render() {\r\n const { t } = this.props;\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n \"Logo\"\r\n \r\n
    \r\n
    \r\n
    \r\n

    {t(\"Cargando\")}

    \r\n
    \r\n \"Logo\"\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n};\r\nexport default withTranslation (\"translations\") (Loadding);","import React, { Component } from 'react';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { connect } from 'react-redux';\r\nimport * as proyectAction from '../store/actions/proyectAction';\r\n\r\nclass NoConexion extends Component {\r\n componentDidMount() {\r\n this.props.setBreadCrumb({\r\n label: this.props.breadCrumbLabel,\r\n url: this.props.breadCrumbUrl,\r\n });\r\n }\r\n render() {\r\n const { t } = this.props;\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    {t('No Conexion')}

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

    {t('Algo salió mal.')}

    \r\n

    {t('api no disponible, intentelo mas tarde.')}

    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\nconst mapStateToProps = rootReducer => {\r\n return rootReducer.proyect;\r\n};\r\nexport default connect(\r\n mapStateToProps,\r\n proyectAction,\r\n)(withTranslation('translations')(NoConexion));\r\n","import '@fullcalendar/core/main.css';\r\nimport '@fullcalendar/daygrid/main.css';\r\nimport '@fullcalendar/timegrid/main.css';\r\nimport classNames from 'classnames';\r\nimport 'primeflex/primeflex.css';\r\nimport 'primeicons/primeicons.css';\r\nimport 'primereact/resources/primereact.min.css';\r\nimport 'primereact/resources/themes/saga-blue/theme.css';\r\nimport React, { Component } from 'react';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { connect } from 'react-redux';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { bindActionCreators } from 'redux';\r\nimport './App.scss';\r\nimport AADService from './components/Azure/AADService';\r\nimport AxiosConexionConfig from './components/Conexion/AxiosConexionConfig';\r\nimport AppMenu from './components/LayoutComponents/AppMenu';\r\nimport AppProfile from './components/LayoutComponents/AppProfile';\r\nimport AppTopbar from './components/LayoutComponents/AppTopbar';\r\nimport Routes from './components/LayoutComponents/Routes';\r\nimport Loadding from './components/Loadding';\r\nimport NoConexion from './components/NoConexion';\r\nimport {\r\n apiGetPlantas,\r\n apiPing,\r\n apiUsuarioMe,\r\n LayoutLg,\r\n LayoutMd,\r\n LayoutSm,\r\n localStorageBoard,\r\n rutaIndex,\r\n widges,\r\n} from './Config/const';\r\nimport './layout/layout.scss';\r\nimport {\r\n setConfigurationPlantas,\r\n setPlantaActual,\r\n setPlantas,\r\n setUserDataFromLocalStorage,\r\n} from './store/actions/proyectAction';\r\n\r\nclass App extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n lenguage: this.props.global.idioma,\r\n frequency: 60,\r\n defaultBoardLayout: false,\r\n enerlandPanel: this.EnerlandPanel(),\r\n layoutMode: 'static',\r\n layoutColorDark: true,\r\n layoutColorMode: 'light',\r\n layoutColorText: 'Change to light',\r\n staticMenuInactive: false,\r\n overlayMenuActive: false,\r\n mobileMenuActive: false,\r\n refreshKey: true,\r\n ripple: false,\r\n refreshInterval: this.LoadIntervalRefresh(),\r\n cantDias: this.LoadCantDias(),\r\n AzureADService: null,\r\n panel: {},\r\n load: true,\r\n loading: true,\r\n menu: [\r\n {\r\n label: this.props.t('Plantas'),\r\n icon: 'pi pi-fw pi-map-marker',\r\n to: '/map',\r\n },\r\n ],\r\n widges: widges,\r\n loadProfile: false,\r\n };\r\n this.onToggleMenu = this.onToggleMenu.bind(this);\r\n this.onSidebarClick = this.onSidebarClick.bind(this);\r\n this.onMenuItemClick = this.onMenuItemClick.bind(this);\r\n this.AzureADService = new AADService();\r\n this.handleConexioApi();\r\n this.datos();\r\n }\r\n\r\n componentDidMount() {\r\n document.title = this.props.t('Title'); //TÍTULO DE LA PÁG WEB\r\n }\r\n\r\n datos = async () => {\r\n if (this.AzureADService.getToken() === null) {\r\n this.AzureADService.acquireToken();\r\n }\r\n const user = this.AzureADService.getUser();\r\n const requestOptions = encodeURIComponent(\r\n JSON.stringify({\r\n include: [\r\n {\r\n relation: 'plantas',\r\n scope: {\r\n fields: [\r\n 'idplanta',\r\n 'nombre',\r\n 'direccion',\r\n 'pais',\r\n 'tipo',\r\n 'latitud',\r\n 'longitud',\r\n 'potenciapico',\r\n 'probjetivo',\r\n 'mwtotal',\r\n 'idGpm',\r\n ],\r\n },\r\n },\r\n ],\r\n }),\r\n );\r\n try {\r\n const url = apiUsuarioMe + `?filter=${requestOptions}`;\r\n\r\n const urlPlantasConfiguracion =\r\n apiGetPlantas + '?filter[fields][imagen]=false';\r\n\r\n const [usuario, plantas] = await Promise.all([\r\n AxiosConexionConfig.get(url),\r\n AxiosConexionConfig.get(urlPlantasConfiguracion),\r\n ]);\r\n\r\n this.setUsuarioLocal(usuario.data, user);\r\n\r\n let configuracionMenu = {\r\n label: 'Configuracion',\r\n icon: 'pi pi-fw pi-cog',\r\n to: 'config',\r\n };\r\n\r\n this.props.setConfigurationPlantas(plantas.data);\r\n\r\n let menuTemporal = [];\r\n\r\n menuTemporal = this.datosPlantasMarcadores(usuario.data.plantas);\r\n\r\n this.props.setPlantas(menuTemporal);\r\n\r\n menuTemporal !== undefined && menuTemporal[0] !== undefined\r\n ? this.props.setPlantaActual(menuTemporal[0])\r\n : this.props.setPlantaActual(null);\r\n\r\n menuTemporal.push(configuracionMenu);\r\n\r\n const menuItems = [...this.state.menu, ...menuTemporal];\r\n\r\n this.setState({ menu: menuItems, loading: false });\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n };\r\n\r\n setUsuarioLocal = (usuarioApi, usuarioAzure) => {\r\n const usuario = {\r\n userName: usuarioAzure.userName,\r\n name: usuarioAzure.profile.name,\r\n given_name: usuarioAzure.profile.given_name,\r\n family_name: usuarioAzure.profile.family_name,\r\n roles: usuarioApi.rol,\r\n isWriter: this.AzureADService.isInRole('Writer') ? 'yes' : 'no',\r\n isContributor: this.AzureADService.isInRole('Contributor') ? 'yes' : 'no',\r\n token: this.AzureADService.getToken(),\r\n };\r\n this.props.setUserDataFromLocalStorage(usuario);\r\n this.setState({ loadProfile: !this.state.loadProfile });\r\n };\r\n\r\n emptyPanel = () => {\r\n return {\r\n cantDias: '1',\r\n refreshInterval: '5000',\r\n };\r\n };\r\n EnerlandPanel = () => {\r\n const EnerlandPanel = localStorage.getItem(localStorageBoard);\r\n const panel =\r\n EnerlandPanel === null ||\r\n EnerlandPanel === undefined ||\r\n EnerlandPanel === 'undefined'\r\n ? this.emptyPanel()\r\n : JSON.parse(EnerlandPanel);\r\n return panel;\r\n };\r\n LoadIntervalRefresh = () => {\r\n const panel = this.EnerlandPanel();\r\n if (\r\n panel.refreshInterval === null ||\r\n panel.refreshInterval === undefined ||\r\n panel.refreshInterval === 'undefined'\r\n ) {\r\n panel.refreshInterval = '5000000';\r\n }\r\n //return (panel.refreshInterval);\r\n return '5000000';\r\n };\r\n LoadCantDias = () => {\r\n const panel = this.EnerlandPanel();\r\n if (\r\n panel.cantDias === null ||\r\n panel.cantDias === undefined ||\r\n panel.cantDias === 'undefined'\r\n ) {\r\n panel.cantDias = '1';\r\n }\r\n return panel.cantDias;\r\n };\r\n handleChangeLanguage = language => {\r\n this.setState(prevState => ({ lenguage: language }));\r\n // this.props.setIdioma(language);\r\n this.props.i18n.changeLanguage(language);\r\n };\r\n\r\n restoreBoard = value => {\r\n let panel = this.emptyPanel();\r\n this.setState({\r\n enerlandPanel: panel,\r\n cantDias: panel.cantDias,\r\n //refreshInterval:panel.refreshInterval,\r\n refreshKey: Math.random(),\r\n defaultBoardLayout: value,\r\n });\r\n const serializedPanel = JSON.stringify(panel);\r\n localStorage.setItem('localStorageBoard', serializedPanel);\r\n const serializedPanels = JSON.stringify({\r\n lg: LayoutLg,\r\n md: LayoutLg,\r\n sm: LayoutMd,\r\n xs: LayoutMd,\r\n xxs: LayoutSm,\r\n });\r\n localStorage.setItem('EnerlandBoardPanels', serializedPanels);\r\n };\r\n\r\n setCantDias = value => {\r\n let panel = this.EnerlandPanel();\r\n panel.cantDias = value;\r\n const serializedPanel = JSON.stringify(panel);\r\n localStorage.setItem(localStorageBoard, serializedPanel);\r\n this.setState({\r\n enerlandPanel: panel,\r\n cantDias: value,\r\n refreshKey: Math.random(),\r\n });\r\n };\r\n\r\n refreshPanel = () => {\r\n this.setState({\r\n refreshKey: Math.random(),\r\n });\r\n };\r\n\r\n onToggleMenu(event) {\r\n this.menuClick = true;\r\n\r\n if (this.isDesktop()) {\r\n if (this.state.layoutMode === 'overlay') {\r\n this.setState({\r\n overlayMenuActive: !this.state.overlayMenuActive,\r\n });\r\n } else if (this.state.layoutMode === 'static') {\r\n this.setState({\r\n staticMenuInactive: !this.state.staticMenuInactive,\r\n });\r\n }\r\n } else {\r\n const mobileMenuActive = this.state.mobileMenuActive;\r\n this.setState({\r\n mobileMenuActive: !mobileMenuActive,\r\n });\r\n }\r\n this.setState({ refreshKey: !this.state.refreshKey });\r\n event.preventDefault();\r\n }\r\n\r\n onSidebarClick(event) {\r\n this.menuClick = true;\r\n }\r\n\r\n onMenuItemClick(event) {\r\n if (!event.item.items) {\r\n this.setState({\r\n overlayMenuActive: false,\r\n mobileMenuActive: false,\r\n });\r\n }\r\n }\r\n\r\n isDesktop() {\r\n return window.innerWidth > 1024;\r\n }\r\n\r\n datosPlantasMarcadores(marcadores) {\r\n let menuTemp = [];\r\n marcadores.forEach(function (marcador, index) {\r\n menuTemp.push({\r\n nombre: marcador.nombre,\r\n label: marcador.nombre,\r\n idplanta: marcador.idplanta,\r\n icon: 'pi pi-fw pi-chart-line',\r\n to: 'plant' + index,\r\n position: marcador.position,\r\n direccion: marcador.direccion,\r\n latitud: marcador.latitud,\r\n longitud: marcador.longitud,\r\n pais: marcador.pais,\r\n probjetivo: marcador.probjetivo,\r\n tipo: marcador.tipo,\r\n text: marcador.nombre,\r\n pico: marcador.potenciapico,\r\n imagen: marcador.imagen,\r\n link: 'plant' + index,\r\n });\r\n });\r\n return menuTemp;\r\n }\r\n\r\n async handleConexioApi() {\r\n const url = apiPing;\r\n try {\r\n const ping = await AxiosConexionConfig.get(url);\r\n if (ping.status === 200) {\r\n this.setState({ load: true });\r\n } else {\r\n this.setState({ load: false });\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n this.setState({ load: false });\r\n }\r\n }\r\n\r\n render() {\r\n //console.log(\"app\")\r\n const logo =\r\n this.state.layoutColorMode === 'dark'\r\n ? 'assets/layout/images/logo-white.svg'\r\n : 'assets/layout/images/logo.svg';\r\n const wrapperClass = classNames('layout-wrapper', {\r\n 'layout-overlay': this.state.layoutMode === 'overlay',\r\n 'layout-static': this.state.layoutMode === 'static',\r\n 'layout-static-sidebar-inactive':\r\n this.state.staticMenuInactive && this.state.layoutMode === 'static',\r\n 'layout-overlay-sidebar-active':\r\n this.state.overlayMenuActive && this.state.layoutMode === 'overlay',\r\n 'layout-mobile-sidebar-active': this.state.mobileMenuActive,\r\n });\r\n\r\n const sidebarClassName = classNames('layout-sidebar', {\r\n 'layout-sidebar-dark': this.state.layoutColorMode === 'dark',\r\n 'layout-sidebar-light': this.state.layoutColorMode === 'light',\r\n });\r\n //console.log(this.state.refreshKey+this.state.defaultBoardLayout)\r\n const loadApiOk = () => {\r\n return (\r\n
    \r\n \r\n (this.sidebar = el)}\r\n className={sidebarClassName}\r\n onClick={this.onSidebarClick}\r\n >\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n );\r\n };\r\n\r\n const respuesta = () => {\r\n if (this.state.loading) {\r\n return ;\r\n } else {\r\n if (this.state.load) {\r\n return loadApiOk();\r\n } else {\r\n return ;\r\n }\r\n }\r\n };\r\n return respuesta();\r\n }\r\n}\r\n\r\nconst mapStateToProps = rootReducer => {\r\n return { global: rootReducer.proyect };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch =>\r\n bindActionCreators(\r\n {\r\n setConfigurationPlantas,\r\n setUserDataFromLocalStorage,\r\n setPlantas,\r\n setPlantaActual,\r\n },\r\n dispatch,\r\n );\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(withTranslation('translations')(App));\r\n","import {Component} from 'react';\r\nimport {withRouter } from 'react-router-dom';\r\n\r\nclass ScrollToToph extends Component {\r\n componentDidUpdate(prevProps) {\r\n if (this.props.location !== prevProps.location) {\r\n window.scrollTo(0, 0)\r\n }\r\n }\r\n\r\n render() {\r\n return this.props.children\r\n }\r\n}\r\n\r\nexport default withRouter(ScrollToToph);","import i18n from 'i18next';\r\nimport LanguageDetector from 'i18next-browser-languagedetector';\r\nimport Backend from 'i18next-http-backend';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport en from './en.json';\r\nimport es from './es.json';\r\nimport fre from './fre.json';\r\nimport por from './por.json';\r\ni18n\r\n // load translation using http -> see /public/locales (i.e. https://github.com/i18next/react-i18next/tree/master/example/react/public/locales)\r\n // learn more: https://github.com/i18next/i18next-http-backend\r\n .use(Backend)\r\n\r\n // pass the i18n instance to react-i18next.\r\n .use(initReactI18next)\r\n .use(LanguageDetector)\r\n .init({\r\n // we init with resources\r\n resources: {\r\n en,\r\n es,\r\n por,\r\n fre,\r\n },\r\n fallbackLng: 'es',\r\n //debug: true,\r\n\r\n // have a common namespace used around the full app\r\n ns: ['translations'],\r\n defaultNS: 'translations',\r\n\r\n keySeparator: false, // we use content as keys\r\n\r\n interpolation: {\r\n escapeValue: false, // not needed for react!!\r\n formatSeparator: ',',\r\n },\r\n\r\n react: {\r\n wait: true,\r\n useSuspense: false,\r\n },\r\n });\r\n\r\nexport default i18n;\r\n","import { widges } from '../../Config/const';\r\n\r\nconst initState = {\r\n conexionError: false,\r\n plantasVisibles: false,\r\n plantaActual: null,\r\n user: null,\r\n //widgesVisibles: null,\r\n plantas: null,\r\n idioma: 'es',\r\n widgesVisibles: widges,\r\n breadCrumb: [],\r\n configuration: {\r\n users: [],\r\n currentUser: null,\r\n plantas: [],\r\n loading: true,\r\n },\r\n};\r\nconst proyectReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n case 'initGlobal':\r\n return { ...state, conexionError: false };\r\n case 'initGlobal1':\r\n return { ...state, conexionError: action.dataT };\r\n case 'setPlantaVisible':\r\n return { ...state, plantasVisibles: action.dataT };\r\n case 'setWidgesVisibles':\r\n return { ...state, widgesVisibles: action.dataT };\r\n case 'setPlantas':\r\n return { ...state, plantas: action.dataT };\r\n case 'setPlantaActual':\r\n return { ...state, plantaActual: action.dataT };\r\n case 'setBreadCrumb':\r\n return { ...state, breadCrumb: action.dataT };\r\n case 'setIdioma':\r\n return { ...state, idioma: action.dataT };\r\n case 'setUserDataFromLocalStorage':\r\n return { ...state, user: action.dataT };\r\n case 'setConfigurationUsers':\r\n return {\r\n ...state,\r\n configuration: { ...state.configuration, users: action.dataT },\r\n };\r\n case 'updateConfigurationUser':\r\n return {\r\n ...state,\r\n configuration: { ...state.configuration, ...action.dataT },\r\n };\r\n case 'setConfigurationUser':\r\n return {\r\n ...state,\r\n configuration: {\r\n ...state.configuration,\r\n users: [...state.configuration.users, action.dataT],\r\n },\r\n };\r\n case 'setConfigurationPlantas':\r\n return {\r\n ...state,\r\n configuration: {\r\n ...state.configuration,\r\n plantas: action.dataT,\r\n },\r\n };\r\n case 'loadingConfiguration':\r\n return {\r\n ...state,\r\n configuration: {\r\n ...state.configuration,\r\n loading: action.dataT,\r\n },\r\n };\r\n case 'setCurrentUser':\r\n return {\r\n ...state,\r\n configuration: { ...state.configuration, currentUser: action.dataT },\r\n };\r\n case 'error':\r\n return { ...state, error: action.dataT, loading: false };\r\n default:\r\n return state;\r\n }\r\n};\r\nexport default proyectReducer;\r\n","const initState= {\r\n loading: false,\r\n login: false,\r\n data: [],\r\n error:\"\",\r\n idleTimeOut:(1000 * 20 * 60),\r\n cookies: false,\r\n};\r\nconst authReducer=(state = initState, action)=>{\r\n switch (action.type) {\r\n case 'logout':\r\n localStorage.removeItem('booktopays');\r\n return {...state, login: false, data: [], error: \"\"};\r\n case 'initGlobal':\r\n return {...state, login: false, data: [], error: \"\"};\r\n case 'loading':\r\n return {...state, loading: true};\r\n case 'cookiesOn':\r\n return {...state, cookies: true};\r\n case 'cookiesOff':\r\n return {...state, cookies: false};\r\n case 'setIdle':\r\n return {...state, idleTimeOut: action.data};\r\n case 'data':\r\n return {...state,\r\n data:action.dataT,\r\n loading: false,\r\n error: \"\",\r\n login: true,\r\n };\r\n case 'error':\r\n return {...state,error: action.dataT, loading: false};\r\n default:\r\n return state;\r\n }\r\n};\r\nexport default authReducer;","import proyectReducer from \"./proyectReducer\";\r\nimport authReducer from \"./authReducer\";\r\nimport {combineReducers, createStore, applyMiddleware, compose } from 'redux';\r\nimport reduxThunk from 'redux-thunk';\r\nimport {localStoregeTitle} from '../../Config/const';\r\n\r\nfunction saveToLocalStorage(store) {\r\n try {\r\n //console.log('saveLocalStorage');\r\n //console.log(store);\r\n const serializedState = JSON.stringify(store);\r\n localStorage.setItem(localStoregeTitle, serializedState);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n}\r\n\r\nfunction loadFromLocalStorage() {\r\n try {\r\n //console.log('loadLocalStorage');\r\n const serializedState = localStorage.getItem(localStoregeTitle);\r\n //console.log(serializedState);\r\n if (serializedState === null) return undefined;\r\n return JSON.parse(serializedState);\r\n } catch (e) {\r\n console.log(e);\r\n return undefined;\r\n }\r\n}\r\n\r\nconst persitedState = loadFromLocalStorage();\r\n\r\nconst rootReducer = combineReducers({\r\n auth: authReducer,\r\n proyect: proyectReducer,\r\n});\r\n\r\nlet composeEnhancers = compose;\r\n\r\n// This is for the redux-devtools-extension chrome extension https://github.com/zalmoxisus/redux-devtools-extension\r\nif (process.env.NODE_ENV !== 'production' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__) {\r\n composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;\r\n}\r\n\r\nconst store = createStore(rootReducer, persitedState, composeEnhancers(applyMiddleware(reduxThunk)));\r\n\r\n/*Actualiza el localstorage cada ves que se modifica el store*/\r\nstore.subscribe(() => saveToLocalStorage(store.getState()));\r\nexport default store;\r\n","import { runWithAdal } from 'react-adal';\r\nimport { authContext } from './components/Azure/adalConfig';\r\n \r\nimport 'react-app-polyfill/ie11';\r\nimport React, { Suspense } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport App from './App';\r\n//import * as serviceWorker from './serviceWorker';\r\n//import { HashRouter } from 'react-router-dom'\r\nimport {BrowserRouter as Router} from \"react-router-dom\";\r\nimport ScrollToTop from './ScrollToTop';\r\n//import {Loadding} from '../../components/Loadding';\r\n// import i18n (needs to be bundled ;)) \r\nimport './components/Translation/i18n';\r\nimport { Provider } from 'react-redux';\r\nimport store from \"./store/reducers/rootReducer\";\r\nimport Loadding from './components/Loadding';\r\n\r\nconst DO_NOT_LOGIN = false;\r\n\r\n\r\nauthContext.handleWindowCallback();\r\ntry{\r\n runWithAdal(authContext, () => { \r\n // eslint-disable-next-line\r\n ReactDOM.render(\r\n \r\n \r\n )}>\r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n ); \r\n },DO_NOT_LOGIN);\r\n}catch(e){\r\n console.log(e);\r\n}\r\n\r\n\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: http://bit.ly/CRA-PWA\r\n//serviceWorker.unregister();","import React from \"react\";\r\n\r\n\r\nconst LoaddingComponent=()=>{\r\n return (\r\n
    \r\n \"Logo\"\r\n
    \r\n)}\r\nexport default LoaddingComponent"],"sourceRoot":""}