{"version":3,"sources":["imgs/logo-enrg-white.svg","store/creators/Shared.js","store/reducers/Login.js","store/reducers/Users.js","services/CalendarHandler.js","store/reducers/Energy.js","store/reducers/Invoices.js","store/reducers/Pays.js","store/reducers/Services.js","store/reducers/Accounts.js","store/reducers/Shared.js","store/reducers/Plus.js","store/reducers/Genius.js","store/reducers/Notifications.js","store/reducers/Alerts.js","store/reducers/Chatbot.js","utils/enums.js","store/reducers/Theme.js","store/Store.js","store/creators/Login.js","store/creators/Users.js","store/creators/Energy.js","store/creators/Services.js","store/creators/Invoices.js","store/creators/Pays.js","store/creators/Accounts.js","store/creators/Plus.js","store/creators/Genius.js","store/creators/Notifications.js","store/creators/Alerts.js","store/creators/Chatbot.js","store/creators/Theme.js","services/WebServices.js","store/actions/Users.js","store/actions/Accounts.js","language/es.js","store/actions/Shared.js","store/actions/Login.js","store/actions/Services.js","store/actions/Notifications.js","store/actions/Theme.js","components/shared/utilities/Input.js","components/shared/utilities/BackButton.js","components/shared/utilities/MultipleSelect.js","components/shared/Support.js","components/shared/WalletCard.js","components/shared/Neugets.js","store/actions/Alerts.js","components/notifications/PopoverNotifications.js","components/notifications/NotificationBox.js","services/NotificationsHandler.js","components/shared/utilities/CheckPicker.js","components/alerts/IntervalTime.js","components/alerts/NewAlert.js","components/notifications/Notifications.js","store/actions/Chatbot.js","components/genius/TextTooltip.js","components/shared/utilities/ButtonCircle.js","components/energy/services/ServicesPopover.js","components/shared/ChatPopover.js","components/shared/Chatbot.js","components/shared/Header.js","components/shared/utilities/Select.js","components/users/ModalSuccess.js","components/shared/utilities/InputRounded.js","components/users/ModalService.js","components/users/NewUser.js","components/users/UpdateService.js","components/users/UserTable.js","components/users/UserPagination.js","components/users/Users.js","store/actions/Invoices.js","store/actions/Energy.js","components/shared/utilities/useWindowSize.js","components/energy/cards/Cards.js","components/energy/graphs/SubMenuGraphs.js","services/GraphsHandler.js","components/energy/graphs/GraphTypePicker.js","components/genius/ExtraItemsPopover.js","components/energy/graphs/GraphPeriodPicker.js","components/energy/graphs/GraphIndicators.js","components/shared/utilities/CalendarGraphEnergy.js","components/energy/graphs/ExportGraph.js","components/shared/svgs/GraphStyles.js","components/onboarding/utils/StepProgressBar.js","components/onboarding/utils/TooltipCustom.js","components/onboarding/hook/useTour.js","components/onboarding/utils/ThemedImage.js","components/onboarding/steps/GraphTypeSteps.js","components/onboarding/steps/GraphPeriodSteps.js","components/onboarding/steps/GraphCalendarSteps.js","components/onboarding/steps/GraphExportDataSteps.js","components/energy/graphs/Graph.js","components/energy/invoice/Invoice.js","components/energy/services/ActiveServices.js","components/shared/utilities/Table.js","components/shared/users/Users.js","components/shared/users/UserCreate.js","components/energy/services/ServicesContainer.js","components/onboarding/steps/ServiceSteps.js","components/energy/Energy.js","components/menu/User.js","components/menu/DynamicMenu.js","components/menu/RoleSelection.js","components/menu/Menu.js","components/shared/utilities/Tooltip.js","components/invoices/InvoiceDetails.js","components/invoices/InvoiceModal.js","components/invoices/InvoiceTable.js","components/invoices/InvoiceSummary.js","components/invoices/account/AccountDrawer.js","store/actions/Pays.js","components/invoices/pay/PaymentMethod.js","components/invoices/pay/CardPayment.js","components/invoices/pay/PsePayment.js","components/invoices/pay/Pay.js","components/shared/utilities/CalendarInvoices.js","components/invoices/Invoices.js","components/onboarding/steps/InvoiceSteps.js","components/onboarding/steps/UserSteps.js","components/shared/Account.js","store/actions/Plus.js","components/plus/dashboard/graphs/GraphPicker.js","components/plus/dashboard/tags/CreateDevice.js","components/plus/dashboard/tags/CreateTag.js","components/plus/dashboard/export/ExportGraph.js","components/plus/dashboard/graphs/Graph.js","components/plus/dashboard/cards/Cards.js","components/plus/dashboard/modules/Radar.js","components/plus/dashboard/modules/AlwaysOn.js","components/plus/dashboard/modules/Rank.js","components/shared/Services.js","components/plus/dashboard/shared/ServicesContainer.js","components/plus/Plus.js","components/efficiency/Efficiency.js","components/plus/dashboard/tags/GraphPower.js","components/plus/dashboard/tags/TagManager.js","store/actions/Genius.js","components/genius/ActiveReports.js","components/genius/SubMenu.js","components/genius/Picker.js","components/genius/ExportReport.js","components/shared/utilities/CalendarRangePicker.js","components/shared/utilities/MonthYearPicker.js","components/genius/Genius.js","components/plus/dashboard/alwayson/graph/GraphPeriodPicker.js","components/shared/utilities/Calendar.js","components/plus/dashboard/alwayson/graph/Graph.js","components/plus/dashboard/alwayson/Cards.js","components/plus/dashboard/alwayson/AlwaysOn.js","components/plus/dashboard/quality/Graphs.js","components/plus/dashboard/quality/PowerFactor.js","components/plus/dashboard/quality/QualityEnergy.js","components/onboarding/utils/AnimatedComponent.js","components/onboarding/steps/DashboardSteps.js","components/dashboard/Dashboard.js","components/preonboarding/Preonboarding.js","components/onboarding/OnboardingModal.js","components/shared/utilities/RateNumber.js","components/nps/PopUpScore.js","components/nps/NpsSurvey.js","components/volt/Volt.js","components/analytics/Analytics.js","components/equote/Equote.js","components/onboarding/IncompleteUserInfoModal.js","components/alerts/PopoverAlerts.js","components/alerts/DeleteAlertModal.js","components/alerts/Alerts.js","components/shared/LumiBanner.js","components/onboarding/OnboardingSections.js","components/onboarding/steps/ProfileSteps.js","components/onboarding/steps/WalktroughSteps.js","components/shared/svgs/Gradients.js","components/Main.js","components/onboarding/steps/AlertSteps.js","components/login/Login.js","components/invoices/pay/paid/PaidStatus.js","components/invoices/pay/paid/Paid.js","components/shared/MobileScreen.js","components/onboarding/Onboarding.js","App.js","index.js","imgs/empty-data-device.svg","imgs/empty-data-device-light.svg","imgs/empty-modules-plus.svg","imgs/logo-enrg-light.svg","imgs/logo-enrg-dark.svg","imgs/empty_state_alerts.svg","imgs/empty-users.svg","imgs/empty-user-light.svg","imgs/empty-widgets-slider.svg","imgs/empty-graph-energy.svg","imgs/pse-logo-dark.svg","imgs/pse-logo-light.svg","imgs/empty-modules-plus-light.svg","imgs/logo-erco-black.svg","imgs sync /^/logo/-enrg/-.*/.svg$","files/TyC+PLAN+DE+REFERIDOS+.pdf","imgs/empty-data-notifications.svg","imgs/empty-data-notifications-light.svg","imgs/LUMI.png","imgs/empty-graph-energy-light.svg","imgs/empty-card-bill.svg","imgs/jeh-signature.png","imgs/pse_bg_blue.svg","imgs/visa_bg_blue.svg","imgs/mastercadr_bg_black.svg","imgs/american_express.svg","imgs/vigilado_superservicios.svg","imgs/visa-logo-dark.svg","imgs/visa-logo-light.svg","imgs/box.svg","imgs/empty_widgets_slider_light.svg","imgs/empty-data-tag.svg","imgs/empty-data-tag-light.svg","imgs/empty_state_genius_dark.svg","imgs/empty_state_genius_light.svg","imgs/erco-computer.png","imgs/erco-generation.png","imgs/erco-efficiency.png","imgs/erco-screen.png","imgs/hand-with-phone.png","imgs/consumption-info.png","imgs/energy-receipt.png","imgs/steps.png","imgs/left-chat.png","imgs/right-chat.png","imgs/incomplete_user_info_finished_dark.svg","imgs/incomplete_user_info_finished_light.svg","imgs/empty_state_alerts_light.svg","imgs/app-store.svg","imgs/play-store.svg","imgs/onboarding sync /^/.*$","imgs/onboarding/dark/en/step1-alerts.png","imgs/onboarding/dark/en/step1-graph-period.png","imgs/onboarding/dark/en/step1-graph-type.png","imgs/onboarding/dark/en/step1-invoices.png","imgs/onboarding/dark/en/step1-profile.png","imgs/onboarding/dark/en/step1-walktrough.png","imgs/onboarding/dark/en/step2-alerts.png","imgs/onboarding/dark/en/step2-graph-type.png","imgs/onboarding/dark/en/step2-invoices.png","imgs/onboarding/dark/en/step2-service-detail.png","imgs/onboarding/dark/en/step3-alerts.png","imgs/onboarding/dark/en/step4-alerts.png","imgs/onboarding/dark/en/step4-invoices.png","imgs/onboarding/dark/en/step4-profile.png","imgs/onboarding/dark/es/step1-alerts.png","imgs/onboarding/dark/es/step1-dashboard.png","imgs/onboarding/dark/es/step1-graph-period.png","imgs/onboarding/dark/es/step1-graph-type.png","imgs/onboarding/dark/es/step1-invoices.png","imgs/onboarding/dark/es/step1-profile.png","imgs/onboarding/dark/es/step1-walktrough.png","imgs/onboarding/dark/es/step2-alerts.png","imgs/onboarding/dark/es/step2-graph-type.png","imgs/onboarding/dark/es/step2-invoices.png","imgs/onboarding/dark/es/step2-service-detail.png","imgs/onboarding/dark/es/step3-alerts.png","imgs/onboarding/dark/es/step3-invoices.png","imgs/onboarding/dark/es/step4-alerts.png","imgs/onboarding/dark/es/step4-invoices.png","imgs/onboarding/dark/es/step4-profile.png","imgs/onboarding/light/en/step1-alerts.png","imgs/onboarding/light/en/step1-graph-period.png","imgs/onboarding/light/en/step1-graph-type.png","imgs/onboarding/light/en/step1-invoices.png","imgs/onboarding/light/en/step1-profile.png","imgs/onboarding/light/en/step1-walktrough.png","imgs/onboarding/light/en/step2-alerts.png","imgs/onboarding/light/en/step2-graph-type.png","imgs/onboarding/light/en/step2-invoices.png","imgs/onboarding/light/en/step2-service-detail.png","imgs/onboarding/light/en/step3-alerts.png","imgs/onboarding/light/en/step4-alerts.png","imgs/onboarding/light/en/step4-invoices.png","imgs/onboarding/light/en/step4-profile.png","imgs/onboarding/light/es/step1-alerts.png","imgs/onboarding/light/es/step1-dashboard.png","imgs/onboarding/light/es/step1-graph-period.png","imgs/onboarding/light/es/step1-graph-type.png","imgs/onboarding/light/es/step1-invoices.png","imgs/onboarding/light/es/step1-profile.png","imgs/onboarding/light/es/step1-walktrough.png","imgs/onboarding/light/es/step2-alerts.png","imgs/onboarding/light/es/step2-graph-type.png","imgs/onboarding/light/es/step2-invoices.png","imgs/onboarding/light/es/step2-service-detail.png","imgs/onboarding/light/es/step3-alerts.png","imgs/onboarding/light/es/step3-invoices.png","imgs/onboarding/light/es/step4-alerts.png","imgs/onboarding/light/es/step4-invoices.png","imgs/onboarding/light/es/step4-profile.png"],"names":["module","exports","initialState","step","loading","resending","counter","codeTries","user","profileProgress","savingInfoUser","userAccessEdit","showCreateUserModal","showUsersListModal","userJobs","usersAccount","usersAccountLoading","userChannels","userPersonalInterests","userPreferenceInfo","showUserPreferencesModal","userTokenApi","usersLoading","users","totalUsers","currentPage","loadingMoreUsers","totalPagesUsers","showUserTypeModal","showInviteSuccessModal","userServicesSelected","newServices","updatedServices","userDetail","userAccountSelected","usersToInvite","userRegisteredLoading","infoInviteSuccessModal","loadingUpdateUser","loadingDeleteUser","accountSelectedUsersTable","userTypesSelect","calendarIntervals","setCalendarDates","value","interval","graphDateFrom","graphDateTo","addDays","startOfWeek","startOfMonth","addMonths","startOfYear","addYears","setCalendarDatesEnergy","startDate","endDate","sortByDate","a","b","date","graphData","graphLoading","indicatorsLoading","intervalGraph","graphs","graphsRelations","activeGraphs","indicators","invoiceInfo","Date","graphDateFromScroll","graphDateToScroll","enableScrollData","showReportModal","reportLoading","scrollActive","tariff","bannersData","showDetailService","prevStateBar","enableAverageLine","rankGraphId","invoices","invoicesSummary","total_bills","pending_bills","total_consumption","total_payment","id_bills_array","invoicesSummaryLoading","invoicesLoading","delayedInvoicesLoading","moreInvoicesLoading","invoicesDate","selectedInvoices","banks","invoicesToPay","invoicesContent","invoicesContentLoading","invoiceDetails","invoiceDetailsContent","invoiceDetailsIndex","invoicesPeriods","invoicesPeriodsFiltered","billsStatus","id","name","color","text_color","filterStatus","totalInvoicesByPeriod","sortField","sortOrder","showPay","emptyPaginationResult","typeComponent","infoPayment","commission","totalPayment","neugets","paymentLoading","paymentMethods","paymentProvider","servicesTypes","key","title","icon","totalServices","totalServicesGrouped","activeServicesEnergy","activeServicesPlus","activeServicesInvoices","activeServicePreonboarding","defaultActiveService","usersByService","totalAccounts","account","codeReferred","language","currentModule","showMenu","showBlackScreen","showBlackScreenIframe","showBlackScreenDrawer","showCalendar","showNpsSurvey","showDrawerOnboarding","startOnboarding","dashboard","service_detail","service_picker","graph_type_picker","graph_period_picker","graph_calendar_picker","graph_export_data","new_alert","new_user","payment","invoice","profile","walktrough","controlledOnboarding","showPulseAnimation","screenPaddingBottom","dataGraph","dataGraphPage","loadingInitData","enableHistory","devices","energyQuality","loadingEnergyQuality","alwaysOn","loadingAlwaysOn","loadingIndicators","comparatives","loadingComparatives","appliances","tagRecords","lastConection","lastPage","lastDay","openQualityEnergy","dataGraphQuality","dataGraphAlwaysOn","intervalGraphAlwaysOn","graphDateFromAlwaysOn","graphDateToAlwaysOn","graphDateFromScrollAlwaysOn","graphDateToScrollAlwaysOn","enableScrollDataAlwaysOn","loadingAlwaysOnModule","qualityIndicators","loadingQualityIndicators","alwaysOnIndicators","loadingAlwaysOnIndicators","rankGraphIdAlwaysOn","totalReports","activeReports","loadingReport","loadingNewReport","reportGenerated","newReport","expanded","serviceType","graphsType","totalGraphs","notifications","notificationsPagination","notificationsLoading","totalNotificationsInfo","alerts","alertRegisters","alertRegistersPagination","alertRegistersLoading","totalalertRegistersInfo","showDrawerAlerts","activeChat","loadingChat","currentConversationId","messages","showChatBot","activeChatMessages","conversations","showBannerChatbot","themes","DARK","LIGHT","savedTheme","localStorage","getItem","theme","Object","values","includes","allReducers","combineReducers","login","state","arguments","length","undefined","type","payload","capabilities","currentSelectedServices","map","idUser","userTypes","energy","eventProperty","dates","options","graphsGroups","relations","services","idService","newInvoices","currentInvoice","foundInvoice","find","i","id_bill","loadingDelay","filter","ip","paid_bills","due_bills","pays","accounts","shared","currentStartOnboarding","currentControlledOnboarding","plus","_arrayPages$","arrayPages","lastAvailablePage","_","last","item","init","idPageRecord","push","sort","data","flat","arrayPagesStreaming","pageInit","pageInitModified","concat","dataGraphStreaming","newData","_payload$data","dataGraphHistoryInit","genius","chatbot","action","Store","createStore","root","composeWithDevTools","applyMiddleware","thunk","current","process","SETData","async","url","method","params","endpoint","simple","token","headers_simple","response","fetch","headers","Headers","body","JSON","stringify","ok","text","then","parse","GETData","mode","GETS3PublicUrl","path","bucket","region","objectDataBody","error","console","setUser","setSavingInfoUser","setShowCreateUserModal","setShowUsersListModal","setUsersAccount","setUserAccessEdit","setUsersAccountLoading","setLoadingNewUser","setListUsersLoading","setUsers","setTotalPagesUsers","setTotalUsers","setUserServicesSelected","setUsersToInvite","setUserRegisteredLoading","setLoadingUpdateUser","setLoadingDeleteUser","setUsersTypeSelect","setAccountSelectedUsersTable","getUserExtraDataAsync","dispatch","getState","catch","loadUserJobsAsync","loadUsersByAccountAsync","_getState$accounts$ac","accountId","idAccount","finally","getUserApiTokenAsync","loadUsersAsync","id_services","search","page","requestBody","Array","isArray","message","totalPages","transformedUsers","_user$services$","_user$services$$accou","_user$services$2","_user$services$2$acco","_user$businessUnit","_user$userType","_user$userType2","nameAccount","servicesIds","service","lastname","area","businessUnit","businessUnitName","rol","userType","userTypeDescription","idRol","idUserType","email","phone","recordDate","lastActivity","toLocaleDateString","warn","loadUserTypesAsync","_getState$users$user","_getState$users$user$","updateUserAsync","Alert","success","deleteUserAsync","selectedAccount","metaData","accountFound","currentAccount","idServices","currentService","setAccount","setNeugets","loadAccountsAsync","accountSavedInLocalStorage","userId","usersNEU","_response","identifyObj","Identify","set","identify","checkIfLocalStorageHaveAValidAccount","some","_accountSavedInLocalS","setItem","lang","title_button_go_to_back","support_title_main","support_emergency_button","support_help_button","notifications_title","notifications_show_all","notifications_show_alerts","notifications_back_button","notifications_notification_set_read","notifications_notification_set_unread","notifications_notification_delete","notifications_empty_state_title","notifications_empty_state_text","support_main_title_drawer","support_main_description_drawer","support_title_section_personal_data","support_input_label_id_document","support_input_label_user_name","support_input_placeholder_user_name_example","support_input_label_user_lastname","support_input_placeholder_user_lastname_example","support_input_label_user_email","support_input_placeholder_user_email_example","support_input_label_user_phone","support_input_placeholder_user_phone_example","support_input_label_user_address","support_input_placeholder_user_address_example","support_select_label_service","support_select_label_type_ticket","support_select_option_customer_requests","support_select_option_customer_claims","support_select_option_customer_complaints","support_select_option_customer_suggestions","support_select_label_area_ticket","support_select_option_billing","support_select_option_operations","support_select_option_tech","support_select_option_accounting","support_select_option_legal","support_select_option_customer_success","support_title_section_detail_ticket","support_input_label_request_ticket","support_title_section_upload_file","support_description_section_upload_file","support_button_label_upload_file","support_button_label_send_form","user_picker_placeholder_account","user_title_section_personal_data","user_title_section_your_info","user_input_label_id_document","user_input_label_names","user_input_placeholder_names_example","user_input_label_lastname","user_input_placeholder_lastname_example","user_input_label_email","user_input_placeholder_email_example","user_input_label_phone","user_input_placeholder_phone_example","user_input_label_optional_phone","user_input_placeholder_optional_phone_example","user_input_label_address","user_input_placeholder_address_example","user_input_label_optional_address","user_input_placeholder_optional_address_example","user_select_label_language","user_title_section_health","user_input_label_height","user_input_placeholder_height_example","user_input_label_weight","user_input_placeholder_weight_example","user_input_label_eps","user_input_placeholder_eps_example","user_select_label_insurance","user_title_section_home","user_input_label_type_property","user_input_placeholder_type_property","user_input_label_house_area","user_input_placeholder_house_area_example","user_input_label_house_people","user_input_label_house_levels","user_input_label_house_floor","user_picker_label_own_home","user_picker_label_solar_system","user_title_section_vehicle","user_picker_label_own_vehicle","user_picker_label_electric_vehicle","user_picker_label_armored_vehicle","user_save_button","user_cancel_button","user_title_section_create_users","user_title_section_edit_users","user_title_section_accounts","user_title_section_privacy_info","user_title_section_terms_conditions","user_button_logout","user_select_option_language_es","user_select_option_language_en","user_select_option_type_apartment","user_select_option_type_house","user_select_option_type_country_house","user_select_option_type_farm","user_title_create_user","user_title_edit_user","user_select_label_job_area","user_select_option_financial_area","user_select_option_energy_area","user_select_option_support_area","user_select_option_enviromental_area","user_select_option_other_area","user_select_label_services_selected","user_select_label_services","user_button_add_user","user_button_edit_user","users_title_main_header","users_table_header_edit","users_table_header_id_document","users_table_header_name","users_table_header_lastname","users_table_header_phone","users_table_header_email","users_table_header_job_area","users_table_header_services","users_pagination_go_to_page","users_pagination_show_page","login_main_title","login_title_description","login_input_label_data","login_input_label_code","login_question_code","login_await_resend_code","login_unit_await_resend_code","login_resend_code","login_button_validate","login_button_continue","login_button_enter","login_link_cancel","login_title_step_two","plus_title_main_dashboard","plus_label_empty_data","plus_title_empty_state","plus_introduction_empty_state","plus_phrase_empty_state","plus_button_access","plus_link_more_info","plus_graph_picker_option_active_power","plus_graph_picker_option_reactive_power","plus_graph_picker_option_rms_voltage_1","plus_graph_picker_option_rms_voltage_2","plus_graph_picker_option_rms_voltage_3","plus_graph_picker_option_rms_current_1","plus_graph_picker_option_rms_current_2","plus_graph_picker_option_rms_current_3","plus_graph_text_help_tag_step_1","plus_graph_text_help_tag_step_2","plus_graph_text_empty_data_device","plus_graph_text_last_connection","plus_graph_button_show_last_records_device","plus_title_max_active_power","plus_unit_max_active_power","plus_graph_button_tag","plus_graph_button_tag_manager","plus_graph_button_select_point","plus_graph_button_select_range","plus_graph_button_select_points","plus_graph_button_go_back","plus_always_on_title","plus_trends_title","plus_trends_label","plus_radar_title","plus_rank_title","plus_graph_title_empty_data","tag_new_device_main_title","tag_new_device_header_label_save","tag_new_device_header_label_cancel","tag_new_device_header_label_device","tag_new_device_title_name","tag_new_device_input_label_name","tag_new_device_title_type","tag_new_device_input_label_type","tag_new_device_title_brand","tag_new_device_input_label_brand","tag_new_device_title_reference","tag_new_device_input_label_reference","tag_new_device_button_create","tag_new_device_button_cancel","tag_new_tag_header_label_save","tag_new_tag_header_label_tag","tag_new_tag_header_label_cancel","tag_new_tag_input_label_search","tag_new_tag_title_devices_list","tag_new_tag_text_average_comsuption","tag_new_tag_text_duration","tag_new_tag_text_no_tag","tag_new_tag_text_no_devices","tag_new_tag_text_no_devices_description","tag_new_tag_button_link_tag","tag_table_tag_label_processed","tag_table_tag_label_procesing","tag_new_tag_button_new_device","tag_graph_power_legend_active_power","tag_graph_power_legend_reactive_power","tag_graph_power_title_empty_data","tag_graph_power_phrase_empty_data","tag_manager_title_main_dashboard","tag_manager_title_devices","tag_manager_table_header_name","tag_manager_table_header_create_at","tag_manager_table_header_active_energy","tag_manager_table_header_active_power","tag_manager_table_header_reactive_energy","tag_manager_table_header_reactive_power","tag_manager_table_title_empty_data","tag_manager_table_phrase_empty_data","tag_manager_button_tag","tag_title_section_new_tags","services_input_label_search","services_select_all","energy_main_title_dashboard","energy_invoice_show_bills","energy_invoice_state_paid","energy_invoice_state_to_pay","energy_invoice_no_bills","energy_invoice_title","energy_invoice_label_consumption","energy_invoice_label_tariff","energy_invoice_show_detail","energy_trends_title","energy_trends_title_comparative","energy_widgets_empty_data","energy_adress_title","energy_service_type_title","energy_users_title","energy_period_picker_hour_to_hour","energy_period_picker_hour_to_hour_description","energy_period_picker_day_to_day","energy_period_picker_day_to_day_description","energy_period_picker_day_to_day_monthly","energy_period_picker_day_to_day_monthly_description","energy_period_picker_month_to_month","energy_period_picker_month_to_month_description","energy_graph_calendar_fast_access","energy_graph_calendar_button","energy_graph_calendar_week_range","energy_graph_calendar_month_range","energy_graph_title_empty_data","energy_graph_description_empty_data","energy_graph_empty_data_button","energy_graph_title","energy_graph_title_consumption","energy_graph_title_generation","energy_graph_title_daily_consumption","energy_graph_title_weekly_consumption","energy_graph_title_monthly_consumption","energy_graph_title_year_consumption","energy_graph_title_daily_generation","energy_graph_title_weekly_generation","energy_graph_title_monthly_generation","energy_graph_title_year_generation","energy_graph_indicator_total","energy_graph_indicator_max","energy_graph_indicator_min","energy_graph_indicator_average","energy_graph_period_picker_day","energy_graph_period_picker_week","energy_graph_period_picker_month","energy_graph_period_picker_year","energy_graph_type_picker_search","energy_graph_type_disclaimer","energy_graph_group_reactive","energy_graph_type_average_line","energy_graph_group_ac","energy_graph_group_irradiance","energy_graph_group_transactive_energy","energy_graph_group_power","energy_graph_group_active_energy_cost","energy_graph_group_dc","energy_graph_group_generation","energy_graph_group_current","energy_graph_group_frequency","energy_graph_group_active_energy","energy_graph_group_metereology","energy_graph_group_injection","energy_graph_group_voltage","energy_graph_group_temperature","energy_graph_group_irradiance_gen","energy_graph_group_operation_state","energy_graph_group_prediction_active_energy","energy_graph_group_power_limitation","energy_graph_group_power_factor_plus","energy_graph_label_active_energy","energy_graph_label_injected_energy","energy_graph_label_transactive_energy","energy_graph_label_reactive_excess_energy","energy_graph_label_reactive_inductive_energy","energy_graph_label_reactive_capacitive_energy","energy_graph_label_current","energy_graph_label_voltage","energy_graph_label_frequency","energy_graph_label_generation","energy_graph_label_generation_spec","energy_graph_label_current_ac","energy_graph_label_current_dc","energy_graph_label_voltage_ac","energy_graph_label_voltage_dc","energy_graph_label_active_pwr","energy_graph_label_apparent_pwr","energy_graph_label_pwr_factor","energy_graph_label_inverter_temp","energy_graph_label_heatsink_temp","energy_graph_label_irradiance","energy_graph_label_irradiance_hourly","energy_graph_label_panel_temp","energy_graph_label_environment_temp","energy_graph_label_humidity","energy_graph_label_wind_speed","energy_graph_label_wind_direction","energy_graph_label_gen_frequency","energy_graph_label_active_energy_cost","energy_graph_label_active_power","energy_graph_label_reactive_power","energy_graph_label_prediction_active_energy","energy_graph_label_reactive_inductive_excess_energy","energy_graph_label_reactive_capacitive_excess_energy","energy_graph_label_power_limitation","energy_graph_label_power_factor_plus","energy_graph_unit_active_energy","energy_graph_unit_injected_energy","energy_graph_unit_transactive_energy","energy_graph_unit_reactive_excess_energy","energy_graph_unit_reactive_inductive_energy","energy_graph_unit_reactive_capacitive_energy","energy_graph_unit_reactive_inductive_excess_energy","energy_graph_unit_reactive_capacitive_excess_energy","energy_graph_unit_current","energy_graph_unit_voltage","energy_graph_unit_frequency","energy_graph_unit_generation","energy_graph_unit_generation_spec","energy_graph_unit_current_ac","energy_graph_unit_current_dc","energy_graph_unit_voltage_ac","energy_graph_unit_voltage_dc","energy_graph_unit_active_pwr","energy_graph_unit_apparent_pwr","energy_graph_unit_pwr_factor","energy_graph_unit_inverter_temp","energy_graph_unit_heatsink_temp","energy_graph_unit_irradiance","energy_graph_unit_irradiance_hourly","energy_graph_unit_panel_temp","energy_graph_unit_environment_temp","energy_graph_unit_humidity","energy_graph_unit_wind_speed","energy_graph_unit_wind_direction","energy_graph_unit_gen_frequency","energy_graph_unit_active_energy_cost","energy_graph_unit_active_power","energy_graph_unit_reactive_power","energy_graph_unit_prediction_active_energy","energy_graph_unit_power_limitation","energy_graph_unit_power_factor_plus","invoices_main_title_dashboard","invoices_main_title","invoices_title","invoices_empty_account_selection","invoices_account_total_selection_separator","invoices_account_total_selection","invoices_empty_date_selection","invoices_empty_filter_selection","invoices_pending_filter_option","invoices_download_consolidate","invoices_watch_all_months","invoices_calendar_done","invoices_pay_with_method_view_title","invoices_pay_invoices_selected","invoices_pay_invoices_selected_unit","invoices_pay_total_title","invoices_pay_total_unit","invoices_pay_first_advice_payment_method","invoices_pay_second_advice_payment_method","invoices_accounts_services_selected_unit","invoices_accounts_select_all","invoices_accounts_deselect_all","invoices_accounts_done","invoices_table_consumption_unit","invoices_table_service_name_header_title","invoices_table_reference_header_title","invoices_table_tariff_header_title","invoices_table_consumption_header_title","invoices_table_invoice_state_header_title","invoices_table_total_payment_header_title","invoices_table_expiration_date_header_title","invoices_summary_title","invoices_summary_deselect_all_services","invoices_summary_select_all_services","invoices_summary_invoices_unit","invoices_summary_consumption_selected_title","invoices_summary_consumption_selected_unit","invoices_summary_not_pending_invoices_first_content","invoices_summary_not_pending_invoices_second_content","invoices_summary_total_payment_title","invoices_summary_total_payment_unit","invoices_summary_total_payment_pay","invoices_summary_total_payment_empty","invoices_summary_account_filter_alert_before_bold","invoices_summary_account_filter_alert_bold","invoices_summary_account_filter_alert_after_bold","invoices_selected_invoices_summary_title","invoices_pending_invoices_summary_title","invoices_empty_summary_pending_invoices","invoices_state_pending","invoices_state_overdue","invoices_state_paid","invoices_empty_state","invoices_state_suspended_service","invoices_state_due_date","invoices_button_download_bills","invoices_text_selec_all","invoices_text_total_pay","invoices_select_placeholder_all_services","invoices_button_pay","invoices_text_empty_bills_period","invoices_title_section_bills","invoices_text_error_show_bills","invoices_text_no_select_bills","invoices_pay_title_section_personal_data","invoices_pay_title_section_bank_data","invoices_pay_text_modal","invoices_pay_input_label_name","invoices_pay_input_placeholder_user_name_example","invoices_pay_input_label_email","invoices_pay_input_placeholder_email_example","invoices_pay_input_label_phone","invoices_pay_input_placeholder_phone_example","invoices_pay_input_label_address","invoices_pay_input_placeholder_address_example","invoices_pay_input_label_type_person","invoices_pay_input_label_type_document","invoices_pay_input_label_idDocument","invoices_pay_input_placeholder_idDocument_example","invoices_pay_input_label_bank","invoices_pay_title_total_payment","invoices_pay_title_subtotal_payment","invoices_pay_title_use_neugets","invoices_pay_title_get_neugets","invoices_pay_title_quantity_neugets","invoices_pay_title_total","invoices_pay_select_label_user_type","invoices_pay_select_label_banks","invoices_pay_select_label_user_legal_type","invoices_pay_text_total_to_pay","invoices_pay_text_options_to_pay","invoices_pay_button_pay","invoices_pay_label_option_cc","invoices_pay_label_option_ce","invoices_pay_label_option_nit","invoices_pay_label_option_natural_user","invoices_pay_label_option_legal_user","invoices_card_payment_cardholder_address","invoices_paid_title_state_approved","invoices_paid_title_state_declined","invoices_paid_title_state_pending","invoices_paid_text_email","invoices_paid_text_date","invoices_paid_text_date_payment","invoices_paid_text_ref","invoices_paid_text_description","invoices_paid_text_total_payment","invoices_paid_title_payment_receipt","invoices_paid_text_transaction_details","invoices_paid_text_total_bill","invoices_paid_text_neugets_discount","invoices_paid_text_neugets_remaining","invoices_paid_button_print","invoices_paid_link_finally","invoices_summary_title_energy","invoices_summary_title_plus","invoices_summary_title_zero","invoices_summary_title_detail_bill","invoices_summary_title_total_bill","invoices_summary_title_quantity_bill","invoices_summary_title_unit_price","invoices_alert_overdue","invoices_alert_note","alert_user_popup_name","alert_user_popup_lastname","alert_user_popup_id_document","alert_user_popup_email","alert_create_user_popup_email","alert_user_popup_phone","alert_create_user_popup_phone","alert_create_user_popup_job_area","alert_create_user_popup_selected_services","alert_new_user_popup_success","alert_edit_user_popup_success","alert_new_user_popup_failed","alert_edit_user_popup_failed","alert_user_popup_address","alert_support_popup_ticket_service","alert_support_popup_ticket_description","alert_support_popup_success","alert_submit_form_popup_success","alert_submit_form_popup_failed","alert_pay_popup_banks","alert_title_error","alert_title_success","alert_shared_error","alert_login_user_not_found","alert_login_invalid_code","menu_main_dashboard","menu_energy_service","menu_zero_service","menu_efficiency_service","menu_volt_service","menu_plus_service","menu_onboarding","menu_equote","menu_analytics","main_title_mobile_screen","main_description_mobile_screen","language_locale","account_title_main_dashboard","account_detail_title_admin","account_detail_title_relations","service_detail_title_users","service_detail_title_location","zero_credit_card_title_show_detail","zero_credit_card_title_photovoltaic_system","zero_credit_card_title_full_loan","zero_credit_card_title_next_payment","zero_credit_detail_state_not_available","zero_credit_detail_state_pending","zero_credit_detail_state_paid","zero_credit_detail_state_canceled","zero_credit_detail_state_overdue","zero_credit_detail_title_detail_credit","zero_credit_detail_title_fee_amount","zero_credit_detail_title_agreed_interest_rate","zero_credit_detail_rate_placement","zero_credit_detail_title_full_loan","zero_credit_detail_title_total_paid","zero_credit_detail_title_depreciation_table","zero_marketplace_title_main","zero_marketplace_description","zero_marketplace_title_contact_adviser","zero_marketplace_title_credit_uses","zero_service_title_suggested","zero_service_detail_empty_content","zero_service_detail_button_request_quote","zero_approve_quote_title_main","zero_approve_quote_title_question","zero_approve_quote_info_email","zero_approve_quote_button_continue","zero_quote_title_version","zero_quote_title_show_detail","zero_quote_title_valid_until","zero_quote_button_approve_quote","zero_quote_state_in_process","zero_quote_state_accepted","zero_quotes_title_main","zero_quotes_empty_state","zero_quotes_empty_state_description","zero_tab_label_home","zero_tab_label_quotes","zero_tab_label_wallet","zero_neugets_card_title_balance","zero_neugets_card_title_help","zero_neugets_card_title_neugets","zero_neugets_card_title_ranking","zero_neugets_card_title_ranking_card","zero_wallet_title_history","zero_transactions_redeemed_neugets","zero_transactions_acquired_neugets","zero_transactions_invoice_paid","zero_transactions_empty_state","zero_transactions_empty_state_description","loader_text_content","invoices_text_empty_description_bills_period","alert_create_preference_info_user_success","alert_create_preference_info_user_error","alert_users_info_reception","alert_users_platform_uses","alert_users_personal_interests","users_preference_info_user_title","users_preference_info_user_description","users_preference_info_user_job","users_preference_info_reception","users_preference_info_user_platform_uses","users_preference_info_user_interests","users_multipleselect_placeholder","users_input_label_platform","users_button_personal_preferences","alert_delete_user_success","alert_delete_user_error","users_multipleselect_label_selected","alert_users_preference_info","users_preference_info_title","users_preference_info_description","users_preference_info_button_complete","neugets_tooltip_copy_code","neugets_text_share_code_title","neugets_text_share_code_message","neugets_drawer_main_title","neugets_drawer_text_neugets_description","neugets_drawer_text_use_neugets","neugets_drawer_text_get_neugets","neugets_drawer_text_share_referral_code","neugets_drawer_text_legal_terms","alert_create_new_tag_success","alert_create_new_tag_failed","alert_create_new_device_success","alert_create_new_device_failed","alert_users_failed_change_image","energy_export_graph_title","energy_export_graph_start_time","energy_export_graph_end_time","energy_export_graph_filename","energy_export_graph_button","alert_download_report_error","alert_filename_report_error","menu_genius_service","daily_active_energy","weekly_active_energy","hourly_distribution_active_energy","money_savings_history","reactive_excess_history","reactive_excess_weekly","hourly_active_energy","monthly_active_energy","weekly_mean_active_energy","reactive_excess_daily","alert_genius_create_report_filename","alert_genius_create_report_graphs","alert_genius_create_report_devices","alert_genius_create_report_range","genius_drawer_title_main","genius_input_label_filename","genius_input_placeholder_filename_example","genius_multipleselect_label_graphs","genius_multipleselect_placeholder_graphs_selected","genius_multipleselect_placeholder_select","genius_multipleselect_label_devices","genius_multipleselect_placeholder_devices_selected","genius_calendar_label_date","genius_calendar_placeholder_select","genius_button_create_report","genius_button_cancel_report","genius_title_main_reports","genius_button_new_report","genius_header_title_report_premium","genius_header_title_report_basic","genius_title_empty_state","genius_text_description_empty_state","genius_no_reports","genius_new_report","genius_delete_report","genius_download_report","genius_save_report","genius_cancel_report","genius_name_report","genius_date_range_report","genius_creation_date_report","genius_services_report","genius_selected_items","genius_add_services","genius_done_button","genius_graphs","genius_add_graphs","genius_new_item","genius_search_placeholder","alert_genius_create_report_success","alert_genius_create_report_pending","alert_genius_create_report_failed","alert_create_new_tag_associated_tags","shared_multipleselect_label_select_all","invoices_text_unselected_all","plus_modal_title_empty_state","plus_modal_description_empty_state","plus_modal_phrase_empty_state","plus_modal_button_empty_state","plus_rank_tooltip_info","plus_always_on_tooltip_info","plus_radar_tooltip_info_voltage","plus_radar_tooltip_info_current","plus_radar_tooltip_info_power","genius_button_default_report","energy_graph_message_scroll_active","user_table_title_empty_state","user_table_description_empty_state","alert_support_popup_type_ticket","alert_support_popup_area_ticket","support_select_placeholder","plus_export_graph_title","plus_export_graph_date","plus_export_graph_filename","plus_export_graph_format","plus_export_graph_button","alert_format_filename_report_error","alert_date_report_error","alert_new_device_name","alert_new_device_type","money_savings_table","alert_genius_create_report_duplicate_filename","shared_survey_nps_title","shared_survey_nps_text_question","shared_survey_nps_text_comment","shared_survey_nps_text_secondary_title","shared_survey_nps_text_description","shared_survey_nps_text_question_bad","shared_survey_nps_text_question_good","shared_survey_nps_text_specific_question_bad","shared_survey_nps_text_specific_question_good","shared_survey_nps_list_option_bill","shared_survey_nps_list_option_platform","shared_survey_nps_list_option_customer","shared_survey_nps_list_option_pay","shared_survey_nps_list_option_other","shared_survey_nps_button_send_score","shared_survey_nps_button_send","alert_nps_survey_create_success","alert_nps_survey_create_error","premium_measurement","premium_monthly_consumption","premium_weekly_consumption","premium_daily_consumption","user_title_section_api_token","user_button_generate_token","user_button_cancel_token","alert_generate_token_api_error","user_channel_option_email","user_channel_option_calls","user_channel_option_text","user_channel_option_wsp","user_channel_option_app","user_channel_option_myself","user_department_option_not_apply","user_department_option_manager","user_department_option_operative","user_department_option_financial","user_department_option_innovation","user_department_option_tech","user_department_option_engineer","user_department_option_commercial","user_interest_option_innovation","user_interest_option_environment","user_interest_option_finance","user_interest_option_relationship","energy_indicator_day_highest_consumption","energy_indicator_average_consumption","energy_indicator_consumption","energy_indicator_compare_last_period","energy_indicator_hour_highest_consumption","energy_indicator_current_consumption","energy_indicator_reactive_energy","generation_indicator_saving","generation_indicator_saving_vs","generation_indicator_generated","generation_indicator_compare_last_period","generation_indicator_trees_planted","generation_indicator_trees_accum","generation_indicator_trees_last_period","generation_indicator_co2_reduced","generation_indicator_co2_last_period","generation_indicator_co2_reduced_accum","generation_indicator_highest_hour","generation_indicator_average","generation_indicator_least_hour","generation_indicator_highest_day","generation_indicator_highest_month","generation_indicator_highest_month_generation","generation_indicator_least_day","generation_indicator_current_generation","api_user_token_tooltip_empty","generation_indicator_total_generated","generation_indicator_from_beginning","generation_indicator_count_services","generation_indicator_total_saving","genelogin_button_validateration_indicator_vs_conventional_energy","generation_indicator_month_generated","generation_indicator_theoretical_energy","generation_indicator_average_saving","generation_indicator_last_x_months","generation_indicator_last_month_saving","generation_indicator_saving_tariff","alerts_label_no_name","alerts_label_main_title_drawer","alerts_label_creation_indications","alerts_button_add_new_alert","alerts_label_recently_created","alerts_label_title_empty_state","alerts_label_body_empty_state","alerts_condition_greater_than","alerts_condition_same_as","alerts_condition_less_than","alerts_channel_email","alerts_channel_text_message","alerts_channel_notification","alerts_label_title_edit_alert","alerts_label_title_new_alert","alerts_button_save","alerts_label_body_new_alert","alerts_messager_alert_create_success","alerts_messager_alert_create_error","alerts_messager_alert_edit_success","alerts_messager_alert_edit_error","alerts_messager_alert_delete_success","alerts_messager_delete_title_confirmation","alerts_messager_delete_confirmation","alerts_messager_keep_option","alerts_messager_delete_option","alerts_select_days_monday","alerts_select_days_tuesday","alerts_select_days_wednesday","alerts_select_days_thursday","alerts_select_days_friday","alerts_select_days_saturday","alerts_select_days_sunday","alerts_select_interval_hourly","alerts_select_interval_daily","alerts_select_interval_weekly","alerts_select_interval_monthly","alert_genius_create_report_initially","invoice_content_text_bill","invoice_content_text_contract","invoice_content_text_niu","invoice_content_text_customer_name","invoice_content_text_service_name","invoice_content_text_billing_address","invoice_content_text_total","invoice_content_text_bill_date","invoice_content_text_due_date","invoice_content_text_suspension_date","invoice_content_text_suspension_date_empty","invoice_content_text_strong_balance","invoice_content_first_text_balance","invoice_content_second_text_balance","invoice_content_text_strong_outstanding_balance","invoice_content_text_outstanding_balance","invoice_content_text_outstanding_balance_suspension","invoice_content_text_consumption_detail","invoice_content_text_consumption","invoice_content_text_days_billed","invoice_content_text_billed_since","invoice_content_text_billed_until","invoice_content_text_meter_code","invoice_content_text_previous_consumption","invoice_content_text_current_consumption","invoice_content_text_avg_six_months","invoice_content_text_label_pay_month","invoice_content_text_reactive_detail","invoice_content_text_days_billed_reactive","invoice_content_text_amount_billed_reactive_inductive","invoice_content_text_amount_billed_reactive_capacitive","invoice_content_text_amount_billed_reactive","invoice_content_text_reactive_factor","invoice_content_text_tariff_detail","invoice_content_first_text_tariff","invoice_content_first_text_strong_tariff","invoice_content_second_text_tariff","invoice_content_second_text_strong_tariff","invoice_content_third_text_tariff","invoice_content_third_text_strong_tariff","invoice_content_fourth_text_tariff","invoice_content_fourth_text_strong_tariff","invoice_content_fifth_text_tariff","invoice_content_sixth_text_tariff","invoice_content_text_tariff_g","invoice_content_text_tariff_t","invoice_content_text_tariff_d","invoice_content_text_tariff_cv","invoice_content_text_tariff_pr","invoice_content_text_tariff_r","invoice_content_text_tariff_cr","invoice_content_text_tariff_cu","invoice_content_text_tariff_cu_cot","invoice_content_text_technical_info","invoice_content_text_or","invoice_content_text_or_phone","invoice_content_text_distr_circuit","invoice_content_text_transf_number","invoice_content_text_legal_info","invoice_content_first_text_legal_info","invoice_content_second_text_legal_info","invoice_content_third_text_legal_info","invoice_content_fourth_text_legal_info","invoice_content_fifth_text_legal_info","invoice_content_sixth_text_legal_info","invoice_content_seventh_text_legal_info","invoice_content_eighth_text_legal_info","invoice_content_text_pay_methods","invoice_content_text_pay_web","invoice_content_text_pay_app","invoice_content_text_pay_wire_transfer","invoice_content_first_text_pay_wire_transfer_detail","invoice_content_second_text_pay_wire_transfer_detail","invoice_content_text_legal_representative","invoice_content_text_taxes","invoice_content_text_address","invoice_content_text_payment_way","invoice_content_text_payment_cash","invoice_content_text_payment_method","invoice_content_text_debit_card","invoice_content_text_support","invoice_content_text_support_wsp","invoice_content_text_support_emergency","invoice_content_text_footer_page","invoice_content_text_strong_neugets","invoice_content_first_text_neugets","invoice_content_second_text_neugets","invoice_content_text_bill_detail","invoice_content_text_bill_detail_info","invoice_content_text_header_table_item","invoice_content_text_header_table_detail","invoice_content_text_header_table_unit_value","invoice_content_text_header_table_concept_value","invoice_content_text_header_table_month_value","invoice_content_text_header_table_quantity","invoice_content_text_header_table_days_quantity","invoice_content_text_header_table_value","invoice_content_text_subtotal","invoice_content_text_iva","invoice_content_text_capital_record","invoices_tooltip_previous_bill","invoices_tooltip_next_bill","invoices_tooltip_download_bill","invoices_tooltip_search_bill","invoices_tooltip_close_bill","invoices_tooltip_zoomin_bill","invoice_content_text_billed_period","invoice_content_check_consumption","invoice_content_text_check_consumption","invoice_content_text_embedded_border_factor","invoice_content_text_municipality","invoice_content_text_department","invoice_content_text_market","invoice_content_text_unregulated_market","invoice_content_text_regulated_market","invoice_content_text_active_energy_consumption","invoice_content_text_monthly_rate_cu","invoice_content_current_consumption","invoice_content_text_total_billed","invoice_content_text_billed_capacity","invoice_content_text_billed_inductive","invoice_content_text_creg_resolulion","invoice_content_creg_resolution_text_1_first","invoice_content_creg_resolution_text_1_second","invoice_content_creg_resolution_text_1_third","invoice_content_creg_resolution_text_1_fourth","invoice_content_creg_resolution_text_2_first","invoice_content_creg_resolution_text_2_second","invoice_content_creg_resolution_text_2_third","invoice_content_creg_resolution_r_text_3_first","invoice_content_creg_resolution_r_text_3_second","invoice_content_creg_resolution_r_text_4_first","invoice_content_creg_resolution_r_text_4_second","invoice_content_text_billing_charges","invoice_content_text_interruption_duration","invoice_content_text_interruption_duration_unit","invoice_content_text_interruption_frequency","invoice_content_text_interruption_frequency_unit","invoice_content_text_app_web_payment","invoice_content_text_app_payment_description","invoice_content_text_web_payment_description","invoice_content_text_PSE","invoice_content_text_payment_methods","invoice_content_text_bank_payment_instructions","invoice_content_text_bank_account_name","invoice_content_text_related","invoice_content_text_verify_invoice_validity","invoice_content_text_verify_invoice_description","invoice_content_text_pay_invoice","invoice_content_text_verify_information","invoice_content_text_scan_qr","invoice_content_text_ica_tax","invoice_content_text_large_taxpayers","invoice_content_text_large_taxpayers_resolution","invoice_content_text_income_tax_withholder","invoice_content_text_income_tax_resolution","invoice_content_text_ica_medellin_withholder","invoice_content_text_ica_medellin_resolution","always_on_indicator_title_percentage","always_on_indicator_text_percentage","always_on_indicator_title_tons_co2","always_on_indicator_title_max_day","always_on_indicator_title_cost","power_factor_title","power_factor_label_phase","power_factor_label_optime_range","power_factor_label_reactive_range","power_factor_label_deficient_range","tooltip_premium_monthly_consumption","tooltip_tariffs_records","tooltip_hourly_active_energy","tooltip_hourly_distribution_active_energy","tooltip_total_payment_history","tooltip_daily_active_energy","tooltip_weekly_mean_active_energy","tooltip_reactive_cash_flow","tooltip_weekly_active_energy","tooltip_monthly_active_energy","tooltip_money_savings_history","tooltip_penalized_days_history","tooltip_premium_daily_consumption","tooltip_reactive_excess_history","tooltip_money_savings_table","tooltip_premium_weekly_consumption","tooltip_premium_measurement","genius_multipleselect_label_new_graphs","invoice_content_text_negative_balance","invoice_content_text_new_negative_balance","tooltip_a_p","tooltip_acuerdo","tooltip_aj","tooltip_aj_ap","tooltip_aj_con_cv","tooltip_aj_con_d","tooltip_aj_con_g","tooltip_aj_con_pr","tooltip_aj_con_r","tooltip_aj_con_t","tooltip_aj_cons_cont","tooltip_aj_consumo_kwh","tooltip_aj_cont","tooltip_aj_cu","tooltip_aj_cu_cont","tooltip_aj_ea","tooltip_aj_ec","tooltip_aj_ee2","tooltip_aj_er","tooltip_aj_intmora","tooltip_aj_intzero","tooltip_aj_prop_terc","tooltip_aj_re","tooltip_aj_sdl","tooltip_aj_seg","tooltip_aj_subs","tooltip_cont","tooltip_ea","tooltip_ea_cv","tooltip_ea_d","tooltip_ea_g","tooltip_ea_pr","tooltip_ea_r","tooltip_ea_t","tooltip_ec","tooltip_ee","tooltip_ee2","tooltip_eem","tooltip_er","tooltip_ing_ter","tooltip_int_med","tooltip_int_mora","tooltip_int_mora_zero","tooltip_int_neupay","tooltip_l1955","tooltip_mat_saas","tooltip_med","tooltip_mo_saas","tooltip_neu_comision","tooltip_neu_datos","tooltip_neu_inv114","tooltip_neu_inv126","tooltip_neu_inv131","tooltip_neu_inv132","tooltip_neu_inv136","tooltip_neu_ops1","tooltip_neu_ops2","tooltip_neu_ops3","tooltip_neu_ops4","tooltip_neu_ops5","tooltip_neu_pay","tooltip_neu_plus","tooltip_neu_serv","tooltip_neu_serv1","tooltip_neu_serv2","tooltip_neu_serv3","tooltip_neu_serv4","tooltip_neu_serv5","tooltip_neu_serv6","tooltip_neu_serv7","tooltip_neu_serv8","tooltip_neu_telem","tooltip_reint_cyg","tooltip_saldo","tooltip_seg_conv","tooltip_sist_solar","tooltip_subs","tooltip_reactive_inductive","tooltip_reactive_capacitive","tooltip_graph_energy_no_match","tooltip_graph_energy_no_match_reason","user_title_section_alerts","energy_graph_no_data","genius_download_file_report","genius_download_html_report","genius_download_excel_report","onboarding_drawer_title","onboarding_drawer_faqs","onboarding_drawer_show","onboarding_drawer_hide","onboarding_payment_title","onboarding_payment_description","onboarding_invoice_title","onboarding_invoice_description","onboarding_dashboard_title","onboarding_dashboard_description","onboarding_new_user_title","onboarding_new_user_description","onboarding_new_alert_title","onboarding_new_alert_description","onboarding_service_detail_title","onboarding_service_detail_description","onboarding_service_picker_title","onboarding_service_picker_description","onboarding_graph_type_picker_title","onboarding_graph_type_picker_description","onboarding_graph_period_picker_title","onboarding_graph_period_picker_description","onboarding_graph_export_data_title","onboarding_graph_export_data_description","onboarding_graph_calendar_picker_title","onboarding_graph_calendar_picker_description","onboarding_service_title_step1","onboarding_service_title_step2","onboarding_service_description_step1","onboarding_service_description_step2","onboarding_service_picker_title_step1","onboarding_service_picker_title_step2","onboarding_service_picker_title_step3","onboarding_service_picker_description_step1","onboarding_service_picker_description_step2","onboarding_service_picker_description_step3","onboarding_graph_calendar_title_step1","onboarding_graph_calendar_title_step2","onboarding_graph_calendar_description_step1","onboarding_graph_calendar_description_step2","onboarding_graph_export_data_title_step1","onboarding_graph_export_data_title_step2","onboarding_graph_export_data_description_step1","onboarding_graph_export_data_description_step2","onboarding_graph_period_title_step1","onboarding_graph_period_title_step2","onboarding_graph_period_title_step3","onboarding_graph_period_title_step4","onboarding_graph_period_title_step5","onboarding_graph_period_description_step1","onboarding_graph_period_description_step2","onboarding_graph_period_description_step3","onboarding_graph_period_description_step4","onboarding_graph_period_description_step5","onboarding_graph_type_title_step1","onboarding_graph_type_title_step2","onboarding_graph_type_title_step3","onboarding_graph_type_title_step4","onboarding_graph_type_description_step1","onboarding_graph_type_description_step2","onboarding_graph_type_description_step3","onboarding_graph_type_description_step4","onboarding_invoice_title_step1","onboarding_invoice_title_step2","onboarding_invoice_description_step1","onboarding_invoice_description_step2","onboarding_payment_title_step1","onboarding_payment_title_step2","onboarding_payment_title_step3","onboarding_payment_title_step4","onboarding_payment_description_step1","onboarding_payment_description_step2","onboarding_payment_description_step3","onboarding_payment_description_step4","onboarding_user_title_step1","onboarding_user_title_step2","onboarding_user_title_step3","onboarding_user_description_step1","onboarding_user_description_step2","onboarding_user_description_step3","onboarding_profile_title_step1","onboarding_profile_title_step2","onboarding_profile_title_step3","onboarding_profile_title_step4","onboarding_profile_description_step1","onboarding_profile_description_step2","onboarding_profile_description_step3","onboarding_profile_description_step4","onboarding_dashboard_title_step1","onboarding_dashboard_title_step2","onboarding_dashboard_title_step3","onboarding_dashboard_title_step4","onboarding_dashboard_title_step5","onboarding_dashboard_title_step6","onboarding_dashboard_title_step7","onboarding_dashboard_description_step1","onboarding_dashboard_description_step2","onboarding_dashboard_description_step3","onboarding_dashboard_description_step4","onboarding_dashboard_description_step5","onboarding_dashboard_description_step6","onboarding_dashboard_description_step7","onboarding_alert_title_step1","onboarding_alert_title_step2","onboarding_alert_title_step3","onboarding_alert_title_step4","onboarding_alert_title_step5","onboarding_alert_title_step6","onboarding_alert_title_step7","onboarding_alert_title_step8","onboarding_alert_description_step1","onboarding_alert_description_step2","onboarding_alert_description_step3","onboarding_alert_description_step4","onboarding_alert_description_step5","onboarding_alert_description_step6","onboarding_alert_description_step7","onboarding_alert_description_step8","energy_graph_group_average","onboarding_walktrough_title","onboarding_walktrough_description","last_monthly_generation","invoices_text_empty_bills_pending","invoices_text_empty_bills_paid","invoices_text_empty_bills_due","generation_per_equipment","generation_vs_irradiance","generation","temperature_plot","generation_variation","invoices_text_empty_bills_overdue","invoices_state_clear_filters","tooltip_last_monthly_generation","tooltip_generation_per_equipment","tooltip_generation_vs_irradiance","tooltip_generation","tooltip_temperature_plot","user_selected_label_job_area","tooltip_generation_variation","savings","alerts_title_interval_time","alerts_interval_time_body_frequency","alerts_interval_time_title_days","alerts_interval_time_title_range","alerts_interval_time_title_body","alerts_title_initial_time","alerts_title_final_time","alert_time_am","alert_time_pm","alerts_new_alert_service_item","alerts_new_alert_service_label","alerts_new_alert_service_example","alerts_new_alert_variable_item","alerts_new_alert_variable_label","alerts_new_alert_variable_example","alerts_new_alert_rule_item","alerts_new_alert_rule_label","alerts_new_alert_rule_example","alerts_new_alert_value_item","alerts_new_alert_value_label","alerts_new_alert_value_example","new_alert_type_title","new_alert_select_type","alerts_new_alert_channel_example","new_alert_schedule_description","popover_duplicate_alert","popover_delete_alert","accounts_id_account","accounts_location","graph_operation_state_no_record","graph_operation_state_process","graph_operation_state_standby","graph_operation_state_checking","graph_operation_state_fail","energy_no_users","energy_done_button","energy_click_to_change","reports_select_all","invoces_more_invoces","alerts_label_title_empty_state_registers","alerts_label_body_empty_state_registers","nps_beta_survey_usability","nps_beta_survey_information","nps_beta_survey_design","nps_beta_survey_other","nps_beta_survey_alert_error","nps_beta_survey_your_opinion_counts","nps_beta_survey_improve_experience","nps_beta_survey_rate_beta_experience","nps_beta_survey_dislike","nps_beta_survey_can_improve","nps_beta_survey_great","nps_beta_survey_send_rating","nps_beta_survey_thanks","nps_beta_survey_highlight","nps_beta_survey_send","nps_beta_survey_rate_experience","onboarding_generation_title1","onboarding_generation_text1","onboarding_generation_title2","onboarding_generation_text2","onboarding_generation_title3","onboarding_generation_text3","onboarding_generation_title4","onboarding_generation_text4","onboarding_preonboarding_title1","onboarding_preonboarding_text1","onboarding_preonboarding_title2","onboarding_preonboarding_text2","onboarding_preonboarding_title3","onboarding_preonboarding_text3","onboarding_consumption_title1","onboarding_consumption_text1","onboarding_consumption_title2","onboarding_consumption_text2","onboarding_consumption_title3","onboarding_consumption_text3","onboarding_consumption_title4","onboarding_consumption_text4","onboarding_modal_description","onboarding_modal_finally","onboarding_modal_continue","dashboard_steps_power_outages","dashboard_steps_short_circuit","dashboard_steps_support","dashboard_steps_billing_problems","dashboard_steps_payment_methods","quality_graph_lines","quality_graph_power","quality_graph_electricity","quality_graph_voltage","quality_graph_variables","chatbot_aids1","chatbot_aids2","chatbot_aids3","roles_commercial","roles_operations","roles_invoicing","roles_environmental","roles_financial","roles_marketing","roles_legal","roles_not_apply","roles_innovation","roles_manager","invoices_paid_text_commission","tutorial_start_button","tutorial_skip_button","tutorial_got_it","report_type","consumption_report","generation_report","ppa_report","genius_report_monthly_consumption","genius_report_submeasurements","genius_report_detailed_consumption","genius_report_reactive_energy","genius_report_savings","genius_report_generation","picker_yes_button","picker_no_button","lumi_title","lumi_first_text","lumi_second_text","lumi_title_card","lumi_first_text_card","lumi_second_text_title","lumi_do_click_here","lumi_hey","lumi_question","lumi_you_chat","lumi_explanation","lumi_go_tutorial","lumi_continue_conversation","lumi_ask_me","lumi_consulting","lumi_projects","service_type_energy","service_type_plus","service_type_zero","service_type_generation","graphs_go_back_button","export_graph_example_filename","pagination","pagination_of","services_picker_select_all","services_picker_deselect_all","energy_graph_plus_button","genius_tooltip_button_graphs","alerts_select_interval_secondBySecond","alerts_select_check_one_minute","alerts_select_check_five_minute","alerts_select_check_ten_minute","alerts_select_check_fifteen_minute","alerts_interval_time_title_plus_check","user_input_placeholder_name","user_input_placeholder_lastname","user_input_placeholder_id","user_input_placeholder_phone","user_input_placeholder_email","onboarding_invoice_title_step3","onboarding_invoice_description_step3","onboarding_invoice_title_step4","onboarding_invoice_description_step4","onboarding_modal_label_redirection","service_label_active_project_example","energy_export_graph_select_date","alerts_new_alert_search_proyects","support_drag_or_select_file","support_upload_files","support_select_file","alerts_save_interval","alerts_new_alert_no_account","authorize_personal_data","policy_personal_data","user_alert_invalid_fields_error","user_alert_duplicate_user_to_invite","user_info_message_user_exist","user_alert_incomplete_fields_error","user_title_picker_services","users_button_new_user","users_description_header","users_link_header","users_title_header","new_user_button_send_invitation","new_user_button_users_module","new_user_placeholder_input_users","new_user_label_input_users","new_user_label_picker_services","users_label_count_services","new_user_title_header","new_user_label_registered_user","new_user_label_invited_user","services_picker_type_consumption","services_picker_type_generation","users_title_header_modal_success","users_first_description_modal_success","users_link_description_modal_success","users_second_description_modal_success","users_button_new_user_success_modal","users_button_finish_success_modal","new_user_description_empty_state","incomplete_user_info_modal_title","incomplete_user_info_modal_title_finished","incomplete_user_info_modal_save_button_loading","incomplete_user_info_modal_save_button","incomplete_user_info_modal_save_button_finish","incomplete_user_info_modal_omit_button","incomplete_user_info_modal_footer_label","incomplete_user_info_modal_description_1","incomplete_user_info_modal_description_2","incomplete_user_info_modal_business_units_label","incomplete_user_info_modal_position_label","incomplete_user_info_modal_position","incomplete_user_info_modal_preferences_title","incomplete_user_info_modal_finished_text","business_unit_cgm","tooltip_business_unit_cgm","business_unit_aom","tooltip_business_unit_aom","business_unit_project_construction","business_unit_management","tooltop_business_unit_management","business_unit_finance","tooltip_business_unit_finance","business_unit_operations","tooltip_business_unit_operations","business_unit_sustainability","tooltip_business_unit_sustainability","business_unit_commercialization","business_unit_legal","tooltip_business_unit_legal","business_unit_technology","tooltip_business_unit_technology","business_unit_marketing","tooltip_business_unit_marketing","business_unit_sales","tooltip_business_unit_sales","business_unit_customer_service","business_unit_internal_tech","business_unit_unassigned","firebaseApp","firebase","apiKey","authDomain","projectId","storageBucket","messagingSenderId","appId","measurementId","remoteConfig","getRemoteConfig","isSupported","support","messaging","getMessaging","onMessage","Notification","open","className","duration","placement","description","React","createElement","settings","minimumFetchIntervalMillis","defaultConfig","loadLanguage","fetchAndActivate","words","parameters","getAll","entries","forEach","entry","asString","replace","setCurrentModule","setLanguage","setShowBlackScreen","setShowBlackScreenDrawer","setShowCalendar","setShowNpsSurvey","setStartOnboarding","setControlledOnboarding","setShowDrawerOnboarding","setShowPulseAnimation","loadLanguageAsync","setNpsSurveyAsync","id_user","defaultTracking","getFirebaseToken","permission","getToken","vapidKey","device_type","setStep","setLoading","setResending","loadInitInfoAsync","sharedActions","result","_result$jobs","_result$capabilities","usersActions","accountsActions","track","setUserId","jobs","job","projects_type","updateConnectionAsync","_dispatch","setTotalServices","setTotalServicesGrouped","setActiveServicesEnergy","setActiveServicesPlus","setActiveServicesInvoices","setDefaultActiveService","loadServicesAsync","groupedServices","reduce","acc","serviceDetails","defaultServiceIndex","findIndex","s","servicesPlus","x","typeService","filteredServices","setTimeout","setNotifications","setNotificationsLoading","loadTotalNotificationsAsync","setTheme","connect","themeActions","_ref","label","required","help","disabled","onChange","onPressEnter","focus","placeholder","htmlFor","Fragment","autoFocus","e","onClick","stopPropagation","onKeyDown","_ref2","keyCode","BackButton","style","width","height","selectedData","keyName","labelName","disabledData","allowAllOptions","labelAllServices","singleSelect","active","setActive","useState","selectedAllOptions","setSelectedAllOptions","totalOptions","useEffect","Popover","lazy","closeOnEnter","fitMaxHeightToBounds","fitMaxWidthToBounds","trigger","arrowColor","zIndex","arrowSize","offset","openingAnimationTranslateDistance","animation","animate","opacity","exit","transition","initial","withArrow","content","maxHeight","isSelected","isDisabled","isNew","isValidateEmail","test","showError","setFocus","setError","setShowPersonalData","address","ticketDescription","props","_user$ticketDescripti","initTicket","idDocument","file","isEnable","setEnable","personalData","setFile","authData","setAuthData","isValidUser","prevUser","optionsData","Drawer","show","showSupport","size","backdropClassName","onHide","setShowSupport","onSubmit","preventDefault","selectedService","parseInt","fileData","errorFlag","fileName","now","contentType","signedUrl","dataZoho","company","clientType","channel","presignedUrl","Animation","Collapse","in","dimension","Input","target","_ref3","_ref4","_ref5","MultipleSelect","log","option","_ref6","onDrop","files","dataTransfer","onDragOver","document","getElementById","click","accept","selectedFile","display","window","Loader","CurrencyFormat","displayType","thousandSeparator","prefix","getCodeReferredByAccountAsync","_getState$accounts$ac2","codeMessage","split","join","showNeugets","setShowNeugets","WalletCard","codeReferral","Whisper","delay","speaker","Tooltip","navigator","clipboard","writeText","href","filePDF","download","gap","WhatsappShareButton","FontAwesomeIcon","faWhatsapp","LinkedinShareButton","faLinkedin","EmailShareButton","subject","faEnvelope","FacebookShareButton","quote","hashtag","faFacebook","setAlerts","setAlertsLoading","setShowDrawerAlerts","loadAlertsAsync","mapStateToProps","ownProps","notification","setVisualization","deleteNotificationAsync","newNotifications","id_register","updateNotificationAsync","read","notificationsActions","setShow","handlerClose","Notification_ID","category","isOpen","onChangeOpen","styles","slideOutRight","animationName","Radium","keyframes","NotificationBox","timestamp","deeplink","isShown","setCategory","hasHovered","useRef","colorThemeMap","dark","light","StyleRoot","rel","onMouseOver","handleHover","onMouseLeave","handleLeave","fal","getThemeColor","_colorThemeMap$color","replaceTextValues","toLowerCase","moment","fromNow","fontSize","PopoverNotifications","CheckPicker","plusSelected","backgroundColor","border","padding","index","days","id_day","checkTimePlus","minutes","alertTime","setAlertTime","dayIds","fromHour","fromMinutes","fromPartOfDay","toHour","toMinutes","toPartOfDay","intervalIds","timingPlus","showTimePlus","setShowTimePlus","intervalTime","format","hour","String","RenderDays","RenderTiming","showAlertPeriod","setShowPeriodAlert","id_interval","outline","conditions","id_condition","channels","id_channel","intervals","combinedArray","array1","array2","item1","match","item2","id_service","id_infrastructure","id_device","newAlert","createAlertAsync","_payload$intervalTime","_payload$intervalTime2","_payload$intervalTime3","_payload$intervalTime4","_payload$intervalTime5","_payload$intervalTime6","_payload$intervalTime7","_payload$intervalTime8","_payload$intervalTime9","id_graph","graphIds","id_alert_type","condition","alert_name","id_frequency","start_hour","end_hour","active_week_days","id_channels","channelIds","serviceIds","timing_plus","alertsActions","editAlertAsync","_payload$intervalTime10","_payload$intervalTime11","_payload$intervalTime12","_payload$intervalTime13","_payload$intervalTime14","_payload$intervalTime15","_payload$intervalTime16","_payload$intervalTime17","idAlert","_alert$graphIds2","_props$graphs","_props$graphs$options","_alert$intervalTime3","_alert$intervalTime4","_alert$intervalTime5","_alert$intervalTime6","_alert$intervalTime7","_alert$intervalTime8","_alert$intervalTime9","_alert$intervalTime10","initAlert","alert","setAlert","activeService","setActiveService","activeVariable","setActiveVariable","activeRule","setActiveRule","activeValue","setActiveValue","activeChannel","setActiveChannel","alertProperty","setAlertProperty","Variable_ID","Alert_Type","Project_Quantity","Interval_ID","Interval_Day","searchTerm","setSearchTerm","showNewAlert","alertSelected","_props$alertSelected","_props$alertSelected$","_props$alertSelected2","_props$alertSelected3","_props$alertSelected4","_props$alertSelected5","_props$alertSelected6","_props$alertSelected7","_props$alertSelected8","_props$alertSelected9","_props$alertSelected10","_props$alertSelected11","_props$alertSelected12","_props$alertSelected13","_props$alertSelected14","_props$alertSelected15","_props$alertSelected16","_props$alertSelected17","fromHourFormated","toHourFormated","id_alert","formatLabel","array3","y","formatAmplitudeEvent","translatedGraphs","_graph","labelTranslation","_alert$intervalTime","_alert$intervalTime2","prevState","_graphs$options$filte","g","handleClose","setShowNewAlert","setAlertSelected","setEditAlert","groupBy","_service$account","editAlert","_services$","_services$$account","maxWidth","accountServiceIds","areAllSelected","every","toggleSelectAllServicesByAccount","formatGraphLabel","_graphSelected$","graph","_combinedArray2","servicesSelectedPlus","_alert$serviceIds2","idsGraphsPlus","_plusGraphs","plusGraphs","energyGraphs","validatePlus","unit","IntervalTime","validateSecondBySecond","_combinedArray","_idsGraphsPlus$filter","_alert$serviceIds","_alert$graphIds","_props$totalServices$","_props$totalServices$2","Project_Type","t","NotificationsLoading","ContentLoader","seed","foregroundColor","from","_x","rx","ry","loadNotificationsAsync","pagination_info","next_page","loadAlertRegistersAsync","setAlertRegisters","isDashboard","URL","location","pathname","setType","showNotifications","onEntering","onScroll","scrollTop","clientHeight","scrollHeight","handleScroll","setShowNotifications","left","src","emptyData","emptyDataLight","alt","NewAlert","emptyDataAlerts","setLoadingChat","setMessages","setCurrentConversation","setShowChatBot","setActiveChatMessages","TextTooltip","bgColor","background","borderColor","borderWidth","sizeIcon","additionalStyle","showPulse","servicePicker","selectFunction","activeServices","limitSelectServices","availableTypeServices","popoverPosition","servicesActions","allowAllServices","history","useHistory","useLocation","setServices","setSearch","servicesSelected","setServicesSelected","filterServices","_service$type","Project_ID","_service$type2","closeOnRemoteClick","_service$type3","overflowY","allServicesSelected","services_picker_descelect_all","ButtonCircle","loadActiveChat","entity","id_conversation","conversationMessages","_message$response_sum","userMessage","id_content","request","sender","created_at","full_date","onBoarding","botMessage","response_summary","score","chatbotActions","handleActiveMessage","_account$","_account$services","ConversationComponent","_item$services","_item$services2","_totalAccounts$filter","_totalAccounts$filter2","_totalAccounts$filter3","_item$services4","_item$services5","loadConversations","_account$services2","_item$services3","minWidth","minHeight","_moment","isBefore","subtract","_moment2","_moment3","_moment4","SwiperCore","use","Autoplay","Navigation","setActiveChatAsync","err","setConversation","newMessages","chatbotResponse","idContent","status_code","updatedMessages","setScore","RiveComponent","useRive","stateMachines","layout","Layout","fit","Fit","FitWidth","alignment","Alignment","Center","autoplay","RiveComponentBeta","enableChatBot","aids","messagesContainerRef","setRequest","mount","setMount","showChatsResume","setShowChatsResume","scrollToBottom","handleSendMessage","indexSelected","indexOf","transform","ChatPopover","inverse","center","ServicesPopover","ref","onLoad","group","dateGroup","groupMessageDate","lumi","whiteSpace","parts","replaceMessageLink","faThumbsUpSolid","faThumbsUp","faThumbsDownSolid","faThumbsDown","Swiper","spaceBetween","slidesPerView","clickable","grabCursor","centeredSlides","initialSlide","Math","floor","SwiperSlide","event","conversationSavedInLocalStorage","moduleName","backToButton","disablePadding","loadNeugetsByAccountAsync","totalNeugets","_user$capabilities","_user$capabilities2","_user$capabilities3","_user$capabilities4","_user$capabilities5","position","top","goBack","Chatbot","show_chatbot","show_header_emergency_button","show_panama_emergency_line","show_header_support_button","show_header_notifications_button","recently_unread","toggleTheme","Support","Neugets","Notifications","_options$find","type_label","defaultMessage","completeHeight","renderOptionContainer","renderCustomOption","renderOption","handleClick","children","_infoInviteSuccessMod","_infoInviteSuccessMod2","onClose","onAddMoreUsers","Modal","alignItems","justifyContent","flex","flexShrink","handleAddMoreUsers","px","py","concatClassName","paddingClasses","setSelectedAccount","searchQuery","setSearchQuery","selectedIds","setSelectedIds","selectedAccounts","setSelectedAccounts","handleBack","useMemo","selectedAccs","flatMap","groupedByType","typeName","InputRounded","getSelectedAccountNames","selectedValues","groupServices","allIds","allSelected","Set","handleSelectAll","handleServiceSelection","handleDone","getUserRegisteredAsync","newUser","userExist","u","getUserTypesAsync","filteredResponse","loadInviteUserAsync","idTypeUser","idUserInviting","setShowInviteSuccessModal","reduxUsersToInvite","modalState","setModalState","inputValue","setInputValue","setLocalUsersToInvite","hasInvalidUser","_item$userType","openModalService","trim","trimmedInput","validateInput","normalizedPhone","startsWith","empty_users","empty_users_light","_item$userType2","_item$userType3","_item$userType4","hasError","show_users_admin_view","Select","updatedUsers","identifier","handleDelete","goToUserTable","ModalService","onSave","ModalSuccess","UpdateService","_currentUser$capabili3","_currentUser$capabili6","selectedUser","currentUser","setSelectedData","initialServices","setInitialServices","initialIds","_currentUser$capabili2","groupedByTypeAndAccount","_item$type","_item$account","typeKey","accountKey","keys","hasChanges","flexDirection","_currentUser$capabili4","allServiceIds","prevSelected","accountName","accountIndex","serviceIndex","_currentUser$capabili5","isInitial","_currentUser$capabili","cursor","_selectedUser$userTyp","navigation","navigate","_accounts$find","AccountHeader","colSpan","_props$currentUser$ca4","_props$currentUser$ca5","filteredUsers","onSort","showUpdateServiceModal","setShowUpdateServiceModal","selectedUserForUpdate","setSelectedUserForUpdate","selectedAccountName","paginatedUsersForAccount","userDeleteTemplate","rowData","columnWidths","userIndex","_props$currentUser$ca6","textOverflow","userAreaTemplate","_userTypes$find","_props$currentUser$ca","userRole","_userTypes$find2","updatedUser","userRolTemplate","_props$currentUser$ca2","userProjectsTemplate","userEmailTemplate","userPhoneTemplate","_props$currentUser$ca3","userRecordTemplate","NewUser","Pagination","onPageChange","setCurrentPageUsers","localSelectedAccount","setLocalSelectedAccount","sortConfig","setSortConfig","field","direction","invoicesContainerRef","sortedUsers","sorted","valueA","valueB","ut","toString","localeCompare","lowerQuery","_user$name","_user$email","_user$phone","localLoading","setLocalLoading","_accounts$find2","Header","openNewUser","UserTable","prev","newPage","setInvoices","setInvoicesSummary","setInvoicesSummaryLoading","setMoreInvoices","updateInvoices","setInvoicesLoading","setDelayedInvoicesLoading","setMoreInvoicesLoading","setInvoicesContentLoading","setInvoicesDate","setInvoicesToPay","setInvoicesContent","setShowInvoiceDetailsContent","setInvoicesPeriods","setFilterStatus","setCurrentPage","setShowPay","setEmptyPaginationResult","downloadInvoiceAsync","blob","n","lastIndexOf","filename","substring","link","createObjectURL","setGraphData","setGraphloading","setIntervalGraph","setGraphDatesScroll","setGraphActive","setIndicatorsloading","setEnableScrollData","setShowReportModal","setReportloading","setTariff","setShowDetailService","loadGraphAsync","loadByScroll","requestLeft","metadata","getUnixTime","to","subYears","graphsOptions","graph_type","graphs_options","metadataTariff","startdate","enddate","energyResponse","currentGraphData","mergeAndRemoveDuplicates","arr1","arr2","uniqueKey","uniqueKeysSet","filteredArr2","has","_energyResponse$find","newResponseData","existingData","loadDetailService","useWindowSize","windowSize","setWindowSize","handleResize","innerWidth","innerHeight","addEventListener","removeEventListener","RenderWidgets","_item$value_title","_item$value_text","value_color","icon_color","image_url","Widget_ID","amplitude_event","objectFit","value_title","icon_text","value_text","RenderWidgetsEmpty","empty_widgets_slider","Widget_Back","loop","nextEl","prevEl","orderData","j","card","disableOnInteraction","Widget_Forward","SubMenuGraphs","setControlRemoteClick","selectedGraphs","showSubmenuGraphs","setShowSubmenuGraphs","graphActiveTemporal","setGraphActiveTemporal","guessBetterPosition","spaceBetweenPopoverAndTarget","areArrayEquals","val","limitWordLenght","string","limit","slice","setGraphLabel","withLimit","lastDashIndex","graphLabel","serviceName","controlledTypePicker","graphTypePicker","energyActions","setEnableAverageLine","_graphs","graphGroups","setGraphGroups","controlRemoteClick","disbaledGraphs","setDisbaledGraphs","setSelectedGraphs","setDisbaledGraphsValues","graphsDisabled","_graphsRelations","array","relation","_graph$","id_graph_relation","available","_value","_s$translatedGroup","_s$translatedGroup$to","translatedGroup","v","_activeServicesEnergy","_activeServicesEnergy2","_activeServicesEnergy3","fitMaxHeightToBoundsonChangeopen","graphGroup","_graphGroup$group","_selectedGraphs$","_graphGroup$group2","_graphGroup$graphData","_graphGroup$graphData2","graphSelectedCount","_graphData","borderRadius","ExtraItemsPopover","button","graphIntervalData","labelDescription","graphPeriodPicker","_graphIntervalData$fi","getIntervalLabel","Rank_ID","_activeGraphs$","_activeGraphs$2","_activeGraphs$3","_activeGraphs$4","domain","indexes","setIndexes","tot","max","avg","min","showIndexes","setShowIndexes","handlerIndexes","_data$","uniqueArray","x_sec","curr","toFixed","phrase","charAt","toUpperCase","capitalizedText","formatDateLabel","dateFormated","intervalLeft","intervalRight","locale","utc","tz","renderText","defaultRangeDate","CalendarRangePicker","previewDates","setPreviewDates","setDates","dateRangeEnergy","Transition","timeout","right","DateRange","es","enUS","pt","rangeColors","dateDisplayFormat","selection","showSelectionPreview","ranges","minDate","maxDate","startOfToday","showDateDisplay","showPreview","isDate","preview","onPreviewChange","previewDate","weekStartsOn","endOfWeek","range","isSameWeek","lastDates","borderBottomLeftRadius","borderBottomRightRadius","Calendar","next2Label","prev2Label","minDetail","maxDetail","nextLabel","prevLabel","payloadExport","report_name","dateFrom","dateTo","createReportAsync","startTime","endTime","format_type","currentstatus","anchor","appendChild","removeChild","payloadToExportInit","payloadToExport","setPayloadToExport","showCalendarDateFrom","setShowCalendarDateFrom","showCalendarDateTo","setShowCalendarDateTo","marginLeft","marginRight","overflow","dialogClassName","Datepicker","colors","hex","gradients25","gradientTransform","stopColor","gradients25Light","gradients50","gradient75","gradients","barStyles","fill","linearStyles","fillOpacity","stroke","strokeWidth","grid","pointerEvents","tickLabelsX","angle","fontFamily","tickLabelsY","tickStyle","StepProgressBar","status","steps","barWidth","progressBars","barColor","continuous","backProps","closeProps","primaryProps","tooltipProps","isLastStep","skipProps","backClickHandler","otherBackProps","nextClickHandler","otherNextProps","closeClickHandler","otherCloseProps","handleNextClick","tourViewed","assign","handleCloseClick","hideFooter","hideBackButton","handleBackClick","joyrideStyles","overlayColor","useTour","localStorageKey","isOpenDrawer","runTour","setRunTour","onTourFinish","run","setRun","stepIndex","setStepIndex","stepIndexControlled","setStepIndexControlled","handleJoyrideCallback","useCallback","_data$step","finishedStatuses","STATUS","FINISHED","SKIPPED","pulseEffect","EVENTS","STEP_AFTER","TARGET_NOT_FOUND","nextStepIndex","ACTIONS","PREV","Joyride","tooltipComponent","callback","scrollToFirstStep","showSkipButton","disableScrolling","floaterProps","arrow","disableCloseOnEsc","imageName","getImagePath","require","stepsGraphPeriod","ThemedImage","disableBeacon","disableOverlayClose","spotlightClicks","hideFooterTitle","stepsGraphCalendar","stepsGraphExportData","VictoryZoomVoronoiContainer","createContainer","handlerFormatAxis","stringFormats","zoomContainer","sampled","unix","getNextMonth","sampledTime","dateObject","day","add","firstHour","startOf","lastHour","endOf","week","month","getBarWidth","numOfGraphsSelected","graphCalendarPicker","graphExportData","controlledPeriodPicker","controlledCalendarPicker","controlledExportPicker","setGraphDates","setScrollActive","setDetailDataGraph","setPrevStateBar","_data$filter$","_data$filter$2","_data$filter$2$data","_data$filter$4","_data$filter$5","_data$filter$5$data","_data$filter$6","_data$filter$7","_data$filter$7$data","_data$2","_data$filter$8","_data$filter$9","_data$filter$9$data","_data$3","numLegendsToShow","graphContainer","graphContainerLoader","avgText","setEmptyData","graphContainerWidth","setGraphContainerWidth","setDomain","entireDomain","setEntireDomain","setData","grabbing","setGrabbing","typePickerRef","openGraphPeriodPicker","setOpenPeriodPicker","maxNormalize","setMaxNormalize","GENERATION","IRRADIANCE","PR","POWER_LIMITATION","loader","setLoader","setSampledTime","heightTypePicker","setHeightTypePicker","sortGraphData","_dataValues$","_$last","_$last2","_dataValues$2","_dataValues$3","dataValues","intervalX","getDate","frequency","_props$activeGraphs","_props$activeGraphs2","isNaN","valueOf","daysInMonth","getBoundingClientRect","emptyDataGraph","d","_props$activeGraphs4","_props$activeGraphs5","_props$activeGraphs3","getMaxNormalize","getMax","arr","_props$activeGraphs6","_props$activeGraphs7","irradiance","powerLimitation","RenderEmptyData","empty_graph_energy","empty_graph_energy_light","tourGraphType","tourGraphPeriod","tourGraphCalendar","tourGraphExportData","DotSliderLine","scale","currentDate","firstDateMonth","UTC","getUTCFullYear","getUTCMonth","firstDateTimestamp","getTime","x1","x2","y1","y2","cx","cy","r","textAnchor","alignmentBaseline","FinalDot","_style$data","_style$data2","valueData","stdDeviation","attributeName","dur","repeatCount","AverageLine","strokeDasharray","handleBarClick","_event","_data$datum","_data$datum2","targetDate","datum","targetDateYear","graphDateFromWeek","graphDateToWeek","graphDateFromMonth","graphDateToMonth","formatOperationStateValue","graph_operation_state_deteriorating","CustomFlyout","detailData","Content","_item$data$","reverse","_item$data$2","_props$activeGraphs8","_item$data$3","_item$data$4","fontWeight","graphLoadingContainer","GraphTypePicker","_activeServicesPlus$","GraphPeriodPicker","CalendarGraphEnergy","overflowX","graphDateFromYear","graphDateToYear","handlePrevStateBar","onMouseDown","onMouseUp","marginTop","Graphic_Back","nextValue","Graphic_Forward","transformOrigin","VictoryChart","domainPadding","bottom","containerComponent","allowZoom","allowDrag","allowDraw","allowResize","zoomDimension","zoomDomain","activateData","onZoomDomainChange","domainZoom","voronoiDimension","labels","labelComponent","VictoryTooltip","flyoutComponent","VictoryGroup","VictoryBar","valueY","barRatio","cornerRadius","topRight","topLeft","_ref7","events","eventHandlers","mutation","onMouseOut","_service$type4","VictoryArea","interpolation","dependentAxis","_data$filter$3","itemPercentage","_itemPercentage$","_itemPercentage$2","VictoryAxis","tickFormat","round","tickLabelComponent","VictoryLabel","dx","dy","verticalAnchor","backgroundPadding","backgroundStyle","backgroundComponent","Rect","axis","tickLabels","axisLabel","_props$activeGraphs9","_props$activeGraphs10","tickValues","_props$activeGraphs11","singleQuadrantDomainPadding","_ref8","_props$activeGraphs12","_props$activeGraphs13","GraphIndicators","ExportGraph","esLocale","enLocale","Link","fromEnergy","textTransform","year","empty_card_bill","setActiveServices","showActiveServices","activeServiceDetail","setActiveServiceDetail","mouseEnterDelay","far","fas","servicesLoading","columns","actions","deleteAction","getTableBodyProps","headerGroups","prepareRow","useTable","useSortBy","usePagination","userSelected","setUserSelected","headerGroup","getHeaderGroupProps","column","getHeaderProps","getSortByToggleProps","textAlign","render","isSorted","isSortedDesc","row","getRowProps","cells","cell","verticalAlign","getCellProps","amplitude","getInstance","logEvent","accessor","canPreviousPage","canNextPage","pageOptions","nextPage","previousPage","setPageSize","pageIndex","pageSize","closeButton","Body","Table","roleIds","idJob","Footer","initUserForm","isValidateString","createUserAsync","userForm","setUserForm","userLoadingContainer","User_Profile","Assigned_Project_ID","loadUsersByServiceAsync","serviceId","_activeServiceDetail$","ActiveServices","filteredPlusServices","image","UserList","UserCreate","stepsService","onboarding_service_title_step3","onboarding_service_description_step3","analytics","getAnalytics","CardsContent","mainCard","widthCard","Invoice","Cards","serviceDetail","controlledServicePicker","loadIndicatorsAsync","indicatorsData","metadataInvoice","promises","Promise","resolve","all","indicatorsResponse","invoicesResponse","invoicesActions","loadGraphOptionsAsync","groups","translationKey","graphResponse","getUserPreferenceInfoAsync","loadBannersAsync","_user$job","id_account","typeservices","job_area","_props$history$locati","historyData","setHistoryData","user_name","tourServiceDetail","handleFirstTourFinish","paddingBottom","ServicesContainer","Graph","progress","setShowAccount","CircularProgressbarWithChildren","trail","moduleIcons","efficiency","equote","pm","DynamicMenu","userModules","role","filteredModules","redirect","worker","paddingLeft","paddingRight","_language","idModule","RoleSelection","getActivePath","setMenu","user_modules","is_worker","showRoles","setShowRoles","setRole","availableRoles","_user_modules$find","sortModules","modules","roleType","priority","paddingTop","onMouseEnter","LogoDark","LogoLight","User","trackWidth","indicatorWidth","indicatorColor","s_role","mod","handleRoleSelection","changeFocus","fontIcon","typeIcon","colorIcon","amplitudeEvent","invoiceShow","loadInvoiceDetailsContent","_periodInfo$invoicesC","periodInfo","id_period","periodDate","billing_date","_periodInfo$invoicesC2","servicesIdsLoaded","getMonth","getFullYear","type_content","c","dian_resolution","Logo","bill","total","billed_since","billed_until","bill_date","due_date","suspension_date","outstanding_balance","creg_1050072024","customer_name","contract","type_id","niu","factor_embedded","service_name","billing_address","city_name","state_name","is_unregulated_market","days_billed","avg_6_months","number","isLast","isDeviation","creg_1050072024_r","textColor","cu","quantity","pixels","consumption","reactive_factor","amount_billed_reactive_inductive","amount_billed_reactive_capacitive","amount_billed_reactive","or","distr_circuit","transf_number","meter_code","voltage_level","social_stratum","asset_ownership","location_type","tariff_type","start","g_percentage","strokeLinecap","t_percentage","d_percentage","cv_percentage","cot","cv","pr_percentage","pr","r_percentage","cr_percentage","cr","concepts","concept","service_type","_invoiceDetailsConten","_invoiceDetailsConten2","items","toLocaleLowerCase","cp","conceptIndex","code","TooltipInfo","unit_value","subtotal_concepts","consumption_month","creg_1050072024_consumption","difference_abs","creg_1050072024_r_state","creg_1050072024_r_consumption_v0","consumption_month_r","abs","parseFloat","creg_1050072024_r_consumption","charges","iva","negative_balance","subtotal","capital","payments_capital","new_negative_balance","notices","creg_0152018_month","diug_pixels","diu_pixels","dium_pixels","thc_pixels","fiug_pixels","fiu_pixels","fium_pixels","tvc_pixels","quality_group","dt","hc","cf","vc","mc","cec","mf","pdt","invoice_content_text_app_web_payment_description","VisaLogo","MastercardLogo","AmericanLogo","PSELogo","textDecoration","encryptedId","encryptId","keyBytes","CryptoJS","enc","Utf8","iv","AES","encrypt","CBC","pad","Pkcs7","ciphertext","Base64url","encryptedLink","QRCode","signature","VigiladoLogo","qr","cufe","invoiceModalIndexes","groupedData","setPreviousInvoiceModal","setFollowingInvoiceModal","dateGroupIndex","showInvoice","setShowInvoice","setInvoicesModalIndexes","invoiceIndex","reference","invoiceUrl","pdf_path","InvoiceDetails","setSortField","setSortOrder","cleanDate","handleOpenModal","formatNumber","string_value","values_part","integerValue","decimalValue","dateHeaderTemplate","stringMonth","getMonthName","sortByServiceName","newSortOrder","accountGroup","newIsSelected","newTotalConsumption","newTotalPayment","selected","toggleInvoiceSelection","invoiceServiceNameTemplate","invoiceReferenceTemplate","surfaceBgOnSurface","surfaceBgOnSurfaceAlpha","invoiceTariffTemplate","invoiceConsumptionTemplate","state_string","bg_color","expiration","date_expiration","statusTemplate","formattedTotalPayment","invoicePayTemplate","invoiceDetailTemplate","expiratioDnate","addHours","separatedDate","viewBox","xmlns","fill-rule","clip-rule","fill-opacity","stroke-opacity","stroke-width","stroke-linecap","stroke-linejoin","_invoices","selectAll","allAccountsSelected","filterPendingInvoices","notSelectedPedingInvoices","selectedPedingInvoicesArray","selectedPedingInvoices","totalConsumption","accum","dynamicPedingInvoices","dynamicSelectedPedingInvoices","toggleSelectAll","handleFilterPendingInvoices","PseIconLight","PseIconDark","VisaIconLight","VisaIconDark","_totalAccounts","_totalServices","openAccountDrawer","accountPickerRef","fromEnergyAccount","energyAccounts","setEnergyAccounts","setTotalAccounts","normalizeText","normalize","activeServicesEnergyAccountIds","_s$account","normalizedAccounts","visible","boxShadow","toggleSelectedAccount","onSaveChanges","deselectedAccounts","energyAccountsIds","newActiveServicesInvoices","currentIdAccount","setTypeComponent","setInfoPayment","setPaymentLoading","setPsePaymentAsync","pseProvider","id_bills","URL_BANK","setCardPaymentAsync","redirect_url","errorMessage","paysActions","setPaymentProvider","provider","PseLight","PseDark","fees","_infoPayment$card_nam","_infoPayment$id_docum","_infoPayment$address","_infoPayment$card_num","_infoPayment$card_exp","_infoPayment$card_exp2","_infoPayment$card_cvv","initInfo","id_external_user","id_document","card_name","card_number","card_expiration_year","card_expiration_month","card_cvv","payments","defaultInfo","setDefaultInfo","invoices_card_payment_bank","invoices_card_payment_cardholder","texto","expresionRegular","RegExp","grupos","separarTexto","invoices_card_payment_cardholder_name","invoices_card_payment_equal_cardholder_name","invoices_card_payment_cardholder_document","invoices_card_payment_number","invoices_card_payment_instalments","loadBankDataAsync","DATA","_infoPayment$name","_infoPayment$phone","_infoPayment$email","userLegalTypes","last_name","financial_institution_code","user_legal_id_type","user_type","bankData","setShowBankData","Component","CardPayment","PsePayment","PaymentMethod","loadPaymentMethodsAsync","loadingOpenPay","setLoadingOpenPay","isValidatePseString","isValidateCardString","isValidUserByPse","invoices_card_payment_methods","decimalScale","fixedDecimalScale","Payment_Method","Bill_Quantity","showCardError","alert_pay_popup_card_cvv","alert_pay_popup_card_expiration_year","alert_pay_popup_card_expiration_month","alert_pay_popup_card_number","alert_pay_popup_card_name","showPseError","mapDispatchToProps","end","clearDate","clear","selectedDate","setSelectedDate","subMonths","invoiceOnboarding","loadInvoicesAsync","loadInvoices","searchText","pendingInvoices","periodId","Error","loadInvoicesSummaryAsync","summary","loadMoreInvoicesAsync","clonededInvoices","setInvoiceShow","setInvoiceShowIndex","loadInvoicesPeriodsAsync","_setInvoices","filteredByActiveServices","setFilteredByActiveServices","zoomIn","setZoomIn","setInvoiceUrl","isExpanded","setIsExpanded","debounceSearchInvoices","setDebounceSearchInvoices","searchInvoices","setSearchInvoices","setOpenAccountDrawer","openInvoiceStateModal","setOpenInvoiceStateModal","loadingDownload","setLoadingDownload","setCleanDate","setSelectAll","setFilterPendingInvoices","setFromEnergyAccount","searchInputContainerRef","searchInputRef","invoiceStateModal","handleDocumentClick","contains","handleClickOutside","_location$state","activeAccountsIds","invoicesPerPage","oldInvoice","selectedCurrentInvoice","clearTimeout","tourInvoice","activeAccounts","customer","customerDate","toISOString","groupDataByAccountAndDate","handleInvoicesContainerScroll","appear","enter","AccountDrawer","getMonthLabel","strDate","stringFormat","stringFormatDate","CalendarInvoices","Bill_status_ID","SETBlobFile","revokeObjectURL","transitionProperty","transitionTimingFunction","transitionDuration","InvoiceTable","InvoiceSummary","revertSummary","Pay","InvoiceModal","newAccountIndex","newInvoiceIndex","newDateGroupIndex","previousAccount","newInvoice","stepsUser","setShowMainInfo","logout","loginActions","setProfileProgress","updateInfoUserAsync","getUserImageAsync","generateUserApiTokenAsync","credential","_user$idDocument","_user$lastname","_user$address","_user$roleIds","_user$idLanguage","_props$userTokenApi","setUserImage","setIsLoading","FormData","append","SETFile","_result","alert_failed_change_image","languages","_user","setUserData","userChanges","setUserChanges","isLoading","mainInfo","tokenApi","setTokenApi","tourUser","_user$jobs","showAccount","idLanguage","borderTopLeftRadius","_props$userTokenApi2","urlData","subscription","setDataGraph","setLoadingInitData","setEnableHistory","setDataGraphStreaming","setEnergyQuality","setLoadingEnergyQuality","setAlwaysOn","setLoadingAlwaysOn","setIndicators","setLoadingIndicators","setComparatives","setLoadingComparatives","setTagRecords","setLastConection","setLastDay","setLastPage","setOpenQualityEnergy","setDataGraphAlwaysOn","setDataGraphHistoryInit","setGraphDatesScrollAlwaysOn","setEnableScrollDataAlwaysOn","setLoadingAlwaysOnModule","setAlwaysOnIndicators","setLoadingAlwaysOnIndicators","connectToIoTCore","Amplify","configure","addPluggable","AWSIoTProvider","aws_pubsub_region","aws_pubsub_endpoint","PubSub","subscribe","next","convertDataGraph","dataConverted","_Date","_data$timestamp","device_id","time","active_power","active_energy","reactive_power","reactive_energy","active_power_1","rms_voltage_1","rms_current_1","power_factor_1","active_power_2","rms_voltage_2","rms_current_2","power_factor_2","active_power_3","rms_voltage_3","rms_current_3","power_factor_3","_getState$plus$device2","_currentDevice$2","currentDevice","_getState$services$ac4","close","loadInitData","_getState$services$ac5","_getState","unsubscribe","deviceActive","_deviceActive","_deviceActive2","_deviceActive3","_deviceActive4","timezone","_response$body2","_getState$plus$device3","_currentDevice$3","_getState$services$ac6","idDevice","nextShardId","loadStreamingData","loadHistoryData","_getState$services$ac","_deviceActive$","getDataRedis","_dataGraph$","_dataGraph$2","_getState$services$ac2","isLessHour","_deviceActive$2","_response$body","_getState$plus$device","_currentDevice$","_getState$services$ac3","getDataAthenaRedis","_getState$services$ac7","_deviceActive5","_deviceActive6","_response$body3","_getState$plus$device4","_currentDevice$4","_getState$services$ac8","shardId","_getState$services$ac9","_deviceActive7","_deviceActive8","_response$body4","_response$nextShardId","_getState$plus$device5","_currentDevice$5","_getState$services$ac10","loadDevices","_result$body","loadAppliances","_getState$services$ac14","addAppliance","loadGraphAlwaysOnAsync","_energyResponse","_energyResponse$body","_energyResponse2","setSelectedOption","phases","property","Plus_Variable_ID","appliance","custom_name","plusActions","setAppliance","brand","_props$activeServices","validate","DataAppliances","Devices","appliancesSelected","showInfoDevice","setShowInfoDevice","id_appliance","id_tag","active_cons","addTags","pointOne","pointTwo","showCreateDevice","setShowCreateDevice","setDevices","setAppliancesSelected","_d$custom_name","initial_timestamp","final_timestamp","empty_modules_plus","CreateDevice","handleDownloadCSV","setStepDownload","objectUrl","dispatchEvent","MouseEvent","bubbles","cancelable","view","downloadBlob","nameFile","deviceId","projectName","stepDownload","_props$activeServices2","statusCode","exportFile","BouncingDotsLoader","_item","getInitPage","initPageByTime","toLocaleString","timeZone","getHours","LoadingHistoryData","VictoryZoomContainer","areaStyle","loadingData","graphContinerWidth","resetData","defaultOption","pointTagDragInit","positionX","setOptions","setDay","showStreaming","setShowStreaming","indicatorZoom","setIndicatorZoom","zoomMinutes","setZoomMinutes","showExportGraph","setShowExportGraph","grabbingTag","setGrabbingTag","pointTagDrag","setPointTagDrag","enableTag","setEnableTag","setPointOne","setPointTwo","active1","setActive1","active2","setActive2","showCreateTag","setShowCreateTag","pointTooltip","setPointTooltip","showTooltip","setShowTooltip","dataDomain","setDataDomain","enableLoaderGraph","setEnableLoaderGraph","minValueY","minBy","maxValueY","maxBy","intervalY","filtered","minValueYDomain","maxValueYDomain","intervalYDomain","_dataGraphNoInit$","widthDomain","timeStampEstimated","itemSelected","k","ceil","_d","dataGraphNoInit","firstAvailablePage","verifyPageLeft","handleBeforeDay","_props$dataGraphPage","verifyPage","handleAfterDay","handleZoomIn","handleZoomOut","positionAdjusted","DotSliderArea","points","y_value","_y","x_value","_props$activeServices3","GraphPicker","Slide","onActivated","point","Draggable","onStart","onStop","onDrag","bounds","empty_data_device","empty_data_device_light","CreateTag","Plus_Widget_ID","kpi","increment","positive","empty_widgets_slider_light","BiPhaseGraph","_props$label","radarStyle","ticks","axisStyle","polar","startAngle","endAngle","gradient","VictoryPolarAxis","tickCount","_props$label2","axisAngle","labelPlacement","axisLabelComponent","ThreePhaseGraph","_props$label3","_props$label4","_props$label5","IndicatorsLoading","RenderCardEmpty","empty_modules_plus_light","loadEnergyQuality","_getState$services$ac11","states","streaming","indicator","info","indexVariable","loadingContainer","loadAlwaysOn","_getState$services$ac12","_result$body2","avgData","setAvgData","mean","dow","bottomLeft","bottomRight","Location","loadComparatives","_value$type","allValues","typesSelected","setTypesSelected","selectedAllServices","setSelectedAllServices","servicesActive","setServicesActive","disabledServices","setDisabledServices","_services","Services","loadIndicators","_getState$services$ac13","graphContiner","setGraphContinerWidth","empty","RenderEmptyService","ServicesPlus","Radar","AlwaysOn","Rank","urlFrame","frameEfficiency","contentWindow","postMessage","token_key","token_value","strokeOpacity","tag","processed","_$maxBy","allowPan","_props$data","colorScale","_datum$active_power","_datum$reactive_power","empty_data_tag","empty_data_tag_light","_props$item","applianceSelected","setApplianceSelected","deviceSelected","_props$item2","loadTagRecords","_result$body3","resultModified","setDeviceSelected","_setSearch","_props$account","_props$appliances$","_item$custom_name","_item$custom_name$toL","_item$custom_name2","_item$custom_name2$to","GraphPower","create_timestamp","reactive_cons","setGraphs","setActiveReports","setReportLoading","setNewReportLoading","setNewReport","setShowContentHeader","getReportsAsync","reports","report","file_name","downloadReportsAsync","reportDetailed","showActiveReports","setReportDetailed","setSelectedTypeOfReport","selectedReport","geniusActions","setExpanded","id_report","SubMenu","activatedAllOptions","setActivatedAllOptions","screenSize","list","mergedIds","mergeObjectsWithoutDuplicateIds","tooltip","getGraphsByServiceAsync","labelDetail","labelButton","buttonText","allowSearch","showSelected","typeReport","filterName","outsideButtonEvent","insideButtonEvent","allOptionButtonEvent","externalShowEvent","setExternalShowEvent","o","filterValue","countByType","groupsWithCount","count","scrollY","ids_service","closeOnScroll","_item$options_graphs","_item$options_graphs$","_item$options_graphs$2","name_category","options_graphs","parseISO","htmlUrl","excelUrl","setFileName","dateRange","setDateRange","_dateRange$","_dateRange$2","Rank_Date","MonthYearPicker","onShownDateChange","showMonthAndYearPickers","staticRanges","inputRanges","loadingContent","duplicateReport","deviceIds","generateReportAsync","_getState$services$to","isPPA","source","start_date","end_date","zoho_crm_id","zoho_crm_module","emails","setReportGenerated","bodyPPA","statusReport","deleteReportAsync","setServiceType","setGraphsType","getGraphsReportAsync","initReport","duplicate","setReport","serviceSelected","setServiceSelected","graphSelected","setGraphSelected","typeOfReport","setTypeOfReport","selectedTypeOfReport","setSelectedReport","premium","setPremium","payloadPPA","setPayloadPPA","getYear","dataGroupGraphs","prevReport","isValidReport","self","types","generationIds","consumptionIds","generationServices","_s$type","consumptionServices","_s$type2","show_genius_ppa_report","filteredTypeReport","_graphSelected","Genius_Variable_ID","ActiveReports","ExportReport","file_excel","Picker","created_time","isoDateString","endOfMonth","details","getMonthAndYearDetails","new_graph","id_graphs","marginBottom","empty_report_genius_dark","empty_report_genius_light","changePeriod","_graphContainer$curre","date_unix","eventHandler","Standby_Widget_ID","text_value","loadAlwaysOnIndicators","_activeServicesPlus$2","loadingGraph","variable","line","variableName","graph_1","setGraph_1","graph_2","setGraph_2","graph_3","setGraph_3","firstLine","setFirstLine","secondLine","setSecondLine","thirdLine","setThirdLine","typeLines","setTypeLines","setIndexVariable","expandedVariable","setExpandedVariable","expandedLine","setExpandedLine","Quality_Variable_ID","handlerIndexVariable","handlerVariable","_areaStyle$","_areaStyle$$data","_areaStyle$2","_areaStyle$2$data","_areaStyle$3","_areaStyle$3$data","_areaStyle$4","_areaStyle$4$data","_areaStyle$5","_areaStyle$5$data","_areaStyle$6","_areaStyle$6$data","_areaStyle$7","_areaStyle$7$data","y_1","y_2","y_3","y_value_1","y_value_2","y_value_3","VictoryLine","maxDomain","tick","VictoryStack","PowerFactor","Graphs","AnimatedComponent","currentIndex","setCurrentIndex","isEntering","setIsEntering","setInterval","clearInterval","animationStyle","bounceIn","bounceInRight","bounceOut","bounceOutLeft","animationDuration","animationFillMode","elementToRender","stepsDashboard","disableAnimation","startDashboardOnboarding","setActiveServicePreonboarding","tour","onboarding","handleMessageFromIframe","origin","statusInvoice","skippedOnboarding","finishedOnboarding","framePreonboarding","userChatCapability","preonboarding_chat_input_access","onboardingSections","showBetaMessage","currentView","setCurrentView","isShowing","setIsShowing","section","setSection","showSection","show_onboarding_modals","getData","showInvoices","onboardingGeneration","imgPath","ercoComputer","classImageContainer","ercoGeneration","classImage","ercoEfficiency","ercoScreen","onboardingPreonboarding","leftChat","rightChat","nextStepsInfoConsumption","handWithPhone","consumptionInfo","energyReceipt","show_section_invoices","isLastObject","handleContinueClick","faChevronRight","RateNumber","elements","charCounter","setCharCounter","surveyValue","setSurveyValue","qualify","comment","specific_reason","firstSend","setFirstSend","setService","resize","maxLength","handleSend","toast","dismiss","loadUserNpsAsync","show_nps_survey","PopUpScore","toastId","ToastContainer","autoClose","pauseOnFocusLoss","closeOnClick","frameVolt","initialSelected","accessToken","setAccessToken","setOpen","setSelected","setReports","menuRef","embedConfig","setEmbedConfig","embedUrl","panes","filters","pageNavigation","models","BackgroundType","Transparent","statusText","filteredReports","json","fetchReports","prevConfig","fetchAccessToken","report_id","url_embedded","handleSelect","PowerBIEmbed","Map","detail","cssClassName","getEmbeddedComponent","embeddedReport","frameEquote","backToken","tempToken","MODAL_VIEWS","modalView","setModalView","openModal","setOpenModal","businessUnitsList","setBusinessUnitsList","preferencesList","setPreferencesList","businessUnitSelected","setBusinessUnitSelected","preferencesSelected","setPreferencesSelected","setPosition","savingPreferenceData","setSavingPreferenceData","validateFields","errors","businessUnits","getBusinessUnits","preferences","getPreferences","show_section_onboarding","gridTemplateColumns","columnSpan","valueText","container","currentPreference","idInterest","p","handleClickPreference","DarkIncompleteUserInfoFinishedSVG","LightIncompleteUserInfoFinishedSVG","personalInterestIds","usePlatform","idBusinessUnit","onChangeEdit","onChangeDuplicate","setOpenDeleteModal","DeleteAlertModal","deleteAlertAsync","AlertsLoading","RenderAlert","_alert$services$","PopoverAlerts","openDeleteModal","emptyDataAlertsLight","setShowBannerChatbot","setScreenPaddingBottom","dragItem","dragged","windowWidth","windowHeight","lumiStyleActive","lumiStyleInactive","initialLeftPosition","initialTopPosition","setStyle","topPosition","setTopPosition","leftPosition","setLeftPosition","isReturning","setIsReturning","isDragging","setIsDragging","handleMouseMove","newLeft","clientX","elementWidth","newTop","clientY","elementHeight","handleMouseUp","onPointerDown","startX","startY","onPointerUp","tutorialListInfo","chatBot","tutorialFunction","tutorialListInfoGlobal","showItems","setShowItems","TutorialContainer","tutorial","stepsProfile","scrollOffset","stepsWalktrough","RadialBlueGradient","RadialBlueLightGradient","RadialGreenGradient","RadialGreenLightGradient","RadialPurpleGradient","RadialPurpleLightGradient","LinearRedOrangeGradient","ProtectedRoute","component","hasAccess","rest","Route","Redirect","controlledNewAlert","setShowBlackScreenIframe","_user$capabilities6","_user$capabilities7","_user$capabilities8","_user$capabilities9","_user$capabilities10","_user$capabilities11","tourProfile","tourAlerts","tourWalktrough","LumiBanner","Menu","Account","Alerts","OnboardingSections","OnboardingModal","show_feedback_new_platform_survey","IncompleteUserInfoModal","NpsSurvey","Switch","exact","Energy","Dashboard","Invoices","Plus","show_section_plus","Genius","show_section_genius","Efficiency","show_section_efficiency","Users","Volt","Equote","show_section_equote","Analytics","show_section_analytics","TagManager","QualityEnergy","Preonboarding","showAlert","generateCodeAsync","messageError","setCounter","loadInfoUserAsync","resultUser","_resultUser$jobs","_resultUser$capabilit","setCodeTries","logo","setInput","input","AuthCode","containerClassName","inputClassName","allowedCharacters","trimStart","trimEnd","PaidStatus","statusMessage","statusIcon","margin","this","transaction","invoices_paid_text_method","amount","componentRef","setTransaction","queryString","complement","ticket","order","ReactToPrint","copyStyles","appStore","playStore","frameOnboarding","App","componentDidMount","_document$querySelect","currentVersion","querySelector","storedVersion","caches","names","delete","reload","updateBodyClass","componentDidUpdate","prevProps","componentWillUnmount","classList","Provider","store","MobileScreen","Paid","Login","Onboarding","Main","_App","displayName","baseUrl","getElementsByTagName","getAttribute","createRoot","BrowserRouter","basename","tab","webpackContext","req","webpackContextResolve","__webpack_require__"],"mappings":"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QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,2C,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,kD,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,2C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,6C,oBCA3CD,EAAOC,QAAU,IAA0B,gD,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,2C,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,kD,oBCA3CD,EAAOC,QAAU,IAA0B,0C,kBCA3CD,EAAOC,QAAU,8wX,oBCAjBD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,2C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,gD,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,2C,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,kD,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,2C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,6C,oBCA3CD,EAAOC,QAAU,IAA0B,gD,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,2C,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,kD,oBCA3CD,EAAOC,QAAU,IAA0B,0C,kBCA3CD,EAAOC,QAAU,swW,oBCAjBD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,4C","file":"static/js/main.5a82d339.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/logo-enrg-white.f00809fa.svg\";","export const SET_MENU = 'SET_MENU';\r\nexport const SET_CURRENT_MODULE = 'SET_CURRENT_MODULE';\r\nexport const SET_LANGUAGE = 'SET_LANGUAGE';\r\nexport const SET_SHOW_BLACK_SCREEN = 'SET_SHOW_BLACK_SCREEN';\r\nexport const SET_SHOW_BLACK_SCREEN_IFRAME = 'SET_SHOW_BLACK_SCREEN_IFRAME';\r\nexport const LOGOUT = 'LOGOUT';\r\nexport const SET_SHOW_CALENDAR = 'SET_SHOW_CALENDAR';\r\nexport const SET_SHOW_BLACK_SCREEN_DRAWER = 'SET_SHOW_BLACK_SCREEN_DRAWER';\r\nexport const SET_SHOW_NPS_SURVEY = 'SET_SHOW_NPS_SURVEY';\r\nexport const SET_START_ONBOARDING = 'SET_START_ONBOARDING';\r\nexport const SET_CONTROLLED_ONBOARDING = 'SET_CONTROLLED_ONBOARDING';\r\nexport const SET_SHOW_DRAWER_ONBOARDING = 'SET_SHOW_DRAWER_ONBOARDING';\r\nexport const SET_SHOW_PULSE_ANIMATION = 'SET_SHOW_PULSE_ANIMATION';\r\nexport const SET_SCREEN_PADDING_BOTTOM = 'SET_SCREEN_PADDING_BOTTOM';","import * as creators from '../creators/Login';\r\n\r\nconst initialState = { \r\n step: 0,\r\n loading: false,\r\n resending: false,\r\n counter: 60,\r\n codeTries: 0\r\n};\r\n\r\nexport const loginReducer = (state = initialState, { type, payload }) => {\r\n switch (type) { \r\n case creators.SET_STEP:\r\n return { ...state, step: payload };\r\n case creators.SET_LOADING:\r\n return { ...state, loading: payload };\r\n case creators.SET_RESENDING:\r\n return { ...state, resending: payload };\r\n case creators.SET_COUNTER:\r\n return { ...state, counter: payload };\r\n case creators.SET_CODE_TRIES:\r\n return { ...state, codeTries: payload };\r\n default:\r\n return state;\r\n }\r\n}","import * as creators from \"../creators/Users\";\r\n\r\nconst initialState = {\r\n user: null,\r\n profileProgress: 0,\r\n savingInfoUser: false,\r\n userAccessEdit: null,\r\n showCreateUserModal: false,\r\n showUsersListModal: false,\r\n userJobs: [],\r\n usersAccount: [],\r\n usersAccountLoading: true,\r\n userChannels: [],\r\n userPersonalInterests: [],\r\n userPreferenceInfo: null,\r\n showUserPreferencesModal: null,\r\n userTokenApi: null,\r\n usersLoading: false,\r\n users: [],\r\n totalUsers: 0,\r\n currentPage: 1,\r\n loadingMoreUsers: false,\r\n totalPagesUsers: 0,\r\n showUserTypeModal: false,\r\n showInviteSuccessModal: false,\r\n userServicesSelected: {\r\n newServices: [],\r\n updatedServices: [],\r\n },\r\n userDetail: null,\r\n userAccountSelected: {\r\n newServices: null,\r\n updatedServices: null,\r\n users: null,\r\n },\r\n usersToInvite: [],\r\n userRegisteredLoading: false,\r\n infoInviteSuccessModal: null,\r\n loadingUpdateUser: false,\r\n loadingDeleteUser: false,\r\n accountSelectedUsersTable: null,\r\n userTypesSelect: [],\r\n};\r\n\r\nexport const usersReducer = (state = initialState, { type, payload }) => {\r\n switch (type) {\r\n case creators.SET_USER:\r\n return { ...state, user: payload };\r\n case creators.SET_USER_CAPABILITIES:\r\n const user = state.user;\r\n return { ...state, user: { ...user, capabilities: { ...user.capabilities, ...payload } } };\r\n case creators.SET_PROFILE_PROGRESS:\r\n return { ...state, profileProgress: payload };\r\n case creators.SET_SAVING_INFO_USER:\r\n return { ...state, savingInfoUser: payload };\r\n case creators.SET_USER_ACCESS_EDIT:\r\n return { ...state, userAccessEdit: payload };\r\n case creators.SET_SHOW_CREATE_USER_MODAL:\r\n return { ...state, showCreateUserModal: payload };\r\n case creators.SET_SHOW_USERS_LIST_MODAL:\r\n return { ...state, showUsersListModal: payload };\r\n case creators.SET_USER_JOBS:\r\n return { ...state, userJobs: payload };\r\n case creators.SET_USERS_ACCOUNT:\r\n return { ...state, usersAccount: payload };\r\n case creators.SET_USERS_ACCOUNT_LOADING:\r\n return { ...state, usersAccountLoading: payload };\r\n case creators.SET_USER_CHANNELS:\r\n return { ...state, userChannels: payload };\r\n case creators.SET_USER_PERSONAL_INTERESTS:\r\n return { ...state, userPersonalInterests: payload };\r\n case creators.SET_USER_PREFERENCE_INFO:\r\n return { ...state, userPreferenceInfo: payload };\r\n case creators.SET_SHOW_MODAL_USER_PREFERENCE:\r\n return { ...state, showUserPreferencesModal: payload };\r\n case creators.SET_USER_TOKEN_API:\r\n return { ...state, userTokenApi: payload };\r\n case creators.SET_LOADING_NEW_USER:\r\n return { ...state, usersLoading: payload }; \r\n case creators.SET_USERS:\r\n return { ...state, users: payload };\r\n case creators.SET_TOTAL_USERS:\r\n return { ...state, totalUsers: payload };\r\n case creators.SET_CURRENT_PAGE_USERS:\r\n return { ...state, currentPage: payload };\r\n case creators.SET_LOADING_MORE_USERS:\r\n return { ...state, loadingMoreUsers: payload };\r\n case creators.SET_TOTAL_PAGES_USERS:\r\n return { ...state, totalPagesUsers: payload };\r\n case creators.SET_SHOW_USER_TYPE_MODAL:\r\n return { ...state, showUserTypeModal: payload };\r\n case creators.SET_SHOW_INVITE_SUCCESS_MODAL:\r\n return { ...state, showInviteSuccessModal: payload };\r\n case creators.SET_USER_SERVICES_SELECTED:\r\n const currentSelectedServices = { ...state.userServicesSelected };\r\n currentSelectedServices[payload.key] = payload.value;\r\n return { ...state, userServicesSelected: currentSelectedServices };\r\n case creators.SET_USER_DETAIL:\r\n return { ...state, userDetail: payload };\r\n case creators.REMOVE_USER_ACCOUNT_SUCCESS:\r\n return {\r\n ...state,\r\n users: state.users.map((user) => (user.idUser === payload.idUser ? payload : user)),\r\n userAccountSelected: {\r\n ...state.userAccountSelected,\r\n users: null,\r\n },\r\n loadingDeleteUser: false,\r\n };\r\n case creators.SET_USERS_TO_INVITE:\r\n return { ...state, usersToInvite: payload };\r\n case creators.SET_USER_REGISTERED_LOADING:\r\n return { ...state, userRegisteredLoading: payload };\r\n case creators.SET_INFO_INVITE_SUCCESS_MODAL:\r\n return { ...state, infoInviteSuccessModal: payload };\r\n case creators.SET_LOADING_UPDATE_USER:\r\n return { ...state, loadingUpdateUser: payload };\r\n case creators.SET_LOADING_DELETE_USER:\r\n return { ...state, loadingDeleteUser: payload };\r\n case creators.SET_ACCOUNT_SELECTED_USERS_TABLE:\r\n return { ...state, accountSelectedUsersTable: payload };\r\n case creators.SET_USER_TYPES:\r\n return { ...state, userTypes: payload };\r\n case creators.SET_USER_TYPES_SELECT:\r\n return { ...state, userTypesSelect: payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { addDays, addMonths, addYears, startOfWeek, startOfMonth, startOfYear, format } from 'date-fns';\r\nimport esLocale from 'date-fns/locale/es';\r\nimport enLocale from 'date-fns/locale/en-US';\r\n\r\nexport const calendarIntervals = [\r\n \"month\", \"month\", \"year\", \"decade\"\r\n];\r\n\r\nexport const setCalendarDates = (value, interval) => {\r\n\r\n switch (interval) {\r\n case 0:\r\n return {\r\n graphDateFrom: value,\r\n graphDateTo: value\r\n };\r\n case 1:\r\n return {\r\n graphDateFrom: addDays(startOfWeek(value, 0), 1),\r\n graphDateTo: addDays(startOfWeek(value, 0), 7)\r\n };\r\n case 2:\r\n return {\r\n graphDateFrom: startOfMonth(value),\r\n graphDateTo: addDays(addMonths(startOfMonth(value), 1), -1)\r\n };\r\n case 3:\r\n return {\r\n graphDateFrom: startOfYear(value),\r\n graphDateTo: addYears(startOfYear(value), 1)\r\n };\r\n default:\r\n return null\r\n }\r\n};\r\n\r\nexport const stringFormatDate = (value, interval, language = 'es') => {\r\n\r\n const locale = language === 'es' ? esLocale : enLocale;\r\n\r\n let stringFormat; \r\n\r\n switch (interval) {\r\n case 0:\r\n stringFormat = 'EEEE, dd MMMM yyyy';\r\n break;\r\n case 1:\r\n stringFormat = 'dd MMMM yyyy';\r\n break;\r\n case 2:\r\n stringFormat = 'MMMM yyyy';\r\n break;\r\n case 3:\r\n stringFormat = 'yyyy';\r\n break;\r\n default:\r\n return null\r\n }\r\n\r\n return format(value, stringFormat, { locale: locale })\r\n};\r\n\r\nexport const setCalendarDatesEnergy = (value, interval) => {\r\n\r\n switch (interval) {\r\n case 0:\r\n return {\r\n graphDateFrom: value.startDate,\r\n graphDateTo: value.endDate\r\n };\r\n case 1:\r\n return {\r\n graphDateFrom: addDays(startOfWeek(value.startDate, 0), 1),\r\n graphDateTo: addDays(startOfWeek(value.endDate, 0), 7)\r\n };\r\n case 2:\r\n return {\r\n graphDateFrom: startOfMonth(value.startDate),\r\n graphDateTo: addDays(addMonths(startOfMonth(value.endDate), 1), -1)\r\n };\r\n case 3:\r\n return {\r\n graphDateFrom: startOfYear(value.startDate),\r\n graphDateTo: addYears(startOfYear(value.endDate), 1)\r\n };\r\n default:\r\n return null\r\n }\r\n};\r\n\r\nexport const sortByDate = (a, b) => { \r\n if (a.date < b.date)\r\n return - 1; \r\n if (a.date > b.date)\r\n return 1; \r\n return 0; \r\n};","import * as creators from '../creators/Energy';\r\n\r\nimport { addDays, startOfWeek } from 'date-fns';\r\nimport { setCalendarDatesEnergy } from '../../services/CalendarHandler';\r\n\r\nconst initialState = {\r\n graphData: [],\r\n graphLoading: true,\r\n indicatorsLoading: true,\r\n intervalGraph: 1,\r\n graphs: [],\r\n graphsRelations: [],\r\n activeGraphs: [],\r\n indicators: [],\r\n invoiceInfo: null,\r\n graphDateFrom: addDays(startOfWeek(new Date()), 1),\r\n graphDateTo: addDays(startOfWeek(new Date()), 7),\r\n graphDateFromScroll: addDays(startOfWeek(new Date()), 1),\r\n graphDateToScroll: addDays(startOfWeek(new Date()), 7),\r\n enableScrollData: true,\r\n showReportModal: false,\r\n reportLoading: false,\r\n scrollActive: true,\r\n tariff: [],\r\n bannersData: [],\r\n showDetailService: false,\r\n prevStateBar: null,\r\n enableAverageLine: true,\r\n rankGraphId: 'Rank_Weekly'\r\n}\r\n\r\nexport const energyReducer = (state = initialState, { type, payload }) => {\r\n switch (type) {\r\n case creators.SET_GRAPH_DATA:\r\n return { ...state, graphData: payload };\r\n case creators.SET_GRAPH_LOADING:\r\n return { ...state, graphLoading: payload };\r\n case creators.SET_INDICATORS_LOADING:\r\n return { ...state, indicatorsLoading: payload };\r\n case creators.SET_INVOICE_INFO:\r\n return { ...state, invoiceInfo: payload };\r\n case creators.SET_INTERVAL_GRAPH:\r\n\r\n let date = { startDate: new Date(), endDate: new Date(), key: 'selection' };\r\n let eventProperty = '';\r\n\r\n if (state.graphDateTo < date)\r\n date = state.graphDateTo;\r\n\r\n const dates = setCalendarDatesEnergy(date, payload);\r\n\r\n switch (payload) {\r\n case 0:\r\n eventProperty = 'Rank_Hourly'\r\n break\r\n case 1:\r\n eventProperty = 'Rank_Weekly'\r\n break\r\n case 2:\r\n eventProperty = 'Rank_Monthly'\r\n break\r\n case 3:\r\n eventProperty = 'Rank_Yearly'\r\n break\r\n default:\r\n eventProperty = 'Rank_Weekly'\r\n break\r\n }\r\n\r\n return {\r\n ...state,\r\n intervalGraph: payload,\r\n graphDateFrom: dates.graphDateFrom,\r\n graphDateTo: dates.graphDateTo,\r\n graphDateFromScroll: dates.graphDateFrom,\r\n graphDateToScroll: dates.graphDateTo,\r\n rankGraphId: eventProperty\r\n };\r\n\r\n case creators.SET_GRAPH_ACTIVE:\r\n return { ...state, activeGraphs: payload };\r\n case creators.SET_INDICATORS:\r\n return { ...state, indicators: payload };\r\n case creators.SET_GRAPH_OPTIONS:\r\n return {\r\n ...state,\r\n graphs: [{ options: payload.options, graphsGroups: payload.graphsGroups }],\r\n graphsRelations: payload.relations\r\n };\r\n case creators.SET_GRAPH_DATES:\r\n return {\r\n ...state,\r\n graphDateFrom: payload.graphDateFrom,\r\n graphDateTo: payload.graphDateTo,\r\n graphDateFromScroll: payload.graphDateFrom,\r\n graphDateToScroll: payload.graphDateTo\r\n };\r\n case creators.SET_GRAPH_DATES_SCROLL:\r\n return {\r\n ...state,\r\n graphDateFromScroll: payload.graphDateFrom,\r\n graphDateToScroll: payload.graphDateTo\r\n };\r\n case creators.SET_ENABLE_SCROLL_DATA:\r\n return { ...state, enableScrollData: payload };\r\n case creators.SET_SHOW_REPORT_MODAL:\r\n return { ...state, showReportModal: payload };\r\n case creators.SET_REPORT_LOADING:\r\n return { ...state, reportLoading: payload };\r\n case creators.SET_SCROLL_ACTIVE:\r\n return { ...state, scrollActive: payload };\r\n case creators.SET_TARIFF:\r\n return { ...state, tariff: payload };\r\n case creators.SET_BANNERS_DATA:\r\n return { ...state, bannersData: payload };\r\n case creators.SET_SHOW_DETAIL_SERVICE:\r\n return { ...state, showDetailService: payload };\r\n case creators.SET_DETAIL_DATA_GRAPH:\r\n return {\r\n ...state,\r\n intervalGraph: payload.intervalGraph,\r\n graphDateFrom: payload.graphDateFrom,\r\n graphDateTo: payload.graphDateTo,\r\n graphDateFromScroll: payload.graphDateFrom,\r\n graphDateToScroll: payload.graphDateTo\r\n };\r\n case creators.SET_PREV_STATE_BAR:\r\n return { ...state, prevStateBar: payload };\r\n case creators.SET_ENABLE_AVERAGE_LINE:\r\n return { ...state, enableAverageLine: payload };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as creators from '../creators/Invoices';\r\n\r\nimport { addMonths } from 'date-fns';\r\n\r\nconst initialState = {\r\n invoices: [],\r\n invoicesSummary: {\r\n total_bills: 0,\r\n pending_bills: 0,\r\n total_consumption: 0,\r\n total_payment: 0,\r\n id_bills_array: []\r\n },\r\n invoicesSummaryLoading: false,\r\n invoicesLoading: true,\r\n delayedInvoicesLoading: true,\r\n moreInvoicesLoading: false,\r\n invoicesDate: addMonths(new Date(), -1),\r\n selectedInvoices: [],\r\n banks: [],\r\n invoicesToPay: [],\r\n invoicesContent: [],\r\n invoicesContentLoading: true,\r\n invoiceDetails: null,\r\n invoiceDetailsContent: null,\r\n invoiceDetailsIndex: 0,\r\n invoicesPeriods: [],\r\n invoicesPeriodsFiltered: [],\r\n billsStatus: [\r\n {\r\n id: 'paid',\r\n name: 'Pagada',\r\n color: 'green',\r\n text_color: 'green-500'\r\n },\r\n {\r\n id: 'pending',\r\n name: 'Pendiente',\r\n color: 'orange',\r\n text_color: 'orange-200'\r\n },\r\n {\r\n id: 'overdue',\r\n name: 'Vencida',\r\n color: 'red',\r\n text_color: 'red-200'\r\n }\r\n ],\r\n filterStatus: null,\r\n totalInvoicesByPeriod: [],\r\n currentPage: 0,\r\n sortField: 'date_expiration',\r\n sortOrder: 0,\r\n showPay: false,\r\n emptyPaginationResult: false\r\n}\r\n\r\nexport const invoicesReducer = (state = initialState, { type, payload }) => {\r\n switch (type) {\r\n case creators.SET_INVOICES:\r\n return { ...state, invoices: payload };\r\n case creators.SET_INVOICES_SUMMARY:\r\n return { ...state, invoicesSummary: payload };\r\n case creators.SET_INVOICES_SUMMARY_LOADING:\r\n return { ...state, invoicesSummaryLoading: payload };\r\n case creators.SET_MORE_INVOICES:\r\n return { ...state, invoices: [...state.invoices, ...payload] };\r\n case creators.UPDATE_INVOICES:\r\n const newInvoices = state.invoices.map(currentInvoice => {\r\n const foundInvoice = payload.find(i => {\r\n return (i.id_bill === currentInvoice.id_bill)\r\n })\r\n if(!foundInvoice) return currentInvoice;\r\n return { \r\n ...currentInvoice, \r\n ...foundInvoice,\r\n loadingDelay: false\r\n }\r\n })\r\n return { ...state, invoices: newInvoices };\r\n case creators.SET_INVOICES_LOADING:\r\n return { ...state, invoicesLoading: payload };\r\n case creators.SET_DELAYED_INVOICES_LOADING:\r\n return { ...state, delayedInvoicesLoading: payload };\r\n case creators.SET_MORE_INVOICES_LOADING:\r\n return { ...state, moreInvoicesLoading: payload };\r\n case creators.SET_INVOICES_DATE:\r\n return { ...state, invoicesDate: payload };\r\n case creators.SET_SELECTED_INVOICES:\r\n return { ...state, selectedInvoices: payload };\r\n case creators.SET_INVOICES_BANKS:\r\n return { ...state, banks: payload };\r\n case creators.SET_INVOICES_TO_PAY:\r\n return { ...state, invoicesToPay: payload };\r\n case creators.SET_INVOICES_CONTENT:\r\n return { ...state, invoicesContent: payload };\r\n case creators.SET_INVOICES_CONTENT_LOADING:\r\n return { ...state, invoicesContentLoading: payload };\r\n case creators.SET_SHOW_INVOICE_DETAILS:\r\n return { ...state, invoiceDetails: payload };\r\n case creators.SET_SHOW_INVOICE_DETAILS_CONTENT:\r\n return { ...state, invoiceDetailsContent: payload };\r\n case creators.SET_SHOW_INVOICE_DETAILS_INDEX:\r\n return { ...state, invoiceDetailsIndex: payload };\r\n case creators.SET_INVOICES_PERIODS:\r\n return { ...state, invoicesPeriods: payload };\r\n case creators.SET_INVOICES_FILTER_STATUS:\r\n let invoicesPeriodsFiltered = state.invoicesPeriods.filter(ip => {\r\n switch (payload) {\r\n case 'pending':\r\n return ip.pending_bills > 0\r\n case 'paid':\r\n return ip.paid_bills > 0\r\n case 'overdue':\r\n return ip.due_bills > 0\r\n default:\r\n return null;\r\n }\r\n });\r\n\r\n return { ...state, filterStatus: payload, invoicesPeriodsFiltered };\r\n case creators.SET_INVOICES_TOTAL_INVOICES_BY_PERIOD:\r\n return { ...state, totalInvoicesByPeriod: payload };\r\n case creators.SET_INVOICES_CURRENT_PAGE:\r\n return { ...state, currentPage: payload };\r\n case creators.SET_INVOICES_SORT_FIELD:\r\n return { ...state, sortField: payload };\r\n case creators.SET_INVOICES_SORT_ORDER:\r\n return { ...state, sortOrder: payload };\r\n case creators.SET_SHOW_PAY:\r\n return { ...state, showPay: payload };\r\n case creators.SET_EMPTY_PAGINATION_RESULT:\r\n return { ...state, emptyPaginationResult: payload };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as creators from '../creators/Pays';\r\n\r\nconst initialState = {\r\n banks: [],\r\n invoicesToPay: [],\r\n typeComponent: 'METHOD',\r\n infoPayment: {\r\n commission: 0,\r\n totalPayment: 0,\r\n neugets: 0\r\n },\r\n paymentLoading: false,\r\n paymentMethods: [],\r\n paymentProvider: null\r\n}\r\n\r\nexport const paysReducer = (state = initialState, { type, payload }) => {\r\n switch (type) {\r\n case creators.SET_PAYS_BANKS:\r\n return { ...state, banks: payload };\r\n case creators.SET_PAYS_INVOICES_TO_PAY:\r\n return { ...state, invoicesToPay: payload };\r\n case creators.SET_PAYS_TYPE_COMPONENT:\r\n return { ...state, typeComponent: payload };\r\n case creators.SET_PAYS_INFO_PAYMENT:\r\n return { ...state, infoPayment: payload };\r\n case creators.SET_PAYS_PAYMENT_LOADING:\r\n return { ...state, paymentLoading: payload };\r\n case creators.SET_PAYS_PAYMENT_METHODS:\r\n return { ...state, paymentMethods: payload };\r\n case creators.SET_PAYS_PAYMENT_PROVIDER:\r\n return { ...state, paymentProvider: payload };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as creators from '../creators/Services';\r\n\r\nconst servicesTypes = [\r\n {\r\n key: 'energy',\r\n title: 'Energía',\r\n icon: 'energy',\r\n },\r\n {\r\n key: 'plus',\r\n title: 'Plus',\r\n icon: 'plus'\r\n },\r\n {\r\n key: 'zero',\r\n title: 'Financieros',\r\n icon: 'zero'\r\n },\r\n {\r\n key: 'generation',\r\n title: 'Generación',\r\n icon: 'generation'\r\n }\r\n ];\r\n\r\nconst initialState = {\r\n servicesTypes,\r\n totalServices: [],\r\n totalServicesGrouped: [],\r\n activeServicesEnergy: [],\r\n activeServicesPlus: [],\r\n activeServicesInvoices: [],\r\n activeServicePreonboarding: null,\r\n defaultActiveService: null,\r\n usersByService: {}\r\n}\r\n\r\nexport const servicesReducer = (state = initialState, { type, payload }) => {\r\n\r\n switch (type) {\r\n case creators.SET_TOTAL_SERVICES:\r\n return { ...state, totalServices: payload };\r\n case creators.SET_TOTAL_SERVICES_GROUPED:\r\n return { ...state, totalServicesGrouped: payload };\r\n case creators.SET_ACTIVE_SERVICES_ENERGY:\r\n return { ...state, activeServicesEnergy: payload };\r\n case creators.SET_ACTIVE_SERVICES_PLUS:\r\n return { ...state, activeServicesPlus: payload };\r\n case creators.SET_ACTIVE_SERVICES_INVOICES:\r\n return { ...state, activeServicesInvoices: payload };\r\n case creators.SET_ACTIVE_SERVICE_PREONBOARDING:\r\n return { ...state, activeServicePreonboarding: payload };\r\n case creators.SET_DEFAULT_ACTIVE_SERVICE:\r\n return { ...state, defaultActiveService: payload };\r\n case creators.SET_USERS_BY_SERVICE:\r\n return { ...state, usersByService: {\r\n ...state.usersByService,\r\n [payload.idService]: payload.users\r\n }};\r\n default:\r\n return state;\r\n }\r\n\r\n}\r\n","import * as creators from '../creators/Accounts';\r\n\r\nconst initialState = {\r\n totalAccounts: [],\r\n account: null,\r\n neugets: null,\r\n codeReferred: null\r\n}\r\n\r\nexport const accountsReducer = (state = initialState, { type, payload }) => {\r\n\r\n switch (type) {\r\n case creators.SET_TOTAL_ACCOUNTS:\r\n return { ...state, totalAccounts: payload };\r\n case creators.SET_ACCOUNT:\r\n return { ...state, account: payload };\r\n case creators.SET_NEUGETS:\r\n return { ...state, neugets: payload };\r\n case creators.SET_CODE_REFERRED:\r\n return { ...state, codeReferred: payload };\r\n default:\r\n return state;\r\n }\r\n\r\n}\r\n","import * as creators from '../creators/Shared';\r\n\r\nconst initialState = {\r\n language: {},\r\n currentModule: 0,\r\n showMenu: false,\r\n showBlackScreen: false,\r\n showBlackScreenIframe: false, \r\n showBlackScreenDrawer: false,\r\n showCalendar: false,\r\n showNpsSurvey: false,\r\n showDrawerOnboarding: false,\r\n startOnboarding: {\r\n dashboard: false,\r\n service_detail: false,\r\n service_picker: false,\r\n graph_type_picker: false,\r\n graph_period_picker: false,\r\n graph_calendar_picker: false,\r\n graph_export_data: false,\r\n new_alert: false,\r\n new_user: false,\r\n payment: false,\r\n invoice: false,\r\n profile: false,\r\n walktrough: false\r\n },\r\n controlledOnboarding: {\r\n service_picker: false,\r\n graph_type_picker: false,\r\n graph_period_picker: false,\r\n graph_calendar_picker: false,\r\n graph_export_data: false,\r\n new_alert: false\r\n },\r\n showPulseAnimation: false,\r\n screenPaddingBottom: 0\r\n};\r\n\r\nexport const sharedReducer = (state = initialState, { type, payload }) => {\r\n switch (type) {\r\n case creators.SET_LANGUAGE:\r\n return { ...state, language: payload };\r\n case creators.SET_MENU:\r\n return { ...state, showMenu: payload };\r\n case creators.SET_SHOW_BLACK_SCREEN:\r\n return { ...state, showBlackScreen: payload };\r\n case creators.SET_SHOW_BLACK_SCREEN_IFRAME:\r\n return { ...state, showBlackScreenIframe: payload };\r\n case creators.SET_SHOW_CALENDAR:\r\n return { ...state, showCalendar: payload };\r\n case creators.SET_SHOW_BLACK_SCREEN_DRAWER:\r\n return { ...state, showBlackScreenDrawer: payload };\r\n case creators.SET_SHOW_NPS_SURVEY:\r\n return { ...state, showNpsSurvey: payload };\r\n case creators.SET_CURRENT_MODULE:\r\n return { ...state, currentModule: payload };\r\n case creators.SET_START_ONBOARDING:\r\n\r\n const currentStartOnboarding = { ...state.startOnboarding };\r\n currentStartOnboarding[payload.key] = payload.value;\r\n\r\n return { ...state, startOnboarding: currentStartOnboarding };\r\n case creators.SET_CONTROLLED_ONBOARDING:\r\n\r\n const currentControlledOnboarding = { ...state.controlledOnboarding };\r\n currentControlledOnboarding[payload.key] = payload.value;\r\n\r\n return { ...state, controlledOnboarding: currentControlledOnboarding };\r\n case creators.SET_SHOW_DRAWER_ONBOARDING:\r\n return { ...state, showDrawerOnboarding: payload };\r\n case creators.SET_SHOW_PULSE_ANIMATION:\r\n return { ...state, showPulseAnimation: payload };\r\n case creators.SET_SCREEN_PADDING_BOTTOM:\r\n return { ...state, screenPaddingBottom: payload };\r\n default:\r\n return state;\r\n }\r\n}","import * as creators from '../creators/Plus';\r\nimport _ from 'lodash';\r\nimport { addDays, startOfWeek } from 'date-fns';\r\nimport { setCalendarDates } from '../../services/CalendarHandler';\r\n\r\nconst initialState = {\r\n dataGraph: [],\r\n dataGraphPage: [],\r\n loadingInitData: false,\r\n enableHistory: true,\r\n devices: [],\r\n energyQuality: null,\r\n loadingEnergyQuality: false,\r\n alwaysOn: [],\r\n loadingAlwaysOn: false,\r\n indicators: [],\r\n loadingIndicators: false,\r\n comparatives: [],\r\n loadingComparatives: false,\r\n appliances: [],\r\n tagRecords: [],\r\n lastConection: null,\r\n lastPage: 1,\r\n lastDay: 0,\r\n openQualityEnergy: false,\r\n dataGraphQuality: [], \r\n dataGraphAlwaysOn: [], \r\n intervalGraphAlwaysOn: 1,\r\n graphDateFromAlwaysOn: addDays(startOfWeek(new Date()), 1),\r\n graphDateToAlwaysOn: addDays(startOfWeek(new Date()), 7),\r\n graphDateFromScrollAlwaysOn: addDays(startOfWeek(new Date()), 1),\r\n graphDateToScrollAlwaysOn: addDays(startOfWeek(new Date()), 7),\r\n enableScrollDataAlwaysOn: true,\r\n loadingAlwaysOnModule: true,\r\n qualityIndicators: null,\r\n loadingQualityIndicators: true,\r\n alwaysOnIndicators: [],\r\n loadingAlwaysOnIndicators: true,\r\n rankGraphIdAlwaysOn: 'Rank_Weekly'\r\n};\r\n\r\nexport const plusReducer = (state = initialState, { type, payload }) => {\r\n switch (type) {\r\n case creators.SET_DATA_GRAPH:\r\n\r\n let arrayPages = state.dataGraphPage;\r\n\r\n const lastAvailablePage = _.last(state.dataGraphPage.filter(item => !item?.init));\r\n\r\n let idPageRecord = arrayPages.length ? payload?.type === 0 ? arrayPages[0]?.idPageRecord + 1 : lastAvailablePage?.idPageRecord - 1 : 0;\r\n\r\n payload[\"idPageRecord\"] = idPageRecord;\r\n arrayPages.push(payload);\r\n arrayPages = arrayPages.filter(item => (item?.idPageRecord <= idPageRecord + 2 && item?.idPageRecord >= idPageRecord - 3) || item?.init);\r\n arrayPages.sort((a, b) => (a?.idPageRecord < b?.idPageRecord) ? 1 : ((b?.idPageRecord < a?.idPageRecord) ? -1 : 0));\r\n\r\n let dataGraph = arrayPages.map(value => value?.data).flat();\r\n\r\n return { ...state, dataGraph: dataGraph, dataGraphPage: arrayPages };\r\n \r\n case creators.SET_DATA_GRAPH_STREAMING:\r\n\r\n let arrayPagesStreaming = state.dataGraphPage;\r\n\r\n let pageInit = _.last(state.dataGraphPage);\r\n\r\n let pageInitModified = { ...pageInit, data: pageInit?.data.concat(payload) };\r\n\r\n arrayPagesStreaming[arrayPagesStreaming.length - 1] = pageInitModified;\r\n\r\n let dataGraphStreaming = arrayPagesStreaming.map(value => value?.data).flat();\r\n\r\n return { ...state, dataGraph: dataGraphStreaming, dataGraphPage: arrayPagesStreaming };\r\n\r\n case creators.SET_LOADING_INIT_DATA:\r\n return { ...state, loadingInitData: payload };\r\n case creators.SET_ENABLE_HISTORY:\r\n return { ...state, enableHistory: payload };\r\n case creators.SET_DEVICES:\r\n return { ...state, devices: payload };\r\n case creators.RESET_DATA:\r\n return { ...state, dataGraph: [], dataGraphPage: [] };\r\n case creators.SET_ENERGY_QUALITY:\r\n return { ...state, energyQuality: payload };\r\n case creators.SET_LOADING_ENERGY_QUALITY:\r\n return { ...state, loadingEnergyQuality: payload };\r\n case creators.SET_ALWAYS_ON:\r\n return { ...state, alwaysOn: payload };\r\n case creators.SET_LOADING_ALWAYS_ON:\r\n return { ...state, loadingAlwaysOn: payload };\r\n case creators.SET_PLUS_INDICATORS:\r\n return { ...state, indicators: payload };\r\n case creators.SET_PLUS_LOADING_INDICATORS:\r\n return { ...state, loadingIndicators: payload };\r\n case creators.SET_COMPARATIVES:\r\n return { ...state, comparatives: payload };\r\n case creators.SET_LOADING_COMPARATIVES:\r\n return { ...state, loadingComparatives: payload };\r\n case creators.SET_APPLIANCES:\r\n return { ...state, appliances: payload };\r\n case creators.SET_TAG_RECORDS:\r\n return { ...state, tagRecords: payload };\r\n case creators.SET_LAST_CONECTION:\r\n return { ...state, lastConection: payload };\r\n case creators.SET_LAST_DAY:\r\n return { ...state, lastDay: payload };\r\n case creators.SET_LAST_PAGE:\r\n return { ...state, lastPage: payload };\r\n case creators.SET_DATA_GRAPH_HISTORY_INIT:\r\n let newData = state.dataGraphPage.map(item =>{\r\n return {...item, data: payload?.data?.concat(item?.data)};\r\n });\r\n let dataGraphHistoryInit = newData.map(value => value?.data).flat();\r\n return { ...state, dataGraph: dataGraphHistoryInit, dataGraphPage: newData };\r\n case creators.SET_OPEN_QUALITY_ENERGY:\r\n return { ...state, openQualityEnergy: payload }; \r\n case creators.SET_DATA_GRAPH_ALWAYS_ON:\r\n return { ...state, dataGraphAlwaysOn: payload }; \r\n case creators.SET_INTERVAL_GRAPH_ALWAYS_ON:\r\n\r\n let date = new Date();\r\n let eventProperty = '';\r\n\r\n if (state.graphDateToAlwaysOn < date)\r\n date = state.graphDateToAlwaysOn;\r\n\r\n const dates = setCalendarDates(date, payload);\r\n\r\n switch (payload) { \r\n case 1:\r\n eventProperty = 'Rank_Weekly'\r\n break\r\n case 2:\r\n eventProperty = 'Rank_Monthly'\r\n break\r\n case 3:\r\n eventProperty = 'Rank_Yearly'\r\n break\r\n default:\r\n eventProperty = 'Rank_Weekly'\r\n break\r\n }\r\n\r\n return { ...state, \r\n intervalGraphAlwaysOn: payload,\r\n graphDateFromAlwaysOn: dates.graphDateFrom,\r\n graphDateToAlwaysOn: dates.graphDateTo,\r\n graphDateFromScrollAlwaysOn: dates.graphDateFrom,\r\n graphDateToScrollAlwaysOn: dates.graphDateTo,\r\n rankGraphIdAlwaysOn: eventProperty\r\n }; \r\n case creators.SET_GRAPH_DATES_ALWAYS_ON:\r\n return {\r\n ...state,\r\n graphDateFromAlwaysOn: payload.graphDateFrom,\r\n graphDateToAlwaysOn: payload.graphDateTo,\r\n graphDateFromScrollAlwaysOn: payload.graphDateFrom,\r\n graphDateToScrollAlwaysOn: payload.graphDateTo\r\n };\r\n case creators.SET_GRAPH_DATES_SCROLL_ALWAYS_ON:\r\n return {\r\n ...state,\r\n graphDateFromScrollAlwaysOn: payload.graphDateFromAlwaysOn,\r\n graphDateToScrollAlwaysOn: payload.graphDateToAlwaysOn\r\n };\r\n case creators.SET_ENABLE_SCROLL_DATA_ALWAYS_ON:\r\n return { ...state, enableScrollDataAlwaysOn: payload };\r\n case creators.SET_LOADING_ALWAYS_ON_MODULE:\r\n return { ...state, loadingAlwaysOnModule: payload }; \r\n case creators.SET_QUALITY_INDICATORS:\r\n return { ...state, qualityIndicators: payload }; \r\n case creators.SET_LOADING_QUALITY_INDICATORS:\r\n return { ...state, loadingQualityIndicators: payload }; \r\n case creators.SET_ALWAYS_ON_INDICATORS:\r\n return { ...state, alwaysOnIndicators: payload }; \r\n case creators.SET_LOADING_ALWAYS_ON_INDICATORS:\r\n return { ...state, loadingAlwaysOnIndicators: payload }; \r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as creators from '../creators/Genius';\r\n\r\nconst initialState = {\r\n totalReports: [],\r\n graphs: [],\r\n activeReports: [],\r\n loadingReport: true,\r\n loadingNewReport: false,\r\n reportGenerated: false,\r\n newReport: false,\r\n expanded: false,\r\n serviceType: null,\r\n graphsType: null,\r\n totalGraphs: []\r\n};\r\n\r\nexport const geniusReducer = (state = initialState, { type, payload }) => {\r\n switch (type) {\r\n case creators.SET_REPORTS_GENIUS:\r\n return { ...state, totalReports: payload };\r\n case creators.SET_GRAPHS_REPORT_GENIUS:\r\n return { ...state, graphs: payload };\r\n case creators.SET_ACTIVE_REPORTS:\r\n return { ...state, activeReports: payload };\r\n case creators.SET_REPORT_LOADING:\r\n return { ...state, loadingReport: payload };\r\n case creators.SET_NEW_REPORT_LOADING:\r\n return { ...state, loadingNewReport: payload };\r\n case creators.SET_REPORT_GENERATED:\r\n return { ...state, reportGenerated: payload };\r\n case creators.SET_NEW_REPORT:\r\n return { ...state, newReport: payload };\r\n case creators.SET_SHOW_CONTENT_HEADER:\r\n return { ...state, expanded: payload };\r\n case creators.SET_SERVICE_TYPE:\r\n return { ...state, serviceType: payload };\r\n case creators.SET_GRAPHS_TYPE:\r\n return { ...state, graphsType: payload };\r\n case creators.SET_TOTAL_GRAPHS_REPORT_GENIUS:\r\n return { ...state, totalGraphs: payload };\r\n default:\r\n return state;\r\n }\r\n}","import * as creators from '../creators/Notifications';\r\n\r\nconst initialState = {\r\n notifications: [],\r\n notificationsPagination: null,\r\n notificationsLoading: true,\r\n totalNotificationsInfo: null\r\n}\r\n\r\nexport const notificationsReducer = (state = initialState, { type, payload }) => {\r\n\r\n switch (type) {\r\n case creators.SET_NOTIFICATIONS:\r\n return { ...state, notifications: payload };\r\n case creators.SET_TOTAL_NOTIFICATIONS_INFO:\r\n return { ...state, totalNotificationsInfo: payload };\r\n case creators.SET_NOTIFICATIONS_PAGINATION:\r\n return { ...state, notificationsPagination: payload };\r\n case creators.SET_NOTIFICATIONS_LOADING:\r\n return { ...state, notificationsLoading: payload };\r\n default:\r\n return state;\r\n }\r\n\r\n}\r\n","import * as creators from '../creators/Alerts';\r\n\r\nconst initialState = {\r\n alerts: [],\r\n loading: false,\r\n alertRegisters: [],\r\n alertRegistersPagination: null,\r\n alertRegistersLoading: true,\r\n totalalertRegistersInfo: null,\r\n showDrawerAlerts: false,\r\n graphs: null, \r\n}\r\n\r\nexport const alertsReducer = (state = initialState, { type, payload }) => {\r\n\r\n switch (type) {\r\n case creators.SET_ALERTS:\r\n return { ...state, alerts: payload };\r\n case creators.SET_ALERTS_LOADING:\r\n return { ...state, loading: payload };\r\n case creators.SET_ALERT_REGISTERS:\r\n return { ...state, alertRegisters: payload };\r\n case creators.SET_TOTAL_ALERT_REGISTERS_INFO:\r\n return { ...state, totalalertRegistersInfo: payload };\r\n case creators.SET_ALERT_REGISTERS_PAGINATION:\r\n return { ...state, alertRegistersPagination: payload };\r\n case creators.SET_ALERT_REGISTERS_LOADING:\r\n return { ...state, alertRegistersLoading: payload };\r\n case creators.SET_SHOW_DRAWER_ALERTS:\r\n return { ...state, showDrawerAlerts: payload }; \r\n case creators.SET_GRAPHS_ALERTS:\r\n return { ...state, graphs: payload }; \r\n default:\r\n return state;\r\n }\r\n\r\n}","import * as creators from '../creators/Chatbot';\r\n\r\nconst initialState = {\r\n activeChat: false,\r\n loadingChat: false,\r\n currentConversationId: null,\r\n messages: [],\r\n showChatBot: false,\r\n activeChatMessages: true,\r\n conversations: [],\r\n showBannerChatbot: true\r\n}\r\n\r\nexport const chatbotReducer = (state = initialState, { type, payload }) => {\r\n switch (type) {\r\n case creators.SET_ACTIVE_CHAT:\r\n return { ...state, activeChat: payload };\r\n case creators.SET_LOADING_CHAT:\r\n return { ...state, loadingChat: payload };\r\n case creators.SET_CURRENT_CONVERSATION:\r\n return { ...state, currentConversationId: payload };\r\n case creators.SET_MESSAGES:\r\n return { ...state, messages: payload };\r\n case creators.SET_SHOW_CHATBOT:\r\n return { ...state, showChatBot: payload };\r\n case creators.SET_ACTIVATE_CHAT_MESSAGES:\r\n return { ...state, activeChatMessages: payload };\r\n case creators.SET_CONVERSATIONS:\r\n return { ...state, conversations: payload };\r\n case creators.SET_SHOW_BANNER_CHATBOT:\r\n return { ...state, showBannerChatbot: payload };\r\n default:\r\n return state;\r\n }\r\n}","export const themes = {\r\n DARK: 'dark',\r\n LIGHT: 'light'\r\n}","import { themes } from \"../../utils/enums\";\r\n\r\nimport * as theme from '../creators/Theme';\r\n\r\nconst savedTheme = localStorage.getItem('theme');\r\n\r\nconst initialState = {\r\n theme: Object.values(themes).includes(savedTheme) ? savedTheme : themes.DARK\r\n};\r\n\r\nexport const themeReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case theme.SET_THEME:\r\n return {\r\n ...state,\r\n theme: action.payload,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { createStore, combineReducers, applyMiddleware } from \"redux\";\r\n\r\nimport { composeWithDevTools } from \"redux-devtools-extension\";\r\n\r\nimport thunk from \"redux-thunk\";\r\n\r\nimport * as sharedCreators from \"./creators/Shared\";\r\n\r\nimport { loginReducer } from \"./reducers/Login\";\r\nimport { usersReducer } from \"./reducers/Users\";\r\nimport { energyReducer } from \"./reducers/Energy\";\r\nimport { invoicesReducer } from \"./reducers/Invoices\";\r\nimport { paysReducer } from \"./reducers/Pays\";\r\nimport { servicesReducer } from \"./reducers/Services\";\r\nimport { accountsReducer } from \"./reducers/Accounts\";\r\nimport { sharedReducer } from \"./reducers/Shared\";\r\nimport { plusReducer } from \"./reducers/Plus\";\r\nimport { geniusReducer } from \"./reducers/Genius\";\r\nimport { notificationsReducer } from \"./reducers/Notifications\";\r\nimport { alertsReducer } from \"./reducers/Alerts\";\r\nimport { chatbotReducer } from \"./reducers/Chatbot\";\r\nimport { themeReducer } from \"./reducers/Theme\";\r\n\r\nconst allReducers = combineReducers({\r\n login: loginReducer,\r\n users: usersReducer,\r\n energy: energyReducer,\r\n services: servicesReducer,\r\n invoices: invoicesReducer,\r\n pays: paysReducer,\r\n accounts: accountsReducer,\r\n shared: sharedReducer,\r\n plus: plusReducer,\r\n genius: geniusReducer,\r\n notifications: notificationsReducer,\r\n alerts: alertsReducer,\r\n chatbot: chatbotReducer,\r\n theme: themeReducer,\r\n});\r\n\r\nconst root = (state, action) => {\r\n if (action.type === sharedCreators.LOGOUT) {\r\n const { shared, theme } = state;\r\n state = { shared, theme };\r\n }\r\n\r\n return allReducers(state, action);\r\n};\r\n\r\nconst Store = createStore(root, composeWithDevTools(applyMiddleware(thunk)));\r\n\r\nexport default Store;\r\n","export const SET_STEP = \"SET_STEP\";\r\nexport const SET_LOADING = \"SET_LOADING\"\r\nexport const SET_RESENDING = \"SET_RESENDING\";\r\nexport const SET_COUNTER = \"SET_COUNTER\";\r\nexport const SET_CODE_TRIES = \"SET_CODE_TRIES\";","export const SET_USER = \"SET_USER\";\r\nexport const SET_USER_CAPABILITIES = \"SET_USER_CAPABILITIES\";\r\nexport const SET_PROFILE_PROGRESS = \"SET_PROFILE_PROGRESS\";\r\nexport const SET_SAVING_INFO_USER = \"SET_SAVING_INFO_USER\";\r\nexport const SET_USER_ACCESS_EDIT = \"SET_USER_ACCESS_EDIT\";\r\nexport const SET_SHOW_CREATE_USER_MODAL = \"SET_SHOW_CREATE_USER_MODAL\";\r\nexport const SET_SHOW_USERS_LIST_MODAL = \"SET_SHOW_USERS_LIST_MODAL\";\r\nexport const SET_USER_JOBS = \"SET_USER_JOBS\";\r\nexport const SET_USERS_ACCOUNT = \"SET_USERS_ACCOUNT\";\r\nexport const SET_USERS_ACCOUNT_LOADING = \"SET_USERS_ACCOUNT_LOADING\";\r\nexport const SET_USER_CHANNELS = \"SET_USER_CHANNELS\";\r\nexport const SET_USER_PERSONAL_INTERESTS = \"SET_USER_PERSONAL_INTERESTS\";\r\nexport const SET_USER_PREFERENCE_INFO = \"SET_USER_PREFERENCE_INFO\";\r\nexport const SET_SHOW_MODAL_USER_PREFERENCE = \"SET_SHOW_MODAL_USER_PREFERENCE\";\r\nexport const SET_USER_TOKEN_API = \"SET_USER_TOKEN_API\";\r\nexport const SET_LOADING_NEW_USER = \"SET_LOADING_NEW_USER\";\r\nexport const SET_USERS = \"SET_USERS\";\r\nexport const SET_CURRENT_PAGE_USERS = \"SET_CURRENT_PAGE_USERS\";\r\nexport const SET_LIST_USERS_LOADING = \"SET_LIST_USERS_LOADING\";\r\nexport const SET_LOADING_MORE_USERS = \"SET_LOADING_MORE_USERS\";\r\nexport const SET_TOTAL_PAGES_USERS = \"SET_TOTAL_PAGES_USERS\";\r\nexport const SET_TOTAL_USERS = \"SET_TOTAL_USERS\";\r\nexport const SET_SHOW_USER_TYPE_MODAL = \"SET_SHOW_USER_TYPE_MODAL\";\r\nexport const SET_SHOW_INVITE_SUCCESS_MODAL = \"SET_SHOW_INVITE_SUCCESS_MODAL\";\r\nexport const SET_USER_SERVICES_SELECTED = \"SET_USER_SERVICES_SELECTED\";\r\nexport const SET_USER_DETAIL = \"SET_USER_DETAIL\";\r\nexport const SET_USER_ACCOUNT_SELECTED = \"SET_USER_ACCOUNT_SELECTED\";\r\nexport const SET_USERS_TO_INVITE = \"SET_USERS_TO_INVITE\";\r\nexport const SET_USER_REGISTERED_LOADING = \"SET_USER_REGISTERED_LOADING\";\r\nexport const SET_INFO_INVITE_SUCCESS_MODAL = \"SET_INFO_INVITE_SUCCESS_MODAL\";\r\nexport const SET_LOADING_UPDATE_USER = \"SET_LOADING_UPDATE_USER\";\r\nexport const SET_LOADING_DELETE_USER = \"SET_LOADING_DELETE_USER\";\r\nexport const REMOVE_USER_ACCOUNT_SUCCESS = \"REMOVE_USER_ACCOUNT_SUCCESS\"\r\nexport const SET_ACCOUNT_SELECTED_USERS_TABLE = 'SET_ACCOUNT_SELECTED_USERS_TABLE'\r\nexport const SET_USER_TYPES_SELECT = 'SET_USERS_TYPES_SELECT'\r\nexport const SET_USER_TYPES = \"SET_USER_TYPES\";","export const SET_GRAPH_DATA = 'SET_GRAPH_DATA';\r\nexport const SET_GRAPH_LOADING = 'SET_GRAPH_LOADING';\r\nexport const SET_INTERVAL_GRAPH = 'SET_INTERVAL_GRAPH';\r\nexport const SET_GRAPH_DATES = 'SET_GRAPH_DATES';\r\nexport const SET_GRAPH_OPTIONS = 'SET_GRAPH_OPTIONS';\r\nexport const SET_GRAPH_ACTIVE = 'SET_GRAPH_ACTIVE';\r\nexport const SET_INDICATORS = 'SET_INDICATORS';\r\nexport const SET_INVOICE_INFO = 'SET_INVOICE_INFO';\r\nexport const SET_INDICATORS_LOADING = 'SET_INDICATORS_LOADING';\r\nexport const SET_GRAPH_DATES_SCROLL = 'SET_GRAPH_DATES_SCROLL';\r\nexport const SET_ENABLE_SCROLL_DATA = 'SET_ENABLE_SCROLL_DATA';\r\nexport const SET_SHOW_REPORT_MODAL = 'SET_SHOW_REPORT_MODAL';\r\nexport const SET_REPORT_LOADING = 'SET_REPORT_LOADING';\r\nexport const SET_SCROLL_ACTIVE = 'SET_SCROLL_ACTIVE';\r\nexport const SET_TARIFF = 'SET_TARIFF';\r\nexport const SET_BANNERS_DATA = 'SET_BANNERS_DATA';\r\nexport const SET_SHOW_DETAIL_SERVICE = 'SET_SHOW_DETAIL_SERVICE';\r\nexport const SET_DETAIL_DATA_GRAPH = 'SET_DETAIL_DATA_GRAPH';\r\nexport const SET_PREV_STATE_BAR = 'SET_PREV_STATE_BAR';\r\nexport const SET_ENABLE_AVERAGE_LINE = 'SET_ENABLE_AVERAGE_LINE';","export const SET_TOTAL_SERVICES = 'SET_TOTAL_SERVICES';\r\nexport const SET_TOTAL_SERVICES_GROUPED = 'SET_TOTAL_SERVICES_GROUPED';\r\nexport const SET_ACTIVE_SERVICES_ENERGY = 'SET_ACTIVE_SERVICES_ENERGY';\r\nexport const SET_ACTIVE_SERVICES_INVOICES = 'SET_ACTIVE_SERVICES_INVOICES';\r\nexport const SET_ACTIVE_SERVICES_PLUS = 'SET_ACTIVE_SERVICES_PLUS';\r\nexport const SET_ACTIVE_SERVICE_PREONBOARDING = 'SET_ACTIVE_SERVICE_PREONBOARDING';\r\nexport const SET_DEFAULT_ACTIVE_SERVICE = 'SET_DEFAULT_ACTIVE_SERVICE';\r\nexport const SET_USERS_BY_SERVICE = 'SET_USERS_BY_SERVICE';","export const SET_INVOICES = 'SET_INVOICES';\r\nexport const SET_INVOICES_SUMMARY = 'SET_INVOICES_SUMMARY';\r\nexport const SET_INVOICES_SUMMARY_LOADING = 'SET_INVOICES_SUMMARY_LOADING';\r\nexport const SET_MORE_INVOICES = 'SET_MORE_INVOICES';\r\nexport const UPDATE_INVOICES = 'UPDATE_INVOICES';\r\nexport const SET_INVOICES_LOADING = 'SET_INVOICES_LOADING';\r\nexport const SET_DELAYED_INVOICES_LOADING = 'SET_DELAYED_INVOICES_LOADING';\r\nexport const SET_MORE_INVOICES_LOADING = 'SET_MORE_INVOICES_LOADING';\r\nexport const SET_INVOICES_DATE = 'SET_INVOICES_DATE';\r\nexport const SET_SELECTED_INVOICES = 'SET_SELECTED_INVOICES';\r\nexport const SET_INVOICES_BANKS = \"SET_INVOICES_BANKS\";\r\nexport const SET_INVOICES_TO_PAY = \"SET_INVOICES_TO_PAY\";\r\nexport const SET_INVOICES_CONTENT = \"SET_INVOICES_CONTENT\";\r\nexport const SET_INVOICES_CONTENT_LOADING = \"SET_INVOICES_CONTENT_LOADING\";\r\nexport const SET_SHOW_INVOICE_DETAILS = \"SET_SHOW_INVOICE_DETAILS\";\r\nexport const SET_SHOW_INVOICE_DETAILS_CONTENT = \"SET_SHOW_INVOICE_DETAILS_CONTENT\";\r\nexport const SET_SHOW_INVOICE_DETAILS_INDEX = \"SET_SHOW_INVOICE_DETAILS_INDEX\";\r\nexport const SET_INVOICES_PERIODS = \"SET_INVOICES_PERIODS\";\r\nexport const SET_INVOICES_FILTER_STATUS = \"SET_INVOICES_FILTER_STATUS\";\r\nexport const SET_INVOICES_TOTAL_INVOICES_BY_PERIOD = \"SET_INVOICES_TOTAL_INVOICES_BY_PERIOD\";\r\nexport const SET_INVOICES_CURRENT_PAGE = \"SET_INVOICES_CURRENT_PAGE\";\r\nexport const SET_INVOICES_SORT_FIELD = \"SET_INVOICES_SORT_FIELD\";\r\nexport const SET_INVOICES_SORT_ORDER = \"SET_INVOICES_SORT_ORDER\";\r\nexport const SET_SHOW_PAY = \"SET_SHOW_PAY\";\r\nexport const SET_EMPTY_PAGINATION_RESULT = \"SET_EMPTY_PAGINATION_RESULT\";","export const SET_PAYS_BANKS = \"SET_PAYS_BANKS\";\r\nexport const SET_PAYS_INVOICES_TO_PAY = \"SET_PAYS_INVOICES_TO_PAY\";\r\nexport const SET_PAYS_TYPE_COMPONENT = \"SET_PAYS_TYPE_COMPONENT\";\r\nexport const SET_PAYS_INFO_PAYMENT = \"SET_PAYS_INFO_PAYMENT\";\r\nexport const SET_PAYS_PAYMENT_LOADING = \"SET_PAYS_PAYMENT_LOADING\";\r\nexport const SET_PAYS_PAYMENT_METHODS = \"SET_PAYS_PAYMENT_METHODS\";\r\nexport const SET_PAYS_PAYMENT_PROVIDER = \"SET_PAYS_PAYMENT_PROVIDER\";","export const SET_TOTAL_ACCOUNTS = 'SET_TOTAL_ACCOUNTS';\r\nexport const SET_ACCOUNT = 'SET_ACCOUNT';\r\nexport const SET_NEUGETS = 'SET_NEUGETS';\r\nexport const SET_CODE_REFERRED = 'SET_CODE_REFERRED';\r\nexport const SET_NOTIFICATIONS = 'SET_NOTIFICATIONS';","export const SET_DATA_GRAPH = 'SET_DATA_GRAPH';\r\nexport const SET_LOADING_INIT_DATA = 'SET_LOADING_INIT_DATA';\r\nexport const SET_ENABLE_HISTORY = 'SET_ENABLE_HISTORY';\r\nexport const SET_DATA_GRAPH_STREAMING = 'SET_DATA_GRAPH_STREAMING';\r\nexport const SET_DEVICES = 'SET_DEVICES';\r\nexport const RESET_DATA = 'RESET_DATA';\r\nexport const SET_ENERGY_QUALITY = 'SET_ENERGY_QUALITY';\r\nexport const SET_LOADING_ENERGY_QUALITY = 'SET_LOADING_ENERGY_QUALITY';\r\nexport const SET_ALWAYS_ON = 'SET_ALWAYS_ON';\r\nexport const SET_LOADING_ALWAYS_ON = 'SET_LOADING_ALWAYS_ON';\r\nexport const SET_PLUS_INDICATORS = 'SET_PLUS_INDICATORS';\r\nexport const SET_PLUS_LOADING_INDICATORS = 'SET_PLUS_LOADING_INDICATORS';\r\nexport const SET_COMPARATIVES = 'SET_COMPARATIVES';\r\nexport const SET_LOADING_COMPARATIVES = 'SET_LOADING_COMPARATIVES';\r\nexport const SET_APPLIANCES = 'SET_APPLIANCES';\r\nexport const SET_TAG_RECORDS = 'SET_TAG_RECORDS';\r\nexport const SET_LAST_CONECTION = 'SET_LAST_CONECTION';\r\nexport const SET_LAST_DAY = 'SET_LAST_DAY';\r\nexport const SET_LAST_PAGE = 'SET_LAST_PAGE';\r\nexport const SET_DATA_GRAPH_HISTORY_INIT = 'SET_DATA_GRAPH_HISTORY_INIT';\r\nexport const SET_OPEN_QUALITY_ENERGY = 'SET_OPEN_QUALITY_ENERGY';\r\nexport const SET_DATA_GRAPH_ALWAYS_ON = 'SET_DATA_GRAPH_ALWAYS_ON';\r\nexport const SET_INTERVAL_GRAPH_ALWAYS_ON = 'SET_INTERVAL_GRAPH_ALWAYS_ON';\r\nexport const SET_GRAPH_DATES_ALWAYS_ON = 'SET_GRAPH_DATES_ALWAYS_ON';\r\nexport const SET_GRAPH_DATES_SCROLL_ALWAYS_ON = 'SET_GRAPH_DATES_SCROLL_ALWAYS_ON';\r\nexport const SET_ENABLE_SCROLL_DATA_ALWAYS_ON = 'SET_ENABLE_SCROLL_DATA_ALWAYS_ON';\r\nexport const SET_LOADING_ALWAYS_ON_MODULE = 'SET_LOADING_ALWAYS_ON_MODULE';\r\nexport const SET_QUALITY_INDICATORS = 'SET_QUALITY_INDICATORS';\r\nexport const SET_LOADING_QUALITY_INDICATORS = 'SET_LOADING_QUALITY_INDICATORS';\r\nexport const SET_ALWAYS_ON_INDICATORS = 'SET_ALWAYS_ON_INDICATORS';\r\nexport const SET_LOADING_ALWAYS_ON_INDICATORS = 'SET_LOADING_ALWAYS_ON_INDICATORS';\r\n\r\n","export const SET_REPORTS_GENIUS = 'SET_REPORT_GENIUS';\r\nexport const SET_GRAPHS_REPORT_GENIUS = 'SET_GRAPHS_REPORT_GENIUS';\r\nexport const SET_ACTIVE_REPORTS = 'SET_ACTIVE_REPORTS';\r\nexport const SET_REPORT_LOADING = 'SET_REPORT_LOADING';\r\nexport const SET_NEW_REPORT_LOADING = 'SET_NEW_REPORT_LOADING';\r\nexport const SET_REPORT_GENERATED = 'SET_REPORT_GENERATED';\r\nexport const SET_NEW_REPORT = 'SET_NEW_REPORT';\r\nexport const SET_SHOW_CONTENT_HEADER = 'SET_SHOW_CONTENT_HEADER';\r\nexport const SET_SERVICE_TYPE = 'SET_SERVICE_TYPE';\r\nexport const SET_GRAPHS_TYPE = 'SET_GRAPHS_TYPE';\r\nexport const SET_TOTAL_GRAPHS_REPORT_GENIUS = 'SET_TOTAL_GRAPHS_REPORT_GENIUS';\r\n\r\n","export const SET_NOTIFICATIONS = 'SET_NOTIFICATIONS';\r\nexport const SET_TOTAL_NOTIFICATIONS_INFO = 'SET_TOTAL_NOTIFICATIONS_INFO';\r\nexport const SET_NOTIFICATIONS_LOADING = 'SET_NOTIFICATIONS_LOADING';\r\nexport const SET_NOTIFICATIONS_PAGINATION = 'SET_NOTIFICATIONS_PAGINATION';","export const SET_ALERTS = 'SET_ALERTS';\r\nexport const SET_ALERTS_LOADING = 'SET_ALERTS_LOADING';\r\nexport const SET_ALERT_REGISTERS = 'SET_ALERT_REGISTERS';\r\nexport const SET_TOTAL_ALERT_REGISTERS_INFO = 'SET_TOTAL_ALERT_REGISTERS_INFO';\r\nexport const SET_ALERT_REGISTERS_LOADING = 'SET_ALERT_REGISTERS_LOADING';\r\nexport const SET_ALERT_REGISTERS_PAGINATION = 'SET_ALERT_REGISTERS_PAGINATION';\r\nexport const SET_SHOW_DRAWER_ALERTS = 'SET_SHOW_DRAWER_ALERTS';\r\nexport const SET_GRAPHS_ALERTS = 'SET_GRAPHS_ALERTS';","export const SET_ACTIVE_CHAT = 'SET_ACTIVE_CHAT';\r\nexport const SET_LOADING_CHAT = 'SET_LOADING_CHAT';\r\nexport const SET_CURRENT_CONVERSATION = 'SET_CURRENT_CONVERSATION';\r\nexport const SET_MESSAGES = 'SET_MESSAGES';\r\nexport const SET_SHOW_CHATBOT = 'SET_SHOW_CHATBOT';\r\nexport const SET_ACTIVATE_CHAT_MESSAGES = 'SET_ACTIVATE_CHAT_MESSAGES';\r\nexport const SET_CONVERSATIONS = 'SET_CONVERSATIONS';\r\nexport const SET_SHOW_BANNER_CHATBOT = 'SET_SHOW_BANNER_CHATBOT';","export const SET_THEME = 'SET_THEME';","const current = process.env.REACT_APP_API_URL;\r\n\r\nconst SETData = async (url, method, params, endpoint = current, simple = false) => {\r\n\r\n let token = localStorage.getItem('token');\r\n\r\n const headers_simple = {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n };\r\n\r\n const response = await fetch(`${endpoint}${url}`, {\r\n method: method,\r\n headers: simple ? headers_simple :\r\n new Headers({\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n \"Access-Control-Allow-Origin\": \"*\",\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: JSON.stringify(params)\r\n });\r\n\r\n if (response.ok) {\r\n\r\n const body = await response.text().then(response);\r\n\r\n if (body !== \"\") { return JSON.parse(body); } else { return null; }\r\n\r\n } else {\r\n return null;\r\n }\r\n\r\n}\r\n\r\nconst SETFile = async (url, method, params, endpoint = current) => {\r\n\r\n let token = localStorage.getItem('token');\r\n\r\n const response = await fetch(`${endpoint}${url}`, {\r\n method: method,\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Authorization': `Bearer ${token}`\r\n },\r\n body: params\r\n });\r\n\r\n if (response.ok) {\r\n\r\n const body = await response.text().then(response);\r\n\r\n if (body !== \"\") { return JSON.parse(body); } else { return null; }\r\n\r\n } else {\r\n return null;\r\n }\r\n\r\n}\r\n\r\nconst SETBlobFile = async (url, method, params, endpoint = current) => {\r\n\r\n let token = localStorage.getItem('token');\r\n\r\n const response = await fetch(`${endpoint}${url}`, {\r\n method: method,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${token}`\r\n },\r\n body: params\r\n });\r\n\r\n if (response.ok) {\r\n const blob = await response.blob();\r\n return blob;\r\n } else {\r\n return null;\r\n }\r\n\r\n}\r\n\r\nconst GETFile = async (url, method, params, endpoint = current) => {\r\n\r\n let token = localStorage.getItem('token');\r\n\r\n const response = await fetch(`${endpoint}${url}`, {\r\n method: method,\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${token}`\r\n },\r\n body: JSON.stringify(params)\r\n });\r\n\r\n if (response.ok) {\r\n return response;\r\n } else {\r\n return null;\r\n }\r\n\r\n}\r\n\r\nconst GETData = async (url, method, endpoint = current, simple = false) => {\r\n\r\n let token = localStorage.getItem('token');\r\n\r\n const headers_simple = {\r\n 'Accept': 'application/json'\r\n };\r\n\r\n const response = await fetch(`${endpoint}${url}`, {\r\n method: method,\r\n mode: \"cors\",\r\n headers: simple ? headers_simple :\r\n new Headers({\r\n \"Access-Control-Allow-Origin\": \"*\",\r\n 'Authorization': `Bearer ${token}`\r\n })\r\n });\r\n if (response.ok) {\r\n\r\n const body = await response.text().then(response);\r\n\r\n if (body !== \"\") { return JSON.parse(body); } else { return null; }\r\n\r\n } else { return null; }\r\n\r\n};\r\n\r\nconst GETS3PublicUrl = async (path, bucket = process.env.REACT_APP_S3_BUCKET, region = process.env.REACT_APP_S3_REGION) => {\r\n\r\n const objectDataBody = {\r\n bucket: bucket,\r\n path: path,\r\n region: region,\r\n }\r\n\r\n try {\r\n const response = await SETData(\"bills/url\", \"POST\", objectDataBody)\r\n if (response !== null) {\r\n return response.url\r\n } else {\r\n return null\r\n }\r\n } catch (error) {\r\n console.error(error, \"Error in GETS3PublicUrl\")\r\n }\r\n}\r\n\r\nexport { SETData, SETFile, SETBlobFile, GETData, GETFile, GETS3PublicUrl };","import * as users from \"../creators/Users\";\r\n\r\nimport { GETData, SETData } from \"../../services/WebServices\";\r\n\r\nimport { Alert } from \"rsuite\";\r\n\r\nconst url_api = 'https://api.neu.com.co/';\r\n\r\nexport const setUser = (payload) => {\r\n return {\r\n type: users.SET_USER,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setCurrentPageUsers = (payload) => {\r\n return {\r\n type: users.SET_CURRENT_PAGE_USERS,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setUserCapabilities = (payload) => {\r\n return {\r\n type: users.SET_USER_CAPABILITIES,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setProfileProgress = (payload) => {\r\n return {\r\n type: users.SET_PROFILE_PROGRESS,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setSavingInfoUser = (payload) => {\r\n return {\r\n type: users.SET_SAVING_INFO_USER,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setShowCreateUserModal = (payload) => {\r\n return {\r\n type: users.SET_SHOW_CREATE_USER_MODAL,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setShowUsersListModal = (payload) => {\r\n return {\r\n type: users.SET_SHOW_USERS_LIST_MODAL,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setUserJobs = (payload) => {\r\n return {\r\n type: users.SET_USER_JOBS,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setUserChannels = (payload) => {\r\n return {\r\n type: users.SET_USER_CHANNELS,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setUserPersonalInterests = (payload) => {\r\n return {\r\n type: users.SET_USER_PERSONAL_INTERESTS,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setUsersAccount = (payload) => {\r\n return {\r\n type: users.SET_USERS_ACCOUNT,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setUserAccessEdit = (payload) => {\r\n return {\r\n type: users.SET_USER_ACCESS_EDIT,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setUsersAccountLoading = (payload) => {\r\n return {\r\n type: users.SET_USERS_ACCOUNT_LOADING,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setUserPreferenceInfo = (payload) => {\r\n return {\r\n type: users.SET_USER_PREFERENCE_INFO,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setShowModalUserPreference = (payload) => {\r\n return {\r\n type: users.SET_SHOW_MODAL_USER_PREFERENCE,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setUserTokenApi = (payload) => {\r\n return {\r\n type: users.SET_USER_TOKEN_API,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setLoadingNewUser = (payload) => {\r\n return {\r\n type: users.SET_LOADING_NEW_USER,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setListUsersLoading = (payload) => {\r\n return {\r\n type: users.SET_LIST_USERS_LOADING,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setUsers = (payload) => {\r\n return {\r\n type: users.SET_USERS,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setLoadingMoreUsers = (payload) => {\r\n return {\r\n type: users.SET_LOADING_MORE_USERS,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setTotalPagesUsers = (payload) => {\r\n return {\r\n type: users.SET_TOTAL_PAGES_USERS,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setTotalUsers = (payload) => {\r\n return {\r\n type: users.SET_TOTAL_USERS,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setShowUserTypeModal = (payload) => {\r\n return {\r\n type: users.SET_SHOW_USER_TYPE_MODAL,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setShowInviteSuccessModal = (payload) => {\r\n return {\r\n type: users.SET_SHOW_INVITE_SUCCESS_MODAL,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setUserServicesSelected = (payload) => {\r\n return {\r\n type: users.SET_USER_SERVICES_SELECTED,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setUserDetail = (payload) => {\r\n return {\r\n type: users.SET_USER_DETAIL,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setUserAccountSelected = (payload) => {\r\n return {\r\n type: users.SET_USER_ACCOUNT_SELECTED,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setUsersToInvite = (payload) => {\r\n return {\r\n type: users.SET_USERS_TO_INVITE,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setUserRegisteredLoading = (payload) => {\r\n return {\r\n type: users.SET_USER_REGISTERED_LOADING,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setInfoInviteSuccessModal = (payload) => {\r\n return {\r\n type: users.SET_INFO_INVITE_SUCCESS_MODAL,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setLoadingUpdateUser = (payload) => {\r\n return {\r\n type: users.SET_LOADING_UPDATE_USER,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setLoadingDeleteUser = (payload) => {\r\n return {\r\n type: users.SET_LOADING_DELETE_USER,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setUsersTypeSelect = payload => {\r\n return {\r\n type: users.SET_USER_TYPES_SELECT,\r\n payload\r\n }\r\n}\r\nexport const setAccountSelectedUsersTable = (payload) => {\r\n return {\r\n type: users.SET_ACCOUNT_SELECTED_USERS_TABLE,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setUserTypes = (payload) => {\r\n return {\r\n type: users.SET_USER_TYPES,\r\n payload,\r\n };\r\n};\r\n\r\nexport const getUserExtraDataAsync = () => {\r\n return (dispatch, getState) => {\r\n let user = getState().users.user;\r\n\r\n GETData(`users/users/extradata/${user.idUser}`, \"GET\")\r\n .then((response) => {\r\n if (response !== null) {\r\n dispatch(setUser({ ...user, ...response }));\r\n }\r\n })\r\n .catch((response) => console.error(response));\r\n };\r\n};\r\n\r\nexport const getUserImageAsync = () => {\r\n return (dispatch, getState) => {\r\n let user = getState().users.user;\r\n\r\n GETData(`users/users/${user.idUser}`, \"GET\")\r\n .then((response) => {\r\n dispatch(setUser({ ...user, image: response.image }));\r\n })\r\n .catch((response) => console.error(response));\r\n };\r\n};\r\n\r\nexport const updateInfoUserAsync = (payload) => {\r\n return (dispatch, getState) => {\r\n const user = getState().users.user;\r\n const userJobs = getState().users.userJobs;\r\n\r\n dispatch(setSavingInfoUser(true));\r\n\r\n SETData(`users/users/${user.idUser}`, \"PATCH\", payload)\r\n .catch((response) => console.error(response))\r\n .finally(() => {\r\n SETData(`users/users/extradata/${user.idUser}`, \"PATCH\", payload)\r\n .then(() => {\r\n dispatch(\r\n setUser({\r\n ...user,\r\n ...payload,\r\n jobs: payload.roleIds\r\n ? userJobs.filter((j) => payload.roleIds.includes(j.idJob))\r\n : user.jobs,\r\n })\r\n );\r\n })\r\n .catch((response) => console.error(response))\r\n .finally(() => dispatch(setSavingInfoUser(false)));\r\n });\r\n };\r\n};\r\n\r\nexport const loadUserJobsAsync = () => {\r\n return (dispatch) => {\r\n GETData(`users/jobs`, \"GET\")\r\n .then((response) => {\r\n if (response !== null) {\r\n dispatch(setUserJobs(response));\r\n }\r\n })\r\n .catch((response) => console.error(response));\r\n };\r\n};\r\n\r\nexport const loadUserChannelsAsync = () => {\r\n return (dispatch) => {\r\n GETData(`users/users/channels`, \"GET\")\r\n .then((response) => {\r\n if (response !== null) {\r\n dispatch(setUserChannels(response));\r\n }\r\n })\r\n .catch((response) => console.error(response));\r\n };\r\n};\r\n\r\nexport const loadUserPersonalInterestsAsync = () => {\r\n return (dispatch) => {\r\n GETData(`users/users/interests`, \"GET\")\r\n .then((response) => {\r\n if (response !== null) {\r\n dispatch(setUserPersonalInterests(response));\r\n }\r\n })\r\n .catch((response) => console.error(response));\r\n };\r\n};\r\n\r\nexport const createUserAsync = (payload) => {\r\n return (dispatch, getState) => {\r\n const user = getState().users.user;\r\n const language = getState().shared.language;\r\n\r\n dispatch(setLoadingNewUser(true));\r\n\r\n SETData(`users/users/create/${user.idUser}`, \"POST\", payload)\r\n .then((response) => {\r\n if (response !== null) {\r\n Alert.success(language.alert_new_user_popup_success);\r\n dispatch(setShowCreateUserModal(0));\r\n dispatch(loadUsersByAccountAsync());\r\n dispatch(setShowUsersListModal(true));\r\n } else Alert.error(language.alert_new_user_popup_failed);\r\n })\r\n .catch((response) => console.error(response))\r\n .finally(() => dispatch(setLoadingNewUser(false)));\r\n };\r\n};\r\n\r\n// export const updateUserAsync = (payload) => {\r\n// return (dispatch, getState) => {\r\n\r\n// const data = {\r\n// name: payload.name,\r\n// lastname: payload.lastname,\r\n// email: payload.email,\r\n// phone: payload.phone,\r\n// idDocument: payload.idDocument,\r\n// idJob: payload.idJob,\r\n// roleIds: payload.roleIds,\r\n// servicesIds: payload.servicesIds\r\n// };\r\n\r\n// const language = getState().shared.language;\r\n\r\n// SETData(`users/users/update/${payload.idUser}`, \"PUT\", data)\r\n// .then((response) => {\r\n// if (response!== null) {\r\n// Alert.success(language.alert_edit_user_popup_success);\r\n// dispatch(setShowCreateUserModal(0));\r\n// dispatch(loadUsersByAccountAsync());\r\n// dispatch(setShowUsersListModal(true));\r\n// } else\r\n// Alert.error(language.alert_edit_user_popup_failed);\r\n// })\r\n// .catch(response => console.error(response))\r\n\r\n// }\r\n// }\r\n\r\n// export const deleteUserAsync = (payload) => {\r\n// return (dispatch, getState) => {\r\n\r\n// const language = getState().shared.language;\r\n\r\n// GETData(`users/users/${payload}`, \"DELETE\")\r\n// .then((response) => {\r\n// if (response !== null) {\r\n// Alert.success(language.alert_delete_user_success);\r\n// dispatch(setShowCreateUserModal(0));\r\n// dispatch(loadUsersByAccountAsync());\r\n// dispatch(setShowUsersListModal(true));\r\n// } else\r\n// Alert.error(language.alert_delete_user_error);\r\n// })\r\n// .catch(response => console.error(response));\r\n\r\n// }\r\n// }\r\n\r\nexport const loadUsersByAccountAsync = () => {\r\n return (dispatch, getState) => {\r\n const accountId = getState().accounts.account?.idAccount;\r\n\r\n dispatch(setUsersAccountLoading(true));\r\n\r\n GETData(`users/users/account/${accountId}`, \"GET\")\r\n .then((response) => {\r\n if (response !== null) dispatch(setUsersAccount(response));\r\n else dispatch(setUsersAccount([]));\r\n })\r\n .catch((response) => console.error(response))\r\n .finally(() => dispatch(setUsersAccountLoading(false)));\r\n };\r\n};\r\n\r\nexport const createUserPreferenceInfoAsync = (payload) => {\r\n return (dispatch, getState) => {\r\n const language = getState().shared.language;\r\n\r\n SETData(\"users/users/preferencedata\", \"POST\", payload)\r\n .then((response) => {\r\n if (response !== null) {\r\n Alert.success(language.alert_create_preference_info_user_success);\r\n dispatch(setShowModalUserPreference(true));\r\n } else Alert.error(language.alert_create_preference_info_user_error);\r\n dispatch(setShowModalUserPreference(false));\r\n })\r\n .catch((response) => console.error(response));\r\n };\r\n};\r\n\r\nexport const getUserPreferenceInfoAsync = () => {\r\n return (dispatch, getState) => {\r\n let user = getState().users.user;\r\n\r\n GETData(`users/users/preferencedata/${user.idUser}`, \"GET\")\r\n .then((response) => {\r\n if (response !== null) {\r\n dispatch(setUserPreferenceInfo(response));\r\n }\r\n })\r\n .catch((response) => console.error(response));\r\n };\r\n};\r\n\r\nexport const generateUserApiTokenAsync = () => {\r\n return (dispatch, getState) => {\r\n const user = getState().users.user;\r\n let language = getState().shared.language;\r\n\r\n const metadata = {\r\n id_user: user.idUser,\r\n email: user.email,\r\n credential: \"JNKDind0348NJF38HSj739hn93h87B37IOJN0hB73B8h3uUJNh8\",\r\n };\r\n\r\n SETData(\"token/create\", \"POST\", metadata, url_api)\r\n .then((response) => {\r\n if (response != null) {\r\n dispatch(getUserApiTokenAsync());\r\n }\r\n })\r\n .catch((response) => {\r\n console.error(response);\r\n Alert.error(language.alert_generate_token_api_error);\r\n });\r\n };\r\n};\r\n\r\nexport const getUserApiTokenAsync = () => {\r\n return (dispatch, getState) => {\r\n let user = getState().users.user;\r\n\r\n GETData(`users/users/tokenapi/${user.idUser}`, 'GET')\r\n .then((response) => {\r\n if (response!== null) {dispatch(setUserTokenApi(response?.token))}\r\n })\r\n .catch(response => console.error(response));\r\n }\r\n}\r\n\r\nexport const loadUsersAsync = (payload = {}) => {\r\n return async (dispatch, getState) => {\r\n dispatch(setListUsersLoading(true));\r\n try {\r\n const { id_services = [], search, sortOrder, sortField, page } = payload;\r\n const requestBody = {\r\n id_services: Array.isArray(id_services) ? id_services : [],\r\n page: page,\r\n ...(search && { search }),\r\n ...(sortOrder && { sortOrder }),\r\n ...(sortField && { sortField }),\r\n };\r\n const data = await SETData(\"usersdev/users/table\", \"POST\", requestBody);\r\n\r\n dispatch(setTotalPagesUsers(data.message.totalPages));\r\n dispatch(setTotalUsers(data.message.totalUsers));\r\n if (data && data.message && Array.isArray(data.message.users)) {\r\n const transformedUsers = data.message.users.map((user) => ({\r\n idUser: user.idUser,\r\n idAccount: user.services[0]?.account?.idAccount || 0,\r\n nameAccount: user.services[0]?.account?.name || \"Unknown\",\r\n servicesIds: user.services.map((service) => service.idService),\r\n name: `${user.name} ${user.lastname}`,\r\n area: user.businessUnit?.businessUnitName || \"Unknown\",\r\n rol: user.userType?.userTypeDescription || \"Unknown\",\r\n idRol: user.userType?.idUserType || 0,\r\n email: user.email,\r\n phone: user.phone,\r\n recordDate: new Date(user.lastActivity).toLocaleDateString(),\r\n }));\r\n dispatch(setUsers(transformedUsers));\r\n } else {\r\n dispatch(setUsers([]));\r\n console.warn(\"No valid users array in response\");\r\n }\r\n } catch (error) {\r\n console.error(\"Error loading users:\", error);\r\n dispatch(setUsers([]));\r\n }\r\n dispatch(setListUsersLoading(false));\r\n };\r\n};\r\n\r\nexport const getUserTypesAsync = (payload) => {\r\n return (dispatch, getState) => {\r\n GETData(`usersdev/userTypes/${payload}`, 'GET')\r\n .then((response) => {\r\n if (response !== null) {\r\n if (payload === 17) {\r\n const filteredResponse = response.filter(user => user.idUserType === 17);\r\n dispatch(setUsersTypeSelect(filteredResponse));\r\n } else {\r\n dispatch(setUsersTypeSelect(response));\r\n }\r\n }\r\n })\r\n .catch(response => console.error(response));\r\n };\r\n};\r\n\r\n\r\n\r\n//TODO: \r\nexport const getUserRegisteredAsync = (payload) => {\r\n return (dispatch, getState) => {\r\n let usersToInvite = getState().users.usersToInvite;\r\n const language = getState().shared.language;\r\n dispatch(setUserRegisteredLoading(true));\r\n SETData(`usersdev/invite/exists`, \"POST\", payload)\r\n .then((response) => {\r\n const result = response?.user || {};\r\n const existsInUsersToInvite = (user) =>\r\n usersToInvite.some(\r\n (u) =>\r\n (user.email && u.email === user.email) ||\r\n (user.phone && u.phone === user.phone)\r\n );\r\n let newUser;\r\n if (response.user === null) {\r\n newUser = {\r\n ...payload,\r\n userExist: false,\r\n userType: { idUserType: 17, description: 'Colaborador' },\r\n };\r\n } else {\r\n newUser = { ...result, userExist: true}\r\n }\r\n if (newUser && !existsInUsersToInvite(newUser)) {\r\n dispatch(setUsersToInvite([...usersToInvite, newUser]));\r\n } else {\r\n Alert.error(language[\"user_alert_duplicate_user_to_invite\"]);\r\n }\r\n })\r\n .catch((response) => console.error(response))\r\n .finally(() => {\r\n dispatch(setUserRegisteredLoading(false));\r\n });\r\n };\r\n};\r\n\r\n//TODO: \r\nexport const loadInviteUserAsync = () => {\r\n return (dispatch, getState) => {\r\n let usersToInvite = getState().users.usersToInvite;\r\n const userId = getState().users.user.idUser;\r\n const serviceIds = getState().users.userServicesSelected.newServices;\r\n const language = getState().shared.language;\r\n const users = usersToInvite.map((user) => ({\r\n phone: user.phone,\r\n email: user.email,\r\n idTypeUser: user.userType.idUserType,\r\n }));\r\n const metaData = {\r\n users: users.length ? users : [],\r\n idServices: serviceIds.length ? serviceIds : [],\r\n idUserInviting: userId,\r\n };\r\n dispatch(setInfoInviteSuccessModal(metaData));\r\n dispatch(setLoadingNewUser(true));\r\n SETData(`usersdev/invite`, \"POST\", metaData)\r\n .then((response) => {\r\n if (response !== null) {\r\n dispatch(setShowInviteSuccessModal(true));\r\n dispatch(setUsersToInvite([]));\r\n dispatch(setUserServicesSelected({ key: \"newServices\", value: [] }));\r\n Alert.success(language[\"alert_new_user_popup_success\"]);\r\n } else {\r\n Alert.error(language[\"alert_new_user_popup_failed\"]);\r\n }\r\n })\r\n .catch((response) => console.error(response))\r\n .finally(() => dispatch(setLoadingNewUser(false)));\r\n };\r\n};\r\n\r\n\r\n//TODO: \r\nexport const loadUserTypesAsync = () => {\r\n return (dispatch, getState) => {\r\n const userType = getState().users.user?.userType?.idUserType;\r\n \r\n GETData(`usersdev/userTypes/${userType}`, 'GET')\r\n .then((response) => {\r\n if (response!== null) {dispatch(setUserTypes(response))}\r\n })\r\n .catch(response => console.error(response));\r\n }\r\n};\r\n\r\n//TODO: \r\nexport const updateUserAsync = (payload) => {\r\n return async (dispatch, getState) => {\r\n const language = getState().shared.language;\r\n const data = {\r\n idUserType: payload.user.idUserType || payload.user.idRol,\r\n servicesIds: payload.user.servicesIds || []\r\n };\r\n dispatch(setLoadingUpdateUser(true));\r\n await SETData(`usersdev/users/update/${payload.user.idUser}`, \"PUT\", data)\r\n .then((response) => {\r\n if (response !== null) {\r\n Alert.success(language['alert_edit_user_popup_success']);\r\n dispatch(setUserServicesSelected({ key: 'updatedServices', value: [] }));\r\n // payload.navigation.navigate('Users');\r\n // dispatch(loadUsersAsync());\r\n } else {\r\n Alert.error(language['alert_edit_user_popup_failed']);\r\n }\r\n })\r\n .catch(response => console.error(response))\r\n .finally(() => { dispatch(setLoadingUpdateUser(false)) });\r\n };\r\n };\r\n//TODO: \r\nexport const deleteUserAsync = (idUser, idAccount) => {\r\n return (dispatch, getState) => {\r\n const selectedAccount = getState().users.accountSelectedUsersTable;\r\n const accounts = getState().accounts.totalAccounts;\r\n const metaData = { idUser, idAccount };\r\n\r\n const accountFound = accounts.find(\r\n (currentAccount) => currentAccount.idAccount === selectedAccount\r\n );\r\n const idServices = accountFound\r\n ? accountFound.services.map((currentService) => currentService.idService)\r\n : [];\r\n\r\n dispatch(setLoadingDeleteUser(true));\r\n\r\n dispatch(setLoadingDeleteUser(true));\r\n\r\n SETData(`usersdev/users/removeAccount`, \"POST\", metaData)\r\n .then((response) => {\r\n if (response !== null) {\r\n dispatch(loadUsersAsync({\r\n id_services: idServices\r\n }));\r\n } else {\r\n console.error('Error: No se pudo desasociar al usuario');\r\n }\r\n })\r\n .catch((error) => {\r\n console.error('Error removing user account:', error);\r\n })\r\n .finally(() => {\r\n dispatch(setLoadingDeleteUser(false));\r\n });\r\n };\r\n};\r\n","import * as services from \"../creators/Accounts\";\r\n\r\nimport { GETData } from \"../../services/WebServices\";\r\n\r\nimport { identify, Identify } from \"@amplitude/analytics-browser\"\r\n\r\nexport const setTotalAccounts = payload => {\r\n return {\r\n type: services.SET_TOTAL_ACCOUNTS,\r\n payload\r\n }\r\n}\r\n\r\nexport const setAccount = payload => {\r\n return {\r\n type: services.SET_ACCOUNT,\r\n payload\r\n }\r\n}\r\n\r\nexport const setNeugets = payload => {\r\n return {\r\n type: services.SET_NEUGETS,\r\n payload\r\n }\r\n}\r\n\r\nexport const setCodeReferred = payload => {\r\n return {\r\n type: services.SET_CODE_REFERRED,\r\n payload\r\n }\r\n}\r\n\r\nexport const loadAccountsAsync = () => {\r\n return (dispatch, getState) => {\r\n\r\n let accountSavedInLocalStorage = localStorage.getItem(\"account\");\r\n\r\n if (accountSavedInLocalStorage !== null && accountSavedInLocalStorage !== undefined && accountSavedInLocalStorage !== 'undefined')\r\n accountSavedInLocalStorage = JSON.parse(accountSavedInLocalStorage);\r\n\r\n const userId = getState().users.user.idUser\r\n const usersNEU = [730, 1227, 848, 542, 2128]\r\n\r\n GETData(`users/accounts/?user=${userId}`, \"GET\")\r\n .then((response) => {\r\n if (response !== null) {\r\n const identifyObj = new Identify()\r\n identifyObj\r\n .set(\"accounts\", response?.length && response.map(function (account) { return account?.name }));\r\n identify(identifyObj);\r\n response = response.map((item) => {\r\n if (item?.idAccount === 392 && usersNEU.includes(userId)) {\r\n return { ...item, name: \"DEMO ENERGY\" }\r\n } else {\r\n return item\r\n }\r\n })\r\n\r\n const checkIfLocalStorageHaveAValidAccount = response.some((accounts) => {\r\n return accounts.idAccount === accountSavedInLocalStorage?.idAccount\r\n })\r\n\r\n dispatch(setTotalAccounts(response));\r\n\r\n if (accountSavedInLocalStorage && checkIfLocalStorageHaveAValidAccount) {\r\n dispatch(setAccount(accountSavedInLocalStorage))\r\n } else {\r\n dispatch(setAccount(response[0]))\r\n localStorage.setItem(\"account\", JSON.stringify(response[0]))\r\n }\r\n }\r\n })\r\n .catch((response) => console.error(response))\r\n }\r\n}\r\n\r\nexport const loadNeugetsByAccountAsync = () => {\r\n return (dispatch, getState) => {\r\n\r\n const accountId = getState().accounts.account?.idAccount;\r\n\r\n GETData(`users/neugets/total/${accountId}`, \"GET\")\r\n .then(response => {\r\n if (response !== null)\r\n dispatch(setNeugets(response.totalNeugets));\r\n else\r\n dispatch(setNeugets(0));\r\n })\r\n .catch(response => console.error(response));\r\n }\r\n}\r\n\r\nexport const getCodeReferredByAccountAsync = () => {\r\n return (dispatch, getState) => {\r\n\r\n const accountId = getState().accounts.account?.idAccount;\r\n\r\n GETData(`users/accounts/refcode/${accountId}`, 'GET')\r\n .then((response) => {\r\n if (response !== null) { dispatch(setCodeReferred(response)) }\r\n })\r\n .catch(response => console.error(response));\r\n }\r\n}\r\n\r\n","const lang = {\r\n title_button_go_to_back: \"Atrás\",\r\n support_title_main: \"Crear un ticket\",\r\n support_emergency_button: \"Emergencia\",\r\n support_help_button: \"Centro de ayuda\",\r\n notifications_title: \"Notificaciones\",\r\n notifications_show_all: \"Todas\",\r\n notifications_show_alerts: \"Alertas\",\r\n notifications_back_button: \"Atrás\",\r\n notifications_notification_set_read: \"Marcar como leída\",\r\n notifications_notification_set_unread: \"Marcar como no leída\",\r\n notifications_notification_delete: \"Eliminar notificación\",\r\n notifications_empty_state_title: \"No hay notificaciones disponibles en este momento\",\r\n notifications_empty_state_text: \"No tienes ninguna notificación, revisa en otra ocasión\",\r\n support_main_title_drawer: \"Centro de ayuda\",\r\n support_main_description_drawer: \"¡Deja aquí tus datos! Te contactaremos en breve con una solución.\",\r\n support_title_section_personal_data: \"Datos personales\",\r\n support_input_label_id_document: \"Documento de identidad\",\r\n support_input_label_user_name: \"Nombres\",\r\n support_input_placeholder_user_name_example: \"Ej. Luis Enrique\",\r\n support_input_label_user_lastname: \"Apellidos\",\r\n support_input_placeholder_user_lastname_example: \"Ej. Cortes López\",\r\n support_input_label_user_email: \"Correo electrónico\",\r\n support_input_placeholder_user_email_example: \"Ej. lcortes@neu.com.co\",\r\n support_input_label_user_phone: \"Teléfono\",\r\n support_input_placeholder_user_phone_example: \"Ej. 3013865253\",\r\n support_input_label_user_address: \"Dirección\",\r\n support_input_placeholder_user_address_example: \"Ej. Calle 27 S # 100 - 14\",\r\n support_select_label_service: \"Servicio\",\r\n support_select_label_type_ticket: \"Tipo de ticket\",\r\n support_select_option_customer_requests: \"Peticiones\",\r\n support_select_option_customer_claims: \"Reclamos\",\r\n support_select_option_customer_complaints: \"Quejas\",\r\n support_select_option_customer_suggestions: \"Sugerencias\",\r\n support_select_label_area_ticket: \"Área del ticket\",\r\n support_select_option_billing: \"Facturación\",\r\n support_select_option_operations: \"Operaciones\",\r\n support_select_option_tech: \"Tecnología\",\r\n support_select_option_accounting: \"Contabilidad\",\r\n support_select_option_legal: \"Legal\",\r\n support_select_option_customer_success: \"Customer Success\",\r\n support_title_section_detail_ticket: \"Detalles del ticket\",\r\n support_input_label_request_ticket: \"Describe tu solicitud\",\r\n support_title_section_upload_file: \"Agregar Documento (opcional)\",\r\n support_description_section_upload_file: \"Puedes agregar tu factura o algún documento, que creas necesario, para completar tu solicitud.\",\r\n support_button_label_upload_file: \"Agregar archivo\",\r\n support_button_label_send_form: \"Enviar\",\r\n user_picker_placeholder_account: \"Nombre de la cuenta\",\r\n user_title_section_personal_data: \"Datos personales\",\r\n user_title_section_your_info: \"Tu información\",\r\n user_input_label_id_document: \"Documento de identidad\",\r\n user_input_label_names: \"Nombres\",\r\n user_input_placeholder_names_example: \"Ej. Luis Enrique\",\r\n user_input_label_lastname: \"Apellidos\",\r\n user_input_placeholder_lastname_example: \"Ej. Cortes López\",\r\n user_input_label_email: \"Correo electrónico\",\r\n user_input_placeholder_email_example: \"Ej. lcortes@neu.com.co\",\r\n user_input_label_phone: \"Teléfono\",\r\n user_input_placeholder_phone_example: \"Ej. 3013865253\",\r\n user_input_label_optional_phone: \"Teléfono alternativo\",\r\n user_input_placeholder_optional_phone_example: \"Ej. 3040625\",\r\n user_input_label_address: \"Dirección\",\r\n user_input_placeholder_address_example: \"Ej. Calle 27 S # 100 - 14\",\r\n user_input_label_optional_address: \"Dirección alternativa\",\r\n user_input_placeholder_optional_address_example: \"Ej. Calle 13 S # 120 - 45\",\r\n user_select_label_language: \"Selecciona un lenguaje\",\r\n user_title_section_health: \"Información Salud\",\r\n user_input_label_height: \"Altura (m)\",\r\n user_input_placeholder_height_example: \"Ej. 1.75\",\r\n user_input_label_weight: \"Peso (kg)\",\r\n user_input_placeholder_weight_example: \"Ej. 78\",\r\n user_input_label_eps: \"EPS\",\r\n user_input_placeholder_eps_example: \"Ej. Sura\",\r\n user_select_label_insurance: \"¿Tienes seguro de salud?\",\r\n user_title_section_home: \"Información Hogar\",\r\n user_input_label_type_property: \"Tipo de casa\",\r\n user_input_placeholder_type_property: \"Seleccione un tipo de inmueble\",\r\n user_input_label_house_area: \"Área (m2)\",\r\n user_input_placeholder_house_area_example: \"Ej. 70\",\r\n user_input_label_house_people: \"¿Cuántas personas viven en tu hogar?\",\r\n user_input_label_house_levels: \"¿Cuántos niveles tiene tu hogar?\",\r\n user_input_label_house_floor: \"¿Qué piso es?\",\r\n user_picker_label_own_home: \"¿Tu casa es propia?\",\r\n user_picker_label_solar_system: \"¿Tienes un sistema solar?\",\r\n user_title_section_vehicle: \"Información Automóvil\",\r\n user_picker_label_own_vehicle: \"¿Tienes tu propio vehículo?\",\r\n user_picker_label_electric_vehicle: \"¿Tu vehículo es eléctrico?\",\r\n user_picker_label_armored_vehicle: \"¿Tu vehículo es blindado?\",\r\n user_save_button: \"Guardar\",\r\n user_cancel_button: \"Cancelar\",\r\n user_title_section_create_users: \"Agregar nuevo usuario\",\r\n user_title_section_edit_users: \"Editar usuarios\",\r\n user_title_section_accounts: \"Mis cuentas\",\r\n user_title_section_privacy_info: \"Aviso de privacidad\",\r\n user_title_section_terms_conditions: \"Términos & condiciones\",\r\n user_button_logout: \"Cerrar sesión\",\r\n user_select_option_language_es: \"Español\",\r\n user_select_option_language_en: \"Inglés\",\r\n user_select_option_type_apartment: \"Apartamento\",\r\n user_select_option_type_house: \"Casa\",\r\n user_select_option_type_country_house: \"Casa Campestre\",\r\n user_select_option_type_farm: \"Finca\",\r\n user_title_create_user: \"Agregar Usuario\",\r\n user_title_edit_user: \"Editar Usuario\",\r\n user_select_label_job_area: \"Selecciona el área a la que pertenece\",\r\n user_select_option_financial_area: \"Financiera\",\r\n user_select_option_energy_area: \"Energía\",\r\n user_select_option_support_area: \"Mantenimiento\",\r\n user_select_option_enviromental_area: \"Ambiental y Sostenibilidad\",\r\n user_select_option_other_area: \"Otro\",\r\n user_select_label_services_selected: \"Servicios seleccionados\",\r\n user_select_label_services: \"Seleccione los servicios\",\r\n user_button_add_user: \"Agregar Usuario\",\r\n user_button_edit_user: \"Editar Usuario\",\r\n users_title_main_header: \"Usuarios\",\r\n users_table_header_edit: \"Editar\",\r\n users_table_header_id_document: \"Documento\",\r\n users_table_header_name: \"Nombre\",\r\n users_table_header_lastname: \"Apellido\",\r\n users_table_header_phone: \"Teléfono\",\r\n users_table_header_email: \"Correo electrónico\",\r\n users_table_header_job_area: \"Área\",\r\n users_table_header_services: \"Servicios\",\r\n users_pagination_go_to_page: \"Ir a página:\",\r\n users_pagination_show_page: \"Mostrar\",\r\n login_main_title: \"Reinventamos el futuro de la energía\",\r\n login_title_description: \"Inicia sesión con tu correo o número registrado.\",\r\n login_input_label_data: \"Correo o número de teléfono\",\r\n login_input_label_code: \"Escribe el código de verificación de 6 dígitos que te enviamos a:\",\r\n login_question_code: \"¿No recibiste el código?\",\r\n login_await_resend_code: \"Debes esperar #seg\",\r\n login_unit_await_resend_code: \"segundos\",\r\n login_resend_code: \"Reenviar un nuevo código\",\r\n login_button_validate: \"Validar\",\r\n login_button_continue: \"Continuar\",\r\n login_button_enter: \"Ingresar\",\r\n login_link_cancel: \"Cancelar\",\r\n login_title_step_two: \"Sólo un paso más...\",\r\n plus_title_main_dashboard: \"Streaming\",\r\n plus_label_empty_data: \"Aún no posees datos disponibles\",\r\n plus_title_empty_state: \"Es hora de que tomes el control de tu energía\",\r\n plus_introduction_empty_state: \"Todo el mundo necesita energía, pero sabemos que no hay dos negocios iguales. Haremos las cosas fáciles para que pueda comprender, actuar y comenzar a ahorrar dinero en su factura de energía.\",\r\n plus_phrase_empty_state: \"Te mereces algo mejor, te mereces NEU+\",\r\n plus_button_access: \"Súmale poder a tu energía\",\r\n plus_link_more_info: \"Conoce más\",\r\n plus_graph_picker_option_active_power: \"Potencia activa\",\r\n plus_graph_picker_option_reactive_power: \"Potencia reactiva\",\r\n plus_graph_picker_option_rms_voltage_1: \"Voltaje 1\",\r\n plus_graph_picker_option_rms_voltage_2: \"Voltaje 2\",\r\n plus_graph_picker_option_rms_voltage_3: \"Voltaje 3\",\r\n plus_graph_picker_option_rms_current_1: \"Corriente 1\",\r\n plus_graph_picker_option_rms_current_2: \"Corriente 2\",\r\n plus_graph_picker_option_rms_current_3: \"Corriente 3\",\r\n plus_graph_text_help_tag_step_1: \"Arrastre la línea punteada dentro de la gráfica para obtener el primer punto. Puedes marcar solo este punto o añadir un punto final con seleccionar rango.\",\r\n plus_graph_text_help_tag_step_2: \"Arrastre de nuevo la línea hasta el segundo punto, para marcar un rango de tiempo específico de la etiqueta.\",\r\n plus_graph_text_empty_data_device: \"No hemos podido encontrar respuesta del medidor. Revisa la conexión.\",\r\n plus_graph_text_last_connection: \"Últ. conexión: \",\r\n plus_graph_button_show_last_records_device: \"Mostrar últimos datos registrados\",\r\n plus_title_max_active_power: \"Potencia activa\",\r\n plus_unit_max_active_power: \"Máx.\",\r\n plus_graph_button_tag: \"Etiquetar\",\r\n plus_graph_button_tag_manager: \"Administrar etiquetas\",\r\n plus_graph_button_select_point: \"Marcar punto\",\r\n plus_graph_button_select_range: \"Seleccionar rango\",\r\n plus_graph_button_select_points: \"Marcar y finalizar\",\r\n plus_graph_button_go_back: \"Volver\",\r\n plus_always_on_title: \"Consumo Fantasma\",\r\n plus_trends_title: \"Tendencias\",\r\n plus_trends_label: \"en comparación a la hora anterior\",\r\n plus_radar_title: \"Calidad de Energía\",\r\n plus_rank_title: \"Comparativa\",\r\n plus_graph_title_empty_data: \"No hay datos para mostrar\",\r\n tag_new_device_main_title: \"Crear Nuevo Dispositivo\",\r\n tag_new_device_header_label_save: \"Guardar\",\r\n tag_new_device_header_label_cancel: \"Cancelar\",\r\n tag_new_device_header_label_device: \"Agregar dispositivo\",\r\n tag_new_device_title_name: \"Nombre Dispositivo\",\r\n tag_new_device_input_label_name: \"Nombre\",\r\n tag_new_device_title_type: \"Tipo de Dispositivo\",\r\n tag_new_device_input_label_type: \"Tipo de Dispositivo\",\r\n tag_new_device_title_brand: \"Marca\",\r\n tag_new_device_input_label_brand: \"Marca\",\r\n tag_new_device_title_reference: \"Referencia\",\r\n tag_new_device_input_label_reference: \"Ref.\",\r\n tag_new_device_button_create: \"Crear\",\r\n tag_new_device_button_cancel: \"Cancelar\",\r\n tag_new_tag_header_label_save: \"Guardar\",\r\n tag_new_tag_header_label_tag: \"Crear Etiquetas\",\r\n tag_new_tag_header_label_cancel: \"Cancelar\",\r\n tag_new_tag_input_label_search: \"Buscar dispositivo\",\r\n tag_new_tag_title_devices_list: \"Listado de dispositivos\",\r\n tag_new_tag_text_average_comsuption: \"Consumo promedio\",\r\n tag_new_tag_text_duration: \"Duración\",\r\n tag_new_tag_text_no_tag: \"No posee etiquetas\",\r\n tag_new_tag_text_no_devices: \"No hay dispositivos creados\",\r\n tag_new_tag_text_no_devices_description: \"Empieza a agregar tus dispositivos para vincularlos a tus etiquetas.\",\r\n tag_new_tag_button_link_tag: \"Vincular Etiqueta\",\r\n tag_table_tag_label_processed: \"Instantáneo\",\r\n tag_table_tag_label_procesing: \"Procesando...\",\r\n tag_new_tag_button_new_device: \"Nuevo Dispositivo\",\r\n tag_graph_power_legend_active_power: \"Potencia Activa\",\r\n tag_graph_power_legend_reactive_power: \"Potencia Reactiva\",\r\n tag_graph_power_title_empty_data: \"No hay datos\",\r\n tag_graph_power_phrase_empty_data: \"Empieza a etiquetar tus dispositivos para ver tus datos aquí\",\r\n tag_manager_title_main_dashboard: \"Administrar Etiquetas\",\r\n tag_manager_title_devices: \"Dispositivos\",\r\n tag_manager_table_header_name: \"Nombre\",\r\n tag_manager_table_header_create_at: \"Creación\",\r\n tag_manager_table_header_active_energy: \"Energía Activa\",\r\n tag_manager_table_header_active_power: \"Potencia Activa\",\r\n tag_manager_table_header_reactive_energy: \"Energía Reactiva\",\r\n tag_manager_table_header_reactive_power: \"Potencia Reactiva\",\r\n tag_manager_table_title_empty_data: \"No hay datos\",\r\n tag_manager_table_phrase_empty_data: \"Empieza a etiquetar tus dispositivos para ver tus datos aquí\",\r\n tag_manager_button_tag: \"Etiquetar\",\r\n tag_title_section_new_tags: \"Etiquetas Recientes\",\r\n services_input_label_search: \"Buscar ubicación\",\r\n services_select_all: \"Seleccionar todos los servicios\",\r\n energy_main_title_dashboard: \"Servicios\",\r\n energy_invoice_show_bills: \"Ver facturas\",\r\n energy_invoice_state_paid: \"Pagada\",\r\n energy_invoice_state_to_pay: \"Pagar\",\r\n energy_invoice_no_bills: \"No hay facturas para mostrar\",\r\n energy_invoice_title: \"Mis Facturas\",\r\n energy_invoice_label_consumption: \"Consumo\",\r\n energy_invoice_label_tariff: \"Tarifa\",\r\n energy_invoice_show_detail: \"Ver detalle\",\r\n energy_trends_title: \"Tendencias\",\r\n energy_trends_title_comparative: \"en comparación al mes anterior\",\r\n energy_widgets_empty_data: \"Aún no hay datos para mostrar\",\r\n energy_adress_title: \"Dirección\",\r\n energy_service_type_title: \"Tipo de Servicio\",\r\n energy_users_title: \"Usuarios\",\r\n energy_period_picker_hour_to_hour: \"Hora a Hora\",\r\n energy_period_picker_hour_to_hour_description: \"Verás un (1) día dividido en 24 horas.\",\r\n energy_period_picker_day_to_day: \"Rango semanal\",\r\n energy_period_picker_day_to_day_description: \"Verás una semana dividida en 7 días.\",\r\n energy_period_picker_day_to_day_monthly: \"Rango mensual\",\r\n energy_period_picker_day_to_day_monthly_description: \"Verás un mes dividido en 30 días.\",\r\n energy_period_picker_month_to_month: \"Rango anual\",\r\n energy_period_picker_month_to_month_description: \"Verás un año dividido en 12 meses.\",\r\n energy_graph_calendar_fast_access: \"Accesos rápidos\",\r\n energy_graph_calendar_button: \"Hecho\",\r\n energy_graph_calendar_week_range: \"Últimos 7 días\",\r\n energy_graph_calendar_month_range: \"Último mes\",\r\n energy_graph_title_empty_data: \"Todavía no hay datos disponibles para tu selección, lo estamos solucionando\",\r\n energy_graph_description_empty_data: \"Modifica la variable o el rango de fecha para visualizar los datos disponibles\",\r\n energy_graph_empty_data_button: \"Selecciona un rango de fechas\",\r\n energy_graph_title: \"Gráficas\",\r\n energy_graph_title_consumption: \"Consumo\",\r\n energy_graph_title_generation: \"Generación\",\r\n energy_graph_title_daily_consumption: \"Consumo Diario\",\r\n energy_graph_title_weekly_consumption: \"Consumo Semanal\",\r\n energy_graph_title_monthly_consumption: \"Consumo Mensual\",\r\n energy_graph_title_year_consumption: \"Consumo Anual\",\r\n energy_graph_title_daily_generation: \"Generación Diaria\",\r\n energy_graph_title_weekly_generation: \"Generación Semanal\",\r\n energy_graph_title_monthly_generation: \"Generación Mensual\",\r\n energy_graph_title_year_generation: \"Generación Anual\",\r\n energy_graph_indicator_total: \"Total\",\r\n energy_graph_indicator_max: \"Máximo\",\r\n energy_graph_indicator_min: \"Mínimo\",\r\n energy_graph_indicator_average: \"Promedio\",\r\n energy_graph_period_picker_day: \"Día\",\r\n energy_graph_period_picker_week: \"Semana\",\r\n energy_graph_period_picker_month: \"Mes\",\r\n energy_graph_period_picker_year: \"Año\",\r\n energy_graph_type_picker_search: \"Buscar gráfica\",\r\n energy_graph_type_disclaimer: \"Ciertas variables no se pueden comparar entre sí por las diferencias en unidad de medida\",\r\n energy_graph_group_reactive: \"Reactiva\",\r\n energy_graph_type_average_line: \"Promedio (en gráfica)\",\r\n energy_graph_group_ac: \"AC\",\r\n energy_graph_group_irradiance: \"Irradiación\",\r\n energy_graph_group_transactive_energy: \"Transacciones\",\r\n energy_graph_group_power: \"Potencia\",\r\n energy_graph_group_active_energy_cost: \"Costo de la energía\",\r\n energy_graph_group_dc: \"DC\",\r\n energy_graph_group_generation: \"Generación\",\r\n energy_graph_group_current: \"Corriente\",\r\n energy_graph_group_frequency: \"Frecuencia\",\r\n energy_graph_group_active_energy: \"Consumo\",\r\n energy_graph_group_metereology: \"Meteorología\",\r\n energy_graph_group_injection: \"Inyección\",\r\n energy_graph_group_voltage: \"Voltaje\",\r\n energy_graph_group_temperature: \"Temperatura\",\r\n energy_graph_group_irradiance_gen: \"Irradiancia / Generación.\",\r\n energy_graph_group_operation_state: \"Estado de operación\",\r\n energy_graph_group_prediction_active_energy: \"Predicción de consumo\",\r\n energy_graph_group_power_limitation: \"Limitación de potencia\",\r\n energy_graph_group_power_factor_plus: \"Factor de potencia\",\r\n energy_graph_label_active_energy: \"Consumo\",\r\n energy_graph_label_injected_energy: \"Inyección\",\r\n energy_graph_label_transactive_energy: \"Transacciones\",\r\n energy_graph_label_reactive_excess_energy: \"Reactiva en exceso\",\r\n energy_graph_label_reactive_inductive_energy: \"Reactiva inductiva\",\r\n energy_graph_label_reactive_capacitive_energy: \"Reactiva capacitiva\",\r\n energy_graph_label_current: \"Corriente\",\r\n energy_graph_label_voltage: \"Voltaje\",\r\n energy_graph_label_frequency: \"Frecuencia\",\r\n energy_graph_label_generation: \"Generación\",\r\n energy_graph_label_generation_spec: \"Generación especifica\",\r\n energy_graph_label_current_ac: \"Corriente AC\",\r\n energy_graph_label_current_dc: \"Corriente DC\",\r\n energy_graph_label_voltage_ac: \"Tensión AC\",\r\n energy_graph_label_voltage_dc: \"Tensión DC\",\r\n energy_graph_label_active_pwr: \"Potencia activa\",\r\n energy_graph_label_apparent_pwr: \"Potencia aparente\",\r\n energy_graph_label_pwr_factor: \"Factor de potencia\",\r\n energy_graph_label_inverter_temp: \"Temperatura del inversor\",\r\n energy_graph_label_heatsink_temp: \"Temperatura del disipador\",\r\n energy_graph_label_irradiance: \"Irradiación\",\r\n energy_graph_label_irradiance_hourly: \"Irradiancia\",\r\n energy_graph_label_panel_temp: \"Temperatura del panel\",\r\n energy_graph_label_environment_temp: \"Temperatura ambiente\",\r\n energy_graph_label_humidity: \"Humedad\",\r\n energy_graph_label_wind_speed: \"Velocidad del viento\",\r\n energy_graph_label_wind_direction: \"Dirección del viento\",\r\n energy_graph_label_gen_frequency: \"Frecuencia\",\r\n energy_graph_label_active_energy_cost: \"Costo de la energía\",\r\n energy_graph_label_active_power: \"Potencia activa\",\r\n energy_graph_label_reactive_power: \"Potencia reactiva\",\r\n energy_graph_label_prediction_active_energy: \"Predicción de consumo\",\r\n energy_graph_label_reactive_inductive_excess_energy: \"Reactiva inductiva en exceso\",\r\n energy_graph_label_reactive_capacitive_excess_energy: \"Reactiva capacitiva en exceso\",\r\n energy_graph_label_power_limitation: \"Limitación de potencia\",\r\n energy_graph_label_power_factor_plus: \"Factor de potencia\",\r\n energy_graph_unit_active_energy: \"kWh\",\r\n energy_graph_unit_injected_energy: \"kWh\",\r\n energy_graph_unit_transactive_energy: \"kWh\",\r\n energy_graph_unit_reactive_excess_energy: \"kVArh\",\r\n energy_graph_unit_reactive_inductive_energy: \"kVArh\",\r\n energy_graph_unit_reactive_capacitive_energy: \"kVArh\",\r\n energy_graph_unit_reactive_inductive_excess_energy: \"kVArh\",\r\n energy_graph_unit_reactive_capacitive_excess_energy: \"kVArh\",\r\n energy_graph_unit_current: \"Amp\",\r\n energy_graph_unit_voltage: \"Vol\",\r\n energy_graph_unit_frequency: \"Hz\",\r\n energy_graph_unit_generation: \"kWh\",\r\n energy_graph_unit_generation_spec: \"kWh/kWp\",\r\n energy_graph_unit_current_ac: \"Amp\",\r\n energy_graph_unit_current_dc: \"Amp\",\r\n energy_graph_unit_voltage_ac: \"Vol\",\r\n energy_graph_unit_voltage_dc: \"Vol\",\r\n energy_graph_unit_active_pwr: \"kW\",\r\n energy_graph_unit_apparent_pwr: \"kVA\",\r\n energy_graph_unit_pwr_factor: \"\",\r\n energy_graph_unit_inverter_temp: \"°C\",\r\n energy_graph_unit_heatsink_temp: \"°C\",\r\n energy_graph_unit_irradiance: \"Wh/m2\",\r\n energy_graph_unit_irradiance_hourly: \"W/m2\",\r\n energy_graph_unit_panel_temp: \"°C\",\r\n energy_graph_unit_environment_temp: \"°C\",\r\n energy_graph_unit_humidity: \"%\",\r\n energy_graph_unit_wind_speed: \"m/s\",\r\n energy_graph_unit_wind_direction: \"grados\",\r\n energy_graph_unit_gen_frequency: \"Hz\",\r\n energy_graph_unit_active_energy_cost: \"COP\",\r\n energy_graph_unit_active_power: \"W\",\r\n energy_graph_unit_reactive_power: \"W\",\r\n energy_graph_unit_prediction_active_energy: \"kWh\",\r\n energy_graph_unit_power_limitation: \"\",\r\n energy_graph_unit_power_factor_plus: \"\",\r\n invoices_main_title_dashboard: \"Facturas\",\r\n invoices_main_title: \"Mis Facturas\",\r\n invoices_title: \"Detalle facturas\",\r\n invoices_empty_account_selection: \"Todas mis cuentas\",\r\n invoices_account_total_selection_separator: \"de\",\r\n invoices_account_total_selection: \"cuentas\",\r\n invoices_empty_date_selection: \"Todos los meses\",\r\n invoices_empty_filter_selection: \"Todas las facturas\",\r\n invoices_pending_filter_option: \"Por pagar\",\r\n invoices_download_consolidate: \"Descargar consolidado\",\r\n invoices_watch_all_months: \"Ver todos los meses\",\r\n invoices_calendar_done: \"hecho\",\r\n invoices_pay_with_method_view_title: \"Pago de facturas\",\r\n invoices_pay_invoices_selected: \"Facturas a pagar\",\r\n invoices_pay_invoices_selected_unit: \"facturas\",\r\n invoices_pay_total_title: \"Pago total\",\r\n invoices_pay_total_unit: \"COP\",\r\n invoices_pay_first_advice_payment_method: \"T&C: Desde nuestro Ecommerce no capturamos, almacenamos, ni transmitimos datos transaccionales. Para esto contamos con los servicios de Openpav, una plataforma de pagos certificada; que garantiza la seguridad de todas las transaciones por medio de software de encriptación, procedimientos de validación y medidas robustas de protección de datos a nivel bancario (certificación PCI nivel 1). Por eso realizar los pagos en nuestro sitio web es seguro.\",\r\n invoices_pay_second_advice_payment_method: \"Si su pago es con PSE. la pasarela de pagos Openpay se encarga de comunicarlo directamente con su banco a través de ACH, al pagar a través de este canal, estamos utilizando los procesos de seguridad de su propio banco, quien es el que valida su clave principal y segunda clave si es el caso.\",\r\n invoices_accounts_services_selected_unit: \"proyectos asociados\",\r\n invoices_accounts_select_all: \"Seleccionar todas\",\r\n invoices_accounts_deselect_all: \"Deseleccionar todas\",\r\n invoices_accounts_done: \"hecho\",\r\n invoices_table_consumption_unit: \"kWh/mes\",\r\n invoices_table_service_name_header_title: \"Nombre proyecto\",\r\n invoices_table_reference_header_title: \"No. factura\",\r\n invoices_table_tariff_header_title: \"Tarifa(mes)\",\r\n invoices_table_consumption_header_title: \"Consumo\",\r\n invoices_table_invoice_state_header_title: \"Estado factura\",\r\n invoices_table_total_payment_header_title: \"Total a pagar\",\r\n invoices_table_expiration_date_header_title: \"Pagar antes de\",\r\n invoices_summary_title: \"Resumen\",\r\n invoices_summary_deselect_all_services: \"Deseleccionar todos los proyectos\",\r\n invoices_summary_select_all_services: \"Seleccionar todos los proyectos\",\r\n invoices_summary_invoices_unit: \"facturas\",\r\n invoices_summary_consumption_selected_title: \"Consumo total seleccionado\",\r\n invoices_summary_consumption_selected_unit: \"kWh\",\r\n invoices_summary_not_pending_invoices_first_content: \"!Bien hecho!\",\r\n invoices_summary_not_pending_invoices_second_content: \"Estas al día con el pago de tus facturas. Hasta hoy, no tienes deudas en tu factura de energía y eso nos llena de felicidad. !Gracias por tu compromiso!\",\r\n invoices_summary_total_payment_title: \"Pago total\",\r\n invoices_summary_total_payment_unit: \"COP\",\r\n invoices_summary_total_payment_pay: \"Pagar facturas\",\r\n invoices_summary_total_payment_empty: \"Selecciona tus facturas\",\r\n invoices_summary_account_filter_alert_before_bold: 'Recuerda seleccionar el filtro de \"',\r\n invoices_summary_account_filter_alert_bold: 'todas las cuentas',\r\n invoices_summary_account_filter_alert_after_bold: '\" para visualizar otras facturas pendientes.',\r\n invoices_selected_invoices_summary_title: \"Seleccionadas para pago\",\r\n invoices_pending_invoices_summary_title: \"Otras facturas por pagar\",\r\n invoices_empty_summary_pending_invoices: \"!Has seleccionado todas las facturas pendientes! Todo está listo para pago.\",\r\n invoices_state_pending: \"Pendiente\",\r\n invoices_state_overdue: \"Vencida\",\r\n invoices_state_paid: \"Pagada\",\r\n invoices_empty_state: \"No tienes facturas disponibles para el periodo seleccionado. Revisa nuevamente el siguiente periodo de facturación o selecciona una fecha anterior.\",\r\n invoices_state_suspended_service: \"Suspensión\",\r\n invoices_state_due_date: \"Vence\",\r\n invoices_button_download_bills: \"Descargar Facturas\",\r\n invoices_text_selec_all: \"Seleccionar todas\",\r\n invoices_text_total_pay: \"Pago total\",\r\n invoices_select_placeholder_all_services: \"Todos los servicios\",\r\n invoices_button_pay: \"Pagar\",\r\n invoices_text_empty_bills_period: \"No hay facturas disponibles para este periodo\",\r\n invoices_title_section_bills: \"Factura\",\r\n invoices_text_error_show_bills: \"No fue posible mostrar tu factura, por favor intenta más tarde!\",\r\n invoices_text_no_select_bills: \"No hay facturas seleccionadas\",\r\n invoices_pay_title_section_personal_data: \"Datos personales\",\r\n invoices_pay_title_section_bank_data: \"Datos bancarios\",\r\n invoices_pay_text_modal: \"Facturas\",\r\n invoices_pay_input_label_name: \"Nombres\",\r\n invoices_pay_input_placeholder_user_name_example: \"Ej. Luis Enrique\",\r\n invoices_pay_input_label_email: \"Email\",\r\n invoices_pay_input_placeholder_email_example: \"Ej. lcortes@neu.com.co\",\r\n invoices_pay_input_label_phone: \"Teléfono\",\r\n invoices_pay_input_placeholder_phone_example: \"Ej. 3126160897\",\r\n invoices_pay_input_label_address: \"Dirección\",\r\n invoices_pay_input_placeholder_address_example: \"Ej. Calle 27 S # 100 - 14\",\r\n invoices_pay_input_label_type_person: \"Tipo de persona\",\r\n invoices_pay_input_label_type_document: \"Tipo de documento\",\r\n invoices_pay_input_label_idDocument: \"Documento de identidad\",\r\n invoices_pay_input_placeholder_idDocument_example: \"Ej. 1040045234\",\r\n invoices_pay_input_label_bank: \"Entidad bancaria\",\r\n invoices_pay_title_total_payment: \"Pago total\",\r\n invoices_pay_title_subtotal_payment: \"Subtotal\",\r\n invoices_pay_title_use_neugets: \"¿Usar tus NEUGets?\",\r\n invoices_pay_title_get_neugets: \"¡Conoce cómo obtener neugets!\",\r\n invoices_pay_title_quantity_neugets: \"¿Cuántos NEUGets quieres usar?\",\r\n invoices_pay_title_total: \"Total\",\r\n invoices_pay_select_label_user_type: \"Selecciona el tipo de persona\",\r\n invoices_pay_select_label_banks: \"Selecciona el banco\",\r\n invoices_pay_select_label_user_legal_type: \"Selecciona el tipo de documento\",\r\n invoices_pay_text_total_to_pay: \"Total\",\r\n invoices_pay_text_options_to_pay: \"Pago seguro desde cuenta de ahorros o corriente vía\",\r\n invoices_pay_button_pay: \"Continuar con el pago\",\r\n invoices_pay_label_option_cc: \"Cédula de ciudadanía\",\r\n invoices_pay_label_option_ce: \"Cédula de extranjería\",\r\n invoices_pay_label_option_nit: \"NIT\",\r\n invoices_pay_label_option_natural_user: \"Natural\",\r\n invoices_pay_label_option_legal_user: \"Jurídica\",\r\n invoices_card_payment_cardholder_address: 'Dirección',\r\n invoices_paid_title_state_approved: \"Gracias, tu pago ha sido aprobado.\",\r\n invoices_paid_title_state_declined: \"Lo sentimos, tu pago ha sido rechazado.\",\r\n invoices_paid_title_state_pending: \"Tu pago aún esta pendiente.\",\r\n invoices_paid_text_email: \"Correo electrónico\",\r\n invoices_paid_text_date: \"Fecha\",\r\n invoices_paid_text_date_payment: \"Fecha de pago\",\r\n invoices_paid_text_ref: \"Referencia\",\r\n invoices_paid_text_description: \"Descripción\",\r\n invoices_paid_text_total_payment: \"Pago total\",\r\n invoices_paid_title_payment_receipt: \"Comprobante de pago\",\r\n invoices_paid_text_transaction_details: \"Detalles de la transacción\",\r\n invoices_paid_text_total_bill: \"Total Factura\",\r\n invoices_paid_text_neugets_discount: \"Descuento NEUGets\",\r\n invoices_paid_text_neugets_remaining: \"NEUGets restantes\",\r\n invoices_paid_button_print: \"Imprimir\",\r\n invoices_paid_link_finally: \"Finalizar\",\r\n invoices_summary_title_energy: \"Energía\",\r\n invoices_summary_title_plus: \"Plus\",\r\n invoices_summary_title_zero: \"Zero\",\r\n invoices_summary_title_detail_bill: \"Detalle\",\r\n invoices_summary_title_total_bill: \"Total\",\r\n invoices_summary_title_quantity_bill: \"Cantidad\",\r\n invoices_summary_title_unit_price: \"Precio unitario\",\r\n invoices_alert_overdue: \"Recuerda: Las facturas vencidas son objeto de intereses y desconexión.\",\r\n invoices_alert_note: \"¡Evita caer en mora!\",\r\n alert_user_popup_name: \"Debes ingresar un nombre válido.\",\r\n alert_user_popup_lastname: \"Debes ingresar un apellido válido.\",\r\n alert_user_popup_id_document: \"Debes ingresar un documento de identidad válido.\",\r\n alert_user_popup_email: \"Debes ingresar un correo eléctronico válido.\",\r\n alert_create_user_popup_email: \"Debes ingresar un email válido, ten en cuenta que este se usará para el ingreso a la plataforma.\",\r\n alert_user_popup_phone: \"Debes ingresar un teléfono válido.\",\r\n alert_create_user_popup_phone: \"Debes ingresar un celular válido, ten en cuenta que este se usará para el ingreso a la plataforma.\",\r\n alert_create_user_popup_job_area: \"Debes ingresar un área de trabajo válida.\",\r\n alert_create_user_popup_selected_services: \"Debes seleccionar los servicios a los que tendrá acceso.\",\r\n alert_new_user_popup_success: \"¡Genial! Se creó exitosamente el usuario, ahora mas personas tendrán control de la energía.\",\r\n alert_edit_user_popup_success: \"¡Genial! Se actualizó exitosamente el usuario.\",\r\n alert_new_user_popup_failed: \"¡Ups! ocurrió un error creando el usuario, por favor intente mas tarde.\",\r\n alert_edit_user_popup_failed: \"¡Ups! ocurrió un error actualizando el usuario, por favor intente mas tarde.\",\r\n alert_user_popup_address: \"Debes ingresar una dirección válido.\",\r\n alert_support_popup_ticket_service: \"Por favor selecciona un servicio.\",\r\n alert_support_popup_ticket_description: \"Por favor describe tu solicitud.\",\r\n alert_support_popup_success: \"¡Muchas gracias!, nuestro equipo te contactará cuanto antes.\",\r\n alert_submit_form_popup_success: \"¡Muchas gracias!, los datos se han cargado correctamente.\",\r\n alert_submit_form_popup_failed: \"¡Ups! Ha ocurrido un error, por favor intenta de nuevo en unos minutos o comunícate con nosotros.\",\r\n alert_pay_popup_banks: \"Selecciona la entidad bancaria\",\r\n alert_title_error: \"¡Ups! datos inválidos\",\r\n alert_title_success: \"¡Los datos son válidos\",\r\n alert_shared_error: \"¡Ups!, Ha ocurrido un error, porfavor vuelve a intentarlo.\",\r\n alert_login_user_not_found: \"Aún no estas registrado.\",\r\n alert_login_invalid_code: \"El código es inválido.\",\r\n menu_main_dashboard: \"Resumen\",\r\n menu_energy_service: \"Energy\",\r\n menu_zero_service: \"Zero\",\r\n menu_efficiency_service: \"Efficiency\",\r\n menu_volt_service: \"Project Management\",\r\n menu_plus_service: \"Plus\",\r\n menu_onboarding: \"Instalaciones\",\r\n menu_equote: \"Equote\",\r\n menu_analytics: \"Analytics\",\r\n main_title_mobile_screen: \"Reinventamos el futuro de la energía\",\r\n main_description_mobile_screen: \"Para una mejor experiencia, descarga la aplicación en tu celular. Encuéntrala en la tienda de tu dispositivo.\",\r\n language_locale: \"es\",\r\n account_title_main_dashboard: \"Mis Cuentas\",\r\n account_detail_title_admin: \"Administradores\",\r\n account_detail_title_relations: \"Relacionado con\",\r\n service_detail_title_users: \"Miembros\",\r\n service_detail_title_location: \"Ubicación\",\r\n zero_credit_card_title_show_detail: \"Ver detalle\",\r\n zero_credit_card_title_photovoltaic_system: \"Sistema fotovoltaico\",\r\n zero_credit_card_title_full_loan: \"Préstamo total\",\r\n zero_credit_card_title_next_payment: \"Próximo pago\",\r\n zero_credit_detail_state_not_available: \"No disponible\",\r\n zero_credit_detail_state_pending: \"Pendiente\",\r\n zero_credit_detail_state_paid: \"Pagada\",\r\n zero_credit_detail_state_canceled: \"Cancelada\",\r\n zero_credit_detail_state_overdue: \"Vencida\",\r\n zero_credit_detail_title_detail_credit: \"Detalle de tu crédito\",\r\n zero_credit_detail_title_fee_amount: \"Número de cuotas\",\r\n zero_credit_detail_title_agreed_interest_rate: \"Interés pactado\",\r\n zero_credit_detail_rate_placement: \"E.A\",\r\n zero_credit_detail_title_full_loan: \"Préstamo total\",\r\n zero_credit_detail_title_total_paid: \"Total pagado\",\r\n zero_credit_detail_title_depreciation_table: \"Tabla de amortización\",\r\n zero_marketplace_title_main: \"Adquiere un nuevo crédito para impulsar tu negocio\",\r\n zero_marketplace_description: \"Queremos que tu negocio siga creciendo sin límites, por eso te pre-aprobamos un crédito desde\",\r\n zero_marketplace_title_contact_adviser: \"Contactar un asesor\",\r\n zero_marketplace_title_credit_uses: \"Usa tu crédito para\",\r\n zero_service_title_suggested: \"Recomendado\",\r\n zero_service_detail_empty_content: \"No hay contenido para mostrar...\",\r\n zero_service_detail_button_request_quote: \"Solicitar cotización\",\r\n zero_approve_quote_title_main: \"¡Genial, nos encanta que encontraste lo que estabas buscando! 🥳 🥳\",\r\n zero_approve_quote_title_question: \"¿Ahora qué sigue?\",\r\n zero_approve_quote_info_email: \"Te enviamos la informaciòn para continuar el proceso al correo\",\r\n zero_approve_quote_button_continue: \"Continuar\",\r\n zero_quote_title_version: \"Versión\",\r\n zero_quote_title_show_detail: \"Ver detalle\",\r\n zero_quote_title_valid_until: \"Válido hasta\",\r\n zero_quote_button_approve_quote: \"Aprobar cotización\",\r\n zero_quote_state_in_process: \"En proceso...\",\r\n zero_quote_state_accepted: \"Propuesta aceptada\",\r\n zero_quotes_title_main: \"Cotizaciones\",\r\n zero_quotes_empty_state: \"Aún no tienes cotizaciones\",\r\n zero_quotes_empty_state_description: \"¡No lo pienses más! Contacta a un asesor ahora mismo y resuelve tus dudas sobre cómo invertir más en tu negocio.\",\r\n zero_tab_label_home: \"Inicio\",\r\n zero_tab_label_quotes: \"Cotizaciones\",\r\n zero_tab_label_wallet: \"Billetera\",\r\n zero_neugets_card_title_balance: \"Tu Balance\",\r\n zero_neugets_card_title_help: \"¿Qué son los NEUgets?\",\r\n zero_neugets_card_title_neugets: \"NEUgets\",\r\n zero_neugets_card_title_ranking: \"Ranking\",\r\n zero_neugets_card_title_ranking_card: \"Energy Master\",\r\n zero_wallet_title_history: \"Historial\",\r\n zero_transactions_redeemed_neugets: \"Neugets redimidos.\",\r\n zero_transactions_acquired_neugets: \"Neugets adquiridos.\",\r\n zero_transactions_invoice_paid: \"Pago factura de energía\",\r\n zero_transactions_empty_state: \"No hay historial\",\r\n zero_transactions_empty_state_description: \"Aún no cuentas con un historial de transacciones.\",\r\n loader_text_content: \"Cargando...\",\r\n invoices_text_empty_description_bills_period: \"Espera el periodo de facturación para poder ver tu factura, o selecciona otro mes para ver tus facturas ya pagadas.\",\r\n alert_create_preference_info_user_success: \"Tu respuesta ha sido enviada\",\r\n alert_create_preference_info_user_error: \"Lo sentimos, ha ocurrido un error\",\r\n alert_users_info_reception: \"Debes seleccionar como prefieres recibir la información\",\r\n alert_users_platform_uses: \"Escribe por favor que buscas en la plataforma\",\r\n alert_users_personal_interests: \"Debes seleccionar en que se enfocan tus intereses\",\r\n users_preference_info_user_title: \"¡Queremos brindarte información de valor!\",\r\n users_preference_info_user_description: \"Por eso quisieramos conocer más de ti y de tu empresa para ofrecerte información personalizada según tus requerimientos.\",\r\n users_preference_info_user_job: \"1. ¿En qué área ejerces tu rol en la empresa?\",\r\n users_preference_info_reception: \"2. ¿Como prefieres recibir información?\",\r\n users_preference_info_user_platform_uses: \"3. ¿Para qué quieres utilizar la plataforma? ¿qué información quieres ver en la app?\",\r\n users_preference_info_user_interests: \"4. Tus intereses se enfocan en...\",\r\n users_multipleselect_placeholder: \"Selecciona una o más opciones\",\r\n users_input_label_platform: \"¿Qué buscas encontrar en la plataforma?\",\r\n users_button_personal_preferences: \"Aceptar y Enviar\",\r\n alert_delete_user_success: \"Se ha eliminado correctamente el usuario\",\r\n alert_delete_user_error: \"No fue posible eliminar el usuario\",\r\n users_multipleselect_label_selected: \"Items seleccionados\",\r\n alert_users_preference_info: \"Por favor completa el formulario para continuar\",\r\n users_preference_info_title: \"¡Ayúdanos a completar tu perfil!\",\r\n users_preference_info_description: \"¡Bienvenido a la Plataforma de NEU! Para poder acceder a todos los beneficios, completa tus datos de perfil y lleva tu energía a otro nivel\",\r\n users_preference_info_button_complete: \"Completar perfil \",\r\n neugets_tooltip_copy_code: \"Código copiado\",\r\n neugets_text_share_code_title: \"Comparte y gana con NEU\",\r\n neugets_text_share_code_message: \"Hola\\n¿Te quieres ganar un super descuento en tu próxima factura de energía?\\n\\n¡Te invito a que conozcas a NEU Energy! El único proveedor de energía eléctrica en Colombia que te permite visualizar tu consumo en tiempo real desde tu celular 📊📱 y reducir tu factura de energía con notificaciones de eficiencia energética.⚡\\n\\nRegístrate con mi código de referido: \\n\\n#code#\\n\\nAmbos participaremos para obtener descuentos en futuras facturas de energía eléctrica.🧾⚡\\n\\nRegístrate en: \\n\\nhttps://www.neu.com.co/registro\",\r\n neugets_drawer_main_title: \"Tus NEUGets\",\r\n neugets_drawer_text_neugets_description: \"Los NEUGets (Green energy tokens) son nuestro token virtual en NEU y una unidad equivale a $1.000 COP.\",\r\n neugets_drawer_text_use_neugets: \"Podrás usar los NEUGets dentro de nuestra plataforma para pagar tus recibos e incluso adquirir más productos y servicios.\",\r\n neugets_drawer_text_get_neugets: \"¡Empieza a acumular más NEUGets refiriendo a otras empresas que quieran pasarse a NEU!\",\r\n neugets_drawer_text_share_referral_code: \"¡Comparte este código con tus contactos y una vez se registre, ambos ganarán NEUGets!\",\r\n neugets_drawer_text_legal_terms: \"*Aplican términos y condiciones\",\r\n alert_create_new_tag_success: \"La etiqueta se ha creado con éxito\",\r\n alert_create_new_tag_failed: \"Ha ocurrido un error al crear la etiqueta\",\r\n alert_create_new_device_success: \"El dispositivo se ha creado con éxito\",\r\n alert_create_new_device_failed: \"Ha ocurrido un error al crear el dispositivo\",\r\n alert_users_failed_change_image: \"Ha ocurrido un error cargando la imagen, por favor intente mas tarde.\",\r\n energy_export_graph_title: \"Exportar gráfica\",\r\n energy_export_graph_start_time: \"Fecha de Inicio\",\r\n energy_export_graph_end_time: \"Fecha Final\",\r\n energy_export_graph_filename: \"Nombre del archivo\",\r\n energy_export_graph_button: \"Exportar CSV\",\r\n alert_download_report_error: \"Ha ocurrido un error. Intente más tarde!\",\r\n alert_filename_report_error: \"Nombre de archivo inválido.\",\r\n menu_genius_service: \"Genius\",\r\n daily_active_energy: \"Consumo diario por sede\",\r\n weekly_active_energy: \"Consumo semanal por sede\",\r\n hourly_distribution_active_energy: \"Distribución del consumo horario\",\r\n money_savings_history: \"Histórico de ahorros mensuales por sede\",\r\n reactive_excess_history: \"Histórico de energía reactiva en exceso\",\r\n reactive_excess_weekly: \"Energía reactiva en exceso semanal\",\r\n hourly_active_energy: \"Consumo horario por sede\",\r\n monthly_active_energy: \"Consumo mensual por sede\",\r\n weekly_mean_active_energy: \"Consumo medio semanal\",\r\n reactive_excess_daily: \"Energía reactiva en exceso promedio diaria\",\r\n alert_genius_create_report_filename: \"Define un nombre para el reporte por favor\",\r\n alert_genius_create_report_graphs: \"Selecciona al menos un tipo de gráfica\",\r\n alert_genius_create_report_devices: \"Selecciona al menos un servicio\",\r\n alert_genius_create_report_range: \"Selecciona el rango de fecha para el reporte\",\r\n genius_drawer_title_main: \"Crear Reporte\",\r\n genius_input_label_filename: \"Nombre del reporte\",\r\n genius_input_placeholder_filename_example: \"Ej. Reporte 001\",\r\n genius_multipleselect_label_graphs: \"Gráficas del reporte\",\r\n genius_multipleselect_placeholder_graphs_selected: \"Gráficas seleccionadas\",\r\n genius_multipleselect_placeholder_select: \"Selecciona una o más opciones\",\r\n genius_multipleselect_label_devices: \"Dispositivos\",\r\n genius_multipleselect_placeholder_devices_selected: \"Dispositivos seleccionados\",\r\n genius_calendar_label_date: \"Fecha\",\r\n genius_calendar_placeholder_select: \"Selecciona el rango de fecha\",\r\n genius_button_create_report: \"Generar reporte\",\r\n genius_button_cancel_report: \"Cancelar\",\r\n genius_title_main_reports: \"Reportes\",\r\n genius_button_new_report: \"Crear nuevo reporte\",\r\n genius_header_title_report_premium: \"Smart Report\",\r\n genius_header_title_report_basic: \"Cómo Vamos\",\r\n genius_title_empty_state: \"No hay reportes para mostrar\",\r\n genius_text_description_empty_state: \"Genera un nuevo reporte desde la parte superior de este módulo para visualizarlo aquí.\",\r\n genius_no_reports: \"No hay reportes disponibles\",\r\n genius_new_report: \"Nuevo Reporte\",\r\n genius_delete_report: \"Eliminar\",\r\n genius_download_report: \"Descargar\",\r\n genius_save_report: \"Crear reporte\",\r\n genius_cancel_report: \"Cancelar\",\r\n genius_name_report: \"Nombre\",\r\n genius_date_range_report: \"Rango de fecha\",\r\n genius_creation_date_report: \"Fecha de creación\",\r\n genius_services_report: \"Servicios\",\r\n genius_selected_items: \"seleccionados\",\r\n genius_add_services: \"Agregar servicios\",\r\n genius_done_button: \"Hecho\",\r\n genius_graphs: \"Gráficas\",\r\n genius_add_graphs: \"Agregar las gráficas\",\r\n genius_new_item: \"¡Nueva!\",\r\n genius_search_placeholder: \"Buscar\",\r\n alert_genius_create_report_success: \"El reporte se ha generado con éxito\",\r\n alert_genius_create_report_pending: \"El reporte puede tardar un momento en crearse, por favor espere y recargue la página de nuevo!\",\r\n alert_genius_create_report_failed: \"Algo fallo, por favor intenta de nuevo!\",\r\n alert_create_new_tag_associated_tags: \"Se ha vinculado la etiqueta con éxito a este dispositivo\",\r\n shared_multipleselect_label_select_all: \"Seleccionar todo\",\r\n invoices_text_unselected_all: \"Deseleccionar todas\",\r\n plus_modal_title_empty_state: \"Desbloquea todo el potencial de tu energía con NEU+.\",\r\n plus_modal_description_empty_state: \"NEU+ te brinda herramientas que te permitirán tener reportes y gráficas segundo a segundo, conocer a detalle tus consumos en exceso y tomar acciones justo cuando suceden las cosas.\",\r\n plus_modal_phrase_empty_state: \"¡No esperes más!\",\r\n plus_modal_button_empty_state: \"Contactar a un asesor\",\r\n plus_rank_tooltip_info: \"Proyectos que, a la fecha, han tenido un mayor consumo acumulado mensual.\",\r\n plus_always_on_tooltip_info: \"Consumo de energía que se da por fuera de tu operación a causa de las máquinas o equipos que permanecen conectados.\",\r\n plus_radar_tooltip_info_voltage: \"Voltaje promedio de la última hora en cada fase (se muestra en voltios)\",\r\n plus_radar_tooltip_info_current: \"Corriente promedio de la última hora en cada fase (se muestra en Amperios)\",\r\n plus_radar_tooltip_info_power: \"Potencia activa promedio de la última hora en cada fase (se muestra en Watts)\",\r\n genius_button_default_report: \"Crear mi primer reporte\",\r\n energy_graph_message_scroll_active: \"Para moverte dentro de la gráfica haz clic en el cursor y muévete hacia la dirección deseada.\",\r\n user_table_title_empty_state: \"No hay usuarios vinculados a tus servicios\",\r\n user_table_description_empty_state: \"Agrega usuarios desde el menú de perfil y dale acceso a los servicios vinculados en tu cuenta de NEU\",\r\n alert_support_popup_type_ticket: \"Selecciona por favor el tipo de ticket\",\r\n alert_support_popup_area_ticket: \"Selecciona por favor el área del ticket\",\r\n support_select_placeholder: \"Selecciona una opción\",\r\n plus_export_graph_title: \"Exportar gráfica\",\r\n plus_export_graph_date: \"Fecha\",\r\n plus_export_graph_filename: \"Nombre del archivo\",\r\n plus_export_graph_format: \"Formato\",\r\n plus_export_graph_button: \"Exportar\",\r\n alert_format_filename_report_error: \"Tipo de archivo inválido\",\r\n alert_date_report_error: \"Fecha inválida\",\r\n alert_new_device_name: \"Escribe el nombre del dispositivo\",\r\n alert_new_device_type: \"Escribe el tipo de dispositivo\",\r\n money_savings_table: \"Histórico de ahorros mensuales por sede (tabla)\",\r\n alert_genius_create_report_duplicate_filename: \"El nombre del reporte ya existe\",\r\n shared_survey_nps_title: \"Califica tu experiencia NEU\",\r\n shared_survey_nps_text_question: \"Califica tu experiencia con NEU de 1 a 10. Con 1 entenderemos que tenemos mucho por mejorar pero con 10 que todo está saliendo bien con el trabajo realizado.\",\r\n shared_survey_nps_text_comment: \"Si deseas, puedes dejarnos más comentarios aquí:\",\r\n shared_survey_nps_text_secondary_title: \"¡Gracias por calificarnos!\",\r\n shared_survey_nps_text_description: \"Tu opinión es muy importante para nosotros 😁 y nos llena de buena energía saber que estás feliz con NEU ⚡️\",\r\n shared_survey_nps_text_question_bad: \"¿Qué sería lo que mejorarías del servicio?\",\r\n shared_survey_nps_text_question_good: \"¿Qué sería lo que más resaltarías del servicio?\",\r\n shared_survey_nps_text_specific_question_bad: \"¿Qué otra cosa mejorarías del servicio?\",\r\n shared_survey_nps_text_specific_question_good: \"¿Qué otra cosa resaltarías del servicio?\",\r\n shared_survey_nps_list_option_bill: \"Facturación 🧾\",\r\n shared_survey_nps_list_option_platform: \"Plataforma 🖥️\",\r\n shared_survey_nps_list_option_customer: \"Servicio al cliente 🧑🏻‍💻\",\r\n shared_survey_nps_list_option_pay: \"Proceso de pago 💵\",\r\n shared_survey_nps_list_option_other: \"Otro...\",\r\n shared_survey_nps_button_send_score: \"Enviar calificación\",\r\n shared_survey_nps_button_send: \"Enviar y finalizar\",\r\n alert_nps_survey_create_success: \"Tu respuesta ha sido enviada con éxito\",\r\n alert_nps_survey_create_error: \"Algo salió mal\",\r\n premium_measurement: \"Composición de las submediciones\",\r\n premium_monthly_consumption: \"Registro mensual de submedidores\",\r\n premium_weekly_consumption: \"Registro semanal de submedidores\",\r\n premium_daily_consumption: \"Registro diario de submedidores\",\r\n user_title_section_api_token: \"Token API\",\r\n user_button_generate_token: \"Generar token\",\r\n user_button_cancel_token: \"Cancelar\",\r\n alert_generate_token_api_error: \"Algo salió mal, intenta de nuevo\",\r\n user_channel_option_email: \"Correos\",\r\n user_channel_option_calls: \"Llamadas\",\r\n user_channel_option_text: \"Mensajes de texto\",\r\n user_channel_option_wsp: \"Whatsapp\",\r\n user_channel_option_app: \"Prefiero buscar información autónomamente\",\r\n user_channel_option_myself: \"Notificaciones por la App\",\r\n user_department_option_not_apply: \"N/A\",\r\n user_department_option_manager: \"Gerente / Administrativo\",\r\n user_department_option_operative: \"Operativo / Mantenimiento\",\r\n user_department_option_financial: \"Financiero\",\r\n user_department_option_innovation: \"Innovación / Sostenibilidad\",\r\n user_department_option_tech: \"Tecnología\",\r\n user_department_option_engineer: \"Ingeniería\",\r\n user_department_option_commercial: \"Comercial\",\r\n user_interest_option_innovation: \"Temas de Innovación, creatividad y emprendimiento\",\r\n user_interest_option_environment: \"Sostenibilidad y medio ambiente\",\r\n user_interest_option_finance: \"Finanzas/ números\",\r\n user_interest_option_relationship: \"Emocional/ Relacionamiento\",\r\n energy_indicator_day_highest_consumption: \"Día de Mayor Consumo\",\r\n energy_indicator_average_consumption: \"#VALUE kWh de consumo promedio\",\r\n energy_indicator_consumption: \"Consumo (#VALUE)\",\r\n energy_indicator_compare_last_period: \"#VALUE kWh vs. último periodo\",\r\n energy_indicator_hour_highest_consumption: \"Hora de Mayor Consumo\",\r\n energy_indicator_current_consumption: \"Cons. a la fecha\",\r\n energy_indicator_reactive_energy: \"Energía Reactiva\",\r\n generation_indicator_saving: \"Total ahorrado (#VALUE)\",\r\n generation_indicator_saving_vs: \"vs energía convencional\",\r\n generation_indicator_generated: \"Generación (#VALUE)\",\r\n generation_indicator_compare_last_period: \"#VALUE kWh vs. último periodo\",\r\n generation_indicator_trees_planted: \"Mes anterior #VALUE árboles\",\r\n generation_indicator_trees_accum: \"Árboles sembrados a hoy\",\r\n generation_indicator_trees_last_period: \"#VALUE árboles vs. periodo anterior\",\r\n generation_indicator_co2_reduced: \"Mes anterior #VALUE\",\r\n generation_indicator_co2_last_period: \"#VALUE tons CO2 vs. periodo anterior\",\r\n generation_indicator_co2_reduced_accum: \"Toneladas de CO2 reducidas a hoy\",\r\n generation_indicator_highest_hour: \"Hora de mayor generación\",\r\n generation_indicator_average: \"#VALUE kWh de generación promedio\",\r\n generation_indicator_least_hour: \"Hora de menor generación\",\r\n generation_indicator_highest_day: \"Día de Mayor Generación\",\r\n generation_indicator_highest_month: \"Mes de mayor generación\",\r\n generation_indicator_highest_month_generation: \"Generación: #VALUE\",\r\n generation_indicator_least_day: \"Día de Menor Generación\",\r\n generation_indicator_current_generation: \"Gen. a la fecha\",\r\n api_user_token_tooltip_empty: \"Debes generar un nuevo token\",\r\n generation_indicator_total_generated: \"Generación de energía total\",\r\n generation_indicator_from_beginning: \"Desde el inicio de operación del sistema\",\r\n generation_indicator_count_services: \"De #VALUE servicios seleccionados\",\r\n generation_indicator_total_saving: \"Ahorro de dinero total\",\r\n genelogin_button_validateration_indicator_vs_conventional_energy: \"vs energía convencional\",\r\n generation_indicator_month_generated: \"Generación mes anterior (#VALUE)\",\r\n generation_indicator_theoretical_energy: \"Energía teórica: #VALUE\",\r\n generation_indicator_average_saving: \"Promedio de ahorro mensual\",\r\n generation_indicator_last_x_months: \"En los últimos #VALUE meses\",\r\n generation_indicator_last_month_saving: \"Ahorro mes anterior (#VALUE)\",\r\n generation_indicator_saving_tariff: \"Calculado con tu tarifa de $#VALUE / kWh\",\r\n alerts_label_no_name: \"Alerta \",\r\n alerts_label_main_title_drawer: \"Tus alertas\",\r\n alerts_label_creation_indications: \"Crea una alerta según los parámetros de seguimiento de variables de energía\",\r\n alerts_button_add_new_alert: \"Agregar alerta\",\r\n alerts_label_recently_created: \"Creadas Recientemente\",\r\n alerts_label_title_empty_state: \"No hay alertas creadas para tus servicios en este momento\",\r\n alerts_label_body_empty_state: \"Agrega una nueva alerta haciendo click en el botón.\",\r\n alerts_condition_greater_than: \"Mayor que\",\r\n alerts_condition_same_as: \"Igual que\",\r\n alerts_condition_less_than: \"Menor que\",\r\n alerts_channel_email: \"Correo\",\r\n alerts_channel_text_message: \"Mensaje de texto\",\r\n alerts_channel_notification: \"Notificación\",\r\n alerts_label_title_edit_alert: \"Editar Alerta\",\r\n alerts_label_title_new_alert: \"Nueva Alerta\",\r\n alerts_button_save: \"Guardar\",\r\n alerts_label_body_new_alert: \"Modifica los parámetros de tu alerta y realiza el seguimiento de la energía de tus servicios\",\r\n alerts_messager_alert_create_success: \"La alerta se ha creado exitosamente, accede a todas tus alertas y su configuración desde tu perfil\",\r\n alerts_messager_alert_create_error: \"Ha ocurrido un error al crear la alerta\",\r\n alerts_messager_alert_edit_success: \"La alerta se ha editado exitosamente\",\r\n alerts_messager_alert_edit_error: \"Ha ocurrido un error al editar la alerta\",\r\n alerts_messager_alert_delete_success: \"La alerta se ha eliminado exitosamente\",\r\n alerts_messager_delete_title_confirmation: \"¿Eliminar la alerta?\",\r\n alerts_messager_delete_confirmation: \"Esta acción borrará la alerta de la plataforma completamente y no se podrá recuperar.\",\r\n alerts_messager_keep_option: \"No, mantenerla\",\r\n alerts_messager_delete_option: \"Si, eliminarla\",\r\n alerts_select_days_monday: \"Lunes\",\r\n alerts_select_days_tuesday: \"Martes\",\r\n alerts_select_days_wednesday: \"Miércoles\",\r\n alerts_select_days_thursday: \"Jueves\",\r\n alerts_select_days_friday: \"Viernes\",\r\n alerts_select_days_saturday: \"Sábado\",\r\n alerts_select_days_sunday: \"Domingo\",\r\n alerts_select_interval_hourly: \"Horario\",\r\n alerts_select_interval_daily: \"Diario\",\r\n alerts_select_interval_weekly: \"Semanal\",\r\n alerts_select_interval_monthly: \"Mensual\",\r\n alert_genius_create_report_initially: \"El reporte ha empezado a generarse\",\r\n invoice_content_text_bill: \"Factura\",\r\n invoice_content_text_contract: \"Contrato\",\r\n invoice_content_text_niu: \"NIU\",\r\n invoice_content_text_customer_name: \"Facturado a\",\r\n invoice_content_text_service_name: \"Sede\",\r\n invoice_content_text_billing_address: \"Ubicación de facturación\",\r\n invoice_content_text_total: \"Total a pagar\",\r\n invoice_content_text_bill_date: \"Fecha de emisión\",\r\n invoice_content_text_due_date: \"Vencimiento\",\r\n invoice_content_text_suspension_date: \"Suspensión del servicio a partir de\",\r\n invoice_content_text_suspension_date_empty: \"Recuerda que acumular dos facturas vencidas puede dar lugar a la suspensión del servicio\",\r\n invoice_content_text_strong_balance: \"¡Bien hecho!\",\r\n invoice_content_first_text_balance: \"Estas al día con el pago de tus facturas. Hasta hoy, no tienes deudas\",\r\n invoice_content_second_text_balance: \"en tu factura de energía y eso nos llena de felicidad. ¡Gracias por tu compromiso!\",\r\n invoice_content_text_strong_outstanding_balance: \"Tienes un saldo pendiente de pago\",\r\n invoice_content_text_outstanding_balance: \"por\",\r\n invoice_content_text_outstanding_balance_suspension: \"Servicio\",\r\n invoice_content_text_consumption_detail: \"Detalle de tu consumo\",\r\n invoice_content_text_consumption: \"Consumo de energía activa (kWh)\",\r\n invoice_content_text_days_billed: \"Días facturados\",\r\n invoice_content_text_billed_since: \"Desde\",\r\n invoice_content_text_billed_until: \"Hasta\",\r\n invoice_content_text_meter_code: \"Código medidor\",\r\n invoice_content_text_previous_consumption: \"Lectura anterior\",\r\n invoice_content_text_current_consumption: \"Lectura actual\",\r\n invoice_content_text_avg_six_months: \"Promedio 6 meses\",\r\n invoice_content_text_label_pay_month: \"Cobro del mes de energía activa (COP)\",\r\n invoice_content_text_reactive_detail: \"Detalles reactiva en exceso (kVArh)\",\r\n invoice_content_text_days_billed_reactive: \"Número de días\",\r\n invoice_content_text_amount_billed_reactive_inductive: \"Inductiva\",\r\n invoice_content_text_amount_billed_reactive_capacitive: \"Capacitiva\",\r\n invoice_content_text_amount_billed_reactive: \"Total\",\r\n invoice_content_text_reactive_factor: \"Factor M\",\r\n invoice_content_text_tariff_detail: \"¿Cómo se calcula tu tarifa?\",\r\n invoice_content_first_text_tariff: \"Tu tarifa del\",\r\n invoice_content_first_text_strong_tariff: \"Mercado Regulado se denominada CU (Costo Unitario)\",\r\n invoice_content_second_text_tariff: \"y se calcula sumando cada uno de las componentes de la tárifa presentados a continuación, teniendo en cuenta que perteneces al\",\r\n invoice_content_second_text_strong_tariff: \"Mercado Regulado\",\r\n invoice_content_third_text_tariff: \"conectado a un\",\r\n invoice_content_third_text_strong_tariff: \"Nivel de tensión\",\r\n invoice_content_fourth_text_tariff: \"en\",\r\n invoice_content_fourth_text_strong_tariff: \"Estrato\",\r\n invoice_content_fifth_text_tariff: \"con propiedad de los activos\",\r\n invoice_content_sixth_text_tariff: \"y una tarifa\",\r\n invoice_content_text_tariff_g: \"Generación\",\r\n invoice_content_text_tariff_t: \"Transmisión\",\r\n invoice_content_text_tariff_d: \"Distribución\",\r\n invoice_content_text_tariff_cv: \"Comercialización\",\r\n invoice_content_text_tariff_pr: \"Perdidas\",\r\n invoice_content_text_tariff_r: \"Restricciones\",\r\n invoice_content_text_tariff_cr: \"Cargo regulado\",\r\n invoice_content_text_tariff_cu: \"Tarifa (CU)\",\r\n invoice_content_text_tariff_cu_cot: \"Tarifa (CU + COT)\",\r\n invoice_content_text_technical_info: \"Información técnica\",\r\n invoice_content_text_or: \"Operador de red\",\r\n invoice_content_text_or_phone: \"Teléfono\",\r\n invoice_content_text_distr_circuit: \"Circuito\",\r\n invoice_content_text_transf_number: \"Código transformador\",\r\n invoice_content_text_legal_info: \"Información legal\",\r\n invoice_content_first_text_legal_info: \"La presente factura presenta mérito ejecutivo en virtud del Artículo 130 de la Ley 142 de 1994 modificado por el Artículo 18 de la Ley 689 de 2001.\",\r\n invoice_content_second_text_legal_info: \"De conformidad con el Decreto 2150 de 1995, la firma mecánica que aparece a continuación, tiene plena válidez para todos los efectos legales.\",\r\n invoice_content_third_text_legal_info: \"Para presentar reclamaciones referente a los cobros del presente documento ante nuestra oficina de PQR Art 115 ley 142 de 1994. Art 53 CREG 156 de 2011 lo puede hacer ingresando a la página web\",\r\n invoice_content_fourth_text_legal_info: \"y posteriormente hacer clic en PQR. En cumplimiento a la Ley 1266 del 2008 al no realizar pagos en las fechas establecidas se ve reflejado un reporte negativo en centrales de riesgo.\",\r\n invoice_content_fifth_text_legal_info: \"En caso de aplicar para el beneficio de exención de contribución por favor ingresa a la página web\",\r\n invoice_content_sixth_text_legal_info: \"en la parte inferior haz clic en 'Beneficio contribución', y sigue las instrucciones.\",\r\n invoice_content_seventh_text_legal_info: \"Con la aceptación, expresa o tacita, del presente documento, autorizo a NEU ENERGY S.A. E.S.P o cualquier tercero debidamente acreditado por este, a contactarme por cualquier medio en referencia al presente documento en caso de encontrarme en mora, con la finalidad mantener una comunicación efectiva y oportuna. Además, autorizó para recibir información por medio de correo electrónico, mensaje de texto, WhatsApp y correspondencia física.\",\r\n invoice_content_eighth_text_legal_info: \"Autorizo a NEU ENERGY S.A. E.S.P, NIT 901302727-0, o a quién represente sus derechos u ostente en el futuro calidad de acreedor a consultar, reportar, conservar, suministrar, solicitar o divulgar a DATACREDITO central de información y de riesgo, toda la información referente a mi comportamiento comercial. Lo anterior implica que el cumplimiento o incumplimiento de mis obligaciones se reflejará en las mencionadas bases de datos, en donde se consigan de manera completa todos los datos referentes a mi actual y pasado comportamiento en general frente al cumplimiento de mis obligaciones. NEU ENERGY S.A. E.S.P actúa como autorretenedor del impuesto de industria y comercio (ICA) en los municipios de Sabaneta, Piedecuesta, Santa Marta, y Agustín Codazzi.\",\r\n invoice_content_text_pay_methods: \"Métodos de pago\",\r\n invoice_content_text_pay_web: \"Paga por nuestra WEB\",\r\n invoice_content_text_pay_app: \"Paga por nuestra APP\",\r\n invoice_content_text_pay_wire_transfer: \"Transferencia Bancaria\",\r\n invoice_content_first_text_pay_wire_transfer_detail: \"Puedes realizar el pago a la cuenta corriente de Bancolombia\",\r\n invoice_content_second_text_pay_wire_transfer_detail: \"a nombre de Neu Energy S.A.S E.S.P y enviar el comprobante al correo\",\r\n invoice_content_text_legal_representative: \"Representante legal\",\r\n invoice_content_text_taxes: \"Aplica impuesto sobre las ventas\",\r\n invoice_content_text_address: \"Dirección\",\r\n invoice_content_text_payment_way: \"Forma de pago\",\r\n invoice_content_text_payment_cash: \"Contado\",\r\n invoice_content_text_payment_method: \"Medio de pago\",\r\n invoice_content_text_debit_card: \"Tarjeta Débito\",\r\n invoice_content_text_support: \"Atención al cliente\",\r\n invoice_content_text_support_wsp: \"Whatsapp\",\r\n invoice_content_text_support_emergency: \"atención y emergencias\",\r\n invoice_content_text_footer_page: \"Página\",\r\n invoice_content_text_strong_neugets: \"¡Recuerda!\",\r\n invoice_content_first_text_neugets: \"Tienes\",\r\n invoice_content_second_text_neugets: \"que puedes usar para pagar esta factura.\",\r\n invoice_content_text_bill_detail: \"Detalles de tu factura\",\r\n invoice_content_text_bill_detail_info: \"Conoce más detalles aquí\",\r\n invoice_content_text_header_table_item: \"ítem\",\r\n invoice_content_text_header_table_detail: \"Detalle\",\r\n invoice_content_text_header_table_unit_value: \"Valor unitario\",\r\n invoice_content_text_header_table_concept_value: \"Por concepto de\",\r\n invoice_content_text_header_table_month_value: \"Mes de participación\",\r\n invoice_content_text_header_table_quantity: \"Cantidad\",\r\n invoice_content_text_header_table_days_quantity: \"Número de días\",\r\n invoice_content_text_header_table_value: \"Valor\",\r\n invoice_content_text_subtotal: \"Subtotal\",\r\n invoice_content_text_iva: \"IVA(19%)*\",\r\n invoice_content_text_capital_record: \"Abonos a capital\",\r\n invoices_tooltip_previous_bill: \"Anterior Factura\",\r\n invoices_tooltip_next_bill: \"Siguiente Factura\",\r\n invoices_tooltip_download_bill: \"Descargar\",\r\n invoices_tooltip_search_bill: \"Buscar\",\r\n invoices_tooltip_close_bill: \"Cerrar\",\r\n invoices_tooltip_zoomin_bill: \"Ampliar\",\r\n invoice_content_text_billed_period: \"Periodo facturado:\",\r\n invoice_content_check_consumption: \"¡Revisa tu consumo!\",\r\n invoice_content_text_check_consumption: \"Este mes, de acuerdo a la Resolución CREG 105 007 de 2024, serás facturado con base en el promedio de tus consumos de los últimos seis meses mientras se investiga cualquier variación significativa.\",\r\n invoice_content_text_embedded_border_factor: \"Factor frontera embebida\",\r\n invoice_content_text_municipality: \"Municipio\",\r\n invoice_content_text_department: \"Departamento\",\r\n invoice_content_text_market: \"Mercado\",\r\n invoice_content_text_unregulated_market: \"No Regulado\",\r\n invoice_content_text_regulated_market: \"Regulado\",\r\n invoice_content_text_active_energy_consumption: \"Tu consumo de Energía Activa\",\r\n invoice_content_text_monthly_rate_cu: \"Tarifa del mes (CU)\",\r\n invoice_content_current_consumption: \"Consumo actual\",\r\n invoice_content_text_total_billed: \"Total Facturado\",\r\n invoice_content_text_billed_capacity: \"Capacidad facturada\",\r\n invoice_content_text_billed_inductive: \"Inductiva facturada\",\r\n invoice_content_text_creg_resolulion: \"** ¡Te contamos!\",\r\n invoice_content_creg_resolution_text_1_first: \"Debido a la Resolución CREG 105 007 de 2024, serás facturado con base al consumo promedio de los últimos 12 meses\",\r\n invoice_content_creg_resolution_text_1_second: \"Esto se debe a que tu consumo de\",\r\n invoice_content_creg_resolution_text_1_third: \"presenta una variación significativa de\",\r\n invoice_content_creg_resolution_text_1_fourth: \"kWh que estamos investigando.\",\r\n invoice_content_creg_resolution_text_2_first: \"Debido a la Resolución CREG 105 007 de 2024, serás facturado con base al consumo medido\",\r\n invoice_content_creg_resolution_text_2_second: \"Sin embargo, esto representa una variación significativa en comparación con tu consumo promedio de los últimos 12 meses\",\r\n invoice_content_creg_resolution_text_2_third: \"por lo que estamos investigando.\",\r\n invoice_content_creg_resolution_r_text_3_first: \"Que dando cumplimiento a la Resolución CREG 105 007 de 2024 y de acuerdo con la investigación y análisis de tus matrices de consumo queda en firme el cobro de\",\r\n invoice_content_creg_resolution_r_text_3_second: \"kWh en la factura\",\r\n invoice_content_creg_resolution_r_text_4_first: \"Que dando cumplimiento a la Resolución CREG 105 007 de 2024 y de acuerdo con la investigación y análisis de tus matrices de consumos y teniendo en cuenta que todo se encuentra bajo los parámetros normales se procede a cobrar los\",\r\n invoice_content_creg_resolution_r_text_4_second: \"kWh que se encontraban en investigación en la factura\",\r\n invoice_content_text_billing_charges: \"Cargos de facturación\",\r\n invoice_content_text_interruption_duration: \"DURACIÓN INTERRUPCIONES\",\r\n invoice_content_text_interruption_duration_unit: \"(Horas)\",\r\n invoice_content_text_interruption_frequency: \"FRECUENCIA INTERRUPCIONES\",\r\n invoice_content_text_interruption_frequency_unit: \"(Eventos)\",\r\n invoice_content_text_app_web_payment: \"App ENRG o página web\",\r\n invoice_content_text_app_payment_description: \"Puedes realizar el pago directamente en nuestra app\",\r\n invoice_content_text_web_payment_description: \"o en nuestra página web\",\r\n invoice_content_text_PSE: \"PSE con tu banco\",\r\n invoice_content_text_payment_methods: \"Pago bancario\",\r\n invoice_content_text_bank_payment_instructions: \"Puedes realizar el pago a la cuenta de Ahorros de Bancolombia\",\r\n invoice_content_text_bank_account_name: \"a nombre de Neu Energy S.A.S E.S.P y enviar el comprobante al correo\",\r\n invoice_content_text_related: \"relacionando el código de la facturas (NFEXXXX) correspondientes\",\r\n invoice_content_text_verify_invoice_validity: \"Verifica la validez de tu factura\",\r\n invoice_content_text_verify_invoice_description: \"Te recomendamos verificar cuidadosamente los datos proporcionados para asegurarte de que esta factura corresponde a tu pago de energía y que al escanear este código el dominio sea erco.energy.\",\r\n invoice_content_text_pay_invoice: \"por PSE, tarjeta de crédito o transferencia bancaria\",\r\n invoice_content_text_verify_information: \"la información tanto el número de factura como el total a pagar\",\r\n invoice_content_text_scan_qr: \"el código QR con tu celular\",\r\n invoice_content_text_ica_tax: \"Aplica como autorretenedor del impuesto de industria y comercio (ICA)\",\r\n invoice_content_text_large_taxpayers: \"Grandes contribuyentes\",\r\n invoice_content_text_large_taxpayers_resolution: \"Res. 012220 de 26/12/2022\",\r\n invoice_content_text_income_tax_withholder: \"Autorretenedor Renta\",\r\n invoice_content_text_income_tax_resolution: \"Res. 547 de 25/01/2002\",\r\n invoice_content_text_ica_medellin_withholder: \"Autorretenedor ICA Medellín\",\r\n invoice_content_text_ica_medellin_resolution: \"Res. 32038 de 22/12/2017\",\r\n always_on_indicator_title_percentage: \"Porcentaje de consumo fantasma\",\r\n always_on_indicator_text_percentage: \" vs. mes anterior\",\r\n always_on_indicator_title_tons_co2: \"Toneladas de CO2\",\r\n always_on_indicator_title_max_day: \"Día de mayor consumo\",\r\n always_on_indicator_title_cost: \"Equivale a\",\r\n power_factor_title: \"Factor de Potencia\",\r\n power_factor_label_phase: \"Línea\",\r\n power_factor_label_optime_range: \"Factor de potencia en rango óptimo\",\r\n power_factor_label_reactive_range: \"Factor de potencia en rango reactivo\",\r\n power_factor_label_deficient_range: \"Factor de potencia en rango deficiente\",\r\n tooltip_premium_monthly_consumption: \"\",\r\n tooltip_tariffs_records: \"Comparación de la tarifa de NEU vs Comercializador incumbente\",\r\n tooltip_hourly_active_energy: \"Promedio de consumo de cada una de las 24 horas del día en el rango de fechas seleccionado\",\r\n tooltip_hourly_distribution_active_energy: \"\",\r\n tooltip_total_payment_history: \"Cobro total de la factura de energía por mes en cada sede\",\r\n tooltip_daily_active_energy: \"\",\r\n tooltip_weekly_mean_active_energy: \"Promedio de consumo de los días de la semana\",\r\n tooltip_reactive_cash_flow: \"Cobro de penalización de energía reactiva en exceso por mes\",\r\n tooltip_weekly_active_energy: \"\",\r\n tooltip_monthly_active_energy: \"Información de consumo y pago de energía activa por mes en cada sede.\",\r\n tooltip_money_savings_history: \"\",\r\n tooltip_penalized_days_history: \"Cantidad de horas por día en las que se presentó energía reactiva en exceso\",\r\n tooltip_premium_daily_consumption: \"\",\r\n tooltip_reactive_excess_history: \"Registro de las horas donde se está presentando exceso de energía reactiva inductiva y/o capacitiva\",\r\n tooltip_money_savings_table: \"\",\r\n tooltip_premium_weekly_consumption: \"\",\r\n tooltip_premium_measurement: \"\",\r\n genius_multipleselect_label_new_graphs: \"Nuevo\",\r\n invoice_content_text_negative_balance: \"Saldos a favor\",\r\n invoice_content_text_new_negative_balance: \"Nuevo saldo a favor\",\r\n tooltip_a_p: \"Este es un cobro municipal y este mismo define el valor a cobrar\",\r\n tooltip_acuerdo: \"\",\r\n tooltip_aj: \"\",\r\n tooltip_aj_ap: \"\",\r\n tooltip_aj_con_cv: \"\",\r\n tooltip_aj_con_d: \"\",\r\n tooltip_aj_con_g: \"\",\r\n tooltip_aj_con_pr: \"\",\r\n tooltip_aj_con_r: \"\",\r\n tooltip_aj_con_t: \"\",\r\n tooltip_aj_cons_cont: \"\",\r\n tooltip_aj_consumo_kwh: \"\",\r\n tooltip_aj_cont: \"\",\r\n tooltip_aj_cu: \"\",\r\n tooltip_aj_cu_cont: \"\",\r\n tooltip_aj_ea: \"\",\r\n tooltip_aj_ec: \"\",\r\n tooltip_aj_ee2: \"\",\r\n tooltip_aj_er: \"\",\r\n tooltip_aj_intmora: \"\",\r\n tooltip_aj_intzero: \"\",\r\n tooltip_aj_prop_terc: \"\",\r\n tooltip_aj_re: \"\",\r\n tooltip_aj_sdl: \"\",\r\n tooltip_aj_seg: \"\",\r\n tooltip_aj_subs: \"\",\r\n tooltip_cont: \"Equivale al 20% del valor total por energía activa y reactiva, y este es un gravamen tributario\",\r\n tooltip_ea: \"\",\r\n tooltip_ea_cv: \"\",\r\n tooltip_ea_d: \"\",\r\n tooltip_ea_g: \"\",\r\n tooltip_ea_pr: \"\",\r\n tooltip_ea_r: \"\",\r\n tooltip_ea_t: \"\",\r\n tooltip_ec: \"\",\r\n tooltip_ee: \"\",\r\n tooltip_ee2: \"\",\r\n tooltip_eem: \"\",\r\n tooltip_er: \"Valor a cobrar por el exceso de energía reactiva inductiva y capacitiva\",\r\n tooltip_ing_ter: \"\",\r\n tooltip_int_med: \"\",\r\n tooltip_int_mora: \"\",\r\n tooltip_int_mora_zero: \"\",\r\n tooltip_int_neupay: \"\",\r\n tooltip_l1955: \"\",\r\n tooltip_mat_saas: \"\",\r\n tooltip_med: \"\",\r\n tooltip_mo_saas: \"\",\r\n tooltip_neu_comision: \"\",\r\n tooltip_neu_datos: \"\",\r\n tooltip_neu_inv114: \"\",\r\n tooltip_neu_inv126: \"\",\r\n tooltip_neu_inv131: \"\",\r\n tooltip_neu_inv132: \"\",\r\n tooltip_neu_inv136: \"\",\r\n tooltip_neu_ops1: \"\",\r\n tooltip_neu_ops2: \"\",\r\n tooltip_neu_ops3: \"\",\r\n tooltip_neu_ops4: \"\",\r\n tooltip_neu_ops5: \"\",\r\n tooltip_neu_pay: \"\",\r\n tooltip_neu_plus: \"\",\r\n tooltip_neu_serv: \"\",\r\n tooltip_neu_serv1: \"\",\r\n tooltip_neu_serv2: \"\",\r\n tooltip_neu_serv3: \"\",\r\n tooltip_neu_serv4: \"\",\r\n tooltip_neu_serv5: \"\",\r\n tooltip_neu_serv6: \"\",\r\n tooltip_neu_serv7: \"\",\r\n tooltip_neu_serv8: \"\",\r\n tooltip_neu_telem: \"\",\r\n //tooltip_neu+:\"\",\r\n tooltip_reint_cyg: \"\",\r\n tooltip_saldo: \"\",\r\n tooltip_seg_conv: \"Este es un cobro departamental y estos mismos definen los parámetros para su cobro. Los únicos departamentos con este cobro son : Sucre, Valle del Cauca y Átlantico.\",\r\n tooltip_sist_solar: \"\",\r\n tooltip_subs: \"\",\r\n tooltip_reactive_inductive: \"Energía generada por equipos industriales como motores, compresores,bombas.\",\r\n tooltip_reactive_capacitive: \"Energía generada por componentes electrónicos,luminarias.\",\r\n tooltip_graph_energy_no_match: \"no puede compararse con\",\r\n tooltip_graph_energy_no_match_reason: \"por diferencias de unidades de medida\",\r\n user_title_section_alerts: \"Mis Alertas\",\r\n energy_graph_no_data: \"Sin datos\",\r\n genius_download_file_report: \"Descargar Reporte\",\r\n genius_download_html_report: \"Descargar HTML\",\r\n genius_download_excel_report: \"Descargar Excel\",\r\n // Onboarding\r\n onboarding_drawer_title: \"Tutoriales\",\r\n onboarding_drawer_faqs: \"Preguntas frecuentes\",\r\n onboarding_drawer_show: \"Mostrar todos\",\r\n onboarding_drawer_hide: \"Ocultar\",\r\n onboarding_payment_title: \"¿Cómo pago mi factura?\",\r\n onboarding_payment_description: \"Realiza el pago de tu factura desde la plataforma.\",\r\n onboarding_invoice_title: \"¿Cómo busco y visualizo una factura?\",\r\n onboarding_invoice_description: \"Filtra tus facturas.\",\r\n onboarding_dashboard_title: \"¿Cómo busco otro servicio vinculado a mi cuenta?\",\r\n onboarding_dashboard_description: \"Visualiza otro de tus servicios.\",\r\n onboarding_new_user_title: \"¿Cómo agrego un usuario?\",\r\n onboarding_new_user_description: \"Envía una invitación a miembro de tu empresa.\",\r\n onboarding_new_alert_title: \"¿Cómo creo una alerta?\",\r\n onboarding_new_alert_description: \"Las alertas permiten hacer seguimiento a tus servicios.\",\r\n onboarding_service_detail_title: \"¿Cómo entro al detalle de mis servicios?\",\r\n onboarding_service_detail_description: \"Busca el detalle de tu servicio.\",\r\n onboarding_service_picker_title: \"¿Cómo puedo seleccionar un servicio específico?\",\r\n onboarding_service_picker_description: \"Busca el servicio que necesitas.\",\r\n onboarding_graph_type_picker_title: \"¿Cómo selecciono una variable en la gráfica?\",\r\n onboarding_graph_type_picker_description: \"Varia la visualización de la gráfica.\",\r\n onboarding_graph_period_picker_title: \"¿Cómo modifico el rango de días en la gráfica?\",\r\n onboarding_graph_period_picker_description: \"Hora, día, semana, mes o año.\",\r\n onboarding_graph_export_data_title: \"¿Cómo puedo descargar los datos de mi servicio?\",\r\n onboarding_graph_export_data_description: \"Un CSV con tus datos.\",\r\n onboarding_graph_calendar_picker_title: \"¿Puedo hacer una selección personalizada de fechas?\",\r\n onboarding_graph_calendar_picker_description: \"Selecciona un rango específico.\",\r\n onboarding_service_title_step1: \"Multiple selección según tus necesidades:\",\r\n onboarding_service_title_step2: \"Descubre el detalle desde un solo lugar:\",\r\n onboarding_service_description_step1: \"Puedes seleccionar uno o máximo 3 servicios vinculados a tu cuenta en este menú.\",\r\n onboarding_service_description_step2: \"También puedes ver los datos más importantes de este servicio al desplegar el detalle.\",\r\n onboarding_service_picker_title_step1: 'Desde aquí haz la selección de tus servicios:',\r\n onboarding_service_picker_title_step2: 'No te afanes si no encuentras lo que buscas:',\r\n onboarding_service_picker_title_step3: 'Selecciona los servicios que quieres comparar:',\r\n onboarding_service_picker_description_step1: 'Puedes seleccionar uno o máximo 3 servicios vinculados a tu cuenta. Para descubrir cómo da click al botón de (+) y navega por tus servicios',\r\n onboarding_service_picker_description_step2: 'Filtra por alguno de nuestros servicios o busca una ubicación en especifico desde este botón',\r\n onboarding_service_picker_description_step3: 'Relaciona los servicios que vas a comparar con los tipos de gráfica (Ej: Comparar consumo de 2 servicios).',\r\n onboarding_graph_calendar_title_step1: 'Personaliza tus rangos de fecha:',\r\n onboarding_graph_calendar_title_step2: 'Te ofrecemos filtros establecidos:',\r\n onboarding_graph_calendar_description_step1: 'En el icono de calendario puedes seleccionar un rango especifico o hacer click en alguna de las opciones predeterminadas.',\r\n onboarding_graph_calendar_description_step2: \"Puedes hacer click en alguno de los accesos rápidos, que te muestran la ultima semana, las ultimas 2 semanas y el ultimo mes.\",\r\n onboarding_graph_export_data_title_step1: \"Completa la información para descargar los datos de tu servicio:\",\r\n onboarding_graph_export_data_title_step2: \"Exporta la gráfica y los datos de tu servicio:\",\r\n onboarding_graph_export_data_description_step1: \"Haz clic en el botón de descarga ubicado junto a la selección de rango de fechas para obtener un archivo con los datos.\",\r\n onboarding_graph_export_data_description_step2: \"Podrás descargar los datoss en un archivo CSV, según la selección de gráfica y rango de fecha.\",\r\n onboarding_graph_period_title_step1: \"Cambia la visualización a tu preferencia:\",\r\n onboarding_graph_period_title_step2: \"Rangos establecidos para navegar:\",\r\n onboarding_graph_period_title_step3: \"Rangos establecidos para navegar:\",\r\n onboarding_graph_period_title_step4: \"Rangos establecidos para navegar:\",\r\n onboarding_graph_period_title_step5: \"Rangos establecidos para navegar:\",\r\n onboarding_graph_period_description_step1: \"Desde aquí puedes escoger el rango de fecha que deseas visualizar en la gráfica.\",\r\n onboarding_graph_period_description_step2: \"Si seleccionas Hora a hora vas a poder visualizar todo 1 día por 24 horas.\",\r\n onboarding_graph_period_description_step3: \"Cuando seleccionas Rango semanal vas visualizar la semana por días (7 días).\",\r\n onboarding_graph_period_description_step4: \"La selección de Rango Mensual te permite ver el mes completo por días (30 días) y hacer selecciones personalizas.\",\r\n onboarding_graph_period_description_step5: \"La selección del Rango Anual te permite ver todo un año por meses (12 meses).\",\r\n onboarding_graph_type_title_step1: \"La selección de servicios se ve reflejada acá:\",\r\n onboarding_graph_type_title_step2: \"Selecciona el tipo de gráfica que desees ver:\",\r\n onboarding_graph_type_title_step3: \"Verifica la unidad de medida:\",\r\n onboarding_graph_type_title_step4: \"Algunas variables están agrupadas:\",\r\n onboarding_graph_type_description_step1: \"Los servicios que se ven aquí son los mismos seleccionaste en el menú de servicios\",\r\n onboarding_graph_type_description_step2: \"Tienes acceso a una gran variedad de tipos de gráfica (Consumo, Corriente, Voltaje, etc.) desde este botón.\",\r\n onboarding_graph_type_description_step3: \"Algunas variables no se pueden comparar entre sí por las diferencias en unidad de medida:Consumo (kWh) vs. Corriente (Amp)\",\r\n onboarding_graph_type_description_step4: \"Revisa el icono que esta al lado de la variable para distinguirlas. Por ejemplo si seleccionas Energía Reactiva, puedes hacer la distinción entre Capacitiva, En Exceso o Inductiva.\",\r\n onboarding_invoice_title_step1: \"Encuentra las facturas que necesitas:\",\r\n onboarding_invoice_title_step2: \"No te pierdas ningún detalle de tu factura:\",\r\n onboarding_invoice_description_step1: \"Busca por el nombre del servicio o filtrar las facturas según el mes a pagar, o el historial de las que ya fueron pagadas.\",\r\n onboarding_invoice_description_step2: \"Visualizar la factura y todo sus componentes en la totalidad de tu pantalla.\",\r\n onboarding_payment_title_step1: \"Realiza el pago desde la plataforma:\",\r\n onboarding_payment_title_step2: \"Selecciona tu forma de pago pago:\",\r\n onboarding_payment_title_step3: \"Cuando pagas con tarjeta de credito:\",\r\n onboarding_payment_title_step4: \"Te ofrecemos otra forma de pago:\",\r\n onboarding_payment_description_step1: \"Selecciona una o más facturas, dale click al botón pagar y sigue los pasos para completar el proceso desde nuestra pasarela de pago.\",\r\n onboarding_payment_description_step2: \"Puedes completar tu pago con tarjeta de crédito o PSE, y todo desde la plataforma.\",\r\n onboarding_payment_description_step3: \"Solo es necesario completar la información de pago y seleccionar la cantidad de cuotas.\",\r\n onboarding_payment_description_step4: \"Incluso puedes usar los NEUgets vinculados a tu cuenta para pagar.\",\r\n onboarding_user_title_step1: \"Puedes invitar a nuevos colaboradores:\",\r\n onboarding_user_title_step2: \"A tener en cuenta:\",\r\n onboarding_user_title_step3: \"Haz los cambios que necesites:\",\r\n onboarding_user_description_step1: \"Invita a otros usuarios a tus proyectos y dales acceso a todo lo que necesiten de tu cuenta.\",\r\n onboarding_user_description_step2: \"Para agregar a un usuario, es importante completar este formulario.\",\r\n onboarding_user_description_step3: \"Puedes modificar el permiso que le diste a otros usuarios o moverlos a otro proyecto.\",\r\n onboarding_profile_title_step1: \"Desde tu perfil puedes:\",\r\n onboarding_profile_title_step2: \"Puedes crear alertas para tus proyectos:\",\r\n onboarding_profile_title_step3: \"Agrega y editar los usuarios que necesites:\",\r\n onboarding_profile_title_step4: \"Accede a los demás tutoriales de la plataforma:\",\r\n onboarding_profile_description_step1: \"Configurar tus datos personales y los usuarios vinculados a cada proyecto de tu cuenta.\",\r\n onboarding_profile_description_step2: \"Para hacerle seguimiento a tus proyectos, verificar la energía reactiva o el consumo.\",\r\n onboarding_profile_description_step3: \"También tienes la sección para agregar usuarios a cada uno de tus proyectos, o editar el acceso a usuarios que ya agregaste.\",\r\n onboarding_profile_description_step4: \"En esta sección tendrás acceso a los tutoriales disponibles dentro de la plataforma.\",\r\n onboarding_dashboard_title_step1: \"¡Hola!\",\r\n onboarding_dashboard_title_step2: \"Tu cuenta, un mundo de posibilidades:\",\r\n onboarding_dashboard_title_step3: \"Aprende a navegar por cada servicio:\",\r\n onboarding_dashboard_title_step4: \"Accede a los servicios de emergencia:\",\r\n onboarding_dashboard_title_step5: \"Envía tus requerimientos desde la plataforma:\",\r\n onboarding_dashboard_title_step6: \"Mantente al tanto de todo lo que sucede:\",\r\n onboarding_dashboard_title_step7: \"Accede a más NEUGets (Green energy tokens):\",\r\n onboarding_dashboard_description_step1: \"Conoce como navegar y sacarle el mejor provecho a la plataforma de ERCO/NEU.\",\r\n onboarding_dashboard_description_step2: \"Accede a los servicios dentro del ecosistema de NEU/ERCO desde esta sección.\",\r\n onboarding_dashboard_description_step3: \"Navega por cada sección dandole click al icono del servicio: Energy, NEU+, Genius y Efficiency.\",\r\n onboarding_dashboard_description_step4: \"En caso que tengas una falla en tu suministro de energía, con respuesta a emergencias 24/7.\",\r\n onboarding_dashboard_description_step5: \"En el centro de ayuda puedes mandar una solicitud cuando tengas una queja o requerimiento\",\r\n onboarding_dashboard_description_step6: \"Accede a las notificaciones de todos tus proyectos y a las alertas creadas para cada uno.\",\r\n onboarding_dashboard_description_step7: \"Con tus NEUgets puedes pagar la factura de energía y ganar más al referir nuevas personas.\",\r\n onboarding_alert_title_step1: \"Programa tus alertas para estar al tanto de todo:\",\r\n onboarding_alert_title_step2: \"Todo esto puedes hacer con una alerta:\",\r\n onboarding_alert_title_step3: \"A tener en cuenta:\",\r\n onboarding_alert_title_step4: \"Selecciona la variable de energía:\",\r\n onboarding_alert_title_step5: \"Determina la regla que mide tu alerta:\",\r\n onboarding_alert_title_step6: \"Establece el valor numérico para tu alerta:\",\r\n onboarding_alert_title_step7: \"Establece a donde debe llegar la notificación:\",\r\n onboarding_alert_title_step8: \"Te notificaremos cuando se cumpla tu alerta:\",\r\n onboarding_alert_description_step1: \"Las alertas son la manera más sencilla y personalizada de hacerle seguimiento a tus servicios.\",\r\n onboarding_alert_description_step2: \"Seguimiento a tus servicios, verifica el consumo o la energía reactiva, establece un límite y mucho más. Da click al botón de agregar alerta para descubrir cómo.\",\r\n onboarding_alert_description_step3: \"Para crear una alerta es necesario definir que servicio y que tipo de variable de energía vas a seleccionar.\",\r\n onboarding_alert_description_step4: \"Puedes seleccionar entre varios tipos de variables como: consumo, energía reactiva, corriente, potencia, voltaje, entre otros.\",\r\n onboarding_alert_description_step5: \"Puedes seleccionar entre 3 tipos de reglas para establecer tu alerta.\",\r\n onboarding_alert_description_step6: \"Para esta sección puedes poner un valor numérico para tu alerta, puede ser un total o un promedio de datos.\",\r\n onboarding_alert_description_step7: \"Puedes seleccionar el canal por donde enviar la notificación de la alerta.\",\r\n onboarding_alert_description_step8: \"Al establecer una alerta te notificaremos cuando alguno de tus proyectos sobrepase la condición que programaste.\",\r\n energy_graph_group_average: \"Promedio (en gráfica)\",\r\n onboarding_walktrough_title: \"Accede a los demás tutoriales de la plataforma:\",\r\n onboarding_walktrough_description: \"Ingresa a tu perfil, encontrarás la sección de todos los tutoriales para continuar este o iniciar uno nuevo.\",\r\n last_monthly_generation: \"Generación del último mes\",\r\n invoices_text_empty_bills_pending: \"Buen trabajo! No tienes facturas pendientes.\",\r\n invoices_text_empty_bills_paid: \"No tienes facturas pagadas, si tienes facturas pendientes recuerda ponerte al dia.\",\r\n invoices_text_empty_bills_due: \"Buen trabajo! No tienes facturas vencidas.\",\r\n generation_per_equipment: \"Generación por equipo\",\r\n generation_vs_irradiance: \"Generación vs Irradiancia\",\r\n generation: \"Generación\",\r\n temperature_plot: \"Temperatura\",\r\n generation_variation: \"Variación de generación\",\r\n invoices_text_empty_bills_overdue: \"Buen trabajo! No tienes facturas vencidas.\",\r\n invoices_state_clear_filters: \"Limpiar filtro\",\r\n tooltip_last_monthly_generation: \"Información de la generación de energía de los últimos meses\",\r\n tooltip_generation_per_equipment: \"Información de la generación de energía desagregada por inversor\",\r\n tooltip_generation_vs_irradiance: \"Comparativo entre la generación de energía del servicio y la irradiancia solar\",\r\n tooltip_generation: \"Distribución diaria de la generación de energía\",\r\n tooltip_temperature_plot: \"Comparativo entre la temperatura ambiental y la temperatura de los paneles solares\",\r\n user_selected_label_job_area: \"Áreas seleccionadas\",\r\n tooltip_generation_variation: \"Variación de la generación del mes comparado con el mes anterio\",\r\n savings: \"Descripción de los ahorros del proyecto\",\r\n alerts_title_interval_time: 'Intervalo horario',\r\n alerts_interval_time_body_frequency: 'Configura el horario de medición de tu alerta',\r\n alerts_interval_time_title_days: 'Selecciona los días',\r\n alerts_interval_time_title_range: 'Rango horario',\r\n alerts_interval_time_title_body: 'Configura unas horas específicas para el envío de tu alerta',\r\n alerts_title_initial_time: 'Inicio:',\r\n alerts_title_final_time: 'Final:',\r\n alert_time_am: 'AM',\r\n alert_time_pm: 'PM',\r\n alerts_new_alert_service_item: 'Servicio',\r\n alerts_new_alert_service_label: 'Selecciona el servicio',\r\n alerts_new_alert_service_example: 'Puedes seleccionar uno o más servicios',\r\n alerts_new_alert_variable_item: 'Variable',\r\n alerts_new_alert_variable_label: 'Selecciona la variable',\r\n alerts_new_alert_variable_example: 'La variable eléctrica de la alerta',\r\n alerts_new_alert_rule_item: 'Regla',\r\n alerts_new_alert_rule_label: 'Selecciona la regla',\r\n alerts_new_alert_rule_example: 'La variable que mide la alerta',\r\n alerts_new_alert_value_item: 'Valor',\r\n alerts_new_alert_value_label: 'Selecciona el valor',\r\n alerts_new_alert_value_example: 'El número o promedio que mide la alerta',\r\n new_alert_type_title: 'Tipo de alerta',\r\n new_alert_select_type: 'Selecciona el tipo de alerta',\r\n alerts_new_alert_channel_example: 'El medio por el que llega la alerta',\r\n new_alert_schedule_description: 'Agregar un horario de envío de alerta',\r\n popover_duplicate_alert: 'Duplicar alerta',\r\n popover_delete_alert: 'Eliminar alerta',\r\n accounts_id_account: 'ID Cuenta',\r\n accounts_location: 'Ubicación',\r\n accounts: 'Cuentas',\r\n graph_operation_state_no_record: 'Sin registro',\r\n graph_operation_state_process: 'En proceso',\r\n graph_operation_state_standby: 'Standby',\r\n graph_operation_state_checking: 'Chequeando',\r\n graph_operation_state_fail: 'Falla',\r\n energy_no_users: 'No hay usuarios para mostrar',\r\n energy_done_button: \"Hecho\",\r\n energy_click_to_change: \"Toca aquí para cambiar\",\r\n reports_select_all: 'Seleccionar todos',\r\n invoces_more_invoces: 'Más facturas del periodo',\r\n alerts_label_title_empty_state_registers: 'No hay alertas cumplidas en este momento',\r\n alerts_label_body_empty_state_registers: 'Agrega una nueva alerta desde tu perfil o haciendo click en el botón.',\r\n nps_beta_survey_usability: 'Facilidad de uso',\r\n nps_beta_survey_information: 'Información',\r\n nps_beta_survey_design: 'Diseño',\r\n nps_beta_survey_other: 'Otro...',\r\n nps_beta_survey_alert_error: '¡Oops! Parece que olvidaste completar algunos campos.',\r\n nps_beta_survey_your_opinion_counts: '¡Tu opinión cuenta!',\r\n nps_beta_survey_improve_experience: 'Ayúdanos a mejorar tu experiencia',\r\n nps_beta_survey_rate_beta_experience: '¿Cómo calificarías tu experiencia en esta plataforma beta?',\r\n nps_beta_survey_dislike: 'No me gustó',\r\n nps_beta_survey_can_improve: 'Puede mejorar',\r\n nps_beta_survey_great: 'Excelente',\r\n nps_beta_survey_send_rating: 'Enviar calificación',\r\n nps_beta_survey_thanks: '¡Gracias por calificarnos!',\r\n nps_beta_survey_highlight : '¿Qué sería lo que más resaltarías de esta nueva plataforma?',\r\n nps_beta_survey_send: 'Enviar y finalizar',\r\n nps_beta_survey_rate_experience: 'Califica tu experiencia',\r\n onboarding_generation_title1: '¡Nos renovamos para tí! Conoce ENERG:',\r\n onboarding_generation_text1: 'ENERG tiene una experiencia más intuitiva, con un diseño renovado y mejoras basadas en sugerencias de clientes como tú.',\r\n onboarding_generation_title2: 'Mide y visualiza tu generación en tiempo real',\r\n onboarding_generation_text2: 'Podrás ver las gráficas de cómo está generando energía tu sistema en diferentes escalas de tiempo (horaria, semanal y mensual), gráficas de corriente, tensión, potencia activa, factor de potencia, entre otros.',\r\n onboarding_generation_title3: 'Descubre tu eficiencia energética con generación',\r\n onboarding_generation_text3: 'Calculamos tu ahorro teniendo como base la tarifa de tu comercializador de energía. Además,podrás hacer un seguimiento del impacto económico y ambiental de tu sistema.',\r\n onboarding_generation_title4: 'Una sola plataforma para todas las soluciones',\r\n onboarding_generation_text4: '¿Quieres aumentar tu eficiencia energética? Aquí podrás encontrar las soluciones que te van a permitir ser más sostenible. Descubre todo lo que ENERG tiene para ti.',\r\n onboarding_preonboarding_title1: '¡Un par de minutos más para poder acceder a los beneficios!',\r\n onboarding_preonboarding_text1: 'Ten en cuenta las etapas del proceso de operaciones por las que va a pasar tu proyecto:',\r\n onboarding_preonboarding_title2: 'Realiza el seguimiento de tu proceso de operaciones',\r\n onboarding_preonboarding_text2: 'Dentro de la plataforma puedes verificar el estado actual de tu proceso, validar datos como el consumo y el nivel de voltaje de tu proyecto',\r\n onboarding_preonboarding_title3: 'Responde cualquier duda importante desde el chat',\r\n onboarding_preonboarding_text3: 'Tienes acceso a un chat individual con tu coordinador de operaciones para hacer seguimiento personalizado a tu proceso de instalación',\r\n onboarding_consumption_title1: '¡Ten a la mano el control de la energía de tu empresa!',\r\n onboarding_consumption_text1: 'Haz más, gasta menos y cuida el planeta, con el ecosistema de energía mejor optimizado para tus necesidades.',\r\n onboarding_consumption_title2: 'Accede a toda la información de tu consumo',\r\n onboarding_consumption_text2: 'Consume energía de una manera eficiente y haz seguimiento con reportes personalizados de energía, detallados y creados con tu data.',\r\n onboarding_consumption_title3: 'Entiende lo que pagas en tu factura de energía',\r\n onboarding_consumption_text3: 'Con nuestra factura interactiva podrás realizar un solo pago, tener a la mano el histórico de todo tu consumo y analizar tu gasto.',\r\n onboarding_consumption_title4: 'Mide y visualiza tu consumo en tiempo real',\r\n onboarding_consumption_text4: 'Crea y modifica alarmas personalizadas, mide diferentes variables de la energía y mantente al tanto de los cambios atípicos de tu consumo.',\r\n onboarding_modal_description: 'Te seleccionamos a tí para ser uno de los primeros en probarla, podrás dejar tus comentarios en la sección que encontrarás en la esquina inferior derecha.',\r\n onboarding_modal_finally: 'Finalizar',\r\n onboarding_modal_continue: 'Continuar',\r\n dashboard_steps_power_outages: 'Cortes inesperados de luz',\r\n dashboard_steps_short_circuit: 'Cortocircuito en la ubicación',\r\n dashboard_steps_support: 'Soporte',\r\n dashboard_steps_billing_problems: 'Problemas de facturación',\r\n dashboard_steps_payment_methods: 'Medios de pago',\r\n quality_graph_lines: 'Líneas',\r\n quality_graph_power: 'Potencia',\r\n quality_graph_electricity: 'Corriente',\r\n quality_graph_voltage: \"Voltaje\",\r\n quality_graph_variables: 'Variables',\r\n chatbot_aids1: '¿Cuánto he consumido este año?',\r\n chatbot_aids2: '¿Cuál fue mi energía reactiva en junio de 2023?',\r\n chatbot_aids3: '¿Qué día fue el pico máximo de consumo en el ultimo año?',\r\n roles_commercial: 'Comercial',\r\n roles_operations: 'Operaciones',\r\n roles_invoicing: 'Facturación',\r\n roles_environmental: 'Ambiental',\r\n roles_financial: 'Financiero',\r\n roles_marketing: 'Marketing',\r\n roles_legal: 'Legal',\r\n roles_not_apply: 'N/A',\r\n roles_innovation: 'Innovacion',\r\n roles_manager: 'Gerente',\r\n invoices_paid_text_commission: 'Comisión',\r\n tutorial_start_button: 'Empezar',\r\n tutorial_skip_button: 'Omitir',\r\n tutorial_got_it: 'Entendido',\r\n report_type: 'Tipo de reporte',\r\n consumption_report: 'Reporte de Consumo',\r\n generation_report:'Reporte de Generación',\r\n ppa_report: 'Reporte PPA',\r\n genius_report_monthly_consumption: 'Consumo mensual y Facturación',\r\n genius_report_submeasurements: 'Submediciones',\r\n genius_report_detailed_consumption: 'Consumo detallado',\r\n genius_report_reactive_energy: 'Energía reactiva',\r\n genius_report_savings: 'Ahorros',\r\n genius_report_generation: 'Generación',\r\n picker_yes_button: 'Si',\r\n picker_no_button: 'No',\r\n lumi_title: 'Pronto conocerás el poder de Lumi',\r\n lumi_first_text: 'Prepárate para conocer una nueva era de innovación y asistencia personalizada.',\r\n lumi_second_text: '¡No te pierdas esta emocionante novedad que cambiará la forma en la que interactúas con nuestra plataforma!',\r\n lumi_title_card: '¡Nos encanta contar contigo!',\r\n lumi_first_text_card: 'Tan pronto como esté disponible, serás el primero en enterarte. Te mantendremos al tanto de todas las novedades sobre Lumi.',\r\n lumi_second_text_title: '¡Prepárate para vivir una experiencia única!',\r\n lumi_do_click_here: 'Haz click aquí para ser el primero en conocer la experiencia',\r\n lumi_hey: 'Hola',\r\n lumi_question: '¿Cómo te puedo ayudar hoy?',\r\n lumi_you_chat: 'Tú',\r\n lumi_explanation: 'Te lo explico todo paso a paso:',\r\n lumi_go_tutorial: 'Ir a tutorial',\r\n lumi_continue_conversation: 'Continuar esta conversación',\r\n lumi_ask_me: 'Pregúntame lo que quieras...',\r\n lumi_consulting: 'Consultando',\r\n lumi_projects: 'proyectos',\r\n service_type_energy: 'Energía',\r\n service_type_plus: 'Plus',\r\n service_type_zero: 'Financieros',\r\n service_type_generation: 'Generación',\r\n graphs_go_back_button: 'Regresar',\r\n export_graph_example_filename: 'Ej: informe_28_julio',\r\n pagination: 'Pág.',\r\n pagination_of: 'de',\r\n services_picker_select_all: \"Seleccionar todos\",\r\n services_picker_deselect_all: \"Deseleccionar todos\",\r\n energy_graph_plus_button: 'Ir a Plus',\r\n genius_tooltip_button_graphs: 'Seleccione los servicios para visualizar las gráficas',\r\n alerts_select_interval_secondBySecond: 'Segundo a segundo',\r\n alerts_select_check_one_minute: \"Validar cada minuto\",\r\n alerts_select_check_five_minute: \"Validar cada 5 minutos\",\r\n alerts_select_check_ten_minute: \"Validar cada 10 minutos\",\r\n alerts_select_check_fifteen_minute: \"Validar cada 15 minutos\",\r\n alerts_interval_time_title_plus_check: \"Selecciona tiempo de validación\",\r\n user_input_placeholder_name: 'Nombre',\r\n user_input_placeholder_lastname: 'Apellido',\r\n user_input_placeholder_id: '000.000.000',\r\n user_input_placeholder_phone: '000 000 000',\r\n user_input_placeholder_email: 'correo@gmail.com',\r\n onboarding_invoice_title_step3: 'No te pierdas ningún detalle de tu factura:',\r\n onboarding_invoice_description_step3: 'Con este botón podrás visualizar tu factura y descargar una copia en PDF en tu dispositivo.',\r\n onboarding_invoice_title_step4: 'Realiza el pago desde la plataforma:',\r\n onboarding_invoice_description_step4: 'Selecciona los proyectos en la lista que deseas pagar, revisa que el resumen esté bien y haz click en el botón para proceder a pagar tus facturas.',\r\n onboarding_modal_label_redirection: 'Ir a tutoriales',\r\n service_label_active_project_example: 'Nombre Servicio',\r\n energy_export_graph_select_date: \"Selecciona la fecha\",\r\n alerts_new_alert_search_proyects: \"Buscar proyecto\",\r\n support_drag_or_select_file: \"Arrastra aquí o selecciona el archivo.\",\r\n support_upload_files: \"Carga los documentos relacionados con este requerimiento\",\r\n support_select_file: \"Seleccionar documento\",\r\n alerts_save_interval: 'Guardar intervalo',\r\n alerts_new_alert_no_account: 'Sin cuenta',\r\n authorize_personal_data: 'Autorizo el tratamiento de mis datos personales de acuerdo con la Política de Protección de Datos Personales.',\r\n policy_personal_data: 'Ver Política',\r\n user_alert_invalid_fields_error: \"Por favor, ingrese un email o número de teléfono válido.\",\r\n user_alert_duplicate_user_to_invite: \"Este usuario ya ha sido agrego a la lista de invitados\",\r\n user_info_message_user_exist: \"Los proyectos que asignes a usuarios ya registrados, serán sumados a los que tenía asignados inicialmente\",\r\n user_alert_incomplete_fields_error: \"Debes agregar servicios o usuarios invitados\",\r\n user_title_picker_services: \"Selección de servicios\",\r\n users_button_new_user: \"Agregar nuevo usuario\",\r\n users_description_header: \" Puedes otorgar nuevos accesos a ENRG, eliminar usuarios y modificar los accesos a tus servicios.\",\r\n users_link_header: \"Obtén más información sobre roles haciendo click aquí\",\r\n users_title_header: \"Gestión Usuarios\",\r\n new_user_button_send_invitation: \"Enviar invitación\",\r\n new_user_button_users_module: \"Ir al módulo de usuarios\",\r\n new_user_placeholder_input_users: \"Enter para guardar\",\r\n new_user_label_input_users: \"Invita por correo o número de teléfono:\",\r\n new_user_label_picker_services: \"Selecciona los servicios que quieres asignar:\",\r\n users_label_count_services: \"servicios\",\r\n new_user_title_header: \"Agregar usuario\",\r\n new_user_label_registered_user: \"Usuario registrado\",\r\n new_user_label_invited_user: \"invitado\",\r\n services_picker_type_consumption: \"Consumo\",\r\n services_picker_type_generation: \"Generación\",\r\n users_title_header_modal_success: \"¡Todo listo!\",\r\n users_first_description_modal_success: \"Para que sus cuentas se activen, los usuarios deben iniciar sesión. Puedes hacer seguimiento de tus invitaciones en el\",\r\n users_link_description_modal_success: \"módulo de gestión de usuarios\",\r\n users_second_description_modal_success: \"invitar a una nueva cohorte de usuarios o modificar los accesos a tus proyectos.\",\r\n users_button_new_user_success_modal: \"Agregar más usuarios\",\r\n users_button_finish_success_modal: \"Finalizar\",\r\n new_user_description_empty_state: 'Aún no has agregado usuarios. Ingresa un correo electrónico o número de teléfono para enviar una invitación a ENRG.',\r\n incomplete_user_info_modal_title: 'Personaliza tu ENRG',\r\n incomplete_user_info_modal_title_finished: '!Todo listo!',\r\n incomplete_user_info_modal_save_button_loading: 'Enviando...',\r\n incomplete_user_info_modal_save_button: 'Actualizar datos',\r\n incomplete_user_info_modal_save_button_finish: 'Cerrar',\r\n incomplete_user_info_modal_omit_button: 'Omitir',\r\n incomplete_user_info_modal_footer_label: '* Campos obligatorios',\r\n incomplete_user_info_modal_description_1: 'Para mejorar tu experiencia en nuestra plataforma, por favor completa estos datos.',\r\n incomplete_user_info_modal_description_2: '!Solo será un minuto!',\r\n incomplete_user_info_modal_business_units_label: 'Selecciona tu área*',\r\n incomplete_user_info_modal_position_label: 'Escribe tu cargo dentro de la empresa*',\r\n incomplete_user_info_modal_position: 'Tu cargo',\r\n incomplete_user_info_modal_preferences_title: '¿Qué te interesa ver dentro de la plataforma?*',\r\n incomplete_user_info_modal_finished_text: 'Con tu información actualizada, podemos ofrecerte una experiencia más personalizada en ENRG',\r\n business_unit_cgm: 'CGM',\r\n tooltip_business_unit_cgm: 'Analista de información, ingeniero de medida, analista especial de medida',\r\n business_unit_aom: 'AOM',\r\n tooltip_business_unit_aom: 'Analista de proyectos, líder de instalación, supervisor electrico',\r\n business_unit_project_construction: 'Construcción de proyectos',\r\n business_unit_management: 'Gerencia/Administración',\r\n tooltop_business_unit_management: 'Gerente, secretaria de gerencia, áreas de apoyo a gerencia',\r\n business_unit_finance: 'Financiera/Contable',\r\n tooltip_business_unit_finance: 'Contador, auxiliar administrativo, facturación, asistente contable, jefe/director financiero, gerente financiero',\r\n business_unit_operations: 'Operaciones/Mantenimiento',\r\n tooltip_business_unit_operations: 'Calidad, compras y suministros, ingeniería de mantenimiento, técnico de mantenimiento, desarrollo, instalación, operarios de producción, coordinadores de logística, almacenista',\r\n business_unit_sustainability: 'Sostenibilidad/Proyectos',\r\n tooltip_business_unit_sustainability: 'Desarrollador de producto, nuevos proyectos, ingeniería ambiental, sostenibilidad, servicios, investigador, gerente de proyectos, analista de proyectos, innovación, growth',\r\n business_unit_commercialization: 'Comercialización',\r\n business_unit_legal: 'Legal',\r\n tooltip_business_unit_legal: 'Abogado corporativo, asistentes legales',\r\n business_unit_technology: 'Tecnología',\r\n tooltip_business_unit_technology: 'Ingeniero en sistemas, analistas TI, diseño de producto, desarrollador de software, soporte técnico',\r\n business_unit_marketing: 'Marketing',\r\n tooltip_business_unit_marketing: 'Especialista en marketing, community manager, diseñador gráfico, publicista, analista de mercadeo',\r\n business_unit_sales: 'Comercial/Ventas',\r\n tooltip_business_unit_sales: 'Asesor comercial ejecutivo de ventas, representante de ventas, coordinador de ventas, jefe comercial',\r\n business_unit_customer_service: 'Soporte/Servicio al cliente',\r\n business_unit_internal_tech: 'TECH',\r\n business_unit_unassigned: 'Sin asignar',\r\n};\r\n\r\nexport default lang;","import React from 'react';\r\n\r\nimport * as shared from '../creators/Shared';\r\n\r\nimport { GETData, SETData } from \"../../services/WebServices\";\r\n\r\nimport { Notification, Alert } from 'rsuite';\r\n\r\nimport * as firebase from \"firebase/app\";\r\nimport { getMessaging, onMessage, isSupported } from \"firebase/messaging\";\r\nimport { getRemoteConfig, fetchAndActivate, getAll } from \"firebase/remote-config\";\r\n\r\nimport lang from '../../language/es';\r\n\r\nconst firebaseConfig = {\r\n apiKey: \"AIzaSyDPSbHg2-QGXjLJsRUZTJ2Gtgum0dpXA1E\",\r\n authDomain: \"neu-app-v4.firebaseapp.com\",\r\n projectId: \"neu-app-v4\",\r\n storageBucket: \"neu-app-v4.appspot.com\",\r\n messagingSenderId: \"401559542772\",\r\n appId: \"1:401559542772:web:443a0d4fc0c44fd7c937a1\",\r\n measurementId: \"G-BL7BT7TJSC\"\r\n};\r\n\r\nconst firebaseApp = firebase.initializeApp(firebaseConfig);\r\n\r\nconst remoteConfig = getRemoteConfig();\r\n\r\nisSupported().then(support => {\r\n if (support) {\r\n const messaging = getMessaging(firebaseApp);\r\n\r\n onMessage(messaging, (payload) => {\r\n Notification.open(\r\n {\r\n className: \"bg-gray-800 rounded-8\",\r\n title: payload.data.title,\r\n duration: 20000,\r\n placement: \"bottomEnd\",\r\n description: (
{payload.data.body}
)\r\n }\r\n )\r\n });\r\n }\r\n})\r\n\r\nremoteConfig.settings.minimumFetchIntervalMillis = 3600000;\r\n\r\nremoteConfig.defaultConfig = lang;\r\n\r\nexport const loadLanguage = async () => {\r\n\r\n return await fetchAndActivate(remoteConfig)\r\n .then(() => {\r\n\r\n let words = {};\r\n\r\n const parameters = getAll(remoteConfig);\r\n\r\n Object.entries(parameters).forEach(value => {\r\n const [key, entry] = value;\r\n words[key] = entry.asString().replace(/\\s+/g, \" \");\r\n });\r\n\r\n return words;\r\n });\r\n\r\n}\r\n\r\nexport const setCurrentModule = payload => {\r\n return {\r\n type: shared.SET_CURRENT_MODULE,\r\n payload\r\n }\r\n}\r\n\r\nexport const setMenu = payload => {\r\n return {\r\n type: shared.SET_MENU,\r\n payload\r\n }\r\n}\r\n\r\nexport const setLanguage = payload => {\r\n return {\r\n type: shared.SET_LANGUAGE,\r\n payload\r\n }\r\n}\r\n\r\nexport const setShowBlackScreen = payload => {\r\n return {\r\n type: shared.SET_SHOW_BLACK_SCREEN,\r\n payload\r\n }\r\n}\r\n\r\nexport const setShowBlackScreenIframe = payload => {\r\n return {\r\n type: shared.SET_SHOW_BLACK_SCREEN_IFRAME,\r\n payload\r\n }\r\n}\r\n\r\nexport const setShowBlackScreenDrawer = payload => {\r\n return {\r\n type: shared.SET_SHOW_BLACK_SCREEN_DRAWER,\r\n payload\r\n }\r\n}\r\n\r\nexport const setShowCalendar = payload => {\r\n return {\r\n type: shared.SET_SHOW_CALENDAR,\r\n payload\r\n }\r\n}\r\n\r\nexport const setShowNpsSurvey = payload => {\r\n return {\r\n type: shared.SET_SHOW_NPS_SURVEY,\r\n payload\r\n }\r\n}\r\n\r\nexport const setStartOnboarding = payload => {\r\n return {\r\n type: shared.SET_START_ONBOARDING,\r\n payload\r\n }\r\n}\r\n\r\nexport const setControlledOnboarding = payload => {\r\n return {\r\n type: shared.SET_CONTROLLED_ONBOARDING,\r\n payload\r\n }\r\n}\r\n\r\nexport const setShowDrawerOnboarding = payload => {\r\n return {\r\n type: shared.SET_SHOW_DRAWER_ONBOARDING,\r\n payload\r\n }\r\n}\r\n\r\nexport const setShowPulseAnimation = payload => {\r\n return {\r\n type: shared.SET_SHOW_PULSE_ANIMATION,\r\n payload\r\n }\r\n}\r\n\r\nexport const setScreenPaddingBottom = payload => {\r\n return {\r\n type: shared.SET_SCREEN_PADDING_BOTTOM,\r\n payload\r\n }\r\n}\r\n\r\nexport const logout = payload => {\r\n localStorage.setItem('user', null);\r\n localStorage.setItem('token', null);\r\n localStorage.setItem('account', null);\r\n return {\r\n type: shared.LOGOUT,\r\n payload\r\n }\r\n}\r\n\r\nexport const loadLanguageAsync = () => {\r\n return (dispatch) => {\r\n\r\n loadLanguage().then(response => {\r\n dispatch(setLanguage(response));\r\n })\r\n }\r\n}\r\n\r\nexport const loadUserNpsAsync = () => {\r\n return (dispatch, getState) => {\r\n\r\n const userId = getState().users.user.idUser;\r\n const userCapabilities = getState().users.user.capabilities;\r\n\r\n if ( userCapabilities.show_nps_survey ) {\r\n\r\n GETData(`survey/${userId}`, \"GET\")\r\n .then(response => {\r\n if (response !== null) {\r\n if (response.body[0].show_nps_survey === true || response.body[0].show_nps_survey === null) {\r\n\r\n dispatch(setShowNpsSurvey(true))\r\n\r\n }\r\n else {\r\n\r\n dispatch(setShowNpsSurvey(false))\r\n\r\n }\r\n }\r\n })\r\n .catch(response => console.error(response));\r\n\r\n }\r\n\r\n }\r\n}\r\n\r\nexport const setNpsSurveyAsync = (payload) => {\r\n return (dispatch, getState) => {\r\n\r\n const userId = getState().users.user.idUser;\r\n\r\n const language = getState().shared.language;\r\n\r\n const data = {\r\n id_user: userId,\r\n ...payload\r\n }\r\n\r\n SETData(\"survey/create\", \"POST\", data)\r\n .then(response => {\r\n if (response) Alert.success(language.alert_nps_survey_create_success);\r\n })\r\n .catch(() => Alert.error(language.alert_nps_survey_create_error))\r\n .finally(() => dispatch(setShowNpsSurvey(false)));\r\n }\r\n}\r\n\r\n","import * as login from \"../creators/Login\";\r\n\r\nimport * as usersActions from \"./Users\";\r\nimport * as accountsActions from \"./Accounts\";\r\nimport * as sharedActions from \"./Shared\";\r\n\r\nimport { GETData, SETData } from \"../../services/WebServices\";\r\n\r\nimport {\r\n init,\r\n identify,\r\n Identify,\r\n setUserId,\r\n track,\r\n} from \"@amplitude/analytics-browser\";\r\n\r\nimport { getMessaging, getToken, isSupported } from \"firebase/messaging\";\r\n\r\ninit(process.env.REACT_APP_AMPLITUDE_KEY, {\r\n defaultTracking: false,\r\n});\r\n\r\nconst getFirebaseToken = (id_user) => {\r\n return () => {\r\n isSupported().then((support) => {\r\n if (support && Notification.permission === \"granted\") {\r\n let messaging = getMessaging();\r\n getToken(messaging, {\r\n vapidKey: process.env.REACT_APP_FIREBASE_MESSAGING_TOKEN,\r\n }).then((token) => {\r\n const data = {\r\n id_user: id_user,\r\n device_type: \"web\",\r\n token: token,\r\n };\r\n\r\n SETData(`notifications/devices/token`, \"POST\", data);\r\n });\r\n }\r\n });\r\n };\r\n};\r\n\r\nexport const setStep = (payload) => {\r\n return {\r\n type: login.SET_STEP,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setLoading = (payload) => {\r\n return {\r\n type: login.SET_LOADING,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setResending = (payload) => {\r\n return {\r\n type: login.SET_RESENDING,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setCounter = (payload) => {\r\n return {\r\n type: login.SET_COUNTER,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setCodeTries = (payload) => {\r\n return {\r\n type: login.SET_CODE_TRIES,\r\n payload,\r\n };\r\n};\r\n\r\nexport const loadInitInfoAsync = () => {\r\n return (dispatch) => {\r\n const token = localStorage.getItem(\"token\");\r\n const user = JSON.parse(localStorage.getItem(\"user\"));\r\n\r\n dispatch(setLoading(true));\r\n\r\n sharedActions.loadLanguage().then((response) => {\r\n dispatch(sharedActions.setLanguage(response));\r\n if (token !== null && user !== null) {\r\n //TODO:\r\n GETData(\r\n `usersdev/users/${user.idUser}`,\r\n \"GET\"\r\n )\r\n .then((result) => {\r\n if (result !== null) {\r\n // if (result.redirectInfo)\r\n // window.location.replace(result.redirectInfo.redirectUrl);\r\n\r\n if (localStorage.getItem(\"modal_activation\") === null) {\r\n localStorage.setItem(\"modal_activation\", true);\r\n }\r\n\r\n if (localStorage.getItem(\"modal_home\") === null) {\r\n localStorage.setItem(\"modal_home\", true);\r\n }\r\n\r\n localStorage.setItem(\"user\", JSON.stringify(result));\r\n\r\n dispatch(usersActions.setUser(result));\r\n\r\n dispatch(usersActions.getUserExtraDataAsync());\r\n dispatch(accountsActions.loadAccountsAsync());\r\n dispatch(setStep(3));\r\n track(\"Session started\");\r\n\r\n setUserId(`NEUUSER_${user.idUser}`);\r\n\r\n const identifyObj = new Identify();\r\n identifyObj\r\n .set(\"name\", `${result.name} ${result.lastname}`)\r\n .set(\"email\", result.email)\r\n .set(\r\n \"job\",\r\n result?.jobs?.length\r\n ? result.jobs.map(function (job) {\r\n return job?.name;\r\n })\r\n : \"N/A\"\r\n )\r\n .set(\"project_type\", result?.capabilities?.projects_type);\r\n identify(identifyObj);\r\n\r\n dispatch(setLoading(false));\r\n\r\n dispatch(updateConnectionAsync());\r\n\r\n dispatch(getFirebaseToken(user.idUser));\r\n } else {\r\n dispatch(setStep(1));\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(setStep(1));\r\n })\r\n .finally(() => dispatch(setLoading(false)));\r\n } else {\r\n dispatch(setStep(1));\r\n dispatch(setLoading(false));\r\n }\r\n });\r\n };\r\n};\r\n\r\nexport const loadInfoUserAsync = (payload, showError) => {\r\n return (dispatch, getState) => {\r\n let codeTries = getState().login.codeTries;\r\n\r\n const user = getState().users.user;\r\n\r\n const language = getState().shared.language;\r\n\r\n dispatch(setLoading(true));\r\n //TODO:\r\n GETData(\r\n `usersdev/login/${user.idUser}/${payload}`,\r\n \"GET\"\r\n )\r\n .then((result) => {\r\n if (result !== null) {\r\n localStorage.setItem(\"token\", result.token);\r\n //TODO:\r\n GETData(\r\n `usersdev/users/${result.user.idUser}`,\r\n \"GET\"\r\n )\r\n .then((resultUser) => {\r\n if (resultUser !== null) {\r\n // if (result.redirectInfo)\r\n // window.location.replace(result.redirectInfo.redirectUrl);\r\n\r\n if (localStorage.getItem(\"modal_activation\") === null) {\r\n localStorage.setItem(\"modal_activation\", true);\r\n }\r\n\r\n if (localStorage.getItem(\"modal_home\") === null) {\r\n localStorage.setItem(\"modal_home\", true);\r\n }\r\n\r\n localStorage.setItem(\"user\", JSON.stringify(resultUser));\r\n\r\n dispatch(usersActions.setUser(resultUser));\r\n\r\n dispatch(usersActions.getUserExtraDataAsync());\r\n dispatch(accountsActions.loadAccountsAsync());\r\n dispatch(setStep(3));\r\n\r\n setUserId(`NEUUSER_${resultUser.idUser}`);\r\n\r\n const identifyObj = new Identify();\r\n identifyObj\r\n .set(\"name\", `${resultUser.name} ${resultUser.lastname}`)\r\n .set(\"email\", resultUser.email)\r\n .set(\r\n \"job\",\r\n resultUser?.jobs?.length\r\n ? resultUser.jobs.map(function (job) {\r\n return job?.name;\r\n })\r\n : \"N/A\"\r\n )\r\n .set(\"project_type\", resultUser?.capabilities?.projects_type);\r\n identify(identifyObj);\r\n\r\n dispatch(setLoading(false));\r\n\r\n dispatch(updateConnectionAsync());\r\n\r\n dispatch(getFirebaseToken(resultUser.idUser));\r\n } else {\r\n dispatch(setStep(1));\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(setStep(1));\r\n })\r\n .finally(() => dispatch(setLoading(false)));\r\n } else {\r\n codeTries += 1;\r\n\r\n if (codeTries === 4) {\r\n codeTries += 1;\r\n dispatch(setStep(1));\r\n } else {\r\n showError(language.alert_login_invalid_code);\r\n }\r\n\r\n dispatch(setLoading(false));\r\n dispatch(setCodeTries(codeTries));\r\n }\r\n })\r\n .catch(() => {\r\n showError(language.alert_shared_error);\r\n dispatch(setLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const generateCodeAsync = (payload, showError) => {\r\n return (dispatch, getState) => {\r\n const step = getState().login.step;\r\n const user = getState().login.user;\r\n const language = getState().shared.language;\r\n\r\n let counter = getState().login.counter;\r\n let messageError;\r\n\r\n if (step === 2) {\r\n messageError = language.alert_shared_error;\r\n dispatch(setResending(true));\r\n } else {\r\n messageError = language.alert_login_user_not_found;\r\n dispatch(setLoading(true));\r\n }\r\n //TODO:\r\n GETData(\r\n `usersdev/login/${payload}?lan=${language.language_locale}`,\r\n \"GET\"\r\n )\r\n .then((result) => {\r\n if (result !== null) {\r\n dispatch(usersActions.setUser({ ...user, idUser: result.idUser }));\r\n\r\n if (step === 2) {\r\n let interval = setInterval(() => {\r\n if (counter > 0) {\r\n counter -= 1;\r\n } else {\r\n clearInterval(interval);\r\n counter = 60;\r\n dispatch(setResending(false));\r\n }\r\n dispatch(setCounter(counter));\r\n }, 1000);\r\n } else {\r\n dispatch(setLoading(false));\r\n dispatch(setStep(2));\r\n }\r\n } else {\r\n showError(messageError);\r\n dispatch(setLoading(false));\r\n dispatch(setResending(false));\r\n }\r\n })\r\n .catch(() => {\r\n showError(messageError);\r\n dispatch(setLoading(false));\r\n dispatch(setResending(false));\r\n });\r\n };\r\n};\r\n\r\nexport const updateConnectionAsync = () => {\r\n return (_dispatch, getState) => {\r\n const userId = getState().users.user.idUser;\r\n\r\n SETData(`users/users/connection/${userId}`, \"POST\", { type: \"web\" }).catch(\r\n (response) => console.error(response)\r\n );\r\n };\r\n};\r\n","import { GETData } from \"../../services/WebServices\";\r\n\r\nimport * as services from \"../creators/Services\";\r\n\r\nimport _ from \"lodash\";\r\n\r\nexport const setTotalServices = payload => {\r\n return {\r\n type: services.SET_TOTAL_SERVICES,\r\n payload\r\n }\r\n}\r\n\r\nexport const setTotalServicesGrouped = payload => {\r\n return {\r\n type: services.SET_TOTAL_SERVICES_GROUPED,\r\n payload\r\n }\r\n}\r\n\r\nexport const setActiveServicesEnergy = payload => {\r\n return {\r\n type: services.SET_ACTIVE_SERVICES_ENERGY,\r\n payload\r\n }\r\n}\r\n\r\nexport const setActiveServicesPlus = payload => {\r\n return {\r\n type: services.SET_ACTIVE_SERVICES_PLUS,\r\n payload\r\n }\r\n}\r\n\r\nexport const setActiveServicesInvoices = payload => {\r\n return {\r\n type: services.SET_ACTIVE_SERVICES_INVOICES,\r\n payload\r\n }\r\n}\r\n\r\nexport const setActiveServicePreonboarding = payload => {\r\n return {\r\n type: services.SET_ACTIVE_SERVICE_PREONBOARDING,\r\n payload\r\n }\r\n}\r\n\r\nexport const setDefaultActiveService = payload => {\r\n return {\r\n type: services.SET_DEFAULT_ACTIVE_SERVICE,\r\n payload\r\n }\r\n}\r\n\r\nexport const setUsersByService = payload => {\r\n return {\r\n type: services.SET_USERS_BY_SERVICE,\r\n payload\r\n }\r\n}\r\n\r\nexport const loadServicesAsync = (services = []) => {\r\n return (dispatch, getState) => {\r\n const defaultActiveService = getState().services.defaultActiveService;\r\n const userId = getState().users.user.idUser;\r\n \r\n GETData(`users/services/?user=${userId}`, \"GET\")\r\n .then(response => {\r\n if (response !== null) {\r\n \r\n response = response.map(item => ({...item, idAccount: item.account.idAccount}))\r\n\r\n dispatch(setTotalServices(response)); \r\n\r\n let groupedServices = response.reduce((acc, service) => {\r\n const { account, ...serviceDetails } = service;\r\n const accountId = account.idAccount;\r\n \r\n if (!acc[accountId]) {\r\n acc[accountId] = { account: { ...account }, services: [] };\r\n }\r\n \r\n acc[accountId].services.push(serviceDetails);\r\n \r\n return acc;\r\n }, {});\r\n \r\n groupedServices = Object.values(groupedServices);\r\n\r\n dispatch(setTotalServicesGrouped(groupedServices));\r\n \r\n let defaultServiceIndex = 0;\r\n\r\n if (defaultActiveService){\r\n defaultServiceIndex = response.findIndex(s => s.idService === defaultActiveService)\r\n defaultServiceIndex = defaultServiceIndex !== -1 ? defaultServiceIndex : 0;\r\n dispatch(setDefaultActiveService(null));\r\n }\r\n\r\n dispatch(setActiveServicesEnergy([response[defaultServiceIndex]]));\r\n \r\n dispatch(setActiveServicesInvoices(response));\r\n\r\n const servicesPlus = response.filter(x => x.type.typeService === 2)\r\n if (servicesPlus.length){ \r\n dispatch(setActiveServicesPlus([servicesPlus[0]]));\r\n }\r\n else{\r\n dispatch(setActiveServicesPlus([]));\r\n }\r\n\r\n if (services.length > 0) {\r\n const filteredServices = response\r\n .filter(service => services.includes(service.idService));\r\n \r\n setTimeout(() => dispatch(setActiveServicesEnergy(filteredServices)), 200);\r\n\r\n setTimeout(() => dispatch(setActiveServicesPlus([_.last(filteredServices)])), 200);\r\n }\r\n }\r\n })\r\n .catch(response => console.error(response));\r\n }\r\n}\r\n\r\nexport const loadUsersByServiceAsync = (serviceId) => {\r\n return (dispatch, getState) => {\r\n\r\n const usersByService = getState().services.usersByService;\r\n\r\n if (!usersByService[serviceId]) {\r\n\r\n GETData(`users/users/service/${serviceId}`, \"GET\")\r\n .then(response => {\r\n if (response !== null) {\r\n dispatch(setUsersByService({idService: serviceId, users: response}))\r\n }\r\n })\r\n .catch(response => console.error(response));\r\n\r\n }\r\n \r\n }\r\n}","import * as notifications from \"../creators/Notifications\";\r\n\r\nimport { GETData, SETData } from \"../../services/WebServices\";\r\n\r\nexport const setNotifications = payload => {\r\n return {\r\n type: notifications.SET_NOTIFICATIONS,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setNotificationsLoading = payload => {\r\n return {\r\n type: notifications.SET_NOTIFICATIONS_LOADING,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setNotificationsPagination = payload => {\r\n return {\r\n type: notifications.SET_NOTIFICATIONS_PAGINATION,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setTotalNotificationsInfo = payload => {\r\n return {\r\n type: notifications.SET_TOTAL_NOTIFICATIONS_INFO,\r\n payload,\r\n };\r\n};\r\n\r\nexport const loadNotificationsAsync = (type) => {\r\n return (dispatch, getState) => {\r\n\r\n dispatch(setNotificationsLoading(true));\r\n const notifications = getState().notifications.notifications; \r\n const page = getState().notifications.notificationsPagination || 1; \r\n\r\n const userId = getState().users.user.idUser; \r\n\r\n GETData(`notifications/${userId}?page=${page}&page_limit=10&all_registers=${true}`, \"GET\")\r\n .then(response => { \r\n if (response !== null){\r\n dispatch(setNotificationsPagination(response.pagination_info.next_page));\r\n dispatch(setNotifications([...notifications, ...response.data]));\r\n }\r\n })\r\n .catch(response => console.error(response))\r\n .finally(() => dispatch(setNotificationsLoading(false)));\r\n };\r\n\r\n};\r\n\r\nexport const loadTotalNotificationsAsync = () => {\r\n return (dispatch, getState) => {\r\n\r\n const userId = getState().users.user.idUser; \r\n\r\n GETData(`notifications/count/${userId}`, \"GET\")\r\n .then(response => { \r\n if (response !== null){\r\n dispatch(setTotalNotificationsInfo(response));\r\n }\r\n })\r\n .catch(response => console.error(response));\r\n };\r\n\r\n};\r\n\r\nexport const deleteNotificationAsync = (id) => {\r\n return (dispatch, getState) => { \r\n\r\n const notifications = getState().notifications.notifications; \r\n\r\n GETData(`notifications/${id}`, \"DELETE\")\r\n .then(() => { \r\n\r\n let newNotifications = notifications.filter(item => item.id_register !== id);\r\n\r\n dispatch(setNotifications(newNotifications));\r\n\r\n })\r\n .catch(response => console.error(response));\r\n };\r\n \r\n};\r\n\r\nexport const updateNotificationAsync = (payload) => {\r\n return (dispatch, getState) => { \r\n\r\n let notifications = getState().notifications.notifications; \r\n\r\n SETData(`notifications/${payload.id}`, \"PUT\", payload)\r\n .then((response) => { \r\n\r\n notifications.forEach((notification) => {\r\n if (notification.id_register === response.id_register) {\r\n notification.read = response.read\r\n }\r\n });\r\n\r\n dispatch(setNotifications([...notifications])); \r\n\r\n })\r\n .catch(response => console.error(response));\r\n };\r\n \r\n};","import { themes } from '../../utils/enums';\r\n\r\nimport * as theme from '../creators/Theme';\r\n\r\nexport const setTheme = (payload) => {\r\n if (Object.values(themes).includes(payload)){\r\n localStorage.setItem('theme', payload);\r\n return {\r\n type: theme.SET_THEME,\r\n payload\r\n }\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport * as themeActions from \"../../../store/actions/Theme\";\r\n\r\n\r\nconst Input = ({ label, value = \"\", type, required, help = null, disabled = false, onChange, onPressEnter, focus = false, error, theme, placeholder = '' }) => {\r\n return (\r\n
\r\n {\r\n label && (\r\n
\r\n \r\n {\r\n help ? (\r\n

{ help }

\r\n ) : <>\r\n }\r\n
\r\n )\r\n }\r\n
\r\n onChange(e)} onClick={(e) => e.stopPropagation()} onKeyDown={({ keyCode }) => keyCode === 13 && onPressEnter && onPressEnter()} />\r\n
\r\n {error ?

{error}

: null}\r\n
\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setTheme: (theme) => dispatch(themeActions.setTheme(theme)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Input);\r\n","import React from 'react'\r\n\r\nconst BackButton = ({ onClick, theme }) => {\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default BackButton","import React, { useState, useEffect } from \"react\";\r\n\r\nimport { Popover } from \"@idui/react-popover\";\r\n\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as themeActions from \"../../../store/actions/Theme\";\r\n\r\nconst MultipleSelect = ({ options, selectedData, label, keyName = 'value', labelName = 'label', onChange, width = 280, height = 120, language, disabledData, newData, allowAllOptions = false, labelAllServices, error, value, theme, singleSelect = false, }) => {\r\n\r\n const [active, setActive] = useState(false);\r\n const [selectedAllOptions, setSelectedAllOptions] = useState(false);\r\n\r\n let totalOptions = options.map((item) => { return item[keyName] });\r\n\r\n useEffect(() => {\r\n setSelectedAllOptions(totalOptions.length === selectedData.length);\r\n }, [selectedData, totalOptions]);\r\n\r\n return (\r\n \r\n {options.length ?\r\n
\r\n {allowAllOptions && !singleSelect && options.length > 1 ?\r\n
{ if (!selectedAllOptions) { onChange(totalOptions) } else { onChange([]) } }}>\r\n
{labelAllServices}
\r\n \r\n
: null\r\n }\r\n {options.map((item) => {\r\n\r\n let isSelected = selectedData.includes(item[keyName]);\r\n let isDisabled = false;\r\n let isNew = false;\r\n\r\n if (disabledData) isDisabled = disabledData.findIndex(i => i === item[keyName]) >= 0;\r\n\r\n if (newData) isNew = newData.findIndex(i => i === item[keyName]) >= 0;\r\n\r\n return
{\r\n if (singleSelect) {\r\n // Selección única\r\n onChange(isSelected ? [] : [item[keyName]]);\r\n } else {\r\n // Selección múltiple\r\n if (isSelected) {\r\n onChange(selectedData.filter(value => value !== item[keyName]));\r\n } else {\r\n !isDisabled && onChange([...selectedData, item[keyName]]);\r\n }\r\n }\r\n }}>\r\n
\r\n
\r\n
{language ? language[item[labelName]] : item[labelName]}
\r\n {isNew ?

{`[${language['genius_multipleselect_label_new_graphs']}]`}

: null}\r\n
\r\n {isSelected && }\r\n
\r\n
\r\n })}\r\n
: null\r\n }\r\n \r\n }>\r\n
\r\n
\r\n {label &&

{label}

}\r\n \r\n
\r\n {error ?

{error}

: null}\r\n
\r\n \r\n );\r\n};\r\nconst mapStateToProps = (state) => ({\r\n theme: state.theme.theme,\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n setTheme: (theme) => dispatch(themeActions.setTheme(theme)),\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(MultipleSelect)","import React, { useState, useEffect } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport { Animation, Drawer, Alert, Loader } from \"rsuite\";\r\n\r\nimport Input from \"./utilities/Input\";\r\n\r\nimport { SETData } from \"../../services/WebServices\";\r\nimport BackButton from \"./utilities/BackButton\";\r\nimport MultipleSelect from \"./utilities/MultipleSelect\";\r\n\r\nconst isValidateEmail = (email) => {\r\n return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email);\r\n};\r\n\r\nconst isValidUser = (user) => {\r\n if (user.name === null || user.name === \"\") {\r\n return false;\r\n }\r\n\r\n if (user.lastname === null || user.lastname === \"\") {\r\n return false;\r\n }\r\n\r\n if (!isValidateEmail(user.email)) {\r\n return false;\r\n }\r\n\r\n if (user.phone === null || user.phone === \"\") {\r\n return false;\r\n }\r\n\r\n if (user.address === null || user.address === \"\") {\r\n return false;\r\n }\r\n\r\n if (user.idService === null || user.idService === \"\") {\r\n return false;\r\n }\r\n\r\n if (user.ticketDescription === null || user.ticketDescription === \"\") {\r\n return false;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst showError = (user, setFocus, setError, setShowPersonalData, language) => {\r\n if (user.name === null || user.name === \"\") {\r\n setFocus(1);\r\n setError(language.alert_user_popup_name);\r\n setShowPersonalData(true);\r\n return;\r\n }\r\n\r\n if (user.lastname === null || user.lastname === \"\") {\r\n setFocus(2);\r\n setError(language.alert_user_popup_lastname);\r\n setShowPersonalData(true);\r\n return;\r\n }\r\n\r\n if (!isValidateEmail(user.email)) {\r\n setFocus(3);\r\n setError(language.alert_user_popup_email);\r\n setShowPersonalData(true);\r\n return;\r\n }\r\n\r\n if (user.phone === null || user.phone === \"\") {\r\n setFocus(4);\r\n setError(language.alert_user_popup_phone);\r\n setShowPersonalData(true);\r\n return;\r\n }\r\n\r\n if (user.address === null || user.address === \"\") {\r\n setFocus(5);\r\n setError(language.alert_user_popup_address);\r\n setShowPersonalData(true);\r\n return;\r\n }\r\n\r\n if (user.idService === null || user.idService === \"\") {\r\n setFocus(9);\r\n setError(language.alert_support_popup_ticket_service);\r\n return;\r\n }\r\n\r\n if (user.ticketDescription === null || user.ticketDescription === \"\") {\r\n setFocus(8);\r\n setError(language.alert_support_popup_ticket_description);\r\n return;\r\n }\r\n\r\n return setFocus(0);\r\n};\r\n\r\nconst Support = (props) => {\r\n\r\n const initTicket = {\r\n idUser: props.user.idUser,\r\n idService: \"\",\r\n idDocument: props.user.idDocument,\r\n name: props.user.name,\r\n lastname: props.user.lastname,\r\n email: props.user.email,\r\n phone: props.user.phone,\r\n address: props.user.address,\r\n ticketDescription: \"\",\r\n file: \"\",\r\n };\r\n\r\n const [user, setUser] = useState(initTicket);\r\n const [isEnable, setEnable] = useState(false);\r\n const [personalData, setShowPersonalData] = useState(false);\r\n const [file, setFile] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [focus, setFocus] = useState(0);\r\n const [error, setError] = useState(\"\");\r\n const [authData, setAuthData] = useState(false);\r\n\r\n let language = props.language;\r\n\r\n const { theme } = props;\r\n\r\n const handleDragOver = (e) => {\r\n e.preventDefault();\r\n };\r\n\r\n const handleDrop = (e) => {\r\n e.preventDefault();\r\n const files = e.dataTransfer.files;\r\n if (files.length) {\r\n setFile(files[0]);\r\n }\r\n };\r\n\r\n const handleSubmit = async e => {\r\n e.preventDefault()\r\n if (isEnable && authData) {\r\n setLoading(true)\r\n\r\n const selectedService = props.totalServices.find(service => service.idService === parseInt(user.idService))\r\n const serviceType = selectedService.type.name\r\n let fileData = {}\r\n let errorFlag = false \r\n\r\n if (file !== null) {\r\n fileData = {\r\n fileName: `pqrs-files/Support-${Date.now()}-${file.name}`,\r\n bucket: \"neu-public\",\r\n contentType: file.type,\r\n }\r\n\r\n SETData(`web/support/upload`, \"POST\", fileData).then(response => {\r\n if (response.body) {\r\n const responseBody = JSON.parse(response.body)\r\n const signedUrl = responseBody.url\r\n\r\n fetch(signedUrl, {\r\n method: \"PUT\",\r\n headers: {\r\n \"Content-Type\": fileData.contentType,\r\n },\r\n body: file,\r\n }).then(response => {\r\n if (!response.ok) {\r\n console.error(\"Error en la carga de la imagen\", response)\r\n Alert.error(props.language.alert_submit_form_popup_failed, 6000)\r\n errorFlag = true\r\n }\r\n })\r\n } else {\r\n Alert.error(props.language.alert_submit_form_popup_failed, 6000)\r\n console.error(error)\r\n setLoading(false)\r\n errorFlag = true\r\n }\r\n })\r\n }\r\n\r\n if(errorFlag) return\r\n\r\n const dataZoho = {\r\n company: selectedService.name,\r\n clientType: \"Industrial o comercial\",\r\n name: user.name,\r\n lastname: user.lastname,\r\n phone: user.phone,\r\n email: user.email,\r\n ticketDescription: user.ticketDescription,\r\n channel: \"Platforms\",\r\n presignedUrl: file ? `https://neu-public.s3.sa-east-1.amazonaws.com/${fileData.fileName}` : null,\r\n type: serviceType === \"generation\" ? \"erco\" : \"neu\",\r\n }\r\n\r\n SETData(\"web/support/create\", \"POST\", dataZoho).then(response => {\r\n if (!response) {\r\n Alert.error(props.language.alert_submit_form_popup_failed, 6000)\r\n } else {\r\n const responseBody = JSON.parse(response.body)\r\n \r\n if (responseBody.message === \"Ticket created\") {\r\n props.setShowSupport(false)\r\n Alert.success(props.language.alert_support_popup_success, 7000)\r\n }\r\n }\r\n setLoading(false)\r\n setFile(null)\r\n setUser({ ...user, ticketDescription: \"\" })\r\n })\r\n } else {\r\n showError(user, setFocus, setError, setShowPersonalData, language)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setEnable(isValidUser(user));\r\n }, [setEnable, user]);\r\n\r\n useEffect(() => {\r\n if (props.totalServices.length === 1) {\r\n setUser((prevUser) => ({ ...prevUser, idService: props.totalServices[0].idService }));\r\n } else {\r\n setUser((prevUser) => ({ ...prevUser, idService: \"\" }));\r\n }\r\n }, [props.totalServices]);\r\n\r\n useEffect(() => {\r\n if (focus !== 0) { showError(user, setFocus, setError, setShowPersonalData, language) }\r\n }, [user, language, focus]);\r\n\r\n const optionsData = [{ name: props.language.support_select_placeholder, idService: \"\" }, ...props.totalServices]\r\n\r\n return (\r\n props.setShowSupport(false)}\r\n >\r\n
\r\n
\r\n props.setShowSupport(false)}>\r\n

{props.language.support_main_title_drawer}

\r\n
\r\n
\r\n
\r\n {props.language.support_main_description_drawer}\r\n
\r\n
\r\n
\r\n
\r\n { setShowPersonalData(!personalData); }}\r\n >\r\n
\r\n \r\n
{props.language.support_title_section_personal_data}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {\r\n setUser({ ...user, name: target.value });\r\n }}\r\n error={focus === 1 ? error : \"\"}\r\n />\r\n
\r\n
\r\n {\r\n setUser({ ...user, lastname: target.value });\r\n }}\r\n error={focus === 2 ? error : \"\"}\r\n />\r\n
\r\n
\r\n {\r\n setUser({ ...user, email: target.value });\r\n }}\r\n error={focus === 3 ? error : \"\"}\r\n />\r\n
\r\n
\r\n {\r\n setUser({ ...user, phone: target.value });\r\n }}\r\n error={focus === 4 ? error : \"\"}\r\n />\r\n
\r\n
\r\n {\r\n setUser({ ...user, address: target.value });\r\n }}\r\n error={focus === 5 ? error : \"\"}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {console.log(data); setUser({ ...user, idService: data[0] })}} \r\n width={325}\r\n keyName='idService'\r\n labelName='name'\r\n label={'Servicio'}\r\n value={props.totalServices.length === 1 ? props.totalServices[0].name : optionsData.filter((option) => option.idService === user.idService)[0].name}\r\n />\r\n
\r\n
\r\n
\r\n setUser({ ...user, ticketDescription: target.value })}\r\n error={focus === 8 ? error : \"\"}\r\n placeholder={props.language.support_input_label_request_ticket}\r\n />\r\n
\r\n
{props.language.support_title_section_upload_file}
\r\n
\r\n {props.language.support_description_section_upload_file}\r\n
\r\n \r\n \r\n
\r\n

{props.language.support_drag_or_select_file}

\r\n {file ? (\r\n
\r\n

{file.name}

\r\n {\r\n setFile(null);\r\n }}>\r\n
\r\n ) : (\r\n

{props.language.support_upload_files}

\r\n )}\r\n
\r\n document.getElementById('pqrFile').click()}>\r\n

{props.language.support_select_file}

\r\n \r\n {\r\n const selectedFile = e.target.files[0];\r\n\r\n if (selectedFile) {\r\n setFile(selectedFile);\r\n e.target.value = null;\r\n }\r\n }} \r\n style={{ display: 'none' }} />\r\n \r\n
\r\n setAuthData(!authData)}\r\n >\r\n
{props.language.authorize_personal_data}

window.open(\"https://d95q7df0kkrx0.cloudfront.net/website-media-content/Generales/Documentos/POLITICA-DE-PRIVACIDAD-DE-DATOS-V2.pdf\")}>{props.language.policy_personal_data}

\r\n
\r\n \r\n {loading ? : props.language.support_button_label_send_form}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n user: state.users.user,\r\n language: state.shared.language,\r\n totalServices: state.services.totalServices,\r\n theme: state.theme.theme,\r\n});\r\n\r\nexport default connect(mapStateToProps)(Support);\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nimport CurrencyFormat from 'react-currency-format';\r\n\r\nconst WalletCard = ({size = 'medium', ...props}) => {\r\n\r\n return (\r\n
\r\n
\r\n

Tu balance

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

\r\n \r\n

\r\n

NEUgets

\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n language: state.shared.language,\r\n neugets: state.accounts.neugets\r\n});\r\n\r\nexport default connect(mapStateToProps)(WalletCard);","import React, { useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as accountsActions from '../../store/actions/Accounts';\r\n\r\nimport { Drawer, Whisper, Tooltip } from 'rsuite';\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faWhatsapp, faLinkedin, faFacebook } from '@fortawesome/free-brands-svg-icons';\r\nimport { faEnvelope } from '@fortawesome/pro-solid-svg-icons';\r\n\r\nimport filePDF from '../../files/TyC+PLAN+DE+REFERIDOS+.pdf';\r\n\r\nimport {\r\n LinkedinShareButton,\r\n WhatsappShareButton,\r\n EmailShareButton,\r\n FacebookShareButton\r\n} from \"react-share\";\r\n\r\nimport WalletCard from './WalletCard';\r\nimport BackButton from './utilities/BackButton';\r\n\r\nconst Neugets = (props) => {\r\n\r\n let codeReferred = props.codeReferred;\r\n let account = props.account;\r\n const getCodeReferredByAccountAsync = props.getCodeReferredByAccountAsync;\r\n\r\n useEffect(() => {\r\n if (account !== null)\r\n getCodeReferredByAccountAsync();\r\n }, [account, getCodeReferredByAccountAsync]);\r\n\r\n const codeMessage = props.language.neugets_text_share_code_message !== undefined && codeReferred ?\r\n props.language.neugets_text_share_code_message.replace(\"#code#\", codeReferred.codeReferred).split('\\\\n').join(' ') : null;\r\n\r\n return (\r\n props.setShowNeugets(false)}>\r\n
\r\n
\r\n
\r\n
\r\n props.setShowNeugets(false)}>\r\n

{props.language.neugets_drawer_main_title}

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

{props.language.neugets_drawer_text_neugets_description}

\r\n
\r\n

{props.language.neugets_drawer_text_use_neugets}

\r\n

{props.language.neugets_drawer_text_get_neugets}

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

{props.language.neugets_drawer_text_share_referral_code}

\r\n {codeReferred &&\r\n
\r\n
{codeReferred.codeReferral}
\r\n {props.language.neugets_tooltip_copy_code}}>\r\n navigator.clipboard.writeText(codeReferred.codeReferral)}>\r\n \r\n
}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n language: state.shared.language,\r\n codeReferred: state.accounts.codeReferred,\r\n account: state.accounts.account\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n getCodeReferredByAccountAsync: () => dispatch(accountsActions.getCodeReferredByAccountAsync())\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Neugets);","import * as alerts from \"../creators/Alerts\";\r\nimport * as notifications from \"./Notifications\";\r\n\r\nimport { GETData, SETData } from \"../../services/WebServices\";\r\n\r\nimport { Alert } from 'rsuite';\r\n\r\nexport const setAlerts = payload => {\r\n return {\r\n type: alerts.SET_ALERTS,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setAlertsLoading = payload => {\r\n return {\r\n type: alerts.SET_ALERTS_LOADING,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setAlertRegisters = payload => {\r\n return {\r\n type: alerts.SET_ALERT_REGISTERS,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setAlertRegistersPagination = payload => {\r\n return {\r\n type: alerts.SET_ALERT_REGISTERS_PAGINATION,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setShowDrawerAlerts = payload => {\r\n return {\r\n type: alerts.SET_SHOW_DRAWER_ALERTS,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setGraphsAlerts = payload => {\r\n return {\r\n type: alerts.SET_GRAPHS_ALERTS,\r\n payload\r\n }\r\n};\r\n\r\nexport const loadAlertsAsync = () => {\r\n return (dispatch, getState) => {\r\n\r\n dispatch(setAlertsLoading(true));\r\n\r\n const userId = getState().users.user.idUser;\r\n\r\n GETData(`alerts/${userId}?page_limit=20`, \"GET\")\r\n .then(response => {\r\n if (response !== null) {\r\n dispatch(setAlerts(response.data));\r\n } else {\r\n dispatch(setAlerts([]));\r\n }\r\n })\r\n .catch(response => console.error(response))\r\n .finally(() => dispatch(setAlertsLoading(false)));\r\n };\r\n\r\n};\r\n\r\n\r\nexport const createAlertAsync = (payload) => {\r\n return (dispatch, getState) => {\r\n\r\n const userId = getState().users.user.idUser;\r\n const language = getState().shared.language;\r\n let fromHour = payload?.intervalTime?.fromHour;\r\n let toHour = payload?.intervalTime?.toHour;\r\n fromHour = payload?.intervalTime?.fromPartOfDay === 'pm' ? String(parseInt(fromHour) + 12) : fromHour;\r\n toHour = payload?.intervalTime?.toPartOfDay === 'pm' ? String(parseInt(toHour) + 12) : toHour;\r\n\r\n const parameters = {\r\n id_graph: payload?.graphIds[0],\r\n id_alert_type: payload?.condition[0],\r\n value: payload?.value,\r\n id_user: userId,\r\n alert_name: payload?.name,\r\n id_frequency: payload?.intervalTime?.intervalIds[0],\r\n start_hour: fromHour + \":\" + payload?.intervalTime?.fromMinutes + \":00\",\r\n end_hour: toHour + \":\" + payload?.intervalTime?.toMinutes + \":00\",\r\n active_week_days: payload?.intervalTime?.dayIds,\r\n id_channels: payload?.channelIds,\r\n id_services: payload?.serviceIds,\r\n timing_plus: payload?.intervalTime?.timingPlus,\r\n }\r\n\r\n SETData(`alerts`, \"POST\", parameters)\r\n .then((response) => {\r\n if (response !== null) {\r\n Alert.success(language.alerts_messager_alert_create_success, 8000);\r\n } else\r\n Alert.error(language.alerts_messager_alert_create_error, 8000);\r\n })\r\n .catch(response => console.error(response))\r\n .finally(() => dispatch(loadAlertsAsync()));\r\n\r\n }\r\n}\r\n\r\n\r\nexport const editAlertAsync = (payload) => {\r\n return (dispatch, getState) => {\r\n\r\n const language = getState().shared.language;\r\n let fromHour = payload?.intervalTime?.fromHour;\r\n let toHour = payload?.intervalTime?.toHour;\r\n fromHour = payload?.intervalTime?.fromPartOfDay === 'pm' ? String(parseInt(fromHour) + 12) : fromHour;\r\n toHour = payload?.intervalTime?.toPartOfDay === 'pm' ? String(parseInt(toHour) + 12) : toHour;\r\n\r\n const parameters = {\r\n id_graph: payload?.graphIds[0],\r\n id_alert_type: payload?.condition[0],\r\n value: payload?.value,\r\n alert_name: payload?.name,\r\n id_frequency: payload?.intervalTime?.intervalIds[0],\r\n start_hour: fromHour + \":\" + payload?.intervalTime?.fromMinutes + \":00\",\r\n end_hour: toHour + \":\" + payload?.intervalTime?.toMinutes + \":00\",\r\n active_week_days: payload?.intervalTime?.dayIds,\r\n id_channels: payload?.channelIds,\r\n id_services: payload?.serviceIds\r\n }\r\n\r\n SETData(`alerts/${payload?.idAlert}`, \"PATCH\", parameters)\r\n .then((response) => {\r\n if (response !== null) {\r\n Alert.success(language.alerts_messager_alert_edit_success, 6000);\r\n } else\r\n Alert.error(language.alerts_messager_alert_edit_error, 8000);\r\n })\r\n .catch(response => console.error(response))\r\n .finally(() => dispatch(loadAlertsAsync()));\r\n\r\n }\r\n}\r\n\r\nexport const deleteAlertAsync = (id) => {\r\n return (dispatch, getState) => {\r\n const language = getState().shared.language;\r\n GETData(`alerts/${id}`, \"DELETE\")\r\n .then((_response) => {\r\n Alert.success(language.alerts_messager_alert_delete_success, 6000);\r\n })\r\n .catch(response => console.error(response))\r\n .finally(() => dispatch(loadAlertsAsync()));;\r\n };\r\n\r\n};\r\n\r\nexport const loadAlertRegistersAsync = () => {\r\n return (dispatch, getState) => {\r\n\r\n dispatch(notifications.setNotificationsLoading(true));\r\n\r\n const alerts = getState().alerts.alertRegisters;\r\n const page = getState().alerts.alertRegistersPagination || 1;\r\n\r\n const userId = getState().users.user.idUser;\r\n\r\n GETData(`notifications/${userId}?page=${page}&page_limit=10&all_registers=${false}`, \"GET\")\r\n .then(response => {\r\n if (response !== null) {\r\n dispatch(setAlertRegistersPagination(response.pagination_info.next_page));\r\n dispatch(setAlertRegisters([...alerts, ...response.data]));\r\n }\r\n })\r\n .catch(response => console.error(response))\r\n .finally(() => dispatch(notifications.setNotificationsLoading(false)));\r\n };\r\n\r\n};\r\n\r\nexport const loadGraphOptionsAsync = () => {\r\n return (dispatch, getState) => {\r\n\r\n const language = getState().shared.language;\r\n\r\n const groups = [\"CONSUMPTION\",\"GENERATION\"]\r\n\r\n const metadata = {\r\n groups\r\n };\r\n\r\n SETData(`energy/graphs/group/${language.language_locale}`, \"POST\", metadata)\r\n .then((response) => {\r\n if (response !== null) {\r\n /* To translate the key 'group' for the search input in GraphTypePicker ⬇️ */\r\n const translatedGraphs = response.graphsGroups.map((graph) => {\r\n const translationKey = `energy_graph_group_${graph.group.toLowerCase()}`\r\n const translatedGroup = language[translationKey]\r\n\r\n return {\r\n ...graph,\r\n translatedGroup: translatedGroup,\r\n }\r\n })\r\n const graphResponse = response\r\n graphResponse[\"graphsGroups\"] = translatedGraphs\r\n dispatch(setGraphsAlerts(graphResponse))\r\n }\r\n })\r\n .catch((response) => console.error(response))\r\n\r\n }\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as sharedActions from '../../store/actions/Shared';\r\nimport * as notificationsActions from '../../store/actions/Notifications';\r\n\r\nimport { Popover } from \"@idui/react-popover\";\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nconst PopoverNotifications = (props) => { \r\n\r\n let notification = props.notification;\r\n let theme = props.theme\r\n\r\n const [focus, setFocus] = useState(false); \r\n const [show, setShow] = useState(false); \r\n\r\n const handlerClose = (state) => {\r\n setShow(state);\r\n props.setShowBlackScreenDrawer(state);\r\n setFocus(state); \r\n show && track('Notification opened', {Notification_ID: notification?.category})\r\n }\r\n\r\n return (\r\n {handlerClose(state)}}\r\n withArrow={false} \r\n content={\r\n
\r\n
{\r\n handlerClose(false);\r\n props.updateNotificationAsync({\r\n id: notification.id,\r\n read: !notification.read\r\n })\r\n }}>\r\n
\r\n \r\n
\r\n

{notification.read ? props.language.notifications_notification_set_unread : props.language.notifications_notification_set_read}

\r\n
\r\n
{\r\n handlerClose(false);\r\n props.setVisualization(false);\r\n props.deleteNotificationAsync(notification.id)\r\n }}>\r\n
\r\n \r\n
\r\n

{props.language.notifications_notification_delete}

\r\n
\r\n
\r\n }>\r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => ({ \r\n language: state.shared.language,\r\n notification: ownProps.notification,\r\n setVisualization: ownProps.setVisualization,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({ \r\n setShowBlackScreenDrawer: (payload) => dispatch(sharedActions.setShowBlackScreenDrawer(payload)),\r\n deleteNotificationAsync: (payload) => dispatch(notificationsActions.deleteNotificationAsync(payload)),\r\n updateNotificationAsync: (payload) => dispatch(notificationsActions.updateNotificationAsync(payload))\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(PopoverNotifications);","import React, { useState, useRef } from \"react\";\r\n\r\nimport { replaceTextValues } from \"../../services/NotificationsHandler\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { fal } from '@fortawesome/pro-light-svg-icons';\r\n\r\nimport { slideOutRight } from 'react-animations';\r\n\r\nimport Radium, { StyleRoot } from 'radium';\r\n\r\nimport PopoverNotifications from \"./PopoverNotifications\";\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nconst styles = {\r\n slideOutRight: {\r\n animation: 'x 0.25s',\r\n animationName: Radium.keyframes(slideOutRight, 'slideOutRight')\r\n }\r\n}\r\n\r\nconst NotificationBox = (props) => {\r\n\r\n const { id_register, title, body, values, icon, color, timestamp, read, deeplink } = props.notification;\r\n const { theme } = props;\r\n\r\n const [isShown, setVisualization] = useState(true);\r\n const [category, setCategory] = useState('');\r\n \r\n const hasHovered = useRef(false);\r\n\r\n const colorThemeMap = {\r\n \"#cefc34\": { dark: \"#9ecc14\", light: \"#7da60c\" },\r\n \"#ffaa00\": { dark: \"#f97316\", light: \"#ea580c\" },\r\n \"#00b7d3\": { dark: \"#00b7d3\", light: \"#0396b7\" },\r\n };\r\n\r\n const getThemeColor = (color, theme) => {\r\n return colorThemeMap[color]?.[theme] || color;\r\n };\r\n\r\n const handleHover = () => {\r\n if (!hasHovered.current) { \r\n hasHovered.current = true; \r\n\r\n switch (icon) {\r\n case 'faCircleInfo':\r\n setCategory('information')\r\n break\r\n case 'faTriangleExclamation':\r\n setCategory('warning')\r\n break\r\n case 'faSquareExclamation':\r\n setCategory('alert')\r\n break\r\n case 'faShieldCheck':\r\n setCategory('success')\r\n break\r\n default:\r\n break\r\n }\r\n\r\n track('Notification hover', { Notification_ID: category });\r\n }\r\n };\r\n\r\n const handleLeave = () => { \r\n hasHovered.current = false;\r\n };\r\n\r\n return (\r\n \r\n\r\n );\r\n};\r\n\r\nexport default NotificationBox;\r\n","import React, {Fragment} from \"react\";\r\n\r\nexport const replaceTextValues = (text, values) => {\r\n \r\n for (let key in values) {\r\n let value = values[key.toLowerCase()];\r\n text = text.replace(\"{{\" + key.toLowerCase() + \"}}\", value);\r\n }\r\n text = text.split('\\n');\r\n\r\n return {text.map(value => {value}
)}
;\r\n\r\n}\r\n\r\n","import React from 'react';\r\n\r\nconst CheckPicker = ({options, labelName, selectedData, keyName, onChange, plusSelected = false, theme, backgroundColor = 'surface-bg-surface', border = false, padding = 'p-3'}) => {\r\n return
\r\n {options?.length && options.map((item, index) => { \r\n let isSelected = selectedData.includes(item[keyName]); \r\n return
{ \r\n if(isSelected){\r\n onChange(selectedData.filter(value => value !== item[keyName])); \r\n }else{ \r\n if (plusSelected || (!plusSelected && !('plus' in item || 'id_device' in item))) onChange([...selectedData, item[keyName]]); \r\n }\r\n }}\r\n >\r\n
\r\n {'plus' in item || 'id_device' in item ? \r\n
\r\n {item[labelName]}\r\n
\r\n

Plus

\r\n
\r\n
:\r\n
{item[labelName]}
} \r\n \r\n
\r\n
\r\n })} \r\n
\r\n \r\n};\r\n\r\nexport default CheckPicker;","import React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { Drawer } from 'rsuite';\r\n\r\nimport _ from 'lodash';\r\n\r\nimport CheckPicker from '../shared/utilities/CheckPicker';\r\nimport BackButton from '../shared/utilities/BackButton';\r\n\r\nconst days = language => [\r\n {\r\n id_day: 1,\r\n label: language.alerts_select_days_monday\r\n },\r\n {\r\n id_day: 2,\r\n label: language.alerts_select_days_tuesday\r\n },\r\n {\r\n id_day: 3,\r\n label: language.alerts_select_days_wednesday\r\n },\r\n {\r\n id_day: 4,\r\n label: language.alerts_select_days_thursday\r\n },\r\n {\r\n id_day: 5,\r\n label: language.alerts_select_days_friday\r\n },\r\n {\r\n id_day: 6,\r\n label: language.alerts_select_days_saturday\r\n },\r\n {\r\n id_day: 7,\r\n label: language.alerts_select_days_sunday\r\n },\r\n];\r\n\r\nconst checkTimePlus = language => [\r\n {\r\n minutes: 1,\r\n label: language.alerts_select_check_one_minute\r\n },\r\n {\r\n minutes: 5,\r\n label: language.alerts_select_check_five_minute\r\n },\r\n {\r\n minutes: 10,\r\n label: language.alerts_select_check_ten_minute\r\n },\r\n {\r\n minutes: 15,\r\n label: language.alerts_select_check_fifteen_minute\r\n },\r\n];\r\n\r\nconst intervals = language => [\r\n {\r\n id_interval: 4,\r\n label: language.alerts_select_interval_secondBySecond,\r\n plus: true\r\n },\r\n {\r\n id_interval: 0,\r\n label: language.alerts_select_interval_hourly\r\n },\r\n {\r\n id_interval: 1,\r\n label: language.alerts_select_interval_daily\r\n },\r\n {\r\n id_interval: 2,\r\n label: language.alerts_select_interval_weekly\r\n },\r\n {\r\n id_interval: 3,\r\n label: language.alerts_select_interval_monthly\r\n }\r\n];\r\n\r\nconst IntervalTime = (props) => {\r\n\r\n const initAlertTime = {\r\n dayIds: [],\r\n fromHour: \"00\",\r\n fromMinutes: \"00\",\r\n fromPartOfDay: 'am',\r\n toHour: \"11\",\r\n toMinutes: \"59\",\r\n toPartOfDay: 'pm',\r\n intervalIds: [],\r\n dates: [],\r\n timingPlus: -1,\r\n }\r\n\r\n const [alertTime, setAlertTime] = useState(initAlertTime);\r\n const [showTimePlus, setShowTimePlus] = useState(false);\r\n\r\n const theme = props.theme\r\n\r\n useEffect(() => {\r\n if (props.intervalTime) setAlertTime(props.intervalTime);\r\n }, [props.intervalTime])\r\n\r\n useEffect(() => {\r\n if (alertTime.intervalIds.length) {\r\n if (alertTime.intervalIds[0] === 4) {\r\n setShowTimePlus(true)\r\n }\r\n else {\r\n setShowTimePlus(false)\r\n };\r\n }\r\n }, [alertTime])\r\n\r\n const format = (value, hour) => {\r\n value = parseInt(value, 10);\r\n value = value < 0 && hour ? 0 : value > 12 && hour ? 12 : value;\r\n value = value < 0 && !hour ? 0 : value > 59 && !hour ? 59 : value;\r\n value = value < 10 ? '0' + String(value) : String(value);\r\n return value;\r\n }\r\n\r\n const RenderDays = ({ options, labelName, selectedData, keyName, onChange }) => {\r\n return (\r\n
\r\n {options.length && options.map((item, index) => {\r\n let isSelected = selectedData.includes(item[keyName]);\r\n return \r\n })}\r\n
\r\n )\r\n }\r\n\r\n const RenderTiming = ({ options, labelName, selectedData, keyName, onChange }) => {\r\n return (\r\n
\r\n {options.length && options.map((item, index) => {\r\n let isSelected = selectedData === item[keyName];\r\n return \r\n })}\r\n
\r\n )\r\n }\r\n\r\n return (\r\n { props.setShowPeriodAlert(false) }}>\r\n
\r\n
\r\n
\r\n props.setShowPeriodAlert(false)}>\r\n
\r\n

{props.language.alerts_title_interval_time}

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

{props.language.alerts_interval_time_body_frequency}

\r\n
\r\n { setAlertTime({ ...alertTime, intervalIds: [_.last(value)] }) }}\r\n plusSelected={props.plusSelected}\r\n theme={theme}\r\n backgroundColor='surface-bg-on-surface-alpha'\r\n border={true}\r\n />\r\n
\r\n {showTimePlus ?\r\n
\r\n

{props.language.alerts_interval_time_title_plus_check}

\r\n { setAlertTime({ ...alertTime, timingPlus: value }) }}\r\n />\r\n
: null}\r\n
\r\n

{props.language.alerts_interval_time_title_days}

\r\n { setAlertTime({ ...alertTime, dayIds: value }) }}\r\n />\r\n
\r\n

{props.language.alerts_interval_time_title_range}

\r\n

{props.language.alerts_interval_time_title_body}

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

{props.language.alerts_title_initial_time}

\r\n
\r\n \r\n { setAlertTime({ ...alertTime, fromHour: format(target.value, true) }) }} />\r\n

:

\r\n { setAlertTime({ ...alertTime, fromMinutes: format(target.value, false) }) }} />\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{props.language.alerts_title_final_time}

\r\n
\r\n \r\n { setAlertTime({ ...alertTime, toHour: format(target.value, true) }) }} />\r\n

:

\r\n { setAlertTime({ ...alertTime, toMinutes: format(target.value, false) }) }} />\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { props.onChange(alertTime); props.setShowPeriodAlert(false) }}>\r\n {props.language.alerts_save_interval}\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n language: state.shared.language,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(IntervalTime);","import React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { Drawer, Animation } from 'rsuite';\r\n\r\nimport IntervalTime from './IntervalTime';\r\nimport Input from '../shared/utilities/Input';\r\nimport CheckPicker from '../shared/utilities/CheckPicker';\r\n\r\nimport * as alertsActions from '../../store/actions/Alerts';\r\nimport * as sharedActions from '../../store/actions/Shared';\r\n\r\nimport _ from 'lodash';\r\nimport { track } from \"@amplitude/analytics-browser\";\r\nimport BackButton from '../shared/utilities/BackButton';\r\n\r\nconst conditions = language => [\r\n {\r\n id_condition: 0,\r\n label: language.alerts_condition_greater_than\r\n },\r\n {\r\n id_condition: 2,\r\n label: language.alerts_condition_same_as\r\n },\r\n {\r\n id_condition: 1,\r\n label: language.alerts_condition_less_than\r\n },\r\n];\r\n\r\nconst channels = language => [\r\n {\r\n id_channel: 1,\r\n label: language.alerts_channel_email,\r\n eventProperty: 'Mail_Alert'\r\n },\r\n {\r\n id_channel: 3,\r\n label: language.alerts_channel_text_message,\r\n eventProperty: 'Msm_Alert'\r\n },\r\n {\r\n id_channel: 2,\r\n label: language.alerts_channel_notification,\r\n eventProperty: 'Notification_Alert'\r\n },\r\n];\r\n\r\nconst days = language => [\r\n {\r\n id_day: 1,\r\n label: language.alerts_select_days_monday,\r\n eventProperty: 'Monday_Interval'\r\n },\r\n {\r\n id_day: 2,\r\n label: language.alerts_select_days_tuesday,\r\n eventProperty: 'Tuesday_Interval'\r\n },\r\n {\r\n id_day: 3,\r\n label: language.alerts_select_days_wednesday,\r\n eventProperty: 'Wednesday_Interval'\r\n },\r\n {\r\n id_day: 4,\r\n label: language.alerts_select_days_thursday,\r\n eventProperty: 'Thursday_Interval'\r\n },\r\n {\r\n id_day: 5,\r\n label: language.alerts_select_days_friday,\r\n eventProperty: 'Friday_Interval'\r\n },\r\n {\r\n id_day: 6,\r\n label: language.alerts_select_days_saturday,\r\n eventProperty: 'Saturday_Interval'\r\n },\r\n {\r\n id_day: 7,\r\n label: language.alerts_select_days_sunday,\r\n eventProperty: 'Sunday_Interval'\r\n },\r\n];\r\n\r\nconst intervals = language => [\r\n {\r\n id_interval: 4,\r\n label: language.alerts_select_interval_secondBySecond,\r\n eventProperty: 'SecondBySecond_Interval'\r\n },\r\n {\r\n id_interval: 0,\r\n label: language.alerts_select_interval_hourly,\r\n eventProperty: 'Hourly_Interval'\r\n },\r\n {\r\n id_interval: 1,\r\n label: language.alerts_select_interval_daily,\r\n eventProperty: 'Daily_Interval'\r\n },\r\n {\r\n id_interval: 2,\r\n label: language.alerts_select_interval_weekly,\r\n eventProperty: 'Weekly_Interval'\r\n },\r\n {\r\n id_interval: 3,\r\n label: language.alerts_select_interval_monthly,\r\n eventProperty: 'Monthly_Interval'\r\n }\r\n];\r\n\r\nconst combinedArray = (array1, array2) => {\r\n const newArray = array1.map(item1 => {\r\n const match = array2.find(item2 => \r\n item2.id_service === item1?.idService && item2?.id_infrastructure === 2\r\n );\r\n if (match) {\r\n return {\r\n ...item1,\r\n id_device: match?.id_device\r\n };\r\n }\r\n return item1;\r\n });\r\n return newArray;\r\n};\r\n\r\nconst Alerts = (props) => {\r\n\r\n const initAlert = {\r\n idAlert: null,\r\n name: null,\r\n serviceIds: [],\r\n graphIds: [],\r\n condition: [],\r\n value: null,\r\n channelIds: [],\r\n intervalTime: null,\r\n }\r\n\r\n const [alert, setAlert] = useState(initAlert);\r\n const [activeService, setActiveService] = useState(false);\r\n const [activeVariable, setActiveVariable] = useState(false);\r\n const [activeRule, setActiveRule] = useState(false);\r\n const [activeValue, setActiveValue] = useState(false);\r\n const [activeChannel, setActiveChannel] = useState(false);\r\n const [showAlertPeriod, setShowPeriodAlert] = useState(false);\r\n const [alertProperty, setAlertProperty] = useState({ Variable_ID: '', Alert_Type: '', Project_Quantity: 0, Interval_ID: '', Interval_Day: '' })\r\n const [searchTerm, setSearchTerm] = useState('');\r\n\r\n let showNewAlert = props.showNewAlert;\r\n let newAlert = props.newAlert;\r\n let graphs = props.graphs;\r\n let language = props.language;\r\n let theme = props.theme;\r\n\r\n const setControlledOnboarding = props.setControlledOnboarding;\r\n\r\n useEffect(() => {\r\n if (showNewAlert && newAlert) {\r\n setControlledOnboarding({ key: 'new_alert', value: true })\r\n } else {\r\n setControlledOnboarding({ key: 'new_alert', value: false })\r\n }\r\n }, [showNewAlert, setControlledOnboarding, newAlert])\r\n\r\n useEffect(() => {\r\n if (props.alertSelected) {\r\n\r\n const fromHour = parseInt(props.alertSelected?.start_hour?.split(':')[0]);\r\n const fromHourFormated = fromHour > 12 ? fromHour - 12 : fromHour;\r\n const toHour = parseInt(props.alertSelected?.end_hour?.split(':')[0]);\r\n const toHourFormated = toHour > 12 ? toHour - 12 : toHour;\r\n\r\n const alertTime = {\r\n dayIds: props.alertSelected?.active_week_days,\r\n fromHour: fromHourFormated < 10 ? '0' + String(fromHourFormated) : String(fromHourFormated),\r\n fromMinutes: props.alertSelected?.start_hour?.split(':')[1],\r\n fromPartOfDay: fromHour > 12 ? 'pm' : 'am',\r\n toHour: toHourFormated < 10 ? '0' + String(toHourFormated) : String(toHourFormated),\r\n toMinutes: props.alertSelected?.end_hour?.split(':')[1],\r\n toPartOfDay: toHour > 12 ? 'pm' : 'am',\r\n intervalIds: [props.alertSelected?.id_frequency],\r\n dates: []\r\n }\r\n\r\n setAlert({\r\n ...alert, idAlert: props.alertSelected?.id_alert,\r\n name: props.alertSelected?.alert_name,\r\n serviceIds: props.alertSelected?.services?.map(item => item?.id),\r\n graphIds: [props.alertSelected?.id_graph],\r\n condition: [props.alertSelected?.id_alert_type],\r\n value: props.alertSelected?.value,\r\n channelIds: props.alertSelected?.channels.map(item => item?.id),\r\n intervalTime: alertTime\r\n })\r\n }\r\n // eslint-disable-next-line\r\n }, [props.alertSelected]);\r\n\r\n\r\n const formatLabel = (array1, array2, keyName, labelName) => {\r\n\r\n let array3 = array1.map(x => array2.filter(y => y[keyName] === x))\r\n .flat()\r\n\r\n return array3.map((s, index) => {\r\n if (index === array3.length - 1) {\r\n return `${s[labelName]}. `;\r\n } else {\r\n return `${s[labelName]}, `;\r\n }\r\n\r\n }).join(\"\");\r\n }\r\n\r\n const formatAmplitudeEvent = (array1, array2, keyName, labelName) => {\r\n\r\n let array3 = array1.map(x => array2.filter(y => y[keyName] === x))\r\n .flat()\r\n\r\n return array3.map((s, index) => {\r\n return s[labelName]\r\n });\r\n }\r\n\r\n const validateSecondBySecond = () => {\r\n const servicesPlus = combinedArray(props.totalServices, props.devices)?.filter(item => 'id_device' in item);\r\n const servicesSelectedPlus = servicesPlus?.filter(item => alert?.serviceIds?.includes(item?.idService));\r\n const idsGraphsPlus = [29,30,7,8];\r\n return servicesSelectedPlus.length && idsGraphsPlus?.filter(item => alert?.graphIds?.includes(item))?.length\r\n }\r\n\r\n const validatePlus = graphs => {\r\n const servicesPlus = combinedArray(props.totalServices, props.devices)?.filter(item => 'id_device' in item);\r\n const servicesSelectedPlus = servicesPlus?.filter(item => alert?.serviceIds?.includes(item?.idService))\r\n const idsGraphsPlus = [29,30,7,8];\r\n if (servicesSelectedPlus.length){\r\n let plusGraphs = graphs?.filter(item => idsGraphsPlus?.includes(item?.id_graph));\r\n plusGraphs = plusGraphs?.map(item => { return {...item, plus: true}});\r\n const energyGraphs = graphs?.filter(item => item?.id_graph <= 8);\r\n return [...plusGraphs, ...energyGraphs]\r\n }\r\n else{\r\n return graphs\r\n }\r\n }\r\n\r\n const translatedGraphs = props.graphs && props.graphs.options.map((_graph) => {\r\n const labelTranslation = props.language[`energy_graph_label_${_graph.value.toLowerCase()}`]\r\n\r\n return {\r\n ..._graph,\r\n labelTranslation: labelTranslation,\r\n }\r\n })\r\n\r\n const formatGraphLabel = () => {\r\n if (!translatedGraphs) return\r\n\r\n const graphSelected = translatedGraphs.filter((graph) => graph.id_graph === alert.graphIds[0])\r\n return graphSelected[0]?.labelTranslation\r\n }\r\n\r\n useEffect(() => {\r\n if (alert.serviceIds.length) { setAlertProperty(prevState => ({ ...prevState, Project_Quantity: alert.serviceIds.length })) }\r\n if (alert.graphIds.length) { setAlertProperty(prevState => ({ ...prevState, Variable_ID: graphs.options.filter(g => g.id_graph === alert.graphIds[0])[0]?.value })) }\r\n if (alert.channelIds.length) { setAlertProperty(prevState => ({ ...prevState, Alert_Type: formatAmplitudeEvent(alert.channelIds, channels(language), 'id_channel', 'eventProperty') })) }\r\n if (alert.intervalTime?.intervalIds.length) { setAlertProperty(prevState => ({ ...prevState, Interval_ID: formatAmplitudeEvent(alert.intervalTime.intervalIds, intervals(language), 'id_interval', 'eventProperty') })) }\r\n if (alert.intervalTime?.dayIds.length) { setAlertProperty(prevState => ({ ...prevState, Interval_Day: formatAmplitudeEvent(alert.intervalTime.dayIds, days(language), 'id_day', 'eventProperty') })) }\r\n }, [alert, setAlertProperty, graphs, language])\r\n\r\n\r\n const handleClose = () => {\r\n props.setShowNewAlert(false)\r\n props.setAlertSelected(null)\r\n props.setEditAlert(false)\r\n setAlert(initAlert)\r\n }\r\n\r\n const filteredServices = combinedArray(\r\n props.totalServices.filter(service =>\r\n service.name.toLowerCase().includes(searchTerm.toLowerCase())\r\n ),\r\n props.devices\r\n );\r\n\r\n const groupedServices = _.groupBy(filteredServices, (service) => service.account?.idAccount || 'Sin cuenta');\r\n\r\n const toggleSelectAllServicesByAccount = (services) => {\r\n const accountServiceIds = services.map(service => service.idService);\r\n const areAllSelected = accountServiceIds.every(id => alert.serviceIds.includes(id));\r\n\r\n setAlert({\r\n ...alert,\r\n serviceIds: areAllSelected\r\n ? alert.serviceIds.filter(id => !accountServiceIds.includes(id)) \r\n : [...alert.serviceIds, ...accountServiceIds], \r\n });\r\n };\r\n\r\n return (\r\n handleClose()}>\r\n
\r\n
\r\n
\r\n handleClose()}>\r\n
\r\n

{props.alertSelected && props.editAlert ? props.language.alerts_label_title_edit_alert : props.language.alerts_label_title_new_alert}

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

{props.language.alerts_label_body_new_alert}

\r\n
\r\n
\r\n {\r\n setAlert({ ...alert, name: target.value })\r\n }}\r\n />\r\n
\r\n
\r\n
setActiveService(!activeService)}>\r\n
\r\n
\r\n \r\n
\r\n

{alert.serviceIds.length ? language.alerts_new_alert_service_item : language.alerts_new_alert_service_label}

\r\n

{alert.serviceIds.length ? formatLabel(alert.serviceIds, props.totalServices, 'idService', 'name') : language.alerts_new_alert_service_example}

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n e.stopPropagation()}\r\n className={`border-0 w-100 surface-bg-surface label-medium-medium content-default-secondary ${theme}`}\r\n placeholder={props.language.alerts_new_alert_search_proyects}\r\n value={searchTerm}\r\n onChange={({ target }) => setSearchTerm(target.value)}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {Object.entries(groupedServices).map(([accountId, services]) => (\r\n
\r\n {/* Encabezado de la cuenta */}\r\n
\r\n

\r\n {services[0]?.account?.name || language.alerts_new_alert_no_account}\r\n

\r\n toggleSelectAllServicesByAccount(services)}\r\n >\r\n {services.every(service => alert.serviceIds.includes(service.idService))\r\n ? language.services_picker_deselect_all\r\n : language.services_picker_select_all}\r\n

\r\n
\r\n {/* Listado de servicios */}\r\n setAlert({ ...alert, serviceIds: value })}\r\n theme={theme}\r\n padding='py-3 ps-3 pe-1'\r\n plusSelected={true}\r\n />\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n
setActiveVariable(!activeVariable)}>\r\n
\r\n
\r\n \r\n
\r\n

{alert.graphIds.length ? language.alerts_new_alert_variable_item : language.alerts_new_alert_variable_label}

\r\n

{alert.graphIds.length ? formatGraphLabel() : language.alerts_new_alert_variable_example}

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n { setAlert({ ...alert, graphIds: [_.last(value)] }) }}\r\n theme={theme}\r\n plusSelected={true}\r\n />\r\n
\r\n
\r\n
\r\n
setActiveRule(!activeRule)}>\r\n
\r\n
\r\n \r\n
\r\n

{alert.condition.length ? language.alerts_new_alert_rule_item : language.alerts_new_alert_rule_label}

\r\n

{alert.condition.length ? formatLabel(alert.condition, conditions(props.language), 'id_condition', 'label') : language.alerts_new_alert_rule_example}

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n { setAlert({ ...alert, condition: [_.last(value)] }) }}\r\n theme={theme}\r\n />\r\n
\r\n
\r\n
\r\n
setActiveValue(!activeValue)}>\r\n
\r\n
\r\n \r\n
\r\n

{alert.value ? language.alerts_new_alert_value_item : language.alerts_new_alert_value_label}

\r\n

{alert.value ? `${alert.value} ${alert?.graphIds?.length && props.graphs?.length ? props.graphs.options.filter(x => x?.id_graph === alert?.graphIds[0])[0]?.unit : \"\"}` : language.alerts_new_alert_value_example}

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {\r\n setAlert({ ...alert, value: target.value })\r\n }}\r\n placeholder='000'\r\n />\r\n
\r\n
\r\n
\r\n
setActiveChannel(!activeChannel)}>\r\n
\r\n
\r\n \r\n
\r\n

{alert.channelIds.length ? language.new_alert_type_title : language.new_alert_select_type}

\r\n

{alert.channelIds.length ? formatLabel(alert.channelIds, channels(props.language), 'id_channel', 'label') : language.alerts_new_alert_channel_example}

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n { setAlert({ ...alert, channelIds: value }) }}\r\n theme={theme}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
setShowPeriodAlert(true)}>\r\n
\r\n
\r\n

{alert.intervalTime?.intervalIds.length ? `Intervalo ${formatLabel(alert.intervalTime.intervalIds, intervals(props.language), 'id_interval', 'label')}` : language.alerts_title_interval_time}

\r\n

{alert.intervalTime?.dayIds.length ? `${formatLabel(alert.intervalTime.dayIds, days(props.language), 'id_day', 'label')} ${alert.intervalTime?.fromHour ? alert.intervalTime.fromHour : ''}:${alert.intervalTime?.fromMinutes ? alert.intervalTime.fromMinutes : ''}${alert.intervalTime?.fromPartOfDay ? alert.intervalTime.fromPartOfDay : ''}-${alert.intervalTime?.toHour ? alert.intervalTime.toHour : ''}:${alert.intervalTime?.toMinutes ? alert.intervalTime.toMinutes : ''}${alert.intervalTime?.toPartOfDay ? alert.intervalTime.toPartOfDay : ''}` : language.new_alert_schedule_description}

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n setAlert({ ...alert, intervalTime: value })}\r\n showAlertPeriod={showAlertPeriod}\r\n setShowPeriodAlert={setShowPeriodAlert}\r\n intervalTime={alert?.intervalTime}\r\n plusSelected={validateSecondBySecond()}\r\n />\r\n
\r\n {\r\n if (props.editAlert) {\r\n await props.editAlertAsync(alert);\r\n }\r\n else {\r\n await props.createAlertAsync(alert);\r\n track('Alert created', { ...alertProperty, Project_Type: props.totalServices.filter(t => t.idService === alert.serviceIds[0])[0]?.type?.name })\r\n }\r\n props.setShowNewAlert(false);\r\n props.setAlertSelected(null);\r\n props.setEditAlert(false);\r\n setAlert(initAlert);\r\n }}>\r\n {props.language.alerts_button_save}\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n language: state.shared.language,\r\n totalServices: state.services.totalServices,\r\n graphs: state.alerts.graphs,\r\n newAlert: state.shared.startOnboarding.new_alert,\r\n devices: state.plus.devices,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n createAlertAsync: (payload) => dispatch(alertsActions.createAlertAsync(payload)),\r\n editAlertAsync: (payload) => dispatch(alertsActions.editAlertAsync(payload)),\r\n setControlledOnboarding: (payload) => dispatch(sharedActions.setControlledOnboarding(payload))\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Alerts);","import React, { useEffect, useState, Fragment } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport * as notificationsActions from \"../../store/actions/Notifications\";\r\nimport * as alertsActions from \"../../store/actions/Alerts\";\r\n\r\nimport emptyData from '../../imgs/empty-data-notifications.svg';\r\nimport emptyDataLight from '../../imgs/empty-data-notifications-light.svg';\r\n\r\nimport emptyDataAlerts from '../../imgs/empty_state_alerts.svg';\r\n\r\nimport { Drawer } from \"rsuite\";\r\n\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nimport NotificationBox from \"./NotificationBox\";\r\n\r\nimport NewAlert from '../alerts/NewAlert';\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\nimport BackButton from \"../shared/utilities/BackButton\";\r\n\r\nconst NotificationsLoading = ({theme}) => {\r\n\r\n const height = 85;\r\n\r\n return (\r\n
\r\n \r\n {Array.from({ length: 10 }, (_x, i) => i).map((i) => )}\r\n \r\n
\r\n )\r\n};\r\n\r\nconst Notifications = (props) => {\r\n const currentUrl = new URL(window.location.href);\r\n const isDashboard = currentUrl.pathname === '/home'\r\n\r\n let notifications = props.notifications;\r\n let alertRegisters = props.alertRegisters;\r\n let notificationsLoading = props.notificationsLoading;\r\n let notificationsPagination = props.notificationsPagination;\r\n let alertRegistersPagination = props.alertRegistersPagination;\r\n let showBlackScreenDrawer = props.showBlackScreenDrawer;\r\n\r\n const loadNotificationsAsync = props.loadNotificationsAsync;\r\n const loadAlertRegistersAsync = props.loadAlertRegistersAsync;\r\n const loadTotalNotificationsAsync = props.loadTotalNotificationsAsync;\r\n\r\n const { theme } = props;\r\n\r\n const [type, setType] = useState(0);\r\n const [showNewAlert, setShowNewAlert] = useState(false);\r\n\r\n const handleScroll = (target) => {\r\n if (type === 0) {\r\n if (target.scrollTop + target.clientHeight >= (target.scrollHeight - 120) && notificationsPagination != null) {\r\n loadNotificationsAsync();\r\n }\r\n }\r\n if (type === 1) {\r\n if (target.scrollTop + target.clientHeight >= (target.scrollHeight - 120) && alertRegistersPagination != null) {\r\n loadAlertRegistersAsync();\r\n }\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n props.setShowNotifications(false)\r\n loadTotalNotificationsAsync()\r\n }\r\n\r\n useEffect(() => {\r\n if (!notifications.length && type === 0) {\r\n loadNotificationsAsync();\r\n }\r\n if (!alertRegisters.length && type === 1) {\r\n loadAlertRegistersAsync();\r\n }\r\n }, [notifications, loadNotificationsAsync, type, loadAlertRegistersAsync, alertRegisters]);\r\n\r\n return (\r\n track('Notification viewed')}\r\n backdropClassName={`pe-pointer ${theme}`}>\r\n
handleScroll(target)}>\r\n {showBlackScreenDrawer &&\r\n
\r\n
\r\n
}\r\n
\r\n handleClose()}>\r\n

{props.language.notifications_title}

\r\n
\r\n
\r\n
\r\n
setType(0)}>\r\n
{props.language.notifications_show_all}
\r\n
\r\n
{ setType(1) }}>\r\n
{props.language.notifications_show_alerts}
\r\n
\r\n
\r\n
\r\n
\r\n {type === 0 ?\r\n \r\n {\r\n notifications.length ?\r\n notifications.map((notification) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }) : null\r\n }\r\n {\r\n !notifications.length && !notificationsLoading &&\r\n
\r\n \"logo-empty-data-notifications\"\r\n
{props.language.notifications_empty_state_title}
\r\n
{props.language.notifications_empty_state_text}
\r\n
\r\n }\r\n {\r\n (notificationsLoading || notificationsPagination != null) ?\r\n
\r\n \r\n
:
\r\n }\r\n :\r\n \r\n {!isDashboard &&\r\n <>\r\n
\r\n \r\n
\r\n { }}\r\n setEditAlert={() => { }} />\r\n \r\n }\r\n {\r\n alertRegisters.length ?\r\n alertRegisters.map((notification) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }) : null\r\n }\r\n {\r\n !alertRegisters.length && !notificationsLoading &&\r\n
\r\n \"logo-empty-data-alerts\"\r\n
{props.language.alerts_label_title_empty_state_registers}
\r\n
{props.language.alerts_label_body_empty_state_registers}
\r\n
\r\n }\r\n
\r\n }\r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n language: state.shared.language,\r\n notifications: state.notifications.notifications,\r\n notificationsPagination: state.notifications.notificationsPagination,\r\n notificationsLoading: state.notifications.notificationsLoading,\r\n showBlackScreenDrawer: state.shared.showBlackScreenDrawer,\r\n alertRegisters: state.alerts.alertRegisters,\r\n alertRegistersPagination: state.alerts.alertRegistersPagination,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n loadNotificationsAsync: () => dispatch(notificationsActions.loadNotificationsAsync()),\r\n loadTotalNotificationsAsync: () => dispatch(notificationsActions.loadTotalNotificationsAsync()),\r\n loadAlertRegistersAsync: () => dispatch(alertsActions.loadAlertRegistersAsync())\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Notifications);\r\n\r\n\r\n","import * as creators from \"../creators/Chatbot\";\r\n\r\nimport { SETData, GETData } from \"../../services/WebServices\";\r\n\r\nimport moment from \"moment\";\r\n\r\nexport const setActiveChat = (payload) => {\r\n return {\r\n type: creators.SET_ACTIVE_CHAT,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setLoadingChat = (payload) => {\r\n return {\r\n type: creators.SET_LOADING_CHAT,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setMessages = (payload) => {\r\n return {\r\n type: creators.SET_MESSAGES,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setCurrentConversation = (payload) => {\r\n return {\r\n type: creators.SET_CURRENT_CONVERSATION,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setShowChatBot = (payload) => {\r\n return {\r\n type: creators.SET_SHOW_CHATBOT,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setActiveChatMessages = (payload) => {\r\n return {\r\n type: creators.SET_ACTIVATE_CHAT_MESSAGES,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setConversations = (payload) => {\r\n return {\r\n type: creators.SET_CONVERSATIONS,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setShowBannerChatbot = (payload) => {\r\n return {\r\n type: creators.SET_SHOW_BANNER_CHATBOT,\r\n payload\r\n };\r\n};\r\n\r\nexport const loadConversations = () => {\r\n return async (dispatch) => {\r\n const user = JSON.parse(localStorage.getItem(\"user\"));\r\n\r\n GETData(`history?user=${user.idUser}`, \"GET\", process.env.REACT_APP_CHATBOT_API_URL)\r\n .then((response) => {\r\n dispatch(setConversations(response))\r\n })\r\n .catch((err) => console.error(err));\r\n };\r\n};\r\n\r\nexport const loadActiveChat = (payload) => {\r\n return async (dispatch) => {\r\n const user = JSON.parse(localStorage.getItem(\"user\"));\r\n\r\n dispatch(setLoadingChat(true));\r\n\r\n const entity = {\r\n id_user: user.idUser,\r\n id_conversation: payload,\r\n };\r\n\r\n SETData(\"messages\", \"POST\", entity, process.env.REACT_APP_CHATBOT_API_URL)\r\n .then((response) => {\r\n const conversationMessages = [];\r\n response.forEach((message) => {\r\n const userMessage = {\r\n id_content: message.id_content,\r\n message: message.request,\r\n sender: \"user\",\r\n date: moment(message.created_at).format(\"h:mm A\"),\r\n full_date: moment(message.created_at).format(\"ddd DD MMMM YYYY\"),\r\n onBoarding: null,\r\n };\r\n\r\n const botMessage = {\r\n id_content: message.id_content,\r\n message: message.response_summary ?? message.response,\r\n sender: \"chatbot\",\r\n date: moment(message.created_at).format(\"h:mm A\"),\r\n full_date: moment(message.created_at).format(\"ddd DD MMMM YYYY\"),\r\n onBoarding: null,\r\n score: message.score,\r\n };\r\n\r\n conversationMessages.push(userMessage);\r\n\r\n conversationMessages.push(botMessage);\r\n });\r\n\r\n if (!conversationMessages.length) {\r\n dispatch(setActiveChatMessages(true));\r\n }\r\n\r\n dispatch(setLoadingChat(false));\r\n\r\n dispatch(setMessages(conversationMessages));\r\n\r\n dispatch(setCurrentConversation(payload));\r\n })\r\n .catch((response) => console.error(response));\r\n \r\n };\r\n};\r\n\r\nexport const setActiveChatAsync = () => {\r\n return async (dispatch) => {\r\n const user = JSON.parse(localStorage.getItem(\"user\"));\r\n\r\n await SETData(`plus/chatbot/set/${user.idUser}`, \"POST\")\r\n .then((result) => {\r\n if (result?.body) {\r\n dispatch(setActiveChat(true));\r\n }\r\n })\r\n .catch((err) => console.error(err));\r\n };\r\n};\r\n\r\nexport const setConversation = (payload) => {\r\n return (dispatch, getState) => {\r\n const user = JSON.parse(localStorage.getItem(\"user\"));\r\n const activeServicesEnergy = getState().services.activeServicesEnergy;\r\n const currentConversationId = getState().chatbot.currentConversationId;\r\n const messages = getState().chatbot.messages;\r\n\r\n const services = activeServicesEnergy.map((x) => x?.idService);\r\n\r\n const entity = {\r\n id_user: user.idUser,\r\n id_conversation: currentConversationId,\r\n services: services,\r\n message: payload,\r\n };\r\n\r\n const newMessages = [\r\n ...messages,\r\n {\r\n message: payload,\r\n sender: \"user\",\r\n date: moment().format(\"h:mm A\"),\r\n full_date: moment().format(\"ddd DD MMMM YYYY\"),\r\n onBoarding: null,\r\n },\r\n {\r\n message: \"pending\",\r\n sender: \"chatbot\",\r\n date: moment().format(\"h:mm A\"),\r\n full_date: moment().format(\"ddd DD MMMM YYYY\"),\r\n onBoarding: null,\r\n },\r\n ];\r\n\r\n dispatch(setMessages(newMessages));\r\n\r\n SETData(\"send\", \"POST\", entity, process.env.REACT_APP_CHATBOT_IA_API_URL)\r\n .then((response) => {\r\n\r\n let chatbotResponse = \"\"\r\n let idContent = 0\r\n\r\n if (response === null) {\r\n\r\n chatbotResponse = \"Lo siento, parece que hubo un error al intentar procesar tu pregunta. Por favor, podrías reformularla para poder brindarte la información que necesitas.\";\r\n\r\n } else {\r\n\r\n chatbotResponse = response.response\r\n idContent = response.id_content\r\n\r\n if (response.status_code === 2) {\r\n chatbotResponse = \"Lo siento, parece que hubo un error al intentar procesar tu pregunta. Por favor, podrías reformularla para poder brindarte la información que necesitas.\";\r\n } else if (response.status_code === 3) {\r\n chatbotResponse = \"Lo siento, Por favor selecciona al menos un servicio al cual quieras relacionar esta pregunta.\";\r\n }\r\n\r\n }\r\n\r\n const updatedMessages = newMessages.map((item) => {\r\n if (item.sender === \"chatbot\" && item.message === \"pending\") {\r\n return { ...item, id_content: idContent, message: chatbotResponse };\r\n }\r\n\r\n return item;\r\n\r\n });\r\n\r\n if (response.id_conversation) {\r\n dispatch(setCurrentConversation(response.id_conversation));\r\n }\r\n\r\n dispatch(setMessages(updatedMessages));\r\n })\r\n .catch((response) => console.error(response));\r\n };\r\n};\r\n\r\nexport const setScore = (payload) => {\r\n return (dispatch, getState) => {\r\n const id_content = payload.id_content;\r\n const score = payload.score;\r\n\r\n const messages = getState().chatbot.messages;\r\n\r\n const updatedMessages = messages.map((item) => {\r\n if (item.id_content === id_content) {\r\n return { ...item, score: score };\r\n }\r\n return item;\r\n });\r\n\r\n dispatch(setMessages(updatedMessages));\r\n\r\n const entity = {\r\n id_content,\r\n score,\r\n };\r\n\r\n SETData(\"score\", \"PUT\", entity, process.env.REACT_APP_CHATBOT_API_URL).catch((response) => console.error(response));\r\n };\r\n};\r\n","import React from \"react\";\r\n\r\nimport { Popover } from \"@idui/react-popover\";\r\n\r\nconst TextTooltip = ({ text, content, bgColor = \"gray-800\" }) => {\r\n return (\r\n \r\n {text}\r\n \r\n );\r\n};\r\n\r\nexport default TextTooltip;\r\n","import React, { Fragment } from \"react\";\r\n\r\nimport TextTooltip from \"../../genius/TextTooltip\";\r\n\r\nimport { connect } from \"react-redux\"\r\n\r\n\r\nconst ButtonCircle = ({\r\n focus,\r\n icon,\r\n onClick,\r\n background = \"surface-bg-on-surface\",\r\n borderColor = \"gray-800\",\r\n color = \"gray-700\",\r\n borderWidth = 1,\r\n size = 32,\r\n sizeIcon = 12,\r\n additionalStyle = \"\",\r\n showPulse = false,\r\n disabled = false,\r\n language,\r\n theme,\r\n}) => {\r\n\r\n return (\r\n \r\n {disabled ? (\r\n \r\n \r\n {language.genius_tooltip_button_graphs}\r\n

\r\n
\r\n }\r\n text={\r\n \r\n
\r\n \r\n }\r\n />\r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n theme: state.theme.theme,\r\n})\r\n\r\nexport default connect(mapStateToProps)(ButtonCircle);\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport * as servicesActions from \"../../../store/actions/Services\";\r\nimport * as sharedActions from \"../../../store/actions/Shared\";\r\nimport * as themeActions from \"../../../store/actions/Theme\";\r\n\r\nimport { Popover } from \"@idui/react-popover\";\r\n\r\nimport ButtonCircle from \"../../shared/utilities/ButtonCircle\";\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\n\r\nconst ServicesPopover = (props) => {\r\n let totalServicesGrouped = props.totalServicesGrouped;\r\n let activeServices = props.activeServices;\r\n let servicePicker = props.servicePicker;\r\n let selectFunction = props.selectFunction;\r\n let popoverPosition = props.popoverPosition;\r\n let allowAllServices = props.limitSelectServices == null;\r\n let limitSelectServices = props.limitSelectServices || 1000;\r\n let availableTypeServices = props.availableTypeServices;\r\n\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n const setControlledOnboarding = props.setControlledOnboarding;\r\n const setShowBlackScreen = props.setShowBlackScreen;\r\n const setShowBlackScreenDrawer = props.setShowBlackScreenDrawer;\r\n\r\n const [focus, setFocus] = useState(false);\r\n const [services, setServices] = useState(totalServicesGrouped);\r\n const [search, setSearch] = useState(\"\");\r\n const [show, setShow] = useState(false);\r\n const [servicesSelected, setServicesSelected] = useState(activeServices);\r\n const { theme } = props;\r\n\r\n useEffect(() => {\r\n const filterServices = totalServicesGrouped\r\n .map((account) => {\r\n const filteredServices = account.services.filter(\r\n (service) =>\r\n service.name.toLowerCase().includes(search.toLowerCase()) &&\r\n availableTypeServices.includes(service.type?.name),\r\n );\r\n return { ...account, services: filteredServices };\r\n })\r\n .filter((account) => account.services.length > 0);\r\n\r\n setServices([...filterServices]);\r\n }, [search, totalServicesGrouped, availableTypeServices]);\r\n\r\n useEffect(() => {\r\n if (show && servicePicker) {\r\n setControlledOnboarding({ key: \"service_picker\", value: true });\r\n } else {\r\n setControlledOnboarding({ key: \"service_picker\", value: false });\r\n }\r\n }, [show, setControlledOnboarding, servicePicker]);\r\n\r\n useEffect(() => {\r\n if (activeServices?.length > 1) {\r\n track(\"Project selected\", {\r\n Project_ID: activeServices.map(function (service) {\r\n return service?.name;\r\n }),\r\n Project_Quantity: activeServices?.length,\r\n Project_Type: activeServices.map(function (service) {\r\n return service?.type?.name;\r\n }),\r\n });\r\n }\r\n }, [activeServices]);\r\n\r\n return (\r\n {\r\n setShow(state);\r\n props.setShowBlackScreen(state);\r\n props.setShowBlackScreenDrawer(state);\r\n setFocus(state);\r\n show &&\r\n track(\"Project selected\", {\r\n Project_ID: activeServices.map(function (service) {\r\n return service?.name;\r\n }),\r\n Project_Quantity: activeServices?.length,\r\n Project_Type: activeServices.map(function (service) {\r\n return service?.type?.name;\r\n }),\r\n });\r\n }}\r\n content={\r\n
\r\n \r\n \r\n
\r\n \r\n setSearch(target.value)}\r\n />\r\n
\r\n
\r\n
\r\n \r\n {services.map((account) => {\r\n let allServicesSelected = account.services.every((item) =>\r\n servicesSelected\r\n .map((i) => i.idService)\r\n .includes(item.idService),\r\n );\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n {account.account.name}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n {allowAllServices && (\r\n {\r\n let services = servicesSelected;\r\n\r\n if (allServicesSelected) {\r\n if (services.length > 1) {\r\n services = services.filter(\r\n (item) =>\r\n !account.services\r\n .map((i) => i.idService)\r\n .includes(item.idService),\r\n );\r\n\r\n setServicesSelected(services);\r\n }\r\n } else {\r\n services = [...services, ...account.services];\r\n\r\n if (services.length <= limitSelectServices)\r\n setServicesSelected(services);\r\n }\r\n }}\r\n >\r\n \r\n {!allServicesSelected\r\n ? props.language.services_picker_select_all\r\n : props.language.services_picker_descelect_all}\r\n

\r\n
\r\n )}\r\n \r\n {account.services.map((item) => {\r\n const isSelected =\r\n servicesSelected.findIndex(\r\n (i) => i.idService === item.idService,\r\n ) >= 0;\r\n\r\n return (\r\n {\r\n let services = servicesSelected;\r\n\r\n if (isSelected) {\r\n if (services.length > 1) {\r\n services = services.filter(\r\n (i) => i.idService !== item.idService,\r\n );\r\n\r\n setServicesSelected(services);\r\n }\r\n } else {\r\n services = [...services, item];\r\n\r\n if (services.length <= limitSelectServices)\r\n setServicesSelected(services);\r\n }\r\n }}\r\n >\r\n
\r\n \r\n {item.name}\r\n
\r\n \r\n {item.address}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n );\r\n })}\r\n \r\n );\r\n })}\r\n \r\n \r\n {\r\n if (servicesSelected.length) selectFunction(servicesSelected);\r\n\r\n setShowBlackScreen(false);\r\n setShowBlackScreenDrawer(false);\r\n\r\n setShow(false);\r\n setFocus(false);\r\n\r\n if (\r\n props.typeComponent === \"chatbot\" &&\r\n location.pathname === \"/home\"\r\n )\r\n history.push(\"home/detail\");\r\n }}\r\n >\r\n {props.language.energy_done_button}\r\n \r\n \r\n \r\n }\r\n >\r\n {props.typeComponent === \"energy\" ? (\r\n \r\n ) : (\r\n \r\n
\r\n

{`${props.language.lumi_consulting} ${activeServices?.length} ${props.language.lumi_projects}`}

\r\n

\r\n {props.language.energy_click_to_change}\r\n

\r\n
\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n account: state.accounts.account,\r\n servicesTypes: state.services.servicesTypes,\r\n totalServices: state.services.totalServices,\r\n totalServicesGrouped: state.services.totalServicesGrouped,\r\n language: state.shared.language,\r\n showPulseAnimation: state.shared.showPulseAnimation,\r\n servicePicker: state.shared.startOnboarding.service_picker,\r\n selectFunction: ownProps.selectFunction,\r\n activeServices: ownProps.activeServices,\r\n limitSelectServices: ownProps.limitSelectServices,\r\n availableTypeServices: ownProps.availableTypeServices,\r\n typeComponent: ownProps.typeComponent,\r\n popoverPosition: ownProps.popoverPosition,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n loadServicesAsync: (payload) =>\r\n dispatch(servicesActions.loadServicesAsync(payload)),\r\n setShowBlackScreen: (payload) =>\r\n dispatch(sharedActions.setShowBlackScreen(payload)),\r\n setControlledOnboarding: (payload) =>\r\n dispatch(sharedActions.setControlledOnboarding(payload)),\r\n setShowBlackScreenDrawer: (payload) =>\r\n dispatch(sharedActions.setShowBlackScreenDrawer(payload)),\r\n setTheme: (theme) => dispatch(themeActions.setTheme(theme)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ServicesPopover);\r\n","import { Popover } from \"@idui/react-popover\";\r\n\r\nimport * as sharedActions from \"../../store/actions/Shared\";\r\nimport * as chatbotActions from \"../../store/actions/Chatbot\";\r\nimport * as servicesActions from \"../../store/actions/Services\";\r\nimport * as accountsActions from \"../../store/actions/Accounts\";\r\n\r\nimport React, { useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport _ from \"lodash\";\r\n\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\n\r\nconst ChatPopover = (props) => {\r\n const [focus, setFocus] = useState(false); // eslint-disable-line no-unused-vars\r\n const [show, setShow] = useState(false); // eslint-disable-line no-unused-vars\r\n\r\n let conversations = props.conversations;\r\n\r\n const loadActiveChat = props.loadActiveChat;\r\n const setMessages = props.setMessages;\r\n const setShowBlackScreen = props.setShowBlackScreen;\r\n const setShowBlackScreenDrawer = props.setShowBlackScreenDrawer;\r\n const setActiveServicesEnergy = props.setActiveServicesEnergy;\r\n const setActiveServicesPlus = props.setActiveServicesPlus;\r\n const setAccount = props.setAccount;\r\n const loadServicesAsync = props.loadServicesAsync;\r\n const theme = props.theme;\r\n\r\n let currentAccount = props.account;\r\n let totalAccounts = props.totalAccounts;\r\n let totalServices = props.totalServices;\r\n\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n const loadConversations = async (id, services) => {\r\n await loadActiveChat(id);\r\n if (services.length) {\r\n await handleActiveMessage(services);\r\n }\r\n\r\n setShow(false);\r\n\r\n setShowBlackScreen(false);\r\n setShowBlackScreenDrawer(false);\r\n\r\n setFocus(false);\r\n };\r\n\r\n const chatHandler = () => {\r\n setMessages([]);\r\n setShow(false);\r\n setShowBlackScreen(false);\r\n setShowBlackScreenDrawer(false);\r\n setFocus(false);\r\n };\r\n\r\n const handleActiveMessage = async (services) => {\r\n const account = totalAccounts.filter((account) => account?.services?.map((x) => x?.idService).includes(services[0]));\r\n\r\n if (account.length && account[0]?.idAccount !== currentAccount?.idAccount) {\r\n setAccount(account[0]);\r\n await loadServicesAsync(services);\r\n } else {\r\n const filteredServices = totalServices.filter((service) => services.includes(service.idService));\r\n\r\n setActiveServicesEnergy(filteredServices);\r\n\r\n setActiveServicesPlus([_.last(filteredServices)]);\r\n }\r\n\r\n if (location.pathname === \"/home\") history.push(\"home/detail\");\r\n };\r\n\r\n const ConversationComponent = ({ item, id, theme }) => {\r\n return (\r\n loadConversations(item?.id_conversation, item?.services)}>\r\n {item?.services?.length ? (\r\n \r\n
Servicios consultados
\r\n
Estos son los servicios que consultaste en tu pregunta
\r\n {item?.services?.length &&\r\n totalAccounts\r\n .filter((account) => account?.services?.map((x) => x?.idService).includes(item?.services[0]))[0]\r\n ?.services?.filter((service) => item?.services?.includes(service?.idService))\r\n ?.map((service, i) => (\r\n \r\n {service?.name}\r\n \r\n ))}\r\n \r\n }>\r\n \r\n {item?.services?.length}\r\n \r\n \r\n ) : (\r\n \r\n {item?.services?.length}\r\n \r\n )}\r\n
{item?.message}
\r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n chatHandler()}>\r\n \r\n

Nuevo chat

\r\n \r\n
Tus chats
\r\n {conversations?.filter((item) => !moment(item?.date)?.isBefore(moment().subtract(7, \"days\"), \"day\")).length &&
Últimos 7 días
}\r\n {conversations\r\n ?.filter((item) => !moment(item?.date)?.isBefore(moment().subtract(7, \"days\"), \"day\"))\r\n .map((item, id) => (\r\n \r\n ))}\r\n {conversations?.filter((item) => moment(item?.date)?.isBefore(moment().subtract(30, \"days\"), \"day\")).length &&
Últimos 30 días
}\r\n {conversations\r\n ?.filter((item) => moment(item?.date)?.isBefore(moment().subtract(30, \"days\"), \"day\"))\r\n .map((item, id) => (\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n language: state.shared.language,\r\n conversations: state.chatbot.conversations,\r\n totalAccounts: state.accounts.totalAccounts,\r\n totalServices: state.services.totalServices,\r\n account: state.accounts.account,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n loadActiveChat: (payload) => dispatch(chatbotActions.loadActiveChat(payload)),\r\n setShowBlackScreen: (payload) => dispatch(sharedActions.setShowBlackScreen(payload)),\r\n setShowBlackScreenDrawer: (payload) => dispatch(sharedActions.setShowBlackScreenDrawer(payload)),\r\n setMessages: (payload) => dispatch(chatbotActions.setMessages(payload)),\r\n setActiveServicesPlus: (payload) => dispatch(servicesActions.setActiveServicesPlus(payload)),\r\n setActiveServicesEnergy: (payload) => dispatch(servicesActions.setActiveServicesEnergy(payload)),\r\n setAccount: (payload) => dispatch(accountsActions.setAccount(payload)),\r\n loadServicesAsync: (payload) => dispatch(servicesActions.loadServicesAsync(payload)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ChatPopover);\r\n","import React, { useState, useEffect, useRef, Fragment } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport * as servicesActions from \"../../store/actions/Services\";\r\nimport * as chatbotActions from \"../../store/actions/Chatbot\";\r\nimport * as accountsActions from \"../../store/actions/Accounts\";\r\n\r\nimport { Drawer, Loader } from \"rsuite\";\r\n\r\nimport ServicesPopover from \"../energy/services/ServicesPopover\";\r\n\r\nimport _ from \"lodash\";\r\n\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\n\r\nimport { useRive, Layout, Fit, Alignment } from \"@rive-app/react-canvas\";\r\n\r\n// import { tutorialListInfoGlobal } from '../onboarding/OnboardingSections';\r\n\r\nimport lumi from \"../../imgs/LUMI.png\";\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nimport ChatPopover from \"./ChatPopover\";\r\n\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faThumbsUp, faThumbsDown } from \"@fortawesome/pro-light-svg-icons\";\r\nimport { faThumbsUp as faThumbsUpSolid, faThumbsDown as faThumbsDownSolid } from \"@fortawesome/pro-solid-svg-icons\";\r\n\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\nimport SwiperCore, { Autoplay, Navigation } from \"swiper\";\r\n\r\nSwiperCore.use([Autoplay, Navigation]);\r\n\r\nconst ChatBot = (props) => {\r\n const { RiveComponent } = useRive({\r\n src: \"lumiAssets/lumi.riv\",\r\n stateMachines: \"State Machine 1\",\r\n layout: new Layout({\r\n fit: Fit.FitWidth,\r\n alignment: Alignment.Center,\r\n }),\r\n autoplay: true,\r\n });\r\n\r\n const { RiveComponent: RiveComponentBeta } = useRive({\r\n src: \"lumiAssets/lumi.riv\",\r\n stateMachines: \"State Machine 1\",\r\n layout: new Layout({\r\n fit: Fit.FitWidth,\r\n alignment: Alignment.Center,\r\n }),\r\n autoplay: true,\r\n });\r\n\r\n let user = props.user;\r\n let activeChat = props.activeChat;\r\n let loadingChat = props.loadingChat;\r\n let messages = props.messages;\r\n let totalServices = props.totalServices;\r\n let activeServicesEnergy = props.activeServicesEnergy;\r\n let showBlackScreenDrawer = props.showBlackScreenDrawer;\r\n let currentConversationId = props.currentConversationId;\r\n let totalAccounts = props.totalAccounts;\r\n let currentAccount = props.account;\r\n\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n const language = props.language;\r\n const enableChatBot = props.enableChatBot;\r\n const setActiveChatAsync = props.setActiveChatAsync;\r\n const setConversation = props.setConversation;\r\n const setActiveServicesEnergy = props.setActiveServicesEnergy;\r\n const setActiveServicesPlus = props.setActiveServicesPlus;\r\n const setAccount = props.setAccount;\r\n const setScore = props.setScore;\r\n const loadServicesAsync = props.loadServicesAsync;\r\n const theme = props.theme;\r\n\r\n let showChatBot = props.showChatBot;\r\n let setShowChatBot = props.setShowChatBot;\r\n let activeChatMessages = props.activeChatMessages;\r\n let setActiveChatMessages = props.setActiveChatMessages;\r\n let loadConversations = props.loadConversations;\r\n let showBannerChatbot = props.showBannerChatbot;\r\n\r\n // const history = useHistory();\r\n\r\n const aids = [language.chatbot_aids1, language.chatbot_aids2, language.chatbot_aids3];\r\n\r\n const messagesContainerRef = useRef(null);\r\n\r\n const [request, setRequest] = useState(null);\r\n const [mount, setMount] = useState(false);\r\n const [showChatsResume, setShowChatsResume] = useState(false);\r\n\r\n const replaceMessageLink = (message) => {\r\n\r\n const url = \"https://api.whatsapp.com/send?phone=5716659652\";\r\n\r\n const linkText = \"¡Contactar ahora!\";\r\n\r\n if (message.includes(url)) {\r\n\r\n const parts = message.split(url);\r\n\r\n return (\r\n \r\n {parts[0]}\r\n \r\n {linkText}\r\n \r\n {parts[1]}\r\n \r\n );\r\n }\r\n\r\n return message;\r\n };\r\n\r\n const scrollToBottom = () => {\r\n if (messagesContainerRef.current) {\r\n messagesContainerRef.current.scrollTop = messagesContainerRef.current.scrollHeight;\r\n }\r\n };\r\n\r\n const handleSendMessage = async () => {\r\n setRequest(null);\r\n\r\n setActiveChatMessages(true);\r\n\r\n setConversation(request);\r\n };\r\n\r\n const handleActiveMessage = async () => {\r\n let conversationSavedInLocalStorage = localStorage.getItem(\"chatbot_conversation\");\r\n\r\n conversationSavedInLocalStorage = JSON.parse(conversationSavedInLocalStorage);\r\n\r\n let services = conversationSavedInLocalStorage.services;\r\n\r\n const account = totalAccounts.filter((account) => account?.services?.map((x) => x?.idService).includes(services[0]));\r\n\r\n setActiveChatMessages(true);\r\n\r\n if (services.length && account.length && account[0]?.idAccount !== currentAccount?.idAccount) {\r\n setAccount(account[0]);\r\n await loadServicesAsync(services);\r\n const filteredServices = totalServices.filter((service) => services.includes(service.idService));\r\n\r\n setActiveServicesEnergy(filteredServices);\r\n\r\n setActiveServicesPlus([_.last(filteredServices)]);\r\n } else {\r\n const filteredServices = totalServices.filter((service) => services.includes(service.idService));\r\n\r\n setActiveServicesEnergy(filteredServices);\r\n\r\n setActiveServicesPlus([_.last(filteredServices)]);\r\n }\r\n\r\n if (location.pathname === \"/home\") history.push(\"home/detail\");\r\n };\r\n\r\n const groupMessageDate = (messages) =>\r\n messages.reduce((group, message) => {\r\n const { full_date } = message;\r\n\r\n let dateGroup = group.find((item) => item.full_date === full_date);\r\n\r\n if (!dateGroup) {\r\n dateGroup = { full_date, messages: [] };\r\n group.push(dateGroup);\r\n }\r\n\r\n dateGroup.messages.push(message);\r\n\r\n return group;\r\n }, []);\r\n\r\n const handleOnBoarding = (id) => {\r\n // const tutorialListInfo = tutorialListInfoGlobal(props, history, true);\r\n // const functionOnBoarding = tutorialListInfo?.some(x => x?.id === id) ? tutorialListInfo?.find(x => x?.id === id)?.tutorialFunction : null;\r\n // if (functionOnBoarding) functionOnBoarding();\r\n };\r\n\r\n // useEffect(() => {\r\n\r\n // scrollToBottom();\r\n\r\n // if (messages.length && currentResponse) {\r\n\r\n // const newMessages = messages\r\n // .filter(item => item?.message !== 'pending');\r\n\r\n // setMessages([...newMessages, currentResponse]);\r\n\r\n // setCurrentResponse(null);\r\n\r\n // }\r\n\r\n // }, [currentResponse, messages]);\r\n\r\n useEffect(() => {\r\n scrollToBottom();\r\n }, [messages]);\r\n\r\n useEffect(() => {\r\n loadConversations();\r\n }, [loadConversations]);\r\n\r\n useEffect(() => {\r\n const indexSelected = aids.indexOf(request);\r\n\r\n if (indexSelected !== -1) {\r\n switch (indexSelected) {\r\n case 0:\r\n track(\"Ai consumption default chat selected\");\r\n break;\r\n case 1:\r\n track(\"Ai reactive default chat selected\");\r\n break;\r\n case 2:\r\n track(\"Ai maximum default chat selected\");\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }, [request, aids]);\r\n\r\n useEffect(() => {\r\n if (mount) {\r\n if (showChatBot)\r\n track(\"Ai Chat opened\");\r\n else\r\n track(\"Ai Chat ended\");\r\n }\r\n else\r\n setMount(true)\r\n // eslint-disable-next-line\r\n }, [showChatBot]);\r\n \r\n return (\r\n \r\n !showBannerChatbot && setShowChatBot(true)}\r\n className={`zindex-3 pe-pointer`}\r\n style={{ width: 72, height: 72, transform: showBannerChatbot ? 'scale(0)' : 'scale(1)', transition: 'transform 0.3s ease-in-out' }}>\r\n \r\n \r\n setShowChatBot(false)}>\r\n
\r\n\r\n {\r\n showChatsResume && \r\n }\r\n
\r\n {showBlackScreenDrawer && (\r\n \r\n
\r\n
\r\n )}\r\n {!enableChatBot ? (\r\n
\r\n
{language.lumi_title}
\r\n
{language.lumi_first_text}
\r\n \r\n \r\n
\r\n
{language.lumi_second_text}
\r\n {!activeChat ? (\r\n setActiveChatAsync()}\r\n className=\"bg-green-500 rounded-8 m-3 py-2 pe-pointer text-wrap text-center txt-phrase txt-semibold txt-green-800 txt-8\">\r\n {language.lumi_do_click_here}\r\n
\r\n ) : (\r\n
\r\n
{language.lumi_title_card}
\r\n
{language.lumi_first_text_card}
\r\n
{language.lumi_second_text_title}
\r\n
\r\n )}\r\n
\r\n ) : loadingChat ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n
\r\n \r\n
\r\n {\r\n setActiveServicesEnergy(value);\r\n setActiveServicesPlus([_.last(value)]);\r\n }}\r\n availableTypeServices={[\"energy\", \"plus\", \"generation\"]}\r\n limitSelectServices={3}\r\n typeComponent={\"chatbot\"}\r\n />\r\n
\r\n
\r\n scrollToBottom()}>\r\n
\r\n {!messages.length && (\r\n
\r\n ¡{language.lumi_hey}, {user.name}!
\r\n

{language.lumi_question}

\r\n
\r\n )}\r\n {messages.length &&\r\n groupMessageDate(messages).map((group, index) => {\r\n return (\r\n {group.full_date !== null && group.full_date !== undefined && (\r\n
\r\n
{group.full_date}
\r\n
\r\n )}\r\n {group.messages.map((item, index) => (\r\n \r\n
\r\n
{item?.sender === \"user\" ? language.lumi_you_chat : \"Lumi\"}
\r\n
\r\n {item?.sender !== \"user\" && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n {item?.message !== \"pending\" ? (\r\n
\r\n
\r\n {item?.onBoarding !== null ? (\r\n
\r\n {language.lumi_explanation}\r\n handleOnBoarding(item?.onBoarding)}\r\n className=\"pe-pointer\">\r\n {language.lumi_go_tutorial}\r\n \r\n
\r\n ) : (\r\n
{replaceMessageLink(item?.message)}
\r\n )}\r\n
\r\n
{item?.date}
\r\n
\r\n ) : (\r\n
. . .
\r\n )}\r\n
\r\n
\r\n {item?.sender !== \"user\" && item?.message !== \"pending\" && item?.id_content !== 0 && (\r\n
\r\n
Califica esta respuesta
\r\n {\r\n if (item?.score !== 1) setScore({ id_content: item?.id_content, score: 1 });\r\n }}\r\n />\r\n {\r\n if (item?.score !== 2) setScore({ id_content: item?.id_content, score: 2 });\r\n }}\r\n />\r\n
\r\n )}\r\n
\r\n
\r\n ))}\r\n
)\r\n })}\r\n \r\n \r\n
\r\n {!messages.length && \r\n

Preguntas sugeridas

\r\n
\r\n
\r\n
\r\n \r\n {aids.map((value, index) => (\r\n \r\n setRequest(value)}\r\n >\r\n

\r\n {value}\r\n

\r\n
\r\n \r\n ))}\r\n \r\n
\r\n
}\r\n
\r\n
setShowChatsResume(!showChatsResume)}>\r\n
\r\n \r\n
\r\n
\r\n {activeChatMessages || currentConversationId === null ? (\r\n
\r\n
BETA
\r\n setRequest(target?.value)}\r\n onKeyDown={(event) => {\r\n if (event.key === \"Enter\" && request) {\r\n handleSendMessage();\r\n }\r\n }}\r\n />\r\n {\r\n if (request) {\r\n handleSendMessage();\r\n track(\"Ai message sent\");\r\n }\r\n }}>\r\n \r\n
\r\n
\r\n ) : (\r\n handleActiveMessage()}>\r\n

{language.lumi_continue_conversation}

\r\n
\r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n language: state.shared.language,\r\n user: state.users.user,\r\n messages: state.chatbot.messages,\r\n activeChat: state.chatbot.activeChat,\r\n loadingChat: state.chatbot.loadingChat,\r\n totalServices: state.services.totalServices,\r\n activeServicesEnergy: state.services.activeServicesEnergy,\r\n showBlackScreenDrawer: state.shared.showBlackScreenDrawer,\r\n currentConversationId: state.chatbot.currentConversationId,\r\n totalAccounts: state.accounts.totalAccounts,\r\n account: state.accounts.account,\r\n showChatBot: state.chatbot.showChatBot,\r\n activeChatMessages: state.chatbot.activeChatMessages,\r\n showBannerChatbot: state.chatbot.showBannerChatbot,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setActiveChatAsync: () => dispatch(chatbotActions.setActiveChatAsync()),\r\n setConversation: (payload) => dispatch(chatbotActions.setConversation(payload)),\r\n setActiveServicesPlus: (payload) => dispatch(servicesActions.setActiveServicesPlus(payload)),\r\n setActiveServicesEnergy: (payload) => dispatch(servicesActions.setActiveServicesEnergy(payload)),\r\n setAccount: (payload) => dispatch(accountsActions.setAccount(payload)),\r\n setShowChatBot: (payload) => dispatch(chatbotActions.setShowChatBot(payload)),\r\n setActiveChatMessages: (payload) => dispatch(chatbotActions.setActiveChatMessages(payload)),\r\n setScore: (payload) => dispatch(chatbotActions.setScore(payload)),\r\n loadServicesAsync: (payload) => dispatch(servicesActions.loadServicesAsync(payload)),\r\n loadConversations: () => dispatch(chatbotActions.loadConversations())\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ChatBot);\r\n","import React, { Fragment, useState, useEffect } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nimport * as accountsActions from \"../../store/actions/Accounts\";\r\nimport * as notificationsActions from \"../../store/actions/Notifications\";\r\nimport * as themeActions from \"../../store/actions/Theme\";\r\n\r\nimport Support from \"./Support\";\r\nimport Neugets from \"./Neugets\";\r\nimport Notifications from \"../notifications/Notifications\";\r\n\r\nimport BackButton from \"./utilities/BackButton\";\r\n\r\nimport Chatbot from \"./Chatbot\";\r\nimport { themes } from \"../../utils/enums\";\r\n\r\nconst Header = (props) => {\r\n let history = useHistory(); \r\n\r\n let account = props.account;\r\n let user = props.user;\r\n let totalNotificationsInfo = props.totalNotificationsInfo;\r\n\r\n const loadNeugetsByAccountAsync = props.loadNeugetsByAccountAsync;\r\n const loadTotalNotificationsAsync = props.loadTotalNotificationsAsync;\r\n const { theme, setTheme } = props;\r\n\r\n const [showSupport, setShowSupport] = useState(false);\r\n const [showNeugets, setShowNeugets] = useState(false);\r\n const [showNotifications, setShowNotifications] = useState(false);\r\n const [showChatBot, setShowChatBot] = useState(false); \r\n\r\n const toggleTheme = () => {\r\n const newTheme = theme === themes.LIGHT ? themes.DARK : themes.LIGHT;\r\n setTheme(newTheme);\r\n };\r\n\r\n useEffect(() => {\r\n if (account !== null) loadNeugetsByAccountAsync();\r\n }, [account, loadNeugetsByAccountAsync]);\r\n\r\n useEffect(() => loadTotalNotificationsAsync(), [loadTotalNotificationsAsync]); \r\n\r\n return (\r\n \r\n
\r\n
\r\n {props.backToButton && (\r\n history.goBack()} theme={theme} />\r\n )}\r\n \r\n {props.moduleName}\r\n \r\n
\r\n
\r\n {\r\n \r\n }\r\n {user.capabilities?.show_header_emergency_button && (\r\n {\r\n window.open(\r\n user.capabilities.show_panama_emergency_line\r\n ? \"https://api.whatsapp.com/send?phone=50765229500&text=%C2%A1Estamos%20felices%20de%20poder%20ayudarte!\"\r\n : 'https://api.whatsapp.com/send?phone=5716659652&text=%C2%A1Estamos%20felices%20de%20poder%20ayudarte!',\r\n );\r\n }}\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n {props.language.support_emergency_button}\r\n \r\n
\r\n
\r\n )}\r\n {user.capabilities?.show_header_support_button && (\r\n {\r\n setShowSupport(true);\r\n }}\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n {props.language.support_help_button}\r\n \r\n
\r\n \r\n )}\r\n {user.capabilities?.show_header_notifications_button && (\r\n {\r\n setShowNotifications(true);\r\n }}\r\n >\r\n
\r\n
\r\n \r\n 0 ? \"100\" : \"0\"\r\n }`}\r\n />\r\n
\r\n \r\n {props.language.notifications_title}\r\n \r\n
\r\n \r\n )}\r\n {user.capabilities?.show_header_notifications_button && (\r\n \r\n
\r\n
\r\n \r\n
\r\n {/* \r\n {theme === \"dark\"\r\n ? props.language.dark\r\n : props.language.light}\r\n */}\r\n
\r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n moduleName: ownProps.moduleName,\r\n backToButton: ownProps.backToButton,\r\n disablePadding: ownProps.disablePadding,\r\n language: state.shared.language,\r\n neugets: state.accounts.neugets,\r\n account: state.accounts.account,\r\n totalNotificationsInfo: state.notifications.totalNotificationsInfo,\r\n user: state.users.user,\r\n theme: state.theme.theme, \r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n loadNeugetsByAccountAsync: () =>\r\n dispatch(accountsActions.loadNeugetsByAccountAsync()),\r\n loadTotalNotificationsAsync: () =>\r\n dispatch(notificationsActions.loadTotalNotificationsAsync()),\r\n setTheme: (theme) => dispatch(themeActions.setTheme(theme)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Header);\r\n","import React, { useState } from \"react\";\r\nimport { Popover } from \"@idui/react-popover\";\r\nimport { connect } from \"react-redux\";\r\nimport * as themeActions from \"../../../store/actions/Theme\";\r\n\r\nconst Select = ({\r\n label,\r\n options,\r\n value,\r\n onChange,\r\n keyName = \"value\",\r\n labelName = \"label\",\r\n width = 280,\r\n height = 120,\r\n theme,\r\n language,\r\n error,\r\n background = \"surface-bg-surface\",\r\n type_label = \"label-small-medium\",\r\n required,\r\n defaultMessage = 'Seleccionar',\r\n completeHeight = false,\r\n renderOptionContainer = null,\r\n renderCustomOption = null\r\n}) => {\r\n const [active, setActive] = useState(false);\r\n\r\n const renderOption = () => {\r\n return options.map((item) => {\r\n const isSelected = value === item[keyName];\r\n\r\n const handleClick = () => {\r\n onChange(item[keyName]);\r\n setActive(false);\r\n }\r\n\r\n if(renderCustomOption){\r\n return renderCustomOption({ \r\n value: item[keyName], \r\n item: item,\r\n onClick: handleClick, \r\n isSelected\r\n })\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n {language ? language[item[labelName]] : item[labelName]}\r\n
\r\n {isSelected && (\r\n \r\n )}\r\n \r\n \r\n );\r\n })\r\n }\r\n\r\n return (\r\n \r\n {\r\n renderOptionContainer ? \r\n renderOptionContainer({ children: renderOption(), width, height}) \r\n : (\r\n \r\n {renderOption()}\r\n \r\n )\r\n }\r\n \r\n }\r\n >\r\n
\r\n
\r\n {label && (\r\n

\r\n {label}\r\n {required ? * : <>}\r\n

\r\n )}\r\n setActive(!active)}\r\n >\r\n \r\n {options.find((item) => item[keyName] === value)?.[labelName] ||\r\n defaultMessage}\r\n

\r\n
\r\n \r\n
\r\n {error && (\r\n

\r\n {error}\r\n

\r\n )}\r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setTheme: (theme) => dispatch(themeActions.setTheme(theme)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Select);","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useHistory } from 'react-router-dom';\r\nimport * as usersActions from '../../store/actions/Users';\r\nimport { Modal } from 'rsuite';\r\n\r\nconst ModalSuccess = (props) => {\r\n const { theme, language, infoInviteSuccessModal, setShowCreateUserModal, loadUsersAsync, onClose, onAddMoreUsers } =\r\n props;\r\n const history = useHistory();\r\n\r\n const handleClose = () => {\r\n setShowCreateUserModal(false);\r\n loadUsersAsync();\r\n history.push('/users');\r\n if (onClose) onClose();\r\n };\r\n\r\n const handleAddMoreUsers = () => {\r\n if (onAddMoreUsers) {\r\n onAddMoreUsers();\r\n }\r\n };\r\n\r\n const handleLinkClick = (e) => {\r\n e.preventDefault();\r\n handleClose();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n

\r\n {props.language.users_title_header_modal_success}\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {`Has enviado ${infoInviteSuccessModal?.users?.length || 0} invitaciones para acceder a ${\r\n infoInviteSuccessModal?.idServices?.length || 0\r\n } servicios.`}\r\n
\r\n
\r\n {language['users_first_description_modal_success']}\r\n \r\n {language['users_link_description_modal_success']}\r\n \r\n {language['users_second_description_modal_success']}\r\n
\r\n
\r\n \r\n \r\n

\r\n {language['users_button_new_user_success_modal']}\r\n

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

{language['users_button_finish_success_modal']}

\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n language: state.shared.language,\r\n theme: state.theme.theme,\r\n infoInviteSuccessModal: state.users.infoInviteSuccessModal,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setShowCreateUserModal: (payload) => dispatch(usersActions.setShowCreateUserModal(payload)),\r\n loadUsersAsync: (payload) => dispatch(usersActions.loadUsersAsync(payload)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ModalSuccess);\r\n","import React from 'react'\r\nimport { connect } from 'react-redux';\r\n\r\nconst InputRounded = ({ placeholder,icon, value, type, required, disabled = false,onChange, onPressEnter, focus = false, error, theme, px = 3, py = 3, concatClassName='',}) => {\r\n \r\n const paddingClasses = `px-${px} py-${py}`;\r\n\r\n return (\r\n
\r\n
\r\n {icon ? : null}\r\n keyCode === 13 && onPressEnter && onPressEnter()} />\r\n
\r\n {error ?

{error}

: null}\r\n
\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n theme: state.theme.theme\r\n})\r\n\r\nexport default connect(mapStateToProps)(InputRounded)","import React, { useState, useEffect, useMemo } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport * as usersActions from '../../store/actions/Users';\r\nimport { Modal } from 'rsuite';\r\nimport InputRounded from '../shared/utilities/InputRounded';\r\nimport MultipleSelect from '../shared/utilities/MultipleSelect'; // Importa el nuevo componente\r\n\r\nconst ModalService = ({\r\n theme,\r\n showCreateUserModal,\r\n accounts,\r\n userServicesSelected,\r\n setShowCreateUserModal,\r\n setUserServicesSelected,\r\n setSelectedAccount,\r\n selectedAccount,\r\n language,\r\n onClose,\r\n mode = 'add',\r\n}) => {\r\n const [searchQuery, setSearchQuery] = useState('');\r\n const [selectedIds, setSelectedIds] = useState([]);\r\n const [selectedAccounts, setSelectedAccounts] = useState([]); \r\n\r\n \r\n const getSelectedAccountNames = () => {\r\n if (!Array.isArray(accounts) || accounts.length === 0 || selectedAccounts.length === 0) {\r\n return ''; // Si no hay cuentas seleccionadas, devuelve una cadena vacía\r\n }\r\n\r\n const selectedNames = accounts\r\n .filter((acc) => selectedAccounts.includes(acc.idAccount))\r\n .map((acc) => acc.name);\r\n\r\n return selectedNames.join(', '); \r\n };\r\n\r\n useEffect(() => {\r\n if (selectedAccounts.length === 0 && Array.isArray(accounts) && accounts.length > 0) {\r\n setSelectedAccounts([accounts[0].idAccount]); \r\n }\r\n }, [accounts, selectedAccounts, setSelectedAccounts]);\r\n\r\n useEffect(() => {\r\n const servicesKey = mode === 'add' ? 'newServices' : 'updatedServices';\r\n setSelectedIds(userServicesSelected[servicesKey] || []);\r\n }, [userServicesSelected, mode]);\r\n\r\n const handleBack = () => {\r\n setShowCreateUserModal(true);\r\n onClose();\r\n };\r\n\r\n const handleDone = () => {\r\n setUserServicesSelected({\r\n key: mode === 'add' ? 'newServices' : 'updatedServices',\r\n value: selectedIds,\r\n });\r\n setShowCreateUserModal(true);\r\n onClose();\r\n };\r\n\r\n const handleServiceSelection = (service) => {\r\n const isSelected = selectedIds.includes(service.idService);\r\n if (isSelected) {\r\n setSelectedIds(selectedIds.filter((id) => id !== service.idService));\r\n } else {\r\n setSelectedIds([...selectedIds, service.idService]);\r\n }\r\n };\r\n\r\n const handleSelectAll = (groupServices) => {\r\n const allIds = groupServices.map((service) => service.idService);\r\n const allSelected = allIds.every((id) => selectedIds.includes(id));\r\n if (allSelected) {\r\n setSelectedIds(selectedIds.filter((id) => !allIds.includes(id)));\r\n } else {\r\n setSelectedIds([...new Set([...selectedIds, ...allIds])]);\r\n }\r\n };\r\n\r\n const filteredServices = useMemo(() => {\r\n if (!Array.isArray(accounts) || accounts.length === 0 || selectedAccounts.length === 0) {\r\n return [];\r\n }\r\n\r\n const selectedAccs = accounts.filter((acc) => selectedAccounts.includes(acc.idAccount));\r\n if (selectedAccs.length === 0) {\r\n return [];\r\n }\r\n\r\n const services = selectedAccs.flatMap((acc) => (Array.isArray(acc.services) ? acc.services : []));\r\n\r\n return services.filter((service) => {\r\n const matchesSearch = searchQuery\r\n ? (service.name || '').toLowerCase().includes(searchQuery.toLowerCase()) ||\r\n (service.address || '').toLowerCase().includes(searchQuery.toLowerCase())\r\n : true;\r\n return matchesSearch;\r\n });\r\n }, [accounts, selectedAccounts, searchQuery]);\r\n\r\n const groupedServices = useMemo(() => {\r\n if (!filteredServices.length) {\r\n return [];\r\n }\r\n\r\n const groupedByType = filteredServices.reduce((acc, service) => {\r\n const typeName = service.type?.name || 'Unknown';\r\n if (!acc[typeName]) {\r\n acc[typeName] = {\r\n type:\r\n typeName === 'energy'\r\n ? language['services_picker_type_consumption'] || 'Consumo'\r\n : typeName === 'generation'\r\n ? language['services_picker_type_generation'] || 'Generación'\r\n : typeName === 'efficiency'\r\n ? 'Eficiencia'\r\n : typeName,\r\n key: typeName,\r\n services: [],\r\n };\r\n }\r\n acc[typeName].services.push(service);\r\n return acc;\r\n }, {});\r\n\r\n const grouped = Object.values(groupedByType).filter((group) => group.services.length > 0);\r\n return grouped;\r\n }, [filteredServices, language]);\r\n\r\n if (showCreateUserModal !== 2) return null;\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n

\r\n {language['new_user_title_header']}\r\n

\r\n
\r\n
\r\n
\r\n setSearchQuery(target.value)}\r\n />\r\n \r\n
\r\n ({ label: acc.name, value: acc.idAccount }))\r\n : []\r\n }\r\n selectedData={selectedAccounts} \r\n onChange={(selectedValues) => setSelectedAccounts(selectedValues)} \r\n width={278}\r\n label={language['dashboard_label_select_account'] || 'Seleccionar cuenta'}\r\n theme={theme}\r\n />\r\n
\r\n {groupedServices.length > 0 ? (\r\n groupedServices.map((group, index) => (\r\n
\r\n
\r\n
\r\n \r\n

\r\n {group.type}\r\n

\r\n
\r\n handleSelectAll(group.services)}\r\n >\r\n {group.services.every((s) => selectedIds.includes(s.idService))\r\n ? language['dashboard_label_picker_services_all_unselected'] ||\r\n 'Deseleccionar todos'\r\n : language['dashboard_label_picker_services_all_selected'] ||\r\n 'Seleccionar todos'}\r\n

\r\n
\r\n {group.services.map((service) => {\r\n const isSelected = selectedIds.includes(service.idService);\r\n return (\r\n handleServiceSelection(service)}\r\n >\r\n
\r\n \r\n {service.name || 'Sin nombre'}\r\n

\r\n \r\n {service.address || 'Sin dirección'}\r\n

\r\n
\r\n \r\n
\r\n );\r\n })}\r\n
\r\n ))\r\n ) : (\r\n

\r\n {language['dashboard_empty_state_picker_services']}\r\n

\r\n )}\r\n \r\n \r\n \r\n \r\n

\r\n {selectedIds.length} {language['users_label_count_services'] || 'seleccionados'}\r\n

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

\r\n {language['dashboard_filter_done_button'] || 'Hecho'}\r\n

\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n showCreateUserModal: state.users.showCreateUserModal,\r\n theme: state.theme.theme,\r\n accounts: state.accounts.totalAccounts,\r\n userServicesSelected: state.users.userServicesSelected,\r\n selectedAccount: state.users.accountSelectedUsersTable,\r\n language: state.shared.language,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setShowCreateUserModal: (payload) => dispatch(usersActions.setShowCreateUserModal(payload)),\r\n setUserServicesSelected: (payload) => dispatch(usersActions.setUserServicesSelected(payload)),\r\n setSelectedAccount: (payload) => dispatch(usersActions.setAccountSelectedUsersTable(payload)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ModalService);","import React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useHistory } from 'react-router-dom';\r\nimport * as usersActions from '../../store/actions/Users';\r\nimport { Modal, Tooltip, Whisper } from 'rsuite';\r\nimport Select from '../shared/utilities/Select';\r\nimport ModalSuccess from './ModalSuccess';\r\nimport ModalService from './ModalService';\r\nimport empty_users from '../../imgs/empty-users.svg';\r\nimport empty_users_light from '../../imgs/empty-user-light.svg';\r\n\r\nconst isValidateEmail = (email) => /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email);\r\nconst isValidColombianPhone = (phone) => {\r\n return /^\\d{10}$/.test(phone) || /^\\+57\\d{10}$/.test(phone);\r\n};\r\n\r\nconst NewUser = ({\r\n theme,\r\n showCreateUserModal,\r\n language,\r\n userServicesSelected,\r\n setShowCreateUserModal,\r\n user,\r\n setUsersToInvite,\r\n getUserRegisteredAsync,\r\n loadInviteUserAsync,\r\n setUserServicesSelected,\r\n userRegisteredLoading,\r\n usersLoading,\r\n showInviteSuccessModal,\r\n usersToInvite: reduxUsersToInvite,\r\n userTypesSelect,\r\n getUserTypesAsync,\r\n}) => {\r\n const history = useHistory();\r\n\r\n const [modalState, setModalState] = useState(null);\r\n const [inputValue, setInputValue] = useState('');\r\n const [usersToInvite, setLocalUsersToInvite] = useState([]);\r\n const [error, setError] = useState('');\r\n const [isEnable, setEnable] = useState(false);\r\n\r\n useEffect(() => {\r\n if (showCreateUserModal === true) {\r\n setModalState('newUser');\r\n } else if (showCreateUserModal === 2) {\r\n setModalState('service');\r\n } else if (showCreateUserModal === 3) {\r\n setModalState('success');\r\n } else {\r\n setModalState(null);\r\n }\r\n }, [showCreateUserModal]);\r\n\r\n useEffect(() => {\r\n if (user?.userType.idUserType) {\r\n getUserTypesAsync(user?.userType.idUserType);\r\n }\r\n // eslint-disable-next-line\r\n }, [user]);\r\n\r\n useEffect(() => {\r\n if (showInviteSuccessModal === true) {\r\n setModalState('success');\r\n setShowCreateUserModal(3);\r\n }\r\n // eslint-disable-next-line\r\n }, [showInviteSuccessModal]);\r\n\r\n useEffect(() => {\r\n const hasInvalidUser = usersToInvite.some(\r\n (item) => item.userExist && user.userType?.idUserType === 1 && item.userType?.idUserType === 0\r\n );\r\n setEnable(userServicesSelected.newServices.length > 0 && usersToInvite.length > 0 && !hasInvalidUser);\r\n }, [userServicesSelected.newServices, usersToInvite, user.userType]);\r\n\r\n useEffect(() => {\r\n if (reduxUsersToInvite.length) {\r\n setLocalUsersToInvite(reduxUsersToInvite);\r\n }\r\n }, [reduxUsersToInvite]);\r\n\r\n const handleKeyDown = async (event) => {\r\n if (event.key !== 'Enter' || !inputValue.trim()) return;\r\n\r\n const trimmedInput = inputValue.trim();\r\n let validateInput = null;\r\n\r\n if (isValidateEmail(trimmedInput)) {\r\n validateInput = {\r\n email: trimmedInput,\r\n phone: null,\r\n userType: { idUserType: 1, description: 'Colaborador' },\r\n };\r\n } else if (isValidColombianPhone(trimmedInput)) {\r\n const normalizedPhone = trimmedInput.startsWith('+57') ? trimmedInput : `+57${trimmedInput}`;\r\n validateInput = {\r\n email: null,\r\n phone: normalizedPhone,\r\n userType: { idUserType: 1, description: 'Colaborador' },\r\n };\r\n }\r\n\r\n if (validateInput) {\r\n const exists = usersToInvite.some(\r\n (u) =>\r\n (validateInput.email && u.email === validateInput.email) ||\r\n (validateInput.phone && u.phone === validateInput.phone)\r\n );\r\n\r\n if (!exists) {\r\n await getUserRegisteredAsync({\r\n email: validateInput.email,\r\n phone: validateInput.phone,\r\n });\r\n } else {\r\n setError(language['user_alert_duplicate_user_to_invite']);\r\n }\r\n setInputValue('');\r\n } else {\r\n setError(language['user_alert_invalid_fields_error']);\r\n }\r\n event.preventDefault();\r\n };\r\n\r\n const handleDelete = (identifier) => {\r\n const updatedUsers = usersToInvite.filter((user) => (user.phone || user.email) !== identifier);\r\n setLocalUsersToInvite(updatedUsers);\r\n setUsersToInvite(updatedUsers);\r\n };\r\n\r\n const handleClose = () => {\r\n setModalState(null);\r\n setShowCreateUserModal(false);\r\n setLocalUsersToInvite([]);\r\n setUsersToInvite([]);\r\n setInputValue('');\r\n setError('');\r\n setUserServicesSelected({ key: 'newServices', value: [] });\r\n };\r\n\r\n const openModalService = () => {\r\n setModalState('service');\r\n setShowCreateUserModal(2);\r\n };\r\n\r\n const handleSaveServices = (selectedIds) => {\r\n setUserServicesSelected({ key: 'newServices', value: selectedIds });\r\n setModalState('newUser');\r\n setShowCreateUserModal(true);\r\n };\r\n\r\n const openModalSuccess = async () => {\r\n if (usersToInvite.length && userServicesSelected.newServices.length) {\r\n await loadInviteUserAsync(user.capabilities.show_users_admin_view);\r\n } else {\r\n setError(language['user_alert_incomplete_fields_error']);\r\n }\r\n };\r\n\r\n const goToUserTable = () => {\r\n handleClose();\r\n history.push('/users');\r\n };\r\n\r\n return (\r\n <>\r\n {modalState === 'newUser' && (\r\n \r\n \r\n \r\n
\r\n

\r\n {language['new_user_title_header']}\r\n

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

\r\n {language['new_user_label_picker_services']}\r\n

\r\n \r\n

\r\n {`${userServicesSelected.newServices.length} ${language['users_label_count_services']}`}\r\n

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

\r\n {language['new_user_label_input_users']}\r\n

\r\n setInputValue(e.target.value)}\r\n onKeyDown={handleKeyDown}\r\n placeholder={language['new_user_placeholder_input_users']}\r\n disabled={userRegisteredLoading}\r\n className={`w-100 py-2 px-3 rounded-30 border-fill-medium surface-bg-surface label-small-medium content-default-secondary ${theme}`}\r\n />\r\n {error && (\r\n \r\n {error}\r\n

\r\n )}\r\n
\r\n \r\n {usersToInvite.length === 0 ? (\r\n \r\n
\r\n \r\n
\r\n \r\n {language['new_user_description_empty_state']}\r\n

\r\n \r\n ) : (\r\n
\r\n {usersToInvite.map((item, index) => {\r\n const hasError =\r\n !user.capabilities.show_users_admin_view &&\r\n item.userType?.idUserType !== 17;\r\n return (\r\n \r\n
\r\n \r\n {item.name ? item.name : item.phone || item.email}\r\n

\r\n {hasError ? (\r\n \r\n Este usuario tiene un permiso superior. No\r\n puedes asignar nuevos proyectos.\r\n \r\n }\r\n >\r\n \r\n \r\n No puedes invitar a este usuario\r\n

\r\n \r\n
\r\n \r\n ) : item.userExist ? (\r\n \r\n Podrás cambiar el rol desde el módulo usuarios.\r\n \r\n }\r\n >\r\n \r\n \r\n {language['new_user_label_registered_user']}\r\n

\r\n \r\n
\r\n \r\n ) : null}\r\n \r\n {userTypesSelect && (\r\n
\r\n {hasError ? null : !item.userExist ? (\r\n
\r\n {\r\n const updatedUsers = usersToInvite.map((u) =>\r\n (u.phone || u.email) ===\r\n (item.phone || item.email)\r\n ? {\r\n ...u,\r\n userType: {\r\n idUserType: value,\r\n description:\r\n userTypesSelect.filter(\r\n (type) =>\r\n type.idUserType ===\r\n value\r\n )[0].description,\r\n },\r\n }\r\n : u\r\n );\r\n setLocalUsersToInvite(updatedUsers);\r\n setUsersToInvite(updatedUsers);\r\n }}\r\n disabled={item.userExist}\r\n />\r\n
\r\n \r\n ) : (\r\n \r\n {item.userType?.description}\r\n
\r\n )}\r\n handleDelete(item.phone || item.email)}\r\n className={`column-center align-items-center rounded-30 surface-bg-surface ${theme}`}\r\n style={{ width: '24px', height: '24px' }}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n })}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n

\r\n {language['new_user_button_users_module']}\r\n

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

\r\n {usersLoading ? 'Enviando...' : language['new_user_button_send_invitation']}\r\n

\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {modalState === 'service' && (\r\n {\r\n setModalState('newUser');\r\n setShowCreateUserModal(true);\r\n }}\r\n onSave={handleSaveServices}\r\n />\r\n )}\r\n {modalState === 'success' && (\r\n {\r\n setModalState('newUser');\r\n setShowCreateUserModal(true);\r\n }}\r\n />\r\n )}\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n showCreateUserModal: state.users.showCreateUserModal,\r\n userServicesSelected: state.users.userServicesSelected,\r\n usersToInvite: state.users.usersToInvite,\r\n language: state.shared.language,\r\n theme: state.theme.theme,\r\n user: state.users.user,\r\n userRegisteredLoading: state.users.userRegisteredLoading,\r\n usersLoading: state.users.usersLoading,\r\n showInviteSuccessModal: state.users.showInviteSuccessModal,\r\n userTypesSelect: state.users.userTypesSelect,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setShowCreateUserModal: (payload) => dispatch(usersActions.setShowCreateUserModal(payload)),\r\n setUsersToInvite: (payload) => dispatch(usersActions.setUsersToInvite(payload)),\r\n getUserRegisteredAsync: (payload) => dispatch(usersActions.getUserRegisteredAsync(payload)),\r\n getUserTypesAsync: (payload) => dispatch(usersActions.getUserTypesAsync(payload)),\r\n loadInviteUserAsync: (payload) => dispatch(usersActions.loadInviteUserAsync(payload)),\r\n setUserServicesSelected: (payload) => dispatch(usersActions.setUserServicesSelected(payload)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(NewUser);\r\n","import React, { useState, useEffect, useMemo } from \"react\";\r\nimport { Modal } from \"rsuite\";\r\nimport InputRounded from \"../shared/utilities/InputRounded\";\r\n\r\nconst groupByTypeAndAccount = (arr) => {\r\n return arr.reduce((acc, item) => {\r\n const typeKey = item?.type?.name || \"Unknown\";\r\n const accountKey = item?.account?.name || \"Unknown\";\r\n if (!acc[typeKey]) acc[typeKey] = {};\r\n if (!acc[typeKey][accountKey]) acc[typeKey][accountKey] = [];\r\n acc[typeKey][accountKey].push(item);\r\n return acc;\r\n }, {});\r\n};\r\n\r\nconst UpdateService = ({\r\n theme,\r\n selectedUser,\r\n accounts,\r\n setUserServicesSelected,\r\n updateUserAsync,\r\n language,\r\n onClose,\r\n show,\r\n selectedAccount,\r\n currentUser,\r\n loadUsersAsync,\r\n}) => {\r\n const [searchQuery, setSearchQuery] = useState(\"\");\r\n const [selectedData, setSelectedData] = useState([]);\r\n const [initialServices, setInitialServices] = useState([]);\r\n\r\n useEffect(() => {\r\n const initialIds = Array.isArray(selectedUser?.servicesIds)\r\n ? selectedUser.servicesIds\r\n : [];\r\n setInitialServices(initialIds);\r\n setSelectedData(initialIds);\r\n }, [selectedUser]);\r\n\r\n const handleClose = () => {\r\n setUserServicesSelected({ key: \"updatedServices\", value: initialServices });\r\n onClose();\r\n };\r\n\r\n const handleSave = async () => {\r\n const hasChanges =\r\n JSON.stringify(selectedData.sort()) !==\r\n JSON.stringify(initialServices.sort());\r\n if (hasChanges) {\r\n const payload = {\r\n user: {\r\n ...selectedUser,\r\n servicesIds: selectedData,\r\n idUserType: selectedUser?.idRol || selectedUser?.userType?.idUserType,\r\n },\r\n navigation: { navigate: () => {} },\r\n };\r\n try {\r\n await updateUserAsync(payload);\r\n setUserServicesSelected({ key: \"updatedServices\", value: selectedData });\r\n await loadUsersAsync({\r\n id_services: accounts.find(acc => acc.idAccount === selectedAccount)?.services.map(service => service.idService) || [],\r\n page: 1,\r\n });\r\n } catch (error) {\r\n }\r\n }\r\n onClose();\r\n };\r\n\r\n const handleServiceSelection = (service) => {\r\n const isSelected = selectedData.includes(service.idService);\r\n const isInitial = initialServices.includes(service.idService);\r\n\r\n if (!currentUser.capabilities?.show_users_admin_view && isInitial) {\r\n return;\r\n }\r\n\r\n if (isSelected) {\r\n setSelectedData(selectedData.filter((id) => id !== service.idService));\r\n } else {\r\n setSelectedData([...selectedData, service.idService]);\r\n }\r\n };\r\n\r\n const handleSelectAll = (group) => {\r\n const allServiceIds = Object.values(group.accounts)\r\n .flat()\r\n .map((service) => service.idService);\r\n\r\n const areAllSelected = allServiceIds.every(\r\n (id) => selectedData.includes(id) || initialServices.includes(id)\r\n );\r\n\r\n if (areAllSelected) {\r\n setSelectedData((prevSelected) =>\r\n prevSelected.filter(\r\n (id) => !allServiceIds.includes(id) || initialServices.includes(id)\r\n )\r\n );\r\n } else {\r\n setSelectedData((prevSelected) => [\r\n ...new Set([...prevSelected, ...allServiceIds]),\r\n ]);\r\n }\r\n };\r\n\r\n const filteredServices = useMemo(() => {\r\n if (!Array.isArray(accounts) || accounts.length === 0 || !selectedAccount) {\r\n return [];\r\n }\r\n\r\n const account = accounts.find((acc) => acc.idAccount === selectedAccount);\r\n if (!account || !Array.isArray(account.services)) {\r\n return [];\r\n }\r\n\r\n const services = account.services.map((service) => ({\r\n ...service,\r\n account: { name: account.name },\r\n }));\r\n\r\n if (!currentUser.capabilities?.show_users_admin_view) {\r\n return services.filter((service) =>\r\n initialServices.includes(service.idService)\r\n );\r\n }\r\n\r\n return services.filter((service) => {\r\n const matchesSearch = searchQuery\r\n ? (service.name || \"\").toLowerCase().includes(searchQuery.toLowerCase()) ||\r\n (service.address || \"\").toLowerCase().includes(searchQuery.toLowerCase()) ||\r\n (service.account?.name || \"\").toLowerCase().includes(searchQuery.toLowerCase())\r\n : true;\r\n return matchesSearch;\r\n });\r\n }, [accounts, searchQuery, selectedAccount, currentUser, initialServices]);\r\n\r\n const groupedServices = useMemo(() => {\r\n const groupedByTypeAndAccount = groupByTypeAndAccount(filteredServices);\r\n\r\n const result = Object.keys(groupedByTypeAndAccount).map((type) => ({\r\n key: type,\r\n accounts: groupedByTypeAndAccount[type],\r\n }));\r\n\r\n return result;\r\n }, [filteredServices]);\r\n\r\n const hasChanges =\r\n JSON.stringify(selectedData.sort()) !==\r\n JSON.stringify(initialServices.sort());\r\n\r\n if (!show) return null;\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n Servicios asignados\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {selectedUser?.name || \"\"}\r\n
\r\n
|
\r\n
\r\n {selectedUser?.rol || \"\"}\r\n
\r\n
\r\n {currentUser.capabilities?.show_users_admin_view && (\r\n setSearchQuery(target.value)}\r\n />\r\n )}\r\n {groupedServices.length > 0 ? (\r\n groupedServices.map((group, index) => (\r\n
\r\n
\r\n
\r\n \r\n

\r\n {group.key}\r\n

\r\n
\r\n {currentUser.capabilities?.show_users_admin_view && (\r\n handleSelectAll(group)}\r\n >\r\n {Object.values(group.accounts)\r\n .flat()\r\n .every((s) =>\r\n selectedData.includes(s.idService) ||\r\n initialServices.includes(s.idService)\r\n )\r\n ? language[\"dashboard_label_picker_services_all_unselected\"] ||\r\n \"Deseleccionar todos\"\r\n : language[\"dashboard_label_picker_services_all_selected\"] ||\r\n \"Seleccionar todos\"}\r\n

\r\n )}\r\n
\r\n {Object.keys(group.accounts).map((accountName, accountIndex) => (\r\n
\r\n {group.accounts[accountName].map((service, serviceIndex) => {\r\n const isSelected = selectedData.includes(service.idService);\r\n const isInitial = initialServices.includes(service.idService);\r\n return (\r\n handleServiceSelection(service)}\r\n style={{\r\n cursor:\r\n !currentUser.capabilities?.show_users_admin_view && isInitial\r\n ? \"not-allowed\"\r\n : \"pointer\",\r\n }}\r\n >\r\n
\r\n \r\n {service.name}\r\n

\r\n \r\n {service.address || \"Sin dirección\"}\r\n

\r\n
\r\n \r\n
\r\n );\r\n })}\r\n
\r\n ))}\r\n
\r\n ))\r\n ) : (\r\n

\r\n {language[\"dashboard_empty_state_picker_services\"] || \"No hay proyectos disponibles\"}\r\n

\r\n )}\r\n \r\n
\r\n
\r\n \r\n

\r\n {selectedData.length} {language[\"users_label_count_services\"] || \"seleccionados\"}\r\n

\r\n
\r\n {currentUser.capabilities?.show_users_admin_view ? (\r\n \r\n

\r\n {language[\"dashboard_filter_done_button\"] || \"Hecho\"}\r\n

\r\n \r\n ) : null}\r\n
\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default UpdateService;","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport * as usersActions from \"../../store/actions/Users\";\r\nimport * as sharedActions from \"../../store/actions/Shared\";\r\nimport Select from \"../shared/utilities/Select\";\r\nimport NewUser from './NewUser';\r\nimport UpdateService from './UpdateService';\r\nimport ContentLoader from 'react-content-loader';\r\n\r\nconst AccountHeader = ({ accountName, theme }) => (\r\n \r\n \r\n
\r\n
\r\n {accountName}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n);\r\n\r\nfunction UserTable(props) {\r\n const {\r\n filteredUsers,\r\n theme,\r\n setShowBlackScreen,\r\n deleteUserAsync,\r\n accounts,\r\n updateUserAsync,\r\n selectedAccount,\r\n userTypes,\r\n loadUserTypesAsync,\r\n onSort,\r\n } = props;\r\n\r\n const [showUpdateServiceModal, setShowUpdateServiceModal] = useState(false);\r\n const [selectedUserForUpdate, setSelectedUserForUpdate] = useState(null);\r\n\r\n const selectedAccountName = useMemo(() => {\r\n if (selectedAccount) {\r\n const account = accounts.find(acc => acc.idAccount === selectedAccount);\r\n return account && account.name ? account.name : \"Cuenta no encontrada\";\r\n }\r\n return \"Cuenta no encontrada\";\r\n }, [selectedAccount, accounts]);\r\n\r\n const paginatedUsersForAccount = useMemo(() => {\r\n if (!Array.isArray(filteredUsers) || !selectedAccount) return [];\r\n return filteredUsers.filter(user => user.idAccount === selectedAccount);\r\n }, [filteredUsers, selectedAccount]);\r\n\r\n useEffect(() => {\r\n loadUserTypesAsync();\r\n }, [loadUserTypesAsync]);\r\n\r\n const userNameTemplate = (rowData) => (\r\n
\r\n

\r\n {rowData.name || 'Sin nombre'}\r\n

\r\n
\r\n );\r\n\r\n const userAreaTemplate = (rowData) => (\r\n
\r\n

\r\n {rowData.area || 'Sin cargo'}\r\n

\r\n
\r\n );\r\n\r\n const userRolTemplate = (rowData) => {\r\n const options = userTypes.map(userType => ({\r\n label: userType.description,\r\n value: userType.idUserType\r\n }));\r\n\r\n const userRole = userTypes.find(userType => userType.idUserType === rowData.idUserType || userType.idUserType === rowData.idRol)?.description || 'Desconocido';\r\n\r\n return (\r\n
\r\n
\r\n {props.currentUser.capabilities?.show_users_admin_view ? (\r\n {\r\n if (updateUserAsync) {\r\n const updatedUser = {\r\n ...rowData,\r\n idUserType: value,\r\n rol: userTypes.find(userType => userType.idUserType === value)?.description || 'Desconocido'\r\n };\r\n await updateUserAsync({ user: updatedUser });\r\n }\r\n }}\r\n />\r\n ) : (\r\n
\r\n

\r\n {userRole}\r\n

\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n };\r\n\r\n const userProjectsTemplate = (rowData) => {\r\n const totalServices = rowData.servicesIds ? rowData.servicesIds.length : 0;\r\n\r\n return (\r\n
\r\n {\r\n setSelectedUserForUpdate(rowData);\r\n setShowUpdateServiceModal(true);\r\n setShowBlackScreen(true);\r\n }}\r\n >\r\n

\r\n {totalServices}\r\n

\r\n {props.currentUser.capabilities?.show_users_admin_view ? (\r\n \r\n ) : null}\r\n \r\n
\r\n );\r\n };\r\n\r\n const userEmailTemplate = (rowData) => (\r\n
\r\n

\r\n {rowData.email || 'Sin email'}\r\n

\r\n
\r\n );\r\n\r\n const userPhoneTemplate = (rowData) => (\r\n
\r\n

\r\n {rowData.phone || 'Sin teléfono'}\r\n

\r\n
\r\n );\r\n\r\n const userRecordTemplate = (rowData) => (\r\n
\r\n

\r\n {rowData.recordDate || 'Sin actividad'}\r\n

\r\n
\r\n );\r\n\r\n const handleDelete = (rowData) => {\r\n if (selectedAccount) {\r\n deleteUserAsync(rowData.idUser, selectedAccount);\r\n }\r\n };\r\n\r\n const userDeleteTemplate = (rowData) => {\r\n return (\r\n
\r\n handleDelete(rowData)}\r\n className={`row-center align-items-center surface-bg-on-surface border-fill-medium rounded-pill ${theme}`}\r\n style={{ height: 32, width: 32 }}\r\n >\r\n \r\n \r\n
\r\n );\r\n };\r\n\r\n const columnWidths = {\r\n name: '18%',\r\n area: '13%',\r\n role: '15%',\r\n projects: '9%',\r\n email: '18%',\r\n phone: '12%',\r\n lastActivity: '20%',\r\n delete: '10%',\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.currentUser.capabilities?.show_users_admin_view ? (\r\n \r\n ) : null}\r\n \r\n \r\n \r\n {paginatedUsersForAccount.length <= 0 ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n {selectedAccount && }\r\n {paginatedUsersForAccount.length > 0 ? (\r\n paginatedUsersForAccount.map((user, userIndex) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.currentUser.capabilities?.show_users_admin_view && (\r\n \r\n )}\r\n \r\n ))\r\n ) : null}\r\n \r\n )}\r\n \r\n
\r\n
onSort(\"name\")}>\r\n

Nombre

\r\n \r\n
\r\n
\r\n
onSort(\"area\")}>\r\n

Cargo

\r\n \r\n
\r\n
\r\n
onSort(\"rol\")}>\r\n

Rol

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

Servicios

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

Correo

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

Teléfono

\r\n
\r\n
\r\n
onSort(\"recordDate\")}>\r\n

Última actividad

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

Eliminar

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
{userNameTemplate(user)}{userAreaTemplate(user)}{userRolTemplate(user)}{userProjectsTemplate(user)}{userEmailTemplate(user)}{userPhoneTemplate(user)}{userRecordTemplate(user)}{userDeleteTemplate(user)}
\r\n {props.showCreateUserModal && }\r\n {showUpdateServiceModal && (\r\n {\r\n setShowUpdateServiceModal(false);\r\n setShowBlackScreen(false);\r\n }}\r\n show={showUpdateServiceModal}\r\n selectedAccount={props.selectedAccount}\r\n currentUser={props.currentUser}\r\n loadUsersAsync={props.loadUsersAsync}\r\n />\r\n )}\r\n
\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n language: state.shared.language,\r\n theme: state.theme.theme,\r\n usersLoading: state.users.usersLoading,\r\n showBlackScreen: state.shared.showBlackScreen,\r\n currentUser: state.users.user,\r\n accounts: state.accounts.totalAccounts,\r\n showCreateUserModal: state.users.showCreateUserModal,\r\n selectedAccount: state.users.accountSelectedUsersTable,\r\n userTypes: state.users.userTypes,\r\n currentPage: state.users.currentPage,\r\n users: state.users.users,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n loadUsersAsync: (payload) => dispatch(usersActions.loadUsersAsync(payload)),\r\n setShowCreateUserModal: (payload) => dispatch(usersActions.setShowCreateUserModal(payload)),\r\n deleteUserAsync: (idUser, idAccount) => dispatch(usersActions.deleteUserAsync(idUser, idAccount)),\r\n updateUserAsync: (payload) => dispatch(usersActions.updateUserAsync(payload)),\r\n loadUserTypesAsync: () => dispatch(usersActions.loadUserTypesAsync()),\r\n setShowBlackScreen: (payload) => dispatch(sharedActions.setShowBlackScreen(payload)),\r\n setUserServicesSelected: (payload) => dispatch(usersActions.setUserServicesSelected(payload)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(UserTable);","import React from \"react\";\r\n\r\n\r\nconst Pagination = ({ totalPages, currentPage, onPageChange, theme }) => {\r\n return (\r\n
\r\n \r\n {Array.from({ length: totalPages }, (_, index) => (\r\n \r\n ))} \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Pagination;\r\n","import React, { useState, useRef, useEffect, useMemo } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport * as servicesActions from \"../../store/actions/Services\";\r\nimport * as usersActions from \"../../store/actions/Users\";\r\n\r\nimport Header from \"../shared/Header\";\r\nimport UserTable from \"./UserTable\";\r\nimport Pagination from \"./UserPagination\";\r\nimport NewUser from './NewUser';\r\nimport InputRounded from '../shared/utilities/InputRounded';\r\nimport Select from \"../shared/utilities/Select\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst Users = (props) => {\r\n const {\r\n theme,\r\n language,\r\n users,\r\n currentPage,\r\n totalPages,\r\n setShowCreateUserModal,\r\n totalUsers,\r\n selectedAccount,\r\n setSelectedAccount,\r\n accounts,\r\n loadUsersAsync,\r\n currentUser,\r\n userTypes,\r\n updateUserAsync,\r\n deleteUserAsync,\r\n loadUserTypesAsync,\r\n userServicesSelected,\r\n setUserServicesSelected,\r\n } = props;\r\n\r\n const [searchQuery, setSearchQuery] = useState('');\r\n const [localSelectedAccount, setLocalSelectedAccount] = useState(selectedAccount);\r\n const [sortConfig, setSortConfig] = useState({ field: null, direction: 'asc' });\r\n const invoicesContainerRef = useRef(null);\r\n\r\n useEffect(() => {\r\n if (accounts && accounts.length > 0 && !localSelectedAccount) {\r\n setLocalSelectedAccount(accounts[0].idAccount);\r\n setSelectedAccount(accounts[0].idAccount);\r\n }\r\n }, [accounts, localSelectedAccount, setSelectedAccount]);\r\n\r\n useEffect(() => {\r\n if (localSelectedAccount) {\r\n loadUsersAsync({\r\n id_services: accounts.find(acc => acc.idAccount === localSelectedAccount)?.services.map(service => service.idService) || [],\r\n page: currentPage,\r\n });\r\n }\r\n }, [localSelectedAccount, currentPage, loadUsersAsync, accounts]);\r\n\r\n const sortedUsers = useMemo(() => {\r\n if (!sortConfig.field) return users;\r\n\r\n const sorted = [...users];\r\n sorted.sort((a, b) => {\r\n let valueA = a[sortConfig.field] || '';\r\n let valueB = b[sortConfig.field] || '';\r\n\r\n if (sortConfig.field === 'rol') {\r\n valueA = userTypes.find(ut => ut.idUserType === a.idUserType)?.description || '';\r\n valueB = userTypes.find(ut => ut.idUserType === b.idUserType)?.description || '';\r\n }\r\n\r\n valueA = valueA.toString().toLowerCase();\r\n valueB = valueB.toString().toLowerCase();\r\n\r\n return sortConfig.direction === 'asc'\r\n ? valueA.localeCompare(valueB)\r\n : valueB.localeCompare(valueA);\r\n });\r\n return sorted;\r\n }, [users, sortConfig, userTypes]);\r\n\r\n const filteredUsers = useMemo(() => {\r\n if (!searchQuery) return sortedUsers;\r\n const lowerQuery = searchQuery.toLowerCase();\r\n return sortedUsers.filter(user =>\r\n (user.name?.toLowerCase() || \"\").includes(lowerQuery) ||\r\n (user.email?.toLowerCase() || \"\").includes(lowerQuery) ||\r\n (user.phone?.toLowerCase() || \"\").includes(lowerQuery)\r\n );\r\n }, [sortedUsers, searchQuery]);\r\n\r\n const openNewUser = () => {\r\n setShowCreateUserModal(true);\r\n };\r\n\r\n const handleSearchChange = (e) => {\r\n setSearchQuery(e.target.value);\r\n };\r\n\r\n const handlePageChange = (newPage) => {\r\n props.setCurrentPageUsers(newPage);\r\n };\r\n\r\n const handleSort = (field) => {\r\n setSortConfig(prev => ({\r\n field,\r\n direction: prev.field === field && prev.direction === 'asc' ? 'desc' : 'asc'\r\n }));\r\n };\r\n const [localLoading, setLocalLoading] = useState(false);\r\n useEffect(() => {\r\n if (localSelectedAccount) {\r\n setLocalLoading(true);\r\n loadUsersAsync({\r\n id_services: accounts.find(acc => acc.idAccount === localSelectedAccount)?.services.map(service => service.idService) || [],\r\n page: currentPage,\r\n }).finally(() => {\r\n setLocalLoading(false);\r\n });\r\n }\r\n }, [localSelectedAccount, currentPage, loadUsersAsync, accounts]);\r\n return (\r\n
\r\n
\r\n
\r\n

{language.users_description_header}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ({ label: acc.name, value: acc.idAccount })) : []}\r\n onChange={(value) => {\r\n setLocalSelectedAccount(value);\r\n setSelectedAccount(value);\r\n }}\r\n background='surface-bg-surface'\r\n width={'40vh'}\r\n height={150}\r\n />\r\n
\r\n
\r\n {totalUsers ? `${totalUsers} usuarios` : null}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {props.showCreateUserModal && }\r\n
\r\n {localLoading || totalPages < 1\r\n ? (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n : (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n language: state.shared.language,\r\n theme: state.theme.theme,\r\n users: state.users.users,\r\n currentPage: state.users.currentPage,\r\n totalPages: state.users.totalPagesUsers,\r\n totalUsers: state.users.totalUsers,\r\n accounts: state.accounts.totalAccounts,\r\n showCreateUserModal: state.users.showCreateUserModal,\r\n currentUser: state.users.user,\r\n userTypes: state.users.userTypes,\r\n userServicesSelected: state.users.userServicesSelected,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setActiveServicesEnergy: (payload) => dispatch(servicesActions.setActiveServicesEnergy(payload)),\r\n setCurrentPageUsers: (payload) => dispatch(usersActions.setCurrentPageUsers(payload)),\r\n setSelectedAccount: (payload) => dispatch(usersActions.setAccountSelectedUsersTable(payload)),\r\n loadUsersAsync: (payload) => dispatch(usersActions.loadUsersAsync(payload)),\r\n setShowCreateUserModal: (payload) => dispatch(usersActions.setShowCreateUserModal(payload)),\r\n deleteUserAsync: (idUser, idAccount) => dispatch(usersActions.deleteUserAsync(idUser, idAccount)),\r\n updateUserAsync: (payload) => dispatch(usersActions.updateUserAsync(payload)),\r\n loadUserTypesAsync: () => dispatch(usersActions.loadUserTypesAsync()),\r\n setUserServicesSelected: (payload) => dispatch(usersActions.setUserServicesSelected(payload)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Users);","import * as invoices from '../creators/Invoices';\r\n\r\nimport { SETData, GETData, GETS3PublicUrl } from '../../services/WebServices';\r\n\r\nexport const setInvoices = payload => {\r\n return {\r\n type: invoices.SET_INVOICES,\r\n payload\r\n }\r\n}\r\n\r\nexport const setInvoicesSummary = payload => {\r\n return {\r\n type: invoices.SET_INVOICES_SUMMARY,\r\n payload\r\n }\r\n}\r\n\r\nexport const setInvoicesSummaryLoading = payload => {\r\n return {\r\n type: invoices.SET_INVOICES_SUMMARY_LOADING,\r\n payload\r\n }\r\n}\r\n\r\nexport const setMoreInvoices = payload => {\r\n return {\r\n type: invoices.SET_MORE_INVOICES,\r\n payload\r\n }\r\n}\r\n\r\nexport const updateInvoices = payload => {\r\n return {\r\n type: invoices.UPDATE_INVOICES,\r\n payload\r\n }\r\n}\r\n\r\nexport const setInvoicesLoading = payload => {\r\n return {\r\n type: invoices.SET_INVOICES_LOADING,\r\n payload\r\n }\r\n}\r\n\r\nexport const setDelayedInvoicesLoading = payload => {\r\n return {\r\n type: invoices.SET_DELAYED_INVOICES_LOADING,\r\n payload\r\n }\r\n}\r\n\r\nexport const setMoreInvoicesLoading = payload => {\r\n return {\r\n type: invoices.SET_MORE_INVOICES_LOADING,\r\n payload\r\n }\r\n}\r\n\r\nexport const setInvoicesContentLoading = payload => {\r\n return {\r\n type: invoices.SET_INVOICES_CONTENT_LOADING,\r\n payload\r\n }\r\n}\r\n\r\nexport const setInvoicesDate = payload => {\r\n return {\r\n type: invoices.SET_INVOICES_DATE,\r\n payload\r\n }\r\n}\r\n\r\nexport const setSelectedInvoices = payload => {\r\n return {\r\n type: invoices.SET_SELECTED_INVOICES,\r\n payload\r\n }\r\n}\r\n\r\nexport const setBanks = payload => {\r\n return {\r\n type: invoices.SET_INVOICES_BANKS,\r\n payload\r\n }\r\n}\r\n\r\nexport const setInvoicesToPay = payload => {\r\n return {\r\n type: invoices.SET_INVOICES_TO_PAY,\r\n payload\r\n }\r\n}\r\n\r\nexport const setInvoicesContent = payload => {\r\n return {\r\n type: invoices.SET_INVOICES_CONTENT,\r\n payload\r\n }\r\n}\r\n\r\nexport const setShowInvoiceDetails = payload => {\r\n return {\r\n type: invoices.SET_SHOW_INVOICE_DETAILS,\r\n payload\r\n }\r\n}\r\n\r\nexport const setShowInvoiceDetailsContent = payload => {\r\n return {\r\n type: invoices.SET_SHOW_INVOICE_DETAILS_CONTENT,\r\n payload\r\n }\r\n}\r\n\r\nexport const setShowInvoiceDetailsIndex = payload => {\r\n return {\r\n type: invoices.SET_SHOW_INVOICE_DETAILS_INDEX,\r\n payload\r\n }\r\n}\r\n\r\nexport const setInvoicesPeriods = payload => {\r\n return {\r\n type: invoices.SET_INVOICES_PERIODS,\r\n payload\r\n }\r\n}\r\n\r\nexport const setFilterStatus = payload => {\r\n return {\r\n type: invoices.SET_INVOICES_FILTER_STATUS,\r\n payload\r\n }\r\n}\r\n\r\nexport const setTotalInvoicesByPeriod = payload => {\r\n return {\r\n type: invoices.SET_INVOICES_TOTAL_INVOICES_BY_PERIOD,\r\n payload\r\n }\r\n}\r\n\r\nexport const setCurrentPage = payload => {\r\n return {\r\n type: invoices.SET_INVOICES_CURRENT_PAGE,\r\n payload\r\n }\r\n}\r\n\r\nexport const setSortField = payload => {\r\n return {\r\n type: invoices.SET_INVOICES_SORT_FIELD,\r\n payload\r\n }\r\n}\r\n\r\nexport const setSortOrder = payload => {\r\n return {\r\n type: invoices.SET_INVOICES_SORT_ORDER,\r\n payload\r\n }\r\n}\r\n\r\nexport const setShowPay = payload => {\r\n return {\r\n type: invoices.SET_SHOW_PAY,\r\n payload\r\n }\r\n}\r\n\r\nexport const setEmptyPaginationResult = payload => {\r\n return {\r\n type: invoices.SET_EMPTY_PAGINATION_RESULT,\r\n payload\r\n }\r\n}\r\n\r\nexport const loadInvoicesAsync = (payload = null) => {\r\n return async (dispatch, getState) => {\r\n let emptyPaginationResult = getState().invoices.emptyPaginationResult;\r\n if (emptyPaginationResult) return;\r\n\r\n dispatch(setInvoices([]))\r\n dispatch(setMoreInvoicesLoading(true))\r\n let invoicesPeriods = getState().invoices.invoicesPeriods;\r\n const userId = getState().users.user.idUser;\r\n\r\n const servicesIds = getState().services.activeServicesInvoices\r\n .map(s => s.idService);\r\n\r\n const loadInvoices = () => {\r\n const metadata = {\r\n id_user: userId,\r\n id_services: servicesIds,\r\n sortField: payload?.sortField ? payload.sortField : 'id_service',\r\n sortOrder: payload?.sortOrder ? payload.sortOrder : 0,\r\n limit: 20,\r\n offset: 0,\r\n searchText: payload?.searchText ? payload?.searchText : '',\r\n pendingInvoices: payload.pendingInvoices,\r\n month: payload?.month ? payload.month : null,\r\n year: payload?.year ? payload.year : null,\r\n };\r\n\r\n SETData('bills/detail', 'POST', metadata)\r\n .then(response => {\r\n if (response !== null) {\r\n if (response.length === 0) {\r\n dispatch(setEmptyPaginationResult(true))\r\n return;\r\n };\r\n let periodId = response[0].id_period;\r\n\r\n let index = invoicesPeriods.findIndex(i => i.id_period === periodId);\r\n invoicesPeriods[index].invoices = response;\r\n setInvoicesPeriods([...invoicesPeriods]);\r\n const invoices = response;\r\n dispatch(setInvoices(JSON.parse(JSON.stringify(invoices)).map(i => ({ ...i, loadingDelay: true }))));\r\n dispatch(setDelayedInvoicesLoading(true))\r\n SETData('bills/detail/delay', 'POST', metadata)\r\n .then(response => {\r\n if (response === null) throw new Error(\"Error getting delay detail invoices\");\r\n if (response.length === 0) {\r\n dispatch(setEmptyPaginationResult(true))\r\n return;\r\n };\r\n if (invoices.length !== response.length) throw new Error(\"Delayed and not delayed detail are not the same.\");\r\n dispatch(updateInvoices(response));\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n })\r\n .finally(() => { dispatch(setDelayedInvoicesLoading(false)) })\r\n };\r\n })\r\n .catch(response => console.error(response))\r\n .finally(() => {\r\n dispatch(setInvoicesLoading(false))\r\n dispatch(setMoreInvoicesLoading(false))\r\n });\r\n };\r\n\r\n loadInvoices()\r\n };\r\n};\r\n\r\nexport const loadInvoicesSummaryAsync = (payload = null) => {\r\n return async (dispatch, getState) => {\r\n dispatch(setInvoicesSummaryLoading(true))\r\n\r\n const userId = getState().users.user.idUser;\r\n\r\n const servicesIds = getState()\r\n .services\r\n .activeServicesInvoices\r\n .map(s => s.idService);\r\n\r\n const metadata = {\r\n id_user: userId,\r\n id_services: servicesIds,\r\n month: payload?.month ? payload.month : null,\r\n year: payload?.year ? payload.year : null,\r\n }\r\n SETData('bills/detail/summary', 'POST', metadata)\r\n .then(response => {\r\n if (!response.length) return;\r\n const summary = response[0];\r\n dispatch(setInvoicesSummary({\r\n total_bills: parseInt(summary?.total_bills || 0),\r\n pending_bills: parseInt(summary?.pending_bills || 0),\r\n total_consumption: summary?.total_consumption ? parseFloat(parseFloat(summary.total_consumption).toFixed(2)) : 0,\r\n total_payment: summary?.total_payment ? parseFloat(parseFloat(summary.total_payment).toFixed(2)) : 0,\r\n id_bills_array: summary?.id_bills_array ? summary?.id_bills_array.map(s => ({ value: parseInt(s), selected: payload.selectAll })) : []\r\n }))\r\n })\r\n .catch(response => console.error(response))\r\n .finally(() => { dispatch(setInvoicesSummaryLoading(false)) })\r\n }\r\n}\r\n\r\nexport const loadMoreInvoicesAsync = (payload = null) => {\r\n return async (dispatch, getState) => {\r\n\r\n let emptyPaginationResult = getState().invoices.emptyPaginationResult;\r\n if (emptyPaginationResult) return;\r\n const moreInvoicesLoading = getState().invoices.moreInvoicesLoading;\r\n if (moreInvoicesLoading) return;\r\n dispatch(setMoreInvoicesLoading(true))\r\n let invoicesPeriods = getState().invoices.invoicesPeriods;\r\n\r\n const userId = getState().users.user.idUser;\r\n\r\n const servicesIds = getState().services.activeServicesInvoices\r\n .map(s => s.idService);\r\n\r\n const loadInvoices = () => {\r\n const metadata = {\r\n id_user: userId,\r\n id_services: servicesIds,\r\n sortField: payload?.sortField ? payload.sortField : 'id_service',\r\n sortOrder: payload?.sortOrder ? payload.sortOrder : 0,\r\n limit: payload.limit ? payload.limit : 20,\r\n offset: payload.offset,\r\n searchText: payload?.searchText ? payload.searchText : '',\r\n pendingInvoices: payload.pendingInvoices,\r\n month: payload?.month ? payload.month : null,\r\n year: payload?.year ? payload.year : null,\r\n };\r\n SETData('bills/detail', 'POST', metadata)\r\n .then(response => {\r\n if (response !== null) {\r\n\r\n if (response.length === 0) {\r\n dispatch(setEmptyPaginationResult(true))\r\n return;\r\n };\r\n\r\n let periodId = response[0].id_period;\r\n\r\n let index = invoicesPeriods.findIndex(i => i.id_period === periodId);\r\n invoicesPeriods[index].invoices = response;\r\n setInvoicesPeriods([...invoicesPeriods]);\r\n const invoices = response;\r\n const clonededInvoices = JSON.parse(JSON.stringify(invoices));\r\n dispatch(setMoreInvoices(clonededInvoices.map(i => ({ ...i, loadingDelay: true }))));\r\n dispatch(setDelayedInvoicesLoading(true))\r\n SETData('bills/detail/delay', 'POST', metadata)\r\n .then(response => {\r\n if (response === null) throw new Error(\"Error getting delay detail invoices\");\r\n if (response.length === 0) {\r\n dispatch(setEmptyPaginationResult(true));\r\n return;\r\n }\r\n if (invoices.length !== response.length) throw new Error(\"Delayed and not delayed detail are not the same.\");\r\n dispatch(updateInvoices(response));\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n })\r\n .finally(() => { dispatch(setDelayedInvoicesLoading(false)) })\r\n } else {\r\n dispatch(setInvoices([]));\r\n }\r\n })\r\n .catch(response => console.error(response))\r\n .finally(() => dispatch(setMoreInvoicesLoading(false)));\r\n };\r\n loadInvoices()\r\n };\r\n};\r\n\r\nexport const loadInvoicesPeriodsAsync = () => {\r\n return (dispatch, getState) => {\r\n\r\n const userId = getState().users.user.idUser;\r\n\r\n const servicesIds = getState().services.activeServicesInvoices\r\n .map(s => s.idService);\r\n\r\n const metadata = {\r\n id_user: userId,\r\n id_services: servicesIds\r\n };\r\n\r\n SETData('bills/periods/total', 'POST', metadata)\r\n .then(response => {\r\n if (response !== null) {\r\n dispatch(setInvoicesPeriods(response));\r\n }\r\n })\r\n .catch(response => console.error(response))\r\n\r\n };\r\n};\r\n\r\nexport const loadBankDataAsync = () => {\r\n return (dispatch) => {\r\n\r\n GETData(\"payvalida/banks\", \"GET\")\r\n .then(response => {\r\n if (response !== null) {\r\n dispatch(setBanks(response.DATA));\r\n }\r\n })\r\n .catch(response => console.error(response));\r\n\r\n }\r\n};\r\n\r\nexport const loadInvoiceDetailsContent = () => {\r\n return (dispatch, getState) => {\r\n\r\n let invoicesPeriods = getState().invoices.invoicesPeriods;\r\n\r\n const date = getState().invoices.invoicesDate;\r\n const invoicesContent = getState().invoices.invoicesContent;\r\n const invoiceDetails = getState().invoices.invoiceDetails;\r\n const activeServicesInvoices = getState().services.activeServicesInvoices.sort((a, b) => a.idService - b.idService);\r\n\r\n let periodInfo = invoicesPeriods.find(i => i.id_period === invoiceDetails.id_period);\r\n let content = periodInfo.invoicesContent?.find(s => s.id_bill === invoiceDetails.id_bill);\r\n\r\n const periodDate = new Date(periodInfo.billing_date);\r\n\r\n if (content !== undefined) {\r\n\r\n dispatch(setShowInvoiceDetailsContent(content));\r\n dispatch(setInvoicesContentLoading(false));\r\n\r\n } else {\r\n\r\n dispatch(setInvoicesContentLoading(true));\r\n\r\n const userId = getState().users.user.idUser;\r\n\r\n const servicesIdsLoaded = periodInfo.invoicesContent?.map(i => i.id_service) || [];\r\n\r\n const servicesIds = activeServicesInvoices\r\n .filter(i => !servicesIdsLoaded.includes(i.idService))\r\n .map(s => s.idService).slice(0, 6);\r\n\r\n servicesIds.push(invoiceDetails.id_service)\r\n\r\n const metadata = {\r\n id_user: userId,\r\n id_services: [...new Set(servicesIds)],\r\n month: periodDate.getMonth() + 1,\r\n year: periodDate.getFullYear()\r\n };\r\n\r\n SETData('bills/content', 'POST', metadata)\r\n .then(response => {\r\n if (response !== null) {\r\n\r\n if (periodDate.getMonth() !== date.getMonth() && periodDate.getFullYear() !== date.getFullYear()) {\r\n dispatch(setInvoicesContent(response));\r\n } else {\r\n dispatch(setInvoicesContent([...invoicesContent, ...response]));\r\n }\r\n\r\n content = response.find(s => s.id_service === invoiceDetails.id_service);\r\n dispatch(setShowInvoiceDetailsContent(content ? content : null));\r\n content && dispatch(setInvoicesContentLoading(false));\r\n\r\n let index = invoicesPeriods.findIndex(i => i.id_period === invoiceDetails.id_period);\r\n invoicesPeriods[index].invoicesContent = [...invoicesPeriods[index].invoicesContent || [], ...response];\r\n setInvoicesPeriods([...invoicesPeriods]);\r\n\r\n }\r\n })\r\n .catch(response => console.error(response));\r\n\r\n }\r\n\r\n }\r\n}\r\n\r\nexport const downloadInvoiceAsync = (payload) => {\r\n return async () => {\r\n\r\n const url = await GETS3PublicUrl(payload);\r\n\r\n await fetch(url)\r\n .then(response => response.blob())\r\n .then(blob => {\r\n\r\n const n = payload.lastIndexOf('/');\r\n const filename = payload.substring(n + 1);\r\n\r\n const link = document.createElement(\"a\");\r\n\r\n link.href = URL.createObjectURL(blob);\r\n link.download = filename;\r\n link.click();\r\n })\r\n .catch(console.error);\r\n }\r\n}\r\n\r\n","import * as energy from '../creators/Energy';\r\n\r\nimport * as servicesActions from './Services';\r\nimport * as invoicesActions from './Invoices';\r\nimport * as accountsActions from './Accounts';\r\n\r\nimport { startOfYear, subYears, getUnixTime } from 'date-fns';\r\n\r\nimport { SETData, GETS3PublicUrl } from '../../services/WebServices';\r\n\r\nimport { Alert } from 'rsuite';\r\n\r\nexport const setGraphData = payload => {\r\n return {\r\n type: energy.SET_GRAPH_DATA,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setGraphloading= payload => {\r\n return {\r\n type: energy.SET_GRAPH_LOADING,\r\n payload\r\n }\r\n}\r\n\r\nexport const setIntervalGraph = payload => {\r\n return {\r\n type: energy.SET_INTERVAL_GRAPH,\r\n payload,\r\n };\r\n};\r\n\r\nexport const setGraphDates = payload => {\r\n return {\r\n type: energy.SET_GRAPH_DATES,\r\n payload\r\n }\r\n}\r\n\r\nexport const setGraphDatesScroll = payload => {\r\n return {\r\n type: energy.SET_GRAPH_DATES_SCROLL,\r\n payload\r\n }\r\n}\r\n\r\nexport const setGraphOptions = payload => {\r\n return {\r\n type: energy.SET_GRAPH_OPTIONS,\r\n payload\r\n }\r\n}\r\n\r\nexport const setGraphActive = payload => {\r\n return {\r\n type: energy.SET_GRAPH_ACTIVE,\r\n payload\r\n }\r\n}\r\n\r\nexport const setIndicators = payload => {\r\n return {\r\n type: energy.SET_INDICATORS,\r\n payload\r\n }\r\n}\r\n\r\nexport const setInvoiceInfo = payload => {\r\n return {\r\n type: energy.SET_INVOICE_INFO,\r\n payload\r\n }\r\n}\r\n\r\nexport const setIndicatorsloading= payload => {\r\n return {\r\n type: energy.SET_INDICATORS_LOADING,\r\n payload\r\n }\r\n}\r\n\r\nexport const setEnableScrollData= payload => {\r\n return {\r\n type: energy.SET_ENABLE_SCROLL_DATA,\r\n payload\r\n }\r\n}\r\n\r\nexport const setShowReportModal= payload => {\r\n return {\r\n type: energy.SET_SHOW_REPORT_MODAL,\r\n payload\r\n }\r\n}\r\n\r\nexport const setReportloading= payload => {\r\n return {\r\n type: energy.SET_REPORT_LOADING,\r\n payload\r\n }\r\n}\r\n\r\nexport const setScrollActive= payload => {\r\n return {\r\n type: energy.SET_SCROLL_ACTIVE,\r\n payload\r\n }\r\n}\r\n\r\nexport const setTariff= payload => {\r\n return {\r\n type: energy.SET_TARIFF,\r\n payload\r\n }\r\n}\r\n\r\nexport const setBannersData = payload => {\r\n return {\r\n type: energy.SET_BANNERS_DATA,\r\n payload\r\n }\r\n}\r\n\r\nexport const setShowDetailService = payload => {\r\n return {\r\n type: energy.SET_SHOW_DETAIL_SERVICE,\r\n payload\r\n }\r\n}\r\n\r\nexport const setDetailDataGraph = payload => {\r\n return {\r\n type: energy.SET_DETAIL_DATA_GRAPH,\r\n payload\r\n }\r\n}\r\n\r\nexport const setPrevStateBar = payload => {\r\n return {\r\n type: energy.SET_PREV_STATE_BAR,\r\n payload\r\n }\r\n}\r\n\r\nexport const setEnableAverageLine = payload => {\r\n return {\r\n type: energy.SET_ENABLE_AVERAGE_LINE,\r\n payload\r\n }\r\n}\r\n\r\nexport const loadGraphAsync = (loadByScroll = false, requestLeft = true) => {\r\n return async (dispatch, getState) => {\r\n\r\n if(!loadByScroll) dispatch(setGraphloading(true));\r\n\r\n dispatch(setEnableScrollData(false));\r\n\r\n let interval;\r\n let metadata;\r\n let data = []\r\n\r\n const graphs = getState().energy.graphs[0]\r\n let from = getUnixTime(loadByScroll ? getState().energy.graphDateFromScroll : getState().energy.graphDateFrom);\r\n let to = getUnixTime(loadByScroll ? getState().energy.graphDateToScroll : getState().energy.graphDateTo);\r\n const activeServicesEnergy = getState().services.activeServicesEnergy;\r\n let activeGraphs = getState().energy.activeGraphs;\r\n activeGraphs = activeGraphs[0] !== \"IRRADIANCE_GEN\" ? activeGraphs : [\"GENERATION\",\"IRRADIANCE\"]\r\n\r\n switch (getState().energy.intervalGraph) {\r\n case 0:\r\n interval = 'HOURS';\r\n if(loadByScroll) {\r\n if (requestLeft) {\r\n to = from;\r\n from -= 86400 * 1;\r\n }\r\n else{\r\n from = to;\r\n to += 86400 * 1;\r\n }\r\n }\r\n else{\r\n from -= 86400 * 1;\r\n }\r\n dispatch(setGraphDatesScroll({graphDateFrom: new Date(from * 1000), graphDateTo: new Date(to * 1000)}));\r\n break;\r\n case 1:\r\n interval = 'DAYS';\r\n if(loadByScroll) {\r\n if (requestLeft) {\r\n to = from;\r\n from -= 604800 * 1;\r\n }\r\n else{\r\n from = to;\r\n to += 604800 * 1;\r\n }\r\n }\r\n else{\r\n from -= 604800 * 1;\r\n }\r\n dispatch(setGraphDatesScroll({graphDateFrom: new Date(from * 1000), graphDateTo: new Date(to * 1000)}));\r\n break;\r\n case 2:\r\n interval = 'DAYS';\r\n if(loadByScroll) {\r\n if (requestLeft) {\r\n to = from;\r\n from -= 2592000 * 1;\r\n }\r\n else{\r\n from = to;\r\n to += 2592000 * 1;\r\n }\r\n }\r\n else{\r\n from -= 2592000 * 1;\r\n }\r\n dispatch(setGraphDatesScroll({graphDateFrom: new Date(from * 1000), graphDateTo: new Date(to * 1000)}));\r\n break;\r\n case 3:\r\n interval = 'MONTH';\r\n if(loadByScroll) {\r\n if (requestLeft) {\r\n to = from;\r\n from -= 31536000 * 1;\r\n }\r\n else{\r\n from = to;\r\n to += 31536000 * 1;\r\n }\r\n }\r\n else{\r\n const lastYearUnixTimestamp = getUnixTime(startOfYear(subYears(new Date(), 1)));\r\n from = lastYearUnixTimestamp;\r\n }\r\n dispatch(setGraphDatesScroll({graphDateFrom: new Date(from * 1000), graphDateTo: new Date(to * 1000)}));\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n const services = activeServicesEnergy \r\n .map(s => {\r\n return {\r\n id_service: s.idService,\r\n name: s.name\r\n }\r\n });\r\n\r\n const language = getState().shared.language;\r\n\r\n let graphsOptions = graphs.options.filter(x => activeGraphs.includes(x.value)).map((graph) => { \r\n return {\r\n 'graph_type': `${graph.value}_${(graph.value === \"PREDICTION_ACTIVE_ENERGY\" && getState().energy.intervalGraph === 2) || graph.value === \"REACTIVE_CAPACITIVE_EXCESS_ENERGY\" ? \"MONTH\" : interval}`,\r\n 'label': language[`energy_graph_label_${graph.value.toLowerCase()}`],\r\n 'unit': language[`energy_graph_unit_${interval === 'HOURS' && graph.value === \"IRRADIANCE\" ? \"irradiance_hourly\" : graph.value.toLowerCase()}`],\r\n 'value': graph.value,\r\n 'group': graph.graph_type\r\n }\r\n });\r\n\r\n if (graphsOptions.length){\r\n\r\n metadata = {\r\n services,\r\n graphs_options: graphsOptions,\r\n }; \r\n\r\n const metadataTariff = {\r\n id_services: services.map(s => s.id_service), \r\n startdate: from,\r\n enddate: to\r\n }; \r\n \r\n await SETData('tariffs/services', 'POST', metadataTariff)\r\n .then(response => { \r\n if (response !== null) {\r\n dispatch(setTariff(response));\r\n } else {\r\n dispatch(setTariff([]));\r\n }\r\n })\r\n .catch(response => console.error(response))\r\n\r\n await SETData(`energy/data/${from}/${to}/?version=2`, 'POST', metadata)\r\n .then(energyResponse => {\r\n if (energyResponse !== null) { \r\n if (loadByScroll) {\r\n const currentGraphData = getState().energy.graphData;\r\n \r\n function mergeAndRemoveDuplicates(arr1, arr2, uniqueKey) { \r\n const uniqueKeysSet = new Set(arr1.map(item => item[uniqueKey])); \r\n \r\n const filteredArr2 = arr2.filter(item => !uniqueKeysSet.has(item[uniqueKey])); \r\n \r\n const result = [...arr1, ...filteredArr2];\r\n \r\n return result;\r\n };\r\n \r\n data = currentGraphData.map(value => {\r\n const newResponseData = energyResponse.find(x => x.id === value.id)?.data || [];\r\n const existingData = value.data; \r\n return {\r\n id: value.id,\r\n data: requestLeft ? mergeAndRemoveDuplicates(newResponseData, existingData, 'x_sec') : mergeAndRemoveDuplicates(existingData, newResponseData, 'x_sec'),\r\n value: value.value\r\n };\r\n }); \r\n } \r\n else { \r\n data = [...data, ...energyResponse]\r\n }\r\n dispatch(setEnableScrollData(true));\r\n }\r\n\r\n })\r\n .catch(response => console.error(response));\r\n\r\n } \r\n dispatch(setGraphData(data));\r\n dispatch(setGraphloading(false));\r\n\r\n };\r\n};\r\n\r\nexport const loadGraphOptionsAsync = () => {\r\n return (dispatch, getState) => {\r\n\r\n let groups = [];\r\n\r\n const language = getState().shared.language;\r\n\r\n getState().services.activeServicesEnergy.some(s => s.type.name === \"energy\" || s.type.name === \"plus\") && groups.push(\"CONSUMPTION\");\r\n getState().services.activeServicesEnergy.some(s => s.type.name === \"generation\") && groups.push(...[\"GENERATION\", \"WEATHER\"]);\r\n\r\n const metadata = {\r\n groups\r\n };\r\n\r\n SETData(`energy/graphs/group/${language.language_locale}`, \"POST\", metadata)\r\n .then((response) => {\r\n if (response !== null) {\r\n dispatch(setGraphActive([response.options[0].value]))\r\n /* To translate the key 'group' for the search input in GraphTypePicker ⬇️ */\r\n const translatedGraphs = response.graphsGroups.map((graph) => {\r\n const translationKey = `energy_graph_group_${graph.group.toLowerCase()}`\r\n const translatedGroup = language[translationKey]\r\n\r\n return {\r\n ...graph,\r\n translatedGroup: translatedGroup,\r\n }\r\n })\r\n /* Adding the new array with the translation */\r\n const graphResponse = response\r\n graphResponse[\"graphsGroups\"] = translatedGraphs\r\n\r\n dispatch(setGraphOptions(graphResponse))\r\n }\r\n })\r\n .catch((response) => console.error(response))\r\n\r\n }\r\n}\r\n\r\nexport const loadBannersAsync = () => {\r\n return (dispatch, getState) => {\r\n\r\n const user = getState().users.user;\r\n const account = getState().accounts.account;\r\n\r\n const metadata = {\r\n id_account: account.idAccount,\r\n id_user: user.idUser,\r\n service: account.typeservices,\r\n job_area: user.job?.name,\r\n };\r\n\r\n SETData('banners', \"POST\", metadata)\r\n .then(response => {\r\n if (response !== null)\r\n dispatch(setBannersData(response));\r\n })\r\n .catch(response => console.error(response));\r\n\r\n }\r\n}\r\n\r\nexport const loadIndicatorsAsync = () => {\r\n return async (dispatch, getState) => {\r\n\r\n dispatch(setIndicatorsloading(true));\r\n\r\n let indicatorsData = [];\r\n\r\n const userId = getState().users.user.idUser;\r\n const language = getState().shared.language.language_locale;\r\n const activeServicesEnergy = getState().services.activeServicesEnergy;\r\n\r\n let servicesIds = activeServicesEnergy\r\n .filter(s => s.type.name !== \"generation\")\r\n .map(s => s.idService);\r\n\r\n const totalServicesIds = getState().services.totalServices\r\n .map(s => s.idService);\r\n\r\n let metadata = {\r\n id_services: servicesIds,\r\n type: \"WEB\"\r\n };\r\n\r\n const metadataInvoice = {\r\n id_user: userId,\r\n id_services: totalServicesIds\r\n };\r\n\r\n let promises = [];\r\n\r\n promises.push(Promise.resolve(SETData(`energy/indicators/${language}`, 'POST', metadata)));\r\n promises.push(Promise.resolve(SETData('bills/latest/summary', 'POST', metadataInvoice)));\r\n\r\n await Promise.all(promises).then(([indicatorsResponse, invoicesResponse]) => {\r\n\r\n if (indicatorsResponse !== null) {\r\n indicatorsData = [...indicatorsData, ...indicatorsResponse]\r\n }\r\n\r\n if (invoicesResponse.length > 0) {\r\n dispatch(setInvoiceInfo(invoicesResponse[0]));\r\n dispatch(invoicesActions.setInvoicesDate(new Date(invoicesResponse[0].year, invoicesResponse[0].month - 1, 1)));\r\n }\r\n\r\n })\r\n .catch(response => console.error(response));\r\n\r\n servicesIds = activeServicesEnergy\r\n .filter(s => s.type.name === \"generation\")\r\n .map(s => s.idService);\r\n\r\n if (servicesIds.length) {\r\n\r\n metadata = {\r\n id_services: servicesIds,\r\n type: \"WEB\"\r\n };\r\n\r\n await SETData(`generation/indicators/${language}`, 'POST', metadata, process.env.REACT_APP_GENERATION_API_URL)\r\n .then(response => {\r\n\r\n if (response !== null) {\r\n indicatorsData = [...indicatorsData, ...response]\r\n }\r\n })\r\n .catch(response => console.error(response));\r\n }\r\n\r\n dispatch(setIndicators(indicatorsData));\r\n dispatch(setIndicatorsloading(false));\r\n\r\n };\r\n};\r\n\r\nexport const createReportAsync = (payload) => {\r\n return async (dispatch, getState) => {\r\n\r\n dispatch(setReportloading(true));\r\n\r\n let interval;\r\n let metadata; \r\n\r\n const graphs = getState().energy.graphs[0];\r\n const userId = getState().users.user.idUser; \r\n const language = getState().shared.language; \r\n const from = getUnixTime(payload.startTime);\r\n const to = getUnixTime(payload.endTime);\r\n\r\n const activeServicesEnergy = getState().services.activeServicesEnergy;\r\n const activeGraphs = getState().energy.activeGraphs;\r\n\r\n switch (getState().energy.intervalGraph) {\r\n case 0:\r\n interval = 'HOURS';\r\n break;\r\n case 1:\r\n interval = 'DAYS';\r\n break;\r\n case 2:\r\n interval = 'DAYS';\r\n break;\r\n case 3:\r\n interval = 'MONTH';\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n const services = activeServicesEnergy \r\n .map(s => {\r\n return {\r\n id_service: s.idService,\r\n name: s.name\r\n }\r\n });\r\n\r\n let graphsOptions = graphs.options.filter(x => activeGraphs.includes(x.value)).map((graph) => { \r\n return {\r\n 'graph_type': `${graph.value}_${interval}`,\r\n 'label': graph.label,\r\n 'unit': graph.unit,\r\n 'type': graph.type,\r\n 'group': graph.graph_type,\r\n 'value': graph.value \r\n }\r\n }); \r\n\r\n if (graphsOptions.length){\r\n\r\n metadata = {\r\n id_user: userId,\r\n report_name: payload.report_name,\r\n services,\r\n graphs_options: graphsOptions,\r\n format_type: payload.format_type,\r\n graph_type: interval \r\n }; \r\n\r\n await SETData(`energy/reports/${from}/${to}?version=2`, \"POST\", metadata)\r\n .then(async response => {\r\n if (response !== null) {\r\n if(response.currentstatus === 1) { \r\n\r\n const url = await GETS3PublicUrl(`reports/${userId}/${response.filename}`);\r\n \r\n const anchor = document.createElement(\"a\");\r\n anchor.href= url;\r\n anchor.download= \"name\";\r\n document.body.appendChild(anchor);\r\n anchor.click();\r\n document.body.removeChild(anchor);\r\n \r\n dispatch(setShowReportModal(false)); \r\n } \r\n else {\r\n Alert.error(language.alert_download_report_error)\r\n } \r\n }\r\n })\r\n .catch(response => console.error(response))\r\n .finally(() => dispatch(setReportloading(false)));\r\n }\r\n }\r\n}\r\n\r\nexport const loadDetailService = (payload) => {\r\n return (dispatch, getState) => {\r\n \r\n const services = getState().services.totalServices;\r\n const accounts = getState().accounts.totalAccounts\r\n\r\n let service = services.find(s => s.idService === parseInt(payload.idService)); \r\n \r\n if(service) {\r\n dispatch(accountsActions.setAccount(accounts.find(s => s.idAccount === parseInt(service?.idAccount))));\r\n dispatch(servicesActions.setActiveServicesEnergy([service])); \r\n if(service?.type?.typeService === 2) {\r\n dispatch(servicesActions.setActiveServicesPlus([service]));\r\n }else{\r\n dispatch(servicesActions.setActiveServicesPlus([]));\r\n } \r\n }\r\n\r\n }\r\n}","import { useState, useEffect } from \"react\";\r\n\r\nexport const useWindowSize = () => {\r\n\r\n const [windowSize, setWindowSize] = useState({\r\n width: undefined,\r\n height: undefined,\r\n });\r\n\r\n useEffect(() => {\r\n\r\n function handleResize() {\r\n\r\n setWindowSize({\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n });\r\n }\r\n\r\n window.addEventListener(\"resize\", handleResize);\r\n\r\n handleResize();\r\n\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n\r\n }, []);\r\n\r\n return windowSize;\r\n\r\n}","import React from \"react\";\r\nimport { connect } from 'react-redux';\r\n\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\nimport SwiperCore, { Autoplay, Navigation } from \"swiper\";\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { fal } from '@fortawesome/pro-light-svg-icons';\r\n\r\nimport empty_widgets_slider from \"../../../imgs/empty-widgets-slider.svg\";\r\n\r\nimport { useWindowSize } from '../../shared/utilities/useWindowSize';\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nSwiperCore.use([Autoplay, Navigation]);\r\n\r\n/* It organize the banners by placing 1 indicators - 1 banner image */\r\n/* When one of them is finished, it starts repeating the remaining element. */\r\nconst orderData = (arr1, arr2) => {\r\n if (arr1 === undefined || arr1 === null) {\r\n return arr2\r\n }\r\n\r\n if (arr2 === undefined || arr2 === null) {\r\n return arr1\r\n }\r\n\r\n const result = []\r\n let i = 0\r\n let j = 0\r\n\r\n while (i < arr1.length && j < arr2.length) {\r\n result.push(arr1[i++])\r\n result.push(arr2[j++])\r\n }\r\n\r\n while (i < arr1.length) {\r\n result.push(arr1[i++])\r\n }\r\n\r\n while (j < arr2.length) {\r\n result.push(arr2[j++])\r\n } return result\r\n}\r\n\r\nconst Cards = (props) => {\r\n\r\n const { bannersData, theme } = props\r\n\r\n let activeServicesEnergy = props.activeServicesEnergy;\r\n\r\n const size = useWindowSize();\r\n\r\n const RenderWidgets = ({ item }) => {\r\n\r\n let value_color;\r\n let icon_color;\r\n\r\n switch (item.type) {\r\n case 0:\r\n value_color = \"txt-blue-green-gradient\";\r\n icon_color = \"content-color-green\";\r\n break;\r\n case 2:\r\n value_color = \"txt-blue-green-gradient\";\r\n icon_color = \"content-color-green\";\r\n break;\r\n default:\r\n value_color = \"txt-red-orange-gradient\";\r\n icon_color = \"txt-orange-500\";\r\n break;\r\n }\r\n\r\n return (\r\n
\r\n {!item.image_url ?\r\n
\r\n
{`${props.language[item.title]}`.replace('#VALUE', item.value_title ?? '')}
\r\n
\r\n {item.icon !== null && }\r\n
{item.value}
\r\n
\r\n
\r\n {item.icon_text !== null && }\r\n
{`${props.language[item.text]}`.replace('#VALUE', item.value_text ?? '')}
\r\n
\r\n
:\r\n {track('Widget opened', {Widget_ID: `${item.amplitude_event}`})}}>\r\n {'neu-img'}\r\n \r\n }\r\n
\r\n );\r\n };\r\n\r\n const RenderWidgetsEmpty = () => {\r\n return (\r\n
\r\n \"empty_widget_energy\"\r\n
{props.language.energy_widgets_empty_data}
\r\n
\r\n )\r\n };\r\n\r\n return (\r\n
\r\n track('Widget clicked', {Widget_Back: 'activate'})}\r\n >\r\n \r\n
\r\n
\r\n
\r\n
\r\n {props.indicators.length ?\r\n = 1400 ? 3 : 2}\r\n navigation={{ nextEl: \"#next-slide\", prevEl: \"#prev-slide\" }}>\r\n {orderData(props.indicators, activeServicesEnergy.some(s => s.type.name === \"energy\") ? bannersData : []).map((card, i) =>\r\n \r\n \r\n )}\r\n :\r\n = 1400 ? 3 : 2}\r\n navigation={{ nextEl: \"#next-slide\", prevEl: \"#prev-slide\" }}>\r\n {[0, 1, 2].map((i) =>\r\n \r\n \r\n )}\r\n \r\n }\r\n
\r\n track('Widget clicked', {Widget_Forward: 'activate'})}>\r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n indicators: state.energy.indicators,\r\n language: state.shared.language,\r\n bannersData: state.energy.bannersData,\r\n activeServicesEnergy: state.services.activeServicesEnergy,\r\n theme: state.theme.theme,\r\n});\r\n\r\nexport default connect(mapStateToProps)(Cards);\r\n\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\nimport Popover from \"@idui/react-popover\";\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nconst SubMenuGraphs = ({\r\n graphData,\r\n setControlRemoteClick,\r\n activeGraphs,\r\n setGraphActive,\r\n selectedGraphs,\r\n showSubmenuGraphs,\r\n setShowSubmenuGraphs,\r\n isDisabled,\r\n language,\r\n theme,\r\n}) => {\r\n const [show, setShow] = useState(showSubmenuGraphs === graphData[0].group);\r\n // These graphs won't be activated until the user press the button\r\n const [graphActiveTemporal, setGraphActiveTemporal] = useState([\r\n ...selectedGraphs,\r\n ]);\r\n\r\n useEffect(() => {\r\n setGraphActiveTemporal(selectedGraphs);\r\n }, [selectedGraphs]);\r\n\r\n const areArrayEquals = (a, b) => {\r\n return (\r\n Array.isArray(a) &&\r\n Array.isArray(b) &&\r\n a.length === b.length &&\r\n a.every((val, index) => val === b[index])\r\n );\r\n };\r\n\r\n return (\r\n {\r\n if (!isDisabled) {\r\n setShow(state);\r\n setControlRemoteClick(state);\r\n setShowSubmenuGraphs(\"\");\r\n }\r\n }}\r\n animation={{\r\n animate: { opacity: 1 },\r\n exit: { opacity: 0, transition: { duration: 0.1 } },\r\n initial: { opacity: 0 },\r\n }}\r\n content={\r\n
\r\n
\r\n
\r\n {graphData.map((_graph) => {\r\n const isSelected =\r\n graphActiveTemporal.findIndex((i) => i === _graph.value) >= 0;\r\n\r\n return (\r\n {\r\n if (isSelected && graphActiveTemporal.length > 0) {\r\n setGraphActiveTemporal([\r\n ...graphActiveTemporal.filter(\r\n (g) => g !== _graph.value,\r\n ),\r\n ]);\r\n } else {\r\n setGraphActiveTemporal([\r\n ...graphActiveTemporal,\r\n _graph.value,\r\n ]);\r\n track(\"Graphic variable selected\", {\r\n Variable_ID: _graph.value,\r\n });\r\n }\r\n }}\r\n >\r\n \r\n {\r\n language[\r\n `energy_graph_label_${_graph.value.toLowerCase()}`\r\n ]\r\n }{\" \"}\r\n {_graph.unit && `(${_graph.unit})`}\r\n
\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n \r\n \r\n {\r\n if (!areArrayEquals(activeGraphs, graphActiveTemporal)) {\r\n setGraphActive(graphActiveTemporal);\r\n }\r\n setShow(false);\r\n setControlRemoteClick(false);\r\n setShowSubmenuGraphs(\"\");\r\n }}\r\n >\r\n Hecho\r\n \r\n \r\n \r\n }\r\n >\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default SubMenuGraphs;\r\n","export const setDisbaledGraphsValues = (values, graphs, graphsRelations) => {\r\n\r\n let graphsDisabled = [];\r\n let _graphsRelations = [];\r\n\r\n let _graphs = graphs\r\n .sort((a, b) => a?.id_graph - b?.id_graph);\r\n\r\n values.forEach(value => {\r\n\r\n let graph = _graphs\r\n .filter(graph => graph.value === value);\r\n\r\n let array = graphsRelations\r\n .filter(relation => relation?.id_graph === graph[0]?.id_graph)\r\n .sort((a, b) => a?.id_graph_relation - b?.id_graph_relation)\r\n .map(relation => relation.available);\r\n\r\n _graphsRelations.push(array);\r\n\r\n });\r\n\r\n _graphs.forEach((graph, i) => { if (!_graphsRelations.every((_value, j, array) => array[j][i])) { graphsDisabled.push(graph.value) } });\r\n\r\n return (graphsDisabled);\r\n\r\n}\r\n\r\nexport const limitWordLenght = (string, limit) => {\r\n\r\n if (string.length > limit) {\r\n return string.slice(0, limit) + \"...\";\r\n } else {\r\n return string;\r\n }\r\n}\r\n\r\nexport const setGraphLabel = (name, withLimit = false) => {\r\n\r\n const lastDashIndex = name.lastIndexOf(\" - \");\r\n\r\n if (lastDashIndex !== -1) {\r\n let graphLabel = name.slice(lastDashIndex + 3);\r\n let serviceName = name.slice(0, lastDashIndex);\r\n\r\n return withLimit ? `${limitWordLenght(graphLabel, 20)} - ${limitWordLenght(serviceName, 40)}` : `${graphLabel} - ${serviceName}`\r\n }\r\n else\r\n return name\r\n\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport * as energyActions from \"../../../store/actions/Energy\";\r\nimport * as sharedActions from \"../../../store/actions/Shared\";\r\nimport * as themeActions from \"../../../store/actions/Theme\";\r\n\r\nimport { Popover } from \"@idui/react-popover\";\r\n\r\nimport SubMenuGraphs from \"./SubMenuGraphs\";\r\nimport { setDisbaledGraphsValues } from \"../../../services/GraphsHandler\";\r\nimport ButtonCircle from \"../../shared/utilities/ButtonCircle\";\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nimport { Whisper, Tooltip } from \"rsuite\";\r\n\r\nconst GraphTypePicker = (props) => {\r\n let _graphs = props.graphs;\r\n let graphsRelations = props.graphsRelations;\r\n let activeGraphs = props.activeGraphs;\r\n let language = props.language;\r\n let graphTypePicker = props.graphTypePicker;\r\n let activeServicesEnergy = props.activeServicesEnergy;\r\n const { theme } = props;\r\n\r\n const setControlledOnboarding = props.setControlledOnboarding;\r\n\r\n const [search, setSearch] = useState(\"\");\r\n const [graphGroups, setGraphGroups] = useState(_graphs.graphsGroups);\r\n const [focus, setFocus] = useState(false);\r\n const [show, setShow] = useState(false);\r\n /* To control de submenu from outside, so we can open the submenu from a click on the label and not just in the (fa-circle-chevron-right) icon */\r\n const [showSubmenuGraphs, setShowSubmenuGraphs] = useState(\"\");\r\n const [controlRemoteClick, setControlRemoteClick] = useState(false);\r\n\r\n const [disbaledGraphs, setDisbaledGraphs] = useState([]);\r\n // These are the graphs that are selected but not necessarily activated\r\n // Graphs are activated when props.setGraphActive()\r\n const [selectedGraphs, setSelectedGraphs] = useState([]);\r\n\r\n useEffect(() => {\r\n setDisbaledGraphs(\r\n setDisbaledGraphsValues(activeGraphs, _graphs.options, graphsRelations),\r\n );\r\n }, [_graphs, graphsRelations, activeGraphs, setDisbaledGraphs]);\r\n\r\n useEffect(() => {\r\n setGraphGroups([\r\n ..._graphs.graphsGroups.filter((s) =>\r\n s.translatedGroup?.toLowerCase()?.includes(search.toLowerCase())\r\n ),\r\n ]);\r\n }, [search, _graphs]);\r\n\r\n useEffect(() => {\r\n setSelectedGraphs([\r\n ..._graphs.options\r\n .filter((s) => activeGraphs.includes(s.value))\r\n .map((v) => v.value),\r\n ]);\r\n }, [_graphs, activeGraphs]);\r\n\r\n useEffect(() => {\r\n if (show && graphTypePicker) {\r\n setControlledOnboarding({ key: \"graph_type_picker\", value: true });\r\n } else {\r\n setControlledOnboarding({ key: \"graph_type_picker\", value: false });\r\n }\r\n }, [show, setControlledOnboarding, graphTypePicker]);\r\n\r\n useEffect(() => {\r\n setGraphGroups([\r\n ...graphGroups.filter(x => ((x?.group !== \"POWER_LIMITATION\" || (activeServicesEnergy.length === 1 && [5790,1655,4683,5436,4685].includes(activeServicesEnergy[0]?.idService)))\r\n && (x?.group !== \"POWER_FACTOR_PLUS\" || (activeServicesEnergy.length === 1 && activeServicesEnergy[0]?.type?.typeService === 2)))),\r\n {\r\n translatedGroup: language.energy_graph_type_average_line,\r\n group: \"AVERAGE\",\r\n graphData: [],\r\n },\r\n ]);\r\n // eslint-disable-next-line\r\n }, [_graphs, language]);\r\n\r\n\r\n return (\r\n {\r\n props.setShowBlackScreen(state);\r\n setShow(state);\r\n setFocus(state);\r\n }}\r\n animation={{\r\n animate: { opacity: 1 },\r\n exit: { opacity: 0, transition: { duration: 0.1 } },\r\n initial: { opacity: 0 },\r\n }}\r\n content={\r\n
\r\n
\r\n
\r\n \r\n setSearch(target.value)}\r\n />\r\n
\r\n
\r\n \r\n
\r\n {language.energy_graph_type_disclaimer}\r\n
\r\n {graphGroups.map((graphGroup, index) => {\r\n let isSelected;\r\n let isDisabled;\r\n let graphSelectedCount = 0;\r\n\r\n for (const _graphData of graphGroup.graphData) {\r\n if (activeGraphs.includes(_graphData.value)) {\r\n isSelected = true;\r\n graphSelectedCount++;\r\n } else if (\r\n disbaledGraphs.includes(_graphData.value) &&\r\n graphSelectedCount === 0\r\n ) {\r\n isDisabled = true;\r\n }\r\n }\r\n\r\n if (graphGroup?.group === \"AVERAGE\" && props.enableAverageLine) {\r\n isSelected = true;\r\n }\r\n\r\n if (\r\n graphGroup?.group === \"PREDICTION_ACTIVE_ENERGY\" &&\r\n (activeGraphs.length > 1 || activeServicesEnergy.length > 1)\r\n ) {\r\n isDisabled = true;\r\n }\r\n\r\n return (\r\n {\r\n if (graphGroup?.group === \"AVERAGE\") {\r\n props.setEnableAverageLine(!props.enableAverageLine);\r\n props.setShowBlackScreen(false);\r\n setShow(false);\r\n setFocus(false);\r\n }\r\n if (isDisabled) return;\r\n /* Single Graph */\r\n if (graphGroup.graphData.length === 1) {\r\n if (isSelected) {\r\n props.setGraphActive([\r\n ...activeGraphs.filter(\r\n (g) => g !== graphGroup.graphData[0].value,\r\n ),\r\n ]);\r\n } else {\r\n props.setGraphActive([\r\n ...activeGraphs,\r\n graphGroup.graphData[0].value,\r\n ]);\r\n track(\"Graphic variable selected\", {\r\n Variable_ID: graphGroup.graphData[0].value,\r\n });\r\n }\r\n }\r\n }}\r\n >\r\n {isDisabled ? (\r\n {`${\r\n language[\r\n `energy_graph_group_${graphGroup.group?.toLowerCase()}`\r\n ]\r\n } ${language.tooltip_graph_energy_no_match} ${\r\n language[\r\n `energy_graph_label_${selectedGraphs[0]?.toLowerCase()}`\r\n ]\r\n } ${\r\n language.tooltip_graph_energy_no_match_reason\r\n }`}\r\n }\r\n >\r\n \r\n {\r\n language[\r\n `energy_graph_group_${graphGroup.group?.toLowerCase()}`\r\n ]\r\n }{\" \"}\r\n {graphGroup.graphData[0]?.unit !== \"\" &&\r\n ` (${graphGroup.graphData[0].unit})`}\r\n
\r\n \r\n ) : (\r\n {\r\n /* To open the submenu from here */\r\n setControlRemoteClick(true);\r\n setShowSubmenuGraphs(graphGroup.group);\r\n }}\r\n >\r\n {\r\n language[\r\n `energy_graph_group_${graphGroup.group.toLowerCase()}`\r\n ]\r\n }{\" \"}\r\n {graphGroup.graphData.length === 1 && graphGroup.graphData[0]?.unit !== \"\" &&\r\n `(${graphGroup.graphData[0].unit})`}\r\n \r\n )}\r\n
\r\n {graphSelectedCount !== 0 &&\r\n graphGroup.graphData.length > 1 && (\r\n \r\n

{graphSelectedCount}

\r\n
\r\n )}\r\n {graphGroup.graphData.length > 1 ? (\r\n \r\n ) : (\r\n
\r\n )}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n }\r\n >\r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n graphs: state.energy.graphs[0],\r\n graphsRelations: state.energy.graphsRelations,\r\n activeGraphs: state.energy.activeGraphs,\r\n language: state.shared.language,\r\n controlledTypePicker: state.shared.controlledOnboarding.graph_type_picker,\r\n graphTypePicker: state.shared.startOnboarding.graph_type_picker,\r\n enableAverageLine: state.energy.enableAverageLine,\r\n showPulseAnimation: state.shared.showPulseAnimation,\r\n activeServicesEnergy: state.services.activeServicesEnergy,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setGraphActive: (payload) => dispatch(energyActions.setGraphActive(payload)),\r\n setShowBlackScreen: (payload) =>\r\n dispatch(sharedActions.setShowBlackScreen(payload)),\r\n setControlledOnboarding: (payload) =>\r\n dispatch(sharedActions.setControlledOnboarding(payload)),\r\n setEnableAverageLine: (payload) =>\r\n dispatch(energyActions.setEnableAverageLine(payload)),\r\n setTheme: (theme) => dispatch(themeActions.setTheme(theme)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(GraphTypePicker);\r\n","import React from \"react\";\r\nimport Popover from \"@idui/react-popover\";\r\n\r\nconst ExtraItemsPopover = ({\r\n theme,\r\n content,\r\n button,\r\n placement = \"bottomLeft\",\r\n withArrow = true,\r\n}) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n};\r\n\r\nexport default ExtraItemsPopover;\r\n","import React, { useState, useEffect } from \"react\"\r\nimport { connect } from \"react-redux\"\r\n\r\nimport * as energyActions from \"../../../store/actions/Energy\"\r\nimport * as sharedActions from \"../../../store/actions/Shared\"\r\n\r\nimport { track } from \"@amplitude/analytics-browser\"\r\n\r\nimport { Popover } from \"@idui/react-popover\"\r\nimport ExtraItemsPopover from \"../../genius/ExtraItemsPopover\"\r\n\r\nconst graphIntervalData = [\r\n {\r\n interval: 0,\r\n labelName: \"energy_period_picker_hour_to_hour\",\r\n eventProperty: \"Rank_Hourly\",\r\n labelDescription: \"energy_period_picker_hour_to_hour_description\",\r\n },\r\n {\r\n interval: 1,\r\n labelName: \"energy_period_picker_day_to_day\",\r\n eventProperty: \"Rank_Weekly\",\r\n labelDescription: \"energy_period_picker_day_to_day_description\",\r\n },\r\n {\r\n interval: 2,\r\n labelName: \"energy_period_picker_day_to_day_monthly\",\r\n eventProperty: \"Rank_Monthly\",\r\n labelDescription: \"energy_period_picker_day_to_day_monthly_description\",\r\n },\r\n {\r\n interval: 3,\r\n labelName: \"energy_period_picker_month_to_month\",\r\n eventProperty: \"Rank_Yearly\",\r\n labelDescription: \"energy_period_picker_month_to_month_description\",\r\n },\r\n]\r\n\r\nconst GraphPeriodPicker = (props) => {\r\n const language = props.language\r\n const setControlledOnboarding = props.setControlledOnboarding\r\n const setIntervalGraph = props.setIntervalGraph\r\n const setGraphloading = props.setGraphloading;\r\n let graphPeriodPicker = props.graphPeriodPicker\r\n let activeGraphs = props.activeGraphs\r\n let theme = props.theme\r\n\r\n const changePeriod = (interval) => { \r\n if (props.intervalGraph !== interval) {\r\n setGraphloading(true);\r\n setTimeout(() => {\r\n setIntervalGraph(interval);\r\n }, 500);\r\n }\r\n }\r\n\r\n const [focus, setFocus] = useState(false)\r\n const [show, setShow] = useState(false)\r\n\r\n const getIntervalLabel = graphIntervalData.filter((data) => data.interval === props.intervalGraph)[0]?.labelName\r\n\r\n useEffect(() => {\r\n if(show && graphPeriodPicker){\r\n setControlledOnboarding({key: 'graph_period_picker', value: true})\r\n }else{\r\n setControlledOnboarding({key: 'graph_period_picker', value: false})\r\n } \r\n }, [show, setControlledOnboarding, graphPeriodPicker]) \r\n\r\n return (\r\n {\r\n props.setShowBlackScreen(state)\r\n setShow(state)\r\n setFocus(state)\r\n props.onChange(state) \r\n }}\r\n animation={{\r\n animate: { opacity: 1 },\r\n exit: { opacity: 0, transition: { duration: 0.1 } },\r\n initial: { opacity: 0 },\r\n }}\r\n content={\r\n
\r\n {graphIntervalData.length ? (\r\n
\r\n {graphIntervalData.map((item) => {\r\n let isSelected\r\n isSelected = props.intervalGraph === item[\"interval\"]\r\n\r\n return (\r\n
{\r\n if(!activeGraphs.includes('REACTIVE_CAPACITIVE_EXCESS_ENERGY')){\r\n changePeriod(item[\"interval\"]) \r\n track('Rank selected', {Rank_ID: item['eventProperty'], Project_Type: props.activeServicesEnergy.map(function (service) { return service?.type?.name })})\r\n } \r\n }}>\r\n
\r\n \r\n
\r\n
\r\n

{language[item.labelDescription]}

\r\n
\r\n
\r\n
\r\n }\r\n button={\r\n
\r\n
{language[item.labelName]}
\r\n \r\n
\r\n }\r\n theme={theme}\r\n />\r\n
\r\n
\r\n )\r\n })}\r\n
\r\n ) : null}\r\n \r\n }>\r\n \r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n intervalGraph: state.energy.intervalGraph,\r\n language: state.shared.language,\r\n graphPeriodPicker: state.shared.startOnboarding.graph_period_picker,\r\n showPulseAnimation: state.shared.showPulseAnimation,\r\n activeServicesEnergy: state.services.activeServicesEnergy,\r\n activeGraphs: state.energy.activeGraphs,\r\n theme: state.theme.theme,\r\n})\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setIntervalGraph: (payload) => dispatch(energyActions.setIntervalGraph(payload)),\r\n setShowBlackScreen: (payload) => dispatch(sharedActions.setShowBlackScreen(payload)),\r\n setControlledOnboarding: (payload) => dispatch(sharedActions.setControlledOnboarding(payload)),\r\n setGraphloading: (payload) => dispatch(energyActions.setGraphloading(payload)),\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(GraphPeriodPicker)\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport moment from \"moment-timezone\";\r\n\r\nimport CurrencyFormat from 'react-currency-format';\r\n\r\nconst formatDateLabel = (intervalGraph, domain, lang) => {\r\n let dateFormated;\r\n let intervalLeft;\r\n let intervalRight;\r\n moment.locale(lang);\r\n switch (intervalGraph) {\r\n case 0:\r\n dateFormated = moment\r\n .utc(domain?.x[1] * 1000)\r\n .tz(\"America/Bogota\")\r\n .format(\"DD MMMM YYYY\");\r\n break;\r\n case 1:\r\n case 2:\r\n intervalLeft = moment.utc((domain?.x[0] + 86400) * 1000).format(\"MMM DD\");\r\n intervalRight = moment.utc(domain?.x[1] * 1000).format(\"MMM DD\");\r\n dateFormated = `${intervalLeft} ${lang === 'es' ? 'a' : '-'} ${intervalRight}`;\r\n break;\r\n case 3:\r\n intervalLeft = moment.utc((domain?.x[0] + 2592000) * 1000).format(\"MMM YYYY\");\r\n intervalRight = moment.utc(domain?.x[1] * 1000).format(\"MMM YYYY\");\r\n dateFormated = `${intervalLeft} ${lang === 'es' ? 'a' : '-'} ${intervalRight}`;\r\n break;\r\n default:\r\n dateFormated = \"\";\r\n break;\r\n }\r\n return dateFormated;\r\n};\r\n\r\nconst GraphIndicators = (props) => {\r\n\r\n let data = props.data;\r\n let domain = props.domain;\r\n let activeGraphs = props.activeGraphs;\r\n let language = props.language;\r\n let theme = props.theme;\r\n let intervalGraph = props.intervalGraph;\r\n\r\n const [indexes, setIndexes] = useState({ tot: 0, max: 0, avg: 0, min: 0, unit: \"\" });\r\n const [showIndexes, setShowIndexes] = useState(true);\r\n\r\n useEffect(() => {\r\n const handlerIndexes = () => {\r\n let tot;\r\n let min;\r\n let max;\r\n let avg;\r\n let unit;\r\n let array = [];\r\n\r\n if (data.length === 1 && data[0]?.data.length) {\r\n\r\n const keys = [];\r\n const uniqueArray = [];\r\n const dataFiltered = data.map((value) => value.data.filter((value) => value.y > 0 && value?.x_sec > domain?.x[0] && value?.x_sec <= domain?.x[1]));\r\n dataFiltered[0].forEach(item => {\r\n if (!keys.includes(item?.x_sec)) {\r\n uniqueArray.push(item);\r\n keys.push(item?.x_sec);\r\n }\r\n })\r\n\r\n array = uniqueArray.map((value) => value.y).reduce((a, b) => a.concat(b), []);\r\n\r\n unit = data[0].data[0].unit;\r\n\r\n if (array.length) {\r\n tot = array.reduce((prev, curr) => (curr += prev)).toFixed(2);\r\n min = Math.min(...array).toFixed(2);\r\n max = Math.max(...array).toFixed(2);\r\n avg = (tot / array.length).toFixed(2);\r\n\r\n setIndexes({ tot, max, avg, min, unit });\r\n\r\n setShowIndexes(true);\r\n\r\n return;\r\n }\r\n } else {\r\n setShowIndexes(false);\r\n }\r\n };\r\n\r\n handlerIndexes();\r\n }, [data, domain]);\r\n\r\n const capitalizedText = (text) => {\r\n let label = \"\";\r\n var phrase = text.toLowerCase().split(\" \");\r\n\r\n for (var i = 0; i < phrase.length; i++) {\r\n if (i !== 2) {\r\n phrase[i] = phrase[i].charAt(0).toUpperCase() + phrase[i].substring(1);\r\n }\r\n }\r\n\r\n label = phrase.join(\" \");\r\n\r\n return label;\r\n };\r\n\r\n return (\r\n showIndexes && (\r\n
\r\n
\r\n
\r\n \r\n
{capitalizedText(formatDateLabel(props.intervalGraph, props.domain, language.language_locale))}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {activeGraphs?.includes(\"PANEL_TEMP\") || activeGraphs?.includes(\"ENVIRONMENT_TEMP\")?\r\n
\r\n

{props.language.energy_graph_indicator_min} {language[`energy_graph_label_${activeGraphs[0]?.toLowerCase()}`]}

\r\n

\r\n {value} {indexes.unit}\r\n

} \r\n />\r\n
:\r\n
\r\n

{props.language.energy_graph_indicator_total} {language[`energy_graph_label_${activeGraphs[0]?.toLowerCase()}`]}

\r\n

\r\n {value} {intervalGraph === 0 && (activeGraphs[0] === \"IRRADIANCE\" || activeGraphs[0] === \"IRRADIANCE_GEN\") ? props.language.energy_graph_unit_irradiance : indexes.unit}\r\n

} \r\n />\r\n
}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n {props.language.energy_graph_indicator_max} {language[`energy_graph_label_${intervalGraph === 0 && (activeGraphs[0] === \"IRRADIANCE\" || activeGraphs[0] === \"IRRADIANCE_GEN\") ? \"irradiance_hourly\" : activeGraphs[0]?.toLowerCase()}`]}\r\n

\r\n

\r\n {value} {indexes.unit}\r\n

} \r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n {props.language.energy_graph_indicator_average} {language[`energy_graph_label_${intervalGraph === 0 && (activeGraphs[0] === \"IRRADIANCE\" || activeGraphs[0] === \"IRRADIANCE_GEN\") ? \"irradiance_hourly\" : activeGraphs[0]?.toLowerCase()}`]}\r\n

\r\n

\r\n {value} {indexes.unit}\r\n

} \r\n />\r\n
\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n graphData: state.energy.graphData,\r\n language: state.shared.language,\r\n activeGraphs: state.energy.activeGraphs,\r\n theme: state.theme.theme,\r\n intervalGraph: state.energy.intervalGraph,\r\n});\r\n\r\nexport default connect(mapStateToProps)(GraphIndicators);\r\n","import React, { useState } from \"react\"\r\nimport { DateRange } from \"react-date-range\"\r\nimport { es, enUS, pt } from \"react-date-range/dist/locale\"\r\nimport \"react-date-range/dist/styles.css\" // main css file\r\nimport \"react-date-range/dist/theme/default.css\" // theme css file\r\n\r\nimport { Transition } from \"react-transition-group\"\r\n\r\nimport { startOfToday, startOfWeek, endOfWeek, isDate, isSameWeek } from \"date-fns\"\r\n\r\nimport { calendarIntervals, setCalendarDates, setCalendarDatesEnergy } from \"../../../services/CalendarHandler\"\r\nimport { Calendar } from \"react-calendar\"\r\n\r\nconst defaultRangeDate = [\r\n {\r\n id: 1,\r\n interval: 1,\r\n labelName: \"energy_graph_calendar_week_range\",\r\n },\r\n {\r\n id: 2,\r\n interval: 2,\r\n labelName: \"energy_graph_calendar_month_range\",\r\n },\r\n]\r\n\r\nconst CalendarRangePicker = (props) => {\r\n const [previewDates, setPreviewDates] = useState({ startDate: null, endDate: null })\r\n\r\n let show = props.show\r\n let setShow = props.setShow\r\n let interval = props.interval\r\n let setDates = props.setDates\r\n let setIntervalGraph = props.setIntervalGraph\r\n let dateRangeEnergy = props.dateRangeEnergy\r\n let language = props.language\r\n let theme = props.theme\r\n\r\n return (\r\n \r\n {(state) => (\r\n <>\r\n {interval < 2 ? (\r\n
\r\n {\r\n setDates(setCalendarDatesEnergy(date.selection, interval))\r\n }}\r\n showSelectionPreview={false}\r\n ranges={dateRangeEnergy}\r\n minDate={new Date(\"2019-07-01T19:21:00.000Z\")}\r\n maxDate={startOfToday()}\r\n showDateDisplay={false}\r\n showPreview={isDate(previewDates.startDate)}\r\n preview={{ startDate: previewDates.startDate, endDate: previewDates.endDate, color: theme === 'dark' ? \"#9ecc14\" : \"#7da60c\" }}\r\n onPreviewChange={(previewDate) => {\r\n if (previewDate === null) return\r\n if (interval === 0) {\r\n setPreviewDates({ startDate: previewDate, endDate: previewDate })\r\n }\r\n if (interval === 1) {\r\n const startDate = startOfWeek(previewDate, { weekStartsOn: 1 })\r\n const endDate = endOfWeek(previewDate, { weekStartsOn: 1 })\r\n const previewDateObject = { startDate, endDate }\r\n setPreviewDates(previewDateObject)\r\n }\r\n }}\r\n />\r\n {interval === 1 && (\r\n
\r\n

{language.energy_graph_calendar_fast_access}

\r\n
\r\n {defaultRangeDate.map((range) => {\r\n const isSelected = range.interval === 1 && isSameWeek(startOfToday(), dateRangeEnergy[0].startDate, { weekStartsOn: 1 })\r\n const lastDates = { startDate: startOfToday(), endDate: startOfToday() }\r\n\r\n return (\r\n {\r\n setIntervalGraph(range.interval)\r\n setDates(setCalendarDatesEnergy(lastDates, range.interval))\r\n }}>\r\n

{language[range.labelName]}

\r\n \r\n )\r\n })}\r\n
\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n ) : (\r\n
\r\n
}\r\n prevLabel={
}\r\n onChange={(value) => {\r\n setDates(setCalendarDates(value, interval))\r\n }}\r\n />\r\n \r\n )}\r\n \r\n )}\r\n
\r\n )\r\n}\r\n\r\nexport default CalendarRangePicker\r\n","import React, { useState, Fragment, useEffect} from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as energyActions from \"../../../store/actions/Energy\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport { Transition } from 'react-transition-group';\r\n\r\nimport { Loader, Modal } from \"rsuite\";\r\n\r\nimport { Calendar as Datepicker } from 'react-calendar';\r\n\r\nimport Input from '../../shared/utilities/Input';\r\n\r\nimport { track } from \"@amplitude/analytics-browser\"\r\n\r\nconst showError = (payloadExport, setFocus, setError, language) => {\r\n\r\n if (payloadExport.report_name === null || payloadExport.report_name === \"\") { \r\n setFocus(1);\r\n setError(language.alert_filename_report_error);\r\n return;\r\n }\r\n\r\n return setFocus(0);\r\n}\r\n\r\nconst validate = (payloadExport) => {\r\n\r\n if (payloadExport.report_name === null || payloadExport.report_name === \"\") {\r\n return false;\r\n } \r\n\r\n return true\r\n}\r\n\r\nconst ExportGraph = (props) => {\r\n\r\n const payloadToExportInit = {\r\n report_name: null,\r\n startTime: props.dateFrom,\r\n endTime: props.dateTo,\r\n \"format_type\": \"CSV\" \r\n }\r\n\r\n let language = props.language;\r\n let theme = props.theme;\r\n\r\n const [payloadToExport, setPayloadToExport] = useState(payloadToExportInit); \r\n const [showCalendarDateFrom, setShowCalendarDateFrom] = useState(false);\r\n const [showCalendarDateTo, setShowCalendarDateTo] = useState(false); \r\n const [focus, setFocus] = useState(0); \r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n if(focus !== 0) {showError(payloadToExport, setFocus, setError, language)} \r\n }, [payloadToExport, language, focus]);\r\n \r\n return(\r\n props.setShowReportModal(false)}>\r\n \r\n
\r\n
{props.language.energy_export_graph_title}
\r\n
\r\n
\r\n
\r\n
{props.language.energy_export_graph_start_time}
\r\n
\r\n
setShowCalendarDateFrom(!showCalendarDateFrom) }>\r\n
\r\n {payloadToExport.startTime ? moment(payloadToExport.startTime).format(\"YYYY-MM-DD\") : props.language.energy_export_graph_select_date}\r\n \r\n
\r\n
\r\n \r\n {state => (\r\n
\r\n }\r\n prevLabel={}\r\n onChange={value => { \r\n setPayloadToExport({ ...payloadToExport, startTime: value });\r\n setShowCalendarDateFrom(false); \r\n }}\r\n />\r\n
\r\n )} \r\n \r\n
\r\n
\r\n
\r\n
{props.language.energy_export_graph_end_time}
\r\n
\r\n
setShowCalendarDateTo(!showCalendarDateTo) }>\r\n
\r\n {payloadToExport.endTime ? moment(payloadToExport.endTime).format(\"YYYY-MM-DD\") : props.language.energy_export_graph_select_date}\r\n \r\n
\r\n
\r\n \r\n {state => (\r\n
\r\n }\r\n prevLabel={}\r\n onChange={value => { \r\n setPayloadToExport({ ...payloadToExport, endTime: value });\r\n setShowCalendarDateTo(false); \r\n }}/>\r\n
\r\n )} \r\n \r\n
\r\n
\r\n
\r\n
{props.language.energy_export_graph_filename}
\r\n
\r\n setPayloadToExport({ ...payloadToExport, report_name: target?.value })}\r\n error={focus === 1 ? error : \"\"}\r\n />\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({ \r\n dateFrom: state.energy.graphDateFrom,\r\n dateTo: state.energy.graphDateTo, \r\n showReportModal: state.energy.showReportModal,\r\n reportLoading: state.energy.reportLoading,\r\n user: state.users.user, \r\n language: state.shared.language,\r\n rankGraphId: state.energy.rankGraphId,\r\n activeServicesEnergy: state.services.activeServicesEnergy,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({ \r\n createReportAsync: (payload) => dispatch(energyActions.createReportAsync(payload)),\r\n setShowReportModal: (payload) => dispatch(energyActions.setShowReportModal(payload))\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ExportGraph);","import React from \"react\";\r\n\r\nexport const colors = (theme) => {\r\n return [\r\n {\r\n name: \"Green\",\r\n hex: theme === \"dark\" ? \"#9ecc14\" : \"#7da60c\",\r\n },\r\n {\r\n name: \"Blue\",\r\n hex: theme === \"dark\" ? \"#00b7d3\" : \"#0396b7\",\r\n },\r\n {\r\n name: \"Orange\",\r\n hex: theme === \"dark\" ? \"#f97316\" : \"#ea580c\",\r\n },\r\n {\r\n name: \"Red\",\r\n hex: theme === \"dark\" ? \"#EF444C\" : \"#DC262F\",\r\n },\r\n {\r\n name: \"Purple\",\r\n hex: theme === \"dark\" ? \"#a855f7\" : \"#9333ea\",\r\n },\r\n {\r\n name: \"Pink\",\r\n hex: theme === \"dark\" ? \"#ec4899\" : \"#db2777\",\r\n },\r\n {\r\n name: \"PurpleLight\",\r\n hex: \"var(--purple-600)\",\r\n },\r\n {\r\n name: \"PurpleDark\",\r\n hex: \"var(--purple-700)\",\r\n },\r\n {\r\n name: \"BlueLight\",\r\n hex: \"var(--blue-600)\",\r\n },\r\n {\r\n name: \"BlueDark\",\r\n hex: \"var(--blue-700)\",\r\n },\r\n {\r\n name: \"GreenLight\",\r\n hex: \"var(--brand-primary-600)\",\r\n },\r\n {\r\n name: \"GreenDark\",\r\n hex: \"var(--brand-primary-700)\",\r\n },\r\n {\r\n name: \"Neutral\",\r\n hex: \"#F5FED6\",\r\n },\r\n {\r\n name: \"BrandPrimary\",\r\n hex: \"var(--brand-primary-500)\",\r\n },\r\n ];\r\n};\r\n\r\nconst gradients25 = (theme) => {\r\n return colors(theme).map((color, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n });\r\n};\r\n\r\nconst gradients25Light = (theme) => {\r\n return colors(theme).map((color, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n });\r\n};\r\n\r\nconst gradients50 = (theme) => {\r\n return colors(theme).map((color, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n });\r\n};\r\n\r\nconst gradient75 = (theme) => {\r\n return colors(theme).map((color, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n });\r\n};\r\n\r\nexport const gradients = (theme) => [\r\n ...gradients25(theme),\r\n ...gradients25Light(theme),\r\n ...gradients50(theme),\r\n ...gradient75(theme),\r\n];\r\n\r\n// export const barStyles = colors.map(color => {\r\n// return {\r\n// data: { fill: `url(#linear${color.name}Transparent75)` }\r\n// }\r\n// });\r\n\r\nexport const barStyles = (theme) => {\r\n return colors(theme).map((color) => {\r\n return {\r\n data: { fill: `${color.hex}` },\r\n };\r\n });\r\n};\r\n\r\nexport const linearStyles = (theme) => {\r\n return colors(theme).map((color) => {\r\n return {\r\n data: {\r\n fill: `url(#linear${color.name}Transparent25)`,\r\n fillOpacity: 0.3,\r\n stroke: color.hex,\r\n strokeWidth: 2,\r\n },\r\n };\r\n });\r\n};\r\n\r\nexport const scaltterStyles = (theme) => {\r\n return colors(theme).map((color) => {\r\n return {\r\n data: {\r\n fill: \"#00\",\r\n stroke: color.hex,\r\n strokeWidth: 2,\r\n },\r\n };\r\n });\r\n};\r\n\r\nexport const grid = (theme) => {\r\n return {\r\n fill: theme === \"dark\" ? \"#ffffffa3\" : \"#141414a3\",\r\n stroke: theme === \"dark\" ? \"#ffffffa3\" : \"#141414a3\",\r\n pointerEvents: \"painted\",\r\n strokeWidth: 1,\r\n opacity: 0.2,\r\n };\r\n};\r\n\r\nexport const tickLabelsX = (theme) => {\r\n return {\r\n fill: theme === \"dark\" ? \"#ffffffa3\" : \"#141414a3\",\r\n fontSize: 10,\r\n angle: 45,\r\n padding: 60,\r\n fontFamily: \"Inter\",\r\n };\r\n};\r\n\r\nexport const tickLabelsY = (theme) => {\r\n return {\r\n fill: theme === \"dark\" ? \"#ffffffa3\" : \"#141414a3\",\r\n fontSize: 10,\r\n fontFamily: \"Inter\",\r\n };\r\n};\r\n\r\nexport const tickStyle = (theme) => {\r\n return {\r\n fill: theme === \"dark\" ? \"#262626\" : \"#fafafa\",\r\n opacity: 0.8,\r\n };\r\n};\r\n","import React from 'react';\r\n\r\nconst StepProgressBar = ({ status, steps, theme }) => { \r\n const step = (status % steps) + 1; \r\n const maxSpaceWidth = 10;\r\n const spaceWidth = Math.min(maxSpaceWidth, (100 / steps) * 0.2);\r\n const totalSpaceWidth = (steps - 1) * spaceWidth;\r\n const barWidth = (100 - totalSpaceWidth) / steps;\r\n\r\n const progressBars = Array(steps).fill(null).map((_, index) => {\r\n const isFilled = index < step;\r\n const barColor = isFilled ? theme === 'dark' ? 'blue-500' : 'blue-600' : theme === 'dark' ? 'alpha-white-6' : 'alpha-black-6';\r\n return (\r\n \r\n );\r\n });\r\n\r\n return (\r\n
\r\n {progressBars}\r\n
\r\n );\r\n};\r\n\r\nexport default StepProgressBar;\r\n","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport * as sharedActions from '../../../store/actions/Shared';\r\n\r\nimport StepProgressBar from \"./StepProgressBar\";\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nconst Tooltip = ({\r\n continuous,\r\n index,\r\n step,\r\n backProps,\r\n closeProps,\r\n primaryProps,\r\n tooltipProps,\r\n isLastStep,\r\n skipProps,\r\n language,\r\n theme,\r\n setShowDrawerOnboarding \r\n}) => {\r\n const { onClick: backClickHandler, ...otherBackProps } = backProps;\r\n const { onClick: nextClickHandler, ...otherNextProps } = primaryProps;\r\n const { onClick: closeClickHandler, ...otherCloseProps } = closeProps;\r\n\r\n const handleBackClick = (event) => {\r\n track('Onboarding back clicked');\r\n\r\n if (backClickHandler) {\r\n backClickHandler(event);\r\n }\r\n };\r\n\r\n const handleNextClick = (event) => {\r\n\r\n if (index === 0) track('Onboarding begin clicked')\r\n else track('Onboarding next clicked')\r\n\r\n if (nextClickHandler) {\r\n nextClickHandler(event);\r\n }\r\n };\r\n\r\n const handleCloseClick = (event) => {\r\n\r\n setShowDrawerOnboarding(true);\r\n\r\n if (closeClickHandler) {\r\n closeClickHandler(event);\r\n }\r\n }; \r\n\r\n const tourViewed = window.localStorage.getItem(\"main-tutorial\");\r\n \r\n return (\r\n
\r\n
\r\n {(!step.walktrough && step.steps > 1) ? : null}\r\n
\r\n
\r\n

{step.title}

\r\n

{step.description}

\r\n
\r\n
\r\n
{step.content}
\r\n
\r\n
\r\n {!isLastStep &&
{language.tutorial_skip_button}
}\r\n {step.walktrough &&
handleCloseClick(event)} className={`label-small-special-underline content-default-secondary pe-pointer ${theme}`} {...otherCloseProps}>{language.onboarding_modal_label_redirection}
}\r\n {!step?.hideFooter ?\r\n
\r\n {index > 0 && !step?.hideBackButton && (\r\n
handleBackClick(event)} className={`row-center align-items-center rounded-pill surface-bg-on-surface-alpha border-fill-medium me-2 px-${index === 0 ? 4 : 2} ${theme}`} style={{height: 32, minWidth: 32}} {...otherBackProps}>\r\n \r\n
\r\n )}\r\n {continuous && !isLastStep && (\r\n
handleNextClick(event)} className={`row-center align-items-center rounded-pill surface-bg-on-surface-alpha border-fill-medium px-${index === 0 ? 4 : 2} ${theme}`} style={{height: 32, minWidth: 32}} {...otherNextProps}>\r\n {index === 0 &&

{language.tutorial_start_button}

}\r\n \r\n
\r\n )} \r\n {isLastStep && (\r\n
handleNextClick(event)} className={`row-center align-items-center surface-bg-on-surface-alpha border-fill-medium rounded-pill ${tourViewed !== 'show' ? 'px-4' : 'px-2'} ${theme}`} style={{height: 32, minWidth: 32}} {...otherNextProps}>\r\n {step.walktrough ? \r\n

{language.tutorial_got_it}

: \r\n
\r\n {tourViewed !== 'show' ?

{language.onboarding_modal_finally}

: null}\r\n \r\n
\r\n }\r\n
\r\n )}\r\n
:\r\n null}\r\n
\r\n
\r\n )\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n language: state.shared.language,\r\n theme: state.theme.theme \r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({ \r\n setShowDrawerOnboarding: (payload) => dispatch(sharedActions.setShowDrawerOnboarding(payload)) \r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Tooltip);","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\n\r\nimport Joyride, { ACTIONS, EVENTS, STATUS } from \"react-joyride\";\r\n\r\nimport Tooltip from \"../utils/TooltipCustom\";\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nconst joyrideStyles = {\r\n options: {\r\n arrowColor: '#1f1f20',\r\n overlayColor: 'rgba(0, 0, 0, 0.8)',\r\n zIndex: 10000\r\n },\r\n};\r\n\r\nexport default function useTour(props) {\r\n const {\r\n steps,\r\n localStorageKey,\r\n isOpenDrawer,\r\n controlledOnboarding = null,\r\n setShowPulseAnimation = null,\r\n //setControlledOnboarding, \r\n runTour,\r\n setRunTour,\r\n key,\r\n onTourFinish,\r\n } = props;\r\n const [run, setRun] = useState(false);\r\n const [stepIndex, setStepIndex] = useState(0);\r\n const [stepIndexControlled, setStepIndexControlled] = useState(0);\r\n\r\n useEffect(\r\n function () { \r\n const tourViewed = window.localStorage.getItem(localStorageKey); \r\n if (tourViewed === 'delivered') { \r\n return;\r\n }\r\n window.localStorage.setItem(localStorageKey, \"show\");\r\n if (isOpenDrawer === null) { setRun(true); }\r\n },\r\n [localStorageKey, isOpenDrawer]\r\n );\r\n\r\n useEffect(\r\n function () {\r\n const tourViewed = window.localStorage.getItem(localStorageKey);\r\n\r\n if (isOpenDrawer && tourViewed === 'show') {\r\n if (setRunTour && key) {\r\n if (key === 'new_user' || key === 'new_alert') {\r\n setTimeout(() => {\r\n setRunTour({ key: key, value: true });\r\n }, 500);\r\n } else {\r\n setRunTour({ key: key, value: true });\r\n }\r\n }\r\n return;\r\n };\r\n },\r\n [localStorageKey, isOpenDrawer, setRunTour, key]\r\n );\r\n\r\n useEffect(\r\n function () {\r\n if (controlledOnboarding) {\r\n setRun(false);\r\n setStepIndex(stepIndex + 1);\r\n setStepIndexControlled(stepIndex + 1);\r\n }\r\n },\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [controlledOnboarding]\r\n );\r\n\r\n useEffect(() => {\r\n if (runTour) {\r\n setRun(true);\r\n }\r\n }, [runTour]); \r\n\r\n const handleJoyrideCallback = useCallback(function (data) { \r\n const { action, index, type, status } = data;\r\n const finishedStatuses = [STATUS.FINISHED, STATUS.SKIPPED]; \r\n\r\n if (data.step?.pulseEffect) {\r\n if (setShowPulseAnimation) {\r\n setShowPulseAnimation(true);\r\n }\r\n } else {\r\n if (setShowPulseAnimation) {\r\n setShowPulseAnimation(false);\r\n }\r\n }\r\n\r\n if (finishedStatuses.includes(status)) {\r\n\r\n setRun(false);\r\n setStepIndex(0);\r\n\r\n if (onTourFinish && status !== 'skipped') {\r\n const tourViewed = window.localStorage.getItem(localStorageKey);\r\n if (tourViewed !== 'delivered') { onTourFinish() }\r\n };\r\n\r\n if (setRunTour && key) setRunTour({ key: key, value: false });\r\n\r\n window.localStorage.setItem(localStorageKey, 'delivered');\r\n\r\n if (status === 'skipped') { \r\n window.localStorage.setItem('main-tutorial', 'delivered');\r\n window.localStorage.setItem('alerts-tutorial', 'delivered');\r\n window.localStorage.setItem('graph-calendar-tour', 'delivered');\r\n window.localStorage.setItem('graph-export-data-tour', 'delivered');\r\n window.localStorage.setItem('graph-period-tour', 'delivered');\r\n window.localStorage.setItem('graph-type-tour', 'delivered');\r\n window.localStorage.setItem('invoice-tutorial', 'delivered');\r\n window.localStorage.setItem('profile-tutorial', 'delivered');\r\n window.localStorage.setItem('service-picker-tutorial', 'delivered');\r\n window.localStorage.setItem('service-tutorial', 'delivered');\r\n window.localStorage.setItem('user-tutorial', 'delivered'); \r\n \r\n if (setRunTour) setRunTour({ key: 'walktrough', value: true });\r\n track('Onboarding skip clicked');\r\n }\r\n\r\n } else if ([EVENTS.STEP_AFTER, EVENTS.TARGET_NOT_FOUND].includes(type)) {\r\n\r\n const nextStepIndex = index + (action === ACTIONS.PREV ? -1 : 1);\r\n\r\n if (controlledOnboarding && index === (stepIndexControlled - 1)) {\r\n setTimeout(() => {\r\n setRun(true);\r\n }, 400);\r\n }\r\n else {\r\n setStepIndex(nextStepIndex);\r\n }\r\n }\r\n }, [controlledOnboarding, localStorageKey, setStepIndex, stepIndexControlled, setRunTour, key, onTourFinish, setShowPulseAnimation]);\r\n\r\n const tour = useMemo(\r\n () => (\r\n \r\n ),\r\n [steps, handleJoyrideCallback, run, stepIndex]\r\n );\r\n\r\n return tour; \r\n}","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nconst ThemedImage = ({ imageName, ...props }) => {\r\n let theme = props.theme;\r\n let language = props.language.language_locale; \r\n\r\n const getImagePath = (theme, language, imageName) => { \r\n try { \r\n return require(`../../../imgs/onboarding/${theme}/${language}/${imageName}`);\r\n } catch (error) { \r\n return null;\r\n } \r\n };\r\n\r\n\r\n return {imageName};\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n language: state.shared.language,\r\n theme: state.theme.theme\r\n});\r\n\r\nexport default connect(mapStateToProps)(ThemedImage);\r\n","import React from 'react';\r\n\r\nimport ThemedImage from '../utils/ThemedImage';\r\n\r\nexport const stepsGraphType = (language) => {\r\n return ([ \r\n {\r\n content:\r\n
\r\n \r\n
,\r\n title: language.onboarding_graph_type_title_step1,\r\n description: language.onboarding_graph_type_description_step1,\r\n placement: \"auto\", \r\n target: \"#graph_picker\",\r\n disableBeacon: true,\r\n steps: 2, \r\n }, \r\n {\r\n content:\r\n
\r\n \r\n
,\r\n title: language.onboarding_graph_type_title_step2,\r\n description: language.onboarding_graph_type_description_step2,\r\n placement: \"auto\", \r\n target: \"#graph_picker\",\r\n disableBeacon: true,\r\n steps: 2, \r\n } \r\n ])\r\n};","import React from \"react\"\r\n\r\nimport ThemedImage from \"../utils/ThemedImage\"\r\n\r\nexport const stepsGraphPeriod = (language) => {\r\n return ([\r\n {\r\n content: (\r\n
\r\n \r\n
\r\n ),\r\n title: language.onboarding_graph_period_title_step1,\r\n description: language.onboarding_graph_period_description_step1,\r\n placement: \"auto\", \r\n target: \"#date_range_picker\",\r\n disableBeacon: true,\r\n steps: 5,\r\n disableOverlayClose: true,\r\n spotlightClicks: true,\r\n hideFooter: true,\r\n hideFooterTitle: \"Haz click en el botón!\",\r\n pulseEffect: true\r\n },\r\n { \r\n title: language.onboarding_graph_period_title_step2,\r\n description: language.onboarding_graph_period_description_step2,\r\n placement: \"auto\",\r\n target: \"#date_interval\",\r\n disableBeacon: true,\r\n steps: 5,\r\n disableOverlayClose: true,\r\n hideBackButton: true,\r\n },\r\n { \r\n title: language.onboarding_graph_period_title_step3,\r\n description: language.onboarding_graph_period_description_step3,\r\n placement: \"auto\",\r\n target: \"#date_interval\",\r\n disableBeacon: true,\r\n steps: 5,\r\n disableOverlayClose: true,\r\n },\r\n { \r\n title: language.onboarding_graph_period_title_step4,\r\n description: language.onboarding_graph_period_description_step4,\r\n placement: \"auto\", \r\n target: \"#date_interval\",\r\n disableBeacon: true,\r\n steps: 5,\r\n disableOverlayClose: true,\r\n },\r\n { \r\n title: language.onboarding_graph_period_title_step5,\r\n description: language.onboarding_graph_period_description_step5,\r\n placement: \"auto\",\r\n target: \"#date_interval\",\r\n disableBeacon: true,\r\n steps: 5,\r\n disableOverlayClose: true,\r\n },\r\n ])\r\n}\r\n","import React from 'react';\r\n\r\nimport ThemedImage from '../utils/ThemedImage';\r\n\r\nexport const stepsGraphCalendar = (language) => {\r\n return ([\r\n {\r\n content:\r\n
\r\n \r\n
,\r\n title: language.onboarding_graph_calendar_title_step1,\r\n description: language.onboarding_graph_calendar_description_step1,\r\n placement: \"auto\",\r\n target: \"#date_calendar_picker\",\r\n disableBeacon: true,\r\n steps: 1 \r\n } \r\n ])\r\n};","import React from \"react\"\r\n\r\nexport const stepsGraphExportData = (language, theme) => {\r\n return ([\r\n { \r\n content: (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n ),\r\n title: language.onboarding_graph_export_data_title_step1,\r\n description: language.onboarding_graph_export_data_description_step1,\r\n placement: \"auto\", \r\n target: \"#export_data_picker\",\r\n disableBeacon: true,\r\n steps: 1 \r\n } \r\n ])\r\n}\r\n","import React, { Fragment, useEffect, useRef, useState } from \"react\"\r\nimport { connect } from \"react-redux\"\r\n\r\nimport * as energyActions from \"../../../store/actions/Energy\"\r\nimport * as sharedActions from \"../../../store/actions/Shared\"\r\n\r\nimport _ from \"lodash\"\r\n// import { Animation } from \"rsuite\"\r\nimport { track } from \"@amplitude/analytics-browser\"\r\n\r\nimport { Transition } from \"react-transition-group\"\r\n\r\nimport { Loader } from \"rsuite\"\r\n\r\nimport { VictoryChart, VictoryGroup, VictoryAxis, createContainer, VictoryBar, VictoryLabel, VictoryTooltip, VictoryArea, Rect } from \"victory\"\r\n\r\nimport moment from \"moment-timezone\"\r\nimport { addDays, parse, startOfWeek, startOfMonth, addMonths, startOfYear, addYears } from \"date-fns\"\r\n\r\nimport CurrencyFormat from 'react-currency-format';\r\n\r\nimport GraphTypePicker from \"./GraphTypePicker\"\r\nimport GraphPeriodPicker from \"./GraphPeriodPicker\"\r\nimport GraphIndicators from \"./GraphIndicators\"\r\nimport ExtraItemsPopover from \"../../genius/ExtraItemsPopover\"\r\nimport CalendarGraphEnergy from \"../../shared/utilities/CalendarGraphEnergy\"\r\nimport ButtonCircle from \"../../shared/utilities/ButtonCircle\"\r\nimport ExportGraph from \"./ExportGraph\"\r\n\r\nimport empty_graph_energy from \"../../../imgs/empty-graph-energy.svg\"\r\nimport empty_graph_energy_light from \"../../../imgs/empty-graph-energy-light.svg\"\r\n\r\nimport { setGraphLabel } from \"../../../services/GraphsHandler\"\r\n\r\nimport { useWindowSize } from \"../../shared/utilities/useWindowSize\"\r\nimport { colors, gradients, barStyles, linearStyles, grid, tickLabelsX, tickLabelsY, tickStyle } from \"../../shared/svgs/GraphStyles\"\r\n\r\nimport useTour from '../../onboarding/hook/useTour';\r\nimport { stepsGraphType } from '../../onboarding/steps/GraphTypeSteps';\r\nimport { stepsGraphPeriod } from \"../../onboarding/steps/GraphPeriodSteps\";\r\nimport { stepsGraphCalendar } from \"../../onboarding/steps/GraphCalendarSteps\";\r\nimport { stepsGraphExportData } from \"../../onboarding/steps/GraphExportDataSteps\"\r\n\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nconst VictoryZoomVoronoiContainer = createContainer(\"zoom\", \"voronoi\")\r\n\r\n\r\nconst graphLoadingContainer = (loading, language) => (\r\n
\r\n \r\n {(state) => (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n)\r\n\r\n\r\nconst formatDateLabel = (intervalGraph, domain, lang) => {\r\n let dateFormated\r\n let intervalLeft\r\n let intervalRight\r\n moment.locale(lang)\r\n switch (intervalGraph) {\r\n case 0:\r\n dateFormated = moment\r\n .utc(domain?.x[1] * 1000)\r\n .tz(\"America/Bogota\")\r\n .format(\"DD MMMM YYYY\")\r\n break\r\n case 1:\r\n case 2:\r\n intervalLeft = moment.utc((domain?.x[0] + 86400) * 1000).format(\"MMM DD\")\r\n intervalRight = moment.utc(domain?.x[1] * 1000).format(\"MMM DD\")\r\n dateFormated = `${intervalLeft} ${lang === 'es' ? 'a' : '-'} ${intervalRight}`\r\n break\r\n case 3:\r\n intervalLeft = moment.utc((domain?.x[0] + 2592000) * 1000).format(\"MMM YYYY\")\r\n intervalRight = moment.utc(domain?.x[1] * 1000).format(\"MMM YYYY\")\r\n dateFormated = `${intervalLeft} ${lang === 'es' ? 'a' : '-'} ${intervalRight}`\r\n break\r\n default:\r\n dateFormated = \"\"\r\n break\r\n }\r\n return dateFormated\r\n}\r\n\r\nconst handlerFormatAxis = (date, type, lang, zoomContainer = false, title = false, sampled = false) => {\r\n let stringFormats\r\n\r\n switch (type) {\r\n case 0:\r\n stringFormats = [\"hh:mm DD/MM/YY\", \"HH\", \"dddd, DD MMMM YYYY\", \"HH:mm\"]\r\n break\r\n case 1:\r\n case 2:\r\n stringFormats = [\"DD/MM/YY\", \"ddd, DD\", \"MMMM YYYY\"]\r\n break\r\n case 3:\r\n stringFormats = [\"MMM, YY\", \"MMM\", \"YYYY\"]\r\n break\r\n default:\r\n break\r\n }\r\n if (zoomContainer) {\r\n moment.locale(lang)\r\n return parseInt(moment(date, stringFormats[0]).unix())\r\n } else {\r\n moment.locale(lang)\r\n return moment.utc(date * 1000).format(stringFormats[title ? 2 : sampled && type === 0 ? 3 : 1])\r\n }\r\n}\r\n\r\n\r\nconst getNextMonth = (date, left, interval, lang, sampled = false, sampledTime = 0) => {\r\n moment.locale(lang);\r\n let dateObject = moment.utc(date);\r\n switch (interval) {\r\n case 0:\r\n const day = left ? dateObject.subtract(1, 'days') : dateObject.add(1, 'days');\r\n const firstHour = day.startOf('day').unix() - 1800;\r\n const lastHour = day.endOf('day').unix() - 1800;\r\n if (sampled) {\r\n if (left) {\r\n return { x: [(date / 1000) - (36 * sampledTime * 2), (date / 1000) - (36 * sampledTime)]}\r\n }\r\n else {\r\n return { x: [(date / 1000), (date / 1000) + (36 * sampledTime)]}\r\n }\r\n }\r\n return { x: [firstHour, lastHour] };\r\n case 1:\r\n const week = left ? dateObject.subtract(1, 'weeks') : dateObject.add(1, 'weeks');\r\n const firstDay = week.startOf('isoWeek').unix() - 43200;\r\n const lastDay = week.endOf('isoWeek').unix() - 86400 * 0.5;\r\n return { x: [firstDay, lastDay] };\r\n case 2:\r\n const month = left ? dateObject.subtract(1, 'months') : dateObject.add(1, 'months');\r\n const firstDayMonth = month.startOf('month').unix() - 43200;\r\n const lastDayMonth = month.endOf('month').unix() - 43200;\r\n return { x: [firstDayMonth, lastDayMonth] };\r\n default:\r\n break;\r\n }\r\n}\r\n\r\nconst getBarWidth = (intervalGraph, numOfGraphsSelected) => {\r\n switch (intervalGraph) {\r\n case 0:\r\n return 20\r\n case 1:\r\n if (numOfGraphsSelected === 1) {\r\n return 60\r\n } else if (numOfGraphsSelected < 4) {\r\n return 40\r\n } else if (numOfGraphsSelected === 4) {\r\n return 25\r\n } else {\r\n return 15\r\n }\r\n case 2:\r\n if (numOfGraphsSelected === 1) {\r\n return 20\r\n } else if (numOfGraphsSelected === 2) {\r\n return 12\r\n } else {\r\n return 10\r\n }\r\n case 3:\r\n if (numOfGraphsSelected <= 2) {\r\n return 35\r\n } else if (numOfGraphsSelected > 2 || numOfGraphsSelected <= 4) {\r\n return 20\r\n } else {\r\n return 15\r\n }\r\n default:\r\n break\r\n }\r\n}\r\n\r\nconst Graph = (props) => {\r\n\r\n const history = useHistory();\r\n\r\n let graphData = props.graphData\r\n let intervalGraph = props.intervalGraph\r\n let graphDateFrom = props.graphDateFrom\r\n let graphDateTo = props.graphDateTo\r\n let showCalendar = props.showCalendar\r\n let scrollActive = props.scrollActive\r\n let setIntervalGraph = props.setIntervalGraph\r\n //let tariff = props.tariff; \r\n let showReportModal = props.showReportModal\r\n let graphCalendarPicker = props.graphCalendarPicker\r\n let graphExportData = props.graphExportData\r\n let activeServicesPlus = props.activeServicesPlus\r\n let theme = props.theme\r\n\r\n const setShowBlackScreen = props.setShowBlackScreen\r\n const setShowCalendar = props.setShowCalendar\r\n const setScrollActive = props.setScrollActive\r\n const setControlledOnboarding = props.setControlledOnboarding\r\n const setStartOnboarding = props.setStartOnboarding\r\n const loadDetailService = props.loadDetailService\r\n\r\n const size = useWindowSize()\r\n\r\n const numLegendsToShow = size.width > 1400 ? 3 : 2\r\n\r\n const graphContainer = useRef(null)\r\n const graphContainerLoader = useRef(null)\r\n\r\n const maxNormalizeInit = {\r\n GENERATION: 1,\r\n IRRADIANCE: 1,\r\n PR: 100,\r\n POWER_LIMITATION: 100\r\n }\r\n let avgText = props.language.language_locale === \"es\" ? 'Prom' : 'Avg'\r\n\r\n const [emptyData, setEmptyData] = useState(false)\r\n const [graphContainerWidth, setGraphContainerWidth] = useState(0)\r\n const [domain, setDomain] = useState(null)\r\n const [entireDomain, setEntireDomain] = useState(null)\r\n const [data, setData] = useState([])\r\n const [grabbing, setGrabbing] = useState(false)\r\n const [dateRangeEnergy] = useState([\r\n {\r\n startDate: graphDateFrom,\r\n endDate: graphDateTo,\r\n key: \"selection\",\r\n },\r\n ])\r\n const typePickerRef = useRef(null);\r\n const numOfGraphsSelected = data.length\r\n const [openGraphPeriodPicker, setOpenPeriodPicker] = useState(false);\r\n const [maxNormalize, setMaxNormalize] = useState(maxNormalizeInit);\r\n const [loader, setLoader] = useState(true);\r\n const [sampledTime, setSampledTime] = useState(0);\r\n const [heightTypePicker, setHeightTypePicker] = useState(70);\r\n\r\n useEffect(() => { \r\n const sortGraphData = graphData.sort((a, b) => b.data.length - a.data.length);\r\n if (sortGraphData.length) setData(sortGraphData)\r\n // eslint-disable-next-line\r\n }, [graphData])\r\n\r\n useEffect(() => {\r\n if (data.length) {\r\n const dataValues = data[0]?.data\r\n let intervalX = [dataValues[0]?.x_sec, intervalGraph === 3 ? _.last(dataValues)?.x_sec + (new Date().getDate() + 1) * 86400 : _.last(dataValues)?.x_sec]\r\n const frequency = dataValues[1]?.x_sec - dataValues[0]?.x_sec;\r\n setSampledTime(frequency);\r\n setEntireDomain({ x: intervalX })\r\n if (domain === null || isNaN(domain.x[0])) {\r\n setDomain({\r\n x: [\r\n props.activeGraphs?.includes(\"POWER_LIMITATION\") && intervalGraph === 0 ? ((moment().tz(\"America/Bogota\").valueOf() / 1000).toFixed(0)) - 30 * frequency :\r\n intervalX[1] -\r\n (intervalGraph === 0\r\n ? 86400\r\n : intervalGraph === 1\r\n ? 604800 - (numOfGraphsSelected > 9 ? 86400 * (numOfGraphsSelected - 9) : 0)\r\n : intervalGraph === 2\r\n ? 86400 * moment(graphDateFrom)?.daysInMonth() - (numOfGraphsSelected < 3 ? 0 : numOfGraphsSelected === 3 || numOfGraphsSelected === 4 ? 86400 * (numOfGraphsSelected + 1) : numOfGraphsSelected === 5 ? 86400 * (numOfGraphsSelected * 2) : numOfGraphsSelected <= 7 ? 86400 * Math.floor(numOfGraphsSelected * 2.5) : 86400 * 22)\r\n : intervalGraph === 3\r\n ? 31536000 - (numOfGraphsSelected > 3 ? 86400 * moment(graphDateFrom)?.daysInMonth() * (numOfGraphsSelected - 3) : 0)\r\n : 0),\r\n props.activeGraphs?.includes(\"POWER_LIMITATION\") && intervalGraph === 0 ? ((moment().tz(\"America/Bogota\").valueOf() / 1000).toFixed(0)) : intervalX[1],\r\n ],\r\n })\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [graphContainerWidth, data, intervalGraph])\r\n\r\n useEffect(() => {\r\n if (graphContainer.current) {\r\n setGraphContainerWidth(graphContainer.current.getBoundingClientRect().width)\r\n }\r\n else {\r\n setGraphContainerWidth(graphContainerLoader.current.getBoundingClientRect().width)\r\n };\r\n if (typePickerRef.current) {\r\n setHeightTypePicker(typePickerRef.current.getBoundingClientRect().height);\r\n }\r\n }, [size, loader]);\r\n\r\n useEffect(() => {\r\n const emptyDataGraph = data.filter((d) => d.data.length === 0)\r\n setEmptyData(emptyDataGraph.length === data.length)\r\n // eslint-disable-next-line\r\n }, [data])\r\n\r\n useEffect(() => {\r\n if (domain) {\r\n const intervalLeft = (domain.x[0] - entireDomain.x[0]) / (intervalGraph === 1 ? 604800 : intervalGraph === 0 ? 86400 : intervalGraph === 2 ? 86400 * 30 : 31536000)\r\n const intervalRight = (entireDomain.x[1] - domain.x[1]) / (intervalGraph === 1 ? 604800 : intervalGraph === 0 ? 86400 : intervalGraph === 2 ? 86400 * 30 : 31536000)\r\n if (intervalLeft < 0.6 && props.enableScrollData) { \r\n props.loadGraphAsync(true, true)\r\n }\r\n if (intervalRight < 0.6 && props.enableScrollData && \r\n entireDomain.x[1] - (handlerFormatAxis(new Date(), intervalGraph, props.language.language_locale, true) + \r\n (props.activeGraphs?.includes('PREDICTION_ACTIVE_ENERGY') && intervalGraph === 0 ? 3600 * 1000 * 24 * 0 : 0)) <= 0) {\r\n props.loadGraphAsync(true, false)\r\n }\r\n }\r\n if (props.activeGraphs?.includes('IRRADIANCE_GEN') || props.activeGraphs?.includes('POWER_LIMITATION')) getMaxNormalize();\r\n // eslint-disable-next-line\r\n }, [domain, props.enableScrollData])\r\n\r\n useEffect(() => {\r\n setShowBlackScreen(showCalendar)\r\n }, [setShowBlackScreen, showCalendar])\r\n\r\n useEffect(() => { setTimeout(() => setLoader(props.graphLoading), 500) }, [props.graphLoading])\r\n\r\n const getMax = (arr) => {\r\n arr = arr.map((value) => value.data.filter((value) => value.y > 0 && value?.x_sec >= domain?.x[0] && value?.x_sec <= domain?.x[1]).map((value) => value.y)).reduce((a, b) => a.concat(b), [])\r\n return Math.max(...arr)\r\n }\r\n\r\n const getMaxNormalize = () => {\r\n if (props.activeGraphs?.includes('IRRADIANCE_GEN')){\r\n let generation = data?.filter(item => item?.value === 'GENERATION');\r\n let irradiance = data?.filter(item => item?.value === 'IRRADIANCE');\r\n generation = generation.map((value) => value.data.filter((value) => value?.x_sec >= domain?.x[0] && value?.x_sec <= domain?.x[1]).map((value) => value.y)).reduce((a, b) => a.concat(b), [])\r\n irradiance = irradiance.map((value) => value.data.filter((value) => value?.x_sec >= domain?.x[0] && value?.x_sec <= domain?.x[1]).map((value) => value.y)).reduce((a, b) => a.concat(b), [])\r\n setMaxNormalize({ ...maxNormalize, GENERATION: generation.length ? Math.max(...generation) : 1, IRRADIANCE: irradiance.length ? Math.max(...irradiance) : 1 });\r\n }\r\n if (props.activeGraphs?.includes('POWER_LIMITATION')){\r\n let generation = data?.filter(item => item?.value === 'GENERATION');\r\n let powerLimitation = data?.filter(item => item?.value === 'POWER_LIMITATION');\r\n generation = generation.map((value) => value.data.filter((value) => value?.x_sec >= domain?.x[0] && value?.x_sec <= domain?.x[1]).map((value) => value.y)).reduce((a, b) => a.concat(b), [])\r\n powerLimitation = powerLimitation.map((value) => value.data.filter((value) => value?.x_sec >= domain?.x[0] && value?.x_sec <= domain?.x[1]).map((value) => value.y)).reduce((a, b) => a.concat(b), [])\r\n setMaxNormalize({ ...maxNormalize, GENERATION: generation.length && powerLimitation.length ? Math.max(...generation.map((x, i) => x / (powerLimitation[i] > 0 ? (powerLimitation[i]/ 100) : 1))) : 1, POWER_LIMITATION: 100 });\r\n }\r\n }\r\n\r\n const handleCalendar = (value) => {\r\n props.setGraphDates(value)\r\n props.loadGraphAsync(false, true)\r\n setShowBlackScreen(false)\r\n setShowCalendar(false)\r\n }\r\n\r\n const RenderEmptyData = () => {\r\n return (\r\n
\r\n \"empty_graph_energy\"\r\n
{props.language.energy_graph_title_empty_data}
\r\n
{props.language.energy_graph_description_empty_data}
\r\n {\r\n setShowCalendar(true)\r\n }}>\r\n

{props.language.energy_graph_empty_data_button}

\r\n \r\n
\r\n )\r\n }\r\n\r\n const capitalizedText = (text) => {\r\n let label = \"\"\r\n var phrase = text.toLowerCase().split(\" \")\r\n\r\n for (var i = 0; i < phrase.length; i++) {\r\n if (i !== 2) {\r\n phrase[i] = phrase[i].charAt(0).toUpperCase() + phrase[i].substring(1)\r\n }\r\n }\r\n\r\n label = phrase.join(\" \")\r\n\r\n return label\r\n }\r\n\r\n useEffect(() => {\r\n if (showCalendar && graphCalendarPicker) {\r\n setControlledOnboarding({ key: 'graph_calendar_picker', value: true })\r\n } else {\r\n setControlledOnboarding({ key: 'graph_calendar_picker', value: false })\r\n }\r\n }, [showCalendar, setControlledOnboarding, graphCalendarPicker])\r\n\r\n useEffect(() => {\r\n if (showReportModal && graphExportData) {\r\n setControlledOnboarding({ key: 'graph_export_data', value: true })\r\n } else {\r\n setControlledOnboarding({ key: 'graph_export_data', value: false })\r\n }\r\n }, [showReportModal, setControlledOnboarding, graphExportData])\r\n\r\n const tourGraphType = useTour({ steps: stepsGraphType(props.language), localStorageKey: \"graph-type-tour\", isOpenDrawer: !scrollActive, controlledOnboarding: props.controlledTypePicker, setControlledOnboarding: setControlledOnboarding, runTour: props.graphTypePicker, setRunTour: setStartOnboarding, key: 'graph_type_picker', setShowPulseAnimation: props.setShowPulseAnimation });\r\n const tourGraphPeriod = useTour({ steps: stepsGraphPeriod(props.language), localStorageKey: \"graph-period-tour\", isOpenDrawer: openGraphPeriodPicker, controlledOnboarding: props.controlledPeriodPicker, setControlledOnboarding: setControlledOnboarding, runTour: props.graphPeriodPicker, setRunTour: setStartOnboarding, key: 'graph_period_picker', setShowPulseAnimation: props.setShowPulseAnimation });\r\n const tourGraphCalendar = useTour({ steps: stepsGraphCalendar(props.language), localStorageKey: \"graph-calendar-tour\", isOpenDrawer: showCalendar, controlledOnboarding: props.controlledCalendarPicker, setControlledOnboarding: setControlledOnboarding, runTour: props.graphCalendarPicker, setRunTour: setStartOnboarding, key: 'graph_calendar_picker', setShowPulseAnimation: props.setShowPulseAnimation });\r\n const tourGraphExportData = useTour({ steps: stepsGraphExportData(props.language, theme), localStorageKey: \"graph-export-data-tour\", isOpenDrawer: showReportModal, controlledOnboarding: props.controlledExportPicker, setControlledOnboarding: setControlledOnboarding, runTour: props.graphExportData, setRunTour: setStartOnboarding, key: 'graph_export_data', setShowPulseAnimation: props.setShowPulseAnimation });\r\n\r\n const DotSliderLine = ({ scale }) => {\r\n const currentDate = new Date(domain?.x[1] * 1000);\r\n const firstDateMonth = new Date(Date.UTC(currentDate.getUTCFullYear(), currentDate.getUTCMonth(), 1));\r\n const firstDateTimestamp = firstDateMonth?.getTime();\r\n const x = scale.x((firstDateTimestamp / 1000) - (86400 / 2))\r\n return (\r\n \r\n \r\n \r\n \r\n {capitalizedText(moment.utc(firstDateTimestamp).format('MMMM, YYYY'))}\r\n \r\n )\r\n }\r\n\r\n const FinalDot = ({ scale, data, style, valueData }) => {\r\n const value = _.last(data);\r\n const x = scale.x(value?.x_sec);\r\n const y = data.length && valueData !== \"PREDICTION_ACTIVE_ENERGY\" ? scale.y(value?.y) : -1000;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const AverageLine = ({ scale }) => {\r\n let unit = null;\r\n let avg = 0;\r\n let array = [];\r\n let y = -1000;\r\n const keys = [];\r\n const uniqueArray = [];\r\n const dataFiltered = data.map((value) => value.data.filter((value) => value.y > 0 && value?.x_sec > domain?.x[0] && value?.x_sec <= domain?.x[1]));\r\n dataFiltered[0].forEach(item => {\r\n if (!keys.includes(item?.x_sec)) {\r\n uniqueArray.push(item);\r\n keys.push(item?.x_sec);\r\n }\r\n })\r\n array = uniqueArray.map((value) => value.y).reduce((a, b) => a.concat(b), []);\r\n if (array.length) {\r\n unit = data[0].data[0].unit;\r\n const tot = array.reduce((prev, curr) => (curr += prev)).toFixed(2);\r\n avg = (tot / array.length).toFixed(2);\r\n y = scale.y(avg);\r\n }\r\n return (\r\n \r\n \r\n \r\n {`${avgText}: ${avg}${unit}`}\r\n \r\n )\r\n }\r\n\r\n const handleBarClick = (_event, data) => {\r\n track('Graphicbar clicked', { Rank_ID: props.rankGraphId, Project_Type: props.activeServicesEnergy.map(function (service) { return service?.type?.name }) })\r\n\r\n if (numOfGraphsSelected >= 5) return\r\n\r\n const targetDate = parse(data?.datum?.x, 'dd/MM/yy', new Date())\r\n const targetDateYear = parse(data?.datum?.x, 'MMM, d', new Date())\r\n\r\n const graphDateFromWeek = addDays(startOfWeek(targetDate, 0), 1)\r\n const graphDateToWeek = addDays(startOfWeek(targetDate, 0), 7)\r\n\r\n const graphDateFromMonth = startOfMonth(targetDateYear)\r\n const graphDateToMonth = addDays(addMonths(startOfMonth(targetDateYear), 1), -1)\r\n\r\n if (targetDate) {\r\n switch (intervalGraph) {\r\n case 1:\r\n props.setDetailDataGraph({ graphDateFrom: targetDate, graphDateTo: targetDate, intervalGraph: 0 })\r\n props.setPrevStateBar(targetDate)\r\n break\r\n case 2:\r\n props.setDetailDataGraph({ graphDateFrom: graphDateFromWeek, graphDateTo: graphDateToWeek, intervalGraph: 1 })\r\n props.setPrevStateBar(targetDate)\r\n break\r\n case 3:\r\n props.setDetailDataGraph({ graphDateFrom: graphDateFromMonth, graphDateTo: graphDateToMonth, intervalGraph: 2 })\r\n props.setPrevStateBar(targetDateYear)\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n }\r\n\r\n const formatOperationStateValue = value => {\r\n switch (value) {\r\n case 0:\r\n return props.language.graph_operation_state_no_record;\r\n case 1:\r\n return props.language.graph_operation_state_deteriorating;\r\n case 2:\r\n return props.language.graph_operation_state_process;\r\n case 3:\r\n return props.language.graph_operation_state_standby;\r\n case 4:\r\n return props.language.graph_operation_state_checking;\r\n case 5:\r\n return props.language.graph_operation_state_fail;\r\n default:\r\n return null\r\n }\r\n }\r\n\r\n const handlePrevStateBar = (targetDate) => {\r\n\r\n const graphDateFromWeek = addDays(startOfWeek(targetDate, 0), 1)\r\n const graphDateToWeek = addDays(startOfWeek(targetDate, 0), 7)\r\n\r\n const graphDateFromMonth = startOfMonth(targetDate)\r\n const graphDateToMonth = addDays(addMonths(startOfMonth(targetDate), 1), -1)\r\n\r\n const graphDateFromYear = startOfYear(targetDate)\r\n const graphDateToYear = addYears(startOfYear(targetDate), 1)\r\n\r\n if (targetDate) {\r\n switch (intervalGraph) {\r\n case 0:\r\n props.setDetailDataGraph({ graphDateFrom: graphDateFromWeek, graphDateTo: graphDateToWeek, intervalGraph: 1 })\r\n props.setPrevStateBar(null)\r\n break\r\n case 1:\r\n props.setDetailDataGraph({ graphDateFrom: graphDateFromMonth, graphDateTo: graphDateToMonth, intervalGraph: 2 })\r\n props.setPrevStateBar(null)\r\n break\r\n case 2:\r\n props.setDetailDataGraph({ graphDateFrom: graphDateFromYear, graphDateTo: graphDateToYear, intervalGraph: 3 })\r\n props.setPrevStateBar(null)\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n }\r\n\r\n const CustomFlyout = ({ x, y, datum, data }) => {\r\n\r\n const detailData = data.map(item => { return { id: item.id, data: item.data.filter(d => d.x_sec === datum.x_sec), value: item?.value } });\r\n\r\n const Content = ({ item, i }) => {\r\n return (\r\n <>\r\n 1 ? 46 : 50))} width=\"30\" height=\"30\">\r\n \r\n \r\n 1 ? 40 : 44))} width=\"130\" height=\"30\">\r\n

{`${item?.id.split(\"-\").length === 2 ? item?.id.split(\"-\")[0] : item?.id.split(\"-\").slice(0, item?.id.split(\"-\").length - 1).reverse().join(' - ')}`}

\r\n
\r\n \r\n 1 ? 13 : 17))}\r\n fontSize=\"12\"\r\n fontFamily={'Inter'}\r\n fill={theme === 'dark' ? '#ffffffa3' : '#141414a3'}>\r\n {intervalGraph === 0 ? `${handlerFormatAxis(item?.data[0]?.x_sec, intervalGraph, props.language.language_locale, false, false, props.activeGraphs?.includes(\"POWER_LIMITATION\"))}:00 : ` : `${handlerFormatAxis(item?.data[0]?.x_sec, intervalGraph, props.language.language_locale)} : `} {`${props.activeGraphs.includes('OPERATION_STATE') ? formatOperationStateValue(parseInt(value)) : value} ${item?.data[0]?.unit}`}\r\n }\r\n />\r\n\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n d.data.length !== 0).length * 43}\r\n rx=\"20\"\r\n fill={theme === 'dark' ? '#262626' : '#ffffff'}\r\n stroke={theme === 'dark' ? '#ffffff' : '#000000'}\r\n />\r\n {detailData.length ? detailData.filter(d => d.data.length !== 0).map((d, index) => ()) : null}\r\n \r\n );\r\n };\r\n\r\n useEffect(() => { if(props.activeGraphs.includes('REACTIVE_CAPACITIVE_EXCESS_ENERGY')){setIntervalGraph(3)} }, [props.activeGraphs, setIntervalGraph])\r\n \r\n return (\r\n \r\n {loader ?
{graphLoadingContainer(loader, props.language)}
:\r\n \r\n {tourGraphType}\r\n {tourGraphPeriod}\r\n {tourGraphCalendar}\r\n {tourGraphExportData}\r\n
\r\n {gradients(theme)}\r\n
\r\n
\r\n
\r\n
\r\n {data.slice(0, numLegendsToShow).concat(props.activeGraphs.includes('POWER_LIMITATION') ? [{id: \"Generación nominal\", data: [0]}] : []).map((d, i) => (\r\n \r\n
\r\n
\r\n
{setGraphLabel(d?.id)}
\r\n
\r\n
\r\n
\r\n }\r\n button={\r\n
\r\n \r\n
{d.data.length ? setGraphLabel(d.id, true) : `${props.language.energy_graph_no_data} - ${setGraphLabel(d?.id, true)}`}
\r\n {props.activeGraphs.length > 1 && props.setGraphActive([...props.activeGraphs.filter((g) => g !== d.value)])}>}\r\n
\r\n }\r\n theme={theme}\r\n />\r\n ))}\r\n {data.length > numLegendsToShow && (\r\n \r\n
\r\n {data.slice(numLegendsToShow).map((d, i) => {\r\n return (\r\n
\r\n \r\n
{d.data.length ? setGraphLabel(d.id) : `${props.language.energy_graph_no_data} - ${setGraphLabel(d?.id, true)}`}
\r\n props.setGraphActive([...props.activeGraphs.filter((g) => g !== d.value)])}>\r\n
\r\n )\r\n })}\r\n
\r\n
\r\n }\r\n button={\r\n
\r\n \r\n
{data.length - numLegendsToShow}
\r\n
\r\n }\r\n theme={theme}\r\n />\r\n )}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {activeServicesPlus.length ? \r\n : null}\r\n setOpenPeriodPicker(value)} />\r\n
{capitalizedText(formatDateLabel(intervalGraph, domain, props.language.language_locale))}
\r\n
\r\n {\r\n setShowCalendar(!showCalendar)\r\n }}\r\n />\r\n \r\n
\r\n
\r\n {\r\n props.setShowReportModal(true)\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {props.prevStateBar ? : null}\r\n {emptyData === false && data.length ? (\r\n
setGrabbing(true)} onMouseUp={() => setGrabbing(false)}>\r\n
\r\n {intervalGraph === 3 || (intervalGraph === 2 && numOfGraphsSelected >= 3) || (intervalGraph === 1 && numOfGraphsSelected >= 8) ? null :\r\n
{\r\n setScrollActive(false);\r\n setDomain(getNextMonth(domain?.x[1] * 1000, true, intervalGraph, props.language.language_locale, props.activeGraphs.includes(\"POWER_LIMITATION\"), sampledTime));\r\n track('Graphic clicked', { Graphic_Back: 'activate', Rank_ID: props.rankGraphId, Project_Type: props.activeServicesEnergy.map(function (service) { return service?.type?.name }) })\r\n }}>\r\n \r\n
}\r\n {intervalGraph === 3 || (intervalGraph === 2 && numOfGraphsSelected >= 3) || (intervalGraph === 1 && numOfGraphsSelected >= 8) ? null :\r\n
{\r\n setScrollActive(false);\r\n const nextValue = getNextMonth(domain?.x[1] * 1000, false, intervalGraph, props.language.language_locale, props.activeGraphs.includes(\"POWER_LIMITATION\"), sampledTime);\r\n if (nextValue && nextValue?.x[1] - 86400 <= entireDomain.x[1]) {\r\n setDomain(nextValue);\r\n }\r\n track('Graphic clicked', { Graphic_Forward: 'activate', Rank_ID: props.rankGraphId, Project_Type: props.activeServicesEnergy.map(function (service) { return service?.type?.name }) })\r\n }}>\r\n \r\n
}\r\n {props.activeGraphs.includes('IRRADIANCE_GEN') ?\r\n \r\n
Generación (kWh)
\r\n
Irradiación (Wh/m2)
\r\n
: null\r\n }\r\n {props.activeGraphs.includes('POWER_LIMITATION') ?\r\n \r\n
Generación (kWh)
\r\n
Porcentaje de generación (%)
\r\n
: null\r\n }\r\n {intervalGraph || (props.activeGraphs.length && props.activeGraphs.includes('POWER_LIMITATION')) ? (\r\n {\r\n setScrollActive(false);\r\n setDomain({ x: domainZoom.x });\r\n }}\r\n voronoiDimension=\"x\"\r\n labels={() => ` `}\r\n labelComponent={} />}\r\n />\r\n }>\r\n = 5 ? 20 : intervalGraph === 1 && numOfGraphsSelected === 4 ? 30 : intervalGraph === 3 && numOfGraphsSelected <= 2 ? 45 : intervalGraph === 3 && numOfGraphsSelected > 2 ? 20 : (props.activeGraphs.includes('PREDICTION_ACTIVE_ENERGY') ? 0 : 10)}>\r\n {!(props.activeGraphs.length && (props.activeGraphs.includes('IRRADIANCE_GEN') || props.activeGraphs.includes('POWER_LIMITATION'))) ?\r\n data.map((d, i) => (\r\n valueY?.y}\r\n data={d.data.filter((item) => item?.x_sec >= domain.x[0] && item?.x_sec <= domain.x[1])}\r\n barRatio={d?.value !== 'PREDICTION_ACTIVE_ENERGY' ? 10 : 50}\r\n barWidth={d?.value !== 'PREDICTION_ACTIVE_ENERGY' ? getBarWidth(intervalGraph, numOfGraphsSelected) : getBarWidth(intervalGraph, numOfGraphsSelected) + (intervalGraph === 1 ? 20 : 4)}\r\n /* barWidth={(intervalGraph === 1 && numOfGraphsSelected === 1) ? 60 : intervalGraph === 3 || (intervalGraph === 1 && numOfGraphsSelected > 1) ? 40 : (intervalGraph === 2 && numOfGraphsSelected > 1) ? 12 : 20} */\r\n cornerRadius={{ topRight: 4, topLeft: 4 }}\r\n style={{ data: { \r\n fill: ({ datum }) => (data.length === 1 && datum.y >= getMax(data) ? barStyles(theme)[2].data.fill : d?.value !== 'PREDICTION_ACTIVE_ENERGY' ? barStyles(theme)[i - Math.floor(i / barStyles(theme).length) * barStyles(theme).length].data.fill : '#F5FED6'), \r\n fillOpacity: d?.value !== 'PREDICTION_ACTIVE_ENERGY' ? 1 : 0.2,\r\n stroke: '#cefc34',\r\n strokeWidth: d?.value !== 'PREDICTION_ACTIVE_ENERGY' ? 0 : 1,\r\n strokeDasharray: 4\r\n } }}\r\n events={[\r\n {\r\n target: \"data\",\r\n eventHandlers: {\r\n onMouseOver: () => {\r\n track('Graphicbar hover', { Rank_ID: props.rankGraphId, Project_Type: props.activeServicesEnergy.map(function (service) { return service?.type?.name }) })\r\n return [\r\n {\r\n target: \"data\",\r\n mutation: () => ({ style: barStyles(theme)[barStyles(theme).length - 1].data })\r\n }\r\n ]\r\n },\r\n onMouseOut: () => {\r\n return [\r\n {\r\n target: \"data\",\r\n mutation: () => { },\r\n }\r\n ]\r\n },\r\n onClick: handleBarClick\r\n },\r\n },\r\n ]}\r\n />\r\n )) :\r\n data?.filter(item => props.activeGraphs.includes('IRRADIANCE_GEN') ? item?.value !== 'IRRADIANCE' : item?.value === 'POWER_LIMITATION').map((d, i) => (\r\n valueY?.y / maxNormalize[d?.value]}\r\n data={d.data.filter((item) => item?.x_sec >= domain.x[0] && item?.x_sec <= domain.x[1])}\r\n barRatio={10}\r\n barWidth={getBarWidth(intervalGraph, numOfGraphsSelected)}\r\n cornerRadius={{ topRight: 4, topLeft: 4 }}\r\n style={{ data: { fill: ({ datum }) => (data.length === 1 && datum.y >= getMax(data) ? barStyles(theme)[2].data.fill : props.activeGraphs.includes('POWER_LIMITATION') ? barStyles(theme)[1].data.fill : barStyles(theme)[i - Math.floor(i / barStyles(theme).length) * barStyles(theme).length].data.fill) } }}\r\n events={[\r\n {\r\n target: \"data\",\r\n eventHandlers: {\r\n onMouseOver: () => {\r\n return [\r\n {\r\n target: \"data\",\r\n mutation: () => { },\r\n // mutation: () => ({ style: barStyles(theme)[barStyles(theme).length - 1].data }),\r\n }\r\n ]\r\n },\r\n onMouseOut: () => {\r\n return [\r\n {\r\n target: \"data\",\r\n mutation: () => { },\r\n }\r\n ]\r\n },\r\n onClick: handleBarClick\r\n },\r\n },\r\n ]}\r\n />))\r\n }\r\n \r\n {props.activeGraphs.length && props.activeGraphs.includes('IRRADIANCE_GEN') ?\r\n {\r\n if (maxNormalize?.IRRADIANCE !== 0) {\r\n return d?.y / maxNormalize?.IRRADIANCE;\r\n }\r\n else {\r\n return 0;\r\n }\r\n }}\r\n key={data?.filter(item => item?.value === 'IRRADIANCE')[0]?.id}\r\n interpolation={\"monotoneX\"}\r\n data={data?.filter(item => item?.value === 'IRRADIANCE')[0]?.data?.filter((item) => item?.x_sec >= domain.x[0] - 86400 && item?.x_sec <= domain.x[1] + 86400)}\r\n style={linearStyles(theme)[0]}\r\n dependentAxis\r\n />\r\n : null}\r\n {props.activeGraphs.length && props.activeGraphs.includes('POWER_LIMITATION') ?\r\n {\r\n if (maxNormalize?.GENERATION !== 0 && data?.filter(item => item?.value === 'POWER_LIMITATION').length) {\r\n const dataPercentage = data?.filter(item => item?.value === 'POWER_LIMITATION')[0]?.data;\r\n const itemPercentage = dataPercentage.filter(x => x?.x_sec === d?.x_sec);\r\n if (itemPercentage.length) {\r\n return (d?.y / (maxNormalize?.GENERATION * (itemPercentage[0]?.y !== 0 ? itemPercentage[0]?.y / 100 : 1)));\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n else {\r\n return 0;\r\n }\r\n }}\r\n key={data?.filter(item => item?.value === 'GENERATION')[0]?.id}\r\n interpolation={\"monotoneX\"}\r\n data={data?.filter(item => item?.value === 'GENERATION')[0]?.data?.filter((item) => item?.x_sec >= domain.x[0] - 86400 && item?.x_sec <= domain.x[1] + 86400)}\r\n style={{\r\n data: {\r\n fill: \"url(#linearOrangeTransparent25)\",\r\n fillOpacity: 0.3,\r\n stroke: \"#f97316\",\r\n strokeWidth: 2,\r\n strokeDasharray: 7\r\n }\r\n }}\r\n dependentAxis\r\n />\r\n : null}\r\n {props.activeGraphs.length && props.activeGraphs.includes('POWER_LIMITATION') ?\r\n {\r\n if (maxNormalize?.GENERATION !== 0) {\r\n return d?.y / maxNormalize?.GENERATION;\r\n }\r\n else {\r\n return 0;\r\n }\r\n }}\r\n key={data?.filter(item => item?.value === 'GENERATION')[0]?.id}\r\n interpolation={\"monotoneX\"}\r\n data={data?.filter(item => item?.value === 'GENERATION')[0]?.data?.filter((item) => item?.x_sec >= domain.x[0] - 86400 && item?.x_sec <= domain.x[1] + 86400)}\r\n style={linearStyles(theme)[0]}\r\n dependentAxis\r\n />\r\n : null} \r\n {props.activeGraphs.length && props.activeGraphs.includes('IRRADIANCE_GEN') ?\r\n Math.round(x * 100 * maxNormalize?.IRRADIANCE / 100)}\r\n tickLabelComponent={}>}\r\n style={{ axis: { stroke: \"transparent\" }, grid: grid(theme), tickLabels: tickLabelsY(theme), axisLabel: { fontSize: 12, dx: graphContainerWidth - 40 } }}\r\n />\r\n : null}\r\n {props.activeGraphs.length && props.activeGraphs.includes('POWER_LIMITATION') ?\r\n Math.round(x * 100 * maxNormalize?.POWER_LIMITATION / 100)}\r\n tickLabelComponent={}>}\r\n style={{ axis: { stroke: \"transparent\" }, grid: grid(theme), tickLabels: tickLabelsY(theme), axisLabel: { fontSize: 12, dx: graphContainerWidth - 40 } }}\r\n />\r\n : null}\r\n {\r\n if (props.activeGraphs?.includes('IRRADIANCE_GEN') || props.activeGraphs?.includes('POWER_LIMITATION')) {\r\n return Math.round(x * 100 * maxNormalize?.GENERATION / 100)\r\n } else {\r\n return Math.round(x * 100) / 100;\r\n }\r\n }}\r\n tickLabelComponent={}>}\r\n style={{ axis: { stroke: \"transparent\" }, grid: grid(theme), tickLabels: tickLabelsY(theme), axisLabel: { fill: \"red\" } }}\r\n />\r\n item?.x_sec >= domain.x[0] && item?.x_sec <= domain.x[1]).map((item) => item.x_sec)} tickFormat={(x) => `${handlerFormatAxis(x, intervalGraph, props.language.language_locale, false, false, props.activeGraphs?.includes(\"POWER_LIMITATION\"))}`} style={{ tickLabels: tickLabelsX(theme), axis: { stroke: theme === 'dark' ? \"#ffffffa3\" : \"#141414a3\", opacity: 0.2 } }} />\r\n {domain && (intervalGraph === 1 || intervalGraph === 2) ? : null}\r\n {data.length === 1 && data[0]?.data.length && props.enableAverageLine ? : null}\r\n \r\n ) : (\r\n {\r\n setScrollActive(false)\r\n setDomain({ x: domainZoom.x })\r\n }}\r\n voronoiDimension=\"x\"\r\n labels={() => ` `}\r\n labelComponent={} />}\r\n />\r\n }>\r\n \r\n {!(props.activeGraphs.length && props.activeGraphs.includes('IRRADIANCE_GEN')) ?\r\n data.map((d, i) => (\r\n (item?.x_sec >= domain.x[0] - 7200 && item?.x_sec <= domain.x[1] + 7200) && !(item?.y === 0 && item?.x_sec >= (moment().startOf('day').valueOf() / 1000)))}\r\n style={d?.value !== 'PREDICTION_ACTIVE_ENERGY' ? linearStyles(theme)[i - Math.floor(i / linearStyles(theme).length) * linearStyles(theme).length] : \r\n {data: {stroke: '#f9fafb', strokeWidth: 1, fill: `url(#linearNeutralTransparent25)`, fillOpacity: 0.2, strokeDasharray: 3}}}\r\n />\r\n )) :\r\n data?.filter(item => item?.value !== 'IRRADIANCE').map((d, i) => (\r\n valueY?.y / maxNormalize?.GENERATION}\r\n data={d.data.filter((item) => item?.x_sec >= domain.x[0] && item?.x_sec <= domain.x[1])}\r\n barRatio={10}\r\n barWidth={getBarWidth(intervalGraph, numOfGraphsSelected)}\r\n cornerRadius={{ topRight: 4, topLeft: 4 }}\r\n style={{ data: { fill: ({ datum }) => (data.length === 1 && datum.y >= getMax(data) ? barStyles(theme)[2].data.fill : barStyles(theme)[i - Math.floor(i / barStyles(theme).length) * barStyles(theme).length].data.fill) } }}\r\n />))\r\n }\r\n \r\n {props.activeGraphs.length && props.activeGraphs.includes('IRRADIANCE_GEN') ?\r\n {\r\n if (maxNormalize?.IRRADIANCE !== 0) {\r\n return d?.y / maxNormalize?.IRRADIANCE;\r\n }\r\n else {\r\n return 0;\r\n }\r\n }}\r\n key={data?.filter(item => item?.value === 'IRRADIANCE')[0]?.id}\r\n interpolation={\"monotoneX\"}\r\n data={data?.filter(item => item?.value === 'IRRADIANCE')[0]?.data?.filter((item) => item?.x_sec >= domain.x[0] && item?.x_sec <= domain.x[1])}\r\n style={linearStyles(theme)[1]}\r\n dependentAxis\r\n />\r\n : null}\r\n {props.activeGraphs.length && props.activeGraphs.includes('IRRADIANCE_GEN') ?\r\n Math.round(x * 100 * maxNormalize?.IRRADIANCE / 100)}\r\n tickLabelComponent={}>}\r\n style={{ axis: { stroke: \"transparent\" }, grid: grid(theme), tickLabels: tickLabelsY(theme), axisLabel: { fontSize: 12, dx: graphContainerWidth - 40 } }}\r\n />\r\n : null}\r\n {\r\n if (props.activeGraphs?.includes('IRRADIANCE_GEN')) {\r\n return Math.round(x * 100 * maxNormalize?.GENERATION / 100)\r\n } else if (props.activeGraphs?.includes('OPERATION_STATE')) {\r\n return formatOperationStateValue(x)\r\n } else {\r\n return Math.round(x * 100) / 100;\r\n }\r\n }}\r\n tickLabelComponent={}>}\r\n style={{ axis: { stroke: \"transparent\" }, grid: grid(theme), tickLabels: tickLabelsY(theme) }}\r\n />\r\n item?.x_sec >= domain.x[0] && item?.x_sec <= domain.x[1]).map((item) => item.x_sec)} tickFormat={(x) => `${handlerFormatAxis(x, intervalGraph, props.language.language_locale)}:00`} style={{ tickLabels: tickLabelsX(theme), axis: { stroke: theme === 'dark' ? \"#ffffffa3\" : \"#141414a3\", opacity: 0.2 } }} />\r\n {data.length === 1 && data[0]?.data.length && props.enableAverageLine ? : null}\r\n {!props.activeGraphs.includes('IRRADIANCE_GEN') && data.length && domain && data.map((d, i) => (\r\n !(item?.y === 0 && item?.x_sec >= (moment().startOf('day').valueOf() / 1000)))}\r\n style={linearStyles(theme)[i - Math.floor(i / linearStyles(theme).length) * linearStyles(theme).length]}\r\n valueData={d?.value}\r\n />\r\n ))}\r\n \r\n )}\r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n }\r\n
\r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n intervalGraph: state.energy.intervalGraph,\r\n graphDateFrom: state.energy.graphDateFrom,\r\n graphDateTo: state.energy.graphDateTo,\r\n graphData: state.energy.graphData,\r\n showCalendar: state.shared.showCalendar,\r\n language: state.shared.language,\r\n enableScrollData: state.energy.enableScrollData,\r\n activeGraphs: state.energy.activeGraphs,\r\n scrollActive: state.energy.scrollActive,\r\n tariff: state.energy.tariff,\r\n showReportModal: state.energy.showReportModal,\r\n graphTypePicker: state.shared.startOnboarding.graph_type_picker,\r\n graphPeriodPicker: state.shared.startOnboarding.graph_period_picker,\r\n graphCalendarPicker: state.shared.startOnboarding.graph_calendar_picker,\r\n graphExportData: state.shared.startOnboarding.graph_export_data,\r\n controlledTypePicker: state.shared.controlledOnboarding.graph_type_picker,\r\n controlledPeriodPicker: state.shared.controlledOnboarding.graph_period_picker,\r\n controlledCalendarPicker: state.shared.controlledOnboarding.graph_calendar_picker,\r\n controlledExportPicker: state.shared.controlledOnboarding.graph_export_data,\r\n prevStateBar: state.energy.prevStateBar,\r\n enableAverageLine: state.energy.enableAverageLine,\r\n rankGraphId: state.energy.rankGraphId,\r\n showPulseAnimation: state.shared.showPulseAnimation,\r\n graphLoading: state.energy.graphLoading,\r\n activeServicesEnergy: state.services.activeServicesEnergy,\r\n activeServicesPlus: state.services.activeServicesPlus,\r\n theme: state.theme.theme,\r\n})\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n loadGraphAsync: (payload, type) => dispatch(energyActions.loadGraphAsync(payload, type)),\r\n setGraphDates: (payload) => dispatch(energyActions.setGraphDates(payload)),\r\n setShowBlackScreen: (payload) => dispatch(sharedActions.setShowBlackScreen(payload)),\r\n setShowCalendar: (payload) => dispatch(sharedActions.setShowCalendar(payload)),\r\n setShowReportModal: (payload) => dispatch(energyActions.setShowReportModal(payload)),\r\n setGraphActive: (payload) => dispatch(energyActions.setGraphActive(payload)),\r\n setScrollActive: (payload) => dispatch(energyActions.setScrollActive(payload)),\r\n setIntervalGraph: (payload) => dispatch(energyActions.setIntervalGraph(payload)),\r\n setControlledOnboarding: (payload) => dispatch(sharedActions.setControlledOnboarding(payload)),\r\n setStartOnboarding: (payload) => dispatch(sharedActions.setStartOnboarding(payload)),\r\n setDetailDataGraph: (payload) => dispatch(energyActions.setDetailDataGraph(payload)),\r\n setPrevStateBar: (payload) => dispatch(energyActions.setPrevStateBar(payload)),\r\n setShowPulseAnimation: (payload) => dispatch(sharedActions.setShowPulseAnimation(payload)),\r\n loadDetailService: (payload) => dispatch(energyActions.loadDetailService(payload))\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Graph)\r\n","import React from 'react'\r\nimport { connect } from 'react-redux';\r\n\r\nimport { format } from 'date-fns';\r\nimport esLocale from 'date-fns/locale/es';\r\nimport enLocale from \"date-fns/locale/en-US\"\r\n\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport empty_card_bill from \"../../../imgs/empty-card-bill.svg\";\r\n\r\nconst Invoice = (props) => {\r\n\r\n let locale = props.language.language_locale === \"es\" ? esLocale : enLocale\r\n\r\n const { theme } = props;\r\n\r\n return (\r\n
\r\n {\r\n props.invoiceInfo ?\r\n \r\n
\r\n
\r\n \r\n

{props.language.energy_invoice_show_bills}

\r\n
\r\n

{format(new Date(props.invoiceInfo.year, props.invoiceInfo.month - 1, 1), \"MMMM yyyy\", { locale: locale })}

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

{props.invoiceInfo.total_payment}

\r\n {\r\n props.invoiceInfo.state ?\r\n
\r\n \r\n

{props.language.energy_invoice_state_paid}

\r\n
:\r\n
\r\n \r\n

{props.language.energy_invoice_state_to_pay}

\r\n
\r\n }\r\n
\r\n :\r\n
\r\n \"empty_card_bill\"\r\n
{props.language.energy_invoice_no_bills}
\r\n
\r\n }\r\n
)\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n invoiceInfo: state.energy.invoiceInfo,\r\n language: state.shared.language,\r\n theme: state.theme.theme,\r\n});\r\n\r\nexport default connect(mapStateToProps)(Invoice);","import React from \"react\"\r\nimport { connect } from \"react-redux\"\r\n\r\nimport * as energyActions from \"../../../store/actions/Energy\"\r\n\r\nimport { Popover } from \"@idui/react-popover\"\r\n\r\nimport ContentLoader from \"react-content-loader\"\r\n\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\r\nimport { far } from \"@fortawesome/pro-regular-svg-icons\"\r\nimport { fas } from \"@fortawesome/pro-solid-svg-icons\"\r\n\r\nconst servicesLoading = (theme) => { return (\r\n
\r\n \r\n \r\n \r\n
\r\n)}\r\n\r\nconst ActiveServicesEnergy = (props) => {\r\n\r\n let activeServices = props.activeServices\r\n let setActiveServices = props.setActiveServices\r\n let showActiveServices = props.showActiveServices\r\n let showDetailService = props.showDetailService\r\n let activeServiceDetail = props.activeServiceDetail\r\n let setActiveServiceDetail = props.setActiveServiceDetail\r\n\r\n const setShowDetailService = props.setShowDetailService\r\n\r\n const { theme } = props;\r\n\r\n return (\r\n activeServices.length ?\r\n
\r\n {activeServices.slice(0, showActiveServices).map((service) => (\r\n \r\n
\r\n
\r\n
{service.name}
\r\n
\r\n
\r\n
\r\n }>\r\n {\r\n if (!showDetailService) {\r\n setShowDetailService(true)\r\n setActiveServiceDetail(service)\r\n } else if (showDetailService && activeServiceDetail?.idService !== service.idService) {\r\n setActiveServiceDetail(service)\r\n } else if (showDetailService && activeServiceDetail?.idService === service.idService) {\r\n setShowDetailService(false)\r\n }\r\n }}>\r\n \r\n

{service.name}

\r\n {activeServices.length > 1 && (\r\n { \r\n e.stopPropagation()\r\n setActiveServices(activeServices.filter((i) => i.idService !== service.idService))\r\n if (showDetailService && activeServiceDetail?.idService === service.idService) {\r\n setShowDetailService(false)\r\n }\r\n }}>
\r\n )}\r\n \r\n \r\n ))}\r\n {activeServices.length > showActiveServices && (\r\n \r\n
\r\n {activeServices.slice(showActiveServices).map((item) => (\r\n
\r\n \r\n
\r\n {item.name}\r\n
\r\n {\r\n props.setActiveServices(activeServices.filter((i) => i.idService !== item.idService))\r\n }}\r\n />\r\n
\r\n ))}\r\n
\r\n \r\n }>\r\n
\r\n \r\n
{activeServices.length - showActiveServices}
\r\n
\r\n \r\n )}\r\n :\r\n
{servicesLoading(theme)}
\r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n language: state.shared.language,\r\n showDetailService: state.energy.showDetailService,\r\n theme: state.theme.theme,\r\n})\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setShowDetailService: (payload) => dispatch(energyActions.setShowDetailService(payload)),\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ActiveServicesEnergy)\r\n","import React, { Fragment, useState, useEffect } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport * as usersActions from \"../../../store/actions/Users\";\r\n\r\nimport { useTable, useSortBy, usePagination } from \"react-table\";\r\n\r\nimport amplitude from \"amplitude-js\";\r\nimport empty_users from \"../../../imgs/empty-users.svg\";\r\nimport empty_users_light from \"../../../imgs/empty-user-light.svg\";\r\n\r\nconst Table = ({ columns, data, actions, page, deleteAction, ...props }) => {\r\n const { theme } = props;\r\n\r\n const {\r\n getTableBodyProps,\r\n headerGroups,\r\n prepareRow\r\n } = useTable({ columns, data }, useSortBy, usePagination);\r\n\r\n const [userSelected, setUserSelected] = useState(null);\r\n\r\n useEffect(() => {\r\n if (userSelected) { actions(userSelected); }\r\n }, [actions, userSelected]);\r\n\r\n return (\r\n \r\n {\r\n data.length ?\r\n
\r\n \r\n \r\n {headerGroups\r\n .map((headerGroup) => (\r\n \r\n {headerGroup.headers\r\n .map((column, index) => (\r\n column.id !== \"id\" &&\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n \r\n {page\r\n .map((row) => { \r\n prepareRow(row)\r\n return (\r\n \r\n {row.cells\r\n .map((cell) => {\r\n \r\n return (\r\n cell.column.id !== \"id\" &&\r\n \r\n )\r\n })}\r\n \r\n )\r\n })}\r\n \r\n
\r\n
\r\n

{column.render(\"Header\")}

\r\n \r\n {column.isSorted ?\r\n column.isSortedDesc\r\n ? \r\n : :\r\n \"\"}\r\n \r\n
\r\n
\r\n {\r\n // cell.column.id === \"services\" ?\r\n //
\r\n // \r\n // {cell.render(\"Cell\")}\r\n //
:\r\n // cell.column.id === \"department\" && cell.value ?\r\n //
\r\n // {cell.value?.length > 1 ?\r\n //
\r\n //
\r\n // {props.language[cell?.value[0]?.valueText]}\r\n //
\r\n //
{`+${cell.value.length - 1}`}
\r\n //
:\r\n //
\r\n // {props.language[cell?.value[0]?.valueText] ?? 'N/A'}\r\n //
}\r\n // {/*
\r\n // {cell.value.length > 1 ? `${cell.value[0]?.name} ...+${cell.value.length - 1}` : cell.value[0]?.name ?? 'N/A'}\r\n //
*/}\r\n //
:\r\n cell.column.id === \"edit\" ?\r\n
\r\n
{ setUserSelected(cell.row.values); props.setShowCreateUserModal(2); amplitude.getInstance().logEvent(\"Edit User\"); }}>\r\n \r\n
\r\n
{ deleteAction(cell.row.values); amplitude.getInstance().logEvent(\"Delete User\"); }}>\r\n \r\n
\r\n
:\r\n cell.render(\"Cell\")}\r\n
\r\n
:\r\n
\r\n \"empty_users\"\r\n
{props.language.user_table_title_empty_state}
\r\n
{props.language.user_table_description_empty_state}
\r\n {/* */}\r\n
\r\n }\r\n
\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n language: state.shared.language,\r\n theme: state.theme.theme,\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n setShowCreateUserModal: (payload) => dispatch(usersActions.setShowCreateUserModal(payload)),\r\n setUserAccessEdit: (payload) => dispatch(usersActions.setUserAccessEdit(payload))\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Table);","import React, { Fragment, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as usersActions from '../../../store/actions/Users';\r\n\r\nimport { useTable, useSortBy, usePagination } from \"react-table\";\r\n\r\nimport { Modal, Loader } from 'rsuite';\r\n\r\nimport Table from \"../utilities/Table\";\r\nimport MultipleSelect from '../utilities/MultipleSelect';\r\n\r\nconst columns = [\r\n {\r\n Header: \"\",\r\n id: 'id',\r\n accessor: \"idUser\"\r\n },\r\n {\r\n Header: `Nombres`,\r\n id: 'name',\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: 'Apellido',\r\n id: 'lastname',\r\n accessor: \"lastname\"\r\n },\r\n {\r\n Header: 'Teléfono',\r\n id: 'phone',\r\n accessor: \"phone\"\r\n },\r\n {\r\n Header: 'Correo electrónico',\r\n id: 'email',\r\n accessor: \"email\"\r\n },\r\n {\r\n Header: 'Área',\r\n id: 'department',\r\n accessor: \"jobs\"\r\n },\r\n {\r\n Header: 'Servicios',\r\n id: 'services',\r\n accessor: \"services?.length\"\r\n },\r\n {\r\n Header: 'Edición',\r\n id: 'edit'\r\n },\r\n]\r\n\r\nconst Users = (props) => {\r\n\r\n let users = props.usersAccount;\r\n let account = props.account;\r\n let usersAccountLoading = props.usersAccountLoading;\r\n\r\n const { theme } = props;\r\n\r\n const {\r\n page,\r\n canPreviousPage,\r\n canNextPage,\r\n pageOptions,\r\n nextPage,\r\n previousPage,\r\n setPageSize,\r\n state: { pageIndex, pageSize }\r\n } = useTable({ columns, data: users }, useSortBy, usePagination);\r\n\r\n const loadUsersByAccountAsync = props.loadUsersByAccountAsync;\r\n\r\n useEffect(() => {\r\n if (account !== null)\r\n loadUsersByAccountAsync();\r\n }, [account, loadUsersByAccountAsync]);\r\n\r\n return (\r\n \r\n props.setShowUsersListModal(false)}\r\n className={`rounded-24 surface-bg-surface border-fill-medium ${theme}`}\r\n backdropClassName={`${theme}`}\r\n >\r\n \r\n
\r\n
\r\n

{props.language.users_title_main_header}

\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n {usersAccountLoading ?\r\n
\r\n \r\n
:\r\n props.deleteUserAsync(value.id)}\r\n actions={value => {\r\n\r\n let user = users.find(u => u.idUser === value.id);\r\n\r\n user.roleIds = user.jobs.map(s => s.idJob);\r\n user.servicesIds = user.services.map(s => s.idService);\r\n\r\n props.setUserAccessEdit(user);\r\n\r\n }} />\r\n }\r\n
\r\n \r\n
\r\n
\r\n \r\n

{`${props.language.pagination} ${pageIndex + 1} ${props.language.pagination_of} ${pageOptions.length}`}

\r\n \r\n {/*

{props.language.users_pagination_go_to_page}

*/}\r\n {/* {\r\n const page = e.target.value ? Number(e.target.value) - 1 : 0;\r\n gotoPage(page);\r\n }}\r\n /> */}\r\n {/* {\r\n setPageSize(Number(e.target.value));\r\n }}>\r\n {[5, 10, 15, 20].map((pageSize) => (\r\n \r\n ))}\r\n */}\r\n
\r\n ({ value: size, label: `${props.language.users_pagination_show_page} ${size}` }))}\r\n selectedData={[pageSize]} \r\n singleSelect={true} \r\n value={`${props.language.users_pagination_show_page} ${pageSize}`}\r\n onChange={(data) => setPageSize(data[0])} \r\n width={'8rem'}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n account: state.accounts.account,\r\n usersAccount: state.users.usersAccount,\r\n usersAccountLoading: state.users.usersAccountLoading,\r\n showUsersListModal: state.users.showUsersListModal,\r\n language: state.shared.language,\r\n theme: state.theme.theme,\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n setShowCreateUserModal: (payload) => dispatch(usersActions.setShowCreateUserModal(payload)),\r\n setShowUsersListModal: (payload) => dispatch(usersActions.setShowUsersListModal(payload)),\r\n setUserAccessEdit: (payload) => dispatch(usersActions.setUserAccessEdit(payload)),\r\n loadUsersByAccountAsync: () => dispatch(usersActions.loadUsersByAccountAsync()),\r\n deleteUserAsync: (payload) => dispatch(usersActions.deleteUserAsync(payload)),\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Users)","import React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as usersActions from '../../../store/actions/Users';\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nimport { Modal, Loader } from 'rsuite';\r\n\r\nimport Input from '../utilities/Input';\r\nimport MultipleSelect from '../utilities/MultipleSelect';\r\n\r\nimport { Transition } from \"react-transition-group\";\r\n\r\nconst initUserForm = {\r\n name: null,\r\n lastname: null,\r\n email: null,\r\n phone: null,\r\n idDocument: null,\r\n roleIds: [],\r\n servicesIds: []\r\n}\r\n\r\nconst isValidateEmail = email => {\r\n return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email);\r\n}\r\n\r\nconst isValidateString = val => {\r\n return /^[ñíóáéú a-zA-Z ]+$/.test(val);\r\n}\r\n\r\nconst isValidUser = user => {\r\n\r\n if (user.name === null || user.name === \"\" || !isValidateString(user.name)) {\r\n return false;\r\n }\r\n\r\n if (user.lastname === null || user.lastname === \"\" || !isValidateString(user.lastname)) {\r\n return false;\r\n }\r\n\r\n if (!isValidateEmail(user.email)) {\r\n return false;\r\n }\r\n\r\n if (user.phone === null || user.phone === \"\") {\r\n return false;\r\n }\r\n\r\n if (user.roleIds === null || !user.roleIds.length) {\r\n return false;\r\n }\r\n\r\n if (user.servicesIds === null || !user.servicesIds.length) {\r\n return false;\r\n }\r\n\r\n return true;\r\n\r\n}\r\n\r\nconst showError = (user, setFocus, setError, language) => {\r\n\r\n if (user.name === null || user.name === \"\" || !isValidateString(user.name)) {\r\n setFocus(1);\r\n setError(language.alert_user_popup_name);\r\n return;\r\n }\r\n\r\n if (user.lastname === null || user.lastname === \"\" || !isValidateString(user.lastname)) {\r\n setFocus(2);\r\n setError(language.alert_user_popup_lastname);\r\n return;\r\n }\r\n\r\n if (user.idDocument === null || user.idDocument === \"\") {\r\n setFocus(3);\r\n setError(language.alert_user_popup_id_document);\r\n return;\r\n }\r\n\r\n if (user.phone === null || user.phone === \"\") {\r\n setFocus(4);\r\n setError(language.alert_create_user_popup_phone);\r\n return;\r\n }\r\n\r\n if (!isValidateEmail(user.email)) {\r\n setFocus(5);\r\n setError(language.alert_create_user_popup_email);\r\n return;\r\n }\r\n\r\n if (user.roleIds === null || !user.roleIds.length) {\r\n setFocus(6);\r\n setError(language.alert_create_user_popup_job_area);\r\n return;\r\n }\r\n\r\n if (user.servicesIds === null || !user.servicesIds.length) {\r\n setFocus(7);\r\n setError(language.alert_create_user_popup_selected_services);\r\n return;\r\n }\r\n\r\n return setFocus(0);\r\n}\r\n\r\nconst userLoadingContainer = (loading, language) => (\r\n
\r\n \r\n {(state) => (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n)\r\n\r\nconst UserCreate = (props) => {\r\n\r\n let userJobs = props.userJobs;\r\n let userAccessEdit = props.userAccessEdit;\r\n let language = props.language;\r\n\r\n const { theme } = props;\r\n\r\n const [userForm, setUserForm] = useState(initUserForm);\r\n const [isEnable, setEnable] = useState(false);\r\n const [focus, setFocus] = useState(0);\r\n const [error, setError] = useState(\"\");\r\n\r\n const loadUserJobsAsync = props.loadUserJobsAsync;\r\n const createUserAsync = props.createUserAsync;\r\n const updateUserAsync = props.updateUserAsync;\r\n\r\n useEffect(() => {\r\n if (!userJobs.length)\r\n loadUserJobsAsync();\r\n }, [userJobs, loadUserJobsAsync]);\r\n\r\n useEffect(() => {\r\n userAccessEdit !== null ? setUserForm(userAccessEdit) : setUserForm(initUserForm)\r\n }, [userAccessEdit]);\r\n\r\n useEffect(() => {\r\n setEnable(isValidUser(userForm));\r\n }, [userForm]);\r\n\r\n useEffect(() => {\r\n if (focus !== 0) { showError(userForm, setFocus, setError, language) }\r\n }, [userForm, language, focus]);\r\n\r\n const handleClose = () => {\r\n props.setShowCreateUserModal(false);\r\n props.setUserAccessEdit(null);\r\n }\r\n\r\n const formatLabel = (array1, array2, keyName, labelName) => {\r\n\r\n let array3 = array1.map(x => array2.filter(y => y[keyName] === x))\r\n .flat()\r\n\r\n return array3.map((s, index) => {\r\n if (index === array3.length - 1) {\r\n return `${s[labelName]}. `;\r\n } else {\r\n return `${s[labelName]}, `;\r\n }\r\n\r\n }).join(\"\");\r\n }\r\n\r\n return (\r\n handleClose()}>\r\n \r\n
\r\n

{props.showCreateUserModal === 2 ? props.language.user_title_edit_user : props.language.user_title_create_user}

\r\n \r\n
\r\n
\r\n \r\n {props.usersLoading ?
{userLoadingContainer(props.usersLoading, props.language)}
:\r\n
\r\n
\r\n
\r\n {\r\n setUserForm({ ...userForm, name: target.value })\r\n }}\r\n error={focus === 1 ? error : \"\"}\r\n />\r\n
\r\n
\r\n {\r\n setUserForm({ ...userForm, lastname: target.value })\r\n }}\r\n error={focus === 2 ? error : \"\"}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n {\r\n setUserForm({ ...userForm, idDocument: target.value })\r\n }}\r\n error={focus === 3 ? error : \"\"}\r\n />\r\n
\r\n
\r\n {\r\n setUserForm({ ...userForm, phone: target.value })\r\n }}\r\n error={focus === 4 ? error : \"\"}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n {\r\n setUserForm({ ...userForm, email: target.value })\r\n }}\r\n error={focus === 5 ? error : \"\"}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n setUserForm({ ...userForm, roleIds: value })}\r\n error={focus === 6 ? error : \"\"}\r\n value={userForm?.roleIds.length && `${props.language.user_selected_label_job_area}: ${userForm?.roleIds.length}`}\r\n />\r\n
\r\n
\r\n setUserForm({ ...userForm, servicesIds: value })}\r\n error={focus === 7 ? error : \"\"}\r\n value={userForm?.servicesIds.length && `${props.language.user_select_label_services_selected}: ${userForm?.servicesIds.length}`}\r\n />\r\n
\r\n
\r\n {userForm ?\r\n
\r\n \r\n \r\n
:\r\n
\r\n \r\n \r\n
\r\n }\r\n
}\r\n
\r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n userAccessEdit: state.users.userAccessEdit,\r\n userJobs: state.users.userJobs,\r\n totalServices: state.services.totalServices,\r\n showCreateUserModal: state.users.showCreateUserModal,\r\n language: state.shared.language,\r\n usersLoading: state.users.usersLoading,\r\n activeServicesEnergy: state.services.activeServicesEnergy,\r\n theme: state.theme.theme,\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n setShowCreateUserModal: (payload) => dispatch(usersActions.setShowCreateUserModal(payload)),\r\n loadUserJobsAsync: () => dispatch(usersActions.loadUserJobsAsync()),\r\n setUserAccessEdit: (payload) => dispatch(usersActions.setUserAccessEdit(payload)),\r\n createUserAsync: (payload) => dispatch(usersActions.createUserAsync(payload)),\r\n updateUserAsync: (payload) => dispatch(usersActions.updateUserAsync(payload))\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(UserCreate)","import React, { useState, useEffect, Fragment } from \"react\"\r\nimport { connect } from \"react-redux\"\r\n\r\nimport * as servicesActions from \"../../../store/actions/Services\"\r\nimport * as usersActions from \"../../../store/actions/Users\"\r\n\r\nimport { Animation } from \"rsuite\"\r\nimport { Popover } from \"@idui/react-popover\"\r\n\r\nimport ContentLoader from \"react-content-loader\"\r\n\r\nimport ServicesPopover from \"./ServicesPopover\"\r\nimport ActiveServices from \"./ActiveServices\"\r\nimport UserList from '../../shared/users/Users'\r\nimport UserCreate from \"../../shared/users/UserCreate\"\r\nimport ButtonCircle from \"../../shared/utilities/ButtonCircle\"\r\nimport NewUser from '../../users/NewUser';\r\n\r\nimport _ from \"lodash\"\r\n\r\nconst usersLoading = (theme) => {\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nconst ServicesEnergy = (props) => {\r\n\r\n let activeServicesEnergy = props.activeServicesEnergy\r\n let showDetailService = props.showDetailService\r\n let usersByService = props.usersByService\r\n\r\n const { theme } = props;\r\n\r\n const loadUsersByServiceAsync = props.loadUsersByServiceAsync\r\n\r\n const [activeServiceDetail, setActiveServiceDetail] = useState(activeServicesEnergy[0])\r\n\r\n useEffect(() => {\r\n const currentIndex = activeServicesEnergy?.findIndex(s => s.idService === activeServiceDetail?.idService)\r\n if (currentIndex < 0)\r\n setActiveServiceDetail(activeServicesEnergy[0])\r\n // eslint-disable-next-line\r\n }, [activeServicesEnergy])\r\n\r\n useEffect(() => {\r\n if (showDetailService && activeServiceDetail)\r\n loadUsersByServiceAsync(activeServiceDetail.idService)\r\n }, [showDetailService, activeServiceDetail, loadUsersByServiceAsync])\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n
\r\n

{props.language.energy_main_title_dashboard}

\r\n \r\n
\r\n
\r\n {\r\n const filteredPlusServices = value.filter(service => service.type.typeService === 2)\r\n props.setActiveServicesEnergy(value)\r\n if (filteredPlusServices.length) props.setActiveServicesPlus([_.last(filteredPlusServices)])\r\n }}\r\n availableTypeServices={[\"energy\", \"plus\", \"generation\"]}\r\n limitSelectServices={3}\r\n typeComponent={'energy'}\r\n />\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

{props.language.energy_adress_title}

\r\n {activeServiceDetail?.address ?\r\n \r\n
\r\n
\r\n
{activeServiceDetail?.address}
\r\n
\r\n
\r\n
\r\n }>\r\n
\r\n

{activeServiceDetail?.address}

\r\n
\r\n :\r\n
\r\n

{props.language.energy_graph_no_data}

\r\n
}\r\n
\r\n
\r\n

{props.language.energy_service_type_title}

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

{activeServiceDetail?.type.name ?? props.language.energy_graph_no_data}

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

props.setShowUsersListModal(true)} className={`label-small-regular content-default-tertiary ${theme}`}>\r\n {props.language.energy_users_title}\r\n

\r\n
\r\n
\r\n props.setShowCreateUserModal(true)}\r\n theme={theme}\r\n background=\"surface-bg-on-surface\"\r\n color=\"content-default-tertiary\"\r\n />\r\n {\r\n !usersByService[activeServiceDetail?.idService] ?\r\n usersLoading(theme)\r\n : usersByService[activeServiceDetail?.idService].length ?\r\n \r\n {\r\n usersByService[activeServiceDetail?.idService].map((user) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {!user.image ? : \"Foto}\r\n
\r\n
\r\n
\r\n

\r\n {user.name} {user.lastname}\r\n

\r\n
\r\n )\r\n })\r\n }\r\n
:\r\n
\r\n

{props.language.energy_no_users}

\r\n
\r\n }\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n activeServicesEnergy: state.services.activeServicesEnergy,\r\n usersByService: state.services.usersByService,\r\n language: state.shared.language,\r\n user: state.users.user,\r\n showDetailService: state.energy.showDetailService,\r\n showBlackScreen: state.shared.showBlackScreen,\r\n showMenu: state.shared.showMenu,\r\n theme: state.theme.theme,\r\n showCreateUserModal: state.users.showCreateUserModal,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setActiveServicesEnergy: (payload) => dispatch(servicesActions.setActiveServicesEnergy(payload)),\r\n setActiveServicesPlus: (payload) => dispatch(servicesActions.setActiveServicesPlus(payload)),\r\n setShowUsersListModal: (payload) => dispatch(usersActions.setShowUsersListModal(payload)),\r\n setUsersAccount: (payload) => dispatch(usersActions.setUsersAccount(payload)),\r\n loadUsersByServiceAsync: (payload) => dispatch(servicesActions.loadUsersByServiceAsync(payload)),\r\n setShowCreateUserModal: (payload) => dispatch(usersActions.setShowCreateUserModal(payload)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ServicesEnergy)\r\n","import React from \"react\"\r\n\r\nimport ThemedImage from \"../utils/ThemedImage\"\r\n\r\nexport const stepsService = (language, theme) => {\r\n return (\r\n [\r\n { \r\n content: (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n ),\r\n title: language.onboarding_service_title_step1,\r\n description: language.onboarding_service_description_step1,\r\n placement: \"auto\",\r\n target: \"#menu_services\",\r\n disableBeacon: true,\r\n steps: 3,\r\n },\r\n {\r\n content: (\r\n
\r\n \r\n
\r\n ),\r\n title: language.onboarding_service_title_step2,\r\n description: language.onboarding_service_description_step2,\r\n placement: \"auto\", \r\n target: \"#service_picker\",\r\n disableBeacon: true,\r\n steps: 3,\r\n },\r\n { \r\n content:\r\n
\r\n
\r\n \r\n

{language.service_label_active_project_example}

\r\n \r\n
\r\n
,\r\n title: language.onboarding_service_title_step3,\r\n description: language.onboarding_service_description_step3,\r\n placement: \"auto\", \r\n target: \"#active_service\",\r\n disableBeacon: true,\r\n steps: 3,\r\n }\r\n ]\r\n )\r\n} \r\n","import React, { Fragment, useEffect, useState } from \"react\"\r\nimport { connect } from \"react-redux\"\r\n\r\nimport * as servicesActions from \"../../store/actions/Services\"\r\nimport * as sharedActions from \"../../store/actions/Shared\"\r\nimport * as energyActions from \"../../store/actions/Energy\"\r\nimport * as usersActions from \"../../store/actions/Users\"\r\n\r\nimport { getAnalytics, logEvent } from \"firebase/analytics\"\r\n\r\nimport ContentLoader from \"react-content-loader\"\r\n\r\nimport { Transition } from \"react-transition-group\"\r\n\r\nimport { Loader } from \"rsuite\"\r\n\r\nimport Cards from \"./cards/Cards\"\r\nimport Graph from \"./graphs/Graph\"\r\nimport Invoice from \"./invoice/Invoice\"\r\nimport Header from \"../shared/Header\"\r\nimport ServicesContainer from \"./services/ServicesContainer\"\r\n\r\nimport useTour from '../onboarding/hook/useTour';\r\nimport { stepsService } from '../onboarding/steps/ServiceSteps'; // eslint-disable-line no-unused-vars\r\n\r\nconst analytics = getAnalytics()\r\n\r\nconst graphLoadingContainer = (loading, language) => (\r\n
\r\n \r\n {(state) => (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n)\r\n\r\nconst indicatorsLoading = (theme) => { return(\r\n
\r\n \r\n \r\n \r\n
\r\n)}\r\n\r\nconst CardsContent = ({ activeServices }) => {\r\n\r\n let mainCard;\r\n let widthCard = 0;\r\n\r\n if (activeServices.some(s => s.type.name === \"energy\")) {\r\n\r\n mainCard = \r\n widthCard = 350\r\n\r\n }\r\n\r\n return (\r\n \r\n {mainCard}\r\n
\r\n \r\n
\r\n
\r\n );\r\n\r\n}\r\n\r\nconst Energy = (props) => {\r\n\r\n let user = props.user\r\n let account = props.account\r\n let graphs = props.graphs\r\n let activeGraphs = props.activeGraphs\r\n let intervalGraph = props.intervalGraph\r\n let activeServicesEnergy = props.activeServicesEnergy\r\n let setShowDetailService = props.setShowDetailService\r\n let setCurrentModule = props.setCurrentModule\r\n let screenPaddingBottom = props.screenPaddingBottom;\r\n let theme = props.theme\r\n\r\n const loadGraphAsync = props.loadGraphAsync\r\n const setShowBlackScreen = props.setShowBlackScreen\r\n const loadIndicatorsAsync = props.loadIndicatorsAsync\r\n const loadGraphOptionsAsync = props.loadGraphOptionsAsync\r\n const getUserPreferenceInfoAsync = props.getUserPreferenceInfoAsync\r\n const loadServicesAsync = props.loadServicesAsync\r\n const loadBannersAsync = props.loadBannersAsync\r\n const setStartOnboarding = props.setStartOnboarding\r\n\r\n const [historyData, setHistoryData] = useState(props.history.location.state?.data)\r\n\r\n \r\n useEffect(() => {\r\n if (historyData) {\r\n setHistoryData(null)\r\n } else {\r\n if (!activeServicesEnergy?.filter((item) => item?.idAccount === account?.idAccount).length) {\r\n account && loadServicesAsync()\r\n }\r\n setShowDetailService(false)\r\n }\r\n // eslint-disable-next-line\r\n }, [account, loadServicesAsync])\r\n\r\n useEffect(() => {\r\n if (activeServicesEnergy.length && graphs.length) {\r\n loadGraphAsync()\r\n }\r\n }, [loadGraphAsync, graphs, activeServicesEnergy, intervalGraph, activeGraphs])\r\n\r\n useEffect(() => {\r\n if (activeGraphs.length){\r\n setShowBlackScreen(false)\r\n }\r\n }, [setShowBlackScreen, activeGraphs])\r\n\r\n useEffect(() => {\r\n if (activeServicesEnergy.length) {\r\n loadIndicatorsAsync()\r\n loadGraphOptionsAsync()\r\n loadBannersAsync()\r\n }\r\n }, [loadIndicatorsAsync, loadGraphOptionsAsync, activeServicesEnergy, loadBannersAsync])\r\n\r\n useEffect(() => {\r\n logEvent(analytics, \"dashboard\", {\r\n id_user: user.idUser,\r\n user_name: `${user.name} ${user.lastname}`,\r\n })\r\n\r\n setCurrentModule(4)\r\n\r\n }, [user, setCurrentModule])\r\n\r\n useEffect(() => {\r\n getUserPreferenceInfoAsync()\r\n }, [getUserPreferenceInfoAsync, account, intervalGraph]) \r\n\r\n const handleFirstTourFinish = () => { \r\n setStartOnboarding({key: 'service_picker', value: true}) \r\n };\r\n\r\n const tourServiceDetail = useTour({ steps: stepsService(props.language, theme), localStorageKey: \"service-tutorial\", isOpenDrawer: null, onTourFinish: handleFirstTourFinish, runTour: props.serviceDetail, setRunTour: setStartOnboarding, key: 'service_detail' }); \r\n\r\n return (\r\n
\r\n {tourServiceDetail} \r\n
\r\n
\r\n \r\n
\r\n {props.indicatorsLoading ?\r\n
{indicatorsLoading(theme)}
:\r\n \r\n }\r\n
\r\n
\r\n
{!props.graphLoading ? :
{graphLoadingContainer(props.graphLoading, props.language)}
}
\r\n
\r\n
\r\n {/* {!props.userPreferenceInfo && !props.graphLoading && !props.indicatorsLoading ? : null} */}\r\n
\r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n activeServicesEnergy: state.services.activeServicesEnergy,\r\n graphData: state.energy.graphData,\r\n intervalGraph: state.energy.intervalGraph,\r\n graphLoading: state.energy.graphLoading,\r\n indicatorsLoading: state.energy.indicatorsLoading,\r\n activeGraphs: state.energy.activeGraphs,\r\n graphs: state.energy.graphs,\r\n language: state.shared.language,\r\n user: state.users.user,\r\n userPreferenceInfo: state.users.userPreferenceInfo,\r\n account: state.accounts.account,\r\n showDetailService: state.energy.showDetailService,\r\n showBlackScreen: state.shared.showBlackScreen,\r\n showMenu: state.shared.showMenu,\r\n serviceDetail: state.shared.startOnboarding.service_detail,\r\n servicePicker: state.shared.startOnboarding.service_picker,\r\n controlledServicePicker: state.shared.controlledOnboarding.service_picker,\r\n screenPaddingBottom: state.shared.screenPaddingBottom,\r\n theme: state.theme.theme,\r\n})\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setActiveServicesEnergy: (payload) => dispatch(servicesActions.setActiveServicesEnergy(payload)),\r\n setActiveServicesPlus: (payload) => dispatch(servicesActions.setActiveServicesPlus(payload)),\r\n loadGraphAsync: () => dispatch(energyActions.loadGraphAsync()),\r\n loadIndicatorsAsync: () => dispatch(energyActions.loadIndicatorsAsync()),\r\n setShowBlackScreen: (payload) => dispatch(sharedActions.setShowBlackScreen(payload)),\r\n setCurrentModule: (payload) => dispatch(sharedActions.setCurrentModule(payload)),\r\n loadGraphOptionsAsync: () => dispatch(energyActions.loadGraphOptionsAsync()),\r\n getUserPreferenceInfoAsync: () => dispatch(usersActions.getUserPreferenceInfoAsync()),\r\n loadServicesAsync: (payload) => dispatch(servicesActions.loadServicesAsync(payload)),\r\n loadBannersAsync: () => dispatch(energyActions.loadBannersAsync()),\r\n setShowDetailService: (payload) => dispatch(energyActions.setShowDetailService(payload)),\r\n setStartOnboarding: (payload) => dispatch(sharedActions.setStartOnboarding(payload)),\r\n setShowPulseAnimation: (payload) => dispatch(sharedActions.setShowPulseAnimation(payload))\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Energy)\r\n","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport { CircularProgressbarWithChildren } from \"react-circular-progressbar\";\r\n\r\nconst User = (props) => {\r\n let user = props.user;\r\n let state = props.state;\r\n\r\n const { theme } = props;\r\n\r\n const getProgressStyle = () => {\r\n return {\r\n path: { stroke: theme === \"dark\" ? \"#9ecc14\" : \"#7da60c\" },\r\n trail: { stroke: theme === \"dark\" ? \"#262626\" : \"#fafafa\" },\r\n };\r\n };\r\n\r\n return (\r\n \r\n
\r\n props.setShowAccount(true)}\r\n >\r\n \r\n \r\n \r\n
\r\n {!user.image ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n \r\n \r\n {state !== \"exited\" && (\r\n \r\n {user.name} {user.lastname}\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n user: state.users.user,\r\n progress: state.users.profileProgress,\r\n account: state.accounts.account,\r\n theme: state.theme.theme,\r\n});\r\n\r\nexport default connect(mapStateToProps)(User);\r\n","import { track } from \"@amplitude/analytics-browser\";\r\nimport React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst moduleIcons = {\r\n dashboard: \"fa-energy-symbol\",\r\n genius: \"fa-genius-symbol\",\r\n efficiency: \"fa-efficiency-symbol\",\r\n plus: \"fa-plus-symbol\",\r\n invoices: \"fa-invoice-symbol\",\r\n analytics: \"fa-analytics-symbol\",\r\n equote: \"fa-equote-symbol\",\r\n pm: \"fa-folders\",\r\n};\r\n\r\nconst DynamicMenu = ({\r\n userModules,\r\n role,\r\n active,\r\n setCurrentModule,\r\n language,\r\n theme,\r\n state,\r\n}) => {\r\n const filteredModules = userModules.filter(\r\n (module) => module.redirect && module.worker === (role.type === 1)\r\n );\r\n\r\n return (\r\n \r\n {filteredModules.map((module, index) => {\r\n const parts = module.redirect.split(\"/\")[1].toLowerCase();\r\n\r\n return (\r\n \r\n {\r\n setCurrentModule(index);\r\n module.name.toLowerCase() === \"genius\" &&\r\n track(\"Genius viewed\");\r\n }}\r\n >\r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n {language[`menu_${module.name.toLowerCase()}_service`] ??\r\n module.name}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nexport default DynamicMenu;\r\n","import React from \"react\";\r\n\r\nconst RoleSelection = ({ role, theme, state }) => {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n {role.name}\r\n

\r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default RoleSelection;\r\n","import React, { Fragment, useEffect, useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport { useLocation, useHistory } from \"react-router-dom\";\r\n\r\nimport * as sharedActions from \"../../store/actions/Shared\";\r\nimport * as themeActions from \"../../store/actions/Theme\";\r\n\r\nimport { Transition } from \"react-transition-group\";\r\n\r\nimport User from \"./User\";\r\n\r\nimport DynamicMenu from \"./DynamicMenu\";\r\nimport RoleSelection from \"./RoleSelection\";\r\n\r\nimport { themes } from \"../../utils/enums\";\r\n\r\nimport LogoLight from \"../../imgs/logo-enrg-light.svg\";\r\nimport LogoDark from \"../../imgs/logo-enrg-dark.svg\";\r\n\r\nconst getActivePath = (location) => {\r\n if (location.pathname === \"/home\") return \"dashboard\";\r\n const parts = location.pathname.split(\"/\");\r\n return parts[1].toLowerCase();\r\n};\r\n\r\nconst Menu = (props) => {\r\n let user = props.user;\r\n const { theme } = props;\r\n const { user_modules } = user?.capabilities;\r\n const location = useLocation();\r\n const history = useHistory();\r\n\r\n const is_worker = user\r\n ? user_modules.some((module) => module?.worker === true)\r\n : false;\r\n\r\n const [active, setActive] = useState(getActivePath(location));\r\n\r\n const [showRoles, setShowRoles] = useState(false);\r\n\r\n const [role, setRole] = useState(\r\n is_worker ? { type: 1, name: \"eWorker\" } : { type: 2, name: \"Customer\" }\r\n );\r\n\r\n const availableRoles = [\r\n { type: 1, name: \"eWorker\" },\r\n { type: 2, name: \"Customer\" },\r\n ];\r\n\r\n useEffect(() => setActive(getActivePath(location)), [location]);\r\n\r\n useEffect(() => {\r\n props.setMenu(false);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n useEffect(() => {\r\n const worker = user_modules.find(\r\n (module) => `/${active}` === module.redirect\r\n )?.worker;\r\n\r\n if (worker && role.type !== 1) {\r\n setRole(availableRoles[0]);\r\n } else if (!worker && role.type !== 2) {\r\n setRole(availableRoles[1]);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [active]);\r\n\r\n const sortModules = (modules, roleType) => {\r\n return modules\r\n .filter((module) => module.redirect && module.worker === (roleType === 1))\r\n .sort((a, b) => {\r\n const priority = [\"Dashboard\", \"Analytics\"];\r\n\r\n if (priority.includes(a.name) && !priority.includes(b.name)) return -1;\r\n if (priority.includes(b.name) && !priority.includes(a.name)) return 1;\r\n return 0;\r\n });\r\n };\r\n\r\n const handleRoleSelection = (s_role) => {\r\n setRole(s_role);\r\n\r\n const modules = sortModules(user_modules, s_role.type).filter(\r\n (mod) => mod.redirect\r\n );\r\n\r\n modules &&\r\n history.push(\r\n modules[0].redirect === \"/dashboard\" ? \"/home\" : modules[0].redirect\r\n );\r\n\r\n setTimeout(() => {\r\n setShowRoles(false);\r\n }, 200);\r\n };\r\n\r\n return (\r\n \r\n \r\n {(state) => (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n {(state) => (\r\n props.setMenu(false)}\r\n >\r\n
\r\n \r\n )}\r\n
\r\n \r\n {(state) => (\r\n props.setMenu(true)}\r\n onMouseLeave={() => {\r\n props.setMenu(false);\r\n setTimeout(() => {\r\n setShowRoles(false);\r\n }, 150);\r\n }}\r\n >\r\n
\r\n {is_worker ? (\r\n
\r\n {\r\n if (is_worker) {\r\n setTimeout(() => {\r\n setShowRoles(!showRoles);\r\n }, 150);\r\n }\r\n }}\r\n >\r\n \r\n
\r\n
\r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {(state) => (\r\n \r\n {availableRoles.map((role) => (\r\n handleRoleSelection(role)}\r\n style={{\r\n cursor: \"pointer\",\r\n minHeight: \"52px\",\r\n transition: \"all 0.25s ease-in-out\",\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n {role.name}\r\n

\r\n \r\n ))}\r\n \r\n )}\r\n
\r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n showMenu: state.shared.showMenu,\r\n language: state.shared.language,\r\n showBlackScreenIframe: state.shared.showBlackScreenIframe,\r\n user: state.users.user,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setMenu: (payload) => dispatch(sharedActions.setMenu(payload)),\r\n setCurrentModule: (payload) =>\r\n dispatch(sharedActions.setCurrentModule(payload)),\r\n setTheme: (theme) => dispatch(themeActions.setTheme(theme)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Menu);\r\n","import React, { useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport { Popover } from \"@idui/react-popover\";\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nconst Tooltip = ({\r\n text,\r\n changeFocus = () => {},\r\n fontIcon = 12,\r\n fontSize = 8,\r\n typeIcon = \"solid\",\r\n colorIcon = \"white\",\r\n bgColor = \"gray-800\",\r\n amplitudeEvent = false,\r\n theme,\r\n}) => {\r\n const [focus, setFocus] = useState(false);\r\n\r\n return (\r\n {\r\n setFocus(state);\r\n changeFocus(state);\r\n focus && amplitudeEvent && track(\"Standby information hover\");\r\n }}\r\n animation={{\r\n animate: { opacity: 1 },\r\n exit: { opacity: 0, transition: { duration: 0.1 } },\r\n initial: { opacity: 0 },\r\n }}\r\n content={\r\n
\r\n \r\n {text}\r\n

\r\n
\r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n text: ownProps.text,\r\n});\r\n\r\nexport default connect(mapStateToProps)(Tooltip);\r\n","import React, { Fragment, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as invoicesActions from '../../store/actions/Invoices';\r\n\r\nimport { sortByDate } from '../../services/CalendarHandler';\r\n\r\nimport { CircularProgressbarWithChildren } from 'react-circular-progressbar';\r\n\r\nimport QRCode from \"react-qr-code\";\r\n\r\nimport signature from '../../imgs/jeh-signature.png';\r\n\r\nimport TooltipInfo from '../shared/utilities/Tooltip';\r\n\r\nimport Logo from \"../../imgs/logo-erco-black.svg\";\r\nimport PSELogo from \"../../imgs/pse_bg_blue.svg\";\r\nimport VisaLogo from \"../../imgs/visa_bg_blue.svg\";\r\nimport MastercardLogo from \"../../imgs/mastercadr_bg_black.svg\";\r\nimport AmericanLogo from \"../../imgs/american_express.svg\";\r\nimport VigiladoLogo from \"../../imgs/vigilado_superservicios.svg\";\r\n\r\nimport CryptoJS from 'crypto-js';\r\n\r\nconst encryptId = (id, key) => {\r\n const keyBytes = CryptoJS.enc.Utf8.parse(key);\r\n const iv = CryptoJS.enc.Utf8.parse('0123456789abcdef');\r\n const encrypted = CryptoJS.AES.encrypt(id, keyBytes, {\r\n iv: iv,\r\n mode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.Pkcs7,\r\n });\r\n return encrypted.ciphertext.toString(CryptoJS.enc.Base64url);\r\n};\r\n\r\nconst InvoiceDetails = (props) => {\r\n let theme = props.theme;\r\n let invoiceDetailsContent = props.invoiceDetailsContent;\r\n let invoiceDetails = props.invoiceDetails;\r\n let invoiceShow = props.invoiceShow;\r\n\r\n const baseLink = \"https://erco.energy/co/servicios/comercializacion/pago-factura\";\r\n const secretKey = process.env.REACT_APP_QR_CRYPTO_KEY;\r\n\r\n const loadInvoiceDetailsContent = props.loadInvoiceDetailsContent;\r\n \r\n const groupConceptsByServiceType = (concepts) => {\r\n return concepts.reduce((result, concept) => {\r\n const serviceType = concept.service_type;\r\n if (!result[serviceType]) {\r\n result[serviceType] = [];\r\n }\r\n result[serviceType].push(concept);\r\n return result;\r\n }, {});\r\n };\r\n\r\n useEffect(() => {\r\n if (invoiceDetails !== null && invoiceShow?.type_content !== 'pdf') { loadInvoiceDetailsContent() }\r\n }, [loadInvoiceDetailsContent, invoiceDetails, invoiceShow]);\r\n\r\n theme = 'light'\r\n\r\n return (\r\n \r\n {invoiceDetailsContent !== null ?\r\n
\r\n
\r\n
\r\n {invoiceDetailsContent.content.map((c, index) => (\r\n
Impreso por CENET SA NIT 830057860 - MISFACTURAS | {c.dian_resolution}
\r\n
\r\n
\r\n \"Logo\r\n
\r\n
{props.language.invoice_content_text_bill}
\r\n
{c.bill}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{props.language.invoice_content_text_total} de la factura {c.bill}
\r\n
{c.total}
\r\n
{props.language.invoice_content_text_billed_period}: {c.billed_since} a {c.billed_until}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{props.language.invoice_content_text_bill_date}
\r\n
{c.bill_date}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{props.language.invoice_content_text_due_date}
\r\n
{c.due_date}
\r\n
\r\n
\r\n
\r\n {c.suspension_date === 'Suspendido' ? (\r\n
\r\n
\r\n
{props.language.support_select_label_service}
\r\n
{c.suspension_date}
\r\n
\r\n
\r\n ) : c.suspension_date === null && c.outstanding_balance === \"0\" ? (\r\n null\r\n ) : (\r\n
\r\n
\r\n
{props.language.invoice_content_text_suspension_date}
\r\n
{c.suspension_date}
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {c.outstanding_balance === \"0\" ? (\r\n c.creg_1050072024 === \"upper_deviation\" ? (\r\n
\r\n \r\n
\r\n {props.language.invoice_content_check_consumption}{props.language.invoice_content_text_check_consumption}\r\n
\r\n
\r\n ) : (\r\n
\r\n \r\n
\r\n {props.language.invoice_content_text_strong_balance}\r\n {props.language.invoice_content_first_text_balance} {props.language.invoice_content_second_text_balance}\r\n
\r\n
\r\n )\r\n ) : (\r\n
\r\n \r\n
\r\n ¡Atención! {props.language.invoice_content_text_strong_outstanding_balance} por un valor de:
\r\n ${c.outstanding_balance}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
{props.language.invoice_content_text_suspension_date_empty}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{props.language.invoice_content_text_customer_name}
\r\n
{c.customer_name}
\r\n
\r\n
\r\n
{props.language.invoice_content_text_contract}
\r\n
{c.contract}
\r\n
\r\n
\r\n
\r\n
\r\n
{c.type_id}
\r\n
{c.id}
\r\n
\r\n
\r\n
{props.language.invoice_content_text_niu}
\r\n
{c.niu}
\r\n
\r\n {c.factor_embedded && (\r\n
\r\n
{props.language.invoice_content_text_embedded_border_factor}
\r\n
{c.factor_embedded}
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
{props.language.invoice_content_text_service_name}
\r\n
{c.service_name}
\r\n
\r\n
\r\n
{props.language.invoice_content_text_billing_address}
\r\n
{c.billing_address}
\r\n
\r\n
\r\n
\r\n
\r\n
{props.language.invoice_content_text_municipality}
\r\n
{c.city_name}
\r\n
\r\n
\r\n
{props.language.invoice_content_text_department}
\r\n
{c.state_name}
\r\n
\r\n
\r\n
{props.language.invoice_content_text_market}
\r\n {c.is_unregulated_market ?\r\n
{props.language.invoice_content_text_unregulated_market}
:\r\n
{props.language.invoice_content_text_regulated_market}
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{props.language.invoice_content_text_active_energy_consumption}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{props.language.invoice_content_text_days_billed}
\r\n
{c.days_billed}
\r\n
\r\n
\r\n
{props.language.invoice_content_text_billed_since}
\r\n
{c.billed_since}
\r\n
\r\n
\r\n
{props.language.invoice_content_text_billed_until}
\r\n
{c.billed_until}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{props.language.invoice_content_text_avg_six_months}
\r\n
{c.avg_6_months} kWh
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {[100, 75, 50, 25, 0].map((number, index) => (\r\n
\r\n {number}\r\n
\r\n ))}\r\n
\r\n
\r\n {Array.from({ length: 12 }).map((_, index) => (\r\n
-
\r\n ))}\r\n
\r\n
\r\n {invoiceDetailsContent.graph.sort(sortByDate).map((g, index, array) => {\r\n const isLast = index === array.length - 1;\r\n const isDeviation = c.creg_1050072024_r === \"upper_deviation\" || c.creg_1050072024 === \"upper_deviation\";\r\n const backgroundColor = isLast\r\n ? isDeviation\r\n ? \"#EA580C\"\r\n : \"#7DA60C\"\r\n : isDeviation\r\n ? \"rgba(249, 115, 22, 0.32)\"\r\n : \"rgba(158, 204, 20, 0.32)\";\r\n const textColor = isDeviation ? \"content-color-orange\" : \"content-color-green\";\r\n\r\n return (\r\n
\r\n
${g.total}
\r\n
${g.cu}
\r\n
\r\n {g.quantity}
\r\n
\r\n
{isLast ? \"Actual\" : `${g.month}`}
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
{props.language.invoice_content_text_monthly_rate_cu}
\r\n
\r\n
\r\n \r\n
{props.language.invoice_content_text_label_pay_month}
\r\n
\r\n
\r\n \r\n
{props.language.invoice_content_text_consumption}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{props.language.invoice_content_current_consumption}
\r\n
{c.consumption} kWh
\r\n
\r\n
\r\n
{props.language.tag_manager_table_header_reactive_energy}
\r\n
(kVArh)
\r\n
\r\n
\r\n
{props.language.invoice_content_text_reactive_factor}
\r\n
{c.reactive_factor}
\r\n
\r\n
\r\n
{props.language.invoice_content_text_billed_inductive}
\r\n
{c.amount_billed_reactive_inductive}
\r\n
{props.language.invoice_content_text_billed_capacity}
\r\n
{c.amount_billed_reactive_capacitive}
\r\n
{props.language.invoice_content_text_total_billed}
\r\n
{c.amount_billed_reactive}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
{props.language.invoice_content_text_or}
\r\n
{c.or}
\r\n
\r\n
\r\n
{props.language.invoice_content_text_distr_circuit}
\r\n
{c.distr_circuit}
\r\n
\r\n
\r\n
{props.language.invoice_content_text_transf_number}
\r\n
{c.transf_number}
\r\n
\r\n
\r\n
{props.language.invoice_content_text_meter_code}
\r\n
{c.meter_code}
\r\n
\r\n
\r\n
\r\n\r\n
{props.language.invoice_content_text_tariff_detail}
\r\n
\r\n {props.language.invoice_content_first_text_tariff} {props.language.invoice_content_first_text_strong_tariff} {props.language.invoice_content_second_text_tariff} {c.is_unregulated_market ? 'Mercado no regulado' : 'Mercado regulado'}, {props.language.invoice_content_third_text_tariff} {props.language.invoice_content_third_text_strong_tariff} {c.voltage_level}, {props.language.invoice_content_fourth_text_tariff} {props.language.invoice_content_fourth_text_strong_tariff} {c.social_stratum}, {props.language.invoice_content_fifth_text_tariff}\r\n {c.asset_ownership} {props.language.invoice_content_sixth_text_tariff} {c.location_type} {c.tariff_type}\r\n
\r\n
\r\n {((start = 0, gap = 2) => (\r\n <>\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
G
\r\n
{props.language.invoice_content_text_tariff_g}
\r\n
${c.g}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
T
\r\n
{props.language.invoice_content_text_tariff_t}
\r\n
${c.t}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
D
\r\n
{props.language.invoice_content_text_tariff_d}
\r\n
${c.d}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {c.cot ? (\r\n
Cv + COT
\r\n ) : (\r\n
Cv
\r\n )}\r\n
{props.language.invoice_content_text_tariff_cv}
\r\n
${c.cv}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
P
\r\n
{props.language.invoice_content_text_tariff_pr}
\r\n
${c.pr}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
R
\r\n
{props.language.invoice_content_text_tariff_r}
\r\n
${c.r}
\r\n
\r\n {c.is_unregulated_market && (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
CR
\r\n
{props.language.invoice_content_text_tariff_cr}
\r\n
${c.cr}
\r\n
\r\n )}\r\n \r\n ))()}\r\n
\r\n
\r\n
\r\n {c.is_unregulated_market ?\r\n
\r\n

CU

=\r\n

G

+\r\n

T

+\r\n

D

+\r\n {c.cot ?

CV + COT

:

CV

}+\r\n

P

+\r\n

R

+\r\n

CR

\r\n
:\r\n
\r\n

CU

=\r\n

G

+\r\n

T

+\r\n

D

+\r\n {c.cot ?

CV + COT

:

CV

}+\r\n

P

+\r\n

R

\r\n
\r\n }\r\n
{c.cot ? props.language.invoice_content_text_tariff_cu_cot : props.language.invoice_content_text_tariff_cu} = ${c.cu}
\r\n
\r\n
\r\n
))}\r\n
\r\n
\r\n
\r\n
\r\n
{props.language.invoice_content_text_support}
\r\n
soporte@erco.energy
\r\n
\r\n
\r\n
{props.language.power_factor_label_phase} {props.language.invoices_account_total_selection_separator} {props.language.invoice_content_text_support_emergency}
\r\n
(+57) 601 6659652
\r\n
\r\n
\r\n
{props.language.invoice_content_text_footer_page}
\r\n
1/3
\r\n
\r\n
\r\n
\r\n
\r\n {/* Pagina 2 */}\r\n
\r\n
\r\n {invoiceDetailsContent.content.map((c, index) => (\r\n
\r\n
Impreso por CENET SA NIT 830057860 - MISFACTURAS | {c.dian_resolution}
\r\n
\r\n
\r\n
\r\n \"Logo\r\n
\r\n
{props.language.invoice_content_text_bill}
\r\n
{c.bill}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n {Object.entries(groupConceptsByServiceType(invoiceDetailsContent.concepts)).map(([serviceType, items], index) => (\r\n \r\n
\r\n \r\n
{serviceType}
\r\n
\r\n
\r\n {/* titulo */}\r\n
\r\n
\r\n
{props.language.invoice_content_text_header_table_detail}
\r\n
\r\n
\r\n
\r\n {serviceType === 'SALDOS A FAVOR DDV'\r\n ? props.language.invoice_content_text_header_table_month_value\r\n : serviceType.split(\" (\")[0] === 'INTERESES DE MORA'\r\n ? props.language.invoice_content_text_header_table_concept_value\r\n : props.language.invoice_content_text_header_table_unit_value}\r\n
\r\n
\r\n
\r\n
\r\n {serviceType.split(\" (\")[0] === 'INTERESES DE MORA'\r\n ? props.language.invoice_content_text_header_table_days_quantity\r\n : props.language.invoice_content_text_header_table_quantity}\r\n
\r\n
\r\n
\r\n
{props.language.invoice_content_text_header_table_value}
\r\n
\r\n
\r\n {/* contenido */}\r\n {items.map((cp, conceptIndex) => (\r\n
\r\n
\r\n
\r\n {props.language[`tooltip_${cp.code.replace(/\\./g, '_').toLocaleLowerCase()}`] !== \"\" ?\r\n { }}\r\n fontSize={6}\r\n fontIcon={6}\r\n typeIcon={'solid'}\r\n colorIcon={'black'}\r\n bgColor={'gray-550'}\r\n /> : null}\r\n
\r\n {serviceType === 'SALDOS A FAVOR DDV'\r\n ? cp?.item.replace(/\\s*\\(.*?\\)\\s*/g, '').trim()\r\n : cp.item}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {serviceType === 'SALDOS A FAVOR DDV'\r\n ? cp?.item.match(/\\(([^)]+)\\)/)[1]\r\n : `$${cp.unit_value}`}\r\n
\r\n
\r\n
\r\n
{cp.quantity}
\r\n
\r\n
\r\n
${cp.total}
\r\n
\r\n \r\n
\r\n ))}\r\n {/* subtotal */}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {serviceType.split(\" (\")[0] === 'INTERESES DE MORA' \r\n ? 'Total adeudado' \r\n : 'Subtotal'}\r\n
\r\n
\r\n
\r\n
\r\n {(\r\n invoiceDetailsContent?.content?.length &&\r\n invoiceDetailsContent?.content[0]?.subtotal_concepts && \r\n\r\n invoiceDetailsContent.content[0].subtotal_concepts[serviceType]) ?\r\n `$${invoiceDetailsContent.content[0].subtotal_concepts[serviceType]}` \r\n : ''}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n {invoiceDetailsContent.content.map((c, index) => (\r\n
\r\n {c.creg_1050072024 === \"upper_deviation\" && (\r\n
\r\n
\r\n
\r\n \r\n
\r\n {c.creg_1050072024 === \"upper_deviation\" ? (\r\n

\r\n {props.language.invoice_content_text_creg_resolulion}\r\n {props.language.invoice_content_creg_resolution_text_1_first} ({c.consumption} kWh).{props.language.invoice_content_creg_resolution_text_1_second} {c.consumption_month} ({c.creg_1050072024_consumption} kWh) {props.language.invoice_content_creg_resolution_text_1_third} {c.difference_abs} {props.language.invoice_content_creg_resolution_text_1_fourth}.\r\n

\r\n ) : (\r\n

\r\n {props.language.invoice_content_text_creg_resolulion}\r\n {props.language.invoice_content_creg_resolution_text_2_first} ({c.consumption} kWh). {props.language.invoice_content_creg_resolution_text_2_second} ({c.creg_1050072024_consumption} kWh), {props.language.invoice_content_creg_resolution_text_2_third}.\r\n

\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n\r\n {c.creg_1050072024_r === \"upper_deviation\" && (\r\n
\r\n
\r\n
\r\n \r\n
\r\n {c.creg_1050072024_r_state === \"no_collect\" ? (\r\n c.creg_1050072024_r === \"upper_deviation\" ? (\r\n null\r\n ) : (\r\n

\r\n {props.language.invoice_content_text_creg_resolulion} \r\n {props.language.invoice_content_creg_resolution_r_text_3_first} {c.creg_1050072024_r_consumption_v0} {props.language.invoice_content_creg_resolution_r_text_3_second} {c.consumption_month_r}.\r\n

\r\n )\r\n ) : c.creg_1050072024_r_state === \"yes_collect\" ? (\r\n c.creg_1050072024_r === \"upper_deviation\" ? (\r\n

\r\n {props.language.invoice_content_text_creg_resolulion} \r\n {props.language.invoice_content_creg_resolution_r_text_4_first} {Math.abs(parseFloat(c.creg_1050072024_r_consumption_v0) - parseFloat(c.creg_1050072024_r_consumption)).toFixed(2)} kWh {props.language.invoice_content_creg_resolution_r_text_4_second} {c.consumption_month_r}.\r\n

\r\n ) : (\r\n null\r\n )\r\n ) : null}\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
{props.language.invoice_content_text_billing_charges}
\r\n
\r\n
\r\n
${c.charges}
\r\n
\r\n
\r\n
\r\n
\r\n
{props.language.invoice_content_text_iva}
\r\n
\r\n
\r\n
${c.iva}
\r\n
\r\n
\r\n {c.negative_balance !== '0' ? (\r\n
\r\n
\r\n
{props.language.invoice_content_text_negative_balance}
\r\n
\r\n
\r\n
${c.negative_balance}
\r\n
\r\n
\r\n ) : null}\r\n
\r\n
\r\n
{props.language.invoice_content_text_subtotal}
\r\n
\r\n
\r\n
${c.subtotal}
\r\n
\r\n
\r\n {c.capital && (\r\n
\r\n
\r\n
{props.language.invoice_content_text_capital_record}
\r\n
\r\n
\r\n
${c.payments_capital}
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
{`${props.language.invoice_content_text_total} de la factura ${c.bill}`}
\r\n
\r\n
\r\n
${c.total}
\r\n
\r\n
\r\n {c.new_negative_balance !== '0' ? (\r\n
\r\n
\r\n
{props.language.invoice_content_text_new_negative_balance}
\r\n
\r\n
\r\n
${c.new_negative_balance}
\r\n
\r\n
\r\n ) : null}\r\n
\r\n
\r\n {c.notices && c.notices.length > 0 ?\r\n
\r\n
\r\n
\r\n \r\n
\r\n Importante\r\n {c.notices}\r\n
\r\n
\r\n
\r\n
\r\n : null\r\n }\r\n
\r\n ))}\r\n
\r\n\r\n
\r\n \r\n \"banner-user-data-update\"\r\n \r\n
\r\n
\r\n
{props.language.invoice_content_text_support}
\r\n
soporte@erco.energy
\r\n
\r\n
\r\n
{props.language.power_factor_label_phase} {props.language.invoices_account_total_selection_separator} {props.language.invoice_content_text_support_emergency}
\r\n
(+57) 601 6659652
\r\n
\r\n
\r\n
{props.language.invoice_content_text_footer_page}
\r\n
2/3
\r\n
\r\n
\r\n
\r\n
\r\n\r\n {/* Pagina 3 */}\r\n
\r\n
\r\n {invoiceDetailsContent.content.map((c, index) => (\r\n
Impreso por CENET SA NIT 830057860 - MISFACTURAS | {c.dian_resolution}
\r\n
\r\n
\r\n \"Logo\r\n
\r\n
{props.language.invoice_content_text_bill}
\r\n
{c.bill}
\r\n
\r\n
\r\n
\r\n {c.creg_0152018_month && (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{props.language.invoice_content_text_interruption_duration}
\r\n
{props.language.invoice_content_text_interruption_duration_unit}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {[100, 75, 50, 25, 0].map((number, index) => (\r\n
\r\n {number}\r\n
\r\n ))}\r\n
\r\n
\r\n {Array.from({ length: 12 }).map((_, index) => (\r\n
-
\r\n ))}\r\n
\r\n
\r\n
\r\n
{c.diug_pixels}
\r\n
\r\n
DIUG
\r\n
\r\n
\r\n
{c.diu_pixels}
\r\n
\r\n
DIU
\r\n
\r\n
\r\n
{c.dium_pixels}
\r\n
\r\n
DIUM
\r\n
\r\n
\r\n
{c.thc_pixels}
\r\n
\r\n
THC
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{props.language.invoice_content_text_interruption_frequency}
\r\n
{props.language.invoice_content_text_interruption_frequency_unit}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {[100, 75, 50, 25, 0].map((number, index) => (\r\n
\r\n {number}\r\n
\r\n ))}\r\n
\r\n
\r\n {Array.from({ length: 12 }).map((_, index) => (\r\n
-
\r\n ))}\r\n
\r\n
\r\n
\r\n
{c.fiug_pixels}
\r\n
\r\n
FIEG
\r\n
\r\n
\r\n
{c.fiu_pixels}
\r\n
\r\n
FIU
\r\n
\r\n
\r\n
{c.fium_pixels}
\r\n
\r\n
FIUM
\r\n
\r\n
\r\n
{c.tvc_pixels}
\r\n
\r\n
TVC
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
GRUPO: {c.quality_group}
\r\n
DT: {c.dt}
\r\n
\r\n
\r\n
HC: {c.hc}
\r\n
CF: {c.cf}
\r\n
\r\n
\r\n
VC: {c.vc}
\r\n
MC: {c.mc}
\r\n
\r\n
\r\n
CEC: {c.cec}
\r\n
MF: {c.mf}
\r\n
\r\n
\r\n
%t: {c.pdt}
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
{props.language.invoice_content_text_pay_methods}
\r\n
{props.language.invoice_content_text_app_web_payment}
\r\n
{props.language.invoice_content_text_app_web_payment_description} ENRG {props.language.invoice_content_text_web_payment_description} erco.energy.
\r\n
\r\n
\r\n
\r\n \"Logo\r\n \"Logo\r\n \"Logo\r\n
{props.language.invoice_content_text_debit_card} o crédito
\r\n
\r\n
\r\n \"Logo\r\n
{props.language.invoice_content_text_PSE}
\r\n
\r\n
\r\n
\r\n
{props.language.invoice_content_text_payment_methods}
\r\n
\r\n
\r\n \r\n
{props.language.invoice_content_text_pay_wire_transfer}
\r\n
\r\n
\r\n {props.language.invoice_content_text_bank_payment_instructions} 24500012793 {props.language.invoice_content_text_bank_account_name} cartera-clientes@erco.energy {props.language.invoice_content_text_related}.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{props.language.invoice_content_text_legal_info}
\r\n
\r\n {props.language.invoice_content_first_text_legal_info}\r\n {props.language.invoice_content_second_text_legal_info}\r\n {props.language.invoice_content_third_text_legal_info} www.neu.com.co, {props.language.invoice_content_fourth_text_legal_info}\r\n {props.language.invoice_content_fifth_text_legal_info} www.neu.com.co {props.language.invoice_content_sixth_text_legal_info}\r\n {props.language.invoice_content_seventh_text_legal_info}\r\n {props.language.invoice_content_eighth_text_legal_info}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
{props.language.invoice_content_text_verify_invoice_validity}
\r\n
{props.language.invoice_content_text_verify_invoice_description}
\r\n
\r\n
\r\n
\r\n
\r\n
1.
\r\n
Escanea{props.language.invoice_content_text_scan_qr}.
\r\n
\r\n
\r\n
2.
\r\n
Verifica{props.language.invoice_content_text_verify_information}.
\r\n
\r\n
\r\n
3.
\r\n
Paga tu factura{props.language.invoice_content_text_pay_invoice}.
\r\n
\r\n
\r\n
\r\n {(() => {\r\n const encryptedId = encryptId(c.bill, secretKey);\r\n const encryptedLink = `${baseLink}/${encryptedId}`;\r\n return (\r\n \r\n );\r\n })()}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
NEU ENERGY S.A.S E.S.P - 901302727-0
\r\n
{props.language.invoice_content_text_taxes}
\r\n
{props.language.invoice_content_text_address}: Carrera 49 #61SUR - 540
\r\n
{props.language.invoice_content_text_payment_way}: {props.language.invoice_content_text_payment_cash}
\r\n
{props.language.invoice_content_text_payment_method}: {props.language.invoice_content_text_debit_card}
\r\n
{props.language.invoice_content_text_ica_tax}
\r\n
{props.language.invoice_content_text_large_taxpayers}: {props.language.invoice_content_text_large_taxpayers_resolution}
\r\n
{props.language.invoice_content_text_income_tax_withholder}: {props.language.invoice_content_text_income_tax_resolution}
\r\n
{props.language.invoice_content_text_ica_medellin_withholder}: {props.language.invoice_content_text_ica_medellin_resolution}
\r\n
\r\n
\r\n
\r\n \"jeh-signature\"\r\n
Juan Esteban Hincapie
\r\n
Representante legal
\r\n
NEU Energy S.A.S E.S.P
\r\n
\r\n
\r\n \"Logo\r\n
\r\n
\r\n
\r\n
\r\n\r\n {/* CUFE */}\r\n
\r\n \r\n
CUFE: {c.cufe}
\r\n
\r\n
))}\r\n
\r\n\r\n
\r\n \r\n \"banner-user-data-update\"\r\n \r\n
\r\n
\r\n
{props.language.invoice_content_text_support}
\r\n
soporte@erco.energy
\r\n
\r\n
\r\n
{props.language.power_factor_label_phase} {props.language.invoices_account_total_selection_separator} {props.language.invoice_content_text_support_emergency}
\r\n
(+57) 601 6659652
\r\n
\r\n
\r\n
{props.language.invoice_content_text_footer_page}
\r\n
3/3
\r\n
\r\n
\r\n
\r\n
\r\n
: null\r\n }\r\n
\r\n )\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n language: state.shared.language,\r\n invoiceDetails: state.invoices.invoiceDetails,\r\n invoiceDetailsContent: state.invoices.invoiceDetailsContent,\r\n invoiceShow: state.invoices.invoiceDetails,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n loadInvoiceDetailsContent: () => dispatch(invoicesActions.loadInvoiceDetailsContent())\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(InvoiceDetails);","import React from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as invoicesActions from '../../store/actions/Invoices';\r\n\r\nimport { Modal, Whisper, Tooltip } from \"rsuite\";\r\n\r\nimport InvoiceDetails from './InvoiceDetails';\r\nimport { track } from '@amplitude/analytics-browser';\r\n\r\nconst InvoiceModal = (props) => {\r\n\r\n let invoiceShow = props.invoiceShow;\r\n let invoiceModalIndexes = props.invoiceModalIndexes;\r\n let groupedData = props.groupedData;\r\n let theme = props.theme;\r\n\r\n const setPreviousInvoiceModal = props.setPreviousInvoiceModal;\r\n const setFollowingInvoiceModal = props.setFollowingInvoiceModal;\r\n\r\n const currentAccount = invoiceModalIndexes && groupedData[invoiceModalIndexes.accountIndex];\r\n const currentDate = invoiceModalIndexes && currentAccount.dates[invoiceModalIndexes.dateGroupIndex];\r\n\r\n return (\r\n {\r\n props.setShowInvoice(false)\r\n props.setInvoicesModalIndexes(null)\r\n }}>\r\n
\r\n {invoiceShow ?\r\n
\r\n
\r\n \r\n
\r\n
\r\n {/* */}\r\n
{invoiceShow.service_name}
\r\n \r\n
{props.language.invoices_title_section_bills} {invoiceShow.reference}
\r\n
\r\n
\r\n \r\n {!props.invoiceUrl ?\r\n : null}\r\n \r\n
\r\n
: null}\r\n {!props.invoiceUrl ?
\r\n \r\n
:\r\n
\r\n \r\n

{props.language.invoices_text_error_show_bills}

\r\n
\r\n
}\r\n
\r\n \r\n )\r\n\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n language: state.shared.language,\r\n invoiceShow: state.invoices.invoiceDetails,\r\n theme: state.theme.theme,\r\n ...ownProps\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n downloadInvoiceAsync: (payload) => dispatch(invoicesActions.downloadInvoiceAsync(payload)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(InvoiceModal);","import React from 'react';\r\n\r\nimport { addHours, format } from 'date-fns';\r\nimport { es } from 'date-fns/locale';\r\n\r\nimport { connect } from 'react-redux';\r\n\r\nimport ContentLoader from 'react-content-loader';\r\n\r\nimport * as invoicesActions from \"../../store/actions/Invoices\";\r\n\r\nimport { themes } from '../../utils/enums';\r\nimport { track } from '@amplitude/analytics-browser';\r\n\r\nfunction InvoiceTable(props) {\r\n\r\n const language = props.language\r\n const moreInvoicesLoading = props.moreInvoicesLoading\r\n const invoicesSummary = props.invoicesSummary\r\n const sortField = props.sortField\r\n const sortOrder = props.sortOrder;\r\n const groupedData = props.groupedData;\r\n const cleanDate = props.cleanDate;\r\n const theme = props.theme;\r\n\r\n const setInvoices = props.setInvoices;\r\n const setInvoicesSummary = props.setInvoicesSummary;\r\n const setCurrentPage = props.setCurrentPage\r\n const setSortField = props.setSortField\r\n const setSortOrder = props.setSortOrder;\r\n const setEmptyPaginationResult = props.setEmptyPaginationResult;\r\n const handleOpenModal = props.handleOpenModal;\r\n\r\n const formatNumber = (value) => {\r\n if (value === 0 || value === undefined || value === null) return \"0\";\r\n const string_value = value?.toString();\r\n if (!string_value.includes(\".\")) {\r\n return string_value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n const values_part = string_value.split(\".\");\r\n const integerValue = values_part[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n const decimalValue = values_part[1].slice(0, 2);\r\n return `${integerValue}.${decimalValue}`;\r\n };\r\n\r\n const getMonthName = (date) => {\r\n const currentDate = new Date(date);\r\n const stringMonth = format(currentDate, 'MMMM', { locale: es });\r\n return stringMonth[0].toUpperCase() + stringMonth.slice(1, stringMonth.length);\r\n }\r\n\r\n const toggleInvoiceSelection = (invoice) => {\r\n if (invoice.state === 1) return;\r\n if (moreInvoicesLoading || invoice.loadingDelay) return;\r\n setInvoices(prevState => (\r\n prevState.map(currentInvoice => {\r\n if (currentInvoice.id_bill !== invoice.id_bill || currentInvoice.loadingDelay) return currentInvoice;\r\n if (currentInvoice.id_bill === invoice.id_bill) {\r\n const newIsSelected = !currentInvoice.isSelected;\r\n const newTotalConsumption = newIsSelected ? invoicesSummary.total_consumption + parseFloat(currentInvoice.consumption) : invoicesSummary.total_consumption - parseFloat(currentInvoice.consumption)\r\n const newTotalPayment = newIsSelected ? invoicesSummary.total_payment + parseFloat(currentInvoice.total_payment) : invoicesSummary.total_payment - parseFloat(currentInvoice.total_payment)\r\n setInvoicesSummary({\r\n ...invoicesSummary,\r\n total_consumption: parseFloat(parseFloat(newTotalConsumption).toFixed(2)),\r\n total_payment: parseFloat(parseFloat(newTotalPayment).toFixed(2)),\r\n id_bills_array: invoicesSummary.id_bills_array.map(bill => ({...bill, selected: bill.value === currentInvoice.id_bill ? newIsSelected : bill.selected}))\r\n })\r\n newIsSelected && track('Project bill selected', {Project_ID: invoice.id_service})\r\n return { ...currentInvoice, isSelected: !currentInvoice.isSelected }\r\n };\r\n return currentInvoice;\r\n })\r\n ))\r\n }\r\n\r\n const accountHeaderTemplate = (account) => (\r\n \r\n \r\n
\r\n
{account}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n );\r\n\r\n const dateHeaderTemplate = (date) => (\r\n \r\n \r\n
\r\n

{getMonthName(date)}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n );\r\n\r\n const sortByServiceName = () => {\r\n const serviceNameSortField = 'service_name'\r\n let newSortOrder;\r\n if (sortField === serviceNameSortField) {\r\n newSortOrder = sortOrder > 0 ? -1 : 1;\r\n setSortOrder(newSortOrder);\r\n } else {\r\n newSortOrder = 1;\r\n setSortField(serviceNameSortField);\r\n setSortOrder(newSortOrder);\r\n }\r\n setCurrentPage(0)\r\n setEmptyPaginationResult(false)\r\n }\r\n\r\n const invoiceServiceNameTemplate = (rowData) => {\r\n const backgroundColor = rowData.isSelected ? 'surface-bg-on-surface' : 'surface-bg-on-surface-alpha'\r\n return (\r\n
\r\n {\r\n !rowData.loadingDelay ? (\r\n rowData.state !== 1 ? (\r\n { toggleInvoiceSelection(rowData) }}\r\n >\r\n \r\n ) : (\r\n \r\n )\r\n ) : <>\r\n }\r\n

{rowData.service_name}

\r\n
\r\n )\r\n };\r\n\r\n const invoiceReferenceTemplate = (rowData) => {\r\n const backgroundColor = rowData.isSelected ? 'surface-bg-on-surface' : 'surface-bg-on-surface-alpha'\r\n return (\r\n
\r\n

{rowData.reference}

\r\n
\r\n )\r\n };\r\n\r\n const invoiceTariffTemplate = (rowData) => {\r\n const surfaceBgOnSurface = theme === 'dark' ? '#262626' : '#fafafa';\r\n const surfaceBgOnSurfaceAlpha = theme === 'dark' ? '#ffffff0a' : '#1414140a';\r\n const backgroundColor = rowData.isSelected ? 'surface-bg-on-surface' : 'surface-bg-on-surface-alpha'\r\n\r\n return (\r\n
\r\n {\r\n rowData.loadingDelay ? (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n ) : (\r\n

${formatNumber(rowData.tariff)}

\r\n )\r\n }\r\n
\r\n )\r\n };\r\n\r\n const invoiceConsumptionTemplate = (rowData) => {\r\n const surfaceBgOnSurface = theme === 'dark' ? '#262626' : '#fafafa';\r\n const surfaceBgOnSurfaceAlpha = theme === 'dark' ? '#ffffff0a' : '#1414140a';\r\n const backgroundColor = rowData.isSelected ? 'surface-bg-on-surface' : 'surface-bg-on-surface-alpha'\r\n return (\r\n
\r\n {\r\n rowData.loadingDelay ? (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n ) : (\r\n

{formatNumber(rowData.consumption)} {language.invoices_table_consumption_unit}

\r\n )\r\n }\r\n
\r\n )\r\n };\r\n\r\n const statusTemplate = (rowData) => {\r\n const surfaceBgOnSurface = theme === 'dark' ? '#262626' : '#fafafa';\r\n const surfaceBgOnSurfaceAlpha = theme === 'dark' ? '#ffffff0a' : '#1414140a';\r\n const backgroundColor = rowData.isSelected ? 'surface-bg-on-surface' : 'surface-bg-on-surface-alpha'\r\n let value = rowData.state;\r\n let expiration = new Date(rowData.date_expiration);\r\n let state_string;\r\n let color;\r\n let bg_color;\r\n let border;\r\n\r\n switch (value) {\r\n case 0:\r\n if (expiration < new Date()) {\r\n state_string = language.invoices_state_overdue;\r\n color = 'content-color-red';\r\n bg_color = 'bg-alpha-red-32';\r\n border = 'border-color-red'\r\n } else {\r\n state_string = language.invoices_state_pending;\r\n color = 'content-color-orange';\r\n bg_color = 'bg-alpha-orange-32';\r\n border = 'border-color-orange'\r\n }\r\n break;\r\n case 1:\r\n state_string = language.invoices_state_paid;\r\n color = 'content-color-green';\r\n bg_color = 'bg-alpha-primary-brand-32';\r\n border = 'border-color-green'\r\n break;\r\n default:\r\n break;\r\n }\r\n return (\r\n
\r\n {\r\n rowData.loadingDelay ? (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n ) : (\r\n
{state_string}
\r\n )\r\n }\r\n
\r\n )\r\n };\r\n\r\n const invoicePayTemplate = (rowData) => {\r\n const surfaceBgOnSurface = theme === 'dark' ? '#262626' : '#fafafa';\r\n const surfaceBgOnSurfaceAlpha = theme === 'dark' ? '#ffffff0a' : '#1414140a';\r\n const backgroundColor = rowData.isSelected ? 'surface-bg-on-surface' : 'surface-bg-on-surface-alpha'\r\n const value = rowData.total_payment\r\n let formattedTotalPayment;\r\n if (value === 0 || value === undefined || value === null) {\r\n formattedTotalPayment = \"0\"\r\n } else {\r\n const string_value = value?.toString();\r\n if (!string_value.includes(\".\")) {\r\n formattedTotalPayment = string_value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n } else {\r\n const values_part = string_value.split(\".\");\r\n const integerValue = values_part[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n const decimalValue = values_part[1].slice(0, 2);\r\n formattedTotalPayment = `${integerValue}.${decimalValue}`;\r\n }\r\n };\r\n return (\r\n
\r\n {\r\n rowData.loadingDelay ? (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n ) : (\r\n

${formattedTotalPayment}

\r\n )\r\n }\r\n
\r\n )\r\n };\r\n\r\n const invoiceDetailTemplate = (rowData, accountIndex, dateGroupIndex, invoiceIndex) => {\r\n const backgroundColor = rowData.isSelected ? 'surface-bg-on-surface' : 'surface-bg-on-surface-alpha'\r\n const expiratioDnate = addHours(new Date(rowData.date_expiration), 5);\r\n const stringDate = format(expiratioDnate, 'dd MMMM', { locale: es })\r\n const separatedDate = stringDate.split(' ')\r\n\r\n return (\r\n
\r\n
\r\n

{separatedDate[0]} de {separatedDate[1]}

\r\n
\r\n
\r\n {\r\n track('Bill opened')\r\n e.stopPropagation();\r\n handleOpenModal(rowData, accountIndex, dateGroupIndex, invoiceIndex)\r\n }}>\r\n \r\n
\r\n
\r\n )\r\n };\r\n\r\n return (\r\n
\r\n {/*
*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n groupedData.map((accountGroup, accountIndex) => (\r\n \r\n {accountHeaderTemplate(accountGroup.account)}\r\n {accountGroup.dates.map((dateGroup, dateGroupIndex) => (\r\n \r\n {cleanDate ? dateHeaderTemplate(dateGroup.date) : <>}\r\n {dateGroup.invoices.map((invoice, index) => (\r\n toggleInvoiceSelection(invoice)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n ))}\r\n \r\n ))\r\n }\r\n {\r\n moreInvoicesLoading && (\r\n <>\r\n \r\n \r\n \r\n {\r\n groupedData.length === 0 && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n <>\r\n \r\n \r\n )\r\n }\r\n \r\n
\r\n sortByServiceName()}\r\n >\r\n

{language.invoices_table_service_name_header_title}

\r\n {sortField !== 'service_name' && }\r\n {(sortField === 'service_name' && sortOrder > 0) && }\r\n {(sortField === 'service_name' && sortOrder < 0) && }\r\n \r\n
\r\n \r\n

{language.invoices_table_reference_header_title}

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

{language.invoices_table_tariff_header_title}

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

{language.invoices_table_consumption_header_title}

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

{language.invoices_table_invoice_state_header_title}

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

{ language.invoices_table_total_payment_header_title }

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

{ language.invoices_table_expiration_date_header_title }

\r\n
\r\n \r\n
{invoiceServiceNameTemplate(invoice)}{invoiceReferenceTemplate(invoice)}{invoiceTariffTemplate(invoice)}{invoiceConsumptionTemplate(invoice)}{statusTemplate(invoice)}{invoicePayTemplate(invoice)}{invoiceDetailTemplate(invoice, accountIndex, dateGroupIndex, index)}
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {\r\n (!moreInvoicesLoading && groupedData.length === 0) ? (\r\n
\r\n
\r\n {\r\n theme === themes.DARK ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n
\r\n

\r\n { language.invoices_empty_state }\r\n

\r\n
\r\n ) : <>\r\n }\r\n
\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state, props) => ({\r\n language: state.shared.language,\r\n invoicesSummary: state.invoices.invoicesSummary,\r\n moreInvoicesLoading: state.invoices.moreInvoicesLoading,\r\n sortField: state.invoices.sortField,\r\n sortOrder: state.invoices.sortOrder,\r\n theme: state.theme.theme,\r\n ...props\r\n})\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setInvoicesSummary: (payload) =>\r\n dispatch(invoicesActions.setInvoicesSummary(payload)),\r\n setCurrentPage: (payload) =>\r\n dispatch(invoicesActions.setCurrentPage(payload)),\r\n setSortField: (payload) =>\r\n dispatch(invoicesActions.setSortField(payload)),\r\n setSortOrder: (payload) =>\r\n dispatch(invoicesActions.setSortOrder(payload)),\r\n setEmptyPaginationResult: (payload) =>\r\n dispatch(invoicesActions.setEmptyPaginationResult(payload))\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(InvoiceTable)","import React from \"react\";\r\n\r\nimport { connect } from \"react-redux\";\r\n\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nimport PseIconDark from '../../imgs/pse-logo-dark.svg'\r\nimport PseIconLight from '../../imgs/pse-logo-light.svg'\r\nimport VisaIconDark from '../../imgs/visa-logo-dark.svg'\r\nimport VisaIconLight from '../../imgs/visa-logo-light.svg'\r\n\r\nimport * as invoicesActions from \"../../store/actions/Invoices\";\r\nimport { themes } from \"../../utils/enums\";\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nconst InvoiceSummary = (props) => {\r\n\r\n let theme = props.theme;\r\n let _invoices = props.invoices;\r\n let invoicesSummary = props.invoicesSummary;\r\n let invoicesSummaryLoading = props.invoicesSummaryLoading;\r\n let invoicesLoading = props.invoicesLoading;\r\n let selectAll = props.selectAll;\r\n let allAccountsSelected = props.allAccountsSelected;\r\n let filterPendingInvoices = props.filterPendingInvoices;\r\n let notSelectedPedingInvoices = _invoices.filter(currentInvoice => !currentInvoice.loadingDelay && currentInvoice.state === 0 && !currentInvoice.isSelected).length\r\n let selectedPedingInvoicesArray = _invoices.filter(currentInvoice => !currentInvoice.loadingDelay && currentInvoice.state === 0 && currentInvoice.isSelected)\r\n let selectedPedingInvoices = selectedPedingInvoicesArray.length\r\n let totalConsumption = selectAll ? invoicesSummary.total_consumption : selectedPedingInvoicesArray.reduce((accum, i) => accum + parseFloat(i.consumption), 0);\r\n let totalPayment = selectAll ? invoicesSummary.total_payment : selectedPedingInvoicesArray.reduce((accum, i) => accum + parseFloat(i.total_payment), 0);\r\n let dynamicPedingInvoices = selectAll ? notSelectedPedingInvoices : invoicesSummary.total_bills - selectedPedingInvoices\r\n let dynamicSelectedPedingInvoices = selectAll ? (invoicesSummary.total_bills - notSelectedPedingInvoices) : (selectedPedingInvoices);\r\n\r\n const toggleSelectAll = props.toggleSelectAll;\r\n const setShowPay = props.setShowPay;\r\n const handleFilterPendingInvoices = props.handleFilterPendingInvoices;\r\n\r\n const formatNumber = (value) => {\r\n if (value === 0 || value === undefined || value === null) return \"0\";\r\n const string_value = value?.toString();\r\n if (!string_value.includes(\".\")) {\r\n return string_value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n const values_part = string_value.split(\".\");\r\n const integerValue = values_part[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n const decimalValue = values_part[1].slice(0, 2);\r\n return `${integerValue}.${decimalValue}`;\r\n };\r\n\r\n return (\r\n
\r\n {\r\n !invoicesLoading ? (\r\n
\r\n {\r\n !invoicesSummaryLoading ? (\r\n <>\r\n
\r\n

{props.language.invoices_summary_title}

\r\n

{ dynamicPedingInvoices === 0 && track('Select all bills button clicked'); toggleSelectAll()}}>{dynamicSelectedPedingInvoices > 0 ? props.language.invoices_summary_deselect_all_services : props.language.invoices_summary_select_all_services }

\r\n
\r\n {\r\n !allAccountsSelected ? (\r\n

{props.language.invoices_summary_account_filter_alert_before_bold}{props.language.invoices_summary_account_filter_alert_bold}{props.language.invoices_summary_account_filter_alert_after_bold}

\r\n ) : <>\r\n }\r\n \r\n )\r\n : <>\r\n }\r\n
\r\n {\r\n invoicesSummaryLoading ? (\r\n <>\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n ) : (\r\n <>\r\n
\r\n
\r\n \r\n

{props.language.invoices_selected_invoices_summary_title}

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

{dynamicSelectedPedingInvoices}

\r\n

{props.language.invoices_summary_invoices_unit}

\r\n
\r\n
\r\n
{ track('Pending bills button selected'); handleFilterPendingInvoices(!filterPendingInvoices)}}>\r\n
\r\n \r\n

{props.language.invoices_pending_invoices_summary_title}

\r\n
\r\n {\r\n invoicesSummary.total_bills !== 0 && dynamicSelectedPedingInvoices === 0 ? (\r\n
\r\n
\r\n
\r\n {props.language.invoices_state_pending}\r\n
\r\n
\r\n

{invoicesSummary.pending_bills}

\r\n

{props.language.invoices_summary_invoices_unit}

\r\n
\r\n
\r\n
\r\n
\r\n {props.language.invoices_state_overdue}\r\n
\r\n
\r\n

{invoicesSummary.total_bills - invoicesSummary.pending_bills}

\r\n

{props.language.invoices_summary_invoices_unit}

\r\n
\r\n
\r\n
\r\n ) : invoicesSummary.total_bills !== 0 && dynamicPedingInvoices === 0 ? (\r\n
\r\n

{props.language.invoices_empty_summary_pending_invoices}

\r\n
\r\n ) : (\r\n
\r\n

{dynamicPedingInvoices}

\r\n

{props.language.invoices_summary_invoices_unit}

\r\n
\r\n )\r\n }\r\n
\r\n
\r\n
\r\n \r\n

{props.language.invoices_summary_consumption_selected_title}

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

{totalConsumption < 0 ? 0 : formatNumber(totalConsumption)}

\r\n

{props.language.invoices_summary_consumption_selected_unit}

\r\n
\r\n
\r\n \r\n )\r\n }\r\n
\r\n
\r\n ) : (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\n {\r\n invoicesLoading || invoicesSummaryLoading ? (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n ) : <>\r\n }\r\n {\r\n !invoicesLoading && !invoicesSummaryLoading && invoicesSummary.total_bills === 0 ? (\r\n
\r\n
\r\n \r\n
\r\n

\r\n {props.language.invoices_summary_not_pending_invoices_first_content} { props.language.invoices_summary_not_pending_invoices_second_content }\r\n

\r\n
\r\n ) : <>\r\n }\r\n {\r\n !invoicesLoading && !invoicesSummaryLoading && invoicesSummary.total_bills !== 0 ? (\r\n
\r\n
\r\n
\r\n \r\n

{props.language.invoices_summary_total_payment_title}

\r\n
\r\n
\r\n {totalPayment <= 0 &&

$0

}\r\n {totalPayment !== 0 &&

${formatNumber(totalPayment)}

}\r\n

{props.language.invoices_summary_total_payment_unit}

\r\n
\r\n
\r\n
\r\n {\r\n if (dynamicSelectedPedingInvoices === 0) return;\r\n setShowPay(true);\r\n }}\r\n >\r\n \r\n

{dynamicSelectedPedingInvoices !== 0 ? props.language.invoices_summary_total_payment_pay : props.language.invoices_summary_total_payment_empty}

\r\n \r\n
\r\n \"pse-logo\"\r\n
\r\n \"visa-logo\"\r\n
\r\n
\r\n
\r\n ) : <>\r\n }\r\n
\r\n )\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n ...ownProps,\r\n invoicesLoading: state.invoices.invoicesLoading,\r\n invoicesSummary: state.invoices.invoicesSummary,\r\n invoicesSummaryLoading: state.invoices.invoicesSummaryLoading,\r\n language: state.shared.language,\r\n theme: state.theme.theme,\r\n})\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setInvoicesToPay: (payload) =>\r\n dispatch(invoicesActions.setInvoicesToPay(payload)),\r\n setShowPay: (payload) =>\r\n dispatch(invoicesActions.setShowPay(payload))\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(InvoiceSummary);\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as servicesActions from \"../../../store/actions/Services\";\r\nimport * as invoicesActions from \"../../../store/actions/Invoices\";\r\n\r\nimport { Transition } from 'react-transition-group';\r\nimport { track } from '@amplitude/analytics-browser';\r\n\r\nconst AccountDrawer = (props) => {\r\n\r\n const _totalAccounts = props.totalAccounts;\r\n const _totalServices = props.totalServices;\r\n const activeServicesEnergy = props.activeServicesEnergy;\r\n const openAccountDrawer = props.openAccountDrawer;\r\n const accountPickerRef = props.accountPickerRef;\r\n const theme = props.theme;\r\n const fromEnergyAccount = props.fromEnergyAccount;\r\n\r\n const handleClose = props.handleClose;\r\n const setActiveServicesInvoices = props.setActiveServicesInvoices;\r\n const setCurrentPage = props.setCurrentPage;\r\n const setEmptyPaginationResult = props.setEmptyPaginationResult;\r\n\r\n const [energyAccounts, setEnergyAccounts] = useState([]);\r\n const [totalAccounts, setTotalAccounts] = useState([]);\r\n const [search, setSearch] = useState('');\r\n\r\n let allAccountsSelected = totalAccounts.every(a => a.isSelected);\r\n\r\n const toggleSelectedAccount = (id_account) => {\r\n setTotalAccounts(totalAccounts.map(currentAccount => currentAccount.idAccount !== id_account ? currentAccount : ({ ...currentAccount, isSelected: !currentAccount.isSelected })))\r\n track('Billing account selected')\r\n }\r\n\r\n const onSaveChanges = () => {\r\n const deselectedAccounts = totalAccounts\r\n .filter(currentAccount => !currentAccount.isSelected)\r\n .map(currentAccount => currentAccount.idAccount);\r\n const energyAccountsIds = energyAccounts\r\n .map(currentAccount => currentAccount.idAccount)\r\n const newActiveServicesInvoices = [..._totalServices];\r\n setCurrentPage(0)\r\n setEmptyPaginationResult(false)\r\n setActiveServicesInvoices(\r\n newActiveServicesInvoices.filter(currentService =>\r\n !deselectedAccounts.some(currentIdAccount => currentService.idAccount === currentIdAccount)\r\n &&\r\n energyAccountsIds.some(currentIdAccount => currentService.idAccount === currentIdAccount)\r\n )\r\n )\r\n\r\n handleClose()\r\n }\r\n\r\n const toggleSelectAll = (allSelected) => {\r\n !allAccountsSelected && track('Billing all account selected')\r\n setTotalAccounts(prevState => prevState.map(currentAccount => ({ ...currentAccount, isSelected: !allSelected })))\r\n }\r\n\r\n const normalizeText = (text) => {\r\n return text.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\")\r\n }\r\n\r\n useEffect(() => {\r\n if (!_totalAccounts || _totalAccounts.length === 0) {\r\n setTotalAccounts([])\r\n return;\r\n }\r\n const activeServicesEnergyAccountIds = activeServicesEnergy.map(s => s.account?.idAccount);\r\n const energyAccounts = _totalAccounts.filter(currentAccount => currentAccount.typeservices.includes('energy'))\r\n setEnergyAccounts(energyAccounts)\r\n const normalizedAccounts = energyAccounts.map(currentAccount => ({\r\n ...currentAccount,\r\n isSelected: (fromEnergyAccount && activeServicesEnergyAccountIds.length > 0) ? activeServicesEnergyAccountIds.includes(currentAccount.idAccount) : true,\r\n visible: true\r\n }))\r\n setTotalAccounts(normalizedAccounts)\r\n // eslint-disable-next-line\r\n }, [_totalAccounts, fromEnergyAccount])\r\n\r\n useEffect(() => {\r\n if (!search || search.length === 0) {\r\n setTotalAccounts(prevState => prevState.map(currentAccount => ({ ...currentAccount, visible: true })))\r\n } else {\r\n setTotalAccounts(prevState => prevState.map(currentAccount => ({ \r\n ...currentAccount, \r\n visible: normalizeText(currentAccount.name)\r\n .toLowerCase()\r\n .includes(normalizeText(search.toLowerCase())) \r\n })))\r\n }\r\n }, [search])\r\n\r\n return (\r\n \r\n {state => (\r\n
\r\n {/*
*/}\r\n
\r\n
\r\n
\r\n \r\n setSearch(target.value)}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n totalAccounts.filter(a => a.visible).map(currentAccount => (\r\n toggleSelectedAccount(currentAccount.idAccount)}\r\n >\r\n
\r\n
{currentAccount.name}
\r\n
{currentAccount.services.length} {props.language.invoices_accounts_services_selected_unit}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n ))\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n toggleSelectAll(allAccountsSelected)}\r\n >\r\n {!allAccountsSelected ? props.language.invoices_accounts_select_all : props.language.invoices_accounts_deselect_all }\r\n

\r\n {\r\n e.stopPropagation()\r\n onSaveChanges()\r\n }}\r\n >\r\n

{props.language.invoices_accounts_done}

\r\n \r\n
\r\n
\r\n
)}\r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state, props) => ({\r\n totalAccounts: state.accounts.totalAccounts,\r\n totalServices: state.services.totalServices,\r\n activeServicesEnergy: state.services.activeServicesEnergy,\r\n theme: state.theme.theme,\r\n language: state.shared.language,\r\n ...props\r\n})\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setActiveServicesInvoices: (payload) =>\r\n dispatch(servicesActions.setActiveServicesInvoices(payload)),\r\n setCurrentPage: (payload) =>\r\n dispatch(invoicesActions.setCurrentPage(payload)),\r\n setEmptyPaginationResult: (payload) =>\r\n dispatch(invoicesActions.setEmptyPaginationResult(payload))\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AccountDrawer);","import * as pays from '../creators/Pays';\r\n\r\nimport { SETData, GETData } from '../../services/WebServices';\r\n\r\nimport { Alert } from 'rsuite';\r\n\r\nexport const setBanks = payload => {\r\n return {\r\n type: pays.SET_PAYS_BANKS,\r\n payload\r\n }\r\n}\r\n\r\nexport const setInvoicesToPay = payload => {\r\n return {\r\n type: pays.SET_PAYS_INVOICES_TO_PAY,\r\n payload\r\n }\r\n}\r\n\r\nexport const setTypeComponent = payload => {\r\n return {\r\n type: pays.SET_PAYS_TYPE_COMPONENT,\r\n payload\r\n }\r\n}\r\n\r\nexport const setInfoPayment = payload => {\r\n return {\r\n type: pays.SET_PAYS_INFO_PAYMENT,\r\n payload\r\n }\r\n}\r\n\r\nexport const setPaymentLoading = payload => {\r\n return {\r\n type: pays.SET_PAYS_PAYMENT_LOADING,\r\n payload\r\n }\r\n}\r\n\r\nexport const setPaymentMethods = payload => {\r\n return {\r\n type: pays.SET_PAYS_PAYMENT_METHODS,\r\n payload\r\n }\r\n}\r\n\r\nexport const setPaymentProvider = payload => {\r\n return {\r\n type: pays.SET_PAYS_PAYMENT_PROVIDER,\r\n payload\r\n }\r\n}\r\n\r\nexport const loadBankDataAsync = () => {\r\n return (dispatch) => { \r\n\r\n GETData(\"payvalida/banks\", \"GET\") \r\n .then(response => { \r\n if (response !== null) { \r\n dispatch(setBanks(response.DATA)); \r\n } \r\n })\r\n .catch(response => console.error(response));\r\n\r\n }\r\n}\r\nexport const loadPaymentMethodsAsync = () => {\r\n return (dispatch) => {\r\n\r\n GETData(\"payment/methods\", \"GET\") \r\n .then(response => { \r\n if (response !== null) { \r\n dispatch(setPaymentMethods(response)); \r\n } \r\n })\r\n .catch(response => console.error(response));\r\n\r\n }\r\n}\r\n\r\nexport const setPsePaymentAsync = (payload) => {\r\n return (dispatch, getState) => {\r\n\r\n let infoPayment = getState().pays.infoPayment;\r\n\r\n const language = getState().shared.language;\r\n\r\n const pseProvider = payload.pseProvider;\r\n\r\n infoPayment.id_bills = payload.id_bills_array.filter(bill => bill.selected).map(bill => bill.value);\r\n dispatch(setPaymentLoading(true));\r\n \r\n SETData(`${pseProvider}/pse/transaction`, \"POST\", infoPayment)\r\n .then(response => {\r\n if (response !== null) {\r\n window.location.assign(response.URL_BANK);\r\n } else {\r\n Alert.error(language.alert_submit_form_popup_failed);\r\n }\r\n })\r\n .catch(() => Alert.error(language.alert_submit_form_popup_failed))\r\n .finally(() => dispatch(setPaymentLoading(false)));\r\n }\r\n}\r\n\r\nexport const setCardPaymentAsync = (payload) => {\r\n return (dispatch, getState) => {\r\n\r\n let infoPayment = getState().pays.infoPayment;\r\n\r\n const language = getState().shared.language;\r\n\r\n infoPayment.id_bills = payload.id_bills_array.filter(bill => bill.selected).map(bill => bill.value);\r\n\r\n dispatch(setPaymentLoading(true));\r\n\r\n SETData(`openpay/card`, \"POST\", infoPayment)\r\n .then(response => {\r\n if (response.code === \"SUCCESS\") {\r\n\r\n window.location.assign(response.redirect_url);\r\n \r\n } else {\r\n\r\n let errorMessage = language[`invoices_card_payment_alert_${response.code.toLowerCase()}`] || language[\"alert_submit_form_popup_failed\"];\r\n\r\n Alert.error(errorMessage);\r\n }\r\n })\r\n .catch(() => Alert.error(language.alert_submit_form_popup_failed))\r\n .finally(() => dispatch(setPaymentLoading(false)));\r\n }\r\n}","import React from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as paysActions from '../../../store/actions/Pays';\r\n\r\nimport { themes } from '../../../utils/enums';\r\n\r\nimport PseDark from '../../../imgs/pse-logo-dark.svg'\r\nimport PseLight from '../../../imgs/pse-logo-light.svg'\r\n\r\nconst PaymentMethod = (props) => {\r\n\r\n let paymentMethods = props.paymentMethods;\r\n let theme = props.theme;\r\n\r\n return (\r\n
\r\n {\r\n paymentMethods.map(method =>\r\n
{ props.setTypeComponent(method.value); props.setPaymentProvider(method.provider); }}>\r\n
\r\n
\r\n {\r\n method.image.type === 'icon' ?\r\n :\r\n \"logo-pse\"\r\n }\r\n
\r\n
\r\n
{method.title}
\r\n
{method.description}
\r\n
\r\n
\r\n \r\n
\r\n )\r\n }\r\n
\r\n

\r\n { props.language.invoices_pay_first_advice_payment_method }\r\n

\r\n

\r\n { props.language.invoices_pay_second_advice_payment_method }\r\n

\r\n
\r\n
\r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n invoicesToPay: state.invoices.invoicesToPay,\r\n user: state.users.user,\r\n language: state.shared.language,\r\n paymentMethods: state.pays.paymentMethods,\r\n theme: state.theme.theme,\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n setTypeComponent: (payload) => dispatch(paysActions.setTypeComponent(payload)),\r\n setPaymentProvider: (payload) => dispatch(paysActions.setPaymentProvider(payload))\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(PaymentMethod)","import React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as paysActions from '../../../store/actions/Pays';\r\n\r\n// import cardTag from '../../../imgs/card-tag.svg';\r\n\r\nimport Input from '../../shared/utilities/Input';\r\nimport Select from '../../shared/utilities/Select';\r\nimport { themes } from '../../../utils/enums';\r\n\r\nconst isValidateString = val => {\r\n return /^(?=.*[a-zA-Zñíóáéú])[ñíóáéú a-zA-Z]+$/.test(val);\r\n}\r\n\r\nconst isValidUser = data => {\r\n\r\n if (data.phone === null || data.phone === \"\") {\r\n return false;\r\n }\r\n\r\n if (data.address === null || data.address === \"\") {\r\n return false;\r\n }\r\n\r\n if (data.id_document === null || data.id_document === \"\") {\r\n return false;\r\n }\r\n\r\n if (data.card_name === null || data.card_name === \"\" || !isValidateString(data.card_name)) {\r\n return false;\r\n }\r\n\r\n if (data.card_number === null || data.card_number === \"\") {\r\n return false;\r\n }\r\n\r\n if (data.card_expiration_month === null || data.card_expiration_month === \"\") {\r\n return false;\r\n }\r\n\r\n if (data.card_expiration_year === null || data.card_expiration_year === \"\") {\r\n return false;\r\n }\r\n\r\n if (data.card_cvv === null || data.card_cvv === \"\") {\r\n return false;\r\n }\r\n\r\n return true;\r\n\r\n}\r\n\r\nconst separarTexto = (texto) => {\r\n const expresionRegular = new RegExp('.{1,4}', 'g');\r\n const grupos = texto.match(expresionRegular);\r\n return grupos ? grupos.join(' ') : '';\r\n}\r\n\r\nlet fees = Array.from({ length: 36 }, (e, i) => { return { value: i + 1, label: i + 1 } });\r\n\r\nconst CardPayment = (props) => {\r\n\r\n let theme = props.theme;\r\n let account = props.account;\r\n let infoPayment = props.infoPayment;\r\n\r\n const setEnable = props.setEnable;\r\n const setInfoPayment = props.setInfoPayment;\r\n\r\n const initInfo = {\r\n id_user: props.user.idUser,\r\n id_external_user: 0,\r\n id_account: account?.idAccount,\r\n name: props.user.name,\r\n lastname: props.user.lastname,\r\n email: props.user.email,\r\n phone: props.user.phone,\r\n address: props.user.address,\r\n id_document: \"\",\r\n id_bills: [],\r\n card_name: \"\",\r\n card_number: \"\",\r\n card_expiration_year: \"\",\r\n card_expiration_month: \"\",\r\n card_cvv: \"\",\r\n payments: 1,\r\n neugets: 0,\r\n commission: 0.007,\r\n total_payment: props.totalPayment,\r\n }\r\n\r\n const [defaultInfo, setDefaultInfo] = useState(initInfo);\r\n\r\n useEffect(() => {\r\n if (defaultInfo != null) {\r\n setInfoPayment(defaultInfo)\r\n setDefaultInfo(null)\r\n }\r\n }, [defaultInfo, setInfoPayment]);\r\n\r\n useEffect(() => setEnable(isValidUser(infoPayment)), [setEnable, infoPayment]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{props.language.invoices_card_payment_bank}
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
{infoPayment.card_name === '' ? `${props.language.invoices_card_payment_cardholder}` : `${infoPayment.card_name}`.toUpperCase()}
\r\n
{infoPayment.card_expiration_month === '' ? 'MM' : infoPayment.card_expiration_month}/{infoPayment.card_expiration_year === '' ? 'YY' : infoPayment.card_expiration_year}
\r\n
\r\n
{separarTexto(infoPayment.card_number === '' ? 'XXXXXXXXXXXXXXXX' : `${infoPayment.card_number}`)}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {\r\n setInfoPayment({ ...infoPayment, card_name: target.value })\r\n }}\r\n theme={theme}\r\n help={props.language.invoices_card_payment_equal_cardholder_name}\r\n required\r\n />\r\n
\r\n {\r\n setInfoPayment({ ...infoPayment, id_document: target.value })\r\n }}\r\n theme={theme}\r\n required\r\n />\r\n {\r\n setInfoPayment({ ...infoPayment, address: target.value })\r\n }}\r\n theme={theme}\r\n required\r\n />\r\n
\r\n {\r\n target.value.length <= 16 && setInfoPayment({ ...infoPayment, card_number: target.value })\r\n }}\r\n theme={theme}\r\n required\r\n />\r\n
\r\n
\r\n {\r\n target.value <= 12 && setInfoPayment({ ...infoPayment, card_expiration_month: target.value })\r\n }}\r\n theme={theme}\r\n required\r\n />\r\n
\r\n
\r\n {\r\n target.value.length <= 2 && setInfoPayment({ ...infoPayment, card_expiration_year: target.value })\r\n }}\r\n theme={theme}\r\n required\r\n />\r\n
\r\n
\r\n {\r\n target.value.length <= 4 && setInfoPayment({ ...infoPayment, card_cvv: target.value })\r\n }}\r\n theme={theme}\r\n required\r\n />\r\n
\r\n {\r\n setInfoPayment({ ...infoPayment, payments: value });\r\n }}\r\n theme={theme}\r\n width={\"350px\"}\r\n required\r\n />\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n infoPayment: state.pays.infoPayment,\r\n account: state.accounts.account,\r\n user: state.users.user,\r\n language: state.shared.language,\r\n setEnable: ownProps.setEnable,\r\n totalPayment: ownProps.totalPayment,\r\n theme: state.theme.theme,\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n setInfoPayment: (payload) => dispatch(paysActions.setInfoPayment(payload)),\r\n setCardPaymentAsync: () => dispatch(paysActions.setCardPaymentAsync())\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(CardPayment)","import React, { useState, useEffect, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as invoicesActions from '../../../store/actions/Invoices';\r\nimport * as paysActions from '../../../store/actions/Pays';\r\n\r\nimport { Animation } from 'rsuite';\r\n\r\nimport Input from '../../shared/utilities/Input';\r\nimport Select from '../../shared/utilities/Select';\r\n\r\nconst isValidateEmail = email => {\r\n return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email);\r\n}\r\n\r\nconst isValidateString = val => {\r\n return /^[ñíóáéú a-zA-Z ]+$/.test(val);\r\n}\r\n\r\nconst isValidUser = (user, pseProvider) => {\r\n\r\n if (user.name === null || user.name === \"\" || !isValidateString(user.name)) {\r\n return false;\r\n }\r\n\r\n if (!isValidateEmail(user.email)) {\r\n return false;\r\n }\r\n\r\n if (user.phone === null || user.phone === \"\") {\r\n return false;\r\n }\r\n\r\n if (user.address === null || user.address === \"\") {\r\n return false;\r\n }\r\n\r\n if (user.id_document === null || user.id_document === \"\") {\r\n return false;\r\n }\r\n\r\n if ((user.financial_institution_code === null || user.financial_institution_code === \"0\") && pseProvider === 'payvalida') {\r\n return false;\r\n }\r\n\r\n return true;\r\n\r\n}\r\n\r\nconst PsePayment = (props) => {\r\n\r\n const userLegalTypes = [\r\n {\r\n label: props.language.invoices_pay_label_option_cc,\r\n value: \"CC\"\r\n },\r\n {\r\n label: props.language.invoices_pay_label_option_nit,\r\n value: \"NIT\",\r\n },\r\n {\r\n label: props.language.invoices_pay_label_option_ce,\r\n value: \"CE\"\r\n }\r\n ]\r\n \r\n const userTypes = [\r\n {\r\n label: props.language.invoices_pay_label_option_natural_user,\r\n value: \"N\"\r\n },\r\n {\r\n label: props.language.invoices_pay_label_option_legal_user,\r\n value: \"J\",\r\n }\r\n ]\r\n\r\n let account = props.account;\r\n let banks = props.banks;\r\n let infoPayment = props.infoPayment;\r\n let pseProvider = props.paymentProvider;\r\n let theme = props.theme;\r\n\r\n const setEnable = props.setEnable;\r\n const loadBankDataAsync = props.loadBankDataAsync;\r\n const setInfoPayment = props.setInfoPayment;\r\n\r\n const initInfo = {\r\n id_user: props.user.idUser,\r\n id_external_user: 0,\r\n id_account: account?.idAccount,\r\n name: pseProvider === 'payvalida' ? `${props.user.name} ${props.user.lastname}` : props.user.name,\r\n last_name: props.user.lastname,\r\n email: props.user.email,\r\n phone: props.user.phone,\r\n address: props.user.address,\r\n id_document: \"\",\r\n financial_institution_code: \"0\",\r\n user_legal_id_type: userLegalTypes[0].value,\r\n user_type: userTypes[0].value,\r\n id_bills: [],\r\n neugets: 0,\r\n commission: 0,\r\n total_payment: props.totalPayment,\r\n }\r\n\r\n const [defaultInfo, setDefaultInfo] = useState(initInfo);\r\n\r\n useEffect(() => {\r\n if (defaultInfo != null) {\r\n setInfoPayment(defaultInfo)\r\n setDefaultInfo(null)\r\n }\r\n }, [defaultInfo, setInfoPayment]);\r\n\r\n const [personalData, setShowPersonalData] = useState(pseProvider !== 'payvalida');\r\n const [bankData, setShowBankData] = useState(pseProvider === 'payvalida');\r\n\r\n useEffect(() => setEnable(isValidUser(infoPayment)), [setEnable, infoPayment]);\r\n\r\n useEffect(() => {\r\n !banks.length && pseProvider === 'payvalida' && loadBankDataAsync();\r\n }, [banks, loadBankDataAsync, pseProvider]);\r\n\r\n return (\r\n
\r\n
\r\n
{setShowPersonalData(!personalData); setShowBankData(!bankData)}}>\r\n
{props.language.invoices_pay_title_section_personal_data}
\r\n \r\n
\r\n \r\n
\r\n
\r\n {\r\n setInfoPayment({ ...infoPayment, name: target.value })\r\n }}\r\n theme={theme}\r\n required\r\n />\r\n
\r\n
\r\n {\r\n setInfoPayment({ ...infoPayment, user_legal_id_type: value })\r\n }}\r\n theme={theme}\r\n width={'350px'}\r\n required\r\n height={130}\r\n />\r\n
\r\n
\r\n {\r\n setInfoPayment({ ...infoPayment, id_document: target.value })\r\n }}\r\n theme={theme}\r\n required\r\n />\r\n
\r\n
\r\n
\r\n {\r\n setInfoPayment({ ...infoPayment, phone: target.value })\r\n }}\r\n theme={theme}\r\n required\r\n />\r\n
\r\n
\r\n {\r\n setInfoPayment({ ...infoPayment, address: target.value })\r\n }}\r\n theme={theme}\r\n required\r\n />\r\n
\r\n
\r\n
\r\n {\r\n setInfoPayment({ ...infoPayment, email: target.value })\r\n }}\r\n theme={theme}\r\n required\r\n />\r\n
\r\n
\r\n
\r\n {\r\n pseProvider === 'payvalida' && \r\n
{ setShowPersonalData(!personalData); setShowBankData(!bankData) }}>\r\n
{props.language.invoices_pay_title_section_bank_data}
\r\n \r\n
\r\n \r\n
\r\n
\r\n {\r\n const type = value === userTypes[1].value ? userLegalTypes[1].value : userLegalTypes[0].value;\r\n setInfoPayment({ ...infoPayment, user_type: value, user_legal_id_type: type })\r\n }}\r\n theme={theme}\r\n width={'350px'}\r\n required\r\n />\r\n
\r\n
\r\n {props.banks.length ?\r\n {\r\n setInfoPayment({ ...infoPayment, financial_institution_code: value });\r\n }}\r\n theme={theme}\r\n width={'350px'}\r\n required\r\n /> : null\r\n }\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n user: state.users.user,\r\n account: state.accounts.account,\r\n banks: state.invoices.banks,\r\n language: state.shared.language,\r\n infoPayment: state.pays.infoPayment,\r\n paymentProvider: state.pays.paymentProvider,\r\n theme: state.theme.theme,\r\n setEnable: ownProps.setEnable,\r\n totalPayment: ownProps.totalPayment,\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n loadBankDataAsync: () => dispatch(invoicesActions.loadBankDataAsync()),\r\n setInfoPayment: (payload) => dispatch(paysActions.setInfoPayment(payload)),\r\n setPsePaymentAsync: (payload) => dispatch(paysActions.setPsePaymentAsync(payload))\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(PsePayment)","import React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { track } from '@amplitude/analytics-browser';\r\n\r\nimport * as paysActions from '../../../store/actions/Pays';\r\nimport * as sharedActions from '../../../store/actions/Shared';\r\nimport * as invoicesActions from '../../../store/actions/Invoices';\r\n\r\nimport { Alert, Drawer, Loader } from 'rsuite';\r\n\r\nimport CurrencyFormat from 'react-currency-format';\r\n\r\nimport PaymentMethod from './PaymentMethod';\r\nimport CardPayment from './CardPayment';\r\nimport PsePayment from './PsePayment';\r\nimport BackButton from '../../shared/utilities/BackButton';\r\n\r\nconst Component = ({ type, setEnable, totalPayment }) => {\r\n\r\n switch ((type || 'METHOD').toUpperCase()) {\r\n case 'CARD':\r\n return \r\n case 'PSE':\r\n return \r\n default:\r\n return \r\n }\r\n\r\n}\r\n\r\nconst Pay = (props) => {\r\n\r\n let _invoices = props._invoices;\r\n let infoPayment = props.infoPayment;\r\n let typeComponent = props.typeComponent;\r\n let paymentMethods = props.paymentMethods;\r\n let activeServicesInvoices = props.activeServicesInvoices\r\n let pseProvider = props.paymentProvider;\r\n let showPay = props.showPay;\r\n let invoicesSummary = props.invoicesSummary;\r\n let selectAll = props.selectAll;\r\n let theme = props.theme;\r\n let notSelectedPedingInvoices = _invoices.filter(currentInvoice => !currentInvoice.loadingDelay && currentInvoice.state === 0 && !currentInvoice.isSelected)\r\n let selectedPedingInvoicesArray = _invoices.filter(currentInvoice => !currentInvoice.loadingDelay && currentInvoice.state === 0 && currentInvoice.isSelected)\r\n let dynamicSelectedPedingInvoices = selectAll ? (invoicesSummary.total_bills - notSelectedPedingInvoices.length) : (selectedPedingInvoicesArray.length);\r\n\r\n let totalPayment = selectAll ? invoicesSummary.total_payment : selectedPedingInvoicesArray.reduce((accum, i) => accum + parseFloat(i.total_payment), 0);\r\n\r\n const setCardPaymentAsync = props.setCardPaymentAsync;\r\n const setTypeComponent = props.setTypeComponent;\r\n const setPsePaymentAsync = props.setPsePaymentAsync;\r\n const loadPaymentMethodsAsync = props.loadPaymentMethodsAsync;\r\n\r\n const [isEnable, setEnable] = useState(false);\r\n const [loadingOpenPay, setLoadingOpenPay] = useState(false);\r\n\r\n const isValidateEmail = email => /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email);\r\n\r\n const isValidatePseString = val => /^[ñíóáéú a-zA-Z ]+$/.test(val);\r\n\r\n const isValidateCardString = val => /^(?=.*[a-zA-Zñíóáéú])[ñíóáéú a-zA-Z]+$/.test(val);\r\n\r\n const handleClose = () => {\r\n if (typeComponent === 'METHOD') {\r\n props.setStartOnboarding({ key: 'payment', value: false })\r\n props.setShowPay(false);\r\n } else {\r\n setTypeComponent('METHOD')\r\n }\r\n }\r\n\r\n const isValidUserByCard = (data) => {\r\n if (data.phone === null || data.phone === \"\") return false;\r\n if (data.address === null || data.address === \"\") return false;\r\n if (data.id_document === null || data.id_document === \"\") return false;\r\n if (data.card_name === null || data.card_name === \"\" || !isValidateCardString(data.card_name)) {\r\n return false;\r\n }\r\n if (data.card_number === null || data.card_number === \"\") return false;\r\n if (data.card_expiration_month === null || data.card_expiration_month === \"\") return false;\r\n if (data.card_expiration_year === null || data.card_expiration_year === \"\") return false;\r\n if (data.card_cvv === null || data.card_cvv === \"\") return false;\r\n return true;\r\n }\r\n\r\n const isValidUserByPse = (user, pseProvider) => {\r\n if (user.name === null || user.name === \"\" || !isValidatePseString(user.name)) return false;\r\n if (!isValidateEmail(user.email)) return false;\r\n if (user.phone === null || user.phone === \"\") return false;\r\n if (user.address === null || user.address === \"\") return false;\r\n if (user.id_document === null || user.id_document === \"\") return false;\r\n if (\r\n (user.financial_institution_code === null || user.financial_institution_code === \"0\")\r\n && pseProvider === 'payvalida'\r\n ) return false;\r\n return true;\r\n }\r\n\r\n const isValidUser = (infoPayment) => {\r\n switch (typeComponent) {\r\n case 'CARD':\r\n return isValidUserByCard(infoPayment)\r\n case 'PSE':\r\n return isValidUserByPse()\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n const showPseError = (user, props) => {\r\n\r\n if (user.name === null || user.name === \"\" || !isValidatePseString(user.name)) {\r\n Alert.error(props.language.alert_user_popup_name);\r\n return;\r\n }\r\n\r\n if (user.address === null || user.address === \"\") {\r\n Alert.error(props.language.alert_user_popup_address);\r\n return;\r\n }\r\n\r\n if (!isValidateEmail(user.email)) {\r\n Alert.error(props.language.alert_user_popup_email);\r\n return;\r\n }\r\n\r\n if (user.phone === null || user.phone === \"\") {\r\n Alert.error(props.language.alert_user_popup_phone);\r\n return;\r\n }\r\n\r\n if (user.id_document === null || user.id_document === \"\") {\r\n Alert.error(props.language.alert_user_popup_id_document);\r\n return;\r\n }\r\n\r\n if (user.financial_institution_code === null || user.financial_institution_code === \"0\") {\r\n Alert.error(props.language.alert_pay_popup_banks);\r\n return;\r\n }\r\n\r\n }\r\n\r\n const showCardError = (data, props) => {\r\n if (data.address === null || data.address === \"\") {\r\n Alert.error(props.language.alert_user_popup_address);\r\n return;\r\n }\r\n\r\n if (data.phone === null || data.phone === \"\") {\r\n Alert.error(props.language.alert_user_popup_phone);\r\n return;\r\n }\r\n\r\n if (data.id_document === null || data.id_document === \"\") {\r\n Alert.error(props.language.alert_user_popup_id_document);\r\n return;\r\n }\r\n\r\n if (data.card_name === null || data.card_name === \"\" || !isValidateCardString(data.card_name)) {\r\n Alert.error(props.language.alert_pay_popup_card_name);\r\n return;\r\n }\r\n\r\n if (data.card_number === null || data.card_number === \"\") {\r\n Alert.error(props.language.alert_pay_popup_card_number);\r\n return;\r\n }\r\n\r\n if (data.card_expiration_month === null || data.card_expiration_month === \"\") {\r\n Alert.error(props.language.alert_pay_popup_card_expiration_month);\r\n return;\r\n }\r\n\r\n if (data.card_expiration_year === null || data.card_expiration_year === \"\") {\r\n Alert.error(props.language.alert_pay_popup_card_expiration_year);\r\n return;\r\n }\r\n\r\n if (data.card_cvv === null || data.card_cvv === \"\") {\r\n Alert.error(props.language.alert_pay_popup_card_cvv);\r\n return;\r\n }\r\n }\r\n\r\n // eslint-disable-next-line\r\n useEffect(() => setEnable(isValidUser(infoPayment)), [setEnable, infoPayment, typeComponent]);\r\n\r\n useEffect(() => {\r\n if (!paymentMethods.length) {\r\n loadPaymentMethodsAsync();\r\n }\r\n }, [paymentMethods, loadPaymentMethodsAsync]);\r\n\r\n return (\r\n handleClose()}\r\n size={'xs'}\r\n className='invoices-pay-drawer'\r\n placement={'right'}\r\n backdropClassName={`surface-bg-blackout pe-pointer ${theme}`}>\r\n
\r\n
\r\n
\r\n
\r\n handleClose()}>\r\n
{typeComponent === 'METHOD' ? props.language.invoices_card_payment_methods : props.language.invoices_pay_with_method_view_title}
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n

{props.language.invoices_pay_invoices_selected}

\r\n {dynamicSelectedPedingInvoices} {props.language.invoices_pay_invoices_selected_unit}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n {props.language.invoices_pay_total_title}\r\n

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

\r\n { props.language.invoices_pay_total_unit }\r\n

\r\n
\r\n
\r\n {\r\n typeComponent !== 'METHOD' && (\r\n {\r\n if (isEnable) {\r\n setLoadingOpenPay(true);\r\n if (typeComponent.toUpperCase() === 'CARD') {\r\n setCardPaymentAsync({ id_bills_array: invoicesSummary.id_bills_array })\r\n } else {\r\n setPsePaymentAsync({ pseProvider, id_bills_array: invoicesSummary.id_bills_array })\r\n }\r\n track('Bills payed', {\r\n Payment_Method: typeComponent,\r\n Bill_Quantity: activeServicesInvoices.map((service) => service?.name).length\r\n })\r\n } else {\r\n if (typeComponent.toUpperCase() === 'CARD') {\r\n showCardError(infoPayment, props)\r\n } else {\r\n showPseError(infoPayment, props)\r\n }\r\n }\r\n }}\r\n >\r\n {\r\n loadingOpenPay ? (\r\n <>\r\n \r\n

\r\n { props.language.loader_text_content }\r\n

\r\n \r\n ) : (\r\n <>\r\n \r\n

{props.language.invoices_button_pay}

\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n infoPayment: state.pays.infoPayment,\r\n paymentMethods: state.pays.paymentMethods,\r\n typeComponent: state.pays.typeComponent,\r\n paymentProvider: state.pays.paymentProvider,\r\n showPay: state.invoices.showPay,\r\n invoicesSummary: state.invoices.invoicesSummary,\r\n language: state.shared.language,\r\n payment: state.shared.startOnboarding.payment,\r\n activeServicesInvoices: state.services.activeServicesInvoices,\r\n user: state.users.user,\r\n invoicesDate: state.invoices.invoicesDate,\r\n theme: state.theme.theme,\r\n ...ownProps\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n loadPaymentMethodsAsync: () => dispatch(paysActions.loadPaymentMethodsAsync()),\r\n setTypeComponent: (payload) => dispatch(paysActions.setTypeComponent(payload)),\r\n setPsePaymentAsync: (payload) => dispatch(paysActions.setPsePaymentAsync(payload)),\r\n setCardPaymentAsync: (payload) => dispatch(paysActions.setCardPaymentAsync(payload)),\r\n setStartOnboarding: (payload) => dispatch(sharedActions.setStartOnboarding(payload)),\r\n setShowPay: (payload) => dispatch(invoicesActions.setShowPay(payload)),\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Pay)","import React, { useEffect, useState } from 'react'\r\n\r\nimport { connect } from \"react-redux\";\r\n\r\nimport { Calendar as Datepicker } from 'react-calendar';\r\nimport { Transition } from 'react-transition-group';\r\nimport { calendarIntervals, setCalendarDates } from '../../../services/CalendarHandler';\r\nimport { subMonths } from 'date-fns';\r\nimport { track } from '@amplitude/analytics-browser';\r\n\r\nconst CalendarInvoices = (props) => {\r\n\r\n let show = props.show;\r\n let interval = props.interval;\r\n let start = props.start;\r\n let end = props.end;\r\n let cleanDate = props.cleanDate;\r\n let theme = props.theme;\r\n \r\n const setDates = props.setDates;\r\n const clearDate = props.clear;\r\n const setShowCalendar = props.setShowCalendar;\r\n\r\n const [selectedDate, setSelectedDate] = useState(!cleanDate ? (interval === 1 ? [start, end] : start) : null);\r\n\r\n useEffect(() => {\r\n if(!show && cleanDate){\r\n setSelectedDate(null);\r\n }\r\n }, [show, cleanDate])\r\n\r\n return (\r\n \r\n {state => (\r\n
\r\n {/*
*/}\r\n
\r\n
}\r\n prevLabel={
}\r\n onChange={(value) => {setSelectedDate(value)}} \r\n />\r\n
\r\n

{props.language.invoices_watch_all_months}

\r\n \r\n
\r\n
\r\n
)}\r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n theme: state.theme.theme,\r\n ...ownProps\r\n});\r\n\r\nconst mapDispatchToProps = () => ({\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(CalendarInvoices)","import React, { useState, useEffect, useRef, useMemo } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport { useLocation, useHistory } from 'react-router-dom';\r\n\r\nimport * as servicesActions from \"../../store/actions/Services\";\r\nimport * as invoicesActions from \"../../store/actions/Invoices\";\r\nimport * as sharedActions from \"../../store/actions/Shared\";\r\n\r\nimport { format, subMonths } from \"date-fns\";\r\nimport { es } from \"date-fns/locale\";\r\n\r\nimport { Loader } from \"rsuite\";\r\n\r\nimport { stringFormatDate } from \"../../services/CalendarHandler\";\r\nimport { GETS3PublicUrl, SETBlobFile } from \"../../services/WebServices\";\r\n\r\nimport { Transition } from 'react-transition-group';\r\n\r\nimport useTour from \"../onboarding/hook/useTour\";\r\n\r\nimport InvoiceModal from \"./InvoiceModal\";\r\nimport InvoiceTable from \"./InvoiceTable\";\r\nimport InvoiceSummary from \"./InvoiceSummary\";\r\nimport AccountDrawer from \"./account/AccountDrawer\";\r\nimport ContentLoader from \"react-content-loader\";\r\nimport Header from \"../shared/Header\";\r\nimport Pay from \"./pay/Pay\";\r\nimport CalendarInvoices from \"../shared/utilities/CalendarInvoices\";\r\n\r\nimport { stepsInvoice } from \"../onboarding/steps/InvoiceSteps\";\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nconst Invoices = (props) => {\r\n\r\n let _invoices = props.invoices;\r\n let _totalServices = props.totalServices;\r\n let activeServicesInvoices = props.activeServicesInvoices;\r\n let activeServicesEnergy = props.activeServicesEnergy;\r\n let showCalendar = props.showCalendar;\r\n let account = props.account;\r\n let invoiceShow = props.invoiceShow;\r\n let invoicesPeriods = props.invoicesPeriods;\r\n let invoicesLoading = props.invoicesLoading;\r\n let user = props.user;\r\n let totalAccounts = props.totalAccounts;\r\n let energyAccounts = totalAccounts.filter(currentAccount => currentAccount.typeservices.includes('energy'));\r\n let currentPage = props.currentPage;\r\n let sortField = props.sortField;\r\n let sortOrder = props.sortOrder;\r\n let invoicesDate = props.invoicesDate;\r\n let moreInvoicesLoading = props.moreInvoicesLoading;\r\n let invoicesSummary = props.invoicesSummary;\r\n let theme = props.theme;\r\n\r\n const setShowBlackScreen = props.setShowBlackScreen;\r\n const loadMoreInvoicesAsync = props.loadMoreInvoicesAsync;\r\n const loadInvoicesAsync = props.loadInvoicesAsync;\r\n const loadInvoicesSummaryAsync = props.loadInvoicesSummaryAsync;\r\n const setShowCalendar = props.setShowCalendar;\r\n const loadServicesAsync = props.loadServicesAsync;\r\n const setInvoiceShow = props.setInvoiceShow;\r\n const setInvoiceShowIndex = props.setInvoiceShowIndex;\r\n const setInvoicesContent = props.setInvoicesContent;\r\n const setInvoicesContentLoading = props.setInvoicesContentLoading;\r\n const loadInvoicesPeriodsAsync = props.loadInvoicesPeriodsAsync;\r\n const setCurrentPage = props.setCurrentPage;\r\n const _setInvoices = props.setInvoices;\r\n const setActiveServicesInvoices = props.setActiveServicesInvoices;\r\n const setEmptyPaginationResult = props.setEmptyPaginationResult;\r\n const setInvoicesSummary = props.setInvoicesSummary;\r\n\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n const [filteredByActiveServices, setFilteredByActiveServices] = useState(false);\r\n const [zoomIn, setZoomIn] = useState(false);\r\n const [invoices, setInvoices] = useState([]);\r\n const [invoiceUrl, setInvoiceUrl] = useState(null);\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n\r\n const [debounceSearchInvoices, setDebounceSearchInvoices] = useState('');\r\n const [searchInvoices, setSearchInvoices] = useState('');\r\n const [openAccountDrawer, setOpenAccountDrawer] = useState(false);\r\n const [openInvoiceStateModal, setOpenInvoiceStateModal] = useState(false);\r\n const [loadingDownload, setLoadingDownload] = useState(false);\r\n const [cleanDate, setCleanDate] = useState(false);\r\n const [invoiceModalIndexes, setInvoicesModalIndexes] = useState(null);\r\n const [selectAll, setSelectAll] = useState(true);\r\n const [filterPendingInvoices, setFilterPendingInvoices] = useState(false);\r\n const [fromEnergyAccount, setFromEnergyAccount] = useState(false);\r\n\r\n const searchInputContainerRef = useRef(null);\r\n const searchInputRef = useRef(null);\r\n const invoicesContainerRef = useRef(null);\r\n const invoiceStateModal = useRef(null);\r\n const accountPickerRef = useRef(null);\r\n\r\n const handleCalendar = (value) => {\r\n setShowCalendar(false);\r\n props.setInvoicesDate(value.graphDateFrom);\r\n setCurrentPage(0);\r\n setEmptyPaginationResult(false)\r\n setInvoicesContentLoading(true);\r\n setInvoicesContent([]);\r\n setCleanDate(false);\r\n };\r\n\r\n const handleDocumentClick = (event) => {\r\n if (searchInputContainerRef.current && !searchInputContainerRef.current.contains(event.target)) {\r\n setIsExpanded(false);\r\n }\r\n }\r\n\r\n const normalizeInvoices = () => {\r\n return [..._invoices].map((currentInvoice, index) => {\r\n const oldInvoice = index < invoices.length;\r\n const selectedCurrentInvoice = !currentInvoice.loadingDelay && currentInvoice.state === 0;\r\n return {\r\n ...currentInvoice,\r\n isSelected: (oldInvoice && !invoices[index].loadingDelay) ?\r\n invoices[index].isSelected\r\n : selectedCurrentInvoice\r\n }\r\n })\r\n }\r\n\r\n const toggleSelectAll = () => {\r\n const notSelectedPedingInvoices = invoices.filter(currentInvoice => !currentInvoice.loadingDelay && currentInvoice.state === 0 && !currentInvoice.isSelected)\r\n const selectedPedingInvoices = invoices.filter(currentInvoice => !currentInvoice.loadingDelay && currentInvoice.state === 0 && currentInvoice.isSelected)\r\n const selectedInvoices = selectAll ? (invoicesSummary.total_bills - notSelectedPedingInvoices.length) : (selectedPedingInvoices.length);\r\n const id_bills_array = invoicesSummary.id_bills_array.map(bill => ({ ...bill, selected: !selectAll }))\r\n if (selectedInvoices > 0) {\r\n const invoicesToRevert = !selectAll ? selectedPedingInvoices : notSelectedPedingInvoices;\r\n const revertSummary = invoicesToRevert.reduce((accum, i) => {\r\n if (selectAll) {\r\n accum.total_consumption = accum.total_consumption + parseFloat(i.consumption)\r\n accum.total_payment = accum.total_payment + parseFloat(i.total_payment)\r\n } else {\r\n accum.total_consumption = accum.total_consumption - parseFloat(i.consumption)\r\n accum.total_payment = accum.total_payment - parseFloat(i.total_payment)\r\n }\r\n return accum\r\n }, { total_consumption: parseFloat(invoicesSummary.total_consumption), total_payment: parseFloat(invoicesSummary.total_payment) })\r\n setInvoicesSummary({\r\n ...invoicesSummary,\r\n ...revertSummary,\r\n id_bills_array\r\n })\r\n setSelectAll(false)\r\n setInvoices(invoices.map(currentInvoice => {\r\n return ({\r\n ...currentInvoice,\r\n isSelected: false\r\n })\r\n }))\r\n } else {\r\n if (selectAll) {\r\n const revertSummary = notSelectedPedingInvoices.reduce((accum, i) => {\r\n accum.total_consumption = accum.total_consumption + parseFloat(i.consumption)\r\n accum.total_payment = accum.total_payment + parseFloat(i.total_payment)\r\n return accum\r\n }, { total_consumption: 0, total_payment: 0 })\r\n setInvoicesSummary({\r\n ...invoicesSummary,\r\n ...revertSummary,\r\n id_bills_array\r\n })\r\n }\r\n setSelectAll(true)\r\n setInvoices(invoices.map(currentInvoice => {\r\n return ({\r\n ...currentInvoice,\r\n isSelected: !currentInvoice.loadingDelay && currentInvoice.state === 0\r\n })\r\n }))\r\n }\r\n }\r\n\r\n const downloadConsolidate = async () => {\r\n try {\r\n setLoadingDownload(true);\r\n const servicesIds = activeServicesInvoices.map(s => s.idService)\r\n const blob = await SETBlobFile(\r\n 'bills/historical',\r\n 'POST',\r\n JSON.stringify({ id_user: user.idUser, month: invoicesDate.getMonth() + 1, year: invoicesDate.getFullYear(), id_services: servicesIds }),\r\n )\r\n if (!blob) throw new Error('Error getting blob')\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = `consolidate-${format(invoicesDate, 'MMMM', { locale: es })}-de-${format(invoicesDate, 'yyyy')}.xlsx`\r\n link.click();\r\n\r\n window.URL.revokeObjectURL(url);\r\n setLoadingDownload(false);\r\n track('Bill matrix downloaded')\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n\r\n const handleInvoicesContainerScroll = () => {\r\n if (invoicesContainerRef.current && !moreInvoicesLoading) {\r\n const { scrollTop, scrollHeight, clientHeight } = invoicesContainerRef.current;\r\n\r\n if (scrollTop + clientHeight >= scrollHeight) {\r\n setCurrentPage(currentPage + 1);\r\n }\r\n }\r\n }\r\n\r\n const clearDate = (e) => {\r\n e.stopPropagation();\r\n props.setInvoicesDate(subMonths(new Date(), 1));\r\n setShowCalendar(false);\r\n setCurrentPage(0);\r\n setEmptyPaginationResult(false)\r\n setCleanDate(true);\r\n track('Billing all month selected')\r\n }\r\n\r\n const groupDataByAccountAndDate = (invoices) => {\r\n const groupedData = invoices.reduce((result, customer) => {\r\n let accountGroup = result.find(group => group.account === customer.account);\r\n if (!accountGroup) {\r\n accountGroup = { account: customer.account, id_account: customer.id_account, dates: [] };\r\n result.push(accountGroup);\r\n }\r\n const customerDate = new Date(customer?.year, customer?.month - 1, 1, 12).toISOString()\r\n\r\n let dateGroup = accountGroup.dates.find(group => group.date === customerDate);\r\n if (!dateGroup) {\r\n dateGroup = { date: customerDate, invoices: [] };\r\n accountGroup.dates = [...accountGroup.dates, dateGroup].sort();\r\n }\r\n\r\n dateGroup.invoices = [...dateGroup.invoices, { ...customer }];\r\n return result.sort((a, b) => a.id_account - b.id_account);\r\n }, []);\r\n return groupedData;\r\n };\r\n\r\n const handleOpenModal = async (rowData, accountIndex, dateGroupIndex, invoiceIndex) => {\r\n setInvoicesModalIndexes({ accountIndex, dateGroupIndex, invoiceIndex })\r\n if (rowData.type_content === \"pdf\") {\r\n const result = await GETS3PublicUrl(rowData.pdf_path);\r\n setInvoiceUrl(result);\r\n } else {\r\n setInvoiceUrl('');\r\n setInvoiceShow(rowData)\r\n }\r\n setZoomIn(true)\r\n }\r\n\r\n const handleClickOutside = (event) => {\r\n if (invoiceStateModal.current && !invoiceStateModal.current.contains(event.target)) {\r\n setOpenInvoiceStateModal(false);\r\n }\r\n if (accountPickerRef.current && !accountPickerRef.current.contains(event.target)) {\r\n setOpenAccountDrawer(false);\r\n }\r\n };\r\n\r\n const handleFilterPendingInvoices = (value) => {\r\n setFilterPendingInvoices(value)\r\n setCurrentPage(0);\r\n setEmptyPaginationResult(false);\r\n }\r\n\r\n useEffect(() => {\r\n track('Billing viewed')\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n setShowBlackScreen(showCalendar);\r\n }, [setShowBlackScreen, showCalendar]);\r\n\r\n useEffect(() => {\r\n setShowBlackScreen(openInvoiceStateModal);\r\n }, [setShowBlackScreen, openInvoiceStateModal]);\r\n\r\n useEffect(() => {\r\n setShowBlackScreen(openAccountDrawer);\r\n }, [setShowBlackScreen, openAccountDrawer]);\r\n\r\n useEffect(() => {\r\n if (account && !activeServicesInvoices.length) {\r\n loadServicesAsync();\r\n }\r\n // eslint-disable-next-line\r\n }, [account, loadServicesAsync]);\r\n\r\n useEffect(() => {\r\n if (activeServicesInvoices.length) {\r\n loadInvoicesPeriodsAsync();\r\n }\r\n // eslint-disable-next-line\r\n }, [activeServicesInvoices]);\r\n\r\n useEffect(() => {\r\n if (activeServicesEnergy.length && !filteredByActiveServices) {\r\n if (location.state?.fromEnergy) {\r\n history.replace({\r\n pathname: location.pathname,\r\n state: null\r\n })\r\n const activeAccountsIds = activeServicesEnergy.map(s => s.idAccount);\r\n props.setInvoicesDate(subMonths(invoicesDate, 1))\r\n setActiveServicesInvoices(_totalServices.filter(currentService =>\r\n activeAccountsIds.some(currentIdAccount => currentService.idAccount === currentIdAccount)\r\n ));\r\n setFromEnergyAccount(true);\r\n }\r\n setFilteredByActiveServices(true);\r\n }\r\n // eslint-disable-next-line\r\n }, [activeServicesEnergy, _totalServices])\r\n\r\n useEffect(() => {\r\n if (!invoicesPeriods.length) { _setInvoices([]) }\r\n\r\n if (activeServicesInvoices.length && invoicesPeriods?.length && filteredByActiveServices) {\r\n const invoicesPerPage = 20;\r\n if (currentPage > 0) {\r\n loadMoreInvoicesAsync({\r\n offset: (invoicesPerPage * currentPage),\r\n limit: invoicesPerPage,\r\n searchText: debounceSearchInvoices,\r\n sortOrder: sortOrder,\r\n sortField: sortField,\r\n month: !cleanDate ? invoicesDate.getMonth() + 1 : null,\r\n year: !cleanDate ? invoicesDate.getFullYear() : null,\r\n pendingInvoices: filterPendingInvoices\r\n });\r\n } else {\r\n loadInvoicesAsync({\r\n searchText: debounceSearchInvoices,\r\n sortOrder: sortOrder,\r\n sortField: sortField,\r\n month: !cleanDate ? invoicesDate.getMonth() + 1 : null,\r\n year: !cleanDate ? invoicesDate.getFullYear() : null,\r\n pendingInvoices: filterPendingInvoices\r\n });\r\n }\r\n setInvoiceShowIndex(0);\r\n } else {\r\n setInvoices([])\r\n }\r\n // eslint-disable-next-line\r\n }, [activeServicesInvoices, filteredByActiveServices, invoicesPeriods, currentPage, debounceSearchInvoices, sortOrder, sortField, invoicesDate, filterPendingInvoices]);\r\n\r\n useEffect(() => {\r\n if (cleanDate) {\r\n loadInvoicesSummaryAsync({ selectAll })\r\n return;\r\n }\r\n if (activeServicesInvoices.length && _invoices.length) {\r\n loadInvoicesSummaryAsync({\r\n month: invoicesDate.getMonth() + 1,\r\n year: invoicesDate.getFullYear(),\r\n selectAll\r\n })\r\n }\r\n // eslint-disable-next-line\r\n }, [activeServicesInvoices, invoicesDate, cleanDate, _invoices])\r\n\r\n useEffect(() => {\r\n setInvoices(normalizeInvoices())\r\n // eslint-disable-next-line\r\n }, [_invoices])\r\n\r\n useEffect(() => {\r\n if (invoiceShow) {\r\n if (invoiceShow?.type_content === \"pdf\") {\r\n setInvoiceUrl(`https://${process.env.REACT_APP_S3_BUCKET}.s3.us-east-2.amazonaws.com/${invoiceShow?.pdf_path}`);\r\n setInvoicesContentLoading(false);\r\n }\r\n } else {\r\n setInvoiceUrl(\"\");\r\n }\r\n // eslint-disable-next-line\r\n }, [invoiceShow, invoices, account]);\r\n\r\n useEffect(() => {\r\n document.addEventListener(\"click\", handleDocumentClick)\r\n return () => {\r\n document.removeEventListener(\"click\", handleDocumentClick)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (searchInputRef.current) {\r\n searchInputRef.current.focus()\r\n }\r\n }, [isExpanded])\r\n\r\n useEffect(() => {\r\n const timeout = setTimeout(() => {\r\n setDebounceSearchInvoices(searchInvoices)\r\n setCurrentPage(0)\r\n setEmptyPaginationResult(false)\r\n }, 2000)\r\n return () => clearTimeout(timeout)\r\n // eslint-disable-next-line\r\n }, [searchInvoices]) \r\n\r\n const tourInvoice = useTour({\r\n steps: stepsInvoice(props.language),\r\n localStorageKey: \"invoice-tutorial\", \r\n runTour: props.invoiceOnboarding,\r\n setRunTour: props.setStartOnboarding, \r\n key: \"invoice\",\r\n });\r\n\r\n const activeAccounts = [...new Set(activeServicesInvoices.filter(i => i.type.name.includes('energy')).map(invoice => invoice.idAccount))];\r\n\r\n // eslint-disable-next-line\r\n const groupedData = useMemo(() => groupDataByAccountAndDate(invoices), [invoices, sortField, sortOrder]);\r\n\r\n const setPreviousInvoiceModal = () => {\r\n if (!invoiceModalIndexes) return;\r\n const { accountIndex, invoiceIndex, dateGroupIndex } = invoiceModalIndexes;\r\n let newAccountIndex = null;\r\n let newInvoiceIndex = null;\r\n let newDateGroupIndex = null;\r\n if (invoiceIndex !== 0) {\r\n newAccountIndex = accountIndex;\r\n newDateGroupIndex = dateGroupIndex;\r\n newInvoiceIndex = invoiceIndex - 1;\r\n return;\r\n } else if (dateGroupIndex !== 0) {\r\n newAccountIndex = accountIndex;\r\n newDateGroupIndex = dateGroupIndex - 1;\r\n const previousDate = groupedData[newAccountIndex].dates[newDateGroupIndex]\r\n newInvoiceIndex = previousDate.invoices.length - 1;\r\n } else if (accountIndex !== 0) {\r\n newAccountIndex = accountIndex - 1;\r\n const previousAccount = groupedData[newAccountIndex]\r\n newDateGroupIndex = previousAccount.dates.length - 1;\r\n const previousDate = previousAccount.dates[newDateGroupIndex]\r\n newInvoiceIndex = previousDate.invoices.length - 1;\r\n }\r\n if (newAccountIndex !== null && newDateGroupIndex !== null && newInvoiceIndex !== null) {\r\n const newInvoice = groupedData[newAccountIndex].dates[newDateGroupIndex].invoices[newInvoiceIndex];\r\n handleOpenModal(newInvoice, newAccountIndex, newDateGroupIndex, newInvoiceIndex)\r\n }\r\n }\r\n\r\n const setFollowingInvoiceModal = () => {\r\n if (!invoiceModalIndexes) return;\r\n const { accountIndex, invoiceIndex, dateGroupIndex } = invoiceModalIndexes;\r\n let newAccountIndex = null;\r\n let newInvoiceIndex = null;\r\n let newDateGroupIndex = null;\r\n const currentAccount = groupedData[accountIndex];\r\n const currentDate = currentAccount.dates[dateGroupIndex];\r\n if (invoiceIndex !== currentDate.invoices.length - 1) {\r\n newAccountIndex = accountIndex;\r\n newDateGroupIndex = dateGroupIndex;\r\n newInvoiceIndex = invoiceIndex + 1;\r\n return;\r\n } else if (dateGroupIndex !== currentAccount.dates.length - 1) {\r\n newAccountIndex = accountIndex;\r\n newDateGroupIndex = dateGroupIndex + 1;\r\n const previousDate = groupedData[newAccountIndex].dates[newDateGroupIndex]\r\n newInvoiceIndex = previousDate.invoices.length - 1;\r\n } else if (accountIndex !== groupedData.length - 1) {\r\n newAccountIndex = accountIndex + 1;\r\n const previousAccount = groupedData[newAccountIndex]\r\n newDateGroupIndex = previousAccount.dates.length - 1;\r\n const previousDate = previousAccount.dates[newDateGroupIndex]\r\n newInvoiceIndex = previousDate.invoices.length - 1;\r\n }\r\n if (newAccountIndex !== null && newDateGroupIndex !== null && newInvoiceIndex !== null) {\r\n const newInvoice = groupedData[newAccountIndex].dates[newDateGroupIndex].invoices[newInvoiceIndex];\r\n handleOpenModal(newInvoice, newAccountIndex, newDateGroupIndex, newInvoiceIndex)\r\n }\r\n }\r\n\r\n const getMonthLabel = () => {\r\n const strDate = stringFormatDate(props.invoicesDate, 2);\r\n if (!strDate || strDate.length === 0) return '';\r\n return strDate[0].toUpperCase() + strDate.slice(1, strDate.length)\r\n }\r\n\r\n return (\r\n
\r\n {tourInvoice}\r\n \r\n
\r\n {\r\n invoicesLoading ? (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n ) : (\r\n <>\r\n \r\n
\r\n

{props.language.invoices_title}

\r\n
\r\n
\r\n
\r\n \r\n {state => (\r\n
\r\n )}\r\n \r\n setOpenAccountDrawer(true)}\r\n >\r\n

\r\n {\r\n energyAccounts.length === activeAccounts.length ? props.language.invoices_empty_account_selection\r\n : `${activeAccounts.length} ${props.language.invoices_account_total_selection_separator} ${energyAccounts.length} ${props.language.invoices_account_total_selection}`\r\n }\r\n

\r\n
\r\n \r\n setOpenAccountDrawer(false)} />\r\n
\r\n
\r\n setShowCalendar(true)}\r\n >\r\n
\r\n {cleanDate ? props.language.invoices_empty_date_selection : getMonthLabel()}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n setOpenInvoiceStateModal(true)}\r\n >\r\n

\r\n {filterPendingInvoices ? props.language.invoices_pending_filter_option : props.language.invoices_empty_filter_selection}\r\n

\r\n
\r\n \r\n \r\n {state => (\r\n
\r\n {/*
*/}\r\n
\r\n
{track('Pending bills filter selected', {Bill_status_ID: 'Todas las facturas'}); handleFilterPendingInvoices(false)}}>\r\n

{ props.language.invoices_empty_filter_selection }

\r\n \r\n
\r\n
{track('Pending bills filter selected', {Bill_status_ID: 'Por pagar'}); handleFilterPendingInvoices(true)}}>\r\n

{ props.language.invoices_pending_filter_option }

\r\n
\r\n {invoicesSummary.total_bills}\r\n \r\n
\r\n
\r\n
\r\n
)}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {state => (\r\n
\r\n )}\r\n \r\n \r\n {\r\n loadingDownload ? (\r\n <>\r\n \r\n

\r\n {props.language.loader_text_content}\r\n

\r\n \r\n ) : (\r\n <>\r\n \r\n

\r\n {props.language.invoices_download_consolidate}\r\n

\r\n \r\n )\r\n }\r\n
\r\n {\r\n setIsExpanded(true)\r\n }}\r\n >\r\n \r\n {\r\n isExpanded && (\r\n
\r\n { track('Billing searchbar clicked'); setSearchInvoices(e.target.value)}} placeholder=\"Buscar\"\r\n />\r\n
\r\n )\r\n }\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n )\r\n }\r\n \r\n \r\n \r\n {invoiceShow || invoiceUrl ? (\r\n \r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n totalServices: state.services.totalServices,\r\n invoices: state.invoices.invoices,\r\n invoicesLoading: state.invoices.invoicesLoading,\r\n intervalGraph: state.energy.intervalGraph,\r\n invoicesDate: state.invoices.invoicesDate,\r\n moreInvoicesLoading: state.invoices.moreInvoicesLoading,\r\n activeServicesInvoices: state.services.activeServicesInvoices,\r\n activeServicesEnergy: state.services.activeServicesEnergy,\r\n showCalendar: state.shared.showCalendar,\r\n language: state.shared.language,\r\n showBlackScreen: state.shared.showBlackScreen,\r\n account: state.accounts.account,\r\n totalAccounts: state.accounts.totalAccounts,\r\n invoicesContentLoading: state.invoices.invoicesContentLoading,\r\n invoiceShow: state.invoices.invoiceDetails,\r\n invoicesToPay: state.invoices.invoicesToPay,\r\n invoicesSummary: state.invoices.invoicesSummary,\r\n payment: state.shared.startOnboarding.payment,\r\n invoiceOnboarding: state.shared.startOnboarding.invoice,\r\n billsStatus: state.invoices.billsStatus,\r\n invoicesPeriods: state.invoices.invoicesPeriods,\r\n currentPage: state.invoices.currentPage,\r\n sortField: state.invoices.sortField,\r\n sortOrder: state.invoices.sortOrder,\r\n user: state.users.user,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setShowBlackScreen: (payload) =>\r\n dispatch(sharedActions.setShowBlackScreen(payload)),\r\n setInvoicesDate: (payload) =>\r\n dispatch(invoicesActions.setInvoicesDate(payload)),\r\n setInvoicesLoading: (payload) =>\r\n dispatch(invoicesActions.setInvoicesLoading(payload)),\r\n loadInvoicesAsync: (payload) =>\r\n dispatch(invoicesActions.loadInvoicesAsync(payload)),\r\n loadInvoicesSummaryAsync: (payload) =>\r\n dispatch(invoicesActions.loadInvoicesSummaryAsync(payload)),\r\n loadMoreInvoicesAsync: (payload) =>\r\n dispatch(invoicesActions.loadMoreInvoicesAsync(payload)),\r\n setActiveServicesInvoices: (payload) =>\r\n dispatch(servicesActions.setActiveServicesInvoices(payload)),\r\n setInvoicesToPay: (payload) =>\r\n dispatch(invoicesActions.setInvoicesToPay(payload)),\r\n setShowCalendar: (payload) =>\r\n dispatch(sharedActions.setShowCalendar(payload)),\r\n loadServicesAsync: (payload) =>\r\n dispatch(servicesActions.loadServicesAsync(payload)),\r\n downloadInvoiceAsync: (payload) =>\r\n dispatch(invoicesActions.downloadInvoiceAsync(payload)),\r\n setInvoiceShow: (payload) =>\r\n dispatch(invoicesActions.setShowInvoiceDetails(payload)),\r\n setInvoiceShowIndex: (payload) =>\r\n dispatch(invoicesActions.setShowInvoiceDetailsIndex(payload)),\r\n setInvoicesContent: (payload) =>\r\n dispatch(invoicesActions.setInvoicesContent(payload)),\r\n setInvoicesContentLoading: (payload) =>\r\n dispatch(invoicesActions.setInvoicesContentLoading(payload)),\r\n setStartOnboarding: (payload) =>\r\n dispatch(sharedActions.setStartOnboarding(payload)),\r\n loadInvoicesPeriodsAsync: () =>\r\n dispatch(invoicesActions.loadInvoicesPeriodsAsync()),\r\n setFilterStatus: (payload) =>\r\n dispatch(invoicesActions.setFilterStatus(payload)),\r\n setInvoices: (payload) =>\r\n dispatch(invoicesActions.setInvoices(payload)),\r\n setCurrentPage: (payload) =>\r\n dispatch(invoicesActions.setCurrentPage(payload)),\r\n setEmptyPaginationResult: (payload) =>\r\n dispatch(invoicesActions.setEmptyPaginationResult(payload)),\r\n setInvoicesSummary: (payload) =>\r\n dispatch(invoicesActions.setInvoicesSummary(payload))\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Invoices);\r\n","import React from 'react';\r\n\r\nimport ThemedImage from '../utils/ThemedImage';\r\n\r\nexport const stepsInvoice = (language) => {\r\n return ([\r\n {\r\n content:\r\n
\r\n \r\n
,\r\n title: language.onboarding_invoice_title_step1,\r\n description: language.onboarding_invoice_description_step1,\r\n placement: \"right\",\r\n target: \"#invoices_picker\",\r\n disableBeacon: true,\r\n steps: 4\r\n },\r\n {\r\n content:\r\n
\r\n \r\n
,\r\n title: language.onboarding_invoice_title_step2,\r\n description: language.onboarding_invoice_description_step2,\r\n placement: \"left-start\",\r\n target: \"#invoices_download\",\r\n disableBeacon: true,\r\n steps: 4\r\n }, \r\n {\r\n content:\r\n
\r\n \r\n
,\r\n title: language.onboarding_invoice_title_step4,\r\n description: language.onboarding_invoice_description_step4,\r\n placement: \"top-start\",\r\n target: \"#invoices_payment\",\r\n disableBeacon: true,\r\n steps: 4\r\n },\r\n {\r\n content:\r\n
\r\n \r\n
,\r\n title: language.onboarding_invoice_title_step3,\r\n description: language.onboarding_invoice_description_step3,\r\n placement: \"center\",\r\n target: \"#invoices_detail\",\r\n disableBeacon: true,\r\n steps: 4\r\n },\r\n ])\r\n};","import React from \"react\"\r\n\r\n// import ThemedImage from \"../utils/ThemedImage\"\r\n\r\nexport const stepsUser = (language) => {\r\n return ([\r\n {\r\n content: (\r\n
\r\n {/* */}\r\n
\r\n ),\r\n title: language.onboarding_user_title_step1,\r\n description: language.onboarding_user_description_step1,\r\n placement: \"right\",\r\n width: 340,\r\n height: 350,\r\n target: \"#user_modal\",\r\n disableBeacon: true,\r\n steps: 3\r\n },\r\n {\r\n content: (\r\n
\r\n {/* \"step */}\r\n
\r\n ),\r\n title: language.onboarding_user_title_step2,\r\n description: language.onboarding_user_description_step2,\r\n placement: \"right\",\r\n width: 340,\r\n height: 350,\r\n target: \"#user_form\",\r\n disableBeacon: true,\r\n steps: 3,\r\n },\r\n {\r\n content: (\r\n
\r\n {/* \"step */}\r\n
\r\n ),\r\n title: language.onboarding_user_title_step3,\r\n description: language.onboarding_user_description_step3,\r\n placement: \"right-end\",\r\n width: 340,\r\n target: \"#user_edit\",\r\n disableBeacon: true,\r\n steps: 3,\r\n },\r\n ])\r\n}\r\n","import React, { Fragment, useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nimport * as sharedActions from '../../store/actions/Shared';\r\nimport * as loginActions from '../../store/actions/Login';\r\nimport * as usersActions from '../../store/actions/Users';\r\nimport * as accountsActions from '../../store/actions/Accounts';\r\nimport * as alertsActions from '../../store/actions/Alerts';\r\nimport * as themeActions from \"../../store/actions/Theme\";\r\n\r\nimport { CircularProgressbarWithChildren } from 'react-circular-progressbar';\r\n\r\nimport { Animation, Drawer, Alert, Loader, Whisper, Tooltip } from 'rsuite';\r\n\r\nimport { SETFile } from '../../services/WebServices';\r\n\r\nimport Input from './utilities/Input';\r\nimport Select from './utilities/Select';\r\nimport MultipleSelect from './utilities/MultipleSelect';\r\nimport NewUser from '../users/NewUser';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport useTour from '../onboarding/hook/useTour';\r\nimport { stepsUser } from '../onboarding/steps/UserSteps';\r\n\r\nconst isValidateEmail = email => {\r\n return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email);\r\n}\r\n\r\nconst isValidUser = user => {\r\n\r\n if (user.name === null || user.name === \"\") {\r\n return false;\r\n }\r\n\r\n if (user.lastname === null || user.lastname === \"\") {\r\n return false;\r\n }\r\n\r\n if (!isValidateEmail(user.email)) {\r\n return false;\r\n }\r\n\r\n if (user.phone === null || user.phone === \"\") {\r\n return false;\r\n }\r\n\r\n if (user.address === null || user.address === \"\") {\r\n return false;\r\n }\r\n\r\n return true;\r\n\r\n}\r\n\r\nconst showError = (user, setFocus, setError, setShowMainInfo, language) => {\r\n\r\n if (user.name === null || user.name === \"\") {\r\n setFocus(1);\r\n setError(language.alert_user_popup_name);\r\n setShowMainInfo(true);\r\n return;\r\n }\r\n\r\n if (user.lastname === null || user.lastname === \"\") {\r\n setFocus(2);\r\n setError(language.alert_user_popup_lastname);\r\n setShowMainInfo(true);\r\n return;\r\n }\r\n\r\n if (!isValidateEmail(user.email)) {\r\n setFocus(3);\r\n setError(language.alert_user_popup_email);\r\n setShowMainInfo(true);\r\n return;\r\n }\r\n\r\n if (user.phone === null || user.phone === \"\") {\r\n setFocus(4);\r\n setError(language.alert_user_popup_phone);\r\n setShowMainInfo(true);\r\n return;\r\n }\r\n\r\n if (user.address === null || user.address === \"\") {\r\n setFocus(5);\r\n setError(language.alert_user_popup_address);\r\n setShowMainInfo(true);\r\n return;\r\n }\r\n\r\n return setFocus(0);\r\n\r\n}\r\n\r\nconst Account = (props) => {\r\n\r\n const location = useLocation();\r\n\r\n const setUserImage = (user, setIsLoading, e) => {\r\n\r\n const file = e.target.files[0];\r\n\r\n const data = new FormData();\r\n\r\n data.append(\"file\", file);\r\n data.append(\"id\", user.idUser.toString());\r\n data.append(\"folder\", \"profile-photos\");\r\n\r\n setIsLoading(true);\r\n\r\n SETFile(\"users/users/\", \"PUT\", data)\r\n .then(_result => {\r\n props.getUserImageAsync();\r\n })\r\n .catch(() => {\r\n Alert.error(props.language.alert_failed_change_image);\r\n })\r\n .finally(() => setIsLoading(false));\r\n\r\n }\r\n\r\n let languages = [\r\n {\r\n value: 1,\r\n label: props.language.user_select_option_language_es\r\n },\r\n {\r\n value: 2,\r\n label: props.language.user_select_option_language_en\r\n }\r\n ];\r\n\r\n\r\n let _user = props.user;\r\n let userJobs = props.userJobs;\r\n let language = props.language;\r\n let showCreateUserModal = props.showCreateUserModal;\r\n let showDrawerAlerts = props.showDrawerAlerts\r\n\r\n const setProfileProgress = props.setProfileProgress;\r\n const loadUserJobsAsync = props.loadUserJobsAsync;\r\n const getUserApiTokenAsync = props.getUserApiTokenAsync;\r\n\r\n const [user, setUserData] = useState(_user);\r\n const [userChanges, setUserChanges] = useState({});\r\n const [isEnable, setEnable] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const [personalData, setShowPersonalData] = useState(false);\r\n const [mainInfo, setShowMainInfo] = useState(false); // eslint-disable-line no-unused-vars\r\n const [tokenApi, setTokenApi] = useState(false);\r\n const [focus, setFocus] = useState(0);\r\n const [error, setError] = useState(\"\");\r\n\r\n const tourUser = useTour({ steps: stepsUser(props.language), localStorageKey: \"user-tutorial\", isOpenDrawer: showCreateUserModal, runTour: props.newUser, setRunTour: props.setStartOnboarding, key: 'new_user' });\r\n\r\n const { theme } = props;\r\n\r\n const getProgressStyle = () => {\r\n \r\n return {\r\n path: { stroke: theme === 'dark' ? '#9ecc14' : '#7da60c' },\r\n trail: { stroke: theme === 'dark' ? '#262626' : '#fafafa' }\r\n }\r\n }\r\n\r\n const history = useHistory();\r\n\r\n const goToUserTable = () => {\r\n history.push('../users');};\r\n\r\n useEffect(() => {\r\n setUserData({..._user, roleIds: _user.jobs?.map(j => j.idJob)});\r\n }, [_user]);\r\n\r\n useEffect(() => {\r\n if (!userJobs.length)\r\n loadUserJobsAsync();\r\n }, [userJobs, loadUserJobsAsync]);\r\n\r\n useEffect(() => {\r\n setEnable(isValidUser(user));\r\n setProfileProgress(Object.values(user).filter(x => x !== undefined && x !== null && x !== '').length / Object.keys(user).length);\r\n }, [setEnable, setProfileProgress, user]);\r\n\r\n useEffect(() => {\r\n if (focus !== 0) { showError(user, setFocus, setError, setShowMainInfo, language) }\r\n }, [user, language, focus]);\r\n\r\n useEffect(() => { getUserApiTokenAsync() }, [getUserApiTokenAsync]);\r\n\r\n return (\r\n \r\n {tourUser}\r\n props.setShowAccount(false)}>\r\n
\r\n
\r\n \r\n
\r\n {isLoading ?
: null}\r\n \r\n setUserImage(user, setIsLoading, e)}>\r\n
\r\n
\r\n
\r\n
\r\n
{user.name} {user.lastname}
\r\n
\r\n
\r\n
\r\n
setShowPersonalData(!personalData)}>\r\n
\r\n \r\n
{props.language.user_title_section_personal_data}
\r\n
\r\n \r\n
\r\n \r\n {/*
\r\n
\r\n
setShowMainInfo(!mainInfo)}>\r\n
{props.language.user_title_section_your_info}
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {\r\n setUserData({ ...user, name: target.value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, name: target.value }\r\n })\r\n }}\r\n error={focus === 1 ? error : \"\"}\r\n />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, lastname: target.value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, lastname: target.value }\r\n })\r\n }}\r\n error={focus === 2 ? error : \"\"}\r\n />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, email: target.value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, email: target.value }\r\n })\r\n }}\r\n error={focus === 3 ? error : \"\"}\r\n />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, phone: target.value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, phone: target.value }\r\n })\r\n }}\r\n error={focus === 4 ? error : \"\"}\r\n />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, phone2: target.value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, phone2: target.value }\r\n })\r\n }} />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, address: target.value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, address: target.value }\r\n })\r\n }}\r\n error={focus === 5 ? error : \"\"}\r\n />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, address2: target.value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, address2: target.value }\r\n })\r\n }} />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, roleIds: value });\r\n setUserChanges(prevState => {\r\n return { ...prevState, roleIds: value }\r\n });\r\n }}\r\n error={focus === 6 ? error : \"\"}\r\n value={user?.roleIds?.length ? `${user?.roleIds.length}` : props.language.user_select_label_job_area}\r\n />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, height: target.value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, height: target.value }\r\n })\r\n }} />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, weight: target.value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, weight: target.value }\r\n })\r\n }} />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, eps: target.value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, eps: target.value }\r\n })\r\n }} />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, insurance: value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, insurance: value }\r\n })\r\n }} />\r\n
\r\n
\r\n
\r\n
\r\n
setShowHomeInfo(!homeInfo)}>\r\n
{props.language.user_title_section_home}
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {\r\n setUserData({ ...user, houseArea: target.value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, houseArea: target.value }\r\n })\r\n }} />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, housePeople: value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, housePeople: value }\r\n })\r\n }} />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, floors: value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, floors: value }\r\n })\r\n }} />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, ownHome: value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, ownHome: value }\r\n })\r\n }} />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, solarSystem: value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, solarSystem: value }\r\n })\r\n }} />\r\n
\r\n
\r\n
\r\n
\r\n
setShowVehicleInfo(!vehicleInfo)}>\r\n
{props.language.user_title_section_vehicle}
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {\r\n setUserData({ ...user, ownVehicle: value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, ownVehicle: value }\r\n })\r\n }} />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, ev: value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, ev: value }\r\n })\r\n }} />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, armoredVehicle: value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, armoredVehicle: value }\r\n })\r\n }} />\r\n
\r\n
\r\n
\r\n
\r\n : null\r\n } */}\r\n \r\n {/* */}\r\n {/*
*/}\r\n {/*
*/} \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {\r\n setUserData({ ...user, name: target.value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, name: target.value }\r\n })\r\n }}\r\n error={focus === 1 ? error : \"\"}\r\n />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, lastname: target.value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, lastname: target.value }\r\n })\r\n }}\r\n error={focus === 2 ? error : \"\"}\r\n />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, email: target.value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, email: target.value }\r\n })\r\n }}\r\n error={focus === 3 ? error : \"\"}\r\n />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, phone: target.value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, phone: target.value }\r\n })\r\n }}\r\n error={focus === 4 ? error : \"\"}\r\n />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, address: target.value })\r\n setUserChanges(prevState => {\r\n return { ...prevState, address: target.value }\r\n })\r\n }}\r\n error={focus === 5 ? error : \"\"}\r\n />\r\n
\r\n
\r\n {\r\n setUserData({ ...user, roleIds: value });\r\n setUserChanges(prevState => {\r\n return { ...prevState, roleIds: value }\r\n });\r\n }}\r\n error={focus === 6 ? error : \"\"}\r\n value={user?.roleIds?.length ? `${user?.roleIds.length}` : props.language.user_select_label_job_area}\r\n />\r\n
\r\n
\r\n \r\n
\r\n {props.language.neugets_tooltip_copy_code}}>\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
props.setShowDrawerOnboarding(true)}>\r\n
\r\n \r\n
{props.language.onboarding_drawer_title}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
window.open(\"https://www.neu.com.co/privacy\", \"_blank\")}>\r\n
\r\n \r\n
{props.language.user_title_section_privacy_info}
\r\n
\r\n \r\n
\r\n
window.open(\"https://neu-public.s3.sa-east-1.amazonaws.com/documents/Contrato_de_Condiciones_Uniformes.pdf\", \"_blank\")}>\r\n
\r\n \r\n
{props.language.user_title_section_terms_conditions}
\r\n
\r\n \r\n
\r\n
\r\n
{\r\n props.logout();\r\n props.setStep(1);\r\n }}>\r\n
{props.language.user_button_logout}
\r\n
\r\n
\r\n \r\n
\r\n \r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n user: state.users.user,\r\n progress: state.users.profileProgress,\r\n savingInfoUser: state.users.savingInfoUser,\r\n totalAccounts: state.accounts.totalAccounts,\r\n account: state.accounts.account,\r\n userJobs: state.users.userJobs,\r\n language: state.shared.language,\r\n userTokenApi: state.users.userTokenApi,\r\n showCreateUserModal: state.users.showCreateUserModal,\r\n newUser: state.shared.startOnboarding.new_user,\r\n theme: state.theme.theme,\r\n showDrawerAlerts: state.alerts.showDrawerAlerts\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n logout: () => dispatch(sharedActions.logout()),\r\n setAccount: (payload) => dispatch(accountsActions.setAccount(payload)),\r\n setStep: (payload) => dispatch(loginActions.setStep(payload)),\r\n setProfileProgress: (payload) => dispatch(usersActions.setProfileProgress(payload)),\r\n setShowCreateUserModal: (payload) => dispatch(usersActions.setShowCreateUserModal(payload)),\r\n setUserAccessEdit: (payload) => dispatch(usersActions.setUserAccessEdit(payload)),\r\n setShowUsersListModal: (payload) => dispatch(usersActions.setShowUsersListModal(payload)),\r\n updateInfoUserAsync: (payload) => dispatch(usersActions.updateInfoUserAsync(payload)),\r\n loadUserJobsAsync: () => dispatch(usersActions.loadUserJobsAsync()),\r\n getUserImageAsync: () => dispatch(usersActions.getUserImageAsync()),\r\n generateUserApiTokenAsync: () => dispatch(usersActions.generateUserApiTokenAsync()),\r\n getUserApiTokenAsync: () => dispatch(usersActions.getUserApiTokenAsync()),\r\n setStartOnboarding: (payload) => dispatch(sharedActions.setStartOnboarding(payload)),\r\n setShowDrawerAlerts: (payload) => dispatch(alertsActions.setShowDrawerAlerts(payload)),\r\n setShowDrawerOnboarding: (payload) => dispatch(sharedActions.setShowDrawerOnboarding(payload)),\r\n setTheme: (theme) => dispatch(themeActions.setTheme(theme)),\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Account)\r\n\r\n\r\n","import * as creators from '../creators/Plus';\r\n\r\nimport { SETData, GETData } from '../../services/WebServices';\r\n\r\nimport { Alert } from 'rsuite';\r\n\r\nimport { getUnixTime } from 'date-fns';\r\n\r\nimport { Amplify, PubSub } from 'aws-amplify';\r\nimport { AWSIoTProvider } from '@aws-amplify/pubsub';\r\nimport moment from 'moment';\r\nimport _ from 'lodash';\r\n\r\nconst urlData = 'https://u897vnfmtl.execute-api.us-east-2.amazonaws.com/PDN';\r\nlet subscription;\r\n\r\nexport const setDataGraph = payload => {\r\n return {\r\n type: creators.SET_DATA_GRAPH,\r\n payload\r\n }\r\n}\r\n\r\nexport const setLoadingInitData = payload => {\r\n return {\r\n type: creators.SET_LOADING_INIT_DATA,\r\n payload\r\n }\r\n}\r\n\r\nexport const setEnableHistory = payload => {\r\n return {\r\n type: creators.SET_ENABLE_HISTORY,\r\n payload\r\n }\r\n}\r\n\r\nexport const setDataGraphStreaming = payload => {\r\n return {\r\n type: creators.SET_DATA_GRAPH_STREAMING,\r\n payload\r\n }\r\n}\r\n\r\nexport const setDevices = payload => {\r\n return {\r\n type: creators.SET_DEVICES,\r\n payload\r\n }\r\n}\r\n\r\nexport const resetData = () => {\r\n return {\r\n type: creators.RESET_DATA\r\n }\r\n}\r\n\r\nexport const setEnergyQuality = payload => {\r\n return {\r\n type: creators.SET_ENERGY_QUALITY,\r\n payload\r\n }\r\n}\r\n\r\nexport const setLoadingEnergyQuality = payload => {\r\n return {\r\n type: creators.SET_LOADING_ENERGY_QUALITY,\r\n payload\r\n }\r\n}\r\n\r\nexport const setAlwaysOn = payload => {\r\n return {\r\n type: creators.SET_ALWAYS_ON,\r\n payload\r\n }\r\n}\r\n\r\nexport const setLoadingAlwaysOn = payload => {\r\n return {\r\n type: creators.SET_LOADING_ALWAYS_ON,\r\n payload\r\n }\r\n}\r\n\r\nexport const setIndicators = payload => {\r\n return {\r\n type: creators.SET_PLUS_INDICATORS,\r\n payload\r\n }\r\n}\r\n\r\nexport const setLoadingIndicators = payload => {\r\n return {\r\n type: creators.SET_PLUS_LOADING_INDICATORS,\r\n payload\r\n }\r\n}\r\n\r\nexport const setComparatives = payload => {\r\n return {\r\n type: creators.SET_COMPARATIVES,\r\n payload\r\n }\r\n}\r\n\r\nexport const setLoadingComparatives = payload => {\r\n return {\r\n type: creators.SET_LOADING_COMPARATIVES,\r\n payload\r\n }\r\n}\r\n\r\nexport const setAppliances = payload => {\r\n return {\r\n type: creators.SET_APPLIANCES,\r\n payload\r\n }\r\n}\r\n\r\nexport const setTagRecords = payload => {\r\n return {\r\n type: creators.SET_TAG_RECORDS,\r\n payload\r\n }\r\n}\r\n\r\nexport const setLastConection = payload => {\r\n return {\r\n type: creators.SET_LAST_CONECTION,\r\n payload\r\n }\r\n}\r\n\r\nexport const setLastDay = payload => {\r\n return {\r\n type: creators.SET_LAST_DAY,\r\n payload\r\n }\r\n}\r\n\r\nexport const setLastPage = payload => {\r\n return {\r\n type: creators.SET_LAST_PAGE,\r\n payload\r\n }\r\n}\r\n\r\nexport const setOpenQualityEnergy = payload => {\r\n return {\r\n type: creators.SET_OPEN_QUALITY_ENERGY,\r\n payload\r\n }\r\n}\r\n\r\n\r\nexport const setDataGraphAlwaysOn = payload => {\r\n return {\r\n type: creators.SET_DATA_GRAPH_ALWAYS_ON,\r\n payload\r\n }\r\n}\r\n\r\nexport const setDataGraphHistoryInit = payload => {\r\n return {\r\n type: creators.SET_DATA_GRAPH_HISTORY_INIT,\r\n payload\r\n }\r\n}\r\n\r\nexport const setIntervalGraphAlwaysOn = payload => {\r\n return {\r\n type: creators.SET_INTERVAL_GRAPH_ALWAYS_ON,\r\n payload,\r\n };\r\n };\r\n \r\n export const setGraphDatesAlwaysOn = payload => {\r\n return {\r\n type: creators.SET_GRAPH_DATES_ALWAYS_ON,\r\n payload\r\n }\r\n }\r\n \r\n export const setGraphDatesScrollAlwaysOn = payload => {\r\n return {\r\n type: creators.SET_GRAPH_DATES_SCROLL_ALWAYS_ON,\r\n payload\r\n }\r\n }\r\n\r\nexport const setEnableScrollDataAlwaysOn = payload => {\r\n return {\r\n type: creators.SET_ENABLE_SCROLL_DATA_ALWAYS_ON,\r\n payload\r\n }\r\n}\r\n\r\nexport const setLoadingAlwaysOnModule = payload => {\r\n return {\r\n type: creators.SET_LOADING_ALWAYS_ON_MODULE,\r\n payload\r\n }\r\n}\r\n\r\nexport const setQualityIndicators = payload => {\r\n return {\r\n type: creators.SET_QUALITY_INDICATORS,\r\n payload\r\n }\r\n}\r\n\r\nexport const setLoadingQualityIndicators = payload => {\r\n return {\r\n type: creators.SET_LOADING_QUALITY_INDICATORS,\r\n payload\r\n }\r\n}\r\n\r\nexport const setAlwaysOnIndicators = payload => {\r\n return {\r\n type: creators.SET_ALWAYS_ON_INDICATORS,\r\n payload\r\n }\r\n}\r\n\r\nexport const setLoadingAlwaysOnIndicators = payload => {\r\n return {\r\n type: creators.SET_LOADING_ALWAYS_ON_INDICATORS,\r\n payload\r\n }\r\n}\r\n\r\nexport const getDataRedis = ({page, day, type}) => {\r\n return async (dispatch, getState) => {\r\n const idService = getState().services.activeServicesPlus[0]?.idService;\r\n const devices = getState().plus.devices;\r\n let deviceActive = devices.filter(value => value.id_service === idService);\r\n if (deviceActive.length) {\r\n await GETData(`?id=${deviceActive[0]?.id_device}`, \"GET\", \"https://wzryjrhkrcrivqalqyiieyvkui0fiuhk.lambda-url.us-east-1.on.aws\", true)\r\n .then((result) => {\r\n if (result.length){\r\n const payload = {\r\n page: page,\r\n data: result,\r\n init: true,\r\n day: day,\r\n type: type\r\n }\r\n dispatch(setDataGraph(payload));\r\n dispatch(setLoadingInitData(false));\r\n }\r\n })\r\n .catch(err => console.error(err));\r\n }\r\n }\r\n}\r\n\r\nexport const getDataAthenaRedis = ({page, day, type}) => {\r\n return async (dispatch, getState) => {\r\n const dataGraph = getState().plus.dataGraph;\r\n if (dataGraph.length) {\r\n const timestamp = moment.utc(dataGraph[0]?.time).format('YYYY-MM-DD HH:mm:ss')\r\n const isLessHour = _.last(dataGraph).time - dataGraph[0]?.time < 3600000;\r\n const idService = getState().services.activeServicesPlus[0]?.idService;\r\n const devices = getState().plus.devices;\r\n let deviceActive = devices.filter(value => value.id_service === idService);\r\n if (deviceActive.length) {\r\n await SETData('', 'POST', { id_device: deviceActive[0]?.id_device, request: \"getDataAthenaRedis\", timestamp: timestamp, isLessHour: isLessHour }, urlData, true)\r\n .then((response) => {\r\n if (response?.body?.length){\r\n const payload = {\r\n page: page,\r\n data: response?.body,\r\n init: false,\r\n day: day,\r\n type: type\r\n }\r\n const currentDevice = getState().plus.devices?.filter(value => value?.id_service === (getState().services.activeServicesPlus[0]?.idService));\r\n if(currentDevice[0]?.id_device === response?.idDevice){\r\n dispatch(setDataGraphHistoryInit(payload));\r\n }\r\n }\r\n setTimeout(() => dispatch(setEnableHistory(false)), 5000);\r\n dispatch(setLoadingInitData(false));\r\n })\r\n .catch(err => console.error(err));\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport const convertDataGraph = (data, page) => {\r\n return async (dispatch, getState) => {\r\n const factor = 3600000;\r\n const dataConverted = data.map(data => {\r\n const newData = {\r\n device_id: data?.device_id,\r\n time: new Date(data?.timestamp + \" GMT\")?.getTime(),\r\n active_power: data?.active_energy * factor,\r\n reactive_power: data?.reactive_energy * factor,\r\n active_power_1: data?.rms_voltage_1 * data?.rms_current_1 * data?.power_factor_1,\r\n active_power_2: data?.rms_voltage_2 * data?.rms_current_2 * data?.power_factor_2,\r\n active_power_3: data?.rms_voltage_3 * data?.rms_current_3 * data?.power_factor_3,\r\n rms_voltage_1: data?.rms_voltage_1,\r\n rms_voltage_2: data?.rms_voltage_2,\r\n rms_voltage_3: data?.rms_voltage_3,\r\n rms_current_1: data?.rms_current_1,\r\n rms_current_2: data?.rms_current_2,\r\n rms_current_3: data?.rms_current_3,\r\n date: data?.timestamp?.split(' ')[0],\r\n power_factor_1: data?.power_factor_1,\r\n power_factor_2: data?.power_factor_2,\r\n power_factor_3: data?.power_factor_3,\r\n };\r\n return newData;\r\n })\r\n const dataGraph = getState().plus.dataGraph;\r\n const payload = {\r\n page: page,\r\n data: dataConverted,\r\n init: true,\r\n day: 0\r\n }\r\n if (dataGraph.length){\r\n dispatch(setDataGraphStreaming(dataConverted));\r\n }\r\n else{\r\n const currentDevice = getState().plus.devices?.filter(value => value?.id_service === (getState().services.activeServicesPlus[0]?.idService));\r\n if(String(currentDevice[0]?.id_device) === data[0]?.device_id){\r\n dispatch(setDataGraph(payload));\r\n dispatch(setLoadingInitData(false));\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport const connectToIoTCore = (page, id_device) => {\r\n return async (dispatch) => {\r\n const awsmobile = {\r\n \"aws_project_region\": \"us-east-1\",\r\n \"aws_cognito_identity_pool_id\": \"us-east-1:164ea9a0-074a-432f-9688-8c684d218f54\",\r\n \"aws_cognito_region\": \"us-east-1\",\r\n \"aws_user_pools_id\": \"us-east-1_DEwtuTV5n\",\r\n \"aws_user_pools_web_client_id\": \"4vneg13c6bmvksbj3k7aj2kch\",\r\n \"oauth\": {},\r\n \"aws_cognito_username_attributes\": [],\r\n \"aws_cognito_social_providers\": [],\r\n \"aws_cognito_signup_attributes\": [\r\n \"EMAIL\"\r\n ],\r\n \"aws_cognito_mfa_configuration\": \"OFF\",\r\n \"aws_cognito_mfa_types\": [\r\n \"SMS\"\r\n ],\r\n \"aws_cognito_password_protection_settings\": {\r\n \"passwordPolicyMinLength\": 8,\r\n \"passwordPolicyCharacters\": []\r\n },\r\n \"aws_cognito_verification_mechanisms\": [\r\n \"EMAIL\"\r\n ]\r\n };\r\n Amplify.configure(awsmobile);\r\n Amplify.addPluggable(new AWSIoTProvider({\r\n aws_pubsub_region: process.env.REACT_APP_REGION,\r\n aws_pubsub_endpoint: `wss://${process.env.REACT_APP_MQTT_ID}.iot.${process.env.REACT_APP_REGION}.amazonaws.com/mqtt`,\r\n }));\r\n subscription = PubSub.subscribe(`plus/data/device_${id_device}`).subscribe({\r\n next: data => dispatch(convertDataGraph(data?.value, page)),\r\n error: error => console.error(error),\r\n close: () => {},\r\n });\r\n }\r\n}\r\n\r\nexport const disconnectFromIoTCore = () => {\r\n return async (_dispatch, _getState) => {\r\n if (subscription) {\r\n subscription.unsubscribe(); \r\n }\r\n }\r\n };\r\n\r\nexport const loadInitData = (page) => {\r\n return async (dispatch, getState) => {\r\n\r\n dispatch(setLoadingInitData(true));\r\n\r\n dispatch(disconnectFromIoTCore());\r\n\r\n const idService = getState().services.activeServicesPlus[0]?.idService;\r\n\r\n const devices = getState().plus.devices;\r\n\r\n let deviceActive = devices.filter(value => value.id_service === idService);\r\n \r\n if (deviceActive.length){\r\n deviceActive = deviceActive[0];\r\n if (deviceActive?.id_infrastructure !== 2) {\r\n await SETData('', 'POST', { page, id_device: deviceActive?.id_device, timezone: deviceActive?.timezone, request: \"getInitDataV2\" }, urlData, true)\r\n .then(response => {\r\n if (response?.body?.length){\r\n const payload = {\r\n page: page,\r\n data: response?.body,\r\n init: true,\r\n day: 0\r\n }\r\n const currentDevice = getState().plus.devices?.filter(value => value?.id_service === (getState().services.activeServicesPlus[0]?.idService));\r\n if(currentDevice[0]?.id_device === response?.idDevice){\r\n dispatch(setDataGraph(payload));\r\n }\r\n if(response?.nextShardId !== ''){\r\n dispatch(loadStreamingData(response?.nextShardId));\r\n }\r\n }\r\n else{\r\n dispatch(setLastConection(response?.lastConection));\r\n dispatch(setLastDay(response?.lastDay));\r\n dispatch(setLastPage(response?.lastPage));\r\n }\r\n dispatch(setLoadingInitData(false));\r\n })\r\n .catch(err => console.error(err))\r\n .finally(() => dispatch(loadHistoryData({page: page, day: 0, type: 0}, false, \"getHistoryDataInit\")));\r\n }\r\n else {\r\n await dispatch(getDataRedis({page: page, day: 0, type: 0}));\r\n await dispatch(connectToIoTCore(page, deviceActive?.id_device));\r\n await dispatch(getDataAthenaRedis({page: page, day: 0, type: 0}));\r\n //dispatch(loadHistoryData({page: page, day: 0, type: 0}, false, \"getHistoryDataInit\"));\r\n }\r\n }\r\n else{\r\n dispatch(setLoadingInitData(false));\r\n dispatch(setLastConection(null));\r\n dispatch(setLastDay(0));\r\n dispatch(setLastPage(1));\r\n }\r\n\r\n }\r\n}\r\n\r\n\r\nexport const loadHistoryData = ({ page, day, type }, loading = false, request = \"getHistoryData\") => {\r\n return async (dispatch, getState) => {\r\n\r\n if (loading) dispatch(setLoadingInitData(true));\r\n\r\n dispatch(setEnableHistory(true));\r\n\r\n const idService = getState().services.activeServicesPlus[0]?.idService;\r\n\r\n const devices = getState().plus.devices;\r\n\r\n let deviceActive = devices.filter(value => value?.id_service === idService);\r\n\r\n if (deviceActive.length){\r\n deviceActive = deviceActive[0];\r\n await SETData('', 'POST', { page, id_device: deviceActive?.id_device, timezone: deviceActive?.timezone, request: request, day: day }, urlData, true)\r\n .then(response => {\r\n if (response?.body?.length){\r\n const payload = {\r\n page: page,\r\n data: response?.body,\r\n init: false,\r\n day: day,\r\n type: type\r\n }\r\n const currentDevice = getState().plus.devices?.filter(value => value?.id_service === (getState().services.activeServicesPlus[0]?.idService));\r\n if(currentDevice[0]?.id_device === response?.idDevice){\r\n if (request === \"getHistoryDataInit\"){\r\n dispatch(setDataGraphHistoryInit(payload));\r\n }\r\n else{\r\n dispatch(setDataGraph(payload));\r\n }\r\n }\r\n }\r\n setTimeout(() => dispatch(setEnableHistory(false)), 5000);\r\n dispatch(setLoadingInitData(false));\r\n })\r\n .catch(err => console.error(err))\r\n }\r\n else{\r\n dispatch(setEnableHistory(false));\r\n dispatch(setLoadingInitData(false));\r\n }\r\n\r\n }\r\n}\r\n\r\n\r\nexport const loadStreamingData = (shardId) => {\r\n return async (dispatch, getState) => {\r\n\r\n let nextShardId = shardId\r\n\r\n const idService = getState().services.activeServicesPlus[0]?.idService;\r\n\r\n const devices = getState().plus.devices;\r\n\r\n let deviceActive = devices.filter(value => value?.id_service === idService);\r\n\r\n if (shardId?.length > 0 && deviceActive?.length) {\r\n deviceActive = deviceActive[0];\r\n await SETData('', 'POST', { id_device: deviceActive?.id_device, request: \"getStreamingData\", shardId: shardId }, urlData, true)\r\n .then(response => {\r\n if (response?.body?.length) {\r\n const currentDevice = getState().plus.devices?.filter(value => value?.id_service === (getState().services.activeServicesPlus[0]?.idService));\r\n if(currentDevice[0]?.id_device === response?.idDevice){\r\n dispatch(setDataGraphStreaming(response?.body));\r\n }\r\n }\r\n nextShardId = response?.nextShardId?.length ? response?.nextShardId : nextShardId;\r\n })\r\n .catch(err => console.error(err));\r\n }\r\n setTimeout(() => dispatch(loadStreamingData(nextShardId)), 1500);\r\n }\r\n}\r\n\r\nexport const loadDevices = () => {\r\n \r\n const user = JSON.parse(localStorage.getItem('user'));\r\n\r\n return async (dispatch) => {\r\n await GETData(`plus/devices/${user.idUser}`, \"GET\")\r\n .then((result) => {\r\n if(result?.body?.length) {\r\n dispatch(setDevices(result.body));\r\n }\r\n })\r\n .catch(err => console.error(err));\r\n }\r\n}\r\n\r\nexport const loadEnergyQuality = () => {\r\n return async (dispatch, getState) => {\r\n\r\n const idService = getState().services.activeServicesPlus[0]?.idService;\r\n \r\n dispatch(setLoadingEnergyQuality(true));\r\n\r\n await GETData(`plus/quality/${idService}`, \"GET\")\r\n .then((result) => {\r\n if(result?.body.length){\r\n dispatch(setEnergyQuality(result?.body[0]));\r\n }\r\n else{\r\n dispatch(setEnergyQuality(null));\r\n }\r\n })\r\n .catch(err => console.error(err))\r\n .finally(() => dispatch(setLoadingEnergyQuality(false)));\r\n }\r\n}\r\n\r\n\r\nexport const loadAlwaysOn = () => {\r\n return async (dispatch, getState) => {\r\n\r\n const idService = getState().services.activeServicesPlus[0]?.idService;\r\n \r\n dispatch(setLoadingAlwaysOn(true));\r\n\r\n await GETData(`plus/alwaysOn/${idService}`, \"GET\")\r\n .then((result) => {\r\n if(result?.body?.length) {\r\n dispatch(setAlwaysOn(result?.body));\r\n }\r\n })\r\n .catch(err => console.error(err))\r\n .finally(() => dispatch(setLoadingAlwaysOn(false)));\r\n }\r\n}\r\n\r\n\r\nexport const loadIndicators = () => {\r\n return async (dispatch, getState) => {\r\n\r\n const idService = getState().services.activeServicesPlus[0]?.idService;\r\n \r\n dispatch(setLoadingIndicators(true));\r\n\r\n await GETData(`plus/indicators/${idService}`, \"GET\")\r\n .then((result) => {\r\n if(result?.body) {\r\n dispatch(setIndicators(result?.body));\r\n }\r\n else { \r\n dispatch(setIndicators([]));\r\n }\r\n })\r\n .catch(err => console.error(err))\r\n .finally(() => dispatch(setLoadingIndicators(false)));\r\n }\r\n}\r\n\r\n\r\nexport const loadComparatives = () => {\r\n return async (dispatch, getState) => {\r\n\r\n const user = JSON.parse(localStorage.getItem('user'));\r\n\r\n const services = getState().services.totalServices.filter(value => value?.type?.typeService === 2);\r\n \r\n dispatch(setLoadingComparatives(true));\r\n\r\n await GETData(`plus/comparatives/${user.idUser}`, \"GET\")\r\n .then((result) => {\r\n const allValues = result?.body;\r\n let comparatives = []\r\n if(result?.body.length){\r\n allValues.forEach(item => {\r\n const service = services.filter(value => value.idService === item.id_service);\r\n if (service.length) comparatives.push({...service[0], value: `${item.value} kWh`, state: 2});\r\n })\r\n dispatch(setComparatives(comparatives));\r\n }\r\n else{\r\n dispatch(setComparatives([]));\r\n }\r\n })\r\n .catch(err => console.error(err))\r\n .finally(() => dispatch(setLoadingComparatives(false)));\r\n }\r\n}\r\n\r\n\r\nexport const loadAppliances = () => {\r\n \r\n return async (dispatch, getState) => {\r\n\r\n const idService = getState().services.activeServicesPlus[0]?.idService;\r\n\r\n await GETData(`plus/tags/appliances/${idService}`, \"GET\")\r\n .then((result) => {\r\n dispatch(setAppliances(result.body));\r\n })\r\n .catch(err => console.error(err));\r\n }\r\n}\r\n\r\nexport const loadTagRecords = (payload) => {\r\n \r\n return async (dispatch, getState) => {\r\n\r\n await GETData(`plus/tags/records/${payload}`, \"GET\")\r\n .then((result) => {\r\n if(result?.body?.length){\r\n const resultModified = result.body.map(item => ({...item, id_tag: parseInt(item.id_tag)}))\r\n dispatch(setTagRecords(resultModified));\r\n }\r\n else{\r\n dispatch(setTagRecords([]));\r\n }\r\n })\r\n .catch(err => console.error(err));\r\n }\r\n}\r\n\r\nexport const addTags = (payload) => {\r\n \r\n return async (_dispatch, getState) => {\r\n\r\n const language = getState().shared.language; \r\n\r\n await SETData(`plus/tags`, \"POST\", payload)\r\n .then((result) => {\r\n if(result !== null){\r\n Alert.success(language.alert_create_new_tag_success)\r\n }else {\r\n Alert.error(language.alert_create_new_tag_failed)\r\n }\r\n })\r\n .catch(err => console.error(err));\r\n }\r\n}\r\n\r\nexport const addAppliance = (payload) => {\r\n \r\n return async (dispatch, getState) => {\r\n\r\n const language = getState().shared.language; \r\n\r\n await SETData(`plus/tags/create`, \"POST\", payload)\r\n .then((result) => {\r\n dispatch(loadAppliances());\r\n if(result !== null){\r\n Alert.success(language.alert_create_new_device_success, 3000)\r\n }else {\r\n Alert.error(language.alert_create_new_device_failed)\r\n }\r\n })\r\n .catch(err => console.error(err));\r\n }\r\n}\r\n\r\nexport const loadGraphAlwaysOnAsync = (loadByScroll = false, requestLeft = true) => {\r\n return async (dispatch, getState) => {\r\n \r\n if(!loadByScroll) dispatch(setLoadingAlwaysOnModule(true));\r\n \r\n dispatch(setEnableScrollDataAlwaysOn(false));\r\n\r\n let data = []\r\n \r\n let from = getUnixTime(loadByScroll ? getState().plus.graphDateFromScrollAlwaysOn : getState().plus.graphDateFromAlwaysOn);\r\n let to = getUnixTime(loadByScroll ? getState().plus.graphDateToScrollAlwaysOn : getState().plus.graphDateToAlwaysOn);\r\n const activeServicesPlus = getState().services.activeServicesPlus;\r\n switch (getState().plus.intervalGraphAlwaysOn) {\r\n case 1:\r\n if(loadByScroll) {\r\n if (requestLeft) {\r\n to = from;\r\n from -= 604800 * 1;\r\n }\r\n else{\r\n from = to;\r\n to += 604800 * 1;\r\n }\r\n }\r\n else{\r\n from -= 604800 * 1;\r\n }\r\n dispatch(setGraphDatesScrollAlwaysOn({graphDateFromAlwaysOn: new Date(from * 1000), graphDateToAlwaysOn: new Date(to * 1000)}));\r\n break;\r\n case 2:\r\n if(loadByScroll) {\r\n if (requestLeft) {\r\n to = from;\r\n from -= 2592000 * 1;\r\n }\r\n else{\r\n from = to;\r\n to += 2592000 * 1;\r\n }\r\n }\r\n else{\r\n from -= 2592000 * 1;\r\n }\r\n dispatch(setGraphDatesScrollAlwaysOn({graphDateFromAlwaysOn: new Date(from * 1000), graphDateToAlwaysOn: new Date(to * 1000)}));\r\n break;\r\n case 3:\r\n if(loadByScroll) {\r\n if (requestLeft) {\r\n to = from;\r\n from -= 31536000 * 1;\r\n }\r\n else{\r\n from = to;\r\n to += 31536000 * 1;\r\n }\r\n }\r\n else{\r\n from -= 31536000 * 1;\r\n }\r\n dispatch(setGraphDatesScrollAlwaysOn({graphDateFromAlwaysOn: new Date(from * 1000), graphDateToAlwaysOn: new Date(to * 1000)}));\r\n break;\r\n default:\r\n break;\r\n } \r\n if(activeServicesPlus.length){\r\n await SETData(`plus/alwaysOn/history/${from}/${to}/${activeServicesPlus[0]?.idService}/${getState().plus.intervalGraphAlwaysOn}`, 'GET')\r\n .then(energyResponse => {\r\n if (energyResponse?.body?.length) { \r\n energyResponse = energyResponse?.body;\r\n if (loadByScroll){\r\n const currentGraphData = getState().plus.dataGraphAlwaysOn;\r\n if(requestLeft){\r\n data = [...energyResponse, ...currentGraphData];\r\n }\r\n else{\r\n data = [...currentGraphData, ...energyResponse];\r\n }\r\n }\r\n else{ \r\n data = [...data, ...energyResponse]\r\n }\r\n dispatch(setEnableScrollDataAlwaysOn(true));\r\n }\r\n })\r\n .catch(response => console.error(response));\r\n dispatch(setDataGraphAlwaysOn(data));\r\n dispatch(setLoadingAlwaysOnModule(false));\r\n }\r\n } \r\n };\r\n\r\n\r\nexport const loadQualityIndicators = () => {\r\n return async (dispatch, getState) => {\r\n\r\n dispatch(setLoadingQualityIndicators(true));\r\n\r\n const idService = getState().services.activeServicesPlus[0]?.idService;\r\n\r\n const devices = getState().plus.devices;\r\n\r\n let deviceActive = devices.filter(value => value.id_service === idService);\r\n \r\n if (deviceActive.length){\r\n deviceActive = deviceActive[0]\r\n await SETData('', 'POST', { id_device: deviceActive?.id_device, timezone: deviceActive?.timezone, request: \"getQualityIndicators\" }, urlData, true)\r\n .then(response => {\r\n if (response?.body){\r\n dispatch(setQualityIndicators(response?.body));\r\n }\r\n else{\r\n dispatch(setQualityIndicators(null));\r\n }\r\n dispatch(setLoadingQualityIndicators(false));\r\n })\r\n .catch(err => console.error(err));\r\n }\r\n else{\r\n dispatch(setLoadingQualityIndicators(false));\r\n }\r\n\r\n }\r\n}\r\n\r\nexport const loadAlwaysOnIndicators = () => {\r\n return async (dispatch, getState) => {\r\n\r\n dispatch(setLoadingAlwaysOnIndicators(true));\r\n\r\n const activeServicesPlus = getState().services.activeServicesPlus;\r\n \r\n if (activeServicesPlus.length){\r\n \r\n await SETData(`plus/alwaysOn/indicators/${activeServicesPlus[0]?.idService}/es`, 'GET')\r\n .then(response => {\r\n if (response?.body){\r\n dispatch(setAlwaysOnIndicators(response?.body));\r\n }\r\n else{\r\n dispatch(setAlwaysOnIndicators([]));\r\n }\r\n dispatch(setLoadingAlwaysOnIndicators(false));\r\n })\r\n .catch(err => console.error(err));\r\n }\r\n else{\r\n dispatch(setLoadingAlwaysOnIndicators(false));\r\n }\r\n\r\n }\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as sharedActions from '../../../../store/actions/Shared';\r\n\r\nimport { Popover } from '@idui/react-popover';\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nconst GraphPicker = ({ active, setSelectedOption, setShowBlackScreen, language, phases, theme }) => {\r\n\r\n const data = phases === 3 ?\r\n [\r\n {\r\n id: 1,\r\n property: \"active_power\",\r\n title: language.plus_graph_picker_option_active_power,\r\n unit: \"W\"\r\n },\r\n {\r\n id: 2,\r\n property: \"reactive_power\",\r\n title: language.plus_graph_picker_option_reactive_power,\r\n unit: \"VAr\"\r\n },\r\n {\r\n id: 3,\r\n property: \"rms_voltage_1\",\r\n title: language.plus_graph_picker_option_rms_voltage_1,\r\n unit: \"V\"\r\n },\r\n {\r\n id: 4,\r\n property: \"rms_voltage_2\",\r\n title: language.plus_graph_picker_option_rms_voltage_2,\r\n unit: \"V\"\r\n },\r\n {\r\n id: 7,\r\n property: \"rms_voltage_3\",\r\n title: language.plus_graph_picker_option_rms_voltage_3,\r\n unit: \"V\"\r\n },\r\n {\r\n id: 5,\r\n property: \"rms_current_1\",\r\n title: language.plus_graph_picker_option_rms_current_1,\r\n unit: \"A\"\r\n },\r\n {\r\n id: 6,\r\n property: \"rms_current_2\",\r\n title: language.plus_graph_picker_option_rms_current_2,\r\n unit: \"A\"\r\n },\r\n {\r\n id: 8,\r\n property: \"rms_current_3\",\r\n title: language.plus_graph_picker_option_rms_current_3,\r\n unit: \"A\"\r\n },\r\n ] :\r\n [\r\n {\r\n id: 1,\r\n property: \"active_power\",\r\n title: language.plus_graph_picker_option_active_power,\r\n unit: \"W\"\r\n },\r\n {\r\n id: 2,\r\n property: \"reactive_power\",\r\n title: language.plus_graph_picker_option_reactive_power,\r\n unit: \"VAr\"\r\n },\r\n {\r\n id: 3,\r\n property: \"rms_voltage_1\",\r\n title: language.plus_graph_picker_option_rms_voltage_1,\r\n unit: \"V\"\r\n },\r\n {\r\n id: 4,\r\n property: \"rms_voltage_2\",\r\n title: language.plus_graph_picker_option_rms_voltage_2,\r\n unit: \"V\"\r\n },\r\n {\r\n id: 5,\r\n property: \"rms_current_1\",\r\n title: language.plus_graph_picker_option_rms_current_1,\r\n unit: \"A\"\r\n },\r\n {\r\n id: 6,\r\n property: \"rms_current_2\",\r\n title: language.plus_graph_picker_option_rms_current_2,\r\n unit: \"A\"\r\n },\r\n ];\r\n\r\n const [focus, setFocus] = useState(false);\r\n\r\n return (\r\n {\r\n setShowBlackScreen(state);\r\n setFocus(state);\r\n }}\r\n animation={{\r\n animate: { opacity: 1, scale: 1 },\r\n exit: { opacity: 0, scale: 0.9, transition: { duration: 0.1 } },\r\n initial: { opacity: 0, scale: 0.9 }\r\n }}\r\n content={\r\n
\r\n {data.map(option => (\r\n {\r\n setSelectedOption(option);\r\n track('Plus variable selected', {Plus_Variable_ID: option?.property})\r\n }}\r\n >\r\n
{option.title}
\r\n {option.id === active.id && }\r\n
\r\n ))}\r\n
\r\n }>\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n language: state.shared.language,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n setShowBlackScreen: (payload) => dispatch(sharedActions.setShowBlackScreen(payload))\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(GraphPicker);","import React, {useState, useEffect} from 'react';\r\nimport { connect } from 'react-redux';\r\nimport * as plusActions from \"../../../../store/actions/Plus\";\r\n\r\nimport { Modal } from 'rsuite';\r\nimport Input from '../../../shared/utilities/Input';\r\n\r\nconst showError = (appliance, setFocus, setError, language) => {\r\n\r\n if (appliance.custom_name === null || appliance.custom_name === \"\") { \r\n setFocus(1);\r\n setError(language.alert_new_device_name);\r\n return;\r\n }\r\n\r\n if (appliance.type === null || appliance.type === \"\") { \r\n setFocus(2);\r\n setError(language.alert_new_device_type);\r\n return;\r\n }\r\n\r\n return setFocus(0);\r\n}\r\n\r\nconst validate = (appliance) => {\r\n\r\n if (appliance.custom_name === null || appliance.custom_name === \"\") {\r\n return false;\r\n } \r\n \r\n if (appliance.type === null || appliance.type === \"\") {\r\n return false;\r\n }\r\n\r\n return true\r\n}\r\n\r\nconst CreateDevice = (props) => {\r\n\r\n const applianceInit = {\r\n id_service: null,\r\n custom_name: null,\r\n type: null,\r\n brand: null,\r\n reference: null\r\n }\r\n\r\n const {theme} = props;\r\n const [appliance, setAppliance] = useState(applianceInit);\r\n const [focus, setFocus] = useState(0); \r\n const [error, setError] = useState(\"\");\r\n\r\n let language = props.language;\r\n\r\n useEffect(() => {\r\n if(props.activeServicesPlus.length){\r\n setAppliance({...appliance, id_service: props.activeServicesPlus[0]?.idService});\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.activeServicesPlus])\r\n\r\n useEffect(() => {\r\n if(focus !== 0) {showError(appliance, setFocus, setError, language)} \r\n }, [appliance, language, focus]);\r\n\r\n return(\r\n props.setShow(false)}\r\n >\r\n
\r\n
{props.language.tag_new_device_main_title}
\r\n
\r\n
{props.language.tag_new_device_title_name}
\r\n
\r\n setAppliance({...appliance, custom_name: target.value})} error={focus === 1 ? error : \"\"}/>\r\n
\r\n
{props.language.tag_new_device_title_type}
\r\n
\r\n setAppliance({...appliance, type: target.value})} error={focus === 2 ? error : \"\"}/>\r\n
\r\n
{props.language.tag_new_device_title_brand}
\r\n
\r\n setAppliance({...appliance, brand: target.value})}/>\r\n
\r\n
{props.language.tag_new_device_title_reference}
\r\n
\r\n setAppliance({...appliance, reference: target.value})}/>\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n activeServicesPlus: state.services.activeServicesPlus,\r\n language: state.shared.language,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n addAppliance: (payload) => dispatch(plusActions.addAppliance(payload)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(CreateDevice);\r\n\r\n","import React, { Fragment, useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport * as plusActions from \"../../../../store/actions/Plus\";\r\nimport { Modal, Animation, Alert } from 'rsuite';\r\nimport CreateDevice from './CreateDevice';\r\nimport empty_modules_plus from \"../../../../imgs/box.svg\";\r\nimport { track } from \"@amplitude/analytics-browser\";\r\nimport InputRounded from '../../../shared/utilities/InputRounded';\r\n\r\nconst DataAppliances = ({ value, property, unit, theme }) => {\r\n return (\r\n
\r\n
{property}
\r\n
\r\n
{value}
\r\n
{unit}
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst Devices = ({ item, language, onChange, appliancesSelected, theme }) => {\r\n const [showInfoDevice, setShowInfoDevice] = useState(false);\r\n\r\n useEffect(() => {\r\n onChange(appliancesSelected);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [appliancesSelected]);\r\n\r\n return (\r\n \r\n
setShowInfoDevice(!showInfoDevice)}>\r\n
\r\n
\r\n \r\n
\r\n
{item.custom_name}
\r\n
\r\n \r\n
\r\n \r\n
\r\n {item.id_tag ?\r\n \r\n \r\n \r\n \r\n :\r\n
\r\n
{language.tag_new_tag_text_no_tag}
\r\n
\r\n }\r\n
\r\n {\r\n if (!appliancesSelected.includes(item.id_appliance)) {\r\n onChange([...appliancesSelected, item.id_appliance]);\r\n Alert.success(language.alert_create_new_tag_associated_tags);\r\n setShowInfoDevice(false);\r\n }\r\n }}\r\n className={`button-fill-brand gap-2 py-2 px-3 rounded-pill label-medium-medium button-content-equal pe-pointer ${theme}`}>{language.tag_new_tag_button_link_tag}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst CreateTag = ({ theme, language, appliances, activeServicesPlus, show, setShow, pointOne, pointTwo, loadAppliances, addTags }) => {\r\n const [showCreateDevice, setShowCreateDevice] = useState(false);\r\n const [devices, setDevices] = useState([]);\r\n const [search, setSearch] = useState('');\r\n const [appliancesSelected, setAppliancesSelected] = useState([]);\r\n\r\n useEffect(() => {\r\n setDevices([...appliances.filter(d => d?.custom_name?.toLowerCase().includes(search?.toLowerCase()))]);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [search]);\r\n\r\n useEffect(() => {\r\n if (activeServicesPlus.length) loadAppliances();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [activeServicesPlus]);\r\n\r\n useEffect(() => {\r\n setDevices(appliances);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [appliances]);\r\n\r\n return (\r\n \r\n { setAppliancesSelected([]); setShow(false); }}\r\n style={{ display: 'flex', alignItems: 'center', justifyContent: 'center' }}\r\n >\r\n
\r\n
\r\n
{ setAppliancesSelected([]); setShow(false); }}>{language.tag_new_tag_header_label_cancel}
\r\n
{language.tag_new_tag_header_label_tag}
\r\n
{\r\n addTags({ id_appliance: appliancesSelected, initial_timestamp: pointOne / 1000, final_timestamp: pointTwo ? pointTwo / 1000 : null });\r\n track('Plus graphic tag created');\r\n setAppliancesSelected([]);\r\n setShow(false);\r\n }}>\r\n {language.tag_new_tag_header_label_save}\r\n
\r\n
\r\n
\r\n setSearch(target.value)}\r\n value={search}\r\n icon={search}\r\n py={2}\r\n theme={theme}\r\n />\r\n
{language.tag_new_tag_title_devices_list}
\r\n {devices.length ? devices.map((item, index) =>\r\n setAppliancesSelected(value)} appliancesSelected={appliancesSelected} theme={theme} />\r\n ) \r\n :
\r\n \"empty_radar_data\"\r\n
\r\n {language.tag_new_tag_text_no_devices}\r\n
\r\n
{language.tag_new_tag_text_no_devices_description}
\r\n
}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n activeServicesPlus: state.services.activeServicesPlus,\r\n appliances: state.plus.appliances,\r\n language: state.shared.language,\r\n theme: state.theme.theme\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n loadAppliances: () => dispatch(plusActions.loadAppliances()),\r\n addTags: (payload) => dispatch(plusActions.addTags(payload)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(CreateTag);","import React, { useState, useEffect, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport * as plusActions from \"../../../../store/actions/Plus\";\r\nimport { GETS3PublicUrl, SETData } from \"../../../../services/WebServices\";\r\nimport { Modal } from 'rsuite';\r\nimport moment from \"moment\";\r\nimport { Loader } from \"rsuite\";\r\nimport { Calendar as Datepicker } from 'react-calendar';\r\nimport { Transition } from 'react-transition-group';\r\nimport Input from '../../../shared/utilities/Input';\r\nimport Select from '../../../shared/utilities/Select';\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nconst downloadBlob = async (url, name) => {\r\n try {\r\n const response = await fetch(url);\r\n if (!response.ok) {\r\n throw new Error(\"Error al obtener el archivo.\");\r\n }\r\n const blob = await response.blob();\r\n const objectUrl = URL.createObjectURL(blob);\r\n\r\n const anchor = document.createElement(\"a\");\r\n anchor.href = objectUrl;\r\n anchor.download = name;\r\n document.body.appendChild(anchor);\r\n anchor.dispatchEvent(\r\n new MouseEvent(\"click\", {\r\n bubbles: true,\r\n cancelable: true,\r\n view: window,\r\n }),\r\n );\r\n document.body.removeChild(anchor);\r\n URL.revokeObjectURL(objectUrl);\r\n } catch (error) {\r\n console.error(\"Error al descargar el archivo:\", error);\r\n }\r\n};\r\n\r\nconst handleDownloadCSV = async (path, name, type, setStepDownload) => {\r\n const url = await GETS3PublicUrl(path, \"neu-plus\", \"us-east-2\");\r\n await downloadBlob(url, name);\r\n setStepDownload(0);\r\n};\r\n\r\nconst exportFile = async (payload, setStepDownload) => {\r\n const endpoint = 'https://g5c5659uk1.execute-api.us-east-2.amazonaws.com/PDN/file';\r\n setStepDownload(1);\r\n await SETData('', 'POST', payload, endpoint, true)\r\n .then(async response => {\r\n if (response.statusCode === 200) {\r\n const path = response.body;\r\n const name = path.split(\"/\")[2];\r\n const type = name.split(\".\")[1];\r\n setStepDownload(2);\r\n await handleDownloadCSV(path, name, type, setStepDownload);\r\n }\r\n })\r\n .catch(response => {\r\n console.error(response);\r\n });\r\n};\r\n\r\nconst showError = (payloadExport, setFocus, setError, language) => {\r\n if (payloadExport.startTime === null) {\r\n setFocus(1);\r\n setError(language.alert_date_report_error);\r\n return;\r\n }\r\n\r\n if (payloadExport.nameFile === null || payloadExport.nameFile === \"\") {\r\n setFocus(2);\r\n setError(language.alert_filename_report_error);\r\n return;\r\n }\r\n\r\n if (payloadExport.request === null) {\r\n setFocus(3);\r\n setError(language.alert_format_filename_report_error);\r\n return;\r\n }\r\n\r\n return setFocus(0);\r\n};\r\n\r\nconst validate = (payloadExport) => {\r\n if (payloadExport.nameFile === null || payloadExport.nameFile === \"\") {\r\n return false;\r\n }\r\n\r\n if (payloadExport.request === null) {\r\n return false;\r\n }\r\n\r\n if (payloadExport.startTime === null) {\r\n return false;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst ExportGraph = (props) => {\r\n const { theme, language } = props;\r\n\r\n const formatTypes = [\r\n {\r\n value: 'CSV',\r\n label: 'CSV'\r\n },\r\n {\r\n value: 'HTML',\r\n label: 'HTML (Gráfica interactiva)'\r\n }\r\n ];\r\n\r\n const payloadToExportInit = {\r\n request: \"CSV\",\r\n nameFile: null,\r\n startTime: null,\r\n endTime: null,\r\n deviceId: null,\r\n projectName: \"\"\r\n };\r\n\r\n const [payloadToExport, setPayloadToExport] = useState(payloadToExportInit);\r\n const [stepDownload, setStepDownload] = useState(0);\r\n const [showCalendar, setShowCalendar] = useState(false);\r\n const [focus, setFocus] = useState(0);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n if (props.devices.length) {\r\n const idService = props.activeServicesPlus[0]?.idService;\r\n const deviceActive = props.devices.filter(value => value?.id_service === idService)[0];\r\n setPayloadToExport({ ...payloadToExport, deviceId: deviceActive?.id_device, projectName: props.activeServicesPlus[0]?.name });\r\n }\r\n // eslint-disable-next-line\r\n }, [props.devices, props.activeServicesPlus]);\r\n\r\n useEffect(() => {\r\n if (stepDownload === 0) {\r\n props.setShow(false);\r\n }\r\n // eslint-disable-next-line\r\n }, [stepDownload]);\r\n\r\n useEffect(() => {\r\n if (focus !== 0) { showError(payloadToExport, setFocus, setError, language); }\r\n }, [payloadToExport, language, focus]);\r\n\r\n return (\r\n props.setShow(false)}\r\n style={{ display: 'flex', alignItems: 'center', justifyContent: 'center' }}\r\n >\r\n \r\n
\r\n
\r\n
\r\n

{language.plus_export_graph_title}

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{language.plus_export_graph_date}
\r\n
setShowCalendar(!showCalendar)}>\r\n

{payloadToExport.startTime ? payloadToExport.startTime.split(\" \")[0] : \"Selecciona la fecha\"}

\r\n \r\n
\r\n {focus === 1 ?

{error}

: null}\r\n \r\n {state => (\r\n
\r\n }\r\n prevLabel={}\r\n onChange={value => {\r\n const date = moment(value).format(\"YYYY-MM-DD\");\r\n setPayloadToExport({ ...payloadToExport, startTime: `${date} 00:00:00`, endTime: `${date} 23:59:59` });\r\n setShowCalendar(false);\r\n }} />\r\n
\r\n )}\r\n \r\n
\r\n
\r\n setPayloadToExport({ ...payloadToExport, nameFile: target.value })}\r\n value={payloadToExport?.nameFile}\r\n error={focus === 2 ? error : \"\"}\r\n theme={theme}\r\n />\r\n
\r\n
\r\n setPayloadToExport({ ...payloadToExport, request: value })}\r\n width={353}\r\n theme={theme}\r\n type_label='label-small-regular'\r\n />\r\n
\r\n
\r\n {stepDownload === 1 ?\r\n
\r\n \r\n
{`El reporte ${payloadToExport.nameFile} se está creando.`}
\r\n
\r\n :\r\n stepDownload === 2 ?\r\n
\r\n \r\n
{`El reporte ${payloadToExport.nameFile} se está descargando.`}
\r\n
\r\n : null}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n activeServicesPlus: state.services.activeServicesPlus,\r\n devices: state.plus.devices,\r\n language: state.shared.language,\r\n theme: state.theme.theme\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n addAppliance: (payload) => dispatch(plusActions.addAppliance(payload)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ExportGraph);","import React, { Fragment, useEffect, useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport * as plus from \"../../../../store/actions/Plus\";\r\nimport * as energyActions from \"../../../../store/actions/Energy\";\r\nimport * as servicesActions from \"../../../../store/actions/Services\";\r\nimport * as accountsActions from \"../../../../store/actions/Accounts\";\r\n\r\nimport { gradients } from \"../../../shared/svgs/GraphStyles\";\r\n\r\nimport { VictoryChart, VictoryArea, VictoryAxis, createContainer, VictoryLabel, Rect } from \"victory\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport 'moment/locale/es'\r\n\r\nimport _ from 'lodash';\r\n\r\nimport { Transition } from 'react-transition-group';\r\n\r\nimport { Loader, Animation } from 'rsuite';\r\n\r\nimport { Link, useHistory } from 'react-router-dom';\r\n\r\nimport GraphPicker from \"./GraphPicker\";\r\nimport CreateTag from \"../tags/CreateTag\";\r\nimport empty_data_device from \"../../../../imgs/empty-data-device.svg\";\r\nimport empty_data_device_light from \"../../../../imgs/empty-data-device-light.svg\";\r\n\r\nimport ExportGraph from \"../export/ExportGraph\";\r\nimport ButtonCircle from \"../../../shared/utilities/ButtonCircle\";\r\n\r\nimport Draggable from 'react-draggable';\r\n\r\nmoment.locale('es');\r\n\r\nconst BouncingDotsLoader = (props) => {\r\n return (\r\n
\r\n {[0, 1, 2].map((_item, index) => (
))}\r\n
\r\n );\r\n};\r\n\r\n\r\nconst getInitPage = (timezone) => {\r\n const initPageByTime = new Date().toLocaleString(\"en-US\", { timeZone: timezone });\r\n return new Date(initPageByTime).getHours();\r\n}\r\n\r\n\r\nconst graphLoadingContainer = (loading, language, theme) =>
\r\n \r\n {state => (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n \r\n
;\r\n\r\nconst LoadingHistoryData = () =>\r\n
\r\n \r\n
;\r\n\r\nconst VictoryZoomContainer = createContainer('zoom', 'voronoi');\r\n\r\nconst areaStyle = theme => {\r\n return ({\r\n data: {\r\n fill: `url(#linearGreenTransparent25${theme !== 'dark' ? 'Light' : ''})`,\r\n stroke: `var(--brand-primary-${theme === 'dark' ? '500': '600'})`,\r\n strokeWidth: 2\r\n }\r\n })\r\n}\r\n\r\n\r\nconst Graph = (props) => {\r\n\r\n const history = useHistory();\r\n\r\n const { theme } = props;\r\n\r\n const formatNumber = number => {\r\n if (Math.abs(number) >= 500) {\r\n number = (number / 1000).toFixed(2);\r\n return (`${number} k`)\r\n }\r\n else {\r\n return (`${(number).toFixed(2)} `);\r\n }\r\n }\r\n\r\n const defaultOption = {\r\n id: 1,\r\n property: \"active_power\",\r\n title: props.language.plus_graph_picker_option_active_power,\r\n unit: \"W\"\r\n }\r\n\r\n const pointTagDragInit = { x: 0, y: 0, positionX: 0 };\r\n\r\n const [options, setOptions] = useState(defaultOption);\r\n\r\n const [day, setDay] = useState(0);\r\n\r\n const [data, setData] = useState([]);\r\n\r\n const [domain, setDomain] = useState(null);\r\n const [entireDomain, setEntireDomain] = useState(null);\r\n const [showStreaming, setShowStreaming] = useState(true);\r\n const [indicatorZoom, setIndicatorZoom] = useState(1);\r\n const [zoomMinutes, setZoomMinutes] = useState(10);\r\n const [showExportGraph, setShowExportGraph] = useState(false);\r\n const [grabbing, setGrabbing] = useState(false);\r\n const [grabbingTag, setGrabbingTag] = useState(false);\r\n const [pointTagDrag, setPointTagDrag] = useState(pointTagDragInit);\r\n const [enableTag, setEnableTag] = useState(false);\r\n const [pointOne, setPointOne] = useState(null);\r\n const [pointTwo, setPointTwo] = useState(null);\r\n const [active1, setActive1] = useState(true);\r\n const [active2, setActive2] = useState(false);\r\n const [showCreateTag, setShowCreateTag] = useState(false);\r\n const [pointTooltip, setPointTooltip] = useState(null);\r\n const [showTooltip, setShowTooltip] = useState(false);\r\n const [dataDomain, setDataDomain] = useState([]);\r\n const [enableLoaderGraph, setEnableLoaderGraph] = useState(false);\r\n\r\n\r\n let dataGraph = props.dataGraph;\r\n let paddingDomain = 1.1;\r\n let deviceActive = props.devices.filter(value => value?.id_service === props.activeServicesPlus[0]?.idService)[0];\r\n\r\n useEffect(() => {\r\n if (!showCreateTag) {\r\n setPointTagDrag(pointTagDragInit);\r\n }\r\n // eslint-disable-next-line\r\n }, [showCreateTag]);\r\n\r\n useEffect(() => {\r\n if (!props.devices.length) {\r\n props.loadDevices()\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.devices.length && props.activeServicesPlus.length && !props.loadingData) {\r\n setIndicatorZoom(1);\r\n setZoomMinutes(10);\r\n props.loadInitData(getInitPage(deviceActive?.timezone) + 1);\r\n setDomain(null);\r\n setShowStreaming(true);\r\n setEnableTag(false);\r\n setEnableLoaderGraph(false);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.devices, props.activeServicesPlus]);\r\n\r\n useEffect(() => {\r\n if (dataGraph?.length > 0) {\r\n const minValueY = _.minBy(dataGraph, d => d[options.property])[options.property];\r\n const maxValueY = _.maxBy(dataGraph, d => d[options.property])[options.property];\r\n const intervalY = [minValueY < 0 ? minValueY * paddingDomain : 0, maxValueY < 0 ? 0 : maxValueY * paddingDomain];\r\n const intervalX = [dataGraph[0].time, _.last(dataGraph).time];\r\n setEntireDomain({ x: intervalX, y: intervalY });\r\n if (!domain) {\r\n const filtered = dataGraph.slice(- zoomMinutes * 60);\r\n const minValueYDomain = _.minBy(filtered, d => d[options.property])[options.property];\r\n const maxValueYDomain = _.maxBy(filtered, d => d[options.property])[options.property];\r\n const intervalYDomain = [minValueYDomain < 0 ? minValueYDomain * paddingDomain : 0, maxValueYDomain < 0 ? 0 : maxValueYDomain * paddingDomain];\r\n setDomain({ x: [intervalX[1] - zoomMinutes * 60 * 1000 < intervalX[0] ? intervalX[0] : intervalX[1] - zoomMinutes * 60 * 1000, intervalX[1]], y: intervalYDomain });\r\n //setPointTagDrag({...pointTagDrag, x: intervalX[0], y: dataGraph[0][options.property]});\r\n }\r\n if (showStreaming && data.length) {\r\n const filtered = data.slice(- zoomMinutes * 60);\r\n const minValueYDomain = _.minBy(filtered, d => d[options.property])[options.property];\r\n const maxValueYDomain = _.maxBy(filtered, d => d[options.property])[options.property];\r\n const intervalYDomain = [minValueYDomain < 0 ? minValueYDomain * paddingDomain : 0, maxValueYDomain < 0 ? 0 : maxValueYDomain * paddingDomain];\r\n setDomain({ x: [intervalX[1] - zoomMinutes * 60 * 1000 < intervalX[0] ? intervalX[0] : intervalX[1] - (zoomMinutes) * 60 * 1000, intervalX[1]], y: intervalYDomain });\r\n }\r\n }\r\n else {\r\n setDomain(null);\r\n setShowStreaming(true);\r\n setData([]);\r\n setIndicatorZoom(1);\r\n setZoomMinutes(5);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [dataGraph, options, showStreaming, theme]);\r\n\r\n useEffect(() => {\r\n if (data?.length > 0) {\r\n const minValueY = _.minBy(data, d => d[options.property])[options.property];\r\n const maxValueY = _.maxBy(data, d => d[options.property])[options.property];\r\n const intervalY = [minValueY < 0 ? minValueY * paddingDomain : 0, maxValueY < 0 ? 0 : maxValueY * paddingDomain];\r\n setDomain({ ...domain, y: intervalY });\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [options])\r\n\r\n useEffect(() => {\r\n if (domain) {\r\n const widthDomain = props.graphContinerWidth - 108;\r\n const timeStampEstimated = parseInt(((pointTagDrag?.positionX * (domain?.x[1] - domain?.x[0]) / (widthDomain * 1000)) + (domain?.x[0] / 1000)).toFixed(0) * 1000);\r\n const itemSelected = data.filter(item => item?.time === timeStampEstimated);\r\n const valueY = itemSelected.length ? itemSelected[0][options.property] : pointTagDrag.y;\r\n setPointTagDrag({ ...pointTagDrag, x: timeStampEstimated, y: valueY });\r\n let filtered = dataGraph.filter(item => item.time >= domain?.x[0] - 120000 && item?.time <= domain?.x[1] + 120000);\r\n setDataDomain(dataGraph.filter(item => item.time >= domain?.x[0] && item?.time <= domain?.x[1]))\r\n if (filtered.length > 1200) {\r\n const k = Math.ceil(filtered.length / 1200);\r\n filtered = filtered.filter((_d, i) => ((i % k) === 0));\r\n }\r\n setData(filtered);\r\n const dataGraphNoInit = props.dataGraphPage.filter(item => !item?.init);\r\n const firstAvailablePage = dataGraphNoInit.length ? dataGraphNoInit[0]?.page : getInitPage(deviceActive?.timezone);\r\n const intervalLeft = (domain?.x[0] - entireDomain?.x[0]) / 60000;\r\n const verifyPageLeft = props.dataGraphPage.filter(item => item?.page === firstAvailablePage - 1);\r\n if (intervalLeft <= 60 && !props.enableHistory && !verifyPageLeft.length && (dataGraph.length >= 1800 || (!(dataGraph.length >= 1800) && deviceActive?.id_infrastructure !== 2))) {\r\n props.loadHistoryData(handleBeforeDay(firstAvailablePage - 1), false);\r\n }\r\n if (props.dataGraphPage.length >= 3) {\r\n const lastAvailablePage = _.last(dataGraphNoInit)?.page;\r\n const lastValueX = _.last(props.dataGraphPage[props.dataGraphPage.length - 2]?.data)?.time;\r\n const intervalRight = (lastValueX - domain?.x[1]) / 60000;\r\n const verifyPage = props.dataGraphPage.filter(item => item?.page === lastAvailablePage + 1);\r\n if (intervalRight <= 60 && !verifyPage.length && !props.enableHistory && lastAvailablePage + 1 !== _.last(props.dataGraphPage).page - 1) {\r\n props.loadHistoryData(handleAfterDay(lastAvailablePage + 1), false);\r\n }\r\n }\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [domain, props.activeServicesPlus]);\r\n\r\n const handleBeforeDay = page => {\r\n if (page > 0) return { page: page, day: day, type: 0 }\r\n else {\r\n setDay(day + 1);\r\n return { page: 24, day: day + 1, type: 0 };\r\n }\r\n }\r\n\r\n const handleAfterDay = page => {\r\n if (page < 25) return { page: page, day: day, type: 1 }\r\n else {\r\n setDay(day - 1);\r\n return { page: 1, day: day - 1, type: 1 };\r\n }\r\n }\r\n\r\n const handleZoomIn = (e) => {\r\n e.stopPropagation();\r\n const minutes = 5;\r\n const zoom = minutes * 60 * 1000;\r\n if (domain?.x[0] + zoom <= domain?.x[1] - zoom) {\r\n setDomain({ ...domain, x: [domain?.x[0] + zoom, domain?.x[1]] });\r\n setZoomMinutes(zoomMinutes - minutes);\r\n setIndicatorZoom(0);\r\n }\r\n else {\r\n setIndicatorZoom(1);\r\n }\r\n }\r\n\r\n const handleZoomOut = (e) => {\r\n e.stopPropagation();\r\n const minutes = 5;\r\n const zoom = -minutes * 60 * 1000;\r\n const zoomOutMax = 20 * 60 * 1000;\r\n if (domain?.x[1] - domain?.x[0] - zoom <= zoomOutMax) {\r\n setDomain({ ...domain, x: [domain?.x[0] + zoom, domain?.x[1]] });\r\n setZoomMinutes(zoomMinutes + minutes);\r\n setIndicatorZoom(0);\r\n }\r\n else {\r\n setIndicatorZoom(-1);\r\n }\r\n }\r\n\r\n\r\n const DotSliderLine = ({ positionX }) => {\r\n const positionAdjusted = ((props.graphContinerWidth - 60) / (props.graphContinerWidth - 108)) * positionX + 20\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const DotSliderArea = ({ x, scale, positionX }) => {\r\n x = x ? scale.x(pointOne) : 20;\r\n const positionAdjusted = ((props.graphContinerWidth - 60) / (props.graphContinerWidth - 108)) * positionX + 20;\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const Tooltip = ({ scale }) => {\r\n let x = pointTooltip ? scale.x(pointTooltip?.time) : 150;\r\n let y = pointTooltip ? scale.y(pointTooltip[options.property]) : 50;\r\n let y_value = pointTooltip ? pointTooltip._y : 0;\r\n let x_value = pointTooltip ? moment.utc(pointTooltip?.time).format('HH:mm:ss') : '00:00';\r\n\r\n return (\r\n \r\n {pointTooltip ?\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n {x_value}\r\n {`${formatNumber(y_value)}${options.unit}`}\r\n : null}\r\n \r\n );\r\n }\r\n\r\n const capitalizedText = (text) => {\r\n let label = \"\";\r\n var phrase = text.toLowerCase().split(' ');\r\n\r\n for (var i = 0; i < phrase.length; i++) {\r\n phrase[i] = phrase[i].charAt(0).toUpperCase() + phrase[i].substring(1);\r\n };\r\n\r\n label = phrase.join(' ');\r\n\r\n return label;\r\n };\r\n\r\n return (\r\n \r\n
\r\n {gradients(theme)}\r\n {props.activeServicesPlus.length ?\r\n
\r\n {!props.loadingData ?\r\n \r\n
\r\n {!data.length ?\r\n
\r\n
\r\n

{capitalizedText(moment.utc(domain?.x[1]).format('dddd, DD MMMM, YYYY'))}

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n setShowExportGraph(true)}\r\n theme={theme}\r\n />\r\n
\r\n
\r\n
:\r\n
\r\n
\r\n

{capitalizedText(moment.utc(domain?.x[1]).format('dddd, DD MMMM, YYYY'))}

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n setShowExportGraph(true)}\r\n theme={theme}\r\n />\r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n \r\n
e.stopPropagation()}>\r\n \r\n
{options.title}
\r\n
\r\n
\r\n
\r\n \r\n
{`${dataDomain.length ? formatNumber(_.last(dataDomain)[options.property]) : '---'}${options.unit}`}
\r\n
\r\n
\r\n {enableTag && !active2 && \r\n
{props.language.plus_graph_text_help_tag_step_1}
\r\n
}\r\n {active2 && enableTag && \r\n
{props.language.plus_graph_text_help_tag_step_2}
\r\n
}\r\n {!data.length ?\r\n
\r\n \"empty_data_device\"\r\n

{props.language.plus_graph_text_empty_data_device}

\r\n

{props.language.plus_graph_text_last_connection}{props.lastConection}

\r\n {/* {\r\n setDay(props.lastDay);\r\n //setPage(props.lastPage);\r\n await props.loadHistoryData({ page: props.lastPage, day: props.lastDay, type: 0 }, true);\r\n }}\r\n >\r\n {props.language.plus_graph_button_show_last_records_device}\r\n */}\r\n
:\r\n \r\n
setGrabbing(true)} onMouseUp={() => setGrabbing(false)} onMouseEnter={() => setShowTooltip(true)} onMouseLeave={() => setShowTooltip(false)}>\r\n
\r\n {\r\n const minValueY = _.minBy(data, d => d[options.property])[options.property];\r\n const maxValueY = _.maxBy(data, d => d[options.property])[options.property];\r\n const intervalY = [minValueY < 0 ? minValueY * paddingDomain : 0, maxValueY < 0 ? 0 : maxValueY * paddingDomain];\r\n setDomain({ x: domainZoom?.x, y: intervalY });\r\n if (domain?.x[1] === entireDomain?.x[1]) setShowStreaming(true);\r\n else setShowStreaming(false);\r\n setEnableLoaderGraph(true);\r\n }}\r\n activateData={false}\r\n onActivated={enableTag ? null : (point => setPointTooltip(point[0]))}\r\n />}>\r\n \r\n }>} \r\n style={{ \r\n axis: { stroke: \"transparent\" }, \r\n grid: {\r\n fill: theme === 'dark' ? \"var(--white)\" : \"var(--black)\", \r\n stroke: theme === 'dark' ? \"var(--white)\" : \"var(--black)\", \r\n pointerEvents: \"painted\",\r\n strokeWidth: 1,\r\n opacity: 0.2 },\r\n tickLabels: {fill: theme === 'dark' ? \"var(--white)\" : \"var(--black)\", fontFamily: 'Inter', fontSize: 10}}} />\r\n {enableTag ? : showTooltip ? : null}\r\n {enableTag && active2 ? : null}\r\n \r\n
\r\n {(props.enableHistory && domain?.x[0] === entireDomain?.x[0] && enableLoaderGraph) ? : null}\r\n
\r\n
\r\n {enableTag ?\r\n
\r\n setGrabbingTag(true)}\r\n onStop={() => setGrabbingTag(false)}\r\n onDrag={(e, point) => {\r\n const widthDomain = props.graphContinerWidth - 108;\r\n const timeStampEstimated = parseInt(((point?.x * (domain?.x[1] - domain?.x[0]) / (widthDomain * 1000)) + (domain?.x[0] / 1000)).toFixed(0) * 1000);\r\n const itemSelected = data.filter(item => item?.time === timeStampEstimated);\r\n const valueY = itemSelected.length ? itemSelected[0][options.property] : pointTagDrag.y;\r\n setPointTagDrag({ x: timeStampEstimated, y: valueY, positionX: point?.x });\r\n }}\r\n bounds={{ left: 0, right: props.graphContinerWidth - 108 }}>\r\n
\r\n \r\n
\r\n
\r\n {moment.utc(pointTagDrag?.x).format('HH:mm:ss')}\r\n
\r\n
\r\n {formatNumber(pointTagDrag?.y)}{options.unit}\r\n
\r\n
\r\n
\r\n \r\n
: null}\r\n
\r\n }\r\n
\r\n {domain?.x &&

{moment.utc(domain?.x[0]).format('HH:mm:ss')}

}\r\n {domain?.x &&

{moment.utc(domain?.x[1] - ((domain?.x[1] - domain?.x[0]) / 2)).format('HH:mm:ss')}

}\r\n {domain?.x &&

{moment.utc(domain?.x[1]).format('HH:mm:ss')}

}\r\n
\r\n {!showStreaming ?\r\n
\r\n
setShowStreaming(true)}>\r\n
{props.language.graphs_go_back_button}
\r\n \r\n
\r\n
: null}\r\n {!enableTag ?\r\n
\r\n {!data.length ? null :\r\n \r\n }\r\n \r\n \r\n \r\n
:\r\n active1 ?\r\n
\r\n \r\n \r\n \r\n
:\r\n
\r\n \r\n \r\n \r\n
\r\n }\r\n
\r\n \r\n
:\r\n
{graphLoadingContainer(props.loadingData, props.language, theme)}
\r\n }\r\n
:\r\n
\r\n
\r\n \"empty_data_device\"\r\n

{props.language.plus_graph_text_empty_data_device}

\r\n
\r\n
\r\n }\r\n
\r\n \r\n
\r\n );\r\n}\r\nconst mapStateToProps = (state, ownProps) => ({\r\n dataGraph: state.plus.dataGraph,\r\n loadingData: state.plus.loadingInitData,\r\n enableHistory: state.plus.enableHistory,\r\n dataGraphPage: state.plus.dataGraphPage,\r\n graphContinerWidth: ownProps.graphContinerWidth,\r\n devices: state.plus.devices,\r\n activeServicesPlus: state.services.activeServicesPlus,\r\n language: state.shared.language,\r\n lastConection: state.plus.lastConection,\r\n lastDay: state.plus.lastDay,\r\n lastPage: state.plus.lastPage,\r\n totalAccounts: state.accounts.totalAccounts,\r\n theme: state.theme.theme,\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n loadInitData: page => dispatch(plus.loadInitData(page)),\r\n loadHistoryData: (page, loading) => dispatch(plus.loadHistoryData(page, loading)),\r\n setEnableHistory: payload => dispatch(plus.setEnableHistory(payload)),\r\n loadDevices: () => dispatch(plus.loadDevices()),\r\n resetData: () => dispatch(plus.resetData()),\r\n setIntervalGraph: (payload) => dispatch(energyActions.setIntervalGraph(payload)),\r\n setActiveServicesEnergy: (payload) => dispatch(servicesActions.setActiveServicesEnergy(payload)),\r\n setAccount: (payload) => dispatch(accountsActions.setAccount(payload)),\r\n connectToIoTCore: () => dispatch(plus.connectToIoTCore()),\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Graph)\r\n","import React, {useRef} from \"react\";\r\nimport { connect } from 'react-redux';\r\n\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\nimport SwiperCore, { Autoplay, Navigation } from \"swiper\";\r\n\r\nimport { useWindowSize } from '../../../shared/utilities/useWindowSize';\r\n\r\nimport empty_widgets_slider from \"../../../../imgs/empty-widgets-slider.svg\";\r\nimport empty_widgets_slider_light from \"../../../../imgs/empty_widgets_slider_light.svg\";\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nSwiperCore.use([Autoplay, Navigation]);\r\n\r\n\r\nconst RenderWidgets = ({ item, theme }) => {\r\n \r\n const hasHovered = useRef(false);\r\n\r\n const handleHover = () => {\r\n if (!hasHovered.current) {\r\n hasHovered.current = true; \r\n track('Plus widget hover', {Plus_Widget_ID: item?.title});\r\n }\r\n };\r\n\r\n const handleLeave = () => {\r\n hasHovered.current = false;\r\n };\r\n\r\n return (\r\n \r\n

{item.title}

\r\n
\r\n {item.icon && }\r\n

{item.value}

\r\n
\r\n
\r\n {item.kpi && }\r\n

{item.text}

\r\n
\r\n
);\r\n};\r\n\r\n\r\nconst Cards = props => {\r\n\r\n const size = useWindowSize();\r\n const { theme } = props;\r\n\r\n const RenderWidgetsEmpty = () => {\r\n return (\r\n
\r\n \"empty_widget_energy\"\r\n
{props.language.energy_widgets_empty_data}
\r\n
\r\n )\r\n };\r\n\r\n return (\r\n
\r\n track('Plus widget clicked', { Widget_Back: 'activate' })}\r\n >\r\n \r\n
\r\n
\r\n
\r\n
\r\n {props.indicators.length ?\r\n = 1400 ? 3 : 2}\r\n navigation={{ nextEl: \"#next-slide\", prevEl: \"#prev-slide\" }}>\r\n {props.indicators.map((card, i) =>\r\n \r\n \r\n )}\r\n :\r\n = 1400 ? 3 : 2}\r\n navigation={{ nextEl: \"#next-slide\", prevEl: \"#prev-slide\" }}>\r\n {[0, 1, 2].map((i) =>\r\n \r\n \r\n )}\r\n \r\n }\r\n
\r\n track('Plus widget clicked', { Widget_Forward: 'activate' })}\r\n >\r\n \r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n indicators: state.plus.indicators,\r\n language: state.shared.language,\r\n theme: state.theme.theme,\r\n});\r\n\r\nexport default connect(mapStateToProps)(Cards);\r\n\r\n\r\n","import React, { Fragment, useEffect } from \"react\";\r\nimport { connect } from 'react-redux';\r\n\r\nimport { VictoryChart, VictoryArea, VictoryPolarAxis, VictoryLabel, Rect, VictoryBar } from \"victory\";\r\n\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nimport * as plusActions from \"../../../../store/actions/Plus\";\r\n\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\n\r\nimport empty_modules_plus from \"../../../../imgs/empty-modules-plus.svg\";\r\nimport empty_modules_plus_light from \"../../../../imgs/empty-modules-plus-light.svg\";\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\n// import Tooltip from \"../../../shared/utilities/Tooltip\";\r\n\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport _ from 'lodash';\r\n\r\nconst formatNumber = number => {\r\n if (Math.abs(number) >= 500) {\r\n number = (number / 1000).toFixed(2);\r\n return (`${number} k`)\r\n }\r\n else {\r\n return (`${(number).toFixed(2)} `);\r\n }\r\n}\r\n\r\nconst BiPhaseGraph = (props) => {\r\n\r\n const theme = props.theme;\r\n\r\n const radarStyle = {\r\n ticks: {\r\n stroke: \"transparent\"\r\n },\r\n tickLabels: {\r\n fill: theme === 'dark' ? \"var(--white)\" : \"var(--black)\",\r\n fontSize: 8,\r\n fontFamily: \"Inter\"\r\n },\r\n grid: {\r\n stroke: theme === 'dark' ? \"var(--white)\" : \"var(--black)\",\r\n strokeWidth: 1,\r\n strokeDasharray: \"none\",\r\n opacity: 0.2\r\n },\r\n axis: {\r\n stroke: \"transparent\"\r\n }\r\n };\r\n\r\n const axisStyle = {\r\n axis: {\r\n stroke: \"transparent\"\r\n },\r\n grid: {\r\n stroke: theme === 'dark' ? \"var(--white)\" : \"var(--black)\"\r\n },\r\n tickLabels: {\r\n fill: theme === 'dark' ? \"var(--white)\" : \"var(--black)\",\r\n fontSize: 8,\r\n fontFamily: \"Inter\",\r\n padding: 15\r\n },\r\n };\r\n\r\n return (\r\n \r\n \r\n `${formatNumber(t)}${props?.label?.unit}`}\r\n axisAngle={90}\r\n labelPlacement={\"vertical\"}\r\n axisLabelComponent={}\r\n tickLabelComponent={\r\n } \r\n backgroundPadding={3}>\r\n }\r\n style={radarStyle} />\r\n } />} \r\n style={axisStyle}\r\n />\r\n )\r\n};\r\n\r\nconst ThreePhaseGraph = props => {\r\n const theme = props.theme;\r\n const radarStyle = {\r\n ticks: {\r\n stroke: \"transparent\"\r\n },\r\n tickLabels: {\r\n fill: theme === 'dark' ? \"var(--white)\" : \"var(--black)\",\r\n fontSize: 5,\r\n fontFamily: \"Inter\"\r\n },\r\n grid: {\r\n stroke: theme === 'dark' ? \"var(--white)\" : \"var(--black)\",\r\n strokeWidth: 1,\r\n strokeDasharray: \"none\",\r\n opacity: 0.2\r\n },\r\n axis: {\r\n stroke: \"transparent\"\r\n }\r\n };\r\n\r\n const axisStyle = {\r\n axis: {\r\n stroke: \"transparent\"\r\n },\r\n grid: {\r\n stroke: theme === 'dark' ? \"var(--white)\" : \"var(--black)\"\r\n },\r\n tickLabels: {\r\n fill: theme === 'dark' ? \"var(--white)\" : \"var(--black)\",\r\n fontSize: 5,\r\n fontFamily: \"Inter\",\r\n padding: 15\r\n },\r\n };\r\n\r\n return (\r\n \r\n \r\n `${formatNumber(t)}${props?.label?.unit}`}\r\n labelPlacement={'vertical'}\r\n tickLabelComponent={\r\n } \r\n backgroundPadding={3}>\r\n }\r\n style={radarStyle} />\r\n } />} />\r\n \r\n )\r\n};\r\n\r\nconst IndicatorsLoading = props => {\r\n const {theme} = props;\r\n return (\r\n
\r\n \r\n \r\n \r\n
)\r\n};\r\n\r\nconst RenderCardEmpty = ({ language, theme }) => {\r\n return (\r\n
\r\n { theme === 'dark' ?\r\n \"empty_radar_data\" :\r\n \"empty_radar_data\" \r\n }\r\n
\r\n {language.plus_graph_title_empty_data}\r\n
\r\n
\r\n )\r\n};\r\n\r\nconst Radar = props => {\r\n\r\n let dataGraph = props.dataGraph;\r\n const { theme } = props;\r\n\r\n const states = [\r\n { type: 0, streaming: 'rms_voltage_', indicator: 'v', label: \"Voltaje\", gradient: `url(#radialGreen${theme !== 'dark' ? \"Light\" : \"\"}Gradient)`, stroke: \"var(--brand-primary-500)\", color: 'brand-primary-500', unit: \"V\", info: props.language.plus_radar_tooltip_info_voltage },\r\n { type: 1, streaming: 'rms_current_', indicator: 'c', label: \"Corriente\", gradient: `url(#radialPurple${theme !== 'dark' ? \"Light\" : \"\"}Gradient)`, stroke: `${theme !== 'dark' ? \"var(--purple-600)\" : \"var(--purple-500)\"}`, color: `${theme !== 'dark' ? \"purple-600\" : \"purple-500\"}`, unit: \"A\", info: props.language.plus_radar_tooltip_info_current },\r\n { type: 2, streaming: 'active_power_', indicator: 'p', label: \"Potencia\", gradient: `url(#radialBlue${theme !== 'dark' ? \"Light\" : \"\"}Gradient)`, stroke: `${theme !== 'dark' ? \"var(--blue-600)\" : \"var(--blue-500)\"}`, color: `${theme !== 'dark' ? \"blue-600\" : \"blue-500\"}`, unit: \"W\", info: props.language.plus_radar_tooltip_info_power }\r\n ];\r\n\r\n useEffect(() => {\r\n if (props.activeServicesPlus.length) props.loadEnergyQuality();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.activeServicesPlus]);\r\n\r\n let deviceActive = props.devices.filter(value => value?.id_service === props.activeServicesPlus[0]?.idService)[0];\r\n\r\n return (\r\n \r\n {!(props.loadingEnergyQuality) ? !props.energyQuality ?\r\n
\r\n

{props.language.plus_radar_title}

\r\n track('Quality widget clicked', {Widget_Back: 'activate'})}>\r\n {/* */}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n track('Quality widget clicked', {Widget_Forward: 'activate'})}>\r\n {/* */}\r\n \r\n :\r\n
\r\n
\r\n track('Quality widget clicked', {Widget_Back: 'activate'})}>\r\n {/* */}\r\n
\r\n
\r\n {\r\n !props.openQualityEnergy ?\r\n \r\n
track('Quality opened')} className=\"position-absolute right-0 zindex-2 row-center me-3\">\r\n \r\n
\r\n : null\r\n }\r\n \r\n {[states[props.indexVariable]].map((state, index) =>\r\n \r\n
\r\n
\r\n {/* */}\r\n

{state.label}

\r\n
\r\n
\r\n {deviceActive?.phases === 3 ?\r\n :\r\n \r\n }\r\n {/*
\r\n
\r\n {state?.label}\r\n
\r\n
*/}\r\n
)}\r\n \r\n
\r\n track('Quality widget clicked', {Widget_Forward: 'activate'})}>\r\n {/* */}\r\n
\r\n \r\n :\r\n
}\r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n activeServicesPlus: state.services.activeServicesPlus,\r\n devices: state.plus.devices,\r\n energyQuality: state.plus.energyQuality,\r\n loadingEnergyQuality: state.plus.loadingEnergyQuality,\r\n language: state.shared.language,\r\n openQualityEnergy: state.plus.openQualityEnergy,\r\n dataGraph: state.plus.dataGraph,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n loadEnergyQuality: () => dispatch(plusActions.loadEnergyQuality()),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Radar);\r\n\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as plusActions from \"../../../../store/actions/Plus\";\r\n\r\nimport { VictoryChart, VictoryLabel, VictoryAxis, VictoryBar } from \"victory\";\r\n\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nimport empty_modules_plus from \"../../../../imgs/empty-modules-plus.svg\";\r\n\r\nimport _ from 'lodash';\r\n\r\nimport Tooltip from \"../../../shared/utilities/Tooltip\";\r\n\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nconst loadingContainer =
\r\n \r\n \r\n \r\n
;\r\n\r\nconst axisStyle = {\r\n tickLabels: {\r\n fill: \"#FFF\",\r\n fontSize: 28,\r\n fontFamily: \"Inter\",\r\n fontWeight: 900\r\n },\r\n ticks: { size: 15 },\r\n axis: { stroke: \"transparent\" },\r\n}\r\n\r\nconst handlerFormatAxis = dow => {\r\n switch (dow) {\r\n case 1:\r\n return 'L';\r\n case 2:\r\n return 'M';\r\n case 3:\r\n return 'W';\r\n case 4:\r\n return 'J';\r\n case 5:\r\n return 'V';\r\n case 6:\r\n return 'S';\r\n case 7:\r\n return 'D';\r\n default:\r\n return '';\r\n }\r\n};\r\n\r\nconst RenderCardEmpty = ({ language }) => {\r\n return (\r\n
\r\n \"empty_radar_data\"\r\n
\r\n {language.plus_graph_title_empty_data}\r\n
\r\n
\r\n )\r\n};\r\n\r\nconst AlwaysOn = (props) => {\r\n\r\n const [avgData, setAvgData] = useState(0);\r\n\r\n useEffect(() => {\r\n if (props.activeServicesPlus.length) props.loadAlwaysOn()\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.activeServicesPlus]);\r\n\r\n useEffect(() => {\r\n if (props.alwaysOn.length) {\r\n const dataValues = props.alwaysOn.filter(x => x.value > 0);\r\n if (dataValues.length) {\r\n const avg = _.mean(dataValues.map(x => x.value));\r\n setAvgData(avg);\r\n }\r\n }\r\n }, [props.alwaysOn]);\r\n\r\n return (\r\n
\r\n {!props.loadingAlwaysOn ? !props.alwaysOn.length ?\r\n
\r\n

{props.language.plus_always_on_title}

\r\n
\r\n \r\n
\r\n
:\r\n
\r\n
\r\n
\r\n \r\n

{props.language.plus_always_on_title}

\r\n
\r\n \r\n track('Standby opened')}>\r\n \r\n
\r\n \r\n `${handlerFormatAxis(x)}`} style={axisStyle} />\r\n `${datum.value} Wh`}\r\n labelComponent={ (datum.value >= avgData ? \"#161617\" : \"#FFF\"), fontSize: 24, fontFamily: \"Inter\", fontWeight: 900 }} angle={270} />}\r\n cornerRadius={{ bottomLeft: 35, bottomRight: 35, topLeft: 35, topRight: 35 }}\r\n style={{ data: { fill: ({ datum }) => (datum.value >= avgData ? \"url(#linearRedOrangeGradient)\" : \"#323234\") } }} />\r\n \r\n
\r\n :\r\n
{loadingContainer}
}\r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n activeServicesPlus: state.services.activeServicesPlus,\r\n alwaysOn: state.plus.alwaysOn,\r\n loadingAlwaysOn: state.plus.loadingAlwaysOn,\r\n language: state.shared.language\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n loadAlwaysOn: () => dispatch(plusActions.loadAlwaysOn()),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AlwaysOn);\r\n\r\n\r\n","import React, { Fragment, useEffect } from 'react';\r\n\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as plusActions from \"../../../../store/actions/Plus\";\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { fal } from '@fortawesome/pro-light-svg-icons'\r\n\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nimport Tooltip from '../../../shared/utilities/Tooltip';\r\n\r\nconst loadingContainer =
\r\n \r\n \r\n \r\n
;\r\n\r\nconst Location = ({ name, consumption, image, state, style }) => {\r\n\r\n // const iconState = () => {\r\n // if (state === 0) return \r\n // if (state === 1) return \r\n // return \r\n // }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {image && project}\r\n \r\n
{name}
\r\n
\r\n
{consumption}
\r\n
\r\n
\r\n )\r\n};\r\n\r\nconst RenderCardEmpty = ({ language }) => {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
---
\r\n
\r\n
--- KWh
\r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n};\r\n\r\nconst Rank = (props) => {\r\n\r\n useEffect(() => {\r\n if (props.activeServicesPlus.length) props.loadComparatives()\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.activeServicesPlus]);\r\n\r\n return (\r\n \r\n {!props.loadingComparatives ? !props.comparatives.length ?\r\n
\r\n

{props.language.plus_rank_title}

\r\n \r\n
:\r\n
\r\n
\r\n \r\n

{props.language.plus_rank_title}

\r\n
\r\n
\r\n {props.comparatives.slice(0, 3).map((value, i) => (\r\n \r\n ))}\r\n
\r\n
:\r\n
{loadingContainer}
}\r\n
\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n activeServicesPlus: state.services.activeServicesPlus,\r\n comparatives: state.plus.comparatives,\r\n loadingComparatives: state.plus.loadingComparatives,\r\n language: state.shared.language\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n loadComparatives: () => dispatch(plusActions.loadComparatives()),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Rank);\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as servicesActions from '../../store/actions/Services';\r\nimport * as sharedActions from '../../store/actions/Shared';\r\n\r\nimport { Popover } from \"@idui/react-popover\";\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { fal } from '@fortawesome/pro-light-svg-icons';\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nconst Services = (props) => {\r\n\r\n const { theme } = props;\r\n\r\n //let account = props.account;\r\n let totalServices = props.totalServices;\r\n let servicesTypes = props.servicesTypes;\r\n let activeServices = props.activeServices;\r\n\r\n //const loadServicesAsync = props.loadServicesAsync;\r\n\r\n const [focus, setFocus] = useState(false);\r\n const [services, setServices] = useState(totalServices);\r\n const [search, setSearch] = useState('');\r\n const [typesSelected, setTypesSelected] = useState([...props.availableTypeServices]);\r\n const [selectedAllServices, setSelectedAllServices] = useState(false);\r\n const [show, setShow] = useState(false);\r\n const [servicesActive, setServicesActive] = useState([]);\r\n const [disabledServices, setDisabledServices] = useState([]);\r\n\r\n useEffect(() => {\r\n setServices([...totalServices.filter(s => typesSelected.includes(s.type.name) && s.name.toLowerCase().includes(search.toLowerCase()))]);\r\n }, [typesSelected, search, totalServices]);\r\n\r\n useEffect(() => {\r\n setSelectedAllServices(totalServices.length === activeServices.length);\r\n }, [activeServices, totalServices]);\r\n\r\n // useEffect(() => {\r\n // account && loadServicesAsync()\r\n // }, [account, loadServicesAsync]);\r\n\r\n useEffect(() => {\r\n setDisabledServices([...typesSelected.filter(s => !totalServices.map(x => x.type.name).includes(s))]);\r\n }, [typesSelected, totalServices]);\r\n\r\n useEffect(() => {\r\n setServicesActive([...totalServices.filter(s => typesSelected.includes(s.type.name)).map(v => v.type.name)]);\r\n }, [typesSelected, totalServices]);\r\n\r\n return (\r\n {\r\n setShow(state);\r\n props.setShowBlackScreen(state);\r\n setFocus(state); \r\n }}\r\n content={\r\n
\r\n
\r\n
\r\n setSearch(target.value)} />\r\n \r\n
\r\n {props.availableTypeServices.length > 1 &&\r\n
\r\n {\r\n servicesTypes.filter(s => props.availableTypeServices.includes(s.key)).map((item) => {\r\n\r\n const isSelected = servicesActive.includes(item.key);\r\n const isDisabled = disabledServices.includes(item.key);\r\n\r\n return (\r\n
{\r\n if (isSelected) {\r\n if (typesSelected.length > 1)\r\n setTypesSelected([...typesSelected.filter(t => t !== item.key)]);\r\n } else {\r\n !isDisabled && setTypesSelected([...typesSelected, item.key]); \r\n }\r\n }}>\r\n \r\n
{item.title}
\r\n
\r\n )\r\n }\r\n )}\r\n
\r\n }\r\n {props.allowAllServices ?\r\n
{ if (!selectedAllServices) { props.selectFunction(totalServices) } else { props.selectFunction([activeServices[0]]) } }}>\r\n
{props.language.services_select_all}
\r\n \r\n
: null\r\n }\r\n
\r\n
\r\n {services.map((item) => {\r\n\r\n const isSelected = props.activeServices.findIndex(i => i.idService === item.idService) >= 0;\r\n\r\n return (\r\n
{\r\n\r\n let services = props.activeServices;\r\n\r\n if (isSelected) {\r\n if (services.length > 1) {\r\n services = services.filter(i => i.idService !== item.idService);\r\n props.selectFunction([...services]);\r\n }\r\n }\r\n else {\r\n services = [...services, item];\r\n if (services.length < 4) props.selectFunction([...services]); \r\n track(props?.module === 'alwaysOn' ? 'Standby project selected' : 'Plus project selected', {Project_ID: services[services.length - 1]?.name})\r\n }\r\n setShow(false);\r\n props.setShowBlackScreen(false);\r\n setFocus(false);\r\n }}>\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{item.name}
\r\n
{item.address}
\r\n
\r\n {isSelected && }\r\n
\r\n
\r\n )\r\n })}\r\n
\r\n
\r\n }>\r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n account: state.accounts.account,\r\n servicesTypes: state.services.servicesTypes,\r\n totalServices: state.services.totalServices,\r\n selectFunction: ownProps.selectFunction,\r\n activeServices: ownProps.activeServices,\r\n allowAllServices: ownProps.allowAllServices,\r\n availableTypeServices: ownProps.availableTypeServices,\r\n language: state.shared.language,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n loadServicesAsync: (payload) => dispatch(servicesActions.loadServicesAsync(payload)),\r\n setShowBlackScreen: (payload) => dispatch(sharedActions.setShowBlackScreen(payload)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Services);","import React from \"react\";\r\nimport { connect } from 'react-redux';\r\n\r\nimport ContentLoader from \"react-content-loader\"\r\n\r\nimport * as servicesActions from '../../../../store/actions/Services';\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { fal } from '@fortawesome/pro-light-svg-icons';\r\n\r\nimport Services from \"../../../shared/Services\";\r\n\r\nimport _ from 'lodash';\r\n\r\nconst servicesLoading = (\r\n
\r\n \r\n \r\n \r\n
\r\n)\r\n\r\nconst ServicesPlus = (props) => {\r\n const { theme } = props;\r\n return (\r\n
\r\n
\r\n
\r\n

{props.language.energy_main_title_dashboard}

\r\n {props.activeServicesPlus.length ?\r\n
\r\n \r\n
{props.activeServicesPlus[0]?.name}
\r\n
:\r\n
{servicesLoading}
\r\n }\r\n
\r\n { props.setActiveServicesPlus([_.last(value)]); props.setActiveServicesEnergy([_.last(value)]) }} />\r\n
\r\n
\r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n activeServicesPlus: state.services.activeServicesPlus,\r\n language: state.shared.language,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n setActiveServicesPlus: (payload) => dispatch(servicesActions.setActiveServicesPlus(payload)),\r\n setActiveServicesEnergy: (payload) => dispatch(servicesActions.setActiveServicesEnergy(payload))\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ServicesPlus);","import React, { useEffect, useRef, useState, Fragment } from \"react\";\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as servicesActions from '../../store/actions/Services';\r\nimport * as plusActions from \"../../store/actions/Plus\";\r\n\r\nimport Graph from \"./dashboard/graphs/Graph\";\r\nimport Cards from \"./dashboard/cards/Cards\";\r\nimport Radar from \"./dashboard/modules/Radar\";\r\nimport AlwaysOn from \"./dashboard/modules/AlwaysOn\";\r\nimport Rank from \"./dashboard/modules/Rank\";\r\nimport ServicesPlus from \"./dashboard/shared/ServicesContainer\";\r\n\r\nimport { useWindowSize } from '../shared/utilities/useWindowSize';\r\n\r\nimport ContentLoader from \"react-content-loader\";\r\nimport Header from \"../shared/Header\";\r\n\r\nconst IndicatorsLoading = props => {\r\n const {theme} = props;\r\n return (\r\n
\r\n \r\n \r\n \r\n
)\r\n};\r\n\r\n\r\nconst Plus = props => {\r\n\r\n const {theme} = props;\r\n\r\n const size = useWindowSize();\r\n\r\n const graphContiner = useRef(null);\r\n\r\n const [graphContinerWidth, setGraphContinerWidth] = useState(0);\r\n\r\n const empty = props.activeServicesPlus.length === 0 || typeof (props.activeServicesPlus[0]) == 'undefined';\r\n\r\n let account = props.account;\r\n\r\n const setIndicators = props.setIndicators;\r\n const setEnergyQuality = props.setEnergyQuality;\r\n const setAlwaysOn = props.setAlwaysOn;\r\n const setComparatives = props.setComparatives;\r\n const setOpenQualityEnergy = props.setOpenQualityEnergy;\r\n\r\n useEffect(() => {\r\n if (!props.activeServicesPlus?.length) {\r\n props.loadServicesAsync();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.account]);\r\n\r\n useEffect(() => {\r\n if (!empty) setGraphContinerWidth(graphContiner.current.getBoundingClientRect().width)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [size, empty]);\r\n\r\n useEffect(() => {\r\n if (props.dataGraph.length) {\r\n props.resetData();\r\n }\r\n if (props.activeServicesPlus.length) {\r\n props.loadIndicators();\r\n } else {\r\n setIndicators([]);\r\n setEnergyQuality(null);\r\n setAlwaysOn([]);\r\n setComparatives([]);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.activeServicesPlus, account]);\r\n\r\n useEffect(() => {\r\n setOpenQualityEnergy(false);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const RenderEmptyService = () => {\r\n return (\r\n
\r\n

{props.language.plus_modal_title_empty_state}

\r\n

{props.language.plus_modal_description_empty_state}

\r\n

{props.language.plus_modal_phrase_empty_state}

\r\n
\r\n \r\n
\r\n
\r\n )\r\n };\r\n\r\n return (\r\n \r\n {props.activeServicesPlus.length ?\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {props.loadingIndicators ?\r\n
:\r\n }\r\n
\r\n \r\n
\r\n
\r\n
\r\n
:\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {props.loadingIndicators ?\r\n
:\r\n }\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n }\r\n
);\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n activeServicesPlus: state.services.activeServicesPlus,\r\n dataGraph: state.plus.dataGraph,\r\n loadingIndicators: state.plus.loadingIndicators,\r\n indicators: state.plus.indicators,\r\n account: state.accounts.account,\r\n comparatives: state.plus.comparatives,\r\n loadingComparatives: state.plus.loadingComparatives,\r\n energyQuality: state.plus.energyQuality,\r\n loadingEnergyQuality: state.plus.loadingEnergyQuality,\r\n alwaysOn: state.plus.alwaysOn,\r\n loadingAlwaysOn: state.plus.loadingAlwaysOn,\r\n language: state.shared.language,\r\n screenPaddingBottom: state.shared.screenPaddingBottom,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n setActiveServicesPlus: (payload) => dispatch(servicesActions.setActiveServicesPlus(payload)),\r\n setActiveServicesEnergy: (payload) => dispatch(servicesActions.setActiveServicesEnergy(payload)),\r\n resetData: () => dispatch(plusActions.resetData()),\r\n loadServicesAsync: () => dispatch(servicesActions.loadServicesAsync()),\r\n loadIndicators: () => dispatch(plusActions.loadIndicators()),\r\n setIndicators: (payload) => dispatch(plusActions.setIndicators(payload)),\r\n setEnergyQuality: (payload) => dispatch(plusActions.setEnergyQuality(payload)),\r\n setAlwaysOn: (payload) => dispatch(plusActions.setAlwaysOn(payload)),\r\n setComparatives: (payload) => dispatch(plusActions.setComparatives(payload)),\r\n setOpenQualityEnergy: (payload) => dispatch(plusActions.setOpenQualityEnergy(payload)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Plus);\r\n\r\n\r\n","import React, { useRef, useEffect } from 'react'\r\nimport { connect } from 'react-redux';\r\n\r\nimport Header from \"../shared/Header\";\r\nimport { track } from '@amplitude/analytics-browser';\r\n\r\nconst Efficiency = (props) => {\r\n\r\n let user = props.user;\r\n let account = props.account;\r\n let screenPaddingBottom = props.screenPaddingBottom;\r\n let theme = props.theme;\r\n\r\n const urlFrame = process.env.REACT_APP_EFFICIENCY_HOST;\r\n\r\n const frameEfficiency = useRef(null)\r\n\r\n useEffect(() => {\r\n\r\n if (account !== null) {\r\n\r\n frameEfficiency.current.addEventListener('load', () => {\r\n\r\n let window = frameEfficiency.current.contentWindow;\r\n\r\n let token = localStorage.getItem('token');\r\n\r\n setTimeout(() => {\r\n window.postMessage(JSON.stringify({\r\n user: user.idUser,\r\n email: user.email,\r\n account: account.idAccount,\r\n token_key: 'token',\r\n token_value: token,\r\n screenPaddingBottom,\r\n theme\r\n }), urlFrame)\r\n }, [100]);\r\n\r\n });\r\n track('Efficiency viewed')\r\n }\r\n // eslint-disable-next-line\r\n }, [user, account, urlFrame]);\r\n\r\n useEffect(() => {\r\n\r\n let window = frameEfficiency.current.contentWindow;\r\n\r\n window.postMessage(JSON.stringify({\r\n screenPaddingBottom\r\n }\r\n ), urlFrame);\r\n\r\n }, [screenPaddingBottom, urlFrame])\r\n\r\n useEffect(() => {\r\n\r\n let window = frameEfficiency.current.contentWindow;\r\n\r\n window.postMessage(JSON.stringify({\r\n theme\r\n }\r\n ), urlFrame);\r\n // eslint-disable-next-line\r\n }, [theme])\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n user: state.users.user,\r\n account: state.accounts.account,\r\n language: state.shared.language,\r\n screenPaddingBottom: state.shared.screenPaddingBottom,\r\n theme: state.theme.theme\r\n});\r\n\r\nexport default connect(mapStateToProps)(Efficiency)","import React, {useState, useEffect} from \"react\";\r\nimport { connect } from 'react-redux';\r\n\r\nimport { VictoryChart, VictoryBar, VictoryAxis, VictoryLabel, VictoryGroup, VictoryZoomContainer, Rect } from \"victory\";\r\n\r\nimport _ from 'lodash';\r\n\r\nimport empty_data_tag from \"../../../../imgs/empty-data-tag.svg\";\r\nimport empty_data_tag_light from \"../../../../imgs/empty-data-tag-light.svg\";\r\n\r\n\r\nconst axisStyle = theme => {\r\n return ({\r\n axis: {\r\n stroke: \"transparent\",\r\n strokeOpacity: 0.2,\r\n fontFamily: \"Inter\"\r\n }, \r\n ticks: {\r\n stroke: \"transparent\",\r\n size: 5\r\n },\r\n tickLabels: {\r\n fontSize: 12,\r\n padding: 5,\r\n fill: theme === 'dark' ? \"var(--white)\" : \"var(--black)\",\r\n }\r\n})}\r\n\r\n\r\nconst GraphPower = (props) => {\r\n \r\n const {theme} = props;\r\n const tag = props.data.length > 0 && props.data.filter(x => x.processed).length > 0; \r\n const [grabbing, setGrabbing] = useState(false); \r\n const [domain, setDomain] = useState(null);\r\n const [entireDomain, setEntireDomain] = useState(null);\r\n\r\n useEffect(() => {\r\n if(props.data.length){\r\n const maxValueY = _.maxBy(props.data, d => d?.active_power)?.active_power * 1.1;\r\n const intervalY = [0, maxValueY];\r\n const intervalX = [1, props.data.length + 1];\r\n setEntireDomain({x: intervalX, y: intervalY});\r\n setDomain({x: [props.data.length - 3 < 1 ? 0 : props.data.length - 3, props.data.length + 1], y: intervalY});\r\n }\r\n }, [props.data])\r\n\r\n return (\r\n
\r\n {!props.loadingData && (\r\n
\r\n { tag ? \r\n
\r\n
\r\n
\r\n
e.stopPropagation()}>\r\n \r\n
{props.language.tag_graph_power_legend_active_power}
\r\n
\r\n
e.stopPropagation()}>\r\n \r\n
{props.language.tag_graph_power_legend_reactive_power}
\r\n
\r\n
\r\n
setGrabbing(true)} onMouseUp={() => setGrabbing(false)}>\r\n 3}\r\n allowDrag={false}\r\n allowDraw={false}\r\n allowResize={false}\r\n allowZoom={false}\r\n zoomDimension={\"x\"}\r\n zoomDomain={domain} \r\n onZoomDomainChange={(domainZoom) => {\r\n if(props.data?.length > 3){\r\n setDomain({...domain, x: domainZoom.x});\r\n }\r\n }} \r\n />\r\n } \r\n >\r\n \r\n item?.id_tag >= domain?.x[0] && item?.id_tag <= domain?.x[1])}\r\n barRatio={1} \r\n barWidth={70} \r\n cornerRadius={{ topRight: 8, topLeft: 8 }} \r\n labels={({ datum }) => `${datum?.active_power?.toFixed(2)} W`}\r\n labelComponent={} \r\n />\r\n item?.id_tag >= domain?.x[0] && item?.id_tag <= domain?.x[1])}\r\n barRatio={1} \r\n barWidth={70} \r\n cornerRadius={{ topRight: 8, topLeft: 8 }} \r\n labels={({ datum }) => `${datum?.reactive_power?.toFixed(2)} VAr`}\r\n labelComponent={} \r\n />\r\n \r\n item?.id_tag >= domain?.x[0] && item?.id_tag <= domain?.x[1]).map(item => item?.id_tag)} \r\n style={axisStyle(theme)} tickFormat={(x) => `Tag 00${x}`} tickCount={props.data.length}\r\n tickLabelComponent={\r\n } \r\n backgroundPadding={8}>\r\n } />\r\n } \r\n backgroundPadding={8}>\r\n }/>\r\n \r\n
\r\n
\r\n
: \r\n
\r\n { theme === 'dark' ? \r\n \"empty_data_tag\" :\r\n \"empty_data_tag\"\r\n }\r\n
{props.language.tag_graph_power_title_empty_data}
\r\n
{props.language.tag_graph_power_phrase_empty_data}
\r\n
\r\n } \r\n
)}\r\n
\r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({ \r\n language: state.shared.language,\r\n theme: state.theme.theme,\r\n});\r\n\r\nexport default connect(mapStateToProps)(GraphPower);","import React, { Fragment, useEffect, useRef, useState } from \"react\";\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as servicesActions from '../../../../store/actions/Services';\r\nimport * as plusActions from '../../../../store/actions/Plus';\r\n\r\nimport Header from \"../../../shared/Header\";\r\nimport GraphPower from \"./GraphPower\";\r\nimport ServicesPlus from \"../shared/ServicesContainer\";\r\nimport CreateDevice from \"./CreateDevice\"\r\n\r\nimport { Animation } from 'rsuite';\r\n\r\nimport moment from \"moment\";\r\n\r\nimport { useWindowSize } from '../../../shared/utilities/useWindowSize';\r\n\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport empty_modules_plus from \"../../../../imgs/empty-data-device.svg\";\r\nimport empty_modules_plus_light from \"../../../../imgs/empty-data-device-light.svg\";\r\n\r\nconst DataAppliances = ({ value, property, unit, theme }) => {\r\n return (\r\n
\r\n
{property}
\r\n
\r\n
{value}
\r\n
{unit}
\r\n
\r\n
\r\n )\r\n}\r\n\r\n\r\nconst RenderCardEmpty = ({ language, theme }) => {\r\n return (\r\n
\r\n { theme === 'dark' ? \r\n \"empty_radar_data\" :\r\n \"empty_radar_data\"\r\n }\r\n
\r\n {language.tag_new_tag_text_no_devices}\r\n
\r\n
\r\n {language.tag_new_tag_text_no_devices_description}\r\n
\r\n
\r\n )\r\n};\r\n\r\n\r\nconst Devices = (props) => {\r\n\r\n const [showInfoDevice, setShowInfoDevice] = useState(false);\r\n\r\n const [applianceSelected, setApplianceSelected] = useState(false);\r\n\r\n const isSelected = props.deviceSelected === props.item?.id_appliance;\r\n\r\n const theme = props.theme;\r\n\r\n useEffect(() => {\r\n if (applianceSelected) {\r\n props.onChange(props.item?.id_appliance);\r\n setApplianceSelected(false)\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [applianceSelected]);\r\n\r\n return (\r\n \r\n
setApplianceSelected(true)}>\r\n
\r\n {/*
\r\n \r\n
*/}\r\n
{props.item.custom_name}
\r\n
\r\n setShowInfoDevice(!showInfoDevice)}>\r\n
\r\n \r\n
\r\n {props.item.id_tag ?\r\n \r\n \r\n \r\n \r\n :\r\n
\r\n
{props.language.tag_new_tag_text_no_tag}
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst TagManager = (props) => {\r\n\r\n const { theme } = props;\r\n\r\n const size = useWindowSize();\r\n\r\n const graphContiner = useRef(null);\r\n\r\n const [graphContinerWidth, setGraphContinerWidth] = useState(0);\r\n const [showCreateDevice, setShowCreateDevice] = useState(false);\r\n const [deviceSelected, setDeviceSelected] = useState(null);\r\n const [search, _setSearch] = useState(''); // eslint-disable-line no-unused-vars\r\n let account = props.account;\r\n\r\n useEffect(() => setGraphContinerWidth(graphContiner.current.getBoundingClientRect().width), [size]);\r\n\r\n useEffect(() => {\r\n if (!props.activeServicesPlus?.filter(item => item?.idAccount === props.account?.idAccount).length) {\r\n account && props.loadServicesAsync();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [account]);\r\n\r\n useEffect(() => {\r\n if (props.activeServicesPlus.length) props.loadAppliances();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps \r\n }, [props.activeServicesPlus]);\r\n\r\n useEffect(() => {\r\n if (props.appliances.length) {\r\n if (deviceSelected) props.loadTagRecords(deviceSelected);\r\n }\r\n else {\r\n props.setTagRecords([]);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.appliances, deviceSelected, props.activeServicesPlus]);\r\n\r\n useEffect(() => {\r\n if (props.appliances.length && !deviceSelected) setDeviceSelected(props.appliances[0]?.id_appliance);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.appliances])\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{props.language.tag_manager_title_devices}
\r\n {/*
\r\n setSearch(target.value)} />\r\n \r\n
*/}\r\n
\r\n {props.appliances.filter(item => item?.custom_name?.toLowerCase()?.includes(search.toLowerCase()) || search === '').length ? props.appliances.filter(item => item?.custom_name?.toLowerCase()?.includes(search.toLowerCase()) || search === '').map((item, index) =>\r\n setDeviceSelected(value)} language={props.language} theme={theme}/>\r\n ) : }\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {props.tagRecords.length ?\r\n \r\n
\r\n
\r\n {props.language.tag_manager_table_header_name}\r\n
\r\n
\r\n {props.language.tag_manager_table_header_create_at}\r\n
\r\n
\r\n {props.language.tag_manager_table_header_active_energy}\r\n
\r\n
\r\n {props.language.tag_manager_table_header_active_power}\r\n
\r\n
\r\n {props.language.tag_manager_table_header_reactive_energy}\r\n
\r\n
\r\n {props.language.tag_manager_table_header_reactive_power}\r\n
\r\n
\r\n {props.tagRecords.map((rowData, index) =>\r\n \r\n
\r\n
\r\n {`Tag 00${rowData?.id_tag}`}\r\n
\r\n
\r\n {moment(rowData.create_timestamp).format('DD/MM/YYYY ')} {moment(rowData.create_timestamp).format('HH:mm:ss')}\r\n
\r\n
\r\n {rowData.active_cons ? rowData.active_cons.toFixed(4) + \" Wh\" : rowData.processed ? props.language.tag_table_tag_label_processed : props.language.tag_table_tag_label_procesing}\r\n
\r\n
\r\n {rowData.active_power ? rowData.active_power.toFixed(2) + \" W\" : rowData.processed ? props.language.tag_table_tag_label_processed : props.language.tag_table_tag_label_procesing}\r\n
\r\n
\r\n {rowData.reactive_cons ? rowData.reactive_cons.toFixed(4) + \" VArh\" : rowData.processed ? props.language.tag_table_tag_label_processed : props.language.tag_table_tag_label_procesing}\r\n
\r\n
\r\n {rowData.reactive_power ? rowData.reactive_power.toFixed(2) + \" VAr\" : rowData.processed ? props.language.tag_table_tag_label_processed : props.language.tag_table_tag_label_procesing}\r\n
\r\n
\r\n
)\r\n }\r\n
:\r\n \r\n
\r\n
\r\n
{props.language.tag_manager_table_title_empty_data}
\r\n
{props.language.tag_manager_table_phrase_empty_data}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n activeServicesPlus: state.services.activeServicesPlus,\r\n account: state.accounts.account,\r\n dataGraph: state.plus.dataGraph,\r\n appliances: state.plus.appliances,\r\n tagRecords: state.plus.tagRecords,\r\n language: state.shared.language,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n setActiveServicesPlus: (payload) => dispatch(servicesActions.setActiveServicesPlus(payload)),\r\n setActiveServicesEnergy: (payload) => dispatch(servicesActions.setActiveServicesEnergy(payload)),\r\n resetData: () => dispatch(plusActions.resetData()),\r\n loadServicesAsync: () => dispatch(servicesActions.loadServicesAsync()),\r\n loadAppliances: () => dispatch(plusActions.loadAppliances()),\r\n loadTagRecords: (payload) => dispatch(plusActions.loadTagRecords(payload)),\r\n setTagRecords: (payload) => dispatch(plusActions.setTagRecords(payload)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(TagManager);","import * as genius from '../creators/Genius';\r\n\r\nimport { GETData, SETData, GETS3PublicUrl } from '../../services/WebServices';\r\n\r\nimport { Alert } from 'rsuite';\r\n\r\nimport amplitude from 'amplitude-js';\r\n\r\nconst url_api = \"https://fvichq1b59.execute-api.us-east-1.amazonaws.com/\";\r\nconst url_api_ppa = \"https://el5zcca33f.execute-api.us-east-1.amazonaws.com/\";\r\n\r\nexport const setReportGenius = payload => {\r\n return {\r\n type: genius.SET_REPORTS_GENIUS,\r\n payload\r\n }\r\n}\r\n\r\nexport const setGraphs = payload => {\r\n return {\r\n type: genius.SET_GRAPHS_REPORT_GENIUS,\r\n payload\r\n }\r\n}\r\n\r\nexport const setActiveReports = payload => {\r\n return {\r\n type: genius.SET_ACTIVE_REPORTS,\r\n payload\r\n }\r\n}\r\n\r\nexport const setReportLoading = payload => {\r\n return {\r\n type: genius.SET_REPORT_LOADING,\r\n payload\r\n }\r\n}\r\n\r\nexport const setNewReportLoading = payload => {\r\n return {\r\n type: genius.SET_NEW_REPORT_LOADING,\r\n payload\r\n }\r\n}\r\n\r\nexport const setReportGenerated = payload => {\r\n return {\r\n type: genius.SET_REPORT_GENERATED,\r\n payload\r\n }\r\n}\r\n\r\nexport const setNewReport = payload => {\r\n return {\r\n type: genius.SET_NEW_REPORT,\r\n payload\r\n }\r\n}\r\n\r\nexport const setShowContentHeader = payload => {\r\n return {\r\n type: genius.SET_SHOW_CONTENT_HEADER,\r\n payload\r\n }\r\n}\r\n\r\nexport const setServiceType = payload => {\r\n return {\r\n type: genius.SET_SERVICE_TYPE,\r\n payload\r\n }\r\n}\r\n\r\nexport const setGraphsType = payload => {\r\n return {\r\n type: genius.SET_GRAPHS_TYPE,\r\n payload\r\n }\r\n}\r\n\r\nexport const setTotalGraphs = payload => {\r\n return {\r\n type: genius.SET_TOTAL_GRAPHS_REPORT_GENIUS,\r\n payload\r\n }\r\n}\r\n\r\nexport const generateReportAsync = (payload) => {\r\n return (dispatch, getState) => {\r\n const language = getState().shared.language;\r\n const user = getState().users.user;\r\n const type = getState().genius.serviceType;\r\n\r\n const servicesIds = payload.deviceIds;\r\n\r\n const isPPA = payload.isPPA\r\n\r\n const account = getState().services.totalServices.find(s => s.idService === servicesIds[0])?.idAccount;\r\n\r\n const data = {\r\n source: \"app\",\r\n file_name: payload.name,\r\n start_date: payload.dateFrom,\r\n end_date: payload.dateTo,\r\n zoho_crm_id: null,\r\n zoho_crm_module: null,\r\n id_account: account,\r\n id_services: servicesIds,\r\n graphs: payload.graphIds,\r\n emails: [`${user.email}`]\r\n } \r\n\r\n dispatch(setNewReportLoading(true));\r\n\r\n Alert.info(language.alert_genius_create_report_initially, 10000);\r\n\r\n dispatch(setReportGenerated(true));\r\n\r\n if(!isPPA){\r\n SETData(`${type && type[0] === 4? 'genius/reports/generation' : 'genius/reports/energy'}`, \"POST\", data, url_api, true)\r\n .then(async () => {\r\n \r\n // let counter = 0\r\n \r\n // let interval = setInterval(\r\n // () => {\r\n \r\n // GETData(`genius/reports/${account}`, 'GET')\r\n // .then((response) => { \r\n // if (response !== null) {\r\n \r\n // let statusReport = response.body.filter(r => r.file_name.split('.')[0] === data.file_name )[0].status;\r\n \r\n // switch (statusReport) {\r\n // case 1:\r\n // dispatch(setReportGenerated(true));\r\n // amplitude.getInstance().logEvent('Generate New Report');\r\n // Alert.info(language.alert_genius_create_report_success);\r\n \r\n // clearInterval(interval)\r\n \r\n // break\r\n \r\n // case 2:\r\n // Alert.error(language.alert_genius_create_report_failed);\r\n \r\n // clearInterval(interval)\r\n \r\n // break\r\n \r\n // default:\r\n // break\r\n // }\r\n \r\n // }\r\n // })\r\n // .catch(response => console.error(response))\r\n \r\n // if (counter < 15) {\r\n // counter += 1;\r\n // } else {\r\n // clearInterval(interval);\r\n // Alert.info(language.alert_genius_create_report_pending, 8000)\r\n // }\r\n \r\n // },\r\n // 1000\r\n // );\r\n \r\n GETData(`genius/reports/user/${user.idUser}`, 'GET')\r\n .then((response) => {\r\n if (response !== null) {\r\n \r\n let statusReport = response.filter(r => r.file_name.split('.')[0] === data.file_name)[0].status;\r\n \r\n if( statusReport) {if(statusReport === 1) amplitude.getInstance().logEvent('Generate New Report')} \r\n \r\n }\r\n })\r\n .catch(response => console.error(response))\r\n \r\n })\r\n .catch(response => console.error(response))\r\n .finally(() => dispatch(setNewReportLoading(false)));\r\n\r\n } else {\r\n const data = {\r\n id_account: `${user.idUser}`,\r\n month: payload.bodyPPA.month,\r\n year: payload.bodyPPA.year,\r\n emails: [`${user.email}`]\r\n }\r\n\r\n SETData(\"genius/ppa\", \"POST\", data, url_api_ppa, true)\r\n .catch(response => console.error(response))\r\n .finally(() => dispatch(setNewReportLoading(false)));\r\n }\r\n\r\n }\r\n}\r\n\r\nexport const getGraphsReportAsync = () => {\r\n return (dispatch) => {\r\n\r\n GETData('genius/graphs', 'GET')\r\n .then((response) => {\r\n if (response !== null) { dispatch(setTotalGraphs(response)) }\r\n })\r\n .catch(response => console.error(response));\r\n }\r\n}\r\n\r\nexport const getReportsAsync = () => {\r\n return (dispatch, getState) => {\r\n\r\n const userId = getState().users.user.idUser;\r\n // const servicesUser = getState().services.totalServices;\r\n\r\n dispatch(setReportLoading(true));\r\n\r\n GETData(`genius/reports/user/${userId}`, 'GET')\r\n .then((response) => {\r\n \r\n if (response !== null) {\r\n \r\n let reports = [];\r\n // const serviceUserIds = new Set(servicesUser.map(service => service.idService))\r\n \r\n // if(accountId === 2280){\r\n // const filteredReports = response.body.filter(report => {\r\n // return report.status === 1 && report?.id_services.some(service => serviceUserIds.has(service.id_service));\r\n // });\r\n // reports = filteredReports;\r\n // }else{\r\n // reports = response.body.filter(report => {\r\n // return report.status === 1\r\n // })\r\n // };\r\n\r\n reports = response.filter(report => {\r\n return report.status === 1\r\n })\r\n\r\n const data = reports.map((x) => {\r\n const url = `${process.env.REACT_APP_GENIUS_REPORTS_DISTRIBUTION}${x.id_account}/${x.file_name}`\r\n const new_item = { ...x, url: url };\r\n return (new_item)\r\n });\r\n\r\n dispatch(setReportGenius(reports));\r\n dispatch(setActiveReports([data[0]]));\r\n\r\n }\r\n })\r\n .catch(response => console.error(response))\r\n .finally(() => dispatch(setReportLoading(false)));\r\n }\r\n}\r\n\r\nexport const downloadReportsAsync = (payload) => { \r\n return async () => {\r\n\r\n const url = await GETS3PublicUrl(payload.url, process.env.REACT_APP_BUCKET_GENIUS, process.env.REACT_APP_S3_REGION_GENIUS);\r\n\r\n fetch(url)\r\n .then(response => response.blob())\r\n .then(blob => {\r\n const link = document.createElement(\"a\");\r\n link.href = URL.createObjectURL(blob);\r\n link.download = payload.filename !== '' ? payload.filename : payload.url;\r\n link.click();\r\n })\r\n .catch(console.error);\r\n }\r\n}\r\n\r\nexport const deleteReportAsync = (payload) => {\r\n return (dispatch) => {\r\n\r\n SETData(`genius/report/${payload}`, 'PATCH')\r\n .then((response) => {\r\n if (response !== null) { \r\n Alert.success('El reporte se ha eliminado con éxito');\r\n dispatch(setShowContentHeader(false));\r\n dispatch(getReportsAsync());\r\n }else{\r\n Alert.error('Algo salió mal')\r\n }\r\n })\r\n .catch(response => console.error(response));\r\n }\r\n}\r\n\r\nexport const getGraphsByServiceAsync = (payload) => {\r\n return (dispatch) => {\r\n\r\n SETData('genius/graphs', 'POST', payload)\r\n .then((response) => { \r\n if (response !== null) { dispatch(setGraphs(response)) }\r\n })\r\n .catch(response => console.error(response));\r\n }\r\n}","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport * as geniusActions from \"../../store/actions/Genius\";\r\nimport * as themeActions from \"../../store/actions/Theme\";\r\n\r\nconst ActiveReports = (props) => {\r\n let activeReports = props.activeReports;\r\n let expanded = props.expanded;\r\n let reportDetailed = props.reportDetailed;\r\n let newReport = props.newReport;\r\n let language = props.language;\r\n let showActiveReports = props.showActiveReports;\r\n let selectedReport = props.selectedReport;\r\n const onChange = props.onChange;\r\n \r\n const setExpanded = props.setShowContentHeader;\r\n const setNewReport = props.setNewReport;\r\n const setReportDetailed = props.setReportDetailed;\r\n const setSelectedTypeOfReport = props.setSelectedTypeOfReport;\r\n const { theme } = props;\r\n\r\n return (\r\n
\r\n {props.totalReports.length && activeReports.length\r\n ? activeReports.slice(0, showActiveReports).map((item) =>{ \r\n\r\n const isSelected = item.id_report === selectedReport?.id_report;\r\n\r\n return(\r\n { \r\n onChange(item) \r\n }}\r\n >\r\n \r\n \r\n \r\n {item.file_name && item.file_name.split(\".\")[0]}\r\n
\r\n
{\r\n e.stopPropagation(); \r\n if (newReport) {\r\n return\r\n } else if (!expanded) {\r\n setExpanded(true);\r\n setReportDetailed(item); \r\n } else if (\r\n expanded &&\r\n reportDetailed?.id_report !== item.id_report\r\n ) {\r\n setReportDetailed(item); \r\n } else if (\r\n expanded &&\r\n reportDetailed?.id_report === item.id_report\r\n ) {\r\n setExpanded(false);\r\n } \r\n }}\r\n > \r\n \r\n
\r\n \r\n )})\r\n : !newReport && (\r\n
\r\n \r\n {language.genius_no_reports}\r\n

\r\n
\r\n )}\r\n {props.newReport && (\r\n \r\n \r\n {language.genius_new_report}\r\n \r\n {\r\n setNewReport(false);\r\n setExpanded(false);\r\n setSelectedTypeOfReport([]);\r\n }}\r\n >
\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n language: state.shared.language,\r\n activeReports: state.genius.activeReports,\r\n expanded: state.genius.expanded,\r\n totalReports: state.genius.totalReports,\r\n newReport: state.genius.newReport,\r\n reportDetailed: ownProps.reportDetailed,\r\n showActiveReports: ownProps.showActiveReports,\r\n setReportDetailed: ownProps.setReportDetailed, \r\n setSelectedTypeOfReport: ownProps.setSelectedTypeOfReport,\r\n theme: state.theme.theme,\r\n onChange: ownProps.onChange,\r\n selectedReport: ownProps.selectedReport\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setActiveReports: (payload) =>\r\n dispatch(geniusActions.setActiveReports(payload)),\r\n setNewReport: (payload) => dispatch(geniusActions.setNewReport(payload)),\r\n setShowContentHeader: (payload) =>\r\n dispatch(geniusActions.setShowContentHeader(payload)),\r\n setTheme: (theme) => dispatch(themeActions.setTheme(theme)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ActiveReports);\r\n","import React, { useState, Fragment } from \"react\";\r\n\r\nimport { Popover } from \"@idui/react-popover\";\r\n\r\nimport Tooltip from \"../shared/utilities/Tooltip\";\r\n\r\nimport { useWindowSize } from \"../shared/utilities/useWindowSize\";\r\n\r\nconst SubMenu = ({\r\n data,\r\n selectedData,\r\n newData,\r\n language,\r\n onChange,\r\n keyName,\r\n labelName,\r\n theme,\r\n}) => {\r\n const [show, setShow] = useState(false);\r\n const [activatedAllOptions, setActivatedAllOptions] = useState(false);\r\n\r\n function checkMultipleExist(arr, values) {\r\n const multipleExist = values.every((value) => {\r\n return arr.includes(value.id_graph);\r\n });\r\n\r\n return multipleExist;\r\n }\r\n\r\n function mergeObjectsWithoutDuplicateIds(selected, list) {\r\n const mergedIds = selected.concat(list.map((item) => item.id_graph));\r\n const uniqueIds = mergedIds.filter(\r\n (id, index) => mergedIds.indexOf(id) === index,\r\n );\r\n return uniqueIds;\r\n }\r\n\r\n const screenSize = useWindowSize();\r\n\r\n return (\r\n {\r\n setActivatedAllOptions(checkMultipleExist(selectedData, data));\r\n setShow(state);\r\n }}\r\n animation={{\r\n animate: { opacity: 1 },\r\n exit: { opacity: 0, transition: { duration: 0.1 } },\r\n initial: { opacity: 0 },\r\n }}\r\n content={\r\n \r\n
\r\n {data.length ? (\r\n
\r\n
\r\n {\r\n if (!activatedAllOptions || !selectedData.length) {\r\n onChange(\r\n mergeObjectsWithoutDuplicateIds(selectedData, data),\r\n );\r\n } else {\r\n onChange(\r\n selectedData.filter(\r\n (id) => !data.some((item) => item.id_graph === id),\r\n ),\r\n );\r\n }\r\n }}\r\n >\r\n {language.invoices_text_selec_all}\r\n

\r\n
\r\n {data.map((item) => {\r\n let isSelected = selectedData.includes(item[keyName]);\r\n let isNew = false;\r\n\r\n if (newData.length)\r\n isNew = newData.findIndex((i) => i === item[keyName]) >= 0;\r\n\r\n return (\r\n {\r\n if (isSelected) {\r\n onChange(\r\n selectedData.filter(\r\n (value) => value !== item[keyName],\r\n ),\r\n );\r\n } else {\r\n onChange([...selectedData, item[keyName]]);\r\n }\r\n }}\r\n >\r\n
\r\n \r\n {language\r\n ? language[item[labelName]]\r\n : item[labelName]}\r\n
\r\n {language[item.tooltip] !== \"\" ? (\r\n \r\n ) : null}\r\n {isNew ? (\r\n
\r\n

\r\n {language.genius_new_item}\r\n

\r\n
\r\n ) : null}\r\n
\r\n
\r\n
\r\n );\r\n })}\r\n \r\n ) : null}\r\n \r\n \r\n setShow(false)}\r\n >\r\n {language.genius_done_button}\r\n \r\n \r\n
\r\n }\r\n >\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SubMenu;\r\n","import React, { useState, useEffect, Fragment } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport * as sharedActions from \"../../store/actions/Shared\";\r\nimport * as geniusActions from \"../../store/actions/Genius\";\r\nimport * as themeActions from \"../../store/actions/Theme\";\r\n\r\nimport { Popover } from \"@idui/react-popover\";\r\n\r\nimport { format, parseISO } from \"date-fns\";\r\nimport esLocale from \"date-fns/locale/es\";\r\nimport enLocale from \"date-fns/locale/en-US\";\r\n\r\nimport ButtonCircle from \"../shared/utilities/ButtonCircle\";\r\nimport SubMenu from \"./SubMenu\";\r\n\r\nconst Picker = ({\r\n options,\r\n selectedData,\r\n keyName,\r\n labelName,\r\n labelDetail,\r\n labelButton,\r\n icon,\r\n onChange,\r\n buttonText,\r\n report = false,\r\n allowAllOptions = false,\r\n labelAllServices,\r\n allowSearch = false,\r\n showSelected = false,\r\n typeReport = false,\r\n newData = [],\r\n language,\r\n groups = [],\r\n filterName,\r\n placement = \"bottomRight\",\r\n closeOnRemoteClick = \"true\",\r\n height = 24,\r\n width = 24,\r\n outsideButtonEvent,\r\n insideButtonEvent,\r\n allOptionButtonEvent,\r\n externalShowEvent,\r\n setExternalShowEvent,\r\n services = [],\r\n disabled = false,\r\n ...props\r\n}) => {\r\n const [search, setSearch] = useState(\"\");\r\n const [focus, setFocus] = useState(false);\r\n const [show, setShow] = useState(false);\r\n const [selectedAllOptions, setSelectedAllOptions] = useState(false);\r\n const [data, setData] = useState(options);\r\n\r\n const setShowBlackScreen = props.setShowBlackScreen;\r\n const getGraphsByServiceAsync = props.getGraphsByServiceAsync;\r\n let locale = language.language_locale === \"es\" ? esLocale : enLocale;\r\n const { theme } = props;\r\n\r\n let totalOptions = options\r\n .filter(\r\n (graph) => props.graphsType && props.graphsType.includes(graph.category),\r\n )\r\n .map((item) => {\r\n return item[keyName];\r\n });\r\n\r\n useEffect(() => {\r\n if (Array.isArray(selectedData)) {\r\n setSelectedAllOptions(totalOptions.length === selectedData.length);\r\n }\r\n }, [selectedData, totalOptions]);\r\n\r\n useEffect(() => {\r\n if (options.length && filterName) {\r\n setData([\r\n ...options.filter((o) => {\r\n const filterValue = o[filterName];\r\n if (filterValue) {\r\n return filterValue.toLowerCase().includes(search.toLowerCase());\r\n }\r\n return false;\r\n }),\r\n ]);\r\n }\r\n }, [search, options, filterName]);\r\n\r\n const countByType = {};\r\n\r\n if (Array.isArray(selectedData)) {\r\n for (const id of selectedData) {\r\n const graph = options.find((g) => g?.id_graph === id);\r\n if (graph) {\r\n const type = graph.category;\r\n countByType[type] = (countByType[type] || 0) + 1;\r\n }\r\n }\r\n }\r\n\r\n const groupsWithCount = groups.map((group) => {\r\n const count = countByType[group.id] || 0;\r\n return {\r\n ...group,\r\n count,\r\n };\r\n });\r\n\r\n useEffect(() => {\r\n const handleScroll = () => {\r\n if (window.scrollY > 10) {\r\n setShow(false);\r\n setShowBlackScreen(false);\r\n setFocus(false);\r\n }\r\n };\r\n\r\n window.addEventListener(\"scroll\", handleScroll);\r\n\r\n return () => {\r\n window.removeEventListener(\"scroll\", handleScroll);\r\n };\r\n }, [setShowBlackScreen]);\r\n\r\n useEffect(() => {\r\n if (externalShowEvent) {\r\n setShowBlackScreen(true);\r\n setShow(true);\r\n setFocus(true);\r\n setExternalShowEvent(false);\r\n }\r\n }, [externalShowEvent, setShowBlackScreen, setExternalShowEvent]);\r\n\r\n useEffect(() => {\r\n if (services.length) getGraphsByServiceAsync({ ids_service: services });\r\n }, [getGraphsByServiceAsync, services]);\r\n\r\n return (\r\n {\r\n setShowBlackScreen(state);\r\n setShow(state);\r\n setFocus(state);\r\n }}\r\n animation={{\r\n animate: { opacity: 1 },\r\n exit: { opacity: 0, transition: { duration: 0.1 } },\r\n initial: { opacity: 0 },\r\n }}\r\n content={\r\n \r\n \r\n {allowSearch && (\r\n \r\n
\r\n \r\n setSearch(target.value)}\r\n />\r\n
\r\n \r\n )}\r\n
\r\n \r\n {labelAllServices}\r\n

\r\n {allowAllOptions && labelName !== \"file_name\" ? (\r\n {\r\n if (!selectedAllOptions) {\r\n onChange(totalOptions);\r\n } else {\r\n onChange([]);\r\n }\r\n }}\r\n >\r\n {language.reports_select_all}\r\n

\r\n ) : null}\r\n {showSelected ? (\r\n {`${language.genius_selected_items} ${selectedData.length}/2`}

\r\n ) : null}\r\n
\r\n {options?.length && groupsWithCount?.length && services.length ? (\r\n
\r\n {options.map((item, i) => (\r\n
\r\n \r\n {item.name_category}\r\n
\r\n
\r\n {item.options_graphs?.length &&\r\n item?.options_graphs.filter((g) =>\r\n selectedData.includes(g.id_graph),\r\n )?.length ? (\r\n \r\n {\r\n item?.options_graphs.filter((g) =>\r\n selectedData.includes(g.id_graph),\r\n )?.length\r\n }\r\n
\r\n ) : null}\r\n \r\n
\r\n \r\n ))}\r\n \r\n ) : (\r\n data.length && (\r\n
\r\n {data.map((item) => {\r\n let isSelected;\r\n let url;\r\n\r\n if (report) {\r\n isSelected =\r\n Array.isArray(selectedData) &&\r\n selectedData.findIndex(\r\n (i) => i.id_report === item.id_report,\r\n ) >= 0;\r\n url = `${process.env.REACT_APP_GENIUS_REPORTS_DISTRIBUTION}${item.id_account}/${item.file_name}`;\r\n } else {\r\n isSelected = Array.isArray(selectedData)\r\n ? selectedData.includes(item[keyName])\r\n : selectedData === item[keyName];\r\n }\r\n\r\n return (\r\n {\r\n if (isSelected) {\r\n if (report) {\r\n if (\r\n Array.isArray(selectedData) &&\r\n selectedData.length > 1\r\n )\r\n onChange(\r\n selectedData.filter(\r\n (i) => i.id_report !== item.id_report,\r\n ),\r\n );\r\n } else {\r\n onChange(\r\n Array.isArray(selectedData)\r\n ? typeReport\r\n ? [item[keyName]]\r\n : selectedData.filter(\r\n (value) => value !== item[keyName],\r\n )\r\n : item[keyName],\r\n );\r\n }\r\n } else {\r\n if (\r\n report &&\r\n Array.isArray(selectedData) &&\r\n selectedData.length < 2\r\n ) {\r\n onChange([\r\n ...selectedData,\r\n { url: url, ...item },\r\n ]);\r\n } else if (!report) {\r\n !typeReport &&\r\n props.serviceType &&\r\n props.serviceType.includes(4)\r\n ? onChange(item[keyName])\r\n : typeReport\r\n ? onChange([item[keyName]])\r\n : onChange([...selectedData, item[keyName]]);\r\n }\r\n }\r\n }}\r\n >\r\n
\r\n \r\n {report\r\n ? [item[labelName].split(\".\")[0]]\r\n : [item[labelName]]}\r\n
\r\n

\r\n {report\r\n ? format(\r\n parseISO(item[labelDetail]),\r\n \"eee. dd, LLLL\",\r\n { locale: locale },\r\n )\r\n : item[labelDetail]}\r\n

\r\n
\r\n
\r\n \r\n );\r\n })}\r\n \r\n )\r\n )}\r\n \r\n \r\n {\r\n setShowBlackScreen(false);\r\n setShow(false);\r\n setFocus(false);\r\n }}\r\n >\r\n {labelButton}\r\n \r\n \r\n
\r\n }\r\n >\r\n {buttonText ? (\r\n \r\n \r\n \r\n {buttonText}\r\n

\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n language: state.shared.language,\r\n totalReports: state.genius.totalReports,\r\n account: state.accounts.account,\r\n serviceType: state.genius.serviceType,\r\n graphsType: state.genius.graphsType,\r\n activeReports: ownProps.activeReports,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setShowBlackScreen: (payload) =>\r\n dispatch(sharedActions.setShowBlackScreen(payload)),\r\n getReportsAsync: () => dispatch(geniusActions.getReportsAsync()),\r\n setActiveReports: (payload) =>\r\n dispatch(geniusActions.setActiveReports(payload)),\r\n setShowContentHeader: (payload) =>\r\n dispatch(geniusActions.setShowContentHeader(payload)),\r\n setNewReport: (payload) => dispatch(geniusActions.setNewReport(payload)),\r\n getGraphsByServiceAsync: (payload) =>\r\n dispatch(geniusActions.getGraphsByServiceAsync(payload)),\r\n setTheme: (theme) => dispatch(themeActions.setTheme(theme)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Picker);\r\n","import React, { Fragment, useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport * as sharedActions from \"../../store/actions/Shared\";\r\nimport * as geniusActions from \"../../store/actions/Genius\";\r\nimport * as themeActions from \"../../store/actions/Theme\";\r\n\r\nimport { Popover } from \"@idui/react-popover\";\r\n\r\nconst ExportReport = ({ htmlUrl, excelUrl, ...props }) => {\r\n const [show, setShow] = useState(false);\r\n const [focus, setFocus] = useState(false);\r\n const [fileName, setFileName] = useState(\"\");\r\n const { theme } = props;\r\n\r\n return (\r\n {\r\n props.setShowBlackScreen(state);\r\n setShow(state);\r\n setFocus(state);\r\n }}\r\n animation={{\r\n animate: { opacity: 1 },\r\n exit: { opacity: 0, transition: { duration: 0.1 } },\r\n initial: { opacity: 0 },\r\n }}\r\n content={\r\n \r\n
\r\n
\r\n

\r\n {props.language.genius_download_file_report}\r\n

\r\n
\r\n
\r\n
\r\n \r\n Nombre del documento\r\n \r\n setFileName(target.value)}\r\n placeholder=\"Nombre del documento\"\r\n type=\"text\"\r\n autoFocus={true}\r\n className={`input-export-report label-small-medium content-default-secondary ${theme}`}\r\n style={{ width: \"100%\" }}\r\n />\r\n
\r\n
\r\n
\r\n {\r\n props.downloadReportsAsync({\r\n url: htmlUrl,\r\n filename: fileName !== \"\" ? `${fileName}.html` : \"\",\r\n });\r\n setFileName(\"\");\r\n setShow(false);\r\n props.setShowBlackScreen(false);\r\n }}\r\n className={`me-${\r\n excelUrl !== \"\" ? 3 : 0\r\n } rounded-16 py-2 px-4 button-fill-brand button-content-equal ${theme}`}\r\n style={{ minWidth: 155 }}\r\n >\r\n
\r\n \r\n \r\n {props.language.genius_download_html_report}\r\n
\r\n
\r\n \r\n {excelUrl !== \"\" ? (\r\n {\r\n props.downloadReportsAsync({\r\n url: excelUrl,\r\n filename: fileName !== \"\" ? `${fileName}.xlsx` : \"\",\r\n });\r\n setFileName(\"\");\r\n setShow(false);\r\n props.setShowBlackScreen(false);\r\n }}\r\n className={`rounded-16 py-2 px-4 button-fill-brand button-content-equal ${theme}`}\r\n style={{ minWidth: 155 }}\r\n >\r\n
\r\n \r\n \r\n {props.language.genius_download_excel_report}\r\n
\r\n
\r\n \r\n ) : null}\r\n \r\n \r\n
\r\n }\r\n >\r\n {!focus ? (\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n {props.language.genius_download_report}\r\n \r\n
\r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n language: state.shared.language,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setShowBlackScreen: (payload) =>\r\n dispatch(sharedActions.setShowBlackScreen(payload)),\r\n downloadReportsAsync: (payload) =>\r\n dispatch(geniusActions.downloadReportsAsync(payload)),\r\n setTheme: (theme) => dispatch(themeActions.setTheme(theme)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ExportReport);\r\n","import React from \"react\";\r\nimport { DateRange } from \"react-date-range\";\r\nimport { es, enUS, pt } from \"react-date-range/dist/locale\";\r\nimport \"react-date-range/dist/styles.css\"; // Main CSS\r\nimport \"react-date-range/dist/theme/default.css\"; // Theme CSS\r\nimport { Transition } from \"react-transition-group\";\r\nimport { startOfToday, format } from \"date-fns\";\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nconst CalendarRangePicker = ({\r\n show,\r\n setShow,\r\n dateRange,\r\n setDateRange,\r\n language,\r\n theme, // Light or Dark\r\n}) => {\r\n return (\r\n \r\n {(state) => (\r\n \r\n {\r\n setDateRange([date.selection]);\r\n }}\r\n showSelectionPreview={false}\r\n ranges={dateRange}\r\n minDate={new Date(\"2020-07-01T19:21:00.000Z\")}\r\n maxDate={startOfToday()}\r\n />\r\n \r\n {\r\n setShow(false);\r\n track(\"Genius date selected\", {\r\n Rank_Date: `${format(\r\n dateRange[0]?.startDate,\r\n \"ddMMMyy\",\r\n )}_${format(dateRange[0]?.endDate, \"ddMMMyy\")}`,\r\n });\r\n }}\r\n >\r\n {language?.genius_done_button}\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CalendarRangePicker;\r\n","import React from \"react\";\r\nimport { DateRange } from \"react-date-range\";\r\nimport { es, enUS, pt } from \"react-date-range/dist/locale\";\r\nimport \"react-date-range/dist/styles.css\"; // Main CSS\r\nimport \"react-date-range/dist/theme/default.css\"; // Theme CSS\r\nimport { Transition } from \"react-transition-group\";\r\nimport { startOfToday, format } from \"date-fns\";\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nconst MonthYearPicker = ({\r\n show,\r\n setShow,\r\n dateRange,\r\n onChange,\r\n language,\r\n theme, // Light or Dark\r\n}) => {\r\n return (\r\n \r\n {(state) => (\r\n \r\n \r\n\r\n \r\n {\r\n setShow(false);\r\n track(\"Genius date selected\", {\r\n Rank_Date: `${format(\r\n dateRange[0]?.startDate,\r\n \"ddMMMyy\"\r\n )}_${format(dateRange[0]?.endDate, \"ddMMMyy\")}`,\r\n });\r\n }}\r\n >\r\n {language?.genius_done_button}\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MonthYearPicker;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport * as servicesActions from \"../../store/actions/Services\";\r\nimport * as geniusActions from \"../../store/actions/Genius\";\r\nimport * as themeActions from \"../../store/actions/Theme\";\r\n\r\nimport {\r\n add,\r\n endOfMonth,\r\n format,\r\n getMonth,\r\n getYear,\r\n parseISO,\r\n startOfMonth,\r\n} from \"date-fns\";\r\nimport { Animation, Alert } from \"rsuite\";\r\nimport { track } from \"@amplitude/analytics-browser\";\r\nimport { startOfToday } from \"date-fns\";\r\n\r\nimport esLocale from \"date-fns/locale/es\";\r\nimport enLocale from \"date-fns/locale/en-US\";\r\nimport ContentLoader from \"react-content-loader\";\r\nimport Header from \"../shared/Header\";\r\nimport ActiveReports from \"./ActiveReports\";\r\nimport Picker from \"./Picker\";\r\nimport TextTooltip from \"./TextTooltip\";\r\nimport ExtraItemsPopover from \"./ExtraItemsPopover\";\r\nimport ExportReport from \"./ExportReport\";\r\nimport CalendarRangePicker from \"../shared/utilities/CalendarRangePicker\";\r\nimport ServicesPopover from \"../energy/services/ServicesPopover\";\r\nimport empty_report_genius_dark from \"../../imgs/empty_state_genius_dark.svg\";\r\nimport empty_report_genius_light from \"../../imgs/empty_state_genius_light.svg\";\r\nimport MonthYearPicker from \"../shared/utilities/MonthYearPicker\";\r\n\r\nconst loadingContent = (\r\n
\r\n \r\n \r\n \r\n
\r\n);\r\n\r\nconst getMonthAndYearDetails = (isoDateString) => {\r\n const date = new Date(isoDateString);\r\n\r\n const startDate = startOfMonth(date);\r\n\r\n const endDate = endOfMonth(date);\r\n\r\n const month = getMonth(date) + 1;\r\n const year = getYear(date);\r\n\r\n return {\r\n startDate, // Objeto Date del primer día del mes\r\n endDate, // Objeto Date del último día del mes\r\n details: [month, year], // Arreglo con el mes y el año en texto\r\n };\r\n};\r\n\r\nconst isValidReport = (report, totalReports, type, self) => {\r\n if (type !== self) {\r\n if (report.name === null || report.name === \"\") {\r\n return false;\r\n }\r\n\r\n if (\r\n totalReports\r\n .map((r) => r?.file_name.split(\".\")[0].toLowerCase())\r\n .includes(report?.name.toLocaleLowerCase())\r\n ) {\r\n return false;\r\n }\r\n\r\n if (report.deviceIds === null || !report.deviceIds.length) {\r\n return false;\r\n }\r\n\r\n if (report.graphIds === null || !report.graphIds.length) {\r\n return false;\r\n }\r\n\r\n if (report.dateFrom === null || report.dateFrom === \"\") {\r\n return false;\r\n }\r\n\r\n if (report.dateTo === null || report.dateTo === \"\") {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst showError = (report, totalReports, language, type) => {\r\n if (type !== language.ppa_report) {\r\n if (report.name === null || report.name === \"\" || report.duplicateReport) {\r\n return Alert.error(language.alert_genius_create_report_filename, 5000);\r\n }\r\n\r\n if (\r\n totalReports\r\n .map((r) => r?.file_name.split(\".\")[0].toLowerCase())\r\n .includes(report?.name.toLocaleLowerCase())\r\n ) {\r\n return Alert.error(\r\n language.alert_genius_create_report_duplicate_filename,\r\n 5000\r\n );\r\n }\r\n\r\n if (report.deviceIds === null || !report.deviceIds.length) {\r\n return Alert.error(language.alert_genius_create_report_devices, 5000);\r\n }\r\n\r\n if (report.graphIds === null || !report.graphIds.length) {\r\n return Alert.error(language.alert_genius_create_report_graphs, 5000);\r\n }\r\n\r\n if (\r\n report.dateFrom === null ||\r\n report.dateFrom === \"\" ||\r\n report.dateTo === null ||\r\n report.dateTo === \"\"\r\n ) {\r\n return Alert.error(language.alert_genius_create_report_range, 5000);\r\n }\r\n }\r\n};\r\n\r\nconst Genius = (props) => {\r\n const initReport = {\r\n name: \"\",\r\n graphIds: [],\r\n deviceIds: [],\r\n dateFrom: null,\r\n dateTo: null,\r\n duplicate: false,\r\n };\r\n\r\n /* Data of the new report that can be created by the user */\r\n const [report, setReport] = useState(initReport);\r\n const [isEnable, setEnable] = useState(false);\r\n /* Report that is expanded and is selected in */\r\n const [reportDetailed, setReportDetailed] = useState(null);\r\n /* Show calendarRangePicker when creating a new report */\r\n const [showCalendar, setShowCalendar] = useState(false);\r\n /* Date range of the new report calendar picker */\r\n const [dateRange, setDateRange] = useState([\r\n {\r\n startDate: startOfMonth(new Date()),\r\n endDate: startOfToday(),\r\n key: \"selection\",\r\n },\r\n ]);\r\n\r\n /* Data of services and graphs that is selected in the picker for new report creation */\r\n const [serviceSelected, setServiceSelected] = useState([]);\r\n const [graphSelected, setGraphSelected] = useState([]);\r\n const [typeOfReport, setTypeOfReport] = useState([]);\r\n const [selectedTypeOfReport, setSelectedTypeOfReport] = useState([]);\r\n const [selectedReport, setSelectedReport] = useState(null);\r\n\r\n const [premium, setPremium] = useState(false); \r\n const [externalShowEvent, setExternalShowEvent] = useState(false);\r\n\r\n const [payloadPPA, setPayloadPPA] = useState({\r\n month: getMonth(new Date()) + 1,\r\n year: getYear(new Date()),\r\n });\r\n\r\n let locale = props.language.language_locale === \"es\" ? esLocale : enLocale;\r\n let account = props.account;\r\n let totalReports = props.totalReports;\r\n let loadingReport = props.loadingReport;\r\n let reportGenerated = props.reportGenerated;\r\n let totalServices = props.totalServices;\r\n let graphs = props.graphs;\r\n let expanded = props.expanded;\r\n let newReport = props.newReport;\r\n let activeServicesPlus = props.activeServicesPlus;\r\n let serviceType = props.serviceType;\r\n let showBlackScreen = props.showBlackScreen;\r\n let language = props.language;\r\n let screenPaddingBottom = props.screenPaddingBottom;\r\n let totalGraphs = props.totalGraphs;\r\n let user = props.user;\r\n let activeReports = props.activeReports;\r\n\r\n const loadServicesAsync = props.loadServicesAsync;\r\n const getReportsAsync = props.getReportsAsync;\r\n const generateReportAsync = props.generateReportAsync;\r\n const setNewReport = props.setNewReport;\r\n const setShowContentHeader = props.setShowContentHeader;\r\n const getGraphsReportAsync = props.getGraphsReportAsync;\r\n const { theme } = props;\r\n\r\n const dataGroupGraphs = [\r\n { id: 1, group: props.language.genius_report_monthly_consumption },\r\n { id: 2, group: props.language.genius_report_submeasurements },\r\n { id: 3, group: props.language.genius_report_detailed_consumption },\r\n { id: 4, group: props.language.genius_report_reactive_energy },\r\n { id: 5, group: props.language.genius_report_savings },\r\n { id: 6, group: props.language.genius_report_generation },\r\n ];\r\n\r\n /* When the account change, restart everything */\r\n useEffect(() => {\r\n account && loadServicesAsync();\r\n setServiceSelected([]);\r\n setGraphSelected([]);\r\n setReport({\r\n name: \"\",\r\n graphIds: [],\r\n deviceIds: [],\r\n dateFrom: null,\r\n dateTo: null,\r\n duplicate: false,\r\n });\r\n setNewReport(false);\r\n setShowContentHeader(false);\r\n }, [account, loadServicesAsync, setNewReport, setShowContentHeader]);\r\n\r\n useEffect(() => {\r\n setReport({\r\n name: \"\",\r\n graphIds: [],\r\n deviceIds: [],\r\n dateFrom: null,\r\n dateTo: null,\r\n duplicate: false,\r\n });\r\n }, [serviceType]);\r\n\r\n useEffect(() => {\r\n if (account && totalServices?.length) {\r\n getReportsAsync();\r\n }\r\n }, [account, reportGenerated, getReportsAsync, totalServices]);\r\n\r\n useEffect(() => {\r\n if (report.deviceIds) {\r\n setServiceSelected(\r\n totalServices.filter((service) =>\r\n Array.isArray(report.deviceIds)\r\n ? report.deviceIds.includes(service.idService)\r\n : report.deviceIds === service.idService\r\n )\r\n );\r\n } else {\r\n setServiceSelected([]);\r\n }\r\n\r\n if (report.graphIds.length) {\r\n setGraphSelected(\r\n totalGraphs.filter((graph) => report.graphIds.includes(graph.id_graph))\r\n );\r\n }\r\n }, [totalGraphs, report, totalServices]);\r\n\r\n useEffect(() => {\r\n getGraphsReportAsync();\r\n }, [getGraphsReportAsync]);\r\n\r\n useEffect(() => {\r\n setReport((prevReport) => ({\r\n ...prevReport,\r\n dateFrom: format(dateRange[0].startDate, \"yyyy-MM-dd HH:mm:ss\"),\r\n dateTo: format(dateRange[0].endDate, \"yyyy-MM-dd HH:mm:ss\"),\r\n bodyPPA: payloadPPA,\r\n isPPA: selectedTypeOfReport[0] === language.ppa_report,\r\n }));\r\n }, [dateRange, payloadPPA, selectedTypeOfReport, language]);\r\n\r\n useEffect(() => {\r\n setEnable(\r\n isValidReport(\r\n report,\r\n totalReports,\r\n selectedTypeOfReport[0],\r\n language.ppa_report\r\n )\r\n );\r\n }, [\r\n setEnable,\r\n report,\r\n totalReports,\r\n language.ppa_report,\r\n selectedTypeOfReport,\r\n ]);\r\n\r\n useEffect(() => {\r\n const types = [];\r\n const generationIds = [4];\r\n const consumptionIds = [1, 2, 3];\r\n\r\n const generationServices = totalServices.filter((s) => {\r\n return generationIds.includes(s.type?.typeService);\r\n });\r\n\r\n const consumptionServices = totalServices.filter((s) => {\r\n return consumptionIds.includes(s.type?.typeService);\r\n });\r\n\r\n if (generationServices.length > 0) {\r\n types.push({\r\n name: language.generation_report,\r\n services: generationIds,\r\n graphs: [6],\r\n });\r\n }\r\n\r\n if (consumptionServices.length > 0) {\r\n types.push({\r\n name: language.consumption_report,\r\n services: consumptionIds,\r\n graphs: [1, 2, 3, 4, 5],\r\n });\r\n }\r\n\r\n if (user.capabilities?.show_genius_ppa_report) {\r\n types.push({\r\n name: language.ppa_report,\r\n services: [4],\r\n graphs: [6],\r\n });\r\n }\r\n\r\n setTypeOfReport(types);\r\n }, [totalServices, language, user.capabilities.show_genius_ppa_report]);\r\n\r\n useEffect(() => {\r\n if (!showBlackScreen && selectedTypeOfReport[0]) {\r\n const filteredTypeReport = typeOfReport.filter(\r\n (type) => type.name === selectedTypeOfReport[0]\r\n );\r\n\r\n track(\"Report created\");\r\n\r\n props.setServiceType(\r\n filteredTypeReport[0] && filteredTypeReport[0].services\r\n );\r\n props.setGraphsType(\r\n filteredTypeReport[0] && filteredTypeReport[0].graphs\r\n );\r\n\r\n props.setNewReport(true);\r\n props.setShowContentHeader(true);\r\n }\r\n }, [selectedTypeOfReport, showBlackScreen, typeOfReport, props]);\r\n\r\n /* Hide the calendar when the report detail is false */\r\n useEffect(() => {\r\n if (!expanded) {\r\n setShowCalendar(false);\r\n }\r\n }, [expanded]);\r\n\r\n useEffect(() => {\r\n if (activeServicesPlus.length) {\r\n setPremium(true);\r\n } else setPremium(false);\r\n }, [activeServicesPlus, setPremium, account]); \r\n\r\n useEffect(() => {\r\n if (graphSelected.length) {\r\n track(\"Genius variable selected\", {\r\n Genius_Variable_ID:\r\n graphSelected[graphSelected.length - 1]?.description,\r\n });\r\n }\r\n }, [graphSelected]); \r\n\r\n useEffect(() => {\r\n if(activeReports.length && (selectedReport === null || !activeReports.some(item => item?.id_report === selectedReport?.id_report))){\r\n setSelectedReport(activeReports[0])\r\n }\r\n // eslint-disable-next-line\r\n }, [activeReports])\r\n\r\n const handleRangeChange = (ranges) => {\r\n const selection = getMonthAndYearDetails(ranges);\r\n\r\n setDateRange([\r\n {\r\n startDate: selection.startDate,\r\n endDate: selection.endDate,\r\n key: \"selection\",\r\n },\r\n ]);\r\n\r\n setPayloadPPA({\r\n ...payloadPPA,\r\n month: selection.details[0],\r\n year: selection.details[1],\r\n });\r\n\r\n setReport((prevReport) => ({\r\n ...prevReport,\r\n dateFrom: format(selection.startDate, \"yyyy-MM-dd HH:mm:ss\"),\r\n dateTo: format(selection.endDate, \"yyyy-MM-dd HH:mm:ss\"),\r\n bodyPPA: {\r\n month: selection.details[0],\r\n year: selection.details[1],\r\n },\r\n isPPA: true,\r\n }));\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {!loadingReport ? (\r\n
\r\n \r\n \r\n \r\n {props.language.genius_title_main_reports}\r\n

\r\n {props.totalReports.length ? (\r\n
\r\n setSelectedReport(value)}\r\n selectedReport={selectedReport}\r\n />\r\n {!expanded ? (\r\n
\r\n setSelectedTypeOfReport(value)}\r\n outsideButtonEvent=\"GE Open Report Picker\"\r\n insideButtonEvent=\"GE Save Selection Reports\"\r\n buttonText={props.language.genius_save_report}\r\n typeReport={true}\r\n externalShowEvent={externalShowEvent}\r\n setExternalShowEvent={setExternalShowEvent}\r\n />\r\n \r\n props.setActiveReports(value)}\r\n outsideButtonEvent=\"GE Open Report Picker\"\r\n insideButtonEvent=\"GE Save Selection Reports\"\r\n />\r\n
\r\n ) : !newReport ? (\r\n
\r\n \r\n props.deleteReportAsync(reportDetailed.id_report)\r\n }\r\n >\r\n
\r\n
\r\n \r\n
\r\n \r\n {props.language.genius_delete_report}\r\n \r\n
\r\n
\r\n {/* {\r\n props.downloadReportsAsync(`${reportDetailed.id_account}/${reportDetailed.file_name}`)\r\n }}>\r\n
\r\n
\r\n \r\n
\r\n {props.language.genius_download_report}\r\n
\r\n
*/}\r\n \r\n
\r\n ) : (\r\n
\r\n {\r\n if (isEnable) {\r\n if (report.dateFrom) {\r\n generateReportAsync(report);\r\n } else {\r\n generateReportAsync({\r\n dateFrom: dateRange[0].startDate,\r\n dateTo: dateRange[0].endDate,\r\n name: report.name,\r\n graphIds: report.graphIds,\r\n deviceIds: report.deviceIds,\r\n isPPA:\r\n selectedTypeOfReport[0] ===\r\n language.ppa_report,\r\n bodyPPA: {\r\n month: payloadPPA.month,\r\n year: payloadPPA.year,\r\n },\r\n });\r\n }\r\n\r\n props.setNewReport(false);\r\n props.setShowContentHeader(false);\r\n setReport(initReport);\r\n\r\n if (\r\n selectedTypeOfReport[0] !== language.ppa_report\r\n ) {\r\n track(\"Report created\", {\r\n Genius_Variable_ID: graphSelected.map(\r\n function (graph) {\r\n return graph?.description;\r\n }\r\n ),\r\n });\r\n } else {\r\n setSelectedTypeOfReport([]);\r\n props.setNewReport(false);\r\n props.setShowContentHeader(false);\r\n setReport(initReport);\r\n props.setGraphs([]);\r\n }\r\n } else {\r\n showError(\r\n report,\r\n totalReports,\r\n props.language,\r\n selectedTypeOfReport[0]\r\n );\r\n }\r\n }}\r\n >\r\n \r\n \r\n {props.language.genius_save_report}\r\n

\r\n \r\n {\r\n setSelectedTypeOfReport([]);\r\n props.setNewReport(false);\r\n props.setShowContentHeader(false);\r\n setReport(initReport);\r\n props.setGraphs([]);\r\n }}\r\n >\r\n \r\n \r\n {props.language.genius_cancel_report}\r\n

\r\n \r\n
\r\n )}\r\n \r\n ) : (\r\n
\r\n \r\n {!newReport ? (\r\n setSelectedTypeOfReport(value)}\r\n outsideButtonEvent=\"GE Open Report Picker\"\r\n insideButtonEvent=\"GE Save Selection Reports\"\r\n typeReport={true}\r\n externalShowEvent={externalShowEvent}\r\n setExternalShowEvent={setExternalShowEvent}\r\n />\r\n ) : (\r\n
\r\n {\r\n if (isEnable) {\r\n generateReportAsync(report);\r\n props.setNewReport(false);\r\n props.setShowContentHeader(false);\r\n setReport(initReport);\r\n track(\"Report created\", {\r\n Genius_Variable_ID: graphSelected.map(function (\r\n graph\r\n ) {\r\n return graph?.description;\r\n }),\r\n });\r\n } else {\r\n showError(\r\n report,\r\n totalReports,\r\n props.language,\r\n selectedTypeOfReport[0]\r\n );\r\n }\r\n }}\r\n >\r\n \r\n

\r\n {props.language.genius_save_report}\r\n

\r\n \r\n {\r\n props.setNewReport(false);\r\n props.setShowContentHeader(false);\r\n setSelectedTypeOfReport([]);\r\n setReport(initReport);\r\n props.setGraphs([]);\r\n }}\r\n >\r\n \r\n

\r\n {props.language.genius_cancel_report}\r\n

\r\n \r\n
\r\n )}\r\n
\r\n )}\r\n \r\n
\r\n \r\n {selectedTypeOfReport[0] !== language.ppa_report && (\r\n <>\r\n
\r\n \r\n {props.language.genius_name_report}\r\n

\r\n {!newReport ? (\r\n \r\n \r\n {reportDetailed?.file_name &&\r\n reportDetailed.file_name.split(\".\")[0]}\r\n

\r\n
\r\n ) : (\r\n {\r\n setReport({ ...report, name: target.value });\r\n }}\r\n >\r\n )}\r\n
\r\n
\r\n \r\n {props.language.genius_date_range_report}\r\n

\r\n\r\n {\r\n if (newReport) {\r\n setShowCalendar(!showCalendar);\r\n }\r\n }}\r\n >\r\n \r\n {newReport\r\n ? format(\r\n dateRange[0].startDate,\r\n \"eee. dd, LLLL\",\r\n { locale: locale }\r\n )\r\n : reportDetailed?.start_date\r\n ? /* add 1 day because ISO date is displayed as the previous day */ format(\r\n add(parseISO(reportDetailed.start_date), {\r\n days: 1,\r\n }),\r\n \"eee. dd, LLLL\",\r\n { locale: locale }\r\n )\r\n : null}\r\n

\r\n
\r\n {newReport && (\r\n setShowCalendar(!showCalendar)}\r\n >\r\n
\r\n \r\n )}\r\n
\r\n \r\n
\r\n {\r\n if (newReport) {\r\n setShowCalendar(!showCalendar);\r\n }\r\n }}\r\n >\r\n \r\n {newReport\r\n ? format(\r\n dateRange[0].endDate,\r\n \"eee. dd, LLLL\",\r\n {\r\n locale: locale,\r\n }\r\n )\r\n : reportDetailed?.end_date\r\n ? format(\r\n add(parseISO(reportDetailed.end_date), {\r\n days: 1,\r\n }),\r\n \"eee. dd, LLLL\",\r\n { locale: locale }\r\n )\r\n : null}\r\n

\r\n \r\n \r\n
\r\n \r\n {props.language.genius_creation_date_report}\r\n

\r\n \r\n \r\n {newReport\r\n ? format(new Date(), \"eee. dd, LLLL\", {\r\n locale: locale,\r\n })\r\n : reportDetailed?.created_time\r\n ? format(\r\n parseISO(reportDetailed.created_time),\r\n \"eee. dd, LLLL\",\r\n { locale: locale }\r\n )\r\n : null}\r\n

\r\n
\r\n \r\n \r\n )}\r\n {selectedTypeOfReport[0] === language.ppa_report && (\r\n
\r\n \r\n {props.language.genius_date_range_report}\r\n

\r\n {newReport && (\r\n setShowCalendar(!showCalendar)}\r\n >\r\n
\r\n
\r\n )}\r\n
\r\n \r\n
\r\n {\r\n if (newReport) {\r\n setShowCalendar(!showCalendar);\r\n }\r\n }}\r\n >\r\n \r\n {newReport\r\n ? format(dateRange[0].startDate, \"LLLL yyyy\", {\r\n locale: locale,\r\n })\r\n : reportDetailed?.start_date\r\n ? /* add 1 day because ISO date is displayed as the previous day */ format(\r\n add(parseISO(reportDetailed.start_date), {\r\n days: 1,\r\n }),\r\n \"LLLL yyyy\",\r\n { locale: locale }\r\n )\r\n : null}\r\n

\r\n \r\n \r\n )}\r\n \r\n {selectedTypeOfReport[0] !== language.ppa_report && (\r\n
\r\n {!newReport ? (\r\n
\r\n
\r\n

\r\n {props.language.genius_services_report}\r\n

\r\n \r\n

\r\n {reportDetailed?.id_services &&\r\n `${reportDetailed.id_services.length} ${props.language.genius_selected_items}`}\r\n

\r\n
\r\n
\r\n
\r\n {reportDetailed?.id_services\r\n .slice(0, 2)\r\n .map((service, i) => (\r\n \r\n \r\n {service.name}\r\n

\r\n
\r\n }\r\n text={\r\n \r\n {service.name}\r\n
\r\n }\r\n />\r\n ))}\r\n {reportDetailed?.id_services.length > 2 && (\r\n \r\n
\r\n {reportDetailed.id_services\r\n .slice(2)\r\n .map((service) => (\r\n \r\n \r\n {service.name}\r\n

\r\n
\r\n ))}\r\n \r\n \r\n }\r\n button={\r\n \r\n

\r\n +{reportDetailed.id_services.length - 2}\r\n

\r\n \r\n \r\n }\r\n />\r\n )}\r\n \r\n \r\n ) : (\r\n
\r\n
\r\n \r\n {props.language.genius_services_report}\r\n

\r\n
\r\n
\r\n
\r\n {\r\n setReport({\r\n ...report,\r\n deviceIds: value.map((v) => v.idService),\r\n });\r\n }}\r\n availableTypeServices={\r\n serviceType.includes(4)\r\n ? [\"generation\"]\r\n : [\"energy\", \"plus\"]\r\n }\r\n limitSelectServices={\r\n serviceType.includes(4) ? 1 : null\r\n }\r\n typeComponent={\"energy\"}\r\n popoverPosition={\"bottomLeft\"}\r\n />\r\n
\r\n {!report.deviceIds && !serviceSelected.length ? (\r\n
\r\n

\r\n + {props.language.genius_add_services}\r\n

\r\n
\r\n ) : serviceSelected.length > 2 ? (\r\n
\r\n {serviceSelected\r\n .slice(0, 2)\r\n .map((service, i) => (\r\n \r\n \r\n {service.name}\r\n

\r\n
\r\n }\r\n text={\r\n \r\n {service.name}\r\n
\r\n }\r\n />\r\n ))}\r\n \r\n
\r\n {serviceSelected\r\n .slice(2)\r\n .map((s, i) => (\r\n \r\n {s.name}\r\n
\r\n ))}\r\n
\r\n \r\n }\r\n button={\r\n \r\n \r\n + {serviceSelected.length - 2}\r\n

\r\n \r\n }\r\n />\r\n \r\n ) : (\r\n serviceSelected.map((service, i) => (\r\n \r\n

\r\n {service.name}\r\n

\r\n \r\n }\r\n text={\r\n \r\n {service.name}\r\n \r\n }\r\n />\r\n ))\r\n )}\r\n \r\n \r\n )}\r\n {!newReport ? (\r\n
\r\n
\r\n \r\n {props.language.genius_graphs}\r\n

\r\n \r\n

\r\n {reportDetailed?.id_graphs &&\r\n `${reportDetailed.id_graphs.length} ${props.language.genius_selected_items}`}{\" \"}\r\n

\r\n
\r\n
\r\n
\r\n {reportDetailed?.id_graphs\r\n .slice(0, 2)\r\n .map((_graph) => (\r\n \r\n \r\n \r\n \r\n {props.language[_graph.description]}\r\n

\r\n
\r\n }\r\n theme={theme}\r\n text={\r\n \r\n {props.language[_graph.description]}\r\n

\r\n }\r\n />\r\n \r\n ))}\r\n {reportDetailed?.id_graphs.length > 2 && (\r\n \r\n
\r\n {reportDetailed.id_graphs\r\n .slice(2)\r\n .map((_graph) => (\r\n \r\n \r\n \r\n {\r\n props.language[\r\n _graph.description\r\n ]\r\n }\r\n

\r\n
\r\n ))}\r\n \r\n \r\n }\r\n button={\r\n \r\n \r\n +{reportDetailed.id_graphs.length - 2}\r\n

\r\n \r\n \r\n }\r\n />\r\n )}\r\n \r\n \r\n ) : (\r\n
\r\n
\r\n \r\n {props.language.genius_graphs}\r\n

\r\n
\r\n
\r\n y.new_graph === 1)\r\n .map((g) => g.id_graph)}\r\n options={graphs ?? []}\r\n selectedData={report.graphIds}\r\n groups={\r\n !premium\r\n ? dataGroupGraphs.filter(\r\n (item) => item.id !== 2\r\n )\r\n : dataGroupGraphs\r\n }\r\n onChange={(value) => {\r\n setReport({ ...report, graphIds: value });\r\n }}\r\n outsideButtonEvent=\"GE Open Graphs Selection\"\r\n insideButtonEvent=\"GE Save Selection Graphs\"\r\n allOptionButtonEvent=\"GE Select All Graphs\"\r\n services={report.deviceIds}\r\n disabled={graphs.length === 0}\r\n />\r\n {!report.graphIds.length ? (\r\n \r\n \r\n + {props.language.genius_add_graphs}\r\n

\r\n
\r\n ) : graphSelected.length > 2 ? (\r\n
\r\n {graphSelected.slice(0, 2).map((_graph) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {\r\n props.language[\r\n _graph.description\r\n ]\r\n }\r\n

\r\n
\r\n }\r\n text={\r\n \r\n {\r\n props.language[\r\n _graph.description\r\n ]\r\n }\r\n

\r\n }\r\n />\r\n
\r\n );\r\n })}\r\n \r\n
\r\n {graphSelected\r\n .slice(2)\r\n .map((_graph) => (\r\n \r\n \r\n \r\n {\r\n props.language[\r\n _graph.description\r\n ]\r\n }\r\n

\r\n
\r\n ))}\r\n \r\n \r\n }\r\n button={\r\n
\r\n

{`+${\r\n report.graphIds.length - 2\r\n }`}

\r\n
\r\n }\r\n />\r\n \r\n ) : (\r\n graphSelected.map((_graph) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {\r\n props.language[\r\n _graph.description\r\n ]\r\n }\r\n

\r\n \r\n }\r\n text={\r\n \r\n {props.language[_graph.description]}\r\n

\r\n }\r\n />\r\n \r\n );\r\n })\r\n )}\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {selectedReport !== null ? ( \r\n
\r\n
\r\n \r\n
\r\n
\r\n ) : (\r\n \r\n \r\n \r\n {props.language.genius_title_empty_state}\r\n \r\n \r\n {props.language.genius_text_description_empty_state}\r\n \r\n setExternalShowEvent(true)}\r\n >\r\n
\r\n \r\n {props.language.genius_button_default_report}\r\n
\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n ) : (\r\n
\r\n
\r\n {loadingContent}\r\n
\r\n
\r\n )}\r\n \r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n account: state.accounts.account,\r\n language: state.shared.language,\r\n activeReports: state.genius.activeReports,\r\n totalReports: state.genius.totalReports,\r\n loadingReport: state.genius.loadingReport,\r\n activeServicesPlus: state.services.activeServicesPlus,\r\n reportGenerated: state.genius.reportGenerated,\r\n totalServices: state.services.totalServices,\r\n graphs: state.genius.graphs,\r\n expanded: state.genius.expanded,\r\n newReport: state.genius.newReport,\r\n showBlackScreen: state.shared.showBlackScreen,\r\n showMenu: state.shared.showMenu,\r\n serviceType: state.genius.serviceType,\r\n graphsType: state.genius.graphsType,\r\n screenPaddingBottom: state.shared.screenPaddingBottom,\r\n totalGraphs: state.genius.totalGraphs,\r\n user: state.users.user,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n loadServicesAsync: (payload) =>\r\n dispatch(servicesActions.loadServicesAsync(payload)),\r\n getReportsAsync: () => dispatch(geniusActions.getReportsAsync()),\r\n setActiveReports: (payload) =>\r\n dispatch(geniusActions.setActiveReports(payload)),\r\n generateReportAsync: (payload) =>\r\n dispatch(geniusActions.generateReportAsync(payload)),\r\n downloadReportsAsync: (payload) =>\r\n dispatch(geniusActions.downloadReportsAsync(payload)),\r\n setNewReport: (payload) => dispatch(geniusActions.setNewReport(payload)),\r\n setShowContentHeader: (payload) =>\r\n dispatch(geniusActions.setShowContentHeader(payload)),\r\n deleteReportAsync: (payload) =>\r\n dispatch(geniusActions.deleteReportAsync(payload)),\r\n setServiceType: (payload) => dispatch(geniusActions.setServiceType(payload)),\r\n setGraphsType: (payload) => dispatch(geniusActions.setGraphsType(payload)),\r\n setGraphs: (payload) => dispatch(geniusActions.setGraphs(payload)),\r\n getGraphsReportAsync: () => dispatch(geniusActions.getGraphsReportAsync()),\r\n setTheme: (theme) => dispatch(themeActions.setTheme(theme)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Genius);\r\n","import React from 'react'\r\nimport { connect } from 'react-redux';\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nimport * as plusActions from '../../../../../store/actions/Plus';\r\n\r\nconst GraphPeriodPicker = (props) => {\r\n\r\n const changePeriod = (interval) => {\r\n let eventProperty = '';\r\n\r\n if (props.intervalGraph !== interval) {\r\n props.setIntervalGraph(interval);\r\n switch (interval) {\r\n case 1:\r\n eventProperty = 'Rank_Weekly'\r\n break\r\n case 2:\r\n eventProperty = 'Rank_Monthly'\r\n break\r\n case 3:\r\n eventProperty = 'Rank_Yearly'\r\n break\r\n default:\r\n eventProperty = 'Rank_Weekly'\r\n break\r\n }\r\n track('Standby rank selected', {Rank_ID: eventProperty})\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
{ changePeriod(1) }}>\r\n
{props.language.energy_graph_period_picker_week}
\r\n
\r\n
{ changePeriod(2) }}>\r\n
{props.language.energy_graph_period_picker_month}
\r\n
\r\n
{ changePeriod(3) }}>\r\n
{props.language.energy_graph_period_picker_year}
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n intervalGraph: state.plus.intervalGraphAlwaysOn,\r\n language: state.shared.language\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n setIntervalGraph: (payload) => dispatch(plusActions.setIntervalGraphAlwaysOn(payload))\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(GraphPeriodPicker);","import React from 'react'\r\n\r\nimport { Calendar as Datepicker } from 'react-calendar';\r\nimport { Transition } from 'react-transition-group';\r\nimport { calendarIntervals, setCalendarDates } from '../../../services/CalendarHandler';\r\n\r\nconst Calendar = (props) => {\r\n\r\n let show = props.show;\r\n let interval = props.interval;\r\n let start = props.start;\r\n let end = props.end;\r\n let setDates = props.setDates;\r\n\r\n return (\r\n \r\n {state => (\r\n
\r\n
\r\n
}\r\n prevLabel={}\r\n onChange={(value) => setDates(setCalendarDates(value, interval)) } />\r\n
)}\r\n \r\n )\r\n}\r\n\r\n\r\nexport default Calendar","import React, { useEffect, useState, useRef, Fragment } from \"react\";\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as sharedActions from '../../../../../store/actions/Shared';\r\nimport * as plusActions from '../../../../../store/actions/Plus';\r\n\r\nimport { VictoryChart, VictoryLabel, VictoryAxis, VictoryBar, VictoryZoomContainer, Rect } from \"victory\";\r\nimport { grid, tickLabelsX, tickLabelsY, tickStyle } from \"../../../../shared/svgs/GraphStyles\";\r\n\r\nimport _ from 'lodash';\r\nimport moment from 'moment-timezone';\r\n\r\nimport GraphPeriodPicker from \"./GraphPeriodPicker\";\r\nimport Calendar from \"../../../../shared/utilities/Calendar\";\r\nimport { useWindowSize } from '../../../../shared/utilities/useWindowSize';\r\nimport empty_graph_energy from \"../../../../../imgs/empty-graph-energy.svg\";\r\n\r\nimport { Transition } from 'react-transition-group';\r\n\r\nimport { Loader } from 'rsuite';\r\nimport ButtonCircle from \"../../../../shared/utilities/ButtonCircle\";\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nimport Draggable from \"react-draggable\";\r\n\r\nconst formatDateLabel = (intervalGraph, domain, lang) => {\r\n\r\n\tlet dateFormated;\r\n\tlet intervalLeft;\r\n\tlet intervalRight;\r\n\r\n\tmoment.locale(lang);\r\n\r\n\tswitch (intervalGraph) {\r\n\t\tcase 0:\r\n\t\t\tdateFormated = moment.utc(domain?.x[1] * 1000).format(\"DD MMMM YYYY\");\r\n\t\t\tbreak;\r\n\t\tcase 1:\r\n\t\tcase 2:\r\n\t\t\tintervalLeft = moment.utc((domain?.x[0] + 86400) * 1000).format(\"MMM DD\");\r\n\t\t\tintervalRight = moment.utc(domain?.x[1] * 1000).format(\"MMM DD\");\r\n\t\t\tdateFormated = `${intervalLeft} ${lang === 'es' ? 'a' : '-'} ${intervalRight}`;\r\n\t\t\tbreak;\r\n\t\tcase 3:\r\n\t\t\tintervalLeft = moment.utc((domain?.x[0] + 2592000) * 1000).format(\"MMM YYYY\");\r\n\t\t\tintervalRight = moment.utc(domain?.x[1] * 1000).format(\"MMM YYYY\");\r\n\t\t\tdateFormated = `${intervalLeft} ${lang === 'es' ? 'a' : '-'} ${intervalRight}`;\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\tdateFormated = \"\";\r\n\t\t\tbreak;\r\n\t}\r\n\r\n\treturn dateFormated;\r\n\r\n}\r\n\r\nconst capitalizedText = (text) => {\r\n\r\n\tlet label = \"\";\r\n\tvar phrase = text.toLowerCase().split(' ');\r\n\r\n\tfor (var i = 0; i < phrase.length; i++) {\r\n\t\tif (i !== 2) {\r\n\t\t\tphrase[i] = phrase[i].charAt(0).toUpperCase() + phrase[i].substring(1);\r\n\t\t}\r\n\t};\r\n\r\n\tlabel = phrase.join(' ');\r\n\r\n\treturn label;\r\n};\r\n\r\nconst handlerFormatAxis = (date, type, lang, title = false) => {\r\n\r\n\tlet stringFormats;\r\n\r\n\tswitch (type) {\r\n\t\tcase 0:\r\n\t\t\tstringFormats = ['hh:mm DD/MM/YY', 'HH', 'dddd, DD MMMM YYYY']\r\n\t\t\tbreak;\r\n\t\tcase 1:\r\n\t\tcase 2:\r\n\t\t\tstringFormats = ['DD/MM/YY', 'ddd, DD', 'MMMM YYYY']\r\n\t\t\tbreak;\r\n\t\tcase 3:\r\n\t\t\tstringFormats = ['MMM, YY', 'MMM', 'YYYY']\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\tbreak;\r\n\t}\r\n\r\n\tmoment.locale(lang);\r\n\treturn moment.utc(date * 1000).format(stringFormats[title ? 2 : 1])\r\n\r\n\r\n};\r\n\r\nconst Graph = (props) => {\r\n\r\n\tconst [graphContainerWidth, setGraphContainerWidth] = useState(0);\r\n\tconst [domain, setDomain] = useState(null);\r\n\tconst [entireDomain, setEntireDomain] = useState(null);\r\n\tconst [grabbing, setGrabbing] = useState(false);\r\n\tconst [emptyData, setEmptyData] = useState(false);\r\n\r\n\tconst graphContainer = useRef(null);\r\n\r\n\tlet showCalendar = props.showCalendar;\r\n\tlet dataGraph = props.dataGraph;\r\n\tlet intervalGraph = props.intervalGraph;\r\n\tlet graphDateFrom = props.graphDateFrom;\r\n\tlet graphDateTo = props.graphDateTo;\r\n\tlet activeServicesPlus = props.activeServicesPlus;\r\n\r\n\tconst size = useWindowSize();\r\n\r\n\tconst setShowBlackScreen = props.setShowBlackScreen;\r\n\tconst setShowCalendar = props.setShowCalendar;\r\n\r\n\r\n\tuseEffect(() => { setShowBlackScreen(showCalendar) }, [setShowBlackScreen, showCalendar]);\r\n\r\n\tuseEffect(() => setGraphContainerWidth(graphContainer?.current?.getBoundingClientRect().width), [size, props.graphLoading]);\r\n\r\n\tuseEffect(() => setDomain(null), [intervalGraph, graphDateFrom, graphDateTo, activeServicesPlus]);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst emptyDataGraph = dataGraph.filter(d => d?.value === 0);\r\n\t\tsetEmptyData(emptyDataGraph.length === dataGraph.length);\r\n\t\t// eslint-disable-next-line\r\n\t}, [dataGraph]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (dataGraph.length) {\r\n\t\t\tconst intervalX = [dataGraph[0]?.date_unix, _.last(dataGraph)?.date_unix];\r\n\t\t\tsetEntireDomain({ x: intervalX });\r\n\t\t\tif (!domain) {\r\n\t\t\t\tsetDomain({ x: [intervalX[1] - (intervalGraph === 1 ? (604800) : intervalGraph === 0 ? 86400 : intervalGraph === 2 ? (86400 * 30) : 31536000), intervalX[1]] });\r\n\t\t\t}\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t}, [dataGraph]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (domain) {\r\n\t\t\tconst intervalLeft = (domain.x[0] - entireDomain.x[0]) / (intervalGraph === 1 ? 604800 : intervalGraph === 0 ? 86400 : intervalGraph === 2 ? 86400 * 30 : 31536000);\r\n\t\t\tconst intervalRight = (entireDomain.x[1] - domain.x[1]) / (intervalGraph === 1 ? 604800 : intervalGraph === 0 ? 86400 : intervalGraph === 2 ? 86400 * 30 : 31536000);\r\n\t\t\tif (intervalLeft < 0.6 && props.enableScrollData) {\r\n\t\t\t\tprops.loadGraphAlwaysOnAsync(true, true);\r\n\t\t\t}\r\n\t\t\tif (intervalRight < 0.6 && props.enableScrollData && entireDomain.x[1] - moment().unix() <= 0) {\r\n\t\t\t\tprops.loadGraphAlwaysOnAsync(true, false);\r\n\t\t\t}\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t}, [domain, props.enableScrollData]);\r\n\r\n\tconst getMax = (arr) => {\r\n\t\tarr = arr.filter(value => value?.value > 0 && value?.date_unix >= domain?.x[0] && value?.date_unix <= domain?.x[1])\r\n\t\t\t.map(value => value?.value)\r\n\t\t\t.reduce((a, b) => a.concat(b), []);\r\n\t\treturn _.mean(arr);\r\n\t}\r\n\r\n\tconst handleCalendar = (value) => {\r\n\t\tprops.setGraphDates(value);\r\n\t\tprops.loadGraphAlwaysOnAsync(false, true);\r\n\t\tsetShowBlackScreen(false);\r\n\t\tsetShowCalendar(false);\r\n\t}\r\n\r\n\tconst graphLoadingContainer = (loading, language) =>
\r\n\t\t\r\n\t\t\t{state => (\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t)}\r\n\t\t\r\n\t
;\r\n\r\n\tconst RenderEmptyData = () => {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\"empty_graph_energy\"\r\n\t\t\t\t
{props.language.energy_graph_title_empty_data}
\r\n\t\t\t\t
{props.language.energy_graph_description_empty_data}
\r\n\t\t\t
\r\n\t\t);\r\n\t};\r\n\r\n\tconst eventHandler = () => {\r\n\t\ttrack('Standby graphic scrolled', {Rank_ID: props.rankGraphIdAlwaysOn})\t\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t{props.graphLoading ?
{graphLoadingContainer(props.graphLoading, props.language)}
:\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t { setShowCalendar(!showCalendar) }}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t

{capitalizedText(formatDateLabel(intervalGraph, domain, props.language.language_locale))}

\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
setGrabbing(true)} onMouseUp={() => setGrabbing(false)}>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{emptyData === false && dataGraph.length ?\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetDomain({ x: domainZoom.x });\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}} />\r\n\t\t\t\t\t\t\t\t\t\t\t}>\r\n\t\t\t\t\t\t\t\t\t\t\t item?.date_unix >= domain?.x[0] && item?.date_unix <= domain?.x[1])}\r\n\t\t\t\t\t\t\t\t\t\t\t\tbarRatio={10}\r\n\t\t\t\t\t\t\t\t\t\t\t\tbarWidth={intervalGraph === 1 ? 60 : intervalGraph === 3 ? 40 : 20}\r\n\t\t\t\t\t\t\t\t\t\t\t\tlabels={({ datum }) => datum?.value === 0 ? '' : datum?.value > 1000 ? `${((datum?.value) / 1000)?.toFixed(2)} kWh` : `${datum?.value} Wh`}\r\n\t\t\t\t\t\t\t\t\t\t\t\tlabelComponent={ (datum?.value >= getMax(dataGraph) ? \"#161617\" : \"#FFF\"), fontSize: 10, fontFamily: \"Inter\", fontWeight: 600 }} angle={270} />}\r\n\t\t\t\t\t\t\t\t\t\t\t\tcornerRadius={{ topLeft: 4, topRight: 4 }}\r\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ data: { fill: ({ datum }) => (datum?.value >= getMax(dataGraph) ? \"url(#linearRedOrangeGradient)\" : \"#323234\") } }}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t Math.round(x * 100) / 100}\r\n\t\t\t\t\t\t\t\t\t\t\t\ttickLabelComponent={}>}\r\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ axis: { stroke: \"transparent\" }, grid: grid, tickLabels: tickLabelsY }} />\r\n\t\t\t\t\t\t\t\t\t\t\t item?.date_unix >= domain?.x[0] && item?.date_unix <= domain?.x[1]).map(item => item?.date_unix)} tickFormat={(x) => `${handlerFormatAxis(x, intervalGraph, props.language.language_locale)}`} style={{ tickLabels: tickLabelsX }} />\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
: }\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
}\r\n\t\t\t
\r\n\t\t
\r\n\t)\r\n\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n\tshowCalendar: state.shared.showCalendar,\r\n\tlanguage: state.shared.language,\r\n\tdataGraph: state.plus.dataGraphAlwaysOn,\r\n\tintervalGraph: state.plus.intervalGraphAlwaysOn,\r\n\tenableScrollData: state.plus.enableScrollDataAlwaysOn,\r\n\tgraphDateFrom: state.plus.graphDateFromAlwaysOn,\r\n\tgraphDateTo: state.plus.graphDateToAlwaysOn,\r\n\tactiveServicesPlus: state.services.activeServicesPlus,\r\n\tgraphLoading: state.plus.loadingAlwaysOnModule,\r\n\trankGraphIdAlwaysOn: state.plus.rankGraphIdAlwaysOn\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n\tsetShowBlackScreen: (payload) => dispatch(sharedActions.setShowBlackScreen(payload)),\r\n\tsetShowCalendar: (payload) => dispatch(sharedActions.setShowCalendar(payload)),\r\n\tloadGraphAlwaysOnAsync: (payload, type) => dispatch(plusActions.loadGraphAlwaysOnAsync(payload, type)),\r\n\tsetGraphDates: (payload) => dispatch(plusActions.setGraphDatesAlwaysOn(payload)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Graph);","import React, { useEffect, useRef } from \"react\";\r\n\r\nimport { connect } from \"react-redux\";\r\n\r\nimport * as plusActions from '../../../../store/actions/Plus';\r\n\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nconst indicatorsLoading =
\r\n \r\n \r\n \r\n
;\r\n\r\nconst RenderWidgets = ({ item, language }) => {\r\n\r\n const hasHovered = useRef(false);\r\n\r\n const handleHover = () => {\r\n if (!hasHovered.current) {\r\n hasHovered.current = true;\r\n track('Standby widget hover', { Standby_Widget_ID: item?.title }); \r\n }\r\n };\r\n\r\n const handleLeave = () => {\r\n hasHovered.current = false;\r\n };\r\n\r\n return (\r\n \r\n

{language[item.title]}

\r\n

{item.value}

\r\n
\r\n {item.kpi && }\r\n

{item?.text_value}{language[item?.text]}

\r\n
\r\n );\r\n};\r\n\r\nconst Cards = (props) => {\r\n\r\n let activeServicesPlus = props.activeServicesPlus;\r\n let loadAlwaysOnIndicators = props.loadAlwaysOnIndicators;\r\n let alwaysOnIndicators = props.alwaysOnIndicators;\r\n\r\n useEffect(() => {\r\n const request = async () => await loadAlwaysOnIndicators();\r\n if (activeServicesPlus.length) request()\r\n }, [activeServicesPlus, loadAlwaysOnIndicators]);\r\n\r\n return (\r\n
\r\n {props.loadingAlwaysOnIndicators ?\r\n
\r\n {indicatorsLoading}\r\n
:\r\n alwaysOnIndicators.length &&\r\n alwaysOnIndicators.map((d, index) => (\r\n
\r\n \r\n
\r\n ))\r\n }\r\n
\r\n )\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n alwaysOnIndicators: state.plus.alwaysOnIndicators,\r\n loadingAlwaysOnIndicators: state.plus.loadingAlwaysOnIndicators,\r\n devices: state.plus.devices,\r\n activeServicesPlus: state.services.activeServicesPlus,\r\n language: state.shared.language\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n loadAlwaysOnIndicators: () => dispatch(plusActions.loadAlwaysOnIndicators()),\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Cards)\r\n\r\n","import React, { useEffect } from \"react\";\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as servicesActions from '../../../../store/actions/Services';\r\nimport * as plusActions from '../../../../store/actions/Plus';\r\n\r\nimport Header from \"../../../shared/Header\";\r\nimport Graph from \"./graph/Graph\";\r\nimport Cards from \"./Cards\";\r\nimport ServicesPlus from \"../shared/ServicesContainer\";\r\n\r\nconst AlwaysOn = (props) => {\r\n\r\n let account = props.account;\r\n const loadServicesAsync = props.loadServicesAsync;\r\n let intervalGraphAlwaysOn = props.intervalGraphAlwaysOn;\r\n let activeServicesPlus = props.activeServicesPlus;\r\n const loadGraphAlwaysOnAsync = props.loadGraphAlwaysOnAsync;\r\n\r\n useEffect(() => {\r\n if (!props.activeServicesPlus?.length) {\r\n account && loadServicesAsync();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [account]);\r\n\r\n useEffect(() => {\r\n if (activeServicesPlus.length) {\r\n loadGraphAlwaysOnAsync();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [activeServicesPlus, intervalGraphAlwaysOn]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n activeServicesPlus: state.services.activeServicesPlus,\r\n account: state.accounts.account,\r\n language: state.shared.language,\r\n intervalGraphAlwaysOn: state.plus.intervalGraphAlwaysOn,\r\n loadingGraph: state.plus.loadingAlwaysOnModule,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n setActiveServicesPlus: (payload) => dispatch(servicesActions.setActiveServicesPlus(payload)),\r\n setActiveServicesEnergy: (payload) => dispatch(servicesActions.setActiveServicesEnergy(payload)),\r\n loadServicesAsync: () => dispatch(servicesActions.loadServicesAsync()),\r\n loadGraphAlwaysOnAsync: () => dispatch(plusActions.loadGraphAlwaysOnAsync()),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AlwaysOn);","import React, { useRef, useEffect, useState, Fragment } from \"react\";\r\nimport { Transition } from 'react-transition-group';\r\nimport { Loader } from 'rsuite';\r\n\r\nimport { connect } from \"react-redux\";\r\n\r\nimport * as plus from \"../../../../store/actions/Plus\";\r\nimport * as servicesActions from '../../../../store/actions/Services';\r\nimport * as themeActions from '../../../../store/actions/Theme';\r\n\r\nimport { VictoryChart, VictoryGroup, VictoryAxis, VictoryLine, VictoryArea, createContainer, VictoryLabel, Rect } from \"victory\";\r\n\r\nimport { useWindowSize } from \"../../../shared/utilities/useWindowSize\";\r\n\r\nimport { gradients } from \"../../../shared/svgs/GraphStyles\";\r\nimport empty_data_device from \"../../../../imgs/empty-data-device.svg\";\r\nimport empty_data_device_light from \"../../../../imgs/empty-data-device-light.svg\";\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport 'moment/locale/es'\r\n\r\nimport _ from 'lodash';\r\n\r\nconst BouncingDotsLoader = (props) => {\r\n return (\r\n
\r\n {[0, 1, 2].map((_item, index) => (
))}\r\n
\r\n );\r\n};\r\n\r\n\r\nconst getInitPage = (timezone) => {\r\n const initPageByTime = new Date().toLocaleString(\"en-US\", { timeZone: timezone });\r\n return new Date(initPageByTime).getHours();\r\n}\r\n\r\n\r\nconst areaStyle = (variable, theme, line = false) => {\r\n switch (variable) {\r\n case 'active_power_':\r\n return (\r\n [\r\n {\r\n data: {\r\n fill: line ? \"none\" : `url(#linearBlueLightTransparent25${theme !== 'dark' ? 'Light' : ''})`,\r\n stroke: \"var(--blue-500)\",\r\n strokeWidth: 2\r\n }\r\n },\r\n {\r\n data: {\r\n fill: line ? \"none\" : `url(#linearBlueTransparent25${theme !== 'dark' ? 'Light' : ''})`,\r\n stroke: \"var(--blue-600)\",\r\n strokeWidth: 2,\r\n fillOpacity: 0.6\r\n }\r\n },\r\n {\r\n data: {\r\n fill: line ? \"none\" : `url(#linearBlueDarkTransparent25${theme !== 'dark' ? 'Light' : ''})`,\r\n stroke: \"var(--blue-700)\",\r\n strokeWidth: 2,\r\n fillOpacity: 0.6\r\n }\r\n }\r\n ]);\r\n case 'rms_voltage_':\r\n return (\r\n [\r\n {\r\n data: {\r\n fill: line ? \"none\" : `url(#linearGreenTransparent25${theme !== 'dark' ? 'Light' : ''})`,\r\n stroke: \"var(--brand-primary-500)\",\r\n strokeWidth: 2,\r\n }\r\n },\r\n {\r\n data: {\r\n fill: line ? \"none\" : `url(#linearGreenLightTransparent25${theme !== 'dark' ? 'Light' : ''})`,\r\n stroke: \"var(--brand-primary-600)\",\r\n strokeWidth: 2,\r\n fillOpacity: 0.6\r\n }\r\n },\r\n {\r\n data: {\r\n fill: line ? \"none\" : `url(#linearGreenDarkTransparent25${theme !== 'dark' ? 'Light' : ''})`,\r\n stroke: \"var(--brand-primary-700)\",\r\n strokeWidth: 2,\r\n fillOpacity: 0.6\r\n }\r\n },\r\n ]);\r\n case 'rms_current_':\r\n return (\r\n [\r\n {\r\n data: {\r\n fill: line ? \"none\" : `url(#linearPurpleLightTransparent25${theme !== 'dark' ? 'Light' : ''})`,\r\n stroke: \"var(--purple-500)\",\r\n strokeWidth: 2,\r\n }\r\n },\r\n {\r\n data: {\r\n fill: line ? \"none\" : `url(#linearPurpleTransparent25${theme !== 'dark' ? 'Light' : ''})`,\r\n stroke: \"var(--purple-600)\",\r\n strokeWidth: 2,\r\n fillOpacity: 0.6\r\n }\r\n },\r\n {\r\n data: {\r\n fill: line ? \"none\" : `url(#linearPurpleDarkTransparent25${theme !== 'dark' ? 'Light' : ''})`,\r\n stroke: \"var(--purple-700)\",\r\n strokeWidth: 2,\r\n fillOpacity: 0.6\r\n }\r\n },\r\n ]);\r\n default:\r\n return []\r\n\r\n }\r\n}\r\n\r\nconst variableName = graph => {\r\n switch (graph) {\r\n case 'active_power_':\r\n return \"Potencia (Watts)\";\r\n case 'rms_voltage_':\r\n return \"Voltaje (Volts)\";\r\n case 'rms_current_':\r\n return \"Corriente (Amps)\";\r\n default:\r\n return \"\";\r\n }\r\n}\r\n\r\nconst LoadingHistoryData = () =>\r\n
\r\n \r\n
;\r\n\r\nconst graphLoadingContainer = (loading, language, theme) =>
\r\n \r\n {state => (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n \r\n
;\r\n\r\nconst VictoryZoomContainer = createContainer('zoom', 'voronoi');\r\n\r\nconst Graphs = (props) => {\r\n\r\n const { theme } = props;\r\n\r\n const graphContainer = useRef(null);\r\n\r\n const size = useWindowSize();\r\n\r\n const [graphContainerWidth, setGraphContainerWidth] = useState(0);\r\n const [graph_1, setGraph_1] = useState('active_power_');\r\n const [graph_2, setGraph_2] = useState('rms_voltage_');\r\n const [graph_3, setGraph_3] = useState('rms_current_');\r\n\r\n const [firstLine, setFirstLine] = useState(1);\r\n const [secondLine, setSecondLine] = useState(2);\r\n const [thirdLine, setThirdLine] = useState(3);\r\n\r\n const [typeLines, setTypeLines] = useState(false);\r\n\r\n const [day, setDay] = useState(0);\r\n\r\n const [data, setData] = useState([]);\r\n\r\n const [domain, setDomain] = useState(null);\r\n const [entireDomain, setEntireDomain] = useState(null);\r\n const [showStreaming, setShowStreaming] = useState(true);\r\n const [zoomMinutes, setZoomMinutes] = useState(3);\r\n const [grabbing, setGrabbing] = useState(false);\r\n const [pointTooltip, setPointTooltip] = useState(null);\r\n const [showTooltip, setShowTooltip] = useState(false);\r\n const [enableLoaderGraph, setEnableLoaderGraph] = useState(false);\r\n const [indexVariable, setIndexVariable] = useState(0);\r\n const [expandedVariable, setExpandedVariable] = useState(false);\r\n const [expandedLine, setExpandedLine] = useState(false);\r\n\r\n let dataGraph = props.dataGraph;\r\n let deviceActive = props.devices.filter(value => value?.id_service === props.activeServicesPlus[0]?.idService)[0];\r\n\r\n useEffect(() => {\r\n if (expandedVariable) {\r\n if (graph_1 === 'active_power_') track('Quality variable clicked', { Quality_Variable_ID: 'active_power' });\r\n if (graph_1 === 'rms_voltage_') track('Quality variable clicked', { Quality_Variable_ID: 'rms_voltage' });\r\n if (graph_1 === 'rms_current_') track('Quality variable clicked', { Quality_Variable_ID: 'rms_current' });\r\n setExpandedVariable(false);\r\n }\r\n }, [graph_1, expandedVariable])\r\n\r\n useEffect(() => {\r\n if (expandedLine) {\r\n if (firstLine === 1) track('Quality variable clicked', { Quality_Variable_ID: 'line_1' });\r\n if (firstLine === 2) track('Quality variable clicked', { Quality_Variable_ID: 'line_2' });\r\n if (firstLine === 3) track('Quality variable clicked', { Quality_Variable_ID: 'line_3' });\r\n setExpandedLine(false);\r\n }\r\n }, [firstLine, expandedLine])\r\n\r\n useEffect(() => { setGraphContainerWidth(graphContainer.current.getBoundingClientRect().width) }, [size]);\r\n\r\n useEffect(() => {\r\n if (!props.devices.length) {\r\n props.loadDevices()\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.devices.length && props.activeServicesPlus.length && !props.loadingData) {\r\n setZoomMinutes(3);\r\n props.loadInitData(getInitPage(deviceActive?.timezone) + 1);\r\n setDomain(null);\r\n setShowStreaming(true);\r\n setEnableLoaderGraph(false);\r\n setIndexVariable(0);\r\n setFirstLine(1);\r\n setSecondLine(2);\r\n setThirdLine(3);\r\n setPointTooltip(null);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.devices, props.activeServicesPlus]);\r\n\r\n useEffect(() => {\r\n if (dataGraph?.length > 0) {\r\n const intervalX = [dataGraph[0].time, _.last(dataGraph).time];\r\n setEntireDomain({ x: intervalX });\r\n if (!domain) {\r\n setDomain({ x: [intervalX[1] - zoomMinutes * 60 * 1000 < intervalX[0] ? intervalX[0] : intervalX[1] - zoomMinutes * 60 * 1000, intervalX[1]] });\r\n }\r\n if (showStreaming && data.length) {\r\n setDomain({ x: [intervalX[1] - zoomMinutes * 60 * 1000 < intervalX[0] ? intervalX[0] : intervalX[1] - (zoomMinutes) * 60 * 1000, intervalX[1]] });\r\n }\r\n }\r\n else {\r\n setDomain(null);\r\n setShowStreaming(true);\r\n setData([]);\r\n setZoomMinutes(3);\r\n setIndexVariable(0);\r\n setFirstLine(1);\r\n setSecondLine(2);\r\n setThirdLine(3);\r\n setPointTooltip(null);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [dataGraph, showStreaming]);\r\n\r\n useEffect(() => {\r\n if (domain) {\r\n let filtered = dataGraph.filter(item => item.time >= domain.x[0] - 30000 && item?.time <= domain.x[1] + 30000);\r\n if (filtered.length > 240) {\r\n const k = Math.ceil(filtered.length / 240);\r\n filtered = filtered.filter((_d, i) => ((i % k) === 0));\r\n }\r\n setData(filtered);\r\n const dataGraphNoInit = props.dataGraphPage.filter(item => !item?.init);\r\n const firstAvailablePage = dataGraphNoInit.length ? dataGraphNoInit[0]?.page : getInitPage(deviceActive?.timezone);\r\n const intervalLeft = (domain.x[0] - entireDomain.x[0]) / 60000;\r\n const verifyPageLeft = props.dataGraphPage.filter(item => item?.page === firstAvailablePage - 1);\r\n if (intervalLeft <= 60 && !props.enableHistory && !verifyPageLeft.length) {\r\n props.loadHistoryData(handleBeforeDay(firstAvailablePage - 1), false);\r\n }\r\n if (props.dataGraphPage.length >= 3) {\r\n const lastAvailablePage = _.last(dataGraphNoInit)?.page;\r\n const lastValueX = _.last(props.dataGraphPage[props.dataGraphPage.length - 2]?.data)?.time;\r\n const intervalRight = (lastValueX - domain.x[1]) / 60000;\r\n const verifyPage = props.dataGraphPage.filter(item => item?.page === lastAvailablePage + 1);\r\n if (intervalRight <= 60 && !verifyPage.length && !props.enableHistory && lastAvailablePage + 1 !== _.last(props.dataGraphPage).page - 1) {\r\n props.loadHistoryData(handleAfterDay(lastAvailablePage + 1), false);\r\n }\r\n }\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [domain, props.activeServicesPlus]);\r\n\r\n const handleBeforeDay = page => {\r\n if (page > 0) return { page: page, day: day, type: 0 }\r\n else {\r\n setDay(day + 1);\r\n return { page: 24, day: day + 1, type: 0 };\r\n }\r\n }\r\n\r\n const handleAfterDay = page => {\r\n if (page < 25) return { page: page, day: day, type: 1 }\r\n else {\r\n setDay(day - 1);\r\n return { page: 1, day: day - 1, type: 1 };\r\n }\r\n }\r\n\r\n const formatNumber = number => {\r\n if (number >= 1000) {\r\n number = (number / 1000).toFixed(2);\r\n return (`${number} k`)\r\n }\r\n else {\r\n return (`${(number).toFixed(2)} `);\r\n }\r\n }\r\n\r\n const handlerIndexVariable = (variable) => {\r\n if (variable === 'active_power_') setIndexVariable(0);\r\n if (variable === 'rms_voltage_') setIndexVariable(1);\r\n if (variable === 'rms_current_') setIndexVariable(2);\r\n }\r\n\r\n const handlerVariable = (variable) => {\r\n if (graph_2 === variable) {\r\n setGraph_2(graph_1);\r\n setGraph_1(variable);\r\n handlerIndexVariable(variable);\r\n }\r\n if (graph_3 === variable) {\r\n setGraph_3(graph_1);\r\n setGraph_1(variable);\r\n handlerIndexVariable(variable);\r\n }\r\n }\r\n\r\n const Tooltip = ({ scale }) => {\r\n let x = pointTooltip ? scale?.x(pointTooltip?.time) : 150;\r\n let y_1 = pointTooltip ? scale?.y(pointTooltip[`${graph_1}${typeLines ? firstLine : 1}`]) : 50;\r\n let y_2 = pointTooltip ? scale?.y(pointTooltip[`${graph_1}${typeLines ? firstLine : 2}`]) : 50;\r\n let y_3 = pointTooltip && deviceActive?.phases === 3 ? scale.y(pointTooltip[`${graph_1}${typeLines ? firstLine : 3}`]) : 50;\r\n let y_value = pointTooltip ? pointTooltip._y : 0;\r\n let y_value_1 = pointTooltip ? pointTooltip[`${graph_1}1`] : 0;\r\n let y_value_2 = pointTooltip ? pointTooltip[`${graph_1}2`] : 0;\r\n let y_value_3 = pointTooltip && deviceActive?.phases === 3 ? pointTooltip[`${graph_1}3`] : 0;\r\n let x_value = pointTooltip ? moment.utc(pointTooltip?.time).format('HH:mm:ss') : '00:00';\r\n const unit = graph_1 === 'active_power_' ? 'W' : graph_1 === 'rms_voltage_' ? 'V' : 'A';\r\n return (\r\n \r\n {pointTooltip ?\r\n \r\n \r\n \r\n \r\n {!typeLines ?\r\n \r\n \r\n {deviceActive?.phases === 3 ? : null}\r\n : null\r\n }\r\n {/* */}\r\n {typeLines ?\r\n \r\n \r\n \r\n \r\n \r\n {x_value}\r\n \r\n : null}\r\n {typeLines ? {`${formatNumber(y_value)}${unit}`} :\r\n \r\n {x_value}\r\n Línea 1: {`${formatNumber(y_value_1)}${unit}`}\r\n Línea 2: {`${formatNumber(y_value_2)}${unit}`}\r\n {deviceActive?.phases === 3 ? Línea 3: {`${formatNumber(y_value_3)}${unit}`} : null}\r\n }\r\n : null}\r\n \r\n );\r\n }\r\n\r\n return (\r\n
\r\n {gradients(theme)}\r\n
\r\n {!props.loadingData && data.length ? \r\n
\r\n
\r\n

setTypeLines(!typeLines)} style={{width: 100}} className={`${!typeLines ? \"content-default-tertiary\" : \"button-fill-brand rounded-pill txt-black\"} text-center label-medium-regular pe-pointer mt-0 ${theme} py-2 px-3`}>{props.language.quality_graph_lines}

\r\n

setTypeLines(!typeLines)} style={{width: 100}} className={`${typeLines ? \"content-default-tertiary\" : \"button-fill-brand rounded-pill txt-black\"} text-center label-medium-regular pe-pointer py-2 px-3 mt-0 ${theme}`}>{props.language.quality_graph_variables}

\r\n
\r\n {/*
\r\n

{props.language.quality_graph_lines}

\r\n { setTypeLines(!typeLines); }} />\r\n

{props.language.quality_graph_variables}

\r\n
*/}\r\n {\r\n typeLines && dataGraph.length &&\r\n
\r\n
{ setIndexVariable(0); handlerVariable('active_power_'); track('Quality variable selected', { Quality_Variable_ID: 'active_power' }); }}>\r\n
{props.language.quality_graph_power}
\r\n
\r\n
{ setIndexVariable(1); handlerVariable('rms_voltage_'); track('Quality variable selected', { Quality_Variable_ID: 'rms_voltage' }); }}>\r\n
{props.language.quality_graph_voltage}
\r\n
\r\n
{ setIndexVariable(2); handlerVariable('rms_current_'); track('Quality variable selected', { Quality_Variable_ID: 'rms_current' }); }}>\r\n
{props.language.quality_graph_electricity}
\r\n
\r\n {/*
*/}\r\n
\r\n }\r\n
: null}\r\n
\r\n
\r\n {\r\n props.loadingData ?\r\n
{graphLoadingContainer(props.loadingData, props.language, theme)}
:\r\n data.length ?\r\n \r\n

{typeLines ? `${variableName(graph_1)}-Línea ${firstLine}` : `${variableName(graph_1)}`}

\r\n
setGrabbing(true)} onMouseUp={() => setGrabbing(false)} onMouseEnter={() => setShowTooltip(true)} onMouseLeave={() => setShowTooltip(false)} >\r\n {\r\n setDomain({ x: domainZoom.x });\r\n if (domain.x[1] === entireDomain.x[1]) setShowStreaming(true);\r\n else setShowStreaming(false);\r\n setEnableLoaderGraph(true);\r\n }}\r\n activateData={false}\r\n onActivated={(point => setPointTooltip(point[0]))}\r\n />}\r\n >\r\n {typeLines ?\r\n \r\n \r\n :\r\n \r\n \r\n \r\n {deviceActive?.phases === 2 ? null :\r\n \r\n }\r\n \r\n }\r\n }>} \r\n style={{ \r\n axis: { stroke: \"transparent\" }, \r\n grid: {\r\n fill: theme === 'dark' ? \"var(--white)\" : \"var(--black)\", \r\n stroke: theme === 'dark' ? \"var(--white)\" : \"var(--black)\", \r\n pointerEvents: \"painted\",\r\n strokeWidth: 1,\r\n opacity: 0.2 }, \r\n tickLabels: {fill: theme === 'dark' ? \"var(--white)\" : \"var(--black)\", fontFamily: 'Inter', fontSize: 10}\r\n }} />\r\n {showTooltip ? : null}\r\n \r\n {(props.enableHistory && domain?.x[0] === entireDomain?.x[0] && enableLoaderGraph) ? : null}\r\n
\r\n
\r\n

{typeLines ? `${variableName(graph_1)}-Línea ${secondLine}` : `${variableName(graph_2)}`}

\r\n
\r\n
setGrabbing(true)} onMouseUp={() => setGrabbing(false)} onMouseEnter={() => setShowTooltip(true)} onMouseLeave={() => setShowTooltip(false)}>\r\n
\r\n {\r\n setDomain({ x: domainZoom.x });\r\n if (domain.x[1] === entireDomain.x[1]) setShowStreaming(true);\r\n else setShowStreaming(false);\r\n setEnableLoaderGraph(true);\r\n }}\r\n //onActivated={enableTag? null : (point => setPointTooltip(point[0]))} \r\n />}\r\n >\r\n {typeLines ?\r\n \r\n \r\n :\r\n \r\n \r\n \r\n {deviceActive?.phases === 2 ? null :\r\n }\r\n }\r\n `${t}`}\r\n tickLabelComponent={\r\n }>\r\n }\r\n style={{ \r\n axis: { stroke: \"transparent\" }, \r\n grid: {\r\n fill: theme === 'dark' ? \"var(--white)\" : \"var(--black)\", \r\n stroke: theme === 'dark' ? \"var(--white)\" : \"var(--black)\", \r\n pointerEvents: \"painted\",\r\n strokeWidth: 1,\r\n opacity: 0.2 }, \r\n tickLabels: {fill: theme === 'dark' ? \"var(--white)\" : \"var(--black)\", fontFamily: 'Inter', fontSize: 10}\r\n }} />\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {deviceActive?.phases === 2 && typeLines ? null :\r\n \r\n
\r\n

{typeLines ? `${variableName(graph_1)}-Línea ${thirdLine}` : `${variableName(graph_3)}`}

\r\n
\r\n
setGrabbing(true)} onMouseUp={() => setGrabbing(false)} onMouseEnter={() => setShowTooltip(true)} onMouseLeave={() => setShowTooltip(false)}>\r\n
\r\n {\r\n setDomain({ x: domainZoom.x });\r\n if (domain.x[1] === entireDomain.x[1]) setShowStreaming(true);\r\n else setShowStreaming(false);\r\n setEnableLoaderGraph(true);\r\n }}\r\n //onActivated={enableTag? null : (point => setPointTooltip(point[0]))} \r\n />}\r\n >\r\n {typeLines ?\r\n \r\n \r\n :\r\n \r\n \r\n \r\n {deviceActive?.phases === 2 ? null :\r\n }\r\n }\r\n }>} \r\n style={{ \r\n axis: { stroke: \"transparent\" }, \r\n grid: {\r\n fill: theme === 'dark' ? \"var(--white)\" : \"var(--black)\", \r\n stroke: theme === 'dark' ? \"var(--white)\" : \"var(--black)\", \r\n pointerEvents: \"painted\",\r\n strokeWidth: 1,\r\n opacity: 0.2 }, \r\n tickLabels: {fill: theme === 'dark' ? \"var(--white)\" : \"var(--black)\", fontFamily: 'Inter', fontSize: 10}\r\n }} />\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
}\r\n
\r\n

{moment.utc(domain?.x[0]).format('HH:mm:ss')}

\r\n

{moment.utc((domain?.x[0] + domain?.x[1]) / 2).format('HH:mm:ss')}

\r\n

{moment.utc(domain?.x[1]).format('HH:mm:ss')}

\r\n
\r\n
:\r\n
\r\n \"empty_data_device\"\r\n

{props.language.plus_graph_text_empty_data_device}

\r\n

{props.language.plus_graph_text_last_connection}{props.lastConection}

\r\n {/* {\r\n setDay(props.lastDay);\r\n //setPage(props.lastPage);\r\n await props.loadHistoryData({ page: props.lastPage, day: props.lastDay, type: 0 }, true);\r\n }}>\r\n {props.language.plus_graph_button_show_last_records_device}\r\n */}\r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n )\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n dataGraph: state.plus.dataGraph,\r\n loadingData: state.plus.loadingInitData,\r\n enableHistory: state.plus.enableHistory,\r\n dataGraphPage: state.plus.dataGraphPage,\r\n graphContinerWidth: ownProps.graphContinerWidth,\r\n devices: state.plus.devices,\r\n activeServicesPlus: state.services.activeServicesPlus,\r\n language: state.shared.language,\r\n lastConection: state.plus.lastConection,\r\n lastDay: state.plus.lastDay,\r\n lastPage: state.plus.lastPage,\r\n account: state.accounts.account,\r\n theme: state.theme.theme,\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n loadInitData: page => dispatch(plus.loadInitData(page)),\r\n loadHistoryData: (page, loading) => dispatch(plus.loadHistoryData(page, loading)),\r\n setEnableHistory: payload => dispatch(plus.setEnableHistory(payload)),\r\n loadDevices: () => dispatch(plus.loadDevices()),\r\n resetData: () => dispatch(plus.resetData()),\r\n loadServicesAsync: () => dispatch(servicesActions.loadServicesAsync()),\r\n setTheme: payload => dispatch(themeActions.setTheme(payload)),\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Graphs)","import React, { Fragment } from \"react\";\r\n\r\nimport { connect } from \"react-redux\";\r\n\r\nimport { VictoryChart, VictoryPolarAxis, VictoryLabel, VictoryStack, VictoryBar } from 'victory';\r\n\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\n\r\nimport _ from 'lodash';\r\n\r\nimport empty_modules_plus from \"../../../../imgs/empty-modules-plus.svg\";\r\nimport empty_modules_plus_light from \"../../../../imgs/empty-modules-plus-light.svg\";\r\n\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nimport { track } from \"@amplitude/analytics-browser\";\r\n\r\nconst RenderCardEmpty = ({ language, theme }) => {\r\n return (\r\n
\r\n { theme === 'dark' ?\r\n \"empty_radar_data\" :\r\n \"empty_radar_data\" \r\n }\r\n
\r\n {language.plus_graph_title_empty_data}\r\n
\r\n
\r\n )\r\n};\r\n\r\nconst IndicatorsLoading = props => {\r\n const {theme} = props;\r\n return (\r\n
\r\n \r\n \r\n \r\n
)\r\n };\r\n\r\nconst PowerFactor = (props) => {\r\n\r\n const { theme } = props;\r\n let deviceActive = props.activeServicesPlus.length ? props.devices.filter(value => value?.id_service === props.activeServicesPlus[0]?.idService) : [];\r\n\r\n return (\r\n \r\n {\r\n props.loadingData ?\r\n
:\r\n !props.dataGraph.length || !('power_factor_1' in _.last(props.dataGraph)) ?\r\n
\r\n

{props.language.power_factor_title}

\r\n track('Quality widget ll clicked')}>\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n track('Quality widget ll clicked')} >\r\n \r\n
\r\n :\r\n
\r\n
\r\n
\r\n

{props.language.power_factor_title}

\r\n
\r\n track('Quality widget ll clicked')} >\r\n \r\n
\r\n track('Quality widget ll clicked')} >\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {(deviceActive[0]?.phases === 2 ? [1, 2] : [1, 2, 3]).map((item) =>\r\n \r\n
\r\n

{`${props.language.power_factor_label_phase} ${item}`}

\r\n
\r\n
\r\n \r\n datum.tick < _.last(props.dataGraph)[`power_factor_${item}`] * 100 ? \r\n (theme === 'dark' ? \"var(--gray-800)\" : \"var(--gray-200)\") : \r\n _.last(props.dataGraph)[`power_factor_${item}`] >= 0.92 ? \"url(#green)\" : _.last(props.dataGraph)[`power_factor_${item}`] >= 0.8 ? (theme === 'dark' ? \"var(--orange-500)\" : \"var(--orange-600)\") : \"url(#red)\", \r\n strokeWidth: (datum) => datum.tick < _.last(props.dataGraph)[`power_factor_${item}`] * 100 ? 3 : 1, \r\n strokeOpacity: 1,\r\n strokeDasharray: (datum) => datum.tick >= 100 ? \"4,4\" : null\r\n }\r\n }}\r\n />\r\n \r\n = 0.92 ? \"url(#green)\" : _.last(props.dataGraph)[`power_factor_${item}`] >= 0.8 ? (theme === 'dark' ? \"var(--orange-500)\" : \"var(--orange-600)\") : \"url(#red)\", strokeWidth: 2, width: 360, opacity: _.last(props.dataGraph)[`power_factor_${item}`] >= 0.7 ? 0.9 : 0.9 } }}\r\n >\r\n \r\n \r\n = 0.8 ? 16 : 14, fill: _.last(props.dataGraph)[`power_factor_${item}`] >= 0.92 ? \"url(#green)\" : _.last(props.dataGraph)[`power_factor_${item}`] >= 0.8 ? (theme === 'dark' ? \"var(--orange-500)\" : \"var(--orange-600)\") : \"url(#red)\", fontWeight: \"bold\"}}\r\n text={(_.last(props.dataGraph)[`power_factor_${item}`] ).toFixed(3) + \"\"}\r\n />\r\n \r\n
\r\n
\r\n {_.last(props.dataGraph)[`power_factor_${item}`] >= 0.92 ?\r\n props.language.power_factor_label_optime_range :\r\n _.last(props.dataGraph)[`power_factor_${item}`] >= 0.8 ?\r\n props.language.power_factor_label_reactive_range :\r\n props.language.power_factor_label_deficient_range\r\n }\r\n
\r\n
)}\r\n \r\n
\r\n \r\n \r\n }\r\n \r\n )\r\n\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n dataGraph: state.plus.dataGraph,\r\n loadingData: state.plus.loadingInitData,\r\n language: state.shared.language,\r\n devices: state.plus.devices,\r\n activeServicesPlus: state.services.activeServicesPlus,\r\n theme: state.theme.theme,\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(PowerFactor);","import React, { useEffect } from \"react\";\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as servicesActions from '../../../../store/actions/Services';\r\nimport * as plusActions from '../../../../store/actions/Plus';\r\n\r\nimport Header from \"../../../shared/Header\";\r\nimport Graphs from \"./Graphs\";\r\n// import Cards from \"./Cards\";\r\nimport PowerFactor from \"./PowerFactor\";\r\nimport Radar from \"../modules/Radar\";\r\nimport ServicesPlus from \"../shared/ServicesContainer\";\r\n\r\nconst QualityEnergy = (props) => {\r\n const { theme } = props;\r\n let account = props.account;\r\n const loadServicesAsync = props.loadServicesAsync;\r\n const setOpenQualityEnergy = props.setOpenQualityEnergy; \r\n\r\n useEffect(() => {\r\n if (!props.activeServicesPlus.length) {\r\n account && loadServicesAsync();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [account]);\r\n\r\n useEffect(() => {\r\n if (props.dataGraph.length) {\r\n props.resetData();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.activeServicesPlus, account]);\r\n\r\n useEffect(() => { setOpenQualityEnergy(true) }, [setOpenQualityEnergy]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {/* */}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n activeServicesPlus: state.services.activeServicesPlus,\r\n dataGraph: state.plus.dataGraph,\r\n account: state.accounts.account,\r\n language: state.shared.language,\r\n theme: state.theme.theme,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n setActiveServicesPlus: (payload) => dispatch(servicesActions.setActiveServicesPlus(payload)),\r\n setActiveServicesEnergy: (payload) => dispatch(servicesActions.setActiveServicesEnergy(payload)),\r\n loadServicesAsync: () => dispatch(servicesActions.loadServicesAsync()),\r\n setOpenQualityEnergy: (payload) => dispatch(plusActions.setOpenQualityEnergy(payload)),\r\n resetData: () => dispatch(plusActions.resetData()),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(QualityEnergy);","import React, { useState, useEffect } from 'react';\r\nimport { bounceInRight, bounceOutLeft, bounceIn, bounceOut } from 'react-animations';\r\nimport Radium, { StyleRoot } from 'radium';\r\n\r\nimport NotificationBox from '../../notifications/NotificationBox';\r\n\r\nconst AnimatedComponent = ({ data, type, theme }) => {\r\n const [currentIndex, setCurrentIndex] = useState(0);\r\n const [isEntering, setIsEntering] = useState(true);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(() => {\r\n setIsEntering(false);\r\n setTimeout(() => {\r\n setCurrentIndex((currentIndex + 1) % data.length);\r\n setIsEntering(true);\r\n }, 500);\r\n }, 3000);\r\n\r\n return () => clearInterval(interval);\r\n\r\n }, [currentIndex, data]);\r\n\r\n const animationStyle = {\r\n animationName: Radium.keyframes(isEntering ? type === 0 ? bounceIn : bounceInRight : type === 0 ? bounceOut : bounceOutLeft, 'bounce'),\r\n animationDuration: '1s',\r\n animationFillMode: 'both',\r\n };\r\n\r\n const elementToRender = data[currentIndex];\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n {type === 0 ?
\r\n \r\n

{elementToRender.title}

\r\n
\r\n :
}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AnimatedComponent;\r\n","import React from \"react\"\r\n\r\nimport LogoLight from '../../../imgs/logo-enrg-light.svg'\r\nimport LogoDark from '../../../imgs/logo-enrg-dark.svg'\r\nimport AnimatedComponent from \"../utils/AnimatedComponent\"\r\nimport ThemedImage from \"../utils/ThemedImage\"\r\n\r\nimport { themes } from '../../../utils/enums';\r\n\r\nconst services = [\r\n { title: \"Home\", icon: \"energy\" },\r\n { title: \"Plus\", icon: \"plus\" },\r\n { title: \"Genius\", icon: \"genius\" },\r\n { title: \"Efficiency\", icon: \"efficiency\" },\r\n]\r\n\r\nexport const stepsDashboard = (language, theme) => {\r\n return ([\r\n {\r\n content: (\r\n
\r\n \"logo-neu-energy\" \r\n
\r\n ),\r\n title: language.onboarding_dashboard_title_step1,\r\n description: language.onboarding_dashboard_description_step1,\r\n placement: \"center\",\r\n target: \"#navigate_dashboard\",\r\n disableBeacon: true,\r\n steps: 7,\r\n }, \r\n {\r\n content: (\r\n
\r\n
\r\n \r\n
\r\n
\r\n ),\r\n title: language.onboarding_dashboard_title_step2,\r\n description: language.onboarding_dashboard_description_step2,\r\n placement: \"right\",\r\n target: \"#navigate_modules\",\r\n floaterProps: {\r\n disableAnimation: true,\r\n },\r\n disableBeacon: true,\r\n steps: 7,\r\n }, \r\n {\r\n content:\r\n
\r\n \r\n
,\r\n title: language.onboarding_dashboard_title_step3,\r\n description: language.onboarding_dashboard_description_step3,\r\n placement: \"right\",\r\n target: \"#navigate_modules\",\r\n floaterProps: {\r\n disableAnimation: true,\r\n },\r\n disableBeacon: true,\r\n steps: 7,\r\n }, \r\n {\r\n content: (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n ),\r\n title: language.onboarding_dashboard_title_step4,\r\n description: language.onboarding_dashboard_description_step4,\r\n placement: \"auto\", \r\n target: \"#navigate_dashboard\",\r\n floaterProps: {\r\n disableAnimation: true,\r\n },\r\n disableBeacon: true,\r\n steps: 7,\r\n }, \r\n {\r\n content: (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n ),\r\n title: language.onboarding_dashboard_title_step5,\r\n description: language.onboarding_dashboard_description_step5,\r\n placement: \"auto\", \r\n target: \"#navigate_dashboard\",\r\n floaterProps: {\r\n disableAnimation: true,\r\n },\r\n disableBeacon: true,\r\n steps: 7,\r\n }, \r\n ])\r\n}\r\n","import React, { useRef, useEffect } from 'react'\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as energyActions from '../../store/actions/Energy';\r\nimport * as servicesActions from '../../store/actions/Services';\r\nimport * as sharedActions from '../../store/actions/Shared';\r\nimport * as invoicesActions from '../../store/actions/Invoices';\r\nimport * as accountsActions from '../../store/actions/Accounts';\r\n\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport Header from \"../shared/Header\";\r\n\r\nimport useTour from '../onboarding/hook/useTour';\r\nimport { stepsDashboard } from '../onboarding/steps/DashboardSteps';\r\n\r\nconst Dashboard = (props) => {\r\n\r\n let user = props.user;\r\n let account = props.account;\r\n let activeServicesEnergy = props.activeServicesEnergy;\r\n let startDashboardOnboarding = props.startDashboardOnboarding;\r\n let totalAccounts = props.totalAccounts;\r\n let screenPaddingBottom = props.screenPaddingBottom;\r\n let theme = props.theme;\r\n\r\n const loadDetailService = props.loadDetailService;\r\n const loadServicesAsync = props.loadServicesAsync;\r\n const setActiveServicesEnergy = props.setActiveServicesEnergy;\r\n const setActiveServicePreonboarding = props.setActiveServicePreonboarding; \r\n const setShowBlackScreen = props.setShowBlackScreen;\r\n const setStartOnboarding = props.setStartOnboarding;\r\n const setAccount = props.setAccount;\r\n const setFilterStatus = props.setFilterStatus;\r\n\r\n const history = useHistory();\r\n\r\n const frameEfficiency = useRef(null);\r\n\r\n const handleFirstTourFinish = () => {\r\n setStartOnboarding({ key: 'dashboard', value: true })\r\n };\r\n\r\n const tour = useTour({ steps: stepsDashboard(props.language, theme), localStorageKey: \"main-tutorial\", isOpenDrawer: null, setRunTour: setStartOnboarding, onTourFinish: handleFirstTourFinish });\r\n\r\n useEffect(() => {\r\n if (!activeServicesEnergy?.filter((item) => item?.idAccount === account?.idAccount).length) {\r\n account && loadServicesAsync()\r\n }\r\n // eslint-disable-next-line\r\n }, [account, loadServicesAsync])\r\n\r\n useEffect(() => {\r\n if (activeServicesEnergy.length) {\r\n setActiveServicesEnergy([])\r\n }\r\n }, [setActiveServicesEnergy, activeServicesEnergy])\r\n\r\n useEffect(() => {\r\n\r\n let window = frameEfficiency.current.contentWindow;\r\n\r\n window.postMessage(JSON.stringify({\r\n screenPaddingBottom\r\n }\r\n ), process.env.REACT_APP_DASHBOARD_HOST);\r\n\r\n }, [screenPaddingBottom])\r\n\r\n useEffect(() => {\r\n\r\n let window = frameEfficiency.current.contentWindow;\r\n\r\n window.postMessage(JSON.stringify({\r\n theme\r\n }\r\n ), process.env.REACT_APP_DASHBOARD_HOST);\r\n\r\n }, [theme])\r\n\r\n useEffect(() => {\r\n\r\n const userId = user?.idUser\r\n\r\n if (userId !== null) {\r\n\r\n frameEfficiency.current.addEventListener('load', () => {\r\n\r\n let window = frameEfficiency.current.contentWindow;\r\n\r\n let token = localStorage.getItem('token');\r\n\r\n setTimeout(() => {\r\n window.postMessage(JSON.stringify({\r\n token: token,\r\n user: { idUser: userId, capabilities: user?.capabilities },\r\n screenPaddingBottom,\r\n theme\r\n }\r\n ), process.env.REACT_APP_DASHBOARD_HOST);\r\n }, [100]);\r\n\r\n });\r\n };\r\n\r\n if (startDashboardOnboarding) {\r\n\r\n let window = frameEfficiency.current.contentWindow;\r\n\r\n window.postMessage(JSON.stringify({\r\n onboarding: startDashboardOnboarding\r\n }\r\n ), process.env.REACT_APP_DASHBOARD_HOST);\r\n\r\n setShowBlackScreen(true);\r\n }\r\n // eslint-disable-next-line\r\n }, [user.idUser, startDashboardOnboarding]);\r\n\r\n //iframe listener\r\n useEffect(() => {\r\n\r\n window.addEventListener('message', handleMessageFromIframe);\r\n\r\n return () => {\r\n window.removeEventListener('message', handleMessageFromIframe);\r\n };\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const handleMessageFromIframe = (event) => {\r\n if (event.origin === process.env.REACT_APP_DASHBOARD_HOST) {\r\n const data = event.data; \r\n switch (data.type) {\r\n case 'Installation':\r\n history.push('pre-onboarding');\r\n setActiveServicePreonboarding(data);\r\n break\r\n case 'Generation':\r\n case 'Consumption':\r\n history.push({\r\n pathname: 'home/detail',\r\n state: { data }\r\n });\r\n loadDetailService(data)\r\n break\r\n case 'consolidate_invoices_no_debt':\r\n case 'consolidate_invoices_overdue':\r\n case 'consolidate_invoices_last_period': \r\n setFilterStatus(data?.statusInvoice);\r\n history.push({\r\n pathname: 'invoices',\r\n state: { data }\r\n }); \r\n setAccount((totalAccounts.find(a => a.idAccount === parseInt(data?.idAccount)))); \r\n break\r\n case 'plus':\r\n history.push({\r\n pathname: 'plus',\r\n state: { data }\r\n });\r\n loadDetailService(data)\r\n break\r\n default:\r\n break\r\n }\r\n\r\n if (data?.skippedOnboarding) { \r\n setStartOnboarding({ key: 'walktrough', value: true })\r\n }\r\n\r\n if (data?.finishedOnboarding) {\r\n setShowBlackScreen(false);\r\n setStartOnboarding({ key: 'dashboard', value: false })\r\n }\r\n\r\n }\r\n };\r\n\r\n return (\r\n
\r\n {tour}\r\n \r\n \r\n
\r\n );\r\n\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n user: state.users.user,\r\n activeServicesEnergy: state.services.activeServicesEnergy,\r\n account: state.accounts.account,\r\n language: state.shared.language,\r\n startDashboardOnboarding: state.shared.startOnboarding.dashboard,\r\n showBlackScreen: state.shared.showBlackScreen,\r\n totalAccounts: state.accounts.totalAccounts,\r\n totalServices: state.services.totalServices,\r\n screenPaddingBottom: state.shared.screenPaddingBottom,\r\n theme: state.theme.theme\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n loadDetailService: (payload) => dispatch(energyActions.loadDetailService(payload)),\r\n setActiveServicePreonboarding: (payload) => dispatch(servicesActions.setActiveServicePreonboarding(payload)),\r\n setActiveServicesEnergy: (payload) => dispatch(servicesActions.setActiveServicesEnergy(payload)),\r\n loadServicesAsync: (payload) => dispatch(servicesActions.loadServicesAsync(payload)),\r\n setShowBlackScreen: (payload) => dispatch(sharedActions.setShowBlackScreen(payload)),\r\n setStartOnboarding: (payload) => dispatch(sharedActions.setStartOnboarding(payload)),\r\n setAccount: (payload) => dispatch(accountsActions.setAccount(payload)),\r\n setFilterStatus: (payload) => dispatch(invoicesActions.setFilterStatus(payload)),\r\n setActiveServicesPlus: (payload) => dispatch(servicesActions.setActiveServicesPlus(payload)),\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Dashboard)","import React, { useRef, useEffect } from 'react'\r\nimport { connect } from 'react-redux';\r\n\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nimport Header from \"../shared/Header\";\r\n\r\nconst Preonboarding = (props) => {\r\n\r\n let history = useHistory();\r\n\r\n let user = props.user;\r\n let activeServicePreonboarding = props.activeServicePreonboarding;\r\n let theme = props.theme;\r\n\r\n const framePreonboarding = useRef(null);\r\n\r\n useEffect(() => {\r\n\r\n const userId = user?.idUser\r\n const userType = user?.userType\r\n const userChatCapability = user?.capabilities?.preonboarding_chat_input_access \r\n\r\n if (userId !== null && activeServicePreonboarding !== null) {\r\n\r\n framePreonboarding.current.addEventListener('load', () => {\r\n\r\n let window = framePreonboarding.current.contentWindow;\r\n\r\n let token = localStorage.getItem('token');\r\n\r\n setTimeout(() => {\r\n window.postMessage(JSON.stringify({\r\n token: token,\r\n user: { idUser: userId, userType, userChatCapability },\r\n service: activeServicePreonboarding.idService,\r\n theme\r\n }), process.env.REACT_APP_PREONBOARDING_HOST)\r\n }, [100]);\r\n\r\n });\r\n } else {\r\n history.push('/home');\r\n }\r\n // eslint-disable-next-line\r\n }, [user.idUser, activeServicePreonboarding]);\r\n\r\n useEffect(() => {\r\n\r\n let window = framePreonboarding.current.contentWindow;\r\n\r\n window.postMessage(JSON.stringify({\r\n theme\r\n }), process.env.REACT_APP_PREONBOARDING_HOST);\r\n\r\n }, [theme])\r\n\r\n //iframe listener\r\n useEffect(() => {\r\n\r\n window.addEventListener('message', handleMessageFromIframe);\r\n\r\n return () => {\r\n window.removeEventListener('message', handleMessageFromIframe);\r\n };\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const handleMessageFromIframe = (event) => {\r\n if (event.origin === process.env.REACT_APP_PREONBOARDING_HOST) {\r\n if (event.data.action === 'navigate') {\r\n history.push(event.data.path);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
);\r\n\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n user: state.users.user,\r\n language: state.shared.language,\r\n activeServicePreonboarding: state.services.activeServicePreonboarding,\r\n theme: state.theme.theme\r\n});\r\n\r\nexport default connect(mapStateToProps)(Preonboarding)\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faChevronRight } from \"@fortawesome/pro-light-svg-icons\";\r\n\r\nimport ercoComputer from '../../imgs/erco-computer.png';\r\nimport ercoGeneration from '../../imgs/erco-generation.png';\r\nimport ercoEfficiency from '../../imgs/erco-efficiency.png';\r\nimport ercoScreen from '../../imgs/erco-screen.png';\r\n\r\nimport handWithPhone from '../../imgs/hand-with-phone.png';\r\nimport consumptionInfo from '../../imgs/consumption-info.png';\r\nimport energyReceipt from '../../imgs/energy-receipt.png';\r\n//import realTimeConsumption from '../../imgs/real-time-consumption.png';\r\n\r\nimport steps from '../../imgs/steps.png';\r\nimport leftChat from '../../imgs/left-chat.png';\r\nimport rightChat from '../../imgs/right-chat.png';\r\n\r\nconst getData = (section, showInvoices, language) => {\r\n\r\n const onboardingGeneration = [\r\n {\r\n title: language.onboarding_generation_title1, \r\n text: language.onboarding_generation_text1, \r\n imgPath: ercoComputer,\r\n classImageContainer: 'column-center align-items-end'\r\n }, \r\n {\r\n title: language.onboarding_generation_title2, \r\n text: language.onboarding_generation_text2, \r\n imgPath: ercoGeneration,\r\n classImage: 'w-100',\r\n classImageContainer: 'column-center align-items-end'\r\n },\r\n {\r\n title: language.onboarding_generation_title3, \r\n text: language.onboarding_generation_text3, \r\n imgPath: ercoEfficiency,\r\n classImage: 'w-100',\r\n classImageContainer: 'column-center align-items-center'\r\n },\r\n {\r\n title: language.onboarding_generation_title4, \r\n text: language.onboarding_generation_text4, \r\n imgPath: ercoScreen,\r\n classImage: 'w-100',\r\n classImageContainer: 'column-center align-items-end'\r\n }\r\n ];\r\n\r\n const onboardingPreonboarding = [\r\n {\r\n title: language.onboarding_preonboarding_title1, \r\n text: language.onboarding_preonboarding_text1, \r\n imgPath: steps,\r\n classImageContainer: 'column-center align-items-center'\r\n }, \r\n {\r\n title: language.onboarding_preonboarding_title2, \r\n text: language.onboarding_preonboarding_text2, \r\n imgPath: leftChat,\r\n classImageContainer: 'column-center align-items-end'\r\n },\r\n {\r\n title: language.onboarding_preonboarding_title3, \r\n text: language.onboarding_preonboarding_text3, \r\n imgPath: rightChat,\r\n classImageContainer: 'column-center align-items-start'\r\n }\r\n ];\r\n\r\n const nextStepsInfoConsumption = [\r\n {\r\n title: language.onboarding_consumption_title1, \r\n text: language.onboarding_consumption_text1, \r\n imgPath: handWithPhone,\r\n classImage: 'max-height-400',\r\n classImageContainer: 'column-center align-items-start'\r\n }, \r\n {\r\n title: language.onboarding_consumption_title2, \r\n text: language.onboarding_consumption_text2, \r\n imgPath: consumptionInfo,\r\n classImage: 'w-100',\r\n classImageContainer: 'column-center align-items-center'\r\n },\r\n {\r\n title: language.onboarding_consumption_title3, \r\n text: language.onboarding_consumption_text3, \r\n imgPath: energyReceipt,\r\n classImage: 'w-100',\r\n classImageContainer: 'column-center align-items-end'\r\n },\r\n {\r\n title: language.onboarding_consumption_title4, \r\n text: language.onboarding_consumption_text4,\r\n classImageContainer: 'column-center align-items-center'\r\n }\r\n ];\r\n\r\n switch (section) {\r\n case 'home':\r\n return showInvoices ? nextStepsInfoConsumption : onboardingGeneration;\r\n case 'pre-onboarding':\r\n return onboardingPreonboarding;\r\n default:\r\n return [];\r\n }\r\n\r\n}\r\n\r\nconst onboardingSections = [\r\n 'home',\r\n 'preonboarding'\r\n]\r\n\r\nconst OnboardingModal = (props) => {\r\n\r\n const location = useLocation();\r\n\r\n let showBetaMessage = props.showBetaMessage;\r\n let user = props.user;\r\n\r\n const [currentView, setCurrentView] = useState(0);\r\n const [isShowing, setIsShowing] = useState(true);\r\n const [data, setData] = useState([]);\r\n const [section, setSection] = useState(null);\r\n\r\n const handleContinueClick = () => {\r\n \r\n if (currentView < data.length - 1) {\r\n\r\n setCurrentView(currentView + 1);\r\n\r\n } else {\r\n\r\n setIsShowing(false);\r\n\r\n localStorage.setItem(`show_onboarding_${section}`, false);\r\n\r\n }\r\n\r\n };\r\n\r\n useEffect(() => {\r\n\r\n if (onboardingSections.includes(section)) {\r\n\r\n const showSection = localStorage.getItem(`show_onboarding_${section}`);\r\n\r\n if ((showSection === null || showSection === 'true') && user.capabilities?.show_onboarding_modals) {\r\n \r\n setData(getData(section, user.capabilities?.show_section_invoices, props.language));\r\n setIsShowing(true);\r\n \r\n };\r\n\r\n }\r\n // eslint-disable-next-line\r\n }, [section, user.capabilities]);\r\n\r\n useEffect(() => setSection(location.pathname.slice(1)), [location.pathname]);\r\n\r\n if (!isShowing || !data.length) {\r\n return null;\r\n }\r\n\r\n const isLastObject = currentView === data.length - 1;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {data[currentView].title}\r\n

\r\n

\r\n {data[currentView].text}\r\n

\r\n
\r\n {\r\n data.map((_, index) => (\r\n
\r\n ))\r\n }\r\n
\r\n
\r\n
\r\n {data[currentView].imgPath}\r\n
\r\n {\r\n showBetaMessage && (\r\n
\r\n

\r\n {props.language.onboarding_modal_description}\r\n

\r\n
\r\n )}\r\n
\r\n
\r\n \r\n
\r\n { isLastObject ? props.language.onboarding_modal_finally : props.language.onboarding_modal_continue }\r\n
\r\n {\r\n !isLastObject && (\r\n \r\n )\r\n }\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n showBetaMessage: ownProps.showBetaMessage,\r\n language: state.shared.language,\r\n user: state.users.user\r\n});\r\n\r\nexport default connect(mapStateToProps)(OnboardingModal);\r\n","import React from 'react';\r\n\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n\r\nconst RateNumber = ({ max, score, onChange }) => {\r\n\r\n let elements = Array.from({length: max}, (e, i)=> i);\r\n\r\n return(\r\n
\r\n {elements.map((item, i) => \r\n
\r\n onChange(item + 1)}/>\r\n
{item + 1}
\r\n
)}\r\n
\r\n )\r\n}\r\n\r\nexport default RateNumber","import React, { useState } from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as sharedActions from '../../store/actions/Shared';\r\n\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { toast } from \"react-toastify\";\r\n\r\nimport RateNumber from '../shared/utilities/RateNumber';\r\n\r\nconst PopUpScore = (props) => {\r\n\r\n const initValue = {\r\n qualify: 8,\r\n comment: '',\r\n specific_reason: '',\r\n channel: 0 \r\n }\r\n\r\n const maxCount = 200;\r\n\r\n const [charCounter, setCharCounter] = useState(0); \r\n const [surveyValue, setSurveyValue] = useState(initValue); \r\n const [score, setScore] = useState(0); \r\n const [firstSend, setFirstSend] = useState(false);\r\n const [service, setService] = useState(0); \r\n \r\n const handleSend = () => { \r\n if (firstSend) {\r\n if(surveyValue.qualify < 7) props.setNpsSurveyAsync({...surveyValue, type: service, label: false});\r\n if(surveyValue.qualify >= 7) props.setNpsSurveyAsync({...surveyValue, type: service, label: true});\r\n toast.dismiss()\r\n } else {\r\n setFirstSend(true)\r\n } \r\n }\r\n\r\n const inputHandler = (e) => {\r\n if (charCounter <= maxCount) {\r\n setCharCounter(e.target.value.length); \r\n }\r\n setSurveyValue({...surveyValue, comment: e.target.value})\r\n }; \r\n \r\n const inputHandlerSpecific = (e) => {\r\n if (charCounter <= maxCount) {\r\n setCharCounter(e.target.value.length); \r\n }\r\n setSurveyValue({...surveyValue, specific_reason: e.target.value})\r\n };\r\n \r\n return (\r\n
\r\n {!firstSend && (\r\n
\r\n
{props.language.shared_survey_nps_title}
\r\n
{props.language.shared_survey_nps_text_question}
\r\n
\r\n {\r\n setSurveyValue({...surveyValue, qualify: value})\r\n setScore(value)\r\n }}/>\r\n
\r\n
{props.language.shared_survey_nps_text_comment}
\r\n
\r\n
\r\n
\r\n

{charCounter}/200

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