{"version":3,"sources":["components/Page/Page.module.scss","components/ButtonYellow/ButtonYellow.module.scss","components/ModalReportReview/ModalReportReview.module.scss","components/ModalReport/ModalReport.module.scss","components/TableReview/TableReview.module.scss","components/EnergyMeter/EnergyMeter.module.scss","components/BaseScene/BaseScene.module.scss","components/FlagDropdown/FlagDropdown.module.scss","components/SceneItem/SceneItem.module.scss","components/CustomInput/CustomInput.module.scss","components/DropItem/DropItem.module.scss","components/ButtonReturn/ButtonReturn.module.scss","pages/Launcher/Laucher.module.scss","components/GameContainer/GameContainer.module.scss","components/ModalOnDropItem/ModalOnDropItem.module.scss","components/ModalAddItem/ModalAddItem.module.scss","components/ModalAlert/ModalAlert.module.scss","components/SidebarItem/SidebarItem.module.scss","components/ModalOtherItems/ModalOtherItems.module.scss","redux/actions/itemActions.js","common/data/initialState.js","redux/reducers/itemReducer.js","redux/actions/sidebarActions.js","redux/reducers/sidebarReducer.js","redux/actions/reportActions.js","redux/reducers/reportReducer.js","redux/actions/taxActions.js","redux/reducers/taxReducer.js","common/data/types.js","redux/actions/appActions.js","redux/reducers/appReducer.js","redux/logger.js","redux/store.js","common/utils/global.js","components/BaseScene/index.jsx","components/ButtonYellow/index.jsx","components/ModalAlert/index.jsx","common/hooks/useCosts.jsx","common/hooks/useLayout.jsx","components/ChartBar/CustomLabelLine.jsx","components/ChartBar/index.jsx","components/FlagDropdown/flags.js","components/ChartPie/index.jsx","components/ChartLine/index.jsx","common/services/api/webhook.js","common/utils/usage.js","components/Content/index.jsx","common/hooks/useMetrics.jsx","components/ChartReview/index.jsx","components/TableReview/index.jsx","components/ModalReport/index.jsx","components/EnergyMeter/index.jsx","components/Carousel/index.jsx","pages/Launcher/index.jsx","components/CustomInput/index.jsx","components/ModalOnDropItem/index.jsx","components/SidebarItem/index.jsx","common/services/api/index.js","common/services/api/aparelhos.js","components/ModalAddItem/index.jsx","components/Sidebar/index.jsx","components/DropItem/index.jsx","components/SceneItem/index.jsx","components/ButtonReturn/index.jsx","components/ModalOtherItems/index.jsx","components/Page/index.jsx","pages/Bathroom/index.jsx","pages/LivingRoom/index.jsx","pages/Kitchen/index.jsx","pages/Office/index.jsx","pages/Bedroom/index.jsx","pages/Laundry/index.jsx","pages/Garage/index.jsx","pages/ExternalArea/index.jsx","router/router.jsx","common/services/api/medidas.js","common/services/api/taxas.js","common/services/api/ambientes.js","components/GameContainer/index.jsx","index.jsx","components/Carousel/Carousel.module.scss","components/Sidebar/Sidebar.module.scss"],"names":["module","exports","ACTION_TYPES","removeItem","selector","type","payload","initialState","setHoverItem","hovered","tx_selector","addItemToReport","item","removeItemFromReport","editItemFromReport","Medida","Ambiente","AmbienteColors","TipoTaxa","setAppState","showHelp","metrics","places","userType","casaPadrao","params","callsWebhook","token","undefined","user","finishedReport","showModalReportReview","currentFlag","reducers","items","state","arguments","length","action","concat","_toConsumableArray","filter","sidebar","temp","obj","find","i","data","placed","map","_objectSpread","report","stt","taxes","app","createStore","combineReducers","applyMiddleware","store","next","console","group","info","result","log","getState","groupEnd","BASE_URL","safeArray","array","BaseScene","_ref","source","_ref$opaque","opaque","children","_objectWithoutProperties","_excluded","React","createElement","className","styles","container","image","style","backgroundImage","opacity","defaultProps","ButtonYellow","text","onClick","navigate","alternate","getStyles","alt","Link","to","altText","ModalAlert","title","subtitle","onReject","onConfirm","onDismiss","visible","Fragment","hidden","wrapper","close","btnRow","btnRow2","btn","useCosts","tax","useSelector","getTaxes","useCallback","flat","profiles","tipo_consumidores","p","id_tipoConsumidor","id_tipoTaxa","includes","percent","flag","id_taxa","calcFlag","kwh","totalKwRef","tempTaxes","val","nu_minimo_kw","nu_maximo_kw","base","nu_valor","tmp","reduce","acc","e","calc","tmpBase","calcWithTaxes","addFlag","calculateCost","withTaxes","calculateTotal","total","breakdown","name","tx_nome","value","totalWithoutTaxes","error","getTotalKw","rep_usage","current","initialOptions","fitScreen","ref","width","height","useLayout","options","_React$useState","useState","h","w","_React$useState2","_slicedToArray","relative","setRelative","useEffect","getRelativeDimensions","window","innerWidth","innerHeight","Math","min","cb","debounce","addEventListener","removeEventListener","getMultiplier","multiW","multiH","getSizeMultiplier","resize","dimension","CustomLabelLine","props","x","y","fill","stroke","maxValue","values","dt","value1","max","apply","findMaxValue","textAnchor","dominantBaseline","label1","label2","withBrush","getAdditionalHeight","size","slice","ChartBar","_ref$data","_ref$config","config","setSize","document","getElementById","getBoundingClientRect","BarChart","maxBarSize","fontSize","layout","CartesianGrid","strokeDasharray","XAxis","YAxis","dataKey","hide","Tooltip","formatter","Bar","entry","index","Cell","key","idAmbiente","ambiente","LabelList","position","content","Object","assign","id","color","RADIAN","PI","colors","findColor","TYPES","ChartPie","_ref$withAmbientes","withAmbientes","_ref$type","_ref$formatter","animate","setAnimate","getColor","toLowerCase","tx","replace","flagColors","c","trim","setTimeout","labelLine","PieChart","Pie","isAnimationActive","cx","cy","innerRadius","outerRadius","label","midAngle","radius","cos","sin","toFixed","paddingAngle","Legend","wrapperStyle","iconSize","ChartLine","_regeneratorRuntime","t","r","prototype","n","hasOwnProperty","o","defineProperty","Symbol","a","iterator","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","f","s","GeneratorFunction","GeneratorFunctionPrototype","d","getPrototypeOf","v","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","stop","rval","handle","complete","finish","catch","delegateYield","callWebhook","_x","_x2","_callWebhook","_asyncToGenerator","_callee","body","_context","axios","post","process","headers","Authorization","res","err","message","housPerDay","power","time","calcUsage","usageType","minutesPerDay","Content","_ref$visible","useMetrics","findMetric","metric","id_medida","getMetrics","findByName","ChartReview","TableReview","_ref$rec","rec","_ref$review","review","_ref$chartData","chartData","_ref$children","totalKW","optmized","setOptmized","calcTotalUser","calcTotalRec","ap","sug","rev","id_aparelho","recommended","eco","sort","b","usage","formatKW","valueUser","valueRec","Styles","success","chartWrapper","divider","table","calcTotalKw","ModalReport","place","isGeneral","_useState","_useState2","setData","_useState3","_useState4","setTotalKW","_useState5","_useState6","generalMode","setGeneralMode","_useState7","_useState8","analise","setAnalise","_useState9","_useState10","reviewMode","setReviewMode","_useState11","_useState12","analiseSelected","setAnaliseSelected","_useSelector","generalData","_useSelector2","ambientes","dispatch","useDispatch","history","useHistory","_useCosts","findComodo","ab","id_ambiente","toUpperCase","findHighUsage","dataList","totalkw","aparelhos","apAltoCusto","apc","aparelho","sugeridos","aparelhos_sugeridos","nu_potencia_sugerida","rep_quantity","rep_useTime","cost","recommendedSorted","mapped","rc","filtered","sorted","createRecommendedReport","reportItens","padrao","UsageUtils","nu_tempo_sugerido","rep_power","rep_useType","handleChange","rep_cost","localData","titleReportWrapper","marginTop","noMargin","box","maxWidth","flexTd","split","toLocaleString","minimumFractionDigits","formatPercentage","fontWeight","chartBox","parseFloat","srt","CharPie","totalKw1","kw","calculateUsagePercentage","margin","display","flexDirection","alignItems","justifyContent","textAlign","href","rel","target","avaliar","marginBottom","flexWrap","q","ROUTES","LAUNCHER","started","avoidReduxOverride","marginLeft","_callee2","_app$params","_context2","id_sugerido","rep_idSugerido","nome_aparelho","nome_ambiente","tx_ambiente","nome_aparelho_sugerido","rep_nomeSugerido","potencia_watts","custo_mensal","quantidade_aparelhos","tipo_de_uso","tempo_de_uso","aps2","totalKw2","value2","_ref4","disclaimer","Carousel","showThumbs","showStatus","showIndicators","showArrows","onChange","renderArrowNext","onClickHandler","hasNext","arrow","right","padding","MdKeyboardArrowRight","renderArrowPrev","hasPrev","left","MdKeyboardArrowLeft","analiseWrapper","analiseItem","borderTopWidth","background","b_selo_procel","HiLightBulb","memo","calcValue","calcBoxes","parseInt","Box","_ref$quantity","quantity","elements","counter","src","EnergyMeter","_ref2","reportLocal","setKw","showAlert","setShowAlert","showModal","setShowModal","toggleModal","AnimatedNumber","formatValue","toString","padStart","duration","bar","infiniteLoop","dynamicHeight","arrowPrev","arrowNext","bordaCorretiva","getInitialState","location","isFromButtonReturn","from","Laucher","setStarted","_React$useState3","_React$useState4","tutorial","setTutorial","animate1","animate2","search","parse","tempObj","navigatorContainer","containerAjudaInicial","bathTouchable","BATHROOM","livingTouchable","LIVING_ROOM","kitchenTouchable","KITCHEN","officeTouchable","OFFICE","bedroomTouchable","BEDROOM","laundryTouchable","LAUNDRY","garageTouchable","GARAGE","externalAreaTouchable","EXTERNAL","mainTextContainer","tutorialContainer","closeTutorial","textTutorialContainer","slideContainer","textContainer","title1","title2","buttonsContainer","meterContainer","getType","withError","ret","inputLarge","inputSmall","inputMedium","inputEspecial","CustomInput","modal","inputStyle","dropdown","dropdownData","dropdownModal","setValue","errorVisible","showDrop","setShowDrop","toggleDrop","placeholder","clickable","Field","touch","dropContainer","modalDrop","divScrollContainer","placeholderModal","disabled","inputList","showProcel","iconContainer","modalFade","ModalOnDropItem","mode","onSuccess","_useMetrics","SignupSchema","Yup","shape","required","remove","findName","icon","textBox","Formik","initialValues","rep_suggested","validationSchema","onSubmit","formValues","setFieldValue","errors","touched","Form","formItems","autoComplete","teste","metr","help","snip","cursor","submit","noSug","editContainer","save","editContainerNoSug","nome","SidebarItem","forwardRef","containerStyle","showModalEdit","setShowModalEdit","itemToEdit","setItemToEdit","onHover","onBlur","toggleModalEdit","placeItem","setItemPlaced","isPlaced","findThisItem","it","side","_useDrag","useDrag","end","monitor","dropResult","getDropResult","collect","isDragging","_useDrag2","drag","preview","add","button","DragPreviewImage","connect","onFocus","onMouseOver","onMouseLeave","onDoubleClick","rep","editItem","Headers","get","_get","url","Axios","_post","_x3","put","_put","_callee3","_context3","_x4","_x5","delete","_delete2","_callee4","_context4","_x6","_getAparelhos","Api","_postAparelho","_putAparelho","getSelector","random","substr","ModalAddItem","is_local_item","id_tipoAparelho","b_ativo","id_tipo","AparelhoService","addItem","maxLength","DIRECTION","Sidebar","collapsible","currentPosition","setCurrentPosition","collapsed","setCollapsed","showModalAdd","setShowModalAdd","refs","createRef","handleClick","direction","reference","scrollIntoView","behavior","block","inline","default","toggle","sideArrow","arrowUp","visibility","itemsColumn","arrowDown","DropItem","_useDrop","useDrop","accept","drop","isOver","canDrop","_useDrop2","hlContainer","zIndex","SceneItem","img","ButtonReturn","pathname","ModalOtherItems","setTarget","toggleAlert","calculado","currency","formatCost","btns","edit","Page","localItems","loading","setLoading","isHovered","finished","onLoad","itemsContainer","othersWrapper","returnWrapper","loadingContainer","RingLoader","Bathroom","LivingRoom","Kitchen","Office","Bedroom","Laundry","Garage","ExternalArea","Router","BrowserRouter","baseName","Switch","Route","exact","path","component","Launcher","_getMedidas","medidas","_getTaxas","taxas","_getAmbientes","amb","GameContainer","notify","MedidasService","mdd","finally","TaxaService","setCurrentFlag","AmbienteService","aprs","storeItems","ReactDOM","render","StrictMode","Provider","DndProvider","backend","isMobile","TouchBackend","HTML5Backend"],"mappings":"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","file":"static/js/main.b626cdd4.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"containerAjudaInicial\":\"Page_containerAjudaInicial__jonue\",\"loadingContainer\":\"Page_loadingContainer__2Bn4r\",\"itemsContainer\":\"Page_itemsContainer__1d5td\",\"returnWrapper\":\"Page_returnWrapper__2-tDE\",\"othersWrapper\":\"Page_othersWrapper__1_SG3\",\"verResumo\":\"Page_verResumo__1Zimc\",\"container\":\"Page_container__2m86f\",\"meterContainer\":\"Page_meterContainer__3Q2Fv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"text\":\"ButtonYellow_text__1KHDu\",\"container\":\"ButtonYellow_container__3ncyQ\",\"alt\":\"ButtonYellow_alt__19JaE\",\"altText\":\"ButtonYellow_altText__OQzXK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalBg\":\"ModalReportReview_modalBg__3h1e6\",\"modalFade\":\"ModalReportReview_modalFade__3ZOVo\",\"modalContent\":\"ModalReportReview_modalContent__14VEU\",\"close\":\"ModalReportReview_close__1810U\",\"title\":\"ModalReportReview_title__3FC5c\",\"totalRow\":\"ModalReportReview_totalRow__2a7oE\",\"totalItem\":\"ModalReportReview_totalItem__GZIhm\",\"table\":\"ModalReportReview_table__24UJ5\",\"fieldWarn\":\"ModalReportReview_fieldWarn__3qwyJ\",\"sliderContainer\":\"ModalReportReview_sliderContainer__3iBpE\",\"disclaimer\":\"ModalReportReview_disclaimer__3QV_4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"alert-text\":\"ModalReport_alert-text__2aKLR\",\"titleReportWrapper\":\"ModalReport_titleReportWrapper__2UczP\",\"dropContainer\":\"ModalReport_dropContainer__3cDdW\",\"dropSpan\":\"ModalReport_dropSpan__WBBsb\",\"noMargin\":\"ModalReport_noMargin__1iX_L\",\"disclaimer\":\"ModalReport_disclaimer__3gCbf\",\"analiseWrapper\":\"ModalReport_analiseWrapper__1ZJS3\",\"analiseItem\":\"ModalReport_analiseItem__3I1Rn\",\"arrow\":\"ModalReport_arrow__3zi7n\",\"avaliar\":\"ModalReport_avaliar__2bGoN\",\"divider\":\"ModalReport_divider__3CtLK\",\"hidden\":\"ModalReport_hidden__KoPcv\",\"container\":\"ModalReport_container__1ELL0\",\"wrapper\":\"ModalReport_wrapper__EtK4e\",\"title\":\"ModalReport_title__1vw_7\",\"box\":\"ModalReport_box__2Dt8N\",\"table\":\"ModalReport_table__2gP1A\",\"flexTd\":\"ModalReport_flexTd__2N5Sa\",\"btns\":\"ModalReport_btns__3tWzW\",\"edit\":\"ModalReport_edit__2DRlR\",\"delete\":\"ModalReport_delete__3TCIJ\",\"close\":\"ModalReport_close__2jKxY\",\"chartBox\":\"ModalReport_chartBox__2cnUU\",\"chartWrapper\":\"ModalReport_chartWrapper__p139-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"table\":\"TableReview_table__zlU1T\",\"flexTd\":\"TableReview_flexTd__3NDxV\",\"success\":\"TableReview_success__16fBz\",\"title\":\"TableReview_title__3rh3G\",\"chartWrapper\":\"TableReview_chartWrapper__2XkA3\",\"divider\":\"TableReview_divider__2Sog4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"EnergyMeter_container__2Q7Ka\",\"value\":\"EnergyMeter_value__3cY__\",\"bar\":\"EnergyMeter_bar__93HBI\",\"box\":\"EnergyMeter_box__1vfsC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"BaseScene_container__ReTZX\",\"image\":\"BaseScene_image__2jk3R\",\"opaque\":\"BaseScene_opaque__T05m8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"flagRow\":\"FlagDropdown_flagRow__2OxUV\",\"modalContainer\":\"FlagDropdown_modalContainer__2USqr\",\"container\":\"FlagDropdown_container__iXyPW\",\"openContainer\":\"FlagDropdown_openContainer__1J2eL\",\"rowLine\":\"FlagDropdown_rowLine__3MjFW\",\"chevSpace\":\"FlagDropdown_chevSpace__2LWQX\",\"chev\":\"FlagDropdown_chev__2jJNq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"img\":\"SceneItem_img__RHHkE\",\"hidden\":\"SceneItem_hidden__2q1Sz\",\"depilador\":\"SceneItem_depilador__1HthE\",\"barbeador\":\"SceneItem_barbeador__2JCWp\",\"iluminacao_banheiro\":\"SceneItem_iluminacao_banheiro__sf95F\",\"secador\":\"SceneItem_secador__Dlcln\",\"chapinha\":\"SceneItem_chapinha__32zc1\",\"desumidificador\":\"SceneItem_desumidificador__3-Zcm\",\"chuveiro\":\"SceneItem_chuveiro__1wowb\",\"som\":\"SceneItem_som__1pGI2\",\"dvd\":\"SceneItem_dvd__1m_2r\",\"ar_sala\":\"SceneItem_ar_sala__3jgCS\",\"tv_sala\":\"SceneItem_tv_sala__1Z6HN\",\"video_game\":\"SceneItem_video_game__IIgGk\",\"home_theather\":\"SceneItem_home_theather__20_wW\",\"ventilador_sala\":\"SceneItem_ventilador_sala__2do_R\",\"tv_a_cabo\":\"SceneItem_tv_a_cabo__1aH_I\",\"telefone_sala\":\"SceneItem_telefone_sala__2zBdZ\",\"umidificador_sala\":\"SceneItem_umidificador_sala__mhezN\",\"luminaria_sala\":\"SceneItem_luminaria_sala__15Mi7\",\"ventilador_teto\":\"SceneItem_ventilador_teto__33zu5\",\"iluminacao_sala\":\"SceneItem_iluminacao_sala__1mGJ4\",\"carregador_celular_sala\":\"SceneItem_carregador_celular_sala__9l9Ng\",\"batedeira\":\"SceneItem_batedeira__3vgK7\",\"cafeteira\":\"SceneItem_cafeteira__2C7sJ\",\"exaustor\":\"SceneItem_exaustor__2_2U9\",\"forno_eletrico\":\"SceneItem_forno_eletrico__2W3Kp\",\"freezer\":\"SceneItem_freezer__IIeN0\",\"geladeira\":\"SceneItem_geladeira__3CsXR\",\"iluminacao_cozinha\":\"SceneItem_iluminacao_cozinha__12jd0\",\"lava_louca\":\"SceneItem_lava_louca__G-cYS\",\"sanduicheira\":\"SceneItem_sanduicheira__28z2D\",\"torradeira\":\"SceneItem_torradeira__2g8AW\",\"liquidificador\":\"SceneItem_liquidificador__2BdhP\",\"processador\":\"SceneItem_processador__1la_p\",\"microondas\":\"SceneItem_microondas__11dmA\",\"purificador\":\"SceneItem_purificador__2o1On\",\"fogao_eletrico\":\"SceneItem_fogao_eletrico__3UCVc\",\"torneira_eletrica\":\"SceneItem_torneira_eletrica__2NMMa\",\"cafeteira_expresso\":\"SceneItem_cafeteira_expresso__3ahvt\",\"grill\":\"SceneItem_grill__gHYFF\",\"panela_eletrica\":\"SceneItem_panela_eletrica__2lcKP\",\"aspirador_robo\":\"SceneItem_aspirador_robo__2XYw3\",\"celular\":\"SceneItem_celular__1UpQR\",\"computador_desktop\":\"SceneItem_computador_desktop__1ewm8\",\"fax\":\"SceneItem_fax__xfZ7X\",\"iluminacao_escritorio\":\"SceneItem_iluminacao_escritorio__26V1w\",\"impressora\":\"SceneItem_impressora__2Xp4K\",\"luminaria_escritorio\":\"SceneItem_luminaria_escritorio__12ACu\",\"modem\":\"SceneItem_modem__3JfDZ\",\"monitor\":\"SceneItem_monitor__3uwoy\",\"multifuncional\":\"SceneItem_multifuncional__2L2gM\",\"notebook\":\"SceneItem_notebook__3zhd4\",\"scanner\":\"SceneItem_scanner__hHzKg\",\"telefone_escritorio\":\"SceneItem_telefone_escritorio__BA1dd\",\"abajur\":\"SceneItem_abajur__3JyyM\",\"aquecedor\":\"SceneItem_aquecedor__RLkmI\",\"ar_quarto\":\"SceneItem_ar_quarto__12OpC\",\"iluminacao_quarto\":\"SceneItem_iluminacao_quarto__IBzx2\",\"nebulizador\":\"SceneItem_nebulizador__mjjos\",\"radio_relogio\":\"SceneItem_radio_relogio__2nWdQ\",\"telefone_quarto\":\"SceneItem_telefone_quarto__UIi4I\",\"televisao_quarto\":\"SceneItem_televisao_quarto__2M7Go\",\"umidificador_quarto\":\"SceneItem_umidificador_quarto__1AZkG\",\"ventilador_quarto\":\"SceneItem_ventilador_quarto__1jQCH\",\"carregador_celular\":\"SceneItem_carregador_celular__Rnaax\",\"aspirador\":\"SceneItem_aspirador__1OXw5\",\"desumidificador_lavanderia\":\"SceneItem_desumidificador_lavanderia__3JUz0\",\"ferro_de_passar\":\"SceneItem_ferro_de_passar__3C42a\",\"iluminacao_lavanderia\":\"SceneItem_iluminacao_lavanderia__3sILR\",\"maquina_de_lavar\":\"SceneItem_maquina_de_lavar__1fmHL\",\"maquina_de_secar\":\"SceneItem_maquina_de_secar__2LOg_\",\"maquina_de_costura\":\"SceneItem_maquina_de_costura__1UY5i\",\"alarme\":\"SceneItem_alarme__1IwJb\",\"iluminacao_garagem\":\"SceneItem_iluminacao_garagem__3j5I_\",\"portao_eletrico\":\"SceneItem_portao_eletrico__1vdpv\",\"sensor_presenca\":\"SceneItem_sensor_presenca__3bQRI\",\"bomba_de_agua\":\"SceneItem_bomba_de_agua__3mQCO\",\"cerca_eletrica\":\"SceneItem_cerca_eletrica__3CuHW\",\"churrasqueira_eletrica\":\"SceneItem_churrasqueira_eletrica__dYG6B\",\"cortador_grama\":\"SceneItem_cortador_grama__3Ltf2\",\"irrigador_eletrico\":\"SceneItem_irrigador_eletrico__3P386\",\"luminaria\":\"SceneItem_luminaria__38geu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"CustomInput_container__1Z9hd\",\"error\":\"CustomInput_error__Y8lfi\",\"inputEspecial\":\"CustomInput_inputEspecial__32TSY\",\"inputLarge\":\"CustomInput_inputLarge__8dL0v\",\"inputMedium\":\"CustomInput_inputMedium__1PqkK\",\"inputSmall\":\"CustomInput_inputSmall__2CS1X\",\"placeholder\":\"CustomInput_placeholder__1ngUr\",\"clickable\":\"CustomInput_clickable__1_LAf\",\"touch\":\"CustomInput_touch__i_D3c\",\"divScrollContainer\":\"CustomInput_divScrollContainer__1FzzC\",\"inputList\":\"CustomInput_inputList__2v3Kt\",\"dropContainer\":\"CustomInput_dropContainer__3j1mb\",\"modalFade\":\"CustomInput_modalFade__2Hm1I\",\"modalDrop\":\"CustomInput_modalDrop__1tifj\",\"placeholderModal\":\"CustomInput_placeholderModal__1zEap\",\"iconContainer\":\"CustomInput_iconContainer__30hHU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"hlContainer\":\"DropItem_hlContainer__1S7-Q\",\"depilador\":\"DropItem_depilador__3MJ-p\",\"barbeador\":\"DropItem_barbeador__2mypZ\",\"iluminacao_banheiro\":\"DropItem_iluminacao_banheiro__36LOP\",\"secador\":\"DropItem_secador__12soo\",\"chapinha\":\"DropItem_chapinha__j3LwN\",\"desumidificador\":\"DropItem_desumidificador__pFRHj\",\"chuveiro\":\"DropItem_chuveiro__1n5ZN\",\"som\":\"DropItem_som__nTF6q\",\"dvd\":\"DropItem_dvd__TYnHs\",\"ar_sala\":\"DropItem_ar_sala__3ZeTz\",\"tv_sala\":\"DropItem_tv_sala__B4hDz\",\"video_game\":\"DropItem_video_game__2FCYf\",\"home_theather\":\"DropItem_home_theather__5z1l2\",\"ventilador_sala\":\"DropItem_ventilador_sala__1CEsz\",\"tv_a_cabo\":\"DropItem_tv_a_cabo__1V3Kt\",\"telefone_sala\":\"DropItem_telefone_sala__2zvAC\",\"umidificador_sala\":\"DropItem_umidificador_sala__BBo69\",\"luminaria_sala\":\"DropItem_luminaria_sala__2ph46\",\"ventilador_teto\":\"DropItem_ventilador_teto__2UQb4\",\"iluminacao_sala\":\"DropItem_iluminacao_sala__27Nei\",\"carregador_celular_sala\":\"DropItem_carregador_celular_sala__2pQfq\",\"batedeira\":\"DropItem_batedeira__3VL2d\",\"cafeteira\":\"DropItem_cafeteira__3bsQx\",\"exaustor\":\"DropItem_exaustor__o-LEB\",\"forno_eletrico\":\"DropItem_forno_eletrico__QhQ4o\",\"freezer\":\"DropItem_freezer__vRz9T\",\"geladeira\":\"DropItem_geladeira__2t5c0\",\"iluminacao_cozinha\":\"DropItem_iluminacao_cozinha__3Gz2Q\",\"lava_louca\":\"DropItem_lava_louca__12tj9\",\"sanduicheira\":\"DropItem_sanduicheira__3VxcV\",\"torradeira\":\"DropItem_torradeira__2DQMA\",\"liquidificador\":\"DropItem_liquidificador__-5Yt1\",\"processador\":\"DropItem_processador__18PMR\",\"microondas\":\"DropItem_microondas__2WFAv\",\"purificador\":\"DropItem_purificador__A0-XD\",\"fogao_eletrico\":\"DropItem_fogao_eletrico__3dzX4\",\"torneira_eletrica\":\"DropItem_torneira_eletrica__1nrPo\",\"cafeteira_expresso\":\"DropItem_cafeteira_expresso__13j-c\",\"grill\":\"DropItem_grill__2UAIf\",\"panela_eletrica\":\"DropItem_panela_eletrica__1HI4G\",\"aspirador_robo\":\"DropItem_aspirador_robo__12_lI\",\"celular\":\"DropItem_celular__eHiNu\",\"computador_desktop\":\"DropItem_computador_desktop__2xcgk\",\"fax\":\"DropItem_fax__FBLgL\",\"iluminacao_escritorio\":\"DropItem_iluminacao_escritorio__1C6NB\",\"impressora\":\"DropItem_impressora__2uRor\",\"luminaria_escritorio\":\"DropItem_luminaria_escritorio__2dcgd\",\"modem\":\"DropItem_modem__2Fzck\",\"monitor\":\"DropItem_monitor__1Nkxh\",\"multifuncional\":\"DropItem_multifuncional__2Wpmm\",\"notebook\":\"DropItem_notebook__2Nc_I\",\"scanner\":\"DropItem_scanner__9XXUQ\",\"telefone_escritorio\":\"DropItem_telefone_escritorio__3UwYT\",\"abajur\":\"DropItem_abajur__210JG\",\"aquecedor\":\"DropItem_aquecedor__3vnIq\",\"ar_quarto\":\"DropItem_ar_quarto__29cxc\",\"iluminacao_quarto\":\"DropItem_iluminacao_quarto__2zqL9\",\"nebulizador\":\"DropItem_nebulizador__36uyP\",\"radio_relogio\":\"DropItem_radio_relogio__2GxRu\",\"telefone_quarto\":\"DropItem_telefone_quarto__3vLuz\",\"televisao_quarto\":\"DropItem_televisao_quarto__1jRhP\",\"umidificador_quarto\":\"DropItem_umidificador_quarto__1j8bd\",\"ventilador_quarto\":\"DropItem_ventilador_quarto__3Y1LQ\",\"carregador_celular\":\"DropItem_carregador_celular__Kn6WY\",\"aspirador\":\"DropItem_aspirador__2CavI\",\"desumidificador_lavanderia\":\"DropItem_desumidificador_lavanderia__2qP_y\",\"ferro_de_passar\":\"DropItem_ferro_de_passar__BGGD9\",\"iluminacao_lavanderia\":\"DropItem_iluminacao_lavanderia__1r9Y9\",\"maquina_de_lavar\":\"DropItem_maquina_de_lavar__3h54c\",\"maquina_de_secar\":\"DropItem_maquina_de_secar__1Ozhb\",\"maquina_de_costura\":\"DropItem_maquina_de_costura__1eY9E\",\"alarme\":\"DropItem_alarme__tK8AB\",\"iluminacao_garagem\":\"DropItem_iluminacao_garagem__2jIfq\",\"portao_eletrico\":\"DropItem_portao_eletrico__3R0pf\",\"sensor_presenca\":\"DropItem_sensor_presenca__2rnAC\",\"bomba_de_agua\":\"DropItem_bomba_de_agua__3rigj\",\"cerca_eletrica\":\"DropItem_cerca_eletrica__2wXou\",\"churrasqueira_eletrica\":\"DropItem_churrasqueira_eletrica__3cPDp\",\"cortador_grama\":\"DropItem_cortador_grama__18lz6\",\"irrigador_eletrico\":\"DropItem_irrigador_eletrico__1_5mQ\",\"luminaria\":\"DropItem_luminaria__1By7-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"text\":\"ButtonReturn_text__1nBfS\",\"button\":\"ButtonReturn_button__3QaOO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Laucher_container__rby3r\",\"mainTextContainer\":\"Laucher_mainTextContainer__1dax2\",\"textContainer\":\"Laucher_textContainer__jZNdJ\",\"buttonsContainer\":\"Laucher_buttonsContainer__1CGwh\",\"title1\":\"Laucher_title1__1QGTw\",\"title2\":\"Laucher_title2__rf4pJ\",\"navigatorContainer\":\"Laucher_navigatorContainer__13aew\",\"bathTouchable\":\"Laucher_bathTouchable__2l5O-\",\"livingTouchable\":\"Laucher_livingTouchable__26EcG\",\"kitchenTouchable\":\"Laucher_kitchenTouchable__3vAIc\",\"officeTouchable\":\"Laucher_officeTouchable__21FKO\",\"bedroomTouchable\":\"Laucher_bedroomTouchable__1G7fJ\",\"laundryTouchable\":\"Laucher_laundryTouchable__2EqTP\",\"garageTouchable\":\"Laucher_garageTouchable__2S2B3\",\"externalAreaTouchable\":\"Laucher_externalAreaTouchable__1gQbB\",\"meterContainer\":\"Laucher_meterContainer__12CT7\",\"tutorialContainer\":\"Laucher_tutorialContainer__2aBXc\",\"textTutorialContainer\":\"Laucher_textTutorialContainer__3JYzc\",\"slideContainer\":\"Laucher_slideContainer__3xDTY\",\"closeTutorial\":\"Laucher_closeTutorial__3NnPG\",\"containerAjudaInicial\":\"Laucher_containerAjudaInicial__sZm-Y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"default\":\"GameContainer_default__gNJzt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"hidden\":\"ModalOnDropItem_hidden__1eoS7\",\"help\":\"ModalOnDropItem_help__3n1z1\",\"snip\":\"ModalOnDropItem_snip__1ZgR4\",\"modal\":\"ModalOnDropItem_modal__2XiXl\",\"container\":\"ModalOnDropItem_container__QIrXP\",\"opaque\":\"ModalOnDropItem_opaque__1Umyx\",\"box\":\"ModalOnDropItem_box__3v8wk\",\"icon\":\"ModalOnDropItem_icon__nrAeK\",\"textBox\":\"ModalOnDropItem_textBox__3qZxN\",\"name\":\"ModalOnDropItem_name__32Rpo\",\"formItems\":\"ModalOnDropItem_formItems__1pb_o\",\"submit\":\"ModalOnDropItem_submit__mBdBf\",\"noSug\":\"ModalOnDropItem_noSug__EVDy4\",\"close\":\"ModalOnDropItem_close__37Qp1\",\"editContainer\":\"ModalOnDropItem_editContainer__3DCf3\",\"editContainerNoSug\":\"ModalOnDropItem_editContainerNoSug__3_mNH\",\"save\":\"ModalOnDropItem_save__12Blg\",\"remove\":\"ModalOnDropItem_remove__1cMMc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"help\":\"ModalAddItem_help__3zdF3\",\"hidden\":\"ModalAddItem_hidden__1qarX\",\"snip\":\"ModalAddItem_snip__1wYjd\",\"modal\":\"ModalAddItem_modal__3BglK\",\"container\":\"ModalAddItem_container__1jQSm\",\"opaque\":\"ModalAddItem_opaque__372Rz\",\"box\":\"ModalAddItem_box__1rQh8\",\"icon\":\"ModalAddItem_icon__1meRu\",\"textBox\":\"ModalAddItem_textBox__n8Mux\",\"name\":\"ModalAddItem_name__2W454\",\"formItems\":\"ModalAddItem_formItems__2k3Gb\",\"submit\":\"ModalAddItem_submit__3htGR\",\"close\":\"ModalAddItem_close__2YI5a\",\"editContainer\":\"ModalAddItem_editContainer__3752C\",\"save\":\"ModalAddItem_save__295F2\",\"remove\":\"ModalAddItem_remove__1lXtx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"hidden\":\"ModalAlert_hidden__u9eOH\",\"container\":\"ModalAlert_container__1idnv\",\"wrapper\":\"ModalAlert_wrapper__2f098\",\"opaque\":\"ModalAlert_opaque__UmmlH\",\"close\":\"ModalAlert_close__3-pRQ\",\"btn\":\"ModalAlert_btn__gZjFp\",\"title\":\"ModalAlert_title__3c5dX\",\"subtitle\":\"ModalAlert_subtitle__3BeVH\",\"btnRow\":\"ModalAlert_btnRow__X7TBB\",\"btnRow2\":\"ModalAlert_btnRow2__dbn-I\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"box\":\"SidebarItem_box__2-5Ks\",\"add\":\"SidebarItem_add__3rnYk\",\"button\":\"SidebarItem_button__1ZguL\",\"container\":\"SidebarItem_container__1Y5ON\",\"label\":\"SidebarItem_label__2r3WL\",\"icon\":\"SidebarItem_icon__3c68B\",\"btn\":\"SidebarItem_btn__3xtKe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"hidden\":\"ModalOtherItems_hidden__1Rw2Z\",\"container\":\"ModalOtherItems_container__1kA2f\",\"wrapper\":\"ModalOtherItems_wrapper__130Nr\",\"title\":\"ModalOtherItems_title__2KF2Q\",\"box\":\"ModalOtherItems_box__38cSA\",\"table\":\"ModalOtherItems_table__2_16o\",\"btns\":\"ModalOtherItems_btns__1d9Lk\",\"edit\":\"ModalOtherItems_edit__13xLJ\",\"delete\":\"ModalOtherItems_delete__31VdT\",\"close\":\"ModalOtherItems_close__36kjS\"};","const ACTION_TYPES = {\r\n STORE_ITEMS: 'STORE_ITEMS_TO_ITEM_LIST',\r\n ADD_ITEM: 'ADD_ITEM_TO_ITEM_LIST',\r\n REMOVE_ITEM: 'REMOVE_ITEM_FROM_LIST',\r\n EDIT_ITEM: 'EDIT_ITEM_FROM_LIST',\r\n};\r\n\r\nfunction storeItems(items) {\r\n return {\r\n type: ACTION_TYPES.STORE_ITEMS,\r\n payload: items,\r\n };\r\n}\r\n\r\nfunction addItem(item) {\r\n return {\r\n type: ACTION_TYPES.ADD_ITEM,\r\n payload: item,\r\n };\r\n}\r\n\r\nfunction removeItem(selector) {\r\n return {\r\n type: ACTION_TYPES.REMOVE_ITEM,\r\n payload: selector,\r\n };\r\n}\r\n\r\nfunction editItem(item) {\r\n return {\r\n type: ACTION_TYPES.EDIT_ITEM,\r\n payload: item,\r\n };\r\n}\r\n\r\nexport {\r\n ACTION_TYPES, storeItems, addItem, removeItem, editItem,\r\n};\r\n","export const aparelhos = [];\r\n\r\nexport const medidas = [];\r\n\r\nexport const taxas = [];\r\n\r\nexport const ambientes = [];\r\n","import { ACTION_TYPES } from '../actions/itemActions';\r\nimport { aparelhos } from '../../common/data/initialState';\r\n\r\nconst initialState = aparelhos;\r\n\r\nexport default function itemReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case ACTION_TYPES.STORE_ITEMS:\r\n return action.payload;\r\n case ACTION_TYPES.ADD_ITEM:\r\n return [...state, action.payload];\r\n case ACTION_TYPES.REMOVE_ITEM:\r\n return state.filter((item) => item.tx_selector !== action.payload);\r\n case ACTION_TYPES.EDIT_ITEM:\r\n return [...state.filter((item) => item.tx_selector !== action.payload), action.payload];\r\n default:\r\n return state;\r\n }\r\n}\r\n","const ACTION_TYPES = {\r\n SET_HOVERED_ITEM: 'HOVERED_ITEM_SIDEBAR',\r\n SET_ITEM_PLACED: 'SET_ITEM_PLACED_SIDEBAR',\r\n REMOVE_ITEM: 'REMOVE_ITEM_SIDEBAR',\r\n RESTART_SIDEBAR: 'RESTART_SIDEBAR',\r\n};\r\n\r\nfunction setHoverItem(selector, hovered) {\r\n return {\r\n type: ACTION_TYPES.SET_HOVERED_ITEM,\r\n payload: {\r\n tx_selector: selector,\r\n hovered,\r\n },\r\n };\r\n}\r\n\r\nfunction setItemPlaced(selector, placed) {\r\n return {\r\n type: ACTION_TYPES.SET_ITEM_PLACED,\r\n payload: {\r\n tx_selector: selector,\r\n placed,\r\n },\r\n };\r\n}\r\n\r\nfunction resetSidebarItem(selector) {\r\n return {\r\n type: ACTION_TYPES.REMOVE_ITEM,\r\n payload: {\r\n tx_selector: selector,\r\n placed: false,\r\n hovered: false,\r\n },\r\n };\r\n}\r\n\r\nfunction restartSidebar() {\r\n return {\r\n type: ACTION_TYPES.RESTART_SIDEBAR,\r\n payload: [],\r\n };\r\n}\r\n\r\nexport {\r\n ACTION_TYPES, setHoverItem, setItemPlaced, resetSidebarItem, restartSidebar,\r\n};\r\n","import { ACTION_TYPES } from '../actions/sidebarActions';\r\n\r\nconst initialState = [];\r\n\r\nexport default function sideBarReducer(state = initialState, action) {\r\n let temp = state;\r\n const obj = state.find((i) => i.tx_selector === action.payload.tx_selector);\r\n if (obj) {\r\n const data = {\r\n tx_selector: action.payload.tx_selector,\r\n hovered: action.payload.hovered || obj.hovered || false,\r\n placed: action.payload.placed || obj.placed || false,\r\n };\r\n temp = [...state.filter((i) => i.tx_selector !== action.payload.tx_selector), data];\r\n } else {\r\n temp = [...state, action.payload];\r\n }\r\n\r\n switch (action.type) {\r\n case ACTION_TYPES.SET_HOVERED_ITEM:\r\n if (temp.length === 0) {\r\n return [action.payload];\r\n }\r\n return temp.map((item) => {\r\n if (item.tx_selector === action.payload.tx_selector) {\r\n return { ...item, hovered: action.payload.hovered };\r\n }\r\n return item;\r\n });\r\n case ACTION_TYPES.SET_ITEM_PLACED:\r\n if (temp.length === 0) {\r\n return [action.payload];\r\n }\r\n return temp.map((item) => {\r\n if (item.tx_selector === action.payload.tx_selector) {\r\n return { ...item, placed: action.payload.placed };\r\n }\r\n return item;\r\n });\r\n case ACTION_TYPES.REMOVE_ITEM:\r\n if (temp.length === 0) {\r\n return [action.payload];\r\n }\r\n return temp.map((item) => {\r\n if (item.tx_selector === action.payload.tx_selector) {\r\n return {\r\n ...item,\r\n placed: action.payload.placed,\r\n hovered: action.payload.hovered,\r\n };\r\n }\r\n return item;\r\n });\r\n case ACTION_TYPES.RESTART_SIDEBAR:\r\n return initialState;\r\n default:\r\n return state;\r\n }\r\n}\r\n","const ACTION_TYPES = {\r\n ADD_ITEM: 'ADD_ITEM_TO_REPORT',\r\n REMOVE_ITEM: 'REMOVE_ITEM_TO_REPORT',\r\n EDIT_ITEM: 'EDIT_ITEM_TO_REPORT',\r\n RESTART_REPORT: 'RESTART_REPORT',\r\n};\r\n\r\nfunction addItemToReport(item) {\r\n return {\r\n type: ACTION_TYPES.ADD_ITEM,\r\n payload: item,\r\n };\r\n}\r\n\r\nfunction removeItemFromReport(selector) {\r\n return {\r\n type: ACTION_TYPES.REMOVE_ITEM,\r\n payload: selector,\r\n };\r\n}\r\n\r\nfunction editItemFromReport(item) {\r\n return {\r\n type: ACTION_TYPES.EDIT_ITEM,\r\n payload: item,\r\n };\r\n}\r\n\r\nfunction restartReport() {\r\n return {\r\n type: ACTION_TYPES.RESTART_REPORT,\r\n payload: [],\r\n };\r\n}\r\n\r\nexport {\r\n ACTION_TYPES, addItemToReport, removeItemFromReport, editItemFromReport, restartReport,\r\n};\r\n","import { ACTION_TYPES } from '../actions/reportActions';\r\n\r\nconst initialState = [];\r\n\r\nexport default function reportReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case ACTION_TYPES.ADD_ITEM:\r\n return [...state, action.payload];\r\n case ACTION_TYPES.REMOVE_ITEM:\r\n return state.filter((stt) => stt.tx_selector !== action.payload);\r\n case ACTION_TYPES.EDIT_ITEM:\r\n return [...state.filter((stt) => stt.tx_selector !== action.payload.tx_selector), action.payload];\r\n case ACTION_TYPES.RESTART_REPORT:\r\n return initialState;\r\n default:\r\n return state;\r\n }\r\n}\r\n","export const ACTION_TYPES = {\r\n ADD_TAX: 'ADD_TAX',\r\n SET_TAXES: 'SET_TAXES',\r\n};\r\n\r\nexport function addTax(tax) {\r\n return {\r\n type: ACTION_TYPES.ADD_TAX,\r\n payload: tax,\r\n };\r\n}\r\n\r\nexport function setTaxes(payload) {\r\n return {\r\n type: ACTION_TYPES.SET_TAXES,\r\n payload,\r\n };\r\n}\r\n","import { ACTION_TYPES } from '../actions/taxActions';\r\n\r\nconst initialState = [];\r\n\r\nexport default function taxReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case ACTION_TYPES.ADD_TAX:\r\n return [...state, action.payload];\r\n case ACTION_TYPES.SET_TAXES:\r\n return action.payload;\r\n default:\r\n return state;\r\n }\r\n}\r\n","export const TipoAparelho = {\r\n PREDEFINIDO: 1,\r\n CRIADO_POR_USUARIO: 2,\r\n};\r\n\r\nexport const Medida = {\r\n MINUTOS_DIA: 1,\r\n HORAS_DIA: 2,\r\n};\r\n\r\nexport const Ambiente = {\r\n BANHEIRO: 1,\r\n QUARTO: 2,\r\n AREA_EXTERNA: 3,\r\n GARAGEM: 4,\r\n COZINHA: 5,\r\n LAVANDERIA: 6,\r\n SALA: 7,\r\n ESCRITORIO: 8,\r\n};\r\n\r\nexport const AmbienteColors = ['#ade809', '#c76b67', '#88A1B8', '#93b355', '#8d2250', '#217c2e', '#d136b2', '#dd9469', '#AE86D1'];\r\n\r\nexport const TipoTaxa = {\r\n FIXA: 1,\r\n PORCENTAGEM: 2,\r\n BANDEIRA: 3,\r\n};\r\n\r\nexport const TipoConsumidor = {\r\n RESIDENCIAL: 1,\r\n NAO_RESIDENCIAL: 2,\r\n RURAL: 3,\r\n};\r\n\r\nexport const CasaPadraoIds = [1034, 1032, 1035, 1036, 1037, 1038, 1041, 1042, 1049, 1040, 1007, 1025, 1033, 1080, 1085, 1018, 1019, 1020, 1021, 1071, 1072, 1076, 1075, 1074, 1083, 1008, 1056, 1060, 1062, 1064, 1067, 1065, 1014, 1051, 1053, 1028, 1029, 1045];\r\n","const ACTION_TYPES = {\r\n SET_HELP: 'SET_HELP',\r\n SET_APP_STATE: 'SET_APP_STATE',\r\n SET_CURRENT_FLAG: 'SET_CURRENT_FLAG',\r\n};\r\n\r\nfunction setShowHelp(value) {\r\n return {\r\n type: ACTION_TYPES.SET_HELP,\r\n payload: { showHelp: value },\r\n };\r\n}\r\n\r\nfunction setAppState(payload) {\r\n return {\r\n type: ACTION_TYPES.SET_APP_STATE,\r\n payload,\r\n };\r\n}\r\n\r\nfunction setCurrentFlag(payload) {\r\n return {\r\n type: ACTION_TYPES.SET_CURRENT_FLAG,\r\n payload,\r\n };\r\n}\r\n\r\nexport {\r\n ACTION_TYPES, setShowHelp, setAppState, setCurrentFlag,\r\n};\r\n","import { TipoConsumidor } from '../../common/data/types';\r\nimport { ACTION_TYPES } from '../actions/appActions';\r\nimport { ambientes, medidas } from '../../common/data/initialState';\r\n\r\nconst initialState = {\r\n showHelp: true,\r\n metrics: medidas,\r\n places: ambientes,\r\n userType: TipoConsumidor.RESIDENCIAL,\r\n casaPadrao: [],\r\n params: {\r\n callsWebhook: false,\r\n token: undefined,\r\n user: undefined,\r\n },\r\n finishedReport: true,\r\n showModalReportReview: false,\r\n currentFlag: {},\r\n};\r\n\r\nexport default function helpReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case ACTION_TYPES.SET_HELP:\r\n return { ...state, ...action.payload };\r\n case ACTION_TYPES.SET_APP_STATE:\r\n return { ...state, ...action.payload };\r\n\r\n case ACTION_TYPES.SET_CURRENT_FLAG:\r\n return {\r\n ...state,\r\n currentFlag: action.payload,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","export const logger = (store) => (next) => (action) => {\r\n console.group(action.type);\r\n console.info('dispatching', action);\r\n const result = next(action);\r\n console.log('next state', store.getState());\r\n console.groupEnd();\r\n return result;\r\n};\r\n","import { createStore, combineReducers, applyMiddleware } from 'redux';\r\nimport itemReducer from './reducers/itemReducer';\r\nimport sidebarReducer from './reducers/sidebarReducer';\r\nimport reportReducer from './reducers/reportReducer';\r\nimport taxReducer from './reducers/taxReducer';\r\nimport appReducer from './reducers/appReducer';\r\nimport { logger } from './logger';\r\n\r\nconst reducers = {\r\n items: itemReducer,\r\n sidebar: sidebarReducer,\r\n report: reportReducer,\r\n taxes: taxReducer,\r\n app: appReducer,\r\n};\r\n\r\nexport default createStore(combineReducers(reducers), applyMiddleware(logger));\r\n","export const BASE_URL = '/simulador';\r\n\r\nexport function capitalizeFirst(string = '') {\r\n try {\r\n return string.slice(0, 1).toUpperCase() + string.slice(1, string.length).toLowerCase();\r\n } catch (error) {\r\n return string;\r\n }\r\n}\r\n\r\nexport function safeArray(array) {\r\n if (!array) return [];\r\n return array;\r\n}\r\n\r\nexport function randomColor() {\r\n return `#${Math.floor(Math.random() * 16777215).toString(16)}`;\r\n}\r\n\r\nexport function generateRandomColors(qt = 1) {\r\n const tmp = [];\r\n let uniq = [...new Set(tmp)];\r\n while (uniq.length < qt) {\r\n tmp.push(randomColor());\r\n uniq = [...new Set(tmp)];\r\n }\r\n return uniq;\r\n}\r\n\r\nexport function log(message, ...optionalParams) {\r\n if (process.env.NODE_ENV === 'development') {\r\n console.log(message, optionalParams);\r\n }\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport styles from './BaseScene.module.scss';\r\n\r\nfunction BaseScene({ source, opaque = false, ...props }) {\r\n const { children } = props;\r\n return (\r\n <div className={styles.container}>\r\n <div\r\n className={styles.image}\r\n style={{\r\n backgroundImage: `url(${source})`,\r\n }}\r\n >\r\n {children}\r\n </div>\r\n <div\r\n className={styles.opaque}\r\n style={{\r\n opacity: opaque ? 1 : 0,\r\n }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nBaseScene.defaultProps = {\r\n opaque: false,\r\n children: undefined,\r\n};\r\n\r\nBaseScene.propTypes = {\r\n source: PropTypes.string.isRequired,\r\n opaque: PropTypes.bool,\r\n children: PropTypes.any,\r\n};\r\n\r\nexport default BaseScene;\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport styles from './ButtonYellow.module.scss';\r\n\r\nfunction ButtonYellow({\r\n text, onClick, navigate, alternate,\r\n}) {\r\n function getStyles() {\r\n return alternate ? styles.alt : styles.container;\r\n }\r\n\r\n if (navigate) {\r\n return (\r\n <Link\r\n to={navigate}\r\n className={getStyles()}\r\n onClick={onClick}\r\n >\r\n <h1 className={alternate ? styles.altText : styles.text}>{text}</h1>\r\n </Link>\r\n );\r\n }\r\n\r\n return (\r\n <button\r\n type=\"button\"\r\n className={getStyles()}\r\n onClick={onClick}\r\n >\r\n <h1 className={alternate ? styles.altText : styles.text}>{text}</h1>\r\n </button>\r\n );\r\n}\r\n\r\nButtonYellow.defaultProps = {\r\n onClick: () => { },\r\n navigate: null,\r\n alternate: false,\r\n};\r\n\r\nButtonYellow.propTypes = {\r\n text: PropTypes.string.isRequired,\r\n onClick: PropTypes.func,\r\n navigate: PropTypes.string,\r\n alternate: PropTypes.bool,\r\n};\r\n\r\nexport default ButtonYellow;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport styles from './ModalAlert.module.scss';\r\n\r\nfunction ModalAlert({\r\n title, subtitle, onReject, onConfirm, onDismiss, visible, type,\r\n}) {\r\n return (\r\n <>\r\n <div className={visible ? styles.container : styles.hidden}>\r\n <div className={styles.wrapper}>\r\n {type === 'confirm' && (<div className={styles.close} onClick={onDismiss} />)}\r\n <h1 className={styles.title}>{title}</h1>\r\n <h2 className={styles.subtitle}>{subtitle}</h2>\r\n <div className={type === 'confirm' ? styles.btnRow : styles.btnRow2}>\r\n {type === 'confirm' ? (\r\n <>\r\n <button\r\n type=\"button\"\r\n className={styles.btn}\r\n onClick={onConfirm}\r\n >\r\n SIM\r\n </button>\r\n <button\r\n type=\"button\"\r\n className={styles.btn}\r\n onClick={onReject}\r\n >\r\n NÃO\r\n </button>\r\n </>\r\n )\r\n : (\r\n <button\r\n type=\"button\"\r\n className={styles.btn}\r\n onClick={onConfirm}\r\n >\r\n OK\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n <div className={visible ? styles.opaque : styles.hidden} />\r\n </>\r\n );\r\n}\r\n\r\nModalAlert.defaultProps = {\r\n title: '',\r\n subtitle: '',\r\n onReject: () => { },\r\n onConfirm: () => { },\r\n onDismiss: () => { },\r\n visible: false,\r\n type: 'confirm',\r\n};\r\n\r\nModalAlert.propTypes = {\r\n title: PropTypes.string,\r\n subtitle: PropTypes.string,\r\n onReject: PropTypes.func,\r\n onConfirm: PropTypes.func,\r\n onDismiss: PropTypes.func,\r\n visible: PropTypes.bool,\r\n type: PropTypes.oneOf(['alert', 'confirm']),\r\n};\r\n\r\nexport default ModalAlert;\r\n","import { useCallback } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { TipoTaxa } from '../data/types';\r\n\r\nexport default function useCosts() {\r\n const tax = useSelector((store) => store.taxes);\r\n const userType = useSelector((store) => store.app.userType);\r\n const currentFlag = useSelector((store) => store.app.currentFlag);\r\n const report = useSelector((store) => store.report);\r\n\r\n const getTaxes = useCallback(() => {\r\n const flat = tax.filter((item) => {\r\n const profiles = item.tipo_consumidores.map((p) => p.id_tipoConsumidor);\r\n return item.id_tipoTaxa === TipoTaxa.FIXA && profiles.includes(userType);\r\n });\r\n const percent = tax.filter((item) => {\r\n const profiles = item.tipo_consumidores.map((p) => p.id_tipoConsumidor);\r\n return item.id_tipoTaxa === TipoTaxa.PORCENTAGEM && profiles.includes(userType);\r\n });\r\n\r\n const flag = tax.find((item) => {\r\n const profiles = item.tipo_consumidores.map((p) => p.id_tipoConsumidor);\r\n return item.id_tipoTaxa === TipoTaxa.BANDEIRA && profiles.includes(userType) && item.id_taxa === currentFlag.id_taxa;\r\n });\r\n\r\n return { flat, percent, flag };\r\n }, [currentFlag, userType, tax]);\r\n\r\n function calcFlag(kwh, totalKwRef = 0) {\r\n try {\r\n const taxes = getTaxes();\r\n const tempTaxes = taxes.percent.filter((val) => totalKwRef >= val.nu_minimo_kw && totalKwRef <= val.nu_maximo_kw);\r\n const base = taxes.flag.nu_valor;\r\n let tmp = tempTaxes.reduce((acc, next) => acc + next.nu_valor, 0);\r\n tmp /= 100;\r\n tmp += 1;\r\n return kwh * base * tmp;\r\n } catch (e) {\r\n return 0;\r\n }\r\n }\r\n\r\n function calc(kwh, totalKwRef = 0) {\r\n try {\r\n const taxes = getTaxes();\r\n const tmpBase = taxes.flat.filter((val) => totalKwRef >= val.nu_minimo_kw && totalKwRef <= val.nu_maximo_kw);\r\n const base = tmpBase.reduce((acc, next) => acc + next.nu_valor, 0);\r\n return kwh * base;\r\n } catch (e) {\r\n return 0;\r\n }\r\n }\r\n\r\n function calcWithTaxes(kwh, totalKwRef = 0) {\r\n try {\r\n const taxes = getTaxes();\r\n const tmpBase = taxes.flat.filter((val) => totalKwRef >= val.nu_minimo_kw && totalKwRef <= val.nu_maximo_kw);\r\n const tempTaxes = taxes.percent.filter((val) => totalKwRef >= val.nu_minimo_kw && totalKwRef <= val.nu_maximo_kw);\r\n const base = tmpBase.reduce((acc, next) => acc + next.nu_valor, 0);\r\n const addFlag = calcFlag(kwh, totalKwRef);\r\n let tmp = tempTaxes.reduce((acc, next) => acc + next.nu_valor, 0);\r\n tmp /= 100;\r\n tmp += 1;\r\n return (kwh * base * tmp) + addFlag;\r\n } catch (e) {\r\n return 0;\r\n }\r\n }\r\n\r\n return {\r\n calculateCost: (kwh, totalKwRef = 0, withTaxes = true) => (withTaxes ? calcWithTaxes(kwh, totalKwRef) : calc(kwh, totalKwRef)),\r\n calculateTotal: (kwh, totalKwRef = 0) => {\r\n try {\r\n const taxes = getTaxes();\r\n const tempTaxes = taxes.percent.filter((val) => totalKwRef >= val.nu_minimo_kw && totalKwRef <= val.nu_maximo_kw);\r\n let tmp = tempTaxes.reduce((acc, next) => acc + next.nu_valor, 0);\r\n tmp /= 100;\r\n tmp += 1;\r\n const base = calc(kwh);\r\n const addFlag = calcFlag(kwh, totalKwRef);\r\n\r\n const total = (base * tmp) + addFlag;\r\n const breakdown = tempTaxes.map((item) => {\r\n const temp = item.nu_valor / 100;\r\n return {\r\n name: item.tx_nome,\r\n value: base * temp,\r\n };\r\n });\r\n\r\n // breakdown.push({\r\n // name: `Bandeira ${currentFlag.tx_nome}`,\r\n // value: addFlag,\r\n // });\r\n\r\n return {\r\n total,\r\n breakdown,\r\n totalWithoutTaxes: base,\r\n };\r\n } catch (error) {\r\n return {\r\n total: 0,\r\n breakdown: [],\r\n totalWithoutTaxes: 0,\r\n };\r\n }\r\n },\r\n getTotalKw: () => {\r\n if (report.length === 0) return 0;\r\n if (report.length === 1) return report[0].rep_usage;\r\n return report.reduce((current, next) => current + next.rep_usage, 0);\r\n },\r\n };\r\n}\r\n","import React from 'react';\r\nimport { debounce } from 'lodash';\r\n\r\nconst initialOptions = {\r\n fitScreen: false,\r\n ref: {\r\n width: 1024,\r\n height: 768,\r\n },\r\n};\r\n\r\nexport default function useLayout(options = initialOptions) {\r\n const [relative, setRelative] = React.useState({ h: options.ref.height, w: options.ref.width });\r\n\r\n React.useEffect(() => {\r\n const getRelativeDimensions = () => {\r\n if (options.fitScreen) {\r\n const w = window.innerWidth;\r\n const h = window.innerHeight;\r\n setRelative({ w, h });\r\n }\r\n const w = Math.min(window.innerWidth, options.ref.width);\r\n const h = Math.min(window.innerHeight, options.ref.height);\r\n setRelative({ w, h });\r\n };\r\n\r\n getRelativeDimensions();\r\n\r\n const cb = debounce(getRelativeDimensions, 100);\r\n window.addEventListener('resize', cb, false);\r\n return () => {\r\n window.removeEventListener('resize', cb);\r\n };\r\n }, []);\r\n\r\n const getMultiplier = () => {\r\n const { w, h } = relative;\r\n const multiW = w / options.ref.width;\r\n const multiH = h / options.ref.height;\r\n return Math.min(multiW, multiH);\r\n };\r\n\r\n return {\r\n getSizeMultiplier: () => getMultiplier(),\r\n resize: (dimension = 0) => dimension * getMultiplier(),\r\n };\r\n}\r\n","/* eslint-disable react/prop-types */\r\nimport React from 'react';\r\n\r\nfunction findMaxValue(data) {\r\n const values = data.map((dt) => dt.value1);\r\n return Math.max(...values);\r\n}\r\n\r\nconst CustomLabelLine = ((props) => {\r\n const {\r\n x, y, width, value, fill, stroke, height, data,\r\n } = props;\r\n const maxValue = findMaxValue(data);\r\n\r\n const val = data[value];\r\n\r\n if (val.value1 < maxValue * 0.7) {\r\n return (\r\n <g>\r\n <text\r\n x={x + width + 5}\r\n y={y + height / 2}\r\n textAnchor=\"start\"\r\n dominantBaseline=\"middle\"\r\n fill={fill}\r\n stroke={stroke}\r\n >\r\n {val.name}\r\n </text>\r\n </g>\r\n );\r\n }\r\n return (\r\n <g>\r\n <text\r\n x={x + width / 2}\r\n y={y + height / 2}\r\n textAnchor=\"middle\"\r\n dominantBaseline=\"middle\"\r\n fill={fill}\r\n stroke={stroke}\r\n >\r\n {val.name}\r\n </text>\r\n </g>\r\n );\r\n});\r\n\r\nexport default CustomLabelLine;\r\n","/* eslint-disable react/no-array-index-key */\r\nimport React from 'react';\r\nimport {\r\n BarChart, XAxis, YAxis, CartesianGrid, Tooltip, Bar, LabelList, Cell,\r\n} from 'recharts';\r\nimport useLayout from '../../common/hooks/useLayout';\r\nimport { AmbienteColors } from '../../common/data/types';\r\nimport CustomLabelLine from './CustomLabelLine';\r\n\r\nconst initialState = {\r\n label1: 'value1',\r\n label2: 'value2',\r\n withBrush: false,\r\n};\r\n\r\nfunction findColor(idAmbiente) {\r\n return AmbienteColors[idAmbiente];\r\n}\r\n\r\nfunction getAdditionalHeight(data = []) {\r\n const size = data.slice(9, data.length).length;\r\n return size * 30;\r\n}\r\n\r\nfunction ChartBar({ data = [], config = initialState }) {\r\n const { resize } = useLayout();\r\n const [size, setSize] = React.useState(758);\r\n\r\n React.useEffect(() => {\r\n try {\r\n const parent = document.getElementById('char-bar-wrapper');\r\n const { width } = parent.getBoundingClientRect();\r\n setSize(width);\r\n } catch (error) {\r\n //\r\n }\r\n }, []);\r\n\r\n return (\r\n <BarChart\r\n data={data}\r\n height={resize(420 + getAdditionalHeight(data))}\r\n width={size}\r\n maxBarSize={resize(100)}\r\n style={{\r\n fontSize: `${resize(16)}px`,\r\n }}\r\n layout=\"vertical\"\r\n >\r\n <CartesianGrid strokeDasharray=\"3 3\" />\r\n <XAxis type=\"number\" />\r\n <YAxis dataKey=\"name\" hide type=\"category\" />\r\n <Tooltip formatter={(value) => `${value}kw/m`} />\r\n <Bar dataKey=\"value1\" fill=\"#da9703\" name={config.label1} height={resize(50)}>\r\n {\r\n data.map((entry, index) => <Cell key={`cell-${index}`} fill={findColor(entry.ambiente || index)} />)\r\n }\r\n <LabelList\r\n dataKey=\"index\"\r\n position=\"top\"\r\n stroke=\"#022c43\"\r\n content={(props) => <CustomLabelLine {...props} data={data} />}\r\n />\r\n </Bar>\r\n </BarChart>\r\n\r\n );\r\n}\r\n\r\nexport default ChartBar;\r\n","export default [\r\n { id: 1009, color: '#2c9634', name: 'verde' },\r\n { id: 1010, color: '#ffd400', name: 'amarela' },\r\n { id: 1011, color: '#c11d1d', name: 'vermelha patamar 01' },\r\n { id: 1012, color: '#940000', name: 'vermelha patamar 02' },\r\n];\r\n","/* eslint-disable arrow-body-style */\r\n/* eslint-disable react/no-array-index-key */\r\nimport React from 'react';\r\nimport {\r\n PieChart, Pie, Tooltip, Cell, Legend,\r\n} from 'recharts';\r\nimport { AmbienteColors } from '../../common/data/types';\r\nimport useLayout from '../../common/hooks/useLayout';\r\nimport flagColors from '../FlagDropdown/flags';\r\n\r\nconst RADIAN = Math.PI / 180;\r\n\r\nconst colors = AmbienteColors;\r\n\r\nfunction findColor(idAmbiente) {\r\n return AmbienteColors[idAmbiente];\r\n}\r\n\r\nexport const TYPES = {\r\n PERCENT: 0,\r\n KW: 1,\r\n REAL: 2,\r\n};\r\n\r\nfunction ChartPie({\r\n data = [], withAmbientes = true, type = TYPES.PERCENT, formatter = (value) => value,\r\n}) {\r\n const { resize } = useLayout();\r\n const [animate, setAnimate] = React.useState(false);\r\n\r\n const getColor = (ambiente, index, entry) => {\r\n if (entry && entry.name) {\r\n try {\r\n const isFlag = entry.name.toLowerCase().includes('bandeira');\r\n if (isFlag) {\r\n const tx = entry.name.toLowerCase().replace('bandeira', '') || '';\r\n\r\n const item = flagColors.find((c) => c.name.trim() === tx.trim());\r\n\r\n console.log({ tx, item });\r\n if (item) {\r\n return item.color;\r\n }\r\n }\r\n } catch (error) {\r\n console.log({ error });\r\n return ambiente ? findColor(ambiente) : colors[index % colors.length];\r\n }\r\n }\r\n return ambiente ? findColor(ambiente) : colors[index % colors.length];\r\n };\r\n\r\n const renderCustomizedLabel = (props) => {\r\n const {\r\n cx, cy, midAngle, innerRadius, outerRadius, percent, ambiente, index, value,\r\n } = props;\r\n const radius = innerRadius + (outerRadius - innerRadius) * 0.5;\r\n const x = cx + radius * Math.cos(-midAngle * RADIAN) * 1.4;\r\n const y = cy + radius * Math.sin(-midAngle * RADIAN) * 1.4;\r\n\r\n let text = '';\r\n try {\r\n switch (type) {\r\n case TYPES.KW:\r\n text = `${(value).toFixed(1)}kw/m`;\r\n break;\r\n\r\n case TYPES.REAL:\r\n text = `R$${value.toFixed(2)}`;\r\n break;\r\n\r\n default:\r\n text = `${(percent * 100).toFixed(1)}%`;\r\n break;\r\n }\r\n } catch (error) {\r\n text = `${(percent * 100).toFixed(1)}%`;\r\n }\r\n\r\n return (\r\n <text x={x} y={y} fill={getColor(ambiente, index, props)} textAnchor={x > cx ? 'start' : 'end'} dominantBaseline=\"central\" fontSize={resize(18)}>\r\n {text}\r\n </text>\r\n );\r\n };\r\n\r\n React.useEffect(() => {\r\n setTimeout(() => {\r\n if (animate) {\r\n setAnimate(false);\r\n setTimeout(() => {\r\n setAnimate(true);\r\n }, 100);\r\n } else {\r\n setAnimate(true);\r\n }\r\n }, 150);\r\n }, [data]);\r\n\r\n const labelLine = window.innerWidth <= 768 ? { labelLine: false } : {};\r\n\r\n if (!data || data.length === 0) return <></>;\r\n return (\r\n <PieChart\r\n width={resize(758)}\r\n height={resize(400)}\r\n >\r\n <Pie\r\n isAnimationActive={animate}\r\n data={data}\r\n cx={resize(380)}\r\n cy={resize(165)}\r\n innerRadius={resize(90)}\r\n outerRadius={resize(120)}\r\n fill=\"#da9703\"\r\n dataKey=\"value\"\r\n label={renderCustomizedLabel}\r\n paddingAngle={data.length > 1 ? resize(6) : 0}\r\n {...labelLine}\r\n >\r\n {\r\n data.map((entry, index) => (\r\n <Cell\r\n key={`cell-${index}`}\r\n fill={withAmbientes ? getColor(entry.ambiente, index, entry) : getColor(null, index, entry)}\r\n stroke={withAmbientes ? getColor(entry.ambiente, index, entry) : getColor(null, index, entry)}\r\n />\r\n ))\r\n }\r\n </Pie>\r\n <Tooltip formatter={formatter} />\r\n <Legend\r\n wrapperStyle={{ height: resize(35), width: '100%', fontSize: resize(16) }}\r\n iconSize={resize(14)}\r\n />\r\n </PieChart>\r\n );\r\n}\r\n\r\nexport default ChartPie;\r\n","import React from 'react';\r\nimport {\r\n LineChart, Line,\r\n XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer,\r\n} from 'recharts';\r\nimport useLayout from '../../common/hooks/useLayout';\r\n\r\n// {name: 'Page A', uv: 4000, pv: 2400, amt: 2400,}\r\n\r\nconst initialState = {\r\n label1: 'value1',\r\n label2: 'value2',\r\n};\r\n\r\nfunction ChartLine({ data = [], config = initialState }) {\r\n const { resize } = useLayout();\r\n\r\n return (\r\n <ResponsiveContainer\r\n height={resize(450)}\r\n width=\"100%\"\r\n >\r\n <LineChart\r\n data={data}\r\n style={{\r\n fontSize: `${resize(14)}px`,\r\n }}\r\n >\r\n <CartesianGrid strokeDasharray=\"3 3\" />\r\n <XAxis dataKey=\"name\" tickSize={4} interval={0} padding={{ left: resize(30), right: resize(30) }} />\r\n <YAxis />\r\n <Tooltip formatter={(value) => `${value}kw/m`} />\r\n <Legend />\r\n <Line type=\"monotone\" dataKey=\"value1\" stroke=\"#da9703\" activeDot={{ r: 8 }} name={config.label1} />\r\n <Line type=\"monotone\" dataKey=\"value2\" stroke=\"#0e384d\" activeDot={{ r: 8 }} name={config.label2} />\r\n </LineChart>\r\n </ResponsiveContainer>\r\n );\r\n}\r\n\r\nexport default ChartLine;\r\n","import axios from 'axios';\r\nimport { log } from '../../utils/global';\r\n\r\nexport async function callWebhook(body, config) {\r\n axios.post(`${process.env.REACT_APP_WEBHOOK_URL}${config.user}`, body, {\r\n headers: {\r\n Authorization: `Bearer ${config.token}`,\r\n },\r\n }).then((res) => {\r\n log('webhook response ->', res);\r\n }).catch((err) => {\r\n log('webhook error ->', err.message);\r\n });\r\n}\r\n","import { Medida } from '../data/types';\r\n\r\nfunction housPerDay(power, time) {\r\n return (power * time) / 1000;\r\n}\r\n\r\nfunction minutesPerDay(power, time) {\r\n return (power * (time / 60)) / 1000;\r\n}\r\n\r\n/**\r\n *\r\n * @param power Potência em watts\r\n * @param time Tempo de uso\r\n * @param usageType Tipo de uso. (Ver constante Medida)\r\n * @returns Valor consumido em kW/h mensalmente\r\n */\r\nexport function calcUsage(power, time, usageType) {\r\n switch (usageType) {\r\n case Medida.HORAS_DIA:\r\n return housPerDay(power, time) * 30;\r\n case Medida.MINUTOS_DIA:\r\n return minutesPerDay(power, time) * 30;\r\n default:\r\n return housPerDay(power, time) * 30;\r\n }\r\n}\r\n\r\nexport function getSeconds(time, usageType) {\r\n switch (usageType) {\r\n case Medida.HORAS_DIA:\r\n return (time * 60) * 60;\r\n default:\r\n return (time * 60);\r\n }\r\n}\r\n","/* eslint-disable react/prop-types */\r\nimport React from 'react';\r\n\r\n/**\r\n *\r\n * @returns Renderiza conteúdo apenas se a prop visible for true (default: true)\r\n */\r\nexport default function Content({ visible = true, children }) {\r\n if (!visible) return null;\r\n return <>{children}</>;\r\n}\r\n","import { useSelector } from 'react-redux';\r\n\r\nexport default function useMetrics() {\r\n const metrics = useSelector((state) => state.app.metrics) || [];\r\n\r\n return {\r\n findMetric: (id) => {\r\n const metric = metrics.find((item) => item.id_medida === id);\r\n if (metric) return metric.tx_nome;\r\n return '';\r\n },\r\n getMetrics: () => metrics,\r\n findByName: (val) => {\r\n const metric = metrics.find((item) => item.tx_nome === val);\r\n return metric;\r\n },\r\n };\r\n}\r\n","import React from 'react';\r\nimport {\r\n BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend,\r\n} from 'recharts';\r\n\r\nfunction ChartReview({ data = [] }) {\r\n const [size, setSize] = React.useState(758);\r\n\r\n React.useEffect(() => {\r\n try {\r\n const parent = document.getElementById('chart-review-wrapper');\r\n const { width } = parent.getBoundingClientRect();\r\n setSize(width);\r\n } catch (error) {\r\n //\r\n }\r\n }, []);\r\n return (\r\n <BarChart\r\n width={size}\r\n height={300}\r\n data={data}\r\n style={{\r\n color: '#022c43',\r\n }}\r\n >\r\n <CartesianGrid strokeDasharray=\"3 3\" />\r\n <XAxis dataKey=\"name\" />\r\n <YAxis />\r\n <Tooltip />\r\n <Legend />\r\n <Bar dataKey=\"value1\" fill=\"#da9703\" name=\"Sua simulação\" />\r\n <Bar dataKey=\"value2\" fill=\"#0e384d\" name=\"Nossa simulação\" />\r\n </BarChart>\r\n );\r\n}\r\n\r\nexport default ChartReview;\r\n","import React from 'react';\r\nimport useCosts from '../../common/hooks/useCosts';\r\nimport ChartReview from '../ChartReview';\r\nimport Styles from './TableReview.module.scss';\r\n\r\nfunction TableReview({\r\n data = [], rec = [], review = [], chartData = [],\r\n totalKW = 0,\r\n children = () => { },\r\n}) {\r\n const [optmized, setOptmized] = React.useState(false);\r\n const { calculateCost } = useCosts();\r\n const calcTotalUser = () => data.reduce((current, next) => current + next.rep_usage, 0);\r\n const calcTotalRec = () => {\r\n const merged = rec.map((ap) => {\r\n const sug = review.find((rev) => rev.id_aparelho === ap.id_aparelho);\r\n if (sug && sug.recommended && sug.recommended.length > 0) {\r\n const eco = sug.recommended.sort((a, b) => a.usage - b.usage)[0];\r\n return {\r\n ...ap,\r\n ...eco,\r\n rep_usage: eco.usage,\r\n };\r\n }\r\n return ap;\r\n });\r\n\r\n return merged.reduce((current, next) => current + next.rep_usage, 0);\r\n };\r\n const calcCostUser = () => {\r\n const kw = calcTotalUser();\r\n return calculateCost(kw, totalKW);\r\n };\r\n\r\n const calcCostRec = () => {\r\n const kw = calcTotalRec();\r\n return calculateCost(kw, totalKW);\r\n };\r\n\r\n const calcResult = () => {\r\n try {\r\n const valueUser = calcTotalUser();\r\n const valueRec = calcTotalRec();\r\n\r\n const percent = (valueUser / valueRec) - 1;\r\n return `${(percent * 100).toFixed(2)}%`;\r\n } catch (error) {\r\n return '0%';\r\n }\r\n };\r\n\r\n const calcCostResult = () => {\r\n const user = calcCostUser();\r\n const reco = calcCostRec();\r\n return user - reco;\r\n };\r\n\r\n const formatKW = (value = 0) => `${value.toFixed(2)} kWh`;\r\n\r\n const formatReal = (value = 0) => `R$ ${value.toFixed(2)}`;\r\n\r\n React.useEffect(() => {\r\n const valueUser = calcTotalUser();\r\n const valueRec = calcTotalRec();\r\n\r\n if (valueUser <= valueRec) {\r\n setOptmized(true);\r\n } else {\r\n setOptmized(false);\r\n }\r\n }, [data, rec]);\r\n\r\n if (optmized) {\r\n return (\r\n <h1 className={Styles.success}>\r\n Parabéns. O seu consumo está otimizado.\r\n </h1>\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n {children({ optmized })}\r\n <div\r\n id=\"chart-review-wrapper\"\r\n className={Styles.chartWrapper}\r\n >\r\n <h1 className={Styles.title}>ANÃLISE POR AMBIENTE</h1>\r\n <ChartReview\r\n data={chartData}\r\n />\r\n </div>\r\n <div className={Styles.divider} />\r\n <table className={Styles.table}>\r\n <thead>\r\n <tr>\r\n <th>Sua simulação</th>\r\n <th>Nossa simulação</th>\r\n {/* <th>Economia</th> */}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr>\r\n <td>{formatKW(calcTotalUser())}</td>\r\n <td>{formatKW(calcTotalRec())}</td>\r\n {/* <td>{calcResult()}</td> */}\r\n </tr>\r\n\r\n <tr>\r\n {/* <td>{formatReal(calcCostUser())}</td> */}\r\n {/* <td>{formatReal(calcCostRec())}</td> */}\r\n {/* <td>{formatReal(calcCostResult())}</td> */}\r\n </tr>\r\n\r\n </tbody>\r\n </table>\r\n </>\r\n );\r\n}\r\n\r\nexport default TableReview;\r\n","/* eslint-disable react/jsx-one-expression-per-line */\r\n/* eslint-disable react/jsx-props-no-multi-spaces */\r\n/* eslint-disable no-mixed-operators */\r\nimport React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { Carousel } from 'react-responsive-carousel';\r\nimport { MdKeyboardArrowLeft, MdKeyboardArrowRight } from 'react-icons/md';\r\nimport { HiLightBulb } from 'react-icons/hi';\r\nimport styles from './ModalReport.module.scss';\r\nimport ButtonYellow from '../ButtonYellow';\r\nimport { restartReport } from '../../redux/actions/reportActions';\r\nimport { restartSidebar } from '../../redux/actions/sidebarActions';\r\nimport { ROUTES } from '../../router/router';\r\nimport useCosts from '../../common/hooks/useCosts';\r\nimport ChartBar from '../ChartBar';\r\nimport CharPie, { TYPES } from '../ChartPie';\r\nimport CharLine from '../ChartLine';\r\nimport { callWebhook } from '../../common/services/api/webhook';\r\nimport useLayout from '../../common/hooks/useLayout';\r\nimport { calcUsage } from '../../common/utils/usage';\r\nimport Content from '../Content';\r\nimport { setAppState } from '../../redux/actions/appActions';\r\nimport ModalReportReview from '../ModalReportReview';\r\nimport useMetrics from '../../common/hooks/useMetrics';\r\nimport * as UsageUtils from '../../common/utils/usage';\r\nimport TableReview from '../TableReview';\r\nimport FlagDropdown from '../FlagDropdown';\r\n\r\n// #region Aux Functions\r\n\r\nfunction formatCost(value = 0) {\r\n return value.toLocaleString('pt-br', { style: 'currency', currency: 'BRL' });\r\n}\r\n\r\nfunction formatPercentage(value = 0) {\r\n return value.toLocaleString(undefined, { style: 'percent', minimumFractionDigits: 2 });\r\n}\r\n\r\nexport function calcTotalKw(report) {\r\n if (report.length === 0) return 0;\r\n if (report.length === 1) return report[0].rep_usage;\r\n return report.reduce((current, next) => current + next.rep_usage, 0);\r\n}\r\n\r\nfunction calcTotalCosts(report) {\r\n if (report.length === 0) return 0;\r\n if (report.length === 1) return report[0].rep_cost;\r\n return report.reduce((current, next) => current + next.rep_cost, 0);\r\n}\r\n// #endregion\r\nfunction ModalReport({\r\n visible, place, isGeneral, onDismiss,\r\n}) {\r\n const [data, setData] = useState([]);\r\n const [totalKW, setTotalKW] = useState(0);\r\n const [generalMode, setGeneralMode] = useState(isGeneral);\r\n const [analise, setAnalise] = useState([]);\r\n const [reviewMode, setReviewMode] = useState(false);\r\n const [analiseSelected, setAnaliseSelected] = useState();\r\n const {\r\n report: generalData, app, items,\r\n } = useSelector((store) => store);\r\n const { places: ambientes, casaPadrao } = useSelector((store) => store.app);\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const { calculateCost, calculateTotal } = useCosts();\r\n const { resize } = useLayout();\r\n const { findMetric } = useMetrics();\r\n\r\n function findComodo() {\r\n if (!data || data.length === 0) return '';\r\n const amb = ambientes.find((ab) => ab.id_ambiente === data[0].id_ambiente);\r\n return amb.tx_nome.toUpperCase();\r\n }\r\n\r\n function getPieAmbientes() {\r\n const amb = ambientes.map((item) => {\r\n const aps = generalData.filter((ap) => ap.id_ambiente === item.id_ambiente);\r\n const totalKw1 = aps.reduce((current, next) => current + next.rep_usage, 0);\r\n return {\r\n name: item.tx_nome,\r\n value: parseFloat(totalKw1.toFixed(2)),\r\n ambiente: item.id_ambiente,\r\n };\r\n });\r\n\r\n return amb.filter((a) => a.value > 0.0);\r\n }\r\n\r\n function getPieAmbientesCusto() {\r\n const amb = ambientes.map((item) => {\r\n const aps = generalData.filter((ap) => ap.id_ambiente === item.id_ambiente);\r\n const totalKw1 = aps.reduce((current, next) => current + next.rep_usage, 0);\r\n return {\r\n name: item.tx_nome,\r\n value: calculateCost(totalKw1, totalKW),\r\n ambiente: item.id_ambiente,\r\n };\r\n });\r\n\r\n return amb.filter((a) => a.value > 0.0);\r\n }\r\n\r\n function getCasaPadraoChart() {\r\n const temp = generalMode ? ambientes : ambientes.filter((p) => p.id_ambiente === place);\r\n const amb = temp.map((item) => {\r\n const aps = data.filter((ap) => ap.id_ambiente === item.id_ambiente);\r\n const totalKw1 = aps.reduce((current, next) => current + next.rep_usage, 0);\r\n\r\n const aps2 = casaPadrao.filter((ap) => ap.id_ambiente === item.id_ambiente);\r\n const totalKw2 = aps2.reduce((current, next) => current + next.rep_usage, 0);\r\n\r\n return {\r\n name: item.tx_nome,\r\n value1: totalKw1.toFixed(2),\r\n value2: totalKw2.toFixed(2),\r\n };\r\n });\r\n\r\n return amb;\r\n }\r\n\r\n function getReviewChart() {\r\n const temp = ambientes;\r\n const amb = temp.map((item) => {\r\n const aps = data.filter((ap) => ap.id_ambiente === item.id_ambiente);\r\n const totalKw1 = aps.reduce((current, next) => current + next.rep_usage, 0);\r\n\r\n const aps2 = casaPadrao.filter((ap) => ap.id_ambiente === item.id_ambiente);\r\n\r\n let merged = [];\r\n if (analise) {\r\n merged = aps2.map((ap) => {\r\n const sug = analise.find((rev) => rev.id_aparelho === ap.id_aparelho);\r\n if (sug && sug.recommended && sug.recommended.length > 0) {\r\n const eco = sug.recommended.sort((a, b) => a.usage - b.usage)[0];\r\n return {\r\n ...ap,\r\n ...eco,\r\n rep_usage: eco.usage,\r\n };\r\n }\r\n return ap;\r\n });\r\n } else {\r\n merged = aps2;\r\n }\r\n\r\n const totalKw2 = merged.reduce((current, next) => current + next.rep_usage, 0);\r\n\r\n return {\r\n name: item.tx_nome,\r\n value1: totalKw1.toFixed(2),\r\n value2: totalKw2.toFixed(2),\r\n };\r\n });\r\n\r\n return amb.filter((item) => item.value1 !== '0.00' || item.value2 !== '0.00');\r\n }\r\n\r\n function getBarAparelhos() {\r\n const sorted = data.map((item) => ({\r\n name: item.tx_nome,\r\n value1: parseFloat(item.rep_usage.toFixed(2)),\r\n ambiente: item.id_ambiente,\r\n })).sort((a, b) => {\r\n if (a.ambiente < b.ambiente) return -1;\r\n if (a.ambiente > b.ambiente) return 1;\r\n return 0;\r\n });\r\n\r\n return sorted.map((srt, index) => ({\r\n ...srt,\r\n percent: `${(srt.value1 / totalKW * 100).toFixed(1)}%`,\r\n index,\r\n }));\r\n }\r\n\r\n // function getPieCosts() {\r\n // const tt = calcTotalKw(generalData);\r\n\r\n // const costs = calculateTotal(totalKW, tt);\r\n // const tmp = costs.breakdown.map((item) => ({ ...item, value: parseFloat(item.value.toFixed(2)) }));\r\n // const tmp2 = { name: 'Consumo sem impostos', value: parseFloat(costs.totalWithoutTaxes.toFixed(2)) };\r\n\r\n // return [...tmp, tmp2];\r\n // }\r\n\r\n function findHighUsage(dataList = [], totalkw = 0) {\r\n try {\r\n const aparelhos = dataList.sort((a, b) => b.rep_usage - a.rep_usage);\r\n const apAltoCusto = aparelhos;\r\n const temp = apAltoCusto.map((apc) => {\r\n const ap = items.find((aparelho) => aparelho.id_aparelho === apc.id_aparelho);\r\n const sugeridos = ap && ap.aparelhos_sugeridos ? ap.aparelhos_sugeridos : [];\r\n let recommended = [];\r\n if (sugeridos && sugeridos.length > 0) {\r\n recommended = sugeridos.map((sug) => {\r\n const usage = calcUsage(sug.nu_potencia_sugerida * apc.rep_quantity, apc.rep_useTime, apc.id_medida);\r\n return {\r\n ...sug,\r\n usage,\r\n cost: calculateCost(usage, totalkw),\r\n };\r\n });\r\n }\r\n const recommendedSorted = recommended.sort((a, b) => a.usage - b.usage);\r\n return {\r\n ...apc,\r\n recommended: recommendedSorted,\r\n };\r\n });\r\n\r\n const mapped = temp.map((item) => {\r\n const rec = item.recommended.filter((rc) => rc.usage < item.rep_usage);\r\n return {\r\n ...item,\r\n recommended: rec,\r\n };\r\n });\r\n\r\n const filtered = mapped.filter((tmp) => tmp.recommended.length > 0);\r\n const sorted = filtered.sort((a, b) => a.recommended.length - b.recommended.length);\r\n setAnalise(sorted);\r\n } catch (error) {\r\n console.log('erro high usage ->', error.message);\r\n setAnalise([]);\r\n }\r\n }\r\n\r\n function createRecommendedReport(reportItens = []) {\r\n const padrao = reportItens.map((item) => {\r\n const usage = UsageUtils.calcUsage(item.nu_potencia_sugerida * 1, item.nu_tempo_sugerido, item.id_medida);\r\n const temp = item;\r\n return {\r\n ...temp,\r\n rep_quantity: 1,\r\n rep_power: item.nu_potencia_sugerida,\r\n rep_useTime: item.nu_tempo_sugerido,\r\n rep_usage: usage,\r\n rep_useType: findMetric(item.id_medida),\r\n };\r\n });\r\n dispatch(setAppState({ casaPadrao: padrao }));\r\n }\r\n\r\n function calculateCostPercentage(cost = 0) {\r\n const totalCost = calcTotalCosts(data);\r\n return cost / totalCost;\r\n }\r\n\r\n function calculateUsagePercentage(kw = 0) {\r\n const totalkw = calcTotalKw(generalData);\r\n return kw / totalkw;\r\n }\r\n\r\n const handleChange = () => {\r\n const totalkw = calcTotalKw(generalData);\r\n\r\n const temp = generalData.map((item) => ({\r\n ...item,\r\n rep_cost: calculateCost(item.rep_usage, totalkw),\r\n }));\r\n\r\n if (generalMode) {\r\n setData(temp);\r\n setTotalKW(totalkw);\r\n findHighUsage(temp);\r\n createRecommendedReport(temp);\r\n } else {\r\n const localData = temp.filter((item) => item.id_ambiente === place);\r\n const total = calcTotalKw(localData);\r\n setData(localData);\r\n setTotalKW(total);\r\n findHighUsage(temp, total);\r\n createRecommendedReport(localData);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n handleChange();\r\n }, [generalData, app.currentFlag]);\r\n\r\n useEffect(() => {\r\n handleChange();\r\n }, [generalMode]);\r\n\r\n useEffect(() => {\r\n if (analise && analise.length > 0 && !analiseSelected) {\r\n setAnaliseSelected(analise[0]);\r\n }\r\n }, [analise]);\r\n\r\n if (!visible) return <></>;\r\n\r\n return (\r\n <div className={(visible) ? styles.container : styles.hidden}>\r\n <div\r\n className={styles.close}\r\n onClick={() => {\r\n onDismiss();\r\n }}\r\n />\r\n <Content visible={!reviewMode}>\r\n <div className={styles.wrapper}>\r\n <div className={`${styles.titleReportWrapper} ${styles.title}`} style={{ marginTop: `${resize(32)}px` }}>\r\n <h1 className={`${styles.title} ${styles.noMargin}`}>{generalMode ? 'RELATÓRIO GERAL' : `RELATÓRIO: ${findComodo()}`}</h1>\r\n <h2 className={styles['alert-text']}>\r\n * Os Resultados são estimativas e podem variar conforme o modelo dos equipamentos\r\n </h2>\r\n\r\n {/* <span className={styles.dropSpan} style={{ marginBottom: `${resize(20)}px` }}>\r\n <div className={styles.dropContainer}>\r\n <FlagDropdown />\r\n </div>\r\n </span> */}\r\n </div>\r\n <div className={styles.box}>\r\n <table className={styles.table}>\r\n <thead>\r\n <tr>\r\n <th>Quant.</th>\r\n <th>Descrição</th>\r\n <th style={{ maxWidth: '150px' }}>Uso diário</th>\r\n <th>KWh/mês</th>\r\n {/* <th>Custo/Mês</th> */}\r\n <th>Consumo/Total</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <Content visible={data}>\r\n {data.map((item) => (\r\n <tr key={`modal-other-${item.id_aparelho}-${item.tx_nome}-${item.id_ambiente}`}>\r\n <td>{item.rep_quantity}</td>\r\n <td>{item.tx_nome}</td>\r\n <td className={styles.flexTd}>\r\n <span>{`${item.rep_useTime}`} </span>\r\n {item.rep_useType.split(/(?=\\/)/g).map((tx) => (\r\n <span key={`td-time-${item.id_aparelho}-${tx}`}>\r\n {tx}\r\n </span>\r\n ))}\r\n </td>\r\n <td>{item.rep_usage.toFixed(2)}</td>\r\n {/* <td>{formatCost(item.rep_cost)}</td> */}\r\n <td>\r\n {formatPercentage(item.rep_usage / totalKW)}\r\n </td>\r\n </tr>\r\n ))}\r\n </Content>\r\n </tbody>\r\n <tfoot>\r\n <tr>\r\n <td style={{ fontWeight: 900 }}>TOTAL</td>\r\n <td />\r\n <td />\r\n <td>{totalKW.toFixed(2)}</td>\r\n {/* <td>{formatCost(calcTotalCosts(data))}</td> */}\r\n <td>100,00%</td>\r\n </tr>\r\n </tfoot>\r\n </table>\r\n <div className={styles.chartBox}>\r\n <Content visible={data.length > 0}>\r\n <div\r\n id=\"char-bar-wrapper\"\r\n className={styles.chartWrapper}\r\n >\r\n <h1 className={styles.title}>CONSUMO/APARELHO</h1>\r\n <ChartBar\r\n config={{\r\n label1: 'Consumo',\r\n withBrush: true,\r\n }}\r\n data={getBarAparelhos()}\r\n />\r\n </div>\r\n\r\n <Content visible={!generalMode}>\r\n <div className={styles.divider} style={{ height: 0 }} />\r\n </Content>\r\n\r\n <Content visible={generalMode && app.finishedReport}>\r\n <div className={styles.divider} />\r\n <div className={styles.chartWrapper}>\r\n <h1 className={styles.title}>CONSUMO/AMBIENTE</h1>\r\n <CharPie\r\n data={getPieAmbientes()}\r\n formatter={(value) => {\r\n const percent = calculateUsagePercentage(value);\r\n return `${(percent * 100).toFixed(1)}%`;\r\n }}\r\n type={TYPES.KW}\r\n />\r\n </div>\r\n\r\n <div className={styles.divider} />\r\n <div className={styles.chartWrapper}>\r\n {/* <h1 className={styles.title}>CUSTO/AMBIENTE</h1> */}\r\n {/* <CharPie\r\n data={getPieAmbientesCusto()}\r\n formatter={(value) => {\r\n const percent = calculateCostPercentage(value);\r\n return `${(percent * 100).toFixed(1)}%`;\r\n }}\r\n type={TYPES.REAL}\r\n /> */}\r\n </div>\r\n\r\n {/* <div className={styles.divider} />\r\n <div className={styles.chartWrapper}>\r\n <h1 className={styles.title}>CUSTOS</h1>\r\n <CharPie\r\n data={getPieCosts()}\r\n withAmbientes={false}\r\n formatter={(value) => {\r\n const percent = calculateCostPercentage(value);\r\n return `${(percent * 100).toFixed(1)}%`;\r\n }}\r\n type={TYPES.REAL}\r\n />\r\n </div> */}\r\n {/* <div className={styles.divider} /> */}\r\n {/* <div className={styles.chartWrapper}>\r\n <h1 className={styles.title}>RECOMENDADO</h1>\r\n <CharLine\r\n data={getCasaPadraoChart()}\r\n config={{\r\n label1: 'Minha casa',\r\n label2: 'Recomendado',\r\n }}\r\n />\r\n </div> */}\r\n {/* <div className={styles.divider} /> */}\r\n </Content>\r\n {/* end graphs */}\r\n {/* <Content visible={generalMode}>\r\n <h1 className={styles.title}>\r\n SIMULAÇÃO DE REDUÇÃO DE CONSUMO\r\n </h1>\r\n <ModalReportReview totalKW={totalKW} /> {/*report={generalData}\r\n <div className={styles.divider} />\r\n </Content> */}\r\n {/* start buttons */}\r\n <Content visible={generalMode}>\r\n <div\r\n style={{\r\n margin: '20px 0',\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n }}\r\n >\r\n <ButtonYellow\r\n text=\"ANALISAR MEU CONSUMO\"\r\n onClick={() => {\r\n setReviewMode(true);\r\n }}\r\n />\r\n </div>\r\n </Content>\r\n <div\r\n style={{\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'stretch',\r\n justifyContent: 'center',\r\n }}\r\n >\r\n <Content visible={generalMode}>\r\n <div\r\n style={{\r\n marginTop: 10,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'stretch',\r\n justifyContent: 'center',\r\n textAlign: 'center',\r\n }}\r\n >\r\n <a\r\n href=\"https://museulight.com.br/DetalheDetetives\"\r\n rel=\"noreferrer\"\r\n target=\"_blank\"\r\n className={styles.avaliar}\r\n style={{\r\n fontSize: `${resize(20)}px`,\r\n marginBottom: '20px',\r\n }}\r\n >\r\n avaliar o meu perfil de hábitos de consumo\r\n </a>\r\n\r\n <a\r\n href=\"http://www.procel.gov.br/main.asp?View={B70B5A3C-19EF-499D-B7BC-D6FF3BABE5FA}\"\r\n rel=\"noreferrer\"\r\n target=\"_blank\"\r\n className={styles.avaliar}\r\n style={{\r\n fontSize: `${resize(20)}px`,\r\n }}\r\n >\r\n equipamentos com Selo Procel\r\n </a>\r\n </div>\r\n </Content>\r\n\r\n <div\r\n style={{\r\n marginTop: 20,\r\n display: 'flex',\r\n flexDirection: 'row',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n }}\r\n >\r\n <ButtonYellow\r\n text=\"REINICIAR\"\r\n onClick={async () => {\r\n let q = '';\r\n if (app && app.params.callsWebhook) {\r\n q = `?callsWebhook=true&user=${app.params.user}&token=${app.params.token}`;\r\n }\r\n dispatch(restartReport());\r\n dispatch(restartSidebar());\r\n history.push(ROUTES.LAUNCHER + q, { started: false, avoidReduxOverride: true });\r\n onDismiss();\r\n }}\r\n />\r\n\r\n {app && app.params && app.params.callsWebhook && app.params.user && !app.finishedReport ? (\r\n <div style={{ marginLeft: 20 }}>\r\n <ButtonYellow\r\n text=\"FINALIZAR\"\r\n onClick={async () => {\r\n setGeneralMode(true);\r\n dispatch(setAppState({ finishedReport: true }));\r\n const kw = calcTotalKw(generalData);\r\n const body = generalData.map((item) => ({\r\n id_aparelho: item.id_aparelho,\r\n id_ambiente: item.id_ambiente,\r\n id_sugerido: item.rep_idSugerido,\r\n nome_aparelho: item.tx_nome,\r\n nome_ambiente: item.tx_ambiente,\r\n nome_aparelho_sugerido: item.rep_nomeSugerido,\r\n potencia_watts: item.rep_power,\r\n custo_mensal: calculateCost(item.rep_usage, kw),\r\n quantidade_aparelhos: item.rep_quantity,\r\n tipo_de_uso: item.rep_useType,\r\n tempo_de_uso: item.rep_useTime,\r\n }));\r\n const { token, user } = app.params;\r\n await callWebhook(body, { token, user });\r\n }}\r\n />\r\n </div>\r\n )\r\n : (\r\n <Content visible={!isGeneral}>\r\n <div style={{ marginLeft: 20 }}>\r\n <ButtonYellow\r\n text={generalMode ? `RELATÓRIO: ${findComodo()}` : 'RELATÓRIO GERAL'}\r\n onClick={() => {\r\n setGeneralMode(!generalMode);\r\n }}\r\n />\r\n </div>\r\n </Content>\r\n )}\r\n </div>\r\n </div>\r\n </Content>\r\n </div>\r\n </div>\r\n </div>\r\n </Content>\r\n <Content visible={reviewMode && generalMode}>\r\n <div className={styles.wrapper}>\r\n <h1\r\n style={{\r\n fontSize: resize(34),\r\n marginTop: resize(32),\r\n }}\r\n className={styles.title}\r\n >\r\n ANÃLISE DE CONSUMO\r\n </h1>\r\n <h2 className={styles['alert-text']}>\r\n * Os Resultados são estimativas e podem variar conforme o modelo dos equipamentos\r\n </h2>\r\n <div className={styles.box}>\r\n <TableReview\r\n data={data}\r\n rec={casaPadrao}\r\n review={analise}\r\n totalKW={totalKW}\r\n chartData={getReviewChart()}\r\n >\r\n {({ optmized }) => (\r\n <Content visible={!optmized && analise && analise.length > 0}>\r\n <h2\r\n style={{\r\n fontSize: resize(18),\r\n }}\r\n className={styles.disclaimer}\r\n >\r\n Aparelho com mais consumo\r\n </h2>\r\n <Carousel\r\n showThumbs={false}\r\n showStatus={false}\r\n showIndicators={false}\r\n showArrows\r\n width={resize(400)}\r\n onChange={(index) => {\r\n setAnaliseSelected(analise[index]);\r\n }}\r\n\r\n renderArrowNext={(onClickHandler, hasNext) => (\r\n <Content visible={hasNext}>\r\n <div\r\n className={styles.arrow}\r\n onClick={onClickHandler}\r\n style={{ right: 0, padding: resize(5) }}\r\n >\r\n <MdKeyboardArrowRight\r\n color=\"#fff\"\r\n size={resize(16)}\r\n />\r\n </div>\r\n </Content>\r\n )}\r\n\r\n renderArrowPrev={(onClickHandler, hasPrev) => (\r\n <Content visible={hasPrev}>\r\n <div\r\n className={styles.arrow}\r\n onClick={onClickHandler}\r\n style={{ left: 0, padding: resize(5) }}\r\n >\r\n <MdKeyboardArrowLeft\r\n color=\"#fff\"\r\n size={resize(16)}\r\n />\r\n </div>\r\n </Content>\r\n )}\r\n >\r\n {analise.map((item) => (\r\n <div className={styles.analiseWrapper} key={`carousel${item.id_aparelho}`}>\r\n <div className={styles.analiseItem}>\r\n <p style={{ fontSize: resize(20) }}>{`${item.tx_nome} (${item.tx_ambiente})`}</p>\r\n </div>\r\n <div className={styles.analiseItem} style={{ borderTopWidth: 0, background: '#d2f0ef', flexDirection: 'column' }}>\r\n <p style={{ fontSize: resize(20) }}>\r\n {item.rep_nomeSugerido}\r\n </p>\r\n <p style={{ fontSize: resize(20) }}>\r\n {`${item.rep_usage.toFixed(2)} KWh/m `} {/* • ${formatCost(item.rep_cost)} */}\r\n </p>\r\n </div>\r\n </div>\r\n ))}\r\n </Carousel>\r\n <Content visible={analiseSelected && analiseSelected.recommended}>\r\n <h2\r\n style={{\r\n fontSize: resize(18),\r\n }}\r\n className={styles.disclaimer}\r\n >\r\n Sugestão de aparelho com menor consumo\r\n </h2>\r\n <table className={`${styles.table} ${styles.noMargin}`}>\r\n <thead>\r\n <tr>\r\n <th>Descrição</th>\r\n <th>Potência</th>\r\n <th>KWh/mês</th>\r\n {/* <th>Custo/Mês</th> */}\r\n {/* <th>Economia</th> */}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {analiseSelected && analiseSelected.recommended.map((item) => (\r\n <tr key={`modal-othertt-${item.id_aparelho}-${item.tx_nome}`}>\r\n <td style={{ display: 'flex', alignItems: 'center', justifyContent: 'center' }}>\r\n {item.tx_nome}\r\n <Content visible={item.b_selo_procel}>\r\n <HiLightBulb style={{ marginLeft: 5 }} color=\"#022c43\" size={resize(20)} />\r\n </Content>\r\n </td>\r\n <td>{item.nu_potencia_sugerida.toFixed(2)}</td>\r\n <td>{item.usage.toFixed(2)}</td>\r\n {/* <td>{formatCost(item.cost)}</td> */}\r\n {/* <td>{formatPercentage((1 - (item.usage / analiseSelected.rep_usage)))}</td> */}\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n <div className={styles.divider} />\r\n </Content>\r\n </Content>\r\n )}\r\n </TableReview>\r\n <div\r\n style={{\r\n margin: 25,\r\n }}\r\n >\r\n <ButtonYellow\r\n onClick={() => {\r\n setReviewMode(false);\r\n }}\r\n text=\"VOLTAR\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </Content>\r\n </div>\r\n );\r\n}\r\n\r\nModalReport.defaultProps = {\r\n place: 0,\r\n isGeneral: false,\r\n onDismiss: () => { },\r\n visible: false,\r\n};\r\n\r\nModalReport.propTypes = {\r\n place: PropTypes.number,\r\n isGeneral: PropTypes.bool,\r\n onDismiss: PropTypes.func,\r\n visible: PropTypes.bool,\r\n};\r\n\r\nexport default React.memo(ModalReport);\r\n","/* eslint-disable import/no-cycle */\r\nimport React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\nimport AnimatedNumber from 'react-animated-number';\r\nimport styles from './EnergyMeter.module.scss';\r\nimport ModalAlert from '../ModalAlert';\r\nimport ModalReport from '../ModalReport';\r\n\r\nfunction maskValue(value) {\r\n const tmp = parseInt(value, 10).toString();\r\n return tmp.padStart(5, '0').slice(0, 5);\r\n}\r\n\r\nfunction calcValue(report) {\r\n if (report.length === 0) return 0;\r\n if (report.length === 1) return report[0].rep_usage;\r\n return report.reduce((current, next) => current + next.rep_usage, 0);\r\n}\r\n\r\nfunction calcBoxes(kw) {\r\n if (kw === 0) {\r\n return 0;\r\n }\r\n return Math.max(Math.min(parseInt((kw / 100) * 9, 10), 9), 1);\r\n}\r\n\r\nfunction Box({ quantity = 1 }) {\r\n const elements = [];\r\n let counter = quantity;\r\n while (counter > 0) {\r\n elements.push(\r\n <img\r\n key={`meter-box-${counter}`}\r\n className={styles.box}\r\n src=\"./interface/medidor_bar.png\"\r\n alt=\"\"\r\n />,\r\n );\r\n counter -= 1;\r\n }\r\n return elements;\r\n}\r\n\r\nfunction EnergyMeter({ place, isGeneral }) {\r\n const report = useSelector((store) => store.report);\r\n const reportLocal = report.filter((item) => item.id_ambiente === place);\r\n const [kw, setKw] = useState(0.0);\r\n const [showAlert, setShowAlert] = useState(false);\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n const toggleAlert = () => {\r\n setShowAlert(!showAlert);\r\n };\r\n\r\n const toggleModal = () => {\r\n setShowModal(!showModal);\r\n };\r\n\r\n const showReport = () => {\r\n if (isGeneral) {\r\n if (!report || report.length === 0) {\r\n setShowAlert(true);\r\n return;\r\n }\r\n } else if (!reportLocal || reportLocal.length === 0) {\r\n setShowAlert(true);\r\n return;\r\n }\r\n toggleModal();\r\n };\r\n\r\n useEffect(() => {\r\n if (isGeneral) {\r\n const res = calcValue(report);\r\n setKw(res);\r\n } else {\r\n const res = calcValue(reportLocal);\r\n setKw(res);\r\n }\r\n }, [report]);\r\n\r\n return (\r\n <>\r\n <div\r\n className={styles.container}\r\n onClick={showReport}\r\n >\r\n <AnimatedNumber\r\n value={parseInt(kw, 10)}\r\n className={styles.value}\r\n formatValue={(val) => maskValue(val)}\r\n duration={750}\r\n />\r\n <div className={styles.bar} style={{ justifyContent: calcBoxes(kw) === 9 ? 'space-between' : 'flex-start' }}>\r\n <Box quantity={calcBoxes(kw)} />\r\n </div>\r\n </div>\r\n <ModalAlert\r\n visible={showAlert}\r\n onConfirm={toggleAlert}\r\n type=\"alert\"\r\n subtitle=\"É necessário adicionar itens ao seu cômodo para que seja relatado um consumo. Navegue pelos equipamentos na barra lateral e os adicione em suas posições\"\r\n />\r\n <ModalReport\r\n visible={showModal}\r\n onDismiss={toggleModal}\r\n isGeneral={isGeneral}\r\n place={place}\r\n />\r\n </>\r\n );\r\n}\r\n\r\nEnergyMeter.defaultProps = {\r\n place: 0,\r\n isGeneral: false,\r\n};\r\nEnergyMeter.propTypes = {\r\n place: PropTypes.number,\r\n isGeneral: PropTypes.bool,\r\n};\r\n\r\nexport default React.memo(EnergyMeter);\r\n","/* eslint-disable jsx-a11y/control-has-associated-label */\r\nimport React from 'react';\r\nimport { Carousel } from 'react-responsive-carousel';\r\nimport styles from './Carousel.module.scss';\r\nimport 'react-responsive-carousel/lib/styles/carousel.css';\r\nimport './carousel.css';\r\n\r\nexport default () => (\r\n <Carousel\r\n showThumbs={false}\r\n infiniteLoop\r\n dynamicHeight\r\n showStatus={false}\r\n renderArrowPrev={(onClickHandler, hasPrev) => hasPrev && (\r\n <button type=\"button\" onClick={onClickHandler} title=\"Anterior\" className={styles.arrowPrev} />\r\n )}\r\n renderArrowNext={(onClickHandler, hasNext) => hasNext && (\r\n <button type=\"button\" onClick={onClickHandler} title=\"Próximo\" className={styles.arrowNext} />\r\n )}\r\n >\r\n <div className={styles.bordaCorretiva}>\r\n <img alt=\"\" src=\"./tutorial/slide_01.png\" />\r\n </div>\r\n <div className={styles.bordaCorretiva}>\r\n <img alt=\"\" src=\"./tutorial/slide_02.png\" />\r\n </div>\r\n <div className={styles.bordaCorretiva}>\r\n <img alt=\"\" src=\"./tutorial/slide_03.png\" />\r\n </div>\r\n <div className={styles.bordaCorretiva}>\r\n <img alt=\"\" src=\"./tutorial/slide_04.png\" />\r\n </div>\r\n <div className={styles.bordaCorretiva}>\r\n <img alt=\"\" src=\"./tutorial/slide_05.png\" />\r\n </div>\r\n <div className={styles.bordaCorretiva}>\r\n <img alt=\"\" src=\"./tutorial/slide_06.png\" />\r\n </div>\r\n <div className={styles.bordaCorretiva}>\r\n <img alt=\"\" src=\"./tutorial/slide_07.png\" />\r\n </div>\r\n </Carousel>\r\n);\r\n","/* eslint-disable import/no-cycle */\r\nimport React from 'react';\r\nimport { Link, useHistory } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport BaseScene from '../../components/BaseScene';\r\nimport ButtonYellow from '../../components/ButtonYellow';\r\nimport { ROUTES } from '../../router/router';\r\nimport EnergyMeter from '../../components/EnergyMeter';\r\nimport styles from './Laucher.module.scss';\r\nimport Carousel from '../../components/Carousel';\r\nimport { setAppState } from '../../redux/actions/appActions';\r\n\r\nfunction getInitialState(history) {\r\n if (history && history.location && history.location.state) {\r\n return history.location.state.started;\r\n }\r\n return false;\r\n}\r\n\r\nfunction isFromButtonReturn(history) {\r\n if (history && history.location && history.location.state) {\r\n return history.location.state.from === 'button_return' || history.location.state.from === 'button_return_resume';\r\n }\r\n return false;\r\n}\r\n\r\nexport default function Laucher() {\r\n const history = useHistory();\r\n const [started, setStarted] = React.useState(getInitialState(history));\r\n const [tutorial, setTutorial] = React.useState(getInitialState(history));\r\n const app = useSelector((store) => store.app);\r\n const animate1 = 'animate__animated animate__fadeIn animate__delay-1s';\r\n const animate2 = 'animate__animated animate__fadeIn animate__delay-2s';\r\n const animate3 = 'animate__animated animate__fadeIn animate__delay-3s';\r\n const dispatch = useDispatch();\r\n\r\n function startSimulator() {\r\n setStarted(true);\r\n }\r\n function startTutorial() {\r\n setTutorial(true);\r\n }\r\n function closeTutorial() {\r\n setTutorial(false);\r\n }\r\n\r\n React.useEffect(() => {\r\n if (history && history.location && history.location.search) {\r\n const avoid = history.location.state && history.location.avoidReduxOverride === true;\r\n if (avoid) {\r\n return;\r\n }\r\n try {\r\n const parse = history.location.search.replace('?', '').split('&');\r\n const obj = {\r\n callsWebhook: false,\r\n token: undefined,\r\n user: undefined,\r\n };\r\n parse.forEach((item) => {\r\n const temp = item.split('=');\r\n const tempObj = {\r\n key: temp[0],\r\n value: temp[1],\r\n };\r\n if (tempObj.key === 'callsWebhook') {\r\n obj.callsWebhook = tempObj.value.toLowerCase() === 'true';\r\n }\r\n\r\n if (tempObj.key === 'token') {\r\n obj.token = tempObj.value;\r\n }\r\n\r\n if (tempObj.key === 'user') {\r\n obj.user = tempObj.value;\r\n }\r\n });\r\n dispatch(setAppState({ params: obj, finishedReport: !obj.callsWebhook }));\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n if (!history || !history.location.state) return;\r\n setStarted(history.location.state.started);\r\n }, [history]);\r\n\r\n return (\r\n <div className={isFromButtonReturn(history) ? styles.container : `${animate1} ${styles.container}`}>\r\n <BaseScene\r\n source=\"./scene/house_plant_complete.png\"\r\n opaque={!started}\r\n >\r\n {!started ? (\r\n <div className={styles.mainTextContainer}>\r\n {!tutorial ? (\r\n <div>\r\n <div className={`${animate2} ${styles.textContainer}`}>\r\n <h1 className={styles.title1}>\r\n SIMULADOR DE\r\n </h1>\r\n <h1 className={styles.title2}>\r\n CONSUMO DE ENERGIA\r\n </h1>\r\n </div>\r\n <div className={`${animate3} ${styles.buttonsContainer}`}>\r\n <ButtonYellow\r\n text=\"SIMULADOR\"\r\n onClick={startSimulator}\r\n />\r\n <ButtonYellow\r\n text=\"TUTORIAL\"\r\n onClick={startTutorial}\r\n />\r\n </div>\r\n </div>\r\n )\r\n : (\r\n <div className={`${animate1} ${styles.tutorialContainer}`}>\r\n <div className={styles.closeTutorial} onClick={closeTutorial} />\r\n <div className={styles.textTutorialContainer}>\r\n <h1>Tutorial</h1>\r\n <p>Clique nas setas para explorar as funcionalidades do simulador.</p>\r\n </div>\r\n <div className={styles.slideContainer}>\r\n <Carousel />\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n )\r\n : (\r\n <div className={styles.navigatorContainer}>\r\n <div>\r\n {app.showHelp && (\r\n <div className={`${styles.containerAjudaInicial} ${animate2}`}>\r\n <p>Bem Vindo! Para começar a simulação, vá até um cômodo clicando sobre ele.</p>\r\n </div>\r\n )}\r\n </div>\r\n <Link id={styles.bathTouchable} to={ROUTES.BATHROOM} />\r\n <Link id={styles.livingTouchable} to={ROUTES.LIVING_ROOM} />\r\n <Link id={styles.kitchenTouchable} to={ROUTES.KITCHEN} />\r\n <Link id={styles.officeTouchable} to={ROUTES.OFFICE} />\r\n <Link id={styles.bedroomTouchable} to={ROUTES.BEDROOM} />\r\n <Link id={styles.laundryTouchable} to={ROUTES.LAUNDRY} />\r\n <Link id={styles.garageTouchable} to={ROUTES.GARAGE} />\r\n <Link id={styles.externalAreaTouchable} to={ROUTES.EXTERNAL} />\r\n </div>\r\n )}\r\n {started && (\r\n <div className={`${styles.meterContainer}`}>\r\n <EnergyMeter isGeneral />\r\n </div>\r\n )}\r\n </BaseScene>\r\n </div>\r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { HiLightBulb } from 'react-icons/hi';\r\nimport { Field } from 'formik';\r\nimport styles from './CustomInput.module.scss';\r\nimport useLayout from '../../common/hooks/useLayout';\r\n\r\nfunction getType(type, withError) {\r\n let ret = styles.inputLarge;\r\n switch (type) {\r\n case 'small':\r\n ret = styles.inputSmall;\r\n break;\r\n case 'medium':\r\n ret = styles.inputMedium;\r\n break;\r\n case 'especial':\r\n ret = styles.inputEspecial;\r\n break;\r\n default:\r\n ret = styles.inputLarge;\r\n break;\r\n }\r\n\r\n if (withError) {\r\n return `${ret} ${styles.error}`;\r\n }\r\n return ret;\r\n}\r\n\r\nfunction getDropdownClass(modal) {\r\n if (modal) {\r\n return `${styles.dropContainer} ${styles.modalDrop} animate__animated animate__fadeIn`;\r\n }\r\n return `${styles.dropContainer} animate__animated animate__fadeIn`;\r\n}\r\n\r\nfunction CustomInput({\r\n size,\r\n label,\r\n inputStyle,\r\n dropdown,\r\n dropdownData,\r\n dropdownModal,\r\n setValue,\r\n errorVisible,\r\n ...props\r\n}) {\r\n const [showDrop, setShowDrop] = useState(false);\r\n const toggleDrop = () => {\r\n setShowDrop(!showDrop);\r\n };\r\n const { resize } = useLayout();\r\n\r\n return (\r\n <div className={styles.container}>\r\n {label && (<h1 className={styles.placeholder}>{label}</h1>)}\r\n {dropdown ? (\r\n <div\r\n className={styles.clickable}\r\n onClick={toggleDrop}\r\n >\r\n <Field\r\n {...props}\r\n className={`${styles.clickable} ${getType(size)}`}\r\n style={inputStyle}\r\n />\r\n <div\r\n className={styles.touch}\r\n onClick={toggleDrop}\r\n />\r\n </div>\r\n )\r\n : (\r\n <Field\r\n {...props}\r\n className={getType(size, errorVisible)}\r\n style={inputStyle}\r\n />\r\n )}\r\n {dropdown && showDrop && dropdownData.length > 0 && (\r\n <>\r\n <div className={getDropdownClass(dropdownModal)}>\r\n <div className={styles.divScrollContainer}>\r\n {label && dropdownModal && (<h1 className={`${styles.placeholder} ${styles.placeholderModal}`}>{label}</h1>)}\r\n {dropdownData.map((item, index) => (\r\n <div\r\n key={`dropdown-item-${index * 2}`}\r\n onClick={() => {\r\n setValue(item);\r\n toggleDrop();\r\n }}\r\n className={styles.clickable}\r\n >\r\n <input\r\n disabled\r\n className={`${styles.clickable} ${styles.inputList} ${getType(size)}`}\r\n value={item.value}\r\n />\r\n <div\r\n className={styles.touch}\r\n onClick={() => {\r\n setValue(item);\r\n toggleDrop();\r\n }}\r\n />\r\n {item.showProcel && (\r\n <div\r\n className={styles.iconContainer}\r\n >\r\n <HiLightBulb color=\"#022c43\" size={resize(24)} />\r\n </div>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </>\r\n )}\r\n {dropdownModal && dropdown && showDrop && (dropdownData.length > 0) && (<div className={styles.modalFade} />)}\r\n </div>\r\n );\r\n}\r\n\r\nCustomInput.defaultProps = {\r\n size: 'large',\r\n label: null,\r\n inputStyle: {},\r\n dropdown: false,\r\n dropdownData: [],\r\n setValue: () => { },\r\n dropdownModal: false,\r\n errorVisible: false,\r\n};\r\n\r\nCustomInput.propTypes = {\r\n size: PropTypes.string,\r\n label: PropTypes.string,\r\n inputStyle: PropTypes.any,\r\n dropdown: PropTypes.bool,\r\n dropdownData: PropTypes.array,\r\n setValue: PropTypes.func,\r\n dropdownModal: PropTypes.bool,\r\n errorVisible: PropTypes.bool,\r\n};\r\n\r\nexport default CustomInput;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Formik, Form } from 'formik';\r\nimport { useDispatch } from 'react-redux';\r\nimport * as Yup from 'yup';\r\nimport CustomInput from '../CustomInput';\r\nimport ModalAlert from '../ModalAlert';\r\nimport { addItemToReport, removeItemFromReport, editItemFromReport } from '../../redux/actions/reportActions';\r\nimport { resetSidebarItem } from '../../redux/actions/sidebarActions';\r\nimport { setShowHelp } from '../../redux/actions/appActions';\r\nimport * as UsageUtils from '../../common/utils/usage';\r\nimport styles from './ModalOnDropItem.module.scss';\r\nimport useMetrics from '../../common/hooks/useMetrics';\r\nimport { safeArray } from '../../common/utils/global';\r\n\r\nfunction ModalOnDropItem({\r\n visible, item, mode, onDismiss, onSuccess,\r\n}) {\r\n const [showModal, setShowModal] = useState(false);\r\n const dispatch = useDispatch();\r\n const { findMetric, getMetrics, findByName } = useMetrics();\r\n\r\n const SignupSchema = Yup.object().shape({\r\n rep_quantity: Yup.number().min(1).required('Quantidade é obrigatória!'),\r\n rep_power: Yup.number().min(1).required('Potência é obrigatória!'),\r\n rep_useTime: Yup.number().min(1).required('Tempo de uso é obrigatório!'),\r\n });\r\n\r\n const submit = (formValues) => {\r\n const usage = UsageUtils\r\n .calcUsage(formValues.rep_power * formValues.rep_quantity,\r\n formValues.rep_useTime, findByName(formValues.rep_useType).id_medida);\r\n const obj = {\r\n ...item,\r\n ...formValues,\r\n rep_usage: usage,\r\n };\r\n delete obj.aparelhos_sugeridos;\r\n delete obj.rep_suggested;\r\n if (mode === 'add') {\r\n dispatch(addItemToReport(obj));\r\n } else {\r\n dispatch(editItemFromReport(obj));\r\n }\r\n dispatch(setShowHelp(false));\r\n onSuccess();\r\n };\r\n\r\n const remove = () => {\r\n dispatch(resetSidebarItem(item.tx_selector));\r\n dispatch(removeItemFromReport(item.tx_selector));\r\n onSuccess();\r\n };\r\n\r\n const toggleModal = () => {\r\n setShowModal(!showModal);\r\n };\r\n\r\n function findSuggested(id) {\r\n return item.aparelhos_sugeridos.find((i) => i.id_sugerido === id);\r\n }\r\n\r\n function findPower() {\r\n if (!item) return 0;\r\n if (!item.aparelhos_sugeridos || item.aparelhos_sugeridos.length === 0) return parseInt(item.nu_potencia_sugerida, 10);\r\n return item.aparelhos_sugeridos.length > 0 ? parseInt(item.aparelhos_sugeridos[0].nu_potencia_sugerida, 10) : parseInt(item.nu_potencia_sugerida, 10) || 0;\r\n }\r\n\r\n function findName() {\r\n if (!item || !item.aparelhos_sugeridos) return { tx_nome: undefined, id_sugerido: undefined };\r\n return item.aparelhos_sugeridos.length > 0 ? item.aparelhos_sugeridos[0] : { tx_nome: undefined, id_sugerido: undefined };\r\n }\r\n\r\n function getInitialValues() {\r\n return mode === 'add' ? {\r\n rep_quantity: 1,\r\n rep_useTime: parseInt(item.nu_tempo_sugerido, 10) || '',\r\n rep_power: findPower(),\r\n rep_useType: findMetric(item.id_medida),\r\n rep_suggested: findName().tx_nome,\r\n rep_idSugerido: findName().id_sugerido,\r\n rep_nomeSugerido: findName().tx_nome,\r\n }\r\n : {\r\n rep_quantity: item.rep_quantity || 1,\r\n rep_useTime: item.rep_useTime || '',\r\n rep_power: item.rep_power || '',\r\n rep_useType: findMetric(item.id_medida),\r\n rep_suggested: item.rep_nomeSugerido,\r\n rep_idSugerido: item.rep_idSugerido,\r\n rep_nomeSugerido: item.rep_nomeSugerido,\r\n };\r\n }\r\n\r\n if (!visible) return <></>;\r\n return (\r\n <>\r\n <div className={styles.modal}>\r\n <div className={styles.close} onClick={onDismiss} />\r\n <div className={styles.container}>\r\n <div className={styles.box}>\r\n <img\r\n className={styles.icon}\r\n src={`./icons/${item.tx_selector}.png`}\r\n alt=\"\"\r\n />\r\n </div>\r\n <div className={styles.textBox}>\r\n <h1 className={styles.name}>{item.tx_nome}</h1>\r\n </div>\r\n <Formik\r\n initialValues={getInitialValues()}\r\n validationSchema={SignupSchema}\r\n onSubmit={submit}\r\n >\r\n {({ setFieldValue, errors, touched }) => (\r\n <Form className={styles.formItems}>\r\n <CustomInput\r\n size=\"large\"\r\n label=\"QUANTIDADE\"\r\n type=\"number\"\r\n name=\"rep_quantity\"\r\n autoComplete=\"off\"\r\n min={1}\r\n max={9999999}\r\n errorVisible={errors.rep_quantity && touched.rep_quantity}\r\n />\r\n <CustomInput\r\n className={styles.teste}\r\n size=\"medium\"\r\n label=\"TEMPO DE USO\"\r\n type=\"number\"\r\n name=\"rep_useTime\"\r\n autoComplete=\"off\"\r\n min={1}\r\n errorVisible={errors.rep_useTime && touched.rep_useTime}\r\n />\r\n <CustomInput\r\n size=\"small\"\r\n type=\"text\"\r\n name=\"rep_useType\"\r\n autoComplete=\"off\"\r\n dropdown\r\n dropdownData={getMetrics().map((metr) => ({ key: metr.id_medida, value: metr.tx_nome }))}\r\n disabled\r\n setValue={(cb) => {\r\n setFieldValue('rep_useType', cb.value);\r\n }}\r\n />\r\n <CustomInput\r\n size=\"especial\"\r\n label=\"POTÊNCIA (WATT)\"\r\n type=\"number\"\r\n name=\"rep_power\"\r\n autoComplete=\"off\"\r\n min={1}\r\n errorVisible={errors.rep_power && touched.rep_power}\r\n />\r\n <div className={styles.help}>\r\n <p>?</p>\r\n <div className={styles.snip}>\r\n <p>A potência sugerida é uma média, você pode verificar no seu aparelho qual é a potência real.</p>\r\n </div>\r\n </div>\r\n {safeArray(item.aparelhos_sugeridos).length > 0 && (\r\n <CustomInput\r\n size=\"large\"\r\n label=\"APARELHOS SUGERIDOS\"\r\n type=\"text\"\r\n name=\"rep_suggested\"\r\n autoComplete=\"off\"\r\n dropdown\r\n disabled\r\n dropdownModal\r\n inputStyle={{\r\n cursor: 'pointer',\r\n }}\r\n dropdownData={safeArray(item.aparelhos_sugeridos).map((i) => ({ key: i.id_sugerido, value: i.tx_nome, showProcel: i.b_selo_procel }))}\r\n setValue={(obj) => {\r\n setFieldValue('rep_suggested', obj.value);\r\n const sug = findSuggested(obj.key);\r\n setFieldValue('rep_power', sug.nu_potencia_sugerida);\r\n setFieldValue('rep_useTime', sug.nu_tempo_sugerido);\r\n setFieldValue('rep_idSugerido', sug.id_sugerido);\r\n setFieldValue('rep_nomeSugerido', sug.tx_nome);\r\n }}\r\n />\r\n )}\r\n {mode === 'add' ? (\r\n safeArray(item.aparelhos_sugeridos).length > 0 ? (\r\n <button className={styles.submit} type=\"submit\">\r\n ADICIONAR\r\n </button>\r\n )\r\n : (\r\n <button\r\n className={`${styles.submit} ${styles.noSug}`}\r\n type=\"submit\"\r\n >\r\n ADICIONAR\r\n </button>\r\n )\r\n )\r\n : (\r\n safeArray(item.aparelhos_sugeridos).length > 0 ? (\r\n <div className={styles.editContainer}>\r\n <button\r\n className={styles.save}\r\n type=\"submit\"\r\n >\r\n SALVAR\r\n </button>\r\n <button\r\n className={styles.remove}\r\n type=\"button\"\r\n onClick={toggleModal}\r\n >\r\n EXCLUIR\r\n </button>\r\n </div>\r\n )\r\n : (\r\n <div className={`${styles.editContainer} ${styles.editContainerNoSug}`}>\r\n <button\r\n className={styles.save}\r\n type=\"submit\"\r\n >\r\n SALVAR\r\n </button>\r\n <button\r\n className={styles.remove}\r\n type=\"button\"\r\n onClick={toggleModal}\r\n >\r\n EXCLUIR\r\n </button>\r\n </div>\r\n )\r\n )}\r\n </Form>\r\n )}\r\n </Formik>\r\n </div>\r\n </div>\r\n <div className={styles.opaque} onClick={onDismiss} />\r\n <ModalAlert\r\n visible={showModal}\r\n title=\"EXCLUIR EQUIPAMENTO!\"\r\n subtitle={`Deseja realmente excluir o equipamento: ${item.tx_nome}`}\r\n onDismiss={toggleModal}\r\n onReject={toggleModal}\r\n onConfirm={() => {\r\n remove();\r\n toggleModal();\r\n }}\r\n />\r\n </>\r\n );\r\n}\r\n\r\nModalOnDropItem.defaultProps = {\r\n visible: false,\r\n item: {\r\n selector: '',\r\n nome: '',\r\n aparelhos_sugeridos: [],\r\n },\r\n onDismiss: () => { },\r\n onSuccess: () => { },\r\n mode: 'add',\r\n};\r\n\r\nModalOnDropItem.propTypes = {\r\n visible: PropTypes.bool,\r\n onDismiss: PropTypes.func,\r\n onSuccess: PropTypes.func,\r\n mode: PropTypes.string,\r\n item: PropTypes.any,\r\n};\r\n\r\nexport default ModalOnDropItem;\r\n","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDrag, DragPreviewImage } from 'react-dnd';\r\nimport debounce from 'lodash/debounce';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { setHoverItem, setItemPlaced } from '../../redux/actions/sidebarActions';\r\nimport ModalOnDropItem from '../ModalOnDropItem';\r\nimport styles from './SidebarItem.module.scss';\r\n\r\nconst SidebarItem = React.forwardRef(({\r\n icon, label, selector, containerStyle, mode, onClick,\r\n}, ref) => {\r\n const dispatch = useDispatch();\r\n const sidebar = useSelector((store) => store.sidebar);\r\n const items = useSelector((store) => store.items);\r\n const report = useSelector((store) => store.report);\r\n const [showModal, setShowModal] = useState(false);\r\n const [showModalEdit, setShowModalEdit] = useState(false);\r\n const [itemToEdit, setItemToEdit] = useState();\r\n\r\n const onHover = debounce(() => {\r\n dispatch(setHoverItem(selector, true));\r\n }, 300);\r\n\r\n const onBlur = debounce(() => {\r\n dispatch(setHoverItem(selector, false));\r\n }, 300);\r\n\r\n const toggleModal = () => {\r\n setShowModal(!showModal);\r\n };\r\n\r\n const toggleModalEdit = () => {\r\n setShowModalEdit(!showModalEdit);\r\n };\r\n\r\n const placeItem = () => {\r\n dispatch(setItemPlaced(selector, true));\r\n toggleModal();\r\n };\r\n\r\n const editItem = () => {\r\n const item = items.find((i) => i.tx_selector === selector);\r\n const rep = report.find((r) => r.tx_selector === selector);\r\n setItemToEdit({ ...item, ...rep });\r\n toggleModalEdit();\r\n };\r\n\r\n const isPlaced = () => {\r\n const item = sidebar.find((i) => i.tx_selector === selector);\r\n if (!item) return false;\r\n return !!item.placed;\r\n };\r\n\r\n function findThisItem() {\r\n const it = items.find((item) => item.tx_selector === selector);\r\n const dt = sidebar.find((side) => side.tx_selector === selector);\r\n return { ...it, ...dt };\r\n }\r\n\r\n const [{ isDragging }, drag, preview] = useDrag({\r\n item: { name: selector, type: selector },\r\n end: (item, monitor) => {\r\n const dropResult = monitor.getDropResult();\r\n if (item && dropResult && !isPlaced()) {\r\n toggleModal();\r\n }\r\n },\r\n collect: (monitor) => ({\r\n isDragging: monitor.isDragging(),\r\n }),\r\n });\r\n\r\n useEffect(() => {\r\n if (isDragging) {\r\n onHover();\r\n } else {\r\n onBlur();\r\n }\r\n }, [isDragging]);\r\n\r\n if (mode === 'add') {\r\n return (\r\n <>\r\n <div\r\n className={styles.btn}\r\n style={containerStyle}\r\n onClick={onClick}\r\n >\r\n <div\r\n className={styles.container}\r\n ref={ref}\r\n >\r\n <div className={styles.box}>\r\n <img className={styles.add} src=\"./icons/plus.svg\" alt=\"\" />\r\n </div>\r\n <div className={styles.button} onClick={onHover}>\r\n <h1 className={styles.label}>{label}</h1>\r\n </div>\r\n </div>\r\n </div>\r\n <ModalOnDropItem\r\n visible={showModal}\r\n onSuccess={placeItem}\r\n onDismiss={toggleModal}\r\n item={findThisItem()}\r\n />\r\n </>\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n <DragPreviewImage connect={preview} src={`./item/${selector}.png`} />\r\n <div\r\n ref={drag}\r\n className={styles.icon}\r\n style={containerStyle}\r\n >\r\n <div\r\n className={styles.container}\r\n onFocus={onHover}\r\n onMouseOver={onHover}\r\n onBlur={onBlur}\r\n onMouseLeave={onBlur}\r\n onDoubleClick={() => {\r\n if (isPlaced()) {\r\n editItem();\r\n } else {\r\n setShowModal(true);\r\n }\r\n }}\r\n ref={ref}\r\n >\r\n <div className={styles.box}>\r\n <img src={`./icons/${icon}.png`} alt=\"\" />\r\n </div>\r\n <div className={styles.button} onClick={onHover}>\r\n <h1 className={styles.label}>{label}</h1>\r\n </div>\r\n </div>\r\n </div>\r\n <ModalOnDropItem\r\n visible={showModal}\r\n onSuccess={placeItem}\r\n onDismiss={toggleModal}\r\n item={findThisItem()}\r\n />\r\n <ModalOnDropItem\r\n visible={showModalEdit}\r\n onDismiss={toggleModalEdit}\r\n onSuccess={toggleModalEdit}\r\n item={itemToEdit}\r\n mode=\"edit\"\r\n />\r\n </>\r\n );\r\n});\r\n\r\nSidebarItem.defaultProps = {\r\n label: '',\r\n containerStyle: {},\r\n mode: 'standard',\r\n onClick: () => { },\r\n};\r\n\r\nSidebarItem.propTypes = {\r\n icon: PropTypes.string.isRequired,\r\n selector: PropTypes.string.isRequired,\r\n label: PropTypes.string,\r\n containerStyle: PropTypes.any,\r\n mode: PropTypes.oneOf(['standard', 'add']),\r\n onClick: PropTypes.func,\r\n};\r\n\r\nexport default SidebarItem;\r\n","/* eslint-disable import/no-cycle */\r\nimport Axios from 'axios';\r\n\r\nexport const BASE_URL = process.env.REACT_APP_API_URL;\r\n\r\nconst Headers = {\r\n 'content-type': 'application/json',\r\n};\r\n\r\nexport default {\r\n get: async (url) => Axios.get(BASE_URL + url, { headers: Headers }),\r\n\r\n post: async (url, obj) => Axios.post(BASE_URL + url, obj, { headers: Headers }),\r\n\r\n put: async (url, obj) => Axios.put(BASE_URL + url, obj, { headers: Headers }),\r\n\r\n delete: async (url) => Axios.delete(BASE_URL + url, { headers: Headers }),\r\n};\r\n","import Api from '.';\r\n\r\nexport async function getAparelhos() {\r\n const aparelhos = await Api.get('/simulador/buscarAparelhoSimulador');\r\n return aparelhos;\r\n}\r\n\r\nexport async function postAparelho(aparelho) {\r\n const res = await Api.post('/simulador/criarAparelho', aparelho);\r\n return res;\r\n}\r\n\r\nexport async function putAparelho(aparelho) {\r\n const res = await Api.put('/simulador/editarAparelho', aparelho);\r\n return res;\r\n}\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Formik, Form } from 'formik';\r\nimport { useDispatch } from 'react-redux';\r\nimport * as Yup from 'yup';\r\nimport CustomInput from '../CustomInput';\r\nimport ModalAlert from '../ModalAlert';\r\nimport { addItemToReport, removeItemFromReport, editItemFromReport } from '../../redux/actions/reportActions';\r\nimport { addItem, editItem, removeItem } from '../../redux/actions/itemActions';\r\nimport * as UsageUtils from '../../common/utils/usage';\r\nimport useMetrics from '../../common/hooks/useMetrics';\r\nimport styles from './ModalAddItem.module.scss';\r\nimport * as AparelhoService from '../../common/services/api/aparelhos';\r\n\r\nconst SignupSchema = Yup.object().shape({\r\n rep_quantity: Yup.number().min(1).required('Quantidade obrigatória!'),\r\n rep_power: Yup.number().min(1).required('Potência é obrigatória!'),\r\n rep_useTime: Yup.number().min(1).required('Tempo de uso é obrigatório!'),\r\n tx_nome: Yup.string().min(1).max(50).required('Nome é obrigatório'),\r\n});\r\n\r\nfunction getSelector() { return `sp${Math.random().toString(36).substr(2, 9)}`; }\r\n\r\nfunction ModalAddItem({\r\n visible, item, mode, onDismiss, onSuccess,\r\n}) {\r\n const [showModal, setShowModal] = useState(false);\r\n const dispatch = useDispatch();\r\n const { findMetric, getMetrics, findByName } = useMetrics();\r\n\r\n function submit(formValues) {\r\n try {\r\n const usage = UsageUtils.calcUsage(formValues.rep_power * formValues.rep_quantity,\r\n formValues.rep_useTime, findByName(formValues.rep_useType).id_medida);\r\n\r\n const obj = {\r\n ...item,\r\n ...formValues,\r\n id_aparelho: item.id_aparelho || getSelector(),\r\n tx_selector: item.tx_selector || getSelector(),\r\n is_local_item: true,\r\n rep_usage: usage,\r\n id_medida: findByName(formValues.rep_useType).id_medida,\r\n id_tipoAparelho: 2,\r\n // rep_cost: calculateCost(usage),\r\n };\r\n\r\n const body = {\r\n tx_nome: obj.tx_nome,\r\n tx_selector: obj.tx_selector,\r\n b_ativo: false,\r\n nu_potencia_sugerida: obj.rep_power,\r\n nu_tempo_sugerido: obj.rep_useTime,\r\n id_medida: obj.id_medida,\r\n id_ambiente: obj.id_ambiente,\r\n id_tipo: 2,\r\n id_aparelho: item.id_aparelho,\r\n };\r\n\r\n if (mode === 'add') {\r\n AparelhoService.postAparelho(body).then((res) => {\r\n const id = res.data.data;\r\n obj.id_aparelho = id;\r\n dispatch(addItem(obj));\r\n dispatch(addItemToReport(obj));\r\n });\r\n } else {\r\n AparelhoService.putAparelho(body).then(() => {\r\n dispatch(editItem(obj));\r\n dispatch(editItemFromReport(obj));\r\n });\r\n }\r\n onSuccess();\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n\r\n const remove = () => {\r\n dispatch(removeItemFromReport(item.tx_selector));\r\n dispatch(removeItem(item.tx_selector));\r\n onSuccess();\r\n };\r\n\r\n const toggleModal = () => {\r\n setShowModal(!showModal);\r\n };\r\n\r\n function getInitialValues() {\r\n return mode === 'add' ? {\r\n tx_nome: '',\r\n rep_quantity: 1,\r\n rep_useTime: parseInt(item.nu_tempo_sugerido, 10) || 1,\r\n rep_power: parseInt(item.nu_potencia_sugerida, 10) || 1,\r\n rep_useType: findMetric(item.id_medida),\r\n rep_suggested: undefined,\r\n }\r\n : {\r\n tx_nome: item.tx_nome || '',\r\n rep_quantity: item.rep_quantity || 1,\r\n rep_useTime: item.rep_useTime || '',\r\n rep_power: item.rep_power || '',\r\n rep_useType: findMetric(item.id_medida),\r\n rep_suggested: undefined,\r\n };\r\n }\r\n\r\n if (!visible) return <></>;\r\n\r\n return (\r\n <>\r\n <div className={visible ? styles.modal : styles.hidden}>\r\n <div className={styles.close} onClick={onDismiss} />\r\n <div className={styles.container}>\r\n <div className={styles.box}>\r\n <img\r\n className={styles.icon}\r\n src=\"./icons/plus.svg\"\r\n alt=\"\"\r\n />\r\n </div>\r\n <div className={styles.textBox}>\r\n <h1 className={styles.name}>{mode === 'add' ? 'NOVO ITEM' : 'EDITAR ITEM'}</h1>\r\n </div>\r\n <Formik\r\n initialValues={getInitialValues()}\r\n validationSchema={SignupSchema}\r\n onSubmit={submit}\r\n >\r\n {({ setFieldValue, errors, touched }) => (\r\n <Form className={styles.formItems}>\r\n <CustomInput\r\n size=\"large\"\r\n label=\"NOME\"\r\n type=\"text\"\r\n name=\"tx_nome\"\r\n autoComplete=\"off\"\r\n maxLength={20}\r\n errorVisible={errors.tx_nome && touched.tx_nome}\r\n />\r\n <CustomInput\r\n size=\"large\"\r\n label=\"QUANTIDADE\"\r\n type=\"number\"\r\n name=\"rep_quantity\"\r\n autoComplete=\"off\"\r\n min={1}\r\n max={9999999}\r\n errorVisible={errors.rep_quantity && touched.rep_quantity}\r\n />\r\n <CustomInput\r\n size=\"medium\"\r\n label=\"TEMPO DE USO\"\r\n type=\"number\"\r\n name=\"rep_useTime\"\r\n autoComplete=\"off\"\r\n min={1}\r\n errorVisible={errors.rep_useTime && touched.rep_useTime}\r\n />\r\n <CustomInput\r\n size=\"small\"\r\n type=\"text\"\r\n name=\"rep_useType\"\r\n autoComplete=\"off\"\r\n dropdown\r\n dropdownData={getMetrics().map((metr) => ({ key: metr.id_medida, value: metr.tx_nome }))}\r\n disabled\r\n setValue={(obj) => {\r\n setFieldValue('rep_useType', obj.value);\r\n }}\r\n />\r\n <CustomInput\r\n size=\"especial\"\r\n label=\"POTÊNCIA (WATT)\"\r\n type=\"number\"\r\n name=\"rep_power\"\r\n autoComplete=\"off\"\r\n min={1}\r\n errorVisible={errors.rep_power && touched.rep_power}\r\n />\r\n <div className={styles.help}>\r\n <p>?</p>\r\n <div className={styles.snip}>\r\n <p>A potência sugerida é uma média, você pode verificar no seu aparelho qual é a potência real.</p>\r\n </div>\r\n </div>\r\n {mode === 'add' ? (\r\n <button className={styles.submit} type=\"submit\">\r\n ADICIONAR\r\n </button>\r\n )\r\n : (\r\n <div className={styles.editContainer}>\r\n <button\r\n className={styles.save}\r\n type=\"submit\"\r\n >\r\n SALVAR\r\n </button>\r\n <button\r\n className={styles.remove}\r\n type=\"button\"\r\n onClick={toggleModal}\r\n >\r\n EXCLUIR\r\n </button>\r\n </div>\r\n )}\r\n </Form>\r\n )}\r\n </Formik>\r\n </div>\r\n </div>\r\n <div className={visible ? styles.opaque : styles.hidden} />\r\n <ModalAlert\r\n visible={showModal}\r\n title=\"EXCLUIR EQUIPAMENTO!\"\r\n subtitle={`Deseja realmente excluir o equipamento: ${item.tx_nome}`}\r\n onDismiss={toggleModal}\r\n onReject={toggleModal}\r\n onConfirm={() => {\r\n remove();\r\n toggleModal();\r\n }}\r\n />\r\n </>\r\n );\r\n}\r\n\r\nModalAddItem.defaultProps = {\r\n visible: false,\r\n item: {\r\n selector: '__novoitem__',\r\n nome: 'Novo item',\r\n },\r\n onDismiss: () => { },\r\n onSuccess: () => { },\r\n mode: 'add',\r\n};\r\n\r\nModalAddItem.propTypes = {\r\n visible: PropTypes.bool,\r\n onDismiss: PropTypes.func,\r\n onSuccess: PropTypes.func,\r\n mode: PropTypes.string,\r\n item: PropTypes.any,\r\n};\r\n\r\nexport default ModalAddItem;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\nimport styles from './Sidebar.module.scss';\r\nimport SidebarItem from '../SidebarItem';\r\nimport ModalAddItem from '../ModalAddItem';\r\n\r\nfunction validateName(name) {\r\n return name.toUpperCase();\r\n}\r\n\r\nconst DIRECTION = {\r\n TOP: 'TOP',\r\n DOWN: 'DOWN',\r\n};\r\n\r\nfunction Sidebar({ place, collapsible }) {\r\n const data = useSelector((store) => store.items.filter((i) => i.id_ambiente === place && !i.is_local_item));\r\n const sidebar = useSelector((store) => store.sidebar);\r\n const [currentPosition, setCurrentPosition] = useState(0);\r\n const [collapsed, setCollapsed] = useState(false);\r\n const [showModalAdd, setShowModalAdd] = useState(false);\r\n\r\n const refs = [...data, { selector: 'botao_novo_ref' }].reduce((acc, value, index) => {\r\n acc[index] = React.createRef();\r\n return acc;\r\n }, {});\r\n\r\n const handleClick = (direction) => {\r\n if (data.length < 6) return;\r\n let reference;\r\n if (direction === DIRECTION.TOP) {\r\n reference = refs[Math.max(currentPosition - 5, 0)];\r\n setCurrentPosition(Math.max(currentPosition - 5, 0));\r\n } else {\r\n reference = refs[Math.min(currentPosition + 5, data.length)];\r\n setCurrentPosition(Math.min(currentPosition + 5, data.length));\r\n }\r\n if (!reference) return;\r\n reference.current.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'nearest',\r\n inline: 'start',\r\n });\r\n };\r\n\r\n const collapse = () => {\r\n setCollapsed(!collapsed);\r\n };\r\n\r\n const toggleModal = () => {\r\n setShowModalAdd(!showModalAdd);\r\n };\r\n\r\n function isPlaced(selector) {\r\n if (!sidebar) return false;\r\n const side = sidebar.find((item) => item.tx_selector === selector);\r\n if (!side) return false;\r\n return side.placed;\r\n }\r\n\r\n if (!place || !data) return <></>;\r\n return (\r\n <div\r\n className={collapsed ? `${styles.default} ${styles.collapsed}` : styles.default}\r\n >\r\n {collapsible && (\r\n <button\r\n className={styles.toggle}\r\n type=\"button\"\r\n onClick={collapse}\r\n >\r\n <img className={styles.sideArrow} src={collapsed ? './interface/chevron_right.svg' : './interface/chevron_left.svg'} alt=\"\" />\r\n </button>\r\n )}\r\n <aside className={styles.sidebar}>\r\n <div\r\n className={styles.arrowUp}\r\n onClick={() => { handleClick(DIRECTION.TOP); }}\r\n style={{\r\n visibility: currentPosition < 5 ? 'hidden' : 'visible',\r\n }}\r\n />\r\n <div className={styles.itemsColumn}>\r\n {data && data.map((item, index) => (\r\n <SidebarItem\r\n icon={item.tx_selector || ''}\r\n label={validateName(item.tx_nome)}\r\n selector={item.tx_selector}\r\n key={`sidebar-item-${place}-${item.id_aparelho}`}\r\n ref={refs[index]}\r\n containerStyle={{\r\n filter: isPlaced(item.tx_selector) ? 'grayscale(1)' : 'none',\r\n }}\r\n />\r\n ))}\r\n <SidebarItem\r\n icon=\"\"\r\n label=\"ADICIONAR EQUIPAMENTO\"\r\n selector=\"__addsidebaritem__\"\r\n mode=\"add\"\r\n key={`sidebar-item-${place}-add`}\r\n ref={refs[data.length]}\r\n onClick={toggleModal}\r\n />\r\n </div>\r\n <div\r\n className={styles.arrowDown}\r\n onClick={() => { handleClick(DIRECTION.DOWN); }}\r\n style={{\r\n visibility: data.length < 5 || currentPosition === data.length - 1 ? 'hidden' : 'visible',\r\n }}\r\n />\r\n </aside>\r\n <ModalAddItem\r\n visible={showModalAdd}\r\n onDismiss={toggleModal}\r\n onSuccess={toggleModal}\r\n item={{\r\n id_ambiente: place,\r\n }}\r\n />\r\n </div>\r\n\r\n );\r\n}\r\n\r\nSidebar.defaultProps = {\r\n collapsible: false,\r\n};\r\n\r\nSidebar.propTypes = {\r\n place: PropTypes.number.isRequired,\r\n collapsible: PropTypes.bool,\r\n};\r\n\r\nexport default Sidebar;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDrop } from 'react-dnd';\r\nimport styles from './DropItem.module.scss';\r\n\r\nfunction DropItem({ selector, visible, placed }) {\r\n const [{ isOver }, drop] = useDrop({\r\n accept: selector,\r\n drop: () => ({ name: `${selector}-area` }),\r\n collect: (monitor) => ({\r\n isOver: monitor.isOver(),\r\n canDrop: monitor.canDrop(),\r\n }),\r\n });\r\n\r\n if (!visible) return <></>;\r\n return (\r\n <div\r\n className={styles.hlContainer}\r\n ref={drop}\r\n style={{\r\n zIndex: placed ? 21 : 60,\r\n }}\r\n >\r\n <img\r\n style={{\r\n zIndex: placed ? 21 : 60,\r\n opacity: placed ? 0.5 : 1,\r\n }}\r\n id={styles[selector]}\r\n src={`./hl/${selector}.png`}\r\n alt=\"\"\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nDropItem.defaultProps = {\r\n visible: true,\r\n placed: false,\r\n};\r\n\r\nDropItem.propTypes = {\r\n selector: PropTypes.string.isRequired,\r\n visible: PropTypes.bool,\r\n placed: PropTypes.bool,\r\n};\r\n\r\nexport default DropItem;\r\n","/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport styles from './SceneItem.module.scss';\r\n\r\nfunction SceneItem({ selector, visible, onClick }) {\r\n return (\r\n <>\r\n <img\r\n id={styles[selector]}\r\n className={visible ? styles.img : styles.hidden}\r\n src={`./item/${selector}.png`}\r\n alt=\"\"\r\n onClick={onClick}\r\n />\r\n </>\r\n );\r\n}\r\n\r\nSceneItem.defaultProps = {\r\n visible: false,\r\n onClick: () => { },\r\n};\r\n\r\nSceneItem.propTypes = {\r\n selector: PropTypes.string.isRequired,\r\n visible: PropTypes.bool,\r\n onClick: PropTypes.func,\r\n};\r\n\r\nexport default SceneItem;\r\n","/* eslint-disable import/no-cycle */\r\nimport React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport styles from './ButtonReturn.module.scss';\r\nimport { ROUTES } from '../../router/router';\r\n\r\nfunction ButtonReturn() {\r\n return (\r\n <Link\r\n className={styles.button}\r\n to={{\r\n pathname: ROUTES.LAUNCHER,\r\n state: { started: true, from: 'button_return' },\r\n }}\r\n >\r\n <h1 className={styles.text}>\r\n VOLTAR\r\n <br />\r\n PLANTA\r\n </h1>\r\n </Link>\r\n );\r\n}\r\n\r\nexport default ButtonReturn;\r\n","/* eslint-disable jsx-a11y/control-has-associated-label */\r\nimport React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport styles from './ModalOtherItems.module.scss';\r\nimport ModalAlert from '../ModalAlert';\r\nimport { removeItem } from '../../redux/actions/itemActions';\r\nimport { removeItemFromReport } from '../../redux/actions/reportActions';\r\nimport ModalAddItem from '../ModalAddItem';\r\nimport useCosts from '../../common/hooks/useCosts';\r\n\r\nfunction ModalOtherItems({ visible, place, onDismiss }) {\r\n const [showAlert, setShowAlert] = useState(false);\r\n const [showModal, setShowModal] = useState(false);\r\n const [data, setData] = useState([]);\r\n const [target, setTarget] = useState({});\r\n const report = useSelector((store) => store.report.filter((item) => item.is_local_item && item.id_ambiente === place));\r\n const dispatch = useDispatch();\r\n const { getTotalKw, calculateCost } = useCosts();\r\n\r\n const toggleAlert = () => {\r\n setShowAlert(!showAlert);\r\n };\r\n\r\n const toggleModal = () => {\r\n setShowModal(!showModal);\r\n };\r\n\r\n function remove(selector) {\r\n dispatch(removeItemFromReport(selector));\r\n dispatch(removeItem(selector));\r\n }\r\n\r\n function formatCost(value = 0) {\r\n return value.toLocaleString('pt-br', { style: 'currency', currency: 'BRL' });\r\n }\r\n\r\n React.useEffect(() => {\r\n if (!report) return;\r\n const total = getTotalKw();\r\n const calculado = report.map((item) => ({\r\n ...item,\r\n rep_cost: calculateCost(item.rep_usage, total),\r\n }));\r\n\r\n setTimeout(() => {\r\n setData(calculado);\r\n }, 100);\r\n }, [report]);\r\n\r\n if (!visible) return <></>;\r\n\r\n return (\r\n <div className={visible ? styles.container : styles.hidden}>\r\n <div\r\n className={styles.close}\r\n onClick={onDismiss}\r\n />\r\n <div className={styles.wrapper}>\r\n <h1 className={styles.title}>OUTROS EQUIPAMENTOS</h1>\r\n <div className={styles.box}>\r\n <table className={styles.table}>\r\n <thead>\r\n <tr>\r\n <th>Quantidade</th>\r\n <th>Descrição</th>\r\n <th>Uso diário</th>\r\n <th>KWh/mês</th>\r\n {/* <th>Custo/Mês</th> */}\r\n <th />\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {data && data.map((item) => (\r\n <tr key={`modal-other-${item.id_aparelho}`}>\r\n <td>{item.rep_quantity}</td>\r\n <td>{item.tx_nome}</td>\r\n <td>{`${item.rep_useTime} ${item.rep_useType}`}</td>\r\n <td>{item.rep_usage.toFixed(2)}</td>\r\n <td>{formatCost(item.rep_cost)}</td>\r\n <td className={styles.btns}>\r\n <div\r\n className={styles.edit}\r\n onClick={() => {\r\n setTarget(item);\r\n setTimeout(() => { toggleModal(); }, 100);\r\n }}\r\n />\r\n <div\r\n className={styles.delete}\r\n onClick={() => {\r\n setTarget(item);\r\n setTimeout(() => { setShowAlert(true); }, 100);\r\n }}\r\n />\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n <ModalAddItem\r\n visible={showModal}\r\n item={target}\r\n onDismiss={toggleModal}\r\n onSuccess={toggleModal}\r\n mode=\"edit\"\r\n />\r\n <ModalAlert\r\n visible={showAlert}\r\n title=\"EXCLUIR EQUIPAMENTO!\"\r\n subtitle={`Deseja realmente excluir o equipamento: ${target.tx_nome}`}\r\n onDismiss={toggleAlert}\r\n onReject={toggleAlert}\r\n onConfirm={() => {\r\n remove(target.tx_selector);\r\n toggleAlert();\r\n }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nModalOtherItems.defaultProps = {\r\n visible: false,\r\n place: 0,\r\n onDismiss: () => { },\r\n};\r\n\r\nModalOtherItems.propTypes = {\r\n visible: PropTypes.bool,\r\n place: PropTypes.number,\r\n onDismiss: PropTypes.func,\r\n};\r\n\r\nexport default React.memo(ModalOtherItems);\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\nimport RingLoader from 'react-spinners/RingLoader';\r\nimport { debounce } from 'lodash';\r\nimport BaseScene from '../BaseScene';\r\nimport Sidebar from '../Sidebar';\r\nimport DropItem from '../DropItem';\r\nimport SceneItem from '../SceneItem';\r\nimport ButtonReturn from '../ButtonReturn';\r\nimport ButtonYellow from '../ButtonYellow';\r\nimport EnergyMeter from '../EnergyMeter';\r\nimport ModalOtherItems from '../ModalOtherItems';\r\nimport styles from './Page.module.scss';\r\nimport ModalOnDropItem from '../ModalOnDropItem';\r\nimport ModalReportReview from '../ModalReportReview';\r\n\r\nfunction Page({ place }) {\r\n const items = useSelector((store) => store.items.filter((i) => i.id_ambiente === place && !i.is_local_item));\r\n const localItems = useSelector((store) => store.items.filter((i) => i.id_ambiente === place && i.is_local_item));\r\n const sidebar = useSelector((store) => store.sidebar);\r\n const report = useSelector((store) => store.report);\r\n const app = useSelector((store) => store.app);\r\n const [showModal, setShowModal] = useState(false);\r\n const [showModalEdit, setShowModalEdit] = useState(false);\r\n const [itemToEdit, setItemToEdit] = useState();\r\n const [loading, setLoading] = useState(true);\r\n\r\n function isHovered(selector) {\r\n if (!sidebar) return false;\r\n const side = sidebar.find((item) => item.tx_selector === selector);\r\n if (!side) return false;\r\n return side.hovered;\r\n }\r\n\r\n function isPlaced(selector) {\r\n if (!sidebar) return false;\r\n const side = sidebar.find((item) => item.tx_selector === selector);\r\n if (!side) return false;\r\n return side.placed;\r\n }\r\n\r\n const toggleModal = () => {\r\n setShowModal(!showModal);\r\n };\r\n\r\n const toggleModalEdit = () => {\r\n setShowModalEdit(!showModalEdit);\r\n };\r\n\r\n const editItem = (selector) => {\r\n const item = items.find((i) => i.tx_selector === selector);\r\n const rep = report.find((r) => r.tx_selector === selector);\r\n setItemToEdit({ ...item, ...rep });\r\n toggleModalEdit();\r\n };\r\n\r\n const finished = debounce(() => { setLoading(false); }, 1000);\r\n\r\n return (\r\n <>\r\n <div\r\n className={styles.container}\r\n style={{ opacity: loading ? 0 : 1 }}\r\n onLoad={finished}\r\n >\r\n {app.showHelp && <div className={styles.containerAjudaInicial}><p>Excelente! Agora clique em um equipamento da barra lateral e arraste para sua posição no cômodo e ao terminar, clique no relógio para ver o consumo total do cômodo.</p></div>}\r\n <Sidebar place={place} collapsible />\r\n <BaseScene source={`./scene/${place}.png`}>\r\n <div className={styles.meterContainer}>\r\n <EnergyMeter\r\n place={place}\r\n isGeneral={false}\r\n />\r\n </div>\r\n <div className={styles.itemsContainer}>\r\n {items && items.map((item) => (\r\n <DropItem\r\n key={`drop-${place}-${item.id_aparelho}`}\r\n selector={item.tx_selector}\r\n visible={isHovered(item.tx_selector)}\r\n placed={isPlaced(item.tx_selector)}\r\n />\r\n ))}\r\n {items && items.map((item) => (\r\n <SceneItem\r\n key={`item-${place}-${item.id_aparelho}`}\r\n selector={item.tx_selector}\r\n visible={isPlaced(item.tx_selector)}\r\n onClick={() => { editItem(item.tx_selector); }}\r\n />\r\n ))}\r\n </div>\r\n {localItems && localItems.length > 0 && !showModal && !showModalEdit && (\r\n <div className={styles.othersWrapper}>\r\n <ButtonYellow\r\n alternate\r\n text=\"OUTROS EQUIPAMENTOS\"\r\n onClick={toggleModal}\r\n />\r\n </div>\r\n )}\r\n <div className={styles.returnWrapper}>\r\n <ButtonReturn />\r\n </div>\r\n </BaseScene>\r\n <ModalOtherItems\r\n place={place}\r\n visible={showModal}\r\n onDismiss={toggleModal}\r\n />\r\n <ModalOnDropItem\r\n visible={showModalEdit}\r\n onDismiss={toggleModalEdit}\r\n onSuccess={toggleModalEdit}\r\n item={itemToEdit}\r\n mode=\"edit\"\r\n />\r\n </div>\r\n <div\r\n className={styles.loadingContainer}\r\n style={{\r\n display: loading ? 'flex' : 'none',\r\n }}\r\n >\r\n <RingLoader\r\n size={100}\r\n loading={loading}\r\n color=\"#da9703\"\r\n />\r\n {/* <h1>Carregando</h1> */}\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nPage.propTypes = {\r\n place: PropTypes.number.isRequired,\r\n};\r\n\r\nexport default Page;\r\n","import React from 'react';\r\nimport Page from '../../components/Page';\r\nimport { Ambiente } from '../../common/data/types';\r\n\r\nfunction Bathroom() {\r\n return <Page place={Ambiente.BANHEIRO} />;\r\n}\r\n\r\nexport default Bathroom;\r\n","import React from 'react';\r\nimport { Ambiente } from '../../common/data/types';\r\nimport Page from '../../components/Page';\r\n\r\nfunction LivingRoom() {\r\n return <Page place={Ambiente.SALA} />;\r\n}\r\n\r\nexport default LivingRoom;\r\n","import React from 'react';\r\nimport { Ambiente } from '../../common/data/types';\r\nimport Page from '../../components/Page';\r\n\r\nfunction Kitchen() {\r\n return <Page place={Ambiente.COZINHA} />;\r\n}\r\n\r\nexport default Kitchen;\r\n","import React from 'react';\r\nimport { Ambiente } from '../../common/data/types';\r\nimport Page from '../../components/Page';\r\n\r\nfunction Office() {\r\n return <Page place={Ambiente.ESCRITORIO} />;\r\n}\r\n\r\nexport default Office;\r\n","import React from 'react';\r\nimport { Ambiente } from '../../common/data/types';\r\nimport Page from '../../components/Page';\r\n\r\nfunction Bedroom() {\r\n return <Page place={Ambiente.QUARTO} />;\r\n}\r\n\r\nexport default Bedroom;\r\n","import React from 'react';\r\nimport { Ambiente } from '../../common/data/types';\r\nimport Page from '../../components/Page';\r\n\r\nfunction Laundry() {\r\n return <Page place={Ambiente.LAVANDERIA} />;\r\n}\r\n\r\nexport default Laundry;\r\n","import React from 'react';\r\nimport { Ambiente } from '../../common/data/types';\r\nimport Page from '../../components/Page';\r\n\r\nfunction Garage() {\r\n return <Page place={Ambiente.GARAGEM} />;\r\n}\r\n\r\nexport default Garage;\r\n","import React from 'react';\r\nimport { Ambiente } from '../../common/data/types';\r\nimport Page from '../../components/Page';\r\n\r\nfunction ExternalArea() {\r\n return <Page place={Ambiente.AREA_EXTERNA} />;\r\n}\r\n\r\nexport default ExternalArea;\r\n","/* eslint-disable import/no-cycle */\r\nimport React from 'react';\r\nimport {\r\n BrowserRouter, Switch, Route,\r\n} from 'react-router-dom';\r\nimport { BASE_URL } from '../common/utils/global';\r\nimport Launcher from '../pages/Launcher';\r\nimport Bathroom from '../pages/Bathroom';\r\nimport LivingRoom from '../pages/LivingRoom';\r\nimport Kitchen from '../pages/Kitchen';\r\nimport Office from '../pages/Office';\r\nimport Bedroom from '../pages/Bedroom';\r\nimport Laundry from '../pages/Laundry';\r\nimport Garage from '../pages/Garage';\r\nimport ExternalArea from '../pages/ExternalArea';\r\n\r\nexport const ROUTES = {\r\n LAUNCHER: BASE_URL || '/',\r\n BATHROOM: `${BASE_URL}/banheiro`,\r\n LIVING_ROOM: `${BASE_URL}/sala`,\r\n KITCHEN: `${BASE_URL}/cozinha`,\r\n OFFICE: `${BASE_URL}/escritorio`,\r\n BEDROOM: `${BASE_URL}/quarto`,\r\n LAUNDRY: `${BASE_URL}/lavanderia`,\r\n GARAGE: `${BASE_URL}/garagem`,\r\n EXTERNAL: `${BASE_URL}/area-externa`,\r\n};\r\n\r\nexport default function Router() {\r\n return (\r\n <BrowserRouter baseName={BASE_URL}>\r\n <Switch>\r\n <Route exact path={ROUTES.LAUNCHER} component={Launcher} />\r\n <Route path={ROUTES.BATHROOM} component={Bathroom} />\r\n <Route path={ROUTES.LIVING_ROOM} component={LivingRoom} />\r\n <Route path={ROUTES.KITCHEN} component={Kitchen} />\r\n <Route path={ROUTES.OFFICE} component={Office} />\r\n <Route path={ROUTES.BEDROOM} component={Bedroom} />\r\n <Route path={ROUTES.LAUNDRY} component={Laundry} />\r\n <Route path={ROUTES.GARAGE} component={Garage} />\r\n <Route path={ROUTES.EXTERNAL} component={ExternalArea} />\r\n </Switch>\r\n </BrowserRouter>\r\n );\r\n}\r\n","import Api from '.';\r\n\r\nexport async function getMedidas() {\r\n const medidas = await Api.get('/simulador/buscarMedidas');\r\n return medidas;\r\n}\r\n","import Api from '.';\r\n\r\nexport async function getTaxas() {\r\n const taxas = await Api.get('/simulador/buscarTaxasAtivas');\r\n return taxas;\r\n}\r\n","import Api from '.';\r\n\r\nexport async function getAmbientes() {\r\n const amb = await Api.get('/simulador/buscarAmbientes');\r\n return amb;\r\n}\r\n","/* eslint-disable no-new */\r\nimport React from 'react';\r\nimport RingLoader from 'react-spinners/RingLoader';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\nimport { storeItems } from '../../redux/actions/itemActions';\r\nimport styles from './GameContainer.module.scss';\r\nimport * as AparelhoService from '../../common/services/api/aparelhos';\r\nimport * as MedidasService from '../../common/services/api/medidas';\r\nimport * as TaxaService from '../../common/services/api/taxas';\r\nimport * as AmbienteService from '../../common/services/api/ambientes';\r\nimport { setAppState, setCurrentFlag } from '../../redux/actions/appActions';\r\nimport { setTaxes } from '../../redux/actions/taxActions';\r\nimport { TipoTaxa } from '../../common/data/types';\r\n// import { CasaPadraoIds } from '../../common/data/types';\r\n// import * as UsageUtils from '../../common/utils/usage';\r\n\r\nfunction GameContainer({ children }) {\r\n const [loading, setLoading] = React.useState(true);\r\n const dispatch = useDispatch();\r\n\r\n React.useEffect(() => {\r\n const items = [];\r\n // let tempMetrics = [];\r\n const notify = (item) => {\r\n items.push(item);\r\n if (items.includes('items') && items.includes('medidas') && items.includes('taxas') && items.includes('ambientes')) {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n console.log('Starting simulator... ', process.env.NODE_ENV);\r\n\r\n if (process.env.NODE_ENV === 'development') {\r\n document.querySelector('#root').style.backgroundColor = '#999';\r\n }\r\n\r\n MedidasService.getMedidas().then((res) => {\r\n const mdd = res.data.data;\r\n dispatch(setAppState({ metrics: mdd }));\r\n }).finally(() => {\r\n notify('medidas');\r\n });\r\n\r\n setTimeout(() => {\r\n TaxaService.getTaxas().then((res) => {\r\n const tx = res.data.data;\r\n dispatch(setTaxes(tx));\r\n const flag = tx.find((t) => t.id_tipoTaxa === TipoTaxa.BANDEIRA);\r\n dispatch(setCurrentFlag(flag));\r\n }).finally(() => {\r\n notify('taxas');\r\n });\r\n }, 250);\r\n\r\n setTimeout(() => {\r\n AmbienteService.getAmbientes().then((res) => {\r\n const amb = res.data.data;\r\n dispatch(setAppState({ places: amb }));\r\n }).finally(() => {\r\n notify('ambientes');\r\n });\r\n }, 500);\r\n\r\n setTimeout(() => {\r\n AparelhoService.getAparelhos().then((res) => {\r\n const aprs = res.data.data;\r\n dispatch(storeItems(aprs));\r\n // const casaPadrao = aprs.filter((item) => CasaPadraoIds.includes(item.id_aparelho));\r\n // const temp = createReport(casaPadrao);\r\n // dispatch(setAppState({ casaPadrao: temp }));\r\n }).finally(() => {\r\n notify('items');\r\n });\r\n }, 750);\r\n }, []);\r\n\r\n return (\r\n <>\r\n {loading\r\n ? (\r\n <div\r\n className={styles.default}\r\n style={{\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n }}\r\n >\r\n <RingLoader\r\n size={100}\r\n loading={loading}\r\n color=\"#da9703\"\r\n />\r\n </div>\r\n )\r\n : (\r\n <div className={styles.default}>\r\n {children}\r\n </div>\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nGameContainer.propTypes = {\r\n children: PropTypes.element.isRequired,\r\n};\r\n\r\nexport default GameContainer;\r\n","import 'react-app-polyfill/ie11';\r\nimport 'react-app-polyfill/stable';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { DndProvider } from 'react-dnd';\r\nimport { HTML5Backend } from 'react-dnd-html5-backend';\r\nimport { TouchBackend } from 'react-dnd-touch-backend';\r\nimport { isMobile } from 'react-device-detect';\r\nimport '../node_modules/animate.css/animate.min.css';\r\nimport { Provider } from 'react-redux';\r\nimport store from './redux/store';\r\nimport Router from './router/router';\r\nimport GameContainer from './components/GameContainer';\r\nimport './common/styles/global.scss';\r\n\r\nReactDOM.render(\r\n <React.StrictMode>\r\n <Provider store={store}>\r\n <DndProvider backend={isMobile ? TouchBackend : HTML5Backend}>\r\n <GameContainer>\r\n <Router />\r\n </GameContainer>\r\n </DndProvider>\r\n </Provider>\r\n </React.StrictMode>,\r\n document.getElementById('root'),\r\n);\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"bordaCorretiva\":\"Carousel_bordaCorretiva__12meT\",\"arrowPrev\":\"Carousel_arrowPrev__3CS6g\",\"arrowNext\":\"Carousel_arrowNext__wEJ1m\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sidebar\":\"Sidebar_sidebar__2_KtR\",\"arrowUp\":\"Sidebar_arrowUp__nMWKF\",\"arrowDown\":\"Sidebar_arrowDown__2Xxgk\",\"default\":\"Sidebar_default__3dyMT\",\"collapsed\":\"Sidebar_collapsed__fuZvN\",\"itemsColumn\":\"Sidebar_itemsColumn__3HP9R\",\"toggle\":\"Sidebar_toggle__3jXqR\",\"sideArrow\":\"Sidebar_sideArrow__3fK-F\"};"],"sourceRoot":""}