{"version":3,"sources":["webpack://@smart-flows/insight/./src/commons/features/actions.js","webpack://@smart-flows/insight/./src/commons/sites/actions.js","webpack://@smart-flows/insight/./src/commons/scalesConfigurations/action.ts","webpack://@smart-flows/insight/./src/commons/sites/selectors.js","webpack://@smart-flows/insight/./src/navigation/selectors.js","webpack://@smart-flows/insight/./src/reporting/utils.js","webpack://@smart-flows/insight/./src/commons/features/selector.js","webpack://@smart-flows/insight/./src/reporting/selectors.js","webpack://@smart-flows/insight/./src/commons/scalesConfigurations/selector.ts","webpack://@smart-flows/insight/./src/commons/scalesConfigurations/utils.ts","webpack://@smart-flows/insight/./src/home/selectors.js","webpack://@smart-flows/insight/./src/home/HomeMap.js","webpack://@smart-flows/insight/./src/commons/Loader/index.js","webpack://@smart-flows/insight/./src/commons/Loader/loader.svg","webpack://@smart-flows/insight/./src/navigation/actions.js","webpack://@smart-flows/insight/./src/commons/configs/actions.js","webpack://@smart-flows/insight/./src/commons/configs/selectors.js","webpack://@smart-flows/insight/./src/live/realtime/actions.js","webpack://@smart-flows/insight/./src/home/actions.js","webpack://@smart-flows/insight/./src/commons/utils/localStorage.js","webpack://@smart-flows/insight/./src/commons/utils/request.js","webpack://@smart-flows/insight/./src/commons/floors/actions.js","webpack://@smart-flows/insight/./src/live/realtimeStat/utils.js","webpack://@smart-flows/insight/./src/social_distancing/selectors.js","webpack://@smart-flows/insight/./src/live/realtimeStat/selectors.js","webpack://@smart-flows/insight/./src/live/realtimeStat/actions.js","webpack://@smart-flows/insight/./src/selectors.js","webpack://@smart-flows/insight/./src/commons/floors/sagas.js","webpack://@smart-flows/insight/./src/commons/floors/selectors.js","webpack://@smart-flows/insight/./src/commons/ChartTooltip/ChartTooltipComparison.js","webpack://@smart-flows/insight/./src/live/realtimeStat/chart/LiveTrafficChartCard.js","webpack://@smart-flows/insight/./src/live/realtime/StatusMessage.js","webpack://@smart-flows/insight/./src/home/graphs/LiveTrafficChartCard.js","webpack://@smart-flows/insight/./src/live/realtime/selectors.js","webpack://@smart-flows/insight/./src/live/realtimeStat/density/selectors.js","webpack://@smart-flows/insight/./src/home/graphs/LiveTrafficChartContainer.js","webpack://@smart-flows/insight/./src/home/hooks.js","webpack://@smart-flows/insight/./src/commons/Loader/AnimatedGradientLoader.js","webpack://@smart-flows/insight/./src/commons/ChartNoData/index.js","webpack://@smart-flows/insight/./src/commons/HistoricalBarChart/index.js","webpack://@smart-flows/insight/./src/home/graphs/HistoricalChartContainer.js","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_assistant/social_distancing_table/assets/up.svg","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_assistant/social_distancing_table/assets/down.svg","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_assistant/social_distancing_table/assets/equals.svg","webpack://@smart-flows/insight/./src/home/graphs/ListMostVisitedSites.js","webpack://@smart-flows/insight/./src/commons/topBar/ClickOutside.js","webpack://@smart-flows/insight/./src/commons/SortButton/index.js","webpack://@smart-flows/insight/./src/home/cards/CardAllSites.js","webpack://@smart-flows/insight/./src/home/cards/CardLiveSite.js","webpack://@smart-flows/insight/./src/home/HomeCard.js","webpack://@smart-flows/insight/./src/commons/Accordion/index.tsx","webpack://@smart-flows/insight/./src/commons/ScalesTooltip/index.tsx","webpack://@smart-flows/insight/./src/home/scales.tsx","webpack://@smart-flows/insight/./src/home/InsetMap.tsx","webpack://@smart-flows/insight/./src/home/index.js","webpack://@smart-flows/insight/./src/IndexContainer.js","webpack://@smart-flows/insight/./src/insights/actions.js","webpack://@smart-flows/insight/./src/insights/utils.ts","webpack://@smart-flows/insight/./src/insights/InsightsList.js","webpack://@smart-flows/insight/./src/insights/Viewer.tsx","webpack://@smart-flows/insight/./src/insights/index.js","webpack://@smart-flows/insight/./src/live/realtimeStat/density/AreasDensityList.js","webpack://@smart-flows/insight/./src/live/realtimeStat/density/AreasDensityContainer.js","webpack://@smart-flows/insight/./src/live/clock/index.js","webpack://@smart-flows/insight/./src/commons/Disclaimer/index.js","webpack://@smart-flows/insight/./src/commons/map/MapPolygons.js","webpack://@smart-flows/insight/./src/commons/map/GeoMap.js","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_assistant/selectors.js","webpack://@smart-flows/insight/./src/commons/map/ModePicker.js","webpack://@smart-flows/insight/./src/commons/map/PictureMap.js","webpack://@smart-flows/insight/./src/commons/map/PicturePicker.js","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_assistant/MapContainer.js","webpack://@smart-flows/insight/./src/commons/map/Legend.js","webpack://@smart-flows/insight/./src/live/realtime/MapContainer.js","webpack://@smart-flows/insight/./src/live/realtimeStat/NoRtDataComponent.js","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_assistant/social_distancing_table/index.js","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_assistant/social_distancing_table/assets/social-distancing.svg","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_assistant/social_distancing_table/SocialDistancingTableSmall.js","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_assistant/social_distancing_table/SocialDistancingTableBig.js","webpack://@smart-flows/insight/./src/live/realtimeStat/chart/LiveChartContainer.js","webpack://@smart-flows/insight/./src/commons/FigureIconCard/index.js","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_monitoring/assets/mean_traffic.svg","webpack://@smart-flows/insight/./src/reporting/flights_report/assets/dwelltime-logo.svg","webpack://@smart-flows/insight/./src/live/realtimeStat/index.js","webpack://@smart-flows/insight/./src/live/realtimeStat/chart/ZoomTrafficChart.js","webpack://@smart-flows/insight/./src/commons/AreaFloorSelector/index.js","webpack://@smart-flows/insight/./src/live/realtime/index.js","webpack://@smart-flows/insight/./src/live/walkingTimes/selectors.js","webpack://@smart-flows/insight/./src/live/walkingTimes/MapContainer.js","webpack://@smart-flows/insight/./src/live/walkingTimes/JourneysTimesList.js","webpack://@smart-flows/insight/./src/live/walkingTimes/actions.js","webpack://@smart-flows/insight/./src/live/walkingTimes/JourneysTimesTableContainer.js","webpack://@smart-flows/insight/./src/live/walkingTimes/index.js","webpack://@smart-flows/insight/./src/live/index.js","webpack://@smart-flows/insight/./src/monitoring/fromSmartFlows/jplus1.js","webpack://@smart-flows/insight/./src/monitoring/fromSmartFlows/actions.js","webpack://@smart-flows/insight/./src/monitoring/fromSmartFlows/index.js","webpack://@smart-flows/insight/./src/monitoring/accessPoints/actions.js","webpack://@smart-flows/insight/./src/commons/Circle/index.js","webpack://@smart-flows/insight/./src/monitoring/accessPoints/AccessPointsHeader.js","webpack://@smart-flows/insight/./src/monitoring/accessPoints/AccessPoints.js","webpack://@smart-flows/insight/./src/monitoring/accessPoints/selectors.js","webpack://@smart-flows/insight/./src/monitoring/accessPoints/index.js","webpack://@smart-flows/insight/./src/commons/StatusCard/index.js","webpack://@smart-flows/insight/./src/commons/BigStatusCard/index.js","webpack://@smart-flows/insight/./src/monitoring/summary/MonitoringComponent.js","webpack://@smart-flows/insight/./src/monitoring/summary/selectors.js","webpack://@smart-flows/insight/./src/monitoring/summary/collect/actions.js","webpack://@smart-flows/insight/./src/monitoring/fromSmartFlows/selectors.js","webpack://@smart-flows/insight/./src/monitoring/summary/realtime/actions.js","webpack://@smart-flows/insight/./src/monitoring/summary/index.js","webpack://@smart-flows/insight/./src/monitoring/index.js","webpack://@smart-flows/insight/./src/commons/Page/index.js","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_monitoring/actions.js","webpack://@smart-flows/insight/./src/reporting/dashboard/selectors.js","webpack://@smart-flows/insight/./src/commons/map/actions.js","webpack://@smart-flows/insight/./src/reporting/dashboard/MapContainer.js","webpack://@smart-flows/insight/./src/reporting/dashboard/actions.js","webpack://@smart-flows/insight/./src/commons/DatePicker/index.js","webpack://@smart-flows/insight/./src/reporting/dashboard/GranularityPicker.js","webpack://@smart-flows/insight/./src/reporting/dashboard/graphs/trafficByPopulation/TrafficByPopulationChart.js","webpack://@smart-flows/insight/./src/reporting/dashboard/graphs/trafficByPopulation/index.js","webpack://@smart-flows/insight/./src/commons/ChartTooltip/index.js","webpack://@smart-flows/insight/./src/reporting/dashboard/graphs/traffic/FrequentationChart.js","webpack://@smart-flows/insight/./src/reporting/dashboard/graphs/traffic/index.js","webpack://@smart-flows/insight/./src/reporting/dashboard/graphs/dwelltime/DwelltimeChart.js","webpack://@smart-flows/insight/./src/reporting/dashboard/graphs/dwelltime/index.js","webpack://@smart-flows/insight/./src/reporting/dashboard/graphs/dwelltimeByPopulation/DwelltimeByPopulationChart.js","webpack://@smart-flows/insight/./src/reporting/dashboard/graphs/dwelltimeByPopulation/index.js","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_monitoring/DailySocialDistancingArea.js","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_monitoring/assets/sdm-logo.svg","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_monitoring/SocialDistancingMonitoringTable.js","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_monitoring/selectors.js","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_monitoring/SocialDistancingMonitoringTableContainer.js","webpack://@smart-flows/insight/./src/reporting/dashboard/graphs/index.js","webpack://@smart-flows/insight/./src/commons/Select/index.js","webpack://@smart-flows/insight/./src/commons/PopulationSelector/index.js","webpack://@smart-flows/insight/./src/reporting/dashboard/index.js","webpack://@smart-flows/insight/./src/reporting/reports/selectors.js","webpack://@smart-flows/insight/./src/reporting/reports/actions.js","webpack://@smart-flows/insight/./src/reporting/reports/CurrentDateSelector.js","webpack://@smart-flows/insight/./src/reporting/reports/filters/comparisons/ComparisonSelector.js","webpack://@smart-flows/insight/./src/reporting/reports/filters/comparisons/index.js","webpack://@smart-flows/insight/./src/reporting/reports/BarsComparison/BarsComparison.js","webpack://@smart-flows/insight/./src/reporting/reports/BarsComparison/index.js","webpack://@smart-flows/insight/./src/reporting/reports/dwellTime/DwellTimeChart.js","webpack://@smart-flows/insight/./src/reporting/reports/dwellTime/index.js","webpack://@smart-flows/insight/./src/reporting/reports/Traffic/FrequentationChart.js","webpack://@smart-flows/insight/./src/reporting/reports/Traffic/index.js","webpack://@smart-flows/insight/./src/reporting/reports/PopulationFilter.js","webpack://@smart-flows/insight/./src/reporting/reports/index.js","webpack://@smart-flows/insight/./src/reporting/flights_report/destinations/actions.js","webpack://@smart-flows/insight/./src/reporting/flights_report/destinations/selectors.js","webpack://@smart-flows/insight/./src/reporting/flights_report/destinations/DestinationsPicker.js","webpack://@smart-flows/insight/./src/reporting/flights_report/destinations/hooks.js","webpack://@smart-flows/insight/./src/reporting/flights_report/destinations/index.js","webpack://@smart-flows/insight/./src/reporting/flights_report/constants.js","webpack://@smart-flows/insight/./src/reporting/flights_report/per_destination/selectors.js","webpack://@smart-flows/insight/./src/reporting/flights_report/HorizontalChartBar.js","webpack://@smart-flows/insight/./src/reporting/flights_report/per_destination/DwelltimePerDestinationChart.js","webpack://@smart-flows/insight/./src/commons/WeeklyBarChart/WeeklyBarChartTooltip.js","webpack://@smart-flows/insight/./src/commons/WeeklyBarChart/index.js","webpack://@smart-flows/insight/./src/reporting/flights_report/assets/flights-logo.svg","webpack://@smart-flows/insight/./src/reporting/flights_report/per_destination/index.js","webpack://@smart-flows/insight/./src/reporting/flights_report/per_airline/DwelltimePerAirlineMacroAreas.js","webpack://@smart-flows/insight/./src/reporting/flights_report/actions.js","webpack://@smart-flows/insight/./src/reporting/flights_report/selectors.js","webpack://@smart-flows/insight/./src/reporting/flights_report/per_airline/selectors.js","webpack://@smart-flows/insight/./src/reporting/flights_report/per_airline/MiniHorizontalChartBar.js","webpack://@smart-flows/insight/./src/reporting/flights_report/per_airline/TotalFlightsCountPerAirlineCard.js","webpack://@smart-flows/insight/./src/reporting/flights_report/per_airline/index.js","webpack://@smart-flows/insight/./src/reporting/flights_report/index.js","webpack://@smart-flows/insight/./src/reporting/actions.js","webpack://@smart-flows/insight/./src/commons/pois/selectors.js","webpack://@smart-flows/insight/./src/reporting/retail/selectors.js","webpack://@smart-flows/insight/./src/commons/PoiSelector/index.js","webpack://@smart-flows/insight/./src/commons/pois/actions.js","webpack://@smart-flows/insight/./src/reporting/retail/pois/index.js","webpack://@smart-flows/insight/./src/reporting/retail/actions.js","webpack://@smart-flows/insight/./src/commons/PopulationChart/index.js","webpack://@smart-flows/insight/./src/reporting/retail/graphs/populations/index.js","webpack://@smart-flows/insight/./src/commons/DwelltimeChart/index.js","webpack://@smart-flows/insight/./src/reporting/retail/graphs/dwelltime/index.js","webpack://@smart-flows/insight/./src/reporting/retail/MapContainer.js","webpack://@smart-flows/insight/./src/reporting/retail/graphs/conversionFunnel/PaxChartComponent.js","webpack://@smart-flows/insight/./src/reporting/retail/graphs/conversionFunnel/index.js","webpack://@smart-flows/insight/./src/reporting/retail/assets/basket.svg","webpack://@smart-flows/insight/./src/reporting/retail/assets/dollar.svg","webpack://@smart-flows/insight/./src/reporting/retail/assets/conversion_rate.svg","webpack://@smart-flows/insight/./src/reporting/retail/index.js","webpack://@smart-flows/insight/./src/reporting/advertising/selectors.js","webpack://@smart-flows/insight/./src/reporting/advertising/pois/index.js","webpack://@smart-flows/insight/./src/reporting/advertising/actions.js","webpack://@smart-flows/insight/./src/reporting/advertising/MapContainer.js","webpack://@smart-flows/insight/./src/reporting/advertising/populations/index.js","webpack://@smart-flows/insight/./src/reporting/advertising/dwelltime/index.js","webpack://@smart-flows/insight/./src/reporting/advertising/assets/mean_traffic.svg","webpack://@smart-flows/insight/./src/reporting/advertising/assets/timer.svg","webpack://@smart-flows/insight/./src/reporting/advertising/index.js","webpack://@smart-flows/insight/./src/reporting/index.js","webpack://@smart-flows/insight/./src/commons/sideMenu/monitoring-active.svg","webpack://@smart-flows/insight/./src/commons/sideMenu/monitoring.svg","webpack://@smart-flows/insight/./src/commons/sideMenu/social-distancing.svg","webpack://@smart-flows/insight/./src/commons/sideMenu/SideMenu.js","webpack://@smart-flows/insight/./src/commons/sideMenu/index.js","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_assistant/index.js","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_assistant/actions.js","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_monitoring/MapContainer.js","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_monitoring/assets/recovery_ratio.svg","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_monitoring/SocialDistancingMonitoringCardsContainer.js","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_monitoring/index.js","webpack://@smart-flows/insight/./src/social_distancing/index.js","webpack://@smart-flows/insight/./src/commons/topBar/SiteSelector.js","webpack://@smart-flows/insight/./src/live/LiveMenu.js","webpack://@smart-flows/insight/./src/monitoring/navigation/index.js","webpack://@smart-flows/insight/./src/reporting/ReportingMenu.js","webpack://@smart-flows/insight/./src/i18n/index.ts","webpack://@smart-flows/insight/./src/social_distancing/SocialDistancingMenu.js","webpack://@smart-flows/insight/./src/commons/topBar/index.js","webpack://@smart-flows/insight/./src/App.js","webpack://@smart-flows/insight/./src/favicon.ico","webpack://@smart-flows/insight/./src/login/actions.js","webpack://@smart-flows/insight/./src/components/AuthProvider/index.tsx","webpack://@smart-flows/insight/./src/reducers.js","webpack://@smart-flows/insight/./src/login/reducer.js","webpack://@smart-flows/insight/./src/commons/sites/reducer.js","webpack://@smart-flows/insight/./src/commons/configs/reducer.js","webpack://@smart-flows/insight/./src/live/realtimeStat/reducer.js","webpack://@smart-flows/insight/./src/commons/floors/reducer.js","webpack://@smart-flows/insight/./src/commons/pois/reducer.js","webpack://@smart-flows/insight/./src/navigation/reducer.js","webpack://@smart-flows/insight/./src/monitoring/accessPoints/reducer.js","webpack://@smart-flows/insight/./src/commons/features/reducer.js","webpack://@smart-flows/insight/./src/monitoring/fromSmartFlows/reducer.js","webpack://@smart-flows/insight/./src/monitoring/summary/collect/reducer.js","webpack://@smart-flows/insight/./src/insights/reducer.js","webpack://@smart-flows/insight/./src/commons/scalesConfigurations/reducer.ts","webpack://@smart-flows/insight/./src/reporting/reducer.js","webpack://@smart-flows/insight/./src/commons/processes/reducer.js","webpack://@smart-flows/insight/./src/monitoring/summary/realtime/reducer.js","webpack://@smart-flows/insight/./src/live/walkingTimes/reducer.js","webpack://@smart-flows/insight/./src/reporting/flights_report/destinations/reducer.js","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_monitoring/reducer.js","webpack://@smart-flows/insight/./src/reporting/flights_report/per_destination/reducer.js","webpack://@smart-flows/insight/./src/reporting/flights_report/per_airline/reducer.js","webpack://@smart-flows/insight/./src/reporting/retail/reducer.js","webpack://@smart-flows/insight/./src/reporting/reports/reducer.js","webpack://@smart-flows/insight/./src/reporting/dashboard/reducer.js","webpack://@smart-flows/insight/./src/reporting/flights_report/reducer.js","webpack://@smart-flows/insight/./src/reporting/advertising/reducer.js","webpack://@smart-flows/insight/./src/home/reducer.js","webpack://@smart-flows/insight/./src/login/sagas.js","webpack://@smart-flows/insight/./src/commons/sites/sagas.js","webpack://@smart-flows/insight/./src/commons/utils/cookie.js","webpack://@smart-flows/insight/./src/navigation/sagas.js","webpack://@smart-flows/insight/./src/commons/configs/sagas.js","webpack://@smart-flows/insight/./src/live/realtimeStat/sagas.js","webpack://@smart-flows/insight/./src/commons/pois/sagas.js","webpack://@smart-flows/insight/./src/commons/utils/dataLayer.js","webpack://@smart-flows/insight/./src/commons/utils/sagas.js","webpack://@smart-flows/insight/./src/commons/websocket/actions.js","webpack://@smart-flows/insight/./src/commons/websocket/sagas.js","webpack://@smart-flows/insight/./src/monitoring/accessPoints/sagas.js","webpack://@smart-flows/insight/./src/commons/features/sagas.js","webpack://@smart-flows/insight/./src/monitoring/fromSmartFlows/sagas.js","webpack://@smart-flows/insight/./src/monitoring/summary/collect/sagas.js","webpack://@smart-flows/insight/./src/insights/sagas.js","webpack://@smart-flows/insight/./src/reporting/sagas.js","webpack://@smart-flows/insight/./src/commons/processes/actions.js","webpack://@smart-flows/insight/./src/reporting/reports/sagas.js","webpack://@smart-flows/insight/./src/monitoring/summary/realtime/sagas.js","webpack://@smart-flows/insight/./src/commons/processes/sagas.js","webpack://@smart-flows/insight/./src/live/walkingTimes/sagas.js","webpack://@smart-flows/insight/./src/live/realtime/sagas.js","webpack://@smart-flows/insight/./src/reporting/flights_report/destinations/sagas.js","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_assistant/sagas.js","webpack://@smart-flows/insight/./src/social_distancing/social_distancing_monitoring/sagas.js","webpack://@smart-flows/insight/./src/reporting/flights_report/per_destination/actions.js","webpack://@smart-flows/insight/./src/reporting/flights_report/per_destination/sagas.js","webpack://@smart-flows/insight/./src/reporting/flights_report/per_airline/actions.js","webpack://@smart-flows/insight/./src/reporting/flights_report/per_airline/sagas.js","webpack://@smart-flows/insight/./src/reporting/retail/sagas.js","webpack://@smart-flows/insight/./src/reporting/dashboard/sagas.js","webpack://@smart-flows/insight/./src/reporting/flights_report/sagas.js","webpack://@smart-flows/insight/./src/reporting/advertising/sagas.js","webpack://@smart-flows/insight/./src/home/sagas.js","webpack://@smart-flows/insight/./src/commons/scalesConfigurations/sagas.ts","webpack://@smart-flows/insight/./src/sagas.js","webpack://@smart-flows/insight/./src/store.js","webpack://@smart-flows/insight/./src/index.js","webpack://@smart-flows/insight/./src/components/Redirect/index.tsx","webpack://@smart-flows/insight//usr/src/app/node_modules/moment-timezone/node_modules/moment/locale|sync|/^\\.\\/.*$/","webpack://@smart-flows/insight//usr/src/app/node_modules/moment/locale|sync|/^\\.\\/.*$/","webpack://@smart-flows/insight//usr/src/app/node_modules/react-moment-proptypes/node_modules/moment/locale|sync|/^\\.\\/.*$/"],"names":["fetchFeaturesSuccess","features","values","type","fetchSitesSuccess","data","history","setCurrentSite","siteId","fetchScalesSuccess","scales","getAllSites","state","_","sites","getCurrentSite","_findInstanceProperty","call","s","uuid","navigation","getCurrentSiteId","getCurrentSiteId2","getCurrentPoiId","getCurrentFloorId","getCurrentFloorId2","getCurrentAreaId2","getCurrentApp2","app","getCurrentSection2","getCurrentDayFrom","moment","subtract","format","getCurrentDayTo","getComparedDayFrom","getComparedDayTo","getCurrentComparisonMode","name","getComparedArea","getCurrentPopulation","getCurrentDestination","getCurrentSubsection","isGranularityAvailable","granularity","from","to","dateFrom","dateTo","diffDays","diff","diffMonths","getSmallestAvailableGranularity","granularities","index","_indexOfInstanceProperty","length","computeMonthlyPresence","_context","_context2","_mapInstanceProperty","item","__assign","formatedDate","Date","groupBy","monthDaysArray","Config","Zone","FromHour","day","ToHour","Presence","DataCompleted","_filterInstanceProperty","value","computeMonthlyDwellTime","_context3","_context4","AverageDwellTime","isNumberOfDayAboveOne","times","d","time","firstTime","lastTime","getHourlyTicksByDayForFrequentation","getArrayByDayForFrequentationChart","push","add","getHourlyTicksByDayForDwelltime","getArrayByDayForDwelltimeChart","formatForDwelltime","mergeBaseComparedData","base","compared","mode","areaName","comparedAreaName","zone","compared_time","compared_value","zone2","compared_isCompleted","isCompleted","getTimeKey","_everyInstanceProperty","getTooltipFormat","selectedPayload","timezone","tz","getCellColor","_a","activeIndex","isCursorOnChart","isDashed","color","getStrokeColor","getStrokeDashArray","isAllDataCompletion","obj","isConservativeDataCompletion","e_1","_b","__values","_entriesInstanceProperty","_c","next","done","_d","__read","previousPointIsCompleted","currentPointIsCompleted","nextPointIsCompleted","isCurrentAndNextPointSameStatus","e_1_1","error","formatTrafficDataCompletion","isAllDataCompleted","isConservativeDataCompleted","dataCompletion","groupData","groupIsCompleted","completionComparedValue","completionValue","_concatInstanceProperty","_forEachInstanceProperty","formatConservativeComparedDataCompletion","getterFeatures","props","getterFeatureValues","isFeatureActivated","feature","createSelector","_includesInstanceProperty","getSiteFromUUID","getterSiteFloors","floors","getterNavigationGranularity","getterNavigationAreaId","getterNavigationFloorId","getterNavigationSiteId","getterComputeSiteStats","compute","getterSiteConfig","configs","isHideZeroValueActivated","getterPopulations","allPopulationLabel","t","slug","processes","p","display_name","orderBy","getCurrentPopulationName","populations","selectAreaDatesComputeData","computeSiteStats","areaId","kind","dayFrom","dayTo","get","selectBaseAreaData","getterReportingNavigation","selectCurrentFloor","currentFloorId","selectAllSiteAreas","allAreas","_flatMapInstanceProperty","floor","is_entire_site","selectCurrentArea","navigationAreaId","siteAreas","selectComparedArea","comparedAreaId","config","currentArea","comparedDayFrom","comparedDayTo","comparedArea","comparisonMode","currentDestination","selectPresenceStats","stat","sortBy","selectPresenceStatsWithStandardDayStats","computeSiteReferenceStats","presenceStats","referencePresenceStats","referenceValue","refStat","selectPresenceStatsWithDataCompletion","formatConservativeTrafficDataCompletion","selectDwelltimeStats","selectComparedDwelltimeStats","selectDwelltimeStatsByPopulationForGaresEtConnexions","_context5","_context6","reject","Population","grouped","population","position","selectProcesses","selectDwelltimeStatsByPopulation","_context7","selectPresenceStatsByPopulation","_context8","total","sumBy","traffic","selectPresenceSum","selectEntirePresence","selectAreaPresence","selectStoppingPresence","selectStoppingPresence300","selectStoppingPresence600","selectTotalPresence","entirePresence","selectAreaPresenceSum","areaPresence","selectAreaPresenceUp300Sum","selectAreaPresenceUp600Sum","selectStoppingPresenceSum","stoppingPresence","selectAdvertisingDataIsLoaded","areaStoppingPresence300","areaStoppingPresence600","result","selectAreaComputeIsLoaded","selectStoppingPaxHistory","presence","presence300","presence600","ready","idx","date","labels","units","selectPresenceSumLoading","selectDwelltimeMean","thru","dwelltimeInSeconds","as","selectDwelltimeMeanLoading","selectStatsLoading","selectDailyStatsLoading","selectMapAreas","floorId","floorsState","_context9","_context0","area","areas","selectAllSiteAreasWithFloors","level","entireSiteFromAreas","a","entireSite","positiveLevels","negativeLevels","selectAreasToDisplay","partition","flatten","getAllScales","linkScaleWithDensity","currentDensity","isDensityExpressedWithPaxPerSquareMeter","sortedScales","_sortInstanceProperty","scale","getDensity","b","density","i","getSiteConfig","path","getterHomeStats","home","getHomeRTStats","rtApiKey","getHomeRTStatsForMap","currentSite","rt_api_key","formatedDensity","_parseFloat","toFixed","getterHomeNavigation","selectHomePresenceSum","pipe","pathOr","selectHomePresenceSumLoading","selectHomeMeanPresence","selectHomeMeanPresenceLoading","selectHomeD1Presence","dailyPresenceData","find","propEq","computeAreaTendncy","usableArea","toPrecision","selectListMostVisitedSites","homeSiteStats","sortOrderKey","allSites","listMostVisitedSitesData","map","listSite","site","allSite","listMostVisitedSites","siteItem","_e","current","forecast","site_uuid","site_name","stats","trending","traffic_in_30_minutes","usable_area","_parseInt","sortWith","descend","prop","selectListMostVisitedSitesLoading","selectSitesWithDensity","homeSitesStats","_Array$isArray","currentHomeStat","currentScale","config_uuid","levels","density_color","selectFocusSitesWithDensity","focusSites","HomeMap","_super","_this","this","mapRef","createRef","flyTo","_bindInstanceProperty","flyOut","showMarkers","defaultZoom","__extends","prototype","fitMapWithBounds","sitesWithDensity","fitBounds","lat","latitude","lng","longitude","panTo","setState","getZoom","componentDidMount","on","componentDidUpdate","prevProps","currentZoom","render","onSelectSite","React","Map","zoomControl","ref","center","minZoom","style","width","height","TileLayer","url","attribution","CircleMarker","className","key","opacity","onClick","e","fillColor","fill","fillOpacity","radius","Tooltip","direction","offset","Component","propTypes","PropTypes","connect","src","setNavigation","params","setCurrentDay","setGranularity","automaticCurrentGranularity","changePopulation","changeSubsection","subsection","setCurrentPoi","poiId","fetchConfig","fetchConfigSuccess","fetchConfigFailure","fetchConfig2","fetchConfigSuccess2","fetchConfigFailure2","getConfig","isConfigFetched","fetchRealtimeStats","fetchYesterdayHomeStatsSuccess","homeMeanStatsLoading","fetchHomeMeanStatsSuccess","fetchHomeMeanStatsFailure","listMostVisitedSitesLoading","fetchHomeMostVisitedSitesSuccess","fetchHomeMostVisitedSitesFailure","fetchFocusSitesSuccess","homeAggregatedStatsLoading","statKey","fetchHomeAggregatedStatsSuccess","fetchHomeAggregatedStatsFailure","getAccessToken","window","localStorage","getItem","initAxiosMDMApi","headers","token","axios","baseUrl","MDM_BACKEND_URL","authorization","initAxiosComputeEngine","COMPUTE_ENGINE_URL","getFromMDM","api","baseURL","MDM_API_URL","getFromInstant","version","INSTANT_API_URL","getFromComputeEngine","postFromComputeEngine","post","getFromStatusApi","STATUS_API_URL","initAxiosStatusApi","fetchFloors","fetchFloorsSuccess","fetchFloorsFailure","fetchFloors2","fetchFloorsSuccess2","fetchFloorsFailure2","setCurrentFloor","setCurrentFloor2","selectArea","selectArea2","resetSelectArea","selectEntireSite","setAreaInError","computeAreaThresholdSuccess","computeAreaSocialDistancing","liveArea","trafficType","rt_model","getterSiteConfigsForSocialDistancing","match","getSocialDistancingParameters","isSocialDistancingParametersLoading","getterSiteLiveAreas","liveAreas","findLiveAreaRtId","areaUuid","findEntireSiteAreaId","_reduceInstanceProperty","getAreasForLive","findRtModel","selectSiteRealtimeAreas","selectSiteRealtimeAreasWithSocialDistancing","getLiveArea","rtActivateAreas","quality_service_scales","currentSocialDistancing","forecastSocialDistancing","actual","forecast30","isAvailable","selectIsSiteSocialDistancingSetup","selectGetSiteFloors","selectCurrentSocialDistancingThreshold","socialDistancingParameters","socialDistancingRedThreshold","socialDistancingGreenThreshold","fetchLiveAreasSuccess","fetchLiveAreasFailure","fetchLiveAreas","fetchLiveAreasSuccess2","fetchLiveAreasFailure2","fetchRealTimeDataSuccess","rtId","fetchAllLiveAreasRealTimeDataSuccess","fetchForecastDataSuccess","fetchForecastDataFailure","fetchRealTimeDataFailure","setCurrentRtId","setRealtimeStatus","isRtInvalid","status","reason","setCurrentRealtimeValues","fetchReferenceRealTimeDataSuccess","fetchReferenceRealTimeDataFailure","getSite","computeImageBounds","_Promise","resolve","img","Image","onload","onerror","deduceImageBounds","anyGeometrySet","geometry","areasWithGeometry","minCoord","latOrLong","min","maxCoord","max","getDefaultFloor","f","tryFetchSiteFloors","dataWithBounds","bounds","currentSiteId","defaultFloor","currentAreaId","entireSiteId","currentApp","_f","_g","_h","_j","_k","_l","_m","_o","_p","__generator","_q","label","put","sent","trys","map_picture","select","apply","findEntireSiteFloor","tryFetchSiteFloors2","e_2","console","resetArea","zoneColor","GREEN","RED","ORANGE","GREY","setRTStatus","is_down","computeAreaThreshold","useInstantAPIV4","rt_id","computeAreasThresholdSaga","floorsAreas","getAllFloorsAreas","all","refreshAreasThreshold","currentSection","section","floorsSaga","takeEvery","getAllAreas","getAllLiveAreas","flow","isLiveAreasLoading","getOr","getCurrentLiveArea","isFloorsLoading","isNoFloor","isEmpty","getLiveAreaFromAreaId","getLiveAreaFromRtId","web_app_live_default_floor","web_app_reporting_default_floor","getFloorFromArea","ChartTooltipComparison","statTitle","statComparedTitle","statValue","statComparedValue","baseDate","isNil","maxValueOnKey","gradientFillRatio","threshold","gradientStrokeRatio","YRange","minValueOnKey","gradientIsDisplay","thresholdIsDisplay","getDisplayValue","point","getYAxisKey","reference_value","LiveTrafficGraph","loading","currentPoint","locale","ContentLoader","speed","primaryColor","secondaryColor","x","y","rx","ry","ResponsiveContainer","AreaChart","startOf","margin","top","right","left","bottom","CartesianGrid","vertical","cursor","content","active","payload","selectedTime","selectedValue","count","subtitle","ReferenceLine","stroke","strokeWidth","XAxis","axisLine","dataKey","domain","tickFormatter","unixTime","ticks","h","tickSize","tickCount","interval","dy","allowDataOverflow","YAxis","toLocaleString","mirror","orientation","dx","id","x1","y1","x2","y2","stopColor","stopOpacity","completed_value","Area","activeDot","cx","cy","r","dot","LiveTrafficChartCard","onOpenZoomModal","forecasted_value","StatusMessage","message","useTranslation","currentPointValue","useMemo","currentUnitPlural","useCallback","currentUnit","cardSubtitle","noRealtimeData","_someInstanceProperty","getterCurrentSiteLanguage","getterCurrentSiteTimezone","isSocialDistancingActivated","getCurrentFloor","selectLiveAreaOnRtIdNavigation","selectConfigMaxThreshold","Infinity","selectIsTrafficTooHigh","configThreshold","last","gt","selectIsCurrentlyCompleted","selectChartForecastedData","isBefore","isAfter","selectChartReferencedData","endOf","selectChartRealtimeData","forecastChartData","referenceData","reference","refDict","baseDict","timeValues","allData","prevValue","o","selectCurrentPoint","chartData","selectMapAreasBasedOnSocialDistancingFeatureFlip","_context1","_context10","_context11","_context12","areasWithRealtime","minThreshold","maxThreshold","thresholdColor","selectSiteRealtimeAreasWithDensity","Sentry","Error","toString","computeAreaDensity","scaleDensity","fruin_scales","currentTraffic","undefined","area_uuid","getterCurrentFloor","selectRealtimeAreasWithDensityForMap","isEntireSite","selected","isInError","borderColor","hasTooltip","noClick","formatAreasToPolygons","realtimeArea","selectIsInstantDataAreLoading","LiveTrafficChartContainer","formatedData","useHomeCard","currentDayTo","useSelector","currentDayFrom","homePresenceSumLoading","homeMeanPresenceLoading","homePresenceSum","homeMeanPresence","homeD1Presence","homePresenceData","sortDensityLabel","ns","sortUnit","sortTrafficLabel","sortKey","sortOption","ChartNoData","title","colors","RectangleBar","_fillInstanceProperty","getPath","clientsCount","HistoricalBarChart","BarChart","layout","tickLine","hide","tick","fontSize","Bar","shape","entry","Cell","HistoricalChartContainer","Fragment","AnimatedGradientLoader","ListMostVisitedSites","handleFlipCardLiveArea","isNow","listItemClass","clsx","up","down","equals","ClickOutside","getContainer","handle","isTouch","document","addEventListener","componentWillUnmount","removeEventListener","container","onClickOutside","el","contains","target","children","__rest","SortButton","handleOpenSort","handleSortChange","isOpen","selectedOption","onChange","stopPropagation","preventDefault","options","currentOption","fontWeight","option","CardAllSites","dispatch","isZoomed","setZoom","handleFlipCardAllSites","isSwitchActivated","useAllSitesCards","listTitle","nowLabel","yesterdayLabel","zoomIcon","setOption","useDispatch","setHomeCardSortType","nowListProps","yesterdayListProps","yesterdayMostVisitedSites","useYesterdayList","sortTitle","switchCard","switchCardType","useSwitchCard","setIsNowCard","setIsYesterdayCard","marginRight","padding","CardLiveSite","currentLiveArea","linkLiveLabel","linkReportingLabel","dwellTimeLabel","dwellTimeValue","dwellTimeValueLabel","isNaN","Link","liveData","dwelltime","HomeCard","callback","delay","savedCallback","changeZoom","initHomeCard","isHomeMostVisitedSitesActivated","onSiteSelected","pollMostVisitedSites","useState","isAllSites","setIsAllSites","isLiveSite","setIsLiveSite","useEffect","useRef","_setInterval","clearInterval","withRouter","Accordion","AccordionSummary","open","handleClick","AccordionItem","defaultOpened","setActive","onItemClick","ScalesTooltip","backgroundColor","densityLabel","listFocusSitesLoading","listCoordinates","scrollWheelZoom","doubleClickZoom","touchZoom","boxZoom","keyboard","dragging","zoom","HomeContainer","handleChangeSite","handleChangeZoom","initHomeApp","isLoading","configFetched","isInsetMapActivated","Loader","zIndex","InsetMap","ScalesInformations","IndexContainer","arguments","redirect","isHomeMapViewActivated","fetchInsightsSuccess","fetchInsightsFailure","setCurrentInsight","insightId","downloadAsync","__awaiter","response","err_1","fetch","_JSON$stringify","statusText","blob","JSON","parse","InsightsList","insights","currentInsightId","onInsightSelection","insight","created","fromNow","description","filename","resultUrl","link","Blob","_URL","createElement","href","download","click","pdfjs","numPages","setNumPages","handleFullScreen","useFullScreenHandle","file","httpHeaders","onDocumentLoadSuccess","renderPDF","Document","onLoadSuccess","Page","pageNumber","renderTextLayer","enter","FullScreen","InsightsContainer","handleInsightSelection","UNSAFE_componentWillMount","initInsightsApp","selectInsight","InsightViewer","fetchInsights","withTranslation","AreasDensityList","onSelectArea","ReactTooltip","place","orderedAreasByDensity","AreasDensityContainer","handleSelectArea","getAreaFloor","ClockComponent","CurrentSiteClock","m","handleTime","handleTick","clockId","timezoneClock","setInterval","Disclaimer","outlined","MapPolygons","polygons","onSelectPolygon","polygon","Polygon","positions","weight","GeoMap","maxZoom","FullscreenControl","getterCurrentSite","head","selectMapAreasCurrentTraffic","timestamp","selectIsMapLoading","selectMapAreasForecast30Traffic","selectMapBounds","ZOOM","selectMapPictures","hasAreas","image","isSelected","selectMapPolygonsActual","selectMapPolygonsForecast30","ModePicker","modes","onChangeMode","PictureMap","pictures","crs","L","zoomSnap","attributionControl","picture","ImageOverlay","PicturePicker","onSelectPicture","MapContainer","handleSelectPolygon","handleSelectPicture","handleChangeMode","pictureId","onChangePicture","polygonId","modeId","prevState","getPolygons","polygonsActual","polygonsForecast30","currentPicture","Legend","redThreshold","greenThreshold","withOpeningHours","isSocialDistancingFeatureActivated","NoRtDataComponent","siteName","modalStyle","overlay","transform","border","borderRadius","boxShadow","display","flexDirection","SocialDistancingTableContainer","handleSortChangeOnZoom","handleOpenOrCloseZoomModal","filterAreas","handleSearch","view","currentSorting","zoomView","zoomIsOpen","searchContent","selectedSort","toOpen","search","isSetup","SocialDistancingTableView","onSortChange","onOpenOrCloseZoomModal","ReactModal","onRequestClose","ariaHideApp","isZoom","sortedAreas","sortId","getSortedAreas","socialDistancing","SocialDistancingTableBig","placeholder","autoFocus","LiveChartContainer","FigureIconCard","icon","Label","comparedLabel","RealtimeStatContainer","areaSelectorOpen","formatToMinutes","rtDataLoading","displaySocialDistancing","displaySdaInLive","floorsLoading","displayValue","dwellTimeCardLabel","labelDisplayValue","trafficLabel","site_types","trafficLabelSubtitle","meanTrafficLogo","dwellTimeLogo","SocialDistancingTableSmall","isRtDataLoading","paddingBottom","ZoomTrafficChart","openModal","onCloseZoomModal","AreaFloorSelector","filterAreasToDisplay","onOpen","areasToMap","entireSiteLabel","areasToDisplay","entireSiteLabelToDisplay","_keysInstanceProperty","k","RealtimeContainer","zoomChartIsOpen","handleCloseZoomModal","handleOpenZoomModal","handleOpenSelector","handleClose","onRealtimeInit","onChangeArea","onResetEntireSite","noFloors","liveAreasLoading","isTrafficTooHigh","isCurrentlyCompleted","mapAreas","selectedAreas","showDataDisclaimer","liveDisclaimerMessage","isWrongDataWifi","i18n","wrongWifiDataLabel","alignItems","language","SdaMapContainer","currentFloor","is_used_for_live","allSitesAreasWithFloors","getTimezoneOfCurrentSite","getterSiteFloorsData","getterSiteJourneys","journeys","getCurrentJourney","getFormatedJourneys","journey","area_from","fromUuid","area_to","toUuid","dwelltime_max","dwelltime_min","selectMapPicturesAllAreas","selectAllMapPolygons","getColor","getOpacity","JourneysTimesList","onSelectJourney","tryFetchJourneys","fetchJourneysSuccess","fetchJourneysFailure","JourneysTimesTableContainer","handleJourneySelection","selectJourney","subTitle","journeyId","WalkingTimesContainer","onWalkingTimesInit","fetchWalkingTimesStats","LiveContainer","initLiveApp","shouldComponentUpdate","nextProps","nextState","isSiteIdUpdated","isSectionUpdated","isTUpdated","isConfigFetchedUpdated","Switch","Route","exact","component","computeTooltipLabel","lastdate","isSame","Jplus1","dates","_reverseInstanceProperty","numMonth","datesMonth","CalendarHeatmap","monthLabels","weekdayLabels","startDate","endDate","showWeekdayLabels","showMonthLabels","classForValue","gutterSize","tooltipDataAttrs","fetchJplus1DatesSuccess","fetchJplus1DatesFailure","fetchLastExportStatusSuccess","fetchLastExportStatusFailure","Jplus1Container","onJPlus1Init","jplus1","fetchJplus1Dates","fetchAccessPoints","fetchAccessPointsSuccess","fetchAccessPointsFailure","setCurrentApsPage","Circle","getColorApUp","accessPoints","nbApUp","AccessPointsHeader","AccessPoints","filteredAps","currentPageNumber","handleChangePage","sorting","handleSortBy","searchText","handleSearchAp","_trimStartInstanceProperty","ap","client_name","mac_address","uptime","used_for_location","page","pages","getterAccessPoints","getNbApsUps","AccessPointsContainer","onAccessPointsInit","onChangePage","field","currentValue","onSortApsByField","onSearchAp","apsToDisplay","sortApsByField","searchAp","getColorFromStatus","StatusCard","getIconFromStatus","BigStatusCard","important","MonitoringComponent","apsStatus","realtimeStatus","realtimeReason","jplus1Status","jplus1Reason","collectStatus","collectReason","mainStatus","getterJPlus1Reason","getterCollectReason","collect","isCollectLoading","getRealtimeReason","realtime","isRealtimeLoading","isAccessPointsLoading","fetchCollectStatusSuccess","fetchCollectStatusFailure","isJplus1Loading","fetchRealtimeStatusSuccess","MonitoringSummaryContainer","onMonitoringSummaryInit","getAccessPointsStatus","getRealtimeStatus","getterJPlus1Status","getterCollectStatus","fetchLastExportStatus","fetchCollectStatus","fetchRealtimeStatus","MonitoringContainer","initMonitoringApp","PageComponent","fetchAllPresenceStock15min","fetchPresenceStock15minSuccessAllAreas","fetchPresenceStock15minErrorAllAreas","fetchDailyTraffic","fetchDailyTrafficSuccess","fetchDailyTrafficError","getterDashboardLoading","dashboard","siteFloors","checkDataCompletedFlagInList","node","isTrafficDistributionGraphCompleted","isDwelltimeDistributionGraphCompleted","isDwelltimePerPopulationGraphCompleted","selectDisplayDataCompletionMessage","trafficDistrib","dwelltimeDistrib","populationDistrib","dwelltimePopulation","changeCurrentAreaColorMap","poly","DatesPicker","focusedInput","onDatesChange","onDateChange","onFocusChange","onSingleDateFocusChange","onClose","getCurrentVisibleMonth","isWeekSelection","onDayChange","endDateValue","focused","calendarFocused","textValue","getElementById","dateValue","dateToSave","_isValid","isSingleDate","SingleDatePicker","showDefaultInputIcon","hideKeyboardShortcutsPanel","numberOfMonths","horizontalMargin","isOutsideRange","displayFormat","longDateFormat","DateRangePicker","endDatePlaceholderText","startDateId","endDateId","minimumNights","initialVisibleMonth","endDateOffset","GranularityPicker","onGranularityChange","args","TrafficByPopulationChart","isFromPopulationForGCActivated","popluation","TrafficByPopulationChartContainer","noData","storeData","formatData","ChartTooltip","yAxisOffset","maxNumber","highestValueLabel","numbers","n","maxObj","FrequentationChart","highlightValue","isDataCompleted","showOpenModal","onOpenModal","paddingRight","ComposedChart","strokeDasharray","FrequentationChartContainer","handleOpenModal","isDataCompletionActive","presenceDistrib","presenceDataCompletion","presenceSum","presenceSumLoading","presenceDistribLoading","currentGranularity","presenceData","DwelltimeChart","memoizedGetCellColor","memoizedGetStrokeColor","memoizedGetStrokeDashArray","onMouseLeave","onMouseOver","DwelltimeChartContainer","dwelltimeMean","dwelltimeMeanLoading","dwelltimeDistribLoading","ffData","formatedTime","DwelltimeByPopulationChart","DwelltimeByPopulationChartContainer","DailySocialDistancingArea","classNames","hour","quarter","SocialDistancingMonitoringTable","isNoData","nextArea","Math","__spread","_flatInstanceProperty","ar","displayedArea","nb_peaks","getterSocialDistanceJ1","socialDistanceJ1","currentDate","isSocialDistancingTableLoading","isSocialDistancingDailyTrafficLoading","isSocialDistancingRatioLoading","isRefTrafficLoading","isDailyTrafficLoading","areaData","thresholdMin","thresholdMax","opening","closing","is_error","isDataInOpeningHours","from_hour","currentTime","close","currentWithTz","selectAllAreasSocialDistanceJ1","social_distancing_green_threshold","social_distancing_red_threshold","opening_hours","filterData","filter","includes","areaItem","zone_name","hourValue","selectIsNoDataAvailable","selectDailyTraffic","selectRatioCoverage","dailyTraffic","refTraffic","SocialDistancingMonitoringTableContainer","ReportingGraphsContainer","isSDMOnReportingActivated","isSameDay","displayDataCompletionMessage","currentPopulation","siteType","string","compose","tags","Select","handleSelectOption","handleOpen","onSelect","colorMode","PopulationSelector","onPopulationChange","withLabel","DashboardContainer","handleDayChange","handleGranularityChange","handlePopulationChange","initReportingApp","changeCurrentPopulation","changeSelectedDay","changeSelectedSameDay","formatedFrom","formatedTo","checkedGranularity","changeSelectedGranularity","dashboardSectionLoading","noColor","currentPopulationName","initDashboardSection","getterReportsCreationLoading","reportsCreation","selectComparedAreaData","selectComparedDatesData","selectLoadingCreationReportsComponent","baseAreaData","comparedAreaData","comparedDatesData","selectLoadingAllReports","frequentationLoading","dwellTimeLoading","meanDwelltimeLoading","unit","meanFrequentationLoading","selectDataBarsComparisonComponent","baseField","valueStat","nameStat","valueStatCompared","nameStatCompared","selectStatusStatBarsComparisonComponent","selectStatusStatComparedBarsComparisonComponent","selectBaseAreaStatus","selectComparedAreaStatus","selectComparedDatesStatus","selectSomeStatusHasNoData","frequentationDistribBaseAreaStatus","dwelltimeDistribBaseAreaStatus","frequentationSumBaseAreaStatus","frequentationMeanBaseAreaStatus","dwelltimeMeanBaseAreaStatus","baseAreaStatusIsOK","frequentationDistribComparedAreaStatus","dwelltimeDistribComparedAreaStatus","frequentationSumComparedAreaStatus","frequentationMeanComparedAreaStatus","dwelltimeMeanComparedAreaStatus","comparedAreaStatusIsOK","frequentationDistribComparedDatesStatus","dwelltimeDistribComparedDatesStatus","frequentationSumComparedDatesStatus","frequentationMeanComparedDatesStatus","dwelltimeMeanComparedDatesStatus","comparedDatesStatusIsOK","selectSumPresenceBaseArea","selectSumPresenceComparedArea","selectComparedPresenceStats","areaDatesData","isTrafficDistribCompleted","isTrafficSumAndMeanCompleted","compareAreaDatesData","isCompareTrafficDistribCompleted","isCompareTrafficSumAndMeanCompleted","isBaseDataCompleted","isCompareAreaDataCompleted","isCompareDateDataCompleted","meanTraffic","meanDwelltime","fetchAggregatedStatsFromComputeEngine","endpoint","configId","fetchStatsFromComputeEngine","fetchPresenceMeanFromComputeEngine","CurrentDateSelector","ComparisonSelector","onOpenArea","isOpenArea","onCloseArea","currentComparisonMode","optionsComparisonMode","comparedFrom","comparedTo","onComparedDayChange","onChangeComparisonMode","onChangeComparedArea","noComparisonLabel","compareLabel","ComparisonSelectorContainer","handleComparisonMode","handleComparedDayChange","handleComparedArea","handleCloseZoneSelector","handleOpenZoneSelector","openZoneSelector","changeComparedSelectDay","evt","onComparisonMode","withZones","setComparedDay","setComparedArea","setComparisonMode","widthWithoutLabel","fontFamily","BarsComparison","statusStat","statusStatCompared","isSingleBar","statHasData","statComparedHasData","paddingTop","isAnimationActive","paddingLeft","LabelList","BarsComparisonContainer","memoizedGetCellColorCompare","memoizedGetStrokeColorCompare","memoizedGetStrokeDashArrayCompare","_findIndexInstanceProperty","baseTime","selectedTime2","selectedValue1","selectedValue2","selectedZone","selectedZone2","DwellTimeChartContainer","DwellTimeChart","baseStats","statsToCompare","highlightValueDataSet","highlightValueToCompareDataSet","isComparedDataCompleted","highlightValueToCompare","trafficData","siteTypes","PopulationFilter","ReportsCreationContainer","handleBaseDayChange","handleDownloadReport","initReportsCreation","changeBaseSelectedDay","onDownloadReport","downloadingReport","dataLoading","reportsCreationSectionLoading","baseFrom","baseTo","someChildComponentsHasNoData","currentConfig","initReportsCreationSection","reportPrefix","reportSuffix","downloadReport","fetchDestinations","fetchDestinationsSuccess","destinations","fetchDestinationsFailure","setCurrentDestination","code","getterDestinations","getCurrentDestinationFromNavigation","DestinationsPicker","onSelectDestination","setSearchContent","destinationsToDisplay","destination","toLower","country","city","getDestinationsFromCountry","useDestinationPicker","openHeaderClass","openArrowClass","arrow_drop_up","arrow_drop_down","DestinationsPickerContainer","destinationSelectorOpen","handleDestinationSelection","onDestinationChange","macroAreas","en","fr","colorCodes","colorsNames","colorNamesByCode","selectFlightsCountPerDestination","flightsCountPerDestinations","selectDwelltimePerDestination","dwelltimesPerDestinations","selectDwelltimePerDestinationData","macroArea","fr_zone_name","selectDwelltimePerDestinationLoading","selectFlightsCountPerDestinationData","selectTotalDwelltimePerDestination","selectFlightsCountPerDestinationLoading","selectTotalFlightsCountPerDestination","HorizontalChartBar","text","notFull","maxValue","DwelltimePerDestinationChart","WeeklyBarChartTooltip","_valuesInstanceProperty","RoundedRectangle","selectedIndex","strokeOpacity","WeeklyBarChart","daysDistrib","defaultTicks","maxBarSize","PerDestinationContainer","initPerDestination","dwelltimeStats","destinationName","totalDwelltime","flightsCountStats","totalFlightsCount","isFlightsCountLoading","dwelltimeLogo","flightsLogo","airportCode","getterFlightsReportLoading","flightsReport","selectFlightsCountPerAirline","flightsCountPerAirlines","selectDwelltimePerAirline","dwelltimesPerAirline","selectDwelltimePerAirlineData","selectDwelltimePerAirlineDataLoading","selectFlightsCountPerAirlineLoading","selectFlightsCountPerAirlineData","sortedColors","v","airline","res","_loop_1","l","sum","sortedColors_1","sortedColors_1_1","val","selectFlightsCountAllAirlines","selectTotalFlightsCountAllAirlines","selectCompanyColors","airlines","airlinesColors","DwelltimePerAirlineMacroAreas","currentMacroArea","handleMacroAreaSelection","macroAreaStats","airline_name","MiniHorizontalChartBar","TotalFlightsCountPerAirlineCard","distribution","PerAirlineContainer","initPerAirline","companyColors","flightsCountPerAirline","flightsCountAllAirlines","totalFlightsCountAllAirlines","dwelltimeStatsLoading","FlightsReportContainer","handleDestinationChange","handleChangeCurrentSubsection","initFlightsReportingApp","changeDestination","newSubsection","flightsReportSectionLoading","isPerAirlineActive","statsLoading","fetchStatsSuccess","fetchStatsFailure","aggregatedStatsLoading","fetchAggregatedStatsSuccess","fetchAggregatedStatsFailure","setStatsStatus","getterCurrentConfigId","getPOIsList","pois","selectAllAreaPoisWithFloors","poi","selectCurrentPoi","navigationPoiId","allPois","getAreaIdFromPOI","getterRetailLoading","retail","selectDisplayImageMap","selectDisplayGeoMap","selectIsAreaLoading","PoiSelector","filterPoisToDisplay","onSelectPoi","poisToMap","poisToDisplay","fetchPois","fetchPoisSuccess","fetchPoisFailure","setFloorAndAreaFromPOI","PoisPickerContainer","poiSelectorOpen","handleSelectPoi","onChangePoi","currentPoi","selectedPois","PopulationChartComponent","RetailPopulationChartContainer","DwelltimeChartView","tickMargin","RetailDwelltimeChartContainer","dwelltimeDailyLoading","PaxChartComponent","Intl","NumberFormat","round","PaxChartContainer","loadedArea","RetailContainer","initRetailReportingApp","retailSectionLoading","currentConfigId","displayGeoMap","loadingSelectedArea","displayImageMap","isShowRetailNoDataAvailable","dollarIcon","conversionIcon","basketIcon","initRetailSection","getterAdvertisingLoading","advertising","AdvertisingPopulationChartContainer","AdvertisingDwelltimeChartContainer","AdvertisingContainer","initAdvertisingApp","stoppingPaxHistory","advertisingLoading","isAreaPresenceLoading","areaPresenceUp300","areaPresenceUp600","stoppingPaxLabel","traffic300Label","traffic600Label","formatedStoppingPaxHistory","timerLogo","initAdvertisingSection","ReportingContainer","SideMenu","isMonitoringAvailable","isLiveV2Available","isInsightViewerAvailable","isReportingV2Available","isSocialDistancingAppAvailable","logout","useAuth0","onLogout","returnTo","location","origin","monitoringActive","monitoring","allowedGoToV1","isReportingAvailable","isIntelligenceAvailable","isSettingsAvailable","isLiveV1Available","SideMenuContainer","SocialDistancingAssistantContainer","initSocialDistancingAssitantApp","fetchSocialDistancingAssistantStats","SocialDistancingMonitoringCardsContainer","ratioCoverage","isMeanTrafficLoading","isRatioLoading","recoveryRatio","SocialDistancingMonitoringContainer","initSocialDistancingMonitoringApp","currentDay","isSDMIteration2Active","fetchSocialDistancingMonitoringStats","SocialDistancingAppContainer","initSocialDistancingApp","SocialDistancingAssitantContainer","SiteSelector","onSearch","LiveMenu","liveSection","isWalkingTimesActivated","MonitoringMenu","monitoringSection","isSummaryActivated","isFromSmartFlowsActivated","isAccessPointActivated","ReportingMenu","reportingSection","isReportsActivated","isReportingTimePerFlightActivated","isRetailActivated","isAdvertisingActivated","Backend","use","initReactI18next","init","defaultNS","fallbackLng","debug","interpolation","escapeValue","backend","loadPath","queryStringParams","getTime","react","useSuspense","SocialDistancingMenu","isSocialDistancingMonitoringActivated","socialDistancingSection","TopBarContainer","handleSearchSite","handleOpenSearch","handleSelectSite","onSearchSite","onSiteSelection","displayedSites","languageIsOK","filterSitesBySearchContent","Fuse","useExtendedSearch","keys","minMatchCharLength","prev","searchSite","App","showMobileMessage","initAppLocation","onSitesInit","userLoggedIn","auth0","getAccessTokenSilently","getIdTokenClaims","user","then","accessToken","idToken","setItem","exp","isMobile","sitesFetched","featuresFetched","localeReady","Translation","justifyContent","alt","maxWidth","textAlign","marginTop","pathname","withAuth0","fetchFeatures","initLocation","fetchSites","idTokenPayload","useHistory","Auth0Provider","AUTH0_DOMAIN","clientId","AUTH0_CLIENTID","redirectUri","audience","AUTH0_AUDIENCE","cacheLocation","scope","onRedirectCallback","appState","replace","combineReducers","auth","action","logged","tokens","userInfos","forecastDataLoading","forecastData","forecast30Traffic","areaThresholdLoading","_sliceInstanceProperty","_r","_s","_t","_u","_v","_w","_x","_y","_z","_0","_1","_2","_3","_4","_5","_6","_7","stockDistrib","_8","_9","_10","sort","granularityKind","fromToDate","granularityKindData","fromToDateData","statsData","urlParams","searchParams","stringParamsArray","queryParams","navigationParams","param","nameValueParam","memo","authSaga","waitFeaturesThenFetchSites","take","tryFetchSites","sfiV2All","siteIdToSet","siteIdFromCookie","availableSites","isCurrentSiteIdInAvailableSites","isSiteInCookieInAvailableSites","firstAvailableSiteId","getSiteToSet","cookie","split","setCurrentSiteNavigation","setSiteIdInCookie","sitesSaga","getActualQueryParams","paramKey","join","setCurrentAppNavigation","setCurrentFloorNavigation","setCurrentFloorNavigation2","actualParams","setCurrentAreaNavigation","setCurrentAreaNavigation2","removeAreaNavigation","setCurrentPoiNavigation","setCurrentTheme","documentElement","setAttribute","setCurrentLangage","changeLanguage","handleFetchConfigByApp","navigationSagas","tryFetchSiteConfig","tryFetchSiteConfig2","configsSaga","tryFetchLiveAreas","currentRtId","tryFetchLiveAreas2","tryFetchReferenceRealtimeData","applySmoothing","smoothedData","historical","prediction","nSamples","smoothStart","predStart","arrayToSmooth","smoothed","Float64Array","denominator1","sqrt","PI","denominator2","pow","normalizer","acc","normfilter","c","smoothingAlgorithm","tryFetchRealtimeV4","formated","fetchHistoricalData","updateRtIdOnSelectArea","liveAreaSagas","tryFetchAreaPois","currentPoiId","firstPoiId","setFloorAndAreaFromPOIsaga","poisSaga","pushToGTM","dataLayer","sendUserMailToGTM","event","usermail","setSiteToGTM","sendCurrentSiteToGTM","gtmSaga","ws","WebSocket","WISPATCH_ENDPOINT","onopen","send","createSocketChannel","socket","eventChannel","emit","onmessage","startStopChannel","socketChannel","STATUS","tryFetchAccessPoints","nbApsUps","getStatusForAPs","accessPointsSaga","tryFetchFeatures","rawArray","featuresSaga","tryFetchJplus1Dates","expectedExportTime_1","statusData","expected_export_time","export_date","getStatusAndReasonFromLastExport","lastExports","expectedExportTime","currentExport","asHours","expected","effective_export_date","tryFetchLastExportStatus","frTime","exportDate","exportStatus","momentTz","jplus1Sagas","tryFetchCollectStatus","getCollectStatusReasonFromLastCollectEvent","lastCollectEvent","collectSagas","tryFetchInsights","insightsSaga","GC_STANDARD_DAYS","tryFetchPresenceStats","useReferenceData","tryFetchMonthlyStats","encodeURIComponent","tryFetchReferencePresenceStatsSaga","tryFetchDwelltimeStats","customGranularity","tryFetchAggregatedPresenceStats","tryFetchAggregatedDwelltimeStats","monthlyData","tryFetchTrafficStatsByPopulation","tryFetchDwelltimeStatsByPopulation","computeSagas","fetchProcesses","fetchProcessesSuccess","fetchProcessesFailure","initReportsCreationSectionSaga","tryFetchReportsCreationStatsFromCompute","diffBaseDate","fetchAggregatedStatsFromComputeEngineSaga","fetchStatsFromComputeEngineSaga","isDailyDistribComplete","fetchPresenceMeanFromComputeEngineSaga","areaDatesComputeData","presenceMean","Value","element","canvas","fileName_1","getElementsByClassName","html2canvas","onclone","querySelector","toBlob","saveAs","reportsSagas","tryFetchRealtimeStatus","realtimeSagas","tryFetchProcesses","processesSaga","tryfetchWalkingTimesStats","tryFetchJourneysSaga","refreshJourneysData","walkingTimesSaga","tryfetchRealtimeStats","liveSagas","tryFetchDestinationsFromSite","destinationsSagas","tryfetchSocialDistancingAssistantStats","socialDistancingSagas","tryfetchSocialDistancingMonitoringStats","tryfetchAllPresenceStock15min","getPresenceStock15AllAreas","mergedData","zones","population_name","tryFetchDailyTraffic","socialDistancingMonitoringSagas","fetchDwelltimePerMacroAreas","fetchDwelltimePerMacroAreasSuccess","fetchDwelltimePerMacroAreasError","fetchFlightsCountPerDestination","fetchFlightsCountPerDestinationSuccess","fetchFlightsCountPerDestinationError","tryFetchDwelltimePerDestination","tryFetchFlightsCountPerDestination","perDestinationSagas","fetchDwelltimePerAirline","fetchFlightsCountPerAirline","fetchDwelltimePerAirlinesSuccess","fetchFlightsCountPerAirlineSuccess","fetchDwelltimePerAirlineError","fetchFlightsCountPerAirlineError","tryFetchDwelltimePerAirline","tryFetchFlightsCountPerAirline","perAirlineSagas","tryfetchRetailStats","tryFetchPoisPresenceStats","tryFetchPoisPresenceStatsByArea","granularityDaily","tryFetchPoisPresenceStatsByStopping","retailSagas","initDashboardSectionSaga","tryfetchDashboardStatsSaga","dashboardSagas","initFlightsReportSectionSaga","tryfetchFlightsReportStatsSaga","subSection","flightsReportSagas","tryfetchAdvertisingStats","tryFetchAvertisingPresenceStatsByArea","tryFetchAvertisingPresenceUp300StatsByArea","tryFetchAvertisingPresenceUp600StatsByArea","advertisingSagas","initHomeCardSaga","setWhichCardToLoad","tryFetchHomeMeanPresenceStats","tryFetchHomeMostVisitedSites","formatedAndSortedData","tryFetchHomeAggregatedPresenceStats","tryFetchHomeYesterdayMostVisitedSites","siteConfig","homeNowStats","configIdToSend","filtered","config_id","tryFetchFocusSites","chain","homeSagas","tryFetchScales","scalesSaga","rootSaga","qualityServiceScales","sagaMiddleware","createSagaMiddleware","initialState","store","createStore","reducers","composeWithDevTools","applyMiddleware","run","dsn","process","env","SENTRY_DSN","integrations","Integrations","tracesSampleRate","Number","SENTRY_TRACES_SAMPLE_RATE","replaysSessionSampleRate","SENTRY_REPLAY_SESSION_SAMPLE_RATE","replaysOnErrorSampleRate","cssVars","Router","AuthProvider","Provider","withAuthenticationRequired","useLocation","webpackContext","req","webpackContextResolve","__webpack_require__","Object","module","exports"],"mappings":"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","file":"public/main.js?version=d7543913156caf7e120c","sourcesContent":["export var fetchFeatures = function (siteId) { return ({\n type: 'FETCH_FEATURES',\n siteId: siteId,\n}); };\nexport var fetchFeaturesSuccess = function (features, values) {\n if (values === void 0) { values = {}; }\n return ({\n type: 'FETCH_FEATURES_SUCCESS',\n features: features,\n values: values,\n });\n};\nexport var fetchFeaturesFailure = function () { return ({\n type: 'FETCH_FEATURES_FAILURE',\n}); };\n","export var fetchSites = function (currentSiteId, history) { return ({\n type: 'FETCH_SITES',\n currentSiteId: currentSiteId,\n history: history,\n}); };\nexport var fetchSitesSuccess = function (data, history) { return ({\n type: 'FETCH_SITES_SUCCESS',\n data: data,\n history: history,\n}); };\nexport var fetchSitesFailure = function () { return ({\n type: 'FETCH_SITES_FAILURE',\n}); };\nexport var searchSite = function (searchContent) { return ({\n type: 'SEARCH_CONTENT',\n searchContent: searchContent,\n}); };\nexport var setCurrentSite = function (siteId, history) { return ({\n type: 'SET_CURRENT_SITE',\n siteId: siteId,\n history: history,\n}); };\n","export var fetchScales = function () { return ({\n type: 'FETCH_SCALES',\n}); };\nexport var fetchScalesSuccess = function (scales) { return ({\n type: 'FETCH_SCALES_SUCCESS',\n scales: scales,\n}); };\nexport var fetchScalesFailure = function () { return ({\n type: 'FETCH_SCALES_FAILURE',\n}); };\n","import _ from 'lodash';\nexport var getAllSites = function (state) { return _.get(state.sites, 'data', []); };\nexport var getCurrentSite = function (state) {\n return _.find(getAllSites(state), function (s) { return s.uuid === state.navigation.siteId; });\n};\n","import _ from 'lodash';\nimport moment from 'moment';\nexport var getCurrentSiteId = function () { return function (state) { return _.get(state.navigation, 'siteId'); }; };\nexport var getCurrentSiteId2 = function (state) { return _.get(state.navigation, 'siteId'); };\nexport var getCurrentRtId = function () { return function (state) { return state.navigation.rtId; }; };\nexport var getCurrentRtId2 = function (state) { return state.navigation.rtId; };\nexport var getCurrentPoiId = function (state) { return _.get(state.navigation, 'poiId'); };\nexport var getCurrentFloorId = function () { return function (state) { return _.get(state.navigation, 'floorId'); }; };\nexport var getCurrentFloorId2 = function (state) { return _.get(state.navigation, 'floorId'); };\nexport var getCurrentAreaId = function () { return function (state) { return state.navigation.areaId; }; };\nexport var getCurrentAreaId2 = function (state) { return _.get(state.navigation, 'areaId'); };\nexport var getCurrentApp = function () { return function (state) { return state.navigation.app; }; };\nexport var getCurrentApp2 = function (state) { return state.navigation.app; };\nexport var getCurrentSection = function () { return function (state) { return state.navigation.section; }; };\nexport var getCurrentSection2 = function (state) { return _.get(state.navigation, 'section'); };\nexport var getCurrentDayFrom = function (state) {\n return _.get(state.navigation, 'currentDayFrom', moment().subtract(1, 'days').format('YYYY-MM-DD'));\n};\nexport var getCurrentDayTo = function (state) {\n return _.get(state.navigation, 'currentDayTo', moment().subtract(1, 'days').format('YYYY-MM-DD'));\n};\nexport var getComparedDayFrom = function (state) {\n return _.get(state.navigation, 'comparedDayFrom', moment().subtract(1, 'days').format('YYYY-MM-DD'));\n};\nexport var getComparedDayTo = function (state) {\n return _.get(state.navigation, 'comparedDayTo', moment().subtract(1, 'days').format('YYYY-MM-DD'));\n};\nexport var getComparisonsOptions = function (withZones, t) {\n return withZones\n ? [\n { name: t('Reporting_Labels.By_date'), uuid: 'date' },\n { name: t('Reporting_Labels.By_area'), uuid: 'zone' },\n { name: t('Reporting_Labels.No_comparison'), uuid: 'no_comparison' },\n ]\n : [\n { name: t('Reporting_Labels.By_date'), uuid: 'date' },\n { name: t('Reporting_Labels.No_comparison'), uuid: 'no_comparison' },\n ];\n};\nexport var getCurrentComparisonMode = function (state) {\n return _.get(state.navigation, 'currentComparisonMode', { name: 'No_comparison', uuid: 'no_comparison' });\n};\nexport var getComparedArea = function (state) { return _.get(state.navigation, 'comparedArea', null); };\nexport var getCurrentPopulation = function () { return function (state) {\n return _.get(state.navigation, 'currentPopulation', 'All populations');\n}; };\nexport var getCurrentDestination = function (state) { return _.get(state.navigation, 'currentDestination'); };\nexport var getCurrentSubsection = function (state) { return _.get(state.navigation, 'subsection'); };\n","import { __assign, __read, __values } from \"tslib\";\nimport moment from 'moment-timezone';\nimport _ from 'lodash';\nvar DATA_COMPLETED_MONTH_THRESHOLD = 0.3;\nexport var isGranularityAvailable = function (granularity, from, to) {\n var dateFrom = moment(from, 'YYYY-MM-DD');\n var dateTo = moment(to, 'YYYY-MM-DD');\n var diffDays = dateTo.diff(dateFrom, 'days') + 1;\n var diffMonths = dateTo.diff(dateFrom, 'months') + 1;\n switch (granularity) {\n case 'hourly':\n return diffDays <= 15;\n case 'daily':\n return diffDays >= 2 && diffMonths <= 12;\n case 'monthly':\n return diffMonths >= 2;\n default:\n return false;\n }\n};\nexport var getSmallestAvailableGranularity = function (granularity, from, to) {\n var granularities = ['hourly', 'daily', 'monthly'];\n var isGranularityOk = isGranularityAvailable(granularity, from, to);\n if (isGranularityOk) {\n return granularity;\n }\n var index = _.indexOf(granularities, granularity);\n var newIndex = (index + 1) % granularities.length;\n return getSmallestAvailableGranularity(granularities[newIndex], from, to);\n};\nexport var getSmallestAvailableGranularityFromFilters = function (granularity, from, to, comparedFrom, comparedTo) {\n var diffBaseDate = moment(to, 'YYYY-MM-DD').diff(moment(from, 'YYYY-MM-DD'));\n var diffComparedDate = moment(comparedTo, 'YYYY-MM-DD').diff(moment(comparedFrom, 'YYYY-MM-DD'));\n if (diffComparedDate > diffBaseDate) {\n return getSmallestAvailableGranularity(granularity, comparedFrom, comparedTo);\n }\n return getSmallestAvailableGranularity(granularity, from, to);\n};\nexport function computeMonthlyPresence(data) {\n return _.chain(data)\n .map(function (item) { return (__assign(__assign({}, item), { formatedDate: moment(item.Date).format('YYYYMM') })); })\n .groupBy(function (item) { return item.formatedDate; })\n .map(function (monthDaysArray) { return ({\n Config: _.head(monthDaysArray).Config,\n Zone: _.head(monthDaysArray).Zone,\n FromHour: _.min(_.map(monthDaysArray, function (day) { return day.FromHour; })),\n ToHour: _.max(_.map(monthDaysArray, function (day) { return day.ToHour; })),\n Presence: _.sumBy(monthDaysArray, 'Presence'),\n DataCompleted: _.filter(monthDaysArray, 'DataCompleted').length / monthDaysArray.length >\n DATA_COMPLETED_MONTH_THRESHOLD,\n }); })\n .value();\n}\nexport function computeMonthlyDwellTime(data) {\n return _.chain(data)\n .map(function (item) { return (__assign(__assign({}, item), { formatedDate: moment(item.Date).format('YYYYMM') })); })\n .groupBy(function (item) { return item.formatedDate; })\n .map(function (monthDaysArray) { return ({\n Config: _.head(monthDaysArray).Config,\n Zone: _.head(monthDaysArray).Zone,\n FromHour: _.min(_.map(monthDaysArray, function (day) { return day.FromHour; })),\n ToHour: _.max(_.map(monthDaysArray, function (day) { return day.ToHour; })),\n AverageDwellTime: _.meanBy(monthDaysArray, 'AverageDwellTime'),\n DataCompleted: _.filter(monthDaysArray, 'DataCompleted').length / monthDaysArray.length >\n DATA_COMPLETED_MONTH_THRESHOLD,\n }); })\n .value();\n}\nexport function computePresenceMean(data) {\n return _.meanBy(data, 'Presence');\n}\nexport var isNumberOfDayAboveOne = function (data) {\n var times = _.map(data, function (d) { return d.time; });\n var firstTime = moment(_.head(times));\n var lastTime = moment(_.last(times));\n var IsDiff = firstTime.diff(lastTime, 'days');\n return IsDiff;\n};\nexport var getHourlyTicksByDayForFrequentation = function (data) {\n var times = _.map(data, function (d) { return d.time; });\n var firstTime = moment(_.head(times));\n var lastTime = moment(_.last(times));\n var getArrayByDayForFrequentationChart = [];\n while (firstTime <= lastTime) {\n getArrayByDayForFrequentationChart.push(moment(firstTime));\n firstTime = moment(firstTime).add(1, 'days');\n }\n return getArrayByDayForFrequentationChart;\n};\nexport var getHourlyTicksByDayForDwelltime = function (data) {\n var times = _.map(data, function (d) { return d.time; });\n var firstTime = moment(_.head(times));\n var lastTime = moment(_.last(times));\n var getArrayByDayForDwelltimeChart = [];\n while (firstTime <= lastTime) {\n var formatForDwelltime = moment(firstTime).add(12, 'h');\n getArrayByDayForDwelltimeChart.push(formatForDwelltime);\n firstTime = moment(firstTime).add(1, 'days');\n }\n return getArrayByDayForDwelltimeChart;\n};\nexport var mergeBaseComparedData = function (base, compared, mode, areaName, comparedAreaName) {\n var data = _.map(base, function (s) { return (__assign(__assign({}, s), { zone: areaName })); });\n if (_.isEmpty(compared) || mode === 'no_comparison') {\n return data;\n }\n if (data.length >= compared.length) {\n return _.map(data, function (s, index) { return (__assign(__assign({}, s), { compared_time: index + 1 > compared.length ? null : compared[index].time, compared_value: index + 1 > compared.length ? 0 : compared[index].value, zone2: comparedAreaName, compared_isCompleted: index + 1 > compared.length ? false : compared[index].isCompleted })); });\n }\n return _.map(compared, function (s, index) { return (__assign(__assign({}, s), { zone: comparedAreaName, compared_time: s.time, compared_value: s.value, zone2: comparedAreaName, value: index + 1 > data.length ? 0 : data[index].value, time: index + 1 > data.length ? null : data[index].time, compared_isCompleted: s.isCompleted, isCompleted: index + 1 > data.length ? false : data[index].isCompleted })); });\n};\nexport var getTimeKey = function (data) { return (_.every(_.map(data, function (d) { return d.time !== null; })) ? 'time' : 'compared_time'); };\nexport var getTooltipFormat = function (granularity, selectedPayload, timezone) {\n if (timezone === void 0) { timezone = 'fr-FR'; }\n if (granularity === 'hourly') {\n return moment(_.get(selectedPayload, 'time')).tz(timezone).format('ll - HH:mm');\n }\n else if (granularity === 'daily') {\n return moment(_.get(selectedPayload, 'time')).format('ll');\n }\n else if (granularity === 'monthly') {\n return moment(_.get(selectedPayload, 'time')).format('MMM YYYY');\n }\n else {\n return moment(_.get(selectedPayload, 'time')).tz(timezone).format('MMMM');\n }\n};\nexport var isDailyDistribComplete = function (data, dayFrom, dayTo) {\n var daysNb = data.length;\n var diffQueryDates = moment(dayTo, 'YYYY-MM-DD').diff(moment(dayFrom, 'YYYY-MM-DD'), 'days') + 1;\n return daysNb === diffQueryDates;\n};\nexport var getCellColor = function (_a) {\n var activeIndex = _a.activeIndex, isCursorOnChart = _a.isCursorOnChart, isDashed = _a.isDashed, color = _a.color;\n if (activeIndex) {\n return \"rgba(\" + color + \", 1)\";\n }\n if (isDashed || isCursorOnChart) {\n return \"rgba(\" + color + \", 0.5)\";\n }\n return \"rgba(\" + color + \", 1)\";\n};\nexport var getStrokeColor = function (_a) {\n var activeIndex = _a.activeIndex, isCursorOnChart = _a.isCursorOnChart, isDashed = _a.isDashed, color = _a.color;\n if (activeIndex || isDashed) {\n return \"rgba(\" + color + \", 1)\";\n }\n if (isCursorOnChart) {\n return \"rgba(\" + color + \", 0.5)\";\n }\n return \"rgba(\" + color + \", 1)\";\n};\nexport var getStrokeDashArray = function (_a) {\n var activeIndex = _a.activeIndex, isDashed = _a.isDashed;\n if (isDashed && !activeIndex) {\n return '10,10';\n }\n return null;\n};\nexport var isAllDataCompletion = function (data) {\n return _.every(data, function (obj) { return obj.isCompleted === true; });\n};\nexport var isConservativeDataCompletion = function (data) {\n var e_1, _a;\n try {\n for (var _b = __values(data.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2), index = _d[0], obj = _d[1];\n var previousPointIsCompleted = _.get(data[index - 1], 'isCompleted');\n var currentPointIsCompleted = _.get(obj, 'isCompleted');\n var nextPointIsCompleted = _.get(data[index + 1], 'isCompleted');\n var isCurrentAndPreviousPointSameStatus = previousPointIsCompleted === currentPointIsCompleted;\n var isCurrentAndNextPointSameStatus = nextPointIsCompleted === currentPointIsCompleted;\n if ((index > 0 && previousPointIsCompleted && isCurrentAndPreviousPointSameStatus) ||\n (index < data.length + 1 && nextPointIsCompleted && isCurrentAndNextPointSameStatus)) {\n return true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return false;\n};\nexport var formatConservativeComparedDataCompletion = function (data) {\n var groupData = _.groupBy(data, 'isCompleted');\n var groupIsCompleted = _.map(_.get(groupData, 'true'), function (item) { return ({\n compared_isCompleted: item.compared_isCompleted,\n compared_time: item.compared_time,\n completionComparedValue: item.compared_value,\n isCompleted: item.isCompleted,\n completionValue: item.value,\n time: item.time,\n zone: item.zone,\n zone2: item.zone2,\n }); });\n var dataCompletion = _.sortBy(_.concat(_.get(groupData, 'false'), groupIsCompleted), 'time');\n _.forEach(dataCompletion, function (item, index) {\n var previousPointIsCompleted = _.get(dataCompletion[index - 1], 'isCompleted');\n var currentPointIsCompleted = _.get(item, 'isCompleted');\n var nextPointIsCompleted = _.get(dataCompletion[index + 1], 'isCompleted');\n if ((index > 0 && previousPointIsCompleted && !currentPointIsCompleted) ||\n (index < dataCompletion.length + 1 && nextPointIsCompleted && !currentPointIsCompleted)) {\n item.completionValue = item.value;\n item.completionComparedValue = item.compared_value;\n }\n });\n return dataCompletion;\n};\nexport var formatTrafficDataCompletion = function (data) {\n var isAllDataCompleted = isAllDataCompletion(data);\n var isConservativeDataCompleted = isConservativeDataCompletion(data);\n if (isAllDataCompleted) {\n return data;\n }\n else if (isConservativeDataCompleted) {\n var dataCompletion = formatConservativeComparedDataCompletion(data);\n return dataCompletion;\n }\n else {\n return data;\n }\n};\nexport var formatConservativeTrafficDataCompletion = function (data) {\n var groupData = _.groupBy(data, 'isCompleted');\n var groupIsCompleted = _.map(_.get(groupData, 'true'), function (item) { return ({\n isCompleted: item.isCompleted,\n completionValue: item.value,\n time: item.time,\n }); });\n var dataCompletion = _.sortBy(_.concat(_.get(groupData, 'false'), groupIsCompleted), 'time');\n _.forEach(dataCompletion, function (item, index) {\n var previousPointIsCompleted = _.get(dataCompletion[index - 1], 'isCompleted');\n var currentPointIsCompleted = _.get(item, 'isCompleted');\n var nextPointIsCompleted = _.get(dataCompletion[index + 1], 'isCompleted');\n if ((index > 0 && previousPointIsCompleted && !currentPointIsCompleted) ||\n (index < dataCompletion.length + 1 && nextPointIsCompleted && !currentPointIsCompleted)) {\n item.completionValue = item.value;\n }\n });\n return dataCompletion;\n};\n","import _ from 'lodash';\nimport { createSelector } from 'reselect';\nexport var getterFeatures = function (state, props) { return _.get(state.features, 'data', []); };\nexport var getterFeatureValues = function (state) { return _.get(state.features, 'values', {}); };\nexport var isFeatureActivated = function (feature) {\n return createSelector(getterFeatures, function (features) { return _.includes(features, feature); });\n};\nexport var getFeatureValue = function (feature) {\n return createSelector(getterFeatureValues, function (values) { return _.get(values, feature, null); });\n};\n","import { __assign } from \"tslib\";\nimport { createSelector } from 'reselect';\nimport moment from 'moment';\nimport _ from 'lodash';\nimport { getCurrentDayFrom, getCurrentDayTo, getComparedDayFrom, getComparedDayTo, getCurrentComparisonMode, getComparedArea, getCurrentDestination, } from '@src/navigation/selectors';\nimport { isAllDataCompletion, isConservativeDataCompletion, formatConservativeTrafficDataCompletion, } from '@src/reporting/utils';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nexport var getSiteFromUUID = function (state, props) { return _.find(state.sites.data, { uuid: props.siteId }); };\nexport var getterSiteFloors = function (state, props) { return _.get(state.floors[props.siteId], 'data', []); };\nexport var getterNavigationFloor = function (state, props) { return _.get(state.navigation, 'floorId'); };\nexport var getterNavigationGranularity = function (state, props) {\n return _.get(state.navigation, 'currentGranularity', 'hourly');\n};\nexport var getterNavigationAreaId = function (state, props) { return _.get(state.navigation, 'areaId', null); };\nexport var getterNavigationFloorId = function (state, props) { return _.get(state.navigation, 'floorId'); };\nexport var getterNavigationSiteId = function (state, props) { return _.get(state.navigation, 'siteId'); };\nexport var getterComputeSiteStats = function (state, props) { return state.compute[props.siteId]; };\nexport var getterSiteConfig = function (state, props) { return _.get(state.configs[props.siteId], 'data', {}); };\nexport var isHideZeroValueActivated = function (state) {\n return isFeatureActivated('hide_0_value_for_population_bar_chart')(state);\n};\nexport var getterPopulations = function (state, props) {\n var t = props.t;\n var allPopulationLabel = t('Reporting_Labels.All_populations');\n return _.concat([{ name: allPopulationLabel, slug: 'All populations', uuid: null }], _.chain(_.get(state.processes[props.siteId], 'data', []))\n .map(function (p) { return ({ slug: p.name, name: p.display_name || p.name, uuid: p.uuid }); })\n .orderBy('name')\n .value());\n};\nexport var getCurrentPopulationName = createSelector(getterPopulations, function (state) { return (__assign({}, state.navigation)); }, function (populations, navigation) {\n return _.get(_.find(populations, function (p) { return p.slug === _.get(navigation, 'currentPopulation'); }), 'name');\n});\nexport var selectAreaDatesComputeData = createSelector(getterComputeSiteStats, function (state, props) { return (__assign({}, props)); }, function (computeSiteStats, _a) {\n var areaId = _a.areaId, kind = _a.kind, granularity = _a.granularity, dayFrom = _a.dayFrom, dayTo = _a.dayTo;\n return _.chain(computeSiteStats)\n .get(areaId, {})\n .get(granularity + \"-\" + kind)\n .get(dayFrom + \"-\" + dayTo, {})\n .value();\n});\nexport var selectBaseAreaData = function (state, props) {\n var _a = getterReportingNavigation(state, props), areaId = _a.areaId, dayFrom = _a.dayFrom, dayTo = _a.dayTo;\n return selectAreaDatesComputeData(state, __assign(__assign({}, props), { kind: props.kind, granularity: props.granularity, areaId: areaId,\n dayFrom: dayFrom,\n dayTo: dayTo }));\n};\nexport var selectCurrentFloor = createSelector(getterSiteFloors, getterNavigationFloor, function (floors, currentFloorId) { return _.find(floors, { uuid: currentFloorId }); });\nexport var selectAllSiteAreas = createSelector(getterSiteFloors, function (floors) {\n var allAreas = _.flatMap(floors, function (floor) { return _.get(floor, 'units.areas'); });\n var entireSite = _.find(allAreas, { is_entire_site: true }, null);\n return entireSite\n ? allAreas\n : _.concat(allAreas, { uuid: null, name: 'Entire Site', is_entire_site: true });\n});\nexport var selectCurrentArea = createSelector(getterNavigationAreaId, selectAllSiteAreas, function (navigationAreaId, siteAreas) {\n return navigationAreaId !== null\n ? _.find(siteAreas, { uuid: navigationAreaId })\n : _.find(siteAreas, { is_entire_site: true });\n});\nexport var selectComparedArea = createSelector(getComparedArea, selectAllSiteAreas, function (comparedAreaId, siteAreas) {\n return comparedAreaId !== null\n ? _.find(siteAreas, { uuid: comparedAreaId })\n : _.find(siteAreas, { is_entire_site: true });\n});\nexport var getterReportingNavigation = createSelector(getCurrentDayFrom, getCurrentDayTo, getterNavigationGranularity, getterSiteConfig, selectCurrentArea, getterNavigationAreaId, getComparedDayFrom, getComparedDayTo, selectComparedArea, getComparedArea, getCurrentComparisonMode, getCurrentDestination, function (dayFrom, dayTo, granularity, config, currentArea, areaId, comparedDayFrom, comparedDayTo, comparedArea, comparedAreaId, comparisonMode, currentDestination) { return ({\n dayFrom: dayFrom,\n dayTo: dayTo,\n granularity: granularity,\n config: config,\n currentArea: currentArea,\n areaId: areaId,\n comparedDayFrom: comparedDayFrom,\n comparedDayTo: comparedDayTo,\n comparedArea: comparedArea,\n comparedAreaId: comparedAreaId,\n comparisonMode: comparisonMode,\n currentDestination: currentDestination,\n}); });\nexport var selectPresenceStats = createSelector(selectBaseAreaData, function (computeSiteStats) {\n return _.chain(computeSiteStats)\n .get('data', [])\n .map(function (stat) { return ({\n time: +stat.FromHour,\n value: stat.Presence,\n isCompleted: _.get(stat, 'DataCompleted', false),\n }); })\n .sortBy('time')\n .value();\n});\nexport var selectPresenceStatsWithStandardDayStats = createSelector(selectBaseAreaData, function (state, props) { return selectBaseAreaData(state, __assign(__assign({}, props), { kind: 'referencePresence' })); }, function (computeSiteStats, computeSiteReferenceStats) {\n var presenceStats = _.get(computeSiteStats, 'data', []);\n if (_.isEmpty(presenceStats)) {\n return [];\n }\n var referencePresenceStats = _.get(computeSiteReferenceStats, 'data', []);\n if (_.isEmpty(referencePresenceStats)) {\n return _.sortBy(_.map(presenceStats, function (stat) { return ({\n time: +stat.FromHour,\n value: stat.Presence,\n referenceValue: null,\n }); }), 'time');\n }\n else {\n return _.sortBy(_.zipWith(presenceStats, referencePresenceStats, function (stat, refStat) { return ({\n time: +stat.FromHour,\n value: stat.Presence,\n referenceValue: refStat ? refStat.Presence : null,\n }); }), 'time');\n }\n});\nexport var selectPresenceStatsWithDataCompletion = createSelector(selectBaseAreaData, function (state, props) { return selectBaseAreaData(state, __assign(__assign({}, props), { kind: 'referencePresence' })); }, function (computeSiteStats, computeSiteReferenceStats) {\n var data;\n var presenceStats = _.get(computeSiteStats, 'data', []);\n if (_.isEmpty(presenceStats)) {\n return [];\n }\n var referencePresenceStats = _.get(computeSiteReferenceStats, 'data', []);\n if (_.isEmpty(referencePresenceStats)) {\n data = _.sortBy(_.map(presenceStats, function (stat) { return ({\n time: +stat.FromHour,\n value: stat.Presence,\n referenceValue: null,\n isCompleted: _.get(stat, 'DataCompleted', false),\n }); }), 'time');\n }\n else {\n data = _.sortBy(_.zipWith(presenceStats, referencePresenceStats, function (stat, refStat) { return ({\n time: +stat.FromHour,\n value: stat.Presence,\n referenceValue: refStat ? refStat.Presence : null,\n isCompleted: stat.DataCompleted,\n }); }), 'time');\n }\n var isAllDataCompleted = isAllDataCompletion(data);\n var isConservativeDataCompleted = isConservativeDataCompletion(data);\n if (isAllDataCompleted) {\n return data;\n }\n else if (isConservativeDataCompleted) {\n var dataCompletion = formatConservativeTrafficDataCompletion(data);\n return dataCompletion;\n }\n else {\n return data;\n }\n});\nexport var selectDwelltimeStats = createSelector(selectBaseAreaData, function (computeSiteStats) {\n return _.chain(computeSiteStats)\n .get('data', [])\n .map(function (stat) { return ({\n time: +stat.FromHour,\n value: stat.AverageDwellTime / 60,\n isCompleted: _.get(stat, 'DataCompleted', false),\n }); })\n .sortBy('time')\n .value();\n});\nexport var selectComparedDwelltimeStats = createSelector(getterComputeSiteStats, getterReportingNavigation, function (computeSiteStats, _a) {\n var dayFrom = _a.dayFrom, dayTo = _a.dayTo, granularity = _a.granularity, areaId = _a.areaId, comparedDayFrom = _a.comparedDayFrom, comparedDayTo = _a.comparedDayTo, comparedArea = _a.comparedArea, comparisonMode = _a.comparisonMode;\n return _.chain(computeSiteStats)\n .get(comparisonMode.uuid === 'date' ? areaId : comparedArea.uuid, {})\n .get(granularity + \"-dwelltime\")\n .get((comparisonMode.uuid === 'date' ? comparedDayFrom : dayFrom) + \"-\" + (comparisonMode.uuid === 'date' ? comparedDayTo : dayTo), {})\n .get('data', [])\n .map(function (stat) { return ({\n time: +stat.FromHour,\n value: stat.AverageDwellTime / 60,\n isCompleted: _.get(stat, 'DataCompleted', false),\n }); })\n .sortBy('time')\n .value();\n});\nexport var selectDwelltimeStatsByPopulationForGaresEtConnexions = createSelector(selectBaseAreaData, function (computeSiteStats) {\n return _.chain(computeSiteStats)\n .get('data', [])\n .reject(function (stat) { return stat.DataCompleted; })\n .filter(function (stat) { return _.includes(['Arrivant', 'Partant', 'Correspondant'], stat.Population); })\n .groupBy('Population')\n .map(function (grouped, population) { return ({\n population: population,\n value: _.meanBy(grouped, 'AverageDwellTime') / 60,\n position: population === 'Correspondant' ? 3 : population === 'Partant' ? 2 : 1,\n }); })\n .sortBy('position')\n .value();\n});\nexport var selectProcesses = function (state, props) { return _.get(state.processes[state.navigation.siteId], 'data'); };\nexport var selectDwelltimeStatsByPopulation = createSelector(selectBaseAreaData, selectProcesses, isHideZeroValueActivated, function (computeSiteStats, processes, isHideZeroValueActivated) {\n var data = _.chain(computeSiteStats)\n .get('data', [])\n .reject(function (d) { return d.Population === 'All populations' || !_.includes(_.map(processes, 'name'), d.Population); })\n .groupBy('Population')\n .map(function (grouped, population) { return ({\n population: _.get(_.find(processes, { name: population }), 'display_name') || population,\n value: _.meanBy(grouped, 'AverageDwellTime') / 60,\n }); })\n .orderBy('population')\n .value();\n return isHideZeroValueActivated ? _.filter(data, function (obj) { return obj.value !== 0; }) : data;\n});\nexport var selectPresenceStatsByPopulation = createSelector(selectBaseAreaData, selectProcesses, isHideZeroValueActivated, function (computeSiteStats, processes, isHideZeroValueActivated) {\n var total = _.chain(computeSiteStats)\n .get('data', [])\n .reject(function (d) { return d.Population === 'All populations' || !_.includes(_.map(processes, 'name'), d.Population); })\n .sumBy('Presence')\n .value();\n var data = _.chain(computeSiteStats)\n .get('data', [])\n .reject(function (d) { return d.Population === 'All populations' || !_.includes(_.map(processes, 'name'), d.Population); })\n .groupBy('Population')\n .map(function (grouped, population) { return ({\n population: _.get(_.find(processes, { name: population }), 'display_name') || population,\n traffic: _.sumBy(grouped, 'Presence') / total,\n }); })\n .orderBy('population')\n .value();\n return isHideZeroValueActivated ? _.filter(data, function (obj) { return obj.traffic !== 0; }) : data;\n});\nexport var selectPresenceSum = createSelector(getterComputeSiteStats, getterReportingNavigation, function (computeSiteStats, _a) {\n var dayFrom = _a.dayFrom, dayTo = _a.dayTo, areaId = _a.areaId;\n return _.chain(computeSiteStats)\n .get(areaId, {})\n .get(\"daily-presence\")\n .get(dayFrom + \"-\" + dayTo, null)\n .get('aggregateddata', null)\n .get('Value', null)\n .value();\n});\nexport var selectEntirePresence = createSelector(getterComputeSiteStats, getCurrentDayFrom, getCurrentDayTo, function (computeSiteStats, dayFrom, dayTo) {\n return _.chain(computeSiteStats).get(null).get(\"daily-entire-presence\").get(dayFrom + \"-\" + dayTo, null).value();\n});\nexport var selectAreaPresence = createSelector(getterComputeSiteStats, getCurrentDayFrom, getCurrentDayTo, getterNavigationAreaId, function (computeSiteStats, dayFrom, dayTo, areaId) {\n return _.chain(computeSiteStats)\n .get(areaId, {})\n .get(\"daily-area-presence\")\n .get(dayFrom + \"-\" + dayTo, null)\n .value();\n});\nexport var selectStoppingPresence = createSelector(getterComputeSiteStats, getCurrentDayFrom, getCurrentDayTo, getterNavigationAreaId, function (computeSiteStats, dayFrom, dayTo, areaId) {\n return _.chain(computeSiteStats)\n .get(areaId, {})\n .get(\"daily-stopping-presence\")\n .get(dayFrom + \"-\" + dayTo, null)\n .value();\n});\nexport var selectStoppingPresence300 = createSelector(getterComputeSiteStats, getCurrentDayFrom, getCurrentDayTo, getterNavigationAreaId, function (computeSiteStats, dayFrom, dayTo, areaId) {\n return _.chain(computeSiteStats)\n .get(areaId, {})\n .get(\"daily-stopping-presence-300\")\n .get(dayFrom + \"-\" + dayTo, null)\n .value();\n});\nexport var selectStoppingPresence600 = createSelector(getterComputeSiteStats, getCurrentDayFrom, getCurrentDayTo, getterNavigationAreaId, function (computeSiteStats, dayFrom, dayTo, areaId) {\n return _.chain(computeSiteStats)\n .get(areaId, {})\n .get(\"daily-stopping-presence-600\")\n .get(dayFrom + \"-\" + dayTo, null)\n .value();\n});\nexport var selectTotalPresence = createSelector(selectEntirePresence, function (entirePresence) {\n var data = _.get(entirePresence, 'data', null);\n return _.sumBy(data, 'Presence');\n});\nexport var selectAreaPresenceSum = createSelector(selectAreaPresence, function (areaPresence) {\n var data = _.get(areaPresence, 'data', null);\n return _.sumBy(data, 'Presence');\n});\nexport var selectAreaPresenceUp300Sum = createSelector(selectStoppingPresence300, function (areaPresence) {\n var data = _.get(areaPresence, 'data', null);\n return _.sumBy(data, 'Presence');\n});\nexport var selectAreaPresenceUp600Sum = createSelector(selectStoppingPresence600, function (areaPresence) {\n var data = _.get(areaPresence, 'data', null);\n return _.sumBy(data, 'Presence');\n});\nexport var selectStoppingPresenceSum = createSelector(selectStoppingPresence, function (stoppingPresence) {\n var data = _.get(stoppingPresence, 'data', null);\n return _.sumBy(data, 'Presence');\n});\nexport var selectAdvertisingDataIsLoaded = createSelector(selectAreaPresence, selectStoppingPresence300, selectStoppingPresence600, function (areaPresence, areaStoppingPresence300, areaStoppingPresence600) {\n var loadingPresence = _.get(areaPresence, 'loading', true);\n var loadingPresence300 = _.get(areaStoppingPresence300, 'loading', true);\n var loadingPresence600 = _.get(areaStoppingPresence600, 'loading', true);\n var result = [loadingPresence, loadingPresence300, loadingPresence600];\n return _.every(result, function (item) { return item === false; });\n});\nexport var selectAreaComputeIsLoaded = createSelector(selectEntirePresence, selectAreaPresence, selectStoppingPresence, function (entirePresence, areaPresence, stoppingPresence) {\n var loadingEntirePresence = _.get(entirePresence, 'loading', true);\n var loadingAreaPresence = _.get(areaPresence, 'loading', true);\n var loadingStoppingPresence = _.get(stoppingPresence, 'loading', true);\n var result = [loadingEntirePresence, loadingAreaPresence, loadingStoppingPresence];\n return _.every(result, function (item) { return item === false; });\n});\nexport var selectStoppingPaxHistory = createSelector(selectAreaPresence, selectStoppingPresence300, selectStoppingPresence600, selectAdvertisingDataIsLoaded, function (presence, presence300, presence600, ready) {\n if (!ready) {\n return [];\n }\n return _.map(presence['data'], function (p, idx) {\n return {\n date: p['Date'],\n labels: ['Pax passing by', 'Pax stopping more than 5 min', 'Pax stopping more than 10 min'],\n values: {\n '#73A7B0': _.get(p, 'Presence', null),\n '#FABF8A': _.get(presence300, \"data.\" + idx + \".Presence\", null),\n '#F27778': _.get(presence600, \"data.\" + idx + \".Presence\", null),\n },\n units: ['Pax', 'Pax', 'Pax'],\n };\n });\n});\nexport var selectPresenceSumLoading = createSelector(getterComputeSiteStats, getterReportingNavigation, function (computeSiteStats, _a) {\n var dayFrom = _a.dayFrom, dayTo = _a.dayTo, areaId = _a.areaId;\n return _.chain(computeSiteStats)\n .get(areaId, {})\n .get(\"daily-presence\")\n .get(dayFrom + \"-\" + dayTo, {})\n .get('aggregatedloading', true)\n .value();\n});\nvar formatTime = function (time) {\n var value = moment.duration(time, 'minutes').add(30, 'seconds');\n var formatedTime = moment\n .utc(value.as('milliseconds'))\n .format((time >= 60 ? 'h[h] ' : '') + \"m\" + (_.round(time) > 1 ? '[mins]' : '[min]'));\n return formatedTime;\n};\nexport var selectDwelltimeMean = createSelector(getterComputeSiteStats, getterReportingNavigation, function (computeSiteStats, _a) {\n var dayFrom = _a.dayFrom, dayTo = _a.dayTo, areaId = _a.areaId;\n return _.chain(computeSiteStats)\n .get(areaId, {})\n .get(\"daily-dwelltime\")\n .get(dayFrom + \"-\" + dayTo, {})\n .get('aggregateddata', null)\n .get('Value', null)\n .thru(function (dwelltimeInSeconds) {\n return _.isNull(dwelltimeInSeconds) ? null : formatTime(dwelltimeInSeconds / 60);\n })\n .value();\n});\nexport var selectDwelltimeMeanLoading = createSelector(getterComputeSiteStats, getterReportingNavigation, function (computeSiteStats, _a) {\n var dayFrom = _a.dayFrom, dayTo = _a.dayTo, areaId = _a.areaId;\n return _.chain(computeSiteStats)\n .get(areaId, {})\n .get(\"daily-dwelltime\")\n .get(dayFrom + \"-\" + dayTo, {})\n .get('aggregatedloading', true)\n .value();\n});\nexport var selectStatsLoading = createSelector(getterComputeSiteStats, getterReportingNavigation, function (state, props) { return props.kind; }, function (computeSiteStats, _a, kind) {\n var dayFrom = _a.dayFrom, dayTo = _a.dayTo, areaId = _a.areaId, granularity = _a.granularity;\n return _.chain(computeSiteStats)\n .get(areaId, {})\n .get(granularity + \"-\" + kind)\n .get(dayFrom + \"-\" + dayTo, {})\n .get('loading', true)\n .value();\n});\nexport var selectDailyStatsLoading = createSelector(getterComputeSiteStats, getterReportingNavigation, function (state, props) { return props.kind; }, function (computeSiteStats, _a, kind) {\n var dayFrom = _a.dayFrom, dayTo = _a.dayTo, areaId = _a.areaId, granularity = _a.granularity;\n return _.chain(computeSiteStats)\n .get(areaId, {})\n .get(\"daily-\" + kind)\n .get(dayFrom + \"-\" + dayTo, {})\n .get('loading', true)\n .value();\n});\nexport var getArea = createSelector(selectAllSiteAreas, function (state, props) { return props.areaId; }, function (siteAreas, areaId) { return _.find(siteAreas, { uuid: areaId }); });\nexport var selectMapAreas = createSelector(getterNavigationSiteId, getterNavigationFloorId, function (state) { return state.floors; }, function (siteId, floorId, floorsState) {\n return _.chain(floorsState[siteId])\n .get('data', [])\n .find({ uuid: floorId })\n .get('units.areas', [])\n .filter(function (area, idx, areas) { return (areas.length > 1 ? !area.is_entire_site : true); })\n .value();\n});\nexport var selectAllSiteAreasWithFloors = createSelector(getterSiteFloors, function (floors) {\n var allAreas = _.flatMap(floors, function (floor) {\n return _.map(_.get(floor, 'units.areas'), function (area) { return (__assign(__assign({}, area), { level: floor.level, floor: floor.name })); });\n });\n var entireSiteFromAreas = _.find(allAreas, function (a) { return a.is_entire_site === true; });\n var entireSite = entireSiteFromAreas\n ? __assign(__assign({}, entireSiteFromAreas), { level: null, floor: null }) : { uuid: null, name: 'Entire Site', is_entire_site: true, level: null, floor: null };\n var positiveLevels = _.filter(allAreas, function (a) { return a.level >= 0; });\n var negativeLevels = _.filter(allAreas, function (a) { return a.level < 0; });\n return _.concat(entireSite, _.orderBy(positiveLevels, 'level', 'asc'), _.orderBy(negativeLevels, 'level', 'desc'));\n});\nexport var selectAreasToDisplay = createSelector(selectAllSiteAreas, function (areas) {\n return _.chain(areas)\n .sortBy('name')\n .partition({ is_entire_site: true } || areas == null)\n .flatten()\n .value();\n});\n","export var getAllScales = function (state) { var _a; return (_a = state === null || state === void 0 ? void 0 : state.scales) === null || _a === void 0 ? void 0 : _a.data; };\n","import { __assign } from \"tslib\";\nimport { getDensity } from '@src/home/selectors';\nexport var linkScaleWithDensity = function (scales, currentDensity, isDensityExpressedWithPaxPerSquareMeter) {\n var _a;\n if (scales === void 0) { scales = []; }\n if (currentDensity === void 0) { currentDensity = null; }\n if (isDensityExpressedWithPaxPerSquareMeter === void 0) { isDensityExpressedWithPaxPerSquareMeter = true; }\n var sortedScales = scales\n .map(function (scale) { return (__assign(__assign({}, scale), { value: getDensity(scale === null || scale === void 0 ? void 0 : scale.value) })); })\n .sort(function (a, b) { return a.value - b.value; });\n var density = isDensityExpressedWithPaxPerSquareMeter\n ? getDensity(currentDensity)\n : 1 / getDensity(currentDensity);\n var color;\n for (var i in sortedScales) {\n var currentScale = sortedScales[i].value;\n if (density >= currentScale) {\n color = sortedScales[i].color;\n }\n }\n if (!color && (density || density === 0)) {\n return (_a = sortedScales === null || sortedScales === void 0 ? void 0 : sortedScales[0]) === null || _a === void 0 ? void 0 : _a.color;\n }\n return color;\n};\nexport var getSiteConfig = function (state) { var _a; return state === null || state === void 0 ? void 0 : state.configs[(_a = state === null || state === void 0 ? void 0 : state.navigation) === null || _a === void 0 ? void 0 : _a.siteId]; };\n","import { __assign } from \"tslib\";\nimport { createSelector } from 'reselect';\nimport _ from 'lodash';\nimport { descend, find, map, pipe, pathOr, path, propEq, prop, sortWith } from 'ramda';\nimport moment from 'moment';\nimport { getAllSites } from '@src/commons/sites/selectors';\nimport { getCurrentDayFrom, getCurrentDayTo } from '@src/navigation/selectors';\nimport { selectCurrentArea, getterNavigationAreaId, getterSiteConfig } from '@src/reporting/selectors';\nimport { getAllScales } from '@src/commons/scalesConfigurations/selector';\nimport { linkScaleWithDensity } from '@src/commons/scalesConfigurations/utils';\nexport var getterNavigationSiteId = function (state, props) { return path(['siteId'], state.navigation); };\nexport var getterHomeStats = function (state, props) { return state.home[props.siteId]; };\nexport var getHomeRTStats = function (state, props) { return state.home[props.rtApiKey]; };\nexport var getHomeRTStatsForMap = function (state, props) { var _a, _b; return (_b = state.home[(_a = props === null || props === void 0 ? void 0 : props.currentSite) === null || _a === void 0 ? void 0 : _a.rt_api_key]) === null || _b === void 0 ? void 0 : _b.data; };\nexport var getHomeFocusSites = function (state, props) { var _a; return (_a = state.home.focusSites) === null || _a === void 0 ? void 0 : _a.data; };\nexport var getRTApiKeyFromSite = function (state, props) {\n return path(['rt_api_key'], find(propEq('uuid', props.siteId))(state.sites.data));\n};\nexport var getDensity = function (density) {\n if (density) {\n var formatedDensity = parseFloat(density.toFixed(2));\n return formatedDensity >= 0.01 ? formatedDensity : 0;\n }\n return 0;\n};\nexport var getterHomeNavigation = createSelector(getCurrentDayFrom, getCurrentDayTo, getterSiteConfig, selectCurrentArea, function (dayFrom, dayTo, config, currentArea) { return ({\n dayFrom: dayFrom,\n dayTo: dayTo,\n config: config,\n currentArea: currentArea,\n}); });\nexport var selectHomePresenceSum = createSelector(getterHomeStats, getCurrentDayFrom, getCurrentDayTo, getterNavigationAreaId, function (computeSiteStats, dayFrom, dayTo, areaId) {\n return pipe(pathOr({}, [\"\" + areaId]), path([\"daily-presence\"]), pathOr(null, [dayFrom + \"-\" + dayTo]), pathOr(null, ['aggregateddata']), pathOr(null, ['Value']))(computeSiteStats);\n});\nexport var selectHomePresenceSumLoading = createSelector(getterHomeStats, getCurrentDayFrom, getCurrentDayTo, getterNavigationAreaId, function (computeSiteStats, dayFrom, dayTo, areaId) {\n return pipe(pathOr({}, [\"\" + areaId]), path([\"daily-presence\"]), pathOr({}, [dayFrom + \"-\" + dayTo]), pathOr(true, ['aggregatedloading']))(computeSiteStats);\n});\nexport var selectHomeMeanPresence = createSelector(getterHomeStats, getterNavigationAreaId, function (computeSiteStats, areaId) {\n var dayTo = moment().subtract(1, 'days').format('YYYY-MM-DD');\n var dayFrom = moment(dayTo).subtract(6, 'days').format('YYYY-MM-DD');\n var data = pipe(pathOr({}, [\"\" + areaId]), path([\"daily-presence\"]), pathOr(null, [dayFrom + \"-\" + dayTo]), pathOr(null, ['data']))(computeSiteStats);\n return _.round(_.meanBy(data, 'Presence'));\n});\nexport var selectHomeMeanPresenceLoading = createSelector(getterHomeStats, getterNavigationAreaId, function (computeSiteStats, areaId) {\n var dayTo = moment().subtract(1, 'days').format('YYYY-MM-DD');\n var dayFrom = moment(dayTo).subtract(6, 'days').format('YYYY-MM-DD');\n return pipe(pathOr({}, [\"\" + areaId]), path([\"daily-presence\"]), pathOr({}, [dayFrom + \"-\" + dayTo]), pathOr(true, ['loading']))(computeSiteStats);\n});\nexport var selectHomeD1Presence = createSelector(getterHomeStats, getterNavigationAreaId, function (computeSiteStats, areaId) {\n var dayTo = moment().subtract(1, 'days').format('YYYY-MM-DD');\n var dayFrom = moment(dayTo).subtract(6, 'days').format('YYYY-MM-DD');\n var dailyPresenceData = pipe(pathOr({}, [\"\" + areaId]), path([\"daily-presence\"]), pathOr(null, [dayFrom + \"-\" + dayTo]), pathOr(null, ['data']))(computeSiteStats);\n return dailyPresenceData && pathOr(null, ['Presence'], find(propEq('Date', dayTo))(dailyPresenceData));\n});\nexport var getKeySortOrder = function (state) { var _a; return (_a = state === null || state === void 0 ? void 0 : state.home) === null || _a === void 0 ? void 0 : _a.sort; };\nvar computeAreaTendncy = function (usableArea, traffic) {\n if (!usableArea) {\n return null;\n }\n return parseFloat((traffic / usableArea).toPrecision(2));\n};\nvar computeTrendingHome = function (current, forecast) {\n var diff = forecast - current;\n if (diff >= 0.01) {\n return 'up';\n }\n if (diff <= -0.01) {\n return 'down';\n }\n return 'equals';\n};\nexport var selectListMostVisitedSites = createSelector(getHomeRTStats, getKeySortOrder, getAllSites, function (homeSiteStats, sortOrderKey, allSites) {\n var listMostVisitedSitesData = pathOr([], ['data'], homeSiteStats);\n map(function (listSite) {\n var site = find(function (allSite) { return path(['uuid'], allSite) === path(['site_uuid'], listSite); }, allSites);\n if (path(['display_name'], site)) {\n listSite.display_name = path(['display_name'], site);\n }\n return listSite;\n }, listMostVisitedSitesData);\n var listMostVisitedSites = listMostVisitedSitesData &&\n map(function (siteItem) {\n var _a, _b, _c, _d, _e;\n return ({\n site_uuid: pathOr('', ['site_uuid'], siteItem),\n site_name: pathOr('', ['site_name'], siteItem),\n display_name: pathOr('', ['display_name'], siteItem),\n traffic: (_a = siteItem === null || siteItem === void 0 ? void 0 : siteItem.stats) === null || _a === void 0 ? void 0 : _a.traffic,\n density: getDensity((_b = siteItem === null || siteItem === void 0 ? void 0 : siteItem.stats) === null || _b === void 0 ? void 0 : _b.density),\n trending: ((_c = siteItem === null || siteItem === void 0 ? void 0 : siteItem.stats) === null || _c === void 0 ? void 0 : _c.traffic_in_30_minutes) ? computeTrendingHome(computeAreaTendncy(siteItem === null || siteItem === void 0 ? void 0 : siteItem.usable_area, (_d = siteItem === null || siteItem === void 0 ? void 0 : siteItem.stats) === null || _d === void 0 ? void 0 : _d.traffic), computeAreaTendncy(siteItem === null || siteItem === void 0 ? void 0 : siteItem.usable_area, parseInt((_e = siteItem === null || siteItem === void 0 ? void 0 : siteItem.stats) === null || _e === void 0 ? void 0 : _e.traffic_in_30_minutes, 10)))\n : 'error',\n });\n }, listMostVisitedSitesData);\n var sortedListMostVisitedSites = sortWith([descend(prop(sortOrderKey))], listMostVisitedSites);\n return sortedListMostVisitedSites;\n});\nexport var selectListMostVisitedSitesLoading = createSelector(getHomeRTStats, function (homeSiteStats) {\n return pathOr(true, ['loading'], homeSiteStats);\n});\nvar getSitesFromProps = function (_, props) {\n if (props === void 0) { props = {}; }\n return props.sites;\n};\nexport var selectSitesWithDensity = createSelector(getHomeRTStatsForMap, getSitesFromProps, getAllScales, function (homeSitesStats, allSites, scales) {\n if (Array.isArray(homeSitesStats) && homeSitesStats.length >= 1) {\n return allSites.map(function (item) {\n var _a, _b, _c, _d, _e;\n var currentHomeStat = homeSitesStats.find(function (stat) { return stat.site_uuid === item.uuid; });\n var currentScale = (_a = scales === null || scales === void 0 ? void 0 : scales.find(function (scale) { return scale.config_uuid === (currentHomeStat === null || currentHomeStat === void 0 ? void 0 : currentHomeStat.config_uuid); })) === null || _a === void 0 ? void 0 : _a.levels;\n var density_color = linkScaleWithDensity(currentScale, (_c = (_b = currentHomeStat === null || currentHomeStat === void 0 ? void 0 : currentHomeStat.stats) === null || _b === void 0 ? void 0 : _b.density) !== null && _c !== void 0 ? _c : 0);\n return __assign(__assign({}, item), { density_color: density_color, density: (_e = (_d = currentHomeStat === null || currentHomeStat === void 0 ? void 0 : currentHomeStat.stats) === null || _d === void 0 ? void 0 : _d.density) !== null && _e !== void 0 ? _e : 0 });\n });\n }\n return allSites.map(function (item) { return (__assign(__assign({}, item), { density: 0 })); });\n});\nexport var selectFocusSitesWithDensity = createSelector(getHomeRTStatsForMap, getHomeFocusSites, getAllScales, function (homeSitesStats, focusSites, scales) {\n if (Array.isArray(focusSites) && focusSites.length >= 1) {\n if (Array.isArray(homeSitesStats) && homeSitesStats.length >= 1) {\n return focusSites.map(function (item) {\n var _a, _b, _c, _d, _e;\n var currentHomeStat = homeSitesStats.find(function (stat) { return stat.site_uuid === item.uuid; });\n var currentScale = (_a = scales === null || scales === void 0 ? void 0 : scales.find(function (scale) { return scale.config_uuid === (currentHomeStat === null || currentHomeStat === void 0 ? void 0 : currentHomeStat.config_uuid); })) === null || _a === void 0 ? void 0 : _a.levels;\n var density_color = linkScaleWithDensity(currentScale, (_c = (_b = currentHomeStat === null || currentHomeStat === void 0 ? void 0 : currentHomeStat.stats) === null || _b === void 0 ? void 0 : _b.density) !== null && _c !== void 0 ? _c : 0);\n return __assign(__assign({}, item), { density_color: density_color, density: (_e = (_d = currentHomeStat === null || currentHomeStat === void 0 ? void 0 : currentHomeStat.stats) === null || _d === void 0 ? void 0 : _d.density) !== null && _e !== void 0 ? _e : 0 });\n });\n }\n return focusSites.map(function (item) { return (__assign(__assign({}, item), { density: 0 })); });\n }\n});\n","import { __extends } from \"tslib\";\nimport React, { createRef, Component } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport { Map, TileLayer, Tooltip, CircleMarker } from 'react-leaflet';\nimport { connect } from 'react-redux';\nimport { selectSitesWithDensity } from '@src/home/selectors';\nimport 'leaflet/dist/leaflet.css';\nvar HomeMap = (function (_super) {\n __extends(HomeMap, _super);\n function HomeMap(props) {\n var _this = _super.call(this, props) || this;\n _this.mapRef = createRef();\n _this.flyTo = _this.flyTo.bind(_this);\n _this.flyOut = _this.flyOut.bind(_this);\n _this.showMarkers = _this.showMarkers.bind(_this);\n _this.state = {\n defaultZoom: 0,\n showMarkers: true,\n };\n return _this;\n }\n HomeMap.prototype.fitMapWithBounds = function () {\n var _a = this.props, currentSite = _a.currentSite, sitesWithDensity = _a.sitesWithDensity;\n var map = _.get(this.mapRef, 'current.leafletElement');\n if (map) {\n map.fitBounds(_.map(sitesWithDensity, function (site) { return ({ lat: site.latitude, lng: site.longitude }); }));\n map.panTo({ lat: currentSite.latitude, lng: currentSite.longitude });\n this.setState({ defaultZoom: map.getZoom() });\n }\n };\n HomeMap.prototype.flyOut = function () {\n this.setState({ showMarkers: false });\n var currentSite = this.props.currentSite;\n var map = _.get(this.mapRef, 'current.leafletElement');\n map.flyTo({ lat: currentSite.latitude, lng: \"\" + (+currentSite.longitude + 0.1) }, this.state.defaultZoom);\n };\n HomeMap.prototype.flyTo = function () {\n var _this = this;\n this.setState({ showMarkers: false }, function () {\n var currentSite = _this.props.currentSite;\n var map = _.get(_this.mapRef, 'current.leafletElement');\n map.flyTo([currentSite.latitude, currentSite.longitude], 15);\n });\n };\n HomeMap.prototype.showMarkers = function () {\n this.setState({ showMarkers: true });\n };\n HomeMap.prototype.componentDidMount = function () {\n this.fitMapWithBounds();\n var map = _.get(this.mapRef, 'current.leafletElement');\n if (map) {\n map.on('zoomend', this.showMarkers);\n }\n };\n HomeMap.prototype.componentDidUpdate = function (prevProps) {\n if (prevProps.currentSite.uuid !== this.props.currentSite.uuid) {\n var map = _.get(this.mapRef, 'current.leafletElement');\n if (map) {\n map.panTo({ lat: this.props.currentSite.latitude, lng: this.props.currentSite.longitude });\n }\n }\n if (prevProps.currentZoom !== this.props.currentZoom) {\n this.props.currentZoom ? this.flyTo() : this.flyOut();\n }\n };\n HomeMap.prototype.render = function () {\n var _a = this.props, sitesWithDensity = _a.sitesWithDensity, currentSite = _a.currentSite, onSelectSite = _a.onSelectSite;\n return (React.createElement(Map, { zoomControl: false, ref: this.mapRef, center: [+currentSite.latitude, +currentSite.longitude], minZoom: 3, style: { width: '100%', height: '100%' } },\n React.createElement(TileLayer, { url: \"https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png\", attribution: 'OpenStreetMap' }),\n this.state.showMarkers\n ? _.map(sitesWithDensity, function (site) { return (React.createElement(CircleMarker, { className: \"home-map__circle\", key: site.uuid, opacity: currentSite.uuid === site.uuid ? 1 : 0.7, onClick: function (e) { return onSelectSite(site.uuid); }, fillColor: site === null || site === void 0 ? void 0 : site.density_color, fill: true, fillOpacity: currentSite.uuid === site.uuid ? 0.8 : 0.2, color: currentSite.uuid === site.uuid ? 'var(--primarycolor)' : site === null || site === void 0 ? void 0 : site.density_color, center: { lat: site.latitude, lng: site.longitude }, radius: currentSite.uuid === site.uuid ? 8 : 4 },\n React.createElement(Tooltip, { direction: \"right\", offset: [30, -2], className: \"site-infos\" }, site.display_name))); })\n : null));\n };\n return HomeMap;\n}(Component));\nexport { HomeMap };\nHomeMap.propTypes = {\n sitesWithDensity: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n longitude: PropTypes.string,\n latitude: PropTypes.string,\n })),\n currentSite: PropTypes.shape({\n uuid: PropTypes.string,\n longitude: PropTypes.string,\n latitude: PropTypes.string,\n }),\n onSelectSite: PropTypes.func,\n currentZoom: PropTypes.bool,\n};\nexport var mapStateToProps = function (state, props) {\n var sites = selectSitesWithDensity(state, props);\n return {\n sitesWithDensity: sites,\n };\n};\nexport default connect(mapStateToProps)(HomeMap);\n","import React from 'react';\nimport './loader.svg';\nvar Loader = function () { return React.createElement(\"img\", { src: \"/public/loader.svg\", style: { width: '100%', height: '100%' } }); };\nexport default Loader;\n","export default __webpack_public_path__ + \"public/loader.svg\";","export var setNavigation = function (params) { return ({\n type: 'SET_NAVIGATION',\n params: params,\n}); };\nexport var setCurrentApp = function (history) { return ({\n type: 'SET_CURRENT_APP',\n history: history,\n}); };\nexport var setCurrentDay = function (from, to) { return ({\n type: 'SET_CURRENT_DAY',\n from: from,\n to: to,\n}); };\nexport var setComparedDay = function (from, to) { return ({\n type: 'SET_COMPARED_DAY',\n from: from,\n to: to,\n}); };\nexport var setComparedArea = function (areaId) { return ({\n type: 'SET_COMPARED_AREA',\n areaId: areaId,\n}); };\nexport var setGranularity = function (granularity) { return ({\n type: 'SET_CURRENT_GRANULARITY',\n granularity: granularity,\n}); };\nexport var setComparisonMode = function (mode) { return ({\n type: 'SET_CURRENT_COMPARISON_MODE',\n mode: mode,\n}); };\nexport var resetComparedDate = function () { return ({\n type: 'RESET_COMPARED_DATE',\n}); };\nexport var automaticCurrentGranularity = function (granularity) { return ({\n type: 'AUTOMATIC_CURRENT_GRANULARITY',\n granularity: granularity,\n}); };\nexport var localeReady = function () { return ({\n type: 'LOCALE_READY',\n}); };\nexport var changePopulation = function (population) { return ({\n type: 'CHANGE_POPULATION',\n population: population,\n}); };\nexport var changeSubsection = function (subsection) { return ({\n type: 'SET_CURRENT_SUBSECTION',\n subsection: subsection,\n}); };\nexport var setCurrentPoi = function (poiId, history) { return ({\n type: 'SET_CURRENT_POI',\n poiId: poiId,\n history: history,\n}); };\n","export var fetchConfig = function (siteId, history) { return ({\n type: 'FETCH_CONFIG',\n siteId: siteId,\n history: history,\n}); };\nexport var fetchConfigSuccess = function (siteId, config, history) { return ({\n type: 'FETCH_CONFIG_SUCCESS',\n siteId: siteId,\n config: config,\n history: history,\n}); };\nexport var fetchConfigFailure = function (siteId) { return ({\n type: 'FETCH_CONFIG_FAILURE',\n siteId: siteId,\n}); };\nexport var fetchConfig2 = function (siteId, history) { return ({\n type: 'FETCH_CONFIG2',\n siteId: siteId,\n history: history,\n}); };\nexport var fetchConfigSuccess2 = function (siteId, config, history) { return ({\n type: 'FETCH_CONFIG_SUCCESS2',\n siteId: siteId,\n config: config,\n history: history,\n}); };\nexport var fetchConfigFailure2 = function (siteId) { return ({\n type: 'FETCH_CONFIG_FAILURE2',\n siteId: siteId,\n}); };\n","import _ from 'lodash';\nimport { createSelector } from 'reselect';\nexport var getConfig = function (siteId) { return function (state) { return _.get(state.configs[siteId], 'data', {}); }; };\nexport var getterSiteConfig = function (state, props) { return state.configs[props.siteId]; };\nexport var isConfigFetched = createSelector(getterSiteConfig, function (config) { return !_.isUndefined(config) && !_.get(config, 'loading', true); });\n","export var fetchRealtimeStats = function (history) { return ({\n type: 'FETCH_REALTIME_STATS',\n history: history,\n}); };\nexport var startRealtime = function (history) { return ({\n type: 'START_REALTIME',\n history: history,\n}); };\n","export var initHomeCard = function (history) { return ({\n type: 'INIT_HOME_CARD',\n history: history,\n}); };\nexport var homeCardLoaded = function () { return ({\n type: 'HOME_CARD_LOADED',\n}); };\nexport var setHomeCardSortType = function (_a) {\n var key = _a.key;\n return ({\n type: 'HOME_CARD_SORT_TYPE',\n key: key,\n });\n};\nexport var fetchHomePresenceStats = function () { return ({\n type: 'FETCH_HOME_PRESENCE_STATS',\n}); };\nexport var fetchYesterdayHomeStats = function () { return ({\n type: 'FETCH_YESTERDAY_HOME_STATS',\n}); };\nexport var yesterdayHomeStatsLoading = function () { return ({\n type: 'FETCH_YESTERDAY_HOME_STATS_LOADING',\n}); };\nexport var fetchYesterdayHomeStatsSuccess = function (_a) {\n var data = _a.data;\n return ({\n type: 'FETCH_YESTERDAY_HOME_STATS_SUCCESS',\n data: data,\n });\n};\nexport var fetchYesterdayHomeStatsFailure = function () { return ({\n type: 'FETCH_YESTERDAY_HOME_STATS_SUCCESS_FAILURE',\n}); };\nexport var switchCardType = function (_a) {\n var isNow = _a.isNow;\n return ({\n type: 'SWITCH_HOME_CARD_TYPE',\n isNow: isNow,\n });\n};\nexport var homeMeanStatsLoading = function (_a) {\n var siteId = _a.siteId, areaId = _a.areaId, kind = _a.kind, from = _a.from, to = _a.to, granularity = _a.granularity;\n return ({\n type: 'HOME_MEAN_STATS_LOADING',\n siteId: siteId,\n areaId: areaId,\n kind: kind,\n from: from,\n to: to,\n granularity: granularity,\n });\n};\nexport var fetchHomeMeanStatsSuccess = function (_a) {\n var siteId = _a.siteId, areaId = _a.areaId, kind = _a.kind, from = _a.from, to = _a.to, granularity = _a.granularity, data = _a.data;\n return ({\n type: 'FETCH_HOME_MEAN_STATS_SUCCESS',\n siteId: siteId,\n areaId: areaId,\n kind: kind,\n from: from,\n to: to,\n granularity: granularity,\n data: data,\n });\n};\nexport var fetchHomeMeanStatsFailure = function (_a) {\n var siteId = _a.siteId, areaId = _a.areaId, kind = _a.kind, from = _a.from, to = _a.to, granularity = _a.granularity;\n return ({\n type: 'FETCH_HOME_MEAN_STATS_FAILURE',\n siteId: siteId,\n areaId: areaId,\n kind: kind,\n from: from,\n to: to,\n granularity: granularity,\n });\n};\nexport var listMostVisitedSitesLoading = function (_a) {\n var rtApiKey = _a.rtApiKey;\n return ({\n type: 'HOME_MOST_VISITED_SITES_LOADING',\n rtApiKey: rtApiKey,\n });\n};\nexport var mostVisitedSitesPolling = function () { return ({\n type: 'HOME_MOST_VISITED_SITES_POLLING',\n}); };\nexport var fetchHomeMostVisitedSitesSuccess = function (_a) {\n var rtApiKey = _a.rtApiKey, data = _a.data;\n return ({\n type: 'FETCH_HOME_MOST_VISITED_SITES_SUCCESS',\n rtApiKey: rtApiKey,\n data: data,\n });\n};\nexport var fetchHomeMostVisitedSitesFailure = function (_a) {\n var rtApiKey = _a.rtApiKey;\n return ({\n type: 'FETCH_HOME_MOST_VISITED_SITES_FAILURE',\n rtApiKey: rtApiKey,\n });\n};\nexport var fetchFocusSites = function () { return ({\n type: 'FETCH_FOCUS_SITES',\n}); };\nexport var fetchFocusSitesLoading = function () { return ({\n type: 'FETCH_FOCUS_SITES_LOADING',\n}); };\nexport var fetchFocusSitesSuccess = function (data) { return ({\n type: 'FETCH_FOCUS_SITES_SUCCESS',\n data: data,\n}); };\nexport var fetchFocusSitesFailure = function () { return ({\n type: 'FETCH_FOCUS_SITES_FAILURE',\n}); };\nexport var homeAggregatedStatsLoading = function (_a) {\n var siteId = _a.siteId, areaId = _a.areaId, kind = _a.kind, from = _a.from, to = _a.to, granularity = _a.granularity, _b = _a.statKey, statKey = _b === void 0 ? 'aggregated' : _b;\n return ({\n type: 'HOME_AGGREGATED_STATS_LOADING',\n siteId: siteId,\n areaId: areaId,\n kind: kind,\n from: from,\n to: to,\n granularity: granularity,\n statKey: statKey,\n });\n};\nexport var fetchHomeAggregatedStatsSuccess = function (_a) {\n var siteId = _a.siteId, areaId = _a.areaId, kind = _a.kind, from = _a.from, to = _a.to, granularity = _a.granularity, data = _a.data, _b = _a.statKey, statKey = _b === void 0 ? 'aggregated' : _b;\n return ({\n type: 'FETCH_HOME_AGGREGATED_STATS_SUCCESS',\n siteId: siteId,\n areaId: areaId,\n kind: kind,\n from: from,\n to: to,\n granularity: granularity,\n data: data,\n statKey: statKey,\n });\n};\nexport var fetchHomeAggregatedStatsFailure = function (_a) {\n var siteId = _a.siteId, areaId = _a.areaId, kind = _a.kind, from = _a.from, to = _a.to, granularity = _a.granularity, _b = _a.statKey, statKey = _b === void 0 ? 'aggregated' : _b;\n return ({\n type: 'FETCH_HOME_AGGREGATED_STATS_FAILURE',\n siteId: siteId,\n areaId: areaId,\n kind: kind,\n from: from,\n to: to,\n granularity: granularity,\n statKey: statKey,\n });\n};\nexport var setHomeStatsStatus = function (_a) {\n var siteId = _a.siteId, areaId = _a.areaId, kind = _a.kind, from = _a.from, to = _a.to, granularity = _a.granularity, statKey = _a.statKey, status = _a.status;\n return ({\n type: 'SET_HOME_STATS_STATUS',\n siteId: siteId,\n areaId: areaId,\n kind: kind,\n from: from,\n to: to,\n granularity: granularity,\n statKey: statKey,\n status: status,\n });\n};\n","export function getLocalStorage(key) {\n return window.localStorage.getItem(key);\n}\nexport function getAccessToken() {\n return getLocalStorage('access_token');\n}\nexport function setItem(key, value) {\n window.localStorage.setItem(key, value);\n}\nexport function removeItem(key) {\n window.localStorage.removeItem(key);\n}\nexport function clearLocalStorage() {\n window.localStorage.clear();\n}\nexport function getFloorId(searchString) {\n return new URLSearchParams(searchString).get('floorId');\n}\nexport function redirectFromLastUrl() {\n var lastUrl = window.localStorage.getItem('last_url');\n if (lastUrl) {\n window.localStorage.removeItem('last_url');\n window.location.href = lastUrl;\n }\n}\n","import { __assign } from \"tslib\";\nimport axios from 'axios';\nimport { getAccessToken } from './localStorage';\nexport function initAxiosMDMApi(headers) {\n var token = getAccessToken();\n return axios.create({\n baseUrl: window.MDM_BACKEND_URL,\n headers: __assign(__assign({}, headers), { authorization: \"Bearer \" + token }),\n });\n}\nexport function initAxiosInstantApi(headers) {\n return axios.create({\n baseUrl: window.INSTANT_API_URL,\n headers: headers,\n });\n}\nexport function initAxiosComputeApi(headers) {\n var token = getAccessToken();\n return axios.create({\n baseUrl: window.COMPUTE_API_URL,\n headers: __assign(__assign({}, headers), { authorization: \"Bearer \" + token }),\n });\n}\nexport function initAxiosComputeEngine(headers) {\n var token = getAccessToken();\n return axios.create({\n baseUrl: window.COMPUTE_ENGINE_URL,\n headers: __assign(__assign({}, headers), { authorization: \"Bearer \" + token }),\n });\n}\nexport function getFromMDM(path, headers) {\n var api = initAxiosMDMApi(headers);\n var baseURL = window.MDM_API_URL;\n return api.get(baseURL + \"/\" + path);\n}\nexport function getFromMDMApi(path, headers) {\n var api = initAxiosMDMApi(headers);\n var baseURL = window.MDM_BASE_API_URL;\n return api.get(baseURL + \"/\" + path);\n}\nexport function getFromInstant(path, version, headers) {\n var api = initAxiosMDMApi(headers);\n var baseURL = window.INSTANT_API_URL;\n return api.get(baseURL + \"/\" + version + \"/\" + path);\n}\nexport function getFromCompute(path, headers) {\n var api = initAxiosComputeApi(headers);\n var baseURL = window.COMPUTE_API_URL_2;\n return api.get(baseURL + \"/\" + path);\n}\nexport function getFromComputeEngine(path, headers) {\n var api = initAxiosComputeEngine(headers);\n var baseURL = window.COMPUTE_ENGINE_URL;\n return api.get(baseURL + \"/\" + path);\n}\nexport function postFromComputeEngine(path, data, headers) {\n var api = initAxiosComputeEngine(headers);\n var baseURL = window.COMPUTE_ENGINE_URL;\n return api.post(baseURL + \"/\" + path, data);\n}\nexport function initAxiosStatusApi(headers) {\n var token = getAccessToken();\n return axios.create({\n baseUrl: window.STATUS_API_URL,\n headers: __assign(__assign({}, headers), { authorization: \"Bearer \" + token }),\n });\n}\nexport function getFromStatusApi(path, headers) {\n var api = initAxiosStatusApi(headers);\n var baseURL = window.STATUS_API_URL;\n return api.get(baseURL + \"/\" + path);\n}\n","export var fetchFloors = function (siteId) { return ({\n type: 'FETCH_FLOORS',\n siteId: siteId,\n}); };\nexport var fetchFloorsSuccess = function (siteId, data, history) { return ({\n type: 'FETCH_FLOORS_SUCCESS',\n siteId: siteId,\n data: data,\n history: history,\n}); };\nexport var fetchFloorsFailure = function (siteId) { return ({\n type: 'FETCH_FLOORS_FAILURE',\n siteId: siteId,\n}); };\nexport var fetchFloors2 = function (siteId, history) { return ({\n type: 'FETCH_FLOORS2',\n siteId: siteId,\n history: history,\n}); };\nexport var fetchFloorsSuccess2 = function (siteId, data) { return ({\n type: 'FETCH_FLOORS_SUCCESS2',\n siteId: siteId,\n data: data,\n}); };\nexport var fetchFloorsFailure2 = function (siteId) { return ({\n type: 'FETCH_FLOORS_FAILURE2',\n siteId: siteId,\n}); };\nexport var setCurrentFloor = function (siteId, floorId, history) { return ({\n type: 'SET_CURRENT_FLOOR',\n siteId: siteId,\n floorId: floorId,\n history: history,\n}); };\nexport var setCurrentFloor2 = function (floorId, history) { return ({\n type: 'SET_CURRENT_FLOOR2',\n floorId: floorId,\n history: history,\n}); };\nexport var selectArea = function (siteId, floorId, areaId, history) { return ({\n type: 'SELECT_AREA',\n siteId: siteId,\n floorId: floorId,\n areaId: areaId,\n history: history,\n}); };\nexport var selectArea2 = function (areaId, history) { return ({\n type: 'SELECT_AREA2',\n areaId: areaId,\n history: history,\n}); };\nexport var resetSelectArea = function (siteId) { return ({\n type: 'RESET_SELECT_AREA',\n siteId: siteId,\n}); };\nexport var selectEntireSite = function (siteId, history) { return ({\n type: 'SELECT_ENTIRE_SITE',\n siteId: siteId,\n history: history,\n}); };\nexport var setAreaColor = function (siteId, floorId, areaId, color) { return ({\n type: 'SET_AREA_COLOR',\n siteId: siteId,\n floorId: floorId,\n areaId: areaId,\n color: color,\n}); };\nexport var setAreaInError = function (siteId, floorId, areaId) { return ({\n type: 'SET_AREA_IN_ERROR',\n siteId: siteId,\n floorId: floorId,\n areaId: areaId,\n}); };\nexport var computeAreasThreshold = function (history) { return ({\n type: 'COMPUTE_AREAS_THRESHOLD',\n history: history,\n}); };\nexport var computeAreaThresholdSuccess = function (siteId) { return ({\n type: 'COMPUTE_AREA_THRESHOLD_SUCCESS',\n siteId: siteId,\n}); };\n","import _ from 'lodash';\nimport { zoneColor } from '@src/commons/floors/sagas';\nexport var smoothingAlgorithm = function (historical, prediction) {\n if (_.get(historical, 'data', []).length === 0) {\n return prediction;\n }\n if (_.get(prediction, 'data', []).length === 0) {\n return prediction;\n }\n var nSamples = prediction.data.length <= 10 ? prediction.data.length / 2 : 10;\n var smoothStart = _.last(historical.data).traffic;\n var predStart = _.take(prediction.data, nSamples).map(function (x) { return x.traffic; });\n var arrayToSmooth = [smoothStart].concat(predStart);\n var smoothed = [];\n var kernel = 1;\n var radius = 100;\n var filter = new Float64Array(2 * kernel + 1);\n var denominator1 = radius * Math.sqrt(2 * Math.PI);\n var denominator2 = Math.pow(radius, 2) * 2;\n filter = filter.map(function (_, index) { return Math.exp(-Math.pow(index - kernel, 2) / denominator2) / denominator1; });\n var normalizer = filter.reduce(function (acc, val) { return acc + val; });\n var normfilter = filter.map(function (value) { return value / normalizer; });\n arrayToSmooth.forEach(function (_, index) {\n if (index - kernel < 0 || index + kernel >= arrayToSmooth.length) {\n smoothed.push(arrayToSmooth[index]);\n }\n else {\n var segmentstart = index - kernel < 0 ? index - kernel + arrayToSmooth.length : index - kernel;\n var sum = 0;\n var c = 0;\n for (var a = segmentstart; (index + kernel + 1) % arrayToSmooth.length !== a; a = a % arrayToSmooth.length) {\n sum += arrayToSmooth[a++] * normfilter[c++];\n }\n smoothed.push(sum);\n }\n });\n smoothed.forEach(function (item, index) {\n prediction.data[index].traffic = item;\n });\n _.each(prediction.data, function (d, index) {\n if (index < 3) {\n prediction.data[index].traffic = historical.data[historical.data.length - 1].traffic;\n }\n });\n return prediction;\n};\nexport var computeTrending = function (current, forecast) {\n var diff = forecast - current;\n if (diff >= 0.25) {\n return 'up';\n }\n if (diff <= -0.25) {\n return 'down';\n }\n return 'equals';\n};\nexport var computeAreaSocialDistancing = function (liveArea, area, trafficType) {\n return !_.isNull(liveArea.rt_model) && area.usable_area > 0\n ? _.round(area.usable_area / (+_.get(liveArea, trafficType, 1) || 1), 1)\n : null;\n};\nexport var colorFromThreshold = function (minThreshold, maxThreshold, value) {\n if (value === null || !minThreshold || !maxThreshold) {\n return zoneColor.GREY;\n }\n if (value <= minThreshold) {\n return zoneColor.RED;\n }\n if (value >= maxThreshold) {\n return zoneColor.GREEN;\n }\n return zoneColor.ORANGE;\n};\n","import _ from 'lodash';\nimport { createSelector } from 'reselect';\nexport var getterSiteConfigsForSocialDistancing = function (state, props) {\n return state.configs[_.get(props, 'siteId') || _.get(props.match, 'params.siteId')];\n};\nexport var getSocialDistancingParameters = createSelector(getterSiteConfigsForSocialDistancing, function (config) {\n return _.get(config, 'data.social_distancing_parameters', {});\n});\nexport var isSocialDistancingParametersLoading = createSelector(getterSiteConfigsForSocialDistancing, function (config) { return _.get(config, 'loading', true); });\n","import { __assign } from \"tslib\";\nimport _ from 'lodash';\nimport { createSelector } from 'reselect';\nimport { computeAreaSocialDistancing, computeTrending } from './utils';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nimport { getSocialDistancingParameters } from '@src/social_distancing/selectors';\nimport { getterSiteConfig } from '@src/commons/configs/selectors';\nimport { linkScaleWithDensity } from '@src/commons/scalesConfigurations/utils';\nexport var getterSiteLiveAreas = function (state, props) { return state.liveAreas[props.siteId]; };\nexport var getterSiteFloors = function (state, props) { return state.floors[props.siteId]; };\nexport var isSocialDistancingActivated = function (state) {\n return isFeatureActivated('display_social_distancing_table')(state);\n};\nexport var findLiveAreaRtId = function (siteId, areaId) { return function (state) {\n var areaUuid = areaId;\n if (!areaId) {\n areaUuid = findEntireSiteAreaId(siteId)(state);\n }\n var liveArea = _.find(_.get(state.liveAreas[siteId], 'data', []), { area: areaUuid || null });\n return _.get(liveArea, 'rt_id');\n}; };\nexport var findRtModel = function (siteId, areaId) { return function (state) {\n var areaUuid = areaId;\n if (!areaId) {\n areaUuid = findEntireSiteAreaId(siteId)(state);\n }\n var liveArea = _.find(_.get(state.liveAreas[siteId], 'data', []), { area: areaUuid || null });\n return _.get(liveArea, 'rt_model');\n}; };\nexport var getAllRtId = function (siteId) { return function (state) {\n return _.map(_.reject(_.get(state.liveAreas[siteId], 'data', []), function (d) { return d.rt_model === null; }), 'rt_id');\n}; };\nexport var findEntireSiteAreaId = function (siteId) { return function (state) {\n return _.reduce(state.floors[siteId].data, function (current, floor) {\n return _.get(_.find(_.get(floor, 'units.areas', []), { is_entire_site: true }), 'uuid', null);\n }, null);\n}; };\nexport var getAreasForLive = function (siteId, areas) { return function (state) {\n return _.filter(areas, function (a) { return !!findLiveAreaRtId(siteId, a.uuid)(state) && !!findRtModel(siteId, a.uuid)(state); });\n}; };\nexport var selectSiteRealtimeAreas = createSelector(getterSiteLiveAreas, getterSiteFloors, function (liveAreas, floors) {\n var getLiveArea = function (areaId) { return _.find(_.get(liveAreas, 'data', []), { area: areaId }); };\n return _.chain(floors)\n .get('data', [])\n .flatMap(function (floor) { return _.get(floor, 'units.areas'); })\n .filter(function (area) { return getLiveArea(area.uuid); })\n .value();\n});\nexport var selectSiteRealtimeAreasWithSocialDistancing = createSelector(getterSiteLiveAreas, selectSiteRealtimeAreas, getterSiteConfig, function (state) { return state.navigation; }, function (liveAreas, areas, config, navigation) {\n var _a, _b;\n var getLiveArea = function (areaId) { return _.find(_.get(liveAreas, 'data', []), { area: areaId }); };\n var rtActivateAreas = _.filter(areas, function (area) { return !!_.get(getLiveArea(area.uuid), 'rt_model'); });\n var currentScale = (_b = (_a = config === null || config === void 0 ? void 0 : config.data) === null || _a === void 0 ? void 0 : _a.quality_service_scales) === null || _b === void 0 ? void 0 : _b.levels;\n return _.map(rtActivateAreas, function (area) {\n var liveArea = getLiveArea(area.uuid);\n var currentSocialDistancing = computeAreaSocialDistancing(liveArea, area, 'currentTraffic');\n var forecastSocialDistancing = computeAreaSocialDistancing(liveArea, area, 'forecast30Traffic');\n return __assign(__assign({}, area), { actual: {\n value: currentSocialDistancing,\n color: linkScaleWithDensity(currentScale, currentSocialDistancing, false),\n }, forecast30: {\n value: forecastSocialDistancing,\n color: linkScaleWithDensity(currentScale, forecastSocialDistancing, false),\n isAvailable: _.get(liveArea, 'forecast30Traffic') !== 'na',\n }, trending: computeTrending(currentSocialDistancing, forecastSocialDistancing) });\n });\n});\nexport var selectIsSiteSocialDistancingSetup = createSelector(selectSiteRealtimeAreas, function (areas) {\n return _.every(areas, function (a) { return !!a.usable_area; });\n});\nexport var selectGetSiteFloors = createSelector(getterSiteFloors, function (floors) { return _.get(floors, 'data', []); });\nexport var selectCurrentSocialDistancingThreshold = createSelector(getSocialDistancingParameters, function (socialDistancingParameters) {\n return {\n socialDistancingRedThreshold: _.get(socialDistancingParameters, 'social_distancing_red_threshold'),\n socialDistancingGreenThreshold: _.get(socialDistancingParameters, 'social_distancing_green_threshold'),\n };\n});\n","export var fetchLiveAreasSuccess = function (siteId, data, history) { return ({\n type: 'FETCH_LIVEAREAS_SUCCESS',\n siteId: siteId,\n data: data,\n history: history,\n}); };\nexport var fetchLiveAreasFailure = function (siteId) { return ({\n type: 'FETCH_LIVEAREAS_FAILURE',\n siteId: siteId,\n}); };\nexport var fetchLiveAreas = function (history) { return ({\n type: 'FETCH_LIVEAREAS',\n history: history,\n}); };\nexport var fetchLiveAreasSuccess2 = function (siteId, data, history) { return ({\n type: 'FETCH_LIVEAREAS_SUCCESS2',\n siteId: siteId,\n data: data,\n history: history,\n}); };\nexport var fetchLiveAreasFailure2 = function (siteId) { return ({\n type: 'FETCH_LIVEAREAS_FAILURE2',\n siteId: siteId,\n}); };\nexport var fetchInstantData = function (siteId) { return ({\n type: 'FETCH_INSTANT_DATA',\n siteId: siteId,\n}); };\nexport var fetchRealTimeDataSuccess = function (siteId, rtId, data) { return ({\n type: 'FETCH_REALTIME_DATA_SUCCESS',\n siteId: siteId,\n rtId: rtId,\n data: data,\n}); };\nexport var fetchAllLiveAreasRealTimeDataSuccess = function (siteId, history) { return ({\n type: 'FETCH_ALL_LIVE_AREAS_REALTIME_DATA_SUCCESS',\n siteId: siteId,\n history: history,\n}); };\nexport var fetchForecastDataSuccess = function (siteId, rtId, data) { return ({\n type: 'FETCH_FORECAST_DATA_SUCCESS',\n siteId: siteId,\n rtId: rtId,\n data: data,\n}); };\nexport var fetchForecastDataFailure = function (rtId) { return ({\n type: 'FETCH_FORECAST_DATA_FAILURE',\n rtId: rtId,\n}); };\nexport var fetchRealTimeDataFailure = function (rtId) { return ({\n type: 'FETCH_REALTIME_DATA_FAILURE',\n rtId: rtId,\n}); };\nexport var setCurrentRtId = function (rtId) { return ({\n type: 'SET_CURRENT_RT_ID',\n rtId: rtId,\n}); };\nexport var setRealtimeStatus = function (siteId, rtId, isRtInvalid, status, reason) {\n if (status === void 0) { status = 'OK'; }\n if (reason === void 0) { reason = ''; }\n return ({\n type: 'SET_REALTIME_STATUS',\n siteId: siteId,\n rtId: rtId,\n isRtInvalid: isRtInvalid,\n status: status,\n reason: reason,\n });\n};\nexport var setCurrentRealtimeValues = function (siteId, rtId, traffic, forecast) { return ({\n type: 'SET_CURRENT_REALTIME_VALUES',\n siteId: siteId,\n rtId: rtId,\n traffic: traffic,\n forecast: forecast,\n}); };\nexport var fetchReferenceRealTimeDataSuccess = function (siteId, rtId, data) { return ({\n type: 'FETCH_REFERENCE_REALTIME_DATA_SUCCESS',\n siteId: siteId,\n rtId: rtId,\n data: data,\n}); };\nexport var fetchReferenceRealTimeDataFailure = function (rtId) { return ({\n type: 'FETCH_REFERENCE_REALTIME_DATA_FAILURE',\n rtId: rtId,\n}); };\n","import _ from 'lodash';\nexport var getFirstSiteFloor = function (siteId) { return function (state) { return _.head(_.get(state.floors[siteId], 'data', [])); }; };\nexport var getSite = function (siteId) { return function (state) { return _.find(state.sites.data, { uuid: siteId }); }; };\n","import { __assign, __generator } from \"tslib\";\nimport { takeEvery, put, select, all, call } from 'redux-saga/effects';\nimport _ from 'lodash';\nimport { getFromMDM, getFromInstant } from '@src/commons/utils/request';\nimport { fetchFloors, fetchFloorsSuccess, fetchFloorsFailure, fetchFloorsSuccess2, fetchFloorsFailure2, setCurrentFloor, resetSelectArea, selectArea, setAreaInError, computeAreaThresholdSuccess, computeAreasThreshold, } from './actions';\nimport { getCurrentFloorId, getCurrentAreaId, getCurrentSiteId, getCurrentApp, getCurrentSection, } from '@src/navigation/selectors';\nimport { getAllFloorsAreas, getLiveArea, findEntireSiteFloor } from './selectors';\nimport { getConfig } from '@src/commons/configs/selectors';\nimport { findEntireSiteAreaId } from '@src/live/realtimeStat/selectors';\nimport { setCurrentRealtimeValues, setRealtimeStatus } from '@src/live/realtimeStat/actions';\nimport { getSite } from '@src/selectors';\nexport function computeImageBounds(url) {\n var imageLoader = new Promise(function (resolve, reject) {\n var img = new window.Image();\n img.onload = function () {\n return resolve([\n [0, 0],\n [img.height / 100, img.width / 100],\n ]);\n };\n img.onerror = reject;\n img.src = url;\n });\n return imageLoader;\n}\nexport function deduceImageBounds(floor) {\n var areas = floor.units.areas;\n var anyGeometrySet = _.isEmpty(_.flatMap(areas, function (area) { return area.geometry; }));\n var anyAreasSet = _.isEmpty(areas);\n if (anyAreasSet || anyGeometrySet) {\n return [\n [0, 0],\n [0, 0],\n ];\n }\n var areasWithGeometry = _.filter(areas, function (area) { return area.geometry.length > 0; });\n var minCoord = function (latOrLong) {\n return _.chain(areasWithGeometry)\n .map(function (area) { return _.minBy(area.geometry, latOrLong)[latOrLong]; })\n .min()\n .value();\n };\n var maxCoord = function (latOrLong) {\n return _.chain(areasWithGeometry)\n .map(function (area) { return _.maxBy(area.geometry, latOrLong)[latOrLong]; })\n .max()\n .value();\n };\n return [\n [minCoord('lat'), minCoord('lng')],\n [maxCoord('lat'), maxCoord('lng')],\n ];\n}\nexport function getDefaultFloor(floors) {\n var positiveLevels = _.filter(floors, function (f) { return f.level >= 0; });\n if (positiveLevels.length) {\n return _.minBy(positiveLevels, 'level');\n }\n var negativeLevels = _.filter(floors, function (f) { return f.level < 0; });\n return _.maxBy(negativeLevels, 'level');\n}\nexport function tryFetchSiteFloors(_a) {\n var _b, status, data, dataWithBounds, i, isGeographicMap, bounds, _c, currentSiteId, currentFloorId, defaultFloor, currentAreaId, entireSiteId, currentApp, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, e_1;\n var siteId = _a.siteId, config = _a.config, history = _a.history;\n return __generator(this, function (_q) {\n switch (_q.label) {\n case 0: return [4, put(fetchFloors(siteId))];\n case 1:\n _q.sent();\n _q.label = 2;\n case 2:\n _q.trys.push([2, 30, , 32]);\n return [4, getFromMDM(\"floors/?site__uuid=\" + siteId + \"&units__config__uuid=\" + config.uuid)];\n case 3:\n _b = _q.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 28];\n dataWithBounds = [];\n i = 0;\n _q.label = 4;\n case 4:\n if (!(i < data.length)) return [3, 10];\n isGeographicMap = _.isNull(data[i].map_picture);\n if (!isGeographicMap) return [3, 6];\n return [4, deduceImageBounds(data[i])];\n case 5:\n _c = _q.sent();\n return [3, 8];\n case 6: return [4, computeImageBounds(data[i].map_picture)];\n case 7:\n _c = _q.sent();\n _q.label = 8;\n case 8:\n bounds = _c;\n dataWithBounds.push(__assign(__assign({}, data[i]), { bounds: bounds }));\n _q.label = 9;\n case 9:\n i++;\n return [3, 4];\n case 10: return [4, select(getCurrentSiteId())];\n case 11:\n currentSiteId = _q.sent();\n if (siteId !== currentSiteId) {\n return [2];\n }\n return [4, select(getCurrentFloorId())];\n case 12:\n currentFloorId = _q.sent();\n if (!!currentFloorId) return [3, 14];\n defaultFloor = getDefaultFloor(data);\n return [4, put(setCurrentFloor(siteId, defaultFloor.uuid, history))];\n case 13:\n _q.sent();\n _q.label = 14;\n case 14: return [4, put(fetchFloorsSuccess(siteId, dataWithBounds, history))];\n case 15:\n _q.sent();\n return [4, select(getCurrentAreaId())];\n case 16:\n currentAreaId = _q.sent();\n return [4, select(findEntireSiteAreaId(siteId))];\n case 17:\n entireSiteId = _q.sent();\n return [4, select(getCurrentApp())];\n case 18:\n currentApp = _q.sent();\n if (!currentAreaId) return [3, 21];\n _d = put;\n _e = selectArea;\n _f = [siteId];\n return [4, select(getCurrentFloorId())];\n case 19: return [4, _d.apply(void 0, [_e.apply(void 0, _f.concat([_q.sent(), currentAreaId, history]))])];\n case 20:\n _q.sent();\n return [3, 24];\n case 21:\n _g = put;\n _h = setCurrentFloor;\n _j = [siteId];\n _l = (_k = _).get;\n return [4, select(findEntireSiteFloor(siteId, currentApp))];\n case 22: return [4, _g.apply(void 0, [_h.apply(void 0, _j.concat([_l.apply(_k, [_q.sent(), 'uuid']), history]))])];\n case 23:\n _q.sent();\n _q.label = 24;\n case 24:\n if (!entireSiteId) return [3, 27];\n _m = put;\n _o = selectArea;\n _p = [siteId];\n return [4, select(getCurrentFloorId())];\n case 25: return [4, _m.apply(void 0, [_o.apply(void 0, _p.concat([_q.sent(), entireSiteId, history]))])];\n case 26:\n _q.sent();\n _q.label = 27;\n case 27: return [2];\n case 28: return [4, put(fetchFloorsFailure(siteId))];\n case 29: return [2, _q.sent()];\n case 30:\n e_1 = _q.sent();\n return [4, put(fetchFloorsFailure(siteId))];\n case 31:\n _q.sent();\n return [3, 32];\n case 32: return [2];\n }\n });\n}\nexport function tryFetchSiteFloors2(_a) {\n var siteId, config, _b, status, data, dataWithBounds, i, isGeographicMap, bounds, _c, currentFloorId, defaultFloor, currentAreaId, entireSiteId, currentApp, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, e_2;\n var history = _a.history;\n return __generator(this, function (_q) {\n switch (_q.label) {\n case 0: return [4, select(getCurrentSiteId())];\n case 1:\n siteId = _q.sent();\n return [4, select(getConfig(siteId))];\n case 2:\n config = _q.sent();\n if (_.isEmpty(config)) {\n return [2];\n }\n _q.label = 3;\n case 3:\n _q.trys.push([3, 30, , 32]);\n return [4, getFromMDM(\"floors/?site__uuid=\" + siteId + \"&units__config__uuid=\" + config.uuid)];\n case 4:\n _b = _q.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 28];\n dataWithBounds = [];\n i = 0;\n _q.label = 5;\n case 5:\n if (!(i < data.length)) return [3, 11];\n isGeographicMap = _.isNull(data[i].map_picture);\n if (!isGeographicMap) return [3, 7];\n return [4, deduceImageBounds(data[i])];\n case 6:\n _c = _q.sent();\n return [3, 9];\n case 7: return [4, computeImageBounds(data[i].map_picture)];\n case 8:\n _c = _q.sent();\n _q.label = 9;\n case 9:\n bounds = _c;\n dataWithBounds.push(__assign(__assign({}, data[i]), { bounds: bounds }));\n _q.label = 10;\n case 10:\n i++;\n return [3, 5];\n case 11: return [4, select(getCurrentFloorId())];\n case 12:\n currentFloorId = _q.sent();\n if (!!currentFloorId) return [3, 14];\n defaultFloor = getDefaultFloor(data);\n return [4, put(setCurrentFloor(siteId, defaultFloor.uuid, history))];\n case 13:\n _q.sent();\n _q.label = 14;\n case 14: return [4, put(fetchFloorsSuccess2(siteId, dataWithBounds))];\n case 15:\n _q.sent();\n return [4, select(getCurrentAreaId())];\n case 16:\n currentAreaId = _q.sent();\n return [4, select(findEntireSiteAreaId(siteId))];\n case 17:\n entireSiteId = _q.sent();\n return [4, select(getCurrentApp())];\n case 18:\n currentApp = _q.sent();\n if (!currentAreaId) return [3, 21];\n _d = put;\n _e = selectArea;\n _f = [siteId];\n return [4, select(getCurrentFloorId())];\n case 19: return [4, _d.apply(void 0, [_e.apply(void 0, _f.concat([_q.sent(), currentAreaId, history]))])];\n case 20:\n _q.sent();\n return [3, 24];\n case 21:\n _g = put;\n _h = setCurrentFloor;\n _j = [siteId];\n _l = (_k = _).get;\n return [4, select(findEntireSiteFloor(siteId, currentApp))];\n case 22: return [4, _g.apply(void 0, [_h.apply(void 0, _j.concat([_l.apply(_k, [_q.sent(), 'uuid']), history]))])];\n case 23:\n _q.sent();\n _q.label = 24;\n case 24:\n if (!entireSiteId) return [3, 27];\n _m = put;\n _o = selectArea;\n _p = [siteId];\n return [4, select(getCurrentFloorId())];\n case 25: return [4, _m.apply(void 0, [_o.apply(void 0, _p.concat([_q.sent(), entireSiteId, history]))])];\n case 26:\n _q.sent();\n _q.label = 27;\n case 27: return [2];\n case 28: return [4, put(fetchFloorsFailure2(siteId))];\n case 29: return [2, _q.sent()];\n case 30:\n e_2 = _q.sent();\n console.error(e_2);\n return [4, put(fetchFloorsFailure2(siteId))];\n case 31:\n _q.sent();\n return [3, 32];\n case 32: return [2];\n }\n });\n}\nexport function resetArea(_a) {\n var siteId = _a.siteId;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, put(resetSelectArea(siteId))];\n case 1:\n _b.sent();\n return [2];\n }\n });\n}\nexport var zoneColor = {\n GREEN: '#4BBE80',\n RED: '#CC0000',\n ORANGE: '#FED98E',\n GREY: '#808080',\n};\nexport function setRTStatus(siteId, rtId, status, data) {\n var e_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 7, , 9]);\n if (!(status !== 200)) return [3, 2];\n return [4, put(setRealtimeStatus(siteId, rtId, false, 'ERROR', 'api_down'))];\n case 1: return [2, _a.sent()];\n case 2:\n if (!data.is_down) return [3, 4];\n return [4, put(setRealtimeStatus(siteId, rtId, true, 'ERROR', 'no_data'))];\n case 3: return [2, _a.sent()];\n case 4: return [4, put(setRealtimeStatus(siteId, rtId, false, 'OK', ''))];\n case 5: return [2, _a.sent()];\n case 6: return [3, 9];\n case 7:\n e_3 = _a.sent();\n return [4, put(setRealtimeStatus(siteId, rtId, false, 'ERROR', 'api_down'))];\n case 8: return [2, _a.sent()];\n case 9: return [2];\n }\n });\n}\nexport function computeAreaThreshold(siteId, area, history) {\n var floorId, areaId, liveArea, site, rtApiKey, useInstantAPIV4, _a, status, data, traffic, forecast, currentAraeaId, e_4;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n floorId = area.floorId;\n areaId = area.uuid;\n return [4, select(getLiveArea(siteId, areaId))];\n case 1:\n liveArea = _b.sent();\n return [4, select(getSite(siteId))];\n case 2:\n site = _b.sent();\n rtApiKey = site.rt_api_key;\n if (!!liveArea.rt_model) return [3, 4];\n return [4, put(setAreaInError(siteId, floorId, areaId))];\n case 3: return [2, _b.sent()];\n case 4:\n useInstantAPIV4 = true;\n _b.label = 5;\n case 5:\n _b.trys.push([5, 14, , 16]);\n return [4, getFromInstant(\"realtime-stats/\" + liveArea.rt_id + \"?key=\" + rtApiKey + \"&debug=true\", useInstantAPIV4 ? 'v4' : 'v3')];\n case 6:\n _a = _b.sent(), status = _a.status, data = _a.data;\n traffic = _.get(_.find(data.stats, { stat: 'traffic' }), 'value', 0);\n forecast = _.get(_.find(data.stats, { stat: 'traffic_in_30_minutes' }), 'value', 0);\n return [4, put(setCurrentRealtimeValues(siteId, liveArea.rt_id, traffic, forecast))];\n case 7:\n _b.sent();\n return [4, call(setRTStatus, siteId, liveArea.rt_id, status, data)];\n case 8:\n _b.sent();\n if (!!traffic) return [3, 13];\n return [4, select(getCurrentAreaId())];\n case 9:\n currentAraeaId = _b.sent();\n if (!currentAraeaId) return [3, 11];\n return [4, put(setCurrentFloor(siteId, floorId, history || { push: _.noop }))];\n case 10:\n _b.sent();\n _b.label = 11;\n case 11: return [4, put(setAreaInError(siteId, floorId, areaId))];\n case 12: return [2, _b.sent()];\n case 13: return [3, 16];\n case 14:\n e_4 = _b.sent();\n return [4, put(setAreaInError(siteId, floorId, areaId))];\n case 15: return [2, _b.sent()];\n case 16: return [2];\n }\n });\n}\nexport function computeAreasThresholdSaga(_a) {\n var siteId, floorsAreas;\n var history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getCurrentSiteId())];\n case 1:\n siteId = _b.sent();\n return [4, select(getAllFloorsAreas(siteId))];\n case 2:\n floorsAreas = _b.sent();\n return [4, all(_.map(floorsAreas, function (area) { return call(computeAreaThreshold, siteId, area, history); }))];\n case 3:\n _b.sent();\n return [4, put(computeAreaThresholdSuccess(siteId))];\n case 4:\n _b.sent();\n return [2];\n }\n });\n}\nexport function refreshAreasThreshold() {\n var currentApp, currentSection;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, select(getCurrentApp())];\n case 1:\n currentApp = _a.sent();\n return [4, select(getCurrentSection())];\n case 2:\n currentSection = _a.sent();\n if (currentApp !== 'live' || currentSection !== 'realtime') {\n return [2];\n }\n return [4, put(computeAreasThreshold({ push: _.noop }))];\n case 3:\n _a.sent();\n return [2];\n }\n });\n}\nexport default function floorsSaga() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery('FETCH_FLOORS2', tryFetchSiteFloors2)];\n case 1:\n _a.sent();\n return [4, takeEvery('FETCH_CONFIG_SUCCESS', tryFetchSiteFloors)];\n case 2:\n _a.sent();\n return [4, takeEvery('SET_CURRENT_FLOOR', resetArea)];\n case 3:\n _a.sent();\n return [4, takeEvery(['FETCH_LIVEAREAS_SUCCESS', 'FETCH_LIVEAREAS_SUCCESS2', 'COMPUTE_AREAS_THRESHOLD'], computeAreasThresholdSaga)];\n case 4:\n _a.sent();\n return [4, takeEvery('NEW_RT_DATA', refreshAreasThreshold)];\n case 5:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __assign } from \"tslib\";\nimport { createSelector } from 'reselect';\nimport _ from 'lodash';\nimport { flow, getOr, get, isEmpty, find } from 'lodash/fp';\nimport { getDefaultFloor } from './sagas';\nexport var getAllAreas = function (siteId) { return function (state) {\n return _.flatMap(_.get(state.floors[siteId], 'data', []), function (floor, key) {\n return _.map(floor.units.areas, function (a) { return (__assign(__assign({}, a), { floorId: floor.uuid })); });\n });\n}; };\nexport var getAllFloorsAreas = function (siteId) { return function (state) {\n var areas = _.flatMap(_.get(state.floors[siteId], 'data', []), function (floor, key) {\n return _.map(floor.units.areas, function (a) { return (__assign(__assign({}, a), { floorId: floor.uuid })); });\n });\n var liveAreas = _.get(state.liveAreas[siteId], 'data', []);\n return _.filter(areas, function (area) { return _.find(liveAreas, { area: area.uuid }); });\n}; };\nexport var getLiveArea = function (siteId, areaId) { return function (state) {\n return _.find(state.liveAreas[siteId].data, { area: areaId });\n}; };\nexport var getAllLiveAreas = function (siteId) { return function (state) { return flow(get('liveAreas'), get(siteId), get('data'))(state); }; };\nexport var isLiveAreasLoading = function (siteId) { return function (state) {\n return flow(get('liveAreas'), get(siteId), getOr(true, 'loading'))(state);\n}; };\nexport var isRtDataLoading = function (siteId) { return function (state) { return _.get(state.liveAreas[siteId], 'rtDataLoading', true); }; };\nexport var getCurrentLiveArea = function (liveAreas) { return function (state) {\n return _.find(liveAreas, { rt_id: _.get(state.navigation, 'rtId') });\n}; };\nexport var isFloorsLoading = function (siteId) { return function (state) {\n return flow(get('floors'), get(siteId), getOr(true, 'loading'))(state);\n}; };\nexport var isNoFloor = function (siteId) { return function (state) {\n return flow(get('floors'), get(siteId), getOr([], 'data'), isEmpty)(state);\n}; };\nexport var getCurrentFloor = function (siteId) { return function (state) {\n return flow(get(\"floors.\" + siteId), get('data'), find({ uuid: state.navigation.floorId }))(state);\n}; };\nexport var getLiveAreaFromAreaId = function (siteId, areaId) { return function (state) {\n return flow(get(\"liveAreas.\" + siteId), get('data'), find({ area: areaId }))(state);\n}; };\nexport var getLiveAreaFromRtId = function (siteId, rtId) { return function (state) {\n return flow(get(\"liveAreas.\" + siteId), get('data'), find({ rt_id: rtId }))(state);\n}; };\nexport var findEntireSiteFloor = function (siteId, app) { return function (state) {\n var floors = _.get(state.floors[siteId], 'data', []);\n var defaultFloor = getDefaultFloor(floors);\n return (_.find(floors, function (f) {\n return ((app === 'live' || app === 'social-distancing') && !!f.web_app_live_default_floor) ||\n (app === 'reporting' && !!f.web_app_reporting_default_floor);\n }) || defaultFloor);\n}; };\nexport var getterSiteFloors = function (state, props) { return _.get(state.floors[props.siteId], 'data', []); };\nexport var getFloorFromArea = createSelector(getterSiteFloors, function (state, props) { return (__assign({}, props)); }, function (floors, _a) {\n var areaId = _a.areaId;\n return _.find(floors, function (floor) { return !_.chain(floor).get('units.areas').filter({ uuid: areaId }).isEmpty().value(); });\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { isNil } from 'ramda';\nimport '@src/commons/styles/molecules/chart-tooltip.scss';\nvar ChartTooltipComparison = function (_a) {\n var statTitle = _a.statTitle, statComparedTitle = _a.statComparedTitle, statValue = _a.statValue, statComparedValue = _a.statComparedValue, baseDate = _a.baseDate, mode = _a.mode;\n return (React.createElement(\"div\", { className: \"chart-tooltip\" },\n React.createElement(\"div\", { className: \"chart-tooltip__content\" },\n mode === 'zone' && React.createElement(\"div\", { className: \"chart-tooltip__main-title\" }, baseDate),\n !!baseDate && (React.createElement(\"div\", { className: \"chart-tooltip__comparison\" },\n React.createElement(\"div\", { className: \"chart-tooltip__comparison-title chart-tooltip__comparison-title--value1\" }, statTitle),\n React.createElement(\"div\", { className: \"chart-tooltip__comparison-value\" }, statValue))),\n React.createElement(\"div\", { className: \"chart-tooltip__comparison\" },\n React.createElement(\"div\", { className: \"chart-tooltip__comparison-title chart-tooltip__comparison-title--value2\" }, statComparedTitle),\n !isNil(statComparedValue) && (React.createElement(\"div\", { className: \"chart-tooltip__comparison-value\" }, statComparedValue))))));\n};\nChartTooltipComparison.propTypes = {\n statTitle: PropTypes.string,\n statComparedTitle: PropTypes.string,\n statValue: PropTypes.string,\n statComparedValue: PropTypes.string,\n baseDate: PropTypes.string,\n mode: PropTypes.string,\n};\nexport default ChartTooltipComparison;\n","import React from 'react';\nimport _ from 'lodash';\nimport moment from 'moment-timezone';\nimport ContentLoader from 'react-content-loader';\nimport PropTypes from 'prop-types';\nimport { AreaChart, Area, CartesianGrid, XAxis, Tooltip, ReferenceLine, YAxis, ResponsiveContainer, } from 'recharts';\nimport '@src/commons/styles/molecules/chart-card.scss';\nimport '@src/commons/styles/molecules/chart-tooltip.scss';\nimport '@src/commons/styles/atoms/title.scss';\nimport ChartTooltipComparison from '@src/commons/ChartTooltip/ChartTooltipComparison';\nexport var pluralizeStr = function (payload, str) { return (payload > 1 ? str + 's' : str); };\nexport var maxValueOnKey = function (data, key) {\n return _.chain(data)\n .map(function (d) { return d[key]; })\n .max()\n .value();\n};\nexport var minValueOnKey = function (data, key) {\n return _.chain(data)\n .map(function (d) { return d[key]; })\n .min()\n .value();\n};\nexport var gradientFillRatio = function (data, threshold, key) {\n return (maxValueOnKey(data, key) - threshold) / maxValueOnKey(data, key);\n};\nexport var gradientStrokeRatio = function (data, threshold, key) {\n var YRange = maxValueOnKey(data, key) - minValueOnKey(data, key);\n return YRange === 0 ? 0 : (maxValueOnKey(data, key) - threshold) / YRange;\n};\nexport var gradientIsDisplay = function (threshold, data, key) {\n return _.isFinite(threshold) && maxValueOnKey(data, key) >= threshold;\n};\nexport var thresholdIsDisplay = function (threshold, data, key) {\n return _.isFinite(threshold) && 3 * maxValueOnKey(data, key) >= threshold;\n};\nexport var getDisplayValue = function (point) {\n return _.get(point, 'value') || _.get(point, 'completed_value') || _.get(point, 'forecasted_value') || 0;\n};\nexport var getYAxisKey = function (data) {\n if (_.isEmpty(_.filter(data, function (d) { return d.reference_value; }))) {\n return 'traffic';\n }\n if (_.get(_.maxBy(data, 'traffic'), 'traffic', 0) >\n _.get(_.maxBy(data, 'reference_value'), 'reference_value', 0)) {\n return 'traffic';\n }\n return 'reference_value';\n};\nvar color = {\n RED: '#CC0000',\n LIGHT_RED: '#f5aeaa',\n BLUE: 'var(--primarycolor)',\n PURPLE: '#6E1E78',\n LIGHT_BLUE: '#CCE7F5',\n ORANGE: '#FF9544',\n GREY: '#B0A59A',\n LIGHT_GREY: '#e9e6e2',\n TRANSPARENT: 'rgba(255, 255, 255, 0)',\n};\nexport var LiveTrafficGraph = function (_a) {\n var loading = _a.loading, currentPoint = _a.currentPoint, threshold = _a.threshold, data = _a.data, t = _a.t, locale = _a.locale, timezone = _a.timezone;\n if (loading) {\n return (React.createElement(\"div\", { style: { height: 200 } },\n React.createElement(ContentLoader, { style: { width: '100%', height: '100%' }, speed: 2, primaryColor: \"#f3f3f3\", secondaryColor: \"#ecebeb\" },\n React.createElement(\"rect\", { x: \"10\", y: \"10\", rx: \"5\", ry: \"5\", style: { height: 'calc(100% - 20px)', width: 'calc(100% - 20px)' } }))));\n }\n if (_.isEmpty(data)) {\n return null;\n }\n return (React.createElement(ResponsiveContainer, { width: \"100%\", height: \"100%\" },\n React.createElement(AreaChart, { data: _.concat(data, { time: +moment().tz(timezone).add(1, 'day').startOf('day').format('x') }), margin: { top: 20, right: 0, left: 0, bottom: -5 } },\n React.createElement(CartesianGrid, { vertical: false }),\n !_.isEmpty(_.filter(data, function (d) { return d.reference_value; })) ? (React.createElement(Tooltip, { cursor: false, content: function (_a) {\n var active = _a.active, payload = _a.payload, label = _a.label;\n var selectedPayload = _.get(_.head(payload), 'payload');\n var selectedTime = moment(_.get(selectedPayload, 'time')).tz(timezone).format('LT');\n var selectedValue = \"\" + _.get(selectedPayload, 'traffic');\n var referenceValue = \"\" + _.get(selectedPayload, 'reference_value', 0);\n return (!_.isUndefined(selectedValue) && (React.createElement(ChartTooltipComparison, { statValue: selectedValue, statComparedValue: referenceValue, baseDate: selectedTime, statTitle: t('Live_Labels.traffic.title'), statComparedTitle: \"Donn\\u00E9es de r\\u00E9f\\u00E9rence\", subtitle: t('Reporting_Labels.graphs.pax', {\n count: selectedValue !== null && selectedValue !== void 0 ? selectedValue : 0,\n }), mode: \"zone\" })));\n } })) : (React.createElement(Tooltip, { cursor: false, timezone: timezone, content: function (_a) {\n var active = _a.active, payload = _a.payload, label = _a.label;\n var selectedPayload = _.get(_.head(payload), 'payload');\n var selectedTime = moment(_.get(selectedPayload, 'time')).tz(timezone).format('LT');\n var selectedValue = getDisplayValue(selectedPayload);\n return (React.createElement(\"div\", { className: \"chart-tooltip\" },\n React.createElement(\"div\", { className: \"chart-tooltip__content\" },\n React.createElement(\"div\", { className: \"chart-tooltip__title\" }, selectedTime),\n React.createElement(\"div\", { className: \"chart-tootlip__subtitle\" }, selectedValue !== 1\n ? t('Live_Labels.traffic.unit_plural', { count: selectedValue })\n : t('Live_Labels.traffic.unit', { count: selectedValue })))));\n } })),\n React.createElement(ReferenceLine, { x: _.get(currentPoint, 'time'), stroke: color.ORANGE, strokeWidth: 2 }),\n React.createElement(XAxis, { axisLine: false, dataKey: \"time\", domain: ['dataMin', 'dataMax'], name: \"Time\", tickFormatter: function (unixTime) { return \"\" + moment(unixTime).tz(timezone).format('LT'); }, ticks: _.map(_.range(4, 24), function (h) { return moment().tz(timezone).startOf('day').add(h, 'hours'); }), type: \"number\", tickSize: 2, tickCount: 24, interval: 3, dy: 5, allowDataOverflow: true }),\n React.createElement(YAxis, { axisLine: false, margin: { left: -200 }, dataKey: getYAxisKey(data), tickSize: 0, domain: thresholdIsDisplay(threshold, data, 'value') && threshold > 1.2 * maxValueOnKey(data, 'value')\n ? ['dataMin', threshold]\n : [0, 'auto'], tickFormatter: function (data) { return (data ? (+data).toLocaleString(locale) : ''); }, interval: \"preserveEnd\", type: \"number\", tickCount: 4, mirror: true, orientation: \"left\", dy: -10, dx: 10 }),\n gradientIsDisplay(threshold, data, 'value') && (React.createElement(\"defs\", null,\n React.createElement(\"linearGradient\", { id: \"splitColorFill\", x1: \"0\", y1: \"0\", x2: \"0\", y2: \"1\" },\n React.createElement(\"stop\", { offset: gradientFillRatio(data, threshold, 'value'), stopColor: color.LIGHT_RED, stopOpacity: 1 }),\n React.createElement(\"stop\", { offset: gradientFillRatio(data, threshold, 'value'), stopColor: color.LIGHT_BLUE, stopOpacity: 1 })))),\n gradientIsDisplay(threshold, data, 'value') && (React.createElement(\"defs\", null,\n React.createElement(\"linearGradient\", { id: \"splitColorStroke\", x1: \"0\", y1: \"0\", x2: \"0\", y2: \"1\" },\n React.createElement(\"stop\", { offset: gradientStrokeRatio(data, threshold, 'value'), stopColor: color.RED, stopOpacity: 1 }),\n React.createElement(\"stop\", { offset: gradientStrokeRatio(data, threshold, 'value'), stopColor: color.BLUE, stopOpacity: 1 })))),\n gradientIsDisplay(threshold, data, 'forecasted_value') && (React.createElement(\"defs\", null,\n React.createElement(\"linearGradient\", { id: \"splitForecastColorStroke\", x1: \"0\", y1: \"0\", x2: \"0\", y2: \"1\" },\n React.createElement(\"stop\", { offset: gradientStrokeRatio(data, threshold, 'forecasted_value'), stopColor: color.RED, stopOpacity: 1 }),\n React.createElement(\"stop\", { offset: gradientStrokeRatio(data, threshold, 'forecasted_value'), stopColor: color.BLUE, stopOpacity: 1 })))),\n gradientIsDisplay(threshold, data, 'completed_value') && (React.createElement(\"defs\", null,\n React.createElement(\"linearGradient\", { id: \"splitColorGreyFill\", x1: \"0\", y1: \"0\", x2: \"0\", y2: \"1\" },\n React.createElement(\"stop\", { offset: gradientFillRatio(data, threshold, 'completed_value'), stopColor: color.LIGHT_RED, stopOpacity: 1 }),\n React.createElement(\"stop\", { offset: gradientFillRatio(data, threshold, 'completed_value'), stopColor: color.LIGHT_GREY, stopOpacity: 1 })))),\n gradientIsDisplay(threshold, data, 'completed_value') && (React.createElement(\"defs\", null,\n React.createElement(\"linearGradient\", { id: \"splitColorGreyStroke\", x1: \"0\", y1: \"0\", x2: \"0\", y2: \"1\" },\n React.createElement(\"stop\", { offset: gradientStrokeRatio(data, threshold, 'completed_value'), stopColor: color.RED, stopOpacity: 1 }),\n React.createElement(\"stop\", { offset: gradientStrokeRatio(data, threshold, 'completed_value'), stopColor: color.GREY, stopOpacity: 1 })))),\n (thresholdIsDisplay(threshold, data, 'value') ||\n thresholdIsDisplay(threshold, data, 'completed_value') ||\n thresholdIsDisplay(threshold, data, 'forecasted_value')) && (React.createElement(ReferenceLine, { y: threshold, stroke: color.RED, strokeWidth: 0.5, label: {\n value: threshold.toLocaleString(locale),\n completed_value: threshold.toLocaleString(locale),\n fill: color.RED,\n position: 'insideBottomRight',\n dx: -10,\n } })),\n gradientIsDisplay(threshold, data, 'value') ? (React.createElement(Area, { type: \"monotone\", dataKey: \"value\", strokeWidth: 2, stroke: \"url(#splitColorStroke)\", fill: \"url(#splitColorFill)\", activeDot: function (_a) {\n var cx = _a.cx, cy = _a.cy, value = _a.value;\n return !_.isNull(value[1]) ? (React.createElement(\"svg\", { x: cx - 6, y: cy - 6, fill: value[1] > threshold ? color.RED : color.BLUE },\n React.createElement(\"circle\", { cx: \"6\", cy: \"6\", r: \"4\", stroke: \"white\", strokeWidth: 2 }))) : (false);\n } })) : (React.createElement(Area, { type: \"monotone\", dataKey: \"value\", strokeWidth: 2, stroke: color.BLUE, fill: color.LIGHT_BLUE, dot: false })),\n gradientIsDisplay(threshold, data, 'completed_value') ? (React.createElement(Area, { type: \"monotone\", dataKey: \"completed_value\", strokeWidth: 2, stroke: \"url(#splitColorGreyStroke)\", fill: \"url(#splitColorGreyFill)\", activeDot: function (_a) {\n var cx = _a.cx, cy = _a.cy, value = _a.value;\n return !_.isNull(value[1]) ? (React.createElement(\"svg\", { x: cx - 6, y: cy - 6, fill: value[1] > threshold ? color.RED : color.BLUE },\n React.createElement(\"circle\", { cx: \"6\", cy: \"6\", r: \"4\", stroke: \"white\", strokeWidth: 2 }))) : (false);\n } })) : (React.createElement(Area, { type: \"monotone\", dataKey: \"completed_value\", strokeWidth: 2, stroke: color.GREY, fill: color.LIGHT_GREY, dot: false })),\n gradientIsDisplay(threshold, data, 'forecasted_value') ? (React.createElement(Area, { type: \"monotone\", dataKey: \"forecasted_value\", strokeWidth: 1, stroke: \"url(#splitForecastColorStroke)\", fill: color.TRANSPARENT, activeDot: function (_a) {\n var cx = _a.cx, cy = _a.cy, value = _a.value;\n return !_.isNull(value[1]) ? (React.createElement(\"svg\", { x: cx - 6, y: cy - 6, fill: value[1] > threshold ? color.RED : color.BLUE },\n React.createElement(\"circle\", { cx: \"6\", cy: \"6\", r: \"4\", stroke: \"white\", strokeWidth: 2 }))) : (false);\n }, dot: false })) : (React.createElement(Area, { type: \"monotone\", dataKey: \"forecasted_value\", strokeWidth: 1, stroke: color.BLUE, fill: color.TRANSPARENT, dot: false })),\n React.createElement(Area, { type: \"monotone\", dataKey: \"reference_value\", strokeWidth: 1, stroke: color.PURPLE, fill: color.TRANSPARENT, dot: false }))));\n};\nvar LiveTrafficChartCard = function (_a) {\n var loading = _a.loading, currentPoint = _a.currentPoint, threshold = _a.threshold, data = _a.data, t = _a.t, locale = _a.locale, timezone = _a.timezone, onOpenZoomModal = _a.onOpenZoomModal;\n return (React.createElement(\"div\", { className: \"chart-card__container\" },\n React.createElement(\"div\", { className: \"chart-card__header\" },\n !_.isEmpty(_.filter(data, function (d) { return d.reference_value; })) && (React.createElement(\"div\", { className: \"chart-card__disclaimer--top\" }, t('global.reference_data_label'))),\n onOpenZoomModal && (React.createElement(\"i\", { className: \"material-icons icon--grey\", onClick: onOpenZoomModal }, \"crop_free\"))),\n React.createElement(\"div\", { className: \"chart-card__chart\" },\n React.createElement(LiveTrafficGraph, { data: data, t: t, loading: loading, threshold: threshold, currentPoint: currentPoint, locale: locale, timezone: timezone }))));\n};\nLiveTrafficChartCard.propTypes = {\n loading: PropTypes.bool,\n timezone: PropTypes.string,\n currentPoint: PropTypes.shape({\n time: PropTypes.number,\n value: PropTypes.number,\n completed_value: PropTypes.number,\n forecasted_value: PropTypes.number,\n }),\n data: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n value: PropTypes.number,\n completed_value: PropTypes.number,\n forecasted_value: PropTypes.number,\n })),\n threshold: PropTypes.number,\n locale: PropTypes.string,\n t: PropTypes.func,\n onOpenZoomModal: PropTypes.func,\n};\nexport default LiveTrafficChartCard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport '@src/commons/styles/molecules/banner.scss';\nvar StatusMessage = function (_a) {\n var message = _a.message;\n return (React.createElement(\"div\", { className: \"banner__container banner__container--error\" },\n React.createElement(\"div\", { className: \"banner__icon banner__icon--error\" },\n React.createElement(\"i\", { className: \"material-icons\" }, \"error\")),\n React.createElement(\"div\", { className: \"banner__content banner__content--error\" }, message)));\n};\nStatusMessage.propTypes = {\n message: PropTypes.string,\n};\nexport default StatusMessage;\n","import React, { useCallback, useMemo } from 'react';\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { LiveTrafficGraph } from '@src/live/realtimeStat/chart/LiveTrafficChartCard';\nimport StatusMessage from '@src/live/realtime/StatusMessage';\nimport '@src/commons/styles/molecules/chart-card.scss';\nimport '@src/commons/styles/molecules/chart-tooltip.scss';\nimport '@src/commons/styles/atoms/title.scss';\nvar LiveTrafficChartCard = function (props) {\n var currentPoint = props.currentPoint, data = props.data, loading = props.loading, locale = props.locale, timezone = props.timezone, threshold = props.threshold;\n var t = useTranslation().t;\n var currentPointValue = useMemo(function () { return _.get(currentPoint, 'traffic'); }, [currentPoint]);\n var currentUnitPlural = useCallback(function (currentPointValue) { return t('Live_Labels.traffic.unit_plural', { count: currentPointValue }); }, [t]);\n var currentUnit = useCallback(function (currentPointValue) { return t('Live_Labels.traffic.unit', { count: currentPointValue }); }, [t]);\n var cardSubtitle = useMemo(function () {\n return currentPointValue && currentPointValue !== 1\n ? currentUnitPlural(currentPointValue.toLocaleString(locale))\n : currentUnit(currentPointValue);\n }, [currentPointValue, currentUnitPlural, currentUnit, locale]);\n var noRealtimeData = useMemo(function () { return _.some(data, ['traffic', null]); }, [data]);\n return (React.createElement(\"div\", { className: \"chart-card__container\" },\n !loading && noRealtimeData && (React.createElement(\"div\", { className: \"home-card__no-data\" },\n React.createElement(StatusMessage, { message: t('Live_Labels.INVALID_RT_DATA') }))),\n !loading && !_.isEmpty(data) && !noRealtimeData && (React.createElement(\"div\", { className: \"home-card__subtitle\" }, cardSubtitle)),\n !noRealtimeData && (React.createElement(\"div\", { className: \"home-card__line-chart\" },\n React.createElement(LiveTrafficGraph, { data: data, t: t, threshold: threshold, timezone: timezone, currentPoint: currentPoint, locale: locale, loading: loading })))));\n};\nLiveTrafficChartCard.propTypes = {\n currentPoint: PropTypes.shape({\n time: PropTypes.number,\n value: PropTypes.number,\n }),\n data: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n value: PropTypes.number,\n })),\n loading: PropTypes.bool,\n locale: PropTypes.string,\n timezone: PropTypes.string,\n};\nexport default LiveTrafficChartCard;\n","import { __assign } from \"tslib\";\nimport _ from 'lodash';\nimport moment from 'moment-timezone';\nimport { createSelector } from 'reselect';\nimport { computeAreaSocialDistancing, colorFromThreshold } from '@src/live/realtimeStat/utils';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nimport { getSocialDistancingParameters } from '@src/social_distancing/selectors';\nexport var getterSiteLiveAreas = function (state, props) {\n return state.liveAreas[_.get(props, 'siteId') || _.get(props.match, 'params.siteId')];\n};\nexport var getterCurrentRtId = function (state) { return state.navigation.rtId; };\nexport var getterNavigationFloorId = function (state, props) { return _.get(state.navigation, 'floorId'); };\nexport var getterNavigationSiteId = function (state, props) { return _.get(state.navigation, 'siteId'); };\nexport var getterSiteConfigs = function (state, props) {\n return state.configs[_.get(props, 'siteId') || _.get(props.match, 'params.siteId')];\n};\nexport var getterCurrentSiteLanguage = function (state) {\n return _.get(_.find(_.get(state.sites, 'data'), { uuid: state.navigation.siteId }), 'language');\n};\nexport var getterCurrentSiteTimezone = function (state) {\n return _.get(_.find(_.get(state.sites, 'data'), { uuid: state.navigation.siteId }), 'timezone');\n};\nexport var isSocialDistancingActivated = function (state) {\n return isFeatureActivated('display_social_distancing_table')(state);\n};\nexport var getCurrentFloor = createSelector(function (state) { return state.floors; }, getterNavigationSiteId, getterNavigationFloorId, function (floors, siteId, floorId) { return _.find(_.get(floors[siteId], 'data', []), { uuid: floorId }); });\nexport var selectLiveAreaOnRtIdNavigation = createSelector(getterSiteLiveAreas, getterCurrentRtId, function (liveAreas, rtId) { return _.chain(liveAreas).get('data').find({ rt_id: rtId }).value(); });\nexport var isLiveAreasLoading = createSelector(getterSiteLiveAreas, function (liveAreas) {\n return _.get(liveAreas, 'loading', true);\n});\nexport var selectConfigMaxThreshold = createSelector(getterSiteConfigs, function (config) {\n return !_.get(config, 'loading') && !_.isNull(_.get(config, 'data.max_traffic'))\n ? _.get(config, 'data.max_traffic')\n : Infinity;\n});\nexport var selectIsTrafficTooHigh = createSelector(selectLiveAreaOnRtIdNavigation, selectConfigMaxThreshold, function (liveArea, configThreshold) {\n return _.chain(liveArea).get('liveData.data').last().get('traffic', 0).gt(configThreshold).value();\n});\nexport var selectIsCurrentlyCompleted = createSelector(selectLiveAreaOnRtIdNavigation, function (liveArea) {\n return _.chain(liveArea).get('liveData.data').last().get('is_completed', false).value();\n});\nexport var selectChartForecastedData = createSelector(selectLiveAreaOnRtIdNavigation, getterCurrentSiteTimezone, function (liveArea, timezone) {\n return _.chain(liveArea)\n .get('forecastData.data', [])\n .reject(function (d) {\n return moment(d.time).isBefore(moment().tz(timezone)) ||\n moment(d.time).isAfter(moment().tz(timezone).add(1, 'd').startOf('day'));\n })\n .map(function (d) { return (__assign(__assign({}, d), { traffic: _.round(d.traffic) })); })\n .map(function (d) { return (__assign(__assign({}, d), { forecasted_value: d.traffic, value: null, completed_value: null, time: d.time })); })\n .value();\n});\nexport var selectChartReferencedData = createSelector(selectLiveAreaOnRtIdNavigation, getterCurrentSiteTimezone, function (liveArea, timezone) {\n return _.chain(liveArea)\n .get('referenceData.data', [])\n .map(function (d) { return (__assign(__assign({}, d), { reference_value: _.round(d.traffic), time: d.time })); })\n .reject(function (d) { return moment(d.time).isAfter(moment().tz(timezone).endOf('day')); })\n .value();\n});\nexport var addReferenceDataToBaseData = function (base, reference) {\n var refDict = _.keyBy(_.map(reference, function (r) { return (__assign(__assign({}, r), { time: r.time })); }), 'time');\n var baseDict = _.keyBy(_.map(base, function (b) { return (__assign(__assign({}, b), { time: b.time })); }), 'time');\n var timeValues = _.sortedUniq(_.union(_.map(base, function (o) { return o.time; }), _.map(reference, function (o) { return o.time; })).sort());\n return _.map(timeValues, function (t) { return (__assign(__assign({}, baseDict[t]), { time: t, reference_value: _.get(refDict[t], 'reference_value', 0) })); });\n};\nexport var selectChartRealtimeData = createSelector(selectLiveAreaOnRtIdNavigation, selectChartForecastedData, getterCurrentSiteTimezone, selectChartReferencedData, function (liveArea, forecastChartData, timezone, referenceData) {\n if (referenceData === void 0) { referenceData = []; }\n var allData = _.chain(liveArea)\n .get('liveData.data', [])\n .reject(function (d) { return moment(d.time).isBefore(moment().tz(timezone).startOf('day')); })\n .map(function (d) { return (__assign(__assign({}, d), { traffic: _.round(d.traffic) })); })\n .map(function (d, idx) {\n return _.get(d, 'is_completed', false)\n ? __assign(__assign({}, d), { value: null, completed_value: d.traffic, forecasted_value: null }) : __assign(__assign({}, d), { value: d.traffic, completed_value: null, forecasted_value: null });\n })\n .map(function (d, idx, data) {\n var prevValue = idx !== 0 ? data[idx - 1] : 0;\n var isTransition = (_.isNull(prevValue.value) && !_.isNull(d.value)) ||\n (!_.isNull(prevValue.value) && _.isNull(d.value));\n return isTransition\n ? __assign(__assign({}, d), { value: d.traffic, completed_value: d.traffic, forecasted_value: null }) : d;\n })\n .concat(forecastChartData)\n .value();\n if (!_.isEmpty(referenceData)) {\n return addReferenceDataToBaseData(allData, referenceData);\n }\n return allData;\n});\nexport var selectCurrentPoint = createSelector(selectChartRealtimeData, function (chartData) {\n return _.chain(chartData)\n .reject(function (d) { return !_.isNull(d['forecasted_value']); })\n .last()\n .value();\n});\nexport var selectMapAreas = createSelector(getterNavigationSiteId, getterNavigationFloorId, function (state) { return state.floors; }, getterSiteLiveAreas, function (siteId, floorId, floorsState, liveAreas) {\n return _.chain(floorsState[siteId])\n .get('data', [])\n .find({ uuid: floorId })\n .get('units.areas', [])\n .filter(function (area) { return _.find(_.get(liveAreas, 'data', []), { area: area.uuid }); })\n .filter(function (area, idx, areas) { return (areas.length > 1 ? !area.is_entire_site : true); })\n .value();\n});\nexport var selectMapAreasBasedOnSocialDistancingFeatureFlip = createSelector(getCurrentFloor, getterSiteLiveAreas, isSocialDistancingActivated, getSocialDistancingParameters, function (floor, liveAreas, isSocialDistancingActivated, socialDistancingParameters) {\n var areasWithRealtime = _.chain(_.get(floor, 'units.areas', []))\n .filter(function (area) { return _.find(_.get(liveAreas, 'data', []), { area: area.uuid }); })\n .filter(function (area, idx, areas) { return (areas.length > 1 ? !area.is_entire_site : true); })\n .value();\n if (!isSocialDistancingActivated) {\n return areasWithRealtime;\n }\n var getLiveArea = function (areaId) { return _.find(_.get(liveAreas, 'data', []), { area: areaId }); };\n return _.map(areasWithRealtime, function (area) {\n var liveArea = getLiveArea(area.uuid);\n var currentSocialDistancing = computeAreaSocialDistancing(liveArea, area, 'currentTraffic');\n return __assign(__assign({}, area), { thresholdColor: colorFromThreshold(_.get(socialDistancingParameters, 'social_distancing_red_threshold'), _.get(socialDistancingParameters, 'social_distancing_green_threshold'), currentSocialDistancing) });\n });\n});\n","import { __assign } from \"tslib\";\nimport _ from 'lodash';\nimport { createSelector } from 'reselect';\nimport { getterSiteLiveAreas, selectSiteRealtimeAreas } from '@src/live/realtimeStat/selectors';\nimport { getCurrentSiteId2, getCurrentFloorId2 } from '@src/navigation/selectors';\nimport * as Sentry from '@sentry/react';\nimport { zoneColor } from '@src/commons/floors/sagas';\nimport { linkScaleWithDensity } from '@src/commons/scalesConfigurations/utils';\nexport var selectSiteRealtimeAreasWithDensity = createSelector(getterSiteLiveAreas, selectSiteRealtimeAreas, function (state) { var _a, _b; return (_b = state.configs[(_a = state.navigation) === null || _a === void 0 ? void 0 : _a.siteId]) === null || _b === void 0 ? void 0 : _b.data; }, function (liveAreas, areas, config) {\n var getLiveArea = function (areaId) { return _.find(_.get(liveAreas, 'data', []), { area: areaId }); };\n var computeAreaDensity = function (liveArea, area) {\n if (area.usable_area === 0 || !area.usable_area) {\n Sentry.captureException(new Error('Usable area should not be 0 or Null'), area);\n return null;\n }\n var density = _.get(liveArea, 'currentTraffic', 0) / area.usable_area;\n return density < 0.01 ? '< 0.01' : _.round(density, 2).toString();\n };\n var getDensity = function (liveArea, area) { return _.get(liveArea, 'currentTraffic', 0) / area.usable_area; };\n return _.map(areas, function (area) {\n var _a;\n var liveArea = getLiveArea(area.uuid);\n var density = computeAreaDensity(getLiveArea(area.uuid), area);\n var scaleDensity = getDensity(getLiveArea(area.uuid), area);\n var color = linkScaleWithDensity((_a = config.fruin_scales) === null || _a === void 0 ? void 0 : _a.levels, scaleDensity);\n if ((liveArea === null || liveArea === void 0 ? void 0 : liveArea.currentTraffic) === null || (liveArea === null || liveArea === void 0 ? void 0 : liveArea.currentTraffic) === undefined) {\n return __assign(__assign({}, area), { density: density });\n }\n return __assign(__assign({}, area), { area_uuid: liveArea.area, density: density,\n color: color });\n });\n});\nexport var formatAreasToPolygons = function (areas) {\n var isEntireSite = _.every(areas, function (a) { return !a.selected; });\n return _.map(areas, function (area) { return (__assign(__assign({}, area), { color: area.isInError ? zoneColor.GREY : area === null || area === void 0 ? void 0 : area.color, borderColor: isEntireSite || area.selected ? '#FFF' : area.isInError ? zoneColor.GREY : area === null || area === void 0 ? void 0 : area.color, opacity: area.fillOpacity || 1, hasTooltip: !area.is_entire_site && area.geometry.length > 2, noClick: area.isInError || area.is_entire_site })); });\n};\nexport var getterCurrentFloor = createSelector(function (state) { return state.floors; }, getCurrentSiteId2, getCurrentFloorId2, function (floors, siteId, floorId) { return _.find(_.get(floors[siteId], 'data', []), { uuid: floorId }); });\nexport var selectRealtimeAreasWithDensityForMap = createSelector(getterCurrentFloor, selectSiteRealtimeAreasWithDensity, function (floor, areas) {\n var areasWithRealtime = _.chain(_.get(floor, 'units.areas', []))\n .filter(function (area) { return _.find(areas, function (a) { return ({ a: area.uuid }); }); })\n .filter(function (area, idx, areas) { return (areas.length > 1 ? !area.is_entire_site : true); })\n .value();\n var withScaleColor = areasWithRealtime.map(function (area) {\n var realtimeArea = areas === null || areas === void 0 ? void 0 : areas.find(function (liveArea) { return liveArea.area_uuid === area.uuid; });\n return __assign(__assign(__assign({}, realtimeArea), area), { color: realtimeArea === null || realtimeArea === void 0 ? void 0 : realtimeArea.color });\n });\n return formatAreasToPolygons(withScaleColor);\n});\nexport var selectIsInstantDataAreLoading = createSelector(getterSiteLiveAreas, function (liveAreas) { return _.get(liveAreas, 'rtDataLoading', true) && _.get(liveAreas, 'forecastDataLoading', true); });\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport LiveTrafficChartCard from './LiveTrafficChartCard';\nimport { getterCurrentSiteLanguage, getterCurrentSiteTimezone, selectCurrentPoint, selectConfigMaxThreshold, selectChartRealtimeData, } from '@src/live/realtime/selectors';\nimport { selectIsInstantDataAreLoading } from '@src/live/realtimeStat/density/selectors';\nexport var LiveTrafficChartContainer = function (_a) {\n var currentPoint = _a.currentPoint, formatedData = _a.formatedData, loading = _a.loading, locale = _a.locale, timezone = _a.timezone, threshold = _a.threshold;\n return (React.createElement(LiveTrafficChartCard, { currentPoint: currentPoint, data: formatedData, loading: loading, locale: locale, threshold: threshold, timezone: timezone }));\n};\nLiveTrafficChartContainer.propTypes = {\n currentPoint: PropTypes.shape({\n time: PropTypes.number,\n value: PropTypes.number,\n }),\n formatedData: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n value: PropTypes.number,\n })),\n loading: PropTypes.bool,\n locale: PropTypes.string,\n timezone: PropTypes.string,\n};\nvar mapStateToProps = function (state, props) {\n return {\n currentPoint: selectCurrentPoint(state, props),\n formatedData: selectChartRealtimeData(state, props),\n loading: selectIsInstantDataAreLoading(state, props),\n locale: getterCurrentSiteLanguage(state),\n timezone: getterCurrentSiteTimezone(state),\n threshold: selectConfigMaxThreshold(state, props),\n };\n};\nvar mapDispatchToProps = function () { return ({}); };\nexport default connect(mapStateToProps, mapDispatchToProps)(LiveTrafficChartContainer);\n","import { useCallback, useEffect, useMemo, useRef } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\nimport { getCurrentDayTo } from '@src/navigation/selectors';\nimport { getterCurrentSiteLanguage } from '@src/live/realtime/selectors';\nimport { selectHomePresenceSumLoading, selectHomePresenceSum, selectHomeMeanPresence, selectHomeMeanPresenceLoading, selectHomeD1Presence, selectListMostVisitedSitesLoading, selectListMostVisitedSites, } from '@src/home/selectors';\nimport { switchCardType, setHomeCardSortType } from '@src/home/actions';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nexport var useHomeCard = function (props) {\n var t = useTranslation(['legacy', 'railways']).t;\n var currentDayTo = useSelector(function (state) { return getCurrentDayTo(state, props); });\n var currentDayFrom = useMemo(function () { return moment(currentDayTo).subtract(6, 'days').format('YYYY-MM-DD'); }, [\n currentDayTo,\n ]);\n var homePresenceSumLoading = useSelector(function (state) { return selectHomePresenceSumLoading(state, props); });\n var homeMeanPresenceLoading = useSelector(function (state) { return selectHomeMeanPresenceLoading(state, props); });\n var homePresenceSum = useSelector(function (state) { return selectHomePresenceSum(state, props); });\n var homeMeanPresence = useSelector(function (state) { return selectHomeMeanPresence(state, props); });\n var homeD1Presence = useSelector(function (state) { return selectHomeD1Presence(state, props); });\n var homePresenceData = useMemo(function () { return [\n { name: t('home.yesterday'), value: homeD1Presence },\n { name: t('home.average'), value: homeMeanPresence },\n ]; }, [homeD1Presence, homeMeanPresence, t]);\n var sortDensityLabel = useMemo(function () { return t('pages.home.sort.density', { ns: 'railways' }); }, [t]);\n var sortUnit = useMemo(function () { return t('pages.home.sort.unit', { ns: 'railways' }); }, [t]);\n var sortTrafficLabel = useMemo(function () { return t('pages.home.sort.traffic', { ns: 'railways' }); }, [t]);\n var listMostVisitedSitesLoading = useSelector(function (state) { return selectListMostVisitedSitesLoading(state, props); });\n var listMostVisitedSitesData = useSelector(function (state) { return selectListMostVisitedSites(state, props); });\n var locale = useSelector(function (state) { return getterCurrentSiteLanguage(state); });\n var sortKey = useSelector(function (state) { var _a; return (_a = state === null || state === void 0 ? void 0 : state.home) === null || _a === void 0 ? void 0 : _a.sort; });\n var sortOption = useMemo(function () {\n return sortKey === 'density'\n ? { name: sortDensityLabel + \" \" + sortUnit, id: 'density' }\n : { name: sortTrafficLabel, id: 'traffic' };\n }, [sortTrafficLabel, sortDensityLabel, sortKey, sortUnit]);\n return {\n currentDayFrom: currentDayFrom,\n currentDayTo: currentDayTo,\n homePresenceSumLoading: homePresenceSumLoading,\n homeMeanPresenceLoading: homeMeanPresenceLoading,\n homePresenceSum: homePresenceSum,\n homeMeanPresence: homeMeanPresence,\n homePresenceData: homePresenceData,\n sortOption: sortOption,\n homeD1Presence: homeD1Presence,\n listMostVisitedSitesLoading: listMostVisitedSitesLoading,\n listMostVisitedSitesData: listMostVisitedSitesData,\n locale: locale,\n };\n};\nexport var useYesterdayList = function (props) {\n if (props === void 0) { props = {}; }\n var currentDayTo = useMemo(function () { return moment().subtract(1, 'days').format('YYYY-MM-DD'); }, []);\n var currentDayFrom = useMemo(function () { return moment().subtract(1, 'days').format('YYYY-MM-DD'); }, []);\n var listMostVisitedSitesLoading = useSelector(function (state) { var _a, _b; return (_b = (_a = state === null || state === void 0 ? void 0 : state.home) === null || _a === void 0 ? void 0 : _a.yesterdayMostVisitedSites) === null || _b === void 0 ? void 0 : _b.loading; });\n var listMostVisitedSitesData = useSelector(function (state) { var _a, _b; return (_b = (_a = state === null || state === void 0 ? void 0 : state.home) === null || _a === void 0 ? void 0 : _a.yesterdayMostVisitedSites) === null || _b === void 0 ? void 0 : _b.data; });\n var locale = useSelector(function (state) { return getterCurrentSiteLanguage(state); });\n return {\n listMostVisitedSitesLoading: listMostVisitedSitesLoading,\n listMostVisitedSitesData: listMostVisitedSitesData,\n locale: locale,\n currentDayTo: currentDayTo,\n currentDayFrom: currentDayFrom,\n };\n};\nexport var useAllSitesCards = function () {\n var isNow = useSelector(function (state) { var _a; return (_a = state === null || state === void 0 ? void 0 : state.home) === null || _a === void 0 ? void 0 : _a.isNow; });\n var isSwitchActivated = useSelector(function (state) { return isFeatureActivated('home_yesterday_today_card')(state); });\n return {\n isNow: isNow,\n isSwitchActivated: isSwitchActivated,\n };\n};\nexport var useSortOption = function () {\n var dispatch = useDispatch();\n return useCallback(function (option) {\n return dispatch(setHomeCardSortType({ key: option.id }));\n }, [dispatch]);\n};\nexport var useSwitchCard = function () {\n var dispatch = useDispatch();\n return useCallback(function (isNow) {\n dispatch(switchCardType({ isNow: isNow }));\n }, [dispatch]);\n};\nexport function useInterval(callback, delay) {\n var savedCallback = useRef();\n useEffect(function () {\n savedCallback.current = callback;\n }, []);\n useEffect(function () {\n function tick() {\n var _a;\n (_a = savedCallback.current) === null || _a === void 0 ? void 0 : _a.call(savedCallback);\n }\n var id = setInterval(tick, delay);\n return function () { return clearInterval(id); };\n }, [delay]);\n}\n","import React from 'react';\nimport ContentLoader from 'react-content-loader';\nvar AnimatedGradientLoader = function () { return (React.createElement(\"div\", { style: { height: '100%' } },\n React.createElement(ContentLoader, { style: { width: '100%', height: '100%' }, speed: 2, primaryColor: \"#f3f3f3\", secondaryColor: \"#ecebeb\" },\n React.createElement(\"rect\", { x: \"10\", y: \"10\", rx: \"5\", ry: \"5\", style: { height: 'calc(100% - 20px)', width: 'calc(100% - 20px)' } })))); };\nexport default AnimatedGradientLoader;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport { useTranslation } from 'react-i18next';\nimport '@src/commons/styles/molecules/card-graph.scss';\nimport '@src/commons/styles/molecules/chart-no-data.scss';\nvar ChartNoData = function (_a) {\n var title = _a.title, from = _a.from, to = _a.to;\n var t = useTranslation().t;\n var currentDayFrom = useMemo(function () { return moment(from, 'YYYY-MM-DD').format('L'); }, [from]);\n var currentDayTo = useMemo(function () { return moment(to, 'YYYY-MM-DD').format('L'); }, [to]);\n return (React.createElement(\"div\", { className: \"chart-card__container\" },\n React.createElement(\"div\", { className: \"chart-card__header\" },\n React.createElement(\"div\", { className: \"chart-card__title title\" }, title)),\n React.createElement(\"div\", { className: \"chart-no-data\" },\n React.createElement(\"div\", null, t('Chart_No_Data.title')),\n React.createElement(\"div\", null,\n t('Chart_No_Data.from'),\n \" \",\n currentDayFrom,\n \" \",\n t('Chart_No_Data.to'),\n \" \",\n currentDayTo))));\n};\nChartNoData.propTypes = {\n title: PropTypes.string,\n from: PropTypes.string,\n to: PropTypes.string,\n};\nexport default ChartNoData;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport { Bar, BarChart, Cell, ResponsiveContainer, XAxis, YAxis } from 'recharts';\nimport '@src/commons/styles/molecules/chart-card.scss';\nimport '@src/commons/styles/atoms/title.scss';\nimport '@src/commons/styles/atoms/icon.scss';\nimport { useTranslation } from 'react-i18next';\nvar colors = ['#0088CE', '#916FB5'];\nvar getPath = function (x, y, width) { return \"m\" + x + \",\" + y + \"\\n h\" + width + \"\\n q10,0 10,10\\n v10\\n q0,10 -10,10\\n h-\" + width + \"\\n z\"; };\nvar RectangleBar = function (_a) {\n var _b;\n var fill = _a.fill, x = _a.x, y = _a.y, width = _a.width, height = _a.height, payload = _a.payload, locale = _a.locale;\n var path = useMemo(function () { return getPath(x - 80, y + height / 2 - 20, width); }, [x, y, width]);\n var t = useTranslation('common').t;\n var value = (_b = payload === null || payload === void 0 ? void 0 : payload.value) !== null && _b !== void 0 ? _b : 0;\n var clientsCount = useMemo(function () { return t('client_count', { count: value }); }, [t, value]);\n return (React.createElement(\"g\", null,\n React.createElement(\"path\", { d: path, fill: fill, stroke: \"none\" }),\n React.createElement(\"text\", { x: \"6%\", y: y + height - 70, fill: \"#666666\" }, payload.name),\n React.createElement(\"text\", { x: \"65%\", y: y + height - 70, fill: \"#999999\" }, clientsCount)));\n};\nexport var HistoricalBarChart = function (props) {\n var data = props.data, locale = props.locale;\n return (React.createElement(ResponsiveContainer, { width: \"100%\", height: \"100%\" },\n React.createElement(BarChart, { data: data, layout: \"vertical\", margin: { top: 15, right: 50, left: 100, bottom: 0 } },\n React.createElement(XAxis, { type: \"number\", axisLine: false, tickSize: 0, tickCount: 0, tickLine: false }),\n React.createElement(YAxis, { hide: true, type: \"category\", dataKey: \"name\", dx: -20, dy: -5, axisLine: false, tickSize: 0, tickLine: false, tick: { fontSize: '0.9rem', fill: '#666666' } }),\n React.createElement(Bar, { dataKey: \"value\", shape: React.createElement(RectangleBar, { locale: locale }) }, _.map(data, function (entry, index) { return (React.createElement(Cell, { key: \"cell-\" + entry.name, fill: colors[index % 2] })); })))));\n};\nHistoricalBarChart.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string,\n value: PropTypes.number,\n })),\n locale: PropTypes.string,\n};\nexport default HistoricalBarChart;\n","import PropTypes from 'prop-types';\nimport React, { Fragment } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport _ from 'lodash';\nimport { useHomeCard } from '@src/home/hooks';\nimport AnimatedGradientLoader from '@src/commons/Loader/AnimatedGradientLoader';\nimport ChartNoData from '@src/commons/ChartNoData';\nimport HistoricalBarChart from '@src/commons/HistoricalBarChart';\nexport var HistoricalChartContainer = function (props) {\n var t = useTranslation().t;\n var _a = useHomeCard(props), currentDayFrom = _a.currentDayFrom, currentDayTo = _a.currentDayTo, homePresenceSumLoading = _a.homePresenceSumLoading, homeMeanPresenceLoading = _a.homeMeanPresenceLoading, homePresenceData = _a.homePresenceData, homePresenceSum = _a.homePresenceSum, homeMeanPresence = _a.homeMeanPresence, locale = _a.locale;\n return (React.createElement(Fragment, null, homePresenceSumLoading && homeMeanPresenceLoading ? (React.createElement(AnimatedGradientLoader, null)) : !homePresenceSum && !homeMeanPresence ? (React.createElement(ChartNoData, { from: currentDayFrom, to: currentDayTo, title: t('home.average') })) : (_.isFinite(homePresenceSum) &&\n _.isFinite(homeMeanPresence) && React.createElement(HistoricalBarChart, { data: homePresenceData, locale: locale }))));\n};\nHistoricalChartContainer.propTypes = {\n homePresenceSumLoading: PropTypes.bool,\n homeMeanPresenceLoading: PropTypes.bool,\n};\nexport default HistoricalChartContainer;\n","export default __webpack_public_path__ + \"public/up.svg\";","export default __webpack_public_path__ + \"public/down.svg\";","export default __webpack_public_path__ + \"public/equals.svg\";","import React, { Fragment, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { map } from 'ramda';\nimport { useTranslation } from 'react-i18next';\nimport clsx from 'clsx';\nimport AnimatedGradientLoader from '@src/commons/Loader/AnimatedGradientLoader';\nimport ChartNoData from '@src/commons/ChartNoData';\nimport up from '@src/social_distancing/social_distancing_assistant/social_distancing_table/assets/up.svg';\nimport down from '@src/social_distancing/social_distancing_assistant/social_distancing_table/assets/down.svg';\nimport equals from '@src/social_distancing/social_distancing_assistant/social_distancing_table/assets/equals.svg';\nimport '@src/commons/styles/organisms/home-card.scss';\nexport var ListMostVisitedSites = function (props) {\n var t = useTranslation(['legacy', 'common', 'railways']).t;\n var handleFlipCardLiveArea = props.handleFlipCardLiveArea, listMostVisitedSitesLoading = props.listMostVisitedSitesLoading, listMostVisitedSitesData = props.listMostVisitedSitesData, currentDayFrom = props.currentDayFrom, currentDayTo = props.currentDayTo, isNow = props.isNow;\n var title = useMemo(function () { return t('home.most_visited_sites'); }, [t]);\n var density = useMemo(function () { return t('density', { ns: 'common' }); }, [t]);\n var sortUnit = useMemo(function () { return t('pages.home.sort.unit', { ns: 'railways' }); }, [t]);\n var clientsCount = useCallback(function (count) { return t('Live_Labels.traffic.unit', { count: count, ns: 'legacy' }); }, [t]);\n var listItemClass = clsx({ 'home-card__list-item-density': isNow }, { 'home-card__list-item': !isNow });\n return (React.createElement(Fragment, null,\n listMostVisitedSitesLoading && React.createElement(AnimatedGradientLoader, null),\n !listMostVisitedSitesLoading && !listMostVisitedSitesData && (React.createElement(ChartNoData, { from: currentDayFrom, to: currentDayTo, title: title })),\n !listMostVisitedSitesLoading && listMostVisitedSitesData && (React.createElement(\"div\", { className: \"home-card__list-table\" }, map(function (item, index) {\n var _a, _b;\n return (React.createElement(\"div\", { className: listItemClass, key: item.site_name, onClick: function () { return handleFlipCardLiveArea(item.site_uuid); } }, isNow ? (React.createElement(Fragment, null,\n React.createElement(\"div\", null,\n React.createElement(\"div\", { className: \"home-card__item-title\" }, item.display_name),\n React.createElement(\"div\", { className: \"home-card__item-title\" }, clientsCount((_a = item === null || item === void 0 ? void 0 : item.traffic) !== null && _a !== void 0 ? _a : 0))),\n React.createElement(\"div\", null,\n React.createElement(\"div\", { className: \"home-card__item-title-density\" },\n density,\n \" \",\n sortUnit),\n React.createElement(\"div\", { className: \"home-card__list-item-density-title\" },\n item.density,\n React.createElement(\"div\", null, {\n error: (React.createElement(\"div\", { className: \"socdist-list-item__trend home-card__list-item-icon\" }, \"-\")),\n up: (React.createElement(\"img\", { className: \"socdist-list-item__trend home-card__list-item-icon\", src: up })),\n down: (React.createElement(\"img\", { className: \"socdist-list-item__trend home-card__list-item-icon\", src: down })),\n equals: (React.createElement(\"img\", { className: \"socdist-list-item__trend home-card__list-item-icon\", src: equals })),\n }[item.trending]))))) : (React.createElement(Fragment, null,\n React.createElement(\"div\", { className: \"home-card__item-title\" }, item.display_name),\n React.createElement(\"div\", { className: \"home-card__item-title\" }, clientsCount((_b = item === null || item === void 0 ? void 0 : item.traffic) !== null && _b !== void 0 ? _b : 0))))));\n }, listMostVisitedSitesData)))));\n};\nListMostVisitedSites.propTypes = {\n handleFlipCardLiveArea: PropTypes.func,\n listMostVisitedSitesLoading: PropTypes.bool,\n listMostVisitedSitesData: PropTypes.arrayOf(PropTypes.shape({\n site_name: PropTypes.string,\n traffic: PropTypes.string,\n })),\n};\nexport default ListMostVisitedSites;\n","import { __assign, __extends, __rest } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nvar ClickOutside = (function (_super) {\n __extends(ClickOutside, _super);\n function ClickOutside(props) {\n var _this = _super.call(this, props) || this;\n _this.getContainer = _this.getContainer.bind(_this);\n _this.handle = _this.handle.bind(_this);\n _this.isTouch = false;\n return _this;\n }\n ClickOutside.prototype.componentDidMount = function () {\n window.document.addEventListener('touchend', this.handle, true);\n window.document.addEventListener('click', this.handle, true);\n };\n ClickOutside.prototype.componentWillUnmount = function () {\n window.document.removeEventListener('touchend', this.handle, true);\n window.document.removeEventListener('click', this.handle, true);\n };\n ClickOutside.prototype.getContainer = function (ref) {\n this.container = ref;\n };\n ClickOutside.prototype.handle = function (e) {\n if (e.type === 'touchend')\n this.isTouch = true;\n if (e.type === 'click' && this.isTouch)\n return;\n var onClickOutside = this.props.onClickOutside;\n var el = this.container;\n if (el && !el.contains(e.target))\n onClickOutside(e);\n };\n ClickOutside.prototype.render = function () {\n var _a = this.props, children = _a.children, onClickOutside = _a.onClickOutside, props = __rest(_a, [\"children\", \"onClickOutside\"]);\n return (React.createElement(\"div\", __assign({}, props, { ref: this.getContainer }), children));\n };\n return ClickOutside;\n}(Component));\nexport default ClickOutside;\nClickOutside.propTypes = {\n onClickOutside: PropTypes.func.isRequired,\n children: PropTypes.any,\n};\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport ClickOutside from '@src/commons/topBar/ClickOutside';\nimport '@src/commons/styles/molecules/sort-button.scss';\nvar SortButton = (function (_super) {\n __extends(SortButton, _super);\n function SortButton(props) {\n var _this = _super.call(this, props) || this;\n _this.handleOpenSort = _this.handleOpenSort.bind(_this);\n _this.handleSortChange = _this.handleSortChange.bind(_this);\n _this.state = {\n isOpen: false,\n };\n return _this;\n }\n SortButton.prototype.handleOpenSort = function (isOpen) {\n this.setState({ isOpen: isOpen });\n };\n SortButton.prototype.handleSortChange = function (e, selectedOption) {\n this.props.onChange(selectedOption);\n this.setState({ isOpen: false });\n e.stopPropagation();\n e.preventDefault();\n };\n SortButton.prototype.render = function () {\n var _this = this;\n var _a = this.props, options = _a.options, currentOption = _a.currentOption, title = _a.title;\n var isOpen = this.state.isOpen;\n return (React.createElement(ClickOutside, { onClickOutside: function () { return _this.handleOpenSort(false); } },\n React.createElement(\"div\", { className: \"sort-btn__header\" },\n React.createElement(\"div\", { className: isOpen ? 'sort-btn__content--open sort-btn__content' : 'sort-btn__content', onClick: function () { return _this.handleOpenSort(!isOpen); } },\n React.createElement(\"div\", { className: \"sort-btn__title\" },\n React.createElement(\"span\", { style: { fontWeight: 'bold' } },\n title,\n \" :\"),\n \" \",\n currentOption.name),\n React.createElement(\"i\", { className: \"material-icons\" }, isOpen ? 'arrow_drop_up' : 'arrow_drop_down')),\n isOpen && (React.createElement(\"div\", { className: \"sort-btn__list\" }, _.map(options, function (option) { return (React.createElement(\"div\", { onClick: function (e) { return _this.handleSortChange(e, option); }, key: option.id, className: \"sort-btn__item\" }, option.name)); }))))));\n };\n return SortButton;\n}(Component));\nexport { SortButton };\nSortButton.propTypes = {\n title: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.shape({ id: PropTypes.string, name: PropTypes.string })),\n onChange: PropTypes.func,\n currentOption: PropTypes.shape({ id: PropTypes.string, name: PropTypes.string }),\n};\nexport default SortButton;\n","import { __assign } from \"tslib\";\nimport React, { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport ListMostVisitedSites from '@src/home/graphs/ListMostVisitedSites';\nimport { useAllSitesCards, useHomeCard, useSwitchCard, useYesterdayList, useSortOption, } from '@src/home/hooks';\nimport SortButton from '@src/commons/SortButton';\nexport var CardAllSites = function (props) {\n var t = useTranslation(['home', 'railways']).t;\n var isZoomed = props.isZoomed, setZoom = props.setZoom, rtApiKey = props.rtApiKey, siteId = props.siteId, handleFlipCardLiveArea = props.handleFlipCardLiveArea, handleFlipCardAllSites = props.handleFlipCardAllSites;\n var _a = useAllSitesCards(), isNow = _a.isNow, isSwitchActivated = _a.isSwitchActivated;\n var listTitle = useMemo(function () { return t('most_visited_sites', { ns: 'home' }); }, [t]);\n var nowLabel = useMemo(function () { return t('now', { ns: 'home' }); }, [t]);\n var yesterdayLabel = useMemo(function () { return t('yesterday', { ns: 'home' }); }, [t]);\n var zoomIcon = useMemo(function () { return (isZoomed ? React.createElement(\"i\", { className: \"material-icons\" }, \"zoom_out\") : React.createElement(\"i\", { className: \"material-icons\" }, \"zoom_in\")); }, [isZoomed]);\n var setOption = useSortOption();\n var nowListProps = useHomeCard(props);\n var yesterdayListProps = useYesterdayList({ rtApiKey: props === null || props === void 0 ? void 0 : props.rtApiKey });\n var sortTitle = useMemo(function () { return t('pages.home.sort.title', { ns: 'railways' }); }, [t]);\n var sortUnit = useMemo(function () { return t('pages.home.sort.unit', { ns: 'railways' }); }, [t]);\n var sortDensityLabel = useMemo(function () { return t('pages.home.sort.density', { ns: 'railways' }); }, [t]);\n var sortTrafficLabel = useMemo(function () { return t('pages.home.sort.traffic', { ns: 'railways' }); }, [t]);\n var options = useMemo(function () { return [\n { id: 'density', name: sortDensityLabel + \" \" + sortUnit },\n { id: 'traffic', name: sortTrafficLabel },\n ]; }, [sortTrafficLabel, sortDensityLabel, sortUnit]);\n var switchCard = useSwitchCard();\n var setIsNowCard = useCallback(function () {\n if (!isNow) {\n switchCard(true);\n }\n }, [isNow, switchCard]);\n var setIsYesterdayCard = useCallback(function () {\n if (isNow) {\n switchCard(false);\n }\n }, [isNow, switchCard]);\n return (React.createElement(\"div\", { className: \"home-card\" },\n React.createElement(\"div\", { className: \"home-card__header\" },\n React.createElement(\"div\", { className: \"home-card__back\", onClick: handleFlipCardAllSites },\n React.createElement(\"i\", { className: \"material-icons\" }, \"keyboard_backspace\")),\n React.createElement(\"div\", { className: \"home-card__list-title\" }, listTitle),\n React.createElement(\"div\", { className: \"home-card__zoom\", onClick: setZoom }, zoomIcon)),\n isSwitchActivated && (React.createElement(\"div\", { className: \"home-card__list-type-select\" },\n React.createElement(\"div\", { onClick: setIsNowCard, className: isNow && 'home-card__bottom-border', style: { marginRight: 15, padding: 5, cursor: 'pointer' } }, nowLabel),\n React.createElement(\"div\", { onClick: !nowListProps.listMostVisitedSitesLoading && setIsYesterdayCard, style: { padding: 5, cursor: !nowListProps.listMostVisitedSitesLoading && 'pointer' }, className: !isNow && 'home-card__bottom-border' }, yesterdayLabel))),\n isNow && !nowListProps.listMostVisitedSitesLoading && (React.createElement(\"div\", { className: \"home-card__sort-button\" },\n React.createElement(SortButton, { title: sortTitle, options: options, currentOption: nowListProps.sortOption, onChange: setOption }))),\n React.createElement(\"div\", null, isNow ? (React.createElement(ListMostVisitedSites, __assign({ rtApiKey: rtApiKey, siteId: siteId, isNow: isNow, handleFlipCardLiveArea: handleFlipCardLiveArea }, nowListProps))) : (React.createElement(ListMostVisitedSites, __assign({ rtApiKey: rtApiKey, siteId: siteId, handleFlipCardLiveArea: handleFlipCardLiveArea }, yesterdayListProps))))));\n};\nCardAllSites.propTypes = {\n handleFlipCardLiveArea: PropTypes.func,\n isZoomed: PropTypes.bool,\n setZoom: PropTypes.func,\n rtApiKey: PropTypes.string,\n siteId: PropTypes.string,\n currentSite: PropTypes.shape({\n uuid: PropTypes.string,\n display_name: PropTypes.string,\n }),\n currentPoint: PropTypes.shape({\n time: PropTypes.number,\n value: PropTypes.number,\n }),\n handleFlipCardAllSites: PropTypes.func,\n};\nexport default CardAllSites;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { isEmpty } from 'ramda';\nimport { Link } from 'react-router-dom';\nimport _ from 'lodash';\nimport LiveTrafficChartContainer from '@src/home/graphs/LiveTrafficChartContainer';\nimport HistoricalChartContainer from '@src/home/graphs/HistoricalChartContainer';\nexport var CardLiveSite = function (props) {\n var t = useTranslation().t;\n var currentSite = props.currentSite, setZoom = props.setZoom, isZoomed = props.isZoomed, siteId = props.siteId, liveAreas = props.liveAreas, handleFlipCardAllSites = props.handleFlipCardAllSites, currentLiveArea = props.currentLiveArea;\n var linkLiveLabel = useMemo(function () { return t('home.live_label'); }, [t]);\n var linkReportingLabel = useMemo(function () { return t('home.reporting_label'); }, [t]);\n var zoomIcon = useMemo(function () { return (isZoomed ? React.createElement(\"i\", { className: \"material-icons\" }, \"zoom_out\") : React.createElement(\"i\", { className: \"material-icons\" }, \"zoom_in\")); }, [isZoomed]);\n var dwellTimeLabel = t('Live_Labels.dwelltime.title');\n var dwellTimeValue = _.round(_.get(_.last(_.get(currentLiveArea, 'liveData.data')), 'dwelltime') / 60);\n var dwellTimeValueLabel = dwellTimeValue < 2\n ? \"\\n \" + t('Live_Labels.dwelltime.less_than') + \"\\n 2 \" + t('Live_Labels.dwelltime.unit') + \"\\n \"\n : t('Live_Labels.dwelltime.unit', { count: isNaN(dwellTimeValue) ? 0 : dwellTimeValue });\n return (React.createElement(\"div\", { className: \"home-card\" },\n React.createElement(\"div\", { className: \"home-card__header\" },\n React.createElement(\"div\", { className: \"home-card__back\", onClick: handleFlipCardAllSites },\n React.createElement(\"i\", { className: \"material-icons\" }, \"keyboard_backspace\")),\n React.createElement(\"div\", { className: \"home-card__title\" }, currentSite.display_name),\n React.createElement(\"div\", { className: \"home-card__zoom\", onClick: setZoom }, zoomIcon)),\n React.createElement(\"div\", null,\n React.createElement(Link, { to: \"/v2/live/\" + currentSite.uuid, className: \"home-card__link\" },\n React.createElement(\"div\", { className: \"home-card__link-label\" }, linkLiveLabel),\n React.createElement(\"i\", { className: \"material-icons\" }, \"keyboard_arrow_right\")),\n React.createElement(\"div\", { className: \"home-card__chart\" }, !isEmpty(liveAreas) && React.createElement(LiveTrafficChartContainer, { siteId: siteId })),\n React.createElement(\"div\", { className: \"home-card_dwelltime\" },\n React.createElement(\"div\", { className: \"home-card_dwelltime-label\" }, dwellTimeLabel),\n React.createElement(\"div\", { className: \"home-card__link-label\" }, dwellTimeValueLabel)),\n React.createElement(Link, { to: \"/v2/reporting/\" + currentSite.uuid, className: \"home-card__link\" },\n React.createElement(\"div\", { className: \"home-card__link-label\" }, linkReportingLabel),\n React.createElement(\"i\", { className: \"material-icons\" }, \"keyboard_arrow_right\")),\n React.createElement(\"div\", { className: \"home-card__bar-chart\" },\n React.createElement(HistoricalChartContainer, { siteId: siteId })))));\n};\nCardLiveSite.propTypes = {\n currentSite: PropTypes.shape({\n uuid: PropTypes.string,\n display_name: PropTypes.string,\n }),\n currentLiveArea: PropTypes.shape({\n liveData: PropTypes.shape({\n data: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n traffic: PropTypes.number,\n dwelltime: PropTypes.number,\n })),\n }),\n }),\n siteId: PropTypes.string,\n handleFlipCardAllSites: PropTypes.func,\n liveAreas: PropTypes.arrayOf(PropTypes.shape({\n liveData: PropTypes.shape({\n data: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n traffic: PropTypes.number,\n dwelltime: PropTypes.number,\n })),\n }),\n })),\n isZoomed: PropTypes.bool,\n setZoom: PropTypes.func,\n};\nexport default CardLiveSite;\n","import { __read } from \"tslib\";\nimport React, { useCallback, useEffect, useState, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { path } from 'ramda';\nimport { Link, withRouter } from 'react-router-dom';\nimport _ from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { setNavigation } from '@src/navigation/actions';\nimport { fetchRealtimeStats } from '@src/live/realtime/actions';\nimport { setCurrentSite } from '@src/commons/sites/actions';\nimport { initHomeCard, mostVisitedSitesPolling } from '@src/home/actions';\nimport { getAllLiveAreas } from '@src/commons/floors/selectors';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nimport { getSite } from '@src/selectors';\nimport { selectCurrentArea } from '@src/reporting/selectors';\nimport { getLiveAreaFromAreaId } from '@src/commons/floors/selectors';\nimport LiveTrafficChartContainer from '@src/home/graphs/LiveTrafficChartContainer';\nimport HistoricalChartContainer from '@src/home/graphs/HistoricalChartContainer';\nimport CardAllSites from '@src/home/cards/CardAllSites';\nimport CardLiveSite from '@src/home/cards/CardLiveSite';\nimport { useInterval } from '@src/home/hooks';\nimport '@src/commons/styles/organisms/home-card.scss';\nexport var HomeCard = function (props) {\n var currentSite = props.currentSite, changeZoom = props.changeZoom, isZoomed = props.isZoomed, liveAreas = props.liveAreas, currentSiteId = props.currentSiteId, currentPoint = props.currentPoint, initHomeCard = props.initHomeCard, history = props.history, isHomeMostVisitedSitesActivated = props.isHomeMostVisitedSitesActivated, onSiteSelected = props.onSiteSelected, rtApiKey = props.rtApiKey, pollMostVisitedSites = props.pollMostVisitedSites, currentLiveArea = props.currentLiveArea;\n var t = useTranslation().t;\n var setZoom = useCallback(function () { return changeZoom(!isZoomed); }, [isZoomed, changeZoom]);\n var _a = __read(useState(false), 2), isAllSites = _a[0], setIsAllSites = _a[1];\n var _b = __read(useState(true), 2), isLiveSite = _b[0], setIsLiveSite = _b[1];\n var handleFlipCardAllSites = function () {\n setIsAllSites(!isAllSites);\n setIsLiveSite(!isLiveSite);\n };\n var handleFlipCardLiveArea = function (siteId) {\n onSiteSelected(siteId, history);\n setIsAllSites(false);\n setIsLiveSite(true);\n };\n useEffect(function () {\n initHomeCard({ section: '' }, history);\n }, []);\n useInterval(pollMostVisitedSites, 120000);\n return isHomeMostVisitedSitesActivated ? (React.createElement(Fragment, null,\n isAllSites && (React.createElement(CardAllSites, { currentPoint: currentPoint, currentSite: currentSite, handleFlipCardAllSites: handleFlipCardAllSites, handleFlipCardLiveArea: handleFlipCardLiveArea, isZoomed: isZoomed, setZoom: setZoom, rtApiKey: rtApiKey, siteId: currentSiteId })),\n isLiveSite && (React.createElement(CardLiveSite, { currentSite: currentSite, handleFlipCardAllSites: handleFlipCardAllSites, liveAreas: liveAreas, isZoomed: isZoomed, setZoom: setZoom, currentLiveArea: currentLiveArea, siteId: currentSiteId })))) : (React.createElement(\"div\", { className: \"home-card\" },\n React.createElement(\"div\", { className: \"home-card__header\" },\n React.createElement(\"div\", { className: \"home-card__title\" }, currentSite.display_name),\n React.createElement(\"div\", { className: \"home-card__zoom\", onClick: setZoom }, isZoomed ? React.createElement(\"i\", { className: \"material-icons\" }, \"zoom_out\") : React.createElement(\"i\", { className: \"material-icons\" }, \"zoom_in\"))),\n React.createElement(\"div\", null,\n React.createElement(Link, { to: \"/v2/live/\" + currentSite.uuid, className: \"home-card__link\" },\n React.createElement(\"div\", { className: \"home-card__link-label\" }, t('home.live_label')),\n React.createElement(\"i\", { className: \"material-icons\" }, \"keyboard_arrow_right\")),\n React.createElement(\"div\", { className: \"home-card__chart\" }, !_.isEmpty(liveAreas) && React.createElement(LiveTrafficChartContainer, { siteId: currentSiteId })),\n React.createElement(Link, { to: \"/v2/reporting/\" + currentSite.uuid, className: \"home-card__link\" },\n React.createElement(\"div\", { className: \"home-card__link-label\" }, t('home.reporting_label')),\n React.createElement(\"i\", { className: \"material-icons\" }, \"keyboard_arrow_right\")),\n React.createElement(\"div\", { className: \"home-card__bar-chart\" },\n React.createElement(HistoricalChartContainer, { siteId: currentSiteId })))));\n};\nHomeCard.propTypes = {\n currentPoint: PropTypes.shape({\n time: PropTypes.number,\n value: PropTypes.number,\n }),\n currentSite: PropTypes.shape({\n uuid: PropTypes.string,\n display_name: PropTypes.string,\n }),\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n currentLiveArea: PropTypes.shape({\n liveData: PropTypes.shape({\n data: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n traffic: PropTypes.number,\n dwelltime: PropTypes.number,\n })),\n }),\n }),\n pollMostVisitedSites: PropTypes.func,\n initHomeCard: PropTypes.func,\n onSiteSelected: PropTypes.func,\n isZoomed: PropTypes.bool,\n isHomeMostVisitedSitesActivated: PropTypes.bool,\n rtApiKey: PropTypes.string,\n changeZoom: PropTypes.func,\n currentSiteId: PropTypes.string,\n liveAreas: PropTypes.arrayOf(PropTypes.shape({\n liveData: PropTypes.shape({\n data: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n traffic: PropTypes.number,\n dwelltime: PropTypes.number,\n })),\n }),\n })),\n};\nexport var mapStateToProps = function (state, props) {\n var _a, _b, _c, _d;\n var currentSiteId = path(['params', 'siteId'], props.match);\n var currentSite = getSite(currentSiteId)(state);\n var rtApiKey = path(['rt_api_key'], currentSite);\n var currentPoint = (_d = (_c = (_b = (_a = state.home) === null || _a === void 0 ? void 0 : _a[rtApiKey]) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.find(function (site) { return site.site_uuid === currentSiteId; })) === null || _d === void 0 ? void 0 : _d.stats;\n var currentArea = selectCurrentArea(state, props);\n var currentLiveArea = getLiveAreaFromAreaId(currentSiteId, _.get(currentArea, 'uuid', null))(state);\n return {\n currentSiteId: currentSiteId,\n currentPoint: currentPoint,\n liveAreas: getAllLiveAreas(currentSiteId)(state),\n isHomeMostVisitedSitesActivated: isFeatureActivated('home_most_visited_sites')(state),\n rtApiKey: rtApiKey,\n currentLiveArea: currentLiveArea,\n };\n};\nexport var mapDispatchToProps = function (dispatch) { return ({\n initHomeCard: function (params, history) {\n dispatch(setNavigation(params));\n dispatch(fetchRealtimeStats(history));\n dispatch(initHomeCard(history));\n },\n pollMostVisitedSites: function () {\n dispatch(mostVisitedSitesPolling());\n },\n onSiteSelected: function (siteId, history) {\n dispatch(setCurrentSite(siteId, history));\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(HomeCard));\n","import { __read } from \"tslib\";\nimport React, { useCallback, useState } from 'react';\nimport '@src/commons/styles/organisms/accordion.scss';\nexport var Accordion = function (_a) {\n var children = _a.children;\n return React.createElement(\"div\", { className: \"accordion\" }, children);\n};\nvar AccordionSummary = function (_a) {\n var label = _a.label, open = _a.open, handleClick = _a.handleClick;\n return (React.createElement(\"div\", { className: \"accordion_summary\", onClick: handleClick },\n React.createElement(\"div\", null, label),\n React.createElement(\"i\", { className: \"material-icons\" }, open ? 'arrow_drop_up' : 'arrow_drop_down')));\n};\nexport var AccordionItem = function (_a) {\n var children = _a.children, label = _a.label, defaultOpened = _a.defaultOpened;\n var _b = __read(useState(!!defaultOpened), 2), active = _b[0], setActive = _b[1];\n var onItemClick = useCallback(function () {\n setActive(!active);\n }, [active]);\n return (React.createElement(\"div\", null,\n React.createElement(AccordionSummary, { handleClick: onItemClick, open: active, label: label }),\n active ? React.createElement(\"div\", { className: \"accordion_item\" }, children) : null));\n};\n","import React from 'react';\nimport '@src/commons/styles/molecules/scale-tooltip.scss';\nexport var ScalesTooltip = function (_a) {\n var scales = _a.scales;\n return (React.createElement(\"div\", { className: \"scales-info-container\" }, scales.map(function (_a) {\n var color = _a.color, label = _a.label;\n return (React.createElement(\"div\", { className: \"scales-info\", key: color },\n React.createElement(\"div\", { className: \"circle\", style: { backgroundColor: color } }),\n React.createElement(\"div\", null, label)));\n })));\n};\n","import React, { useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport { ScalesTooltip } from '@src/commons/ScalesTooltip';\nimport { AccordionItem } from '@src/commons/Accordion';\nimport { useTranslation } from 'react-i18next';\nvar ScalesInformations = function () {\n var t = useTranslation('common').t;\n var scales = useSelector(function (state) {\n var _a, _b, _c, _d;\n var site = (_a = state === null || state === void 0 ? void 0 : state.navigation) === null || _a === void 0 ? void 0 : _a.siteId;\n if (!site) {\n return {\n scales: null,\n };\n }\n var scales = (_d = (_c = (_b = state === null || state === void 0 ? void 0 : state.configs) === null || _b === void 0 ? void 0 : _b[site]) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.fruin_scales;\n return {\n scales: scales,\n };\n }).scales;\n var densityLabel = useMemo(function () { return t('density'); }, [t]);\n return (React.createElement(AccordionItem, { label: densityLabel }, scales ? React.createElement(ScalesTooltip, { scales: scales === null || scales === void 0 ? void 0 : scales.levels }) : null));\n};\nexport default ScalesInformations;\n","import React, { useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { Map, TileLayer, Tooltip, CircleMarker } from 'react-leaflet';\nimport { map } from 'ramda';\nimport { AccordionItem } from '@src/commons/Accordion';\nimport AnimatedGradientLoader from '@src/commons/Loader/AnimatedGradientLoader';\nimport { selectFocusSitesWithDensity } from '@src/home/selectors';\nimport 'leaflet/dist/leaflet.css';\nvar InsetMap = function (_a) {\n var currentSite = _a.currentSite, onSelectSite = _a.onSelectSite;\n var t = useTranslation('home').t;\n var title = useMemo(function () { return t('inset_map'); }, [t]);\n var listFocusSitesLoading = useSelector(function (state) { var _a, _b; return (_b = (_a = state === null || state === void 0 ? void 0 : state.home) === null || _a === void 0 ? void 0 : _a.focusSites) === null || _b === void 0 ? void 0 : _b.loading; });\n var focusSites = useSelector(function (state) {\n var focusSites = selectFocusSitesWithDensity(state, { currentSite: currentSite });\n return {\n focusSites: focusSites,\n };\n }).focusSites;\n var listCoordinates = useMemo(function () {\n return focusSites &&\n map(function (site) {\n return [site === null || site === void 0 ? void 0 : site.latitude, site === null || site === void 0 ? void 0 : site.longitude];\n }, focusSites);\n }, [focusSites]);\n return (React.createElement(AccordionItem, { defaultOpened: true, label: title },\n listFocusSitesLoading && React.createElement(AnimatedGradientLoader, null),\n !listFocusSitesLoading && focusSites ? (React.createElement(Map, { zoomControl: false, scrollWheelZoom: false, doubleClickZoom: false, touchZoom: false, boxZoom: false, keyboard: false, dragging: false, bounds: listCoordinates, zoom: 10, style: { width: '400px', height: '180px' } },\n React.createElement(TileLayer, { url: \"https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png\", attribution: 'OpenStreetMap' }),\n map(function (site) { return (React.createElement(CircleMarker, { className: \"home-map__circle\", key: site.uuid, fillColor: site.density_color, fill: true, opacity: currentSite.uuid === site.uuid ? 1 : 0.7, fillOpacity: currentSite.uuid === site.uuid ? 0.8 : 0.2, color: currentSite.uuid === site.uuid ? 'var(--primarycolor)' : site === null || site === void 0 ? void 0 : site.density_color, radius: currentSite.uuid === site.uuid ? 8 : 4, center: { lat: site.latitude, lng: site.longitude }, onClick: function () { return onSelectSite(site.uuid); } },\n React.createElement(Tooltip, { direction: \"auto\", offset: [30, -2], className: \"site-infos\" }, site.display_name))); }, focusSites))) : null));\n};\nexport default InsetMap;\n","import { __assign, __extends } from \"tslib\";\nimport React, { Component, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport _ from 'lodash';\nimport HomeMap from '@src/home/HomeMap';\nimport Loader from '@src/commons/Loader';\nimport { setCurrentSite } from '@src/commons/sites/actions';\nimport { setNavigation } from '@src/navigation/actions';\nimport '@src/commons/styles/templates/home.scss';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nimport { getAllSites, getCurrentSite } from '@src/commons/sites/selectors';\nimport { fetchConfig2 } from '@src/commons/configs/actions';\nimport { isConfigFetched } from '@src/commons/configs/selectors';\nimport HomeCard from './HomeCard';\nimport { Accordion } from '@src/commons/Accordion';\nimport ScalesInformations from '@src/home/scales';\nimport InsetMap from '@src/home/InsetMap';\nvar HomeContainer = (function (_super) {\n __extends(HomeContainer, _super);\n function HomeContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.handleChangeSite = _this.handleChangeSite.bind(_this);\n _this.handleChangeZoom = _this.handleChangeZoom.bind(_this);\n _this.state = {\n isZoomed: false,\n };\n return _this;\n }\n HomeContainer.prototype.componentDidMount = function () {\n var _a = this.props, initHomeApp = _a.initHomeApp, currentSite = _a.currentSite, history = _a.history;\n initHomeApp({ app: 'home' }, currentSite.uuid, history);\n };\n HomeContainer.prototype.handleChangeSite = function (siteId) {\n var _a = this.props, history = _a.history, onSiteSelected = _a.onSiteSelected;\n onSiteSelected(siteId, history);\n };\n HomeContainer.prototype.handleChangeZoom = function (isZoomed) {\n this.setState({ isZoomed: isZoomed });\n };\n HomeContainer.prototype.render = function () {\n var _a = this.props, sites = _a.sites, currentSite = _a.currentSite, isLoading = _a.isLoading, configFetched = _a.configFetched, isInsetMapActivated = _a.isInsetMapActivated;\n return (React.createElement(\"div\", { className: \"home\" }, isLoading ? (React.createElement(Loader, null)) : (React.createElement(Fragment, null,\n configFetched && (React.createElement(Fragment, null,\n React.createElement(HomeCard, { currentSite: currentSite, isZoomed: this.state.isZoomed, changeZoom: this.handleChangeZoom }),\n React.createElement(\"div\", { style: { width: 400, position: 'absolute', zIndex: 99, bottom: 10, left: 10 } },\n React.createElement(Accordion, null,\n isInsetMapActivated && (React.createElement(InsetMap, { currentSite: currentSite, onSelectSite: this.handleChangeSite })),\n React.createElement(ScalesInformations, null))))),\n React.createElement(HomeMap, { sites: sites, currentZoom: this.state.isZoomed, currentSite: currentSite, onSelectSite: this.handleChangeSite })))));\n };\n return HomeContainer;\n}(Component));\nexport { HomeContainer };\nHomeContainer.propTypes = {\n sites: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n longitude: PropTypes.string,\n latitude: PropTypes.string,\n })),\n currentSite: PropTypes.shape({\n uuid: PropTypes.string,\n longitude: PropTypes.string,\n latitude: PropTypes.string,\n }),\n onSiteSelected: PropTypes.func,\n initHomeApp: PropTypes.func,\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n isLoading: PropTypes.bool,\n match: PropTypes.shape({\n params: PropTypes.shape({\n siteId: PropTypes.string,\n }),\n }),\n configFetched: PropTypes.bool,\n isInsetMapActivated: PropTypes.bool,\n};\nexport var mapStateToProps = function (state, props) {\n var sites = _.filter(getAllSites(state), function (s) { return s.latitude && s.longitude; });\n return {\n sites: sites,\n currentSite: getCurrentSite(state),\n isLoading: _.isEmpty(sites),\n configFetched: isConfigFetched(state, __assign(__assign({}, props), { siteId: props.match.params.siteId })),\n isInsetMapActivated: isFeatureActivated('inset_map_home_page')(state),\n };\n};\nexport var mapDispatchToProps = function (dispatch) { return ({\n initHomeApp: function (params, siteId, history) {\n dispatch(setNavigation(params));\n dispatch(fetchConfig2(siteId, history));\n },\n onSiteSelected: function (siteId, history) {\n dispatch(setCurrentSite(siteId, history));\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(HomeContainer));\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport _ from 'lodash';\nimport Loader from '@src/commons/Loader';\nimport { getCurrentSiteId2 } from '@src/navigation/selectors';\nimport '@src/commons/styles/templates/home.scss';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nvar IndexContainer = (function (_super) {\n __extends(IndexContainer, _super);\n function IndexContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IndexContainer.prototype.redirect = function (url) {\n var history = this.props.history;\n return history.push(url);\n };\n IndexContainer.prototype.componentDidMount = function () {\n var _a = this.props, currentSiteId = _a.currentSiteId, sites = _a.sites, isHomeMapViewActivated = _a.isHomeMapViewActivated;\n if (sites.length > 1 && isHomeMapViewActivated) {\n return this.redirect(\"/v2/home/\" + currentSiteId);\n }\n return this.redirect(\"/v2/live/\" + currentSiteId);\n };\n IndexContainer.prototype.render = function () {\n return React.createElement(Loader, null);\n };\n return IndexContainer;\n}(Component));\nexport { IndexContainer };\nIndexContainer.propTypes = {\n sites: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n longitude: PropTypes.string,\n latitude: PropTypes.string,\n })),\n currentSiteId: PropTypes.string,\n isHomeMapViewActivated: PropTypes.bool,\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n};\nvar mapStateToProps = function (state, props) {\n return {\n sites: _.get(state.sites, 'data', []),\n currentSiteId: getCurrentSiteId2(state),\n isHomeMapViewActivated: isFeatureActivated('home_map_view')(state),\n };\n};\nexport var mapDispatchToProps = function (dispatch) { return ({}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(IndexContainer));\n","export var fetchInsights = function (siteId) { return ({\n type: 'FETCH_INSIGHTS',\n siteId: siteId,\n}); };\nexport var fetchInsightsSuccess = function (siteId, data) { return ({\n type: 'FETCH_INSIGHTS_SUCCESS',\n siteId: siteId,\n data: data,\n}); };\nexport var fetchInsightsFailure = function (siteId) { return ({\n type: 'FETCH_INSIGHTS_FAILURE',\n siteId: siteId,\n}); };\nexport var setCurrentInsight = function (siteId, insightId) { return ({\n type: 'SET_CURRENT_INSIGHT',\n siteId: siteId,\n insightId: insightId,\n}); };\n","import { __awaiter, __generator } from \"tslib\";\nimport { getAccessToken } from '@src/commons/utils/localStorage';\nexport function downloadAsync(url, token) {\n return __awaiter(this, void 0, Promise, function () {\n var response, data, err_1, error;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n return [4, fetch(url, {\n headers: {\n authorization: token,\n },\n })];\n case 1:\n response = _a.sent();\n if (response.status >= 400) {\n throw new Error(JSON.stringify({\n message: response.statusText,\n status: response.status,\n headers: response.headers,\n }));\n }\n return [4, response.blob()];\n case 2:\n data = _a.sent();\n return [2, {\n data: data,\n error: undefined,\n status: response.status,\n headers: response.headers,\n }];\n case 3:\n err_1 = _a.sent();\n error = JSON.parse(err_1.message);\n throw error;\n case 4: return [2];\n }\n });\n });\n}\nexport function download(url, filename) {\n return __awaiter(this, void 0, Promise, function () {\n var token, _a, data, error, blob, resultUrl, link;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n token = \"Bearer \" + getAccessToken();\n return [4, downloadAsync(url, token)];\n case 1:\n _a = _b.sent(), data = _a.data, error = _a.error;\n if (!error && data) {\n blob = new Blob([data], { type: 'application/pdf' });\n resultUrl = URL.createObjectURL(blob);\n link = document.createElement('a');\n link.href = resultUrl;\n link.download = filename;\n link.click();\n URL.revokeObjectURL(url);\n }\n else {\n console.error('something went wrong');\n }\n return [2];\n }\n });\n });\n}\n","import React from 'react';\nimport moment from 'moment';\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport '@src/commons/styles/organisms/insights-list.scss';\nimport { getAccessToken } from '@src/commons/utils/localStorage';\nimport { download } from '@src/insights/utils';\nvar InsightsList = function (_a) {\n var siteId = _a.siteId, insights = _a.insights, t = _a.t, currentInsightId = _a.currentInsightId, onInsightSelection = _a.onInsightSelection;\n var token = \"Bearer \" + getAccessToken();\n return (React.createElement(\"div\", { className: \"insights-list\" },\n React.createElement(\"div\", { className: \"insights-list__container\" },\n React.createElement(\"div\", { className: \"insights-list__title\" },\n \" \",\n t('Insights.title')),\n _.map(insights, function (insight) { return (React.createElement(\"div\", { className: \"insights-list__element-container \" + (insight.uuid === currentInsightId ? 'insights-list__element--selected' : ''), key: insight.uuid },\n React.createElement(\"div\", { className: 'insights-list__element', onClick: function (e) { return onInsightSelection(insight.uuid); } },\n React.createElement(\"div\", { className: \"insights-list__element-header\" },\n React.createElement(\"div\", { className: \"insights-list__element-title\" }, insight.title),\n React.createElement(\"div\", { className: \"insights-list__element-date\" }, moment(insight.created).fromNow())),\n React.createElement(\"div\", { className: \"insights-list__element-description\" }, insight.description)),\n React.createElement(\"div\", { className: \"insights-list__element-download\", onClick: function () { return download(window.MDM_API_URL + \"/insight/\" + insight.uuid, insight.title); } }, t('download', { ns: 'common' })))); }))));\n};\nInsightsList.propTypes = {\n siteId: PropTypes.string,\n insights: PropTypes.arrayOf(PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n uuid: PropTypes.string,\n })),\n t: PropTypes.func,\n onInsightSelection: PropTypes.func,\n currentInsightId: PropTypes.string,\n};\nexport default InsightsList;\n","import { __read } from \"tslib\";\nimport React, { useCallback, useMemo, useState } from 'react';\nimport _ from 'lodash';\nimport { Document, Page, pdfjs } from 'react-pdf';\nimport { getAccessToken } from '@src/commons/utils/localStorage';\nimport Loader from '@src/commons/Loader';\nimport { FullScreen, useFullScreenHandle } from 'react-full-screen';\nimport '@src/commons/styles/organisms/insight-viewer.scss';\nimport '@src/commons/styles/atoms/button.scss';\npdfjs.GlobalWorkerOptions.workerSrc = \"//cdnjs.cloudflare.com/ajax/libs/pdf.js/\" + pdfjs.version + \"/pdf.worker.js\";\nvar Viewer = function (_a) {\n var insightId = _a.insightId;\n var _b = __read(useState(null), 2), numPages = _b[0], setNumPages = _b[1];\n var handleFullScreen = useFullScreenHandle();\n var file = useMemo(function () { return ({\n url: window.MDM_API_URL + \"/insight/\" + insightId + \"/\",\n httpHeaders: {\n authorization: \"Bearer \" + getAccessToken(),\n },\n }); }, [insightId]);\n var onDocumentLoadSuccess = useCallback(function (_a) {\n var numPages = _a.numPages;\n setNumPages(numPages);\n }, [setNumPages]);\n var renderPDF = useCallback(function () { return (React.createElement(Document, { file: file, onLoadSuccess: onDocumentLoadSuccess, className: \"insight-viewer__document\", loading: React.createElement(\"div\", { className: \"insight-viewer__loader\" },\n React.createElement(Loader, null)) }, _.map(_.range(numPages), function (index) { return (React.createElement(Page, { className: \"insight-viewer__page\", scale: 1.5, key: \"page_\" + (index + 1), pageNumber: index + 1, renderTextLayer: false })); }))); }, [file, numPages, onDocumentLoadSuccess]);\n return (React.createElement(\"div\", { className: \"insight-viewer\" },\n React.createElement(\"div\", { className: \"insight-viewer__container\" },\n React.createElement(\"div\", { className: \"insight-viewer__menu\" },\n React.createElement(\"div\", { className: \"insight-viewer__menu-item\" },\n React.createElement(\"div\", { onClick: handleFullScreen.enter, className: \"button button--secondary button--small\" },\n React.createElement(\"i\", { className: \"button__icon material-icons\" }, \"fullscreen\"),\n ' ',\n React.createElement(\"div\", { className: \"button__text\" }, \"Open Fullscreen\")))),\n renderPDF(),\n React.createElement(FullScreen, { handle: handleFullScreen }, renderPDF()))));\n};\nexport default Viewer;\n","import { __extends } from \"tslib\";\nimport _ from 'lodash';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { withTranslation } from 'react-i18next';\nimport { fetchInsights, setCurrentInsight } from '@src/insights/actions';\nimport { setNavigation } from '@src/navigation/actions';\nimport InsightsList from '@src/insights/InsightsList';\nimport InsightViewer from '@src/insights/Viewer';\nimport '@src/commons/styles/templates/insights.scss';\nvar InsightsContainer = (function (_super) {\n __extends(InsightsContainer, _super);\n function InsightsContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.handleInsightSelection = _this.handleInsightSelection.bind(_this);\n return _this;\n }\n InsightsContainer.prototype.UNSAFE_componentWillMount = function () {\n var _a = this.props, initInsightsApp = _a.initInsightsApp, siteId = _a.siteId;\n initInsightsApp(siteId);\n };\n InsightsContainer.prototype.handleInsightSelection = function (insightId) {\n var _a = this.props, selectInsight = _a.selectInsight, siteId = _a.siteId;\n selectInsight(siteId, insightId);\n };\n InsightsContainer.prototype.render = function () {\n var _a = this.props, insights = _a.insights, t = _a.t, currentInsightId = _a.currentInsightId;\n return (React.createElement(\"div\", { className: \"insights\" },\n React.createElement(InsightsList, { insights: insights, t: t, currentInsightId: currentInsightId, onInsightSelection: this.handleInsightSelection }),\n currentInsightId && React.createElement(InsightViewer, { insightId: currentInsightId })));\n };\n return InsightsContainer;\n}(Component));\nexport { InsightsContainer };\nInsightsContainer.propTypes = {\n initInsightsApp: PropTypes.func,\n siteId: PropTypes.string,\n t: PropTypes.func,\n insights: PropTypes.arrayOf(PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n uuid: PropTypes.string,\n })),\n currentInsightId: PropTypes.string,\n selectInsight: PropTypes.func,\n};\nexport var mapStateToProps = function (state, props) {\n var siteId = state.navigation.siteId;\n return {\n siteId: siteId,\n insights: _.get(state.insights[siteId], 'data'),\n currentInsightId: _.get(state.insights[siteId], 'currentInsightId'),\n };\n};\nvar mapDispatchToProps = function (dispatch) {\n return {\n initInsightsApp: function (siteId) {\n dispatch(fetchInsights(siteId));\n dispatch(setNavigation({ app: 'insights', section: '' }));\n },\n selectInsight: function (siteId, insightId) {\n dispatch(setCurrentInsight(siteId, insightId));\n },\n };\n};\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation(['legacy', 'common'])(InsightsContainer));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport ContentLoader from 'react-content-loader';\nimport '@src/commons/styles/atoms/title.scss';\nimport '@src/commons/styles/atoms/circle.scss';\nimport '@src/commons/styles/molecules/small-card.scss';\nimport '@src/commons/styles/molecules/density-list.scss';\nimport { zoneColor } from '@src/commons/floors/sagas';\nimport { ScalesTooltip } from '@src/commons/ScalesTooltip';\nimport ReactTooltip from 'react-tooltip';\nexport var orderedAreasByDensity = function (areas) {\n return _.orderBy(areas, function (_a) {\n var density = _a.density;\n return (!_.isNull(density) ? density : -1);\n }, ['desc']);\n};\nvar AreasDensityList = function (_a) {\n var areas = _a.areas, onSelectArea = _a.onSelectArea, loading = _a.loading, t = _a.t, locale = _a.locale, scales = _a.scales;\n return (React.createElement(\"div\", { className: \"areas-density\" },\n React.createElement(\"div\", { className: \"areas-density__content \" + (loading ? 'areas-density__content--loading' : '') },\n React.createElement(\"div\", { className: \"areas-density__title title\" },\n React.createElement(\"div\", null, t('Live_Labels.density.title')),\n React.createElement(\"div\", null,\n React.createElement(\"i\", { \"data-tip\": true, \"data-for\": \"scales\", className: \"info material-icons\" }, \"help\"),\n React.createElement(ReactTooltip, { place: \"left\", id: \"scales\", \"aria-haspopup\": \"true\" },\n React.createElement(ScalesTooltip, { scales: scales })))),\n loading && (React.createElement(ContentLoader, { height: 160, width: 400, speed: 2, primaryColor: \"#f3f3f3\", secondaryColor: \"#ecebeb\" },\n React.createElement(\"circle\", { cx: \"366\", cy: \"20\", r: \"10\" }),\n React.createElement(\"rect\", { x: \"27\", y: \"14\", rx: \"5\", ry: \"5\", width: \"300\", height: \"12\" }),\n React.createElement(\"rect\", { x: \"27\", y: \"54\", rx: \"5\", ry: \"5\", width: \"300\", height: \"12\" }),\n React.createElement(\"circle\", { cx: \"366\", cy: \"60\", r: \"10\" }),\n React.createElement(\"rect\", { x: \"27\", y: \"94\", rx: \"5\", ry: \"5\", width: \"300\", height: \"12\" }),\n React.createElement(\"circle\", { cx: \"366\", cy: \"100\", r: \"10\" }),\n React.createElement(\"rect\", { x: \"27\", y: \"134\", rx: \"5\", ry: \"5\", width: \"300\", height: \"12\" }),\n React.createElement(\"circle\", { cx: \"366\", cy: \"140\", r: \"10\" }))),\n !loading && (React.createElement(\"div\", { className: \"area-density__table\" },\n React.createElement(\"div\", { className: \"areas-density__header\" },\n React.createElement(\"div\", { className: \"areas-density__header__title name\" }, t('Live_Labels.density.area_name')),\n React.createElement(\"div\", { className: \"areas-density__header__title title\" }, t('Live_Labels.density.density'))),\n React.createElement(\"div\", { className: \"areas-density__list\" }, _.map(orderedAreasByDensity(areas), function (area) { return (React.createElement(\"div\", { className: \"areas-density__item\", key: area.uuid, style: { cursor: area.isInError ? '' : 'pointer' }, onClick: function (e) { return (area.isInError ? {} : onSelectArea(area.uuid)); } },\n React.createElement(\"div\", { className: \"areas-density__item-field area-name\" }, area.name),\n React.createElement(\"div\", { className: \"areas-density__item-field area-density\" },\n React.createElement(\"div\", { className: \"areas-density__value\" }, !_.isNull(area.density)\n ? _.get(area, 'density', '').toLocaleString(locale) + t('Live_Labels.density.unit')\n : '-'),\n React.createElement(\"div\", { className: \"areas-density__pin\" },\n React.createElement(\"span\", { className: \"circle\", style: { backgroundColor: area.isInError ? zoneColor.GREY : area.color } }))))); })))))));\n};\nAreasDensityList.propTypes = {\n areas: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n isInError: PropTypes.bool,\n name: PropTypes.string,\n density: PropTypes.number,\n thresholdColor: PropTypes.string,\n })),\n onSelectArea: PropTypes.func,\n loading: PropTypes.bool,\n locale: PropTypes.string,\n t: PropTypes.func,\n};\nexport default AreasDensityList;\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport { setCurrentFloor, selectArea } from '@src/commons/floors/actions';\nimport AreasDensityList from './AreasDensityList.js';\nimport { selectSiteRealtimeAreasWithDensity } from './selectors';\nimport { getterCurrentSiteLanguage } from '@src/live/realtime/selectors';\nimport { selectGetSiteFloors } from '@src/live/realtimeStat/selectors.js';\nvar AreasDensityContainer = (function (_super) {\n __extends(AreasDensityContainer, _super);\n function AreasDensityContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.handleSelectArea = _this.handleSelectArea.bind(_this);\n return _this;\n }\n AreasDensityContainer.prototype.handleSelectArea = function (areaId) {\n var _a = this.props, siteId = _a.siteId, floors = _a.floors, onSelectArea = _a.onSelectArea, history = _a.history;\n onSelectArea(siteId, getAreaFloor(floors, areaId).uuid, areaId, history);\n };\n AreasDensityContainer.prototype.render = function () {\n var _a = this.props, areas = _a.areas, loading = _a.loading, t = _a.t, locale = _a.locale, scales = _a.scales;\n return (React.createElement(AreasDensityList, { areas: areas, onSelectArea: this.handleSelectArea, loading: loading, locale: locale, scales: scales, t: t }));\n };\n return AreasDensityContainer;\n}(Component));\nexport { AreasDensityContainer };\nexport var getAreaFloor = function (floors, areaId) {\n return _.find(floors, function (floor) { return !_.chain(floor).get('units.areas').filter({ uuid: areaId }).isEmpty().value(); });\n};\nexport var mapStateToProps = function (state, props) {\n var _a, _b, _c, _d, _e;\n var areas = selectSiteRealtimeAreasWithDensity(state, props);\n var loading = _.get(state.floors[props.siteId], 'areaThresholdLoading');\n var floors = selectGetSiteFloors(state, props);\n var locale = getterCurrentSiteLanguage(state);\n var scales = (_e = (_d = (_c = (_b = (_a = state === null || state === void 0 ? void 0 : state.configs) === null || _a === void 0 ? void 0 : _a[state === null || state === void 0 ? void 0 : state.navigation.siteId]) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.fruin_scales) === null || _d === void 0 ? void 0 : _d.levels) === null || _e === void 0 ? void 0 : _e.sort(function (a, b) { return a.value - b.value; });\n return { areas: areas, floors: floors, loading: loading, locale: locale, scales: scales };\n};\nAreasDensityContainer.propTypes = {\n siteId: PropTypes.string,\n history: PropTypes.shape(),\n areas: PropTypes.arrayOf(PropTypes.shape()),\n loading: PropTypes.bool,\n floors: PropTypes.arrayOf(PropTypes.shape()),\n onSelectArea: PropTypes.func,\n t: PropTypes.func,\n locale: PropTypes.string,\n};\nvar mapDispatchToProps = function (dispatch) { return ({\n onSelectArea: function (siteId, floorId, areaId, history) {\n dispatch(setCurrentFloor(siteId, floorId, history));\n dispatch(selectArea(siteId, floorId, areaId, history));\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(AreasDensityContainer));\n","import { __assign, __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport m from 'moment-timezone';\nimport '@src/commons/styles/atoms/blinker.scss';\nimport '@src/commons/styles/molecules/clock.scss';\nvar ClockComponent = (function (_super) {\n __extends(ClockComponent, _super);\n function ClockComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n CurrentSiteClock: m().format('LTS'),\n loading: true,\n };\n _this.handleTime = _this.handleTime.bind(_this);\n _this.handleTick = _this.handleTick.bind(_this);\n return _this;\n }\n ClockComponent.prototype.UNSAFE_componentWillMount = function () {\n this.handleTick();\n };\n ClockComponent.prototype.componentWillUnmount = function () {\n window.clearInterval(this.state.clockId);\n this.setState({\n CurrentSiteClock: m().format('LTS'),\n loading: true,\n });\n };\n ClockComponent.prototype.handleTime = function () {\n var timezoneClock = this.props.timezoneClock;\n this.setState({ CurrentSiteClock: m().tz(timezoneClock).format('LTS'), loading: false });\n };\n ClockComponent.prototype.handleTick = function () {\n var clockId = window.setInterval(this.handleTime, 1000);\n this.setState(__assign(__assign({}, this.state), { clockId: clockId }));\n };\n ClockComponent.prototype.render = function () {\n var _a = this.state, CurrentSiteClock = _a.CurrentSiteClock, loading = _a.loading;\n return (!loading && (React.createElement(\"div\", { className: \"clock\" },\n React.createElement(\"div\", { className: \"clock__values\" }, CurrentSiteClock))));\n };\n return ClockComponent;\n}(Component));\nexport { ClockComponent };\nClockComponent.propTypes = {\n timezoneClock: PropTypes.string,\n};\nexport default ClockComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport '@src/commons/styles/molecules/banner.scss';\nvar Disclaimer = function (_a) {\n var message = _a.message, outlined = _a.outlined;\n return outlined ? (React.createElement(\"div\", { className: \"banner__container banner__container--error\" },\n React.createElement(\"div\", { className: \"banner__icon banner__icon--error\" },\n React.createElement(\"i\", { className: \"material-icons\" }, \"info\")),\n React.createElement(\"div\", { className: \"banner__content banner__content--error\" }, message))) : (React.createElement(\"div\", { className: \"banner__container\" },\n React.createElement(\"div\", { className: \"disclaimer__icon\" },\n React.createElement(\"i\", { className: \"material-icons\" }, \"info\")),\n React.createElement(\"div\", { className: \"banner__content disclaimer__content\" },\n React.createElement(\"div\", { className: \"banner__message\" }, message))));\n};\nDisclaimer.propTypes = {\n message: PropTypes.string,\n outlined: PropTypes.bool,\n};\nexport default Disclaimer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport { Polygon, Tooltip } from 'react-leaflet';\nvar MapPolygons = function (_a) {\n var polygons = _a.polygons, noClick = _a.noClick, onSelectPolygon = _a.onSelectPolygon;\n return (React.createElement(\"div\", null, _.map(polygons, function (polygon) { return (React.createElement(Polygon, { key: polygon.uuid, positions: polygon.geometry, color: polygon.borderColor, fillColor: polygon.color, opacity: 1, weight: 1, fillOpacity: polygon.opacity, onClick: function (e) { return (polygon.noClick || noClick ? {} : onSelectPolygon(polygon.uuid)); } }, polygon.hasTooltip && (React.createElement(Tooltip, { direction: \"center\", opacity: 1 },\n React.createElement(\"span\", null, polygon.name))))); })));\n};\nMapPolygons.propTypes = {\n onSelectPolygon: PropTypes.func,\n noClick: PropTypes.bool,\n polygons: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n color: PropTypes.string,\n borderColor: PropTypes.string,\n opacity: PropTypes.number,\n hasTooltip: PropTypes.bool,\n noClick: PropTypes.bool,\n geometry: PropTypes.arrayOf(PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number,\n })),\n })),\n};\nexport default MapPolygons;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Map, TileLayer } from 'react-leaflet';\nimport FullscreenControl from 'react-leaflet-fullscreen';\nimport MapPolygons from './MapPolygons';\nimport 'react-leaflet-fullscreen/dist/styles.css';\nvar GeoMap = function (_a) {\n var bounds = _a.bounds, polygons = _a.polygons, onSelectPolygon = _a.onSelectPolygon, noClick = _a.noClick;\n return (React.createElement(Map, { bounds: bounds, maxZoom: 22 },\n React.createElement(FullscreenControl, { position: \"topleft\" }),\n React.createElement(TileLayer, { url: \"https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png\", attribution: 'OpenStreetMap' }),\n React.createElement(MapPolygons, { polygons: polygons, onSelectPolygon: onSelectPolygon, noClick: noClick })));\n};\nGeoMap.propTypes = {\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n polygons: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n color: PropTypes.string,\n borderColor: PropTypes.string,\n opacity: PropTypes.number,\n hasTooltip: PropTypes.bool,\n noClick: PropTypes.bool,\n geometry: PropTypes.arrayOf(PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number,\n })),\n })),\n onSelectPolygon: PropTypes.func,\n noClick: PropTypes.bool,\n};\nexport default GeoMap;\n","import { __assign } from \"tslib\";\nimport _ from 'lodash';\nimport { flow, get, find, head } from 'lodash/fp';\nimport { createSelector } from 'reselect';\nimport { isSocialDistancingActivated } from '@src/live/realtimeStat/selectors';\nimport { zoneColor } from '@src/commons/floors/sagas';\nimport { getterNavigationSiteId, getterNavigationFloorId, selectAllSiteAreas, } from '@src/reporting/selectors';\nimport { getCurrentSiteId2, getCurrentFloorId2 } from '@src/navigation/selectors';\nimport { linkScaleWithDensity, getSiteConfig } from '@src/commons/scalesConfigurations/utils';\nexport var getterSiteLiveAreas = createSelector(function (state) { return state.liveAreas; }, getCurrentSiteId2, function (liveAreas, siteId) { return _.get(liveAreas[siteId], 'data', []); });\nexport var getterCurrentFloor = createSelector(function (state) { return state.floors; }, getCurrentSiteId2, getCurrentFloorId2, function (floors, siteId, floorId) { return _.find(_.get(floors[siteId], 'data', []), { uuid: floorId }); });\nexport var getterSiteFloors = createSelector(function (state) { return state.floors; }, getCurrentSiteId2, function (floors, siteId) { return _.get(floors[siteId], 'data', []); });\nexport var getterCurrentSite = createSelector(function (state) { return state.sites; }, getCurrentSiteId2, function (sites, siteId) { return flow(get('data'), siteId ? find({ uuid: siteId }) : head)(sites); });\nexport var computeTrending = function (current, forecast) {\n var diff = forecast - current;\n if (diff >= 0.25) {\n return 'up';\n }\n if (diff <= -0.25) {\n return 'down';\n }\n return 'equals';\n};\nexport var computeAreaSocialDistancing = function (liveArea, area, trafficType) {\n return !_.isNull(liveArea.rt_model) && area.usable_area > 0\n ? _.round(area.usable_area / (+_.get(liveArea, trafficType, 1) || 1), 1)\n : null;\n};\nexport var colorFromThreshold = function (minThreshold, maxThreshold, value) {\n if (_.isNull(value) || !minThreshold || !maxThreshold) {\n return zoneColor.GREY;\n }\n if (value <= minThreshold) {\n return zoneColor.RED;\n }\n if (value >= maxThreshold) {\n return zoneColor.GREEN;\n }\n return zoneColor.ORANGE;\n};\nexport var getCurrentFloor = createSelector(function (state) { return state.floors; }, getterNavigationSiteId, getterNavigationFloorId, function (floors, siteId, floorId) { return _.find(_.get(floors[siteId], 'data', []), { uuid: floorId }); });\nexport var selectAreasSocialDistancingMonitoring = createSelector(selectAllSiteAreas, function (areas) {\n return _.map(areas, function (a) { return (__assign(__assign({}, a), { data: _.map(_.range(0, 96), function (d) { return ({\n timestamp: '',\n value: '',\n color: ['green', 'orange', 'red', 'grey'][_.random(0, 2)],\n }); }) })); });\n});\nexport var selectMapAreasSocialDistancing = createSelector(getCurrentFloor, getterSiteLiveAreas, getSiteConfig, function (floor, liveAreas, config) {\n var _a, _b;\n var currentScale = (_b = (_a = config === null || config === void 0 ? void 0 : config.data) === null || _a === void 0 ? void 0 : _a.quality_service_scales) === null || _b === void 0 ? void 0 : _b.levels;\n var areasWithRealtime = _.chain(_.get(floor, 'units.areas', []))\n .filter(function (area) { return _.find(_.get(liveAreas, 'data', []), { area: area.uuid }); })\n .filter(function (area, idx, areas) { return (areas.length > 1 ? !area.is_entire_site : true); })\n .value();\n var getLiveArea = function (areaId) { return _.find(_.get(liveAreas, 'data', []), { area: areaId }); };\n return _.map(areasWithRealtime, function (area) {\n var liveArea = getLiveArea(area.uuid);\n var currentSocialDistancing = computeAreaSocialDistancing(liveArea, area, 'currentTraffic');\n return __assign(__assign({}, area), { thresholdColor: !currentSocialDistancing\n ? zoneColor.GREY\n : linkScaleWithDensity(currentScale, currentSocialDistancing, false) });\n });\n});\nexport var selectMapAreasBasedOnSocialDistancingFeatureFlip = createSelector(getCurrentFloor, getterSiteLiveAreas, isSocialDistancingActivated, getSiteConfig, function (floor, liveAreas, isSocialDistancingActivated, config) {\n var _a, _b;\n var currentScale = (_b = (_a = config === null || config === void 0 ? void 0 : config.data) === null || _a === void 0 ? void 0 : _a.quality_service_scales) === null || _b === void 0 ? void 0 : _b.levels;\n var areasWithRealtime = _.chain(_.get(floor, 'units.areas', []))\n .filter(function (area) { return _.find(_.get(liveAreas, 'data', []), { area: area.uuid }); })\n .filter(function (area, idx, areas) { return (areas.length > 1 ? !area.is_entire_site : true); })\n .value();\n if (!isSocialDistancingActivated) {\n return areasWithRealtime;\n }\n var getLiveArea = function (areaId) { return _.find(_.get(liveAreas, 'data', []), { area: areaId }); };\n return _.map(areasWithRealtime, function (area) {\n var liveArea = getLiveArea(area.uuid);\n var currentSocialDistancing = computeAreaSocialDistancing(liveArea, area, 'currentTraffic');\n return __assign(__assign({}, area), { thresholdColor: !currentSocialDistancing\n ? zoneColor.GREY\n : linkScaleWithDensity(currentScale, currentSocialDistancing, false) });\n });\n});\nexport var selectMapAreasCurrentTraffic = createSelector(getterCurrentFloor, getterSiteLiveAreas, getSiteConfig, function (floor, liveAreas, config) {\n var _a, _b;\n var currentScale = (_b = (_a = config === null || config === void 0 ? void 0 : config.data) === null || _a === void 0 ? void 0 : _a.quality_service_scales) === null || _b === void 0 ? void 0 : _b.levels;\n var areasWithRealtime = _.chain(_.get(floor, 'units.areas', []))\n .filter(function (area) { return _.find(liveAreas, { area: area.uuid }); })\n .filter(function (area, idx, areas) { return (areas.length > 1 ? !area.is_entire_site : true); })\n .value();\n var getLiveArea = function (areaId) { return _.find(liveAreas, { area: areaId }); };\n return _.map(areasWithRealtime, function (area) {\n var liveArea = getLiveArea(area.uuid);\n if ((liveArea === null || liveArea === void 0 ? void 0 : liveArea.currentTraffic) === null || (liveArea === null || liveArea === void 0 ? void 0 : liveArea.currentTraffic) === undefined) {\n return __assign({}, area);\n }\n var currentSocialDistancing = computeAreaSocialDistancing(liveArea, area, 'currentTraffic');\n return __assign(__assign({}, area), { thresholdColor: !currentSocialDistancing\n ? zoneColor.GREY\n : linkScaleWithDensity(currentScale, currentSocialDistancing, false) });\n });\n});\nexport var selectIsMapLoading = createSelector(getterCurrentFloor, function (floor) { return !floor; });\nexport var selectMapAreasForecast30Traffic = createSelector(getterCurrentFloor, getterSiteLiveAreas, getSiteConfig, function (floor, liveAreas, config) {\n var _a, _b;\n var currentScale = (_b = (_a = config === null || config === void 0 ? void 0 : config.data) === null || _a === void 0 ? void 0 : _a.quality_service_scales) === null || _b === void 0 ? void 0 : _b.levels;\n var areasWithRealtime = _.chain(_.get(floor, 'units.areas', []))\n .filter(function (area) { return _.find(liveAreas, { area: area.uuid }); })\n .filter(function (area, idx, areas) { return (areas.length > 1 ? !area.is_entire_site : true); })\n .value();\n var getLiveArea = function (areaId) { return _.find(liveAreas, { area: areaId }); };\n return _.map(areasWithRealtime, function (area) {\n var liveArea = getLiveArea(area.uuid);\n var forecastSocialDistancing = computeAreaSocialDistancing(liveArea, area, 'forecast30Traffic');\n return __assign(__assign({}, area), { thresholdColor: !forecastSocialDistancing\n ? zoneColor.GREY\n : linkScaleWithDensity(currentScale, forecastSocialDistancing, false) });\n });\n});\nexport var selectMapBounds = createSelector(getterCurrentFloor, getterCurrentSite, function (floor, site) {\n var ZOOM = 0.001;\n var latitude = site.latitude, longitude = site.longitude;\n if (!latitude || !longitude) {\n return null;\n }\n var bounds = _.isEqual(_.get(floor, 'bounds'), [\n [0, 0],\n [0, 0],\n ])\n ? [\n [parseFloat(latitude) - ZOOM, parseFloat(longitude) - ZOOM],\n [parseFloat(latitude + ZOOM), parseFloat(longitude + ZOOM)],\n ]\n : _.get(floor, 'bounds');\n return bounds;\n});\nexport var selectMapPictures = createSelector(getterSiteFloors, getCurrentFloorId2, getterSiteLiveAreas, function (floors, floorId, liveAreas) {\n var hasAreas = function (floor, liveAreas) {\n var areasWithRealtime = _.chain(_.get(floor, 'units.areas', []))\n .filter(function (area) { return _.find(liveAreas, { area: area.uuid }); })\n .filter(function (area, idx, areas) { return (areas.length > 1 ? !area.is_entire_site : true); })\n .value();\n return !_.isEmpty(areasWithRealtime);\n };\n return _.chain(floors)\n .orderBy(['level'], ['desc'])\n .filter(function (floor) { return hasAreas(floor, liveAreas); })\n .map(function (floor) { return (__assign(__assign({}, floor), { name: \"\" + floor.level, image: floor.map_picture, isSelected: floor.uuid === floorId, bounds: floor.bounds })); })\n .value();\n});\nvar formatAreasToPolygons = function (areas) {\n var isEntireSite = _.every(areas, function (a) { return !a.selected; });\n return _.map(areas, function (area) { return (__assign(__assign({}, area), { color: area.isInError ? zoneColor.GREY : area.thresholdColor, borderColor: isEntireSite || area.selected ? '#FFF' : area.isInError ? zoneColor.GREY : area.thresholdColor, opacity: area.fillOpacity || 1, hasTooltip: !area.is_entire_site && area.geometry.length > 2, noClick: area.isInError || area.is_entire_site })); });\n};\nexport var selectMapPolygonsActual = createSelector(selectMapAreasCurrentTraffic, function (areas) {\n return formatAreasToPolygons(areas);\n});\nexport var selectMapPolygonsForecast30 = createSelector(selectMapAreasForecast30Traffic, function (areas) {\n return formatAreasToPolygons(areas);\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport '@src/commons/styles/molecules/mode-picker.scss';\nvar ModePicker = function (_a) {\n var modes = _a.modes, onChangeMode = _a.onChangeMode;\n return (React.createElement(\"div\", { className: \"mode-picker\" }, _.map(modes, function (mode) { return (React.createElement(\"div\", { onClick: function (e) { return (mode.isSelected ? {} : onChangeMode(e, mode.id)); }, key: mode.id, className: mode.isSelected ? 'mode-picker__item mode-picker__item--selected' : 'mode-picker__item' }, mode.name)); })));\n};\nModePicker.propTypes = {\n modes: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n isSelected: PropTypes.bool,\n })),\n onChangeMode: PropTypes.func,\n};\nexport default ModePicker;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport { Map, ImageOverlay } from 'react-leaflet';\nimport FullscreenControl from 'react-leaflet-fullscreen';\nimport 'leaflet/dist/leaflet.css';\nimport L from 'leaflet';\nimport MapPolygons from './MapPolygons';\nimport 'react-leaflet-fullscreen/dist/styles.css';\nvar PictureMap = function (_a) {\n var pictures = _a.pictures, onSelectPolygon = _a.onSelectPolygon, noClick = _a.noClick, polygons = _a.polygons;\n return (React.createElement(Map, { crs: L.CRS.Simple, bounds: _.get(_.find(pictures, function (p) { return p.isSelected; }), 'bounds', []), zoomSnap: 0.05, attributionControl: false, minZoom: 3, maxZoom: 6 },\n React.createElement(FullscreenControl, { position: \"topleft\" }),\n _.map(pictures, function (picture) {\n return picture.isSelected && (React.createElement(\"div\", { key: picture.uuid },\n React.createElement(ImageOverlay, { url: picture.image, bounds: picture.bounds }),\n React.createElement(MapPolygons, { polygons: polygons, onSelectPolygon: onSelectPolygon, noClick: noClick })));\n })));\n};\nPictureMap.propTypes = {\n pictures: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n image: PropTypes.string,\n isSelected: PropTypes.bool,\n })),\n onSelectPolygon: PropTypes.func,\n noClick: PropTypes.bool,\n polygons: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n color: PropTypes.string,\n borderColor: PropTypes.string,\n noClick: PropTypes.bool,\n opacity: PropTypes.number,\n hasTooltip: PropTypes.bool,\n geometry: PropTypes.arrayOf(PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number,\n })),\n })),\n};\nexport default PictureMap;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport '@src/commons/styles/molecules/picture-picker.scss';\nvar PicturePicker = function (_a) {\n var pictures = _a.pictures, onSelectPicture = _a.onSelectPicture;\n return (React.createElement(\"div\", { className: \"picture-picker\" }, _.map(pictures, function (picture) { return (React.createElement(\"div\", { onClick: function (e) { return (picture.isSelected ? {} : onSelectPicture(e, picture.uuid)); }, key: picture.uuid, className: picture.isSelected ? 'picture-picker__item picture-picker__item--selected' : 'picture-picker__item' }, picture.name)); })));\n};\nPicturePicker.propTypes = {\n pictures: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n image: PropTypes.string,\n isSelected: PropTypes.bool,\n })),\n onSelectPicture: PropTypes.func,\n};\nexport default PicturePicker;\n","import { __assign, __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport _ from 'lodash';\nimport { selectArea, setCurrentFloor } from '@src/commons/floors/actions';\nimport { getCurrentSiteId2 } from '@src/navigation/selectors';\nimport { selectIsMapLoading, selectMapPictures, selectMapBounds, selectMapPolygonsActual, selectMapPolygonsForecast30, } from '@src/social_distancing/social_distancing_assistant/selectors';\nimport ModePicker from '@src/commons/map/ModePicker';\nimport PictureMap from '@src/commons/map/PictureMap';\nimport PicturePicker from '@src/commons/map/PicturePicker';\nimport GeoMap from '@src/commons/map/GeoMap';\nimport '@src/commons/styles/organisms/realtime-carto.scss';\nvar MapContainer = (function (_super) {\n __extends(MapContainer, _super);\n function MapContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.handleSelectPolygon = _this.handleSelectPolygon.bind(_this);\n _this.handleSelectPicture = _this.handleSelectPicture.bind(_this);\n _this.handleChangeMode = _this.handleChangeMode.bind(_this);\n _this.state = {\n modes: [\n { id: 'actual', name: _this.props.t(\"Social_Distancing_Labels.mode_btn.actual\"), isSelected: true },\n {\n id: 'forecast30',\n name: _this.props.t(\"Social_Distancing_Labels.mode_btn.forecast30\"),\n isSelected: false,\n },\n ],\n };\n return _this;\n }\n MapContainer.prototype.handleSelectPicture = function (e, pictureId) {\n var _a = this.props, onChangePicture = _a.onChangePicture, siteId = _a.siteId, history = _a.history;\n onChangePicture(siteId, pictureId, history);\n e.stopPropagation();\n e.preventDefault();\n };\n MapContainer.prototype.handleSelectPolygon = function (polygonId) {\n var _a = this.props, siteId = _a.siteId, pictures = _a.pictures, onSelectPolygon = _a.onSelectPolygon, history = _a.history;\n var currentPicture = _.find(pictures, function (p) { return p.isSelected; });\n onSelectPolygon(siteId, currentPicture.uuid, polygonId, history);\n };\n MapContainer.prototype.handleChangeMode = function (e, modeId) {\n this.setState(function (prevState) { return ({\n modes: _.map(prevState.modes, function (mode) {\n return mode.id === modeId ? __assign(__assign({}, mode), { isSelected: true }) : __assign(__assign({}, mode), { isSelected: false });\n }),\n }); });\n e.stopPropagation();\n e.preventDefault();\n };\n MapContainer.prototype.getPolygons = function () {\n var modes = this.state.modes;\n var _a = this.props, polygonsActual = _a.polygonsActual, polygonsForecast30 = _a.polygonsForecast30;\n return _.get(_.find(modes, function (m) { return m.isSelected; }), 'id') === 'actual'\n ? polygonsActual\n : polygonsForecast30;\n };\n MapContainer.prototype.render = function () {\n var _a = this.props, loading = _a.loading, pictures = _a.pictures, noClick = _a.noClick, bounds = _a.bounds, t = _a.t;\n var modes = this.state.modes;\n var currentPicture = _.find(pictures, function (p) { return p.isSelected; });\n var polygons = this.getPolygons();\n return loading ? (React.createElement(\"div\", null, \"Loading ...\")) : (React.createElement(\"div\", { className: \"realtime-map__content\" },\n pictures.length > 1 && (React.createElement(PicturePicker, { pictures: pictures, onSelectPicture: this.handleSelectPicture })),\n React.createElement(ModePicker, { modes: modes, onChangeMode: this.handleChangeMode }),\n _.get(currentPicture, 'image') ? (React.createElement(PictureMap, { pictures: pictures, onSelectPolygon: this.handleSelectPolygon, noClick: noClick, polygons: polygons })) : (React.createElement(GeoMap, { bounds: bounds, polygons: polygons, onSelectPolygon: this.handleSelectPolygon, noClick: noClick }))));\n };\n return MapContainer;\n}(Component));\nexport { MapContainer };\nMapContainer.propTypes = {\n loading: PropTypes.bool,\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n polygonsActual: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n color: PropTypes.string,\n borderColor: PropTypes.string,\n opacity: PropTypes.number,\n hasTooltip: PropTypes.bool,\n noClick: PropTypes.bool,\n geometry: PropTypes.arrayOf(PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number,\n })),\n })),\n polygonsForecast30: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n color: PropTypes.string,\n borderColor: PropTypes.string,\n opacity: PropTypes.number,\n hasTooltip: PropTypes.bool,\n noClick: PropTypes.bool,\n geometry: PropTypes.arrayOf(PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number,\n })),\n })),\n onChangePicture: PropTypes.func,\n onSelectPolygon: PropTypes.func,\n noClick: PropTypes.bool,\n siteId: PropTypes.string,\n pictures: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n image: PropTypes.string,\n isSelected: PropTypes.bool,\n name: PropTypes.string,\n })),\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n socialDistancingRedThreshold: PropTypes.number,\n socialDistancingGreenThreshold: PropTypes.number,\n t: PropTypes.func,\n};\nexport var mapStateToProps = function (state, props) {\n return {\n siteId: getCurrentSiteId2(state),\n loading: selectIsMapLoading(state, props),\n pictures: selectMapPictures(state, props),\n polygonsActual: selectMapPolygonsActual(state, props),\n polygonsForecast30: selectMapPolygonsForecast30(state, props),\n bounds: selectMapBounds(state, props),\n };\n};\nexport var mapDispatchToProps = function (dispatch) { return ({\n onChangePicture: function (siteId, pictureId, history) {\n dispatch(setCurrentFloor(siteId, pictureId, history));\n },\n onSelectPolygon: function (siteId, pictureId, polygonId, history) {\n dispatch(selectArea(siteId, pictureId, polygonId, history));\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(MapContainer));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport '@src/commons/styles/molecules/map-legend.scss';\nimport '@src/commons/styles/atoms/circle.scss';\nimport { zoneColor } from '../floors/sagas';\nvar Legend = function (_a) {\n var redThreshold = _a.redThreshold, greenThreshold = _a.greenThreshold, t = _a.t, withOpeningHours = _a.withOpeningHours;\n return (React.createElement(\"div\", { className: \"map-legend\" },\n withOpeningHours && (React.createElement(\"div\", { className: \"map-legend--element\" },\n React.createElement(\"div\", { className: \"circle\" }),\n React.createElement(\"div\", { className: \"map-legend--text\" }, t('Live_Labels.Realtime.social_distancing.area_closed')))),\n React.createElement(\"div\", { className: \"map-legend--element\" },\n React.createElement(\"div\", { className: \"circle\", style: { backgroundColor: zoneColor.GREEN } }),\n React.createElement(\"div\", { className: \"map-legend--text\" }, t('Live_Labels.Realtime.social_distancing.high_threshold', { greenThreshold: greenThreshold }))),\n React.createElement(\"div\", { className: \"map-legend--element\" },\n React.createElement(\"div\", { className: \"circle\", style: { backgroundColor: zoneColor.ORANGE } }),\n React.createElement(\"div\", { className: \"map-legend--text\" }, t('Live_Labels.Realtime.social_distancing.middle_threshold', { greenThreshold: greenThreshold, redThreshold: redThreshold }))),\n React.createElement(\"div\", { className: \"map-legend--element\" },\n React.createElement(\"div\", { className: \"circle\", style: { backgroundColor: zoneColor.RED } }),\n React.createElement(\"div\", { className: \"map-legend--text\" }, t('Live_Labels.Realtime.social_distancing.low_threshold', { redThreshold: redThreshold })))));\n};\nLegend.propTypes = {\n redThreshold: PropTypes.number.isRequired,\n greenThreshold: PropTypes.number.isRequired,\n t: PropTypes.func,\n withOpeningHours: PropTypes.bool,\n};\nexport default Legend;\n","import { __assign, __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport _ from 'lodash';\nimport { selectArea, setCurrentFloor } from '@src/commons/floors/actions';\nimport { getCurrentSiteId2 } from '@src/navigation/selectors';\nimport { selectIsMapLoading, selectMapPictures, selectMapBounds, selectMapPolygonsActual, } from '@src/social_distancing/social_distancing_assistant/selectors';\nimport PictureMap from '@src/commons/map/PictureMap';\nimport PicturePicker from '@src/commons/map/PicturePicker';\nimport GeoMap from '@src/commons/map/GeoMap';\nimport Legend from '@src/commons/map/Legend';\nimport '@src/commons/styles/organisms/realtime-carto.scss';\nimport { selectCurrentSocialDistancingThreshold } from '@src/live/realtimeStat/selectors';\nimport { isSocialDistancingActivated } from './selectors';\nimport { selectRealtimeAreasWithDensityForMap } from '../realtimeStat/density/selectors';\nvar MapContainer = (function (_super) {\n __extends(MapContainer, _super);\n function MapContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.handleSelectPolygon = _this.handleSelectPolygon.bind(_this);\n _this.handleSelectPicture = _this.handleSelectPicture.bind(_this);\n return _this;\n }\n MapContainer.prototype.handleSelectPicture = function (e, pictureId) {\n var _a = this.props, onChangePicture = _a.onChangePicture, siteId = _a.siteId, history = _a.history;\n onChangePicture(siteId, pictureId, history);\n e.stopPropagation();\n e.preventDefault();\n };\n MapContainer.prototype.handleSelectPolygon = function (polygonId) {\n var _a = this.props, siteId = _a.siteId, pictures = _a.pictures, onSelectPolygon = _a.onSelectPolygon, history = _a.history;\n var currentPicture = _.find(pictures, function (p) { return p.isSelected; });\n onSelectPolygon(siteId, currentPicture.uuid, polygonId, history);\n };\n MapContainer.prototype.render = function () {\n var _a = this.props, loading = _a.loading, pictures = _a.pictures, noClick = _a.noClick, bounds = _a.bounds, socialDistancingGreenThreshold = _a.socialDistancingGreenThreshold, socialDistancingRedThreshold = _a.socialDistancingRedThreshold, t = _a.t, polygonsActual = _a.polygonsActual, isSocialDistancingActivated = _a.isSocialDistancingActivated;\n var currentPicture = _.find(pictures, function (p) { return p.isSelected; });\n return loading ? (React.createElement(\"div\", null, \"Loading ...\")) : (React.createElement(\"div\", { className: \"realtime-map__content\" },\n pictures.length > 1 && (React.createElement(PicturePicker, { pictures: pictures, onSelectPicture: this.handleSelectPicture })),\n _.get(currentPicture, 'image') ? (React.createElement(PictureMap, { pictures: pictures, onSelectPolygon: this.handleSelectPolygon, noClick: noClick, polygons: polygonsActual })) : (React.createElement(GeoMap, { bounds: bounds, polygons: polygonsActual, onSelectPolygon: this.handleSelectPolygon, noClick: noClick })),\n isSocialDistancingActivated && socialDistancingRedThreshold && socialDistancingGreenThreshold && (React.createElement(\"div\", { className: \"map-legend--absolute\" },\n React.createElement(Legend, { t: t, redThreshold: socialDistancingRedThreshold, greenThreshold: socialDistancingGreenThreshold })))));\n };\n return MapContainer;\n}(Component));\nexport { MapContainer };\nMapContainer.propTypes = {\n loading: PropTypes.bool,\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n polygonsActual: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n color: PropTypes.string,\n borderColor: PropTypes.string,\n opacity: PropTypes.number,\n hasTooltip: PropTypes.bool,\n noClick: PropTypes.bool,\n geometry: PropTypes.arrayOf(PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number,\n })),\n })),\n onChangePicture: PropTypes.func,\n onSelectPolygon: PropTypes.func,\n noClick: PropTypes.bool,\n siteId: PropTypes.string,\n pictures: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n image: PropTypes.string,\n isSelected: PropTypes.bool,\n name: PropTypes.string,\n })),\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n socialDistancingRedThreshold: PropTypes.number,\n socialDistancingGreenThreshold: PropTypes.number,\n t: PropTypes.func,\n isSocialDistancingActivated: PropTypes.bool,\n};\nexport var mapStateToProps = function (state, props) {\n var isSocialDistancingFeatureActivated = isSocialDistancingActivated(state);\n var siteId = getCurrentSiteId2(state);\n var _a = selectCurrentSocialDistancingThreshold(state, { siteId: getCurrentSiteId2(state) }), socialDistancingRedThreshold = _a.socialDistancingRedThreshold, socialDistancingGreenThreshold = _a.socialDistancingGreenThreshold;\n return {\n siteId: siteId,\n loading: selectIsMapLoading(state, props),\n pictures: selectMapPictures(state, props),\n polygonsActual: isSocialDistancingFeatureActivated\n ? selectMapPolygonsActual(state, props)\n : selectRealtimeAreasWithDensityForMap(state, __assign(__assign({}, props), { siteId: siteId })),\n bounds: selectMapBounds(state, props),\n socialDistancingGreenThreshold: socialDistancingGreenThreshold,\n socialDistancingRedThreshold: socialDistancingRedThreshold,\n isSocialDistancingActivated: isSocialDistancingFeatureActivated,\n };\n};\nexport var mapDispatchToProps = function (dispatch) { return ({\n onChangePicture: function (siteId, pictureId, history) {\n dispatch(setCurrentFloor(siteId, pictureId, history));\n },\n onSelectPolygon: function (siteId, pictureId, polygonId, history) {\n dispatch(selectArea(siteId, pictureId, polygonId, history));\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(MapContainer));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport '@src/commons/styles/molecules/default-messages.scss';\nvar NoRtDataComponent = function (_a) {\n var siteName = _a.siteName, t = _a.t;\n return (React.createElement(\"div\", { className: \"default-messages\" },\n React.createElement(\"div\", { className: \"default-messages__content\" }, t('Live_Labels.RT_not_available') + siteName)));\n};\nNoRtDataComponent.propTypes = {\n siteName: PropTypes.string,\n t: PropTypes.func,\n};\nexport default NoRtDataComponent;\n","import { __assign, __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport ReactModal from 'react-modal';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport _ from 'lodash';\nimport { setCurrentFloor, selectArea } from '@src/commons/floors/actions';\nimport { selectGetSiteFloors, selectSiteRealtimeAreasWithSocialDistancing, selectIsSiteSocialDistancingSetup, } from '@src/live/realtimeStat/selectors';\nvar modalStyle = {\n overlay: {\n zIndex: 1,\n width: '100%',\n backgroundColor: 'rgba(46, 49, 49, 0.5)',\n },\n content: {\n top: '50%',\n left: '20%',\n right: '20%',\n bottom: 'initial',\n transform: 'translateY(-50%)',\n border: null,\n borderRadius: '6px',\n boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.4)',\n display: 'flex',\n flexDirection: 'column',\n padding: '0',\n },\n};\nvar SocialDistancingTableContainer = (function (_super) {\n __extends(SocialDistancingTableContainer, _super);\n function SocialDistancingTableContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.handleSelectArea = _this.handleSelectArea.bind(_this);\n _this.handleSortChange = _this.handleSortChange.bind(_this);\n _this.handleSortChangeOnZoom = _this.handleSortChangeOnZoom.bind(_this);\n _this.handleOpenOrCloseZoomModal = _this.handleOpenOrCloseZoomModal.bind(_this);\n _this.filterAreas = _this.filterAreas.bind(_this);\n _this.handleSearch = _this.handleSearch.bind(_this);\n _this.state = {\n view: {\n currentSorting: {\n id: 'name',\n name: _this.props.t(\"Live_Labels.Realtime.social_distancing.sort_btn.name\"),\n },\n },\n zoomView: {\n currentSorting: {\n id: 'name',\n name: _this.props.t(\"Live_Labels.Realtime.social_distancing.sort_btn.name\"),\n },\n },\n zoomIsOpen: false,\n searchContent: '',\n };\n return _this;\n }\n SocialDistancingTableContainer.prototype.handleSelectArea = function (areaId) {\n var _a = this.props, siteId = _a.siteId, floors = _a.floors, onSelectArea = _a.onSelectArea, history = _a.history;\n this.setState({ zoomIsOpen: false });\n onSelectArea(siteId, getAreaFloor(floors, areaId).uuid, areaId, history);\n };\n SocialDistancingTableContainer.prototype.handleSortChange = function (selectedSort) {\n this.setState(function (prevState) { return ({ view: __assign(__assign({}, prevState.view), { currentSorting: selectedSort }) }); });\n };\n SocialDistancingTableContainer.prototype.handleSortChangeOnZoom = function (selectedSort) {\n this.setState(function (prevState) { return ({ zoomView: __assign(__assign({}, prevState.zoomView), { currentSorting: selectedSort }) }); });\n };\n SocialDistancingTableContainer.prototype.handleOpenOrCloseZoomModal = function (toOpen) {\n this.setState({ zoomIsOpen: toOpen });\n };\n SocialDistancingTableContainer.prototype.handleSearch = function (search) {\n this.setState({ searchContent: search });\n };\n SocialDistancingTableContainer.prototype.filterAreas = function (areas, searchContent) {\n if (!searchContent) {\n return areas;\n }\n return _.filter(areas, function (area) { return _.includes(_.lowerCase(area.name), _.lowerCase(searchContent)); });\n };\n SocialDistancingTableContainer.prototype.render = function () {\n var _this = this;\n var _a = this.props, areas = _a.areas, loading = _a.loading, isSetup = _a.isSetup, t = _a.t, SocialDistancingTableView = _a.SocialDistancingTableView;\n var _b = this.state, view = _b.view, zoomView = _b.zoomView, zoomIsOpen = _b.zoomIsOpen, searchContent = _b.searchContent;\n return (React.createElement(\"div\", null,\n React.createElement(SocialDistancingTableView, { t: t, onSelectArea: this.handleSelectArea, areas: this.filterAreas(areas, searchContent), loading: loading, isSetup: isSetup, scales: this.props.scales, currentSorting: view.currentSorting, onSortChange: this.handleSortChange, onOpenOrCloseZoomModal: this.handleOpenOrCloseZoomModal, handleSearch: this.handleSearch, searchContent: searchContent }),\n React.createElement(ReactModal, { isOpen: zoomIsOpen, style: modalStyle, onRequestClose: function () { return _this.handleOpenOrCloseZoomModal(false); }, ariaHideApp: false },\n React.createElement(SocialDistancingTableView, { t: t, onSelectArea: this.handleSelectArea, areas: this.filterAreas(areas, searchContent), loading: loading, isSetup: isSetup, currentSorting: zoomView.currentSorting, isZoom: true, onSortChange: this.handleSortChangeOnZoom, onOpenOrCloseZoomModal: this.handleOpenOrCloseZoomModal, searchContent: searchContent, handleSearch: this.handleSearch, scales: this.props.scales }))));\n };\n return SocialDistancingTableContainer;\n}(Component));\nexport { SocialDistancingTableContainer };\nexport var getAreaFloor = function (floors, areaId) {\n return _.find(floors, function (floor) { return !_.chain(floor).get('units.areas').filter({ uuid: areaId }).isEmpty().value(); });\n};\nexport var mapStateToProps = function (state, props) {\n var _a, _b, _c, _d, _e;\n return ({\n floors: selectGetSiteFloors(state, props),\n areas: selectSiteRealtimeAreasWithSocialDistancing(state, props),\n isSetup: selectIsSiteSocialDistancingSetup(state, props),\n loading: _.get(state.floors[props.siteId], 'areaThresholdLoading'),\n scales: (_e = (_d = (_c = (_b = (_a = state === null || state === void 0 ? void 0 : state.configs) === null || _a === void 0 ? void 0 : _a[state === null || state === void 0 ? void 0 : state.navigation.siteId]) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.quality_service_scales) === null || _d === void 0 ? void 0 : _d.levels) === null || _e === void 0 ? void 0 : _e.sort(function (a, b) { return a.value - b.value; }),\n });\n};\nSocialDistancingTableContainer.propTypes = {\n siteId: PropTypes.string,\n t: PropTypes.func,\n onSelectArea: PropTypes.func,\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n floors: PropTypes.arrayOf(PropTypes.shape()),\n loading: PropTypes.bool,\n isSetup: PropTypes.bool,\n areas: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n isInError: PropTypes.bool,\n actual: PropTypes.shape({\n value: PropTypes.number,\n color: PropTypes.string,\n }),\n forecast30: PropTypes.shape({\n value: PropTypes.number,\n isAvailable: PropTypes.bool,\n color: PropTypes.string,\n }),\n trending: PropTypes.string,\n })),\n SocialDistancingTableView: PropTypes.any,\n};\nexport var mapDispatchToProps = function (dispatch) { return ({\n onSelectArea: function (siteId, floorId, areaId, history) {\n dispatch(setCurrentFloor(siteId, floorId, history));\n dispatch(selectArea(siteId, floorId, areaId, history));\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(SocialDistancingTableContainer));\n","export default __webpack_public_path__ + \"public/social-distancing.svg\";","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport '@src/commons/styles/atoms/title.scss';\nimport '@src/commons/styles/atoms/circle.scss';\nimport '@src/commons/styles/organisms/social-distancing-table.scss';\nimport SortButton from '@src/commons/SortButton';\nimport ContentLoader from 'react-content-loader';\nimport socialDistancing from './assets/social-distancing.svg';\nimport up from './assets/up.svg';\nimport down from './assets/down.svg';\nimport equals from './assets/equals.svg';\nexport var getSortedAreas = function (areas, sortId) {\n switch (sortId) {\n case 'name':\n return _.sortBy(areas, ['name']);\n case 'actual':\n return _.sortBy(areas, function (area) { return area.actual.value; });\n case 'forecast30':\n return _.sortBy(areas, function (area) { return area.forecast30.value; });\n default:\n break;\n }\n};\nvar SocialDistancingTableView = function (_a) {\n var areas = _a.areas, currentSorting = _a.currentSorting, loading = _a.loading, isSetup = _a.isSetup, t = _a.t, onSelectArea = _a.onSelectArea, onSortChange = _a.onSortChange, onOpenOrCloseZoomModal = _a.onOpenOrCloseZoomModal, isZoom = _a.isZoom;\n var sortedAreas = getSortedAreas(areas, currentSorting.id);\n return (React.createElement(\"div\", { className: \"socdist-table\" },\n React.createElement(\"div\", { className: \"socdist-table__title\" },\n React.createElement(\"img\", { className: \"socdist-table__title-logo\", src: socialDistancing }),\n React.createElement(\"div\", { className: \"socdist-table__title-text\" }, t('Live_Labels.Realtime.social_distancing.title'))),\n (isSetup || loading) && (React.createElement(\"div\", { className: \"socdist-wrapper\" },\n React.createElement(\"div\", { className: \"socdist-wrapper__zoomBtn\" },\n !isZoom && (React.createElement(\"i\", { className: \"material-icons icon--grey\", onClick: function () { return onOpenOrCloseZoomModal(true); } }, \"crop_free\")),\n isZoom && (React.createElement(\"i\", { className: \"material-icons icon--grey\", onClick: function () { return onOpenOrCloseZoomModal(false); } }, \"close\"))),\n React.createElement(\"div\", { className: \"socdist-header\" },\n React.createElement(\"div\", { className: \"socdist-header__title title\" }, t('Live_Labels.Realtime.social_distancing.sub_title')),\n React.createElement(SortButton, { title: t(\"Live_Labels.Realtime.social_distancing.sort_btn.title\"), options: [\n { id: 'name', name: t(\"Live_Labels.Realtime.social_distancing.sort_btn.name\") },\n { id: 'actual', name: t(\"Live_Labels.Realtime.social_distancing.sort_btn.actual\") },\n { id: 'forecast30', name: t(\"Live_Labels.Realtime.social_distancing.sort_btn.t30\") },\n ], currentOption: currentSorting, onChange: onSortChange })),\n React.createElement(\"div\", { className: \"socdist-list\" },\n React.createElement(\"div\", { className: \"socdist-list-header\" },\n React.createElement(\"div\", { className: \"socdist-list-header__name\" }, t(\"Live_Labels.Realtime.social_distancing.table.name\")),\n React.createElement(\"div\", { className: \"socdist-list-header__actual\" }, t(\"Live_Labels.Realtime.social_distancing.table.actual\")),\n React.createElement(\"div\", { className: \"socdist-list-header__t30\" }, t(\"Live_Labels.Realtime.social_distancing.table.t30\")),\n React.createElement(\"div\", { className: \"socdist-list-header__trend\" }, t(\"Live_Labels.Realtime.social_distancing.table.trend\"))),\n loading && (React.createElement(ContentLoader, { height: 80, width: 400, speed: 2, primaryColor: \"#f3f3f3\", secondaryColor: \"#ecebeb\" },\n React.createElement(\"rect\", { x: \"10\", y: \"10\", rx: \"5\", ry: \"5\", width: \"372\", height: \"8\" }),\n React.createElement(\"rect\", { x: \"10\", y: \"30\", rx: \"5\", ry: \"5\", width: \"372\", height: \"8\" }),\n React.createElement(\"rect\", { x: \"10\", y: \"50\", rx: \"5\", ry: \"5\", width: \"372\", height: \"8\" }))),\n !loading && (React.createElement(\"div\", { className: isZoom ? 'socdist-list-content socdist-list-content--zoom' : 'socdist-list-content' }, _.map(sortedAreas, function (area) { return (React.createElement(\"div\", { key: area.uuid, className: area.isInError\n ? 'socdist-list-content-item socdist-list-item--error'\n : 'socdist-list-content-item', onClick: function () { return (area.isInError ? {} : onSelectArea(area.uuid)); } },\n React.createElement(\"div\", { className: \"socdist-list-item__name\" }, area.name),\n React.createElement(\"div\", { className: \"socdist-list-item__actual\" },\n React.createElement(\"div\", { className: \"socdist-list-item__actualPin\" },\n React.createElement(\"span\", { className: \"circle\", style: { backgroundColor: area.actual.color } })),\n React.createElement(\"div\", { className: \"socdist-list-item__actualValue\" }, area.actual.value <= 20 ? (area.isInError ? '-' : area.actual.value) : '> 20')),\n React.createElement(\"div\", { className: \"socdist-list-item__t30\" },\n React.createElement(\"div\", { className: \"socdist-list-item__t30Pin\" },\n React.createElement(\"span\", { className: \"circle\", style: { backgroundColor: area.forecast30.color } })),\n React.createElement(\"div\", { className: \"socdist-list-item__t30Value\" }, area.forecast30.value <= 20\n ? area.isInError || !area.forecast30.isAvailable\n ? '-'\n : area.forecast30.value\n : '> 20')),\n area.isInError ? (React.createElement(\"div\", { className: \"socdist-list-item__trend\" }, \"-\")) : ({\n up: React.createElement(\"img\", { className: \"socdist-list-item__trend\", src: up }),\n down: React.createElement(\"img\", { className: \"socdist-list-item__trend\", src: down }),\n equals: React.createElement(\"img\", { className: \"socdist-list-item__trend\", src: equals }),\n }[area.trending]))); })))))),\n !isSetup && !loading && (React.createElement(\"div\", { className: \"no-setup-messages\" }, t('Live_Labels.density.not_available')))));\n};\nSocialDistancingTableView.propTypes = {\n t: PropTypes.func,\n loading: PropTypes.bool,\n isSetup: PropTypes.bool,\n isZoom: PropTypes.bool,\n onSelectArea: PropTypes.func,\n onSortChange: PropTypes.func,\n onOpenOrCloseZoomModal: PropTypes.func,\n currentSorting: PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n }),\n areas: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n isInError: PropTypes.bool,\n actual: PropTypes.shape({\n value: PropTypes.number,\n color: PropTypes.string,\n }),\n forecast30: PropTypes.shape({\n value: PropTypes.number,\n isAvailable: PropTypes.bool,\n color: PropTypes.string,\n }),\n trending: PropTypes.string,\n })),\n};\nexport default SocialDistancingTableView;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactTooltip from 'react-tooltip';\nimport _ from 'lodash';\nimport '@src/commons/styles/atoms/title.scss';\nimport '@src/commons/styles/atoms/circle.scss';\nimport '@src/commons/styles/organisms/social-distancing-table.scss';\nimport SortButton from '@src/commons/SortButton';\nimport '@src/commons/styles/molecules/search-box.scss';\nimport { ScalesTooltip } from '@src/commons/ScalesTooltip';\nimport ContentLoader from 'react-content-loader';\nimport up from './assets/up.svg';\nimport down from './assets/down.svg';\nimport equals from './assets/equals.svg';\nexport var getSortedAreas = function (areas, sortId) {\n switch (sortId) {\n case 'name':\n return _.sortBy(areas, ['name']);\n case 'actual':\n return _.sortBy(areas, function (area) { return area.actual.value; });\n case 'forecast30':\n return _.sortBy(areas, function (area) { return area.forecast30.value; });\n default:\n break;\n }\n};\nvar SocialDistancingTableBig = function (_a) {\n var areas = _a.areas, currentSorting = _a.currentSorting, loading = _a.loading, isSetup = _a.isSetup, t = _a.t, onSelectArea = _a.onSelectArea, onSortChange = _a.onSortChange, onOpenOrCloseZoomModal = _a.onOpenOrCloseZoomModal, isZoom = _a.isZoom, searchContent = _a.searchContent, handleSearch = _a.handleSearch, scales = _a.scales;\n var sortedAreas = getSortedAreas(areas, currentSorting.id);\n return (React.createElement(\"div\", { className: \"socdist-table socdist-table--big\" },\n (isSetup || loading) && (React.createElement(\"div\", { className: \"socdist-wrapper\" },\n React.createElement(\"div\", { className: \"socdist-header\" },\n React.createElement(\"div\", { className: \"socdist-header__title title\" }, t('Live_Labels.Realtime.social_distancing.sub_title')),\n React.createElement(\"i\", { \"data-tip\": true, \"data-for\": \"scales\", className: \"info material-icons\" }, \"help\"),\n React.createElement(ReactTooltip, { place: \"left\", id: \"scales\", \"aria-haspopup\": \"true\" },\n React.createElement(ScalesTooltip, { scales: scales }))),\n React.createElement(\"div\", { className: \"socdist-header\" },\n React.createElement(\"div\", { className: \"search-box\" },\n React.createElement(\"i\", { className: \"search-box__search-icon material-icons\" }, \"search\"),\n React.createElement(\"input\", { type: \"text\", className: \"search-box__input search-input\", placeholder: t('search'), autoFocus: true, onChange: function (e) { return handleSearch(e.target.value); }, value: searchContent })),\n React.createElement(SortButton, { title: t(\"Live_Labels.Realtime.social_distancing.sort_btn.title\"), options: [\n { id: 'name', name: t(\"Live_Labels.Realtime.social_distancing.sort_btn.name\") },\n { id: 'actual', name: t(\"Live_Labels.Realtime.social_distancing.sort_btn.actual\") },\n { id: 'forecast30', name: t(\"Live_Labels.Realtime.social_distancing.sort_btn.t30\") },\n ], currentOption: currentSorting, onChange: onSortChange })),\n React.createElement(\"div\", { className: \"socdist-list\" },\n React.createElement(\"div\", { className: \"socdist-list-header\" },\n React.createElement(\"div\", { className: \"socdist-list-header__name\" }, t(\"Live_Labels.Realtime.social_distancing.table.name\")),\n React.createElement(\"div\", { className: \"socdist-list-header__actual\" }, t(\"Live_Labels.Realtime.social_distancing.table.actual\")),\n React.createElement(\"div\", { className: \"socdist-list-header__t30\" }, t(\"Live_Labels.Realtime.social_distancing.table.t30\")),\n React.createElement(\"div\", { className: \"socdist-list-header__trend\" }, t(\"Live_Labels.Realtime.social_distancing.table.trend\"))),\n loading && (React.createElement(ContentLoader, { height: 80, width: 400, speed: 2, primaryColor: \"#f3f3f3\", secondaryColor: \"#ecebeb\" },\n React.createElement(\"rect\", { x: \"10\", y: \"10\", rx: \"5\", ry: \"5\", width: \"372\", height: \"8\" }),\n React.createElement(\"rect\", { x: \"10\", y: \"30\", rx: \"5\", ry: \"5\", width: \"372\", height: \"8\" }),\n React.createElement(\"rect\", { x: \"10\", y: \"50\", rx: \"5\", ry: \"5\", width: \"372\", height: \"8\" }))),\n !loading && (React.createElement(\"div\", null, _.map(sortedAreas, function (area) { return (React.createElement(\"div\", { key: area.uuid, className: area.isInError\n ? 'socdist-list-content-item socdist-list-item--error'\n : 'socdist-list-content-item', onClick: function () { return (area.isInError ? {} : onSelectArea(area.uuid)); } },\n React.createElement(\"div\", { className: \"socdist-list-item__name\" }, area.name),\n React.createElement(\"div\", { className: \"socdist-list-item__actual\" },\n React.createElement(\"div\", { className: \"socdist-list-item__actualPin\" },\n React.createElement(\"span\", { className: \"circle\", style: { backgroundColor: area.actual.color } })),\n React.createElement(\"div\", { className: \"socdist-list-item__actualValue\" }, area.actual.value <= 20 ? (area.isInError ? '-' : area.actual.value) : '> 20')),\n React.createElement(\"div\", { className: \"socdist-list-item__t30\" },\n React.createElement(\"div\", { className: \"socdist-list-item__t30Pin\" },\n React.createElement(\"span\", { className: \"circle\", style: { backgroundColor: area.forecast30.color } })),\n React.createElement(\"div\", { className: \"socdist-list-item__t30Value\" }, area.forecast30.value <= 20\n ? area.isInError || !area.forecast30.isAvailable\n ? '-'\n : area.forecast30.value\n : '> 20')),\n area.isInError ? (React.createElement(\"div\", { className: \"socdist-list-item__trend\" }, \"-\")) : ({\n up: React.createElement(\"img\", { className: \"socdist-list-item__trend\", src: up }),\n down: React.createElement(\"img\", { className: \"socdist-list-item__trend\", src: down }),\n equals: React.createElement(\"img\", { className: \"socdist-list-item__trend\", src: equals }),\n }[area.trending]))); })))))),\n !isSetup && !loading && (React.createElement(\"div\", { className: \"no-setup-messages\" }, t('Live_Labels.density.not_available')))));\n};\nSocialDistancingTableBig.propTypes = {\n t: PropTypes.func,\n loading: PropTypes.bool,\n isSetup: PropTypes.bool,\n isZoom: PropTypes.bool,\n onSelectArea: PropTypes.func,\n onSortChange: PropTypes.func,\n onOpenOrCloseZoomModal: PropTypes.func,\n currentSorting: PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n }),\n areas: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n isInError: PropTypes.bool,\n actual: PropTypes.shape({\n value: PropTypes.number,\n color: PropTypes.string,\n }),\n forecast30: PropTypes.shape({\n value: PropTypes.number,\n isAvailable: PropTypes.bool,\n color: PropTypes.string,\n }),\n trending: PropTypes.string,\n })),\n searchContent: PropTypes.string,\n handleSearch: PropTypes.func,\n};\nexport default SocialDistancingTableBig;\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { selectIsInstantDataAreLoading } from '@src/live/realtimeStat/density/selectors';\nimport { selectConfigMaxThreshold, getterCurrentSiteLanguage, getterCurrentSiteTimezone, selectChartRealtimeData, selectCurrentPoint, } from '@src/live/realtime/selectors';\nimport LiveTrafficChartCard from './LiveTrafficChartCard';\nvar LiveChartContainer = (function (_super) {\n __extends(LiveChartContainer, _super);\n function LiveChartContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LiveChartContainer.prototype.render = function () {\n var _a = this.props, loading = _a.loading, currentPoint = _a.currentPoint, threshold = _a.threshold, data = _a.data, t = _a.t, locale = _a.locale, timezone = _a.timezone, onOpenZoomModal = _a.onOpenZoomModal;\n return (React.createElement(LiveTrafficChartCard, { loading: loading, currentPoint: currentPoint, threshold: threshold, data: data, t: t, locale: locale, timezone: timezone, onOpenZoomModal: onOpenZoomModal }));\n };\n return LiveChartContainer;\n}(Component));\nexport { LiveChartContainer };\nLiveChartContainer.propTypes = {\n loading: PropTypes.bool,\n currentPoint: PropTypes.shape({\n time: PropTypes.number,\n value: PropTypes.number,\n completed_value: PropTypes.number,\n forecasted_value: PropTypes.number,\n }),\n data: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n value: PropTypes.number,\n completed_value: PropTypes.number,\n forecasted_value: PropTypes.number,\n })),\n threshold: PropTypes.number,\n t: PropTypes.func,\n locale: PropTypes.string,\n timezone: PropTypes.string,\n onOpenZoomModal: PropTypes.func,\n};\nvar mapStateToProps = function (state, props) { return ({\n data: selectChartRealtimeData(state, props),\n currentPoint: selectCurrentPoint(state, props),\n threshold: selectConfigMaxThreshold(state, props),\n loading: selectIsInstantDataAreLoading(state, props),\n locale: getterCurrentSiteLanguage(state),\n timezone: getterCurrentSiteTimezone(state),\n}); };\nvar mapDispatchToProps = function () { return ({}); };\nexport default connect(mapStateToProps, mapDispatchToProps)(LiveChartContainer);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ContentLoader from 'react-content-loader';\nimport '@src/commons/styles/organisms/card.scss';\nvar FigureIconCard = function (_a) {\n var icon = _a.icon, Label = _a.label, value = _a.value, loading = _a.loading, comparedLabel = _a.comparedLabel;\n return (React.createElement(\"div\", { className: \"card\" },\n React.createElement(\"img\", { className: \"card__logo\", src: icon }),\n loading && (React.createElement(\"div\", { className: \"sdm-card__data\" },\n React.createElement(\"div\", { className: \"card__label\" }, typeof Label === 'function' ? React.createElement(Label, null) : Label),\n React.createElement(ContentLoader, { style: { width: '100%', height: '30px' }, speed: 2, primaryColor: \"#f3f3f3\", secondaryColor: \"#ecebeb\" },\n React.createElement(\"rect\", { x: \"0\", y: \"30\", rx: \"5\", ry: \"5\", style: { height: 'calc(100% - 20px)', width: 'calc(100% - 40px)' } })))),\n !loading && (React.createElement(\"div\", { className: \"card__data\" },\n React.createElement(\"div\", { className: \"card__label\" }, typeof Label === 'function' ? React.createElement(Label, null) : Label),\n React.createElement(\"div\", { className: \"card__value\" }, value),\n comparedLabel && React.createElement(\"div\", { className: \"card__compared-label\" }, comparedLabel)))));\n};\nFigureIconCard.propTypes = {\n icon: PropTypes.any,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n value: PropTypes.string,\n loading: PropTypes.bool,\n comparedLabel: PropTypes.string,\n};\nexport default FigureIconCard;\n","export default __webpack_public_path__ + \"public/mean_traffic.svg\";","export default __webpack_public_path__ + \"public/dwelltime-logo.svg\";","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport _ from 'lodash';\nimport AreasDensityContainer from './density/AreasDensityContainer';\nimport SocialDistancingTableContainer from '@src/social_distancing/social_distancing_assistant/social_distancing_table';\nimport SocialDistancingTableSmall from '@src/social_distancing/social_distancing_assistant/social_distancing_table/SocialDistancingTableSmall';\nimport SocialDistancingTableBig from '@src/social_distancing/social_distancing_assistant/social_distancing_table/SocialDistancingTableBig';\nimport LiveChartContainer from './chart/LiveChartContainer';\nimport '@src/commons/styles/organisms/realtime-graphs.scss';\nimport '@src/commons/styles/molecules/chart-card.scss';\nimport '@src/commons/styles/atoms/icon.scss';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nimport { selectCurrentArea } from '@src/reporting/selectors';\nimport { getLiveAreaFromAreaId, isFloorsLoading, isRtDataLoading } from '@src/commons/floors/selectors';\nimport FigureIconCard from '@src/commons/FigureIconCard';\nimport { getDisplayValue } from '@src/live/realtimeStat/chart/LiveTrafficChartCard';\nimport { selectCurrentPoint } from '@src/live/realtime/selectors';\nimport meanTrafficLogo from '@src/social_distancing/social_distancing_monitoring/assets/mean_traffic.svg';\nimport dwellTimeLogo from '@src/reporting/flights_report/assets/dwelltime-logo.svg';\nvar RealtimeStatContainer = (function (_super) {\n __extends(RealtimeStatContainer, _super);\n function RealtimeStatContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.state = { areaSelectorOpen: false };\n _this.formatToMinutes = _this.formatToMinutes.bind(_this);\n return _this;\n }\n RealtimeStatContainer.prototype.formatToMinutes = function (data) {\n return _.round(data / 60);\n };\n RealtimeStatContainer.prototype.render = function () {\n var _a = this.props, currentLiveArea = _a.currentLiveArea, siteId = _a.siteId, rtDataLoading = _a.rtDataLoading, displaySocialDistancing = _a.displaySocialDistancing, onOpenZoomModal = _a.onOpenZoomModal, currentPoint = _a.currentPoint, displaySdaInLive = _a.displaySdaInLive, floorsLoading = _a.floorsLoading, currentSite = _a.currentSite, t = _a.t;\n var displayValue = getDisplayValue(currentPoint);\n var dwellTimeCardLabel = t('Live_Labels.dwelltime.title');\n var dwellTimeValue = _.round(_.get(_.last(_.get(currentLiveArea, 'liveData.data')), 'dwelltime') / 60);\n var dwellTimeValueLabel = dwellTimeValue < 2\n ? \"\\n \" + t('Live_Labels.dwelltime.less_than') + \"\\n 2 \" + t('Live_Labels.dwelltime.unit') + \"\\n \"\n : t('Live_Labels.dwelltime.unit', { count: dwellTimeValue });\n var labelDisplayValue = currentPoint && displayValue !== 1\n ? t('Live_Labels.traffic.unit_plural', { count: displayValue })\n : t('Live_Labels.traffic.unit', { count: displayValue });\n var trafficLabel = (currentSite === null || currentSite === void 0 ? void 0 : currentSite.site_types) === 'AIR'\n ? t('common.traffic', { ns: 'airport' })\n : t('common.traffic', { ns: 'railways' });\n var trafficLabelSubtitle = (currentSite === null || currentSite === void 0 ? void 0 : currentSite.site_types) === 'TRA' && t('common.traffic_subtitle', { ns: 'railways' });\n var TrafficLabel = function () {\n if (!trafficLabelSubtitle) {\n return trafficLabel;\n }\n return (React.createElement(React.Fragment, null,\n React.createElement(\"p\", null, trafficLabel),\n React.createElement(\"span\", { style: { fontWeight: 400 } }, trafficLabelSubtitle)));\n };\n return currentLiveArea ? (React.createElement(\"div\", { className: \"realtime-graphs__container\" },\n React.createElement(\"div\", { className: \"realtime-graphs__content\" },\n React.createElement(\"div\", { className: \"realtime-graphs__cards\" },\n React.createElement(FigureIconCard, { loading: !labelDisplayValue, icon: meanTrafficLogo, label: TrafficLabel, value: labelDisplayValue ? labelDisplayValue : 'No Data' }),\n React.createElement(FigureIconCard, { loading: rtDataLoading, icon: dwellTimeLogo, label: dwellTimeCardLabel, value: dwellTimeValueLabel })),\n React.createElement(\"div\", { className: \"realtime-graphs__area\" },\n React.createElement(\"div\", { className: \"chart-card\", style: { position: 'relative' } },\n React.createElement(LiveChartContainer, { siteId: siteId, t: t, onOpenZoomModal: onOpenZoomModal })))),\n displaySdaInLive && !floorsLoading && (React.createElement(SocialDistancingTableContainer, { siteId: siteId, t: t, SocialDistancingTableView: SocialDistancingTableBig })),\n !displaySdaInLive && displaySocialDistancing ? (React.createElement(SocialDistancingTableContainer, { siteId: siteId, t: t, SocialDistancingTableView: SocialDistancingTableSmall })) : (!displaySdaInLive && React.createElement(AreasDensityContainer, { siteId: siteId, t: t })))) : (React.createElement(\"div\", null));\n };\n return RealtimeStatContainer;\n}(Component));\nexport { RealtimeStatContainer };\nRealtimeStatContainer.propTypes = {\n siteId: PropTypes.string,\n onOpenZoomModal: PropTypes.func,\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n currentLiveArea: PropTypes.shape({\n liveData: PropTypes.shape({\n data: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n traffic: PropTypes.number,\n dwelltime: PropTypes.number,\n })),\n }),\n }),\n rtDataLoading: PropTypes.bool,\n t: PropTypes.func,\n floors: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string.isRequired,\n name: PropTypes.string,\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n })),\n displaySocialDistancing: PropTypes.bool,\n currentPoint: PropTypes.shape({\n time: PropTypes.number,\n value: PropTypes.number,\n completed_value: PropTypes.number,\n forecasted_value: PropTypes.number,\n }),\n floorsLoading: PropTypes.bool,\n displaySdaInLive: PropTypes.bool,\n};\nexport var mapStateToProps = function (state, props) {\n var siteId = props.siteId;\n var currentArea = selectCurrentArea(state, props);\n var currentLiveArea = getLiveAreaFromAreaId(siteId, _.get(currentArea, 'uuid', null))(state);\n var rtDataLoading = isRtDataLoading(siteId)(state);\n var currentSite = state.sites.data.find(function (site) { return site.uuid === siteId; });\n var currentSiteId = _.get(props.match, 'params.siteId');\n return {\n currentLiveArea: currentLiveArea,\n rtDataLoading: rtDataLoading,\n currentSite: currentSite,\n floorsLoading: isFloorsLoading(currentSiteId)(state),\n currentPoint: selectCurrentPoint(state, props),\n displaySocialDistancing: isFeatureActivated('display_social_distancing_table')(state),\n displaySdaInLive: isFeatureActivated('sda_in_live')(state),\n };\n};\nexport default withRouter(connect(mapStateToProps, {})(withTranslation(['legacy', 'airport', 'railways'])(RealtimeStatContainer)));\n","import React from 'react';\nimport ReactModal from 'react-modal';\nimport PropTypes from 'prop-types';\nimport LiveChartContainer from './LiveChartContainer';\nimport '@src/commons/styles/atoms/icon.scss';\nimport '@src/commons/styles/atoms/close-button.scss';\nvar modalStyle = {\n overlay: {\n zIndex: 1,\n width: '100%',\n backgroundColor: 'rgba(46, 49, 49, 0.5)',\n },\n content: {\n height: '400px',\n top: '50%',\n left: '10%',\n right: '10%',\n transform: 'translateY(-50%)',\n border: null,\n borderRadius: '3px',\n boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.4)',\n display: 'flex',\n flexDirection: 'column',\n padding: '0',\n paddingBottom: '1rem',\n },\n};\nvar ZoomTrafficChart = function (_a) {\n var siteId = _a.siteId, openModal = _a.openModal, onCloseZoomModal = _a.onCloseZoomModal, t = _a.t;\n return (React.createElement(ReactModal, { isOpen: openModal, style: modalStyle, onRequestClose: onCloseZoomModal, ariaHideApp: false },\n React.createElement(\"i\", { className: \"material-icons close-button icon--grey\", onClick: onCloseZoomModal }, \"close\"),\n React.createElement(LiveChartContainer, { siteId: siteId, t: t })));\n};\nZoomTrafficChart.propTypes = {\n siteId: PropTypes.string,\n openModal: PropTypes.bool,\n onCloseZoomModal: PropTypes.func,\n t: PropTypes.func,\n};\nexport default ZoomTrafficChart;\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport '@src/commons/styles/organisms/select-category.scss';\nimport '@src/commons/styles/molecules/area-selector.scss';\nimport '@src/commons/styles/molecules/search-box.scss';\nvar AreaFloorSelector = (function (_super) {\n __extends(AreaFloorSelector, _super);\n function AreaFloorSelector(props) {\n var _this = _super.call(this, props) || this;\n _this.state = { searchContent: '' };\n return _this;\n }\n AreaFloorSelector.prototype.handleSearch = function (search) {\n this.setState({ searchContent: search });\n };\n AreaFloorSelector.prototype.filterAreasToDisplay = function (areas, searchContent) {\n return _.filter(areas, function (area) { return _.includes(_.lowerCase(area.name), _.lowerCase(searchContent)); });\n };\n AreaFloorSelector.prototype.render = function () {\n var _this = this;\n var _a = this.props, className = _a.className, currentArea = _a.currentArea, onOpen = _a.onOpen, onSelectArea = _a.onSelectArea, open = _a.open, areasToMap = _a.areasToMap, t = _a.t, entireSiteLabel = _a.entireSiteLabel;\n var areasToDisplay = this.filterAreasToDisplay(areasToMap, this.state.searchContent);\n var entireSiteLabelToDisplay = entireSiteLabel ? entireSiteLabel : t('Reporting_Labels.Entire_site');\n return (React.createElement(\"div\", { className: className },\n React.createElement(\"div\", { className: open ? 'area-selector__header-open' : 'area-selector__header', onClick: onOpen },\n React.createElement(\"div\", { className: \"area-selector__title\" }, _.get(currentArea, 'name', 'Entire Site') === 'Entire Site'\n ? entireSiteLabelToDisplay\n : currentArea.name),\n React.createElement(\"i\", { className: \"material-icons\" }, open ? 'arrow_drop_up' : 'arrow_drop_down')),\n open && (React.createElement(\"div\", { className: \"select-category__list\" },\n React.createElement(\"div\", { className: \"select-category__header\" },\n React.createElement(\"div\", { className: \"search-box\" },\n React.createElement(\"i\", { className: \"search-box__search-icon material-icons\" }, \"search\"),\n React.createElement(\"input\", { type: \"text\", className: \"search-box__input search-input\", placeholder: t('search'), autoFocus: true, onChange: function (e) { return _this.handleSearch(e.target.value); }, value: this.state.searchContent }))),\n _.map(_.keys(_.groupBy(areasToDisplay, 'floor')), function (k) { return (React.createElement(\"div\", { key: k },\n k !== 'null' && (React.createElement(\"div\", { className: \"select-category__category-container\" },\n React.createElement(\"div\", { className: \"select-category__category\" }, k))),\n _.map(_.sortBy(_.filter(areasToDisplay, { floor: k === 'null' ? null : k }), 'name'), function (area) { return (React.createElement(\"div\", { onClick: function (e) { return onSelectArea(e, area.uuid); }, key: area.uuid, className: \"select-category__item\" }, area.name === 'Entire Site' ? entireSiteLabelToDisplay : area.name)); }))); })))));\n };\n return AreaFloorSelector;\n}(Component));\nexport { AreaFloorSelector };\nAreaFloorSelector.propTypes = {\n className: PropTypes.string,\n entireSiteLabel: PropTypes.string,\n areasToMap: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n })),\n currentArea: PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n }),\n open: PropTypes.bool,\n onSelectArea: PropTypes.func,\n onOpen: PropTypes.func,\n t: PropTypes.func,\n};\nexport default AreaFloorSelector;\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport _ from 'lodash';\nimport { flow, get, head, find } from 'lodash/fp';\nimport { withTranslation } from 'react-i18next';\nimport { getAreaFloor } from '@src/live/realtimeStat/density/AreasDensityContainer';\nimport ClockComponent from '@src/live/clock';\nimport Disclaimer from '@src/commons/Disclaimer';\nimport GeoMap from '@src/commons/map/GeoMap.js';\nimport SdaMapContainer from '@src/social_distancing/social_distancing_assistant/MapContainer';\nimport MapContainer from '@src/live/realtime/MapContainer';\nimport NoRtDataComponent from '@src/live/realtimeStat/NoRtDataComponent';\nimport RealtimeStatContainer from '@src/live/realtimeStat';\nimport ZoomTrafficChart from '@src/live/realtimeStat/chart/ZoomTrafficChart';\nimport { selectIsTrafficTooHigh, selectIsCurrentlyCompleted, getterCurrentSiteTimezone, selectMapAreasBasedOnSocialDistancingFeatureFlip, } from '@src/live/realtime/selectors.js';\nimport '@src/commons/styles/templates/realtime.scss';\nimport StatusMessage from './StatusMessage';\nimport { setNavigation } from '@src/navigation/actions';\nimport { getAllLiveAreas, isFloorsLoading, isNoFloor, getCurrentLiveArea, isLiveAreasLoading, findEntireSiteFloor, } from '@src/commons/floors/selectors';\nimport { isFeatureActivated, getFeatureValue } from '@src/commons/features/selector';\nimport { fetchRealtimeStats } from '@src/live/realtime/actions';\nimport ClickOutside from '@src/commons/topBar/ClickOutside';\nimport AreaFloorSelector from '@src/commons/AreaFloorSelector';\nimport { setCurrentFloor, selectArea } from '@src/commons/floors/actions';\nimport { getAreasForLive } from '@src/live/realtimeStat/selectors';\nimport { selectAllSiteAreasWithFloors, selectCurrentArea, getterSiteFloors } from '@src/reporting/selectors';\nvar RealtimeContainer = (function (_super) {\n __extends(RealtimeContainer, _super);\n function RealtimeContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n zoomChartIsOpen: false,\n };\n _this.handleCloseZoomModal = _this.handleCloseZoomModal.bind(_this);\n _this.handleOpenZoomModal = _this.handleOpenZoomModal.bind(_this);\n _this.handleOpenSelector = _this.handleOpenSelector.bind(_this);\n _this.handleSelectArea = _this.handleSelectArea.bind(_this);\n _this.handleClose = _this.handleClose.bind(_this);\n return _this;\n }\n RealtimeContainer.prototype.UNSAFE_componentWillMount = function () {\n var _a = this.props, onRealtimeInit = _a.onRealtimeInit, history = _a.history;\n onRealtimeInit({ section: 'realtime' }, history);\n };\n RealtimeContainer.prototype.handleCloseZoomModal = function () {\n this.setState({ zoomChartIsOpen: false });\n };\n RealtimeContainer.prototype.handleOpenZoomModal = function () {\n this.setState({ zoomChartIsOpen: true });\n };\n RealtimeContainer.prototype.handleOpenSelector = function () {\n this.setState({ areaSelectorOpen: !this.state.areaSelectorOpen });\n };\n RealtimeContainer.prototype.handleClose = function (e) {\n this.setState({ areaSelectorOpen: false });\n };\n RealtimeContainer.prototype.handleSelectArea = function (e, areaId) {\n var _a = this.props, onChangeArea = _a.onChangeArea, onResetEntireSite = _a.onResetEntireSite, siteId = _a.siteId, floors = _a.floors, history = _a.history, defaultFloor = _a.defaultFloor;\n if (_.isNull(areaId)) {\n onResetEntireSite(siteId, defaultFloor.uuid, history);\n }\n else {\n onChangeArea(siteId, getAreaFloor(floors, areaId).uuid, areaId, history);\n }\n this.setState(function (prevState) { return ({\n areaSelectorOpen: !prevState.areaSelectorOpen,\n }); });\n e.stopPropagation();\n e.preventDefault();\n };\n RealtimeContainer.prototype.render = function () {\n var _a = this.props, floorsLoading = _a.floorsLoading, noFloors = _a.noFloors, liveAreas = _a.liveAreas, currentSite = _a.currentSite, liveAreasLoading = _a.liveAreasLoading, currentLiveArea = _a.currentLiveArea, isTrafficTooHigh = _a.isTrafficTooHigh, isCurrentlyCompleted = _a.isCurrentlyCompleted, mapAreas = _a.mapAreas, selectedAreas = _a.selectedAreas, currentArea = _a.currentArea, showDataDisclaimer = _a.showDataDisclaimer, liveDisclaimerMessage = _a.liveDisclaimerMessage, isWrongDataWifi = _a.isWrongDataWifi, displaySdaInLive = _a.displaySdaInLive, t = _a.t, i18n = _a.i18n, siteId = _a.siteId;\n var zoomChartIsOpen = this.state.zoomChartIsOpen;\n var entireSiteLabel = (currentSite === null || currentSite === void 0 ? void 0 : currentSite.site_types) === 'AIR'\n ? t('common.entire_site', { ns: 'airport' })\n : t('common.entire_site', { ns: 'railways' });\n var wrongWifiDataLabel = t('wrong_wifi_data', { ns: 'common' });\n return (React.createElement(\"div\", { className: \"realtime\", id: \"realtime\" },\n _.get(currentSite, 'name') && (React.createElement(\"div\", { className: \"realtime__header\" },\n React.createElement(\"div\", { className: \"realtime__title\", style: { display: 'flex', alignItems: 'center' } },\n React.createElement(\"div\", { style: { marginRight: 10 } }, _.get(currentSite, 'display_name') || _.get(currentSite, 'name')),\n React.createElement(\"div\", { className: \"realtime_title_separator\" }),\n selectedAreas.length === 1 && React.createElement(\"div\", { className: \"realtime-graphs__title\" }, entireSiteLabel),\n currentLiveArea && selectedAreas.length > 1 && (React.createElement(ClickOutside, { onClickOutside: this.handleClose },\n React.createElement(AreaFloorSelector, { className: \"area-selector realtime-graphs__area-selector realtime-graphs__area-selector_padding\", currentArea: currentArea, entireSiteLabel: entireSiteLabel, areasToMap: selectedAreas, onOpen: this.handleOpenSelector, onSelectArea: this.handleSelectArea, t: t, open: this.state.areaSelectorOpen })))),\n currentSite.timezone && (React.createElement(\"div\", { className: \"realtime__clock\" },\n React.createElement(ClockComponent, { timezoneClock: _.get(currentSite, 'timezone') }))))),\n React.createElement(\"div\", { className: \"realtime__disclaimer\" },\n _.get(currentLiveArea, 'isRtInvalid', false) && (React.createElement(StatusMessage, { message: t('Live_Labels.INVALID_RT_DATA') })),\n isTrafficTooHigh && React.createElement(StatusMessage, { message: t('Live_Labels.threshold_exceeded') }),\n isCurrentlyCompleted && React.createElement(StatusMessage, { message: t('Live_Labels.data_completed') }),\n isWrongDataWifi && React.createElement(StatusMessage, { message: wrongWifiDataLabel }),\n !_.get(currentLiveArea, 'isRtInvalid', false) && showDataDisclaimer && (React.createElement(Disclaimer, { message: t(\"Live_Labels.no_recette_data\") })),\n liveDisclaimerMessage != null && (React.createElement(Disclaimer, { outlined: true, message: _.get(liveDisclaimerMessage, i18n.language) || t('Live_Labels.live_disclaimer') }))),\n React.createElement(\"div\", { className: \"realtime__content\" },\n (!liveAreasLoading || noFloors) && (React.createElement(\"div\", { className: \"realtime-map\" },\n !floorsLoading && !noFloors && !displaySdaInLive && React.createElement(MapContainer, { areas: mapAreas, t: t }),\n !floorsLoading && !noFloors && displaySdaInLive && React.createElement(SdaMapContainer, { areas: mapAreas, t: t }),\n !floorsLoading && noFloors && (React.createElement(GeoMap, { lat: _.get(currentSite, 'latitude'), lng: _.get(currentSite, 'longitude'), currentFloor: {\n bounds: [\n [0, 0],\n [0, 0],\n ],\n } })))),\n React.createElement(\"div\", { className: \"realtime-graph\" },\n !_.isEmpty(liveAreas) && (React.createElement(RealtimeStatContainer, { siteId: currentSite.uuid, onOpenZoomModal: this.handleOpenZoomModal })),\n ((!floorsLoading && noFloors) || (!liveAreasLoading && _.isEmpty(liveAreas))) && (React.createElement(NoRtDataComponent, { siteName: _.get(currentSite, 'display_name') || _.get(currentSite, 'name'), t: t })))),\n !_.isEmpty(liveAreas) && (React.createElement(ZoomTrafficChart, { siteId: currentSite.uuid, openModal: zoomChartIsOpen, onCloseZoomModal: this.handleCloseZoomModal, t: t }))));\n };\n return RealtimeContainer;\n}(Component));\nexport { RealtimeContainer };\nRealtimeContainer.propTypes = {\n onRealtimeInit: PropTypes.func,\n currentSite: PropTypes.shape({\n uuid: PropTypes.string,\n }),\n match: PropTypes.shape({\n params: PropTypes.shape({\n siteId: PropTypes.string,\n }),\n }),\n floorsLoading: PropTypes.bool,\n liveAreas: PropTypes.arrayOf(PropTypes.shape({\n liveData: PropTypes.shape({\n data: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n traffic: PropTypes.number,\n dwelltime: PropTypes.number,\n })),\n }),\n })),\n noFloors: PropTypes.bool,\n liveAreasLoading: PropTypes.bool,\n currentLiveArea: PropTypes.shape({\n liveData: PropTypes.shape({\n data: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n traffic: PropTypes.number,\n dwelltime: PropTypes.number,\n })),\n }),\n }),\n isTrafficTooHigh: PropTypes.bool,\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n isWrongDataWifi: PropTypes.bool,\n t: PropTypes.func,\n isCurrentlyCompleted: PropTypes.bool,\n siteId: PropTypes.string,\n onResetEntireSite: PropTypes.func,\n mapAreas: PropTypes.arrayOf(PropTypes.shape({\n color: PropTypes.string,\n name: PropTypes.string,\n })),\n currentArea: PropTypes.shape({\n name: PropTypes.string,\n color: PropTypes.string,\n is_used_for_live: PropTypes.bool,\n geometry: PropTypes.arrayOf(PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number,\n })),\n }),\n floors: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string.isRequired,\n name: PropTypes.string,\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n })),\n onChangeArea: PropTypes.func,\n currentFloor: PropTypes.shape({\n uuid: PropTypes.string.isRequired,\n name: PropTypes.string,\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n }),\n selectedAreas: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n })),\n displaySdaInLive: PropTypes.bool,\n showDataDisclaimer: PropTypes.bool,\n liveDisclaimerMessage: PropTypes.object,\n i18n: PropTypes.object,\n};\nexport var mapStateToProps = function (state, props) {\n var currentSiteId = _.get(props.match, 'params.siteId');\n var liveAreas = getAllLiveAreas(currentSiteId)(state);\n var currentArea = selectCurrentArea(state, props);\n var currentSite = flow(get('sites.data'), currentSiteId ? find({ uuid: currentSiteId }) : head)(state);\n var allSitesAreasWithFloors = selectAllSiteAreasWithFloors(state, props);\n var selectedAreas = Array.isArray(allSitesAreasWithFloors) && allSitesAreasWithFloors.length > 1\n ? getAreasForLive(currentSite.uuid, allSitesAreasWithFloors)(state)\n : [];\n return {\n currentArea: currentArea,\n currentSite: currentSite,\n floorsLoading: isFloorsLoading(currentSiteId)(state),\n noFloors: isNoFloor(currentSiteId)(state),\n liveAreas: liveAreas,\n selectedAreas: selectedAreas,\n liveAreasLoading: isLiveAreasLoading(currentSiteId)(state),\n defaultFloor: findEntireSiteFloor(currentSite.uuid, 'live')(state),\n currentLiveArea: getCurrentLiveArea(liveAreas)(state),\n floors: getterSiteFloors(state, props),\n isTrafficTooHigh: selectIsTrafficTooHigh(state, props),\n isCurrentlyCompleted: selectIsCurrentlyCompleted(state, props),\n getTimezoneOfCurrentSite: getterCurrentSiteTimezone(state),\n mapAreas: selectMapAreasBasedOnSocialDistancingFeatureFlip(state, props),\n showDataDisclaimer: isFeatureActivated('sfi_data_not_validated')(state),\n liveDisclaimerMessage: getFeatureValue('live_disclaimer')(state),\n isWrongDataWifi: isFeatureActivated('wrong_wifi_data')(state),\n displaySdaInLive: isFeatureActivated('sda_in_live')(state),\n };\n};\nexport var mapDispatchToProps = function (dispatch) { return ({\n onRealtimeInit: function (params, history) {\n dispatch(setNavigation(params));\n dispatch(fetchRealtimeStats(history));\n },\n onChangeArea: function (siteId, floorId, areaId, history) {\n dispatch(setCurrentFloor(siteId, floorId, history));\n dispatch(selectArea(siteId, floorId, areaId, history));\n },\n onResetEntireSite: function (siteId, floorId, history) {\n dispatch(setCurrentFloor(siteId, floorId, history));\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(withTranslation(['legacy', 'airport', 'railways', 'common'])(RealtimeContainer)));\n","import { __assign } from \"tslib\";\nimport { createSelector } from 'reselect';\nimport _ from 'lodash';\nimport { getCurrentSiteId, getCurrentFloorId, getCurrentSiteId2, getCurrentFloorId2, } from '@src/navigation/selectors';\nimport { flow, get, head, find, getOr, isEmpty } from 'lodash/fp';\nexport var getterSiteFloors = createSelector(function (state) { return state.floors; }, getCurrentSiteId(), function (floors, siteId) { return floors[siteId]; });\nexport var getterSiteFloorsData = createSelector(function (state) { return state.floors; }, getCurrentSiteId2, function (floors, siteId) { return _.filter(_.get(floors[siteId], 'data', []), function (f) { return !_.isEmpty(f.units.areas); }); });\nexport var getterSiteConfig = createSelector(function (state) { return state.configs; }, getCurrentSiteId(), function (configs, siteId) { return configs[siteId]; });\nexport var getterSiteJourneys = createSelector(getCurrentSiteId(), function (state) { return state.journeys; }, function (siteId, journeys) { return _.get(journeys[siteId], 'data', []); });\nexport var getCurrentJourney = createSelector(getterSiteJourneys, function (journeys) {\n return _.find(journeys, 'selected');\n});\nexport var getCurrentSite = createSelector(function (state) { return state.sites; }, getCurrentSiteId(), function (sites, siteId) { return flow(get('data'), siteId ? find({ uuid: siteId }) : head)(sites); });\nexport var isNoFloor = createSelector(getterSiteFloors, function (floors) {\n return flow(getOr([], 'data'), isEmpty)(floors);\n});\nexport var isFloorsLoading = createSelector(getterSiteFloors, function (floors) {\n return flow(getOr(true, 'loading'))(floors);\n});\nexport var getterSiteLiveAreas = createSelector(function (state) { return state.liveAreas; }, getCurrentSiteId2, function (liveAreas, siteId) { return _.get(liveAreas[siteId], 'data', []); });\nexport var isLiveAreasLoading = createSelector(function (state) { return state.liveAreas; }, getCurrentSiteId2, function (liveAreas, siteId) { return _.get(liveAreas[siteId], 'loading', true); });\nexport var getterCurrentFloor = createSelector(function (state) { return state.floors; }, getCurrentSiteId2, getCurrentFloorId2, function (floors, siteId, floorId) { return _.find(_.get(floors[siteId], 'data', []), { uuid: floorId }); });\nexport var selectMapAreas = createSelector(getterSiteFloors, getCurrentFloorId(), function (floors, floorId) {\n return _.chain(floors)\n .get('data', [])\n .find({ uuid: floorId })\n .get('units.areas', [])\n .filter(function (area, idx, areas) { return (areas.length > 1 ? !area.is_entire_site : true); })\n .value();\n});\nexport var getFormatedJourneys = createSelector(getterSiteJourneys, function (journeys) {\n return _.map(journeys, function (journey) { return ({\n selected: journey.selected,\n id: journey.id,\n from: journey.area_from.name,\n fromUuid: journey.area_from.uuid,\n to: journey.area_to.name,\n toUuid: journey.area_to.uuid,\n max: _.round(journey.dwelltime_max / 60),\n min: _.round(journey.dwelltime_min / 60),\n }); });\n});\nexport var selectMapAreasCurrentTraffic = createSelector(getterCurrentFloor, getterSiteLiveAreas, function (floor, liveAreas) {\n return _.chain(_.get(floor, 'units.areas', []))\n .filter(function (area) { return _.find(liveAreas, { area: area.uuid }); })\n .filter(function (area, idx, areas) { return (areas.length > 1 ? !area.is_entire_site : true); })\n .map(function (area) { return (__assign(__assign({}, area), { thresholdColor: 'var(--primarycolor)' })); })\n .value();\n});\nvar formatAreasToPolygons = function (areas) {\n var isEntireSite = _.every(areas, function (a) { return !a.selected; });\n return _.map(areas, function (area) { return (__assign(__assign({}, area), { color: area.thresholdColor, borderColor: isEntireSite || area.selected ? '#FFF' : area.thresholdColor, opacity: area.fillOpacity || 1, hasTooltip: !area.is_entire_site && area.geometry.length > 2, noClick: area.isInError || area.is_entire_site })); });\n};\nexport var selectMapPolygonsActual = createSelector(selectMapAreasCurrentTraffic, function (areas) {\n return formatAreasToPolygons(areas);\n});\nexport var selectMapPicturesAllAreas = createSelector(getterSiteFloorsData, getCurrentFloorId2, function (floors, floorId) {\n return _.chain(floors)\n .orderBy(['level'], ['desc'])\n .map(function (floor) { return (__assign(__assign({}, floor), { name: \"\" + floor.level, image: floor.map_picture, isSelected: floor.uuid === floorId, bounds: floor.bounds })); })\n .value();\n});\nexport var selectAllMapPolygons = createSelector(getCurrentJourney, getterCurrentFloor, function (journey, floor) {\n var areas = _.get(floor, 'units.areas');\n var isEntireSite = _.every(areas, function (a) { return !a.selected; });\n var getColor = function (area, journey) {\n if (area.uuid === _.get(journey, 'area_from.uuid')) {\n return '#0799EC';\n }\n if (area.uuid === _.get(journey, 'area_to.uuid')) {\n return '#E8505B';\n }\n return 'var(--primarycolor)';\n };\n var getOpacity = function (area, journey) {\n if (area.uuid === _.get(journey, 'area_from.uuid')) {\n return 1;\n }\n if (area.uuid === _.get(journey, 'area_to.uuid')) {\n return 1;\n }\n return 0.2;\n };\n return _.map(areas, function (a) { return (__assign(__assign({}, a), { borderColor: isEntireSite || a.uuid === journey.fromUuid || a.uuid === journey.toUuid\n ? '#FFF'\n : 'var(--primarycolor)', color: getColor(a, journey), opacity: getOpacity(a, journey), noClick: a.isInError || a.is_entire_site, hasTooltip: !a.is_entire_site && a.geometry.length > 2 })); });\n});\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport _ from 'lodash';\nimport { selectArea, setCurrentFloor } from '@src/commons/floors/actions';\nimport { getCurrentSiteId2 } from '@src/navigation/selectors';\nimport { selectIsMapLoading, selectMapBounds, } from '@src/social_distancing/social_distancing_assistant/selectors';\nimport { selectAllMapPolygons, selectMapPicturesAllAreas } from '@src/live/walkingTimes/selectors';\nimport PictureMap from '@src/commons/map/PictureMap';\nimport PicturePicker from '@src/commons/map/PicturePicker';\nimport GeoMap from '@src/commons/map/GeoMap';\nimport '@src/commons/styles/organisms/realtime-carto.scss';\nvar MapContainer = (function (_super) {\n __extends(MapContainer, _super);\n function MapContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.handleSelectPolygon = _this.handleSelectPolygon.bind(_this);\n _this.handleSelectPicture = _this.handleSelectPicture.bind(_this);\n return _this;\n }\n MapContainer.prototype.handleSelectPicture = function (e, pictureId) {\n var _a = this.props, onChangePicture = _a.onChangePicture, siteId = _a.siteId, history = _a.history;\n onChangePicture(siteId, pictureId, history);\n e.stopPropagation();\n e.preventDefault();\n };\n MapContainer.prototype.handleSelectPolygon = function (polygonId) {\n var _a = this.props, siteId = _a.siteId, pictures = _a.pictures, onSelectPolygon = _a.onSelectPolygon, history = _a.history;\n var currentPicture = _.find(pictures, function (p) { return p.isSelected; });\n onSelectPolygon(siteId, currentPicture.uuid, polygonId, history);\n };\n MapContainer.prototype.render = function () {\n var _a = this.props, loading = _a.loading, pictures = _a.pictures, noClick = _a.noClick, bounds = _a.bounds, polygonsActual = _a.polygonsActual;\n var currentPicture = _.find(pictures, function (p) { return p.isSelected; });\n return loading ? (React.createElement(\"div\", null, \"Loading ...\")) : (React.createElement(\"div\", { className: \"realtime-map__content\" },\n pictures.length > 1 && (React.createElement(PicturePicker, { pictures: pictures, onSelectPicture: this.handleSelectPicture })),\n _.get(currentPicture, 'image') ? (React.createElement(PictureMap, { pictures: pictures, onSelectPolygon: this.handleSelectPolygon, noClick: noClick, polygons: polygonsActual })) : (React.createElement(GeoMap, { bounds: bounds, polygons: polygonsActual, onSelectPolygon: this.handleSelectPolygon, noClick: noClick }))));\n };\n return MapContainer;\n}(Component));\nexport { MapContainer };\nMapContainer.propTypes = {\n loading: PropTypes.bool,\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n polygonsActual: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n color: PropTypes.string,\n borderColor: PropTypes.string,\n opacity: PropTypes.number,\n hasTooltip: PropTypes.bool,\n noClick: PropTypes.bool,\n geometry: PropTypes.arrayOf(PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number,\n })),\n })),\n onChangePicture: PropTypes.func,\n onSelectPolygon: PropTypes.func,\n noClick: PropTypes.bool,\n siteId: PropTypes.string,\n pictures: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n image: PropTypes.string,\n isSelected: PropTypes.bool,\n name: PropTypes.string,\n })),\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n};\nexport var mapStateToProps = function (state, props) {\n return {\n siteId: getCurrentSiteId2(state),\n loading: selectIsMapLoading(state, props),\n pictures: selectMapPicturesAllAreas(state, props),\n polygonsActual: selectAllMapPolygons(state, props),\n bounds: selectMapBounds(state, props),\n };\n};\nexport var mapDispatchToProps = function (dispatch) { return ({\n onChangePicture: function (siteId, pictureId, history) {\n dispatch(setCurrentFloor(siteId, pictureId, history));\n },\n onSelectPolygon: function (siteId, pictureId, polygonId, history) {\n dispatch(selectArea(siteId, pictureId, polygonId, history));\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(MapContainer));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport '@src/commons/styles/organisms/journeystimes-list.scss';\nimport '@src/commons/styles/molecules/journeytimes-row.scss';\nvar JourneysTimesList = function (_a) {\n var journeys = _a.journeys, t = _a.t, onSelectJourney = _a.onSelectJourney;\n return (React.createElement(\"div\", { className: \"journeystimes-list\" },\n React.createElement(\"div\", { className: \"journeystimes-list__header\" },\n React.createElement(\"div\", { className: \"journeystimes-list__header__title field--big\" }, t('Live_Labels.WalkingTimes.journeystimestable.from')),\n React.createElement(\"div\", { className: \"journeystimes-list__header__title field--big\" }, t('Live_Labels.WalkingTimes.journeystimestable.to')),\n React.createElement(\"div\", { className: \"journeystimes-list__header__title field--small\" }, \"Min\"),\n React.createElement(\"div\", { className: \"journeystimes-list__header__title field--small\" }, \"Max\")),\n React.createElement(\"div\", { className: \"journeystimes-list__content\" }, _.map(journeys, function (journey, idx) { return (React.createElement(\"div\", { key: idx, className: \"journeytimes-item\", onClick: function (e) { return onSelectJourney(journey); }, style: { backgroundColor: journey.selected ? '#D9E3E5' : '' } },\n React.createElement(\"div\", { className: \"field--big\" },\n React.createElement(\"div\", { title: journey.from, className: \"journeytimes-item__field \" + (journey.selected ? 'journeytimes-item__field--selected-start' : '') }, journey.from)),\n React.createElement(\"div\", { className: \"field--big\", \"data-tip\": journey.to },\n React.createElement(\"div\", { title: journey.to, className: \"journeytimes-item__field \" + (journey.selected ? 'journeytimes-item__field--selected-end' : '') }, journey.to)),\n React.createElement(\"div\", { className: \"journeytimes-item__field field--small\" }, journey.min > 1 ? journey.min + \" mins\" : journey.min + \" min\"),\n React.createElement(\"div\", { className: \"journeytimes-item__field field--small\" }, journey.max > 1 ? journey.max + \" mins\" : journey.max + \" min\"))); }))));\n};\nJourneysTimesList.propTypes = {\n journeys: PropTypes.arrayOf(PropTypes.shape({\n from: PropTypes.string,\n to: PropTypes.to,\n min: PropTypes.number,\n max: PropTypes.number,\n })),\n t: PropTypes.func,\n onSelectJourney: PropTypes.func,\n};\nexport default JourneysTimesList;\n","export var fetchWalkingTimesStats = function (history) { return ({\n type: 'FETCH_TRAVEL_TIMES_STATS',\n history: history,\n}); };\nexport var tryFetchJourneys = function (siteId) { return ({\n type: 'FETCH_JOURNEYS',\n siteId: siteId,\n}); };\nexport var fetchJourneysSuccess = function (siteId, data) { return ({\n type: 'FETCH_JOURNEYS_SUCCESS',\n siteId: siteId,\n data: data,\n}); };\nexport var fetchJourneysFailure = function (siteId) { return ({\n type: 'FETCH_JOURNEYS_FAILURE',\n siteId: siteId,\n}); };\nexport var selectJourney = function (siteId, journeyId) { return ({\n type: 'SELECT_JOURNEY',\n siteId: siteId,\n journeyId: journeyId,\n}); };\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport JourneysTimesList from '@src/live/walkingTimes/JourneysTimesList';\nimport '@src/commons/styles/organisms/journeystimes-list.scss';\nimport { getFormatedJourneys } from '@src/live/walkingTimes/selectors';\nimport { selectJourney } from './actions';\nimport { getCurrentSiteId2 } from '@src/navigation/selectors';\nvar JourneysTimesTableContainer = (function (_super) {\n __extends(JourneysTimesTableContainer, _super);\n function JourneysTimesTableContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.handleJourneySelection = _this.handleJourneySelection.bind(_this);\n return _this;\n }\n JourneysTimesTableContainer.prototype.handleJourneySelection = function (journey) {\n var _a = this.props, siteId = _a.siteId, selectJourney = _a.selectJourney;\n selectJourney(siteId, journey.id);\n };\n JourneysTimesTableContainer.prototype.render = function () {\n var _a = this.props, journeys = _a.journeys, t = _a.t;\n var title = t('Live_Labels.WalkingTimes.journeystimestable.title');\n var subTitle = t('Live_Labels.WalkingTimes.journeystimestable.subtitles');\n return (React.createElement(\"div\", { className: \"journeystimes\" },\n React.createElement(\"div\", { className: \"journeystimes__title title\" },\n title,\n \" \",\n React.createElement(\"span\", { style: { fontSize: '0.7rem' } }, subTitle)),\n React.createElement(JourneysTimesList, { journeys: journeys, t: t, onSelectJourney: this.handleJourneySelection })));\n };\n return JourneysTimesTableContainer;\n}(Component));\nexport { JourneysTimesTableContainer };\nJourneysTimesTableContainer.propTypes = {\n journeys: PropTypes.arrayOf(PropTypes.shape({\n from: PropTypes.string,\n to: PropTypes.string,\n max: PropTypes.number,\n min: PropTypes.number,\n })),\n t: PropTypes.func,\n selectJourney: PropTypes.func,\n siteId: PropTypes.string,\n};\nexport var mapStateToProps = function (state, props) { return ({\n journeys: getFormatedJourneys(state),\n siteId: getCurrentSiteId2(state),\n}); };\nvar mapDispatchToProps = function (dispatch) { return ({\n selectJourney: function (siteId, journeyId) {\n dispatch(selectJourney(siteId, journeyId));\n },\n}); };\nexport default connect(mapStateToProps, mapDispatchToProps)(JourneysTimesTableContainer);\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport _ from 'lodash';\nimport { connect } from 'react-redux';\nimport '@src/commons/styles/templates/realtime.scss';\nimport MapContainer from '@src/live/walkingTimes/MapContainer';\nimport GeoMap from '@src/commons/map/GeoMap.js';\nimport ClockComponent from '@src/live/clock';\nimport JourneysTimesTableContainer from '@src/live/walkingTimes/JourneysTimesTableContainer';\nimport { getCurrentSite, isNoFloor, isFloorsLoading, selectMapAreas, isLiveAreasLoading, } from '@src/live/walkingTimes/selectors';\nimport { setNavigation } from '@src/navigation/actions';\nimport { fetchWalkingTimesStats } from '@src/live/walkingTimes/actions';\nimport '@src/commons/styles/templates/walkingtimes.scss';\nvar WalkingTimesContainer = (function (_super) {\n __extends(WalkingTimesContainer, _super);\n function WalkingTimesContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n WalkingTimesContainer.prototype.UNSAFE_componentWillMount = function () {\n var _a = this.props, onWalkingTimesInit = _a.onWalkingTimesInit, history = _a.history;\n onWalkingTimesInit({ section: 'walkingTimes', areaId: null }, history);\n };\n WalkingTimesContainer.prototype.render = function () {\n var _a = this.props, floorsLoading = _a.floorsLoading, liveAreasLoading = _a.liveAreasLoading, noFloors = _a.noFloors, mapAreas = _a.mapAreas, currentSite = _a.currentSite, t = _a.t;\n return (React.createElement(\"div\", { className: \"walkingtimes\" },\n React.createElement(\"div\", { className: \"walkingtimes__header\" },\n React.createElement(\"div\", { className: \"walkingtimes__title\" }, _.get(currentSite, 'display_name') || _.get(currentSite, 'name')),\n React.createElement(ClockComponent, { timezoneClock: _.get(currentSite, 'timezone') })),\n React.createElement(\"div\", { className: \"walkingtimes__content\" },\n React.createElement(\"div\", { className: \"walkingtimes-map\" },\n !liveAreasLoading && !floorsLoading && !noFloors && (React.createElement(MapContainer, { areas: mapAreas, noClick: true, t: t })),\n !liveAreasLoading && !floorsLoading && noFloors && (React.createElement(GeoMap, { noClick: true, lat: _.get(currentSite, 'latitude'), lng: _.get(currentSite, 'longitude'), currentFloor: {\n bounds: [\n [0, 0],\n [0, 0],\n ],\n } }))),\n React.createElement(\"div\", { className: \"walkingtimes-table\" },\n React.createElement(JourneysTimesTableContainer, { t: t })))));\n };\n return WalkingTimesContainer;\n}(Component));\nexport { WalkingTimesContainer };\nWalkingTimesContainer.propTypes = {\n onWalkingTimesInit: PropTypes.func,\n mapAreas: PropTypes.arrayOf(PropTypes.shape({\n color: PropTypes.string,\n name: PropTypes.name,\n })),\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n currentSite: PropTypes.shape({\n uuid: PropTypes.string,\n }),\n noFloors: PropTypes.bool,\n floorsLoading: PropTypes.bool,\n liveAreasLoading: PropTypes.bool,\n t: PropTypes.func,\n};\nexport var mapStateToProps = function (state, props) { return ({\n floorsLoading: isFloorsLoading(state),\n noFloors: isNoFloor(state),\n mapAreas: selectMapAreas(state),\n currentSite: getCurrentSite(state),\n liveAreasLoading: isLiveAreasLoading(state),\n}); };\nexport var mapDispatchToProps = function (dispatch) { return ({\n onWalkingTimesInit: function (params, history) {\n dispatch(setNavigation(params));\n dispatch(fetchWalkingTimesStats(history));\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(WalkingTimesContainer));\n","import { __assign, __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { Route, Switch, withRouter } from 'react-router-dom';\nimport { setNavigation } from '../navigation/actions';\nimport '@src/commons/styles/templates/monitoring.scss';\nimport RealtimeContainer from '@src/live/realtime';\nimport WalkingTimesContainer from '@src/live/walkingTimes';\nimport { fetchConfig2 } from '@src/commons/configs/actions';\nimport { getDefaultFloor } from '@src/commons/floors/sagas';\nimport { isConfigFetched } from '@src/commons/configs/selectors';\nimport _ from 'lodash';\nvar LiveContainer = (function (_super) {\n __extends(LiveContainer, _super);\n function LiveContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LiveContainer.prototype.UNSAFE_componentWillMount = function () {\n var _a = this.props, initLiveApp = _a.initLiveApp, match = _a.match, history = _a.history;\n initLiveApp({ app: 'live', areaId: null, floorId: _.get(getDefaultFloor(), 'uuid') }, match.params.siteId, history);\n };\n LiveContainer.prototype.shouldComponentUpdate = function (nextProps, nextState) {\n var _a = this.props, match = _a.match, t = _a.t, configFetched = _a.configFetched;\n var isSiteIdUpdated = nextProps.match.params.siteId !== match.params.siteId;\n var isSectionUpdated = nextProps.match.params.section !== match.params.section;\n var isTUpdated = t !== nextProps.t;\n var isConfigFetchedUpdated = configFetched !== nextProps.configFetched;\n return isSiteIdUpdated || isSectionUpdated || isTUpdated || isConfigFetchedUpdated;\n };\n LiveContainer.prototype.render = function () {\n var _a = this.props, t = _a.t, match = _a.match, configFetched = _a.configFetched;\n return (React.createElement(\"div\", { className: \"live\" }, configFetched && (React.createElement(Switch, null,\n React.createElement(Route, { exact: true, path: \"/v2/live/:siteId?\", component: function () { return React.createElement(RealtimeContainer, { siteId: match.params.siteId }); } }),\n React.createElement(Route, { exact: true, path: \"/v2/live/:siteId?/realtime\", component: function () { return React.createElement(RealtimeContainer, { siteId: match.params.siteId }); } }),\n React.createElement(Route, { exact: true, path: \"/v2/live/:siteId?/walkingTimes\", component: function () { return React.createElement(WalkingTimesContainer, { siteId: match.params.siteId, t: t }); } })))));\n };\n return LiveContainer;\n}(Component));\nexport { LiveContainer };\nLiveContainer.propTypes = {\n initLiveApp: PropTypes.func,\n match: PropTypes.shape({\n params: PropTypes.shape({\n siteId: PropTypes.string,\n section: PropTypes.string,\n }),\n }),\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n t: PropTypes.func,\n configFetched: PropTypes.bool,\n};\nvar mapStateToProps = function (state, props) { return ({\n configFetched: isConfigFetched(state, __assign(__assign({}, props), { siteId: props.match.params.siteId })),\n}); };\nexport var mapDispatchToProps = function (dispatch) { return ({\n initLiveApp: function (params, siteId, history) {\n dispatch(setNavigation(params));\n dispatch(fetchConfig2(siteId, history));\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(LiveContainer));\n","import moment from 'moment';\nimport _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport CalendarHeatmap from 'react-calendar-heatmap';\nimport ReactTooltip from 'react-tooltip';\nimport '@src/commons/styles/organisms/heatmap-calendar.scss';\nimport '@src/commons/styles/organisms/metric-section.scss';\nexport var computeTooltipLabel = function (value, t, lastdate) {\n if (!value.date)\n return '';\n if (!moment(value.date, 'YYYY-MM-DD').isSame(moment(lastdate, 'YYYY-MM-DD'), 'month'))\n return '';\n if (!value.reason)\n return t('Monitoring_Labels.Jplus1.export_ok') + ' ' + moment(value.date).format('L');\n return t(\"Monitoring_Labels.Jplus1.\" + value.reason) + ' ' + moment(value.date).format('L');\n};\nvar getArrayOfDatesByMonth = function () {\n return _.reverse(_.map(_.range(0, 12), function (numMonth) {\n var startOfMonth = moment().subtract(numMonth, 'months').startOf('month').format('YYYY-MM-DD');\n var endOfMonth = moment().subtract(numMonth, 'months').endOf('month').format('YYYY-MM-DD');\n return [startOfMonth, endOfMonth];\n }));\n};\nvar Jplus1 = function (_a) {\n var dates = _a.dates, t = _a.t;\n return (React.createElement(\"div\", { className: \"metric-section\" },\n React.createElement(\"div\", { className: \"metric-section__header\" },\n React.createElement(\"div\", { className: \"subtitle\" }, t('Monitoring_Labels.Summary.Jplus1.title'))),\n React.createElement(\"div\", { className: \"metric-section__content heatmap-calendar\" },\n React.createElement(\"div\", { className: \"heatmap-calendar__container\" },\n _.map(getArrayOfDatesByMonth(), function (datesMonth, idx) { return (React.createElement(\"div\", { key: idx, className: \"heatmap-calendar__month\" },\n React.createElement(CalendarHeatmap, { monthLabels: moment.months(), weekdayLabels: idx % 6 === 0 ? moment.weekdaysShort() : [], startDate: moment(datesMonth[0], 'YYYY-MM-DD').subtract(2, 'days').format('YYYY-MM-DD'), endDate: datesMonth[1], values: dates, showWeekdayLabels: true, showMonthLabels: true, classForValue: function (value) {\n if (!value) {\n return 'color-empty';\n }\n if (!moment(value.date, 'YYYY-MM-DD').isSame(moment(datesMonth[1], 'YYYY-MM-DD'), 'month')) {\n return 'color-null';\n }\n if (value.status === 'ERROR') {\n return 'color-ko';\n }\n if (value.status === 'OK') {\n return 'color-ok';\n }\n if (value.status === 'WARNING') {\n return 'color-warning';\n }\n }, gutterSize: 0.5, tooltipDataAttrs: function (value) { return ({\n 'data-tip': computeTooltipLabel(value, t, datesMonth[1]),\n }); } }))); }),\n React.createElement(ReactTooltip, { t: t })))));\n};\nJplus1.propTypes = {\n dates: PropTypes.arrayOf(PropTypes.shape({\n count: PropTypes.number,\n date: PropTypes.string,\n })),\n t: PropTypes.func,\n};\nexport default Jplus1;\n","export var fetchJplus1Dates = function (siteId) { return ({\n type: 'FETCH_JPLUS1_DATES',\n siteId: siteId,\n}); };\nexport var fetchJplus1DatesSuccess = function (siteId, data) { return ({\n type: 'FETCH_JPLUS1_DATES_SUCCESS',\n siteId: siteId,\n data: data,\n}); };\nexport var fetchJplus1DatesFailure = function (siteId) { return ({\n type: 'FETCH_JPLUS1_DATES_FAILURE',\n siteId: siteId,\n}); };\nexport var fetchLastExportStatus = function (siteId) { return ({\n type: 'FETCH_LAST_EXPORT_STATUS',\n siteId: siteId,\n}); };\nexport var fetchLastExportStatusSuccess = function (siteId, status, reason) { return ({\n type: 'FETCH_LAST_EXPORT_STATUS_SUCCESS',\n siteId: siteId,\n status: status,\n reason: reason,\n}); };\nexport var fetchLastExportStatusFailure = function (siteId) { return ({\n type: 'FETCH_LAST_EXPORT_STATUS_FAILURE',\n siteId: siteId,\n}); };\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport Jplus1 from './jplus1';\nimport { fetchJplus1Dates } from './actions';\nimport { setNavigation } from '@src/navigation/actions';\nvar Jplus1Container = (function (_super) {\n __extends(Jplus1Container, _super);\n function Jplus1Container() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Jplus1Container.prototype.UNSAFE_componentWillMount = function () {\n var _a = this.props, siteId = _a.siteId, onJPlus1Init = _a.onJPlus1Init;\n onJPlus1Init(siteId);\n };\n Jplus1Container.prototype.render = function () {\n var _a = this.props, dates = _a.dates, t = _a.t;\n return React.createElement(Jplus1, { dates: dates, t: t });\n };\n return Jplus1Container;\n}(Component));\nexport { Jplus1Container };\nJplus1Container.propTypes = {\n dates: PropTypes.arrayOf(PropTypes.shape({\n date: PropTypes.string,\n })),\n siteId: PropTypes.string,\n onJPlus1Init: PropTypes.func,\n t: PropTypes.func,\n};\nexport var mapStateToProps = function (state, props) {\n var siteId = props.siteId;\n return {\n siteId: siteId,\n dates: _.get(state.jplus1[siteId], 'data', []),\n };\n};\nvar mapDispatchToProps = function (dispatch) {\n return {\n onJPlus1Init: function (siteId) {\n dispatch(setNavigation({ section: 'fromSmartFlows' }));\n dispatch(fetchJplus1Dates(siteId));\n },\n };\n};\nexport default connect(mapStateToProps, mapDispatchToProps)(Jplus1Container);\n","export var fetchAccessPoints = function (siteId) { return ({\n type: 'FETCH_ACCESS_POINTS',\n siteId: siteId,\n}); };\nexport var fetchAccessPointsSuccess = function (siteId, data, status) { return ({\n type: 'FETCH_ACCESS_POINTS_SUCCESS',\n siteId: siteId,\n data: data,\n status: status,\n}); };\nexport var fetchAccessPointsFailure = function (siteId) { return ({\n type: 'FETCH_ACCESS_POINTS_FAILURE',\n siteId: siteId,\n}); };\nexport var searchAp = function (siteId, searchText) { return ({\n type: 'SEARCH_APS',\n siteId: siteId,\n searchText: searchText,\n}); };\nexport var setCurrentApsPage = function (siteId, pageNumber) { return ({\n type: 'SET_APS_PAGE_NUMBER',\n siteId: siteId,\n pageNumber: pageNumber,\n}); };\nexport var sortApsByField = function (siteId, field) { return ({\n type: 'SORT_APS_BY_FIELD',\n siteId: siteId,\n field: field,\n}); };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport '../styles/atoms/circle.scss';\nvar Circle = function (_a) {\n var color = _a.color;\n return (React.createElement(\"div\", null,\n React.createElement(\"span\", { className: \"circle \" + (color ? \"circle--\" + color : '') })));\n};\nCircle.propTypes = {\n color: PropTypes.string,\n};\nexport default Circle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport Circle from '@src/commons/Circle';\nimport '@src/commons/styles/atoms/icon-button.scss';\nimport '@src/commons/styles/atoms/color-label.scss';\nimport '@src/commons/styles/organisms/metric-section.scss';\nimport '@src/commons/styles/organisms/metric-section-header.scss';\nexport var getColorApUp = function (accessPoints, nbApUp) {\n if (!accessPoints || _.isEmpty(accessPoints)) {\n return '';\n }\n if (nbApUp / accessPoints.length <= 0.9) {\n return 'red';\n }\n if (nbApUp / accessPoints.length === 1) {\n return 'green';\n }\n return 'orange';\n};\nvar AccessPointsHeader = function (_a) {\n var accessPoints = _a.accessPoints, nbApUp = _a.nbApUp, t = _a.t;\n return (React.createElement(\"div\", { className: \"metric-section__content-header\" },\n React.createElement(\"div\", { className: \"metric-section-header__title\" },\n React.createElement(\"div\", null,\n React.createElement(Circle, { color: getColorApUp(accessPoints, nbApUp) })),\n React.createElement(\"div\", { className: \"metric-section-header__main-title\" }, t('Monitoring_Labels.AccessPoints.title'))),\n accessPoints && (React.createElement(\"div\", { className: \"metric-section-header__details\" },\n React.createElement(\"div\", { className: \"metric-section-header__details-label color-label--\" + getColorApUp(accessPoints, nbApUp) },\n nbApUp,\n \" / \",\n t('Monitoring_Labels.AccessPoints.operational_AP', { count: accessPoints.length }),\n ' '),\n React.createElement(\"div\", { className: \"metric-section-header__details-date\" }, t('Monitoring_Labels.AccessPoints.man'))))));\n};\nAccessPointsHeader.propTypes = {\n accessPoints: PropTypes.any,\n nbApUp: PropTypes.number,\n t: PropTypes.func,\n};\nexport default AccessPointsHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport ContentLoader from 'react-content-loader';\nimport AccessPointsHeader from './AccessPointsHeader';\nimport '@src/commons/styles/atoms/title.scss';\nimport '@src/commons/styles/atoms/icon-button.scss';\nimport '@src/commons/styles/atoms/icon.scss';\nimport '@src/commons/styles/organisms/metric-section.scss';\nimport '@src/commons/styles/organisms/table.scss';\nimport '@src/commons/styles/molecules/search-box.scss';\nimport '@src/commons/styles/atoms/search-input.scss';\nvar AccessPoints = function (_a) {\n var accessPoints = _a.accessPoints, filteredAps = _a.filteredAps, _b = _a.loading, loading = _b === void 0 ? true : _b, nbApUp = _a.nbApUp, currentPageNumber = _a.currentPageNumber, handleChangePage = _a.handleChangePage, sorting = _a.sorting, handleSortBy = _a.handleSortBy, searchText = _a.searchText, handleSearchAp = _a.handleSearchAp, t = _a.t;\n return (React.createElement(\"div\", { className: \"metric-section\" },\n React.createElement(\"div\", { className: \"metric-section__header\" },\n React.createElement(\"div\", { className: \"subtitle\" }, t('Monitoring_Labels.AccessPoints.title'))),\n React.createElement(\"div\", { className: \"metric-section__content\" },\n React.createElement(AccessPointsHeader, { nbApUp: nbApUp, accessPoints: accessPoints, t: t }),\n React.createElement(\"div\", { className: \"metric-section__content-table\" },\n React.createElement(\"div\", { className: \"table__row table__row--header\" },\n React.createElement(\"div\", { className: \"table__cell table__cell--filter\", onClick: function (e) { return handleSortBy('client_name', _.get(sorting, 'client_name', 'asc')); } },\n t('Monitoring_Labels.AccessPoints.AP_name'),\n React.createElement(\"i\", { className: \"material-icons\" }, _.get(sorting, 'client_name', 'asc') === 'asc' ? 'keyboard_arrow_down' : 'keyboard_arrow_up')),\n React.createElement(\"div\", { className: \"table__cell table__cell--filter\", onClick: function (e) { return handleSortBy('mac_address', _.get(sorting, 'mac_address', 'asc')); } },\n t('Monitoring_Labels.AccessPoints.MAC'),\n React.createElement(\"i\", { className: \"material-icons\" }, _.get(sorting, 'mac_address', 'asc') === 'asc' ? 'keyboard_arrow_down' : 'keyboard_arrow_up')),\n React.createElement(\"div\", { className: \"table__cell table__cell--filter\", onClick: function (e) { return handleSortBy('uptime', _.get(sorting, 'uptime', 'asc')); } },\n t('Monitoring_Labels.AccessPoints.status'),\n React.createElement(\"i\", { className: \"material-icons\" }, _.get(sorting, 'uptime', 'asc') === 'asc' ? 'keyboard_arrow_down' : 'keyboard_arrow_up')),\n React.createElement(\"div\", { className: \"table__cell table__cell--filter\", onClick: function (e) { return handleSortBy('used_for_location', _.get(sorting, 'used_for_location', 'asc')); } },\n t('Monitoring_Labels.AccessPoints.carto'),\n React.createElement(\"i\", { className: \"material-icons\" }, _.get(sorting, 'used_for_location', 'asc') === 'asc'\n ? 'keyboard_arrow_down'\n : 'keyboard_arrow_up')),\n React.createElement(\"div\", null,\n React.createElement(\"div\", { className: \"search-box\" },\n React.createElement(\"i\", { className: \"search-box__search-icon material-icons\" }, \"search\"),\n React.createElement(\"input\", { type: \"text\", className: \"search-box__input search-input\", placeholder: t('Monitoring_Labels.AccessPoints.search'), autoFocus: true, onChange: function (e) { return handleSearchAp(_.trimStart(e.target.value)); }, value: searchText })))),\n loading && (React.createElement(\"div\", null,\n React.createElement(\"div\", { className: \"table__row\" },\n React.createElement(\"div\", { className: \"table__cell table__cell--loading\" },\n React.createElement(ContentLoader, { height: 20 })),\n React.createElement(\"div\", { className: \"table__cell table__cell--loading\" },\n React.createElement(ContentLoader, { height: 20 })),\n React.createElement(\"div\", { className: \"table__cell table__cell--loading\" },\n React.createElement(ContentLoader, { height: 20 })),\n React.createElement(\"div\", { className: \"table__cell table__cell--loading\" },\n React.createElement(ContentLoader, { height: 20 })),\n React.createElement(\"div\", { className: \"table__cell\" })),\n React.createElement(\"div\", { className: \"table__row\" },\n React.createElement(\"div\", { className: \"table__cell table__cell--loading\" },\n React.createElement(ContentLoader, { height: 20 })),\n React.createElement(\"div\", { className: \"table__cell table__cell--loading\" },\n React.createElement(ContentLoader, { height: 20 })),\n React.createElement(\"div\", { className: \"table__cell table__cell--loading\" },\n React.createElement(ContentLoader, { height: 20 })),\n React.createElement(\"div\", { className: \"table__cell table__cell--loading\" },\n React.createElement(ContentLoader, { height: 20 })),\n React.createElement(\"div\", { className: \"table__cell\" })),\n React.createElement(\"div\", { className: \"table__row\" },\n React.createElement(\"div\", { className: \"table__cell table__cell--loading\" },\n React.createElement(ContentLoader, { height: 20 })),\n React.createElement(\"div\", { className: \"table__cell table__cell--loading\" },\n React.createElement(ContentLoader, { height: 20 })),\n React.createElement(\"div\", { className: \"table__cell table__cell--loading\" },\n React.createElement(ContentLoader, { height: 20 })),\n React.createElement(\"div\", { className: \"table__cell table__cell--loading\" },\n React.createElement(ContentLoader, { height: 20 })),\n React.createElement(\"div\", { className: \"table__cell\" })))),\n !loading &&\n _.map(filteredAps, function (ap) { return (React.createElement(\"div\", { className: \"table__row\", key: ap.uuid },\n React.createElement(\"div\", { className: \"table__cell\" }, ap.client_name),\n React.createElement(\"div\", { className: \"table__cell\" }, ap.mac_address),\n React.createElement(\"div\", { className: \"table__cell\" },\n ap.uptime >= 0.8 && React.createElement(\"i\", { className: \"material-icons icon--green\" }, \"check_circle\"),\n ap.uptime < 0.8 && ap.uptime > 0.2 && React.createElement(\"i\", { className: \"material-icons icon--orange\" }, \"error\"),\n ap.uptime <= 0.2 && React.createElement(\"i\", { className: \"material-icons icon--red\" }, \"cancel\")),\n React.createElement(\"div\", { className: \"table__cell\" },\n React.createElement(\"i\", { className: \"material-icons \" + (ap.used_for_location ? 'icon--green' : 'icon--red') }, ap.used_for_location ? 'check_circle' : 'cancel')),\n React.createElement(\"div\", { className: \"table__cell\" }))); }),\n !loading && !searchText && (React.createElement(\"div\", { className: \"table__footer\" },\n React.createElement(\"div\", { className: \"table__footer__page-infos\" }, t('Monitoring_Labels.AccessPoints.pagination', {\n page: 10 * currentPageNumber +\n 1 +\n '-' +\n (10 * currentPageNumber + 10 > accessPoints.length\n ? accessPoints.length\n : 10 * currentPageNumber + 10),\n pages: accessPoints.length,\n })),\n React.createElement(\"div\", { className: \"table__footer__page-buttons\" },\n currentPageNumber > 0 && (React.createElement(\"div\", { className: \"table__footer__page-button\", onClick: function (e) { return handleChangePage(currentPageNumber - 1); } },\n React.createElement(\"i\", { className: \"material-icons\" }, \"keyboard_arrow_left\"))),\n currentPageNumber === 0 && (React.createElement(\"div\", { className: \"table__footer__page-button table__footer__page--inactive\" },\n React.createElement(\"i\", { className: \"material-icons\" }, \"keyboard_arrow_left\"))),\n 10 * currentPageNumber + 10 < accessPoints.length && (React.createElement(\"div\", { className: \"table__footer__page-button\", onClick: function (e) { return handleChangePage(currentPageNumber + 1); } },\n React.createElement(\"i\", { className: \"material-icons\" }, \"keyboard_arrow_right\"))),\n 10 * currentPageNumber + 10 >= accessPoints.length && (React.createElement(\"div\", { className: \"table__footer__page-button table__footer__page--inactive\" },\n React.createElement(\"i\", { className: \"material-icons\" }, \"keyboard_arrow_right\"))))))))));\n};\nAccessPoints.propTypes = {\n filteredAps: PropTypes.any,\n accessPoints: PropTypes.any,\n currentPageNumber: PropTypes.number,\n handleChangePage: PropTypes.func,\n sorting: PropTypes.object,\n handleSortBy: PropTypes.func,\n loading: PropTypes.bool,\n nbApUp: PropTypes.number,\n searchText: PropTypes.string,\n handleSearchAp: PropTypes.func,\n t: PropTypes.func,\n};\nexport default AccessPoints;\n","import _ from 'lodash';\nimport { createSelector } from 'reselect';\nexport var getterAccessPoints = function (state, props) { return state.accessPoints[state.navigation.siteId]; };\nexport var getNbApsUps = createSelector(getterAccessPoints, function (accessPoints) { return _.filter(_.get(accessPoints, 'data', []), function (ap) { return ap.uptime > 0.2; }).length; });\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport { withRouter } from 'react-router';\nimport { fetchAccessPoints, setCurrentApsPage, sortApsByField, searchAp } from './actions';\nimport { connect } from 'react-redux';\nimport AccessPoints from './AccessPoints';\nimport { getNbApsUps, getterAccessPoints } from './selectors';\nimport { setNavigation } from '@src/navigation/actions';\nvar AccessPointsContainer = (function (_super) {\n __extends(AccessPointsContainer, _super);\n function AccessPointsContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.handleChangePage = _this.handleChangePage.bind(_this);\n _this.handleSortBy = _this.handleSortBy.bind(_this);\n _this.handleSearchAp = _this.handleSearchAp.bind(_this);\n return _this;\n }\n AccessPointsContainer.prototype.UNSAFE_componentWillMount = function () {\n var _a = this.props, onAccessPointsInit = _a.onAccessPointsInit, siteId = _a.siteId;\n onAccessPointsInit(siteId);\n };\n AccessPointsContainer.prototype.handleChangePage = function (pageNumber) {\n var _a = this.props, onChangePage = _a.onChangePage, siteId = _a.siteId;\n onChangePage(siteId, pageNumber);\n };\n AccessPointsContainer.prototype.handleSortBy = function (field, currentValue) {\n var _a;\n var _b = this.props, onSortApsByField = _b.onSortApsByField, siteId = _b.siteId;\n onSortApsByField(siteId, (_a = {}, _a[field] = currentValue === 'asc' ? 'desc' : 'asc', _a));\n };\n AccessPointsContainer.prototype.handleSearchAp = function (searchText) {\n var _a = this.props, onSearchAp = _a.onSearchAp, siteId = _a.siteId;\n onSearchAp(siteId, searchText);\n };\n AccessPointsContainer.prototype.render = function () {\n var _a = this.props, accessPoints = _a.accessPoints, nbApUp = _a.nbApUp, currentPageNumber = _a.currentPageNumber, sorting = _a.sorting, apsToDisplay = _a.apsToDisplay, searchText = _a.searchText, t = _a.t;\n return (React.createElement(AccessPoints, { loading: _.get(accessPoints, 'loading', true), accessPoints: _.get(accessPoints, 'data', []), filteredAps: apsToDisplay, nbApUp: nbApUp, currentPageNumber: currentPageNumber, handleChangePage: this.handleChangePage, handleSortBy: this.handleSortBy, sorting: sorting, searchText: searchText, handleSearchAp: this.handleSearchAp, t: t }));\n };\n return AccessPointsContainer;\n}(Component));\nexport { AccessPointsContainer };\nAccessPointsContainer.propTypes = {\n onAccessPointsInit: PropTypes.func,\n onChangePage: PropTypes.func,\n onSortApsByField: PropTypes.func,\n onSearchAp: PropTypes.func,\n sorting: PropTypes.object,\n apsToDisplay: PropTypes.any,\n searchText: PropTypes.string,\n siteId: PropTypes.string,\n currentPageNumber: PropTypes.number,\n match: PropTypes.shape({\n params: PropTypes.shape({\n siteId: PropTypes.string,\n }),\n }),\n nbApUp: PropTypes.number,\n accessPoints: PropTypes.any,\n t: PropTypes.func,\n};\nexport var mapStateToProps = function (state, props) {\n return {\n accessPoints: getterAccessPoints(state, props),\n nbApUp: getNbApsUps(state, props),\n currentPageNumber: _.get(state.accessPoints[props.siteId], 'pageNumber', 0),\n sorting: _.get(state.accessPoints[props.siteId], 'sorting', {}),\n apsToDisplay: _.get(state.accessPoints[props.siteId], 'apsToDisplay', []),\n searchText: _.get(state.accessPoints[props.siteId], 'searchText', ''),\n };\n};\nvar mapDispatchToProps = function (dispatch) {\n return {\n onAccessPointsInit: function (siteId) {\n dispatch(setNavigation({ section: 'accessPoints' }));\n dispatch(fetchAccessPoints(siteId));\n },\n onChangePage: function (siteId, pageNumber) {\n dispatch(setCurrentApsPage(siteId, pageNumber));\n },\n onSortApsByField: function (siteId, field) {\n dispatch(sortApsByField(siteId, field));\n },\n onSearchAp: function (siteId, searchText) {\n dispatch(searchAp(siteId, searchText));\n },\n };\n};\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(AccessPointsContainer));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport '../styles/atoms/icon.scss';\nimport '../styles/molecules/status-card.scss';\nexport var getColorFromStatus = function (status) {\n switch (status) {\n case 'OK':\n return 'green';\n case 'WARNING':\n return 'yellow';\n case 'ERROR':\n return 'red';\n default:\n return '';\n }\n};\nexport var getIconFromStatus = function (status) {\n switch (status) {\n case 'OK':\n return 'check_circle';\n case 'WARNING':\n return 'error';\n case 'ERROR':\n return 'cancel';\n default:\n return '';\n }\n};\nvar StatusCard = function (_a) {\n var title = _a.title, status = _a.status, reason = _a.reason;\n return (React.createElement(\"div\", { className: \"status-card\" },\n React.createElement(\"div\", { className: \"status-card__content\" },\n React.createElement(\"div\", { className: \"status-card__title\" },\n React.createElement(\"div\", { className: \"\" }, title)),\n React.createElement(\"div\", { className: \"status-card__icon\" },\n React.createElement(\"i\", { className: \"material-icons icon--\" + getColorFromStatus(status) }, getIconFromStatus(status)))),\n reason && (React.createElement(\"div\", { className: \"status-card__reason status-card__reason--\" + getColorFromStatus(status) }, reason))));\n};\nStatusCard.propTypes = {\n status: PropTypes.string,\n title: PropTypes.string,\n reason: PropTypes.string,\n};\nexport default StatusCard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { getColorFromStatus } from '../StatusCard';\nimport '../styles/atoms/icon.scss';\nimport '../styles/molecules/big-status-card.scss';\nexport var getIconFromStatus = function (status) {\n switch (status) {\n case 'OK':\n return 'check_circle';\n case 'ERROR':\n return 'warning';\n default:\n return '';\n }\n};\nvar BigStatusCard = function (_a) {\n var status = _a.status, title = _a.title, important = _a.important, description = _a.description;\n return (React.createElement(\"div\", { className: \"big-status-card\" },\n React.createElement(\"div\", { className: \"big-status-card__icon big-status-card__icon--\" + getColorFromStatus(status) },\n React.createElement(\"i\", { className: \"material-icons icon--white icon--big\" }, getIconFromStatus(status))),\n React.createElement(\"div\", { className: \"big-status-card__text\" },\n status === 'OK' && (React.createElement(\"div\", { className: \"big-status-card__title\" },\n title,\n ' ',\n React.createElement(\"span\", { className: \"big-status-card__important big-status-card__important--\" + getColorFromStatus(status) }, important))),\n status === 'ERROR' && (React.createElement(\"div\", { className: \"big-status-card__title\" },\n React.createElement(\"span\", { className: \"big-status-card__important big-status-card__important--\" + getColorFromStatus(status) }, important),\n ' ',\n title)),\n React.createElement(\"div\", { className: \"big-status-card__description\" }, description))));\n};\nBigStatusCard.propTypes = {\n status: PropTypes.string,\n title: PropTypes.string,\n important: PropTypes.string,\n description: PropTypes.string,\n};\nexport default BigStatusCard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport StatusCard from '@src/commons/StatusCard';\nimport BigStatusCard from '@src/commons/BigStatusCard';\nimport '@src/commons/styles/organisms/monitoring-summary.scss';\nvar MonitoringComponent = function (_a) {\n var apsStatus = _a.apsStatus, realtimeStatus = _a.realtimeStatus, realtimeReason = _a.realtimeReason, jplus1Status = _a.jplus1Status, jplus1Reason = _a.jplus1Reason, collectStatus = _a.collectStatus, collectReason = _a.collectReason, mainStatus = _a.mainStatus, t = _a.t;\n return (React.createElement(\"div\", { className: \"monitoring-summary\" },\n React.createElement(\"div\", { className: \"monitoring-summary__big-card\" },\n React.createElement(BigStatusCard, { status: mainStatus, title: t(\"Monitoring_Labels.Summary.Main.title.\" + mainStatus), important: t(\"Monitoring_Labels.Summary.Main.important.\" + mainStatus), description: t(\"Monitoring_Labels.Summary.Main.description.\" + mainStatus) })),\n React.createElement(\"div\", { className: \"monitoring-summary__cards-list\" },\n React.createElement(\"div\", { className: \"monitoring-summary__card\" },\n React.createElement(StatusCard, { status: realtimeStatus, reason: realtimeReason ? t(\"Monitoring_Labels.Summary.Realtime.status.\" + realtimeReason) : '', title: t('Monitoring_Labels.Summary.Realtime.title') })),\n React.createElement(\"div\", { className: \"monitoring-summary__card\" },\n React.createElement(StatusCard, { status: jplus1Status, reason: jplus1Reason ? t(\"Monitoring_Labels.Summary.Jplus1.status.\" + jplus1Reason) : '', title: t('Monitoring_Labels.Summary.Jplus1.title') })),\n React.createElement(\"div\", { className: \"monitoring-summary__card\" },\n React.createElement(StatusCard, { status: collectStatus, reason: collectReason ? t(\"Monitoring_Labels.Summary.Collect.status.\" + collectReason) : '', title: t('Monitoring_Labels.Summary.Collect.title') })),\n React.createElement(\"div\", { className: \"monitoring-summary__card\" },\n React.createElement(StatusCard, { status: apsStatus, title: t('Monitoring_Labels.Summary.AccessPoint.title'), reason: '' })))));\n};\nMonitoringComponent.propTypes = {\n apsStatus: PropTypes.string,\n realtimeStatus: PropTypes.string,\n realtimeReason: PropTypes.string,\n jplus1Reason: PropTypes.string,\n jplus1Status: PropTypes.string,\n mainStatus: PropTypes.string,\n collectStatus: PropTypes.string,\n collectReason: PropTypes.string,\n t: PropTypes.func,\n};\nexport default MonitoringComponent;\n","import _ from 'lodash';\nexport var getterJPlus1Status = function (state, props) { return _.get(state.jplus1[props.siteId], 'status'); };\nexport var getterJPlus1Reason = function (state, props) { return _.get(state.jplus1[props.siteId], 'reason'); };\nexport var getterCollectStatus = function (state, props) { return _.get(state.collect[props.siteId], 'status'); };\nexport var getterCollectReason = function (state, props) { return _.get(state.collect[props.siteId], 'reason'); };\nexport var isCollectLoading = function (state, props) { return _.get(state.collect[props.siteId], 'loading', true); };\nexport var getRealtimeStatus = function (state, props) { return _.get(state.realtime[props.siteId], 'status'); };\nexport var getRealtimeReason = function (state, props) { return _.get(state.realtime[props.siteId], 'reason'); };\nexport var isRealtimeLoading = function (state, props) { return _.get(state.realtime[props.siteId], 'loading', true); };\nexport var getAccessPointsStatus = function (state, props) { return _.get(state.accessPoints[props.siteId], 'status'); };\nexport var isAccessPointsLoading = function (state, props) {\n return _.get(state.accessPoints[props.siteId], 'loading', true);\n};\n","export var fetchCollectStatus = function (siteId) { return ({\n type: 'FETCH_COLLECT_STATUS',\n siteId: siteId,\n}); };\nexport var fetchCollectStatusSuccess = function (siteId, status, reason) { return ({\n type: 'FETCH_COLLECT_STATUS_SUCCESS',\n siteId: siteId,\n reason: reason,\n status: status,\n}); };\nexport var fetchCollectStatusFailure = function (siteId) { return ({\n type: 'FETCH_COLLECT_STATUS_FAILURE',\n siteId: siteId,\n}); };\n","import _ from 'lodash';\nimport { createSelector } from 'reselect';\nexport var getterJplus1 = function (state, props) {\n return state.jplus1[_.get(props, 'siteId') || _.get(props.match, 'params.siteId')];\n};\nexport var isJplus1Loading = createSelector(getterJplus1, function (jplus1) { return _.get(jplus1, 'loading', true); });\n","export var fetchRealtimeStatus = function (siteId) { return ({\n type: 'FETCH_REALTIME_STATUS',\n siteId: siteId,\n}); };\nexport var fetchRealtimeStatusSuccess = function (siteId, status, reason) { return ({\n type: 'FETCH_REALTIME_STATUS_SUCCESS',\n siteId: siteId,\n reason: reason,\n status: status,\n}); };\nexport var fetchRealtimeStatusFailure = function (siteId) { return ({\n type: 'FETCH_REALTIME_STATUS_FAILURE',\n siteId: siteId,\n}); };\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router';\nimport { connect } from 'react-redux';\nimport MonitoringComponent from './MonitoringComponent';\nimport { getRealtimeStatus, getRealtimeReason, getterCollectStatus, getterCollectReason, getterJPlus1Status, getterJPlus1Reason, getAccessPointsStatus, isAccessPointsLoading, isCollectLoading, isRealtimeLoading, } from './selectors';\nimport { fetchLastExportStatus } from '@src/monitoring/fromSmartFlows/actions';\nimport { fetchCollectStatus } from '@src/monitoring/summary/collect/actions';\nimport { isJplus1Loading } from '@src/monitoring/fromSmartFlows/selectors';\nimport { setNavigation } from '@src/navigation/actions';\nimport { fetchRealtimeStatus } from '@src/monitoring/summary/realtime/actions';\nimport { fetchAccessPoints } from '@src/monitoring/accessPoints/actions';\nvar MonitoringSummaryContainer = (function (_super) {\n __extends(MonitoringSummaryContainer, _super);\n function MonitoringSummaryContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MonitoringSummaryContainer.prototype.UNSAFE_componentWillMount = function () {\n var _a = this.props, onMonitoringSummaryInit = _a.onMonitoringSummaryInit, siteId = _a.siteId;\n onMonitoringSummaryInit(siteId);\n };\n MonitoringSummaryContainer.prototype.render = function () {\n var _a = this.props, apsStatus = _a.apsStatus, realtimeStatus = _a.realtimeStatus, realtimeReason = _a.realtimeReason, loading = _a.loading, jplus1Status = _a.jplus1Status, jplus1Reason = _a.jplus1Reason, collectStatus = _a.collectStatus, collectReason = _a.collectReason, mainStatus = _a.mainStatus, t = _a.t;\n return (React.createElement(\"div\", null, !loading && (React.createElement(MonitoringComponent, { apsStatus: apsStatus, realtimeStatus: realtimeStatus, realtimeReason: realtimeReason, jplus1Status: jplus1Status, jplus1Reason: jplus1Reason, mainStatus: mainStatus, collectStatus: collectStatus, collectReason: collectReason, t: t }))));\n };\n return MonitoringSummaryContainer;\n}(Component));\nexport { MonitoringSummaryContainer };\nMonitoringSummaryContainer.propTypes = {\n apsStatus: PropTypes.string,\n realtimeStatus: PropTypes.string,\n realtimeReason: PropTypes.string,\n loading: PropTypes.bool,\n t: PropTypes.func,\n onMonitoringSummaryInit: PropTypes.func,\n jplus1Status: PropTypes.string,\n jplus1Reason: PropTypes.string,\n mainStatus: PropTypes.string,\n collectStatus: PropTypes.string,\n collectReason: PropTypes.string,\n siteId: PropTypes.string,\n};\nexport var mapStateToProps = function (state, props) {\n var apsStatus = getAccessPointsStatus(state, props);\n var realtimeStatus = getRealtimeStatus(state, props);\n var jplus1Status = getterJPlus1Status(state, props);\n var collectStatus = getterCollectStatus(state, props);\n return {\n apsStatus: apsStatus,\n realtimeStatus: realtimeStatus,\n jplus1Status: jplus1Status,\n collectStatus: collectStatus,\n realtimeReason: getRealtimeReason(state, props),\n jplus1Reason: getterJPlus1Reason(state, props),\n collectReason: getterCollectReason(state, props),\n loading: isAccessPointsLoading(state, props) ||\n isRealtimeLoading(state, props) ||\n isJplus1Loading(state, props) ||\n isCollectLoading(state, props),\n mainStatus: realtimeStatus === 'ERROR' ||\n jplus1Status === 'ERROR' ||\n collectStatus === 'ERROR' ||\n apsStatus === 'ERROR'\n ? 'ERROR'\n : 'OK',\n };\n};\nvar mapDispatchToProps = function (dispatch) {\n return {\n onMonitoringSummaryInit: function (siteId) {\n dispatch(setNavigation({ section: 'summary' }));\n dispatch(fetchLastExportStatus(siteId));\n dispatch(fetchCollectStatus(siteId));\n dispatch(fetchRealtimeStatus(siteId));\n dispatch(fetchAccessPoints(siteId));\n },\n };\n};\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(MonitoringSummaryContainer));\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { Route, Switch, withRouter } from 'react-router-dom';\nimport { setNavigation } from '../navigation/actions';\nimport Jplus1Container from './fromSmartFlows';\nimport AccessPointsContainer from './accessPoints';\nimport '@src/commons/styles/templates/monitoring.scss';\nimport MonitoringSummaryContainer from './summary';\nvar MonitoringContainer = (function (_super) {\n __extends(MonitoringContainer, _super);\n function MonitoringContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MonitoringContainer.prototype.UNSAFE_componentWillMount = function () {\n var initMonitoringApp = this.props.initMonitoringApp;\n initMonitoringApp({ app: 'monitoring' });\n };\n MonitoringContainer.prototype.render = function () {\n var _a = this.props, t = _a.t, match = _a.match;\n return (React.createElement(\"div\", { className: \"monitoring\" },\n React.createElement(Switch, null,\n React.createElement(Route, { exact: true, path: \"/v2/monitoring/:siteId?\", component: function () { return React.createElement(MonitoringSummaryContainer, { siteId: match.params.siteId, t: t }); } }),\n React.createElement(Route, { exact: true, path: \"/v2/monitoring/:siteId?/summary\", component: function () { return React.createElement(MonitoringSummaryContainer, { siteId: match.params.siteId, t: t }); } }),\n React.createElement(Route, { exact: true, path: \"/v2/monitoring/:siteId?/fromSmartFlows\", component: function () { return React.createElement(Jplus1Container, { siteId: match.params.siteId, t: t }); } }),\n React.createElement(Route, { exact: true, path: \"/v2/monitoring/:siteId?/accessPoints\", component: function () { return React.createElement(AccessPointsContainer, { siteId: match.params.siteId, t: t }); } }))));\n };\n return MonitoringContainer;\n}(Component));\nexport { MonitoringContainer };\nMonitoringContainer.propTypes = {\n initMonitoringApp: PropTypes.func,\n match: PropTypes.shape({\n params: PropTypes.shape({\n siteId: PropTypes.string,\n }),\n }),\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n t: PropTypes.func,\n};\nvar mapStateToProps = function (state, props) {\n return {\n siteId: state.navigation.siteId,\n };\n};\nvar mapDispatchToProps = function (dispatch) {\n return {\n initMonitoringApp: function (params) {\n dispatch(setNavigation(params));\n },\n };\n};\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(MonitoringContainer));\n","import { __assign, __extends } from \"tslib\";\nimport React from 'react';\nvar Page = (function (_super) {\n __extends(Page, _super);\n function Page() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Page.prototype.componentDidMount = function () {\n document.title = this.props.title;\n };\n Page.prototype.componentDidUpdate = function (nextProps) {\n document.title = nextProps.title;\n };\n Page.prototype.render = function () {\n var PageComponent = this.props.component;\n return React.createElement(PageComponent, __assign({}, this.props));\n };\n return Page;\n}(React.Component));\nexport { Page };\nexport default Page;\n","export var fetchSocialDistancingMonitoringStats = function (history) { return ({\n type: 'FETCH_SOCIAL_DISTANCING_MONITORING_STATS',\n history: history,\n}); };\nexport var fetchAllPresenceStock15min = function (siteId, date) { return ({\n type: 'FETCH_ALL_PRESENCE_STOCK_15_MIN',\n siteId: siteId,\n date: date,\n}); };\nexport var fetchPresenceStock15minSuccessAllAreas = function (siteId, date, areas) { return ({\n type: 'FETCH_PRESENCE_STOCK_15_MIN_SUCCESS_ALL_AREAS',\n siteId: siteId,\n date: date,\n areas: areas,\n}); };\nexport var fetchPresenceStock15minErrorAllAreas = function (siteId, date) { return ({\n type: 'FETCH_PRESENCE_STOCK_15_MIN_ERROR_ALL_AREAS',\n siteId: siteId,\n date: date,\n}); };\nexport var fetchDailyTraffic = function (siteId, date) { return ({\n type: 'FETCH_DAILY_TRAFFIC',\n siteId: siteId,\n date: date,\n}); };\nexport var fetchDailyTrafficSuccess = function (siteId, date, data) { return ({\n type: 'FETCH_DAILY_TRAFFIC_SUCCESS',\n siteId: siteId,\n date: date,\n data: data,\n}); };\nexport var fetchDailyTrafficError = function (siteId, date) { return ({\n type: 'FETCH_DAILY_TRAFFIC_ERROR',\n siteId: siteId,\n date: date,\n}); };\n","import { __assign } from \"tslib\";\nimport _ from 'lodash';\nimport { flow, get, find, head } from 'lodash/fp';\nimport { createSelector } from 'reselect';\nimport { getCurrentFloorId2, getCurrentSiteId2 } from '@src/navigation/selectors';\nimport { getterReportingNavigation } from '@src/reporting/selectors';\nexport var getterDashboardLoading = function (state) { return _.get(state.dashboard, 'loading', true); };\nexport var getterComputeSiteStats = function (state, props) { return state.compute[props.siteId]; };\nexport var getterCurrentFloor = createSelector(function (state) { return state.floors; }, getCurrentSiteId2, getCurrentFloorId2, function (floors, siteId, floorId) { return _.find(_.get(floors[siteId], 'data', []), { uuid: floorId }); });\nexport var selectIsMapLoading = createSelector(getterCurrentFloor, function (floor) { return !floor; });\nexport var getterSiteFloors = createSelector(function (state) { return state.floors; }, getCurrentSiteId2, function (floors, siteId) { return _.filter(_.get(floors[siteId], 'data', []), function (f) { return !_.isEmpty(f.units.areas); }); });\nexport var selectMapPicturesAllAreas = createSelector(getterSiteFloors, getCurrentFloorId2, function (floors, floorId) {\n return _.chain(floors)\n .orderBy(['level'], ['desc'])\n .map(function (floor) { return (__assign(__assign({}, floor), { name: \"\" + floor.level, image: floor.map_picture, isSelected: floor.uuid === floorId, bounds: floor.bounds })); })\n .value();\n});\nexport var selectAllMapPolygons = createSelector(getterCurrentFloor, getterSiteFloors, function (floor, siteFloors) {\n var areas = _.get(floor, 'units.areas');\n var isEntireSite = _.every(_.flatMap(siteFloors, function (f) { return _.get(f, 'units.areas'); }), function (a) { return !a.selected; });\n return _.map(areas, function (a) { return (__assign(__assign({}, a), { borderColor: isEntireSite || a.selected ? '#FFF' : 'var(--primarycolor)', color: 'var(--primarycolor)', opacity: a.fillOpacity || 1, noClick: a.isInError || a.is_entire_site, hasTooltip: !a.is_entire_site && a.geometry.length > 2 })); });\n});\nexport var getterCurrentSite = createSelector(function (state) { return state.sites; }, getCurrentSiteId2, function (sites, siteId) { return flow(get('data'), siteId ? find({ uuid: siteId }) : head)(sites); });\nexport var selectMapBounds = createSelector(getterCurrentFloor, getterCurrentSite, function (floor, site) {\n var ZOOM = 0.001;\n var latitude = site.latitude, longitude = site.longitude;\n if (!latitude || !longitude) {\n return null;\n }\n var bounds = _.isEqual(_.get(floor, 'bounds'), [\n [0, 0],\n [0, 0],\n ])\n ? [\n [latitude - ZOOM, longitude - ZOOM],\n [latitude + ZOOM, longitude + ZOOM],\n ]\n : _.get(floor, 'bounds');\n return bounds;\n});\nvar checkDataCompletedFlagInList = function (node) {\n return _.chain(node).get('data', []).some({ DataCompleted: true }).value();\n};\nexport var isTrafficDistributionGraphCompleted = createSelector(getterComputeSiteStats, getterReportingNavigation, function (computeSiteStats, _a) {\n var areaId = _a.areaId, dayFrom = _a.dayFrom, dayTo = _a.dayTo, granularity = _a.granularity;\n return checkDataCompletedFlagInList(_.chain(computeSiteStats)\n .get(areaId, {})\n .get(granularity + \"-presence\")\n .get(dayFrom + \"-\" + dayTo, {})\n .value());\n});\nexport var isDwelltimeDistributionGraphCompleted = createSelector(getterComputeSiteStats, getterReportingNavigation, function (computeSiteStats, _a) {\n var areaId = _a.areaId, dayFrom = _a.dayFrom, dayTo = _a.dayTo, granularity = _a.granularity;\n return checkDataCompletedFlagInList(_.chain(computeSiteStats)\n .get(areaId, {})\n .get(granularity + \"-dwelltime\")\n .get(dayFrom + \"-\" + dayTo, {})\n .value());\n});\nexport var isPopulationDistributionGraphCompleted = function () { return false; };\nexport var isDwelltimePerPopulationGraphCompleted = createSelector(getterComputeSiteStats, getterReportingNavigation, function (computeSiteStats, _a) {\n var areaId = _a.areaId, dayFrom = _a.dayFrom, dayTo = _a.dayTo;\n return checkDataCompletedFlagInList(_.chain(computeSiteStats)\n .get(areaId, {})\n .get(\"daily-dwelltimeByPopulation\")\n .get(dayFrom + \"-\" + dayTo, {})\n .value());\n});\nexport var selectDisplayDataCompletionMessage = createSelector(isTrafficDistributionGraphCompleted, isDwelltimeDistributionGraphCompleted, isPopulationDistributionGraphCompleted, isDwelltimePerPopulationGraphCompleted, function (trafficDistrib, dwelltimeDistrib, populationDistrib, dwelltimePopulation) {\n return trafficDistrib || dwelltimeDistrib || populationDistrib || dwelltimePopulation;\n});\n","export var changeCurrentAreaColorMap = function (siteId, areaId) { return ({\n type: 'CHANGE_CURRENT_AREA_COLOR_MAP',\n siteId: siteId,\n areaId: areaId,\n}); };\n","import { __assign, __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport _ from 'lodash';\nimport { selectArea2, setCurrentFloor2 } from '@src/commons/floors/actions';\nimport { fetchDashboardStats } from '@src/reporting/dashboard/actions';\nimport { changeCurrentAreaColorMap } from '@src/commons/map/actions';\nimport { selectIsMapLoading, selectMapPicturesAllAreas, selectAllMapPolygons, selectMapBounds, } from './selectors';\nimport { getCurrentSiteId2 } from '@src/navigation/selectors';\nimport PictureMap from '@src/commons/map/PictureMap';\nimport PicturePicker from '@src/commons/map/PicturePicker';\nimport GeoMap from '@src/commons/map/GeoMap';\nimport '@src/commons/styles/organisms/realtime-carto.scss';\nvar MapContainer = (function (_super) {\n __extends(MapContainer, _super);\n function MapContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.handleSelectPolygon = _this.handleSelectPolygon.bind(_this);\n _this.handleSelectPicture = _this.handleSelectPicture.bind(_this);\n return _this;\n }\n MapContainer.prototype.handleSelectPicture = function (e, pictureId) {\n var _a = this.props, onChangePicture = _a.onChangePicture, history = _a.history;\n onChangePicture(pictureId, history);\n e.stopPropagation();\n e.preventDefault();\n };\n MapContainer.prototype.handleSelectPolygon = function (polygonId) {\n var _a = this.props, onSelectPolygon = _a.onSelectPolygon, siteId = _a.siteId, history = _a.history;\n onSelectPolygon(siteId, polygonId, history);\n };\n MapContainer.prototype.render = function () {\n var _a = this.props, loading = _a.loading, pictures = _a.pictures, noClick = _a.noClick, bounds = _a.bounds, polygonsActual = _a.polygonsActual;\n var currentPicture = _.find(pictures, function (p) { return p.isSelected; });\n var polygons = polygonsActual === null || polygonsActual === void 0 ? void 0 : polygonsActual.map(function (poly) { return (__assign(__assign({}, poly), { noClick: false })); });\n return loading ? (React.createElement(\"div\", null, \"Loading ...\")) : (React.createElement(\"div\", { className: \"realtime-map__content\" },\n pictures.length > 1 && (React.createElement(PicturePicker, { pictures: pictures, onSelectPicture: this.handleSelectPicture })),\n _.get(currentPicture, 'image') ? (React.createElement(PictureMap, { pictures: pictures, onSelectPolygon: this.handleSelectPolygon, noClick: noClick, polygons: polygons })) : (React.createElement(GeoMap, { bounds: bounds, polygons: polygons, onSelectPolygon: this.handleSelectPolygon, noClick: noClick }))));\n };\n return MapContainer;\n}(Component));\nexport { MapContainer };\nMapContainer.propTypes = {\n siteId: PropTypes.string,\n loading: PropTypes.bool,\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n polygonsActual: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n color: PropTypes.string,\n borderColor: PropTypes.string,\n opacity: PropTypes.number,\n hasTooltip: PropTypes.bool,\n noClick: PropTypes.bool,\n geometry: PropTypes.arrayOf(PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number,\n })),\n })),\n onChangePicture: PropTypes.func,\n onSelectPolygon: PropTypes.func,\n noClick: PropTypes.bool,\n pictures: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n image: PropTypes.string,\n isSelected: PropTypes.bool,\n name: PropTypes.string,\n })),\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n};\nexport var mapStateToProps = function (state, props) { return ({\n siteId: getCurrentSiteId2(state),\n loading: selectIsMapLoading(state, props),\n pictures: selectMapPicturesAllAreas(state, props),\n polygonsActual: selectAllMapPolygons(state, props),\n bounds: selectMapBounds(state, props),\n}); };\nexport var mapDispatchToProps = function (dispatch) { return ({\n onChangePicture: function (pictureId, history) {\n dispatch(setCurrentFloor2(pictureId, history));\n },\n onSelectPolygon: function (siteId, polygonId, history) {\n dispatch(selectArea2(polygonId, history));\n dispatch(changeCurrentAreaColorMap(siteId, polygonId));\n dispatch(fetchDashboardStats());\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(MapContainer));\n","export var initDashboardSection = function (history) { return ({\n type: 'INIT_DASHBOARD_SECTION',\n history: history,\n}); };\nexport var dashboardSectionLoaded = function () { return ({\n type: 'DASHBOARD_SECTION_LOADED',\n}); };\nexport var fetchDashboardStats = function () { return ({\n type: 'FETCH_DASHBOARD_STATS',\n}); };\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport { DateRangePicker, SingleDatePicker } from 'react-dates';\nimport 'react-day-picker/lib/style.css';\nimport '@src/commons/styles/molecules/dates-picker.scss';\nvar DatesPicker = (function (_super) {\n __extends(DatesPicker, _super);\n function DatesPicker(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n focusedInput: null,\n };\n _this.onDatesChange = _this.onDatesChange.bind(_this);\n _this.onDateChange = _this.onDateChange.bind(_this);\n _this.onFocusChange = _this.onFocusChange.bind(_this);\n _this.onSingleDateFocusChange = _this.onSingleDateFocusChange.bind(_this);\n _this.onClose = _this.onClose.bind(_this);\n _this.getCurrentVisibleMonth = _this.getCurrentVisibleMonth.bind(_this);\n return _this;\n }\n DatesPicker.prototype.UNSAFE_componentWillMount = function () {\n var _a = this.props, from = _a.from, to = _a.to, isWeekSelection = _a.isWeekSelection;\n this.setState({\n startDate: isWeekSelection ? moment(to, 'YYYY-MM-DD').subtract(6, 'days') : moment(from, 'YYYY-MM-DD'),\n endDate: moment(to, 'YYYY-MM-DD'),\n });\n };\n DatesPicker.prototype.onDateChange = function (date) {\n if (date == null) {\n return;\n }\n var onDayChange = this.props.onDayChange;\n this.setState({ startDate: date });\n onDayChange(date.format('YYYY-MM-DD'));\n };\n DatesPicker.prototype.onDatesChange = function (_a) {\n var startDate = _a.startDate, endDate = _a.endDate;\n var endDateValue = endDate;\n var isWeekSelection = this.props.isWeekSelection;\n if (startDate < this.state.startDate && !isWeekSelection) {\n endDateValue = null;\n }\n this.setState({ startDate: startDate, endDate: endDateValue });\n };\n DatesPicker.prototype.onFocusChange = function (focusedInput) {\n this.setState({ focusedInput: focusedInput });\n };\n DatesPicker.prototype.onSingleDateFocusChange = function (_a) {\n var focused = _a.focused;\n this.setState(function () { return ({ calendarFocused: focused }); });\n };\n DatesPicker.prototype.onClose = function (_a) {\n var startDate = _a.startDate, endDate = _a.endDate;\n var onDayChange = this.props.onDayChange;\n if (endDate) {\n onDayChange(startDate.format('YYYY-MM-DD'), endDate.format('YYYY-MM-DD'));\n }\n else {\n var textValue = document.getElementById('endDateId').value;\n var dateValue = moment(textValue, 'L');\n var dateToSave = dateValue._isValid ? dateValue : startDate;\n this.setState({ endDate: dateToSave });\n onDayChange(startDate.format('YYYY-MM-DD'), dateToSave.format('YYYY-MM-DD'));\n }\n };\n DatesPicker.prototype.getCurrentVisibleMonth = function () {\n var startDate = this.state.startDate;\n var isDateSelectedYesterday = startDate.format('L') === moment().subtract(1, 'days').format('L');\n return isDateSelectedYesterday ? moment(startDate).subtract(1, 'M') : startDate;\n };\n DatesPicker.prototype.render = function () {\n var _a = this.props, isSingleDate = _a.isSingleDate, isWeekSelection = _a.isWeekSelection;\n if (isSingleDate) {\n return (React.createElement(SingleDatePicker, { date: this.state.startDate, onDateChange: this.onDateChange, focused: this.state.calendarFocused, onFocusChange: this.onSingleDateFocusChange, id: \"startDateId\", showDefaultInputIcon: true, hideKeyboardShortcutsPanel: true, numberOfMonths: 2, horizontalMargin: 30, isOutsideRange: function (date) { return date.startOf('day') > moment().startOf('day').subtract(1, 'days'); }, displayFormat: moment.localeData().longDateFormat('L') }));\n }\n return (React.createElement(DateRangePicker, { endDatePlaceholderText: this.props.t('Calendar.endDate'), onDatesChange: this.onDatesChange, onFocusChange: this.onFocusChange, focusedInput: this.state.focusedInput, startDate: this.state.startDate, endDate: this.state.endDate, startDateId: \"startDateId\", endDateId: \"endDateId\", hideKeyboardShortcutsPanel: true, showDefaultInputIcon: true, isOutsideRange: function (date) { return date.startOf('day') > moment().startOf('day').subtract(1, 'days'); }, minimumNights: 0, onClose: this.onClose, initialVisibleMonth: this.getCurrentVisibleMonth, endDateOffset: isWeekSelection ? function (date) { return date.add(6, 'days'); } : undefined }));\n };\n return DatesPicker;\n}(Component));\nexport { DatesPicker };\nDatesPicker.propTypes = {\n onDayChange: PropTypes.func,\n to: PropTypes.string,\n from: PropTypes.string,\n t: PropTypes.func,\n isSingleDate: PropTypes.bool,\n isWeekSelection: PropTypes.bool,\n};\nexport default DatesPicker;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactTooltip from 'react-tooltip';\nimport { isGranularityAvailable } from '@src/reporting/utils';\nimport '@src/commons/styles/molecules/granularity-picker.scss';\nvar GranularityPicker = function (_a) {\n var granularity = _a.granularity, onGranularityChange = _a.onGranularityChange, t = _a.t, from = _a.from, to = _a.to;\n return (React.createElement(\"div\", { className: \"granularity-picker\" },\n React.createElement(\"div\", { className: \"granularity-picker__title\" }, t(\"Reporting_Labels.granularity.title\")),\n React.createElement(\"button\", { onClick: function () { return (isGranularityAvailable('hourly', from, to) ? onGranularityChange('hourly') : null); }, \"data-tip\": \"\" + (isGranularityAvailable('hourly', from, to) ? '' : t('Reporting_Labels.warning.hourly')), className: \"granularity-btn \" + (granularity === 'hourly' ? 'granularity-btn--selected' : '') + \" \" + (isGranularityAvailable('hourly', from, to) ? '' : 'granularity-btn--disabled') }, t(\"Reporting_Labels.granularity.hour\")),\n React.createElement(\"button\", { onClick: function () { return (isGranularityAvailable('daily', from, to) ? onGranularityChange('daily') : null); }, \"data-tip\": \"\" + (isGranularityAvailable('daily', from, to) ? '' : t('Reporting_Labels.warning.daily')), className: \"granularity-btn \" + (granularity === 'daily' ? 'granularity-btn--selected' : '') + \" \" + (isGranularityAvailable('daily', from, to) ? '' : 'granularity-btn--disabled') }, t(\"Reporting_Labels.granularity.day\")),\n React.createElement(\"button\", { onClick: function () { return (isGranularityAvailable('monthly', from, to) ? onGranularityChange('monthly') : null); }, \"data-tip\": \"\" + (isGranularityAvailable('monthly', from, to) ? '' : t('Reporting_Labels.warning.monthly')), className: \"granularity-btn \" + (granularity === 'monthly' ? 'granularity-btn--selected' : '') + \" \" + (isGranularityAvailable('monthly', from, to) ? '' : 'granularity-btn--disabled') }, t(\"Reporting_Labels.granularity.month\")),\n React.createElement(ReactTooltip, null)));\n};\nGranularityPicker.propTypes = {\n onGranularityChange: PropTypes.func,\n granularity: PropTypes.string,\n t: PropTypes.func,\n from: PropTypes.string,\n to: PropTypes.string,\n};\nexport default GranularityPicker;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport { BarChart, Bar, XAxis, YAxis, ResponsiveContainer, Cell } from 'recharts';\nimport '@src/commons/styles/molecules/chart-card.scss';\nimport '@src/commons/styles/atoms/title.scss';\nimport '@src/commons/styles/atoms/icon.scss';\nvar colors = ['#009AA6', '#A1006B', '#B0A59A', '#FFB612'];\nvar getPath = function (x, y, width) {\n return \"m\" + x + \",\" + y + \"\\n h\" + width + \"\\n q10,0 10,10\\n v10\\n q0,10 -10,10\\n h-\" + width + \"\\n z\";\n};\nvar RectangleBar = function (args) {\n var fill = args.fill, x = args.x, y = args.y, width = args.width, height = args.height, payload = args.payload;\n var value = _.round(+payload.traffic * 100);\n return (React.createElement(\"g\", null,\n React.createElement(\"path\", { d: getPath(x, y + height / 2 - 20, width), stroke: \"none\", fill: fill }),\n React.createElement(\"text\", { x: x + width + 20, y: y + height / 2, fill: \"#999999\" },\n value,\n \"%\")));\n};\nvar TrafficByPopulationChart = function (_a) {\n var data = _a.data, t = _a.t, isFromPopulationForGCActivated = _a.isFromPopulationForGCActivated;\n return (React.createElement(\"div\", { className: \"chart-card__container\" },\n React.createElement(\"div\", { className: \"chart-card__header\" },\n React.createElement(\"div\", { className: \"chart-card__title title\" },\n t('Reporting_Labels.graphs.trafficByZone'),\n isFromPopulationForGCActivated && React.createElement(\"span\", null, \"*\"))),\n React.createElement(\"div\", { className: \"chart-card__chart\" },\n React.createElement(ResponsiveContainer, { width: \"100%\", height: \"100%\" },\n React.createElement(BarChart, { width: 600, height: 300, data: data, layout: \"vertical\", margin: { top: 5, right: 120, left: 90, bottom: 5 } },\n React.createElement(XAxis, { type: \"number\", axisLine: false, tickSize: 0, tickCount: 0, tickLine: false }),\n React.createElement(YAxis, { type: \"category\", dataKey: \"population\", axisLine: false, tick: { fontSize: '0.9rem', fill: '#666666' }, tickSize: 0, dx: -20, dy: -5, tickLine: false }),\n React.createElement(Bar, { dataKey: \"traffic\", fill: \"#8884d8\", shape: React.createElement(RectangleBar, null) }, _.map(data, function (entry, index) { return (React.createElement(Cell, { key: \"cell-\" + index, fill: colors[index % 4] })); })))),\n isFromPopulationForGCActivated && (React.createElement(\"div\", { className: \"chart-card__disclaimer\" }, \"*Ces donn\\u00E9es sont issues d'enqu\\u00EAtes r\\u00E9alis\\u00E9es par Gares & Connexions.\")))));\n};\nTrafficByPopulationChart.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.number,\n popluation: PropTypes.string,\n })),\n t: PropTypes.func,\n isFromPopulationForGCActivated: PropTypes.bool,\n};\nexport default TrafficByPopulationChart;\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport TrafficByPopulationChart from './TrafficByPopulationChart';\nimport '@src/commons/styles/organisms/reporting-graphs.scss';\nimport { getCurrentDayFrom, getCurrentDayTo } from '@src/navigation/selectors';\nimport { selectDailyStatsLoading, selectBaseAreaData, selectPresenceStatsByPopulation, } from '@src/reporting/selectors';\nimport ChartNoData from '@src/commons/ChartNoData/index';\nimport AnimatedGradientLoader from '@src/commons/Loader/AnimatedGradientLoader';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nvar TrafficByPopulationChartContainer = (function (_super) {\n __extends(TrafficByPopulationChartContainer, _super);\n function TrafficByPopulationChartContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TrafficByPopulationChartContainer.prototype.render = function () {\n var _a = this.props, data = _a.data, noData = _a.noData, from = _a.from, to = _a.to, loading = _a.loading, t = _a.t, isFromPopulationForGCActivated = _a.isFromPopulationForGCActivated;\n return (React.createElement(\"div\", { className: \"reporting-graph__element chart-card down-left\", style: { height: data.length > 4 ? data.length * 60 : '250px' } },\n loading && React.createElement(AnimatedGradientLoader, null),\n noData && !loading && (React.createElement(ChartNoData, { title: t('Reporting_Labels.graphs.trafficByZone'), from: from, to: to })),\n !noData && !loading && (React.createElement(TrafficByPopulationChart, { data: data, t: t, isFromPopulationForGCActivated: isFromPopulationForGCActivated }))));\n };\n return TrafficByPopulationChartContainer;\n}(Component));\nexport { TrafficByPopulationChartContainer };\nTrafficByPopulationChartContainer.propTypes = {\n loading: PropTypes.bool,\n data: PropTypes.arrayOf(PropTypes.shape({\n traffic: PropTypes.number,\n popluation: PropTypes.string,\n })),\n noData: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.string,\n t: PropTypes.func,\n isFromPopulationForGCActivated: PropTypes.bool,\n};\nexport var formatData = function (populations, data) {\n return _.isEmpty(data)\n ? []\n : _.map(populations, function (p) { return ({ population: p, traffic: +data[p], config: data.config }); });\n};\nexport var mapStateToProps = function (state, props) {\n var populations = ['Arrivant', 'Partant', 'Correspondant', 'Non voyageur'];\n var storeData = _.get(selectBaseAreaData(state, props), 'data', []);\n var isFromPopulationForGCActivated = isFeatureActivated('population_from_gc')(state);\n var data = isFromPopulationForGCActivated\n ? formatData(populations, storeData)\n : selectPresenceStatsByPopulation(state, props);\n return {\n data: data,\n loading: selectDailyStatsLoading(state, props),\n noData: _.every(_.map(data, function (d) { return d.traffic === 0; })),\n from: getCurrentDayFrom(state, props),\n to: getCurrentDayTo(state, props),\n isFromPopulationForGCActivated: isFromPopulationForGCActivated,\n };\n};\nvar mapDispatchToProps = function (dispatch) { return ({}); };\nexport default connect(mapStateToProps, mapDispatchToProps)(TrafficByPopulationChartContainer);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport '@src/commons/styles/molecules/chart-tooltip.scss';\nvar ChartTooltip = function (_a) {\n var title = _a.title, subtitle = _a.subtitle;\n return (React.createElement(\"div\", { className: \"chart-tooltip\" },\n React.createElement(\"div\", { className: \"chart-tooltip__content\" },\n React.createElement(\"div\", { className: \"chart-tooltip__title\" }, title),\n React.createElement(\"div\", { className: \"chart-tootlip__subtitle\" }, subtitle))));\n};\nChartTooltip.propTypes = {\n title: PropTypes.string,\n subtitle: PropTypes.string,\n};\nexport default ChartTooltip;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport moment from 'moment-timezone';\nimport { isNumberOfDayAboveOne, getHourlyTicksByDayForFrequentation, getTooltipFormat, } from '@src/reporting/utils';\nimport { Area, CartesianGrid, ComposedChart, XAxis, Tooltip, YAxis, ResponsiveContainer } from 'recharts';\nimport ChartTooltip from '@src/commons/ChartTooltip';\nimport '@src/commons/styles/molecules/card-graph.scss';\nimport '@src/commons/styles/atoms/title.scss';\nimport '@src/commons/styles/atoms/icon.scss';\nimport '@src/commons/styles/organisms/reporting-graphs.scss';\nimport ChartTooltipComparison from '@src/commons/ChartTooltip/ChartTooltipComparison';\nvar color = {\n BLUE: 'var(--primarycolor)',\n TRANSPARENT: 'rgba(255, 255, 255, 0)',\n PURPLE: '#6E1E78',\n};\nvar yAxisOffset = function (data) {\n var max = _.maxBy(data, highestValueLabel(data));\n var maxNumber = max[highestValueLabel(data)];\n if (maxNumber > 10000000) {\n return 65;\n }\n else if (maxNumber > 1000000) {\n return 60;\n }\n else if (maxNumber > 1000) {\n return 50;\n }\n else {\n return 30;\n }\n};\nexport var highestValueLabel = function (data) {\n var maxValue = _.max(_.map(data, function (d) { return d.value; }));\n var maxReferenceValue = _.max(_.map(data, function (d) { return d.referenceValue; }));\n var maxCompletionValue = _.max(_.map(data, function (d) { return d.completionValue; }));\n var numbers = [\n { label: 'value', value: maxValue },\n { label: 'referenceValue', value: maxReferenceValue },\n { label: 'completionValue', value: maxCompletionValue },\n ];\n var max = _.max(_.map(numbers, function (n) { return n.value; }));\n var maxObj = _.find(numbers, function (n) { return n.value === max; });\n return _.get(maxObj, 'label');\n};\nvar FrequentationChart = function (_a) {\n var data = _a.data, highlightValue = _a.highlightValue, isDataCompleted = _a.isDataCompleted, showOpenModal = _a.showOpenModal, onOpenModal = _a.onOpenModal, timezone = _a.timezone, locale = _a.locale, trafficLabelSubtitle = _a.trafficLabelSubtitle, trafficLabel = _a.trafficLabel, currentSite = _a.currentSite, granularity = _a.granularity, t = _a.t;\n return (React.createElement(\"div\", { className: \"chart-card__container\" },\n React.createElement(\"div\", { className: (currentSite === null || currentSite === void 0 ? void 0 : currentSite.site_types) === 'TRA' ? 'chart-card__header reporting-graph__title' : 'chart-card__header', style: { paddingRight: 0 } },\n React.createElement(\"div\", { style: { display: 'flex', alignItems: 'center' } },\n !_.isEmpty(_.filter(data, function (d) { return d.referenceValue; })) && (React.createElement(\"div\", { className: \"chart-card__disclaimer--top\" }, t('global.reference_data_label'))),\n React.createElement(\"div\", { className: (currentSite === null || currentSite === void 0 ? void 0 : currentSite.site_types) === 'TRA'\n ? 'chart-card__title title reporting-title'\n : 'chart-card__title title' },\n React.createElement(\"p\", { className: \"title\" }, trafficLabel),\n trafficLabelSubtitle && React.createElement(\"span\", { style: { fontSize: '0.8rem' } }, trafficLabelSubtitle))),\n React.createElement(\"div\", { style: { display: 'flex', alignItems: 'center' } },\n !_.isNull(highlightValue) && (React.createElement(\"div\", { className: \"chart-card__subtitle\", style: { marginRight: '0.8rem' } }, t('Reporting_Labels.graphs.pax', {\n count: highlightValue !== null && highlightValue !== void 0 ? highlightValue : 0,\n }))),\n showOpenModal && (React.createElement(\"i\", { style: { position: 'unset', paddingRight: '0.8rem' }, className: \"material-icons icon--grey\", onClick: onOpenModal }, \"crop_free\")))),\n React.createElement(\"div\", { className: \"chart-card__chart\" },\n React.createElement(ResponsiveContainer, { width: \"100%\", height: \"100%\" },\n React.createElement(ComposedChart, { data: data, margin: { top: 20, left: 0 } },\n granularity === 'hourly' ? (React.createElement(XAxis, { axisLine: false, dataKey: \"time\", name: \"Time\", ticks: isNumberOfDayAboveOne(data) ? getHourlyTicksByDayForFrequentation(data) : null, tickFormatter: function (unixTime) {\n return isNumberOfDayAboveOne(data)\n ? \"\" + moment(unixTime).tz(timezone).format('ll')\n : \"\" + moment(unixTime).tz(timezone).format('HH:mm');\n }, tick: { fontSize: '.8rem', fill: '#999' }, tickSize: 2, dy: 10 })) : (React.createElement(XAxis, { axisLine: false, dataKey: \"time\", name: \"Time\", interval: \"preserveEnd\", tickFormatter: function (unixTime) {\n return \"\" + (granularity === 'daily'\n ? moment(unixTime).format('ll')\n : moment(unixTime).format('MMM YYYY'));\n }, tick: { fontSize: '.8rem', fill: '#999' }, tickSize: 2, dy: 10 })),\n React.createElement(YAxis, { axisLine: false, dataKey: highestValueLabel(data), tickSize: 60, tick: { fontSize: '.8rem', fill: '#999' }, stroke: \"#CCC\", tickFormatter: function (data) { return (data ? (+data).toLocaleString(locale) : ''); }, tickCount: 4, dy: -10, dx: yAxisOffset(data) }),\n React.createElement(CartesianGrid, { vertical: false }),\n !_.isEmpty(_.filter(data, function (d) { return d.referenceValue; })) ? (React.createElement(Tooltip, { cursor: false, content: function (_a) {\n var active = _a.active, payload = _a.payload, label = _a.label;\n var selectedPayload = _.get(_.head(payload), 'payload');\n var selectedTime = getTooltipFormat(granularity, selectedPayload, timezone);\n var selectedValue = _.get(selectedPayload, 'value') || _.get(selectedPayload, 'completionValue');\n var referenceValue = _.get(selectedPayload, 'referenceValue');\n var value = selectedValue !== null && selectedValue !== void 0 ? selectedValue : 0;\n return (React.createElement(ChartTooltipComparison, { statValue: value, statComparedValue: parseInt(referenceValue !== null && referenceValue !== void 0 ? referenceValue : 0, 10), baseDate: selectedTime, statTitle: trafficLabel, statComparedTitle: _.isNull(referenceValue)\n ? t('Reporting_Labels.graphs.noReferenceValue')\n : t('Reporting_Labels.graphs.referenceValue'), subtitle: t('Reporting_Labels.graphs.pax', {\n count: value !== null && value !== void 0 ? value : 0,\n }), mode: \"zone\" }));\n } })) : (React.createElement(Tooltip, { cursor: false, content: function (_a) {\n var active = _a.active, payload = _a.payload, label = _a.label;\n var selectedPayload = _.get(_.head(payload), 'payload');\n var selectedTime = getTooltipFormat(granularity, selectedPayload, timezone);\n var selectedValue = _.get(selectedPayload, 'value') || _.get(selectedPayload, 'completionValue');\n var value = selectedValue !== null && selectedValue !== void 0 ? selectedValue : 0;\n return (React.createElement(ChartTooltip, { title: selectedTime, subtitle: t('Reporting_Labels.graphs.pax', {\n count: value !== null && value !== void 0 ? value : 0,\n }) }));\n } })),\n React.createElement(Area, { dataKey: \"referenceValue\", strokeWidth: 2, stroke: color.PURPLE, fill: color.TRANSPARENT }),\n React.createElement(Area, { dataKey: \"value\", strokeWidth: 2, stroke: color.BLUE, fill: color.TRANSPARENT, strokeDasharray: isDataCompleted && '5 5' }),\n React.createElement(Area, { dataKey: \"completionValue\", strokeWidth: 2, stroke: color.BLUE, fill: color.TRANSPARENT, strokeDasharray: \"5 5\" }))))));\n};\nFrequentationChart.propTypes = {\n isDataCompleted: PropTypes.bool,\n granularity: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n value: PropTypes.number,\n referenceValue: PropTypes.number,\n })),\n showOpenModal: PropTypes.bool,\n highlightValue: PropTypes.number,\n onOpenModal: PropTypes.func,\n timezone: PropTypes.string,\n locale: PropTypes.string,\n t: PropTypes.func,\n trafficLabel: PropTypes.string,\n};\nexport default FrequentationChart;\n","import { __assign, __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport ReactModal from 'react-modal';\nimport AnimatedGradientLoader from '@src/commons/Loader/AnimatedGradientLoader';\nimport FrequentationChart from './FrequentationChart';\nimport ChartNoData from '@src/commons/ChartNoData/index';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nimport { getCurrentDayFrom, getCurrentDayTo } from '@src/navigation/selectors';\nimport { selectPresenceStatsWithStandardDayStats, selectPresenceStatsWithDataCompletion, selectPresenceSum, getterNavigationGranularity, selectPresenceSumLoading, selectStatsLoading, } from '@src/reporting/selectors';\nimport '@src/commons/styles/organisms/reporting-graphs.scss';\nimport { withTranslation } from 'react-i18next';\nvar modalStyle = {\n overlay: {\n zIndex: 1,\n width: '100%',\n backgroundColor: 'rgba(46, 49, 49, 0.5)',\n },\n content: {\n height: '400px',\n top: '50%',\n left: '10%',\n right: '10%',\n transform: 'translateY(-50%)',\n border: null,\n borderRadius: '3px',\n boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.4)',\n display: 'flex',\n flexDirection: 'column',\n padding: '0',\n paddingBottom: '1rem',\n },\n};\nvar FrequentationChartContainer = (function (_super) {\n __extends(FrequentationChartContainer, _super);\n function FrequentationChartContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n open: false,\n };\n _this.handleOpenModal = _this.handleOpenModal.bind(_this);\n return _this;\n }\n FrequentationChartContainer.prototype.handleOpenModal = function () {\n this.setState({ open: true });\n };\n FrequentationChartContainer.prototype.render = function () {\n var _this = this;\n var _a = this.props, isDataCompletionActive = _a.isDataCompletionActive, presenceDistrib = _a.presenceDistrib, presenceDataCompletion = _a.presenceDataCompletion, presenceSum = _a.presenceSum, presenceSumLoading = _a.presenceSumLoading, presenceDistribLoading = _a.presenceDistribLoading, timezone = _a.timezone, locale = _a.locale, currentSite = _a.currentSite, currentGranularity = _a.currentGranularity, from = _a.from, to = _a.to, t = _a.t;\n var isDataCompleted = _.every(presenceDataCompletion, function (obj) { return obj.isCompleted === true; });\n var presenceData = isDataCompletionActive ? presenceDataCompletion : presenceDistrib;\n var trafficLabel = (currentSite === null || currentSite === void 0 ? void 0 : currentSite.site_types) === 'AIR'\n ? t('common.traffic', { ns: 'airport' })\n : t('common.reporting_traffic', { ns: 'railways' });\n var trafficLabelSubtitle = (currentSite === null || currentSite === void 0 ? void 0 : currentSite.site_types) === 'TRA' &&\n t('common.reporting_traffic_subtitle', {\n ns: 'railways',\n });\n return (React.createElement(\"div\", { className: \"reporting-graph__element chart-card chart-card--reporting up-left\" },\n (presenceDistribLoading || presenceSumLoading) && React.createElement(AnimatedGradientLoader, null),\n _.isEmpty(presenceDistrib) && !presenceSumLoading && !presenceDistribLoading && (React.createElement(ChartNoData, { title: trafficLabel, from: from, to: to })),\n !_.isEmpty(presenceDistrib) && !presenceSumLoading && !presenceDistribLoading && (React.createElement(FrequentationChart, { data: presenceData, highlightValue: presenceSum, isDataCompleted: isDataCompleted, trafficLabel: trafficLabel, currentSite: currentSite, trafficLabelSubtitle: trafficLabelSubtitle, showOpenModal: true, onOpenModal: this.handleOpenModal, timezone: timezone, locale: locale, granularity: currentGranularity, t: t })),\n !_.isEmpty(presenceDistrib) && !presenceSumLoading && !presenceDistribLoading && (React.createElement(ReactModal, { isOpen: this.state.open, style: modalStyle, onRequestClose: function () {\n _this.setState({ open: false });\n }, ariaHideApp: false },\n React.createElement(\"i\", { className: \"material-icons close-button icon--grey\", onClick: function () {\n _this.setState({ open: false });\n } }, \"close\"),\n React.createElement(FrequentationChart, { data: presenceData, granularity: currentGranularity, isDataCompleted: isDataCompleted, trafficLabel: trafficLabel, trafficLabelSubtitle: trafficLabelSubtitle, timezone: timezone, currentSite: currentSite, locale: locale, t: t, highlightValue: presenceSum })))));\n };\n return FrequentationChartContainer;\n}(Component));\nexport { FrequentationChartContainer };\nFrequentationChartContainer.propTypes = {\n isDataCompletionActive: PropTypes.bool,\n presenceDistrib: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n value: PropTypes.number,\n })),\n presenceDataCompletion: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n value: PropTypes.number,\n })),\n presenceDistribLoading: PropTypes.bool,\n presenceSumLoading: PropTypes.bool,\n currentGranularity: PropTypes.string,\n presenceSum: PropTypes.number,\n timezone: PropTypes.string,\n locale: PropTypes.string,\n from: PropTypes.string,\n to: PropTypes.string,\n t: PropTypes.func,\n currentSite: PropTypes.any,\n};\nexport var mapStateToProps = function (state, props) {\n var _a, _b;\n return ({\n currentSite: (_b = (_a = state === null || state === void 0 ? void 0 : state.sites) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.find(function (site) { return site.uuid === (props === null || props === void 0 ? void 0 : props.siteId); }),\n isDataCompletionActive: isFeatureActivated('display_completion')(state),\n presenceDistrib: selectPresenceStatsWithStandardDayStats(state, props),\n presenceDataCompletion: selectPresenceStatsWithDataCompletion(state, props),\n presenceSum: selectPresenceSum(state, props),\n currentGranularity: getterNavigationGranularity(state, props),\n presenceSumLoading: selectPresenceSumLoading(state, props),\n presenceDistribLoading: selectStatsLoading(state, __assign(__assign({}, props), { kind: 'presence' })),\n from: getCurrentDayFrom(state, props),\n to: getCurrentDayTo(state, props),\n });\n};\nexport default connect(mapStateToProps, {})(withTranslation(['legacy', 'airport', 'railways'])(FrequentationChartContainer));\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment-timezone';\nimport _ from 'lodash';\nimport { BarChart, Bar, CartesianGrid, XAxis, Tooltip, YAxis, ResponsiveContainer, Cell } from 'recharts';\nimport ChartTooltip from '@src/commons/ChartTooltip';\nimport { isNumberOfDayAboveOne, getHourlyTicksByDayForDwelltime, getTooltipFormat, getCellColor, getStrokeColor, getStrokeDashArray, } from '@src/reporting/utils';\nimport '@src/commons/styles/molecules/chart-card.scss';\nimport '@src/commons/styles/atoms/title.scss';\nimport '@src/commons/styles/atoms/icon.scss';\nvar DwelltimeChart = (function (_super) {\n __extends(DwelltimeChart, _super);\n function DwelltimeChart(props) {\n var _this = _super.call(this, props) || this;\n _this.state = { activeIndex: -1 };\n return _this;\n }\n DwelltimeChart.prototype.render = function () {\n var _this = this;\n var _a = this.props, showOpenModal = _a.showOpenModal, data = _a.data, onOpenModal = _a.onOpenModal, timezone = _a.timezone, granularity = _a.granularity, highlightValue = _a.highlightValue, t = _a.t, locale = _a.locale;\n var memoizedGetCellColor = _.memoize(getCellColor);\n var memoizedGetStrokeColor = _.memoize(getStrokeColor);\n var memoizedGetStrokeDashArray = _.memoize(getStrokeDashArray);\n return (React.createElement(\"div\", { className: \"chart-card__container\" },\n React.createElement(\"div\", { className: \"chart-card__header\" },\n React.createElement(\"div\", { className: \"chart-card__title title\" }, t('Reporting_Labels.graphs.dwelltime')),\n !_.isNull(highlightValue) && React.createElement(\"div\", { className: \"chart-card__subtitle\" }, highlightValue),\n showOpenModal && (React.createElement(\"i\", { className: \"material-icons icon--grey\", onClick: onOpenModal }, \"crop_free\"))),\n React.createElement(\"div\", { className: \"chart-card__chart\" },\n React.createElement(ResponsiveContainer, { width: \"100%\", height: \"100%\" },\n React.createElement(BarChart, { width: 730, height: 250, data: data, margin: { top: -1, right: 0, left: 0, bottom: -5 }, onMouseLeave: function () { return _this.setState({ activeIndex: -1 }); } },\n React.createElement(CartesianGrid, { vertical: false }),\n granularity === 'hourly' ? (React.createElement(XAxis, { dataKey: \"time\", axisLine: false, tickLine: false, tick: { fontSize: '.8rem', fill: '#999' }, ticks: isNumberOfDayAboveOne(data) ? getHourlyTicksByDayForDwelltime(data) : null, tickFormatter: function (unixTime) {\n return isNumberOfDayAboveOne(data)\n ? moment(unixTime).tz(timezone).format('ll')\n : moment(unixTime).tz(timezone).format('HH:mm');\n }, padding: { left: 70 }, tickSize: 2, dy: 10 })) : granularity === 'daily' ? (React.createElement(XAxis, { dataKey: \"time\", axisLine: false, tickLine: false, tick: { fontSize: '.8rem', fill: '#999' }, interval: \"preserveEnd\", tickFormatter: function (unixTime) {\n return isNumberOfDayAboveOne(data)\n ? moment(unixTime).format('ll')\n : moment(unixTime).format('MMM');\n }, padding: { left: 70 }, tickSize: 2, dy: 10 })) : (React.createElement(XAxis, { dataKey: \"time\", axisLine: false, tickLine: false, tick: { fontSize: '.8rem', fill: '#999' }, interval: \"preserveEnd\", tickFormatter: function (unixTime) { return moment(unixTime).format('MMM YYYY'); }, padding: { left: 70 }, tickSize: 2, dy: 10 })),\n React.createElement(YAxis, { axisLine: false, dataKey: \"value\", domain: [0, 'auto'], tick: { fontSize: '.8rem', fill: '#999' }, tickSize: 0, tickCount: 4, tickFormatter: function (data) { return data + \"min\"; }, type: \"number\", interval: \"preserveEnd\", orientation: \"left\", mirror: true, padding: { top: 20 }, dy: -10, dx: 10 }),\n React.createElement(Tooltip, { cursor: false, content: function (_a) {\n var active = _a.active, payload = _a.payload, label = _a.label;\n var selectedPayload = _.get(_.head(payload), 'payload');\n var selectedTime = getTooltipFormat(granularity, selectedPayload, timezone);\n var selectedValue = _.get(selectedPayload, 'value');\n return (!_.isUndefined(selectedValue) && (React.createElement(ChartTooltip, { title: selectedTime, subtitle: _.round(selectedValue) > 1\n ? _.round(selectedValue).toLocaleString(locale) + \" mins\"\n : _.round(selectedValue).toLocaleString(locale) + \" min\" })));\n } }),\n React.createElement(Bar, { dataKey: \"value\", onMouseOver: function (data, index) {\n if (_this.state.activeIndex !== index) {\n _this.setState({ activeIndex: index });\n }\n } }, _.map(data, function (entry, index) { return (React.createElement(Cell, { cursor: \"pointer\", stroke: memoizedGetStrokeColor({\n activeIndex: index === _this.state.activeIndex,\n isCursorOnChart: _this.state.activeIndex >= 0,\n isDashed: entry.isCompleted,\n color: 'var(--primarycolorRGB)',\n }), strokeDasharray: memoizedGetStrokeDashArray({\n activeIndex: index === _this.state.activeIndex,\n isDashed: entry.isCompleted,\n }), fill: memoizedGetCellColor({\n activeIndex: index === _this.state.activeIndex,\n isCursorOnChart: _this.state.activeIndex >= 0,\n isDashed: entry.isCompleted,\n color: 'var(--primarycolorRGB)',\n }), key: \"cell-\" + index })); })))))));\n };\n return DwelltimeChart;\n}(Component));\nexport { DwelltimeChart };\nDwelltimeChart.propTypes = {\n highlightValue: PropTypes.number,\n granularity: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n value: PropTypes.number,\n })),\n timezone: PropTypes.string,\n showOpenModal: PropTypes.bool,\n onOpenModal: PropTypes.func,\n t: PropTypes.func,\n locale: PropTypes.string,\n};\nexport default DwelltimeChart;\n","import { __assign, __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport DwelltimeChart from './DwelltimeChart';\nimport ReactModal from 'react-modal';\nimport AnimatedGradientLoader from '@src/commons/Loader/AnimatedGradientLoader';\nimport { connect } from 'react-redux';\nimport { selectDwelltimeStats, getterNavigationGranularity, selectDwelltimeMean, selectDwelltimeMeanLoading, selectStatsLoading, } from '@src/reporting/selectors';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nimport { getCurrentDayFrom, getCurrentDayTo } from '@src/navigation/selectors';\nimport ChartNoData from '@src/commons/ChartNoData/index';\nimport '@src/commons/styles/organisms/reporting-graphs.scss';\nvar modalStyle = {\n overlay: {\n zIndex: 1,\n width: '100%',\n backgroundColor: 'rgba(46, 49, 49, 0.5)',\n },\n content: {\n height: '400px',\n top: '50%',\n left: '10%',\n right: '10%',\n transform: 'translateY(-50%)',\n border: null,\n borderRadius: '3px',\n boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.4)',\n display: 'flex',\n flexDirection: 'column',\n padding: '0',\n paddingBottom: '1rem',\n },\n};\nvar DwelltimeChartContainer = (function (_super) {\n __extends(DwelltimeChartContainer, _super);\n function DwelltimeChartContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n open: false,\n };\n _this.handleOpenModal = _this.handleOpenModal.bind(_this);\n return _this;\n }\n DwelltimeChartContainer.prototype.handleOpenModal = function () {\n this.setState({ open: true });\n };\n DwelltimeChartContainer.prototype.render = function () {\n var _this = this;\n var _a = this.props, isDataCompletionActive = _a.isDataCompletionActive, data = _a.data, timezone = _a.timezone, locale = _a.locale, currentGranularity = _a.currentGranularity, dwelltimeMean = _a.dwelltimeMean, dwelltimeMeanLoading = _a.dwelltimeMeanLoading, dwelltimeDistribLoading = _a.dwelltimeDistribLoading, from = _a.from, to = _a.to, t = _a.t;\n var ffData = isDataCompletionActive ? data : _.map(data, function (d) { return (__assign(__assign({}, d), { isCompleted: false })); });\n return (React.createElement(\"div\", { className: \"reporting-graph__element chart-card chart-card--reporting up-right\" },\n dwelltimeDistribLoading && React.createElement(AnimatedGradientLoader, null),\n _.isEmpty(ffData) && !dwelltimeDistribLoading && (React.createElement(ChartNoData, { title: t('Reporting_Labels.graphs.dwelltime'), from: from, to: to })),\n !_.isEmpty(ffData) && !dwelltimeMeanLoading && !dwelltimeDistribLoading && (React.createElement(DwelltimeChart, { data: ffData, showOpenModal: true, onOpenModal: this.handleOpenModal, timezone: timezone, locale: locale, granularity: currentGranularity, t: t, highlightValue: dwelltimeMean })),\n !_.isEmpty(ffData) && !dwelltimeMeanLoading && !dwelltimeDistribLoading && (React.createElement(ReactModal, { isOpen: this.state.open, style: modalStyle, onRequestClose: function () {\n _this.setState({ open: false });\n }, ariaHideApp: false },\n React.createElement(\"i\", { className: \"material-icons close-button icon--grey\", onClick: function () {\n _this.setState({ open: false });\n } }, \"close\"),\n React.createElement(DwelltimeChart, { t: t, data: ffData, timezone: timezone, locale: locale, granularity: currentGranularity, highlightValue: dwelltimeMean })))));\n };\n return DwelltimeChartContainer;\n}(Component));\nexport { DwelltimeChartContainer };\nexport var mapStateToProps = function (state, props) { return ({\n data: selectDwelltimeStats(state, props),\n currentGranularity: getterNavigationGranularity(state, props),\n dwelltimeMean: selectDwelltimeMean(state, props),\n dwelltimeMeanLoading: selectDwelltimeMeanLoading(state, props),\n dwelltimeDistribLoading: selectStatsLoading(state, __assign(__assign({}, props), { kind: 'dwelltime' })),\n from: getCurrentDayFrom(state, props),\n to: getCurrentDayTo(state, props),\n isDataCompletionActive: isFeatureActivated('display_completion')(state),\n}); };\nvar mapDispatchToProps = function (dispatch) { return ({}); };\nDwelltimeChartContainer.propTypes = {\n isDataCompletionActive: PropTypes.bool,\n dwelltimeDistribLoading: PropTypes.bool,\n dwelltimeMeanLoading: PropTypes.bool,\n currentGranularity: PropTypes.string,\n dwelltimeMean: PropTypes.number,\n data: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n value: PropTypes.number,\n })),\n timezone: PropTypes.string,\n locale: PropTypes.string,\n from: PropTypes.string,\n to: PropTypes.string,\n t: PropTypes.func,\n};\nexport default connect(mapStateToProps, mapDispatchToProps)(DwelltimeChartContainer);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport _ from 'lodash';\nimport { BarChart, Bar, XAxis, YAxis, ResponsiveContainer, Cell } from 'recharts';\nimport '@src/commons/styles/molecules/chart-card.scss';\nimport '@src/commons/styles/atoms/title.scss';\nimport '@src/commons/styles/atoms/icon.scss';\nvar colors = ['#009AA6', '#A1006B', '#B0A59A', '#FFB612'];\nvar getPath = function (x, y, width) {\n return \"m\" + x + \",\" + y + \"\\n h\" + width + \"\\n q10,0 10,10\\n v10\\n q0,10 -10,10\\n h-\" + width + \"\\n z\";\n};\nvar RectangleBar = function (args) {\n var fill = args.fill, x = args.x, y = args.y, width = args.width, height = args.height, payload = args.payload;\n var value = moment.duration(payload.value, 'minutes');\n var formatedTime = moment\n .utc(value.as('milliseconds'))\n .format((payload.value >= 60 ? 'h[h] ' : '') + \"m\" + (_.round(payload.value) > 1 ? '[mins]' : '[min]'));\n return (React.createElement(\"g\", null,\n React.createElement(\"path\", { d: getPath(x, y + height / 2 - 20, width), stroke: \"none\", fill: fill }),\n React.createElement(\"text\", { x: x + width + 20, y: y + height / 2, fill: \"#999999\" }, formatedTime)));\n};\nvar DwelltimeByPopulationChart = function (_a) {\n var data = _a.data, t = _a.t;\n return (React.createElement(\"div\", { className: \"chart-card__container\" },\n React.createElement(\"div\", { className: \"chart-card__header\" },\n React.createElement(\"div\", { className: \"chart-card__title title\" }, t('Reporting_Labels.graphs.dwelltimeByZone'))),\n React.createElement(\"div\", { className: \"chart-card__chart\" },\n React.createElement(ResponsiveContainer, { height: \"100%\" },\n React.createElement(BarChart, { width: 600, height: 300, data: data, layout: \"vertical\", margin: { top: 5, right: 120, left: 90, bottom: 5 } },\n React.createElement(XAxis, { type: \"number\", axisLine: false, tickSize: 0, tickCount: 0, tickLine: false }),\n React.createElement(YAxis, { type: \"category\", dataKey: \"population\", axisLine: false, tick: { fontSize: '0.9rem', fill: '#666666' }, tickSize: 0, dx: -20, dy: -5, tickLine: false }),\n React.createElement(Bar, { dataKey: \"value\", fill: \"#8884d8\", shape: React.createElement(RectangleBar, null) }, _.map(data, function (entry, index) { return (React.createElement(Cell, { key: \"cell-\" + index, fill: colors[index % 4] })); })))))));\n};\nDwelltimeByPopulationChart.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.number,\n popluation: PropTypes.string,\n })),\n t: PropTypes.func,\n};\nexport default DwelltimeByPopulationChart;\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport { connect } from 'react-redux';\nimport DwelltimeByPopulationChart from './DwelltimeByPopulationChart';\nimport { selectDwelltimeStatsByPopulation, selectDailyStatsLoading, selectDwelltimeStatsByPopulationForGaresEtConnexions, } from '@src/reporting/selectors';\nimport AnimatedGradientLoader from '@src/commons/Loader/AnimatedGradientLoader';\nimport { getCurrentDayFrom, getCurrentDayTo } from '@src/navigation/selectors';\nimport ChartNoData from '@src/commons/ChartNoData/index';\nimport '@src/commons/styles/organisms/reporting-graphs.scss';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nvar DwelltimeByPopulationChartContainer = (function (_super) {\n __extends(DwelltimeByPopulationChartContainer, _super);\n function DwelltimeByPopulationChartContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DwelltimeByPopulationChartContainer.prototype.render = function () {\n var _a = this.props, data = _a.data, loading = _a.loading, from = _a.from, to = _a.to, t = _a.t;\n return (React.createElement(\"div\", { className: \"reporting-graph__element chart-card down-right\", style: { height: data.length > 4 ? data.length * 60 : '250px' } },\n loading && React.createElement(AnimatedGradientLoader, null),\n _.isEmpty(data) && !loading && (React.createElement(ChartNoData, { title: t('Reporting_Labels.graphs.dwelltimeByZone'), from: from, to: to })),\n !_.isEmpty(data) && !loading && React.createElement(DwelltimeByPopulationChart, { data: data, t: t })));\n };\n return DwelltimeByPopulationChartContainer;\n}(Component));\nexport { DwelltimeByPopulationChartContainer };\nDwelltimeByPopulationChartContainer.propTypes = {\n loading: PropTypes.bool,\n data: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.number,\n popluation: PropTypes.string,\n })),\n from: PropTypes.string,\n to: PropTypes.string,\n t: PropTypes.func,\n};\nexport var mapStateToProps = function (state, props) {\n var isFromPopulationForGCActivated = isFeatureActivated('population_from_gc')(state);\n var data = isFromPopulationForGCActivated\n ? selectDwelltimeStatsByPopulationForGaresEtConnexions(state, props)\n : selectDwelltimeStatsByPopulation(state, props);\n return {\n data: data,\n loading: selectDailyStatsLoading(state, props),\n from: getCurrentDayFrom(state, props),\n to: getCurrentDayTo(state, props),\n };\n};\nvar mapDispatchToProps = function (dispatch) { return ({}); };\nexport default connect(mapStateToProps, mapDispatchToProps)(DwelltimeByPopulationChartContainer);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport '@src/commons/styles/molecules/daily-monitoring-line.scss';\nimport '@src/commons/styles/atoms/color-line.scss';\nvar DailySocialDistancingArea = function (_a) {\n var _b;\n var area = _a.area, onSelectArea = _a.onSelectArea, classNames = _a.classNames;\n return (React.createElement(\"div\", { className: \"daily-monitoring-line \" + classNames, onClick: function () { return (area.isInError ? {} : onSelectArea(area === null || area === void 0 ? void 0 : area.uuid)); } },\n React.createElement(\"div\", { className: \"daily-monitoring-line__title\", title: area === null || area === void 0 ? void 0 : area.name }, area === null || area === void 0 ? void 0 : area.name),\n React.createElement(\"div\", { className: \"daily-monitoring-line__values\" }, _.map(_.chunk((_b = area === null || area === void 0 ? void 0 : area.data) !== null && _b !== void 0 ? _b : [], 4), function (hour, index) {\n return hour && (React.createElement(\"div\", { key: (area === null || area === void 0 ? void 0 : area.uuid) + \"-hour-\" + index, className: \"daily-monitoring-line__hour\" }, _.map(hour, function (quarter, index) { return (React.createElement(\"div\", { key: (area === null || area === void 0 ? void 0 : area.uuid) + \"-quarter-\" + index, className: \"color-line__quarter\", style: { backgroundColor: quarter === null || quarter === void 0 ? void 0 : quarter.color } })); })));\n }))));\n};\nDailySocialDistancingArea.propTypes = {\n area: PropTypes.shape({\n name: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.shape({ color: PropTypes.string })),\n }),\n onSelectArea: PropTypes.func,\n classNames: PropTypes.string,\n};\nexport default DailySocialDistancingArea;\n","export default __webpack_public_path__ + \"public/sdm-logo.svg\";","import { __read, __spread } from \"tslib\";\nimport React from 'react';\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport DailySocialDistancingArea from './DailySocialDistancingArea';\nimport ContentLoader from 'react-content-loader';\nimport SortButton from '@src/commons/SortButton';\nimport '@src/commons/styles/organisms/social-distancing-monitoring-table.scss';\nimport '@src/commons/styles/molecules/search-box.scss';\nimport socialDistancing from './assets/sdm-logo.svg';\nimport ReactTooltip from 'react-tooltip';\nimport { ScalesTooltip } from '@src/commons/ScalesTooltip';\nexport var getSortedAreas = function (areas, sortId) {\n switch (sortId) {\n case 'name':\n return _.sortBy(areas, ['name']);\n case 'nb_peaks':\n return areas.sort(function (area, nextArea) {\n var next = Math.min.apply(Math, __spread(nextArea.data\n .map(function (ar) { return ar.density; })\n .flat()\n .filter(function (item) { return item !== Infinity; })));\n var prev = Math.min.apply(Math, __spread(area.data\n .map(function (ar) { return ar.density; })\n .flat()\n .filter(function (item) { return item !== Infinity; })));\n return prev - next;\n });\n default:\n break;\n }\n};\nvar SocialDistancingMonitoringTable = function (_a) {\n var currentApp = _a.currentApp, currentArea = _a.currentArea, areas = _a.areas, currentSorting = _a.currentSorting, onSortChange = _a.onSortChange, handleSearch = _a.handleSearch, searchContent = _a.searchContent, t = _a.t, loading = _a.loading, isSetup = _a.isSetup, onSelectArea = _a.onSelectArea, scales = _a.scales, isNoData = _a.isNoData, socialDistancingGreenThreshold = _a.socialDistancingGreenThreshold, socialDistancingRedThreshold = _a.socialDistancingRedThreshold;\n var sortedAreas = getSortedAreas(areas, currentSorting.id);\n var displayedArea = _.find(sortedAreas, function (area) {\n return area.uuid === currentArea.uuid;\n });\n return (React.createElement(\"div\", { className: \"sdm-table\" },\n React.createElement(\"div\", { className: \"sdm-table__header\" },\n React.createElement(\"div\", { className: \"sdm-table__header-title-with-icon\" },\n React.createElement(\"img\", { className: \"sdm-table__logo\", src: socialDistancing }),\n React.createElement(\"div\", { className: \"sdm-table__titles\" },\n React.createElement(\"div\", { className: \"sdm-table__main-title\" }, t(\"Social_Distancing_Labels.SocialDistancingMonitoring.table.title\")),\n React.createElement(\"div\", { className: \"sdm-table__secondary-title\" }, t(\"Social_Distancing_Labels.SocialDistancingMonitoring.table.subtitle\")))),\n React.createElement(\"i\", { \"data-tip\": true, \"data-for\": \"scales\", className: \"info material-icons\" }, \"help\"),\n React.createElement(ReactTooltip, { place: \"left\", id: \"scales\", \"aria-haspopup\": \"true\" },\n React.createElement(ScalesTooltip, { scales: scales }))),\n loading && (React.createElement(ContentLoader, { height: 80, width: 400, speed: 2, primaryColor: \"#f3f3f3\", secondaryColor: \"#ecebeb\" },\n React.createElement(\"rect\", { x: \"10\", y: \"10\", rx: \"5\", ry: \"5\", width: \"372\", height: \"8\" }),\n React.createElement(\"rect\", { x: \"10\", y: \"30\", rx: \"5\", ry: \"5\", width: \"372\", height: \"8\" }),\n React.createElement(\"rect\", { x: \"10\", y: \"50\", rx: \"5\", ry: \"5\", width: \"372\", height: \"8\" }))),\n !loading && isSetup && !isNoData && (React.createElement(\"div\", { className: \"sdm-table__content\" },\n React.createElement(\"div\", { className: \"sdm-table__menu\" },\n React.createElement(\"div\", { className: \"search-box sdm-table__menu__element\" },\n React.createElement(\"i\", { className: \"search-box__search-icon material-icons\" }, \"search\"),\n React.createElement(\"input\", { type: \"text\", className: \"search-box__input search-input\", placeholder: t('search'), autoFocus: true, onChange: function (e) { return handleSearch(e.target.value); }, value: searchContent })),\n React.createElement(SortButton, { title: t(\"Live_Labels.Realtime.social_distancing.sort_btn.title\"), options: [\n { id: 'name', name: t(\"Social_Distancing_Labels.SocialDistancingMonitoring.sort_btn.name\") },\n {\n id: 'nb_peaks',\n name: t(\"Social_Distancing_Labels.SocialDistancingMonitoring.sort_btn.nb_peaks\"),\n },\n ], currentOption: currentSorting, onChange: onSortChange })),\n React.createElement(\"div\", { className: \"daily-monitoring-line daily-monitoring-line--header\" },\n React.createElement(\"div\", { className: \"daily-monitoring-line__title\" }),\n React.createElement(\"div\", { className: \"daily-monitoring-line__values\" }, _.map(_.range(0, 96), function (value, idx) {\n return value % 4 === 0 ? (React.createElement(\"div\", { key: \"header-\" + idx, className: \"daily-monitoring-line__value-hour daily-monitoring-line__header\" },\n React.createElement(\"span\", { className: \"daily-monitoring-line__header-value\" },\n value / 4,\n \"h\"))) : (React.createElement(\"div\", { key: \"header-\" + idx, className: \"daily-monitoring-line__value-hour\" }));\n }))),\n React.createElement(\"div\", { className: \"sdm-table__values\" }, currentApp === 'reporting' ? (currentArea.uuid ? (React.createElement(DailySocialDistancingArea, { area: displayedArea, onSelectArea: onSelectArea, classNames: '' })) : (_.map(sortedAreas, function (a, idx) { return (React.createElement(DailySocialDistancingArea, { key: idx, area: a, onSelectArea: onSelectArea, classNames: idx % 2 === 0 ? '' : 'daily-monitoring-line--white' })); }))) : (_.map(sortedAreas, function (a, idx) { return (React.createElement(DailySocialDistancingArea, { key: idx, area: a, onSelectArea: onSelectArea, classNames: idx % 2 === 0 ? '' : 'daily-monitoring-line--white' })); }))))),\n !isSetup && !loading && (React.createElement(\"div\", { className: \"no-setup-messages\" }, t('Live_Labels.density.not_available'))),\n isSetup && !loading && isNoData && React.createElement(\"div\", { className: \"no-setup-messages\" }, t('Chart_No_Data.title'))));\n};\nSocialDistancingMonitoringTable.propTypes = {\n currentApp: PropTypes.string,\n currentArea: PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n }),\n areas: PropTypes.arrayOf(PropTypes.shape({\n area: PropTypes.shape({\n name: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.shape({ color: PropTypes.string })),\n }),\n })),\n handleSearch: PropTypes.func,\n searchContent: PropTypes.string,\n t: PropTypes.func,\n loading: PropTypes.bool,\n isSetup: PropTypes.bool,\n onSelectArea: PropTypes.func,\n isNoData: PropTypes.bool,\n currentSorting: PropTypes.shape({\n id: PropTypes.string,\n nb_peaks: PropTypes.string,\n }),\n onSortChange: PropTypes.func,\n socialDistancingRedThreshold: PropTypes.number,\n socialDistancingGreenThreshold: PropTypes.number,\n};\nexport default SocialDistancingMonitoringTable;\n","import { __assign } from \"tslib\";\nimport _ from 'lodash';\nimport { filter, includes, map, path, pathOr } from 'ramda';\nimport moment from 'moment-timezone';\nimport { createSelector } from 'reselect';\nimport { getCurrentFloorId2, getCurrentSiteId2, getCurrentDayFrom } from '@src/navigation/selectors';\nimport { getterCurrentSite, getterSiteLiveAreas, } from '@src/social_distancing/social_distancing_assistant/selectors';\nimport { getterNavigationSiteId, getterNavigationFloorId } from '@src/reporting/selectors';\nimport { getterSiteConfig } from '@src/commons/configs/selectors';\nimport { linkScaleWithDensity } from '@src/commons/scalesConfigurations/utils';\nimport { isSocialDistancingParametersLoading, getSocialDistancingParameters, } from '@src/social_distancing/selectors';\nexport var getterCurrentSiteTimezone = function (state) {\n return _.get(_.find(_.get(state.sites, 'data'), { uuid: state.navigation.siteId }), 'timezone');\n};\nexport var getterSocialDistanceJ1 = function (state, props) {\n return _.get(state.socialDistanceJ1[props.siteId], \"\" + props.currentDate);\n};\nexport var isSocialDistancingTableLoading = createSelector(getterSocialDistanceJ1, function (data) {\n return _.get(data, 'stockDistrib.loading', true);\n});\nexport var isSocialDistancingDailyTrafficLoading = createSelector(getterSocialDistanceJ1, function (data) {\n return _.get(data, 'dailyTraffic.loading', true);\n});\nexport var isSocialDistancingRatioLoading = createSelector(isSocialDistancingParametersLoading, isSocialDistancingDailyTrafficLoading, function (isRefTrafficLoading, isDailyTrafficLoading) { return isRefTrafficLoading || isDailyTrafficLoading; });\nexport var computeAreaSocialDistancing = function (usableArea, areaData, thresholdMin, thresholdMax, opening, closing, tz, currentScale) {\n if (areaData.is_error) {\n return 'grey';\n }\n if (!isDataInOpeningHours(opening, closing, moment(areaData.from_hour * 1000).format('HH:mm:ss'), tz)) {\n return 'grey';\n }\n var density = usableArea / +areaData.value;\n return linkScaleWithDensity(currentScale, density, false);\n};\nexport var getCurrentFloor = createSelector(function (state) { return state.floors; }, getterNavigationSiteId, getterNavigationFloorId, function (floors, siteId, floorId) { return _.find(_.get(floors[siteId], 'data', []), { uuid: floorId }); });\nexport var getterCurrentFloor = createSelector(function (state) { return state.floors; }, getCurrentSiteId2, getCurrentFloorId2, function (floors, siteId, floorId) { return _.find(_.get(floors[siteId], 'data', []), { uuid: floorId }); });\nexport var selectIsMapLoading = createSelector(getterCurrentFloor, function (floor) { return !floor; });\nexport var isDataInOpeningHours = function (opening, closing, currentTime, tz) {\n var open = opening ? moment(opening, 'HH:mm:ss') : moment('00:00:00', 'HH:mm:ss');\n var close = closing ? moment(closing, 'HH:mm:ss') : moment('23:59:59', 'HH:mm:ss');\n var currentWithTz = moment.tz(currentTime, 'HH:mm:ss', 'Europe/Paris').tz(tz).format('HH:mm:ss');\n var current = moment(currentWithTz, 'HH:mm:ss');\n if (open > close) {\n return current >= open || current <= close;\n }\n return current >= open && current <= close;\n};\nexport var selectAllAreasSocialDistanceJ1 = createSelector(getterSocialDistanceJ1, getterSiteConfig, getCurrentDayFrom, getSocialDistancingParameters, getterCurrentSiteTimezone, getterSiteLiveAreas, function (state) { return state.navigation; }, function (data, config, day, socialDistancingParameters, tz, liveAreas, navigation) {\n var _a, _b, _c, _d;\n var social_distancing_green_threshold = socialDistancingParameters.social_distancing_green_threshold, social_distancing_red_threshold = socialDistancingParameters.social_distancing_red_threshold;\n var isAppSocialDistancing = navigation.app === 'social-distancing' || 'reporting';\n var currentScale = isAppSocialDistancing\n ? (_b = (_a = config === null || config === void 0 ? void 0 : config.data) === null || _a === void 0 ? void 0 : _a.quality_service_scales) === null || _b === void 0 ? void 0 : _b.levels : (_d = (_c = config === null || config === void 0 ? void 0 : config.data) === null || _c === void 0 ? void 0 : _c.fruin_scales) === null || _d === void 0 ? void 0 : _d.levels;\n var opening = path([\"\" + moment(day).locale('en').format('dddd'), 'opening'], config.data.opening_hours);\n var closing = path([\"\" + moment(day).locale('en').format('dddd'), 'closing'], config.data.opening_hours);\n var filterData = filter(function (area) {\n return includes(area.uuid, map(function (liveArea) { return liveArea.area; }, liveAreas));\n }, pathOr([], ['stockDistrib', 'areas'], data));\n return _.sortBy(map(function (areaItem) { return (__assign(__assign({}, areaItem), { name: areaItem.zone_name, data: map(function (hourValue) { return (__assign(__assign({}, hourValue), { color: computeAreaSocialDistancing(areaItem.usable_area, hourValue, social_distancing_red_threshold, social_distancing_green_threshold, opening, closing, tz, currentScale), density: areaItem.usable_area / hourValue.value })); }, pathOr([], ['data'], areaItem)) })); }, filterData), ['name']);\n});\nexport var selectIsNoDataAvailable = createSelector(getterSocialDistanceJ1, function (data) {\n return _.every(_.get(data, 'stockDistrib.areas', {}), function (p) { return _.isEmpty(p.data); });\n});\nexport var selectMapBounds = createSelector(getterCurrentFloor, getterCurrentSite, function (floor, site) {\n var ZOOM = 0.001;\n var latitude = site.latitude, longitude = site.longitude;\n if (!latitude || !longitude) {\n return null;\n }\n var bounds = _.isEqual(_.get(floor, 'bounds'), [\n [0, 0],\n [0, 0],\n ])\n ? [\n [latitude - ZOOM, longitude - ZOOM],\n [latitude + ZOOM, longitude + ZOOM],\n ]\n : _.get(floor, 'bounds');\n return bounds;\n});\nexport var getterSiteFloors = createSelector(function (state) { return state.floors; }, getCurrentSiteId2, function (floors, siteId) { return _.filter(_.get(floors[siteId], 'data', []), function (f) { return !_.isEmpty(f.units.areas); }); });\nexport var selectMapPicturesAllAreas = createSelector(getterSiteFloors, getCurrentFloorId2, function (floors, floorId) {\n return _.chain(floors)\n .orderBy(['level'], ['desc'])\n .map(function (floor) { return (__assign(__assign({}, floor), { name: \"\" + floor.level, image: floor.map_picture, isSelected: floor.uuid === floorId, bounds: floor.bounds })); })\n .value();\n});\nexport var selectAllMapPolygons = createSelector(getterCurrentFloor, function (floor) {\n var areas = _.get(floor, 'units.areas');\n var isEntireSite = _.every(areas, function (a) { return !a.selected; });\n return _.map(areas, function (a) { return (__assign(__assign({}, a), { borderColor: isEntireSite || a.selected ? '#FFF' : 'var(--primarycolor)', color: 'var(--primarycolor)', opacity: a.fillOpacity || 1, noClick: a.isInError || a.is_entire_site, hasTooltip: !a.is_entire_site && a.geometry.length > 2 })); });\n});\nexport var selectCurrentSocialDistancingThreshold = createSelector(getSocialDistancingParameters, function (socialDistancingParameters) {\n return {\n socialDistancingRedThreshold: _.get(socialDistancingParameters, 'social_distancing_red_threshold'),\n socialDistancingGreenThreshold: _.get(socialDistancingParameters, 'social_distancing_green_threshold'),\n };\n});\nexport var selectDailyTraffic = createSelector(getterSocialDistanceJ1, function (data) {\n return _.chain(data).get('dailyTraffic.data', []).head().get('Presence', null).value();\n});\nexport var selectRatioCoverage = createSelector(getSocialDistancingParameters, selectDailyTraffic, function (socialDistancingParameters, dailyTraffic) {\n var refTraffic = _.get(socialDistancingParameters, 'traffic_reference');\n if (!refTraffic || !dailyTraffic) {\n return null;\n }\n return _.round((dailyTraffic / refTraffic) * 100);\n});\n","import { __assign, __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport SocialDistancingMonitoringTable from './SocialDistancingMonitoringTable';\nimport { setCurrentFloor, selectArea } from '@src/commons/floors/actions';\nimport { selectArea2, setCurrentFloor2 } from '@src/commons/floors/actions';\nimport { fetchDashboardStats } from '@src/reporting/dashboard/actions';\nimport { changeCurrentAreaColorMap } from '@src/commons/map/actions';\nimport { selectGetSiteFloors, selectIsSiteSocialDistancingSetup, selectCurrentSocialDistancingThreshold, } from '@src/live/realtimeStat/selectors';\nimport { getCurrentDayFrom } from '@src/navigation/selectors';\nimport { selectCurrentArea } from '@src/reporting/selectors';\nimport { selectAllAreasSocialDistanceJ1, isSocialDistancingTableLoading, selectIsNoDataAvailable, } from './selectors';\nvar SocialDistancingMonitoringTableContainer = (function (_super) {\n __extends(SocialDistancingMonitoringTableContainer, _super);\n function SocialDistancingMonitoringTableContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.filterAreas = _this.filterAreas.bind(_this);\n _this.handleSearch = _this.handleSearch.bind(_this);\n _this.handleSelectArea = _this.handleSelectArea.bind(_this);\n _this.handleSortChange = _this.handleSortChange.bind(_this);\n _this.state = {\n searchContent: '',\n currentSorting: {\n id: 'nb_peaks',\n name: _this.props.t(\"Social_Distancing_Labels.SocialDistancingMonitoring.sort_btn.nb_peaks\"),\n },\n };\n return _this;\n }\n SocialDistancingMonitoringTableContainer.prototype.handleSelectArea = function (areaId) {\n var _a = this.props, siteId = _a.siteId, floors = _a.floors, onSelectArea = _a.onSelectArea, history = _a.history;\n this.setState({ zoomIsOpen: false });\n onSelectArea(siteId, getAreaFloor(floors, areaId).uuid, areaId, history);\n };\n SocialDistancingMonitoringTableContainer.prototype.handleSearch = function (search) {\n this.setState({ searchContent: search });\n };\n SocialDistancingMonitoringTableContainer.prototype.handleSortChange = function (selectedSort) {\n this.setState({ currentSorting: selectedSort });\n };\n SocialDistancingMonitoringTableContainer.prototype.filterAreas = function (areas, searchContent) {\n if (!searchContent) {\n return areas;\n }\n return _.filter(areas, function (area) { return _.includes(_.lowerCase(area.name), _.lowerCase(searchContent)); });\n };\n SocialDistancingMonitoringTableContainer.prototype.render = function () {\n var _a = this.props, currentApp = _a.currentApp, currentArea = _a.currentArea, t = _a.t, areas = _a.areas, isSetup = _a.isSetup, loading = _a.loading, isNoData = _a.isNoData, socialDistancingRedThreshold = _a.socialDistancingRedThreshold, socialDistancingGreenThreshold = _a.socialDistancingGreenThreshold, scales = _a.scales;\n var data = this.filterAreas(areas, this.state.searchContent);\n return (React.createElement(SocialDistancingMonitoringTable, { currentApp: currentApp, currentArea: currentArea, areas: data, currentSorting: this.state.currentSorting, onSortChange: this.handleSortChange, t: t, handleSearch: this.handleSearch, searchContent: this.state.searchContent, loading: loading, scales: scales, isSetup: isSetup, isNoData: isNoData, onSelectArea: this.handleSelectArea, socialDistancingRedThreshold: socialDistancingRedThreshold, socialDistancingGreenThreshold: socialDistancingGreenThreshold }));\n };\n return SocialDistancingMonitoringTableContainer;\n}(Component));\nexport { SocialDistancingMonitoringTableContainer };\nSocialDistancingMonitoringTableContainer.propTypes = {\n currentApp: PropTypes.string,\n currentArea: PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n }),\n t: PropTypes.func,\n siteId: PropTypes.string,\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n areas: PropTypes.arrayOf(PropTypes.shape({\n color: PropTypes.string,\n name: PropTypes.name,\n })),\n floors: PropTypes.arrayOf(PropTypes.shape()),\n onSelectArea: PropTypes.func,\n isSetup: PropTypes.bool,\n loading: PropTypes.bool,\n isNoData: PropTypes.bool,\n socialDistancingGreenThreshold: PropTypes.number,\n socialDistancingRedThreshold: PropTypes.number,\n};\nexport var getAreaFloor = function (floors, areaId) {\n return _.find(floors, function (floor) { return !_.chain(floor).get('units.areas').filter({ uuid: areaId }).isEmpty().value(); });\n};\nexport var mapStateToProps = function (state, props) {\n var _a, _b, _c, _d, _e, _f;\n var _g = selectCurrentSocialDistancingThreshold(state, props), socialDistancingRedThreshold = _g.socialDistancingRedThreshold, socialDistancingGreenThreshold = _g.socialDistancingGreenThreshold;\n return {\n currentApp: (_a = state === null || state === void 0 ? void 0 : state.navigation) === null || _a === void 0 ? void 0 : _a.app,\n currentArea: selectCurrentArea(state, props),\n floors: selectGetSiteFloors(state, props),\n isSetup: selectIsSiteSocialDistancingSetup(state, props),\n areas: selectAllAreasSocialDistanceJ1(state, __assign(__assign({}, props), { currentDate: getCurrentDayFrom(state) })),\n loading: isSocialDistancingTableLoading(state, __assign(__assign({}, props), { currentDate: getCurrentDayFrom(state) })),\n isNoData: selectIsNoDataAvailable(state, __assign(__assign({}, props), { currentDate: getCurrentDayFrom(state) })),\n scales: (_f = (_e = (_d = (_c = (_b = state === null || state === void 0 ? void 0 : state.configs) === null || _b === void 0 ? void 0 : _b[state === null || state === void 0 ? void 0 : state.navigation.siteId]) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.quality_service_scales) === null || _e === void 0 ? void 0 : _e.levels) === null || _f === void 0 ? void 0 : _f.sort(function (a, b) { return a.value - b.value; }),\n socialDistancingRedThreshold: socialDistancingRedThreshold,\n socialDistancingGreenThreshold: socialDistancingGreenThreshold,\n };\n};\nexport var mapDispatchToProps = function (dispatch) { return ({\n onSelectArea: function (siteId, floorId, areaId, history) {\n dispatch(setCurrentFloor(siteId, floorId, history));\n dispatch(selectArea(siteId, floorId, areaId, history));\n dispatch(setCurrentFloor2(floorId, history));\n dispatch(selectArea2(areaId, history));\n dispatch(changeCurrentAreaColorMap(siteId, areaId));\n dispatch(fetchDashboardStats());\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(SocialDistancingMonitoringTableContainer));\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes, { string } from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport { compose } from 'redux';\nimport { withTranslation } from 'react-i18next';\nimport _ from 'lodash';\nimport { selectArea2, setCurrentFloor2, selectEntireSite } from '@src/commons/floors/actions';\nimport { fetchDashboardStats } from '@src/reporting/dashboard/actions';\nimport { changeCurrentAreaColorMap } from '@src/commons/map/actions';\nimport { getCurrentPopulation } from '@src/navigation/selectors';\nimport { getterCurrentSiteTimezone, getterCurrentSiteLanguage } from '@src/live/realtime/selectors';\nimport { findEntireSiteFloor } from '@src/commons/floors/selectors';\nimport { selectDisplayDataCompletionMessage } from '@src/reporting/dashboard/selectors';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nimport TrafficByPopulationChartContainer from './trafficByPopulation/index';\nimport AreaFloorSelector from '@src/commons/AreaFloorSelector';\nimport FrequentationChartContainer from './traffic';\nimport DwelltimeChartContainer from './dwelltime';\nimport DwelltimeByPopulationChartContainer from './dwelltimeByPopulation';\nimport ClickOutside from '@src/commons/topBar/ClickOutside';\nimport { selectCurrentFloor, selectCurrentArea, getterSiteFloors, getterNavigationGranularity, selectAllSiteAreasWithFloors, } from '@src/reporting/selectors';\nimport Disclaimer from '@src/commons/Disclaimer';\nimport SocialDistancingMonitoringTableContainer from '@src/social_distancing/social_distancing_monitoring/SocialDistancingMonitoringTableContainer';\nimport socialDistancing from '@src/social_distancing/social_distancing_monitoring/assets/sdm-logo.svg';\nimport '@src/commons/styles/atoms/title.scss';\nimport '@src/commons/styles/molecules/chart-card.scss';\nimport '@src/commons/styles/organisms/social-distancing-monitoring-table.scss';\nimport '@src/commons/styles/organisms/reporting-graphs.scss';\nimport '@src/commons/styles/molecules/area-selector.scss';\nvar ReportingGraphsContainer = (function (_super) {\n __extends(ReportingGraphsContainer, _super);\n function ReportingGraphsContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.state = { areaSelectorOpen: false };\n _this.handleOpenSelector = _this.handleOpenSelector.bind(_this);\n _this.handleSelectArea = _this.handleSelectArea.bind(_this);\n _this.handleClose = _this.handleClose.bind(_this);\n return _this;\n }\n ReportingGraphsContainer.prototype.handleOpenSelector = function () {\n this.setState({ areaSelectorOpen: !this.state.areaSelectorOpen });\n };\n ReportingGraphsContainer.prototype.handleClose = function (e) {\n this.setState({ areaSelectorOpen: false });\n };\n ReportingGraphsContainer.prototype.handleSelectArea = function (e, areaId) {\n var _a = this.props, onChangeArea = _a.onChangeArea, onResetEntireSite = _a.onResetEntireSite, siteId = _a.siteId, floors = _a.floors, history = _a.history, defaultFloor = _a.defaultFloor;\n if (_.isNull(areaId)) {\n onResetEntireSite(siteId, defaultFloor.uuid, history);\n }\n else {\n onChangeArea(siteId, getAreaFloor(floors, areaId).uuid, areaId, history);\n }\n this.setState(function (prevState) { return ({\n areaSelectorOpen: !prevState.areaSelectorOpen,\n }); });\n e.stopPropagation();\n e.preventDefault();\n };\n ReportingGraphsContainer.prototype.render = function () {\n var _a = this.props, isDataCompletionActive = _a.isDataCompletionActive, isSDMOnReportingActivated = _a.isSDMOnReportingActivated, isSameDay = _a.isSameDay, displayDataCompletionMessage = _a.displayDataCompletionMessage, currentPopulation = _a.currentPopulation, siteId = _a.siteId, currentArea = _a.currentArea, timezone = _a.timezone, locale = _a.locale, selectedAreas = _a.selectedAreas, currentGranularity = _a.currentGranularity, siteType = _a.siteType, t = _a.t;\n var entireSiteLabel = siteType === 'airport'\n ? t('common.entire_site', { ns: 'airport' })\n : t('common.entire_site', { ns: 'railways' });\n return currentArea ? (React.createElement(\"div\", { className: \"reporting-graph\" },\n selectedAreas.length > 1 ? (React.createElement(ClickOutside, { onClickOutside: this.handleClose, style: { paddingBottom: '1rem' } },\n React.createElement(AreaFloorSelector, { className: \"area-selector\", currentArea: currentArea, areasToMap: selectedAreas, entireSiteLabel: entireSiteLabel, onOpen: this.handleOpenSelector, onSelectArea: this.handleSelectArea, t: t, open: this.state.areaSelectorOpen }))) : (React.createElement(\"div\", { className: \"area-selector__title area-selector__title--unique\" }, currentArea.name === 'Entire Site' ? entireSiteLabel : currentArea.name)),\n isDataCompletionActive && displayDataCompletionMessage && (React.createElement(Disclaimer, { message: t(\"Reporting_Labels.completion.message\") })),\n React.createElement(\"div\", { className: \"reporting-graph__container\" },\n React.createElement(FrequentationChartContainer, { siteId: siteId, timezone: timezone, locale: locale, t: t, statKey: '', kind: \"presence\", granularity: currentGranularity, className: \"up-left\" }),\n React.createElement(DwelltimeChartContainer, { siteId: siteId, timezone: timezone, locale: locale, t: t, statKey: '', kind: \"dwelltime\", granularity: currentGranularity, className: \"up-right\" }),\n currentPopulation === 'All populations' && (React.createElement(TrafficByPopulationChartContainer, { siteId: siteId, timezone: timezone, t: t, locale: locale, kind: \"presenceByPopulation\", granularity: \"daily\", className: \"down-right\" })),\n currentPopulation === 'All populations' && (React.createElement(DwelltimeByPopulationChartContainer, { siteId: siteId, timezone: timezone, t: t, locale: locale, kind: \"dwelltimeByPopulation\", granularity: \"daily\", className: \"down-left\" })),\n isSDMOnReportingActivated && !isSameDay && (React.createElement(\"div\", { className: \"reporting-sdm-graph\" },\n React.createElement(\"div\", { className: \"sdm-table\" },\n React.createElement(\"div\", { className: \"sdm-table__header\" },\n React.createElement(\"div\", { className: \"sdm-table__header-title-with-icon\" },\n React.createElement(\"img\", { className: \"sdm-table__logo\", src: socialDistancing }),\n React.createElement(\"div\", { className: \"sdm-table__titles\" },\n React.createElement(\"div\", { className: \"sdm-table__main-title\" }, t(\"Social_Distancing_Labels.SocialDistancingMonitoring.table.title\")),\n React.createElement(\"div\", { className: \"sdm-table__secondary-title\" }, t(\"Social_Distancing_Labels.SocialDistancingMonitoring.table.subtitle\"))))),\n React.createElement(\"div\", { className: \"sdm-table__message chart-card__title title\" }, t(\"Reporting_Labels.sdm_message\"))))),\n isSDMOnReportingActivated && isSameDay && (React.createElement(\"div\", { className: \"reporting-sdm-graph\" },\n React.createElement(SocialDistancingMonitoringTableContainer, { siteId: siteId, t: t })))))) : null;\n };\n return ReportingGraphsContainer;\n}(Component));\nexport { ReportingGraphsContainer };\nexport var getAreaFloor = function (floors, areaId) {\n return _.find(floors, function (floor) { return !_.chain(floor).get('units.areas').filter({ uuid: areaId }).isEmpty().value(); });\n};\nReportingGraphsContainer.propTypes = {\n isDataCompletionActive: PropTypes.bool,\n isSDMOnReportingActivated: PropTypes.bool,\n isSameDay: PropTypes.bool,\n displayDataCompletionMessage: PropTypes.bool,\n siteId: PropTypes.string,\n selectedAreas: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n })),\n floors: PropTypes.arrayOf(PropTypes.shape({\n units: PropTypes.shape({\n uuid: PropTypes.string,\n }),\n })),\n currentArea: PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n }),\n currentFloor: PropTypes.shape({\n uuid: PropTypes.string.isRequired,\n }),\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n siteType: string,\n onChangeArea: PropTypes.func,\n onResetEntireSite: PropTypes.func,\n timezone: PropTypes.string,\n locale: PropTypes.string,\n currentGranularity: PropTypes.string,\n t: PropTypes.func,\n currentPopulation: PropTypes.string,\n defaultFloor: PropTypes.shape({\n uuid: PropTypes.string.isRequired,\n name: PropTypes.string,\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n }),\n};\nexport var mapStateToProps = function (state, props) {\n var _a, _b, _c, _d;\n return ({\n currentFloor: selectCurrentFloor(state, props),\n currentArea: selectCurrentArea(state, props),\n timezone: getterCurrentSiteTimezone(state),\n locale: getterCurrentSiteLanguage(state),\n floors: getterSiteFloors(state, props),\n selectedAreas: selectAllSiteAreasWithFloors(state, props),\n currentGranularity: getterNavigationGranularity(state, props),\n currentPopulation: getCurrentPopulation()(state),\n defaultFloor: findEntireSiteFloor(props.siteId, 'reporting')(state),\n displayDataCompletionMessage: selectDisplayDataCompletionMessage(state, props),\n isDataCompletionActive: isFeatureActivated('display_completion')(state),\n siteType: (_d = (_c = (_b = (_a = state === null || state === void 0 ? void 0 : state.sites) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.find(function (site) { return site.uuid === state.navigation.siteId; })) === null || _c === void 0 ? void 0 : _c.tags) === null || _d === void 0 ? void 0 : _d[0],\n isSDMOnReportingActivated: isFeatureActivated('sdm_on_reporting')(state),\n });\n};\nexport var mapDispatchToProps = function (dispatch) { return ({\n onChangeArea: function (siteId, floorId, areaId, history) {\n dispatch(setCurrentFloor2(floorId, history));\n dispatch(selectArea2(areaId, history));\n dispatch(changeCurrentAreaColorMap(siteId, areaId));\n dispatch(fetchDashboardStats());\n },\n onResetEntireSite: function (siteId, floorId, history) {\n dispatch(setCurrentFloor2(floorId, history));\n dispatch(selectEntireSite(siteId, history));\n dispatch(fetchDashboardStats());\n },\n}); };\nexport default compose(connect(mapStateToProps, mapDispatchToProps), withRouter, withTranslation(['legacy', 'airport', 'railways']))(ReportingGraphsContainer);\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport ClickOutside from '@src/commons/topBar/ClickOutside';\nimport '@src/commons/styles/molecules/select.scss';\nvar Select = (function (_super) {\n __extends(Select, _super);\n function Select(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n open: false,\n };\n _this.handleSelectOption = _this.handleSelectOption.bind(_this);\n _this.handleOpen = _this.handleOpen.bind(_this);\n _this.handleClose = _this.handleClose.bind(_this);\n return _this;\n }\n Select.prototype.handleOpen = function () {\n this.setState({ open: true });\n };\n Select.prototype.handleSelectOption = function (option) {\n var onSelect = this.props.onSelect;\n this.setState({ open: false });\n onSelect(option);\n };\n Select.prototype.handleClose = function () {\n this.setState({ open: false });\n };\n Select.prototype.render = function () {\n var _this = this;\n var _a = this.props, options = _a.options, value = _a.value, colorMode = _a.colorMode;\n var open = this.state.open;\n return (React.createElement(ClickOutside, { onClickOutside: this.handleClose },\n React.createElement(\"div\", { className: \"select\" },\n React.createElement(\"div\", { className: (open ? 'select__header-open' : 'select__header') + \" \" + (colorMode ? \"select__header--\" + colorMode : ''), onClick: this.handleOpen },\n React.createElement(\"div\", { className: \"select__title\" }, value.name),\n React.createElement(\"i\", { className: \"material-icons\" }, open ? 'arrow_drop_up' : 'arrow_drop_down')),\n open && (React.createElement(\"div\", { className: \"select__list\" }, _.map(options, function (option) { return (React.createElement(\"div\", { onClick: function (e) { return _this.handleSelectOption(option); }, key: option.uuid, className: \"select__item\" }, option.name)); }))))));\n };\n return Select;\n}(Component));\nexport { Select };\nSelect.propTypes = {\n onSelect: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n })),\n value: PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n }),\n colorMode: PropTypes.string,\n};\nexport default Select;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Select from '@src/commons/Select';\nimport '@src/commons/styles/molecules/population-selector.scss';\nvar PopulationSelector = function (_a) {\n var onPopulationChange = _a.onPopulationChange, value = _a.value, populations = _a.populations, withLabel = _a.withLabel;\n return (React.createElement(\"div\", { className: \"population-selector\" },\n withLabel && React.createElement(\"div\", { className: \"population-selector__label\" }, \"Population\"),\n React.createElement(Select, { value: value, options: populations, onSelect: onPopulationChange })));\n};\nPopulationSelector.propTypes = {\n onPopulationChange: PropTypes.func,\n withLabel: PropTypes.bool,\n value: PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n }),\n populations: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n })),\n};\nexport default PopulationSelector;\n","import { __assign, __extends } from \"tslib\";\nimport React, { Component, Fragment } from 'react';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport _ from 'lodash';\nimport { flow, get, head, find } from 'lodash/fp';\nimport { setCurrentDay, setGranularity, automaticCurrentGranularity, setNavigation, changePopulation, } from '@src/navigation/actions';\nimport { fetchDashboardStats, initDashboardSection } from '@src/reporting/dashboard/actions';\nimport { fetchAllPresenceStock15min, fetchDailyTraffic, } from '@src/social_distancing/social_distancing_monitoring/actions';\nimport { isFloorsLoading, isNoFloor } from '@src/commons/floors/selectors';\nimport { selectMapAreas, getterNavigationGranularity, getterPopulations, getCurrentPopulationName, } from '@src/reporting/selectors';\nimport { getterDashboardLoading } from '@src/reporting/dashboard/selectors';\nimport { getSmallestAvailableGranularity } from '@src/reporting/utils';\nimport { getCurrentDayFrom, getCurrentDayTo, getCurrentSiteId } from '@src/navigation/selectors';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nimport MapContainer from '@src/reporting/dashboard/MapContainer';\nimport GeoMap from '@src/commons/map/GeoMap.js';\nimport DatesPicker from '@src/commons/DatePicker';\nimport GranularityPicker from '@src/reporting/dashboard/GranularityPicker';\nimport ReportingGraphsContainer from './graphs';\nimport PopulationSelector from '@src/commons/PopulationSelector';\nimport Loader from '@src/commons/Loader';\nimport '@src/commons/styles/templates/reporting.scss';\nimport '@src/commons/styles/molecules/dates-picker.scss';\nvar DashboardContainer = (function (_super) {\n __extends(DashboardContainer, _super);\n function DashboardContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.handleDayChange = _this.handleDayChange.bind(_this);\n _this.handleGranularityChange = _this.handleGranularityChange.bind(_this);\n _this.handlePopulationChange = _this.handlePopulationChange.bind(_this);\n return _this;\n }\n DashboardContainer.prototype.componentDidMount = function () {\n var _a = this.props, initReportingApp = _a.initReportingApp, history = _a.history;\n initReportingApp({ section: 'dashboard', currentPopulation: 'All populations' }, history);\n };\n DashboardContainer.prototype.handlePopulationChange = function (population) {\n var changeCurrentPopulation = this.props.changeCurrentPopulation;\n changeCurrentPopulation(population.slug);\n };\n DashboardContainer.prototype.handleDayChange = function (from, to) {\n var _a = this.props, changeSelectedDay = _a.changeSelectedDay, changeSelectedSameDay = _a.changeSelectedSameDay, currentGranularity = _a.currentGranularity, currentSite = _a.currentSite;\n var siteId = _.get(currentSite, 'uuid');\n var formatedFrom = moment(from).format('YYYY-MM-DD');\n var formatedTo = moment(to).format('YYYY-MM-DD');\n var isSameDay = _.isEqual(formatedFrom, formatedTo);\n var checkedGranularity = getSmallestAvailableGranularity(currentGranularity, from, to);\n isSameDay\n ? changeSelectedSameDay(formatedFrom, formatedTo, checkedGranularity, siteId)\n : changeSelectedDay(formatedFrom, formatedTo, checkedGranularity);\n };\n DashboardContainer.prototype.handleGranularityChange = function (granularity) {\n var changeSelectedGranularity = this.props.changeSelectedGranularity;\n changeSelectedGranularity(granularity);\n };\n DashboardContainer.prototype.render = function () {\n var _a = this.props, dashboardSectionLoading = _a.dashboardSectionLoading, isFromPopulationForGCActivated = _a.isFromPopulationForGCActivated, isSameDay = _a.isSameDay, currentPopulation = _a.currentPopulation, populations = _a.populations, floorsLoading = _a.floorsLoading, noFloors = _a.noFloors, currentSite = _a.currentSite, mapAreas = _a.mapAreas, currentDayFrom = _a.currentDayFrom, currentDayTo = _a.currentDayTo, currentGranularity = _a.currentGranularity, t = _a.t;\n return (React.createElement(\"div\", { className: \"reporting\" },\n !dashboardSectionLoading && (React.createElement(Fragment, null,\n React.createElement(\"div\", { className: \"reporting__header\" },\n React.createElement(\"div\", { className: \"realtime__title\" }, _.get(currentSite, 'display_name') || _.get(currentSite, 'name')),\n React.createElement(\"div\", { className: \"reporting__selectors\" },\n !isFromPopulationForGCActivated && !_.isEmpty(populations) && (React.createElement(PopulationSelector, { withLabel: true, value: currentPopulation, populations: populations, onPopulationChange: this.handlePopulationChange })),\n React.createElement(GranularityPicker, { granularity: currentGranularity, onGranularityChange: this.handleGranularityChange, t: t, from: currentDayFrom, to: currentDayTo }),\n React.createElement(\"div\", { className: \"dates-picker\" },\n React.createElement(DatesPicker, { t: t, from: currentDayFrom, to: currentDayTo, onDayChange: this.handleDayChange })))),\n React.createElement(\"div\", { className: \"reporting__content\" },\n React.createElement(\"div\", { className: \"reporting-map\" },\n !floorsLoading && !noFloors && React.createElement(MapContainer, { areas: mapAreas, noColor: true, t: t }),\n !floorsLoading && noFloors && (React.createElement(GeoMap, { noColor: true, lat: _.get(currentSite, 'latitude'), lng: _.get(currentSite, 'longitude'), currentFloor: {\n bounds: [\n [0, 0],\n [0, 0],\n ],\n } }))),\n _.get(currentSite, 'uuid') && (React.createElement(ReportingGraphsContainer, { siteId: currentSite.uuid, isSameDay: isSameDay }))))),\n dashboardSectionLoading && (React.createElement(\"div\", { className: \"dashboard__loader\" },\n React.createElement(Loader, null)))));\n };\n return DashboardContainer;\n}(Component));\nexport { DashboardContainer };\nDashboardContainer.propTypes = {\n dashboardSectionLoading: PropTypes.bool,\n initReportingApp: PropTypes.func,\n floorsLoading: PropTypes.bool,\n noFloors: PropTypes.bool,\n currentSite: PropTypes.shape({\n uuid: PropTypes.string,\n }),\n t: PropTypes.func,\n changeSelectedDay: PropTypes.func,\n changeSelectedSameDay: PropTypes.func,\n changeSelectedGranularity: PropTypes.func,\n currentDayFrom: PropTypes.string,\n currentDayTo: PropTypes.string,\n currentGranularity: PropTypes.string,\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n mapAreas: PropTypes.arrayOf(PropTypes.shape({\n color: PropTypes.string,\n name: PropTypes.name,\n })),\n changeCurrentPopulation: PropTypes.func,\n isFromPopulationForGCActivated: PropTypes.bool,\n isSameDay: PropTypes.bool,\n currentPopulation: PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n }),\n populations: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n })),\n};\nexport var mapStateToProps = function (state, props) {\n var currentSiteId = getCurrentSiteId()(state);\n var isFromPopulationForGCActivated = isFeatureActivated('population_from_gc')(state);\n var populations = getterPopulations(state, __assign(__assign({}, props), { siteId: currentSiteId }));\n var currentPopulationName = getCurrentPopulationName(state, props);\n var currentDayFrom = getCurrentDayFrom(state, props);\n var currentDayTo = getCurrentDayTo(state, props);\n var isSameDay = _.isEqual(currentDayFrom, currentDayTo);\n return {\n currentSite: flow(get('sites.data'), currentSiteId ? find({ uuid: currentSiteId }) : head)(state),\n floorsLoading: isFloorsLoading(currentSiteId)(state),\n noFloors: isNoFloor(currentSiteId)(state),\n currentDayFrom: currentDayFrom,\n currentDayTo: currentDayTo,\n currentGranularity: getterNavigationGranularity(state, props),\n mapAreas: selectMapAreas(state, props),\n currentPopulation: { name: currentPopulationName },\n dashboardSectionLoading: getterDashboardLoading(state),\n populations: populations,\n isFromPopulationForGCActivated: isFromPopulationForGCActivated,\n isSameDay: isSameDay,\n };\n};\nvar mapDispatchToProps = function (dispatch) { return ({\n initReportingApp: function (params, history) {\n dispatch(setNavigation(params));\n dispatch(initDashboardSection(history));\n },\n changeSelectedDay: function (from, to, granularity) {\n dispatch(automaticCurrentGranularity(granularity));\n dispatch(setCurrentDay(from, to, granularity));\n dispatch(fetchDashboardStats());\n },\n changeSelectedSameDay: function (from, to, granularity, siteId) {\n dispatch(automaticCurrentGranularity(granularity));\n dispatch(setCurrentDay(from, to, granularity));\n dispatch(fetchDashboardStats());\n dispatch(fetchAllPresenceStock15min(siteId, from));\n dispatch(fetchDailyTraffic(siteId, from));\n },\n changeSelectedGranularity: function (granularity) {\n dispatch(setGranularity(granularity));\n dispatch(fetchDashboardStats());\n },\n changeCurrentPopulation: function (population) {\n dispatch(changePopulation(population));\n dispatch(fetchDashboardStats());\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(DashboardContainer));\n","import { __assign } from \"tslib\";\nimport { createSelector } from 'reselect';\nimport _ from 'lodash';\nimport m from 'moment';\nimport { getterReportingNavigation, getterNavigationGranularity, selectBaseAreaData, selectAreaDatesComputeData, } from '@src/reporting/selectors';\nexport var getterReportsCreationLoading = function (state) { return _.get(state.reportsCreation, 'loading', true); };\nexport var getterComputeSiteStats = function (state, props) { return _.get(state.compute, props.siteId, {}); };\nexport var selectComparedAreaData = function (state, props) {\n var _a = getterReportingNavigation(state, props), comparedAreaId = _a.comparedAreaId, dayFrom = _a.dayFrom, dayTo = _a.dayTo;\n return selectAreaDatesComputeData(state, __assign(__assign({}, props), { kind: props.kind, granularity: props.granularity, areaId: comparedAreaId, dayFrom: dayFrom,\n dayTo: dayTo }));\n};\nexport var selectComparedDatesData = function (state, props) {\n var _a = getterReportingNavigation(state, props), areaId = _a.areaId, comparedDayFrom = _a.comparedDayFrom, comparedDayTo = _a.comparedDayTo;\n return selectAreaDatesComputeData(state, __assign(__assign({}, props), { kind: props.kind, granularity: props.granularity, areaId: areaId, dayFrom: comparedDayFrom, dayTo: comparedDayTo }));\n};\nexport var selectLoadingCreationReportsComponent = createSelector(getterReportingNavigation, function (state, props) { return (__assign({}, props)); }, selectBaseAreaData, selectComparedAreaData, selectComparedDatesData, function (_a, _b, baseAreaData, comparedAreaData, comparedDatesData) {\n var comparisonMode = _a.comparisonMode;\n var statKey = _b.statKey;\n if (comparisonMode.uuid === 'date') {\n return (_.get(baseAreaData, statKey + \"loading\", true) || _.get(comparedDatesData, statKey + \"loading\", true));\n }\n else if (comparisonMode.uuid === 'zone') {\n return (_.get(baseAreaData, statKey + \"loading\", true) || _.get(comparedAreaData, statKey + \"loading\", true));\n }\n return _.get(baseAreaData, statKey + \"loading\", true);\n});\nexport var selectLoadingAllReports = function (state, props) {\n var frequentationLoading = selectLoadingCreationReportsComponent(state, __assign(__assign({}, props), { kind: 'presence', statKey: '', granularity: getterNavigationGranularity(state, props) }));\n var dwellTimeLoading = selectLoadingCreationReportsComponent(state, __assign(__assign({}, props), { kind: 'dwelltime', statKey: '', granularity: getterNavigationGranularity(state, props) }));\n var meanDwelltimeLoading = selectLoadingCreationReportsComponent(state, __assign(__assign({}, props), { kind: 'presence', statKey: 'mean', unit: 'client', granularity: 'daily' }));\n var meanFrequentationLoading = selectLoadingCreationReportsComponent(state, __assign(__assign({}, props), { kind: 'dwelltime', statKey: 'mean', unit: 'minute', granularity: 'daily' }));\n return frequentationLoading || dwellTimeLoading || meanDwelltimeLoading || meanFrequentationLoading;\n};\nexport var selectDataBarsComparisonComponent = createSelector(getterReportingNavigation, function (state, props) { return (__assign({}, props)); }, selectBaseAreaData, selectComparedAreaData, selectComparedDatesData, function (_a, _b, baseAreaData, comparedAreaData, comparedDatesData) {\n var comparisonMode = _a.comparisonMode, comparedDayFrom = _a.comparedDayFrom, comparedDayTo = _a.comparedDayTo, comparedArea = _a.comparedArea, currentArea = _a.currentArea, dayFrom = _a.dayFrom, dayTo = _a.dayTo;\n var statKey = _b.statKey, kind = _b.kind, t = _b.t;\n var baseField = _.chain(baseAreaData)\n .get(statKey + \"data\", {})\n .get('Value', null)\n .thru(function (valueStat) {\n if (comparisonMode.uuid === 'zone') {\n return { nameStat: currentArea.name, valueStat: valueStat };\n }\n return {\n nameStat: t('Chart_No_Data.from') + \" \" + m(dayFrom).format('L') + \" \" + t('Chart_No_Data.to') + \" \" + m(dayTo).format('L'),\n valueStat: valueStat,\n };\n })\n .thru(function (obj) {\n if (_.isNull(obj.valueStat)) {\n return __assign(__assign({}, obj), { valueStat: null });\n }\n return __assign(__assign({}, obj), { valueStat: kind === 'dwelltime' ? _.round(obj.valueStat / 60) : _.round(obj.valueStat) });\n })\n .value();\n if (comparisonMode.uuid === 'date') {\n return _.chain(comparedDatesData)\n .get(statKey + \"data\", {})\n .get('Value', null)\n .thru(function (valueStatCompared) { return (__assign(__assign({}, baseField), { nameStatCompared: t('Chart_No_Data.from') + \" \" + m(comparedDayFrom).format('L') + \" \" + t('Chart_No_Data.to') + \" \" + m(comparedDayTo).format('L'), valueStatCompared: valueStatCompared })); })\n .thru(function (obj) {\n if (_.isNull(obj.valueStatCompared)) {\n return __assign(__assign({}, obj), { valueStatCompared: null });\n }\n return __assign(__assign({}, obj), { valueStatCompared: kind === 'dwelltime' ? _.round(obj.valueStatCompared / 60) : _.round(obj.valueStatCompared) });\n })\n .value();\n }\n else if (comparisonMode.uuid === 'zone') {\n return _.chain(comparedAreaData)\n .get(statKey + \"data\", {})\n .get('Value', null)\n .thru(function (valueStatCompared) { return (__assign(__assign({}, baseField), { nameStatCompared: comparedArea.name, valueStatCompared: valueStatCompared })); })\n .thru(function (obj) {\n if (_.isNull(obj.valueStatCompared)) {\n return __assign(__assign({}, obj), { valueStatCompared: null });\n }\n return __assign(__assign({}, obj), { valueStatCompared: kind === 'dwelltime' ? _.round(obj.valueStatCompared / 60) : _.round(obj.valueStatCompared) });\n })\n .value();\n }\n return __assign(__assign({}, baseField), { nameStatCompared: null, valueStatCompared: null });\n});\nexport var selectStatusStatBarsComparisonComponent = createSelector(function (state, props) { return (__assign({}, props)); }, selectBaseAreaData, function (_a, baseAreaData) {\n var statKey = _a.statKey;\n return _.get(baseAreaData, statKey + \"status\", 'ok');\n});\nexport var selectStatusStatComparedBarsComparisonComponent = createSelector(getterReportingNavigation, function (state, props) { return (__assign({}, props)); }, selectComparedAreaData, selectComparedDatesData, function (_a, _b, comparedAreaData, comparedDatesData) {\n var comparisonMode = _a.comparisonMode;\n var statKey = _b.statKey;\n if (comparisonMode.uuid === 'date') {\n return _.get(comparedDatesData, statKey + \"status\", 'ok');\n }\n else if (comparisonMode.uuid === 'zone') {\n return _.get(comparedAreaData, statKey + \"status\", 'ok');\n }\n else {\n return 'ok';\n }\n});\nexport var selectBaseAreaStatus = createSelector(function (state, props) { return (__assign({}, props)); }, selectBaseAreaData, function (_a, baseAreaData) {\n var statKey = _a.statKey;\n return _.get(baseAreaData, statKey + \"status\", 'ok');\n});\nexport var selectComparedAreaStatus = createSelector(function (state, props) { return (__assign({}, props)); }, selectComparedAreaData, function (_a, comparedAreaData) {\n var statKey = _a.statKey;\n return _.get(comparedAreaData, statKey + \"status\", 'ok');\n});\nexport var selectComparedDatesStatus = createSelector(function (state, props) { return (__assign({}, props)); }, selectComparedDatesData, function (_a, comparedDatesData) {\n var statKey = _a.statKey;\n return _.get(comparedDatesData, statKey + \"status\", 'ok');\n});\nexport var selectSomeStatusHasNoData = function (state, props) {\n var _a = getterReportingNavigation(state, props), comparisonMode = _a.comparisonMode, granularity = _a.granularity;\n var frequentationDistribBaseAreaStatus = selectBaseAreaStatus(state, __assign(__assign({}, props), { kind: 'presence', statKey: '', granularity: granularity }));\n var dwelltimeDistribBaseAreaStatus = selectBaseAreaStatus(state, __assign(__assign({}, props), { kind: 'dwelltime', statKey: '', granularity: granularity }));\n var frequentationSumBaseAreaStatus = selectBaseAreaStatus(state, __assign(__assign({}, props), { kind: 'presence', statKey: 'sum', granularity: 'daily' }));\n var frequentationMeanBaseAreaStatus = selectBaseAreaStatus(state, __assign(__assign({}, props), { kind: 'presence', statKey: 'mean', granularity: 'daily' }));\n var dwelltimeMeanBaseAreaStatus = selectBaseAreaStatus(state, __assign(__assign({}, props), { kind: 'dwelltime', statKey: 'mean', granularity: 'daily' }));\n var baseAreaStatusIsOK = _.every([\n frequentationDistribBaseAreaStatus,\n frequentationSumBaseAreaStatus,\n dwelltimeDistribBaseAreaStatus,\n frequentationMeanBaseAreaStatus,\n dwelltimeMeanBaseAreaStatus,\n ], function (x) { return x === 'ok'; });\n if (comparisonMode.uuid === 'zone') {\n var frequentationDistribComparedAreaStatus = selectComparedAreaStatus(state, __assign(__assign({}, props), { kind: 'presence', statKey: '', granularity: granularity }));\n var dwelltimeDistribComparedAreaStatus = selectComparedAreaStatus(state, __assign(__assign({}, props), { kind: 'dwelltime', statKey: '', granularity: granularity }));\n var frequentationSumComparedAreaStatus = selectComparedAreaStatus(state, __assign(__assign({}, props), { kind: 'presence', statKey: 'sum', granularity: 'daily' }));\n var frequentationMeanComparedAreaStatus = selectComparedAreaStatus(state, __assign(__assign({}, props), { kind: 'presence', statKey: 'mean', granularity: 'daily' }));\n var dwelltimeMeanComparedAreaStatus = selectComparedAreaStatus(state, __assign(__assign({}, props), { kind: 'dwelltime', statKey: 'mean', granularity: 'daily' }));\n var comparedAreaStatusIsOK = _.every([\n frequentationDistribComparedAreaStatus,\n frequentationSumComparedAreaStatus,\n dwelltimeDistribComparedAreaStatus,\n frequentationMeanComparedAreaStatus,\n dwelltimeMeanComparedAreaStatus,\n ], function (x) { return x === 'ok'; });\n return !baseAreaStatusIsOK || !comparedAreaStatusIsOK;\n }\n else if (comparisonMode.uuid === 'date') {\n var frequentationDistribComparedDatesStatus = selectComparedDatesStatus(state, __assign(__assign({}, props), { kind: 'presence', statKey: '', granularity: granularity }));\n var dwelltimeDistribComparedDatesStatus = selectComparedDatesStatus(state, __assign(__assign({}, props), { kind: 'dwelltime', statKey: '', granularity: granularity }));\n var frequentationSumComparedDatesStatus = selectComparedDatesStatus(state, __assign(__assign({}, props), { kind: 'presence', statKey: 'sum', granularity: 'daily' }));\n var frequentationMeanComparedDatesStatus = selectComparedDatesStatus(state, __assign(__assign({}, props), { kind: 'presence', statKey: 'mean', granularity: 'daily' }));\n var dwelltimeMeanComparedDatesStatus = selectComparedDatesStatus(state, __assign(__assign({}, props), { kind: 'dwelltime', statKey: 'mean', granularity: 'daily' }));\n var comparedDatesStatusIsOK = _.every([\n frequentationDistribComparedDatesStatus,\n frequentationSumComparedDatesStatus,\n dwelltimeDistribComparedDatesStatus,\n frequentationMeanComparedDatesStatus,\n dwelltimeMeanComparedDatesStatus,\n ], function (x) { return x === 'ok'; });\n return !baseAreaStatusIsOK || !comparedDatesStatusIsOK;\n }\n return !baseAreaStatusIsOK;\n};\nexport var selectSumPresenceBaseArea = createSelector(selectBaseAreaData, function (state, props) { return (__assign({}, props)); }, function (baseAreaData, _a) {\n var statKey = _a.statKey;\n return _.chain(baseAreaData)\n .get(statKey + \"data\", {})\n .get('Value', null)\n .thru(function (value) { return (_.isNull(value) ? null : _.round(value)); })\n .value();\n});\nexport var selectSumPresenceComparedArea = createSelector(getterReportingNavigation, selectComparedAreaData, selectComparedDatesData, function (state, props) { return (__assign({}, props)); }, function (_a, comparedAreaData, comparedDatesData, _b) {\n var comparisonMode = _a.comparisonMode;\n var statKey = _b.statKey;\n if (comparisonMode.uuid === 'date') {\n return _.chain(comparedDatesData)\n .get(statKey + \"data\", {})\n .get('Value', null)\n .thru(function (value) { return (_.isNull(value) ? null : _.round(value)); })\n .value();\n }\n else if (comparisonMode.uuid === 'zone') {\n return _.chain(comparedAreaData)\n .get(statKey + \"data\", {})\n .get('Value', null)\n .thru(function (value) { return (_.isNull(value) ? null : _.round(value)); })\n .value();\n }\n else {\n return null;\n }\n});\nexport var selectComparedPresenceStats = createSelector(getterReportingNavigation, selectComparedAreaData, selectComparedDatesData, function (state, props) { return (__assign({}, props)); }, function (_a, comparedAreaData, comparedDatesData, _b) {\n var comparisonMode = _a.comparisonMode;\n var statKey = _b.statKey;\n if (comparisonMode.uuid === 'date') {\n return _.chain(comparedDatesData)\n .get(statKey + \"data\", [])\n .map(function (stat) { return ({\n time: +stat.FromHour,\n value: stat.Presence,\n isCompleted: _.get(stat, 'DataCompleted', false),\n }); })\n .sortBy('time')\n .value();\n }\n else if (comparisonMode.uuid === 'zone') {\n return _.chain(comparedAreaData)\n .get(statKey + \"data\", [])\n .map(function (stat) { return ({\n time: +stat.FromHour,\n value: stat.Presence,\n isCompleted: _.get(stat, 'DataCompleted', false),\n }); })\n .sortBy('time')\n .value();\n }\n else {\n return [];\n }\n});\nvar checkDataCompletedFlagInList = function (node) {\n return _.chain(node).get('data', []).some({ DataCompleted: true }).value();\n};\nexport var isTrafficDistributionGraphCompleted = function (state, _a) {\n var siteId = _a.siteId;\n var _b = getterReportingNavigation(state, { siteId: siteId }), areaId = _b.areaId, comparedAreaId = _b.comparedAreaId, dayFrom = _b.dayFrom, dayTo = _b.dayTo, granularity = _b.granularity, comparisonMode = _b.comparisonMode, comparedDayFrom = _b.comparedDayFrom, comparedDayTo = _b.comparedDayTo;\n var areaDatesData = selectAreaDatesComputeData(state, {\n siteId: siteId,\n kind: 'presence',\n granularity: granularity,\n areaId: areaId,\n dayFrom: dayFrom,\n dayTo: dayTo,\n });\n var isTrafficDistribCompleted = checkDataCompletedFlagInList(areaDatesData);\n var isTrafficSumAndMeanCompleted = checkDataCompletedFlagInList(areaDatesData);\n if (comparisonMode.uuid === 'zone') {\n var compareAreaDatesData = selectAreaDatesComputeData(state, {\n siteId: siteId,\n kind: 'presence',\n granularity: granularity,\n areaId: comparedAreaId,\n dayFrom: dayFrom,\n dayTo: dayTo,\n });\n var isCompareTrafficDistribCompleted = checkDataCompletedFlagInList(compareAreaDatesData);\n var isCompareTrafficSumAndMeanCompleted = checkDataCompletedFlagInList(compareAreaDatesData);\n return (isTrafficDistribCompleted ||\n isTrafficSumAndMeanCompleted ||\n isCompareTrafficDistribCompleted ||\n isCompareTrafficSumAndMeanCompleted);\n }\n else if (comparisonMode.uuid === 'date') {\n var compareAreaDatesData = selectAreaDatesComputeData(state, {\n siteId: siteId,\n kind: 'presence',\n granularity: granularity,\n areaId: areaId,\n dayFrom: comparedDayFrom,\n dayTo: comparedDayTo,\n });\n var isCompareTrafficDistribCompleted = checkDataCompletedFlagInList(compareAreaDatesData);\n var isCompareTrafficSumAndMeanCompleted = checkDataCompletedFlagInList(compareAreaDatesData);\n return (isTrafficDistribCompleted ||\n isTrafficSumAndMeanCompleted ||\n isCompareTrafficDistribCompleted ||\n isCompareTrafficSumAndMeanCompleted);\n }\n return isTrafficDistribCompleted || isTrafficSumAndMeanCompleted;\n};\nexport var isDwelltimeDistributionGraphCompleted = function (state, _a) {\n var siteId = _a.siteId;\n var _b = getterReportingNavigation(state, { siteId: siteId }), areaId = _b.areaId, comparedAreaId = _b.comparedAreaId, dayFrom = _b.dayFrom, dayTo = _b.dayTo, granularity = _b.granularity, comparisonMode = _b.comparisonMode, comparedDayFrom = _b.comparedDayFrom, comparedDayTo = _b.comparedDayTo;\n var areaDatesData = selectAreaDatesComputeData(state, {\n siteId: siteId,\n kind: 'dwelltime',\n granularity: granularity,\n areaId: areaId,\n dayFrom: dayFrom,\n dayTo: dayTo,\n });\n var isBaseDataCompleted = checkDataCompletedFlagInList(areaDatesData);\n if (comparisonMode.uuid === 'zone') {\n var compareAreaDatesData = selectAreaDatesComputeData(state, {\n siteId: siteId,\n kind: 'dwelltime',\n granularity: granularity,\n areaId: comparedAreaId,\n dayFrom: dayFrom,\n dayTo: dayTo,\n });\n var isCompareAreaDataCompleted = checkDataCompletedFlagInList(compareAreaDatesData);\n return isBaseDataCompleted || isCompareAreaDataCompleted;\n }\n else if (comparisonMode.uuid === 'date') {\n var compareAreaDatesData = selectAreaDatesComputeData(state, {\n siteId: siteId,\n kind: 'dwelltime',\n granularity: granularity,\n areaId: areaId,\n dayFrom: comparedDayFrom,\n dayTo: comparedDayTo,\n });\n var isCompareDateDataCompleted = checkDataCompletedFlagInList(compareAreaDatesData);\n return isBaseDataCompleted || isCompareDateDataCompleted;\n }\n return isBaseDataCompleted;\n};\nexport var isMeanTrafficGraphCompleted = function (state, _a) {\n var siteId = _a.siteId;\n var _b = getterReportingNavigation(state, { siteId: siteId }), areaId = _b.areaId, comparedAreaId = _b.comparedAreaId, dayFrom = _b.dayFrom, dayTo = _b.dayTo, comparisonMode = _b.comparisonMode, comparedDayFrom = _b.comparedDayFrom, comparedDayTo = _b.comparedDayTo;\n var areaDatesData = selectAreaDatesComputeData(state, {\n siteId: siteId,\n kind: 'presence',\n granularity: 'daily',\n areaId: areaId,\n dayFrom: dayFrom,\n dayTo: dayTo,\n });\n var isBaseDataCompleted = checkDataCompletedFlagInList(areaDatesData);\n if (comparisonMode.uuid === 'zone') {\n var compareAreaDatesData = selectAreaDatesComputeData(state, {\n siteId: siteId,\n kind: 'presence',\n granularity: 'daily',\n areaId: comparedAreaId,\n dayFrom: dayFrom,\n dayTo: dayTo,\n });\n var isCompareAreaDataCompleted = checkDataCompletedFlagInList(compareAreaDatesData);\n return isBaseDataCompleted || isCompareAreaDataCompleted;\n }\n else if (comparisonMode.uuid === 'date') {\n var compareAreaDatesData = selectAreaDatesComputeData(state, {\n siteId: siteId,\n kind: 'presence',\n granularity: 'daily',\n areaId: areaId,\n dayFrom: comparedDayFrom,\n dayTo: comparedDayTo,\n });\n var isCompareDateDataCompleted = checkDataCompletedFlagInList(compareAreaDatesData);\n return isBaseDataCompleted || isCompareDateDataCompleted;\n }\n return isBaseDataCompleted;\n};\nexport var isMeanDwelltimeGraphCompleted = function (state, _a) {\n var siteId = _a.siteId;\n var _b = getterReportingNavigation(state, { siteId: siteId }), areaId = _b.areaId, comparedAreaId = _b.comparedAreaId, dayFrom = _b.dayFrom, dayTo = _b.dayTo, comparisonMode = _b.comparisonMode, comparedDayFrom = _b.comparedDayFrom, comparedDayTo = _b.comparedDayTo;\n var areaDatesData = selectAreaDatesComputeData(state, {\n siteId: siteId,\n kind: 'dwelltime',\n granularity: 'daily',\n areaId: areaId,\n dayFrom: dayFrom,\n dayTo: dayTo,\n });\n var isBaseDataCompleted = checkDataCompletedFlagInList(areaDatesData);\n if (comparisonMode.uuid === 'zone') {\n var compareAreaDatesData = selectAreaDatesComputeData(state, {\n siteId: siteId,\n kind: 'dwelltime',\n granularity: 'daily',\n areaId: comparedAreaId,\n dayFrom: dayFrom,\n dayTo: dayTo,\n });\n var isCompareAreaDataCompleted = checkDataCompletedFlagInList(compareAreaDatesData);\n return isBaseDataCompleted || isCompareAreaDataCompleted;\n }\n else if (comparisonMode.uuid === 'date') {\n var compareAreaDatesData = selectAreaDatesComputeData(state, {\n siteId: siteId,\n kind: 'dwelltime',\n granularity: 'daily',\n areaId: areaId,\n dayFrom: comparedDayFrom,\n dayTo: comparedDayTo,\n });\n var isCompareDateDataCompleted = checkDataCompletedFlagInList(compareAreaDatesData);\n return isBaseDataCompleted || isCompareDateDataCompleted;\n }\n return isBaseDataCompleted;\n};\nexport var selectDisplayDataCompletionMessage = createSelector(isTrafficDistributionGraphCompleted, isDwelltimeDistributionGraphCompleted, isMeanTrafficGraphCompleted, isMeanDwelltimeGraphCompleted, function (trafficDistrib, dwelltimeDistrib, meanTraffic, meanDwelltime) {\n return trafficDistrib || dwelltimeDistrib || meanTraffic || meanDwelltime;\n});\n","export var initReportsCreationSection = function (history) { return ({\n type: 'INIT_REPORTS_CREATION_SECTION',\n history: history,\n}); };\nexport var reportsCreationSectionLoaded = function () { return ({\n type: 'REPORTS_CREATION_SECTION_LOADED',\n}); };\nexport var fetchReportsCreationStats = function () { return ({\n type: 'FETCH_REPORTS_CREATION_STATS',\n}); };\nexport var fetchAggregatedStatsFromComputeEngine = function (endpoint, siteId, configId, kind, granularity, area, dayFrom, dayTo, statKey, population) { return ({\n type: 'FETCH_AGGREGATED_STATS_FROM_COMPUTE_ENGINE',\n endpoint: endpoint,\n siteId: siteId,\n area: area,\n configId: configId,\n kind: kind,\n dayFrom: dayFrom,\n dayTo: dayTo,\n granularity: granularity,\n statKey: statKey,\n population: population,\n}); };\nexport var fetchStatsFromComputeEngine = function (endpoint, siteId, area, configId, kind, granularity, dayFrom, dayTo, population) { return ({\n type: 'FETCH_STATS_FROM_COMPUTE_ENGINE',\n endpoint: endpoint,\n siteId: siteId,\n area: area,\n configId: configId,\n kind: kind,\n dayFrom: dayFrom,\n dayTo: dayTo,\n granularity: granularity,\n population: population,\n}); };\nexport var fetchPresenceMeanFromComputeEngine = function (siteId, area, configId, dayFrom, dayTo, population) { return ({\n type: 'FETCH_PRESENCE_MEAN_FROM_COMPUTE_ENGINE',\n siteId: siteId,\n area: area,\n configId: configId,\n dayFrom: dayFrom,\n dayTo: dayTo,\n population: population,\n}); };\nexport var downloadReport = function (reportPrefix, reportSuffix) { return ({\n type: 'DOWNLOAD_REPORT',\n reportPrefix: reportPrefix,\n reportSuffix: reportSuffix,\n}); };\nexport var downloadReportStart = function () { return ({\n type: 'DOWNLOAD_REPORT_START',\n}); };\nexport var downloadReportSuccess = function () { return ({\n type: 'DOWNLOAD_REPORT_SUCCESS',\n}); };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport DatesPicker from '@src/commons/DatePicker';\nimport '@src/commons/styles/molecules/report-filter.scss';\nimport '@src/commons/styles/molecules/dates-picker.scss';\nvar CurrentDateSelector = function (_a) {\n var from = _a.from, to = _a.to, onDayChange = _a.onDayChange, t = _a.t;\n return (React.createElement(\"div\", { className: \"report-filter\" },\n React.createElement(\"div\", { className: \"report-filter__title\" }, t('Reporting_Labels.Dates')),\n React.createElement(\"div\", { className: \"report-filter__element\" },\n React.createElement(\"div\", { className: \"dates-picker\" },\n React.createElement(DatesPicker, { t: t, from: from, to: to, onDayChange: onDayChange })))));\n};\nCurrentDateSelector.propTypes = {\n from: PropTypes.string,\n to: PropTypes.string,\n onDayChange: PropTypes.func,\n t: PropTypes.func,\n};\nexport default CurrentDateSelector;\n","import { __assign } from \"tslib\";\nimport React, { useMemo } from 'react';\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport AreaFloorSelector from '@src/commons/AreaFloorSelector';\nimport Select from '@src/commons/Select/index';\nimport ClickOutside from '@src/commons/topBar/ClickOutside';\nimport DatesPicker from '@src/commons/DatePicker';\nimport '@src/commons/styles/molecules/report-filter.scss';\nimport '@src/commons/styles/molecules/area-selector.scss';\nimport '@src/commons/styles/molecules/dates-picker.scss';\nimport { useTranslation } from 'react-i18next';\nvar ComparisonSelector = function (_a) {\n var onOpenArea = _a.onOpenArea, isOpenArea = _a.isOpenArea, onCloseArea = _a.onCloseArea, currentComparisonMode = _a.currentComparisonMode, optionsComparisonMode = _a.optionsComparisonMode, comparedFrom = _a.comparedFrom, comparedTo = _a.comparedTo, comparedAreaId = _a.comparedAreaId, selectedAreas = _a.selectedAreas, currentArea = _a.currentArea, onComparedDayChange = _a.onComparedDayChange, onChangeComparisonMode = _a.onChangeComparisonMode, onChangeComparedArea = _a.onChangeComparedArea, siteType = _a.siteType;\n var t = useTranslation(['legacy', 'airport', 'railways']).t;\n var entireSiteLabel = useMemo(function () {\n return siteType === 'airport'\n ? t('common.entire_site', { ns: 'airport' })\n : t('common.entire_site', { ns: 'railways' });\n }, [siteType, t]);\n var noComparisonLabel = useMemo(function () { return t('Reporting_Labels.No_comparison'); }, [t]);\n var compareLabel = useMemo(function () { return t('Reporting_Labels.Compare'); }, [t]);\n return (React.createElement(\"div\", { className: \"report-filter\" },\n React.createElement(\"div\", { className: \"report-filter__title\" }, compareLabel),\n React.createElement(\"div\", { className: \"report-filter__element\" },\n React.createElement(Select, { colorMode: \"secondary\", value: currentComparisonMode.uuid === 'no_comparison'\n ? __assign(__assign({}, currentComparisonMode), { name: noComparisonLabel }) : currentComparisonMode, options: optionsComparisonMode, onSelect: onChangeComparisonMode })),\n React.createElement(\"div\", null,\n currentComparisonMode.uuid === 'date' && (React.createElement(\"div\", { className: \"report-filter__element\" },\n React.createElement(\"div\", { className: \"dates-picker dates-picker--secondary\" },\n React.createElement(DatesPicker, { t: t, from: comparedFrom, to: comparedTo, onDayChange: onComparedDayChange })))),\n currentComparisonMode.uuid === 'zone' && (React.createElement(\"div\", null,\n React.createElement(ClickOutside, { onClickOutside: onCloseArea },\n React.createElement(\"div\", { className: \"report-filter__element\" },\n React.createElement(AreaFloorSelector, { className: \"area-selector--filter\", currentArea: comparedAreaId\n ? _.find(selectedAreas, { uuid: comparedAreaId })\n : __assign(__assign({}, currentArea), { name: entireSiteLabel }), entireSiteLabel: entireSiteLabel, areasToMap: selectedAreas, onOpen: onOpenArea, onSelectArea: onChangeComparedArea, t: t, open: isOpenArea }))))))));\n};\nComparisonSelector.propTypes = {\n currentComparisonMode: PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n }),\n optionsComparisonMode: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n })),\n comparedFrom: PropTypes.string,\n comparedTo: PropTypes.string,\n comparedAreaId: PropTypes.string,\n selectedAreas: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n })),\n currentArea: PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n }),\n onComparedDayChange: PropTypes.func,\n onChangeComparisonMode: PropTypes.func,\n onChangeComparedArea: PropTypes.func,\n t: PropTypes.func,\n onOpenArea: PropTypes.func,\n isOpenArea: PropTypes.bool,\n onCloseArea: PropTypes.func,\n siteType: PropTypes.string,\n};\nexport default ComparisonSelector;\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\nimport ComparisonSelector from './ComparisonSelector';\nimport { compose } from 'redux';\nimport { withTranslation } from 'react-i18next';\nimport { getComparedDayFrom, getComparedDayTo, getComparisonsOptions, getCurrentComparisonMode, getComparedArea, } from '@src/navigation/selectors';\nimport { selectCurrentArea, selectAreasToDisplay, selectAllSiteAreasWithFloors, } from '@src/reporting/selectors';\nimport { setComparedArea, setComparedDay, setComparisonMode, resetComparedDate, } from '@src/navigation/actions';\nimport { fetchReportsCreationStats } from '@src/reporting/reports/actions';\nvar ComparisonSelectorContainer = (function (_super) {\n __extends(ComparisonSelectorContainer, _super);\n function ComparisonSelectorContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.handleComparisonMode = _this.handleComparisonMode.bind(_this);\n _this.handleComparedDayChange = _this.handleComparedDayChange.bind(_this);\n _this.handleComparedArea = _this.handleComparedArea.bind(_this);\n _this.handleCloseZoneSelector = _this.handleCloseZoneSelector.bind(_this);\n _this.handleOpenZoneSelector = _this.handleOpenZoneSelector.bind(_this);\n _this.state = {\n openZoneSelector: false,\n };\n return _this;\n }\n ComparisonSelectorContainer.prototype.handleComparedDayChange = function (from, to) {\n var changeComparedSelectDay = this.props.changeComparedSelectDay;\n var formatedFrom = moment(from).format('YYYY-MM-DD');\n var formatedTo = moment(to).format('YYYY-MM-DD');\n changeComparedSelectDay(formatedFrom, formatedTo);\n };\n ComparisonSelectorContainer.prototype.handleComparedArea = function (evt, areaId) {\n var onChangeComparedArea = this.props.onChangeComparedArea;\n this.setState({ openZoneSelector: false });\n onChangeComparedArea(areaId);\n };\n ComparisonSelectorContainer.prototype.handleComparisonMode = function (value) {\n var onComparisonMode = this.props.onComparisonMode;\n onComparisonMode(value);\n };\n ComparisonSelectorContainer.prototype.handleOpenZoneSelector = function () {\n this.setState({ openZoneSelector: true });\n };\n ComparisonSelectorContainer.prototype.handleCloseZoneSelector = function () {\n this.setState({ openZoneSelector: false });\n };\n ComparisonSelectorContainer.prototype.render = function () {\n var _a = this.props, comparedFrom = _a.comparedFrom, comparedTo = _a.comparedTo, selectedAreas = _a.selectedAreas, currentArea = _a.currentArea, comparedAreaId = _a.comparedAreaId, currentComparisonMode = _a.currentComparisonMode, optionsComparisonMode = _a.optionsComparisonMode, siteType = _a.siteType;\n return (React.createElement(ComparisonSelector, { currentComparisonMode: currentComparisonMode, optionsComparisonMode: optionsComparisonMode, comparedFrom: comparedFrom, siteType: siteType, comparedTo: comparedTo, comparedAreaId: comparedAreaId, selectedAreas: selectedAreas, currentArea: currentArea, isOpenArea: this.state.openZoneSelector, onOpenArea: this.handleOpenZoneSelector, onCloseArea: this.handleCloseZoneSelector, onComparedDayChange: this.handleComparedDayChange, onChangeComparisonMode: this.handleComparisonMode, onChangeComparedArea: this.handleComparedArea }));\n };\n return ComparisonSelectorContainer;\n}(Component));\nexport { ComparisonSelectorContainer };\nComparisonSelectorContainer.propTypes = {\n changeComparedSelectDay: PropTypes.func,\n onChangeComparedArea: PropTypes.func,\n onComparisonMode: PropTypes.func,\n comparedFrom: PropTypes.string,\n comparedTo: PropTypes.string,\n selectedAreas: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n })),\n currentArea: PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n }),\n comparedAreaId: PropTypes.string,\n currentComparisonMode: PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n }),\n optionsComparisonMode: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n })),\n t: PropTypes.func,\n siteType: PropTypes.string,\n};\nexport var mapStateToProps = function (state, props) {\n var _a, _b, _c, _d;\n var selectedAreas = selectAllSiteAreasWithFloors(state, props);\n var optionsComparisonMode = getComparisonsOptions(selectAreasToDisplay(state, props).length > 1, props.t);\n return {\n comparedFrom: getComparedDayFrom(state, props),\n comparedTo: getComparedDayTo(state, props),\n currentArea: selectCurrentArea(state, props),\n selectedAreas: selectedAreas,\n optionsComparisonMode: optionsComparisonMode,\n currentComparisonMode: getCurrentComparisonMode(state),\n comparedAreaId: getComparedArea(state),\n siteType: (_d = (_c = (_b = (_a = state === null || state === void 0 ? void 0 : state.sites) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.find(function (site) { return site.uuid === props.siteId; })) === null || _c === void 0 ? void 0 : _c.tags) === null || _d === void 0 ? void 0 : _d[0],\n };\n};\nvar mapDispatchToProps = function (dispatch) { return ({\n changeComparedSelectDay: function (from, to) {\n dispatch(setComparedDay(from, to));\n dispatch(fetchReportsCreationStats());\n },\n onChangeComparedArea: function (areaId) {\n dispatch(setComparedArea(areaId));\n dispatch(fetchReportsCreationStats());\n },\n onComparisonMode: function (mode) {\n dispatch(resetComparedDate());\n dispatch(setComparisonMode(mode));\n dispatch(fetchReportsCreationStats());\n },\n}); };\nexport default compose(withTranslation(['legacy', 'airport', 'railways']), connect(mapStateToProps, mapDispatchToProps))(ComparisonSelectorContainer);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { BarChart, Bar, XAxis, YAxis, ResponsiveContainer, LabelList } from 'recharts';\nimport '@src/commons/styles/molecules/chart-card.scss';\nimport '@src/commons/styles/atoms/title.scss';\nimport '@src/commons/styles/atoms/icon.scss';\nimport moment from 'moment';\nvar colors = {\n BLUE: '#0088CE',\n PURPLE: '#6E1E78',\n};\nvar getPath = function (x, y, width, height) {\n return \"m\" + x + \",\" + y + \"\\n h\" + width + \"\\n q10,0 10,10\\n v10\\n q0,10 -10,10\\n h-\" + width + \"\\n z\";\n};\nvar RectangleBar = function (args) {\n var fill = args.fill, x = args.x, y = args.y, width = args.width, height = args.height;\n var widthWithoutLabel = width * 0.75;\n return (React.createElement(\"g\", null,\n React.createElement(\"path\", { d: getPath(x + 10, y, widthWithoutLabel, height), stroke: \"none\", fill: fill })));\n};\nvar Label = function (args) {\n var y = args.y, width = args.width, value = args.value, unit = args.unit, locale = args.locale;\n var widthWithoutLabel = width * 0.75;\n return (React.createElement(\"g\", null,\n React.createElement(\"text\", { x: widthWithoutLabel + 130, y: y + 19, fontSize: \".8rem\", fill: \"#666666\", fontFamily: \"Poppins\" },\n value.toLocaleString(locale),\n \" \",\n unit)));\n};\nvar BarsComparison = function (_a) {\n var data = _a.data, unit = _a.unit, title = _a.title, statusStat = _a.statusStat, statusStatCompared = _a.statusStatCompared, dayFrom = _a.dayFrom, dayTo = _a.dayTo, comparedDayFrom = _a.comparedDayFrom, comparedDayTo = _a.comparedDayTo, comparisonMode = _a.comparisonMode, t = _a.t, locale = _a.locale;\n var isSingleBar = comparisonMode.uuid === 'no_comparison';\n var statHasData = statusStat !== 'no_data';\n var statComparedHasData = statusStatCompared !== 'no_data';\n return (React.createElement(\"div\", { className: \"chart-card__container\" },\n React.createElement(\"div\", { className: \"chart-card__header\" },\n React.createElement(\"div\", { className: \"chart-card__title title\" }, title)),\n React.createElement(\"div\", { className: \"chart-card__chart\", style: { paddingTop: '20px' } },\n React.createElement(ResponsiveContainer, { width: \"100%\", height: \"100%\" },\n React.createElement(BarChart, { data: [data], layout: \"vertical\", margin: { right: 90, left: 100 } },\n React.createElement(XAxis, { type: \"number\", axisLine: false, tickSize: 0, tickCount: 0, tickLine: false }),\n React.createElement(YAxis, { type: \"category\", dataKey: \"name\", hide: true, axisLine: false, tickSize: 0, tickLine: false }),\n statHasData && (React.createElement(Bar, { dataKey: \"valueStat\", isAnimationActive: false, fill: colors.BLUE, shape: React.createElement(RectangleBar, { style: { paddingLeft: '50px' } }) },\n React.createElement(LabelList, { dataKey: \"valueStat\", content: React.createElement(Label, { unit: unit, locale: locale }) }))),\n !isSingleBar && statComparedHasData && (React.createElement(Bar, { dataKey: \"valueStatCompared\", isAnimationActive: false, fill: colors.PURPLE, shape: React.createElement(RectangleBar, null) },\n React.createElement(LabelList, { dataKey: \"valueStatCompared\", content: React.createElement(Label, { unit: unit, locale: locale }) }))))),\n React.createElement(\"div\", { className: \"chart-card__bars-title\", style: { top: !statHasData && statComparedHasData ? '88px' : '33px' } }, data['nameStat']),\n !statHasData && (React.createElement(\"div\", { className: \"chart-card__bars-no-data\", style: { top: statComparedHasData ? '84px' : '29px', left: '110px' } }, t('Chart_No_Data.title') + \" \" + t('Chart_No_Data.from') + \" \" + moment(dayFrom).format('L') + \" \" + t('Chart_No_Data.to') + \" \" + moment(dayTo).format('L'))),\n !isSingleBar && (React.createElement(\"div\", { className: \"chart-card__bars-title\", style: { top: !statHasData && statComparedHasData ? '33px' : '88px' } }, data['nameStatCompared'])),\n !statComparedHasData && !isSingleBar && (React.createElement(\"div\", { className: \"chart-card__bars-no-data\", style: { top: '84px', left: '110px' } }, t('Chart_No_Data.title') + \" \" + t('Chart_No_Data.from') + \" \" + (comparisonMode.uuid === 'date' ? moment(comparedDayFrom).format('L') : moment(dayFrom).format('L')) + \" \" + t('Chart_No_Data.to') + \" \" + (comparisonMode.uuid === 'date' ? moment(comparedDayTo).format('L') : moment(dayTo).format('L')))))));\n};\nBarsComparison.propTypes = {\n match: PropTypes.shape({\n params: PropTypes.shape({\n siteId: PropTypes.string,\n }),\n }),\n data: PropTypes.shape({\n nameStat: PropTypes.string,\n valueStat: PropTypes.number,\n nameStatCompared: PropTypes.string,\n valueStatCompared: PropTypes.number,\n }),\n comparisonMode: PropTypes.shape({\n uuid: PropTypes.string,\n }),\n unit: PropTypes.string,\n title: PropTypes.string,\n dayFrom: PropTypes.string,\n dayTo: PropTypes.string,\n comparedDayFrom: PropTypes.string,\n comparedDayTo: PropTypes.string,\n statusStat: PropTypes.string,\n statusStatCompared: PropTypes.string,\n t: PropTypes.func,\n locale: PropTypes.string,\n};\nexport default BarsComparison;\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport BarsComparison from './BarsComparison';\nimport AnimatedGradientLoader from '@src/commons/Loader/AnimatedGradientLoader';\nimport { selectLoadingCreationReportsComponent, selectStatusStatBarsComparisonComponent, selectStatusStatComparedBarsComparisonComponent, selectDataBarsComparisonComponent, } from '@src/reporting/reports/selectors';\nimport { getterReportingNavigation } from '@src/reporting/selectors';\nimport '@src/commons/styles/molecules/chart-card.scss';\nimport { getterCurrentSiteLanguage } from '@src/live/realtime/selectors';\nvar BarsComparisonContainer = (function (_super) {\n __extends(BarsComparisonContainer, _super);\n function BarsComparisonContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BarsComparisonContainer.prototype.render = function () {\n var _a = this.props, data = _a.data, dayFrom = _a.dayFrom, dayTo = _a.dayTo, comparedDayFrom = _a.comparedDayFrom, comparedDayTo = _a.comparedDayTo, unit = _a.unit, title = _a.title, loading = _a.loading, statusStat = _a.statusStat, statusStatCompared = _a.statusStatCompared, comparisonMode = _a.comparisonMode, t = _a.t, locale = _a.locale;\n return (React.createElement(\"div\", { className: \"chart-card chart-card--big\" },\n !loading && (React.createElement(BarsComparison, { data: data, dayFrom: dayFrom, dayTo: dayTo, comparedDayFrom: comparedDayFrom, comparedDayTo: comparedDayTo, title: title, unit: unit, statusStat: statusStat, statusStatCompared: statusStatCompared, locale: locale, t: t, comparisonMode: comparisonMode })),\n loading && React.createElement(AnimatedGradientLoader, null)));\n };\n return BarsComparisonContainer;\n}(Component));\nexport { BarsComparisonContainer };\nBarsComparisonContainer.propTypes = {\n loading: PropTypes.bool,\n data: PropTypes.shape({\n nameStat: PropTypes.string,\n valueStat: PropTypes.number,\n nameStatCompared: PropTypes.string,\n valueStatCompared: PropTypes.number,\n }),\n unit: PropTypes.string,\n title: PropTypes.string,\n statusStat: PropTypes.string,\n statusStatCompared: PropTypes.string,\n dayFrom: PropTypes.string,\n dayTo: PropTypes.string,\n comparedDayFrom: PropTypes.string,\n comparedDayTo: PropTypes.string,\n comparisonMode: PropTypes.shape({\n uuid: PropTypes.string,\n }),\n t: PropTypes.func,\n locale: PropTypes.string,\n};\nexport var mapStateToProps = function (state, props) {\n var _a = getterReportingNavigation(state, props), dayFrom = _a.dayFrom, dayTo = _a.dayTo, comparedDayFrom = _a.comparedDayFrom, comparedDayTo = _a.comparedDayTo, comparisonMode = _a.comparisonMode;\n var data = selectDataBarsComparisonComponent(state, props);\n data.nameStat = data.nameStat === 'Entire Site' ? props.t('Reporting_Labels.Entire_site') : data.nameStat;\n data.nameStatCompared =\n data.nameStatCompared === 'Entire Site' ? props.t('Reporting_Labels.Entire_site') : data.nameStatCompared;\n return {\n dayFrom: dayFrom,\n dayTo: dayTo,\n comparedDayFrom: comparedDayFrom,\n comparedDayTo: comparedDayTo,\n comparisonMode: comparisonMode,\n data: data,\n loading: selectLoadingCreationReportsComponent(state, props),\n statusStat: selectStatusStatBarsComparisonComponent(state, props),\n statusStatCompared: selectStatusStatComparedBarsComparisonComponent(state, props),\n locale: getterCurrentSiteLanguage(state),\n };\n};\nvar mapDispatchToProps = function (dispatch) { return ({}); };\nexport default connect(mapStateToProps, mapDispatchToProps)(BarsComparisonContainer);\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment-timezone';\nimport _ from 'lodash';\nimport { BarChart, Bar, CartesianGrid, XAxis, Tooltip, YAxis, ResponsiveContainer, Cell } from 'recharts';\nimport ChartTooltipComparison from '@src/commons/ChartTooltip/ChartTooltipComparison';\nimport { isNumberOfDayAboveOne, getHourlyTicksByDayForDwelltime, getTimeKey, getCellColor, getStrokeColor, getStrokeDashArray, } from '@src/reporting/utils';\nimport '@src/commons/styles/molecules/chart-card.scss';\nimport '@src/commons/styles/atoms/title.scss';\nimport '@src/commons/styles/atoms/icon.scss';\nvar DwelltimeChart = (function (_super) {\n __extends(DwelltimeChart, _super);\n function DwelltimeChart(props) {\n var _this = _super.call(this, props) || this;\n _this.state = { activeIndex: -1 };\n return _this;\n }\n DwelltimeChart.prototype.render = function () {\n var _this = this;\n var _a = this.props, data = _a.data, timezone = _a.timezone, granularity = _a.granularity, mode = _a.mode, t = _a.t, locale = _a.locale;\n var memoizedGetCellColor = _.memoize(getCellColor);\n var memoizedGetStrokeColor = _.memoize(getStrokeColor);\n var memoizedGetStrokeDashArray = _.memoize(getStrokeDashArray);\n var memoizedGetCellColorCompare = _.memoize(getCellColor);\n var memoizedGetStrokeColorCompare = _.memoize(getStrokeColor);\n var memoizedGetStrokeDashArrayCompare = _.memoize(getStrokeDashArray);\n return (React.createElement(\"div\", { className: \"chart-card__container\" },\n React.createElement(\"div\", { className: \"chart-card__header\" },\n React.createElement(\"div\", { className: \"chart-card__title title\" }, t('Reporting_Labels.graphs.dwelltimeInZone'))),\n React.createElement(\"div\", { className: \"chart-card__chart\" },\n React.createElement(ResponsiveContainer, { width: \"100%\", height: \"100%\" },\n React.createElement(BarChart, { data: data, margin: { top: -1, right: 0, left: 0, bottom: -5 }, onMouseLeave: function () { return _this.setState({ activeIndex: -1 }); } },\n React.createElement(CartesianGrid, { vertical: false }),\n granularity === 'hourly' && (React.createElement(XAxis, { dataKey: _.every(data, function (d) { return d.time === null; }) ? 'compared_time' : 'time', axisLine: false, tickLine: false, tick: { fontSize: '.8rem', fill: '#999' }, ticks: isNumberOfDayAboveOne(data) ? getHourlyTicksByDayForDwelltime(data) : null, interval: isNumberOfDayAboveOne(data) ? 0 : 'preserveStart', tickFormatter: function (unixTime) {\n return isNumberOfDayAboveOne(data)\n ? moment(unixTime).format('ll')\n : moment(unixTime).format('HH:mm');\n }, padding: { left: 70 }, tickSize: 2, dy: 10 })),\n mode !== 'date' && granularity !== 'hourly' && (React.createElement(XAxis, { dataKey: \"time\", axisLine: false, tickLine: false, tick: { fontSize: '.8rem', fill: '#999' }, interval: \"preserveStart\", tickFormatter: function (unixTime) {\n return isNumberOfDayAboveOne(data)\n ? moment(unixTime).format('ll')\n : moment(unixTime).format('MMM');\n }, padding: { left: 70 }, tickSize: 2, dy: 10 })),\n mode === 'date' && (React.createElement(XAxis, { dataKey: getTimeKey(data), axisLine: false, tickLine: false, tickFormatter: function (unixTime) {\n var _a;\n return \"J \" + (_.findIndex(data, (_a = {}, _a[getTimeKey(data)] = unixTime, _a)) + 1);\n }, tick: { fontSize: '.8rem', fill: '#999' }, padding: { left: 70 }, tickSize: 2, dy: 5 })),\n React.createElement(YAxis, { axisLine: false, dataKey: \"\" + (mode === 'no_comparison' ||\n _.get(_.maxBy(data, 'value'), 'value', 0) >\n _.get(_.maxBy(data, 'compared_value'), 'compared_value', 0)\n ? 'value'\n : 'compared_value'), domain: [0, 'auto'], tick: { fontSize: '.8rem', fill: '#999' }, tickSize: 0, tickCount: 4, tickFormatter: function (data) { return data.toLocaleString(locale) + \"min\"; }, type: \"number\", interval: \"preserveEnd\", orientation: \"left\", mirror: true, padding: { top: 20 }, dy: -10, dx: 10 }),\n React.createElement(Tooltip, { cursor: false, content: function (_a) {\n var active = _a.active, payload = _a.payload, label = _a.label;\n var selectedPayload = _.get(_.head(payload), 'payload');\n var baseTime = _.get(selectedPayload, 'time');\n var selectedTime = baseTime\n ? granularity === 'hourly'\n ? moment(baseTime).format('ll - HH:mm')\n : moment(baseTime).format('ll')\n : null;\n var selectedTime2 = granularity === 'hourly'\n ? moment(_.get(selectedPayload, 'compared_time')).format('ll - HH:mm')\n : moment(_.get(selectedPayload, 'compared_time')).format('ll');\n var selectedValue1 = _.get(selectedPayload, 'value');\n var selectedValue2 = _.get(selectedPayload, 'compared_value');\n var selectedZone = _.get(selectedPayload, 'zone');\n var selectedZone2 = _.get(selectedPayload, 'zone2');\n return (React.createElement(ChartTooltipComparison, { mode: mode, baseDate: selectedTime, statTitle: mode === 'date' ? selectedTime : selectedZone, statComparedTitle: mode === 'date' ? selectedTime2 : selectedZone2, statComparedValue: selectedValue2\n ? _.round(selectedValue2) > 1\n ? _.round(selectedValue2).toLocaleString(locale) + \" mins\"\n : _.round(selectedValue2).toLocaleString(locale) + \" min\"\n : null, statValue: _.round(selectedValue1) > 1\n ? _.round(selectedValue1).toLocaleString(locale) + \" mins\"\n : _.round(selectedValue1).toLocaleString(locale) + \" min\" }));\n } }),\n React.createElement(Bar, { dataKey: \"value\", onMouseOver: function (data, index) {\n if (_this.state.activeIndex !== index) {\n _this.setState({ activeIndex: index });\n }\n } }, _.map(data, function (entry, index) { return (React.createElement(Cell, { cursor: \"pointer\", stroke: memoizedGetStrokeColor({\n activeIndex: index === _this.state.activeIndex,\n isCursorOnChart: _this.state.activeIndex >= 0,\n isDashed: entry.isCompleted,\n color: 'var(--primarycolorRGB)',\n }), strokeDasharray: memoizedGetStrokeDashArray({\n activeIndex: index === _this.state.activeIndex,\n isDashed: entry.isCompleted,\n }), fill: memoizedGetCellColor({\n activeIndex: index === _this.state.activeIndex,\n isCursorOnChart: _this.state.activeIndex >= 0,\n isDashed: entry.isCompleted,\n color: 'var(--primarycolorRGB)',\n }), key: \"cell-\" + index })); })),\n !_.every(_.map(data, function (d) { return !d.compared_value; })) && (React.createElement(Bar, { dataKey: \"compared_value\", onMouseOver: function (data, index) {\n if (_this.state.activeIndex !== index) {\n _this.setState({ activeIndex: index });\n }\n } }, _.map(data, function (entry, index) { return (React.createElement(Cell, { cursor: \"pointer\", stroke: memoizedGetStrokeColorCompare({\n activeIndex: index === _this.state.activeIndex,\n isCursorOnChart: _this.state.activeIndex >= 0,\n isDashed: entry.compared_isCompleted,\n color: 'var(--secondaryBoxColorRGB)',\n }), strokeDasharray: memoizedGetStrokeDashArrayCompare({\n activeIndex: index === _this.state.activeIndex,\n isDashed: entry.compared_isCompleted,\n }), fill: memoizedGetCellColorCompare({\n activeIndex: index === _this.state.activeIndex,\n isCursorOnChart: _this.state.activeIndex >= 0,\n isDashed: entry.compared_isCompleted,\n color: 'var(--secondaryBoxColorRGB)',\n }), key: \"cell-\" + index })); }))))))));\n };\n return DwelltimeChart;\n}(Component));\nexport { DwelltimeChart };\nDwelltimeChart.propTypes = {\n granularity: PropTypes.string,\n mode: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n value: PropTypes.number,\n })),\n timezone: PropTypes.string,\n locale: PropTypes.string,\n t: PropTypes.func,\n};\nexport default DwelltimeChart;\n","import { __assign, __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport DwellTimeChart from './DwellTimeChart';\nimport { connect } from 'react-redux';\nimport AnimatedGradientLoader from '@src/commons/Loader/AnimatedGradientLoader';\nimport { getterCurrentSiteTimezone, getterCurrentSiteLanguage } from '@src/live/realtime/selectors';\nimport { selectDwelltimeStats, selectComparedDwelltimeStats, selectCurrentArea, selectComparedArea, getterNavigationGranularity, } from '@src/reporting/selectors';\nimport { getCurrentComparisonMode } from '@src/navigation/selectors';\nimport { selectLoadingCreationReportsComponent } from '../selectors';\nimport { mergeBaseComparedData } from '@src/reporting/utils';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nimport '@src/commons/styles/organisms/reporting-graphs.scss';\nimport '@src/commons/styles/molecules/chart-card.scss';\nvar DwellTimeChartContainer = (function (_super) {\n __extends(DwellTimeChartContainer, _super);\n function DwellTimeChartContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DwellTimeChartContainer.prototype.render = function () {\n var _a = this.props, isDataCompletionActive = _a.isDataCompletionActive, loading = _a.loading, data = _a.data, comparisonMode = _a.comparisonMode, granularity = _a.granularity, timezone = _a.timezone, t = _a.t, locale = _a.locale;\n var ffData = isDataCompletionActive\n ? data\n : _.map(data, function (d) { return (__assign(__assign({}, d), { isCompleted: false, compared_isCompleted: false })); });\n return (React.createElement(\"div\", { className: \"chart-card chart-card--big\" },\n !loading && (React.createElement(DwellTimeChart, { data: ffData, timezone: timezone, granularity: granularity, mode: comparisonMode.uuid, t: t, locale: locale })),\n loading && React.createElement(AnimatedGradientLoader, null)));\n };\n return DwellTimeChartContainer;\n}(Component));\nexport { DwellTimeChartContainer };\nDwellTimeChartContainer.propTypes = {\n isDataCompletionActive: PropTypes.bool,\n loading: PropTypes.bool,\n data: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n zone: PropTypes.string,\n value: PropTypes.number,\n compared_time: PropTypes.number,\n zone2: PropTypes.string,\n compared_value: PropTypes.number,\n })),\n granularity: PropTypes.string,\n timezone: PropTypes.string,\n comparisonMode: PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n }),\n t: PropTypes.func,\n locale: PropTypes.string,\n};\nexport var mapStateToProps = function (state, props) {\n var baseStats = selectDwelltimeStats(state, props);\n var statsToCompare = selectComparedDwelltimeStats(state, props);\n var currentArea = selectCurrentArea(state, props);\n var comparedArea = selectComparedArea(state, props);\n var comparisonMode = getCurrentComparisonMode(state);\n var data = mergeBaseComparedData(baseStats, statsToCompare, comparisonMode.uuid, currentArea.name, comparedArea.name);\n var formatedData = _.map(data, function (d) { return (__assign(__assign({}, d), { zone: d.zone === 'Entire Site' ? props.t('Reporting_Labels.Entire_site') : d.zone, zone2: d.zone2 === 'Entire Site' ? props.t('Reporting_Labels.Entire_site') : d.zone2 })); });\n return {\n loading: selectLoadingCreationReportsComponent(state, props),\n data: formatedData,\n comparisonMode: comparisonMode,\n granularity: getterNavigationGranularity(state, props),\n timezone: getterCurrentSiteTimezone(state),\n locale: getterCurrentSiteLanguage(state),\n isDataCompletionActive: isFeatureActivated('display_completion')(state),\n };\n};\nexport var mapDispatchToProps = function (dispatch) { return ({}); };\nexport default connect(mapStateToProps, mapDispatchToProps)(DwellTimeChartContainer);\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment-timezone';\nimport _ from 'lodash';\nimport { ComposedChart, Area, CartesianGrid, XAxis, Tooltip, YAxis, ResponsiveContainer } from 'recharts';\nimport ChartTooltipComparison from '@src/commons/ChartTooltip/ChartTooltipComparison';\nimport { isNumberOfDayAboveOne, getHourlyTicksByDayForDwelltime, getTimeKey } from '@src/reporting/utils';\nimport '@src/commons/styles/organisms/reports-graphs.scss';\nimport '@src/commons/styles/molecules/chart-card.scss';\nimport '@src/commons/styles/atoms/title.scss';\nimport '@src/commons/styles/atoms/icon.scss';\nvar color = {\n BLUE: '#0088CE',\n VIOLET: '#6E1E78',\n TRANSPARENT: 'rgba(255, 255, 255, 0)',\n};\nexport var highestValueLabel = function (data) {\n var maxValue = _.max(_.map(data, function (d) { return d.value; }));\n var maxComparedValue = _.max(_.map(data, function (d) { return d.compared_value; }));\n var maxCompletionValue = _.max(_.map(data, function (d) { return d.completionValue; }));\n var maxComparedCompletionValue = _.max(_.map(data, function (d) { return d.completionComparedValue; }));\n var numbers = [\n { label: 'value', value: maxValue },\n { label: 'compared_value', value: maxComparedValue },\n { label: 'completionValue', value: maxCompletionValue },\n { label: 'completionComparedValue', value: maxComparedCompletionValue },\n ];\n var max = _.max(_.map(numbers, function (n) { return n.value; }));\n var maxObj = _.find(numbers, function (n) { return n.value === max; });\n return _.get(maxObj, 'label');\n};\nvar FrequentationChart = (function (_super) {\n __extends(FrequentationChart, _super);\n function FrequentationChart() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FrequentationChart.prototype.render = function () {\n var _a = this.props, from = _a.from, to = _a.to, comparedFrom = _a.comparedFrom, comparedTo = _a.comparedTo, data = _a.data, timezone = _a.timezone, granularity = _a.granularity, mode = _a.mode, highlightValueDataSet = _a.highlightValueDataSet, highlightValueToCompareDataSet = _a.highlightValueToCompareDataSet, t = _a.t, locale = _a.locale;\n var isDataCompleted = _.every(data, function (obj) { return obj.isCompleted === true; });\n var isComparedDataCompleted = _.every(data, function (obj) { return obj.compared_isCompleted === true; });\n return (React.createElement(\"div\", { className: \"chart-card__container\" },\n React.createElement(\"div\", { className: \"chart-card__header\" },\n React.createElement(\"div\", { className: \"chart-card__title title\" }, t('Reporting_Labels.graphs.traffic'))),\n React.createElement(\"div\", { className: \"reports-graph__element--total\" },\n React.createElement(\"div\", { className: \"reports-graph__element--total-title\" }, t('Reporting_Labels.Totals')),\n mode === 'date' && (React.createElement(\"div\", { className: \"reports-graph__element--total-list\" },\n !_.isNull(highlightValueDataSet) && (React.createElement(\"div\", { style: { color: color.BLUE, paddingBottom: 2 } },\n t('Chart_No_Data.from'),\n \" \",\n moment(from).format('L'),\n \" \",\n t('Chart_No_Data.to'),\n ' ',\n moment(to).format('L'))),\n !_.isNull(highlightValueToCompareDataSet) && (React.createElement(\"div\", { style: { color: color.VIOLET } },\n t('Chart_No_Data.from'),\n \" \",\n moment(comparedFrom).format('L'),\n \" \",\n t('Chart_No_Data.to'),\n ' ',\n moment(comparedTo).format('L'))))),\n mode !== 'date' && (React.createElement(\"div\", { className: \"reports-graph__element--total-list\" },\n !_.isNull(highlightValueDataSet) && (React.createElement(\"div\", { style: { color: color.BLUE, paddingBottom: 2 } }, highlightValueDataSet ? \"\" + _.get(_.find(data, 'zone'), 'zone') : '')),\n !_.isNull(highlightValueToCompareDataSet) && (React.createElement(\"div\", { style: { color: color.VIOLET } }, highlightValueToCompareDataSet ? \"\" + _.get(_.find(data, 'zone2'), 'zone2') : '')))),\n React.createElement(\"div\", { className: \"reports-graph__element--total-list\" },\n !_.isNull(highlightValueDataSet) && (React.createElement(\"div\", { style: { color: color.BLUE, paddingBottom: 2 } }, t('Reporting_Labels.graphs.pax', {\n count: highlightValueDataSet !== null && highlightValueDataSet !== void 0 ? highlightValueDataSet : 0,\n }))),\n !_.isNull(highlightValueToCompareDataSet) && (React.createElement(\"div\", { style: { color: color.VIOLET } }, t('Reporting_Labels.graphs.pax', {\n count: highlightValueToCompareDataSet !== null && highlightValueToCompareDataSet !== void 0 ? highlightValueToCompareDataSet : 0,\n }))))),\n React.createElement(\"div\", { className: \"chart-card__chart\" },\n React.createElement(ResponsiveContainer, { width: \"100%\", height: \"100%\" },\n React.createElement(ComposedChart, { data: data, margin: { top: -1, right: 0, left: 0, bottom: 25 } },\n React.createElement(CartesianGrid, { vertical: false }),\n granularity === 'hourly' && (React.createElement(XAxis, { dataKey: _.every(data, function (d) { return d.time === null; }) ? 'compared_time' : 'time', axisLine: false, tickLine: false, tick: { fontSize: '.8rem', fill: '#999' }, ticks: isNumberOfDayAboveOne(data) ? getHourlyTicksByDayForDwelltime(data) : null, interval: isNumberOfDayAboveOne(data) ? 0 : 'preserveStart', tickFormatter: function (unixTime) {\n return isNumberOfDayAboveOne(data)\n ? moment(unixTime).format('ll')\n : moment(unixTime).format('HH:mm');\n }, padding: { left: 70 }, tickSize: 2, dy: 10 })),\n mode !== 'date' && granularity !== 'hourly' && (React.createElement(XAxis, { dataKey: \"time\", axisLine: false, tickLine: false, tick: { fontSize: '.8rem', fill: '#999' }, interval: \"preserveStartEnd\", tickFormatter: function (unixTime) {\n return isNumberOfDayAboveOne(data)\n ? moment(unixTime).format('ll')\n : moment(unixTime).format('MMM');\n }, padding: { left: 70 }, tickSize: 2, dy: 10 })),\n mode === 'date' && (React.createElement(XAxis, { dataKey: getTimeKey(data), axisLine: false, tickLine: false, tickFormatter: function (unixTime) {\n var _a;\n return \"J \" + (_.findIndex(data, (_a = {}, _a[getTimeKey(data)] = unixTime, _a)) + 1);\n }, tick: { fontSize: '.8rem', fill: '#999' }, padding: { left: 70 }, tickSize: 2, dy: 5 })),\n React.createElement(YAxis, { axisLine: false, dataKey: highestValueLabel(data), domain: [0, 'auto'], tick: { fontSize: '.8rem', fill: '#999' }, tickSize: 0, tickCount: 4, tickFormatter: function (data) { return data.toLocaleString(locale); }, type: \"number\", interval: \"preserveEnd\", orientation: \"left\", mirror: true, padding: { top: 20 }, dy: -10, dx: 10 }),\n React.createElement(Tooltip, { cursor: false, content: function (_a) {\n var active = _a.active, payload = _a.payload, label = _a.label;\n var selectedPayload = _.get(_.head(payload), 'payload');\n var baseTime = _.get(selectedPayload, 'time');\n var selectedTime = baseTime\n ? granularity === 'hourly'\n ? moment(baseTime).format('ll - HH:mm')\n : moment(baseTime).format('ll')\n : null;\n var selectedTime2 = granularity === 'hourly'\n ? moment(_.get(selectedPayload, 'compared_time')).format('ll - HH:mm')\n : moment(_.get(selectedPayload, 'compared_time')).format('ll');\n var selectedValue1 = _.get(selectedPayload, 'value');\n var selectedValue2 = _.get(selectedPayload, 'compared_value');\n var selectedZone = _.get(selectedPayload, 'zone');\n var selectedZone2 = _.get(selectedPayload, 'zone2');\n return (React.createElement(ChartTooltipComparison, { mode: mode, baseDate: selectedTime, statTitle: mode === 'date' ? selectedTime : selectedZone, statComparedTitle: mode === 'date' ? selectedTime2 : selectedZone2, statComparedValue: selectedValue2\n ? _.round(selectedValue2) !== 1\n ? \"\" + _.round(selectedValue2).toLocaleString(locale)\n : \"\" + _.round(selectedValue2).toLocaleString(locale)\n : null, statValue: _.round(selectedValue1) !== 1\n ? \"\" + _.round(selectedValue1).toLocaleString(locale)\n : \"\" + _.round(selectedValue1).toLocaleString(locale) }));\n } }),\n React.createElement(Area, { dataKey: \"value\", strokeWidth: 2, stroke: color.BLUE, fill: color.TRANSPARENT, strokeDasharray: isDataCompleted && '5 5' }),\n React.createElement(Area, { dataKey: \"completionValue\", strokeWidth: 2, stroke: color.BLUE, fill: color.TRANSPARENT, strokeDasharray: \"5 5\" }),\n React.createElement(Area, { dataKey: \"compared_value\", strokeWidth: 2, stroke: color.VIOLET, fill: color.TRANSPARENT, strokeDasharray: isComparedDataCompleted && '3 3' }),\n React.createElement(Area, { dataKey: \"completionComparedValue\", strokeWidth: 2, stroke: color.VIOLET, fill: color.TRANSPARENT, strokeDasharray: \"3 3\" }))))));\n };\n return FrequentationChart;\n}(Component));\nexport { FrequentationChart };\nFrequentationChart.propTypes = {\n granularity: PropTypes.string,\n mode: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n value: PropTypes.number,\n })),\n timezone: PropTypes.string,\n highlightValueDataSet: PropTypes.number,\n highlightValueToCompareDataSet: PropTypes.number,\n t: PropTypes.func,\n locale: PropTypes.string,\n from: PropTypes.string,\n to: PropTypes.string,\n comparedFrom: PropTypes.string,\n comparedTo: PropTypes.string,\n};\nexport default FrequentationChart;\n","import { __assign, __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport FrequentationChart from './FrequentationChart';\nimport { connect } from 'react-redux';\nimport AnimatedGradientLoader from '@src/commons/Loader/AnimatedGradientLoader';\nimport { getterCurrentSiteTimezone, getterCurrentSiteLanguage } from '@src/live/realtime/selectors';\nimport { selectPresenceStats, selectCurrentArea, selectComparedArea, getterNavigationGranularity, } from '@src/reporting/selectors';\nimport { getCurrentComparisonMode, getCurrentDayFrom, getCurrentDayTo, getComparedDayFrom, getComparedDayTo, } from '@src/navigation/selectors';\nimport { selectLoadingCreationReportsComponent, selectSumPresenceBaseArea, selectSumPresenceComparedArea, selectComparedPresenceStats, } from '@src/reporting/reports/selectors';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nimport { formatTrafficDataCompletion, mergeBaseComparedData } from '@src/reporting/utils';\nimport '@src/commons/styles/organisms/reporting-graphs.scss';\nimport '@src/commons/styles/molecules/chart-card.scss';\nvar FrequentationChartContainer = (function (_super) {\n __extends(FrequentationChartContainer, _super);\n function FrequentationChartContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FrequentationChartContainer.prototype.render = function () {\n var _a = this.props, isDataCompletionActive = _a.isDataCompletionActive, loading = _a.loading, from = _a.from, to = _a.to, comparedFrom = _a.comparedFrom, comparedTo = _a.comparedTo, data = _a.data, dataCompletion = _a.dataCompletion, highlightValue = _a.highlightValue, highlightValueToCompare = _a.highlightValueToCompare, comparisonMode = _a.comparisonMode, granularity = _a.granularity, timezone = _a.timezone, t = _a.t, locale = _a.locale;\n var trafficData = isDataCompletionActive ? dataCompletion : data;\n return (React.createElement(\"div\", { className: \"chart-card chart-card--big\" },\n loading && React.createElement(AnimatedGradientLoader, null),\n !loading && (React.createElement(FrequentationChart, { data: trafficData, timezone: timezone, granularity: granularity, highlightValueDataSet: highlightValue, highlightValueToCompareDataSet: highlightValueToCompare, locale: locale, t: t, mode: comparisonMode.uuid, from: from, to: to, comparedFrom: comparedFrom, comparedTo: comparedTo }))));\n };\n return FrequentationChartContainer;\n}(Component));\nexport { FrequentationChartContainer };\nFrequentationChartContainer.propTypes = {\n loading: PropTypes.bool,\n data: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n zone: PropTypes.string,\n value: PropTypes.number,\n compared_time: PropTypes.number,\n zone2: PropTypes.string,\n compared_value: PropTypes.number,\n })),\n dataCompletion: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n value: PropTypes.number,\n })),\n granularity: PropTypes.string,\n timezone: PropTypes.string,\n comparisonMode: PropTypes.shape({\n uuid: PropTypes.string,\n }),\n highlightValue: PropTypes.number,\n highlightValueToCompare: PropTypes.number,\n isDataCompletionActive: PropTypes.bool,\n t: PropTypes.func,\n locale: PropTypes.string,\n from: PropTypes.string,\n to: PropTypes.string,\n comparedFrom: PropTypes.string,\n comparedTo: PropTypes.string,\n};\nexport var mapStateToProps = function (state, props) {\n var siteTypes = props.siteTypes, t = props.t;\n var baseStats = selectPresenceStats(state, props);\n var statsToCompare = selectComparedPresenceStats(state, props);\n var currentArea = selectCurrentArea(state, props);\n var comparedArea = selectComparedArea(state, props);\n var comparisonMode = getCurrentComparisonMode(state);\n var data = mergeBaseComparedData(baseStats, statsToCompare, comparisonMode.uuid, currentArea.name, comparedArea.name);\n var formatedData = _.map(data, function (d) { return (__assign(__assign({}, d), { zone: d.zone === 'Entire Site' && siteTypes === 'AIR'\n ? t('common.entire_site', { ns: 'airport' })\n : d.zone === 'Entire Site'\n ? t('common.entire_site', { ns: 'railways' })\n : d.zone, zone2: d.zone2 === 'Entire Site' && siteTypes === 'AIR'\n ? t('common.entire_site', { ns: 'airport' })\n : d.zone2 === 'Entire Site'\n ? t('common.entire_site', { ns: 'railways' })\n : d.zone2 })); });\n return {\n loading: selectLoadingCreationReportsComponent(state, props),\n data: formatedData,\n dataCompletion: formatTrafficDataCompletion(formatedData),\n comparisonMode: comparisonMode,\n granularity: getterNavigationGranularity(state, props),\n timezone: getterCurrentSiteTimezone(state),\n highlightValue: selectSumPresenceBaseArea(state, __assign(__assign({}, props), { statKey: 'sum', granularity: 'daily' })),\n highlightValueToCompare: selectSumPresenceComparedArea(state, __assign(__assign({}, props), { statKey: 'sum', granularity: 'daily' })),\n isDataCompletionActive: isFeatureActivated('display_completion')(state),\n locale: getterCurrentSiteLanguage(state),\n from: getCurrentDayFrom(state),\n to: getCurrentDayTo(state),\n comparedFrom: getComparedDayFrom(state),\n comparedTo: getComparedDayTo(state),\n };\n};\nexport var mapDispatchToProps = function (dispatch) { return ({}); };\nexport default connect(mapStateToProps, mapDispatchToProps)(FrequentationChartContainer);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport '@src/commons/styles/molecules/report-filter.scss';\nimport PopulationSelector from '@src/commons/PopulationSelector';\nvar PopulationFilter = function (_a) {\n var value = _a.value, populations = _a.populations, onPopulationChange = _a.onPopulationChange, t = _a.t;\n return (React.createElement(\"div\", { className: \"report-filter\" },\n React.createElement(\"div\", { className: \"report-filter__title\" }, t('Reporting_Labels.Populations')),\n React.createElement(\"div\", { className: \"report-filter__element\" },\n React.createElement(PopulationSelector, { value: value, populations: populations, onPopulationChange: onPopulationChange }))));\n};\nPopulationFilter.propTypes = {\n t: PropTypes.func,\n value: PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n }),\n populations: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n })),\n onPopulationChange: PropTypes.func,\n};\nexport default PopulationFilter;\n","import { __extends } from \"tslib\";\nimport React, { Component, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport { compose } from 'redux';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport { withTranslation } from 'react-i18next';\nimport _ from 'lodash';\nimport { getCurrentDayTo, getCurrentDayFrom } from '@src/navigation/selectors';\nimport { selectCurrentArea, selectAllSiteAreasWithFloors, selectCurrentFloor, getterSiteFloors, getterNavigationGranularity, getterPopulations, getCurrentPopulationName, } from '@src/reporting/selectors';\nimport { getterSiteConfig } from '@src/commons/configs/selectors';\nimport { getSite } from '@src/selectors';\nimport { selectLoadingAllReports, selectSomeStatusHasNoData, getterReportsCreationLoading, selectDisplayDataCompletionMessage, } from './selectors';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nimport { setCurrentDay, setNavigation, changePopulation } from '@src/navigation/actions';\nimport { setCurrentFloor2, selectArea2, selectEntireSite } from '@src/commons/floors/actions';\nimport { fetchReportsCreationStats, initReportsCreationSection, downloadReport, } from '@src/reporting/reports/actions';\nimport ClickOutside from '@src/commons/topBar/ClickOutside';\nimport CurrentDateSelector from '@src/reporting/reports/CurrentDateSelector';\nimport ComparisonSelectorContainer from './filters/comparisons/index';\nimport BarsComparisonContainer from './BarsComparison';\nimport DwellTimeChartContainer from './dwellTime';\nimport FrequentationChartContainer from './Traffic';\nimport StatusMessage from '@src/live/realtime/StatusMessage';\nimport Loader from '@src/commons/Loader';\nimport Disclaimer from '@src/commons/Disclaimer';\nimport AreaFloorSelector from '@src/commons/AreaFloorSelector';\nimport PopulationFilter from './PopulationFilter';\nimport '@src/commons/styles/templates/reports.scss';\nimport '@src/commons/styles/molecules/report-filter.scss';\nimport '@src/commons/styles/atoms/button.scss';\nimport '@src/commons/styles/molecules/area-selector.scss';\nvar ReportsCreationContainer = (function (_super) {\n __extends(ReportsCreationContainer, _super);\n function ReportsCreationContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n openZoneSelector: false,\n };\n _this.handleBaseDayChange = _this.handleBaseDayChange.bind(_this);\n _this.handleOpenZoneSelector = _this.handleOpenZoneSelector.bind(_this);\n _this.handleSelectArea = _this.handleSelectArea.bind(_this);\n _this.handleCloseZoneSelector = _this.handleCloseZoneSelector.bind(_this);\n _this.handleDownloadReport = _this.handleDownloadReport.bind(_this);\n _this.handlePopulationChange = _this.handlePopulationChange.bind(_this);\n return _this;\n }\n ReportsCreationContainer.prototype.componentDidMount = function () {\n var _a = this.props, initReportsCreation = _a.initReportsCreation, history = _a.history;\n initReportsCreation(history);\n };\n ReportsCreationContainer.prototype.handleBaseDayChange = function (from, to) {\n var changeBaseSelectedDay = this.props.changeBaseSelectedDay;\n var formatedFrom = moment(from).format('YYYY-MM-DD');\n var formatedTo = moment(to).format('YYYY-MM-DD');\n changeBaseSelectedDay(formatedFrom, formatedTo, 'daily');\n };\n ReportsCreationContainer.prototype.handleOpenZoneSelector = function () {\n this.setState({ openZoneSelector: true });\n };\n ReportsCreationContainer.prototype.handleCloseZoneSelector = function () {\n this.setState({ openZoneSelector: false });\n };\n ReportsCreationContainer.prototype.handleSelectArea = function (e, areaId) {\n var _a = this.props, onChangeArea = _a.onChangeArea, onResetEntireSite = _a.onResetEntireSite, siteId = _a.siteId, currentFloor = _a.currentFloor, floors = _a.floors, history = _a.history;\n if (_.isNull(areaId)) {\n onResetEntireSite(siteId, currentFloor.uuid, history);\n }\n else {\n onChangeArea(getAreaFloor(floors, areaId).uuid, areaId, history);\n }\n this.setState(function (prevState) { return ({\n openZoneSelector: !prevState.openZoneSelector,\n }); });\n e.stopPropagation();\n e.preventDefault();\n };\n ReportsCreationContainer.prototype.handleDownloadReport = function () {\n var _a = this.props, onDownloadReport = _a.onDownloadReport, downloadingReport = _a.downloadingReport, dataLoading = _a.dataLoading, t = _a.t;\n if (!downloadingReport && !dataLoading) {\n onDownloadReport(t('Reporting_Labels.Report_prefix'), moment().format('YYYYMMDD_HHmm'));\n }\n };\n ReportsCreationContainer.prototype.handlePopulationChange = function (population) {\n var changeCurrentPopulation = this.props.changeCurrentPopulation;\n changeCurrentPopulation(population.slug);\n };\n ReportsCreationContainer.prototype.render = function () {\n var _a = this.props, isDataCompletionActive = _a.isDataCompletionActive, displayDataCompletionMessage = _a.displayDataCompletionMessage, reportsCreationSectionLoading = _a.reportsCreationSectionLoading, isFromPopulationForGCActivated = _a.isFromPopulationForGCActivated, currentPopulation = _a.currentPopulation, populations = _a.populations, baseFrom = _a.baseFrom, baseTo = _a.baseTo, selectedAreas = _a.selectedAreas, currentArea = _a.currentArea, siteId = _a.siteId, currentSite = _a.currentSite, currentGranularity = _a.currentGranularity, downloadingReport = _a.downloadingReport, dataLoading = _a.dataLoading, someChildComponentsHasNoData = _a.someChildComponentsHasNoData, t = _a.t;\n var entireSiteLabel = (currentSite === null || currentSite === void 0 ? void 0 : currentSite.site_types) === 'AIR'\n ? t('common.entire_site', { ns: 'airport' })\n : t('common.entire_site', { ns: 'railways' });\n return (React.createElement(\"div\", { className: \"reports\" },\n !reportsCreationSectionLoading && (React.createElement(Fragment, null,\n React.createElement(\"div\", { className: \"reports__filters\" },\n React.createElement(CurrentDateSelector, { from: baseFrom, to: baseTo, onDayChange: this.handleBaseDayChange, t: t }),\n React.createElement(\"div\", null,\n React.createElement(ClickOutside, { onClickOutside: this.handleCloseZoneSelector },\n React.createElement(\"div\", { className: \"report-filter\" },\n React.createElement(\"div\", { className: \"report-filter__title\" }, t('Reporting_Labels.Areas')),\n React.createElement(\"div\", { className: \"report-filter__element\" },\n selectedAreas.length === 1 && (React.createElement(\"div\", { className: \"area-selector__title area-selector__title--unique area-selector__title--filter\" }, entireSiteLabel)),\n React.createElement(AreaFloorSelector, { className: \"area-selector--filter\", entireSiteLabel: entireSiteLabel, currentArea: currentArea, areasToMap: selectedAreas, onOpen: this.handleOpenZoneSelector, onSelectArea: this.handleSelectArea, t: t, open: this.state.openZoneSelector })))),\n !isFromPopulationForGCActivated && (React.createElement(PopulationFilter, { value: currentPopulation, populations: populations, onPopulationChange: this.handlePopulationChange, t: t })),\n React.createElement(ComparisonSelectorContainer, { siteId: siteId }),\n React.createElement(\"div\", { className: \"report-filter\" },\n React.createElement(\"div\", { className: \"report-filter__element\" },\n React.createElement(\"div\", { className: \"button button--primary \" + (downloadingReport || dataLoading ? 'button--disabled' : ''), \"data-html2canvas-ignore\": \"true\", onClick: this.handleDownloadReport }, t('Reporting_Labels.Save_report')))))),\n React.createElement(\"div\", { className: \"reports__content\" },\n React.createElement(\"div\", { className: \"reports__title\" },\n React.createElement(\"div\", { className: \"reports__title realtime__title\" }, _.get(currentSite, 'display_name') || _.get(currentSite, 'name')),\n React.createElement(\"div\", { className: \"reports__logo\" })),\n React.createElement(\"div\", { className: \"reports__disclaimer\" },\n isDataCompletionActive && displayDataCompletionMessage && (React.createElement(Disclaimer, { message: t(\"Reporting_Labels.completion.message\") })),\n someChildComponentsHasNoData && (React.createElement(StatusMessage, { message: t('Reporting_Labels.reports.status') }))),\n React.createElement(\"div\", { className: \"reports__charts\" },\n React.createElement(\"div\", { className: \"reports__content-left\" },\n React.createElement(\"div\", { className: \"reports__content_element up-left\" },\n React.createElement(FrequentationChartContainer, { siteId: siteId, siteTypes: currentSite === null || currentSite === void 0 ? void 0 : currentSite.site_types, statKey: '', kind: 'presence', granularity: currentGranularity, t: t })),\n React.createElement(\"div\", { className: \"reports__content_element down-left\" },\n React.createElement(DwellTimeChartContainer, { siteId: siteId, statKey: '', kind: 'dwelltime', granularity: currentGranularity, t: t }))),\n React.createElement(\"div\", { className: \"reports__content-right\" },\n React.createElement(\"div\", { className: \"reports__content_element up-right\" },\n React.createElement(BarsComparisonContainer, { siteId: siteId, unit: t('Reporting_Labels.graphs.pax'), kind: 'presence', statKey: 'mean', granularity: 'daily', title: t('Reporting_Labels.graphs.averageTraffic'), t: t })),\n React.createElement(\"div\", { className: \"reports__content_element down-right\" },\n React.createElement(BarsComparisonContainer, { siteId: siteId, unit: 'minutes', kind: 'dwelltime', statKey: 'mean', granularity: 'daily', title: t('Reporting_Labels.graphs.averageDwellTime'), t: t }))))))),\n reportsCreationSectionLoading && (React.createElement(\"div\", { className: \"reports__loader\" },\n React.createElement(Loader, null)))));\n };\n return ReportsCreationContainer;\n}(Component));\nexport { ReportsCreationContainer };\nReportsCreationContainer.propTypes = {\n isDataCompletionActive: PropTypes.bool,\n displayDataCompletionMessage: PropTypes.bool,\n reportsCreationSectionLoading: PropTypes.bool,\n onDownloadReport: PropTypes.func,\n changeBaseSelectedDay: PropTypes.func,\n onChangeArea: PropTypes.func,\n initReportsCreation: PropTypes.func,\n onResetEntireSite: PropTypes.func,\n siteId: PropTypes.string,\n currentFloor: PropTypes.shape({\n uuid: PropTypes.string.isRequired,\n }),\n currentGranularity: PropTypes.string,\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n baseFrom: PropTypes.string,\n baseTo: PropTypes.string,\n selectedAreas: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n })),\n currentArea: PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n }),\n floors: PropTypes.arrayOf(PropTypes.shape({\n units: PropTypes.shape({\n uuid: PropTypes.string,\n }),\n })),\n currentSite: PropTypes.shape({\n site_types: PropTypes.string,\n uuid: PropTypes.string,\n }),\n t: PropTypes.func,\n downloadingReport: PropTypes.bool,\n dataLoading: PropTypes.bool,\n someChildComponentsHasNoData: PropTypes.bool,\n isFromPopulationForGCActivated: PropTypes.bool,\n changeCurrentPopulation: PropTypes.func,\n currentPopulation: PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n }),\n populations: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string,\n uuid: PropTypes.string,\n })),\n};\nexport var getAreaFloor = function (floors, areaId) {\n return _.find(floors, function (floor) { return !_.chain(floor).get('units.areas').filter({ uuid: areaId }).isEmpty().value(); });\n};\nexport var mapStateToProps = function (state, props) {\n var populations = getterPopulations(state, props);\n var currentPopulationName = getCurrentPopulationName(state, props);\n return {\n baseFrom: getCurrentDayFrom(state, props),\n baseTo: getCurrentDayTo(state, props),\n currentArea: selectCurrentArea(state, props),\n selectedAreas: selectAllSiteAreasWithFloors(state, props),\n floors: getterSiteFloors(state, props),\n currentFloor: selectCurrentFloor(state, props),\n currentConfig: getterSiteConfig(state, props),\n currentSite: getSite(props.siteId)(state),\n currentGranularity: getterNavigationGranularity(state, props),\n downloadingReport: _.get(state.navigation, 'downloadingReport'),\n dataLoading: selectLoadingAllReports(state, props),\n someChildComponentsHasNoData: selectSomeStatusHasNoData(state, props),\n currentPopulation: { name: currentPopulationName },\n populations: populations,\n reportsCreationSectionLoading: getterReportsCreationLoading(state),\n isFromPopulationForGCActivated: isFeatureActivated('population_from_gc')(state),\n displayDataCompletionMessage: selectDisplayDataCompletionMessage(state, props),\n isDataCompletionActive: isFeatureActivated('display_completion')(state),\n };\n};\nexport var mapDispatchToProps = function (dispatch) { return ({\n initReportsCreation: function (history) {\n dispatch(setNavigation({ section: 'reports', currentPopulation: 'All populations' }));\n dispatch(initReportsCreationSection(history));\n },\n changeBaseSelectedDay: function (from, to, granularity) {\n dispatch(setCurrentDay(from, to, granularity));\n dispatch(fetchReportsCreationStats());\n },\n onChangeArea: function (floorId, areaId, history) {\n dispatch(setCurrentFloor2(floorId, history));\n dispatch(selectArea2(areaId, history));\n dispatch(fetchReportsCreationStats());\n },\n onResetEntireSite: function (siteId, floorId, history) {\n dispatch(setCurrentFloor2(floorId, history));\n dispatch(selectEntireSite(siteId, history));\n dispatch(fetchReportsCreationStats());\n },\n onDownloadReport: function (reportPrefix, reportSuffix) {\n dispatch(downloadReport(reportPrefix, reportSuffix));\n },\n changeCurrentPopulation: function (population) {\n dispatch(changePopulation(population));\n dispatch(fetchReportsCreationStats());\n },\n}); };\nexport default compose(withTranslation(['legacy', 'airport', 'railways']), connect(mapStateToProps, mapDispatchToProps), withRouter)(ReportsCreationContainer);\n","export var fetchDestinations = function (siteId) { return ({\n type: 'FETCH_DESTINATIONS',\n siteId: siteId,\n}); };\nexport var fetchDestinationsSuccess = function (siteId, destinations) { return ({\n type: 'FETCH_DESTINATIONS_SUCCESS',\n siteId: siteId,\n destinations: destinations,\n}); };\nexport var fetchDestinationsFailure = function (siteId) { return ({\n type: 'FETCH_DESTINATIONS_FAILURE',\n siteId: siteId,\n}); };\nexport var setCurrentDestination = function (siteId, code) { return ({\n type: 'SET_CURRENT_DESTINATION',\n siteId: siteId,\n code: code,\n}); };\n","import _ from 'lodash';\nimport { createSelector } from 'reselect';\nimport { getCurrentDestination } from '@src/navigation/selectors';\nexport var getterDestinations = function (state, props) { return _.get(state.destinations[props.siteId], 'data', []); };\nexport var getCurrentDestinationFromNavigation = createSelector(getterDestinations, getCurrentDestination, function (destinations, currentDestination) {\n return _.find(destinations, { code: currentDestination }) || _.head(destinations);\n});\n","import { __read } from \"tslib\";\nimport React, { useMemo, useState, useCallback } from 'react';\nimport _ from 'lodash';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { useDestinationPicker } from '@src/reporting/flights_report/destinations/hooks';\nimport '@src/commons/styles/organisms/select-category.scss';\nimport '@src/commons/styles/molecules/destination-selector.scss';\nimport '@src/commons/styles/molecules/search-box.scss';\nexport var DestinationsPicker = function (_a) {\n var className = _a.className, onOpen = _a.onOpen, onSelectDestination = _a.onSelectDestination, open = _a.open, destinations = _a.destinations;\n var t = useTranslation().t;\n var title = useMemo(function () { return t('change_destination'); }, [t]);\n var _b = __read(useState(), 2), searchContent = _b[0], setSearchContent = _b[1];\n var handleSearch = useCallback(function (search) {\n setSearchContent(search);\n }, []);\n var _c = useDestinationPicker(destinations, searchContent), destinationsToDisplay = _c.destinationsToDisplay, getDestinationsFromCountry = _c.getDestinationsFromCountry;\n var openHeaderClass = useMemo(function () { return clsx({ 'destination-selector__header-open': open }, { 'destination-selector__header': !open }); }, [open]);\n var openArrowClass = useMemo(function () { return clsx({ arrow_drop_up: open }, { arrow_drop_down: !open }); }, [open]);\n return (React.createElement(\"div\", { className: className },\n React.createElement(\"div\", { className: openHeaderClass, onClick: onOpen },\n React.createElement(\"div\", { className: \"destination-selector__title\" }, title),\n React.createElement(\"i\", { className: \"material-icons\" }, openArrowClass)),\n open && (React.createElement(\"div\", { className: \"select-category__list\" },\n React.createElement(\"div\", { className: \"select-category__header\" },\n React.createElement(\"div\", { className: \"search-box\" },\n React.createElement(\"i\", { className: \"search-box__search-icon material-icons\" }, \"search\"),\n React.createElement(\"input\", { type: \"text\", className: \"search-box__input search-input\", placeholder: t('search'), autoFocus: true, onChange: function (e) { return handleSearch(e.target.value); }, value: searchContent }))),\n _.map(_.sortBy(_.keys(_.groupBy(destinationsToDisplay, 'country'))), function (country) { return (React.createElement(\"div\", { key: country },\n React.createElement(\"div\", { className: \"select-category__category-container\" },\n React.createElement(\"div\", { className: \"select-category__category\" }, country)),\n _.map(getDestinationsFromCountry(destinationsToDisplay, country), function (destination) { return (React.createElement(\"div\", { onClick: function (e) { return onSelectDestination(e, destination.code); }, key: destination.code, className: \"select-category__item\" },\n React.createElement(\"div\", { className: \"destination-selector__item\" }, destination.name),\n React.createElement(\"div\", { className: \"destination-selector__description\" },\n destination.code,\n \" - \",\n destination.city))); }))); })))));\n};\nDestinationsPicker.propTypes = {\n className: PropTypes.string,\n destinations: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n })),\n open: PropTypes.bool,\n onSelectDestination: PropTypes.func,\n onOpen: PropTypes.func,\n t: PropTypes.func,\n};\nexport default DestinationsPicker;\n","import { useMemo } from 'react';\nimport { includes, toLower, sortBy, prop, filter } from 'ramda';\nexport var useDestinationPicker = function (destinations, searchContent) {\n var destinationsToDisplay = useMemo(function () {\n if (!searchContent) {\n return destinations;\n }\n return filter(function (destination) {\n return (includes(toLower(searchContent), toLower(destination.name)) ||\n includes(toLower(searchContent), toLower(destination.country)) ||\n includes(toLower(searchContent), toLower(destination.city)) ||\n includes(toLower(searchContent), toLower(destination.code)));\n }, destinations);\n }, [destinations, searchContent]);\n var getDestinationsFromCountry = function (destinations, country) {\n return sortBy(prop('name'), filter(function (d) { return d.country === country; }, destinations));\n };\n return {\n destinationsToDisplay: destinationsToDisplay,\n getDestinationsFromCountry: getDestinationsFromCountry,\n };\n};\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { setCurrentDestination } from '@src/reporting/flights_report/destinations/actions';\nimport { getterDestinations, getCurrentDestinationFromNavigation, } from '@src/reporting/flights_report/destinations/selectors';\nimport DestinationsPicker from '@src/reporting/flights_report/destinations/DestinationsPicker';\nimport ClickOutside from '@src/commons/topBar/ClickOutside';\nimport '@src/commons/styles/organisms/destinations-header.scss';\nvar DestinationsPickerContainer = (function (_super) {\n __extends(DestinationsPickerContainer, _super);\n function DestinationsPickerContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.state = { destinationSelectorOpen: false };\n _this.handleOpenSelector = _this.handleOpenSelector.bind(_this);\n _this.handleClose = _this.handleClose.bind(_this);\n _this.handleDestinationSelection = _this.handleDestinationSelection.bind(_this);\n return _this;\n }\n DestinationsPickerContainer.prototype.handleClose = function () {\n this.setState({ destinationSelectorOpen: false });\n };\n DestinationsPickerContainer.prototype.handleOpenSelector = function () {\n this.setState({ destinationSelectorOpen: !this.state.destinationSelectorOpen });\n };\n DestinationsPickerContainer.prototype.handleDestinationSelection = function (e, code) {\n var _a = this.props, siteId = _a.siteId, onSelectDestination = _a.onSelectDestination, onDestinationChange = _a.onDestinationChange;\n onSelectDestination(siteId, code);\n onDestinationChange(code);\n e.stopPropagation();\n e.preventDefault();\n this.setState({ destinationSelectorOpen: false });\n };\n DestinationsPickerContainer.prototype.render = function () {\n var _a = this.props, destinations = _a.destinations, t = _a.t, currentDestination = _a.currentDestination;\n return (React.createElement(\"div\", { className: \"destinations-header\" },\n currentDestination && (React.createElement(\"div\", { className: \"destinations-header__main\" },\n React.createElement(\"div\", { className: \"destinations-header__title\" }, currentDestination.name),\n React.createElement(\"div\", { className: \"destinations-header__subtitle\" },\n currentDestination.code,\n \" - \",\n currentDestination.city,\n \" - \",\n currentDestination.country))),\n React.createElement(\"div\", { className: \"destination-header__selector\" },\n React.createElement(ClickOutside, { onClickOutside: this.handleClose },\n React.createElement(DestinationsPicker, { t: t, className: \"destination-header__selector\", destinations: destinations, onOpen: this.handleOpenSelector, onSelectDestination: this.handleDestinationSelection, open: this.state.destinationSelectorOpen })))));\n };\n return DestinationsPickerContainer;\n}(Component));\nexport { DestinationsPickerContainer };\nDestinationsPickerContainer.propTypes = {\n siteId: PropTypes.string,\n destinations: PropTypes.arrayOf(PropTypes.shape({\n code: PropTypes.string,\n name: PropTypes.string,\n city: PropTypes.string,\n country: PropTypes.string,\n })),\n currentDestination: PropTypes.shape({\n code: PropTypes.string,\n name: PropTypes.string,\n city: PropTypes.string,\n country: PropTypes.string,\n }),\n onSelectDestination: PropTypes.func,\n t: PropTypes.func,\n onDestinationChange: PropTypes.func,\n};\nexport var mapStateToProps = function (state, props) { return ({\n destinations: getterDestinations(state, props),\n currentDestination: getCurrentDestinationFromNavigation(state, props),\n}); };\nvar mapDispatchToProps = function (dispatch) { return ({\n onSelectDestination: function (siteId, code) {\n dispatch(setCurrentDestination(siteId, code));\n },\n}); };\nexport default connect(mapStateToProps, mapDispatchToProps)(DestinationsPickerContainer);\n","export var macroAreas = [\n { en: 'Airside', fr: 'Zone reservée' },\n { en: 'Check-in', fr: 'Enregistrement' },\n { en: 'Customs', fr: 'PAF' },\n { en: 'Food and Retail', fr: 'Commerces' },\n { en: 'Landside', fr: 'Zone publique' },\n { en: 'Security', fr: 'PIF' },\n];\nexport var colorCodes = [\n '#0799EC',\n '#E8505B',\n '#65AD6C',\n '#E6B72F',\n '#2A528F',\n '#E177BA',\n '#42C697',\n '#F4B571',\n];\nexport var colorsNames = ['blue', 'red', 'green', 'yellow', 'dark-blue', 'pink', 'light-green', 'orange'];\nexport var colorNamesByCode = {\n '#0799EC': 'blue',\n '#E8505B': 'red',\n '#65AD6C': 'green',\n '#E6B72F': 'yellow',\n '#2A528F': 'dark-blue',\n '#E177BA': 'pink',\n '#42C697': 'light-green',\n '#F4B571': 'orange',\n};\n","import { __assign } from \"tslib\";\nimport { createSelector } from 'reselect';\nimport _ from 'lodash';\nimport { getCurrentDayFrom, getCurrentDayTo, getCurrentDestination } from '@src/navigation/selectors';\nimport { macroAreas } from '@src/reporting/flights_report/constants';\nexport var getterDwelltimePerDestinationSite = function (state, props) {\n return state.dwelltimesPerDestinations[_.get(props, 'siteId')];\n};\nexport var getterFlightsCountPerDestinationSite = function (state, props) {\n return state.flightsCountPerDestinations[_.get(props, 'siteId')];\n};\nexport var selectFlightsCountPerDestination = createSelector(getterFlightsCountPerDestinationSite, getCurrentDayFrom, getCurrentDayTo, getCurrentDestination, function (stats, dayFrom, dayTo, destination) {\n return _.chain(stats).get(destination).get(dayFrom + \"-\" + dayTo, {}).value();\n});\nexport var selectDwelltimePerDestination = createSelector(getterDwelltimePerDestinationSite, getCurrentDayFrom, getCurrentDayTo, getCurrentDestination, function (stats, dayFrom, dayTo, destination) {\n return _.chain(stats).get(destination).get(dayFrom + \"-\" + dayTo, {}).value();\n});\nexport var selectDwelltimePerDestinationData = createSelector(selectDwelltimePerDestination, function (stats) {\n return _.map(macroAreas, function (macroArea) {\n var stat = _.find(_.get(stats, 'data'), { zone_name: macroArea.en });\n return stat\n ? __assign(__assign({}, stat), { fr_zone_name: macroArea.fr }) : {\n zone_name: macroArea.en,\n fr_zone_name: macroArea.fr,\n value: null,\n };\n });\n});\nexport var selectDwelltimePerDestinationLoading = createSelector(selectDwelltimePerDestination, function (stats) {\n return _.get(stats, 'loading', true);\n});\nexport var selectFlightsCountPerDestinationData = createSelector(selectFlightsCountPerDestination, function (stats) {\n return _.chain(stats)\n .get('data', [])\n .map(function (d) { return ({\n date: d.date,\n values: { 'var(--primarycolor)': d.value === 0 ? 0.1 : d.value },\n units: d.value > 1 ? ['flights'] : ['flight'],\n }); })\n .value();\n});\nexport var selectTotalDwelltimePerDestination = createSelector(selectDwelltimePerDestination, function (stats) {\n return _.round(_.sumBy(_.get(stats, 'data', []), 'value') / 60);\n});\nexport var selectFlightsCountPerDestinationLoading = createSelector(selectFlightsCountPerDestination, function (stats) { return _.get(stats, 'loading', true); });\nexport var selectTotalFlightsCountPerDestination = createSelector(selectFlightsCountPerDestination, function (stats) { return _.sumBy(_.get(stats, 'data', []), 'value'); });\n","import React from 'react';\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport AnimatedGradientLoader from '@src/commons/Loader/AnimatedGradientLoader';\nimport '@src/commons/styles/molecules/horizontal-barchart.scss';\nvar HorizontalChartBar = function (_a) {\n var title = _a.title, value = _a.value, max = _a.max, text = _a.text, loading = _a.loading, notFull = _a.notFull, color = _a.color;\n return (React.createElement(\"div\", { className: \"horizontal-chartbar\" },\n React.createElement(\"div\", { className: \"horizontal-chartbar__title\" }, title),\n loading && React.createElement(AnimatedGradientLoader, null),\n !loading && (React.createElement(\"div\", { className: notFull\n ? 'horizontal-chartbar__content horizontal-chartbar__content--not-full'\n : 'horizontal-chartbar__content' }, !_.isNull(value) ? (React.createElement(\"div\", { className: \"horizontal-chartbar__progress__content\", style: { width: (max === 0 ? 0 : value / max) * 100 + \"%\" } },\n React.createElement(\"div\", { className: \"horizontal-chartbar__progress__color \" + (color ? \"horizontal-chartbar__progress__color--\" + color : '') }),\n React.createElement(\"div\", { className: \"horizontal-chartbar__progress__text\" }, text))) : (React.createElement(\"div\", { className: \"horizontal-chartbar__progress__text\" }, \"No data available for this area\"))))));\n};\nHorizontalChartBar.propTypes = {\n title: PropTypes.string,\n value: PropTypes.number,\n max: PropTypes.number,\n text: PropTypes.string,\n loading: PropTypes.bool,\n notFull: PropTypes.bool,\n color: PropTypes.string,\n};\nexport default HorizontalChartBar;\n","import React from 'react';\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport HorizontalChartBar from '@src/reporting/flights_report/HorizontalChartBar';\nimport '@src/commons/styles/organisms/dwelltime-macro-areas-chart.scss';\nvar maxValue = function (data) { return _.get(_.maxBy(data, 'value'), 'value'); };\nvar DwelltimePerDestinationChart = function (_a) {\n var data = _a.data, destination = _a.destination, from = _a.from, to = _a.to, t = _a.t, loading = _a.loading, locale = _a.locale;\n return (React.createElement(\"div\", { className: \"dmac\" },\n React.createElement(\"div\", { className: \"dmac__title title\" }, t('Per_Destinations.Dwelltime.title')),\n React.createElement(\"div\", { className: \"dmac__subtitle\" },\n t('Per_Destinations.Dwelltime.subtitle', { destination: destination }),\n \" \",\n t('Per_Destinations.Dwelltime.from'),\n ' ',\n from,\n \" \",\n t('Per_Destinations.Dwelltime.to'),\n \" \",\n to),\n React.createElement(\"div\", { className: \"dmac__chart\" }, _.map(data, function (d, idx) { return (React.createElement(HorizontalChartBar, { key: idx, title: locale === 'fr' ? d.fr_zone_name : d.zone_name, value: d.value, max: maxValue(data), notFull: maxValue(data) < 40 * 60, text: _.round(d.value / 60) > 1 ? _.round(d.value / 60) + \" mins\" : _.round(d.value / 60) + \" min\", loading: loading })); }))));\n};\nDwelltimePerDestinationChart.propTypes = {\n from: PropTypes.string,\n to: PropTypes.string,\n destination: PropTypes.string,\n t: PropTypes.func,\n data: PropTypes.arrayOf(PropTypes.shape({\n zone_name: PropTypes.string,\n value: PropTypes.number,\n })),\n loading: PropTypes.bool,\n locale: PropTypes.string,\n};\nexport default DwelltimePerDestinationChart;\n","var _a;\nimport moment from 'moment';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport '@src/commons/styles/molecules/weekly-chart-tooltip.scss';\nvar WeeklyBarChartTooltip = function (_a) {\n var date = _a.date, labels = _a.labels, units = _a.units, values = _a.values, t = _a.t;\n return (React.createElement(\"div\", { className: \"weekly-chart-tooltip\" },\n React.createElement(\"div\", { className: \"weekly-chart-tooltip__title\" }, moment(date, 'YYYY-MM-DD').format('dddd, LL')),\n labels.length ? (_.map(labels, function (d, idx) { return (React.createElement(\"div\", { key: d, className: \"weekly-chart-tooltip__content\" },\n React.createElement(\"div\", { className: \"weekly-chart-tooltip__label\", style: { color: _.keys(values)[idx] } }, d),\n React.createElement(\"div\", { className: \"weekly-chart-tooltip__value\" },\n ' ',\n _.isNull(_.values(values)[idx])\n ? t('global.no_data')\n : _.round(_.values(values)[idx]) + \" \" + units[idx]))); })) : (React.createElement(\"div\", { className: \"weekly-chart-tooltip__single-value\" }, _.isNull(_.first(_.values(values)))\n ? t('global.no_data')\n : _.round(_.first(_.values(values))) + \" \" + _.first(units)))));\n};\nWeeklyBarChartTooltip.propTypes = {\n date: PropTypes.string,\n labels: PropTypes.arrayOf(PropTypes.string),\n units: PropTypes.arrayOf(PropTypes.string),\n values: PropTypes.shape((_a = {},\n _a[PropTypes.string] = PropTypes.number,\n _a)),\n t: PropTypes.func,\n};\nexport default WeeklyBarChartTooltip;\n","var _a;\nimport { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport { BarChart, Bar, CartesianGrid, XAxis, YAxis, ResponsiveContainer, Tooltip } from 'recharts';\nimport AnimatedGradientLoader from '@src/commons/Loader/AnimatedGradientLoader';\nimport WeeklyBarChartTooltip from '@src/commons/WeeklyBarChart/WeeklyBarChartTooltip';\nimport '@src/commons/styles/organisms/flights-count-per-destination-chart.scss';\nimport '@src/commons/styles/molecules/chart-card.scss';\nvar RoundedRectangle = function (props) {\n var fill = props.fill, x = props.x, y = props.y, width = props.width, height = props.height, selectedIndex = props.selectedIndex, index = props.index;\n return (React.createElement(\"rect\", { x: x, y: y, width: width, height: height, rx: \"5\", ry: \"5\", fill: fill, opacity: selectedIndex === index || selectedIndex === -1 ? 1 : 0.5, stroke: \"black\", strokeOpacity: \"0.2\", strokeWidth: \"2\" }));\n};\nRoundedRectangle.propTypes = {\n fill: PropTypes.string,\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n index: PropTypes.number,\n selectedIndex: PropTypes.number,\n};\nvar WeeklyBarChart = (function (_super) {\n __extends(WeeklyBarChart, _super);\n function WeeklyBarChart(props) {\n var _this = _super.call(this, props) || this;\n _this.state = { activeIndex: -1 };\n return _this;\n }\n WeeklyBarChart.prototype.render = function () {\n var _this = this;\n var _a = this.props, daysDistrib = _a.daysDistrib, title = _a.title, subtitle = _a.subtitle, loading = _a.loading, defaultTicks = _a.defaultTicks, t = _a.t;\n return (React.createElement(\"div\", { className: \"fcpdc\" },\n React.createElement(\"div\", { className: \"chart-card__title title\" }, title),\n React.createElement(\"div\", { className: \"fcpdc__subtitle\" }, subtitle),\n React.createElement(\"div\", { className: \"fcpdc__chart\" },\n loading && React.createElement(AnimatedGradientLoader, null),\n !loading && (React.createElement(ResponsiveContainer, { width: \"100%\", height: \"90%\" },\n React.createElement(BarChart, { data: daysDistrib, margin: { top: -1, right: 0, left: 0, bottom: -5 }, onMouseLeave: function () { return _this.setState({ activeIndex: -1 }); } },\n React.createElement(CartesianGrid, { vertical: false }),\n React.createElement(XAxis, { dataKey: \"date\", axisLine: false, tickLine: false, tick: { fontSize: '.8rem', fill: '#999' }, interval: \"preserveStart\", tickFormatter: function (d) { return moment(d).format('ddd DD'); }, padding: { left: 35 }, tickSize: 2, dy: 10 }),\n React.createElement(YAxis, { axisLine: false, tick: { fontSize: '.8rem', fill: '#999' }, tickSize: 0, tickFormatter: function (data) { return \"\" + data; }, ticks: defaultTicks\n ? null\n : _.range(1, _.chain(daysDistrib)\n .flatMap(function (d) { return d.values; })\n .map(function (d) { return _.max(_.values(d)); })\n .max()\n .value() + 1), tickCount: defaultTicks ? 4 : null, type: \"number\", orientation: \"left\", mirror: true, padding: { top: 20 }, domain: [0, defaultTicks ? 'auto' : 'dataMax'], dy: -10, dx: 10 }),\n React.createElement(Tooltip, { cursor: false, content: function (_a) {\n var active = _a.active, payload = _a.payload, label = _a.label;\n var data = _.get(_.first(payload), 'payload');\n return (React.createElement(WeeklyBarChartTooltip, { labels: _.get(data, 'labels', []), date: _.get(data, 'date'), units: _.values(_.get(data, 'units')), values: _.get(data, 'values', {}), t: t }));\n } }),\n _.map(_.uniq(_.flatMap(daysDistrib, function (d) { return _.keys(d['values']); })), function (color, idx) { return (React.createElement(Bar, { key: idx, dataKey: \"values.\" + color, fill: color, maxBarSize: 30, onMouseOver: function (data, index) { return _this.setState({ activeIndex: index }); }, shape: React.createElement(RoundedRectangle, { selectedIndex: _this.state.activeIndex }) })); })))))));\n };\n return WeeklyBarChart;\n}(Component));\nexport { WeeklyBarChart };\nWeeklyBarChart.propTypes = {\n title: PropTypes.string,\n subtitle: PropTypes.string,\n daysDistrib: PropTypes.arrayOf(PropTypes.shape({\n date: PropTypes.string,\n labels: PropTypes.arrayOf(PropTypes.string),\n units: PropTypes.arrayOf(PropTypes.string),\n values: PropTypes.shape((_a = {},\n _a[PropTypes.string] = PropTypes.number,\n _a)),\n })),\n loading: PropTypes.bool,\n defaultTicks: PropTypes.bool,\n t: PropTypes.func,\n};\nexport default WeeklyBarChart;\n","export default __webpack_public_path__ + \"public/flights-logo.svg\";","import { __assign, __extends } from \"tslib\";\nimport React, { Component, Fragment } from 'react';\nimport m from 'moment';\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { getCurrentDayFrom, getCurrentDayTo, getCurrentSiteId2, getCurrentDestination, } from '@src/navigation/selectors';\nimport { selectDwelltimePerDestinationData, selectDwelltimePerDestinationLoading, selectTotalDwelltimePerDestination, selectFlightsCountPerDestinationData, selectTotalFlightsCountPerDestination, selectFlightsCountPerDestinationLoading, } from './selectors';\nimport DwelltimePerDestinationChart from './DwelltimePerDestinationChart';\nimport WeeklyBarChart from '@src/commons/WeeklyBarChart';\nimport { fetchFlightsReportStats } from '@src/reporting/flights_report/actions';\nimport FigureIconCard from '@src/commons/FigureIconCard';\nimport flightsLogo from '../assets/flights-logo.svg';\nimport dwelltimeLogo from '../assets/dwelltime-logo.svg';\nimport '@src/commons/styles/templates/flights-report.scss';\nimport { getCurrentDestinationFromNavigation } from '../destinations/selectors';\nimport { getterCurrentSiteLanguage } from '@src/live/realtime/selectors';\nimport { changeSubsection } from '@src/navigation/actions';\nvar PerDestinationContainer = (function (_super) {\n __extends(PerDestinationContainer, _super);\n function PerDestinationContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PerDestinationContainer.prototype.componentDidMount = function () {\n var initPerDestination = this.props.initPerDestination;\n initPerDestination();\n };\n PerDestinationContainer.prototype.render = function () {\n var _a = this.props, dwelltimeStats = _a.dwelltimeStats, from = _a.from, to = _a.to, destinationName = _a.destinationName, t = _a.t, isLoading = _a.isLoading, totalDwelltime = _a.totalDwelltime, flightsCountStats = _a.flightsCountStats, totalFlightsCount = _a.totalFlightsCount, isFlightsCountLoading = _a.isFlightsCountLoading, locale = _a.locale;\n return (React.createElement(Fragment, null,\n React.createElement(\"div\", { className: \"flights-report__graphs\" },\n React.createElement(\"div\", { className: \"flights-report__card\" },\n React.createElement(FigureIconCard, { value: totalDwelltime + \" min\" + (totalDwelltime > 1 ? 's' : ''), loading: isLoading, label: t('Per_Destinations.Dwelltime.totalDwelltime'), icon: dwelltimeLogo })),\n React.createElement(\"div\", { className: \"flights-report__graph\" },\n React.createElement(DwelltimePerDestinationChart, { loading: isLoading, t: t, data: dwelltimeStats, from: m(from, 'YYYY-MM-DD').format('L'), to: m(to, 'YYYY-MM-DD').format('L'), destination: destinationName, locale: locale }))),\n React.createElement(\"div\", { className: \"flights-report__graphs\" },\n React.createElement(\"div\", { className: \"flights-report__card\" },\n React.createElement(FigureIconCard, { value: \"\" + totalFlightsCount, icon: flightsLogo, label: t('Per_Destinations.FlightsCount.totalFlights'), loading: isFlightsCountLoading })),\n React.createElement(\"div\", { className: \"flights-report__graph\" },\n React.createElement(WeeklyBarChart, { title: \"\" + t('Per_Destinations.FlightsCount.title'), subtitle: t('Per_Destinations.FlightsCount.subtitle', { destination: destinationName }) + \" \" + t('Per_Destinations.Dwelltime.from') + \" \" + m(from, 'YYYY-MM-DD').format('L') + \" \" + t('Per_Destinations.Dwelltime.to') + \" \" + m(to, 'YYYY-MM-DD').format('L'), daysDistrib: flightsCountStats, loading: isFlightsCountLoading, t: t })))));\n };\n return PerDestinationContainer;\n}(Component));\nexport { PerDestinationContainer };\nPerDestinationContainer.propTypes = {\n from: PropTypes.string,\n to: PropTypes.string,\n t: PropTypes.func,\n destinationName: PropTypes.string,\n initPerDestination: PropTypes.func,\n dwelltimeStats: PropTypes.arrayOf(PropTypes.shape({\n zone_name: PropTypes.string,\n value: PropTypes.number,\n })),\n isLoading: PropTypes.bool,\n totalDwelltime: PropTypes.number,\n flightsCountStats: PropTypes.arrayOf(PropTypes.shape({\n date: PropTypes.string,\n value: PropTypes.number,\n })),\n totalFlightsCount: PropTypes.number,\n isFlightsCountLoading: PropTypes.bool,\n locale: PropTypes.string,\n};\nvar mapStateToProps = function (state, props) {\n var siteId = getCurrentSiteId2(state);\n var destination = getCurrentDestinationFromNavigation(state, { siteId: siteId });\n return {\n from: getCurrentDayFrom(state, props),\n to: getCurrentDayTo(state, props),\n locale: getterCurrentSiteLanguage(state, props),\n airportCode: getCurrentDestination(state, { siteId: siteId }),\n destinationName: _.get(destination, 'city'),\n dwelltimeStats: selectDwelltimePerDestinationData(state, __assign(__assign({}, props), { siteId: siteId })),\n isLoading: selectDwelltimePerDestinationLoading(state, __assign(__assign({}, props), { siteId: siteId })),\n totalDwelltime: selectTotalDwelltimePerDestination(state, __assign(__assign({}, props), { siteId: siteId })),\n flightsCountStats: selectFlightsCountPerDestinationData(state, __assign(__assign({}, props), { siteId: siteId })),\n totalFlightsCount: selectTotalFlightsCountPerDestination(state, __assign(__assign({}, props), { siteId: siteId })),\n isFlightsCountLoading: selectFlightsCountPerDestinationLoading(state, __assign(__assign({}, props), { siteId: siteId })),\n };\n};\nexport var mapDispatchToProps = function (dispatch) { return ({\n initPerDestination: function () {\n dispatch(changeSubsection('summary'));\n dispatch(fetchFlightsReportStats());\n },\n}); };\nexport default connect(mapStateToProps, mapDispatchToProps)(PerDestinationContainer);\n","var _a;\nimport { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport { macroAreas } from '@src/reporting/flights_report/constants';\nimport HorizontalChartBar from '@src/reporting/flights_report/HorizontalChartBar';\nimport AnimatedGradientLoader from '@src/commons/Loader/AnimatedGradientLoader';\nimport '@src/commons/styles/organisms/dwelltime-macro-areas-airline.scss';\nvar maxValue = function (data) { return _.get(_.maxBy(data, 'value'), 'value'); };\nvar DwelltimePerAirlineMacroAreas = (function (_super) {\n __extends(DwelltimePerAirlineMacroAreas, _super);\n function DwelltimePerAirlineMacroAreas(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n currentMacroArea: _.get(_.first(macroAreas), 'en'),\n };\n _this.handleMacroAreaSelection = _this.handleMacroAreaSelection.bind(_this);\n return _this;\n }\n DwelltimePerAirlineMacroAreas.prototype.handleMacroAreaSelection = function (area) {\n this.setState({ currentMacroArea: area });\n };\n DwelltimePerAirlineMacroAreas.prototype.render = function () {\n var _this = this;\n var _a = this.props, data = _a.data, loading = _a.loading, destination = _a.destination, from = _a.from, to = _a.to, t = _a.t, colors = _a.colors, locale = _a.locale;\n var currentMacroArea = this.state.currentMacroArea;\n var macroAreaStats = _.sortBy(_.filter(data, { zone_name: currentMacroArea }), 'airline_name');\n return (React.createElement(\"div\", { className: \"dmaa\" },\n React.createElement(\"div\", { className: \"dmaa__titles\" },\n React.createElement(\"div\", { className: \"dmaa__title title\" }, t('Per_Destinations.Dwelltime.title')),\n React.createElement(\"div\", { className: \"dmaa__subtitle\" },\n t('Per_Destinations.Dwelltime.subtitle', { destination: destination }),\n \" \",\n t('Per_Destinations.Dwelltime.from'),\n ' ',\n from,\n \" \",\n t('Per_Destinations.Dwelltime.to'),\n \" \",\n to)),\n React.createElement(\"div\", { className: \"dmaa__menu\" }, _.map(macroAreas, function (a) { return (React.createElement(\"div\", { className: \"dmaa__menu-item \" + (a.en === _this.state.currentMacroArea ? 'dmaa__menu-item--active' : ''), key: a.en, onClick: function (e) { return _this.handleMacroAreaSelection(a.en); } }, locale === 'fr' ? a.fr : a.en)); })),\n loading && (React.createElement(\"div\", { className: \"dmaa__loading\" },\n React.createElement(AnimatedGradientLoader, null))),\n !loading && _.isEmpty(macroAreaStats) && (React.createElement(\"div\", { className: \"dmaa__no-data\" }, t('Per_Destinations.Dwelltime.no_data'))),\n !loading && !_.isEmpty(macroAreaStats) && (React.createElement(\"div\", { className: \"dmaa__chart\" }, _.map(macroAreaStats, function (d, idx) { return (React.createElement(HorizontalChartBar, { key: idx, title: d.airline_name, value: d.value, max: maxValue(data), notFull: maxValue(data) < 10 * 60, text: _.round(d.value / 60) > 1 ? _.round(d.value / 60) + \" mins\" : _.round(d.value / 60) + \" min\", color: colors[d.airline_name], loading: loading })); })))));\n };\n return DwelltimePerAirlineMacroAreas;\n}(Component));\nexport { DwelltimePerAirlineMacroAreas };\nDwelltimePerAirlineMacroAreas.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n zone_name: PropTypes.string,\n value: PropTypes.number,\n airline_name: PropTypes.string,\n })),\n loading: PropTypes.bool,\n destination: PropTypes.string,\n t: PropTypes.func,\n from: PropTypes.string,\n to: PropTypes.string,\n colors: PropTypes.shape((_a = {},\n _a[PropTypes.string] = PropTypes.string,\n _a)),\n locale: PropTypes.string,\n};\nexport default DwelltimePerAirlineMacroAreas;\n","export var initFlightsReportSection = function (history) { return ({\n type: 'INIT_FLIGHTS_REPORT_SECTION',\n history: history,\n}); };\nexport var flightsReportSectionLoaded = function () { return ({\n type: 'FLIGHTS_REPORT_SECTION_LOADED',\n}); };\nexport var fetchFlightsReportStats = function () { return ({\n type: 'FETCH_FLIGHTS_REPORT_STATS',\n}); };\n","import _ from 'lodash';\nexport var getterFlightsReportLoading = function (state) { return _.get(state.flightsReport, 'loading', true); };\n","import { __assign, __values } from \"tslib\";\nimport _ from 'lodash';\nimport { createSelector } from 'reselect';\nimport { getCurrentDayFrom, getCurrentDayTo, getCurrentDestination } from '@src/navigation/selectors';\nimport { colorCodes, colorNamesByCode, colorsNames } from '@src/reporting/flights_report/constants';\nexport var getterDwelltimePerAirlineSite = function (state, props) {\n return state.dwelltimesPerAirline[_.get(props, 'siteId')];\n};\nexport var getterFlightsCountPerAirlineSite = function (state, props) {\n return state.flightsCountPerAirlines[_.get(props, 'siteId')];\n};\nexport var selectFlightsCountPerAirline = createSelector(getterFlightsCountPerAirlineSite, getCurrentDayFrom, getCurrentDayTo, getCurrentDestination, function (stats, dayFrom, dayTo, destination) {\n return _.chain(stats).get(destination).get(dayFrom + \"-\" + dayTo, {}).value();\n});\nexport var selectDwelltimePerAirline = createSelector(getterDwelltimePerAirlineSite, getCurrentDayFrom, getCurrentDayTo, getCurrentDestination, function (stats, dayFrom, dayTo, destination) {\n return _.chain(stats).get(destination).get(dayFrom + \"-\" + dayTo, {}).value();\n});\nexport var selectDwelltimePerAirlineData = createSelector(selectDwelltimePerAirline, function (stats) {\n return _.get(stats, 'data', null);\n});\nexport var selectDwelltimePerAirlineDataLoading = createSelector(selectDwelltimePerAirline, function (stats) {\n return _.get(stats, 'loading', true);\n});\nexport var selectFlightsCountPerAirlineLoading = createSelector(selectFlightsCountPerAirline, function (stats) {\n return _.get(stats, 'loading', true);\n});\nexport var selectFlightsCountPerAirlineData = createSelector(selectFlightsCountPerAirline, function (stats) {\n var e_1, _a;\n var sortedColors = _.sortBy(_.get(stats, 'data', []), ['name']).map(function (v, idx) { return (__assign(__assign({}, v), { name: colorCodes[idx % colorCodes.length], airline: _.get(v, 'name', '') })); });\n var res = {};\n var _loop_1 = function (l) {\n res = _.reduce(l.dates, function (sum, d) {\n var _a, _b;\n return (__assign(__assign({}, sum), (_a = {}, _a[d.date] = __assign(__assign({}, sum[d.date]), (_b = {}, _b[l.name] = d.value === 0 ? 0.1 : d.value, _b)), _a)));\n }, res);\n };\n try {\n for (var sortedColors_1 = __values(sortedColors), sortedColors_1_1 = sortedColors_1.next(); !sortedColors_1_1.done; sortedColors_1_1 = sortedColors_1.next()) {\n var l = sortedColors_1_1.value;\n _loop_1(l);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (sortedColors_1_1 && !sortedColors_1_1.done && (_a = sortedColors_1.return)) _a.call(sortedColors_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var formatedResult = _.map(res, function (v, date) { return ({\n date: date,\n values: v,\n labels: _.map(sortedColors, 'airline'),\n units: _.map(v, function (val) { return (val > 1 ? 'flights' : 'flight'); }),\n }); });\n return formatedResult;\n});\nexport var selectFlightsCountAllAirlines = createSelector(selectFlightsCountPerAirline, function (stats) {\n return _.map(_.sortBy(stats.data, ['name']), function (l, idx) { return ({\n color: colorsNames[idx % colorsNames.length],\n name: l.name,\n value: _.sumBy(l.dates, 'value'),\n }); });\n});\nexport var selectTotalFlightsCountAllAirlines = createSelector(selectFlightsCountPerAirline, function (stats) {\n return _.sumBy(_.flatMap(stats.data, function (airline) { return airline.dates; }), 'value');\n});\nexport var selectCompanyColors = createSelector(selectFlightsCountPerAirlineData, function (data) {\n if (_.isEmpty(data)) {\n return {};\n }\n var airlines = _.uniq(_.flatMap(data, function (d) { return d.labels; }));\n var colors = _.uniq(_.flatMap(data, function (d) { return _.keys(d.values); }));\n var airlinesColors = {};\n _.each(airlines, function (d, idx) {\n airlinesColors[d] = colorNamesByCode[colors[idx]];\n });\n return airlinesColors;\n});\n","import React from 'react';\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport '@src/commons/styles/molecules/minihorizontal-barchart.scss';\nvar MiniHorizontalChartBar = function (_a) {\n var title = _a.title, value = _a.value, max = _a.max, text = _a.text, color = _a.color;\n return (React.createElement(\"div\", { className: \"minihorizontal-chartbar\" }, !_.isNull(value) ? (React.createElement(\"div\", { className: 'minihorizontal-chartbar__content' },\n React.createElement(\"div\", { className: \"minihorizontal-chartbar__progress\", style: { width: \"100%\" } },\n React.createElement(\"div\", { className: \"minihorizontal-chartbar__progress__title\", style: { width: value / max < (title.length * 2) / 100 ? 'auto' : (value / max) * 100 + \"%\" } }, title),\n React.createElement(\"div\", { className: \"minihorizontal-chartbar__progress__text\" }, text)),\n React.createElement(\"div\", { className: \"minihorizontal-chartbar__bg \" + (color ? \"minihorizontal-chartbar__bg--\" + color : ''), style: { width: (value / max) * 100 + \"%\" } }))) : (React.createElement(\"div\", { className: \"minihorizontal-chartbar__progress__text\" }, \"No data available for this area\"))));\n};\nMiniHorizontalChartBar.propTypes = {\n title: PropTypes.string,\n value: PropTypes.number,\n max: PropTypes.number,\n text: PropTypes.number,\n color: PropTypes.string,\n};\nexport default MiniHorizontalChartBar;\n","import React, { Fragment } from 'react';\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport MiniHorizontalChartBar from '@src/reporting/flights_report/per_airline/MiniHorizontalChartBar';\nimport flightsLogo from '../assets/flights-logo.svg';\nimport AnimatedGradientLoader from '@src/commons/Loader/AnimatedGradientLoader';\nimport '@src/commons/styles/organisms/flights-count-per-airline.scss';\nvar maxValue = function (data) { return _.get(_.maxBy(data, 'value'), 'value'); };\nvar TotalFlightsCountPerAirlineCard = function (_a) {\n var distribution = _a.distribution, total = _a.total, loading = _a.loading, t = _a.t;\n return (React.createElement(\"div\", { className: \"flightcount-perairline\" },\n loading && React.createElement(AnimatedGradientLoader, null),\n !loading && (React.createElement(Fragment, null,\n React.createElement(\"div\", { className: \"flightcount-perairline__total\" },\n React.createElement(\"img\", { className: \"flightcount-perairline__title-logo\", src: flightsLogo }),\n React.createElement(\"div\", { className: \"flightcount-perairline__total-content\" },\n React.createElement(\"div\", { className: \"flightcount-perairline__total-title\" }, t('Per_Destinations.FlightsCount.totalFlights')),\n React.createElement(\"div\", { className: \"flightcount-perairline__total-value\" }, total))),\n React.createElement(\"div\", { className: \"flightcount-perairline__distrib\" }, _.map(distribution, function (d, idx) { return (React.createElement(MiniHorizontalChartBar, { key: idx, title: d.name, value: d.value, max: maxValue(distribution), text: d.value, color: d.color })); }))))));\n};\nTotalFlightsCountPerAirlineCard.propTypes = {\n total: PropTypes.number,\n distribution: PropTypes.arrayOf(PropTypes.shape({\n color: PropTypes.string,\n name: PropTypes.string,\n value: PropTypes.number,\n })),\n loading: PropTypes.bool,\n t: PropTypes.func,\n};\nexport default TotalFlightsCountPerAirlineCard;\n","var _a;\nimport { __extends } from \"tslib\";\nimport React, { Component, Fragment } from 'react';\nimport m from 'moment';\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { changeSubsection } from '@src/navigation/actions';\nimport { fetchFlightsReportStats } from '@src/reporting/flights_report/actions';\nimport { getCurrentDestinationFromNavigation } from '@src/reporting/flights_report/destinations/selectors';\nimport { getCurrentDayFrom, getCurrentDayTo, getCurrentDestination } from '@src/navigation/selectors';\nimport { selectFlightsCountPerAirlineLoading, selectTotalFlightsCountAllAirlines, selectFlightsCountPerAirlineData, selectDwelltimePerAirlineData, selectDwelltimePerAirlineDataLoading, selectFlightsCountAllAirlines, selectCompanyColors, } from '@src/reporting/flights_report/per_airline/selectors';\nimport { getterCurrentSiteLanguage } from '@src/live/realtime/selectors';\nimport DwelltimePerAirlineMacroAreas from '@src/reporting/flights_report/per_airline/DwelltimePerAirlineMacroAreas';\nimport WeeklyBarChart from '@src/commons/WeeklyBarChart';\nimport TotalFlightsCountPerAirlineCard from '@src/reporting/flights_report/per_airline/TotalFlightsCountPerAirlineCard';\nimport '@src/commons/styles/templates/flights-report.scss';\nimport '@src/commons/styles/templates/per-airline.scss';\nvar PerAirlineContainer = (function (_super) {\n __extends(PerAirlineContainer, _super);\n function PerAirlineContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PerAirlineContainer.prototype.componentDidMount = function () {\n var initPerAirline = this.props.initPerAirline;\n initPerAirline();\n };\n PerAirlineContainer.prototype.render = function () {\n var _a = this.props, companyColors = _a.companyColors, flightsCountPerAirline = _a.flightsCountPerAirline, flightsCountAllAirlines = _a.flightsCountAllAirlines, totalFlightsCountAllAirlines = _a.totalFlightsCountAllAirlines, dwelltimeStats = _a.dwelltimeStats, dwelltimeStatsLoading = _a.dwelltimeStatsLoading, t = _a.t, from = _a.from, to = _a.to, isFlightsCountLoading = _a.isFlightsCountLoading, destinationName = _a.destinationName, locale = _a.locale;\n return (React.createElement(Fragment, null,\n React.createElement(\"div\", { className: \"per-airline__graphs\" },\n React.createElement(\"div\", { className: \"per-airline__graph--full-line\" },\n React.createElement(DwelltimePerAirlineMacroAreas, { data: dwelltimeStats, loading: dwelltimeStatsLoading || isFlightsCountLoading, destination: destinationName, from: from, to: to, t: t, colors: companyColors, locale: locale }))),\n React.createElement(\"div\", { className: \"per-airline__graphs\" },\n React.createElement(\"div\", { className: \"per-airline__graph--small\" },\n React.createElement(TotalFlightsCountPerAirlineCard, { t: t, total: totalFlightsCountAllAirlines, loading: isFlightsCountLoading, distribution: flightsCountAllAirlines })),\n React.createElement(\"div\", { className: \"per-airline__graph--large\" },\n React.createElement(WeeklyBarChart, { daysDistrib: flightsCountPerAirline, title: \"\" + t('Per_Destinations.FlightsCount.title'), subtitle: t('Per_Destinations.FlightsCount.subtitle', { destination: destinationName }) + \" \" + t('Per_Destinations.Dwelltime.from') + \" \" + m(from, 'YYYY-MM-DD').format('L') + \" \" + t('Per_Destinations.Dwelltime.to') + \" \" + m(to, 'YYYY-MM-DD').format('L'), loading: isFlightsCountLoading, t: t })))));\n };\n return PerAirlineContainer;\n}(Component));\nexport { PerAirlineContainer };\nPerAirlineContainer.propTypes = {\n t: PropTypes.func,\n from: PropTypes.string,\n to: PropTypes.string,\n isFlightsCountLoading: PropTypes.bool,\n dwelltimeStatsLoading: PropTypes.bool,\n dwelltimeStats: PropTypes.arrayOf(PropTypes.shape({\n zone_name: PropTypes.string,\n value: PropTypes.number,\n airline_name: PropTypes.string,\n })),\n destinationName: PropTypes.string,\n initPerAirline: PropTypes.func,\n flightsCountPerAirline: PropTypes.arrayOf(PropTypes.shape({\n date: PropTypes.string,\n values: PropTypes.shape({}),\n })),\n flightsCountAllAirlines: PropTypes.arrayOf(PropTypes.shape({\n color: PropTypes.string,\n name: PropTypes.string,\n value: PropTypes.number,\n })),\n totalFlightsCountAllAirlines: PropTypes.number,\n companyColors: PropTypes.shape((_a = {},\n _a[PropTypes.string] = PropTypes.string,\n _a)),\n locale: PropTypes.string,\n};\nvar mapStateToProps = function (state, props) {\n var destination = getCurrentDestinationFromNavigation(state, props);\n return {\n flightsCountAllAirlines: selectFlightsCountAllAirlines(state, props),\n from: getCurrentDayFrom(state, props),\n to: getCurrentDayTo(state, props),\n airportCode: getCurrentDestination(state, props),\n dwelltimeStats: selectDwelltimePerAirlineData(state, props),\n dwelltimeStatsLoading: selectDwelltimePerAirlineDataLoading(state, props),\n destinationName: _.get(destination, 'city'),\n isFlightsCountLoading: selectFlightsCountPerAirlineLoading(state, props),\n flightsCountPerAirline: selectFlightsCountPerAirlineData(state, props),\n totalFlightsCountAllAirlines: selectTotalFlightsCountAllAirlines(state, props),\n companyColors: selectCompanyColors(state, props),\n locale: getterCurrentSiteLanguage(state, props),\n };\n};\nexport var mapDispatchToProps = function (dispatch) { return ({\n initPerAirline: function () {\n dispatch(changeSubsection('airline'));\n dispatch(fetchFlightsReportStats());\n },\n}); };\nexport default connect(mapStateToProps, mapDispatchToProps)(PerAirlineContainer);\n","import { __extends } from \"tslib\";\nimport React, { Component, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport { connect } from 'react-redux';\nimport { setNavigation, setCurrentDay, changeSubsection } from '@src/navigation/actions';\nimport DestinationsPickerContainer from './destinations/index';\nimport Loader from '@src/commons/Loader';\nimport DatesPicker from '@src/commons/DatePicker';\nimport { getCurrentDayFrom, getCurrentDayTo, getCurrentDestination, getCurrentSiteId2, getCurrentSubsection, } from '@src/navigation/selectors';\nimport '@src/commons/styles/templates/flights-report.scss';\nimport '@src/commons/styles/molecules/dates-picker.scss';\nimport PerDestinationContainer from './per_destination/index';\nimport { initFlightsReportSection, fetchFlightsReportStats } from '@src/reporting/flights_report/actions';\nimport { getterFlightsReportLoading } from '@src/reporting/flights_report/selectors';\nimport PerAirlineContainer from './per_airline/index';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nvar FlightsReportContainer = (function (_super) {\n __extends(FlightsReportContainer, _super);\n function FlightsReportContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.handleDayChange = _this.handleDayChange.bind(_this);\n _this.handleDestinationChange = _this.handleDestinationChange.bind(_this);\n _this.handleChangeCurrentSubsection = _this.handleChangeCurrentSubsection.bind(_this);\n return _this;\n }\n FlightsReportContainer.prototype.componentDidMount = function () {\n var _a = this.props, initFlightsReportingApp = _a.initFlightsReportingApp, currentDayTo = _a.currentDayTo;\n var firstDay = moment(currentDayTo, 'YYYY-MM-DD').subtract(6, 'days').format('YYYY-MM-DD');\n initFlightsReportingApp({ section: 'flights', currentPopulation: 'All populations', subsection: 'summary' }, firstDay, currentDayTo);\n };\n FlightsReportContainer.prototype.handleDayChange = function (from, to) {\n var changeSelectedDay = this.props.changeSelectedDay;\n var formatedFrom = moment(from).format('YYYY-MM-DD');\n var formatedTo = moment(to).format('YYYY-MM-DD');\n changeSelectedDay(formatedFrom, formatedTo);\n };\n FlightsReportContainer.prototype.handleDestinationChange = function (destination) {\n var changeDestination = this.props.changeDestination;\n changeDestination();\n };\n FlightsReportContainer.prototype.handleChangeCurrentSubsection = function (newSubsection) {\n var _a = this.props, subsection = _a.subsection, changeSubsection = _a.changeSubsection;\n if (subsection !== newSubsection) {\n changeSubsection(newSubsection);\n }\n };\n FlightsReportContainer.prototype.render = function () {\n var _this = this;\n var _a = this.props, flightsReportSectionLoading = _a.flightsReportSectionLoading, currentDayFrom = _a.currentDayFrom, currentDayTo = _a.currentDayTo, t = _a.t, siteId = _a.siteId, subsection = _a.subsection, isPerAirlineActive = _a.isPerAirlineActive;\n return (React.createElement(\"div\", { className: \"flights-report\" },\n !flightsReportSectionLoading && (React.createElement(Fragment, null,\n React.createElement(\"div\", { className: \"flights-report__header\" },\n React.createElement(\"div\", { className: \"flights-report__header-row\" },\n React.createElement(DestinationsPickerContainer, { t: t, siteId: siteId, onDestinationChange: this.handleDestinationChange }),\n React.createElement(\"div\", { className: \"flights-report__dates-picker dates-picker\" },\n React.createElement(DatesPicker, { t: t, from: currentDayFrom, to: currentDayTo, onDayChange: this.handleDayChange, isWeekSelection: true }))),\n isPerAirlineActive && (React.createElement(\"div\", { className: \"flights-report_header-switch\" },\n React.createElement(\"div\", { onClick: function () { return _this.handleChangeCurrentSubsection('summary'); }, className: \"flights-report_header-switch-mode \" + (!subsection || subsection === 'summary'\n ? 'flights-report_header-switch-mode--active'\n : '') }, t('Flight_Report.summary')),\n React.createElement(\"div\", { onClick: function () { return _this.handleChangeCurrentSubsection('airline'); }, className: \"flights-report_header-switch-mode \" + (subsection === 'airline' ? 'flights-report_header-switch-mode--active' : '') }, t('Flight_Report.per_airline'))))),\n subsection === 'summary' && React.createElement(PerDestinationContainer, { siteId: siteId, t: t }),\n subsection === 'airline' && React.createElement(PerAirlineContainer, { siteId: siteId, t: t }))),\n flightsReportSectionLoading && (React.createElement(\"div\", { className: \"flights-report__loader\" },\n React.createElement(Loader, null)))));\n };\n return FlightsReportContainer;\n}(Component));\nexport { FlightsReportContainer };\nFlightsReportContainer.propTypes = {\n flightsReportSectionLoading: PropTypes.bool,\n initFlightsReportingApp: PropTypes.func,\n t: PropTypes.func,\n currentDayFrom: PropTypes.string,\n currentDayTo: PropTypes.string,\n changeSelectedDay: PropTypes.func,\n changeSubsection: PropTypes.func,\n siteId: PropTypes.string,\n changeDestination: PropTypes.func,\n subsection: PropTypes.string,\n isPerAirlineActive: PropTypes.bool,\n};\nexport var mapStateToProps = function (state, props) { return ({\n siteId: getCurrentSiteId2(state),\n currentDayFrom: getCurrentDayFrom(state, props),\n currentDayTo: getCurrentDayTo(state, props),\n currentDestination: getCurrentDestination(state),\n subsection: getCurrentSubsection(state),\n isPerAirlineActive: isFeatureActivated('reporting_time_per_airlines')(state),\n flightsReportSectionLoading: getterFlightsReportLoading(state),\n}); };\nvar mapDispatchToProps = function (dispatch) { return ({\n initFlightsReportingApp: function (params, from, to) {\n dispatch(setNavigation(params));\n dispatch(setCurrentDay(from, to));\n dispatch(initFlightsReportSection());\n },\n changeSelectedDay: function (from, to) {\n dispatch(setCurrentDay(from, to));\n dispatch(fetchFlightsReportStats());\n },\n changeDestination: function () {\n dispatch(fetchFlightsReportStats());\n },\n changeSubsection: function (newSubsection) {\n dispatch(changeSubsection(newSubsection));\n },\n}); };\nexport default connect(mapStateToProps, mapDispatchToProps)(FlightsReportContainer);\n","export var fetchPresenceStats = function () { return ({\n type: 'FETCH_PRESENCE_STATS',\n}); };\nexport var fetchReferencePresenceStats = function () { return ({\n type: 'FETCH_REFERENCE_PRESENCE_STATS',\n}); };\nexport var fetchDwelltimeStats = function () { return ({\n type: 'FETCH_DWELLTIME_STATS',\n}); };\nexport var fetchTrafficStatsByPopulation = function () { return ({\n type: 'FETCH_PRESENCE_STATS_BY_POPULATION',\n}); };\nexport var fetchDwelltimeStatsByPopulation = function () { return ({\n type: 'FETCH_DWELLTIME_STATS_BY_POPULATION',\n}); };\nexport var statsLoading = function (siteId, areaId, kind, from, to, granularity) { return ({\n type: 'STATS_LOADING',\n siteId: siteId,\n areaId: areaId,\n kind: kind,\n from: from,\n to: to,\n granularity: granularity,\n}); };\nexport var fetchStatsSuccess = function (siteId, areaId, kind, from, to, granularity, data) { return ({\n type: 'FETCH_STATS_SUCCESS',\n siteId: siteId,\n areaId: areaId,\n kind: kind,\n from: from,\n to: to,\n granularity: granularity,\n data: data,\n}); };\nexport var fetchStatsFailure = function (siteId, areaId, kind, from, to, granularity) { return ({\n type: 'FETCH_STATS_FAILURE',\n siteId: siteId,\n areaId: areaId,\n kind: kind,\n from: from,\n to: to,\n granularity: granularity,\n}); };\nexport var aggregatedStatsLoading = function (siteId, areaId, kind, from, to, granularity, statKey) {\n if (statKey === void 0) { statKey = 'aggregated'; }\n return ({\n type: 'AGGREGATED_STATS_LOADING',\n siteId: siteId,\n areaId: areaId,\n kind: kind,\n from: from,\n to: to,\n granularity: granularity,\n statKey: statKey,\n });\n};\nexport var fetchAggregatedStatsSuccess = function (siteId, areaId, kind, from, to, granularity, data, statKey) {\n if (statKey === void 0) { statKey = 'aggregated'; }\n return ({\n type: 'FETCH_AGGREGATED_STATS_SUCCESS',\n siteId: siteId,\n areaId: areaId,\n kind: kind,\n from: from,\n to: to,\n granularity: granularity,\n data: data,\n statKey: statKey,\n });\n};\nexport var fetchAggregatedStatsFailure = function (siteId, areaId, kind, from, to, granularity, statKey) {\n if (statKey === void 0) { statKey = 'aggregated'; }\n return ({\n type: 'FETCH_AGGREGATED_STATS_FAILURE',\n siteId: siteId,\n areaId: areaId,\n kind: kind,\n from: from,\n to: to,\n granularity: granularity,\n statKey: statKey,\n });\n};\nexport var setStatsStatus = function (siteId, areaId, kind, from, to, granularity, statKey, status) { return ({\n type: 'SET_STATS_STATUS',\n siteId: siteId,\n areaId: areaId,\n kind: kind,\n from: from,\n to: to,\n granularity: granularity,\n statKey: statKey,\n status: status,\n}); };\n","import { __assign } from \"tslib\";\nimport { createSelector } from 'reselect';\nimport _ from 'lodash';\nexport var getterCurrentConfigId = function (state, props) { return _.get(state.configs[props.siteId], 'data.uuid'); };\nexport var getterSiteFloors = function (state, props) { return _.get(state.floors[props.siteId], 'data', []); };\nexport var getterNavigationPoiId = function (state) { return _.get(state.navigation, 'poiId'); };\nexport var getterConfigPOIs = function (state, props) { return _.get(state.pois[props.configId], 'data', []); };\nexport var getPOIsList = createSelector(getterCurrentConfigId, function (state) { return state.pois; }, function (configId, pois) { return _.get(pois[configId], 'data', []); });\nexport var selectAllAreaPoisWithFloors = createSelector(getterSiteFloors, getPOIsList, function (floors, pois) {\n var allAreas = _.flatMap(floors, function (floor) {\n return _.map(_.get(floor, 'units.areas'), function (area) { return (__assign(__assign({}, area), { level: floor.level, floor: floor.name })); });\n });\n return _.chain(pois)\n .filter(function (poi) { return _.find(allAreas, { uuid: poi.area }); })\n .map(function (poi) {\n var area = _.find(allAreas, { uuid: poi.area });\n return __assign(__assign({}, poi), { areaName: _.get(area, 'name'), floor: _.get(area, 'floor') });\n })\n .value();\n});\nexport var selectCurrentPoi = createSelector(getterNavigationPoiId, getPOIsList, function (navigationPoiId, allPois) {\n var currentPoi = navigationPoiId ? _.find(allPois, { uuid: navigationPoiId }) : allPois[0];\n return currentPoi;\n});\nexport var getAreaIdFromPOI = createSelector(getterConfigPOIs, function (state, props) { return (__assign({}, props)); }, function (pois, _a) {\n var poiId = _a.poiId;\n return _.get(_.find(pois, { uuid: poiId }), 'area', null);\n});\n","import { __assign } from \"tslib\";\nimport _ from 'lodash';\nimport { flow, get, find, head } from 'lodash/fp';\nimport { createSelector } from 'reselect';\nimport { getCurrentAreaId2, getCurrentFloorId2, getCurrentSiteId2 } from '@src/navigation/selectors';\nexport var getterRetailLoading = function (state) { return _.get(state.retail, 'loading', true); };\nexport var getterCurrentFloor = createSelector(function (state) { return state.floors; }, getCurrentSiteId2, getCurrentFloorId2, function (floors, siteId, floorId) { return _.find(_.get(floors[siteId], 'data', []), { uuid: floorId }); });\nexport var getterCurrentSite = createSelector(function (state) { return state.sites; }, getCurrentSiteId2, function (sites, siteId) { return flow(get('data'), siteId ? find({ uuid: siteId }) : head)(sites); });\nexport var getterSiteFloors = createSelector(function (state) { return state.floors; }, getCurrentSiteId2, function (floors, siteId) { return _.filter(_.get(floors[siteId], 'data', []), function (f) { return !_.isEmpty(f.units.areas); }); });\nexport var selectIsMapLoading = createSelector(getterCurrentFloor, function (floor) { return !floor; });\nexport var selectMapBounds = createSelector(getterCurrentFloor, getterCurrentSite, function (floor, site) {\n var ZOOM = 0.001;\n var latitude = site.latitude, longitude = site.longitude;\n if (!latitude || !longitude) {\n return null;\n }\n var bounds = _.isEqual(_.get(floor, 'bounds'), [\n [0, 0],\n [0, 0],\n ])\n ? [\n [latitude - ZOOM, longitude - ZOOM],\n [latitude + ZOOM, longitude + ZOOM],\n ]\n : _.get(floor, 'bounds');\n return bounds;\n});\nexport var selectAllMapPolygons = createSelector(getterCurrentFloor, getterSiteFloors, function (floor, siteFloors) {\n var areas = _.get(floor, 'units.areas');\n var isEntireSite = _.every(_.flatMap(siteFloors, function (f) { return _.get(f, 'units.areas'); }), function (a) { return !a.selected; });\n return _.map(areas, function (a) { return (__assign(__assign({}, a), { borderColor: isEntireSite || a.selected ? '#FFF' : 'var(--primarycolor)', color: 'var(--primarycolor)', opacity: a.fillOpacity || 1, noClick: a.isInError || a.is_entire_site, hasTooltip: !a.is_entire_site && a.geometry.length > 2 })); });\n});\nexport var selectMapPicturesAllAreas = createSelector(getterSiteFloors, getCurrentFloorId2, function (floors, floorId) {\n return _.chain(floors)\n .orderBy(['level'], ['desc'])\n .map(function (floor) { return (__assign(__assign({}, floor), { name: \"\" + floor.level, image: floor.map_picture, isSelected: floor.uuid === floorId, bounds: floor.bounds })); })\n .value();\n});\nexport var selectDisplayImageMap = createSelector(function (state) { return state.floors; }, getCurrentSiteId2, getCurrentFloorId2, function (floors, siteId, floorId) {\n var floor = _.get(floors, siteId, {});\n var floorsLoading = _.get(floor, 'loading', true);\n var noFloors = _.isEmpty(_.get(floor, 'data', []));\n return !floorsLoading && !noFloors;\n});\nexport var selectDisplayGeoMap = createSelector(function (state) { return state.floors; }, getCurrentSiteId2, getCurrentFloorId2, function (floors, siteId, floorId) {\n var floor = _.get(floors, siteId, {});\n var floorsLoading = _.get(floor, 'loading', true);\n var noFloors = _.isEmpty(_.get(floor, 'data', []));\n return !floorsLoading && noFloors;\n});\nexport var selectIsAreaLoading = createSelector(getCurrentAreaId2, function (areaId) { return !areaId; });\nexport var selectCurrentArea = createSelector(function (state) { return state.floors; }, getCurrentSiteId2, getCurrentAreaId2, function (floors, siteId, areaId) {\n var floor = _.get(floors, siteId, {});\n var allAreas = _.flatMap(_.get(floor, 'data'), function (data) { return _.get(data, 'units.areas'); });\n return _.find(allAreas, { uuid: areaId });\n});\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport '@src/commons/styles/organisms/select-category.scss';\nimport '@src/commons/styles/molecules/poi-selector.scss';\nimport '@src/commons/styles/molecules/search-box.scss';\nvar PoiSelector = (function (_super) {\n __extends(PoiSelector, _super);\n function PoiSelector(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n searchContent: '',\n };\n return _this;\n }\n PoiSelector.prototype.handleSearch = function (search) {\n this.setState({\n searchContent: search,\n });\n };\n PoiSelector.prototype.filterPoisToDisplay = function (pois, searchContent) {\n return _.filter(pois, function (poi) { return _.includes(_.lowerCase(poi.name), _.lowerCase(searchContent)); });\n };\n PoiSelector.prototype.render = function () {\n var _this = this;\n var _a = this.props, className = _a.className, onOpen = _a.onOpen, onSelectPoi = _a.onSelectPoi, open = _a.open, poisToMap = _a.poisToMap, t = _a.t, placeholder = _a.placeholder;\n var poisToDisplay = this.filterPoisToDisplay(poisToMap, this.state.searchContent);\n return (React.createElement(\"div\", { className: className },\n React.createElement(\"div\", { className: open ? 'poi-selector__header-open' : 'poi-selector__header', onClick: onOpen },\n React.createElement(\"div\", { className: \"poi-selector__title\" }, placeholder),\n React.createElement(\"i\", { className: \"material-icons\" }, open ? 'arrow_drop_up' : 'arrow_drop_down')),\n open && (React.createElement(\"div\", { className: \"select-category__list\" },\n React.createElement(\"div\", { className: \"select-category__header\" },\n React.createElement(\"div\", { className: \"search-box\" },\n React.createElement(\"i\", { className: \"search-box__search-icon material-icons\" }, \"search\"),\n React.createElement(\"input\", { type: \"text\", className: \"search-box__input search-input\", placeholder: t('search'), autoFocus: true, onChange: function (e) { return _this.handleSearch(e.target.value); }, value: this.state.searchContent }))),\n _.map(_.keys(_.groupBy(poisToDisplay, 'floor')), function (k) { return (React.createElement(\"div\", { key: k },\n k !== 'null' && (React.createElement(\"div\", { className: \"select-category__category-container\" },\n React.createElement(\"div\", { className: \"select-category__category poi-selector__category\" }, k))),\n _.map(_.sortBy(_.filter(poisToDisplay, { floor: k === 'null' ? null : k }), 'name'), function (poi) { return (React.createElement(\"div\", { onClick: function (e) { return onSelectPoi(e, poi.uuid, poi.area); }, key: poi.uuid, className: \"select-category__item\" }, poi.name)); }))); })))));\n };\n return PoiSelector;\n}(Component));\nPoiSelector.propTypes = {\n className: PropTypes.string,\n open: PropTypes.bool,\n onOpen: PropTypes.func,\n onSelectPoi: PropTypes.func,\n poisToMap: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n })),\n t: PropTypes.func,\n placeholder: PropTypes.string,\n};\nexport default PoiSelector;\n","export var fetchPois = function (configId, history, kind) { return ({\n type: 'FETCH_POIS',\n configId: configId,\n history: history,\n kind: kind,\n}); };\nexport var fetchPoisSuccess = function (configId, data) { return ({\n type: 'FETCH_POIS_SUCCESS',\n configId: configId,\n data: data,\n}); };\nexport var fetchPoisFailure = function (configId) { return ({\n type: 'FETCH_POIS_FAILURE',\n configId: configId,\n}); };\nexport var setFloorAndAreaFromPOI = function (siteId, configId, poiId, history) { return ({\n type: 'SET_FLOOR_AND_AREA_FROM_POI',\n siteId: siteId,\n configId: configId,\n poiId: poiId,\n history: history,\n}); };\n","import { __extends } from \"tslib\";\nimport React, { Component, Fragment } from 'react';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport ClickOutside from '@src/commons/topBar/ClickOutside';\nimport PoiSelector from '@src/commons/PoiSelector';\nimport { setCurrentPoi } from '@src/navigation/actions';\nimport { setFloorAndAreaFromPOI } from '@src/commons/pois/actions';\nimport { fetchPoisPresenceStats, fetchPoisPresenceStatsByArea, fetchPoisPresenceStatsByStopping, } from '@src/reporting/retail/actions';\nimport { fetchDwelltimeStats, fetchTrafficStatsByPopulation } from '@src/reporting/actions';\nimport { findEntireSiteFloor } from '@src/commons/floors/selectors';\nimport { getPOIsList, selectAllAreaPoisWithFloors } from '@src/commons/pois/selectors';\nimport { getterSiteConfig, selectCurrentFloor } from '@src/reporting/selectors';\nimport '@src/commons/styles/molecules/poi-selector.scss';\nimport '@src/commons/styles/organisms/reporting-graphs.scss';\nvar PoisPickerContainer = (function (_super) {\n __extends(PoisPickerContainer, _super);\n function PoisPickerContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n poiSelectorOpen: false,\n };\n _this.handleClose = _this.handleClose.bind(_this);\n _this.handleOpenSelector = _this.handleOpenSelector.bind(_this);\n _this.handleSelectPoi = _this.handleSelectPoi.bind(_this);\n return _this;\n }\n PoisPickerContainer.prototype.handleOpenSelector = function () {\n this.setState({\n poiSelectorOpen: !this.state.poiSelectorOpen,\n });\n };\n PoisPickerContainer.prototype.handleClose = function (e) {\n this.setState({\n poiSelectorOpen: false,\n });\n };\n PoisPickerContainer.prototype.handleSelectPoi = function (e, poiId) {\n var _a = this.props, config = _a.config, history = _a.history, onChangePoi = _a.onChangePoi, siteId = _a.siteId;\n onChangePoi(siteId, config.uuid, poiId, history);\n this.setState(function (prevState) { return ({\n poiSelectorOpen: !prevState.poiSelectorOpen,\n }); });\n e.stopPropagation();\n e.preventDefault();\n };\n PoisPickerContainer.prototype.render = function () {\n var _a = this.props, currentPoi = _a.currentPoi, selectedPois = _a.selectedPois, t = _a.t, placeholder = _a.placeholder;\n return (React.createElement(Fragment, null, !_.isEmpty(selectedPois) ? (React.createElement(ClickOutside, { onClickOutside: this.handleClose },\n React.createElement(PoiSelector, { className: \"poi-selector\", onOpen: this.handleOpenSelector, onSelectPoi: this.handleSelectPoi, t: t, open: this.state.poiSelectorOpen, poisToMap: selectedPois, placeholder: placeholder }))) : (React.createElement(\"div\", { className: \"poi-selector__title poi-selector__title--unique\" }, _.get(currentPoi, 'name')))));\n };\n return PoisPickerContainer;\n}(Component));\nexport { PoisPickerContainer };\nPoisPickerContainer.propTypes = {\n currentFloor: PropTypes.shape({\n uuid: PropTypes.string,\n }),\n currentPoi: PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n }),\n defaultFloor: PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n }),\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n onChangePoi: PropTypes.func,\n selectedPois: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n })),\n config: PropTypes.shape({\n uuid: PropTypes.string,\n }),\n t: PropTypes.func,\n siteId: PropTypes.string,\n placeholder: PropTypes.string,\n};\nvar mapStateToProps = function (state, props) { return ({\n config: getterSiteConfig(state, props),\n currentFloor: selectCurrentFloor(state, props),\n defaultFloor: findEntireSiteFloor(props.siteId, 'reporting')(state),\n pois: getPOIsList(state, props),\n selectedPois: selectAllAreaPoisWithFloors(state, props),\n}); };\nexport var mapDispatchToProps = function (dispatch) { return ({\n onChangePoi: function (siteId, configId, poiId, history) {\n dispatch(setCurrentPoi(poiId, history));\n dispatch(setFloorAndAreaFromPOI(siteId, configId, poiId, history));\n dispatch(fetchPoisPresenceStats());\n dispatch(fetchPoisPresenceStatsByArea());\n dispatch(fetchPoisPresenceStatsByStopping());\n dispatch(fetchTrafficStatsByPopulation());\n dispatch(fetchDwelltimeStats());\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(PoisPickerContainer));\n","export var initRetailSection = function (history) { return ({\n type: 'INIT_RETAIL_SECTION',\n history: history,\n}); };\nexport var retailSectionLoaded = function () { return ({\n type: 'RETAIL_SECTION_LOADED',\n}); };\nexport var fetchPoisPresenceStats = function () { return ({\n type: 'FETCH_POIS_PRESENCE_STATS',\n}); };\nexport var fetchPoisPresenceStatsByArea = function () { return ({\n type: 'FETCH_POIS_PRESENCE_STATS_BY_AREA',\n}); };\nexport var fetchPoisPresenceStatsByStopping = function () { return ({\n type: 'FETCH_POIS_PRESENCE_STATS_BY_STOPPING',\n}); };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport { Bar, BarChart, Cell, ResponsiveContainer, XAxis, YAxis } from 'recharts';\nimport '@src/commons/styles/molecules/chart-card.scss';\nimport '@src/commons/styles/atoms/title.scss';\nimport '@src/commons/styles/atoms/icon.scss';\nvar colors = ['#009AA6', '#A1006B', '#B0A59A', '#FFB612'];\nvar getPath = function (x, y, width) {\n return \"m\" + x + \",\" + y + \"\\n h\" + width + \"\\n q10,0 10,10\\n v10\\n q0,10 -10,10\\n h-\" + width + \"\\n z\";\n};\nvar RectangleBar = function (args) {\n var fill = args.fill, x = args.x, y = args.y, width = args.width, height = args.height, payload = args.payload;\n var value = _.round(+payload.traffic * 100);\n return (React.createElement(\"g\", null,\n React.createElement(\"path\", { d: getPath(x, y + height / 2 - 20, width), fill: fill, stroke: \"none\" }),\n React.createElement(\"text\", { x: x + width + 20, y: y + height / 2, fill: \"#999999\" },\n ' ',\n value,\n \"%\",\n ' ')));\n};\nexport var PopulationChartComponent = function (_a) {\n var data = _a.data;\n return (React.createElement(ResponsiveContainer, { width: \"100%\", height: \"100%\" },\n React.createElement(BarChart, { data: data, layout: \"vertical\", margin: { top: 5, right: 100, left: 100, bottom: 5 } },\n React.createElement(XAxis, { type: \"number\", axisLine: false, tickSize: 0, tickCount: 0, tickLine: false }),\n React.createElement(YAxis, { type: \"category\", dataKey: \"population\", dx: -20, dy: -5, axisLine: false, tickSize: 0, tickLine: false, tick: { fontSize: '0.9rem', fill: '#666666' } }),\n React.createElement(Bar, { dataKey: \"traffic\", fill: \"#8884d8\", shape: React.createElement(RectangleBar, null) }, _.map(data, function (entry, index) { return (React.createElement(Cell, { key: \"cell-\" + index, fill: colors[index % 4] })); })))));\n};\nPopulationChartComponent.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n population: PropTypes.string,\n traffic: PropTypes.number,\n })),\n};\nexport default PopulationChartComponent;\n","import { __assign, __extends } from \"tslib\";\nimport React, { Component, Fragment } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport { selectDailyStatsLoading, selectPresenceStatsByPopulation } from '@src/reporting/selectors';\nimport { getCurrentDayFrom, getCurrentDayTo } from '@src/navigation/selectors';\nimport PopulationChartComponent from '@src/commons/PopulationChart';\nimport AnimatedGradientLoader from '@src/commons/Loader/AnimatedGradientLoader';\nimport ChartNoData from '@src/commons/ChartNoData';\nvar RetailPopulationChartContainer = (function (_super) {\n __extends(RetailPopulationChartContainer, _super);\n function RetailPopulationChartContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n RetailPopulationChartContainer.prototype.render = function () {\n var _a = this.props, data = _a.data, loading = _a.loading, noData = _a.noData, from = _a.from, to = _a.to, t = _a.t;\n return (React.createElement(Fragment, null,\n loading && React.createElement(AnimatedGradientLoader, null),\n noData && !loading && React.createElement(ChartNoData, { from: from, to: to, title: t('Retail.graphs.populations') }),\n !noData && !loading && (React.createElement(\"div\", { className: \"retail__graph-small chart-card retail__last-graph\", style: { height: data.length > 4 ? data.length * 60 : '250px' } },\n React.createElement(\"div\", { className: \"chart-card__container\" },\n React.createElement(\"div\", { className: \"chart-card__header\" },\n React.createElement(\"div\", { className: \"chart-card__title title\" }, t('Retail.graphs.populations'))),\n React.createElement(\"div\", { className: \"chart-card__chart\" },\n React.createElement(PopulationChartComponent, { data: data })))))));\n };\n return RetailPopulationChartContainer;\n}(Component));\nexport { RetailPopulationChartContainer };\nRetailPopulationChartContainer.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n population: PropTypes.string,\n traffic: PropTypes.number,\n })),\n loading: PropTypes.bool,\n noData: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.string,\n t: PropTypes.func,\n};\nexport var mapStateToProps = function (state, props) {\n var data = selectPresenceStatsByPopulation(state, __assign(__assign({}, props), { granularity: 'daily' }));\n return {\n data: data,\n loading: selectDailyStatsLoading(state, props),\n noData: _.every(_.map(data, function (item) { return item.traffic === 0; })),\n from: getCurrentDayFrom(state, props),\n to: getCurrentDayTo(state, props),\n };\n};\nexport var mapDispatchToProps = function (dispatch) { return ({}); };\nexport default connect(mapStateToProps, mapDispatchToProps)(RetailPopulationChartContainer);\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment-timezone';\nimport _ from 'lodash';\nimport { BarChart, Bar, CartesianGrid, XAxis, Tooltip, YAxis, ResponsiveContainer, Cell } from 'recharts';\nimport ChartTooltip from '@src/commons/ChartTooltip';\nimport { isNumberOfDayAboveOne, getTooltipFormat } from '@src/reporting/utils';\nimport '@src/commons/styles/molecules/chart-card.scss';\nimport '@src/commons/styles/atoms/title.scss';\nimport '@src/commons/styles/atoms/icon.scss';\nvar DwelltimeChartView = (function (_super) {\n __extends(DwelltimeChartView, _super);\n function DwelltimeChartView(props) {\n var _this = _super.call(this, props) || this;\n _this.state = { activeIndex: -1 };\n return _this;\n }\n DwelltimeChartView.prototype.render = function () {\n var _this = this;\n var _a = this.props, showOpenModal = _a.showOpenModal, data = _a.data, onOpenModal = _a.onOpenModal, timezone = _a.timezone, granularity = _a.granularity, highlightValue = _a.highlightValue, t = _a.t, locale = _a.locale;\n return (React.createElement(\"div\", { className: \"chart-card__container\" },\n React.createElement(\"div\", { className: \"chart-card__header\" },\n React.createElement(\"div\", { className: \"chart-card__title title\" }, t('Reporting_Labels.graphs.dwelltime')),\n !_.isNull(highlightValue) && (React.createElement(\"div\", { className: \"chart-card__subtitle\" },\n highlightValue > 1 ? highlightValue + \" mins\" : highlightValue + \" min\",\n ' ')),\n showOpenModal && (React.createElement(\"i\", { className: \"material-icons icon--grey\", onClick: onOpenModal }, \"crop_free\"))),\n React.createElement(\"div\", { className: \"chart-card__chart\" },\n React.createElement(ResponsiveContainer, { width: \"100%\", height: \"100%\" },\n React.createElement(BarChart, { data: data, margin: { top: -1, right: 0, left: 0, bottom: -5 }, onMouseLeave: function () { return _this.setState({ activeIndex: -1 }); } },\n React.createElement(CartesianGrid, { vertical: false }),\n React.createElement(XAxis, { dataKey: \"time\", axisLine: false, tickLine: false, tickMargin: -5, tick: { fontSize: '.8rem', fill: '#999' }, interval: \"preserveStart\", tickFormatter: function (unixTime) {\n return isNumberOfDayAboveOne(data) ? moment(unixTime).format('ll') : moment(unixTime).format('MMM');\n }, padding: { left: 70 }, tickSize: 2, dy: 10 }),\n React.createElement(YAxis, { axisLine: false, dataKey: \"value\", domain: [0, 'auto'], tick: { fontSize: '.8rem', fill: '#999' }, tickSize: 0, tickCount: 4, tickFormatter: function (data) { return data + \"min\"; }, type: \"number\", interval: \"preserveEnd\", orientation: \"left\", mirror: true, padding: { top: 20 }, dy: -10, dx: 10 }),\n React.createElement(Tooltip, { cursor: false, content: function (_a) {\n var active = _a.active, payload = _a.payload, label = _a.label;\n var selectedPayload = _.get(_.head(payload), 'payload');\n var selectedTime = getTooltipFormat(granularity, selectedPayload, timezone);\n var selectedValue = _.get(selectedPayload, 'value');\n return (!_.isUndefined(selectedValue) && (React.createElement(ChartTooltip, { title: selectedTime, subtitle: _.round(selectedValue) > 1\n ? _.round(selectedValue).toLocaleString(locale) + \" mins\"\n : _.round(selectedValue).toLocaleString(locale) + \" min\" })));\n } }),\n React.createElement(Bar, { dataKey: \"value\", onMouseOver: function (data, index) {\n if (_this.state.activeIndex !== index) {\n _this.setState({ activeIndex: index });\n }\n } }, _.map(data, function (entry, index) { return (React.createElement(Cell, { cursor: \"pointer\", fill: index === _this.state.activeIndex || _this.state.activeIndex < 0\n ? 'var(--primarycolor)'\n : ' rgba(var(--primarycolorRGB), 0.5)', key: \"cell-\" + index })); })))))));\n };\n return DwelltimeChartView;\n}(Component));\nexport { DwelltimeChartView };\nDwelltimeChartView.propTypes = {\n highlightValue: PropTypes.number,\n granularity: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number,\n value: PropTypes.number,\n })),\n timezone: PropTypes.string,\n showOpenModal: PropTypes.bool,\n onOpenModal: PropTypes.func,\n t: PropTypes.func,\n locale: PropTypes.string,\n};\nexport default DwelltimeChartView;\n","import { __assign, __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport ReactModal from 'react-modal';\nimport { selectDwelltimeMean, selectDwelltimeMeanLoading, selectDwelltimeStats, selectDailyStatsLoading, } from '@src/reporting/selectors';\nimport { getCurrentDayFrom, getCurrentDayTo } from '@src/navigation/selectors';\nimport { getterCurrentSiteLanguage, getterCurrentSiteTimezone } from '@src/live/realtime/selectors';\nimport DwelltimeChartView from '@src/commons/DwelltimeChart';\nimport AnimatedGradientLoader from '@src/commons/Loader/AnimatedGradientLoader';\nimport ChartNoData from '@src/commons/ChartNoData';\nvar modalStyle = {\n overlay: {\n zIndex: 1,\n width: '100%',\n backgroundColor: 'rgba(46, 49, 49, 0.5)',\n },\n content: {\n height: '400px',\n top: '50%',\n left: '10%',\n right: '10%',\n transform: 'translateY(-50%)',\n border: null,\n borderRadius: '3px',\n boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.4)',\n display: 'flex',\n flexDirection: 'column',\n padding: '0',\n paddingBottom: '1rem',\n },\n};\nvar RetailDwelltimeChartContainer = (function (_super) {\n __extends(RetailDwelltimeChartContainer, _super);\n function RetailDwelltimeChartContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n open: false,\n };\n _this.handleOpenModal = _this.handleOpenModal.bind(_this);\n return _this;\n }\n RetailDwelltimeChartContainer.prototype.handleOpenModal = function () {\n this.setState({ open: true });\n };\n RetailDwelltimeChartContainer.prototype.render = function () {\n var _this = this;\n var _a = this.props, data = _a.data, dwelltimeMean = _a.dwelltimeMean, dwelltimeMeanLoading = _a.dwelltimeMeanLoading, dwelltimeDailyLoading = _a.dwelltimeDailyLoading, locale = _a.locale, from = _a.from, to = _a.to, t = _a.t, timezone = _a.timezone;\n return (React.createElement(\"div\", { className: \"retail__graph-small chart-card retail__last-graph\" },\n dwelltimeDailyLoading && React.createElement(AnimatedGradientLoader, null),\n _.isEmpty(data) && !dwelltimeDailyLoading && (React.createElement(ChartNoData, { from: from, to: to, title: t('Retail.graphs.dwelltime') })),\n !_.isEmpty(data) && !dwelltimeDailyLoading && !dwelltimeMeanLoading && (React.createElement(DwelltimeChartView, { data: data, granularity: \"daily\", highlightValue: dwelltimeMean, locale: locale, onOpenModal: this.handleOpenModal, showOpenModal: true, t: t, timezone: timezone })),\n !_.isEmpty(data) && !dwelltimeDailyLoading && !dwelltimeMeanLoading && (React.createElement(ReactModal, { isOpen: this.state.open, style: modalStyle, onRequestClose: function () {\n _this.setState({ open: false });\n }, ariaHideApp: false },\n React.createElement(\"i\", { className: \"material-icons close-button icon--grey\", onClick: function () {\n _this.setState({ open: false });\n } }, \"close\"),\n React.createElement(DwelltimeChartView, { data: data, granularity: \"daily\", highlightValue: dwelltimeMean, locale: locale, t: t, timezone: timezone })))));\n };\n return RetailDwelltimeChartContainer;\n}(Component));\nexport { RetailDwelltimeChartContainer };\nRetailDwelltimeChartContainer.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n population: PropTypes.string,\n traffic: PropTypes.number,\n })),\n dwelltimeDailyLoading: PropTypes.bool,\n dwelltimeMeanLoading: PropTypes.bool,\n dwelltimeMean: PropTypes.number,\n locale: PropTypes.string,\n from: PropTypes.string,\n to: PropTypes.string,\n t: PropTypes.func,\n timezone: PropTypes.string,\n};\nexport var mapStateToProps = function (state, props) {\n var data = selectDwelltimeStats(state, __assign(__assign({}, props), { granularity: 'daily', kind: 'dwelltime' }));\n return {\n data: data,\n dwelltimeDailyLoading: selectDailyStatsLoading(state, __assign(__assign({}, props), { kind: 'dwelltime' })),\n dwelltimeMeanLoading: selectDwelltimeMeanLoading(state, __assign(__assign({}, props), { kind: 'dwelltime' })),\n dwelltimeMean: selectDwelltimeMean(state, __assign(__assign({}, props), { kind: 'dwelltime' })),\n locale: getterCurrentSiteLanguage(state),\n from: getCurrentDayFrom(state, props),\n timezone: getterCurrentSiteTimezone(state),\n to: getCurrentDayTo(state, props),\n };\n};\nexport var mapDispatchToProps = function (dispatch) { return ({}); };\nexport default connect(mapStateToProps, mapDispatchToProps)(RetailDwelltimeChartContainer);\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport { withRouter } from 'react-router-dom';\nimport { setCurrentFloor2 } from '@src/commons/floors/actions';\nimport PictureMap from '@src/commons/map/PictureMap';\nimport PicturePicker from '@src/commons/map/PicturePicker';\nimport GeoMap from '@src/commons/map/GeoMap';\nimport '@src/commons/styles/organisms/realtime-carto.scss';\nimport { selectMapPicturesAllAreas, selectAllMapPolygons, selectIsMapLoading, selectMapBounds, } from '@src/reporting/retail/selectors';\nvar MapContainer = (function (_super) {\n __extends(MapContainer, _super);\n function MapContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.handleSelectPicture = _this.handleSelectPicture.bind(_this);\n return _this;\n }\n MapContainer.prototype.handleSelectPicture = function (e, pictureId) {\n var _a = this.props, onChangePicture = _a.onChangePicture, history = _a.history;\n onChangePicture(pictureId, history);\n e.stopPropagation();\n e.preventDefault();\n };\n MapContainer.prototype.render = function () {\n var _a = this.props, loading = _a.loading, pictures = _a.pictures, bounds = _a.bounds, polygonsActual = _a.polygonsActual, noClick = _a.noClick, t = _a.t;\n var currentPicture = _.find(pictures, function (p) { return p.isSelected; });\n return loading ? (React.createElement(\"div\", null,\n t('map.loading'),\n \" ...\")) : (React.createElement(\"div\", { className: \"retail-map__content\" },\n pictures.length > 1 && (React.createElement(PicturePicker, { pictures: pictures, onSelectPicture: this.handleSelectPicture })),\n _.get(currentPicture, 'image') ? (React.createElement(PictureMap, { pictures: pictures, onSelectPolygon: _.noop, polygons: polygonsActual, noClick: noClick })) : (React.createElement(GeoMap, { bounds: bounds, polygons: polygonsActual, noClick: noClick, onSelectPolygon: _.noop }))));\n };\n return MapContainer;\n}(Component));\nexport { MapContainer };\nMapContainer.propTypes = {\n t: PropTypes.func,\n noClick: PropTypes.bool,\n loading: PropTypes.bool,\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n polygonsActual: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n color: PropTypes.string,\n borderColor: PropTypes.string,\n opacity: PropTypes.number,\n hasTooltip: PropTypes.bool,\n noClick: PropTypes.bool,\n geometry: PropTypes.arrayOf(PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number,\n })),\n })),\n onChangePicture: PropTypes.func,\n pictures: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n image: PropTypes.string,\n isSelected: PropTypes.bool,\n name: PropTypes.string,\n })),\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n};\nexport var mapStateToProps = function (state, props) { return ({\n loading: selectIsMapLoading(state, props),\n pictures: selectMapPicturesAllAreas(state, props),\n polygonsActual: selectAllMapPolygons(state, props),\n bounds: selectMapBounds(state, props),\n}); };\nexport var mapDispatchToProps = function (dispatch) { return ({\n onChangePicture: function (pictureId, history) {\n dispatch(setCurrentFloor2(pictureId, history));\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(MapContainer));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport '@src/commons/styles/molecules/bar-chart.scss';\nimport '@src/commons/styles/templates/retail.scss';\nexport var PaxChartComponent = function (_a) {\n var areaPresence = _a.areaPresence, presenceSum = _a.presenceSum, stoppingPresence = _a.stoppingPresence, t = _a.t;\n return (React.createElement(\"div\", { className: \"bar-chart__container\" },\n React.createElement(\"div\", { className: \"bar-chart__chart\" },\n React.createElement(\"div\", { className: \"bar-chart__first-chart\", style: { height: (presenceSum / presenceSum) * 70 + \"%\" } }),\n React.createElement(\"div\", { className: \"bar-chart__quantity bar-chart__first-quantity\" }, new Intl.NumberFormat(moment.locale()).format(presenceSum)),\n React.createElement(\"div\", { className: \"bar-chart__title\" }, t('pois.first_bar_chart'))),\n React.createElement(\"div\", { className: \"bar-chart__chart\" },\n React.createElement(\"div\", { className: \"bar-chart__compared-label\" }, Math.round((areaPresence / presenceSum) * 100) + \"% \" + t('pois.first_bar_chart')),\n React.createElement(\"div\", { className: \"bar-chart__second-chart\", style: { height: (areaPresence / presenceSum) * 70 + \"%\" } }),\n React.createElement(\"div\", { className: \"bar-chart__quantity bar-chart__second-quantity\" }, new Intl.NumberFormat(moment.locale()).format(areaPresence)),\n React.createElement(\"div\", { className: \"bar-chart__title\" }, t('pois.second_bar_chart'))),\n React.createElement(\"div\", { className: \"bar-chart__chart\" },\n React.createElement(\"div\", { className: \"bar-chart__compared-label\" }, Math.round((stoppingPresence / areaPresence) * 100) + \"% \" + t('pois.second_bar_chart')),\n React.createElement(\"div\", { className: \"bar-chart__third-chart\", style: { height: (stoppingPresence / presenceSum) * 70 + \"%\" } }),\n React.createElement(\"div\", { className: \"bar-chart__quantity bar-chart__third-quantity\" }, new Intl.NumberFormat(moment.locale()).format(stoppingPresence)),\n React.createElement(\"div\", { className: \"bar-chart__title\" }, t('pois.third_bar_chart'))),\n React.createElement(\"div\", { className: \"bar-chart__chart\" },\n React.createElement(\"div\", { className: \"bar-chart__fourth-chart\" }),\n React.createElement(\"div\", { className: \"bar-chart__quantity bar-chart__fourth-quantity\" }, t('Retail.no_data')),\n React.createElement(\"div\", { className: \"bar-chart__title\" }, t('pois.fourth_bar_chart'))),\n React.createElement(\"div\", { className: \"bar-chart__chart\" },\n React.createElement(\"div\", { className: \"bar-chart__fifth-chart\" }),\n React.createElement(\"div\", { className: \"bar-chart__quantity bar-chart__fifth-quantity\" }, t('Retail.no_data')),\n React.createElement(\"div\", { className: \"bar-chart__title\" }, t('pois.fifth_bar_chart')))));\n};\nPaxChartComponent.propTypes = {\n areaPresence: PropTypes.number,\n presenceSum: PropTypes.number,\n stoppingPresence: PropTypes.number,\n t: PropTypes.func,\n};\nexport default PaxChartComponent;\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { selectAreaPresenceSum, selectStoppingPresenceSum, selectTotalPresence, selectAreaComputeIsLoaded, } from '@src/reporting/selectors';\nimport PaxChartComponent from './PaxChartComponent';\nimport AnimatedGradientLoader from '@src/commons/Loader/AnimatedGradientLoader';\nimport '@src/commons/styles/molecules/chart-card.scss';\nimport '@src/commons/styles/atoms/title.scss';\nvar PaxChartContainer = (function (_super) {\n __extends(PaxChartContainer, _super);\n function PaxChartContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PaxChartContainer.prototype.render = function () {\n var _a = this.props, areaPresence = _a.areaPresence, loadedArea = _a.loadedArea, presenceSum = _a.presenceSum, stoppingPresence = _a.stoppingPresence, t = _a.t;\n return (React.createElement(\"div\", { className: \"chart-card__container\" },\n React.createElement(\"div\", { className: \"chart-card__header\" },\n React.createElement(\"div\", { className: \"chart-card__title title\" }, t('pois.bar_chart.title'))),\n React.createElement(\"div\", { className: \"chart-card__chart\" },\n loadedArea && presenceSum > 0 && (React.createElement(PaxChartComponent, { areaPresence: areaPresence, presenceSum: presenceSum, stoppingPresence: stoppingPresence, t: t })),\n !loadedArea && React.createElement(AnimatedGradientLoader, null))));\n };\n return PaxChartContainer;\n}(Component));\nexport { PaxChartContainer };\nPaxChartContainer.propTypes = {\n areaPresence: PropTypes.number,\n loadedArea: PropTypes.bool,\n presenceSum: PropTypes.number,\n stoppingPresence: PropTypes.number,\n t: PropTypes.func,\n};\nexport var mapStateToProps = function (state, props) { return ({\n areaPresence: selectAreaPresenceSum(state, props),\n presenceSum: selectTotalPresence(state, props),\n loadedArea: selectAreaComputeIsLoaded(state, props),\n stoppingPresence: selectStoppingPresenceSum(state, props),\n}); };\nexport var mapDispatchToProps = function (dispatch) { return ({}); };\nexport default connect(mapStateToProps, mapDispatchToProps)(PaxChartContainer);\n","export default __webpack_public_path__ + \"public/basket.svg\";","export default __webpack_public_path__ + \"public/dollar.svg\";","export default __webpack_public_path__ + \"public/conversion_rate.svg\";","import { __extends } from \"tslib\";\nimport React, { Component, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport moment from 'moment';\nimport _ from 'lodash';\nimport { initRetailSection, fetchPoisPresenceStats, fetchPoisPresenceStatsByArea, fetchPoisPresenceStatsByStopping, } from '@src/reporting/retail/actions';\nimport { fetchDwelltimeStats, fetchTrafficStatsByPopulation } from '@src/reporting/actions';\nimport { setNavigation, setCurrentDay } from '@src/navigation/actions';\nimport { getterCurrentConfigId, selectCurrentPoi } from '@src/commons/pois/selectors';\nimport { getCurrentDayFrom, getCurrentDayTo } from '@src/navigation/selectors';\nimport { selectCurrentArea, selectMapAreas } from '@src/reporting/selectors';\nimport { getterCurrentSite, selectIsAreaLoading, selectDisplayImageMap, selectDisplayGeoMap, getterRetailLoading, } from '@src/reporting/retail/selectors';\nimport PoisPickerContainer from './pois';\nimport RetailPopulationChartContainer from './graphs/populations';\nimport RetailDwelltimeChartContainer from './graphs/dwelltime';\nimport MapContainer from '@src/reporting/retail/MapContainer';\nimport PaxChartContainer from './graphs/conversionFunnel';\nimport GeoMap from '@src/commons/map/GeoMap';\nimport DatesPicker from '@src/commons/DatePicker';\nimport AnimatedGradientLoader from '@src/commons/Loader/AnimatedGradientLoader';\nimport Loader from '@src/commons/Loader';\nimport FigureIconCard from '@src/commons/FigureIconCard';\nimport ChartNoData from '@src/commons/ChartNoData';\nimport '@src/commons/styles/templates/retail.scss';\nimport '@src/commons/styles/molecules/dates-picker.scss';\nimport '@src/commons/styles/molecules/chart-card.scss';\nimport basketIcon from './assets/basket.svg';\nimport dollarIcon from './assets/dollar.svg';\nimport conversionIcon from './assets/conversion_rate.svg';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nvar RetailContainer = (function (_super) {\n __extends(RetailContainer, _super);\n function RetailContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.handleDayChange = _this.handleDayChange.bind(_this);\n return _this;\n }\n RetailContainer.prototype.componentDidMount = function () {\n var _a = this.props, initRetailReportingApp = _a.initRetailReportingApp, history = _a.history, currentDayTo = _a.currentDayTo;\n var getDayFrom = moment(currentDayTo, 'YYYY-MM-DD').subtract(6, 'days').format('YYYY-MM-DD');\n initRetailReportingApp({ section: 'retail', currentPopulation: 'All populations' }, history, getDayFrom, currentDayTo);\n };\n RetailContainer.prototype.handleDayChange = function (from, to) {\n var changeSelectedDay = this.props.changeSelectedDay;\n var formatedFrom = moment(from).format('YYYY-MM-DD');\n var formatedTo = moment(to).format('YYYY-MM-DD');\n changeSelectedDay(formatedFrom, formatedTo);\n };\n RetailContainer.prototype.render = function () {\n var _a = this.props, siteId = _a.siteId, retailSectionLoading = _a.retailSectionLoading, currentConfigId = _a.currentConfigId, currentPoi = _a.currentPoi, currentDayFrom = _a.currentDayFrom, currentDayTo = _a.currentDayTo, currentSite = _a.currentSite, displayGeoMap = _a.displayGeoMap, loadingSelectedArea = _a.loadingSelectedArea, displayImageMap = _a.displayImageMap, t = _a.t, isShowRetailNoDataAvailable = _a.isShowRetailNoDataAvailable;\n return (React.createElement(\"div\", { className: \"retail\" },\n !retailSectionLoading && currentPoi && (React.createElement(Fragment, null,\n React.createElement(\"div\", { className: \"retail__header\" },\n React.createElement(\"div\", { className: \"retail__header-row\" },\n React.createElement(\"div\", { className: \"retail__title\" }, _.get(currentPoi, 'name')),\n React.createElement(\"div\", { className: \"dates-picker\" },\n React.createElement(PoisPickerContainer, { currentPoi: currentPoi, siteId: currentSite.uuid, t: t, placeholder: t('pois.picker.title_retail') }))),\n React.createElement(DatesPicker, { t: t, from: currentDayFrom, to: currentDayTo, onDayChange: this.handleDayChange, isWeekSelection: true })),\n React.createElement(\"div\", { className: \"retail__content\" },\n React.createElement(\"div\", { className: \"retail__map\" },\n displayImageMap && React.createElement(MapContainer, { noClick: true, noColor: true, t: t }),\n displayGeoMap && (React.createElement(GeoMap, { noClick: true, noColor: true, lat: _.get(currentSite, 'latitude'), lng: _.get(currentSite, 'longitude'), currentFloor: {\n bounds: [\n [0, 0],\n [0, 0],\n ],\n } }))),\n React.createElement(\"div\", { className: \"retail__graphs\" },\n isShowRetailNoDataAvailable && (React.createElement(\"div\", { className: \"retail__cards\" },\n React.createElement(\"div\", { className: \"retail__card\" },\n React.createElement(FigureIconCard, { label: t('Retail.revenues'), icon: dollarIcon, value: t('Retail.no_data') })),\n React.createElement(\"div\", { className: \"retail__card retail__card--big\" },\n React.createElement(FigureIconCard, { label: t('Retail.conversion_rate'), icon: conversionIcon, value: t('Retail.no_data') })),\n React.createElement(\"div\", { className: \"retail__card\" },\n React.createElement(FigureIconCard, { label: t('Retail.average_basket'), icon: basketIcon, value: t('Retail.no_data') })))),\n React.createElement(\"div\", { className: \"retail__graph-big chart-card\" },\n !loadingSelectedArea && (React.createElement(PaxChartContainer, { configId: currentConfigId, poiId: currentPoi.uuid, siteId: siteId, t: t })),\n loadingSelectedArea && React.createElement(AnimatedGradientLoader, null)),\n isShowRetailNoDataAvailable && (React.createElement(\"div\", { className: \"retail__graph-small-container\" },\n React.createElement(\"div\", { className: \"retail__graph-small chart-card\" },\n React.createElement(ChartNoData, { title: t('Retail.graphs.daily_revenue'), from: currentDayFrom, to: currentDayTo })),\n React.createElement(\"div\", { className: \"retail__graph-small chart-card\" },\n React.createElement(ChartNoData, { title: t('Retail.graphs.daily_conversion_rate'), from: currentDayFrom, to: currentDayTo })))),\n React.createElement(\"div\", { className: \"retail__graph-small-container\" },\n React.createElement(RetailPopulationChartContainer, { kind: \"presenceByPopulation\", siteId: siteId, t: t }),\n React.createElement(RetailDwelltimeChartContainer, { siteId: siteId, t: t })))))),\n retailSectionLoading && (React.createElement(\"div\", { className: \"retail__loader\" },\n React.createElement(Loader, null)))));\n };\n return RetailContainer;\n}(Component));\nexport { RetailContainer };\nRetailContainer.propTypes = {\n retailSectionLoading: PropTypes.bool,\n changeSelectedDay: PropTypes.func,\n currentConfigId: PropTypes.string,\n currentDayFrom: PropTypes.string,\n currentDayTo: PropTypes.string,\n currentPoi: PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n }),\n currentSite: PropTypes.shape({\n uuid: PropTypes.string,\n }),\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n initRetailReportingApp: PropTypes.func,\n loadingSelectedArea: PropTypes.bool,\n t: PropTypes.func,\n displayGeoMap: PropTypes.bool,\n displayImageMap: PropTypes.bool,\n siteId: PropTypes.string,\n isShowRetailNoDataAvailable: PropTypes.bool,\n};\nvar mapStateToProps = function (state, props) { return ({\n currentArea: selectCurrentArea(state, props),\n currentConfigId: getterCurrentConfigId(state, props),\n currentDayFrom: getCurrentDayFrom(state, props),\n currentDayTo: getCurrentDayTo(state, props),\n currentPoi: selectCurrentPoi(state, props),\n currentSite: getterCurrentSite(state, props),\n displayGeoMap: selectDisplayGeoMap(state, props),\n displayImageMap: selectDisplayImageMap(state, props),\n isShowRetailNoDataAvailable: isFeatureActivated('retail-show-no-data')(state),\n loadingSelectedArea: selectIsAreaLoading(state, props),\n mapAreas: selectMapAreas(state, props),\n retailSectionLoading: getterRetailLoading(state),\n}); };\nvar mapDispatchToProps = function (dispatch) { return ({\n initRetailReportingApp: function (params, history, dayFrom, dayTo) {\n dispatch(setNavigation(params));\n dispatch(setCurrentDay(dayFrom, dayTo));\n dispatch(initRetailSection(history));\n },\n changeSelectedDay: function (from, to) {\n dispatch(setCurrentDay(from, to));\n dispatch(fetchPoisPresenceStats());\n dispatch(fetchPoisPresenceStatsByArea());\n dispatch(fetchPoisPresenceStatsByStopping());\n dispatch(fetchTrafficStatsByPopulation());\n dispatch(fetchDwelltimeStats());\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(RetailContainer));\n","import { __assign } from \"tslib\";\nimport _ from 'lodash';\nimport { flow, get, find, head } from 'lodash/fp';\nimport { createSelector } from 'reselect';\nimport { getCurrentAreaId2, getCurrentFloorId2, getCurrentSiteId2 } from '@src/navigation/selectors';\nexport var getterAdvertisingLoading = function (state) { return _.get(state.advertising, 'loading', true); };\nexport var getterCurrentFloor = createSelector(function (state) { return state.floors; }, getCurrentSiteId2, getCurrentFloorId2, function (floors, siteId, floorId) { return _.find(_.get(floors[siteId], 'data', []), { uuid: floorId }); });\nexport var getterCurrentSite = createSelector(function (state) { return state.sites; }, getCurrentSiteId2, function (sites, siteId) { return flow(get('data'), siteId ? find({ uuid: siteId }) : head)(sites); });\nexport var getterSiteFloors = createSelector(function (state) { return state.floors; }, getCurrentSiteId2, function (floors, siteId) { return _.filter(_.get(floors[siteId], 'data', []), function (f) { return !_.isEmpty(f.units.areas); }); });\nexport var selectIsMapLoading = createSelector(getterCurrentFloor, function (floor) { return !floor; });\nexport var selectMapBounds = createSelector(getterCurrentFloor, getterCurrentSite, function (floor, site) {\n var ZOOM = 0.001;\n var latitude = site.latitude, longitude = site.longitude;\n if (!latitude || !longitude) {\n return null;\n }\n var bounds = _.isEqual(_.get(floor, 'bounds'), [\n [0, 0],\n [0, 0],\n ])\n ? [\n [latitude - ZOOM, longitude - ZOOM],\n [latitude + ZOOM, longitude + ZOOM],\n ]\n : _.get(floor, 'bounds');\n return bounds;\n});\nexport var selectAllMapPolygons = createSelector(getterCurrentFloor, getterSiteFloors, function (floor, siteFloors) {\n var areas = _.get(floor, 'units.areas');\n var isEntireSite = _.every(_.flatMap(siteFloors, function (f) { return _.get(f, 'units.areas'); }), function (a) { return !a.selected; });\n return _.map(areas, function (a) { return (__assign(__assign({}, a), { borderColor: isEntireSite || a.selected ? '#FFF' : 'var(--primarycolor)', color: 'var(--primarycolor)', opacity: a.fillOpacity || 1, noClick: a.isInError || a.is_entire_site, hasTooltip: !a.is_entire_site && a.geometry.length > 2 })); });\n});\nexport var selectMapPicturesAllAreas = createSelector(getterSiteFloors, getCurrentFloorId2, function (floors, floorId) {\n return _.chain(floors)\n .orderBy(['level'], ['desc'])\n .map(function (floor) { return (__assign(__assign({}, floor), { name: \"\" + floor.level, image: floor.map_picture, isSelected: floor.uuid === floorId, bounds: floor.bounds })); })\n .value();\n});\nexport var selectDisplayImageMap = createSelector(function (state) { return state.floors; }, getCurrentSiteId2, getCurrentFloorId2, function (floors, siteId, floorId) {\n var floor = _.get(floors, siteId, {});\n var floorsLoading = _.get(floor, 'loading', true);\n var noFloors = _.isEmpty(_.get(floor, 'data', []));\n return !floorsLoading && !noFloors;\n});\nexport var selectDisplayGeoMap = createSelector(function (state) { return state.floors; }, getCurrentSiteId2, getCurrentFloorId2, function (floors, siteId, floorId) {\n var floor = _.get(floors, siteId, {});\n var floorsLoading = _.get(floor, 'loading', true);\n var noFloors = _.isEmpty(_.get(floor, 'data', []));\n return !floorsLoading && noFloors;\n});\nexport var selectIsAreaLoading = createSelector(getCurrentAreaId2, function (areaId) { return !areaId; });\nexport var selectCurrentArea = createSelector(function (state) { return state.floors; }, getCurrentSiteId2, getCurrentAreaId2, function (floors, siteId, areaId) {\n var floor = _.get(floors, siteId, {});\n var allAreas = _.flatMap(_.get(floor, 'data'), function (data) { return _.get(data, 'units.areas'); });\n return _.find(allAreas, { uuid: areaId });\n});\n","import { __extends } from \"tslib\";\nimport React, { Component, Fragment } from 'react';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport ClickOutside from '@src/commons/topBar/ClickOutside';\nimport PoiSelector from '@src/commons/PoiSelector';\nimport { setCurrentPoi } from '@src/navigation/actions';\nimport { setFloorAndAreaFromPOI } from '@src/commons/pois/actions';\nimport { fetchAdvertisingStatsByArea } from '@src/reporting/advertising/actions';\nimport { findEntireSiteFloor } from '@src/commons/floors/selectors';\nimport { getPOIsList, selectAllAreaPoisWithFloors } from '@src/commons/pois/selectors';\nimport { getterSiteConfig, selectCurrentFloor } from '@src/reporting/selectors';\nimport '@src/commons/styles/molecules/poi-selector.scss';\nimport '@src/commons/styles/organisms/reporting-graphs.scss';\nimport { fetchDwelltimeStats, fetchTrafficStatsByPopulation } from '@src/reporting/actions';\nvar PoisPickerContainer = (function (_super) {\n __extends(PoisPickerContainer, _super);\n function PoisPickerContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n poiSelectorOpen: false,\n };\n _this.handleClose = _this.handleClose.bind(_this);\n _this.handleOpenSelector = _this.handleOpenSelector.bind(_this);\n _this.handleSelectPoi = _this.handleSelectPoi.bind(_this);\n return _this;\n }\n PoisPickerContainer.prototype.handleOpenSelector = function () {\n this.setState({\n poiSelectorOpen: !this.state.poiSelectorOpen,\n });\n };\n PoisPickerContainer.prototype.handleClose = function (e) {\n this.setState({\n poiSelectorOpen: false,\n });\n };\n PoisPickerContainer.prototype.handleSelectPoi = function (e, poiId) {\n var _a = this.props, config = _a.config, history = _a.history, onChangePoi = _a.onChangePoi, siteId = _a.siteId;\n onChangePoi(siteId, config.uuid, poiId, history);\n this.setState(function (prevState) { return ({\n poiSelectorOpen: !prevState.poiSelectorOpen,\n }); });\n e.stopPropagation();\n e.preventDefault();\n };\n PoisPickerContainer.prototype.render = function () {\n var _a = this.props, currentPoi = _a.currentPoi, selectedPois = _a.selectedPois, t = _a.t, placeholder = _a.placeholder;\n return (React.createElement(Fragment, null, !_.isEmpty(selectedPois) ? (React.createElement(ClickOutside, { onClickOutside: this.handleClose },\n React.createElement(PoiSelector, { className: \"poi-selector\", onOpen: this.handleOpenSelector, onSelectPoi: this.handleSelectPoi, t: t, open: this.state.poiSelectorOpen, poisToMap: selectedPois, placeholder: placeholder }))) : (React.createElement(\"div\", { className: \"poi-selector__title poi-selector__title--unique\" }, _.get(currentPoi, 'name')))));\n };\n return PoisPickerContainer;\n}(Component));\nexport { PoisPickerContainer };\nPoisPickerContainer.propTypes = {\n currentFloor: PropTypes.shape({\n uuid: PropTypes.string,\n }),\n currentPoi: PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n }),\n defaultFloor: PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n }),\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n onChangePoi: PropTypes.func,\n selectedPois: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n })),\n config: PropTypes.shape({\n uuid: PropTypes.string,\n }),\n t: PropTypes.func,\n siteId: PropTypes.string,\n placeholder: PropTypes.string,\n};\nvar mapStateToProps = function (state, props) { return ({\n config: getterSiteConfig(state, props),\n currentFloor: selectCurrentFloor(state, props),\n defaultFloor: findEntireSiteFloor(props.siteId, 'reporting')(state),\n pois: getPOIsList(state, props),\n selectedPois: selectAllAreaPoisWithFloors(state, props),\n}); };\nexport var mapDispatchToProps = function (dispatch) { return ({\n onChangePoi: function (siteId, configId, poiId, history) {\n dispatch(setCurrentPoi(poiId, history));\n dispatch(setFloorAndAreaFromPOI(siteId, configId, poiId, history));\n dispatch(fetchAdvertisingStatsByArea());\n dispatch(fetchTrafficStatsByPopulation());\n dispatch(fetchDwelltimeStats());\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(PoisPickerContainer));\n","export var initAdvertisingSection = function (history) { return ({\n type: 'INIT_ADVERTISING_SECTION',\n history: history,\n}); };\nexport var advertisingSectionLoaded = function () { return ({\n type: 'ADVERTISING_SECTION_LOADED',\n}); };\nexport var fetchAdvertisingStatsByArea = function () { return ({\n type: 'FETCH_ADVERTISING_STATS',\n}); };\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport { withRouter } from 'react-router-dom';\nimport { setCurrentFloor2 } from '@src/commons/floors/actions';\nimport PictureMap from '@src/commons/map/PictureMap';\nimport PicturePicker from '@src/commons/map/PicturePicker';\nimport GeoMap from '@src/commons/map/GeoMap';\nimport '@src/commons/styles/organisms/realtime-carto.scss';\nimport { selectMapPicturesAllAreas, selectAllMapPolygons, selectIsMapLoading, selectMapBounds, } from '@src/reporting/retail/selectors';\nvar MapContainer = (function (_super) {\n __extends(MapContainer, _super);\n function MapContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.handleSelectPicture = _this.handleSelectPicture.bind(_this);\n return _this;\n }\n MapContainer.prototype.handleSelectPicture = function (e, pictureId) {\n var _a = this.props, onChangePicture = _a.onChangePicture, history = _a.history;\n onChangePicture(pictureId, history);\n e.stopPropagation();\n e.preventDefault();\n };\n MapContainer.prototype.render = function () {\n var _a = this.props, loading = _a.loading, pictures = _a.pictures, bounds = _a.bounds, polygonsActual = _a.polygonsActual, noClick = _a.noClick, t = _a.t;\n var currentPicture = _.find(pictures, function (p) { return p.isSelected; });\n return loading ? (React.createElement(\"div\", null,\n t('map.loading'),\n \" ...\")) : (React.createElement(\"div\", { className: \"retail-map__content\" },\n pictures.length > 1 && (React.createElement(PicturePicker, { pictures: pictures, onSelectPicture: this.handleSelectPicture })),\n _.get(currentPicture, 'image') ? (React.createElement(PictureMap, { pictures: pictures, onSelectPolygon: _.noop, polygons: polygonsActual, noClick: noClick })) : (React.createElement(GeoMap, { bounds: bounds, polygons: polygonsActual, noClick: noClick, onSelectPolygon: _.noop }))));\n };\n return MapContainer;\n}(Component));\nexport { MapContainer };\nMapContainer.propTypes = {\n t: PropTypes.func,\n noClick: PropTypes.bool,\n loading: PropTypes.bool,\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n polygonsActual: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n color: PropTypes.string,\n borderColor: PropTypes.string,\n opacity: PropTypes.number,\n hasTooltip: PropTypes.bool,\n noClick: PropTypes.bool,\n geometry: PropTypes.arrayOf(PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number,\n })),\n })),\n onChangePicture: PropTypes.func,\n pictures: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n image: PropTypes.string,\n isSelected: PropTypes.bool,\n name: PropTypes.string,\n })),\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n};\nexport var mapStateToProps = function (state, props) { return ({\n loading: selectIsMapLoading(state, props),\n pictures: selectMapPicturesAllAreas(state, props),\n polygonsActual: selectAllMapPolygons(state, props),\n bounds: selectMapBounds(state, props),\n}); };\nexport var mapDispatchToProps = function (dispatch) { return ({\n onChangePicture: function (pictureId, history) {\n dispatch(setCurrentFloor2(pictureId, history));\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(MapContainer));\n","import { __assign, __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport { selectDailyStatsLoading, selectPresenceStatsByPopulation } from '@src/reporting/selectors';\nimport { getCurrentDayFrom, getCurrentDayTo } from '@src/navigation/selectors';\nimport PopulationChartComponent from '@src/commons/PopulationChart';\nimport AnimatedGradientLoader from '@src/commons/Loader/AnimatedGradientLoader';\nimport ChartNoData from '@src/commons/ChartNoData';\nvar AdvertisingPopulationChartContainer = (function (_super) {\n __extends(AdvertisingPopulationChartContainer, _super);\n function AdvertisingPopulationChartContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AdvertisingPopulationChartContainer.prototype.render = function () {\n var _a = this.props, data = _a.data, loading = _a.loading, noData = _a.noData, from = _a.from, to = _a.to, t = _a.t;\n return (React.createElement(\"div\", { className: \"advertising__graph-small chart-card\", style: { height: data.length > 4 ? data.length * 60 : '250px' } },\n loading && React.createElement(AnimatedGradientLoader, null),\n noData && !loading && React.createElement(ChartNoData, { from: from, to: to, title: t('Retail.graphs.populations') }),\n !noData && !loading && (React.createElement(\"div\", { className: \"chart-card__container\" },\n React.createElement(\"div\", { className: \"chart-card__header\" },\n React.createElement(\"div\", { className: \"chart-card__title title\" }, t('Retail.graphs.populations'))),\n React.createElement(\"div\", { className: \"chart-card__chart\" },\n React.createElement(PopulationChartComponent, { data: data }))))));\n };\n return AdvertisingPopulationChartContainer;\n}(Component));\nexport { AdvertisingPopulationChartContainer };\nAdvertisingPopulationChartContainer.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n population: PropTypes.string,\n traffic: PropTypes.number,\n })),\n loading: PropTypes.bool,\n noData: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.string,\n t: PropTypes.func,\n};\nexport var mapStateToProps = function (state, props) {\n var data = selectPresenceStatsByPopulation(state, __assign(__assign({}, props), { granularity: 'daily', kind: 'presenceByPopulation' }));\n return {\n data: data,\n loading: selectDailyStatsLoading(state, __assign(__assign({}, props), { granularity: 'daily', kind: 'presenceByPopulation' })),\n noData: _.every(_.map(data, function (item) { return item.traffic === 0; })),\n from: getCurrentDayFrom(state, props),\n to: getCurrentDayTo(state, props),\n };\n};\nexport var mapDispatchToProps = function (dispatch) { return ({}); };\nexport default connect(mapStateToProps, mapDispatchToProps)(AdvertisingPopulationChartContainer);\n","import { __assign, __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport ReactModal from 'react-modal';\nimport { selectDwelltimeMean, selectDwelltimeMeanLoading, selectDwelltimeStats, selectDailyStatsLoading, } from '@src/reporting/selectors';\nimport { getCurrentDayFrom, getCurrentDayTo } from '@src/navigation/selectors';\nimport { getterCurrentSiteLanguage, getterCurrentSiteTimezone } from '@src/live/realtime/selectors';\nimport DwelltimeChartView from '@src/commons/DwelltimeChart';\nimport AnimatedGradientLoader from '@src/commons/Loader/AnimatedGradientLoader';\nimport ChartNoData from '@src/commons/ChartNoData';\nvar modalStyle = {\n overlay: {\n zIndex: 1,\n width: '100%',\n backgroundColor: 'rgba(46, 49, 49, 0.5)',\n },\n content: {\n height: '400px',\n top: '50%',\n left: '10%',\n right: '10%',\n transform: 'translateY(-50%)',\n border: null,\n borderRadius: '3px',\n boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.4)',\n display: 'flex',\n flexDirection: 'column',\n padding: '0',\n paddingBottom: '1rem',\n },\n};\nvar AdvertisingDwelltimeChartContainer = (function (_super) {\n __extends(AdvertisingDwelltimeChartContainer, _super);\n function AdvertisingDwelltimeChartContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n open: false,\n };\n _this.handleOpenModal = _this.handleOpenModal.bind(_this);\n return _this;\n }\n AdvertisingDwelltimeChartContainer.prototype.handleOpenModal = function () {\n this.setState({ open: true });\n };\n AdvertisingDwelltimeChartContainer.prototype.render = function () {\n var _this = this;\n var _a = this.props, data = _a.data, dwelltimeMean = _a.dwelltimeMean, dwelltimeMeanLoading = _a.dwelltimeMeanLoading, dwelltimeDailyLoading = _a.dwelltimeDailyLoading, locale = _a.locale, from = _a.from, to = _a.to, t = _a.t, timezone = _a.timezone;\n return (React.createElement(\"div\", { className: \"advertising__graph-small chart-card\" },\n dwelltimeDailyLoading && React.createElement(AnimatedGradientLoader, null),\n _.isEmpty(data) && !dwelltimeDailyLoading && (React.createElement(ChartNoData, { from: from, to: to, title: t('Advertising_Labels.graphs.dwelltime') })),\n !_.isEmpty(data) && !dwelltimeDailyLoading && !dwelltimeMeanLoading && (React.createElement(DwelltimeChartView, { data: data, granularity: \"daily\", highlightValue: dwelltimeMean, locale: locale, onOpenModal: this.handleOpenModal, showOpenModal: true, t: t, timezone: timezone })),\n !_.isEmpty(data) && !dwelltimeDailyLoading && !dwelltimeMeanLoading && (React.createElement(ReactModal, { isOpen: this.state.open, style: modalStyle, onRequestClose: function () {\n _this.setState({ open: false });\n }, ariaHideApp: false },\n React.createElement(\"i\", { className: \"material-icons close-button icon--grey\", onClick: function () {\n _this.setState({ open: false });\n } }, \"close\"),\n React.createElement(DwelltimeChartView, { data: data, granularity: \"daily\", highlightValue: dwelltimeMean, locale: locale, t: t, timezone: timezone })))));\n };\n return AdvertisingDwelltimeChartContainer;\n}(Component));\nexport { AdvertisingDwelltimeChartContainer };\nAdvertisingDwelltimeChartContainer.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n population: PropTypes.string,\n traffic: PropTypes.number,\n })),\n dwelltimeDailyLoading: PropTypes.bool,\n dwelltimeMeanLoading: PropTypes.bool,\n dwelltimeMean: PropTypes.number,\n locale: PropTypes.string,\n from: PropTypes.string,\n to: PropTypes.string,\n t: PropTypes.func,\n timezone: PropTypes.string,\n};\nexport var mapStateToProps = function (state, props) { return ({\n data: selectDwelltimeStats(state, __assign(__assign({}, props), { granularity: 'daily', kind: 'dwelltime' })),\n dwelltimeDailyLoading: selectDailyStatsLoading(state, __assign(__assign({}, props), { kind: 'dwelltime' })),\n dwelltimeMeanLoading: selectDwelltimeMeanLoading(state, __assign(__assign({}, props), { kind: 'dwelltime' })),\n dwelltimeMean: selectDwelltimeMean(state, __assign(__assign({}, props), { kind: 'dwelltime' })),\n locale: getterCurrentSiteLanguage(state),\n from: getCurrentDayFrom(state, props),\n timezone: getterCurrentSiteTimezone(state),\n to: getCurrentDayTo(state, props),\n}); };\nexport var mapDispatchToProps = function (dispatch) { return ({}); };\nexport default connect(mapStateToProps, mapDispatchToProps)(AdvertisingDwelltimeChartContainer);\n","export default __webpack_public_path__ + \"public/mean_traffic.svg\";","export default __webpack_public_path__ + \"public/timer.svg\";","import { __assign, __extends } from \"tslib\";\nimport React, { Component, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { withRouter } from 'react-router-dom';\nimport { selectCurrentPoi } from '@src/commons/pois/selectors';\nimport { getCurrentDayFrom, getCurrentDayTo } from '@src/navigation/selectors';\nimport { selectStoppingPaxHistory, selectAdvertisingDataIsLoaded, selectAreaPresenceSum, selectAreaPresenceUp300Sum, selectAreaPresenceUp600Sum, selectCurrentArea, selectMapAreas, } from '@src/reporting/selectors';\nimport { getterCurrentSite, selectIsAreaLoading, selectDisplayImageMap, selectDisplayGeoMap, getterAdvertisingLoading, } from '@src/reporting/advertising/selectors';\nimport { setNavigation, setCurrentDay } from '@src/navigation/actions';\nimport { fetchDwelltimeStats, fetchTrafficStatsByPopulation } from '@src/reporting/actions';\nimport { fetchAdvertisingStatsByArea, initAdvertisingSection } from '@src/reporting/advertising/actions';\nimport DatesPicker from '@src/commons/DatePicker';\nimport PoisPickerContainer from '@src/reporting/advertising/pois';\nimport Loader from '@src/commons/Loader';\nimport MapContainer from '@src/reporting/advertising/MapContainer';\nimport GeoMap from '@src/commons/map/GeoMap';\nimport FigureIconCard from '@src/commons/FigureIconCard';\nimport AdvertisingPopulationChartContainer from './populations';\nimport AdvertisingDwelltimeChartContainer from './dwelltime';\nimport '@src/commons/styles/molecules/dates-picker.scss';\nimport '@src/commons/styles/templates/advertising.scss';\nimport '@src/commons/styles/molecules/chart-card.scss';\nimport meanTrafficLogo from './assets/mean_traffic.svg';\nimport timerLogo from './assets/timer.svg';\nimport WeeklyBarChart from '@src/commons/WeeklyBarChart';\nvar AdvertisingContainer = (function (_super) {\n __extends(AdvertisingContainer, _super);\n function AdvertisingContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.handleDayChange = _this.handleDayChange.bind(_this);\n return _this;\n }\n AdvertisingContainer.prototype.componentDidMount = function () {\n var _a = this.props, initAdvertisingApp = _a.initAdvertisingApp, history = _a.history, currentDayTo = _a.currentDayTo;\n var getDayFrom = moment(currentDayTo, 'YYYY-MM-DD').subtract(6, 'days').format('YYYY-MM-DD');\n initAdvertisingApp({ section: 'advertising', currentPopulation: 'All populations' }, history, getDayFrom, currentDayTo);\n };\n AdvertisingContainer.prototype.handleDayChange = function (from, to) {\n var changeSelectedDay = this.props.changeSelectedDay;\n var formatedFrom = moment(from).format('YYYY-MM-DD');\n var formatedTo = moment(to).format('YYYY-MM-DD');\n changeSelectedDay(formatedFrom, formatedTo);\n };\n AdvertisingContainer.prototype.render = function () {\n var _a = this.props, stoppingPaxHistory = _a.stoppingPaxHistory, displayGeoMap = _a.displayGeoMap, displayImageMap = _a.displayImageMap, currentPoi = _a.currentPoi, t = _a.t, currentDayFrom = _a.currentDayFrom, currentDayTo = _a.currentDayTo, currentSite = _a.currentSite, advertisingLoading = _a.advertisingLoading, areaPresence = _a.areaPresence, isAreaPresenceLoading = _a.isAreaPresenceLoading, areaPresenceUp300 = _a.areaPresenceUp300, areaPresenceUp600 = _a.areaPresenceUp600;\n var stoppingPaxLabel = t('Reporting_Labels.stopping_pax');\n var trafficLabel = t('Advertising_Labels.traffic_pax_passing_by');\n var traffic300Label = t('Advertising_Labels.traffic_stopping_more_5min');\n var traffic600Label = t('Advertising_Labels.traffic_stopping_more_10min');\n var formatedStoppingPaxHistory = stoppingPaxHistory === null || stoppingPaxHistory === void 0 ? void 0 : stoppingPaxHistory.map(function (item) { return (__assign(__assign({}, item), { labels: [trafficLabel, traffic300Label, traffic600Label] })); });\n return (React.createElement(\"div\", { className: \"advertising\" },\n !advertisingLoading && currentPoi && (React.createElement(Fragment, null,\n React.createElement(\"div\", { className: \"advertising__header\" },\n React.createElement(\"div\", { className: \"advertising__header-row\" },\n React.createElement(\"div\", { className: \"advertising__title\" }, _.get(currentPoi, 'name')),\n React.createElement(\"div\", { className: \"dates-picker\" },\n React.createElement(PoisPickerContainer, { currentPoi: currentPoi, siteId: currentSite.uuid, t: t, placeholder: t('pois.picker.title_advertising') }))),\n React.createElement(DatesPicker, { t: t, from: currentDayFrom, to: currentDayTo, onDayChange: this.handleDayChange, isWeekSelection: true })),\n React.createElement(\"div\", { className: \"advertising__content\" },\n React.createElement(\"div\", { className: \"advertising__map\" },\n displayImageMap && React.createElement(MapContainer, { noClick: true, noColor: true, t: t }),\n displayGeoMap && (React.createElement(GeoMap, { noClick: true, noColor: true, lat: _.get(currentSite, 'latitude'), lng: _.get(currentSite, 'longitude'), currentFloor: {\n bounds: [\n [0, 0],\n [0, 0],\n ],\n } }))),\n React.createElement(\"div\", { className: \"advertising__graphs\" },\n React.createElement(\"div\", { className: \"advertising__cards\" },\n React.createElement(\"div\", { className: \"advertising__card\" },\n React.createElement(FigureIconCard, { label: t('Advertising_Labels.pax_passing_by'), icon: meanTrafficLogo, value: areaPresence ? new Intl.NumberFormat(moment.locale()).format(areaPresence) : '', loading: isAreaPresenceLoading })),\n React.createElement(\"div\", { className: \"advertising__card advertising__card--big\" },\n React.createElement(FigureIconCard, { label: t('Advertising_Labels.stopping_more_5min'), icon: timerLogo, value: areaPresenceUp300\n ? new Intl.NumberFormat(moment.locale()).format(areaPresenceUp300)\n : '', loading: isAreaPresenceLoading, comparedLabel: t('Advertising_Labels.pax_passing_by_percentage', {\n count: areaPresenceUp300 &&\n areaPresence > 0 &&\n Math.round((areaPresenceUp300 / areaPresence) * 100),\n }) })),\n React.createElement(\"div\", { className: \"advertising__card\" },\n React.createElement(FigureIconCard, { label: t('Advertising_Labels.stopping_more_10min'), icon: timerLogo, value: areaPresenceUp600\n ? new Intl.NumberFormat(moment.locale()).format(areaPresenceUp600)\n : '', loading: isAreaPresenceLoading, comparedLabel: t('Advertising_Labels.pax_passing_by_percentage', {\n count: areaPresenceUp600 &&\n areaPresence > 0 &&\n Math.round((areaPresenceUp600 / areaPresence) * 100),\n }) }))),\n React.createElement(\"div\", { className: \"advertising__graph-small-container\" },\n React.createElement(AdvertisingPopulationChartContainer, { siteId: currentSite.uuid, t: t }),\n React.createElement(AdvertisingDwelltimeChartContainer, { siteId: currentSite.uuid, t: t })),\n React.createElement(\"div\", { className: \"advertising__graph chart-card advertising__graph-big\" },\n React.createElement(WeeklyBarChart, { title: stoppingPaxLabel, subtitle: \"\", daysDistrib: formatedStoppingPaxHistory, loading: isAreaPresenceLoading, defaultTicks: true, t: t })))))),\n advertisingLoading && (React.createElement(\"div\", { className: \"advertising__loader\" },\n React.createElement(Loader, null)))));\n };\n return AdvertisingContainer;\n}(Component));\nexport { AdvertisingContainer };\nAdvertisingContainer.propTypes = {\n initAdvertisingApp: PropTypes.func,\n changeSelectedDay: PropTypes.func,\n currentDayFrom: PropTypes.string,\n currentDayTo: PropTypes.string,\n currentPoi: PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n }),\n currentSite: PropTypes.shape({\n uuid: PropTypes.string,\n }),\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n t: PropTypes.func,\n displayGeoMap: PropTypes.bool,\n displayImageMap: PropTypes.bool,\n advertisingLoading: PropTypes.bool,\n areaPresence: PropTypes.number,\n areaPresenceUp300: PropTypes.number,\n areaPresenceUp600: PropTypes.number,\n isAreaPresenceLoading: PropTypes.bool,\n stoppingPaxHistory: PropTypes.arrayOf(PropTypes.shape({\n date: PropTypes.string,\n values: PropTypes.shape({}),\n })),\n};\nvar mapStateToProps = function (state, props) { return ({\n currentArea: selectCurrentArea(state, props),\n currentDayFrom: getCurrentDayFrom(state, props),\n currentDayTo: getCurrentDayTo(state, props),\n currentPoi: selectCurrentPoi(state, props),\n mapAreas: selectMapAreas(state, props),\n displayImageMap: selectDisplayImageMap(state, props),\n displayGeoMap: selectDisplayGeoMap(state, props),\n currentSite: getterCurrentSite(state, props),\n loadingSelectedArea: selectIsAreaLoading(state, props),\n advertisingLoading: getterAdvertisingLoading(state),\n areaPresence: selectAreaPresenceSum(state, props),\n areaPresenceUp300: selectAreaPresenceUp300Sum(state, props),\n areaPresenceUp600: selectAreaPresenceUp600Sum(state, props),\n stoppingPaxHistory: selectStoppingPaxHistory(state, props),\n isAreaPresenceLoading: !selectAdvertisingDataIsLoaded(state, props),\n}); };\nvar mapDispatchToProps = function (dispatch) { return ({\n initAdvertisingApp: function (params, history, dayFrom, dayTo) {\n dispatch(setNavigation(params));\n dispatch(setCurrentDay(dayFrom, dayTo));\n dispatch(initAdvertisingSection(history));\n },\n changeSelectedDay: function (from, to) {\n dispatch(setCurrentDay(from, to));\n dispatch(fetchAdvertisingStatsByArea());\n dispatch(fetchTrafficStatsByPopulation());\n dispatch(fetchDwelltimeStats());\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(AdvertisingContainer));\n","import { __assign, __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter, Route, Switch } from 'react-router-dom';\nimport { setNavigation } from '@src/navigation/actions';\nimport DashboardContainer from '@src/reporting/dashboard';\nimport ReportsCreationContainer from '@src/reporting/reports';\nimport FlightsReportContainer from '@src/reporting/flights_report';\nimport RetailContainer from '@src/reporting/retail';\nimport AdvertisingContainer from '@src/reporting/advertising';\nimport { fetchConfig2 } from '@src/commons/configs/actions';\nimport { isConfigFetched } from '@src/commons/configs/selectors';\nvar ReportingContainer = (function (_super) {\n __extends(ReportingContainer, _super);\n function ReportingContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ReportingContainer.prototype.componentDidMount = function () {\n var _a = this.props, initReportingApp = _a.initReportingApp, siteId = _a.siteId, history = _a.history;\n initReportingApp({ app: 'reporting' }, siteId, history);\n };\n ReportingContainer.prototype.shouldComponentUpdate = function (nextProps) {\n var _a = this.props, siteId = _a.siteId, section = _a.section, subsection = _a.subsection, configFetched = _a.configFetched;\n return (siteId !== nextProps.siteId ||\n section !== nextProps.section ||\n subsection !== nextProps.subsection ||\n configFetched !== nextProps.configFetched);\n };\n ReportingContainer.prototype.render = function () {\n var _a = this.props, t = _a.t, configFetched = _a.configFetched, siteId = _a.siteId;\n return configFetched ? (React.createElement(Switch, null,\n React.createElement(Route, { exact: true, path: \"/v2/reporting/:siteId?\", component: function (props) { return React.createElement(DashboardContainer, __assign({}, props, { siteId: siteId, t: t })); } }),\n React.createElement(Route, { exact: true, path: \"/v2/reporting/:siteId?/dashboard\", component: function (props) { return React.createElement(DashboardContainer, __assign({}, props, { siteId: siteId, t: t })); } }),\n React.createElement(Route, { exact: true, path: \"/v2/reporting/:siteId?/reports\", component: function (props) { return React.createElement(ReportsCreationContainer, __assign({}, props, { siteId: siteId })); } }),\n React.createElement(Route, { exact: true, path: \"/v2/reporting/:siteId?/flights/:subsection?\", component: function (props) { return React.createElement(FlightsReportContainer, __assign({}, props, { siteId: siteId, t: t })); } }),\n React.createElement(Route, { exact: true, path: \"/v2/reporting/:siteId?/retail\", component: function (props) { return React.createElement(RetailContainer, __assign({}, props, { siteId: siteId, t: t })); } }),\n React.createElement(Route, { exact: true, path: \"/v2/reporting/:siteId?/advertising\", component: function (props) { return React.createElement(AdvertisingContainer, __assign({}, props, { siteId: siteId, t: t })); } }))) : (React.createElement(\"div\", null));\n };\n return ReportingContainer;\n}(Component));\nexport { ReportingContainer };\nReportingContainer.propTypes = {\n configFetched: PropTypes.bool,\n initReportingApp: PropTypes.func,\n siteId: PropTypes.string,\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n match: PropTypes.shape({\n params: PropTypes.shape({\n section: PropTypes.string,\n }),\n }),\n t: PropTypes.func,\n section: PropTypes.string,\n subsection: PropTypes.string,\n};\nvar mapStateToProps = function (state, props) {\n var siteId = _.get(props.match, 'params.siteId');\n var section = _.get(props.match, 'params.section', 'dashboard');\n var subsection = _.get(props.match, 'params.subsection', 'summary');\n return {\n siteId: siteId,\n section: section,\n subsection: subsection,\n configFetched: isConfigFetched(state, __assign(__assign({}, props), { siteId: siteId })),\n };\n};\nexport var mapDispatchToProps = function (dispatch) { return ({\n initReportingApp: function (params, siteId, history) {\n dispatch(setNavigation(params));\n dispatch(fetchConfig2(siteId, history));\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ReportingContainer));\n","export default __webpack_public_path__ + \"public/monitoring-active.svg\";","export default __webpack_public_path__ + \"public/monitoring.svg\";","export default __webpack_public_path__ + \"public/social-distancing.svg\";","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport { useAuth0 } from '@auth0/auth0-react';\nimport monitoringActive from './monitoring-active.svg';\nimport monitoring from './monitoring.svg';\nimport '@src/commons/styles/templates/main.scss';\nimport '@src/commons/styles/organisms/side-menu.scss';\nimport socialDistancing from './social-distancing.svg';\nvar SideMenu = function (_a) {\n var currentApp = _a.currentApp, siteId = _a.siteId, isHomeMapViewActivated = _a.isHomeMapViewActivated, isMonitoringAvailable = _a.isMonitoringAvailable, isLiveV2Available = _a.isLiveV2Available, isInsightViewerAvailable = _a.isInsightViewerAvailable, isReportingV2Available = _a.isReportingV2Available, isSocialDistancingAppAvailable = _a.isSocialDistancingAppAvailable, t = _a.t;\n var logout = useAuth0().logout;\n var onLogout = useCallback(function () {\n return logout({ returnTo: window.location.origin });\n }, [logout]);\n return (React.createElement(\"div\", { className: \"main__side-bar side-menu\" },\n React.createElement(\"div\", { className: \"side-menu__top\" },\n isHomeMapViewActivated ? (React.createElement(Link, { to: \"/v2/home/\" + siteId },\n React.createElement(\"div\", { className: \"side-menu__menu-item\" },\n React.createElement(\"div\", { className: \"side-menu__logo\" })))) : (React.createElement(\"div\", { className: \"side-menu__menu-item side-menu__menu-item--no-pointer\" },\n React.createElement(\"div\", { className: \"side-menu__logo\" }))),\n isLiveV2Available && (React.createElement(\"div\", null,\n React.createElement(Link, { to: \"/v2/live/\" + siteId },\n React.createElement(\"div\", { className: \"side-menu__menu-item \" + (currentApp === 'live' ? 'side-menu__menu-item--active' : '') },\n React.createElement(\"div\", { className: \"side-menu__menu-item-link\" },\n React.createElement(\"div\", null,\n React.createElement(\"i\", { className: \"material-icons side-menu__menu-item-icon \" + (currentApp === 'live' ? 'side-menu__menu-item-icon--active' : '') }, \"update\")),\n React.createElement(\"div\", { className: \"sidem-menu__menu-item-label \" + (currentApp === 'live' ? 'sidem-menu__menu-item-label--active' : '') }, t('Side_Menu.live'))))))),\n isReportingV2Available && (React.createElement(Link, { to: \"/v2/reporting/\" + siteId + \"/\" },\n React.createElement(\"div\", { className: \"side-menu__menu-item \" + (currentApp === 'reporting' ? 'side-menu__menu-item--active' : '') },\n React.createElement(\"div\", { className: \"side-menu__menu-item-link\" },\n React.createElement(\"div\", null,\n React.createElement(\"i\", { className: \"material-icons side-menu__menu-item-icon \" + (currentApp === 'reporting' ? 'side-menu__menu-item-icon--active' : '') }, \"dashboard\")),\n React.createElement(\"div\", { className: \"sidem-menu__menu-item-label \" + (currentApp === 'reporting' ? 'sidem-menu__menu-item-label--active' : '') }, t('Side_Menu.reporting')))))),\n isSocialDistancingAppAvailable && (React.createElement(Link, { to: \"/v2/social-distancing/\" + siteId + \"/\" },\n React.createElement(\"div\", { className: \"side-menu__menu-item \" + (currentApp === 'social-distancing' ? 'side-menu__menu-item--active' : '') },\n React.createElement(\"div\", { className: \"side-menu__menu-item-link\" },\n React.createElement(\"div\", null,\n React.createElement(\"img\", { className: \"side-menu__menu-item-icon--image side-menu__menu-item-icon \" + (currentApp === 'social-distancing' ? 'side-menu__menu-item-icon--active' : ''), src: socialDistancing })),\n React.createElement(\"div\", { className: \"sidem-menu__menu-item-label \" + (currentApp === 'social-distancing' ? 'sidem-menu__menu-item-label--active' : '') }, t('Side_Menu.social_distancing')))))),\n isInsightViewerAvailable && (React.createElement(Link, { to: \"/v2/insights/\" + siteId + \"/\" },\n React.createElement(\"div\", { className: \"side-menu__menu-item \" + (currentApp === 'insights' ? 'side-menu__menu-item--active' : '') },\n React.createElement(\"div\", { className: \"side-menu__menu-item-link\" },\n React.createElement(\"div\", null,\n React.createElement(\"i\", { className: \"material-icons side-menu__menu-item-icon \" + (currentApp === 'insights' ? 'side-menu__menu-item-icon--active' : '') }, \"explore\")),\n React.createElement(\"div\", { className: \"sidem-menu__menu-item-label \" + (currentApp === 'insights' ? 'sidem-menu__menu-item-label--active' : '') }, t('Side_Menu.intelligence'))))))),\n React.createElement(\"div\", { className: \"side-menu__bottom\" },\n isMonitoringAvailable && (React.createElement(Link, { to: \"/v2/monitoring/\" + siteId + \"/\" },\n React.createElement(\"div\", { className: \"side-menu__menu-item \" + (currentApp === 'monitoring' ? 'side-menu__menu-item--active' : '') },\n React.createElement(\"div\", { className: \"side-menu__menu-item-link\" },\n React.createElement(\"div\", null,\n React.createElement(\"img\", { src: currentApp === 'monitoring' ? monitoringActive : monitoring })),\n React.createElement(\"div\", { className: \"sidem-menu__menu-item-label \" + (currentApp === 'monitoring' ? 'sidem-menu__menu-item-label--active' : '') }, t('Side_Menu.monitoring')))))),\n React.createElement(\"div\", { className: \"side-menu__menu-item\" },\n React.createElement(\"div\", { onClick: onLogout },\n React.createElement(\"div\", { className: \"side-menu__menu-item-link\" },\n React.createElement(\"div\", null,\n React.createElement(\"i\", { className: \"material-icons side-menu__menu-item-icon\" }, \"account_circle\")),\n React.createElement(\"div\", { className: \"sidem-menu__menu-item-label\" }, t('Side_Menu.log_out'))))))));\n};\nSideMenu.propTypes = {\n allowedGoToV1: PropTypes.bool,\n currentApp: PropTypes.string,\n siteId: PropTypes.string,\n isMonitoringAvailable: PropTypes.bool,\n isLiveV2Available: PropTypes.bool,\n isReportingAvailable: PropTypes.bool,\n isIntelligenceAvailable: PropTypes.bool,\n isSettingsAvailable: PropTypes.bool,\n isLiveV1Available: PropTypes.bool,\n isInsightViewerAvailable: PropTypes.bool,\n isReportingV2Available: PropTypes.bool,\n isSocialDistancingAppAvailable: PropTypes.bool,\n isHomeMapViewActivated: PropTypes.bool,\n t: PropTypes.func,\n};\nexport default SideMenu;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport SideMenu from './SideMenu';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nexport var SideMenuContainer = function (props) {\n var currentApp = props.currentApp, currentSite = props.currentSite, isMonitoringAvailable = props.isMonitoringAvailable, isLiveV2Available = props.isLiveV2Available, isInsightViewerAvailable = props.isInsightViewerAvailable, isReportingV2Available = props.isReportingV2Available, isSocialDistancingAppAvailable = props.isSocialDistancingAppAvailable, isHomeMapViewActivated = props.isHomeMapViewActivated, t = props.t;\n return (React.createElement(SideMenu, { currentApp: currentApp, siteId: currentSite, isMonitoringAvailable: isMonitoringAvailable, isLiveV2Available: isLiveV2Available, isInsightViewerAvailable: isInsightViewerAvailable, isReportingV2Available: isReportingV2Available, isSocialDistancingAppAvailable: isSocialDistancingAppAvailable, isHomeMapViewActivated: isHomeMapViewActivated, t: t }));\n};\nSideMenuContainer.propTypes = {\n currentApp: PropTypes.string,\n currentSite: PropTypes.string,\n isMonitoringAvailable: PropTypes.bool,\n isLiveV2Available: PropTypes.bool,\n isInsightViewerAvailable: PropTypes.bool,\n isReportingV2Available: PropTypes.bool,\n isSocialDistancingAppAvailable: PropTypes.bool,\n isHomeMapViewActivated: PropTypes.bool,\n t: PropTypes.func,\n};\nexport var mapStateToProps = function (state) { return ({\n currentApp: state.navigation.app,\n currentSite: state.navigation.siteId,\n isMonitoringAvailable: isFeatureActivated('monitoring')(state),\n isLiveV2Available: isFeatureActivated('live_v2')(state),\n isInsightViewerAvailable: isFeatureActivated('insight-viewer')(state),\n isReportingV2Available: isFeatureActivated('insight-reporting')(state),\n isSocialDistancingAppAvailable: isFeatureActivated('social_distancing_app')(state),\n isHomeMapViewActivated: isFeatureActivated('home_map_view')(state) && _.get(state.sites, 'data', []).length > 1,\n}); };\nexport default withRouter(connect(mapStateToProps)(SideMenuContainer));\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport _ from 'lodash';\nimport { flow, get, head, find } from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport { withTranslation } from 'react-i18next';\nimport '@src/commons/styles/templates/social-distancing.scss';\nimport MapContainer from '@src/social_distancing/social_distancing_assistant/MapContainer';\nimport GeoMap from '@src/commons/map/GeoMap';\nimport { getAllLiveAreas, isFloorsLoading, isNoFloor, isLiveAreasLoading, getCurrentLiveArea, } from '@src/commons/floors/selectors';\nimport SocialDistancingTableContainer from '@src/social_distancing/social_distancing_assistant/social_distancing_table';\nimport ClockComponent from '@src/live/clock/index';\nimport SocialDistancingTableBig from '@src/social_distancing/social_distancing_assistant/social_distancing_table/SocialDistancingTableBig';\nimport { fetchSocialDistancingAssistantStats } from '@src/social_distancing/social_distancing_assistant/actions';\nimport { setNavigation } from '@src/navigation/actions';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nimport StatusMessage from '@src/live/realtime/StatusMessage';\nvar SocialDistancingAssistantContainer = (function (_super) {\n __extends(SocialDistancingAssistantContainer, _super);\n function SocialDistancingAssistantContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SocialDistancingAssistantContainer.prototype.UNSAFE_componentWillMount = function () {\n var _a = this.props, initSocialDistancingAssitantApp = _a.initSocialDistancingAssitantApp, history = _a.history;\n initSocialDistancingAssitantApp({ section: 'assistant' }, history);\n };\n SocialDistancingAssistantContainer.prototype.render = function () {\n var _a = this.props, t = _a.t, siteId = _a.siteId, floorsLoading = _a.floorsLoading, liveAreasLoading = _a.liveAreasLoading, noFloors = _a.noFloors, currentSite = _a.currentSite, isWrongDataWifi = _a.isWrongDataWifi;\n var wrongWifiDataLabel = t('wrong_wifi_data', { ns: 'common' });\n return (React.createElement(\"div\", { className: \"social-distancing\" },\n React.createElement(\"div\", { className: \"social-distancing__header\" },\n React.createElement(\"div\", { className: \"social-distancing__title\" }, t('Social_Distancing_Labels.title')),\n React.createElement(\"div\", null,\n React.createElement(ClockComponent, { timezoneClock: _.get(currentSite, 'timezone') }))),\n isWrongDataWifi && React.createElement(StatusMessage, { message: wrongWifiDataLabel }),\n React.createElement(\"div\", { className: \"social-distancing__content\" },\n React.createElement(\"div\", { className: \"social-distancing__element\" }, (!liveAreasLoading || noFloors) && (React.createElement(\"div\", { className: \"social-distancing__map\" },\n !floorsLoading && !noFloors && React.createElement(MapContainer, { t: t }),\n !floorsLoading && noFloors && (React.createElement(GeoMap, { lat: parseFloat(_.get(currentSite, 'latitude')), lng: parseFloat(_.get(currentSite, 'longitude')), currentFloor: {\n bounds: [\n [0, 0],\n [0, 0],\n ],\n } }))))),\n React.createElement(\"div\", { className: \"social-distancing__element\" }, !floorsLoading && (React.createElement(SocialDistancingTableContainer, { siteId: siteId, t: t, SocialDistancingTableView: SocialDistancingTableBig }))))));\n };\n return SocialDistancingAssistantContainer;\n}(Component));\nexport { SocialDistancingAssistantContainer };\nSocialDistancingAssistantContainer.propTypes = {\n siteId: PropTypes.string,\n floorsLoading: PropTypes.bool,\n liveAreasLoading: PropTypes.bool,\n noFloors: PropTypes.bool,\n currentSite: PropTypes.shape({ uuid: PropTypes.string }),\n match: PropTypes.shape({\n params: PropTypes.shape({\n siteId: PropTypes.string,\n section: PropTypes.string,\n }),\n }),\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n t: PropTypes.func,\n isWrongDataWifi: PropTypes.bool,\n initSocialDistancingAssitantApp: PropTypes.func,\n};\nexport var mapStateToProps = function (state, props) {\n var currentSiteId = _.get(props.match, 'params.siteId');\n var liveAreas = getAllLiveAreas(currentSiteId)(state);\n return {\n currentSite: flow(get('sites.data'), currentSiteId ? find({ uuid: currentSiteId }) : head)(state),\n floorsLoading: isFloorsLoading(currentSiteId)(state),\n noFloors: isNoFloor(currentSiteId)(state),\n liveAreas: liveAreas,\n liveAreasLoading: isLiveAreasLoading(currentSiteId)(state),\n currentLiveArea: getCurrentLiveArea(liveAreas)(state),\n isWrongDataWifi: isFeatureActivated('wrong_wifi_data')(state),\n };\n};\nvar mapDispatchToProps = function (dispatch) { return ({\n initSocialDistancingAssitantApp: function (params, history) {\n dispatch(setNavigation(params));\n dispatch(fetchSocialDistancingAssistantStats(history));\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(withTranslation(['legacy', 'common'])(SocialDistancingAssistantContainer)));\n","export var fetchSocialDistancingAssistantStats = function (history) { return ({\n type: 'FETCH_SOCIAL_DISTANCING_ASSISTANT_STATS',\n history: history,\n}); };\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport _ from 'lodash';\nimport { selectArea, setCurrentFloor } from '@src/commons/floors/actions';\nimport { getCurrentSiteId2 } from '@src/navigation/selectors';\nimport PictureMap from '@src/commons/map/PictureMap';\nimport PicturePicker from '@src/commons/map/PicturePicker';\nimport GeoMap from '@src/commons/map/GeoMap';\nimport '@src/commons/styles/organisms/realtime-carto.scss';\nimport { selectMapPicturesAllAreas, selectAllMapPolygons, selectIsMapLoading, selectMapBounds, } from './selectors';\nvar MapContainer = (function (_super) {\n __extends(MapContainer, _super);\n function MapContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.handleSelectPolygon = _this.handleSelectPolygon.bind(_this);\n _this.handleSelectPicture = _this.handleSelectPicture.bind(_this);\n return _this;\n }\n MapContainer.prototype.handleSelectPicture = function (e, pictureId) {\n var _a = this.props, onChangePicture = _a.onChangePicture, siteId = _a.siteId, history = _a.history;\n onChangePicture(siteId, pictureId, history);\n e.stopPropagation();\n e.preventDefault();\n };\n MapContainer.prototype.handleSelectPolygon = function (polygonId) {\n var _a = this.props, siteId = _a.siteId, pictures = _a.pictures, onSelectPolygon = _a.onSelectPolygon, history = _a.history;\n var currentPicture = _.find(pictures, function (p) { return p.isSelected; });\n onSelectPolygon(siteId, currentPicture.uuid, polygonId, history);\n };\n MapContainer.prototype.render = function () {\n var _a = this.props, loading = _a.loading, pictures = _a.pictures, noClick = _a.noClick, bounds = _a.bounds, polygonsActual = _a.polygonsActual;\n var currentPicture = _.find(pictures, function (p) { return p.isSelected; });\n return loading ? (React.createElement(\"div\", null, \"Loading ...\")) : (React.createElement(\"div\", { className: \"realtime-map__content\" },\n pictures.length > 1 && (React.createElement(PicturePicker, { pictures: pictures, onSelectPicture: this.handleSelectPicture })),\n _.get(currentPicture, 'image') ? (React.createElement(PictureMap, { pictures: pictures, onSelectPolygon: this.handleSelectPolygon, noClick: noClick, polygons: polygonsActual })) : (React.createElement(GeoMap, { bounds: bounds, polygons: polygonsActual, onSelectPolygon: this.handleSelectPolygon, noClick: noClick }))));\n };\n return MapContainer;\n}(Component));\nexport { MapContainer };\nMapContainer.propTypes = {\n loading: PropTypes.bool,\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n polygonsActual: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n color: PropTypes.string,\n borderColor: PropTypes.string,\n opacity: PropTypes.number,\n hasTooltip: PropTypes.bool,\n noClick: PropTypes.bool,\n geometry: PropTypes.arrayOf(PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number,\n })),\n })),\n onChangePicture: PropTypes.func,\n onSelectPolygon: PropTypes.func,\n noClick: PropTypes.bool,\n siteId: PropTypes.string,\n pictures: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n bounds: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n image: PropTypes.string,\n isSelected: PropTypes.bool,\n name: PropTypes.string,\n })),\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n};\nexport var mapStateToProps = function (state, props) { return ({\n siteId: getCurrentSiteId2(state),\n loading: selectIsMapLoading(state, props),\n pictures: selectMapPicturesAllAreas(state, props),\n polygonsActual: selectAllMapPolygons(state, props),\n bounds: selectMapBounds(state, props),\n}); };\nexport var mapDispatchToProps = function (dispatch) { return ({\n onChangePicture: function (siteId, pictureId, history) {\n dispatch(setCurrentFloor(siteId, pictureId, history));\n },\n onSelectPolygon: function (siteId, pictureId, polygonId, history) {\n dispatch(selectArea(siteId, pictureId, polygonId, history));\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(MapContainer));\n","export default __webpack_public_path__ + \"public/recovery_ratio.svg\";","import { __assign, __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport meanTrafficLogo from './assets/mean_traffic.svg';\nimport recoveryRatio from './assets/recovery_ratio.svg';\nimport FigureIconCard from '@src/commons/FigureIconCard';\nimport '@src/commons/styles/organisms/social-distancing-monitoring-cards.scss';\nimport { getSocialDistancingParameters, isSocialDistancingParametersLoading, } from '@src/social_distancing/selectors';\nimport { selectDailyTraffic, selectRatioCoverage, isSocialDistancingDailyTrafficLoading, isSocialDistancingRatioLoading, } from '@src/social_distancing/social_distancing_monitoring/selectors';\nimport { getCurrentDayFrom } from '@src/navigation/selectors';\nvar SocialDistancingMonitoringCardsContainer = (function (_super) {\n __extends(SocialDistancingMonitoringCardsContainer, _super);\n function SocialDistancingMonitoringCardsContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SocialDistancingMonitoringCardsContainer.prototype.render = function () {\n var _a = this.props, meanTraffic = _a.meanTraffic, dailyTraffic = _a.dailyTraffic, ratioCoverage = _a.ratioCoverage, isDailyTrafficLoading = _a.isDailyTrafficLoading, isMeanTrafficLoading = _a.isMeanTrafficLoading, isRatioLoading = _a.isRatioLoading, t = _a.t;\n return (React.createElement(\"div\", { className: \"sdm-cards\" },\n React.createElement(\"div\", { className: \"sdm-cards__card\" },\n React.createElement(FigureIconCard, { loading: isDailyTrafficLoading, icon: meanTrafficLogo, label: t('Social_Distancing_Labels.SocialDistancingMonitoring.traffic'), value: dailyTraffic\n ? new Intl.NumberFormat(moment.locale()).format(dailyTraffic) + \" \" + t('Social_Distancing_Labels.SocialDistancingMonitoring.pax')\n : 'No Data' })),\n React.createElement(\"div\", { className: \"sdm-cards__card--big\" },\n React.createElement(FigureIconCard, { loading: isMeanTrafficLoading, icon: meanTrafficLogo, label: t('Social_Distancing_Labels.SocialDistancingMonitoring.traffic_reference'), value: meanTraffic\n ? new Intl.NumberFormat(moment.locale()).format(meanTraffic) + \" \" + t('Social_Distancing_Labels.SocialDistancingMonitoring.pax')\n : 'No Data' })),\n React.createElement(\"div\", { className: \"sdm-cards__card\" },\n React.createElement(FigureIconCard, { loading: isRatioLoading, icon: recoveryRatio, label: t('Social_Distancing_Labels.SocialDistancingMonitoring.recovery_ratio'), value: ratioCoverage ? ratioCoverage + \" %\" : 'No Data' }))));\n };\n return SocialDistancingMonitoringCardsContainer;\n}(Component));\nexport { SocialDistancingMonitoringCardsContainer };\nSocialDistancingMonitoringCardsContainer.propTypes = {\n meanTraffic: PropTypes.number,\n dailyTraffic: PropTypes.number,\n ratioCoverage: PropTypes.number,\n isMeanTrafficLoading: PropTypes.bool,\n isRatioLoading: PropTypes.bool,\n isDailyTrafficLoading: PropTypes.bool,\n t: PropTypes.func,\n};\nexport var mapStateToProps = function (state, props) { return ({\n meanTraffic: _.get(getSocialDistancingParameters(state, props), 'traffic_reference'),\n isMeanTrafficLoading: isSocialDistancingParametersLoading(state, props),\n dailyTraffic: selectDailyTraffic(state, __assign(__assign({}, props), { currentDate: getCurrentDayFrom(state) })),\n isDailyTrafficLoading: isSocialDistancingDailyTrafficLoading(state, __assign(__assign({}, props), { currentDate: getCurrentDayFrom(state) })),\n ratioCoverage: selectRatioCoverage(state, __assign(__assign({}, props), { currentDate: getCurrentDayFrom(state) })),\n isRatioLoading: isSocialDistancingRatioLoading(state, __assign(__assign({}, props), { currentDate: getCurrentDayFrom(state) })),\n}); };\nexport var mapDispatchToProps = function (dispatch) { return ({}); };\nexport default connect(mapStateToProps, mapDispatchToProps)(SocialDistancingMonitoringCardsContainer);\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport '@src/commons/styles/templates/social-distancing.scss';\nimport { setNavigation, setCurrentDay } from '@src/navigation/actions';\nimport { fetchSocialDistancingMonitoringStats, fetchAllPresenceStock15min, fetchDailyTraffic, } from '@src/social_distancing/social_distancing_monitoring/actions';\nimport SocialDistancingMonitoringTableContainer from './SocialDistancingMonitoringTableContainer';\nimport MapContainer from './MapContainer';\nimport GeoMap from '@src/commons/map/GeoMap.js';\nimport DatesPicker from '@src/commons/DatePicker';\nimport { getCurrentSiteId, getCurrentDayFrom } from '@src/navigation/selectors';\nimport { selectMapAreas } from '@src/reporting/selectors';\nimport { isFloorsLoading, isNoFloor } from '@src/commons/floors/selectors';\nimport { getCurrentSite } from '@src/live/walkingTimes/selectors';\nimport SocialDistancingMonitoringCardsContainer from './SocialDistancingMonitoringCardsContainer';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nvar SocialDistancingMonitoringContainer = (function (_super) {\n __extends(SocialDistancingMonitoringContainer, _super);\n function SocialDistancingMonitoringContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.handleDayChange = _this.handleDayChange.bind(_this);\n return _this;\n }\n SocialDistancingMonitoringContainer.prototype.handleDayChange = function (from) {\n var _a = this.props, changeSelectedDay = _a.changeSelectedDay, siteId = _a.siteId;\n var formatedFrom = moment(from).format('YYYY-MM-DD');\n changeSelectedDay(formatedFrom, siteId);\n };\n SocialDistancingMonitoringContainer.prototype.UNSAFE_componentWillMount = function () {\n var _a = this.props, initSocialDistancingMonitoringApp = _a.initSocialDistancingMonitoringApp, history = _a.history;\n initSocialDistancingMonitoringApp({ section: 'monitoring' }, history);\n };\n SocialDistancingMonitoringContainer.prototype.render = function () {\n var _a = this.props, t = _a.t, floorsLoading = _a.floorsLoading, noFloors = _a.noFloors, mapAreas = _a.mapAreas, currentSite = _a.currentSite, siteId = _a.siteId, currentDay = _a.currentDay, isSDMIteration2Active = _a.isSDMIteration2Active;\n return (React.createElement(\"div\", { className: \"social-distancing\" },\n React.createElement(\"div\", { className: \"social-distancing__header\" },\n React.createElement(\"div\", { className: \"social-distancing__title\" }, t('Social_Distancing_Labels.SocialDistancingMonitoring.title')),\n React.createElement(DatesPicker, { t: t, from: currentDay, to: currentDay, onDayChange: this.handleDayChange, isSingleDate: true })),\n React.createElement(\"div\", { className: \"social-distancing__content\" },\n React.createElement(\"div\", { className: \"social-distancing__map-element\" },\n !floorsLoading && !noFloors && React.createElement(MapContainer, { areas: mapAreas, noColor: true, t: t }),\n !floorsLoading && noFloors && (React.createElement(GeoMap, { noColor: true, lat: parseFloat(_.get(currentSite, 'latitude')), lng: parseFloat(_.get(currentSite, 'longitude')), currentFloor: {\n bounds: [\n [0, 0],\n [0, 0],\n ],\n } }))),\n React.createElement(\"div\", { className: \"social-distancing__element\" },\n isSDMIteration2Active && React.createElement(SocialDistancingMonitoringCardsContainer, { siteId: siteId, t: t }),\n React.createElement(SocialDistancingMonitoringTableContainer, { t: t, siteId: siteId })))));\n };\n return SocialDistancingMonitoringContainer;\n}(Component));\nexport { SocialDistancingMonitoringContainer };\nSocialDistancingMonitoringContainer.propTypes = {\n initSocialDistancingMonitoringApp: PropTypes.func,\n t: PropTypes.func,\n floorsLoading: PropTypes.bool,\n noFloors: PropTypes.bool,\n currentSite: PropTypes.shape({\n uuid: PropTypes.string,\n }),\n siteId: PropTypes.string,\n mapAreas: PropTypes.arrayOf(PropTypes.shape({\n color: PropTypes.string,\n name: PropTypes.name,\n })),\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n changeSelectedDay: PropTypes.func,\n currentDay: PropTypes.string,\n isSDMIteration2Active: PropTypes.bool,\n};\nexport var mapStateToProps = function (state, props) {\n var currentSiteId = getCurrentSiteId()(state);\n return {\n currentSite: getCurrentSite(state, props),\n floorsLoading: isFloorsLoading(currentSiteId)(state),\n noFloors: isNoFloor(currentSiteId)(state),\n mapAreas: selectMapAreas(state, props),\n currentDay: getCurrentDayFrom(state, props),\n isSDMIteration2Active: isFeatureActivated('social_distancing_monitoring_iteration_2')(state),\n };\n};\nexport var mapDispatchToProps = function (dispatch) { return ({\n initSocialDistancingMonitoringApp: function (params, history) {\n dispatch(setNavigation(params));\n dispatch(fetchSocialDistancingMonitoringStats(history));\n },\n changeSelectedDay: function (date, siteId) {\n dispatch(setCurrentDay(date, date));\n dispatch(fetchAllPresenceStock15min(siteId, date));\n dispatch(fetchDailyTraffic(siteId, date));\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(SocialDistancingMonitoringContainer));\n","import { __assign, __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter, Route, Switch } from 'react-router-dom';\nimport { setNavigation } from '../navigation/actions';\nimport '@src/commons/styles/templates/social-distancing.scss';\nimport { fetchConfig2 } from '@src/commons/configs/actions';\nimport { getDefaultFloor } from '@src/commons/floors/sagas';\nimport { isConfigFetched } from '@src/commons/configs/selectors';\nimport SocialDistancingAssitantContainer from '@src/social_distancing/social_distancing_assistant';\nimport SocialDistancingMonitoringContainer from '@src/social_distancing/social_distancing_monitoring';\nimport { getCurrentSiteId2 } from '@src/navigation/selectors';\nvar SocialDistancingAppContainer = (function (_super) {\n __extends(SocialDistancingAppContainer, _super);\n function SocialDistancingAppContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SocialDistancingAppContainer.prototype.UNSAFE_componentWillMount = function () {\n var _a = this.props, initSocialDistancingApp = _a.initSocialDistancingApp, match = _a.match, history = _a.history;\n initSocialDistancingApp({ app: 'social-distancing', areaId: null, floorId: _.get(getDefaultFloor(), 'uuid') }, match.params.siteId, history);\n };\n SocialDistancingAppContainer.prototype.shouldComponentUpdate = function (nextProps, nextState) {\n var _a = this.props, match = _a.match, t = _a.t, configFetched = _a.configFetched;\n var isSiteIdUpdated = nextProps.match.params.siteId !== match.params.siteId;\n var isSectionUpdated = nextProps.match.params.section !== match.params.section;\n var isTUpdated = t !== nextProps.t;\n var isConfigFetchedUpdated = configFetched !== nextProps.configFetched;\n return isSiteIdUpdated || isSectionUpdated || isTUpdated || isConfigFetchedUpdated;\n };\n SocialDistancingAppContainer.prototype.render = function () {\n var _a = this.props, t = _a.t, configFetched = _a.configFetched, siteId = _a.siteId;\n if (configFetched) {\n return (React.createElement(Switch, null,\n React.createElement(Route, { exact: true, path: \"/v2/social-distancing/:siteId?\", component: function () { return React.createElement(SocialDistancingAssitantContainer, { siteId: siteId }); } }),\n React.createElement(Route, { exact: true, path: \"/v2/social-distancing/:siteId?/assistant\", component: function () { return React.createElement(SocialDistancingAssitantContainer, { siteId: siteId }); } }),\n React.createElement(Route, { exact: true, path: \"/v2/social-distancing/:siteId?/monitoring\", component: function () { return React.createElement(SocialDistancingMonitoringContainer, { siteId: siteId, t: t }); } })));\n }\n return null;\n };\n return SocialDistancingAppContainer;\n}(Component));\nexport { SocialDistancingAppContainer };\nSocialDistancingAppContainer.propTypes = {\n initSocialDistancingApp: PropTypes.func,\n match: PropTypes.shape({\n params: PropTypes.shape({\n siteId: PropTypes.string,\n section: PropTypes.string,\n }),\n }),\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n t: PropTypes.func,\n configFetched: PropTypes.bool,\n siteId: PropTypes.string,\n};\nexport var mapStateToProps = function (state, props) { return ({\n siteId: getCurrentSiteId2(state),\n configFetched: isConfigFetched(state, __assign(__assign({}, props), { siteId: props.match.params.siteId })),\n}); };\nexport var mapDispatchToProps = function (dispatch) { return ({\n initSocialDistancingApp: function (params, siteId, history) {\n dispatch(setNavigation(params));\n dispatch(fetchConfig2(siteId, history));\n },\n}); };\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(SocialDistancingAppContainer));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport '@src/commons/styles/molecules/site-selector.scss';\nimport '@src/commons/styles/molecules/search-box.scss';\nimport '@src/commons/styles/atoms/search-input.scss';\nvar SiteSelector = function (_a) {\n var sites = _a.sites, currentSite = _a.currentSite, searchContent = _a.searchContent, open = _a.open, onOpen = _a.onOpen, onSearch = _a.onSearch, onSelectSite = _a.onSelectSite, t = _a.t;\n return (React.createElement(\"div\", { className: \"site-selector\" },\n React.createElement(\"div\", { className: \"site-selector__header\", onClick: onOpen },\n React.createElement(\"div\", { className: \"site-selector__header-title\" }, currentSite.display_name || currentSite.name),\n React.createElement(\"i\", { className: \"material-icons\" }, open ? 'arrow_drop_up' : 'arrow_drop_down')),\n open && (React.createElement(\"div\", { className: \"site-selector__search-box\" },\n React.createElement(\"div\", { className: \"site-selector__search-input\" },\n React.createElement(\"div\", { className: \"site-selector__search-input-container\" },\n React.createElement(\"div\", { className: \"search-box\" },\n React.createElement(\"i\", { className: \"search-box__search-icon material-icons\" }, \"search\"),\n React.createElement(\"input\", { type: \"text\", className: \"search-box__input search-input\", placeholder: t('search'), autoFocus: true, onChange: function (e) { return onSearch(e.target.value); }, value: searchContent })))),\n React.createElement(\"div\", { className: \"site-selector__results\" }, _(sites)\n .sortBy(function (site) { return _.lowerCase(site.display_name || site.name); })\n .map(function (site) { return (React.createElement(\"div\", { onClick: function (e) { return onSelectSite(e, site); }, key: site.uuid, className: \"site-selector__result\" }, site.display_name || site.name)); })\n .value())))));\n};\nSiteSelector.propTypes = {\n sites: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string.isRequired,\n name: PropTypes.string,\n })),\n currentSite: PropTypes.shape({\n uuid: PropTypes.string.isRequired,\n name: PropTypes.string,\n }),\n searchContent: PropTypes.string,\n open: PropTypes.bool,\n onOpen: PropTypes.func,\n onSearch: PropTypes.func,\n onSelectSite: PropTypes.func,\n t: PropTypes.func,\n};\nexport default SiteSelector;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport '@src/commons/styles/organisms/top-bar-menu.scss';\nvar LiveMenu = function (_a) {\n var siteId = _a.siteId, liveSection = _a.liveSection, t = _a.t, isWalkingTimesActivated = _a.isWalkingTimesActivated;\n return (React.createElement(\"div\", { className: \"top-bar-menu\" },\n React.createElement(Link, { to: \"/v2/live/\" + siteId + \"/realtime\", className: \"top-bar-menu__item \" + (!liveSection || liveSection === 'realtime' ? 'top-bar-menu__item--active' : '') }, t('Live_Labels.Realtime.title')),\n isWalkingTimesActivated && (React.createElement(Link, { to: \"/v2/live/\" + siteId + \"/walkingTimes\", className: \"top-bar-menu__item \" + ((!liveSection && !isWalkingTimesActivated) || liveSection === 'walkingTimes'\n ? 'top-bar-menu__item--active'\n : '') }, t('Live_Labels.WalkingTimes.title')))));\n};\nLiveMenu.propTypes = {\n siteId: PropTypes.string,\n liveSection: PropTypes.string,\n t: PropTypes.func,\n isWalkingTimesActivated: PropTypes.bool,\n};\nexport default LiveMenu;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport '@src/commons/styles/organisms/top-bar-menu.scss';\nvar MonitoringMenu = function (_a) {\n var siteId = _a.siteId, monitoringSection = _a.monitoringSection, t = _a.t, isSummaryActivated = _a.isSummaryActivated, isFromSmartFlowsActivated = _a.isFromSmartFlowsActivated, isAccessPointActivated = _a.isAccessPointActivated;\n return (React.createElement(\"div\", { className: \"top-bar-menu\" },\n isSummaryActivated && (React.createElement(Link, { to: \"/v2/monitoring/\" + siteId + \"/summary\", className: \"top-bar-menu__item \" + (!monitoringSection || monitoringSection === 'summary' ? 'top-bar-menu__item--active' : '') }, t('Monitoring_Labels.Summary.title'))),\n isFromSmartFlowsActivated && (React.createElement(Link, { to: \"/v2/monitoring/\" + siteId + \"/fromSmartFlows\", className: \"top-bar-menu__item \" + ((!monitoringSection && !isSummaryActivated) || monitoringSection === 'fromSmartFlows'\n ? 'top-bar-menu__item--active'\n : '') }, t('Monitoring_Labels.Summary.Jplus1.title'))),\n isAccessPointActivated && (React.createElement(Link, { to: \"/v2/monitoring/\" + siteId + \"/accessPoints\", className: \"top-bar-menu__item \" + (monitoringSection === 'accessPoints' ? 'top-bar-menu__item--active' : '') }, t('Monitoring_Labels.AP')))));\n};\nMonitoringMenu.propTypes = {\n siteId: PropTypes.string,\n monitoringSection: PropTypes.string,\n t: PropTypes.func,\n isSummaryActivated: PropTypes.bool,\n isFromSmartFlowsActivated: PropTypes.bool,\n isAccessPointActivated: PropTypes.bool,\n};\nexport default MonitoringMenu;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport '@src/commons/styles/organisms/top-bar-menu.scss';\nvar ReportingMenu = function (_a) {\n var siteId = _a.siteId, reportingSection = _a.reportingSection, t = _a.t, isReportsActivated = _a.isReportsActivated, isReportingTimePerFlightActivated = _a.isReportingTimePerFlightActivated, isRetailActivated = _a.isRetailActivated, isAdvertisingActivated = _a.isAdvertisingActivated;\n return (React.createElement(\"div\", { className: \"top-bar-menu\" },\n React.createElement(Link, { to: \"/v2/reporting/\" + siteId + \"/dashboard\", className: \"top-bar-menu__item \" + (!reportingSection || reportingSection === 'dashboard' ? 'top-bar-menu__item--active' : '') }, t('Dashboard_Labels.title')),\n isRetailActivated && (React.createElement(Link, { to: \"/v2/reporting/\" + siteId + \"/retail\", className: \"top-bar-menu__item \" + (reportingSection === 'retail' ? 'top-bar-menu__item--active' : '') }, t('Dashboard_Labels.retail'))),\n isAdvertisingActivated && (React.createElement(Link, { to: \"/v2/reporting/\" + siteId + \"/advertising\", className: \"top-bar-menu__item \" + (reportingSection === 'advertising' ? 'top-bar-menu__item--active' : '') }, t('Dashboard_Labels.advertising'))),\n isReportingTimePerFlightActivated && (React.createElement(Link, { to: \"/v2/reporting/\" + siteId + \"/flights\", className: \"top-bar-menu__item \" + (reportingSection === 'flights' ? 'top-bar-menu__item--active' : '') }, t('Dashboard_Labels.flights_report'))),\n isReportsActivated && (React.createElement(Link, { to: \"/v2/reporting/\" + siteId + \"/reports\", className: \"top-bar-menu__item \" + (reportingSection === 'reports' ? 'top-bar-menu__item--active' : '') }, t('Dashboard_Labels.report_creation')))));\n};\nReportingMenu.propTypes = {\n siteId: PropTypes.string,\n reportingSection: PropTypes.string,\n t: PropTypes.func,\n isReportsActivated: PropTypes.bool,\n isReportingTimePerFlightActivated: PropTypes.bool,\n isRetailActivated: PropTypes.bool,\n isAdvertisingActivated: PropTypes.bool,\n};\nexport default ReportingMenu;\n","import { initReactI18next } from 'react-i18next';\nimport i18n from 'i18next';\nimport Backend from 'i18next-http-backend';\ni18n\n .use(Backend)\n .use(initReactI18next)\n .init({\n defaultNS: 'legacy',\n fallbackLng: 'en',\n debug: false,\n lng: 'en',\n interpolation: {\n escapeValue: false,\n format: function (value, format, lng) {\n if (format === 'locale')\n return value === null || value === void 0 ? void 0 : value.toLocaleString(lng);\n return value;\n },\n },\n backend: {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n queryStringParams: { v: new Date().getTime() },\n },\n ns: ['legacy'],\n react: {\n useSuspense: false,\n },\n});\nexport default i18n;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport '@src/commons/styles/organisms/top-bar-menu.scss';\nvar SocialDistancingMenu = function (_a) {\n var siteId = _a.siteId, t = _a.t, isSocialDistancingMonitoringActivated = _a.isSocialDistancingMonitoringActivated, socialDistancingSection = _a.socialDistancingSection;\n return (React.createElement(\"div\", { className: \"top-bar-menu\" },\n React.createElement(Link, { to: \"/v2/social-distancing/\" + siteId + \"/assistant\", className: \"top-bar-menu__item \" + (!socialDistancingSection || socialDistancingSection === 'assistant'\n ? 'top-bar-menu__item--active'\n : '') }, t('Social_Distancing_Labels.title')),\n isSocialDistancingMonitoringActivated && (React.createElement(Link, { to: \"/v2/social-distancing/\" + siteId + \"/monitoring\", className: \"top-bar-menu__item \" + (socialDistancingSection === 'monitoring' ? 'top-bar-menu__item--active' : '') }, t('Social_Distancing_Labels.SocialDistancingMonitoring.title')))));\n};\nSocialDistancingMenu.propTypes = {\n siteId: PropTypes.string,\n t: PropTypes.func,\n isSocialDistancingMonitoringActivated: PropTypes.bool,\n socialDistancingSection: PropTypes.string,\n};\nexport default SocialDistancingMenu;\n","import { __extends } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport Fuse from 'fuse.js';\nimport _ from 'lodash';\nimport { searchSite, setCurrentSite } from '@src/commons/sites/actions';\nimport SiteSelector from './SiteSelector';\nimport ClickOutside from './ClickOutside';\nimport '@src/commons/styles/organisms/top-bar.scss';\nimport LiveMenu from '@src/live/LiveMenu';\nimport MonitoringMenu from '../../monitoring/navigation';\nimport ReportingMenu from '@src/reporting/ReportingMenu';\nimport { getterCurrentSiteLanguage } from '@src/live/realtime/selectors';\nimport i18n from '@src/i18n';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nimport SocialDistancingMenu from '@src/social_distancing/SocialDistancingMenu';\nvar TopBarContainer = (function (_super) {\n __extends(TopBarContainer, _super);\n function TopBarContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.handleSearchSite = _this.handleSearchSite.bind(_this);\n _this.handleOpenSearch = _this.handleOpenSearch.bind(_this);\n _this.handleSelectSite = _this.handleSelectSite.bind(_this);\n _this.handleClose = _this.handleClose.bind(_this);\n _this.state = { open: false };\n return _this;\n }\n TopBarContainer.prototype.handleSearchSite = function (searchContent) {\n var onSearchSite = this.props.onSearchSite;\n onSearchSite(searchContent);\n };\n TopBarContainer.prototype.handleOpenSearch = function () {\n this.setState({ open: !this.state.open });\n };\n TopBarContainer.prototype.handleSelectSite = function (e, site) {\n var _a = this.props, onSiteSelection = _a.onSiteSelection, history = _a.history;\n onSiteSelection(site.uuid, history);\n this.setState(function (prevState) { return ({\n open: !prevState.open,\n }); });\n e.stopPropagation();\n e.preventDefault();\n };\n TopBarContainer.prototype.handleClose = function (e) {\n this.setState({ open: false });\n };\n TopBarContainer.prototype.render = function () {\n var _a = this.props, sites = _a.sites, searchContent = _a.searchContent, currentSite = _a.currentSite, displayedSites = _a.displayedSites, match = _a.match, t = _a.t, languageIsOK = _a.languageIsOK, isSummaryActivated = _a.isSummaryActivated, isFromSmartFlowsActivated = _a.isFromSmartFlowsActivated, isAccessPointActivated = _a.isAccessPointActivated, isReportsActivated = _a.isReportsActivated, isWalkingTimesActivated = _a.isWalkingTimesActivated, isReportingTimePerFlightActivated = _a.isReportingTimePerFlightActivated, isSocialDistancingMonitoringActivated = _a.isSocialDistancingMonitoringActivated, isRetailActivated = _a.isRetailActivated, isAdvertisingActivated = _a.isAdvertisingActivated;\n return (languageIsOK && (React.createElement(\"div\", { className: \"top-bar\" },\n React.createElement(\"div\", null,\n match.params.app === 'live' && (React.createElement(LiveMenu, { liveSection: match.params.section, siteId: match.params.siteId, t: t, isWalkingTimesActivated: isWalkingTimesActivated })),\n match.params.app === 'monitoring' && (React.createElement(MonitoringMenu, { monitoringSection: match.params.section, siteId: match.params.siteId, t: t, isSummaryActivated: isSummaryActivated, isFromSmartFlowsActivated: isFromSmartFlowsActivated, isAccessPointActivated: isAccessPointActivated })),\n match.params.app === 'insights' && (React.createElement(\"div\", { className: \"top-bar-menu\" },\n React.createElement(\"div\", { className: \"top-bar-menu__item top-bar-menu__item--active\" }, \"Insights\"))),\n match.params.app === 'reporting' && (React.createElement(ReportingMenu, { reportingSection: match.params.section, siteId: match.params.siteId, t: t, isReportsActivated: isReportsActivated, isReportingTimePerFlightActivated: isReportingTimePerFlightActivated, isRetailActivated: isRetailActivated, isAdvertisingActivated: isAdvertisingActivated })),\n match.params.app === 'social-distancing' && (React.createElement(SocialDistancingMenu, { siteId: match.params.siteId, socialDistancingSection: match.params.section, isSocialDistancingMonitoringActivated: isSocialDistancingMonitoringActivated, t: t }))),\n React.createElement(\"div\", { className: \"top-bar__container\" }, sites && sites.length > 0 && (React.createElement(ClickOutside, { onClickOutside: this.handleClose, className: \"top-bar__container\" },\n React.createElement(SiteSelector, { sites: displayedSites, onOpen: this.handleOpenSearch, open: this.state.open, onSearch: this.handleSearchSite, searchContent: searchContent, currentSite: currentSite, onSelectSite: this.handleSelectSite, t: t })))))));\n };\n return TopBarContainer;\n}(Component));\nexport { TopBarContainer };\nTopBarContainer.propTypes = {\n sites: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string.isRequired,\n name: PropTypes.string,\n })),\n displayedSites: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string.isRequired,\n name: PropTypes.string,\n })),\n searchContent: PropTypes.string,\n currentSite: PropTypes.shape({\n uuid: PropTypes.string,\n name: PropTypes.string,\n }),\n onSearchSite: PropTypes.func,\n onSiteSelection: PropTypes.func,\n history: PropTypes.any,\n match: PropTypes.shape({\n params: PropTypes.any,\n }),\n t: PropTypes.func,\n languageIsOK: PropTypes.bool,\n isSummaryActivated: PropTypes.bool,\n isFromSmartFlowsActivated: PropTypes.bool,\n isAccessPointActivated: PropTypes.bool,\n isReportsActivated: PropTypes.bool,\n isWalkingTimesActivated: PropTypes.bool,\n isReportingTimePerFlightActivated: PropTypes.bool,\n isSocialDistancingMonitoringActivated: PropTypes.bool,\n isRetailActivated: PropTypes.bool,\n isAdvertisingActivated: PropTypes.bool,\n};\nexport var mapStateToProps = function (state, props) {\n var currentSiteId = _.get(props.match, 'params.siteId');\n var sites = _.get(state.sites, 'data');\n var searchContent = _.get(state.sites, 'searchContent');\n return {\n sites: sites,\n searchContent: searchContent,\n currentSite: currentSiteId ? _.find(_.get(state.sites, 'data'), { uuid: currentSiteId }) : _.head(sites),\n displayedSites: filterSitesBySearchContent(sites, searchContent),\n languageIsOK: getterCurrentSiteLanguage(state) === i18n.language,\n isSummaryActivated: true,\n isFromSmartFlowsActivated: isFeatureActivated('monitoring_from_smartflows')(state),\n isAccessPointActivated: true,\n isReportsActivated: isFeatureActivated('insight_report_creation')(state),\n isWalkingTimesActivated: isFeatureActivated('live_walking_times')(state),\n isReportingTimePerFlightActivated: isFeatureActivated('reporting_time_per_flight')(state),\n isSocialDistancingMonitoringActivated: isFeatureActivated('social_distancing_monitoring')(state),\n isRetailActivated: isFeatureActivated('per_retail_section')(state),\n isAdvertisingActivated: isFeatureActivated('per_advertising_section')(state),\n };\n};\nexport var filterSitesBySearchContent = function (sites, searchContent) {\n var _a;\n if (searchContent) {\n var list = new Fuse(sites, {\n useExtendedSearch: true,\n keys: ['display_name', 'tags'],\n minMatchCharLength: 2,\n threshold: 0.3,\n });\n var items = (_a = list.search(searchContent)) === null || _a === void 0 ? void 0 : _a.reduce(function (prev, next) { return prev.concat(next.item); }, []);\n return items;\n }\n return sites;\n};\nvar mapDispatchToProps = function (dispatch) {\n return {\n onSearchSite: function (searchContent) {\n dispatch(searchSite(searchContent));\n },\n onSiteSelection: function (siteId, history) {\n dispatch(setCurrentSite(siteId, history));\n },\n };\n};\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(TopBarContainer));\n","import { __assign, __extends, __read } from \"tslib\";\nimport _ from 'lodash';\nimport { connect } from 'react-redux';\nimport { Switch, Route, withRouter } from 'react-router-dom';\nimport { Translation, withTranslation } from 'react-i18next';\nimport { withAuth0 } from '@auth0/auth0-react';\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { fetchFeatures } from '@src/commons/features/actions';\nimport { fetchSites } from '@src/commons/sites/actions';\nimport { initLocation } from '@src/login/actions';\nimport { fetchScales } from '@src/commons/scalesConfigurations/action';\nimport { userLoggedIn } from '@src/login/actions';\nimport HomeContainer from '@src/home/index';\nimport IndexContainer from '@src/IndexContainer';\nimport InsightsContainer from '@src/insights';\nimport LiveContainer from '@src/live';\nimport MonitoringContainer from '@src/monitoring';\nimport Page from '@src/commons/Page';\nimport ReportingContainer from '@src/reporting';\nimport SideMenuContainer from '@src/commons/sideMenu';\nimport SocialDistancingAppContainer from '@src/social_distancing';\nimport TopBarContainer from '@src/commons/topBar';\nimport { isMobile } from 'react-device-detect';\nimport '@src/favicon.ico';\nimport '@src/commons/styles/templates/main.scss';\nimport '@src/commons/styles/themes/themes.scss';\nvar App = (function (_super) {\n __extends(App, _super);\n function App() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n showMobileMessage: false,\n };\n return _this;\n }\n App.prototype.UNSAFE_componentWillMount = function () {\n var _a = this.props, initAppLocation = _a.initAppLocation, onSitesInit = _a.onSitesInit, history = _a.history, match = _a.match, userLoggedIn = _a.userLoggedIn, _b = _a.auth0, getAccessTokenSilently = _b.getAccessTokenSilently, getIdTokenClaims = _b.getIdTokenClaims, user = _b.user;\n Promise.all([getAccessTokenSilently(), getIdTokenClaims()])\n .then(function (_a) {\n var _b = __read(_a, 2), accessToken = _b[0], idToken = _b[1];\n if (accessToken && idToken) {\n localStorage.setItem('access_token', accessToken);\n localStorage.setItem('session_exp', idToken.exp);\n localStorage.setItem('id_token_payload', JSON.stringify(user));\n userLoggedIn(accessToken, JSON.stringify(idToken));\n return true;\n }\n return false;\n })\n .then(function (status) {\n if (status) {\n initAppLocation(history, match, _.get(match, 'params.siteId'));\n onSitesInit(_.get(match, 'params.siteId'), history);\n }\n });\n };\n App.prototype.componentDidMount = function () {\n if (isMobile) {\n this.setState(function (state) { return (__assign(__assign({}, state), { showMobileMessage: true })); });\n }\n };\n App.prototype.render = function () {\n var _this = this;\n var _a = this.props, sitesFetched = _a.sitesFetched, featuresFetched = _a.featuresFetched, localeReady = _a.localeReady;\n if (this.state.showMobileMessage && localeReady) {\n return (React.createElement(Translation, null, function (t) { return (React.createElement(\"div\", { style: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n height: '100vh',\n justifyContent: 'center',\n } },\n React.createElement(\"img\", { width: 300, src: \"https://app.smart-flows.com/public/smartflows.png\", alt: \"Logo\" }),\n React.createElement(\"h1\", { style: { maxWidth: 400, fontSize: '2rem', padding: 15 } }, t('supported_screen.title', { ns: 'common' })),\n React.createElement(\"p\", { style: { maxWidth: 400, fontSize: '1.2rem', padding: 10, textAlign: 'center' } }, t('supported_screen.text', { ns: 'common' })),\n React.createElement(\"p\", { style: { maxWidth: 400, fontSize: '1.2rem', padding: 10, textAlign: 'center' } }, t('supported_screen.secondary_text', { ns: 'common' })),\n React.createElement(\"p\", { style: { maxWidth: 400, textAlign: 'center', padding: 5 } }, t('supported_screen.team_text', { ns: 'common' })),\n React.createElement(\"button\", { style: {\n padding: 10,\n marginTop: 15,\n width: 150,\n borderRadius: 15,\n border: 'none',\n color: 'whitesmoke',\n backgroundColor: 'var(--primarycolor)',\n }, type: \"button\", onClick: function () { return _this.setState(function (state) { return (__assign(__assign({}, state), { showMobileMessage: false })); }); } }, t('supported_screen.button', { ns: 'common' })))); }));\n }\n return (React.createElement(\"div\", null, sitesFetched && featuresFetched && localeReady && (React.createElement(\"div\", { className: \"main\" },\n React.createElement(Translation, null, function (t) { return (React.createElement(\"span\", null,\n React.createElement(SideMenuContainer, { t: t }),\n React.createElement(\"div\", { className: \"main__content\" },\n React.createElement(TopBarContainer, { t: t }),\n React.createElement(Switch, null,\n React.createElement(Route, { exact: true, path: \"/v2/index/:siteId?\", render: function (props) { return (React.createElement(Page, __assign({}, props, { t: t, component: IndexContainer, title: \"Smart Flows\" }))); } }),\n React.createElement(Route, { exact: true, path: \"/v2/home/:siteId?\", render: function (props) { return (React.createElement(Page, __assign({}, props, { t: t, component: HomeContainer, title: \"Smart Flows\" }))); } }),\n React.createElement(Route, { exact: true, path: \"/v2/live/:siteId?/:section?\", render: function (props) { return (React.createElement(Page, __assign({}, props, { t: t, component: LiveContainer, title: t('Live_Labels.live') + \" - Smart Flows\" }))); } }),\n React.createElement(Route, { exact: true, path: \"/v2/monitoring/:siteId?/:section?\", render: function (props) { return (React.createElement(Page, __assign({}, props, { t: t, component: MonitoringContainer, title: \"Monitoring - Smart Flows\" }))); } }),\n React.createElement(Route, { exact: true, path: \"/v2/insights/:siteId?\", render: function (props) { return (React.createElement(Page, __assign({}, props, { t: t, component: InsightsContainer, title: \"Insights - Smart Flows\" }))); } }),\n React.createElement(Route, { exact: true, path: \"/v2/reporting/:siteId?/:section?/:subsection?\", render: function (props) { return (React.createElement(Page, __assign({}, props, { t: t, component: ReportingContainer, title: t('Dashboard_Labels.title') + \" - Smart Flows\" }))); } }),\n React.createElement(Route, { exact: true, path: \"/v2/social-distancing/:siteId?/:section?\", render: function (props) { return (React.createElement(Page, __assign({}, props, { t: t, component: SocialDistancingAppContainer, title: t('Social_Distancing_Labels.name') + \" - Smart Flows\" }))); } }))))); })))));\n };\n return App;\n}(Component));\nApp.propTypes = {\n initAppLocation: PropTypes.func,\n sitesFetched: PropTypes.bool,\n featuresFetched: PropTypes.bool,\n location: PropTypes.shape({\n pathname: PropTypes.string,\n }),\n match: PropTypes.shape({\n params: PropTypes.shape({\n siteId: PropTypes.string,\n }),\n }),\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n onSitesInit: PropTypes.func,\n localeReady: PropTypes.bool,\n};\nexport var mapStateToProps = function (state, props) { return ({\n sitesFetched: !state.sites.loading,\n featuresFetched: !state.features.loading,\n localeReady: _.get(state.navigation, 'localeReady', false),\n}); };\nvar mapDispatchToProps = function (dispatch) {\n return {\n initAppLocation: function (history, match, siteId) {\n dispatch(fetchFeatures(siteId));\n dispatch(initLocation(history, match));\n dispatch(fetchScales());\n },\n onSitesInit: function (currentSiteId, history) {\n dispatch(fetchSites(currentSiteId, history));\n },\n userLoggedIn: function (accessToken, user) {\n dispatch(userLoggedIn(accessToken, null, user));\n },\n };\n};\nexport default withTranslation('common')(withAuth0(withRouter(connect(mapStateToProps, mapDispatchToProps)(App))));\n","export default __webpack_public_path__ + \"public/favicon.ico\";","export var tryLoggin = function (history) { return ({\n type: 'TRY_LOG_IN',\n history: history,\n}); };\nexport var userLoggedIn = function (accessToken, idToken, idTokenPayload, history, match) { return ({\n type: 'LOGGED_IN',\n accessToken: accessToken,\n idToken: idToken,\n idTokenPayload: idTokenPayload,\n history: history,\n match: match,\n}); };\nexport var initLocation = function (history, match) { return ({\n type: 'INIT_LOCATION',\n history: history,\n match: match,\n}); };\n","import React from 'react';\nimport { Auth0Provider } from '@auth0/auth0-react';\nimport { useHistory } from 'react-router-dom';\nvar SmartFlowsAuthProvider = function (_a) {\n var children = _a.children;\n var history = useHistory();\n var onRedirectCallback = function (appState) {\n var _a;\n history.replace((_a = appState === null || appState === void 0 ? void 0 : appState.returnTo) !== null && _a !== void 0 ? _a : window.location.pathname);\n };\n return (React.createElement(Auth0Provider, { domain: window.AUTH0_DOMAIN, clientId: window.AUTH0_CLIENTID, redirectUri: window.location.origin, audience: window.AUTH0_AUDIENCE, cacheLocation: \"localstorage\", scope: \"openid email\", onRedirectCallback: onRedirectCallback }, children));\n};\nexport default SmartFlowsAuthProvider;\n","import { combineReducers } from 'redux';\nimport auth from './login/reducer';\nimport sites from './commons/sites/reducer';\nimport configs from './commons/configs/reducer';\nimport liveAreas from './live/realtimeStat/reducer';\nimport floors from './commons/floors/reducer';\nimport pois from './commons/pois/reducer';\nimport navigation from './navigation/reducer';\nimport accessPoints from './monitoring/accessPoints/reducer';\nimport features from './commons/features/reducer';\nimport jplus1 from './monitoring/fromSmartFlows/reducer';\nimport collect from './monitoring/summary/collect/reducer';\nimport insights from './insights/reducer';\nimport compute from './reporting/reducer';\nimport processes from '@src/commons/processes/reducer';\nimport realtime from '@src/monitoring/summary/realtime/reducer';\nimport journeys from '@src/live/walkingTimes/reducer';\nimport destinations from '@src/reporting/flights_report/destinations/reducer';\nimport socialDistanceJ1 from '@src/social_distancing/social_distancing_monitoring/reducer';\nimport { dwelltimesPerDestinations, flightsCountPerDestinations, } from '@src/reporting/flights_report/per_destination/reducer';\nimport { dwelltimesPerAirline, flightsCountPerAirlines, } from '@src/reporting/flights_report/per_airline/reducer';\nimport retail from '@src/reporting/retail/reducer';\nimport reportsCreation from '@src/reporting/reports/reducer';\nimport dashboard from '@src/reporting/dashboard/reducer';\nimport flightsReport from '@src/reporting/flights_report/reducer';\nimport advertising from '@src/reporting/advertising/reducer';\nimport home from '@src/home/reducer';\nimport scales from '@src/commons/scalesConfigurations/reducer';\nexport default combineReducers({\n auth: auth,\n sites: sites,\n configs: configs,\n liveAreas: liveAreas,\n floors: floors,\n pois: pois,\n navigation: navigation,\n accessPoints: accessPoints,\n features: features,\n jplus1: jplus1,\n collect: collect,\n insights: insights,\n scales: scales,\n compute: compute,\n processes: processes,\n realtime: realtime,\n journeys: journeys,\n destinations: destinations,\n socialDistanceJ1: socialDistanceJ1,\n dwelltimesPerDestinations: dwelltimesPerDestinations,\n flightsCountPerDestinations: flightsCountPerDestinations,\n dwelltimesPerAirline: dwelltimesPerAirline,\n flightsCountPerAirlines: flightsCountPerAirlines,\n retail: retail,\n reportsCreation: reportsCreation,\n dashboard: dashboard,\n flightsReport: flightsReport,\n advertising: advertising,\n home: home,\n});\n","import { __assign } from \"tslib\";\nexport default function auth(state, action) {\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'LOGGED_IN':\n return __assign(__assign({}, state), { logged: true, tokens: {\n accessToken: action.accessToken,\n idToken: action.idToken,\n }, userInfos: JSON.parse(action.idTokenPayload) });\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nexport default function sites(state, action) {\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'FETCH_SITES': {\n return __assign(__assign({}, state), { loading: true, data: [], searchContent: '' });\n }\n case 'FETCH_SITES_SUCCESS': {\n return __assign(__assign({}, state), { loading: false, data: action.data });\n }\n case 'FETCH_SITES_FAILURE': {\n return __assign(__assign({}, state), { loading: false, data: [] });\n }\n case 'SEARCH_CONTENT': {\n return __assign(__assign({}, state), { searchContent: action.searchContent });\n }\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nexport default function configs(state, action) {\n var _a, _b;\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'FETCH_CONFIG_SUCCESS2':\n case 'FETCH_CONFIG_SUCCESS': {\n return __assign(__assign({}, state), (_a = {}, _a[action.siteId] = {\n loading: false,\n data: action.config,\n }, _a));\n }\n case 'FETCH_CONFIG_FAILURE2':\n case 'FETCH_CONFIG_FAILURE': {\n return __assign(__assign({}, state), (_b = {}, _b[action.siteId] = {\n loading: false,\n data: {},\n }, _b));\n }\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nimport _ from 'lodash';\nexport default function liveAreas(state, action) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'FETCH_LIVEAREAS_SUCCESS':\n case 'FETCH_LIVEAREAS_SUCCESS2': {\n return __assign(__assign({}, state), (_a = {}, _a[action.siteId] = {\n loading: false,\n data: action.data,\n }, _a));\n }\n case 'FETCH_LIVEAREAS_FAILURE':\n case 'FETCH_LIVEAREAS_FAILURE2': {\n return __assign(__assign({}, state), (_b = {}, _b[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: false, data: [] }), _b));\n }\n case 'FETCH_FLOORS':\n case 'SELECT_AREA': {\n return __assign(__assign({}, state), (_c = {}, _c[action.siteId] = __assign(__assign({}, state[action.siteId]), { rtDataLoading: true, forecastDataLoading: true }), _c));\n }\n case 'FETCH_REALTIME_DATA_SUCCESS': {\n return __assign(__assign({}, state), (_d = {}, _d[action.siteId] = __assign(__assign({}, state[action.siteId]), { data: _.map(_.get(state[action.siteId], 'data', []), function (d) {\n return d.rt_id === action.rtId ? __assign(__assign({}, d), { liveData: action.data }) : d;\n }) }), _d));\n }\n case 'FETCH_FORECAST_DATA_SUCCESS': {\n return __assign(__assign({}, state), (_e = {}, _e[action.siteId] = __assign(__assign({}, state[action.siteId]), { data: _.map(_.get(state[action.siteId], 'data', []), function (d) {\n return d.rt_id === action.rtId ? __assign(__assign({}, d), { forecastData: action.data }) : d;\n }) }), _e));\n }\n case 'FETCH_REFERENCE_REALTIME_DATA_SUCCESS': {\n return __assign(__assign({}, state), (_f = {}, _f[action.siteId] = __assign(__assign({}, state[action.siteId]), { data: _.map(_.get(state[action.siteId], 'data', []), function (d) {\n return d.rt_id === action.rtId ? __assign(__assign({}, d), { referenceData: action.data }) : d;\n }) }), _f));\n }\n case 'FETCH_ALL_LIVE_AREAS_REALTIME_DATA_SUCCESS': {\n return __assign(__assign({}, state), (_g = {}, _g[action.siteId] = __assign(__assign({}, state[action.siteId]), { rtDataLoading: false, forecastDataLoading: false }), _g));\n }\n case 'SET_REALTIME_STATUS': {\n return __assign(__assign({}, state), (_h = {}, _h[action.siteId] = __assign(__assign({}, state[action.siteId]), { data: _.map(_.get(state[action.siteId], 'data', []), function (d) {\n return d.rt_id === action.rtId\n ? __assign(__assign({}, d), { isRtInvalid: action.isRtInvalid, status: action.status, reason: action.reason }) : d;\n }) }), _h));\n }\n case 'SET_CURRENT_REALTIME_VALUES': {\n return __assign(__assign({}, state), (_j = {}, _j[action.siteId] = __assign(__assign({}, state[action.siteId]), { data: _.map(_.get(state[action.siteId], 'data', []), function (d) {\n return d.rt_id === action.rtId\n ? __assign(__assign({}, d), { currentTraffic: action.traffic, forecast30Traffic: action.forecast }) : d;\n }) }), _j));\n }\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nimport _ from 'lodash';\nexport default function floors(state, action) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'FETCH_FLOORS':\n case 'FETCH_FLOORS2': {\n return __assign(__assign({}, state), (_a = {}, _a[action.siteId] = {\n loading: true,\n areaThresholdLoading: true,\n }, _a));\n }\n case 'FETCH_FLOORS_SUCCESS':\n case 'FETCH_FLOORS_SUCCESS2': {\n return __assign(__assign({}, state), (_b = {}, _b[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: false, data: action.data }), _b));\n }\n case 'FETCH_FLOORS_FAILURE':\n case 'FETCH_FLOORS_FAILURE2': {\n return __assign(__assign({}, state), (_c = {}, _c[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: false, data: [] }), _c));\n }\n case 'SELECT_AREA': {\n return __assign(__assign({}, state), (_d = {}, _d[action.siteId] = __assign(__assign({}, state[action.siteId]), { data: _.map(state[action.siteId].data, function (floor) {\n if (floor.uuid === action.floorId) {\n return __assign(__assign({}, floor), {\n units: __assign(__assign({}, floor.units), {\n areas: _.map(floor.units.areas, function (area) {\n if (!action.areaId) {\n return __assign(__assign({}, area), { selected: true, fillOpacity: 1 });\n }\n if (area.uuid === action.areaId) {\n return __assign(__assign({}, area), { selected: true, fillOpacity: 1 });\n }\n return __assign(__assign({}, area), { selected: false, fillOpacity: 0.15 });\n }),\n }),\n });\n }\n return floor;\n }) }), _d));\n }\n case 'CHANGE_CURRENT_AREA_COLOR_MAP': {\n return __assign(__assign({}, state), (_e = {}, _e[action.siteId] = __assign(__assign({}, state[action.siteId]), { data: _.map(state[action.siteId].data, function (floor) {\n return __assign(__assign({}, floor), {\n units: __assign(__assign({}, floor.units), {\n areas: _.map(floor.units.areas, function (area) {\n if (!action.areaId) {\n return __assign(__assign({}, area), { selected: true, fillOpacity: 1 });\n }\n if (area.uuid === action.areaId) {\n return __assign(__assign({}, area), { selected: true, fillOpacity: 1 });\n }\n return __assign(__assign({}, area), { selected: false, fillOpacity: 0.15 });\n }),\n }),\n });\n }) }), _e));\n }\n case 'SELECT_ENTIRE_SITE':\n case 'RESET_SELECT_AREA': {\n return __assign(__assign({}, state), (_f = {}, _f[action.siteId] = __assign(__assign({}, state[action.siteId]), { data: _.map(state[action.siteId].data, function (floor) {\n return __assign(__assign({}, floor), {\n units: __assign(__assign({}, floor.units), {\n areas: _.map(floor.units.areas, function (area) {\n return __assign(__assign({}, area), { selected: false, fillOpacity: 1 });\n }),\n }),\n });\n }) }), _f));\n }\n case 'SET_AREA_IN_ERROR': {\n return __assign(__assign({}, state), (_g = {}, _g[action.siteId] = __assign(__assign({}, state[action.siteId]), { data: _.map(state[action.siteId].data, function (floor) {\n return floor.uuid === action.floorId\n ? __assign(__assign({}, floor), {\n units: __assign(__assign({}, floor.units), {\n areas: _.map(floor.units.areas, function (area) {\n return area.uuid === action.areaId\n ? __assign(__assign({}, area), { isInError: true, thresholdColor: '#808080' }) : __assign({}, area);\n }),\n }),\n }) : __assign({}, floor);\n }) }), _g));\n }\n case 'COMPUTE_AREA_THRESHOLD_SUCCESS':\n return __assign(__assign({}, state), (_h = {}, _h[action.siteId] = __assign(__assign({}, state[action.siteId]), { areaThresholdLoading: false }), _h));\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nexport default function pois(state, action) {\n var _a, _b, _c;\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'FETCH_POIS': {\n return __assign(__assign({}, state), (_a = {}, _a[action.configId] = __assign(__assign({}, state[action.configId]), { loading: true }), _a));\n }\n case 'FETCH_POIS_SUCCESS': {\n return __assign(__assign({}, state), (_b = {}, _b[action.configId] = __assign(__assign({}, state[action.configId]), { loading: false, data: action.data }), _b));\n }\n case 'FETCH_POIS_FAILURE': {\n return __assign(__assign({}, state), (_c = {}, _c[action.configId] = __assign(__assign({}, state[action.configId]), { loading: false, data: [] }), _c));\n }\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nexport default function navigation(state, action) {\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'SET_CURRENT_SITE':\n return __assign(__assign({}, state), { siteId: action.siteId, floorId: null, rtId: null, areaId: null, currentDestination: null });\n case 'SET_CURRENT_RT_ID':\n return __assign(__assign({}, state), { rtId: action.rtId });\n case 'SELECT_AREA2':\n case 'SELECT_AREA':\n return __assign(__assign({}, state), { areaId: action.areaId });\n case 'SELECT_ENTIRE_SITE':\n return __assign(__assign({}, state), { areaId: null });\n case 'SET_CURRENT_POI':\n return __assign(__assign({}, state), { poiId: action.poiId });\n case 'SET_CURRENT_FLOOR':\n return __assign(__assign({}, state), { floorId: action.floorId, areaId: null });\n case 'SET_CURRENT_FLOOR2':\n return __assign(__assign({}, state), { floorId: action.floorId });\n case 'SET_NAVIGATION':\n return __assign(__assign({}, state), action.params);\n case 'SET_CURRENT_DAY':\n return __assign(__assign({}, state), { currentDayFrom: action.from, currentDayTo: action.to });\n case 'SET_COMPARED_DAY':\n return __assign(__assign({}, state), { comparedDayFrom: action.from, comparedDayTo: action.to });\n case 'SET_COMPARED_AREA': {\n return __assign(__assign({}, state), { comparedArea: action.areaId });\n }\n case 'AUTOMATIC_CURRENT_GRANULARITY':\n case 'SET_CURRENT_GRANULARITY':\n return __assign(__assign({}, state), { currentGranularity: action.granularity });\n case 'SET_CURRENT_COMPARISON_MODE':\n return __assign(__assign({}, state), { currentComparisonMode: action.mode });\n case 'RESET_COMPARED_DATE':\n return __assign(__assign({}, state), { comparedDayFrom: state.currentDayFrom, comparedDayTo: state.currentDayTo });\n case 'DOWNLOAD_REPORT_START':\n return __assign(__assign({}, state), { downloadingReport: true });\n case 'DOWNLOAD_REPORT_SUCCESS':\n return __assign(__assign({}, state), { downloadingReport: false });\n case 'LOCALE_READY':\n return __assign(__assign({}, state), { localeReady: true });\n case 'CHANGE_POPULATION':\n return __assign(__assign({}, state), { currentPopulation: action.population });\n case 'SET_CURRENT_DESTINATION':\n return __assign(__assign({}, state), { currentDestination: action.code });\n case 'SET_CURRENT_SUBSECTION':\n return __assign(__assign({}, state), { subsection: action.subsection });\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nimport _ from 'lodash';\nexport default function accessPoints(state, action) {\n var _a, _b, _c, _d, _e, _f;\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'FETCH_ACCESS_POINTS': {\n return __assign(__assign({}, state), (_a = {}, _a[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: true, data: [], apsToDisplay: [], sorting: {\n client_name: 'asc',\n } }), _a));\n }\n case 'FETCH_ACCESS_POINTS_SUCCESS': {\n var data = action.data, siteId = action.siteId, status = action.status;\n return __assign(__assign({}, state), (_b = {}, _b[siteId] = __assign(__assign({}, state[siteId]), { loading: false, status: status, data: data, apsToDisplay: _.slice(data, 0, 10), sorting: {\n client_name: 'asc',\n } }), _b));\n }\n case 'FETCH_ACCESS_POINTS_FAILURE': {\n var siteId = action.siteId;\n return __assign(__assign({}, state), (_c = {}, _c[siteId] = __assign(__assign({}, state[siteId]), { loading: false, status: 'ERROR', data: [] }), _c));\n }\n case 'SET_APS_PAGE_NUMBER': {\n return __assign(__assign({}, state), (_d = {}, _d[action.siteId] = __assign(__assign({}, state[action.siteId]), { pageNumber: action.pageNumber, apsToDisplay: _.slice(_.orderBy(state[action.siteId].data, _.keys(state[action.siteId].sorting), _.values(state[action.siteId].sorting)), action.pageNumber * 10, action.pageNumber * 10 + 10) }), _d));\n }\n case 'SORT_APS_BY_FIELD': {\n return __assign(__assign({}, state), (_e = {}, _e[action.siteId] = __assign(__assign({}, state[action.siteId]), { pageNumber: 0, apsToDisplay: _.slice(_.orderBy(state[action.siteId].data, _.keys(action.field), _.values(action.field)), 0, 10), sorting: action.field }), _e));\n }\n case 'SEARCH_APS': {\n return __assign(__assign({}, state), (_f = {}, _f[action.siteId] = __assign(__assign({}, state[action.siteId]), { pageNumber: 0, apsToDisplay: _.slice(_.filter(state[action.siteId].data, function (ap) {\n return _.includes(_.get(ap, 'mac_address'), action.searchText) ||\n _.includes(_.get(ap, 'client_name'), action.searchText);\n }), 0, 10), sorting: {}, searchText: action.searchText }), _f));\n }\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nexport default function features(state, action) {\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'FETCH_FEATURES': {\n return __assign(__assign({}, state), { loading: true, data: [], values: {} });\n }\n case 'FETCH_FEATURES_SUCCESS': {\n return __assign(__assign({}, state), { loading: false, data: action.features, values: action.values });\n }\n case 'FETCH_FEATURES_FAILURE': {\n return __assign(__assign({}, state), { loading: false, data: [], values: {} });\n }\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nexport default function jplus1(state, action) {\n var _a, _b, _c, _d, _e, _f;\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'FETCH_JPLUS1_DATES': {\n return __assign(__assign({}, state), (_a = {}, _a[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: true, data: [] }), _a));\n }\n case 'FETCH_JPLUS1_DATES_SUCCESS': {\n return __assign(__assign({}, state), (_b = {}, _b[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: false, data: action.data }), _b));\n }\n case 'FETCH_JPLUS1_DATES_FAILURE': {\n return __assign(__assign({}, state), (_c = {}, _c[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: false, data: [] }), _c));\n }\n case 'FETCH_LAST_EXPORT_STATUS': {\n return __assign(__assign({}, state), (_d = {}, _d[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: true }), _d));\n }\n case 'FETCH_LAST_EXPORT_STATUS_SUCCESS': {\n return __assign(__assign({}, state), (_e = {}, _e[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: false, status: action.status, reason: action.reason }), _e));\n }\n case 'FETCH_LAST_EXPORT_STATUS_FAILURE': {\n return __assign(__assign({}, state), (_f = {}, _f[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: false, status: 'ERROR', reason: 'no_export' }), _f));\n }\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nexport default function collect(state, action) {\n var _a, _b, _c;\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'FETCH_COLLECT_STATUS': {\n return __assign(__assign({}, state), (_a = {}, _a[action.siteId] = {\n loading: true,\n }, _a));\n }\n case 'FETCH_COLLECT_STATUS_SUCCESS': {\n return __assign(__assign({}, state), (_b = {}, _b[action.siteId] = {\n loading: false,\n status: action.status,\n reason: action.reason,\n }, _b));\n }\n case 'FETCH_COLLECT_STATUS_FAILURE': {\n return __assign(__assign({}, state), (_c = {}, _c[action.siteId] = {\n loading: false,\n status: 'WARNING',\n reason: 'collect_status_not_retrieved',\n }, _c));\n }\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nexport default function insights(state, action) {\n var _a, _b, _c, _d;\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'FETCH_INSIGHTS': {\n return __assign(__assign({}, state), (_a = {}, _a[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: true, data: [] }), _a));\n }\n case 'FETCH_INSIGHTS_SUCCESS': {\n return __assign(__assign({}, state), (_b = {}, _b[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: false, data: action.data }), _b));\n }\n case 'FETCH_INSIGHTS_FAILURE': {\n return __assign(__assign({}, state), (_c = {}, _c[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: false, data: [] }), _c));\n }\n case 'SET_CURRENT_INSIGHT': {\n return __assign(__assign({}, state), (_d = {}, _d[action.siteId] = __assign(__assign({}, state[action.siteId]), { currentInsightId: action.insightId }), _d));\n }\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nexport default function scales(state, action) {\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'FETCH_SCALES': {\n return __assign(__assign({}, state), { loading: true, data: [] });\n }\n case 'FETCH_SCALES_SUCCESS': {\n return __assign(__assign({}, state), { loading: false, data: action.scales });\n }\n case 'FETCH_SCALES_FAILURE': {\n return __assign(__assign({}, state), { loading: false, data: [] });\n }\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nimport _ from 'lodash';\nexport default function compute(state, action) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7;\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'STATS_LOADING': {\n return __assign(__assign({}, state), (_a = {}, _a[action.siteId] = __assign(__assign({}, state[action.siteId]), (_b = {}, _b[action.areaId] = __assign(__assign({}, _.get(state[action.siteId], action.areaId, {})), (_c = {}, _c[action.granularity + \"-\" + action.kind] = __assign(__assign({}, _.get(_.get(state[action.siteId], action.areaId, {}), action.granularity + \"-\" + action.kind, {})), (_d = {}, _d[action.from + \"-\" + action.to] = __assign(__assign({}, _.get(_.get(_.get(state[action.siteId], action.areaId, {}), action.granularity + \"-\" + action.kind, {}), action.from + \"-\" + action.to, {})), { loading: true, data: [] }), _d)), _c)), _b)), _a));\n }\n case 'FETCH_STATS_SUCCESS': {\n return __assign(__assign({}, state), (_e = {}, _e[action.siteId] = __assign(__assign({}, state[action.siteId]), (_f = {}, _f[action.areaId] = __assign(__assign({}, _.get(state[action.siteId], action.areaId, {})), (_g = {}, _g[action.granularity + \"-\" + action.kind] = __assign(__assign({}, _.get(_.get(state[action.siteId], action.areaId, {}), action.granularity + \"-\" + action.kind, {})), (_h = {}, _h[action.from + \"-\" + action.to] = __assign(__assign({}, _.get(_.get(_.get(state[action.siteId], action.areaId, {}), action.granularity + \"-\" + action.kind, {}), action.from + \"-\" + action.to, {})), { loading: false, data: action.data, status: 'ok' }), _h)), _g)), _f)), _e));\n }\n case 'FETCH_STATS_FAILURE': {\n return __assign(__assign({}, state), (_j = {}, _j[action.siteId] = __assign(__assign({}, state[action.siteId]), (_k = {}, _k[action.areaId] = __assign(__assign({}, _.get(state[action.siteId], action.areaId, {})), (_l = {}, _l[action.granularity + \"-\" + action.kind] = __assign(__assign({}, _.get(_.get(state[action.siteId], action.areaId, {}), action.granularity + \"-\" + action.kind, {})), (_m = {}, _m[action.from + \"-\" + action.to] = __assign(__assign({}, _.get(_.get(_.get(state[action.siteId], action.areaId, {}), action.granularity + \"-\" + action.kind, {}), action.from + \"-\" + action.to, {})), { loading: false, data: [], status: 'no_data' }), _m)), _l)), _k)), _j));\n }\n case 'AGGREGATED_STATS_LOADING': {\n return __assign(__assign({}, state), (_o = {}, _o[action.siteId] = __assign(__assign({}, state[action.siteId]), (_p = {}, _p[action.areaId] = __assign(__assign({}, _.get(state[action.siteId], action.areaId, {})), (_q = {}, _q[action.granularity + \"-\" + action.kind] = __assign(__assign({}, _.get(_.get(state[action.siteId], action.areaId, {}), action.granularity + \"-\" + action.kind, {})), (_r = {}, _r[action.from + \"-\" + action.to] = __assign(__assign({}, _.get(_.get(_.get(state[action.siteId], action.areaId, {}), action.granularity + \"-\" + action.kind, {}), action.from + \"-\" + action.to, {})), (_s = {}, _s[action.statKey + \"loading\"] = true, _s[action.statKey + \"data\"] = {}, _s)), _r)), _q)), _p)), _o));\n }\n case 'FETCH_AGGREGATED_STATS_SUCCESS': {\n return __assign(__assign({}, state), (_t = {}, _t[action.siteId] = __assign(__assign({}, state[action.siteId]), (_u = {}, _u[action.areaId] = __assign(__assign({}, _.get(state[action.siteId], action.areaId, {})), (_v = {}, _v[action.granularity + \"-\" + action.kind] = __assign(__assign({}, _.get(_.get(state[action.siteId], action.areaId, {}), action.granularity + \"-\" + action.kind, {})), (_w = {}, _w[action.from + \"-\" + action.to] = __assign(__assign({}, _.get(_.get(_.get(state[action.siteId], action.areaId, {}), action.granularity + \"-\" + action.kind, {}), action.from + \"-\" + action.to, {})), (_x = {}, _x[action.statKey + \"loading\"] = false, _x[action.statKey + \"data\"] = action.data, _x[action.statKey + \"status\"] = 'ok', _x)), _w)), _v)), _u)), _t));\n }\n case 'FETCH_AGGREGATED_STATS_FAILURE': {\n return __assign(__assign({}, state), (_y = {}, _y[action.siteId] = __assign(__assign({}, state[action.siteId]), (_z = {}, _z[action.areaId] = __assign(__assign({}, _.get(state[action.siteId], action.areaId, {})), (_0 = {}, _0[action.granularity + \"-\" + action.kind] = __assign(__assign({}, _.get(_.get(state[action.siteId], action.areaId, {}), action.granularity + \"-\" + action.kind, {})), (_1 = {}, _1[action.from + \"-\" + action.to] = __assign(__assign({}, _.get(_.get(_.get(state[action.siteId], action.areaId, {}), action.granularity + \"-\" + action.kind, {}), action.from + \"-\" + action.to, {})), (_2 = {}, _2[action.statKey + \"loading\"] = false, _2[action.statKey + \"data\"] = {}, _2[action.statKey + \"status\"] = 'no_data', _2)), _1)), _0)), _z)), _y));\n }\n case 'SET_STATS_STATUS': {\n return __assign(__assign({}, state), (_3 = {}, _3[action.siteId] = __assign(__assign({}, state[action.siteId]), (_4 = {}, _4[action.areaId] = __assign(__assign({}, _.get(state[action.siteId], action.areaId, {})), (_5 = {}, _5[action.granularity + \"-\" + action.kind] = __assign(__assign({}, _.get(_.get(state[action.siteId], action.areaId, {}), action.granularity + \"-\" + action.kind, {})), (_6 = {}, _6[action.from + \"-\" + action.to] = __assign(__assign({}, _.get(_.get(_.get(state[action.siteId], action.areaId, {}), action.granularity + \"-\" + action.kind, {}), action.from + \"-\" + action.to, {})), (_7 = {}, _7[action.statKey + \"status\"] = action.status, _7)), _6)), _5)), _4)), _3));\n }\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nexport default function processes(state, action) {\n var _a, _b;\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'FETCH_PROCESSES_SUCCESS': {\n return __assign(__assign({}, state), (_a = {}, _a[action.siteId] = {\n loading: false,\n data: action.data,\n }, _a));\n }\n case 'FETCH_PROCESSES_FAILURE': {\n return __assign(__assign({}, state), (_b = {}, _b[action.siteId] = {\n loading: false,\n data: [],\n }, _b));\n }\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nexport default function realtime(state, action) {\n var _a, _b, _c;\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'FETCH_REALTIME_STATUS': {\n return __assign(__assign({}, state), (_a = {}, _a[action.siteId] = {\n loading: true,\n }, _a));\n }\n case 'FETCH_REALTIME_STATUS_SUCCESS': {\n return __assign(__assign({}, state), (_b = {}, _b[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: false, status: action.status, reason: action.reason }), _b));\n }\n case 'FFETCH_REALTIME_STATUS_FAILURE': {\n return __assign(__assign({}, state), (_c = {}, _c[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: false, status: 'WARNING', reason: 'api_down' }), _c));\n }\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nimport _ from 'lodash';\nexport default function journeys(state, action) {\n var _a, _b, _c, _d;\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'FETCH_JOURNEYS':\n return __assign(__assign({}, state), (_a = {}, _a[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: true }), _a));\n case 'FETCH_JOURNEYS_SUCCESS':\n return __assign(__assign({}, state), (_b = {}, _b[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: false, data: _.isEmpty(state[action.siteId].data)\n ? _.map(action.data, function (d, idx) { return (__assign(__assign({}, d), { selected: idx === 0 })); })\n : _.map(state[action.siteId].data, function (d) { return (__assign(__assign({}, d), action.data)); }) }), _b));\n case 'FETCH_JOURNEYS_FAILURE':\n return __assign(__assign({}, state), (_c = {}, _c[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: false, data: [] }), _c));\n case 'SELECT_JOURNEY':\n return __assign(__assign({}, state), (_d = {}, _d[action.siteId] = __assign(__assign({}, state[action.siteId]), { data: _.map(_.get(state[action.siteId], 'data', []), function (d) { return (__assign(__assign({}, d), { selected: d.id === action.journeyId })); }) }), _d));\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nexport default function destinations(state, action) {\n var _a, _b, _c;\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'FETCH_DESTINATIONS':\n return __assign(__assign({}, state), (_a = {}, _a[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: true, data: [] }), _a));\n case 'FETCH_DESTINATIONS_SUCCESS':\n return __assign(__assign({}, state), (_b = {}, _b[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: false, data: action.destinations }), _b));\n case 'FETCH_DESTINATIONS_FAILURE':\n return __assign(__assign({}, state), (_c = {}, _c[action.siteId] = __assign(__assign({}, state[action.siteId]), { loading: false, data: [] }), _c));\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nimport _ from 'lodash';\nexport default function socialDistanceJ1(state, action) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'FETCH_ALL_PRESENCE_STOCK_15_MIN':\n return __assign(__assign({}, state), (_a = {}, _a[action.siteId] = __assign(__assign({}, state[action.siteId]), (_b = {}, _b[action.date] = __assign(__assign({}, _.get(state[action.siteId], action.date, {})), { stockDistrib: {\n loading: true,\n } }), _b)), _a));\n case 'FETCH_PRESENCE_STOCK_15_MIN_SUCCESS_ALL_AREAS':\n return __assign(__assign({}, state), (_c = {}, _c[action.siteId] = __assign(__assign({}, state[action.siteId]), (_d = {}, _d[action.date] = __assign(__assign({}, _.get(state[action.siteId], action.date, {})), { stockDistrib: __assign(__assign({}, _.get(_.get(state[action.siteId], action.date, {}), 'stockDistrib', {})), { loading: false, areas: __assign(__assign({}, _.get(_.get(state[action.siteId], action.date, {}), 'stockDistrib.areas', {})), action.areas) }) }), _d)), _c));\n case 'FETCH_PRESENCE_STOCK_15_MIN_ERROR_ALL_AREAS':\n return __assign(__assign({}, state), (_e = {}, _e[action.siteId] = __assign(__assign({}, state[action.siteId]), (_f = {}, _f[action.date] = __assign(__assign({}, _.get(state[action.siteId], action.date, {})), { stockDistrib: __assign(__assign({}, _.get(_.get(state[action.siteId], action.date, {}), 'stockDistrib', {})), { loading: false, areas: {} }) }), _f)), _e));\n case 'FETCH_DAILY_TRAFFIC':\n return __assign(__assign({}, state), (_g = {}, _g[action.siteId] = __assign(__assign({}, state[action.siteId]), (_h = {}, _h[action.date] = __assign(__assign({}, _.get(state[action.siteId], action.date, {})), { dailyTraffic: {\n loading: true,\n } }), _h)), _g));\n case 'FETCH_DAILY_TRAFFIC_SUCCESS':\n return __assign(__assign({}, state), (_j = {}, _j[action.siteId] = __assign(__assign({}, state[action.siteId]), (_k = {}, _k[action.date] = __assign(__assign({}, _.get(state[action.siteId], action.date, {})), { dailyTraffic: {\n loading: false,\n data: action.data,\n } }), _k)), _j));\n case 'FETCH_DAILY_TRAFFIC_ERROR':\n return __assign(__assign({}, state), (_l = {}, _l[action.siteId] = __assign(__assign({}, state[action.siteId]), (_m = {}, _m[action.date] = __assign(__assign({}, _.get(state[action.siteId], action.date, {})), { dailyTraffic: {\n loading: false,\n data: [],\n } }), _m)), _l));\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nimport _ from 'lodash';\nexport function dwelltimesPerDestinations(state, action) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'FETCH_DWELLTIME_PER_MACRO_AREAS': {\n return __assign(__assign({}, state), (_a = {}, _a[action.siteId] = __assign(__assign({}, state[action.siteId]), (_b = {}, _b[action.airportCode] = __assign(__assign({}, _.get(state[action.siteId], action.airportCode, {})), (_c = {}, _c[action.from + \"-\" + action.to] = __assign(__assign({}, _.get(_.get(state[action.siteId], action.airportCode, {}), action.from + \"-\" + action.to, {})), { data: [], loading: true }), _c)), _b)), _a));\n }\n case 'FETCH_DWELLTIME_PER_MACRO_AREAS_SUCCESS': {\n return __assign(__assign({}, state), (_d = {}, _d[action.siteId] = __assign(__assign({}, state[action.siteId]), (_e = {}, _e[action.airportCode] = __assign(__assign({}, _.get(state[action.siteId], action.airportCode, {})), (_f = {}, _f[action.from + \"-\" + action.to] = __assign(__assign({}, _.get(_.get(state[action.siteId], action.airportCode, {}), action.from + \"-\" + action.to, {})), { data: _.get(_.first(_.get(action.data, 'airlines')), 'stats', []), loading: false }), _f)), _e)), _d));\n }\n case 'FETCH_DWELLTIME_PER_MACRO_AREAS_ERROR': {\n return __assign(__assign({}, state), (_g = {}, _g[action.siteId] = __assign(__assign({}, state[action.siteId]), (_h = {}, _h[action.airportCode] = __assign(__assign({}, _.get(state[action.siteId], action.airportCode, {})), (_j = {}, _j[action.from + \"-\" + action.to] = __assign(__assign({}, _.get(_.get(state[action.siteId], action.airportCode, {}), action.from + \"-\" + action.to, {})), { data: [], loading: false }), _j)), _h)), _g));\n }\n default:\n return state;\n }\n}\nexport function flightsCountPerDestinations(state, action) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'FETCH_FLIGHTS_COUNT_PER_DESTINATION': {\n return __assign(__assign({}, state), (_a = {}, _a[action.siteId] = __assign(__assign({}, state[action.siteId]), (_b = {}, _b[action.airportCode] = __assign(__assign({}, _.get(state[action.siteId], action.airportCode, {})), (_c = {}, _c[action.from + \"-\" + action.to] = __assign(__assign({}, _.get(_.get(state[action.siteId], action.airportCode, {}), action.from + \"-\" + action.to, {})), { data: [], loading: true }), _c)), _b)), _a));\n }\n case 'FETCH_FLIGHTS_COUNT_PER_DESTINATION_SUCCESS': {\n return __assign(__assign({}, state), (_d = {}, _d[action.siteId] = __assign(__assign({}, state[action.siteId]), (_e = {}, _e[action.airportCode] = __assign(__assign({}, _.get(state[action.siteId], action.airportCode, {})), (_f = {}, _f[action.from + \"-\" + action.to] = __assign(__assign({}, _.get(_.get(state[action.siteId], action.airportCode, {}), action.from + \"-\" + action.to, {})), { data: action.data.data, loading: false }), _f)), _e)), _d));\n }\n case 'FETCH_FLIGHTS_COUNT_PER_DESTINATION_ERROR': {\n return __assign(__assign({}, state), (_g = {}, _g[action.siteId] = __assign(__assign({}, state[action.siteId]), (_h = {}, _h[action.airportCode] = __assign(__assign({}, _.get(state[action.siteId], action.airportCode, {})), (_j = {}, _j[action.from + \"-\" + action.to] = __assign(__assign({}, _.get(_.get(state[action.siteId], action.airportCode, {}), action.from + \"-\" + action.to, {})), { data: [], loading: false }), _j)), _h)), _g));\n }\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nimport _ from 'lodash';\nexport function flightsCountPerAirlines(state, action) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'FETCH_FLIGHTS_COUNT_PER_AIRLINE': {\n return __assign(__assign({}, state), (_a = {}, _a[action.siteId] = __assign(__assign({}, state[action.siteId]), (_b = {}, _b[action.airportCode] = __assign(__assign({}, _.get(state[action.siteId], action.airportCode, {})), (_c = {}, _c[action.from + \"-\" + action.to] = __assign(__assign({}, _.get(_.get(state[action.siteId], action.airportCode, {}), action.from + \"-\" + action.to, {})), { data: [], loading: true }), _c)), _b)), _a));\n }\n case 'FETCH_FLIGHTS_COUNT_PER_AIRLINE_SUCCESS': {\n return __assign(__assign({}, state), (_d = {}, _d[action.siteId] = __assign(__assign({}, state[action.siteId]), (_e = {}, _e[action.airportCode] = __assign(__assign({}, _.get(state[action.siteId], action.airportCode, {})), (_f = {}, _f[action.from + \"-\" + action.to] = __assign(__assign({}, _.get(_.get(state[action.siteId], action.airportCode, {}), action.from + \"-\" + action.to, {})), { data: action.data.airlines, loading: false }), _f)), _e)), _d));\n }\n case 'FETCH_FLIGHTS_COUNT_PER_AIRLINE_ERROR': {\n return __assign(__assign({}, state), (_g = {}, _g[action.siteId] = __assign(__assign({}, state[action.siteId]), (_h = {}, _h[action.airportCode] = __assign(__assign({}, _.get(state[action.siteId], action.airportCode, {})), (_j = {}, _j[action.from + \"-\" + action.to] = __assign(__assign({}, _.get(_.get(state[action.siteId], action.airportCode, {}), action.from + \"-\" + action.to, {})), { data: [], loading: false }), _j)), _h)), _g));\n }\n default:\n return state;\n }\n}\nexport function dwelltimesPerAirline(state, action) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'FETCH_DWELLTIME_PER_AIRLINE': {\n return __assign(__assign({}, state), (_a = {}, _a[action.siteId] = __assign(__assign({}, state[action.siteId]), (_b = {}, _b[action.airportCode] = __assign(__assign({}, _.get(state[action.siteId], action.airportCode, {})), (_c = {}, _c[action.from + \"-\" + action.to] = __assign(__assign({}, _.get(_.get(state[action.siteId], action.airportCode, {}), action.from + \"-\" + action.to, {})), { data: [], loading: true }), _c)), _b)), _a));\n }\n case 'FETCH_DWELLTIME_PER_AIRLINE_SUCCESS': {\n return __assign(__assign({}, state), (_d = {}, _d[action.siteId] = __assign(__assign({}, state[action.siteId]), (_e = {}, _e[action.airportCode] = __assign(__assign({}, _.get(state[action.siteId], action.airportCode, {})), (_f = {}, _f[action.from + \"-\" + action.to] = __assign(__assign({}, _.get(_.get(state[action.siteId], action.airportCode, {}), action.from + \"-\" + action.to, {})), { data: _.flatMap(_.get(action.data, 'Airlines'), function (d) { return _.get(d, 'Stats', []); }), loading: false }), _f)), _e)), _d));\n }\n case 'FETCH_DWELLTIME_PER_AIRLINE_ERROR': {\n return __assign(__assign({}, state), (_g = {}, _g[action.siteId] = __assign(__assign({}, state[action.siteId]), (_h = {}, _h[action.airportCode] = __assign(__assign({}, _.get(state[action.siteId], action.airportCode, {})), (_j = {}, _j[action.from + \"-\" + action.to] = __assign(__assign({}, _.get(_.get(state[action.siteId], action.airportCode, {}), action.from + \"-\" + action.to, {})), { data: [], loading: false }), _j)), _h)), _g));\n }\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nexport default function retail(state, action) {\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'INIT_RETAIL_SECTION': {\n return __assign(__assign({}, state), { loading: true });\n }\n case 'RETAIL_SECTION_LOADED': {\n return __assign(__assign({}, state), { loading: false });\n }\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nexport default function reportsCreation(state, action) {\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'INIT_REPORTS_CREATION_SECTION': {\n return __assign(__assign({}, state), { loading: true });\n }\n case 'REPORTS_CREATION_SECTION_LOADED': {\n return __assign(__assign({}, state), { loading: false });\n }\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nexport default function dashboard(state, action) {\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'INIT_DASHBOARD_SECTION': {\n return __assign(__assign({}, state), { loading: true });\n }\n case 'DASHBOARD_SECTION_LOADED': {\n return __assign(__assign({}, state), { loading: false });\n }\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nexport default function flightsReport(state, action) {\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'INIT_FLIGHTS_REPORT_SECTION': {\n return __assign(__assign({}, state), { loading: true });\n }\n case 'FLIGHTS_REPORT_SECTION_LOADED': {\n return __assign(__assign({}, state), { loading: false });\n }\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nexport default function advertising(state, action) {\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'INIT_ADVERTISING_SECTION': {\n return __assign(__assign({}, state), { loading: true });\n }\n case 'ADVERTISING_SECTION_LOADED': {\n return __assign(__assign({}, state), { loading: false });\n }\n default:\n return state;\n }\n}\n","import { __assign } from \"tslib\";\nimport { pathOr } from 'ramda';\nexport default function home(state, action) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10;\n if (state === void 0) { state = {}; }\n switch (action.type) {\n case 'INIT_HOME_CARD': {\n return __assign(__assign({ isNow: true }, state), { sort: 'density', loading: true });\n }\n case 'HOME_CARD_LOADED': {\n return __assign(__assign({ isNow: true }, state), { loading: false });\n }\n case 'SWITCH_HOME_CARD_TYPE': {\n var isNow = action.isNow;\n return __assign(__assign({}, state), { isNow: isNow });\n }\n case 'FETCH_YESTERDAY_HOME_STATS_LOADING': {\n return __assign(__assign({}, state), { yesterdayMostVisitedSites: {\n loading: true,\n data: [],\n } });\n }\n case 'HOME_CARD_SORT_TYPE': {\n var key = action.key;\n return __assign(__assign({}, state), { sort: key });\n }\n case 'HOME_MEAN_STATS_LOADING': {\n var areaId = action.areaId, from = action.from, to = action.to, granularity = action.granularity, kind = action.kind, siteId = action.siteId;\n var granularityKind = granularity + \"-\" + kind;\n var fromToDate = from + \"-\" + to;\n var granularityKindData = pathOr({}, [\"\" + areaId], state[siteId]);\n var fromToDateData = pathOr({}, [granularityKind], granularityKindData);\n var statsData = pathOr({}, [fromToDate], fromToDateData);\n return __assign(__assign({}, state), (_a = {}, _a[siteId] = __assign(__assign({}, state[siteId]), (_b = {}, _b[areaId] = __assign(__assign({}, granularityKindData), (_c = {}, _c[granularity + \"-\" + kind] = __assign(__assign({}, fromToDateData), (_d = {}, _d[from + \"-\" + to] = __assign(__assign({}, statsData), { loading: true, data: [] }), _d)), _c)), _b)), _a));\n }\n case 'FETCH_HOME_MEAN_STATS_SUCCESS': {\n var areaId = action.areaId, data = action.data, from = action.from, to = action.to, granularity = action.granularity, kind = action.kind, siteId = action.siteId;\n var granularityKind = granularity + \"-\" + kind;\n var fromToDate = from + \"-\" + to;\n var granularityKindData = pathOr({}, [\"\" + areaId], state[siteId]);\n var fromToDateData = pathOr({}, [granularityKind], granularityKindData);\n var statsData = pathOr({}, [fromToDate], fromToDateData);\n return __assign(__assign({}, state), (_e = {}, _e[siteId] = __assign(__assign({}, state[siteId]), (_f = {}, _f[areaId] = __assign(__assign({}, granularityKindData), (_g = {}, _g[granularityKind] = __assign(__assign({}, fromToDateData), (_h = {}, _h[fromToDate] = __assign(__assign({}, statsData), { loading: false, data: data, status: 'ok' }), _h)), _g)), _f)), _e));\n }\n case 'FETCH_HOME_MEAN_STATS_FAILURE': {\n var areaId = action.areaId, from = action.from, to = action.to, granularity = action.granularity, kind = action.kind, siteId = action.siteId;\n var granularityKind = granularity + \"-\" + kind;\n var fromToDate = from + \"-\" + to;\n var granularityKindData = pathOr({}, [\"\" + areaId], state[siteId]);\n var fromToDateData = pathOr({}, [granularityKind], granularityKindData);\n var statsData = pathOr({}, [fromToDate], fromToDateData);\n return __assign(__assign({}, state), (_j = {}, _j[siteId] = __assign(__assign({}, state[siteId]), (_k = {}, _k[areaId] = __assign(__assign({}, granularityKindData), (_l = {}, _l[granularityKind] = __assign(__assign({}, fromToDateData), (_m = {}, _m[fromToDate] = __assign(__assign({}, statsData), { loading: false, data: [], status: 'no_data' }), _m)), _l)), _k)), _j));\n }\n case 'FETCH_FOCUS_SITES_LOADING': {\n return __assign(__assign({}, state), { focusSites: {\n loading: true,\n data: [],\n } });\n }\n case 'FETCH_FOCUS_SITES_SUCCESS': {\n var data = action.data;\n return __assign(__assign({}, state), { focusSites: {\n loading: false,\n data: data,\n } });\n }\n case 'FETCH_FOCUS_SITES_FAILURE': {\n return __assign(__assign({}, state), { focusSites: {\n loading: false,\n data: [],\n } });\n }\n case 'HOME_MOST_VISITED_SITES_LOADING': {\n var rtApiKey = action.rtApiKey;\n return __assign(__assign({}, state), (_o = {}, _o[rtApiKey] = {\n loading: true,\n data: [],\n }, _o));\n }\n case 'FETCH_HOME_MOST_VISITED_SITES_SUCCESS': {\n var data = action.data, rtApiKey = action.rtApiKey;\n return __assign(__assign({}, state), (_p = {}, _p[rtApiKey] = {\n loading: false,\n data: data,\n }, _p));\n }\n case 'FETCH_YESTERDAY_HOME_STATS_SUCCESS': {\n var data = action.data;\n return __assign(__assign({}, state), { yesterdayMostVisitedSites: {\n loading: false,\n data: data,\n } });\n }\n case 'FETCH_HOME_MOST_VISITED_SITES_FAILURE': {\n var rtApiKey = action.rtApiKey;\n return __assign(__assign({}, state), (_q = {}, _q[rtApiKey] = {\n loading: false,\n data: [],\n }, _q));\n }\n case 'FETCH_YESTERDAY_HOME_STATS_SUCCESS_FAILURE': {\n return __assign(__assign({}, state), { yesterdayMostVisitedSites: {\n loading: false,\n data: [],\n } });\n }\n case 'HOME_AGGREGATED_STATS_LOADING': {\n var areaId = action.areaId, from = action.from, to = action.to, granularity = action.granularity, kind = action.kind, siteId = action.siteId, statKey = action.statKey;\n var granularityKind = granularity + \"-\" + kind;\n var fromToDate = from + \"-\" + to;\n var granularityKindData = pathOr({}, [\"\" + areaId], state[siteId]);\n var fromToDateData = pathOr({}, [granularityKind], granularityKindData);\n var statsData = pathOr({}, [fromToDate], fromToDateData);\n return __assign(__assign({}, state), (_r = {}, _r[siteId] = __assign(__assign({}, state[siteId]), (_s = {}, _s[areaId] = __assign(__assign({}, granularityKindData), (_t = {}, _t[granularityKind] = __assign(__assign({}, fromToDateData), (_u = {}, _u[fromToDate] = __assign(__assign({}, statsData), (_v = {}, _v[statKey + \"loading\"] = true, _v[statKey + \"data\"] = {}, _v)), _u)), _t)), _s)), _r));\n }\n case 'FETCH_HOME_AGGREGATED_STATS_SUCCESS': {\n var areaId = action.areaId, data = action.data, from = action.from, to = action.to, granularity = action.granularity, kind = action.kind, siteId = action.siteId, statKey = action.statKey;\n var granularityKind = granularity + \"-\" + kind;\n var fromToDate = from + \"-\" + to;\n var granularityKindData = pathOr({}, [\"\" + areaId], state[siteId]);\n var fromToDateData = pathOr({}, [granularityKind], granularityKindData);\n var statsData = pathOr({}, [fromToDate], fromToDateData);\n return __assign(__assign({}, state), (_w = {}, _w[siteId] = __assign(__assign({}, state[siteId]), (_x = {}, _x[areaId] = __assign(__assign({}, granularityKindData), (_y = {}, _y[granularityKind] = __assign(__assign({}, fromToDateData), (_z = {}, _z[fromToDate] = __assign(__assign({}, statsData), (_0 = {}, _0[statKey + \"loading\"] = false, _0[statKey + \"data\"] = data, _0[statKey + \"status\"] = 'ok', _0)), _z)), _y)), _x)), _w));\n }\n case 'FETCH_HOME_AGGREGATED_STATS_FAILURE': {\n var areaId = action.areaId, from = action.from, to = action.to, granularity = action.granularity, kind = action.kind, siteId = action.siteId, statKey = action.statKey;\n var granularityKind = granularity + \"-\" + kind;\n var fromToDate = from + \"-\" + to;\n var granularityKindData = pathOr({}, [\"\" + areaId], state[siteId]);\n var fromToDateData = pathOr({}, [granularityKind], granularityKindData);\n var statsData = pathOr({}, [fromToDate], fromToDateData);\n return __assign(__assign({}, state), (_1 = {}, _1[siteId] = __assign(__assign({}, state[siteId]), (_2 = {}, _2[areaId] = __assign(__assign({}, granularityKindData), (_3 = {}, _3[granularityKind] = __assign(__assign({}, fromToDateData), (_4 = {}, _4[fromToDate] = __assign(__assign({}, statsData), (_5 = {}, _5[statKey + \"loading\"] = false, _5[statKey + \"data\"] = {}, _5[statKey + \"status\"] = 'no_data', _5)), _4)), _3)), _2)), _1));\n }\n case 'SET_HOME_STATS_STATUS': {\n var areaId = action.areaId, from = action.from, to = action.to, granularity = action.granularity, kind = action.kind, siteId = action.siteId, statKey = action.statKey, status = action.status;\n var granularityKind = granularity + \"-\" + kind;\n var fromToDate = from + \"-\" + to;\n var granularityKindData = pathOr({}, [\"\" + areaId], state[siteId]);\n var fromToDateData = pathOr({}, [granularityKind], granularityKindData);\n var statsData = pathOr({}, [fromToDate], fromToDateData);\n return __assign(__assign({}, state), (_6 = {}, _6[siteId] = __assign(__assign({}, state[siteId]), (_7 = {}, _7[areaId] = __assign(__assign({}, granularityKindData), (_8 = {}, _8[granularityKind] = __assign(__assign({}, fromToDateData), (_9 = {}, _9[fromToDate] = __assign(__assign({}, statsData), (_10 = {}, _10[statKey + \"status\"] = status, _10)), _9)), _8)), _7)), _6));\n }\n default:\n return state;\n }\n}\n","import { __generator } from \"tslib\";\nimport _ from 'lodash';\nimport { takeEvery, put } from 'redux-saga/effects';\nimport { setNavigation } from '../navigation/actions';\nexport function initLocation(_a) {\n var urlParams, searchParams, stringParamsArray, queryParams, navigationParams;\n var history = _a.history, match = _a.match;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n urlParams = _.get(match, 'params', []);\n searchParams = _.get(history.location, 'search', '');\n stringParamsArray = searchParams ? _.split(_.last(_.split(searchParams, '?')), '&') : [];\n queryParams = _.flatMap(stringParamsArray, function (param) {\n var _a;\n var nameValueParam = _.split(param, '=');\n return _a = {}, _a[_.head(nameValueParam)] = _.last(nameValueParam), _a;\n });\n navigationParams = _.concat(urlParams, queryParams);\n return [4, put(setNavigation(_.reduce(navigationParams, function (memo, current) {\n return _.assign(memo, current);\n }, {})))];\n case 1:\n _b.sent();\n return [2];\n }\n });\n}\nexport default function authSaga() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery('INIT_LOCATION', initLocation)];\n case 1:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __generator } from \"tslib\";\nimport { takeEvery, put, select, take, call } from 'redux-saga/effects';\nimport _ from 'lodash';\nimport { getFromMDM } from '@src/commons/utils/request';\nimport { fetchSitesSuccess, fetchSitesFailure, setCurrentSite } from './actions';\nimport { getCurrentSiteId, getCurrentApp, getCurrentSection } from '@src/navigation/selectors';\nimport { getCookie, setCookie } from '@src/commons/utils/cookie';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nexport function waitFeaturesThenFetchSites(_a) {\n var history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, take('FETCH_FEATURES_SUCCESS')];\n case 1:\n _b.sent();\n return [4, call(tryFetchSites, { history: history })];\n case 2:\n _b.sent();\n return [2];\n }\n });\n}\nexport function getSiteToSet(currentSiteId, siteIdFromCookie, availableSites) {\n var isCurrentSiteIdInAvailableSites = _.find(availableSites, { uuid: currentSiteId });\n var isSiteInCookieInAvailableSites = _.find(availableSites, { uuid: siteIdFromCookie });\n var firstAvailableSiteId = _.get(_.head(availableSites), 'uuid');\n if (currentSiteId && isCurrentSiteIdInAvailableSites) {\n return;\n }\n if (currentSiteId && !isCurrentSiteIdInAvailableSites) {\n return firstAvailableSiteId;\n }\n if (!currentSiteId && isSiteInCookieInAvailableSites) {\n return siteIdFromCookie;\n }\n if (!currentSiteId && !isSiteInCookieInAvailableSites) {\n return firstAvailableSiteId;\n }\n}\nexport function tryFetchSites(_a) {\n var sfiV2All, _b, status, data, _c, sites, currentSiteId, siteIdToSet, e_1;\n var history = _a.history;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _d.trys.push([0, 13, , 15]);\n return [4, select(isFeatureActivated('sfi_v2_all'))];\n case 1:\n sfiV2All = _d.sent();\n if (!sfiV2All) return [3, 3];\n return [4, getFromMDM('authorized-sites/')];\n case 2:\n _c = _d.sent();\n return [3, 5];\n case 3: return [4, getFromMDM('network-sites/')];\n case 4:\n _c = _d.sent();\n _d.label = 5;\n case 5:\n _b = _c, status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 10];\n sites = sfiV2All ? data : _.flatMap(data, 'sites');\n return [4, select(getCurrentSiteId())];\n case 6:\n currentSiteId = _d.sent();\n siteIdToSet = getSiteToSet(currentSiteId, getCookie('previous_site_id'), sites);\n if (!siteIdToSet) return [3, 8];\n return [4, put(setCurrentSite(siteIdToSet, history))];\n case 7:\n _d.sent();\n _d.label = 8;\n case 8: return [4, put(fetchSitesSuccess(sites, history))];\n case 9:\n _d.sent();\n return [3, 12];\n case 10: return [4, put(fetchSitesFailure())];\n case 11:\n _d.sent();\n _d.label = 12;\n case 12: return [3, 15];\n case 13:\n e_1 = _d.sent();\n return [4, put(fetchSitesFailure())];\n case 14:\n _d.sent();\n return [3, 15];\n case 15: return [2];\n }\n });\n}\nexport function setCurrentSiteNavigation(_a) {\n var currentApp, currentSection;\n var siteId = _a.siteId, history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getCurrentApp())];\n case 1:\n currentApp = _b.sent();\n return [4, select(getCurrentSection())];\n case 2:\n currentSection = _b.sent();\n return [4, history.push(\"/v2/\" + currentApp + \"/\" + siteId + (currentSection ? \"/\" + currentSection : ''))];\n case 3:\n _b.sent();\n return [2];\n }\n });\n}\nexport function setSiteIdInCookie(_a) {\n var siteId = _a.siteId;\n return __generator(this, function (_b) {\n setCookie('previous_site_id', siteId);\n return [2];\n });\n}\nexport default function sitesSaga() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery('FETCH_SITES', waitFeaturesThenFetchSites)];\n case 1:\n _a.sent();\n return [4, takeEvery('SET_CURRENT_SITE', setCurrentSiteNavigation)];\n case 2:\n _a.sent();\n return [4, takeEvery('SET_CURRENT_SITE', setSiteIdInCookie)];\n case 3:\n _a.sent();\n return [2];\n }\n });\n}\n","import _ from 'lodash';\nexport var setCookie = function (key, value) {\n window.document.cookie = key + \"=\" + value;\n};\nexport var getCookie = function (key) {\n return _.chain(window.document.cookie)\n .split(';')\n .find(function (cookie) { return _.includes(cookie, key); })\n .split('=', 2)\n .last()\n .value();\n};\n","import { __generator } from \"tslib\";\nimport { takeEvery, select, put } from 'redux-saga/effects';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport m from 'moment-timezone';\nimport { getCurrentSiteId, getCurrentApp } from './selectors';\nimport { getSite } from '../selectors';\nimport i18n from '@src/i18n';\nimport { fetchConfig } from '@src/commons/configs/actions';\nimport { localeReady } from './actions';\nvar getActualQueryParams = function (history, paramKey) {\n var searchParams = _.get(history.location, 'search', '');\n var stringParamsArray = searchParams ? _.split(_.last(_.split(searchParams, '?')), '&') : [];\n var actualParams = _.chain(stringParamsArray)\n .reject(function (param) { return _.includes(param, paramKey) || _.isEmpty(param); })\n .join('&')\n .value();\n return actualParams;\n};\nexport function setCurrentAppNavigation(_a) {\n var currentApp, currentSiteId;\n var history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getCurrentApp())];\n case 1:\n currentApp = _b.sent();\n return [4, select(getCurrentSiteId())];\n case 2:\n currentSiteId = _b.sent();\n return [4, history.push(\"/v2/\" + currentApp + \"/\" + currentSiteId)];\n case 3:\n _b.sent();\n return [2];\n }\n });\n}\nexport function setCurrentFloorNavigation(_a) {\n var floorId = _a.floorId, history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, history.push({ search: \"?floorId=\" + floorId })];\n case 1:\n _b.sent();\n return [2];\n }\n });\n}\nexport function setCurrentFloorNavigation2(_a) {\n var actualParams;\n var floorId = _a.floorId, history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n actualParams = getActualQueryParams(history, 'floorId');\n return [4, history.push({ search: '?' + actualParams + (\"\" + (actualParams ? '&' : '')) + (\"floorId=\" + floorId) })];\n case 1:\n _b.sent();\n return [2];\n }\n });\n}\nexport function setCurrentAreaNavigation(_a) {\n var floorId = _a.floorId, areaId = _a.areaId, history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, history.push({ search: \"?floorId=\" + floorId + \"&areaId=\" + areaId })];\n case 1:\n _b.sent();\n return [2];\n }\n });\n}\nexport function setCurrentAreaNavigation2(_a) {\n var actualParams;\n var areaId = _a.areaId, history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n actualParams = getActualQueryParams(history, 'areaId');\n return [4, history.push({ search: '?' + actualParams + (\"\" + (actualParams ? '&' : '')) + (\"areaId=\" + areaId) })];\n case 1:\n _b.sent();\n return [2];\n }\n });\n}\nexport function removeAreaNavigation(_a) {\n var actualParams;\n var history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n actualParams = getActualQueryParams(history, 'areaId');\n return [4, history.push({ search: '?' + actualParams })];\n case 1:\n _b.sent();\n return [2];\n }\n });\n}\nexport function setCurrentPoiNavigation(_a) {\n var actualParams;\n var poiId = _a.poiId, history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n actualParams = getActualQueryParams(history, 'poiId');\n return [4, history.push({ search: '?' + actualParams + (\"\" + (actualParams ? '&' : '')) + (\"poiId=\" + poiId) })];\n case 1:\n _b.sent();\n return [2];\n }\n });\n}\nexport function setCurrentTheme() {\n var currentSiteId, currentSite;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, select(getCurrentSiteId())];\n case 1:\n currentSiteId = _a.sent();\n return [4, select(getSite(currentSiteId))];\n case 2:\n currentSite = _a.sent();\n return [4, document.documentElement.setAttribute('data-theme', _.get(currentSite, 'theme'))];\n case 3:\n _a.sent();\n return [2];\n }\n });\n}\nexport function setCurrentLangage() {\n var currentSiteId, currentSite, locale;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, select(getCurrentSiteId())];\n case 1:\n currentSiteId = _a.sent();\n return [4, select(getSite(currentSiteId))];\n case 2:\n currentSite = _a.sent();\n if (!currentSite) return [3, 4];\n locale = _.get(currentSite, 'language');\n i18n.changeLanguage(locale);\n moment.locale(locale);\n m.locale(locale);\n return [4, put(localeReady())];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4: return [2];\n }\n });\n}\nexport function handleFetchConfigByApp(_a) {\n var currentApp;\n var siteId = _a.siteId, history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getCurrentApp())];\n case 1:\n currentApp = _b.sent();\n if (!_.includes(['home', 'live', 'reporting', 'social-distancing'], currentApp)) return [3, 3];\n return [4, put(fetchConfig(siteId, history))];\n case 2:\n _b.sent();\n _b.label = 3;\n case 3: return [2];\n }\n });\n}\nexport default function navigationSagas() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery('SET_CURRENT_FLOOR', setCurrentFloorNavigation)];\n case 1:\n _a.sent();\n return [4, takeEvery('SET_CURRENT_FLOOR2', setCurrentFloorNavigation2)];\n case 2:\n _a.sent();\n return [4, takeEvery('SELECT_ENTIRE_SITE', removeAreaNavigation)];\n case 3:\n _a.sent();\n return [4, takeEvery('SELECT_AREA', setCurrentAreaNavigation)];\n case 4:\n _a.sent();\n return [4, takeEvery('SELECT_AREA2', setCurrentAreaNavigation2)];\n case 5:\n _a.sent();\n return [4, takeEvery('SET_CURRENT_POI', setCurrentPoiNavigation)];\n case 6:\n _a.sent();\n return [4, takeEvery('SET_CURRENT_APP', setCurrentAppNavigation)];\n case 7:\n _a.sent();\n return [4, takeEvery(['FETCH_SITES_SUCCESS', 'SET_CURRENT_SITE'], setCurrentTheme)];\n case 8:\n _a.sent();\n return [4, takeEvery(['FETCH_SITES_SUCCESS', 'SET_CURRENT_SITE', 'SET_CURRENT_LANGUAGE'], setCurrentLangage)];\n case 9:\n _a.sent();\n return [4, takeEvery(['SET_CURRENT_SITE'], handleFetchConfigByApp)];\n case 10:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __generator } from \"tslib\";\nimport { takeEvery, put, select } from 'redux-saga/effects';\nimport _ from 'lodash';\nimport { getFromMDM } from '@src/commons/utils/request';\nimport { fetchConfigSuccess, fetchConfigFailure, fetchConfigSuccess2, fetchConfigFailure2 } from './actions';\nimport { getCurrentSiteId } from '@src/navigation/selectors';\nexport function tryFetchSiteConfig(_a) {\n var siteId, _b, status, data, configs, e_1;\n var history = _a.history;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentSiteId())];\n case 1:\n siteId = _c.sent();\n _c.label = 2;\n case 2:\n _c.trys.push([2, 8, , 10]);\n return [4, getFromMDM(\"configs/?uuid=\" + siteId)];\n case 3:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 5];\n configs = _.flatMap(data, 'configs');\n return [4, put(fetchConfigSuccess(siteId, _.head(configs), history))];\n case 4: return [2, _c.sent()];\n case 5: return [4, put(fetchConfigFailure(siteId))];\n case 6: return [2, _c.sent()];\n case 7: return [3, 10];\n case 8:\n e_1 = _c.sent();\n return [4, put(fetchConfigFailure(siteId))];\n case 9: return [2, _c.sent()];\n case 10: return [2];\n }\n });\n}\nexport function tryFetchSiteConfig2(_a) {\n var siteId, _b, status, data, configs, e_2;\n var history = _a.history;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentSiteId())];\n case 1:\n siteId = _c.sent();\n _c.label = 2;\n case 2:\n _c.trys.push([2, 8, , 10]);\n return [4, getFromMDM(\"configs/?uuid=\" + siteId)];\n case 3:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 5];\n configs = _.flatMap(data, 'configs');\n return [4, put(fetchConfigSuccess2(siteId, _.head(configs), history))];\n case 4: return [2, _c.sent()];\n case 5: return [4, put(fetchConfigFailure2(siteId))];\n case 6: return [2, _c.sent()];\n case 7: return [3, 10];\n case 8:\n e_2 = _c.sent();\n return [4, put(fetchConfigFailure2(siteId))];\n case 9: return [2, _c.sent()];\n case 10: return [2];\n }\n });\n}\nexport default function configsSaga() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery(['FETCH_CONFIG'], tryFetchSiteConfig)];\n case 1:\n _a.sent();\n return [4, takeEvery(['FETCH_CONFIG2'], tryFetchSiteConfig2)];\n case 2:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __assign, __generator, __rest } from \"tslib\";\nimport _ from 'lodash';\nimport { takeEvery, put, select, call } from 'redux-saga/effects';\nimport { getFromMDM, getFromInstant } from '@src/commons/utils/request';\nimport { getSite } from '@src/selectors';\nimport { getConfig } from '@src/commons/configs/selectors';\nimport { getCurrentSiteId, getCurrentRtId, getCurrentAreaId, getCurrentApp, getCurrentSection, } from '@src/navigation/selectors';\nimport { fetchLiveAreasSuccess, fetchLiveAreasFailure, fetchLiveAreasSuccess2, fetchLiveAreasFailure2, fetchRealTimeDataSuccess, fetchForecastDataSuccess, fetchForecastDataFailure, fetchRealTimeDataFailure, setCurrentRtId, fetchAllLiveAreasRealTimeDataSuccess, fetchReferenceRealTimeDataSuccess, fetchReferenceRealTimeDataFailure, } from '@src/live/realtimeStat/actions';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nimport { findLiveAreaRtId } from './selectors';\nimport { getLiveAreaFromRtId } from '@src/commons/floors/selectors';\nimport { smoothingAlgorithm } from './utils';\nexport function tryFetchLiveAreas(_a) {\n var currentApp, config, _b, status, data, currentAreaId, currentRtId, e_1;\n var siteId = _a.siteId, history = _a.history;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentApp())];\n case 1:\n currentApp = _c.sent();\n if (!_.includes(['home', 'live', 'social-distancing', 'reporting'], currentApp)) {\n return [2];\n }\n return [4, select(getConfig(siteId))];\n case 2:\n config = _c.sent();\n _c.label = 3;\n case 3:\n _c.trys.push([3, 12, , 14]);\n return [4, getFromMDM(\"live-areas/?config__uuid=\" + config.uuid)];\n case 4:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 9];\n return [4, put(fetchLiveAreasSuccess(siteId, data, history))];\n case 5:\n _c.sent();\n return [4, select(getCurrentAreaId())];\n case 6:\n currentAreaId = _c.sent();\n return [4, select(findLiveAreaRtId(siteId, currentAreaId))];\n case 7:\n currentRtId = _c.sent();\n return [4, put(setCurrentRtId(currentRtId))];\n case 8:\n _c.sent();\n return [3, 11];\n case 9: return [4, put(fetchLiveAreasFailure(siteId))];\n case 10:\n _c.sent();\n _c.label = 11;\n case 11: return [3, 14];\n case 12:\n e_1 = _c.sent();\n return [4, put(fetchLiveAreasFailure(siteId))];\n case 13:\n _c.sent();\n return [3, 14];\n case 14: return [2];\n }\n });\n}\nexport function tryFetchLiveAreas2(_a) {\n var currentApp, siteId, config, _b, status, data, currentAreaId, currentRtId, e_2;\n var history = _a.history;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentApp())];\n case 1:\n currentApp = _c.sent();\n if (!_.includes(['home', 'live', 'social-distancing', 'reporting'], currentApp)) {\n return [2];\n }\n return [4, select(getCurrentSiteId())];\n case 2:\n siteId = _c.sent();\n return [4, select(getConfig(siteId))];\n case 3:\n config = _c.sent();\n _c.label = 4;\n case 4:\n _c.trys.push([4, 13, , 15]);\n return [4, getFromMDM(\"live-areas/?config__uuid=\" + config.uuid)];\n case 5:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 10];\n return [4, put(fetchLiveAreasSuccess2(siteId, data, history))];\n case 6:\n _c.sent();\n return [4, select(getCurrentAreaId())];\n case 7:\n currentAreaId = _c.sent();\n return [4, select(findLiveAreaRtId(siteId, currentAreaId))];\n case 8:\n currentRtId = _c.sent();\n return [4, put(setCurrentRtId(currentRtId))];\n case 9:\n _c.sent();\n return [3, 12];\n case 10: return [4, put(fetchLiveAreasFailure2(siteId))];\n case 11:\n _c.sent();\n _c.label = 12;\n case 12: return [3, 15];\n case 13:\n e_2 = _c.sent();\n return [4, put(fetchLiveAreasFailure2(siteId))];\n case 14:\n _c.sent();\n return [3, 15];\n case 15: return [2];\n }\n });\n}\nexport function tryFetchReferenceRealtimeData(siteId, rtApiKey, rtId) {\n var useInstantAPIV4, _a, status, data, e_3;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n useInstantAPIV4 = true;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 7, , 9]);\n return [4, getFromInstant(\"historical-reference-stats/\" + rtId + \"?key=\" + rtApiKey, useInstantAPIV4 ? 'v4' : 'v3')];\n case 2:\n _a = _b.sent(), status = _a.status, data = _a.data;\n if (!(status === 200)) return [3, 4];\n return [4, put(fetchReferenceRealTimeDataSuccess(siteId, rtId, data))];\n case 3:\n _b.sent();\n return [3, 6];\n case 4: return [4, put(fetchReferenceRealTimeDataFailure(rtId))];\n case 5:\n _b.sent();\n _b.label = 6;\n case 6: return [3, 9];\n case 7:\n e_3 = _b.sent();\n return [4, put(fetchReferenceRealTimeDataFailure(rtId))];\n case 8:\n _b.sent();\n return [3, 9];\n case 9: return [2];\n }\n });\n}\nexport function applySmoothing(siteId, rtId) {\n var data, smoothedData;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, select(getLiveAreaFromRtId(siteId, rtId))];\n case 1:\n data = _a.sent();\n smoothedData = smoothingAlgorithm(_.get(data, 'liveData', []), _.get(data, 'forecastData', []));\n return [4, put(fetchForecastDataSuccess(siteId, rtId, smoothedData))];\n case 2:\n _a.sent();\n return [2];\n }\n });\n}\nexport function tryFetchRealtimeV4(siteId, rtApiKey, rtId) {\n var _a, status, data, formated, e_4;\n var _b, _c, _d, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n _f.trys.push([0, 7, , 10]);\n return [4, getFromInstant(\"stats/\" + rtId + \"?key=\" + rtApiKey, 'v4')];\n case 1:\n _a = _f.sent(), status = _a.status, data = _a.data;\n if (!(status === 200)) return [3, 3];\n formated = __assign(__assign({}, data), { forecast: (_c = (_b = data.forecast) === null || _b === void 0 ? void 0 : _b.map(function (_a) {\n var timestamp = _a.timestamp, item = __rest(_a, [\"timestamp\"]);\n return (__assign(__assign({}, item), { time: timestamp }));\n })) !== null && _c !== void 0 ? _c : [], history: (_e = (_d = data.history) === null || _d === void 0 ? void 0 : _d.map(function (_a) {\n var timestamp = _a.timestamp, item = __rest(_a, [\"timestamp\"]);\n return (__assign(__assign({}, item), { time: timestamp }));\n })) !== null && _e !== void 0 ? _e : [] });\n return [4, put(fetchRealTimeDataSuccess(siteId, rtId, {\n data: formated.history,\n }))];\n case 2:\n _f.sent();\n return [3, 6];\n case 3: return [4, put(fetchRealTimeDataFailure(rtId))];\n case 4:\n _f.sent();\n return [4, put(fetchForecastDataFailure(rtId))];\n case 5:\n _f.sent();\n _f.label = 6;\n case 6: return [3, 10];\n case 7:\n e_4 = _f.sent();\n return [4, put(fetchRealTimeDataFailure(rtId))];\n case 8:\n _f.sent();\n return [4, put(fetchForecastDataFailure(rtId))];\n case 9:\n _f.sent();\n return [3, 10];\n case 10: return [2];\n }\n });\n}\nexport function fetchHistoricalData(_a) {\n var currentApp, currentSection, siteId, site, rtApiKey, rtId, useReferenceData;\n var history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getCurrentApp())];\n case 1:\n currentApp = _b.sent();\n return [4, select(getCurrentSection())];\n case 2:\n currentSection = _b.sent();\n if (!_.includes(['home', 'live'], currentApp) || (currentApp === 'live' && currentSection !== 'realtime')) {\n return [2];\n }\n return [4, select(getCurrentSiteId())];\n case 3:\n siteId = _b.sent();\n return [4, select(getSite(siteId))];\n case 4:\n site = _b.sent();\n rtApiKey = site.rt_api_key;\n return [4, select(getCurrentRtId())];\n case 5:\n rtId = _b.sent();\n return [4, select(isFeatureActivated('live_reference_data'))];\n case 6:\n useReferenceData = _b.sent();\n if (!useReferenceData) return [3, 8];\n return [4, call(tryFetchReferenceRealtimeData, siteId, rtApiKey, rtId)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [4, call(tryFetchRealtimeV4, siteId, rtApiKey, rtId)];\n case 9:\n _b.sent();\n return [4, call(applySmoothing, siteId, rtId)];\n case 10:\n _b.sent();\n return [4, put(fetchAllLiveAreasRealTimeDataSuccess(siteId, history))];\n case 11:\n _b.sent();\n return [2];\n }\n });\n}\nexport function updateRtIdOnSelectArea(_a) {\n var oldRtId, currentRtId;\n var siteId = _a.siteId, areaId = _a.areaId;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getCurrentRtId())];\n case 1:\n oldRtId = _b.sent();\n if (!oldRtId) return [3, 4];\n return [4, select(findLiveAreaRtId(siteId, areaId))];\n case 2:\n currentRtId = _b.sent();\n return [4, put(setCurrentRtId(currentRtId))];\n case 3:\n _b.sent();\n _b.label = 4;\n case 4: return [2];\n }\n });\n}\nexport default function liveAreaSagas() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery('FETCH_FLOORS_SUCCESS', tryFetchLiveAreas)];\n case 1:\n _a.sent();\n return [4, takeEvery('FETCH_LIVEAREAS', tryFetchLiveAreas2)];\n case 2:\n _a.sent();\n return [4, takeEvery(['SET_CURRENT_RT_ID', 'NEW_RT_DATA'], fetchHistoricalData)];\n case 3:\n _a.sent();\n return [4, takeEvery(['SELECT_AREA', 'RESET_SELECT_AREA'], updateRtIdOnSelectArea)];\n case 4:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __generator } from \"tslib\";\nimport { put, select, takeEvery } from 'redux-saga/effects';\nimport { getFromMDM } from '@src/commons/utils/request';\nimport _ from 'lodash';\nimport { getCurrentPoiId, getCurrentSiteId2 } from '@src/navigation/selectors';\nimport { getAreaIdFromPOI } from '@src/commons/pois/selectors';\nimport { getFloorFromArea } from '@src/commons/floors/selectors';\nimport { selectArea2, setCurrentFloor2 } from '@src/commons/floors/actions';\nimport { setCurrentPoi } from '@src/navigation/actions';\nimport { fetchPoisFailure, fetchPoisSuccess, setFloorAndAreaFromPOI } from './actions';\nimport { changeCurrentAreaColorMap } from '@src/commons/map/actions';\nexport function tryFetchAreaPois(_a) {\n var currentPoiId, siteId, _b, status, data, firstPoiId, currentPoi, e_1;\n var configId = _a.configId, history = _a.history, kind = _a.kind;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentPoiId, {})];\n case 1:\n currentPoiId = _c.sent();\n return [4, select(getCurrentSiteId2, {})];\n case 2:\n siteId = _c.sent();\n _c.label = 3;\n case 3:\n _c.trys.push([3, 14, , 16]);\n return [4, getFromMDM(\"pois/?area__unit__config__uuid=\" + configId + \"&kind=\" + kind)];\n case 4:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 12];\n return [4, put(fetchPoisSuccess(configId, data))];\n case 5:\n _c.sent();\n if (_.isEmpty(data)) {\n return [2];\n }\n firstPoiId = _.get(_.head(data), 'uuid');\n currentPoi = _.find(data, { uuid: currentPoiId });\n if (!currentPoi) return [3, 8];\n return [4, put(setCurrentPoi(currentPoi.uuid, history))];\n case 6:\n _c.sent();\n return [4, put(setFloorAndAreaFromPOI(siteId, configId, currentPoi.uuid, history))];\n case 7:\n _c.sent();\n return [3, 11];\n case 8: return [4, put(setCurrentPoi(firstPoiId, history))];\n case 9:\n _c.sent();\n return [4, put(setFloorAndAreaFromPOI(siteId, configId, firstPoiId, history))];\n case 10:\n _c.sent();\n _c.label = 11;\n case 11: return [2];\n case 12: return [4, put(fetchPoisFailure(configId))];\n case 13: return [2, _c.sent()];\n case 14:\n e_1 = _c.sent();\n return [4, put(fetchPoisFailure(configId))];\n case 15:\n _c.sent();\n return [3, 16];\n case 16: return [2];\n }\n });\n}\nexport function setFloorAndAreaFromPOIsaga(_a) {\n var areaId, floor;\n var siteId = _a.siteId, configId = _a.configId, poiId = _a.poiId, history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getAreaIdFromPOI, { configId: configId, poiId: poiId })];\n case 1:\n areaId = _b.sent();\n return [4, put(selectArea2(areaId, history))];\n case 2:\n _b.sent();\n return [4, select(getFloorFromArea, { areaId: areaId, siteId: siteId })];\n case 3:\n floor = _b.sent();\n if (!floor) return [3, 6];\n return [4, put(setCurrentFloor2(floor.uuid, history))];\n case 4:\n _b.sent();\n return [4, put(changeCurrentAreaColorMap(siteId, areaId))];\n case 5:\n _b.sent();\n _b.label = 6;\n case 6: return [2];\n }\n });\n}\nexport default function poisSaga() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery('FETCH_POIS', tryFetchAreaPois)];\n case 1:\n _a.sent();\n return [4, takeEvery('SET_FLOOR_AND_AREA_FROM_POI', setFloorAndAreaFromPOIsaga)];\n case 2:\n _a.sent();\n return [2];\n }\n });\n}\n","export function pushToGTM(obj) {\n window.dataLayer.push(obj);\n}\n","import { __generator } from \"tslib\";\nimport { takeEvery, select } from 'redux-saga/effects';\nimport { pushToGTM } from './dataLayer.js';\nimport _ from 'lodash';\nimport { getSite } from '../../selectors.js';\nimport { getCurrentSiteId } from '../../navigation/selectors.js';\nexport function sendUserMailToGTM(_a) {\n var idTokenPayload = _a.idTokenPayload;\n return __generator(this, function (_b) {\n pushToGTM({ event: 'logged-in', usermail: _.get(JSON.parse(idTokenPayload), 'email') });\n return [2];\n });\n}\nexport function setSiteToGTM() {\n var currentSiteId, siteName, _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentSiteId())];\n case 1:\n currentSiteId = _c.sent();\n _b = (_a = _).get;\n return [4, select(getSite(currentSiteId))];\n case 2:\n siteName = _b.apply(_a, [_c.sent(), 'name']);\n pushToGTM({ event: 'set-current-site', 'current-site': siteName });\n return [2];\n }\n });\n}\nexport function sendCurrentSiteToGTM(_a) {\n var siteName, _b, _c;\n var siteId = _a.siteId;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _c = (_b = _).get;\n return [4, select(getSite(siteId))];\n case 1:\n siteName = _c.apply(_b, [_d.sent(), 'name']);\n pushToGTM({ event: 'set-current-site', 'current-site': siteName });\n return [2];\n }\n });\n}\nexport default function gtmSaga() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery('LOGGED_IN', sendUserMailToGTM)];\n case 1:\n _a.sent();\n return [4, takeEvery('SET_CURRENT_SITE', sendCurrentSiteToGTM)];\n case 2:\n _a.sent();\n return [4, takeEvery('SET_NAVIGATION', setSiteToGTM)];\n case 3:\n _a.sent();\n return [2];\n }\n });\n}\n","export var newRtDataAvailable = function () { return ({\n type: 'NEW_RT_DATA',\n}); };\nexport var rtDataRefreshFailed = function () { return ({\n type: 'RT_DATA_REFRESH_FAILED',\n}); };\nexport var initWebsocket = function () { return ({\n type: 'INIT_WEBSOCKET',\n}); };\n","import { __generator } from \"tslib\";\nimport { eventChannel } from 'redux-saga';\nimport { take, call, put } from 'redux-saga/effects';\nimport { newRtDataAvailable, rtDataRefreshFailed } from './actions';\nvar connect = function () {\n var ws = new WebSocket(\"\" + window.WISPATCH_ENDPOINT);\n ws.onopen = function () {\n ws.send('{\"action\": \"subscribe\", \"topic\": \"realtime\"}');\n };\n return ws;\n};\nfunction createSocketChannel(socket) {\n return eventChannel(function (emit) {\n var messageHandler = function (event) {\n if (event.data !== 'keepalive') {\n emit('new_rt_data');\n }\n };\n socket.onmessage = messageHandler;\n var unsubscribe = socket.close;\n return unsubscribe;\n });\n}\nexport default function startStopChannel() {\n var socket, socketChannel, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, take('INIT_WEBSOCKET')];\n case 1:\n _a.sent();\n return [4, call(connect)];\n case 2:\n socket = _a.sent();\n return [4, call(createSocketChannel, socket)];\n case 3:\n socketChannel = _a.sent();\n _a.label = 4;\n case 4:\n if (!true) return [3, 11];\n _a.label = 5;\n case 5:\n _a.trys.push([5, 8, , 10]);\n return [4, take(socketChannel)];\n case 6:\n _a.sent();\n return [4, put(newRtDataAvailable())];\n case 7:\n _a.sent();\n return [3, 10];\n case 8:\n err_1 = _a.sent();\n return [4, put(rtDataRefreshFailed())];\n case 9:\n _a.sent();\n return [3, 10];\n case 10: return [3, 4];\n case 11: return [2];\n }\n });\n}\n","import { __generator } from \"tslib\";\nimport { takeEvery, put } from 'redux-saga/effects';\nimport { filter, isEmpty } from 'ramda';\nimport { getFromStatusApi } from '@src/commons/utils/request';\nimport { fetchAccessPointsSuccess, fetchAccessPointsFailure, setCurrentApsPage } from './actions';\nvar STATUS = {\n EMPTY: '',\n ERROR: 'ERROR',\n OK: 'OK',\n WARNING: 'WARNING',\n};\nexport var getStatusForAPs = function (accessPoints, nbApsUps) {\n if (isEmpty(accessPoints)) {\n return STATUS.EMPTY;\n }\n if (nbApsUps.length / accessPoints.length <= 0.9) {\n return STATUS.ERROR;\n }\n if (nbApsUps.length / accessPoints.length === 1) {\n return STATUS.OK;\n }\n return STATUS.WARNING;\n};\nexport function tryFetchAccessPoints(_a) {\n var _b, status, data, nbApsUps, apsStatus, e_1;\n var siteId = _a.siteId;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 7, , 9]);\n return [4, getFromStatusApi(\"aps/\" + siteId)];\n case 1:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 4];\n nbApsUps = filter(function (ap) { return ap.uptime > 0.2; }, data);\n apsStatus = getStatusForAPs(data, nbApsUps);\n return [4, put(fetchAccessPointsSuccess(siteId, data, apsStatus))];\n case 2:\n _c.sent();\n return [4, put(setCurrentApsPage(siteId, 0))];\n case 3: return [2, _c.sent()];\n case 4: return [4, put(fetchAccessPointsFailure(siteId))];\n case 5:\n _c.sent();\n _c.label = 6;\n case 6: return [3, 9];\n case 7:\n e_1 = _c.sent();\n return [4, put(fetchAccessPointsFailure(siteId))];\n case 8:\n _c.sent();\n return [3, 9];\n case 9: return [2];\n }\n });\n}\nexport default function accessPointsSaga() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery(['FETCH_ACCESS_POINTS', 'SET_CURRENT_SITE'], tryFetchAccessPoints)];\n case 1:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __generator, __read, __spread } from \"tslib\";\nimport { takeEvery, put } from 'redux-saga/effects';\nimport _ from 'lodash';\nimport { getFromMDM } from '@src/commons/utils/request';\nimport { fetchFeaturesSuccess, fetchFeaturesFailure } from './actions';\nexport function tryFetchFeatures(_a) {\n var _b, status, data, rawArray, features, values, e_1;\n var siteId = _a.siteId;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 6, , 8]);\n return [4, getFromMDM(\"features/\" + (siteId ? \"?site__uuid=\" + siteId : ''))];\n case 1:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 3];\n rawArray = _.get(data, 'features', data);\n features = _.filter(rawArray, _.isString);\n values = _.merge.apply(_, __spread([_.isPlainObject(data) ? _.get(data, 'values', {}) : {}], _.filter(rawArray, _.isObject).map(function (obj) {\n var _a;\n var key = _.findKey(obj, _.isObject);\n return key ? (_a = {}, _a[key] = obj[key], _a) : {};\n })));\n return [4, put(fetchFeaturesSuccess(features, values))];\n case 2: return [2, _c.sent()];\n case 3: return [4, put(fetchFeaturesFailure())];\n case 4:\n _c.sent();\n _c.label = 5;\n case 5: return [3, 8];\n case 6:\n e_1 = _c.sent();\n return [4, put(fetchFeaturesFailure())];\n case 7:\n _c.sent();\n return [3, 8];\n case 8: return [2];\n }\n });\n}\nexport default function featuresSaga() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery(['FETCH_FEATURES', 'SET_CURRENT_SITE'], tryFetchFeatures)];\n case 1:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __assign, __generator } from \"tslib\";\nimport moment from 'moment';\nimport momentTz from 'moment-timezone';\nimport _ from 'lodash';\nimport { takeEvery, put, select } from 'redux-saga/effects';\nimport { getFromMDM } from '@src/commons/utils/request';\nimport { fetchJplus1DatesSuccess, fetchJplus1DatesFailure, fetchLastExportStatusSuccess, fetchLastExportStatusFailure, } from './actions';\nimport { getSite } from '@src/selectors';\nexport function tryFetchJplus1Dates(_a) {\n var currentSite, expectedExportTime_1, _b, status, data, statusData, e_1;\n var siteId = _a.siteId;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 7, , 9]);\n return [4, select(getSite(siteId))];\n case 1:\n currentSite = _c.sent();\n expectedExportTime_1 = currentSite.expected_export_time;\n return [4, getFromMDM(\"exports/?site__uuid=\" + siteId)];\n case 2:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 4];\n statusData = _.map(data, function (d) { return (__assign({ date: d.export_date }, getStatusAndReasonFromLastExport([d], expectedExportTime_1))); });\n return [4, put(fetchJplus1DatesSuccess(siteId, statusData))];\n case 3: return [2, _c.sent()];\n case 4: return [4, put(fetchJplus1DatesFailure(siteId))];\n case 5:\n _c.sent();\n _c.label = 6;\n case 6: return [3, 9];\n case 7:\n e_1 = _c.sent();\n return [4, put(fetchJplus1DatesFailure(siteId))];\n case 8:\n _c.sent();\n return [3, 9];\n case 9: return [2];\n }\n });\n}\nexport var getStatusAndReasonFromLastExport = function (lastExports, expectedExportTime) {\n if (_.isEmpty(lastExports)) {\n return { status: 'ERROR', reason: 'no_export' };\n }\n var currentExport = _.head(lastExports);\n switch (currentExport.status) {\n case 'FAILED':\n return { status: 'ERROR', reason: 'export_failed' };\n case 'IN_PROGRESS':\n var currentDuration = moment.duration(moment().diff(moment(currentExport.created))).asHours();\n if (currentDuration > 1) {\n return { status: 'ERROR', reason: 'export_too_long' };\n }\n return { status: 'WARNING', reason: 'export_in_progress' };\n case 'DONE':\n var expected = moment(expectedExportTime, 'HH:mm:ss');\n var current = moment(currentExport.effective_export_date).format('HH:mm:ss');\n if (expected < moment(current, 'HH:mm:ss')) {\n return { status: 'WARNING', reason: 'export_too_late' };\n }\n return { status: 'OK', reason: '' };\n default:\n return { status: 'ERROR', reason: 'export_failed' };\n }\n};\nexport function tryFetchLastExportStatus(_a) {\n var currentSite, expectedExportTime, frTime, exportDate, _b, status, data, exportStatus, e_2;\n var siteId = _a.siteId;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 6, , 8]);\n return [4, select(getSite(siteId))];\n case 1:\n currentSite = _c.sent();\n expectedExportTime = currentSite.expected_export_time;\n frTime = momentTz(moment(), 'Europe/Paris');\n exportDate = moment(expectedExportTime, 'hh:mm:ss') > frTime\n ? moment().subtract(2, 'day').format('YYYY-MM-DD')\n : moment().subtract(1, 'day').format('YYYY-MM-DD');\n return [4, getFromMDM(\"last-exports/?site__uuid=\" + siteId + \"&export_date=\" + exportDate)];\n case 2:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 4];\n exportStatus = getStatusAndReasonFromLastExport(data, expectedExportTime);\n return [4, put(fetchLastExportStatusSuccess(siteId, exportStatus.status, exportStatus.reason))];\n case 3: return [2, _c.sent()];\n case 4: return [4, put(fetchLastExportStatusFailure(siteId))];\n case 5: return [2, _c.sent()];\n case 6:\n e_2 = _c.sent();\n return [4, put(fetchLastExportStatusFailure(siteId))];\n case 7: return [2, _c.sent()];\n case 8: return [2];\n }\n });\n}\nexport default function jplus1Sagas() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery('FETCH_JPLUS1_DATES', tryFetchJplus1Dates)];\n case 1:\n _a.sent();\n return [4, takeEvery('FETCH_LAST_EXPORT_STATUS', tryFetchLastExportStatus)];\n case 2:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __generator } from \"tslib\";\nimport { takeEvery, put } from 'redux-saga/effects';\nimport { getFromMDM } from '@src/commons/utils/request';\nimport _ from 'lodash';\nimport { fetchCollectStatusSuccess, fetchCollectStatusFailure } from './actions';\nexport function tryFetchCollectStatus(_a) {\n var _b, status, data, collectStatus, e_1;\n var siteId = _a.siteId;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 5, , 7]);\n return [4, getFromMDM(\"last-collect-events/?site__uuid=\" + siteId)];\n case 1:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 3];\n collectStatus = getCollectStatusReasonFromLastCollectEvent(data);\n return [4, put(fetchCollectStatusSuccess(siteId, collectStatus.status, collectStatus.reason))];\n case 2: return [2, _c.sent()];\n case 3: return [4, put(fetchCollectStatusFailure(siteId))];\n case 4: return [2, _c.sent()];\n case 5:\n e_1 = _c.sent();\n return [4, put(fetchCollectStatusFailure(siteId))];\n case 6: return [2, _c.sent()];\n case 7: return [2];\n }\n });\n}\nexport var getCollectStatusReasonFromLastCollectEvent = function (lastCollectEvent) {\n if (_.isEmpty(lastCollectEvent)) {\n return { status: 'ERROR', reason: 'no_collect_status' };\n }\n var currentCollectStatus = _.head(lastCollectEvent);\n switch (currentCollectStatus.status) {\n case 'KO':\n return { status: 'ERROR', reason: 'collect_down' };\n case 'OK':\n return { status: 'OK', reason: '' };\n default:\n return { status: 'WARNING', reason: 'collect_status_not_retrieved' };\n }\n};\nexport default function collectSagas() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery('FETCH_COLLECT_STATUS', tryFetchCollectStatus)];\n case 1:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __generator } from \"tslib\";\nimport { takeEvery, put } from 'redux-saga/effects';\nimport _ from 'lodash';\nimport { getFromMDM } from '@src/commons/utils/request';\nimport { fetchInsightsSuccess, fetchInsightsFailure, setCurrentInsight } from './actions';\nexport function tryFetchInsights(_a) {\n var _b, status, data, e_1;\n var siteId = _a.siteId;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 7, , 9]);\n return [4, getFromMDM(\"insights/?site__uuid=\" + siteId)];\n case 1:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 4];\n return [4, put(fetchInsightsSuccess(siteId, data))];\n case 2:\n _c.sent();\n return [4, put(setCurrentInsight(siteId, _.head(data).uuid))];\n case 3: return [2, _c.sent()];\n case 4: return [4, put(fetchInsightsFailure(siteId))];\n case 5: return [2, _c.sent()];\n case 6: return [3, 9];\n case 7:\n e_1 = _c.sent();\n return [4, put(fetchInsightsFailure(siteId))];\n case 8: return [2, _c.sent()];\n case 9: return [2];\n }\n });\n}\nexport default function insightsSaga() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery(['FETCH_INSIGHTS', 'SET_CURRENT_SITE'], tryFetchInsights)];\n case 1:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __generator } from \"tslib\";\nimport { takeEvery, put, select, call } from 'redux-saga/effects';\nimport _ from 'lodash';\nimport { getFromComputeEngine } from '@src/commons/utils/request';\nimport { getterNavigationSiteId, getterReportingNavigation } from './selectors';\nimport { statsLoading, fetchStatsSuccess, fetchStatsFailure, aggregatedStatsLoading, fetchAggregatedStatsSuccess, fetchAggregatedStatsFailure, fetchReferencePresenceStats, } from './actions';\nimport { getCurrentSiteId, getCurrentApp, getCurrentSection, getCurrentPopulation, getCurrentApp2, getCurrentSection2, } from '@src/navigation/selectors';\nimport { computeMonthlyPresence, computeMonthlyDwellTime } from './utils';\nimport { isFeatureActivated } from '@src/commons/features/selector';\nvar GC_STANDARD_DAYS = {\n fromDate: '2020-02-24',\n toDate: '2020-03-08',\n};\nexport function tryFetchPresenceStats() {\n var currentApp, currentSection, currentPopulation, siteId, _a, dayFrom, dayTo, granularity, config, currentArea, useReferenceData, _b, status, data, e_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentApp())];\n case 1:\n currentApp = _c.sent();\n return [4, select(getCurrentSection())];\n case 2:\n currentSection = _c.sent();\n return [4, select(getCurrentPopulation())];\n case 3:\n currentPopulation = _c.sent();\n if (currentApp !== 'reporting' || currentSection !== 'dashboard') {\n return [2];\n }\n return [4, select(getterNavigationSiteId, {})];\n case 4:\n siteId = _c.sent();\n return [4, select(getterReportingNavigation, {\n siteId: siteId,\n })];\n case 5:\n _a = _c.sent(), dayFrom = _a.dayFrom, dayTo = _a.dayTo, granularity = _a.granularity, config = _a.config, currentArea = _a.currentArea;\n if (!(granularity === 'monthly')) return [3, 7];\n return [4, call(tryFetchMonthlyStats, siteId, config.uuid, currentArea, dayFrom, dayTo, 'presence')];\n case 6: return [2, _c.sent()];\n case 7: return [4, select(isFeatureActivated('reporting_reference_data'))];\n case 8:\n useReferenceData = _c.sent();\n if (!(dayFrom === dayTo && useReferenceData)) return [3, 10];\n return [4, put(fetchReferencePresenceStats())];\n case 9:\n _c.sent();\n _c.label = 10;\n case 10:\n _c.trys.push([10, 17, , 19]);\n return [4, put(statsLoading(siteId, currentArea.uuid, 'presence', dayFrom, dayTo, granularity))];\n case 11:\n _c.sent();\n return [4, getFromComputeEngine(\"presence/list?granularity=\" + granularity + \"&config=\" + config.uuid + \"&zone=\" + encodeURIComponent(currentArea.name) + \"&fromDate=\" + dayFrom + \"&toDate=\" + dayTo + \"&population=\" + currentPopulation)];\n case 12:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 14];\n return [4, put(fetchStatsSuccess(siteId, currentArea.uuid, 'presence', dayFrom, dayTo, granularity, data))];\n case 13:\n _c.sent();\n return [3, 16];\n case 14: return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'presence', dayFrom, dayTo, granularity))];\n case 15:\n _c.sent();\n _c.label = 16;\n case 16: return [3, 19];\n case 17:\n e_1 = _c.sent();\n return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'presence', dayFrom, dayTo, granularity))];\n case 18:\n _c.sent();\n return [3, 19];\n case 19: return [2];\n }\n });\n}\nexport function tryFetchReferencePresenceStatsSaga() {\n var currentApp, currentSection, currentPopulation, siteId, _a, dayFrom, dayTo, granularity, config, currentArea, _b, status, data, e_2;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentApp())];\n case 1:\n currentApp = _c.sent();\n return [4, select(getCurrentSection())];\n case 2:\n currentSection = _c.sent();\n return [4, select(getCurrentPopulation())];\n case 3:\n currentPopulation = _c.sent();\n if (currentApp !== 'reporting' || currentSection !== 'dashboard') {\n return [2];\n }\n return [4, select(getterNavigationSiteId, {})];\n case 4:\n siteId = _c.sent();\n return [4, select(getterReportingNavigation, {\n siteId: siteId,\n })];\n case 5:\n _a = _c.sent(), dayFrom = _a.dayFrom, dayTo = _a.dayTo, granularity = _a.granularity, config = _a.config, currentArea = _a.currentArea;\n if (!(granularity === 'monthly')) return [3, 7];\n return [4, call(tryFetchMonthlyStats, siteId, config.uuid, currentArea, dayFrom, dayTo, 'reference_presense')];\n case 6: return [2, _c.sent()];\n case 7:\n _c.trys.push([7, 14, , 16]);\n return [4, put(statsLoading(siteId, currentArea.uuid, 'referencePresence', dayFrom, dayTo, granularity))];\n case 8:\n _c.sent();\n return [4, getFromComputeEngine(\"presence/standard/list?config_id=\" + config.uuid + \"&zone_name=\" + encodeURIComponent(currentArea.name) + \"&from_date=\" + dayFrom + \"&to_date=\" + dayTo + \"&population_name=\" + currentPopulation + \"&from_date_reference=\" + GC_STANDARD_DAYS.fromDate + \"&to_date_reference=\" + GC_STANDARD_DAYS.toDate)];\n case 9:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 11];\n return [4, put(fetchStatsSuccess(siteId, currentArea.uuid, 'referencePresence', dayFrom, dayTo, granularity, data))];\n case 10:\n _c.sent();\n return [3, 13];\n case 11: return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'referencePresence', dayFrom, dayTo, granularity))];\n case 12:\n _c.sent();\n _c.label = 13;\n case 13: return [3, 16];\n case 14:\n e_2 = _c.sent();\n return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'referencePresence', dayFrom, dayTo, granularity))];\n case 15:\n _c.sent();\n return [3, 16];\n case 16: return [2];\n }\n });\n}\nexport function tryFetchDwelltimeStats() {\n var currentApp, currentSection, currentPopulation, siteId, _a, dayFrom, dayTo, granularity, config, currentArea, customGranularity, _b, status, data, e_3;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentApp())];\n case 1:\n currentApp = _c.sent();\n return [4, select(getCurrentSection())];\n case 2:\n currentSection = _c.sent();\n return [4, select(getCurrentPopulation())];\n case 3:\n currentPopulation = _c.sent();\n if (currentApp !== 'reporting' || !_.includes(['dashboard', 'retail', 'advertising'], currentSection)) {\n return [2];\n }\n return [4, select(getterNavigationSiteId, {})];\n case 4:\n siteId = _c.sent();\n return [4, select(getterReportingNavigation, {\n siteId: siteId,\n })];\n case 5:\n _a = _c.sent(), dayFrom = _a.dayFrom, dayTo = _a.dayTo, granularity = _a.granularity, config = _a.config, currentArea = _a.currentArea;\n if (!(granularity === 'monthly')) return [3, 7];\n return [4, call(tryFetchMonthlyStats, siteId, config.uuid, currentArea, dayFrom, dayTo, 'dwelltime')];\n case 6: return [2, _c.sent()];\n case 7:\n customGranularity = _.includes(['retail', 'advertising'], currentSection) ? 'daily' : granularity;\n _c.label = 8;\n case 8:\n _c.trys.push([8, 15, , 17]);\n return [4, put(statsLoading(siteId, currentArea.uuid, 'dwelltime', dayFrom, dayTo, customGranularity))];\n case 9:\n _c.sent();\n return [4, getFromComputeEngine(\"dwelltime/list?granularity=\" + customGranularity + \"&config_id=\" + config.uuid + \"&zone_name=\" + encodeURIComponent(currentArea.name) + \"&from_date=\" + dayFrom + \"&to_date=\" + dayTo + \"&population_name=\" + currentPopulation)];\n case 10:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 12];\n return [4, put(fetchStatsSuccess(siteId, currentArea.uuid, 'dwelltime', dayFrom, dayTo, customGranularity, data))];\n case 11:\n _c.sent();\n return [3, 14];\n case 12: return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'dwelltime', dayFrom, dayTo, customGranularity))];\n case 13:\n _c.sent();\n _c.label = 14;\n case 14: return [3, 17];\n case 15:\n e_3 = _c.sent();\n return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'dwelltime', dayFrom, dayTo, customGranularity))];\n case 16:\n _c.sent();\n return [3, 17];\n case 17: return [2];\n }\n });\n}\nexport function tryFetchAggregatedPresenceStats() {\n var currentApp, currentSection, currentPopulation, siteId, _a, dayFrom, dayTo, config, currentArea, _b, status, data, error_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentApp())];\n case 1:\n currentApp = _c.sent();\n return [4, select(getCurrentSection())];\n case 2:\n currentSection = _c.sent();\n return [4, select(getCurrentPopulation())];\n case 3:\n currentPopulation = _c.sent();\n if (currentApp !== 'reporting' || currentSection !== 'dashboard') {\n return [2];\n }\n return [4, select(getterNavigationSiteId, {})];\n case 4:\n siteId = _c.sent();\n return [4, select(getterReportingNavigation, { siteId: siteId })];\n case 5:\n _a = _c.sent(), dayFrom = _a.dayFrom, dayTo = _a.dayTo, config = _a.config, currentArea = _a.currentArea;\n _c.label = 6;\n case 6:\n _c.trys.push([6, 13, , 15]);\n return [4, put(aggregatedStatsLoading(siteId, currentArea.uuid, 'presence', dayFrom, dayTo, 'daily'))];\n case 7:\n _c.sent();\n return [4, getFromComputeEngine(\"presence/sum?granularity=daily&config_id=\" + config.uuid + \"&zone_name=\" + encodeURIComponent(currentArea.name) + \"&from_date=\" + dayFrom + \"&to_date=\" + dayTo + \"&population_name=\" + currentPopulation)];\n case 8:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 10];\n return [4, put(fetchAggregatedStatsSuccess(siteId, currentArea.uuid, 'presence', dayFrom, dayTo, 'daily', data))];\n case 9:\n _c.sent();\n return [3, 12];\n case 10: return [4, put(fetchAggregatedStatsFailure(siteId, currentArea.uuid, 'presence', dayFrom, dayTo, 'daily'))];\n case 11:\n _c.sent();\n _c.label = 12;\n case 12: return [3, 15];\n case 13:\n error_1 = _c.sent();\n return [4, put(fetchAggregatedStatsFailure(siteId, currentArea.uuid, 'presence', dayFrom, dayTo, 'daily'))];\n case 14:\n _c.sent();\n return [3, 15];\n case 15: return [2];\n }\n });\n}\nexport function tryFetchAggregatedDwelltimeStats() {\n var currentApp, currentSection, currentPopulation, siteId, _a, dayFrom, dayTo, config, currentArea, _b, status, data, error_2;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentApp())];\n case 1:\n currentApp = _c.sent();\n return [4, select(getCurrentSection())];\n case 2:\n currentSection = _c.sent();\n return [4, select(getCurrentPopulation())];\n case 3:\n currentPopulation = _c.sent();\n if (currentApp !== 'reporting' || !_.includes(['dashboard', 'retail', 'advertising'], currentSection)) {\n return [2];\n }\n return [4, select(getterNavigationSiteId, {})];\n case 4:\n siteId = _c.sent();\n return [4, select(getterReportingNavigation, { siteId: siteId })];\n case 5:\n _a = _c.sent(), dayFrom = _a.dayFrom, dayTo = _a.dayTo, config = _a.config, currentArea = _a.currentArea;\n _c.label = 6;\n case 6:\n _c.trys.push([6, 13, , 15]);\n return [4, put(aggregatedStatsLoading(siteId, currentArea.uuid, 'dwelltime', dayFrom, dayTo, 'daily'))];\n case 7:\n _c.sent();\n return [4, getFromComputeEngine(\"dwelltime/mean?granularity=daily&config_id=\" + config.uuid + \"&zone_name=\" + encodeURIComponent(currentArea.name) + \"&from_date=\" + dayFrom + \"&to_date=\" + dayTo + \"&population_name=\" + currentPopulation)];\n case 8:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 10];\n return [4, put(fetchAggregatedStatsSuccess(siteId, currentArea.uuid, 'dwelltime', dayFrom, dayTo, 'daily', data))];\n case 9:\n _c.sent();\n return [3, 12];\n case 10: return [4, put(fetchAggregatedStatsFailure(siteId, currentArea.uuid, 'dwelltime', dayFrom, dayTo, 'daily'))];\n case 11:\n _c.sent();\n _c.label = 12;\n case 12: return [3, 15];\n case 13:\n error_2 = _c.sent();\n return [4, put(fetchAggregatedStatsFailure(siteId, currentArea.uuid, 'dwelltime', dayFrom, dayTo, 'daily'))];\n case 14:\n _c.sent();\n return [3, 15];\n case 15: return [2];\n }\n });\n}\nexport function tryFetchMonthlyStats(siteId, configId, currentArea, dayFrom, dayTo, kind) {\n var currentPopulation, url, _a, status, data, monthlyData, e_4;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getCurrentPopulation())];\n case 1:\n currentPopulation = _b.sent();\n _b.label = 2;\n case 2:\n _b.trys.push([2, 10, , 12]);\n return [4, put(statsLoading(siteId, currentArea.uuid, kind, dayFrom, dayTo, 'monthly'))];\n case 3:\n _b.sent();\n url = '';\n if (kind === 'dwelltime') {\n url = \"dwelltime/list?granularity=daily&config_id=\" + configId + \"&zone_name=\" + encodeURIComponent(currentArea.name) + \"&from_date=\" + dayFrom + \"&to_date=\" + dayTo + \"&population_name=\" + currentPopulation;\n }\n else {\n url = \"presence/list?granularity=daily&config=\" + configId + \"&zone=\" + encodeURIComponent(currentArea.name) + \"&fromDate=\" + dayFrom + \"&toDate=\" + dayTo + \"&population=\" + currentPopulation;\n }\n return [4, getFromComputeEngine(url)];\n case 4:\n _a = _b.sent(), status = _a.status, data = _a.data;\n if (!(status === 200)) return [3, 7];\n return [4, kind === 'dwelltime'\n ? computeMonthlyDwellTime(data)\n : computeMonthlyPresence(data)];\n case 5:\n monthlyData = _b.sent();\n return [4, put(fetchStatsSuccess(siteId, currentArea.uuid, kind, dayFrom, dayTo, 'monthly', monthlyData))];\n case 6:\n _b.sent();\n return [3, 9];\n case 7: return [4, put(fetchStatsFailure(siteId, currentArea.uuid, kind, dayFrom, dayTo, 'monthly'))];\n case 8:\n _b.sent();\n _b.label = 9;\n case 9: return [3, 12];\n case 10:\n e_4 = _b.sent();\n return [4, put(fetchStatsFailure(siteId, currentArea.uuid, kind, dayFrom, dayTo, 'monthly'))];\n case 11:\n _b.sent();\n return [3, 12];\n case 12: return [2];\n }\n });\n}\nexport function tryFetchTrafficStatsByPopulation() {\n var currentApp, currentSection, siteId, _a, dayFrom, dayTo, config, currentArea, granularity, isFromPopulationForGCActivated, _b, status, data, _c, status, data, e_5;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4, select(getCurrentApp())];\n case 1:\n currentApp = _d.sent();\n return [4, select(getCurrentSection())];\n case 2:\n currentSection = _d.sent();\n if (currentApp !== 'reporting' || !_.includes(['dashboard', 'retail', 'advertising'], currentSection)) {\n return [2];\n }\n return [4, select(getCurrentSiteId())];\n case 3:\n siteId = _d.sent();\n return [4, select(getterReportingNavigation, { siteId: siteId })];\n case 4:\n _a = _d.sent(), dayFrom = _a.dayFrom, dayTo = _a.dayTo, config = _a.config, currentArea = _a.currentArea;\n granularity = 'daily';\n _d.label = 5;\n case 5:\n _d.trys.push([5, 19, , 21]);\n return [4, put(statsLoading(siteId, currentArea.uuid, 'presenceByPopulation', dayFrom, dayTo, granularity))];\n case 6:\n _d.sent();\n return [4, select(isFeatureActivated('population_from_gc'))];\n case 7:\n isFromPopulationForGCActivated = _d.sent();\n if (!isFromPopulationForGCActivated) return [3, 13];\n return [4, getFromComputeEngine(\"presenceByPopulation?config=\" + config.uuid)];\n case 8:\n _b = _d.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 10];\n return [4, put(fetchStatsSuccess(siteId, currentArea.uuid, 'presenceByPopulation', dayFrom, dayTo, granularity, data))];\n case 9:\n _d.sent();\n return [3, 12];\n case 10: return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'presenceByPopulation', dayFrom, dayTo, granularity))];\n case 11:\n _d.sent();\n _d.label = 12;\n case 12: return [3, 18];\n case 13: return [4, getFromComputeEngine(\"presence/list?granularity=\" + granularity + \"&config=\" + config.uuid + \"&zone=\" + encodeURIComponent(currentArea.name) + \"&fromDate=\" + dayFrom + \"&toDate=\" + dayTo)];\n case 14:\n _c = _d.sent(), status = _c.status, data = _c.data;\n if (!(status === 200)) return [3, 16];\n return [4, put(fetchStatsSuccess(siteId, currentArea.uuid, 'presenceByPopulation', dayFrom, dayTo, granularity, data))];\n case 15:\n _d.sent();\n return [3, 18];\n case 16: return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'presenceByPopulation', dayFrom, dayTo, granularity))];\n case 17:\n _d.sent();\n _d.label = 18;\n case 18: return [3, 21];\n case 19:\n e_5 = _d.sent();\n return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'presenceByPopulation', dayFrom, dayTo, granularity))];\n case 20:\n _d.sent();\n return [3, 21];\n case 21: return [2];\n }\n });\n}\nexport function tryFetchDwelltimeStatsByPopulation() {\n var currentApp, currentSection, siteId, _a, dayFrom, dayTo, config, currentArea, granularity, _b, status, data, e_6;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentApp2)];\n case 1:\n currentApp = _c.sent();\n return [4, select(getCurrentSection2)];\n case 2:\n currentSection = _c.sent();\n if (currentApp !== 'reporting' || currentSection !== 'dashboard') {\n return [2];\n }\n return [4, select(getCurrentSiteId())];\n case 3:\n siteId = _c.sent();\n return [4, select(getterReportingNavigation, { siteId: siteId })];\n case 4:\n _a = _c.sent(), dayFrom = _a.dayFrom, dayTo = _a.dayTo, config = _a.config, currentArea = _a.currentArea;\n granularity = 'daily';\n _c.label = 5;\n case 5:\n _c.trys.push([5, 12, , 14]);\n return [4, put(statsLoading(siteId, currentArea.uuid, 'dwelltimeByPopulation', dayFrom, dayTo, granularity))];\n case 6:\n _c.sent();\n return [4, getFromComputeEngine(\"dwelltime/list?granularity=\" + granularity + \"&config_id=\" + config.uuid + \"&zone_name=\" + encodeURIComponent(currentArea.name) + \"&from_date=\" + dayFrom + \"&to_date=\" + dayTo)];\n case 7:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 9];\n return [4, put(fetchStatsSuccess(siteId, currentArea.uuid, 'dwelltimeByPopulation', dayFrom, dayTo, granularity, data))];\n case 8:\n _c.sent();\n return [3, 11];\n case 9: return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'dwelltimeByPopulation', dayFrom, dayTo, granularity))];\n case 10:\n _c.sent();\n _c.label = 11;\n case 11: return [3, 14];\n case 12:\n e_6 = _c.sent();\n return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'dwelltimeByPopulation', dayFrom, dayTo, granularity))];\n case 13:\n _c.sent();\n return [3, 14];\n case 14: return [2];\n }\n });\n}\nexport default function computeSagas() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery(['FETCH_PRESENCE_STATS'], tryFetchPresenceStats)];\n case 1:\n _a.sent();\n return [4, takeEvery(['FETCH_DWELLTIME_STATS'], tryFetchDwelltimeStats)];\n case 2:\n _a.sent();\n return [4, takeEvery(['FETCH_PRESENCE_STATS'], tryFetchAggregatedPresenceStats)];\n case 3:\n _a.sent();\n return [4, takeEvery(['FETCH_DWELLTIME_STATS'], tryFetchAggregatedDwelltimeStats)];\n case 4:\n _a.sent();\n return [4, takeEvery(['FETCH_DWELLTIME_STATS_BY_POPULATION'], tryFetchDwelltimeStatsByPopulation)];\n case 5:\n _a.sent();\n return [4, takeEvery(['FETCH_PRESENCE_STATS_BY_POPULATION'], tryFetchTrafficStatsByPopulation)];\n case 6:\n _a.sent();\n return [4, takeEvery(['FETCH_REFERENCE_PRESENCE_STATS'], tryFetchReferencePresenceStatsSaga)];\n case 7:\n _a.sent();\n return [2];\n }\n });\n}\n","export var fetchProcesses = function (siteId) { return ({\n type: 'FETCH_PROCESSES',\n siteId: siteId,\n}); };\nexport var fetchProcessesSuccess = function (siteId, data) { return ({\n type: 'FETCH_PROCESSES_SUCCESS',\n siteId: siteId,\n data: data,\n}); };\nexport var fetchProcessesFailure = function (siteId) { return ({\n type: 'FETCH_PROCESSES_FAILURE',\n siteId: siteId,\n}); };\n","import { __generator } from \"tslib\";\nimport { takeEvery, take, select, call, put } from 'redux-saga/effects';\nimport _ from 'lodash';\nimport html2canvas from 'html2canvas';\nimport { saveAs } from 'file-saver';\nimport { getFromComputeEngine } from '@src/commons/utils/request';\nimport { setGranularity } from '@src/navigation/actions';\nimport { fetchFloors2 } from '@src/commons/floors/actions';\nimport { aggregatedStatsLoading, fetchAggregatedStatsSuccess, fetchAggregatedStatsFailure, statsLoading, fetchStatsSuccess, fetchStatsFailure, setStatsStatus, } from '@src/reporting/actions';\nimport { fetchAggregatedStatsFromComputeEngine, fetchStatsFromComputeEngine, fetchPresenceMeanFromComputeEngine, downloadReportSuccess, downloadReportStart, reportsCreationSectionLoaded, fetchReportsCreationStats, } from '@src/reporting/reports/actions';\nimport { getSite } from '@src/selectors';\nimport { getCurrentSiteId, getCurrentPopulation, getCurrentSiteId2 } from '@src/navigation/selectors';\nimport { getterReportingNavigation, selectAreaDatesComputeData } from '@src/reporting/selectors';\nimport { computePresenceMean, getSmallestAvailableGranularityFromFilters, isDailyDistribComplete, } from '../utils';\nimport { fetchProcesses } from '@src/commons/processes/actions';\nexport function initReportsCreationSectionSaga(_a) {\n var siteId;\n var history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getCurrentSiteId2, {})];\n case 1:\n siteId = _b.sent();\n return [4, put(fetchFloors2(siteId, history))];\n case 2:\n _b.sent();\n return [4, take('FETCH_FLOORS_SUCCESS2')];\n case 3:\n _b.sent();\n return [4, put(fetchProcesses(siteId))];\n case 4:\n _b.sent();\n return [4, put(reportsCreationSectionLoaded())];\n case 5:\n _b.sent();\n return [4, put(fetchReportsCreationStats())];\n case 6:\n _b.sent();\n return [2];\n }\n });\n}\nexport function tryFetchReportsCreationStatsFromCompute() {\n var siteId, _a, dayFrom, dayTo, config, currentArea, comparedDayFrom, comparedDayTo, comparedArea, comparisonMode, currentGranularity, currentPopulation;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getCurrentSiteId())];\n case 1:\n siteId = _b.sent();\n return [4, select(getterReportingNavigation, { siteId: siteId })];\n case 2:\n _a = _b.sent(), dayFrom = _a.dayFrom, dayTo = _a.dayTo, config = _a.config, currentArea = _a.currentArea, comparedDayFrom = _a.comparedDayFrom, comparedDayTo = _a.comparedDayTo, comparedArea = _a.comparedArea, comparisonMode = _a.comparisonMode;\n currentGranularity = getSmallestAvailableGranularityFromFilters('daily', dayFrom, dayTo, comparedDayFrom, comparedDayTo);\n return [4, select(getCurrentPopulation())];\n case 3:\n currentPopulation = _b.sent();\n return [4, put(setGranularity(currentGranularity))];\n case 4:\n _b.sent();\n return [4, put(fetchAggregatedStatsFromComputeEngine('dwelltime/mean', siteId, config.uuid, 'dwelltime', 'daily', currentArea, dayFrom, dayTo, 'mean', currentPopulation))];\n case 5:\n _b.sent();\n return [4, put(fetchAggregatedStatsFromComputeEngine('presence/sum', siteId, config.uuid, 'presence', 'daily', currentArea, dayFrom, dayTo, 'sum', currentPopulation))];\n case 6:\n _b.sent();\n return [4, put(fetchStatsFromComputeEngine('dwelltime/list', siteId, currentArea, config.uuid, 'dwelltime', currentGranularity, dayFrom, dayTo, currentPopulation))];\n case 7:\n _b.sent();\n return [4, put(fetchStatsFromComputeEngine('presence/list', siteId, currentArea, config.uuid, 'presence', currentGranularity, dayFrom, dayTo, currentPopulation))];\n case 8:\n _b.sent();\n return [4, put(fetchStatsFromComputeEngine('presence/list', siteId, currentArea, config.uuid, 'presence', 'daily', dayFrom, dayTo, currentPopulation))];\n case 9:\n _b.sent();\n return [4, put(fetchPresenceMeanFromComputeEngine(siteId, currentArea, config.uuid, dayFrom, dayTo, currentPopulation))];\n case 10:\n _b.sent();\n if (!(comparisonMode.uuid === 'date')) return [3, 17];\n return [4, put(fetchAggregatedStatsFromComputeEngine('dwelltime/mean', siteId, config.uuid, 'dwelltime', 'daily', currentArea, comparedDayFrom, comparedDayTo, 'mean', currentPopulation))];\n case 11:\n _b.sent();\n return [4, put(fetchAggregatedStatsFromComputeEngine('presence/sum', siteId, config.uuid, 'presence', 'daily', currentArea, comparedDayFrom, comparedDayTo, 'sum', currentPopulation))];\n case 12:\n _b.sent();\n return [4, put(fetchStatsFromComputeEngine('dwelltime/list', siteId, currentArea, config.uuid, 'dwelltime', currentGranularity, comparedDayFrom, comparedDayTo, currentPopulation))];\n case 13:\n _b.sent();\n return [4, put(fetchStatsFromComputeEngine('presence/list', siteId, currentArea, config.uuid, 'presence', currentGranularity, comparedDayFrom, comparedDayTo, currentPopulation))];\n case 14:\n _b.sent();\n return [4, put(fetchStatsFromComputeEngine('presence/list', siteId, currentArea, config.uuid, 'presence', 'daily', comparedDayFrom, comparedDayTo, currentPopulation))];\n case 15:\n _b.sent();\n return [4, put(fetchPresenceMeanFromComputeEngine(siteId, currentArea, config.uuid, comparedDayFrom, comparedDayTo, currentPopulation))];\n case 16:\n _b.sent();\n return [3, 24];\n case 17:\n if (!(comparisonMode.uuid === 'zone')) return [3, 24];\n return [4, put(fetchAggregatedStatsFromComputeEngine('dwelltime/mean', siteId, config.uuid, 'dwelltime', 'daily', comparedArea, dayFrom, dayTo, 'mean', currentPopulation))];\n case 18:\n _b.sent();\n return [4, put(fetchAggregatedStatsFromComputeEngine('presence/sum', siteId, config.uuid, 'presence', 'daily', comparedArea, dayFrom, dayTo, 'sum', currentPopulation))];\n case 19:\n _b.sent();\n return [4, put(fetchStatsFromComputeEngine('dwelltime/list', siteId, comparedArea, config.uuid, 'dwelltime', currentGranularity, dayFrom, dayTo, currentPopulation))];\n case 20:\n _b.sent();\n return [4, put(fetchStatsFromComputeEngine('presence/list', siteId, comparedArea, config.uuid, 'presence', currentGranularity, dayFrom, dayTo, currentPopulation))];\n case 21:\n _b.sent();\n return [4, put(fetchStatsFromComputeEngine('presence/list', siteId, comparedArea, config.uuid, 'presence', 'daily', dayFrom, dayTo, currentPopulation))];\n case 22:\n _b.sent();\n return [4, put(fetchPresenceMeanFromComputeEngine(siteId, comparedArea, config.uuid, dayFrom, dayTo, currentPopulation))];\n case 23:\n _b.sent();\n _b.label = 24;\n case 24: return [2];\n }\n });\n}\nexport function fetchAggregatedStatsFromComputeEngineSaga(_a) {\n var _b, status, data, e_1;\n var endpoint = _a.endpoint, siteId = _a.siteId, area = _a.area, configId = _a.configId, kind = _a.kind, dayFrom = _a.dayFrom, dayTo = _a.dayTo, granularity = _a.granularity, statKey = _a.statKey, population = _a.population;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 7, , 9]);\n return [4, put(aggregatedStatsLoading(siteId, area.uuid, kind, dayFrom, dayTo, granularity, statKey))];\n case 1:\n _c.sent();\n return [4, getFromComputeEngine(endpoint + \"?granularity=\" + granularity + \"&config_id=\" + configId + \"&zone_name=\" + encodeURIComponent(area.name) + \"&from_date=\" + dayFrom + \"&to_date=\" + dayTo + \"&population_name=\" + population)];\n case 2:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200 && data['Value'] !== 0)) return [3, 4];\n return [4, put(fetchAggregatedStatsSuccess(siteId, area.uuid, kind, dayFrom, dayTo, granularity, data, statKey))];\n case 3:\n _c.sent();\n return [3, 6];\n case 4: return [4, put(fetchAggregatedStatsFailure(siteId, area.uuid, kind, dayFrom, dayTo, granularity, statKey))];\n case 5:\n _c.sent();\n _c.label = 6;\n case 6: return [3, 9];\n case 7:\n e_1 = _c.sent();\n return [4, put(fetchAggregatedStatsFailure(siteId, area.uuid, kind, dayFrom, dayTo, granularity, statKey))];\n case 8:\n _c.sent();\n return [3, 9];\n case 9: return [2];\n }\n });\n}\nexport function fetchStatsFromComputeEngineSaga(_a) {\n var url, customGranularity, _b, status, data, e_2;\n var endpoint = _a.endpoint, siteId = _a.siteId, area = _a.area, configId = _a.configId, kind = _a.kind, dayFrom = _a.dayFrom, dayTo = _a.dayTo, granularity = _a.granularity, population = _a.population;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 9, , 11]);\n return [4, put(statsLoading(siteId, area.uuid, kind, dayFrom, dayTo, granularity))];\n case 1:\n _c.sent();\n url = '';\n customGranularity = granularity === 'monthly' ? 'daily' : granularity;\n if (endpoint === 'presence/list') {\n url = endpoint + \"?granularity=\" + customGranularity + \"&config=\" + configId + \"&zone=\" + encodeURIComponent(area.name) + \"&fromDate=\" + dayFrom + \"&toDate=\" + dayTo + \"&population=\" + population;\n }\n else {\n url = endpoint + \"?granularity=\" + customGranularity + \"&config_id=\" + configId + \"&zone_name=\" + encodeURIComponent(area.name) + \"&from_date=\" + dayFrom + \"&to_date=\" + dayTo + \"&population_name=\" + population;\n }\n return [4, getFromComputeEngine(url)];\n case 2:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200 && !_.isEmpty(data))) return [3, 6];\n return [4, put(fetchStatsSuccess(siteId, area.uuid, kind, dayFrom, dayTo, granularity, data))];\n case 3:\n _c.sent();\n if (!(granularity === 'daily' && !isDailyDistribComplete(data, dayFrom, dayTo))) return [3, 5];\n return [4, put(setStatsStatus(siteId, area.uuid, kind, dayFrom, dayTo, 'daily', '', 'partial_data'))];\n case 4:\n _c.sent();\n _c.label = 5;\n case 5: return [3, 8];\n case 6: return [4, put(fetchStatsFailure(siteId, area.uuid, kind, dayFrom, dayTo, granularity))];\n case 7:\n _c.sent();\n _c.label = 8;\n case 8: return [3, 11];\n case 9:\n e_2 = _c.sent();\n return [4, put(fetchStatsFailure(siteId, area.uuid, kind, dayFrom, dayTo, granularity))];\n case 10:\n _c.sent();\n return [3, 11];\n case 11: return [2];\n }\n });\n}\nexport function fetchPresenceMeanFromComputeEngineSaga(_a) {\n var areaDatesComputeData, presenceMean, e_3;\n var siteId = _a.siteId, area = _a.area, configId = _a.configId, dayFrom = _a.dayFrom, dayTo = _a.dayTo, population = _a.population;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 9, , 11]);\n return [4, put(aggregatedStatsLoading(siteId, area.uuid, 'presence', dayFrom, dayTo, 'daily', 'mean'))];\n case 1:\n _b.sent();\n return [4, call(fetchStatsFromComputeEngineSaga, {\n endpoint: 'presence/list',\n siteId: siteId,\n area: area,\n configId: configId,\n kind: 'presence',\n dayFrom: dayFrom,\n dayTo: dayTo,\n granularity: 'daily',\n population: population,\n })];\n case 2:\n _b.sent();\n return [4, select(selectAreaDatesComputeData, {\n siteId: siteId,\n areaId: area.uuid,\n kind: 'presence',\n granularity: 'daily',\n dayFrom: dayFrom,\n dayTo: dayTo,\n })];\n case 3:\n areaDatesComputeData = _b.sent();\n return [4, computePresenceMean(_.get(areaDatesComputeData, 'data', []))];\n case 4:\n presenceMean = _b.sent();\n if (!_.isNaN(presenceMean)) return [3, 6];\n return [4, put(fetchAggregatedStatsFailure(siteId, area.uuid, 'presence', dayFrom, dayTo, 'daily', 'mean'))];\n case 5:\n _b.sent();\n return [3, 8];\n case 6: return [4, put(fetchAggregatedStatsSuccess(siteId, area.uuid, 'presence', dayFrom, dayTo, 'daily', { Value: presenceMean }, 'mean'))];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 11];\n case 9:\n e_3 = _b.sent();\n return [4, put(fetchAggregatedStatsFailure(siteId, area.uuid, 'presence', dayFrom, dayTo, 'daily', 'mean'))];\n case 10:\n _b.sent();\n return [3, 11];\n case 11: return [2];\n }\n });\n}\nexport function downloadReport(_a) {\n var siteId, site, element, canvas, fileName_1;\n var reportPrefix = _a.reportPrefix, reportSuffix = _a.reportSuffix;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, put(downloadReportStart())];\n case 1:\n _b.sent();\n return [4, select(getCurrentSiteId())];\n case 2:\n siteId = _b.sent();\n return [4, select(getSite(siteId))];\n case 3:\n site = _b.sent();\n element = window.document.getElementsByClassName('reports')[0];\n if (!element) return [3, 6];\n return [4, html2canvas(element, {\n onclone: function (document) {\n document.querySelector('.reports__logo').style.display = 'flex';\n },\n })];\n case 4:\n canvas = _b.sent();\n fileName_1 = \"\" + site.display_name;\n if (reportPrefix !== '') {\n fileName_1 = reportPrefix + \"_\" + fileName_1;\n }\n if (reportSuffix !== '') {\n fileName_1 = fileName_1 + \"_\" + reportSuffix;\n }\n fileName_1 += '.png';\n return [4, canvas.toBlob(function (blob) { return saveAs(blob, fileName_1); })];\n case 5:\n _b.sent();\n _b.label = 6;\n case 6: return [4, put(downloadReportSuccess())];\n case 7:\n _b.sent();\n return [2];\n }\n });\n}\nexport default function reportsSagas() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery(['INIT_REPORTS_CREATION_SECTION'], initReportsCreationSectionSaga)];\n case 1:\n _a.sent();\n return [4, takeEvery(['FETCH_REPORTS_CREATION_STATS'], tryFetchReportsCreationStatsFromCompute)];\n case 2:\n _a.sent();\n return [4, takeEvery(['FETCH_AGGREGATED_STATS_FROM_COMPUTE_ENGINE'], fetchAggregatedStatsFromComputeEngineSaga)];\n case 3:\n _a.sent();\n return [4, takeEvery(['FETCH_STATS_FROM_COMPUTE_ENGINE'], fetchStatsFromComputeEngineSaga)];\n case 4:\n _a.sent();\n return [4, takeEvery(['FETCH_PRESENCE_MEAN_FROM_COMPUTE_ENGINE'], fetchPresenceMeanFromComputeEngineSaga)];\n case 5:\n _a.sent();\n return [4, takeEvery(['DOWNLOAD_REPORT'], downloadReport)];\n case 6:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __generator } from \"tslib\";\nimport { takeEvery, put, select } from 'redux-saga/effects';\nimport { getFromStatusApi } from '@src/commons/utils/request';\nimport { fetchRealtimeStatusSuccess } from '@src/monitoring/summary/realtime/actions';\nimport { getSite } from '@src/selectors';\nexport function tryFetchRealtimeStatus(_a) {\n var site, _b, status, data, e_1;\n var siteId = _a.siteId;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 8, , 10]);\n return [4, select(getSite(siteId))];\n case 1:\n site = _c.sent();\n return [4, getFromStatusApi(\"realtime/\" + siteId + \"?token=\" + site.rt_api_key)];\n case 2:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status !== 200)) return [3, 4];\n return [4, put(fetchRealtimeStatusSuccess(siteId, 'ERROR', 'api_down'))];\n case 3: return [2, _c.sent()];\n case 4:\n if (!(data === 'OK')) return [3, 6];\n return [4, put(fetchRealtimeStatusSuccess(siteId, 'OK', ''))];\n case 5: return [2, _c.sent()];\n case 6: return [4, put(fetchRealtimeStatusSuccess(siteId, 'ERROR', 'no_data'))];\n case 7: return [2, _c.sent()];\n case 8:\n e_1 = _c.sent();\n return [4, put(fetchRealtimeStatusSuccess(siteId, 'ERROR', 'api_down'))];\n case 9: return [2, _c.sent()];\n case 10: return [2];\n }\n });\n}\nexport default function realtimeSagas() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery(['FETCH_REALTIME_STATUS'], tryFetchRealtimeStatus)];\n case 1:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __generator } from \"tslib\";\nimport _ from 'lodash';\nimport { put, select, takeEvery } from 'redux-saga/effects';\nimport { getFromMDM } from '@src/commons/utils/request';\nimport { getCurrentApp } from '@src/navigation/selectors';\nimport { getConfig } from '../configs/selectors';\nimport { fetchProcessesSuccess, fetchProcessesFailure } from './actions';\nexport function tryFetchProcesses(_a) {\n var config, currentApp, _b, status, data, e_1;\n var siteId = _a.siteId;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getConfig(siteId))];\n case 1:\n config = _c.sent();\n return [4, select(getCurrentApp())];\n case 2:\n currentApp = _c.sent();\n if (currentApp !== 'reporting') {\n return [2];\n }\n _c.label = 3;\n case 3:\n _c.trys.push([3, 9, , 11]);\n return [4, getFromMDM(\"processes/?config__uuid=\" + _.get(config, 'uuid'))];\n case 4:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 6];\n return [4, put(fetchProcessesSuccess(siteId, data))];\n case 5:\n _c.sent();\n return [3, 8];\n case 6: return [4, put(fetchProcessesFailure(siteId))];\n case 7:\n _c.sent();\n _c.label = 8;\n case 8: return [3, 11];\n case 9:\n e_1 = _c.sent();\n return [4, put(fetchProcessesFailure(siteId))];\n case 10:\n _c.sent();\n return [3, 11];\n case 11: return [2];\n }\n });\n}\nexport default function processesSaga() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery(['FETCH_PROCESSES'], tryFetchProcesses)];\n case 1:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __generator } from \"tslib\";\nimport { takeEvery, take, put, select } from 'redux-saga/effects';\nimport _ from 'lodash';\nimport { getFromInstant } from '@src/commons/utils/request';\nimport { getCurrentApp, getCurrentSection, getCurrentSiteId } from '@src/navigation/selectors';\nimport { getConfig } from '@src/commons/configs/selectors';\nimport { tryFetchJourneys, fetchJourneysSuccess, fetchJourneysFailure } from '@src/live/walkingTimes/actions';\nimport { initWebsocket } from '@src/commons/websocket/actions';\nimport { fetchFloors2 } from '@src/commons/floors/actions';\nimport { fetchLiveAreas } from '../realtimeStat/actions';\nexport function tryfetchWalkingTimesStats(_a) {\n var currentApp, currentSection, siteId;\n var history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getCurrentApp())];\n case 1:\n currentApp = _b.sent();\n return [4, select(getCurrentSection())];\n case 2:\n currentSection = _b.sent();\n if (currentApp !== 'live' || currentSection !== 'walkingTimes') {\n return [2];\n }\n return [4, select(getCurrentSiteId())];\n case 3:\n siteId = _b.sent();\n return [4, put(fetchFloors2(siteId, history))];\n case 4:\n _b.sent();\n return [4, take('FETCH_FLOORS_SUCCESS2')];\n case 5:\n _b.sent();\n return [4, put(fetchLiveAreas(history))];\n case 6:\n _b.sent();\n return [4, put(tryFetchJourneys(siteId))];\n case 7:\n _b.sent();\n return [4, put(initWebsocket())];\n case 8:\n _b.sent();\n return [2];\n }\n });\n}\nexport function tryFetchJourneysSaga(_a) {\n var config, _b, status, data, e_1;\n var siteId = _a.siteId;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getConfig(siteId))];\n case 1:\n config = _c.sent();\n _c.label = 2;\n case 2:\n _c.trys.push([2, 8, , 10]);\n return [4, getFromInstant(\"walking-time/\" + _.get(config, 'uuid'), 'v1')];\n case 3:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 5];\n return [4, put(fetchJourneysSuccess(siteId, data))];\n case 4:\n _c.sent();\n return [3, 7];\n case 5: return [4, put(fetchJourneysFailure(siteId))];\n case 6:\n _c.sent();\n _c.label = 7;\n case 7: return [3, 10];\n case 8:\n e_1 = _c.sent();\n return [4, put(fetchJourneysFailure(siteId))];\n case 9:\n _c.sent();\n return [3, 10];\n case 10: return [2];\n }\n });\n}\nexport function refreshJourneysData() {\n var currentApp, currentSection, siteId;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, select(getCurrentApp())];\n case 1:\n currentApp = _a.sent();\n return [4, select(getCurrentSection())];\n case 2:\n currentSection = _a.sent();\n if (currentApp !== 'live' || currentSection !== 'walkingTimes') {\n return [2];\n }\n return [4, select(getCurrentSiteId())];\n case 3:\n siteId = _a.sent();\n return [4, put(tryFetchJourneys(siteId))];\n case 4:\n _a.sent();\n return [2];\n }\n });\n}\nexport default function walkingTimesSaga() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery(['FETCH_TRAVEL_TIMES_STATS'], tryfetchWalkingTimesStats)];\n case 1:\n _a.sent();\n return [4, takeEvery('FETCH_JOURNEYS', tryFetchJourneysSaga)];\n case 2:\n _a.sent();\n return [4, takeEvery('NEW_RT_DATA', refreshJourneysData)];\n case 3:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __generator } from \"tslib\";\nimport _ from 'lodash';\nimport { takeEvery, take, put, select } from 'redux-saga/effects';\nimport { fetchLiveAreas } from '@src/live/realtimeStat/actions';\nimport { fetchFloors2 } from '@src/commons/floors/actions';\nimport { getCurrentApp2, getCurrentSection2, getCurrentSiteId2 } from '@src/navigation/selectors';\nimport { initWebsocket } from '@src/commons/websocket/actions';\nexport function tryfetchRealtimeStats(_a) {\n var currentApp, currentSection, siteId;\n var history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getCurrentApp2)];\n case 1:\n currentApp = _b.sent();\n return [4, select(getCurrentSection2)];\n case 2:\n currentSection = _b.sent();\n if (!_.includes(['home', 'live'], currentApp) || (currentApp === 'live' && currentSection !== 'realtime')) {\n return [2];\n }\n return [4, select(getCurrentSiteId2)];\n case 3:\n siteId = _b.sent();\n return [4, put(fetchFloors2(siteId, history))];\n case 4:\n _b.sent();\n return [4, take('FETCH_FLOORS_SUCCESS2')];\n case 5:\n _b.sent();\n return [4, put(fetchLiveAreas(history))];\n case 6:\n _b.sent();\n return [4, put(initWebsocket())];\n case 7:\n _b.sent();\n return [2];\n }\n });\n}\nexport default function liveSagas() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery('FETCH_REALTIME_STATS', tryfetchRealtimeStats)];\n case 1:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __generator } from \"tslib\";\nimport { takeEvery, put, select } from 'redux-saga/effects';\nimport _ from 'lodash';\nimport { getFromComputeEngine } from '@src/commons/utils/request';\nimport { fetchDestinationsFailure, fetchDestinationsSuccess, setCurrentDestination } from './actions';\nimport { getSiteFromUUID } from '@src/reporting/selectors';\nexport function tryFetchDestinationsFromSite(_a) {\n var site, _b, status, data, e_1;\n var siteId = _a.siteId;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 7, , 9]);\n return [4, select(getSiteFromUUID, { siteId: siteId })];\n case 1:\n site = _c.sent();\n return [4, getFromComputeEngine(\"destinations/list?site_id=\" + siteId + \"&iata_origin=\" + _.get(site, 'iata_code', ''))];\n case 2:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status !== 200)) return [3, 4];\n return [4, put(fetchDestinationsFailure(siteId))];\n case 3: return [2, _c.sent()];\n case 4: return [4, put(fetchDestinationsSuccess(siteId, data))];\n case 5:\n _c.sent();\n return [4, put(setCurrentDestination(siteId, _.get(_.first(data), 'code')))];\n case 6: return [2, _c.sent()];\n case 7:\n e_1 = _c.sent();\n return [4, put(fetchDestinationsFailure(siteId))];\n case 8: return [2, _c.sent()];\n case 9: return [2];\n }\n });\n}\nexport default function destinationsSagas() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery(['FETCH_DESTINATIONS'], tryFetchDestinationsFromSite)];\n case 1:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __generator } from \"tslib\";\nimport { takeEvery, take, put, select } from 'redux-saga/effects';\nimport { fetchLiveAreas } from '@src/live/realtimeStat/actions';\nimport { fetchFloors2 } from '@src/commons/floors/actions';\nimport { getCurrentApp2, getCurrentSection2, getCurrentSiteId2 } from '@src/navigation/selectors';\nimport { initWebsocket } from '@src/commons/websocket/actions';\nexport function tryfetchSocialDistancingAssistantStats(_a) {\n var currentApp, currentSection, siteId;\n var history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getCurrentApp2)];\n case 1:\n currentApp = _b.sent();\n return [4, select(getCurrentSection2)];\n case 2:\n currentSection = _b.sent();\n if (currentApp !== 'social-distancing' || currentSection !== 'assistant') {\n return [2];\n }\n return [4, select(getCurrentSiteId2)];\n case 3:\n siteId = _b.sent();\n return [4, put(fetchFloors2(siteId, history))];\n case 4:\n _b.sent();\n return [4, take('FETCH_FLOORS_SUCCESS2')];\n case 5:\n _b.sent();\n return [4, put(fetchLiveAreas(history))];\n case 6:\n _b.sent();\n return [4, put(initWebsocket())];\n case 7:\n _b.sent();\n return [2];\n }\n });\n}\nexport default function socialDistancingSagas() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery(['FETCH_SOCIAL_DISTANCING_ASSISTANT_STATS'], tryfetchSocialDistancingAssistantStats)];\n case 1:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __generator } from \"tslib\";\nimport _ from 'lodash';\nimport { takeEvery, take, put, select, call } from 'redux-saga/effects';\nimport { fetchPresenceStock15minSuccessAllAreas, fetchAllPresenceStock15min, fetchDailyTraffic, fetchDailyTrafficSuccess, fetchDailyTrafficError, fetchPresenceStock15minErrorAllAreas, } from './actions';\nimport { fetchLiveAreas } from '@src/live/realtimeStat/actions';\nimport { getCurrentDayFrom, getCurrentApp2, getCurrentSection2, getCurrentSiteId2, } from '@src/navigation/selectors';\nimport { fetchFloors2 } from '@src/commons/floors/actions';\nimport { getAllAreas } from '@src/commons/floors/selectors';\nimport { getConfig } from '@src/commons/configs/selectors';\nimport { getFromComputeEngine, postFromComputeEngine } from '@src/commons/utils/request';\nexport function tryfetchSocialDistancingMonitoringStats(_a) {\n var currentApp, currentSection, siteId, date;\n var history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getCurrentApp2)];\n case 1:\n currentApp = _b.sent();\n return [4, select(getCurrentSection2)];\n case 2:\n currentSection = _b.sent();\n if (currentApp !== 'social-distancing' || currentSection !== 'monitoring') {\n return [2];\n }\n return [4, select(getCurrentSiteId2)];\n case 3:\n siteId = _b.sent();\n return [4, select(getCurrentDayFrom)];\n case 4:\n date = _b.sent();\n return [4, put(fetchFloors2(siteId, history))];\n case 5:\n _b.sent();\n return [4, take('FETCH_FLOORS_SUCCESS2')];\n case 6:\n _b.sent();\n return [4, put(fetchLiveAreas(history))];\n case 7:\n _b.sent();\n return [4, put(fetchAllPresenceStock15min(siteId, date))];\n case 8:\n _b.sent();\n return [4, put(fetchDailyTraffic(siteId, date))];\n case 9:\n _b.sent();\n return [2];\n }\n });\n}\nexport function tryfetchAllPresenceStock15min(_a) {\n var config, areas;\n var siteId = _a.siteId, date = _a.date;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getConfig(siteId))];\n case 1:\n config = _b.sent();\n return [4, select(getAllAreas(siteId))];\n case 2:\n areas = _b.sent();\n return [4, call(getPresenceStock15AllAreas, siteId, config.uuid, date, areas)];\n case 3:\n _b.sent();\n return [2];\n }\n });\n}\nexport function getPresenceStock15AllAreas(siteId, configId, date, areas) {\n var _a, status, data, mergedData, err_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, , 7]);\n return [4, postFromComputeEngine('stock/areas/list', {\n config: configId,\n date: date,\n zones: _.map(areas, 'name'),\n population_name: 'all_populations',\n })];\n case 1:\n _a = _b.sent(), status = _a.status, data = _a.data;\n if (!(status === 200)) return [3, 3];\n mergedData = _.merge(_.keyBy(areas, 'name'), _.keyBy(data, 'zone_name'));\n return [4, put(fetchPresenceStock15minSuccessAllAreas(siteId, date, mergedData))];\n case 2: return [2, _b.sent()];\n case 3: return [4, put(fetchPresenceStock15minErrorAllAreas(siteId, date))];\n case 4: return [2, _b.sent()];\n case 5:\n err_1 = _b.sent();\n return [4, put(fetchPresenceStock15minErrorAllAreas(siteId, date))];\n case 6: return [2, _b.sent()];\n case 7: return [2];\n }\n });\n}\nexport function tryFetchDailyTraffic(_a) {\n var config, _b, status, data, e_1;\n var siteId = _a.siteId, date = _a.date;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getConfig(siteId))];\n case 1:\n config = _c.sent();\n _c.label = 2;\n case 2:\n _c.trys.push([2, 8, , 10]);\n return [4, getFromComputeEngine(\"presence/list?granularity=daily&config=\" + config.uuid + \"&zone=Entire%20Site&fromDate=\" + date + \"&toDate=\" + date + \"&population=All%20populations\")];\n case 3:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 5];\n return [4, put(fetchDailyTrafficSuccess(siteId, date, data))];\n case 4:\n _c.sent();\n return [3, 7];\n case 5: return [4, put(fetchDailyTrafficError(siteId, date))];\n case 6:\n _c.sent();\n _c.label = 7;\n case 7: return [3, 10];\n case 8:\n e_1 = _c.sent();\n return [4, put(fetchDailyTrafficError(siteId, date))];\n case 9:\n _c.sent();\n return [3, 10];\n case 10: return [2];\n }\n });\n}\nexport default function socialDistancingMonitoringSagas() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery(['FETCH_ALL_PRESENCE_STOCK_15_MIN'], tryfetchAllPresenceStock15min)];\n case 1:\n _a.sent();\n return [4, takeEvery(['FETCH_SOCIAL_DISTANCING_MONITORING_STATS'], tryfetchSocialDistancingMonitoringStats)];\n case 2:\n _a.sent();\n return [4, takeEvery(['FETCH_DAILY_TRAFFIC'], tryFetchDailyTraffic)];\n case 3:\n _a.sent();\n return [2];\n }\n });\n}\n","export var fetchDwelltimePerMacroAreas = function (siteId, from, to, airportCode) { return ({\n type: 'FETCH_DWELLTIME_PER_MACRO_AREAS',\n siteId: siteId,\n from: from,\n to: to,\n airportCode: airportCode,\n}); };\nexport var fetchDwelltimePerMacroAreasSuccess = function (siteId, from, to, airportCode, data) { return ({\n type: 'FETCH_DWELLTIME_PER_MACRO_AREAS_SUCCESS',\n siteId: siteId,\n from: from,\n to: to,\n airportCode: airportCode,\n data: data,\n}); };\nexport var fetchDwelltimePerMacroAreasError = function (siteId, from, to, airportCode) { return ({\n type: 'FETCH_DWELLTIME_PER_MACRO_AREAS_ERROR',\n siteId: siteId,\n from: from,\n to: to,\n airportCode: airportCode,\n}); };\nexport var fetchFlightsCountPerDestination = function (siteId, from, to, airportCode) { return ({\n type: 'FETCH_FLIGHTS_COUNT_PER_DESTINATION',\n siteId: siteId,\n from: from,\n to: to,\n airportCode: airportCode,\n}); };\nexport var fetchFlightsCountPerDestinationSuccess = function (siteId, from, to, airportCode, data) { return ({\n type: 'FETCH_FLIGHTS_COUNT_PER_DESTINATION_SUCCESS',\n siteId: siteId,\n from: from,\n to: to,\n airportCode: airportCode,\n data: data,\n}); };\nexport var fetchFlightsCountPerDestinationError = function (siteId, from, to, airportCode) { return ({\n type: 'FETCH_FLIGHTS_COUNT_PER_DESTINATION_ERROR',\n siteId: siteId,\n from: from,\n to: to,\n airportCode: airportCode,\n}); };\n","import { __generator } from \"tslib\";\nimport { takeEvery, put, select } from 'redux-saga/effects';\nimport _ from 'lodash';\nimport { getFromComputeEngine } from '@src/commons/utils/request';\nimport { getterNavigationSiteId, getterReportingNavigation } from '@src/reporting/selectors';\nimport { fetchDwelltimePerMacroAreasSuccess, fetchDwelltimePerMacroAreasError, fetchFlightsCountPerDestinationSuccess, fetchFlightsCountPerDestinationError, } from './actions';\nexport function tryFetchDwelltimePerDestination() {\n var siteId, _a, dayFrom, dayTo, config, currentDestination, configId, _b, status, data, error_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getterNavigationSiteId, {})];\n case 1:\n siteId = _c.sent();\n return [4, select(getterReportingNavigation, { siteId: siteId })];\n case 2:\n _a = _c.sent(), dayFrom = _a.dayFrom, dayTo = _a.dayTo, config = _a.config, currentDestination = _a.currentDestination;\n if (!currentDestination) {\n return [2];\n }\n configId = _.get(config, 'uuid');\n _c.label = 3;\n case 3:\n _c.trys.push([3, 7, , 9]);\n return [4, getFromComputeEngine(\"destinations/dwelltimes?config_id=\" + configId + \"&from_date=\" + dayFrom + \"&to_date=\" + dayTo + \"&airport_code=\" + currentDestination)];\n case 4:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 6];\n return [4, put(fetchDwelltimePerMacroAreasSuccess(siteId, dayFrom, dayTo, currentDestination, data))];\n case 5: return [2, _c.sent()];\n case 6: return [3, 9];\n case 7:\n error_1 = _c.sent();\n return [4, put(fetchDwelltimePerMacroAreasError(siteId, dayFrom, dayTo, currentDestination))];\n case 8: return [2, _c.sent()];\n case 9: return [4, put(fetchDwelltimePerMacroAreasError(siteId, dayFrom, dayTo, currentDestination))];\n case 10: return [2, _c.sent()];\n }\n });\n}\nexport function tryFetchFlightsCountPerDestination() {\n var siteId, _a, dayFrom, dayTo, currentDestination, _b, status, data, error_2;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getterNavigationSiteId, {})];\n case 1:\n siteId = _c.sent();\n return [4, select(getterReportingNavigation, { siteId: siteId })];\n case 2:\n _a = _c.sent(), dayFrom = _a.dayFrom, dayTo = _a.dayTo, currentDestination = _a.currentDestination;\n if (!currentDestination) {\n return [2];\n }\n _c.label = 3;\n case 3:\n _c.trys.push([3, 7, , 9]);\n return [4, getFromComputeEngine(\"flights/count?site_id=\" + siteId + \"&from_date=\" + dayFrom + \"&to_date=\" + dayTo + \"&airport_code=\" + currentDestination)];\n case 4:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 6];\n return [4, put(fetchFlightsCountPerDestinationSuccess(siteId, dayFrom, dayTo, currentDestination, data))];\n case 5: return [2, _c.sent()];\n case 6: return [3, 9];\n case 7:\n error_2 = _c.sent();\n return [4, put(fetchFlightsCountPerDestinationError(siteId, dayFrom, dayTo, currentDestination))];\n case 8: return [2, _c.sent()];\n case 9: return [4, put(fetchFlightsCountPerDestinationError(siteId, dayFrom, dayTo, currentDestination))];\n case 10: return [2, _c.sent()];\n }\n });\n}\nexport default function perDestinationSagas() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery(['FETCH_DWELLTIME_PER_MACRO_AREAS'], tryFetchDwelltimePerDestination)];\n case 1:\n _a.sent();\n return [4, takeEvery(['FETCH_FLIGHTS_COUNT_PER_DESTINATION'], tryFetchFlightsCountPerDestination)];\n case 2:\n _a.sent();\n return [2];\n }\n });\n}\n","export var fetchDwelltimePerAirline = function (siteId, from, to, airportCode) { return ({\n type: 'FETCH_DWELLTIME_PER_AIRLINE',\n siteId: siteId,\n from: from,\n to: to,\n airportCode: airportCode,\n}); };\nexport var fetchFlightsCountPerAirline = function (siteId, from, to, airportCode) { return ({\n type: 'FETCH_FLIGHTS_COUNT_PER_AIRLINE',\n siteId: siteId,\n from: from,\n to: to,\n airportCode: airportCode,\n}); };\nexport var fetchDwelltimePerAirlinesSuccess = function (siteId, from, to, airportCode, data) { return ({\n type: 'FETCH_DWELLTIME_PER_AIRLINE_SUCCESS',\n siteId: siteId,\n from: from,\n to: to,\n airportCode: airportCode,\n data: data,\n}); };\nexport var fetchFlightsCountPerAirlineSuccess = function (siteId, from, to, airportCode, data) { return ({\n type: 'FETCH_FLIGHTS_COUNT_PER_AIRLINE_SUCCESS',\n siteId: siteId,\n from: from,\n to: to,\n airportCode: airportCode,\n data: data,\n}); };\nexport var fetchDwelltimePerAirlineError = function (siteId, from, to, airportCode) { return ({\n type: 'FETCH_DWELLTIME_PER_AIRLINE_ERROR',\n siteId: siteId,\n from: from,\n to: to,\n airportCode: airportCode,\n}); };\nexport var fetchFlightsCountPerAirlineError = function (siteId, from, to, airportCode) { return ({\n type: 'FETCH_FLIGHTS_COUNT_PER_AIRLINE_ERROR',\n siteId: siteId,\n from: from,\n to: to,\n airportCode: airportCode,\n}); };\n","import { __generator } from \"tslib\";\nimport { takeEvery, put, select } from 'redux-saga/effects';\nimport _ from 'lodash';\nimport { getCurrentSiteId2 } from '@src/navigation/selectors';\nimport { getterReportingNavigation } from '@src/reporting/selectors';\nimport { getFromComputeEngine } from '@src/commons/utils/request';\nimport { fetchFlightsCountPerAirlineSuccess, fetchFlightsCountPerAirlineError, fetchDwelltimePerAirlineError, fetchDwelltimePerAirlinesSuccess, } from '@src/reporting/flights_report/per_airline/actions';\nexport function tryFetchDwelltimePerAirline() {\n var siteId, _a, dayFrom, dayTo, config, currentDestination, configId, _b, status, data, error_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentSiteId2, {})];\n case 1:\n siteId = _c.sent();\n return [4, select(getterReportingNavigation, { siteId: siteId })];\n case 2:\n _a = _c.sent(), dayFrom = _a.dayFrom, dayTo = _a.dayTo, config = _a.config, currentDestination = _a.currentDestination;\n if (!currentDestination) {\n return [2];\n }\n configId = _.get(config, 'uuid');\n _c.label = 3;\n case 3:\n _c.trys.push([3, 7, , 9]);\n return [4, getFromComputeEngine(\"airlines/dwelltimes?config_id=\" + configId + \"&from_date=\" + dayFrom + \"&to_date=\" + dayTo + \"&airport_code=\" + currentDestination)];\n case 4:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 6];\n return [4, put(fetchDwelltimePerAirlinesSuccess(siteId, dayFrom, dayTo, currentDestination, data))];\n case 5: return [2, _c.sent()];\n case 6: return [3, 9];\n case 7:\n error_1 = _c.sent();\n return [4, put(fetchDwelltimePerAirlineError(siteId, dayFrom, dayTo, currentDestination))];\n case 8: return [2, _c.sent()];\n case 9: return [4, put(fetchDwelltimePerAirlineError(siteId, dayFrom, dayTo, currentDestination))];\n case 10: return [2, _c.sent()];\n }\n });\n}\nexport function tryFetchFlightsCountPerAirline() {\n var siteId, _a, dayFrom, dayTo, currentDestination, _b, status, data, error_2;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentSiteId2, {})];\n case 1:\n siteId = _c.sent();\n return [4, select(getterReportingNavigation, { siteId: siteId })];\n case 2:\n _a = _c.sent(), dayFrom = _a.dayFrom, dayTo = _a.dayTo, currentDestination = _a.currentDestination;\n if (!currentDestination) {\n return [2];\n }\n _c.label = 3;\n case 3:\n _c.trys.push([3, 7, , 9]);\n return [4, getFromComputeEngine(\"flights/count/airlines?site_id=\" + siteId + \"&from_date=\" + dayFrom + \"&to_date=\" + dayTo + \"&airport_code=\" + currentDestination)];\n case 4:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 6];\n return [4, put(fetchFlightsCountPerAirlineSuccess(siteId, dayFrom, dayTo, currentDestination, data))];\n case 5: return [2, _c.sent()];\n case 6: return [3, 9];\n case 7:\n error_2 = _c.sent();\n return [4, put(fetchFlightsCountPerAirlineError(siteId, dayFrom, dayTo, currentDestination))];\n case 8: return [2, _c.sent()];\n case 9: return [4, put(fetchFlightsCountPerAirlineError(siteId, dayFrom, dayTo, currentDestination))];\n case 10: return [2, _c.sent()];\n }\n });\n}\nexport default function perAirlineSagas() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery(['FETCH_FLIGHTS_COUNT_PER_AIRLINE'], tryFetchFlightsCountPerAirline)];\n case 1:\n _a.sent();\n return [4, takeEvery(['FETCH_DWELLTIME_PER_AIRLINE'], tryFetchDwelltimePerAirline)];\n case 2:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __generator } from \"tslib\";\nimport { takeEvery, take, put, select } from 'redux-saga/effects';\nimport { getFromComputeEngine } from '@src/commons/utils/request';\nimport { fetchFloors2 } from '@src/commons/floors/actions';\nimport { fetchProcesses } from '@src/commons/processes/actions';\nimport { fetchPois } from '@src/commons/pois/actions';\nimport { retailSectionLoaded, fetchPoisPresenceStats, fetchPoisPresenceStatsByArea, fetchPoisPresenceStatsByStopping, } from '@src/reporting/retail/actions';\nimport { statsLoading, fetchDwelltimeStats, fetchStatsSuccess, fetchStatsFailure, fetchTrafficStatsByPopulation, } from '@src/reporting/actions';\nimport { getCurrentSiteId2 } from '@src/navigation/selectors';\nimport { getConfig } from '@src/commons/configs/selectors';\nimport { getterReportingNavigation } from '@src/reporting/selectors';\nexport function tryfetchRetailStats(_a) {\n var siteId, config;\n var history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getCurrentSiteId2, {})];\n case 1:\n siteId = _b.sent();\n return [4, select(getConfig(siteId))];\n case 2:\n config = _b.sent();\n return [4, put(fetchFloors2(siteId, history))];\n case 3:\n _b.sent();\n return [4, take('FETCH_FLOORS_SUCCESS2')];\n case 4:\n _b.sent();\n return [4, put(fetchProcesses(siteId))];\n case 5:\n _b.sent();\n return [4, take('FETCH_PROCESSES_SUCCESS')];\n case 6:\n _b.sent();\n return [4, put(fetchPois(config.uuid, history, 'SHOP'))];\n case 7:\n _b.sent();\n return [4, take('FETCH_POIS_SUCCESS')];\n case 8:\n _b.sent();\n return [4, put(retailSectionLoaded())];\n case 9:\n _b.sent();\n return [4, take('SELECT_AREA2')];\n case 10:\n _b.sent();\n return [4, put(fetchPoisPresenceStats())];\n case 11:\n _b.sent();\n return [4, put(fetchPoisPresenceStatsByArea())];\n case 12:\n _b.sent();\n return [4, put(fetchPoisPresenceStatsByStopping())];\n case 13:\n _b.sent();\n return [4, put(fetchTrafficStatsByPopulation())];\n case 14:\n _b.sent();\n return [4, put(fetchDwelltimeStats())];\n case 15:\n _b.sent();\n return [2];\n }\n });\n}\nexport function tryFetchPoisPresenceStats() {\n var siteId, _a, dayFrom, dayTo, config, granularity, population, currentArea, _b, status, data, e_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentSiteId2, {})];\n case 1:\n siteId = _c.sent();\n return [4, select(getterReportingNavigation, { siteId: siteId })];\n case 2:\n _a = _c.sent(), dayFrom = _a.dayFrom, dayTo = _a.dayTo, config = _a.config;\n granularity = 'daily';\n population = 'All populations';\n currentArea = 'Entire Site';\n _c.label = 3;\n case 3:\n _c.trys.push([3, 10, , 12]);\n return [4, put(statsLoading(siteId, null, 'entire-presence', dayFrom, dayTo, granularity))];\n case 4:\n _c.sent();\n return [4, getFromComputeEngine(\"presence/list?granularity=\" + granularity + \"&config=\" + config.uuid + \"&zone=\" + currentArea + \"&fromDate=\" + dayFrom + \"&toDate=\" + dayTo + \"&population=\" + population)];\n case 5:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 7];\n return [4, put(fetchStatsSuccess(siteId, null, 'entire-presence', dayFrom, dayTo, granularity, data))];\n case 6:\n _c.sent();\n return [3, 9];\n case 7: return [4, put(fetchStatsFailure(siteId, null, 'entire-presence', dayFrom, dayTo, granularity))];\n case 8:\n _c.sent();\n _c.label = 9;\n case 9: return [3, 12];\n case 10:\n e_1 = _c.sent();\n return [4, put(fetchStatsFailure(siteId, null, 'entire-presence', dayFrom, dayTo, granularity))];\n case 11:\n _c.sent();\n return [3, 12];\n case 12: return [2];\n }\n });\n}\nexport function tryFetchPoisPresenceStatsByArea() {\n var siteId, _a, dayFrom, dayTo, config, currentArea, currentPopulation, granularityDaily, _b, status, data, e_2;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentSiteId2, {})];\n case 1:\n siteId = _c.sent();\n return [4, select(getterReportingNavigation, { siteId: siteId })];\n case 2:\n _a = _c.sent(), dayFrom = _a.dayFrom, dayTo = _a.dayTo, config = _a.config, currentArea = _a.currentArea;\n currentPopulation = 'All populations';\n granularityDaily = 'daily';\n _c.label = 3;\n case 3:\n _c.trys.push([3, 10, , 12]);\n return [4, put(statsLoading(siteId, currentArea.uuid, 'area-presence', dayFrom, dayTo, granularityDaily))];\n case 4:\n _c.sent();\n return [4, getFromComputeEngine(\"presence/list?granularity=\" + granularityDaily + \"&config=\" + config.uuid + \"&zone=\" + encodeURIComponent(currentArea.name) + \"&fromDate=\" + dayFrom + \"&toDate=\" + dayTo + \"&population=\" + currentPopulation)];\n case 5:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 7];\n return [4, put(fetchStatsSuccess(siteId, currentArea.uuid, 'area-presence', dayFrom, dayTo, granularityDaily, data))];\n case 6:\n _c.sent();\n return [3, 9];\n case 7: return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'area-presence', dayFrom, dayTo, granularityDaily))];\n case 8:\n _c.sent();\n _c.label = 9;\n case 9: return [3, 12];\n case 10:\n e_2 = _c.sent();\n return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'area-presence', dayFrom, dayTo, granularityDaily))];\n case 11:\n _c.sent();\n return [3, 12];\n case 12: return [2];\n }\n });\n}\nexport function tryFetchPoisPresenceStatsByStopping() {\n var siteId, _a, dayFrom, dayTo, config, currentArea, currentPopulation, granularity, _b, status, data, e_3;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentSiteId2, {})];\n case 1:\n siteId = _c.sent();\n return [4, select(getterReportingNavigation, { siteId: siteId })];\n case 2:\n _a = _c.sent(), dayFrom = _a.dayFrom, dayTo = _a.dayTo, config = _a.config, currentArea = _a.currentArea;\n currentPopulation = 'all_populations';\n granularity = 'daily';\n _c.label = 3;\n case 3:\n _c.trys.push([3, 10, , 12]);\n return [4, put(statsLoading(siteId, currentArea.uuid, 'stopping-presence', dayFrom, dayTo, granularity))];\n case 4:\n _c.sent();\n return [4, getFromComputeEngine(\"presence/list?granularity=\" + granularity + \"&config=\" + config.uuid + \"&zone=\" + encodeURIComponent(currentArea.name) + \"&fromDate=\" + dayFrom + \"&toDate=\" + dayTo + \"&population=\" + currentPopulation + \"&stopping_time=300\")];\n case 5:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 7];\n return [4, put(fetchStatsSuccess(siteId, currentArea.uuid, 'stopping-presence', dayFrom, dayTo, granularity, data))];\n case 6:\n _c.sent();\n return [3, 9];\n case 7: return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'stopping-presence', dayFrom, dayTo, granularity))];\n case 8:\n _c.sent();\n _c.label = 9;\n case 9: return [3, 12];\n case 10:\n e_3 = _c.sent();\n return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'stopping-presence', dayFrom, dayTo, granularity))];\n case 11:\n _c.sent();\n return [3, 12];\n case 12: return [2];\n }\n });\n}\nexport default function retailSagas() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery(['INIT_RETAIL_SECTION'], tryfetchRetailStats)];\n case 1:\n _a.sent();\n return [4, takeEvery(['FETCH_POIS_PRESENCE_STATS'], tryFetchPoisPresenceStats)];\n case 2:\n _a.sent();\n return [4, takeEvery(['FETCH_POIS_PRESENCE_STATS_BY_AREA'], tryFetchPoisPresenceStatsByArea)];\n case 3:\n _a.sent();\n return [4, takeEvery(['FETCH_POIS_PRESENCE_STATS_BY_STOPPING'], tryFetchPoisPresenceStatsByStopping)];\n case 4:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __generator } from \"tslib\";\nimport { takeEvery, take, put, select } from 'redux-saga/effects';\nimport { fetchFloors2 } from '@src/commons/floors/actions';\nimport { changeCurrentAreaColorMap } from '@src/commons/map/actions';\nimport { fetchProcesses } from '@src/commons/processes/actions';\nimport { fetchDashboardStats, dashboardSectionLoaded } from '@src/reporting/dashboard/actions';\nimport { fetchPresenceStats, fetchDwelltimeStats, fetchDwelltimeStatsByPopulation, fetchTrafficStatsByPopulation, } from '@src/reporting/actions';\nimport { fetchLiveAreas } from '@src/live/realtimeStat/actions';\nimport { fetchAllPresenceStock15min, fetchDailyTraffic, } from '@src/social_distancing/social_distancing_monitoring/actions';\nimport { getCurrentSiteId2, getCurrentDayFrom } from '@src/navigation/selectors';\nimport { getterReportingNavigation } from '@src/reporting/selectors';\nexport function initDashboardSectionSaga(_a) {\n var siteId, date, currentArea;\n var history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getCurrentSiteId2, {})];\n case 1:\n siteId = _b.sent();\n return [4, select(getCurrentDayFrom)];\n case 2:\n date = _b.sent();\n return [4, put(fetchFloors2(siteId, history))];\n case 3:\n _b.sent();\n return [4, take('FETCH_FLOORS_SUCCESS2')];\n case 4:\n _b.sent();\n return [4, put(fetchLiveAreas(history))];\n case 5:\n _b.sent();\n return [4, put(fetchAllPresenceStock15min(siteId, date))];\n case 6:\n _b.sent();\n return [4, put(fetchDailyTraffic(siteId, date))];\n case 7:\n _b.sent();\n return [4, put(fetchProcesses(siteId))];\n case 8:\n _b.sent();\n return [4, select(getterReportingNavigation, { siteId: siteId })];\n case 9:\n currentArea = (_b.sent()).currentArea;\n return [4, put(changeCurrentAreaColorMap(siteId, currentArea.uuid))];\n case 10:\n _b.sent();\n return [4, take('FETCH_PROCESSES_SUCCESS')];\n case 11:\n _b.sent();\n return [4, put(dashboardSectionLoaded())];\n case 12:\n _b.sent();\n return [4, put(fetchDashboardStats())];\n case 13:\n _b.sent();\n return [2];\n }\n });\n}\nexport function tryfetchDashboardStatsSaga() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, put(fetchPresenceStats())];\n case 1:\n _a.sent();\n return [4, put(fetchDwelltimeStats())];\n case 2:\n _a.sent();\n return [4, put(fetchDwelltimeStatsByPopulation())];\n case 3:\n _a.sent();\n return [4, put(fetchTrafficStatsByPopulation())];\n case 4:\n _a.sent();\n return [2];\n }\n });\n}\nexport default function dashboardSagas() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery('INIT_DASHBOARD_SECTION', initDashboardSectionSaga)];\n case 1:\n _a.sent();\n return [4, takeEvery('FETCH_DASHBOARD_STATS', tryfetchDashboardStatsSaga)];\n case 2:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __generator } from \"tslib\";\nimport { takeEvery, take, put, select } from 'redux-saga/effects';\nimport { fetchDestinations } from '@src/reporting/flights_report/destinations/actions';\nimport { flightsReportSectionLoaded } from '@src/reporting/flights_report/actions';\nimport { fetchDwelltimePerMacroAreas, fetchFlightsCountPerDestination, } from '@src/reporting/flights_report/per_destination/actions';\nimport { fetchDwelltimePerAirline, fetchFlightsCountPerAirline, } from '@src/reporting/flights_report/per_airline/actions';\nimport { getCurrentSiteId2, getCurrentSubsection, getCurrentDayFrom, getCurrentDayTo, getCurrentDestination, } from '@src/navigation/selectors';\nexport function initFlightsReportSectionSaga() {\n var siteId;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, select(getCurrentSiteId2, {})];\n case 1:\n siteId = _a.sent();\n return [4, put(fetchDestinations(siteId))];\n case 2:\n _a.sent();\n return [4, take('FETCH_DESTINATIONS_SUCCESS')];\n case 3:\n _a.sent();\n return [4, put(flightsReportSectionLoaded())];\n case 4:\n _a.sent();\n return [2];\n }\n });\n}\nexport function tryfetchFlightsReportStatsSaga() {\n var subSection, siteId, from, to, destination;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, select(getCurrentSubsection, {})];\n case 1:\n subSection = _a.sent();\n return [4, select(getCurrentSiteId2, {})];\n case 2:\n siteId = _a.sent();\n return [4, select(getCurrentDayFrom, {})];\n case 3:\n from = _a.sent();\n return [4, select(getCurrentDayTo, {})];\n case 4:\n to = _a.sent();\n return [4, select(getCurrentDestination, {})];\n case 5:\n destination = _a.sent();\n if (!(subSection === 'summary')) return [3, 8];\n return [4, put(fetchDwelltimePerMacroAreas(siteId, from, to, destination))];\n case 6:\n _a.sent();\n return [4, put(fetchFlightsCountPerDestination(siteId, from, to, destination))];\n case 7:\n _a.sent();\n _a.label = 8;\n case 8:\n if (!(subSection === 'airline')) return [3, 11];\n return [4, put(fetchDwelltimePerAirline(siteId, from, to, destination))];\n case 9:\n _a.sent();\n return [4, put(fetchFlightsCountPerAirline(siteId, from, to, destination))];\n case 10:\n _a.sent();\n _a.label = 11;\n case 11: return [2];\n }\n });\n}\nexport default function flightsReportSagas() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery('INIT_FLIGHTS_REPORT_SECTION', initFlightsReportSectionSaga)];\n case 1:\n _a.sent();\n return [4, takeEvery('FETCH_FLIGHTS_REPORT_STATS', tryfetchFlightsReportStatsSaga)];\n case 2:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __generator } from \"tslib\";\nimport { takeEvery, take, put, select } from 'redux-saga/effects';\nimport { fetchFloors2 } from '@src/commons/floors/actions';\nimport { fetchPois } from '@src/commons/pois/actions';\nimport { getCurrentSiteId2 } from '@src/navigation/selectors';\nimport { getConfig } from '@src/commons/configs/selectors';\nimport { advertisingSectionLoaded, fetchAdvertisingStatsByArea } from '@src/reporting/advertising/actions';\nimport { fetchDwelltimeStats, fetchStatsFailure, fetchStatsSuccess, fetchTrafficStatsByPopulation, statsLoading, } from '@src/reporting/actions';\nimport { getFromComputeEngine } from '@src/commons/utils/request';\nimport { getterReportingNavigation } from '../selectors';\nimport { fetchProcesses } from '@src/commons/processes/actions';\nexport function tryfetchAdvertisingStats(_a) {\n var siteId, config;\n var history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getCurrentSiteId2, {})];\n case 1:\n siteId = _b.sent();\n return [4, select(getConfig(siteId))];\n case 2:\n config = _b.sent();\n return [4, put(fetchFloors2(siteId, history))];\n case 3:\n _b.sent();\n return [4, take('FETCH_FLOORS_SUCCESS2')];\n case 4:\n _b.sent();\n return [4, put(fetchProcesses(siteId))];\n case 5:\n _b.sent();\n return [4, take('FETCH_PROCESSES_SUCCESS')];\n case 6:\n _b.sent();\n return [4, put(fetchPois(config.uuid, history, 'PANEL'))];\n case 7:\n _b.sent();\n return [4, take('FETCH_POIS_SUCCESS')];\n case 8:\n _b.sent();\n return [4, put(advertisingSectionLoaded())];\n case 9:\n _b.sent();\n return [4, take('SELECT_AREA2')];\n case 10:\n _b.sent();\n return [4, put(fetchAdvertisingStatsByArea())];\n case 11:\n _b.sent();\n return [4, put(fetchTrafficStatsByPopulation())];\n case 12:\n _b.sent();\n return [4, put(fetchDwelltimeStats())];\n case 13:\n _b.sent();\n return [2];\n }\n });\n}\nexport function tryFetchAvertisingPresenceStatsByArea() {\n var siteId, _a, dayFrom, dayTo, config, currentArea, currentPopulation, granularityDaily, _b, status, data, e_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentSiteId2, {})];\n case 1:\n siteId = _c.sent();\n return [4, select(getterReportingNavigation, { siteId: siteId })];\n case 2:\n _a = _c.sent(), dayFrom = _a.dayFrom, dayTo = _a.dayTo, config = _a.config, currentArea = _a.currentArea;\n currentPopulation = 'All populations';\n granularityDaily = 'daily';\n _c.label = 3;\n case 3:\n _c.trys.push([3, 10, , 12]);\n return [4, put(statsLoading(siteId, currentArea.uuid, 'area-presence', dayFrom, dayTo, granularityDaily))];\n case 4:\n _c.sent();\n return [4, getFromComputeEngine(\"presence/list?granularity=\" + granularityDaily + \"&config=\" + config.uuid + \"&zone=\" + encodeURIComponent(currentArea.name) + \"&fromDate=\" + dayFrom + \"&toDate=\" + dayTo + \"&population=\" + currentPopulation)];\n case 5:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 7];\n return [4, put(fetchStatsSuccess(siteId, currentArea.uuid, 'area-presence', dayFrom, dayTo, granularityDaily, data))];\n case 6:\n _c.sent();\n return [3, 9];\n case 7: return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'area-presence', dayFrom, dayTo, granularityDaily))];\n case 8:\n _c.sent();\n _c.label = 9;\n case 9: return [3, 12];\n case 10:\n e_1 = _c.sent();\n return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'area-presence', dayFrom, dayTo, granularityDaily))];\n case 11:\n _c.sent();\n return [3, 12];\n case 12: return [2];\n }\n });\n}\nexport function tryFetchAvertisingPresenceUp300StatsByArea() {\n var siteId, _a, dayFrom, dayTo, config, currentArea, currentPopulation, granularityDaily, _b, status, data, e_2;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentSiteId2, {})];\n case 1:\n siteId = _c.sent();\n return [4, select(getterReportingNavigation, { siteId: siteId })];\n case 2:\n _a = _c.sent(), dayFrom = _a.dayFrom, dayTo = _a.dayTo, config = _a.config, currentArea = _a.currentArea;\n currentPopulation = 'all_populations';\n granularityDaily = 'daily';\n _c.label = 3;\n case 3:\n _c.trys.push([3, 10, , 12]);\n return [4, put(statsLoading(siteId, currentArea.uuid, 'stopping-presence-300', dayFrom, dayTo, granularityDaily))];\n case 4:\n _c.sent();\n return [4, getFromComputeEngine(\"presence/list?granularity=\" + granularityDaily + \"&config=\" + config.uuid + \"&zone=\" + encodeURIComponent(currentArea.name) + \"&fromDate=\" + dayFrom + \"&toDate=\" + dayTo + \"&population=\" + currentPopulation + \"&stopping_time=300\")];\n case 5:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 7];\n return [4, put(fetchStatsSuccess(siteId, currentArea.uuid, 'stopping-presence-300', dayFrom, dayTo, granularityDaily, data))];\n case 6:\n _c.sent();\n return [3, 9];\n case 7: return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'stopping-presence-300', dayFrom, dayTo, granularityDaily))];\n case 8:\n _c.sent();\n _c.label = 9;\n case 9: return [3, 12];\n case 10:\n e_2 = _c.sent();\n return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'stopping-presence-300', dayFrom, dayTo, granularityDaily))];\n case 11:\n _c.sent();\n return [3, 12];\n case 12: return [2];\n }\n });\n}\nexport function tryFetchAvertisingPresenceUp600StatsByArea() {\n var siteId, _a, dayFrom, dayTo, config, currentArea, currentPopulation, granularityDaily, _b, status, data, e_3;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentSiteId2, {})];\n case 1:\n siteId = _c.sent();\n return [4, select(getterReportingNavigation, { siteId: siteId })];\n case 2:\n _a = _c.sent(), dayFrom = _a.dayFrom, dayTo = _a.dayTo, config = _a.config, currentArea = _a.currentArea;\n currentPopulation = 'all_populations';\n granularityDaily = 'daily';\n _c.label = 3;\n case 3:\n _c.trys.push([3, 10, , 12]);\n return [4, put(statsLoading(siteId, currentArea.uuid, 'stopping-presence-600', dayFrom, dayTo, granularityDaily))];\n case 4:\n _c.sent();\n return [4, getFromComputeEngine(\"presence/list?granularity=\" + granularityDaily + \"&config=\" + config.uuid + \"&zone=\" + encodeURIComponent(currentArea.name) + \"&fromDate=\" + dayFrom + \"&toDate=\" + dayTo + \"&population=\" + currentPopulation + \"&stopping_time=600\")];\n case 5:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 7];\n return [4, put(fetchStatsSuccess(siteId, currentArea.uuid, 'stopping-presence-600', dayFrom, dayTo, granularityDaily, data))];\n case 6:\n _c.sent();\n return [3, 9];\n case 7: return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'stopping-presence-600', dayFrom, dayTo, granularityDaily))];\n case 8:\n _c.sent();\n _c.label = 9;\n case 9: return [3, 12];\n case 10:\n e_3 = _c.sent();\n return [4, put(fetchStatsFailure(siteId, currentArea.uuid, 'stopping-presence-600', dayFrom, dayTo, granularityDaily))];\n case 11:\n _c.sent();\n return [3, 12];\n case 12: return [2];\n }\n });\n}\nexport default function advertisingSagas() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery('INIT_ADVERTISING_SECTION', tryfetchAdvertisingStats)];\n case 1:\n _a.sent();\n return [4, takeEvery(['FETCH_ADVERTISING_STATS'], tryFetchAvertisingPresenceStatsByArea)];\n case 2:\n _a.sent();\n return [4, takeEvery(['FETCH_ADVERTISING_STATS'], tryFetchAvertisingPresenceUp300StatsByArea)];\n case 3:\n _a.sent();\n return [4, takeEvery(['FETCH_ADVERTISING_STATS'], tryFetchAvertisingPresenceUp600StatsByArea)];\n case 4:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __assign, __generator, __rest } from \"tslib\";\nimport { takeEvery, put, select, take } from 'redux-saga/effects';\nimport moment from 'moment';\nimport { chain, pathOr, path } from 'ramda';\nimport { getFromComputeEngine, getFromInstant, postFromComputeEngine, getFromMDM, } from '@src/commons/utils/request';\nimport { getSite } from '@src/selectors';\nimport { fetchFloors2 } from '@src/commons/floors/actions';\nimport { fetchHomePresenceStats, homeCardLoaded, homeMeanStatsLoading, fetchHomeMeanStatsSuccess, fetchHomeMeanStatsFailure, homeAggregatedStatsLoading, fetchHomeAggregatedStatsSuccess, fetchHomeAggregatedStatsFailure, listMostVisitedSitesLoading, fetchHomeMostVisitedSitesSuccess, fetchHomeMostVisitedSitesFailure, fetchYesterdayHomeStats, yesterdayHomeStatsLoading, fetchYesterdayHomeStatsSuccess, fetchYesterdayHomeStatsFailure, fetchFocusSites, fetchFocusSitesLoading, fetchFocusSitesSuccess, fetchFocusSitesFailure, } from '@src/home/actions';\nimport { getCurrentSiteId2, getCurrentApp, getCurrentPopulation } from '@src/navigation/selectors';\nimport { getterNavigationSiteId, getterHomeNavigation } from '@src/home/selectors';\nexport function initHomeCardSaga(_a) {\n var siteId;\n var history = _a.history;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getCurrentSiteId2, {})];\n case 1:\n siteId = _b.sent();\n return [4, put(fetchFloors2(siteId, history))];\n case 2:\n _b.sent();\n return [4, take('FETCH_FLOORS_SUCCESS2')];\n case 3:\n _b.sent();\n return [4, put(homeCardLoaded())];\n case 4:\n _b.sent();\n return [4, setWhichCardToLoad()];\n case 5:\n _b.sent();\n return [4, put(fetchFocusSites())];\n case 6:\n _b.sent();\n return [2];\n }\n });\n}\nexport function tryFetchHomeMeanPresenceStats() {\n var currentApp, currentPopulation, siteId, _a, config, currentArea, dayTo, dayFrom, params, _b, status, data, e_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentApp())];\n case 1:\n currentApp = _c.sent();\n return [4, select(getCurrentPopulation())];\n case 2:\n currentPopulation = _c.sent();\n if (currentApp !== 'home') {\n return [2];\n }\n return [4, select(getterNavigationSiteId, {})];\n case 3:\n siteId = _c.sent();\n return [4, select(getterHomeNavigation, {\n siteId: siteId,\n })];\n case 4:\n _a = _c.sent(), config = _a.config, currentArea = _a.currentArea;\n dayTo = moment().subtract(1, 'days').format('YYYY-MM-DD');\n dayFrom = moment(dayTo).subtract(6, 'days').format('YYYY-MM-DD');\n params = {\n siteId: siteId,\n areaId: pathOr(null, ['uuid'], currentArea),\n kind: 'presence',\n from: dayFrom,\n to: dayTo,\n granularity: 'daily',\n };\n _c.label = 5;\n case 5:\n _c.trys.push([5, 12, , 14]);\n return [4, put(homeMeanStatsLoading(params))];\n case 6:\n _c.sent();\n return [4, getFromComputeEngine(\"presence/list?granularity=daily&config=\" + config.uuid + \"&zone=\" + encodeURIComponent(currentArea.name) + \"&fromDate=\" + dayFrom + \"&toDate=\" + dayTo + \"&population=\" + currentPopulation)];\n case 7:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 9];\n return [4, put(fetchHomeMeanStatsSuccess(__assign(__assign({}, params), { data: data })))];\n case 8:\n _c.sent();\n return [3, 11];\n case 9: return [4, put(fetchHomeMeanStatsFailure(params))];\n case 10:\n _c.sent();\n _c.label = 11;\n case 11: return [3, 14];\n case 12:\n e_1 = _c.sent();\n return [4, put(fetchHomeMeanStatsFailure(params))];\n case 13:\n _c.sent();\n return [3, 14];\n case 14: return [2];\n }\n });\n}\nexport function tryFetchHomeMostVisitedSites() {\n var currentApp, siteId, site, rtApiKey, params, _a, status, data, formatedAndSortedData, e_2;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getCurrentApp())];\n case 1:\n currentApp = _b.sent();\n if (currentApp !== 'home') {\n return [2];\n }\n return [4, select(getterNavigationSiteId, {})];\n case 2:\n siteId = _b.sent();\n return [4, select(getSite(siteId))];\n case 3:\n site = _b.sent();\n rtApiKey = path(['rt_api_key'], site);\n params = {\n rtApiKey: rtApiKey,\n };\n _b.label = 4;\n case 4:\n _b.trys.push([4, 11, , 13]);\n return [4, put(listMostVisitedSitesLoading(params))];\n case 5:\n _b.sent();\n return [4, getFromInstant(\"realtime-stats?key=\" + rtApiKey + \"&debug=True\", 'v5')];\n case 6:\n _a = _b.sent(), status = _a.status, data = _a.data;\n formatedAndSortedData = data === null || data === void 0 ? void 0 : data.map(function (_a) {\n var stats = _a.stats, item = __rest(_a, [\"stats\"]);\n return (__assign(__assign({}, item), { stats: __assign(__assign({}, stats), { traffic: parseInt(stats === null || stats === void 0 ? void 0 : stats.traffic, 10) }) }));\n });\n if (!(status === 200)) return [3, 8];\n return [4, put(fetchHomeMostVisitedSitesSuccess(__assign(__assign({}, params), { data: formatedAndSortedData })))];\n case 7:\n _b.sent();\n return [3, 10];\n case 8: return [4, put(fetchHomeMostVisitedSitesFailure(params))];\n case 9:\n _b.sent();\n _b.label = 10;\n case 10: return [3, 13];\n case 11:\n e_2 = _b.sent();\n return [4, put(fetchHomeMostVisitedSitesFailure(params))];\n case 12:\n _b.sent();\n return [3, 13];\n case 13: return [2];\n }\n });\n}\nexport function pollMostVisitedSites() {\n var siteId, site, rtApiKey, params, _a, status, data, formatedAndSortedData, e_3;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getterNavigationSiteId, {})];\n case 1:\n siteId = _b.sent();\n return [4, select(getSite(siteId))];\n case 2:\n site = _b.sent();\n rtApiKey = path(['rt_api_key'], site);\n params = {\n rtApiKey: rtApiKey,\n };\n _b.label = 3;\n case 3:\n _b.trys.push([3, 8, , 9]);\n return [4, getFromInstant(\"realtime-stats?key=\" + rtApiKey + \"&debug=True\", 'v5')];\n case 4:\n _a = _b.sent(), status = _a.status, data = _a.data;\n formatedAndSortedData = data === null || data === void 0 ? void 0 : data.map(function (_a) {\n var stats = _a.stats, item = __rest(_a, [\"stats\"]);\n return (__assign(__assign({}, item), { stats: __assign(__assign({}, stats), { traffic: parseInt(stats === null || stats === void 0 ? void 0 : stats.traffic, 10) }) }));\n });\n if (!(status === 200)) return [3, 6];\n return [4, put(fetchHomeMostVisitedSitesSuccess(__assign(__assign({}, params), { data: formatedAndSortedData })))];\n case 5:\n _b.sent();\n return [3, 7];\n case 6:\n console.error('Most visited site polling fail');\n _b.label = 7;\n case 7: return [3, 9];\n case 8:\n e_3 = _b.sent();\n console.error('Most visited site polling fail');\n return [3, 9];\n case 9: return [2];\n }\n });\n}\nexport function tryFetchHomeAggregatedPresenceStats() {\n var currentApp, currentPopulation, siteId, _a, dayFrom, dayTo, config, currentArea, params, _b, status, data, error_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(getCurrentApp())];\n case 1:\n currentApp = _c.sent();\n return [4, select(getCurrentPopulation())];\n case 2:\n currentPopulation = _c.sent();\n if (currentApp !== 'home') {\n return [2];\n }\n return [4, select(getterNavigationSiteId, {})];\n case 3:\n siteId = _c.sent();\n return [4, select(getterHomeNavigation, { siteId: siteId })];\n case 4:\n _a = _c.sent(), dayFrom = _a.dayFrom, dayTo = _a.dayTo, config = _a.config, currentArea = _a.currentArea;\n params = {\n siteId: siteId,\n areaId: pathOr(null, ['uuid'], currentArea),\n kind: 'presence',\n from: dayFrom,\n to: dayTo,\n granularity: 'daily',\n };\n _c.label = 5;\n case 5:\n _c.trys.push([5, 12, , 14]);\n return [4, put(homeAggregatedStatsLoading(params))];\n case 6:\n _c.sent();\n return [4, getFromComputeEngine(\"presence/sum?granularity=daily&config_id=\" + config.uuid + \"&zone_name=\" + encodeURIComponent(currentArea.name) + \"&from_date=\" + dayFrom + \"&to_date=\" + dayTo + \"&population_name=\" + currentPopulation)];\n case 7:\n _b = _c.sent(), status = _b.status, data = _b.data;\n if (!(status === 200)) return [3, 9];\n return [4, put(fetchHomeAggregatedStatsSuccess(__assign(__assign({}, params), { data: data })))];\n case 8:\n _c.sent();\n return [3, 11];\n case 9: return [4, put(fetchHomeAggregatedStatsFailure(params))];\n case 10:\n _c.sent();\n _c.label = 11;\n case 11: return [3, 14];\n case 12:\n error_1 = _c.sent();\n return [4, put(fetchHomeAggregatedStatsFailure(params))];\n case 13:\n _c.sent();\n return [3, 14];\n case 14: return [2];\n }\n });\n}\nexport function tryFetchHomeYesterdayMostVisitedSites() {\n var siteId, siteConfig, rt_api_key, homeNowStats, configIdToSend, currentDayFrom, _a, status, data, filtered, format, err_1;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, select(function (state) { return state.navigation.siteId; })];\n case 1:\n siteId = _c.sent();\n return [4, (_b = select(function (state) { var _a, _b; return (_b = (_a = state === null || state === void 0 ? void 0 : state.sites) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.find(function (site) { return site.uuid === siteId; }); })) !== null && _b !== void 0 ? _b : {}];\n case 2:\n siteConfig = _c.sent();\n rt_api_key = siteConfig.rt_api_key;\n return [4, select(function (state) { var _a, _b; return (_b = (_a = state.home) === null || _a === void 0 ? void 0 : _a[rt_api_key]) === null || _b === void 0 ? void 0 : _b.data; })];\n case 3:\n homeNowStats = _c.sent();\n configIdToSend = homeNowStats === null || homeNowStats === void 0 ? void 0 : homeNowStats.map(function (stat) { return stat.config_uuid; });\n currentDayFrom = moment().subtract(1, 'days').format('YYYY-MM-DD');\n return [4, put(yesterdayHomeStatsLoading({ rtApiKey: rt_api_key }))];\n case 4:\n _c.sent();\n _c.label = 5;\n case 5:\n _c.trys.push([5, 11, , 13]);\n return [4, postFromComputeEngine(\"presence/list?date=\" + currentDayFrom + \"&zone_name=Entire Site&population_name=All populations\", { configs: configIdToSend })];\n case 6:\n _a = _c.sent(), status = _a.status, data = _a.data;\n if (!(status === 200)) return [3, 8];\n filtered = data.length >= 1 ? data === null || data === void 0 ? void 0 : data.sort(function (a, b) { return b.value - a.value; }) : [];\n format = filtered.length >= 1\n ? filtered.map(function (stat) {\n var current = homeNowStats.find(function (site) { return site.config_uuid === stat.config_id; });\n return {\n traffic: stat.value,\n site_uuid: current.site_uuid,\n site_name: current.site_name,\n display_name: current.display_name,\n };\n })\n : [];\n return [4, put(fetchYesterdayHomeStatsSuccess({ data: format }))];\n case 7:\n _c.sent();\n return [3, 10];\n case 8: return [4, put(fetchYesterdayHomeStatsFailure())];\n case 9:\n _c.sent();\n _c.label = 10;\n case 10: return [3, 13];\n case 11:\n err_1 = _c.sent();\n return [4, put(fetchYesterdayHomeStatsFailure())];\n case 12:\n _c.sent();\n return [3, 13];\n case 13: return [2];\n }\n });\n}\nexport function setWhichCardToLoad() {\n var isNow;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, select(function (state) { return state.home.isNow; })];\n case 1:\n isNow = _a.sent();\n if (!isNow) return [3, 3];\n return [4, put(fetchHomePresenceStats())];\n case 2: return [2, _a.sent()];\n case 3: return [4, put(fetchYesterdayHomeStats())];\n case 4: return [2, _a.sent()];\n }\n });\n}\nexport function tryFetchFocusSites() {\n var currentApp, _a, status, data, focusSites, e_4;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, select(getCurrentApp())];\n case 1:\n currentApp = _b.sent();\n if (currentApp !== 'home') {\n return [2];\n }\n _b.label = 2;\n case 2:\n _b.trys.push([2, 9, , 11]);\n return [4, put(fetchFocusSitesLoading())];\n case 3:\n _b.sent();\n return [4, getFromMDM('network-sites/')];\n case 4:\n _a = _b.sent(), status = _a.status, data = _a.data;\n if (!(status === 200)) return [3, 6];\n focusSites = chain(path(['focus_sites']), data);\n return [4, put(fetchFocusSitesSuccess(focusSites))];\n case 5:\n _b.sent();\n return [3, 8];\n case 6: return [4, put(fetchFocusSitesFailure())];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 11];\n case 9:\n e_4 = _b.sent();\n return [4, put(fetchFocusSitesFailure())];\n case 10:\n _b.sent();\n return [3, 11];\n case 11: return [2];\n }\n });\n}\nexport default function homeSagas() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery(['INIT_HOME_CARD'], initHomeCardSaga)];\n case 1:\n _a.sent();\n return [4, takeEvery(['FETCH_HOME_PRESENCE_STATS'], tryFetchHomeMeanPresenceStats)];\n case 2:\n _a.sent();\n return [4, takeEvery(['FETCH_HOME_PRESENCE_STATS'], tryFetchHomeAggregatedPresenceStats)];\n case 3:\n _a.sent();\n return [4, takeEvery(['FETCH_HOME_PRESENCE_STATS'], tryFetchHomeMostVisitedSites)];\n case 4:\n _a.sent();\n return [4, takeEvery(['FETCH_YESTERDAY_HOME_STATS'], tryFetchHomeYesterdayMostVisitedSites)];\n case 5:\n _a.sent();\n return [4, takeEvery(['SWITCH_HOME_CARD_TYPE'], setWhichCardToLoad)];\n case 6:\n _a.sent();\n return [4, takeEvery(['HOME_MOST_VISITED_SITES_POLLING'], pollMostVisitedSites)];\n case 7:\n _a.sent();\n return [4, takeEvery(['FETCH_FOCUS_SITES'], tryFetchFocusSites)];\n case 8:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __assign, __generator, __rest } from \"tslib\";\nimport { takeEvery, put } from 'redux-saga/effects';\nimport { getFromMDM } from '@src/commons/utils/request';\nimport { fetchScalesSuccess, fetchScalesFailure } from '@src/commons/scalesConfigurations/action';\nexport function tryFetchScales() {\n var _a, status, data, formated, e_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 6, , 8]);\n return [4, getFromMDM('fruin-scales/')];\n case 1:\n _a = _b.sent(), status = _a.status, data = _a.data;\n if (!(status === 200)) return [3, 3];\n formated = data === null || data === void 0 ? void 0 : data.map(function (_a) {\n var config = _a.config, item = __rest(_a, [\"config\"]);\n return __assign(__assign({}, item), { config_uuid: config });\n });\n return [4, put(fetchScalesSuccess(formated))];\n case 2: return [2, _b.sent()];\n case 3: return [4, put(fetchScalesFailure())];\n case 4:\n _b.sent();\n _b.label = 5;\n case 5: return [3, 8];\n case 6:\n e_1 = _b.sent();\n return [4, put(fetchScalesFailure())];\n case 7:\n _b.sent();\n return [3, 8];\n case 8: return [2];\n }\n });\n}\nexport default function scalesSaga() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, takeEvery(['FETCH_SCALES'], tryFetchScales)];\n case 1:\n _a.sent();\n return [2];\n }\n });\n}\n","import { __generator } from \"tslib\";\nimport { all } from 'redux-saga/effects';\nimport authSaga from './login/sagas';\nimport sitesSaga from './commons/sites/sagas';\nimport navigationSagas from './navigation/sagas';\nimport configsSaga from './commons/configs/sagas';\nimport liveAreaSagas from './live/realtimeStat/sagas';\nimport floorsSaga from '@src/commons/floors/sagas';\nimport poisSaga from '@src/commons/pois/sagas';\nimport gtmSaga from '@src/commons/utils/sagas';\nimport startStopChannel from '@src/commons/websocket/sagas';\nimport accessPointsSaga from './monitoring/accessPoints/sagas';\nimport featuresSaga from './commons/features/sagas';\nimport jplus1Sagas from './monitoring/fromSmartFlows/sagas';\nimport collectSagas from './monitoring/summary/collect/sagas';\nimport insightsSaga from './insights/sagas';\nimport computeSagas from './reporting/sagas';\nimport reportsSagas from './reporting/reports/sagas';\nimport realtimeSagas from './monitoring/summary/realtime/sagas';\nimport processesSaga from '@src/commons/processes/sagas';\nimport walkingTimesSaga from '@src/live/walkingTimes/sagas';\nimport liveSagas from '@src/live/realtime/sagas';\nimport destinationsSagas from '@src/reporting/flights_report/destinations/sagas';\nimport socialDistancingSagas from '@src/social_distancing/social_distancing_assistant/sagas';\nimport socialDistancingMonitoringSagas from './social_distancing/social_distancing_monitoring/sagas';\nimport perDestinationSagas from '@src/reporting/flights_report/per_destination/sagas';\nimport perAirlineSagas from '@src/reporting/flights_report/per_airline/sagas';\nimport retailSagas from '@src/reporting/retail/sagas';\nimport dashboardSagas from '@src/reporting/dashboard/sagas';\nimport flightsReportSagas from '@src/reporting/flights_report/sagas';\nimport advertisingSagas from '@src/reporting/advertising/sagas';\nimport homeSagas from '@src/home/sagas';\nimport qualityServiceScales from '@src/commons/scalesConfigurations/sagas';\nexport default function rootSaga() {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, all([\n authSaga(),\n navigationSagas(),\n sitesSaga(),\n configsSaga(),\n liveAreaSagas(),\n floorsSaga(),\n poisSaga(),\n gtmSaga(),\n startStopChannel(),\n accessPointsSaga(),\n featuresSaga(),\n jplus1Sagas(),\n collectSagas(),\n insightsSaga(),\n computeSagas(),\n realtimeSagas(),\n liveSagas(),\n reportsSagas(),\n processesSaga(),\n walkingTimesSaga(),\n destinationsSagas(),\n socialDistancingSagas(),\n socialDistancingMonitoringSagas(),\n perDestinationSagas(),\n perAirlineSagas(),\n retailSagas(),\n dashboardSagas(),\n flightsReportSagas(),\n advertisingSagas(),\n homeSagas(),\n qualityServiceScales(),\n ])];\n case 1:\n _a.sent();\n return [2];\n }\n });\n}\n","import { createStore, applyMiddleware } from 'redux';\nimport { composeWithDevTools } from 'redux-devtools-extension';\nimport createSagaMiddleware from 'redux-saga';\nimport 'regenerator-runtime/runtime';\nimport reducers from './reducers';\nimport rootSaga from './sagas';\nvar sagaMiddleware = createSagaMiddleware();\nexport function Store(initialState) {\n if (initialState === void 0) { initialState = {}; }\n var store = createStore(reducers, initialState, composeWithDevTools(applyMiddleware(sagaMiddleware)));\n sagaMiddleware.run(rootSaga);\n return store;\n}\nvar INITIAL_STATE = {\n sites: {\n loading: true,\n data: [],\n },\n features: { loading: true, data: [] },\n};\nvar store = new Store(INITIAL_STATE);\nexport default store;\n","import cssVars from 'css-vars-ponyfill';\nimport 'react-app-polyfill/ie11';\nimport 'react-app-polyfill/stable';\nimport { withAuthenticationRequired } from '@auth0/auth0-react';\nimport * as Sentry from '@sentry/react';\nimport { Integrations } from '@sentry/tracing';\nimport { render } from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { Route, BrowserRouter as Router, Switch } from 'react-router-dom';\nimport React from 'react';\nimport App from '@src/App';\nimport AuthProvider from '@src/components/AuthProvider';\nimport MayRedirect from '@src/components/Redirect';\nimport store from '@src/store';\nimport '@src/i18n';\nimport 'react-dates/initialize';\nimport 'react-dates/lib/css/_datepicker.css';\nimport './reset.scss';\nSentry.init({\n dsn: process.env.SENTRY_DSN,\n integrations: [\n new Integrations.BrowserTracing(),\n new Sentry.Replay(),\n ],\n tracesSampleRate: Number(process.env.SENTRY_TRACES_SAMPLE_RATE) || 0.01,\n replaysSessionSampleRate: Number(process.env.SENTRY_REPLAY_SESSION_SAMPLE_RATE) || 0.01,\n replaysOnErrorSampleRate: 1.0,\n});\ncssVars({});\nrender(React.createElement(Router, null,\n React.createElement(AuthProvider, null,\n React.createElement(Provider, { store: store },\n React.createElement(Switch, null,\n React.createElement(Route, { path: \"/v2/:app/:siteId?/:section?/:subsection?\", component: withAuthenticationRequired(App) }),\n React.createElement(Route, { exact: true, path: ['/', '/:anything'], component: withAuthenticationRequired(MayRedirect) }))))), document.getElementById('app'));\n","import { useEffect } from 'react';\nimport { useLocation, useHistory } from 'react-router-dom';\nimport React from 'react';\nimport Loader from '@src/commons/Loader';\nexport default function Redirect() {\n var pathname = useLocation().pathname;\n var history = useHistory();\n useEffect(function () {\n if (!pathname.includes('/v2')) {\n history.push('/v2/index');\n }\n }, [history, pathname]);\n return React.createElement(Loader, null);\n}\n","var map = {\n\t\"./af\": 94774,\n\t\"./af.js\": 94774,\n\t\"./ar\": 3641,\n\t\"./ar-dz\": 24457,\n\t\"./ar-dz.js\": 24457,\n\t\"./ar-kw\": 34812,\n\t\"./ar-kw.js\": 34812,\n\t\"./ar-ly\": 24125,\n\t\"./ar-ly.js\": 24125,\n\t\"./ar-ma\": 97252,\n\t\"./ar-ma.js\": 97252,\n\t\"./ar-ps\": 30341,\n\t\"./ar-ps.js\": 30341,\n\t\"./ar-sa\": 86853,\n\t\"./ar-sa.js\": 86853,\n\t\"./ar-tn\": 32749,\n\t\"./ar-tn.js\": 32749,\n\t\"./ar.js\": 3641,\n\t\"./az\": 59425,\n\t\"./az.js\": 59425,\n\t\"./be\": 64598,\n\t\"./be.js\": 64598,\n\t\"./bg\": 74380,\n\t\"./bg.js\": 74380,\n\t\"./bm\": 52181,\n\t\"./bm.js\": 52181,\n\t\"./bn\": 2129,\n\t\"./bn-bd\": 77560,\n\t\"./bn-bd.js\": 77560,\n\t\"./bn.js\": 2129,\n\t\"./bo\": 85406,\n\t\"./bo.js\": 85406,\n\t\"./br\": 30752,\n\t\"./br.js\": 30752,\n\t\"./bs\": 107,\n\t\"./bs.js\": 107,\n\t\"./ca\": 33595,\n\t\"./ca.js\": 33595,\n\t\"./cs\": 12015,\n\t\"./cs.js\": 12015,\n\t\"./cv\": 70519,\n\t\"./cv.js\": 70519,\n\t\"./cy\": 25322,\n\t\"./cy.js\": 25322,\n\t\"./da\": 71198,\n\t\"./da.js\": 71198,\n\t\"./de\": 84350,\n\t\"./de-at\": 26836,\n\t\"./de-at.js\": 26836,\n\t\"./de-ch\": 53544,\n\t\"./de-ch.js\": 53544,\n\t\"./de.js\": 84350,\n\t\"./dv\": 65438,\n\t\"./dv.js\": 65438,\n\t\"./el\": 75309,\n\t\"./el.js\": 75309,\n\t\"./en-au\": 31553,\n\t\"./en-au.js\": 31553,\n\t\"./en-ca\": 86013,\n\t\"./en-ca.js\": 86013,\n\t\"./en-gb\": 46780,\n\t\"./en-gb.js\": 46780,\n\t\"./en-ie\": 21454,\n\t\"./en-ie.js\": 21454,\n\t\"./en-il\": 88391,\n\t\"./en-il.js\": 88391,\n\t\"./en-in\": 43328,\n\t\"./en-in.js\": 43328,\n\t\"./en-nz\": 45055,\n\t\"./en-nz.js\": 45055,\n\t\"./en-sg\": 73820,\n\t\"./en-sg.js\": 73820,\n\t\"./eo\": 95067,\n\t\"./eo.js\": 95067,\n\t\"./es\": 44297,\n\t\"./es-do\": 33516,\n\t\"./es-do.js\": 33516,\n\t\"./es-mx\": 83941,\n\t\"./es-mx.js\": 83941,\n\t\"./es-us\": 30008,\n\t\"./es-us.js\": 30008,\n\t\"./es.js\": 44297,\n\t\"./et\": 99338,\n\t\"./et.js\": 99338,\n\t\"./eu\": 83782,\n\t\"./eu.js\": 83782,\n\t\"./fa\": 38276,\n\t\"./fa.js\": 38276,\n\t\"./fi\": 52241,\n\t\"./fi.js\": 52241,\n\t\"./fil\": 59388,\n\t\"./fil.js\": 59388,\n\t\"./fo\": 30409,\n\t\"./fo.js\": 30409,\n\t\"./fr\": 59164,\n\t\"./fr-ca\": 69414,\n\t\"./fr-ca.js\": 69414,\n\t\"./fr-ch\": 58647,\n\t\"./fr-ch.js\": 58647,\n\t\"./fr.js\": 59164,\n\t\"./fy\": 26594,\n\t\"./fy.js\": 26594,\n\t\"./ga\": 84441,\n\t\"./ga.js\": 84441,\n\t\"./gd\": 99774,\n\t\"./gd.js\": 99774,\n\t\"./gl\": 75087,\n\t\"./gl.js\": 75087,\n\t\"./gom-deva\": 47796,\n\t\"./gom-deva.js\": 47796,\n\t\"./gom-latn\": 47238,\n\t\"./gom-latn.js\": 47238,\n\t\"./gu\": 81681,\n\t\"./gu.js\": 81681,\n\t\"./he\": 61832,\n\t\"./he.js\": 61832,\n\t\"./hi\": 21676,\n\t\"./hi.js\": 21676,\n\t\"./hr\": 63753,\n\t\"./hr.js\": 63753,\n\t\"./hu\": 92652,\n\t\"./hu.js\": 92652,\n\t\"./hy-am\": 17388,\n\t\"./hy-am.js\": 17388,\n\t\"./id\": 22532,\n\t\"./id.js\": 22532,\n\t\"./is\": 56341,\n\t\"./is.js\": 56341,\n\t\"./it\": 73081,\n\t\"./it-ch\": 69497,\n\t\"./it-ch.js\": 69497,\n\t\"./it.js\": 73081,\n\t\"./ja\": 75283,\n\t\"./ja.js\": 75283,\n\t\"./jv\": 61630,\n\t\"./jv.js\": 61630,\n\t\"./ka\": 4652,\n\t\"./ka.js\": 4652,\n\t\"./kk\": 42957,\n\t\"./kk.js\": 42957,\n\t\"./km\": 71654,\n\t\"./km.js\": 71654,\n\t\"./kn\": 82690,\n\t\"./kn.js\": 82690,\n\t\"./ko\": 58505,\n\t\"./ko.js\": 58505,\n\t\"./ku\": 53010,\n\t\"./ku-kmr\": 48844,\n\t\"./ku-kmr.js\": 48844,\n\t\"./ku.js\": 53010,\n\t\"./ky\": 56908,\n\t\"./ky.js\": 56908,\n\t\"./lb\": 94220,\n\t\"./lb.js\": 94220,\n\t\"./lo\": 30944,\n\t\"./lo.js\": 30944,\n\t\"./lt\": 1582,\n\t\"./lt.js\": 1582,\n\t\"./lv\": 33231,\n\t\"./lv.js\": 33231,\n\t\"./me\": 49184,\n\t\"./me.js\": 49184,\n\t\"./mi\": 57802,\n\t\"./mi.js\": 57802,\n\t\"./mk\": 23751,\n\t\"./mk.js\": 23751,\n\t\"./ml\": 99647,\n\t\"./ml.js\": 99647,\n\t\"./mn\": 6486,\n\t\"./mn.js\": 6486,\n\t\"./mr\": 2522,\n\t\"./mr.js\": 2522,\n\t\"./ms\": 82593,\n\t\"./ms-my\": 33378,\n\t\"./ms-my.js\": 33378,\n\t\"./ms.js\": 82593,\n\t\"./mt\": 7447,\n\t\"./mt.js\": 7447,\n\t\"./my\": 64312,\n\t\"./my.js\": 64312,\n\t\"./nb\": 71074,\n\t\"./nb.js\": 71074,\n\t\"./ne\": 67451,\n\t\"./ne.js\": 67451,\n\t\"./nl\": 34241,\n\t\"./nl-be\": 70671,\n\t\"./nl-be.js\": 70671,\n\t\"./nl.js\": 34241,\n\t\"./nn\": 7649,\n\t\"./nn.js\": 7649,\n\t\"./oc-lnc\": 44952,\n\t\"./oc-lnc.js\": 44952,\n\t\"./pa-in\": 9727,\n\t\"./pa-in.js\": 9727,\n\t\"./pl\": 3170,\n\t\"./pl.js\": 3170,\n\t\"./pt\": 49729,\n\t\"./pt-br\": 16339,\n\t\"./pt-br.js\": 16339,\n\t\"./pt.js\": 49729,\n\t\"./ro\": 25429,\n\t\"./ro.js\": 25429,\n\t\"./ru\": 87850,\n\t\"./ru.js\": 87850,\n\t\"./sd\": 70525,\n\t\"./sd.js\": 70525,\n\t\"./se\": 61914,\n\t\"./se.js\": 61914,\n\t\"./si\": 10163,\n\t\"./si.js\": 10163,\n\t\"./sk\": 26162,\n\t\"./sk.js\": 26162,\n\t\"./sl\": 1387,\n\t\"./sl.js\": 1387,\n\t\"./sq\": 49159,\n\t\"./sq.js\": 49159,\n\t\"./sr\": 40403,\n\t\"./sr-cyrl\": 71380,\n\t\"./sr-cyrl.js\": 71380,\n\t\"./sr.js\": 40403,\n\t\"./ss\": 92622,\n\t\"./ss.js\": 92622,\n\t\"./sv\": 20175,\n\t\"./sv.js\": 20175,\n\t\"./sw\": 33158,\n\t\"./sw.js\": 33158,\n\t\"./ta\": 19714,\n\t\"./ta.js\": 19714,\n\t\"./te\": 61092,\n\t\"./te.js\": 61092,\n\t\"./tet\": 36498,\n\t\"./tet.js\": 36498,\n\t\"./tg\": 84932,\n\t\"./tg.js\": 84932,\n\t\"./th\": 90749,\n\t\"./th.js\": 90749,\n\t\"./tk\": 14330,\n\t\"./tk.js\": 14330,\n\t\"./tl-ph\": 36669,\n\t\"./tl-ph.js\": 36669,\n\t\"./tlh\": 21409,\n\t\"./tlh.js\": 21409,\n\t\"./tr\": 11983,\n\t\"./tr.js\": 11983,\n\t\"./tzl\": 99036,\n\t\"./tzl.js\": 99036,\n\t\"./tzm\": 65817,\n\t\"./tzm-latn\": 24898,\n\t\"./tzm-latn.js\": 24898,\n\t\"./tzm.js\": 65817,\n\t\"./ug-cn\": 72927,\n\t\"./ug-cn.js\": 72927,\n\t\"./uk\": 78278,\n\t\"./uk.js\": 78278,\n\t\"./ur\": 28909,\n\t\"./ur.js\": 28909,\n\t\"./uz\": 49505,\n\t\"./uz-latn\": 80273,\n\t\"./uz-latn.js\": 80273,\n\t\"./uz.js\": 49505,\n\t\"./vi\": 76012,\n\t\"./vi.js\": 76012,\n\t\"./x-pseudo\": 5525,\n\t\"./x-pseudo.js\": 5525,\n\t\"./yo\": 46340,\n\t\"./yo.js\": 46340,\n\t\"./zh-cn\": 30040,\n\t\"./zh-cn.js\": 30040,\n\t\"./zh-hk\": 84394,\n\t\"./zh-hk.js\": 84394,\n\t\"./zh-mo\": 22602,\n\t\"./zh-mo.js\": 22602,\n\t\"./zh-tw\": 22907,\n\t\"./zh-tw.js\": 22907\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 10769;","var map = {\n\t\"./af\": 95191,\n\t\"./af.js\": 95191,\n\t\"./ar\": 54358,\n\t\"./ar-dz\": 71727,\n\t\"./ar-dz.js\": 71727,\n\t\"./ar-kw\": 98279,\n\t\"./ar-kw.js\": 98279,\n\t\"./ar-ly\": 87895,\n\t\"./ar-ly.js\": 87895,\n\t\"./ar-ma\": 11987,\n\t\"./ar-ma.js\": 11987,\n\t\"./ar-sa\": 52796,\n\t\"./ar-sa.js\": 52796,\n\t\"./ar-tn\": 12386,\n\t\"./ar-tn.js\": 12386,\n\t\"./ar.js\": 54358,\n\t\"./az\": 57452,\n\t\"./az.js\": 57452,\n\t\"./be\": 79053,\n\t\"./be.js\": 79053,\n\t\"./bg\": 65428,\n\t\"./bg.js\": 65428,\n\t\"./bm\": 21569,\n\t\"./bm.js\": 21569,\n\t\"./bn\": 56212,\n\t\"./bn-bd\": 24635,\n\t\"./bn-bd.js\": 24635,\n\t\"./bn.js\": 56212,\n\t\"./bo\": 13667,\n\t\"./bo.js\": 13667,\n\t\"./br\": 192,\n\t\"./br.js\": 192,\n\t\"./bs\": 51802,\n\t\"./bs.js\": 51802,\n\t\"./ca\": 19118,\n\t\"./ca.js\": 19118,\n\t\"./cs\": 39990,\n\t\"./cs.js\": 39990,\n\t\"./cv\": 30557,\n\t\"./cv.js\": 30557,\n\t\"./cy\": 4227,\n\t\"./cy.js\": 4227,\n\t\"./da\": 95406,\n\t\"./da.js\": 95406,\n\t\"./de\": 87994,\n\t\"./de-at\": 44139,\n\t\"./de-at.js\": 44139,\n\t\"./de-ch\": 86591,\n\t\"./de-ch.js\": 86591,\n\t\"./de.js\": 87994,\n\t\"./dv\": 94649,\n\t\"./dv.js\": 94649,\n\t\"./el\": 14453,\n\t\"./el.js\": 14453,\n\t\"./en-au\": 48428,\n\t\"./en-au.js\": 48428,\n\t\"./en-ca\": 36972,\n\t\"./en-ca.js\": 36972,\n\t\"./en-gb\": 13224,\n\t\"./en-gb.js\": 13224,\n\t\"./en-ie\": 18843,\n\t\"./en-ie.js\": 18843,\n\t\"./en-il\": 32732,\n\t\"./en-il.js\": 32732,\n\t\"./en-in\": 76579,\n\t\"./en-in.js\": 76579,\n\t\"./en-nz\": 29851,\n\t\"./en-nz.js\": 29851,\n\t\"./en-sg\": 70442,\n\t\"./en-sg.js\": 70442,\n\t\"./eo\": 10654,\n\t\"./eo.js\": 10654,\n\t\"./es\": 63621,\n\t\"./es-do\": 68791,\n\t\"./es-do.js\": 68791,\n\t\"./es-mx\": 67278,\n\t\"./es-mx.js\": 67278,\n\t\"./es-us\": 60717,\n\t\"./es-us.js\": 60717,\n\t\"./es.js\": 63621,\n\t\"./et\": 72404,\n\t\"./et.js\": 72404,\n\t\"./eu\": 62944,\n\t\"./eu.js\": 62944,\n\t\"./fa\": 30496,\n\t\"./fa.js\": 30496,\n\t\"./fi\": 98137,\n\t\"./fi.js\": 98137,\n\t\"./fil\": 32872,\n\t\"./fil.js\": 32872,\n\t\"./fo\": 6545,\n\t\"./fo.js\": 6545,\n\t\"./fr\": 49090,\n\t\"./fr-ca\": 13049,\n\t\"./fr-ca.js\": 13049,\n\t\"./fr-ch\": 12338,\n\t\"./fr-ch.js\": 12338,\n\t\"./fr.js\": 49090,\n\t\"./fy\": 95088,\n\t\"./fy.js\": 95088,\n\t\"./ga\": 77812,\n\t\"./ga.js\": 77812,\n\t\"./gd\": 8374,\n\t\"./gd.js\": 8374,\n\t\"./gl\": 63649,\n\t\"./gl.js\": 63649,\n\t\"./gom-deva\": 52674,\n\t\"./gom-deva.js\": 52674,\n\t\"./gom-latn\": 44948,\n\t\"./gom-latn.js\": 44948,\n\t\"./gu\": 71490,\n\t\"./gu.js\": 71490,\n\t\"./he\": 10175,\n\t\"./he.js\": 10175,\n\t\"./hi\": 58055,\n\t\"./hi.js\": 58055,\n\t\"./hr\": 41678,\n\t\"./hr.js\": 41678,\n\t\"./hu\": 85111,\n\t\"./hu.js\": 85111,\n\t\"./hy-am\": 26530,\n\t\"./hy-am.js\": 26530,\n\t\"./id\": 38928,\n\t\"./id.js\": 38928,\n\t\"./is\": 11696,\n\t\"./is.js\": 11696,\n\t\"./it\": 98710,\n\t\"./it-ch\": 38821,\n\t\"./it-ch.js\": 38821,\n\t\"./it.js\": 98710,\n\t\"./ja\": 93974,\n\t\"./ja.js\": 93974,\n\t\"./jv\": 69328,\n\t\"./jv.js\": 69328,\n\t\"./ka\": 54731,\n\t\"./ka.js\": 54731,\n\t\"./kk\": 43501,\n\t\"./kk.js\": 43501,\n\t\"./km\": 84398,\n\t\"./km.js\": 84398,\n\t\"./kn\": 91825,\n\t\"./kn.js\": 91825,\n\t\"./ko\": 13729,\n\t\"./ko.js\": 13729,\n\t\"./ku\": 80078,\n\t\"./ku.js\": 80078,\n\t\"./ky\": 78797,\n\t\"./ky.js\": 78797,\n\t\"./lb\": 50627,\n\t\"./lb.js\": 50627,\n\t\"./lo\": 65859,\n\t\"./lo.js\": 65859,\n\t\"./lt\": 80355,\n\t\"./lt.js\": 80355,\n\t\"./lv\": 16594,\n\t\"./lv.js\": 16594,\n\t\"./me\": 45324,\n\t\"./me.js\": 45324,\n\t\"./mi\": 11689,\n\t\"./mi.js\": 11689,\n\t\"./mk\": 61308,\n\t\"./mk.js\": 61308,\n\t\"./ml\": 85241,\n\t\"./ml.js\": 85241,\n\t\"./mn\": 76320,\n\t\"./mn.js\": 76320,\n\t\"./mr\": 96771,\n\t\"./mr.js\": 96771,\n\t\"./ms\": 20503,\n\t\"./ms-my\": 77748,\n\t\"./ms-my.js\": 77748,\n\t\"./ms.js\": 20503,\n\t\"./mt\": 55534,\n\t\"./mt.js\": 55534,\n\t\"./my\": 62727,\n\t\"./my.js\": 62727,\n\t\"./nb\": 7550,\n\t\"./nb.js\": 7550,\n\t\"./ne\": 49899,\n\t\"./ne.js\": 49899,\n\t\"./nl\": 41228,\n\t\"./nl-be\": 31225,\n\t\"./nl-be.js\": 31225,\n\t\"./nl.js\": 41228,\n\t\"./nn\": 97130,\n\t\"./nn.js\": 97130,\n\t\"./oc-lnc\": 93130,\n\t\"./oc-lnc.js\": 93130,\n\t\"./pa-in\": 91282,\n\t\"./pa-in.js\": 91282,\n\t\"./pl\": 28190,\n\t\"./pl.js\": 28190,\n\t\"./pt\": 54096,\n\t\"./pt-br\": 78135,\n\t\"./pt-br.js\": 78135,\n\t\"./pt.js\": 54096,\n\t\"./ro\": 307,\n\t\"./ro.js\": 307,\n\t\"./ru\": 89272,\n\t\"./ru.js\": 89272,\n\t\"./sd\": 79248,\n\t\"./sd.js\": 79248,\n\t\"./se\": 74969,\n\t\"./se.js\": 74969,\n\t\"./si\": 65522,\n\t\"./si.js\": 65522,\n\t\"./sk\": 61581,\n\t\"./sk.js\": 61581,\n\t\"./sl\": 56428,\n\t\"./sl.js\": 56428,\n\t\"./sq\": 34611,\n\t\"./sq.js\": 34611,\n\t\"./sr\": 19821,\n\t\"./sr-cyrl\": 20185,\n\t\"./sr-cyrl.js\": 20185,\n\t\"./sr.js\": 19821,\n\t\"./ss\": 35029,\n\t\"./ss.js\": 35029,\n\t\"./sv\": 80939,\n\t\"./sv.js\": 80939,\n\t\"./sw\": 73107,\n\t\"./sw.js\": 73107,\n\t\"./ta\": 72304,\n\t\"./ta.js\": 72304,\n\t\"./te\": 72550,\n\t\"./te.js\": 72550,\n\t\"./tet\": 99717,\n\t\"./tet.js\": 99717,\n\t\"./tg\": 61911,\n\t\"./tg.js\": 61911,\n\t\"./th\": 94959,\n\t\"./th.js\": 94959,\n\t\"./tk\": 92661,\n\t\"./tk.js\": 92661,\n\t\"./tl-ph\": 52234,\n\t\"./tl-ph.js\": 52234,\n\t\"./tlh\": 94120,\n\t\"./tlh.js\": 94120,\n\t\"./tr\": 81111,\n\t\"./tr.js\": 81111,\n\t\"./tzl\": 53080,\n\t\"./tzl.js\": 53080,\n\t\"./tzm\": 88246,\n\t\"./tzm-latn\": 25385,\n\t\"./tzm-latn.js\": 25385,\n\t\"./tzm.js\": 88246,\n\t\"./ug-cn\": 16510,\n\t\"./ug-cn.js\": 16510,\n\t\"./uk\": 2014,\n\t\"./uk.js\": 2014,\n\t\"./ur\": 45953,\n\t\"./ur.js\": 45953,\n\t\"./uz\": 89716,\n\t\"./uz-latn\": 87791,\n\t\"./uz-latn.js\": 87791,\n\t\"./uz.js\": 89716,\n\t\"./vi\": 99816,\n\t\"./vi.js\": 99816,\n\t\"./x-pseudo\": 94450,\n\t\"./x-pseudo.js\": 94450,\n\t\"./yo\": 22556,\n\t\"./yo.js\": 22556,\n\t\"./zh-cn\": 7414,\n\t\"./zh-cn.js\": 7414,\n\t\"./zh-hk\": 50824,\n\t\"./zh-hk.js\": 50824,\n\t\"./zh-mo\": 88589,\n\t\"./zh-mo.js\": 88589,\n\t\"./zh-tw\": 63285,\n\t\"./zh-tw.js\": 63285\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 40709;","var map = {\n\t\"./af\": 39160,\n\t\"./af.js\": 39160,\n\t\"./ar\": 57833,\n\t\"./ar-dz\": 2213,\n\t\"./ar-dz.js\": 2213,\n\t\"./ar-kw\": 20361,\n\t\"./ar-kw.js\": 20361,\n\t\"./ar-ly\": 65699,\n\t\"./ar-ly.js\": 65699,\n\t\"./ar-ma\": 92309,\n\t\"./ar-ma.js\": 92309,\n\t\"./ar-ps\": 35384,\n\t\"./ar-ps.js\": 35384,\n\t\"./ar-sa\": 86876,\n\t\"./ar-sa.js\": 86876,\n\t\"./ar-tn\": 14700,\n\t\"./ar-tn.js\": 14700,\n\t\"./ar.js\": 57833,\n\t\"./az\": 84828,\n\t\"./az.js\": 84828,\n\t\"./be\": 38001,\n\t\"./be.js\": 38001,\n\t\"./bg\": 3376,\n\t\"./bg.js\": 3376,\n\t\"./bm\": 90630,\n\t\"./bm.js\": 90630,\n\t\"./bn\": 86726,\n\t\"./bn-bd\": 95351,\n\t\"./bn-bd.js\": 95351,\n\t\"./bn.js\": 86726,\n\t\"./bo\": 13172,\n\t\"./bo.js\": 13172,\n\t\"./br\": 21087,\n\t\"./br.js\": 21087,\n\t\"./bs\": 56934,\n\t\"./bs.js\": 56934,\n\t\"./ca\": 38762,\n\t\"./ca.js\": 38762,\n\t\"./cs\": 722,\n\t\"./cs.js\": 722,\n\t\"./cv\": 71188,\n\t\"./cv.js\": 71188,\n\t\"./cy\": 750,\n\t\"./cy.js\": 750,\n\t\"./da\": 39892,\n\t\"./da.js\": 39892,\n\t\"./de\": 50121,\n\t\"./de-at\": 58154,\n\t\"./de-at.js\": 58154,\n\t\"./de-ch\": 40894,\n\t\"./de-ch.js\": 40894,\n\t\"./de.js\": 50121,\n\t\"./dv\": 18238,\n\t\"./dv.js\": 18238,\n\t\"./el\": 54455,\n\t\"./el.js\": 54455,\n\t\"./en-au\": 44438,\n\t\"./en-au.js\": 44438,\n\t\"./en-ca\": 99646,\n\t\"./en-ca.js\": 99646,\n\t\"./en-gb\": 477,\n\t\"./en-gb.js\": 477,\n\t\"./en-ie\": 14942,\n\t\"./en-ie.js\": 14942,\n\t\"./en-il\": 11617,\n\t\"./en-il.js\": 11617,\n\t\"./en-in\": 97611,\n\t\"./en-in.js\": 97611,\n\t\"./en-nz\": 85558,\n\t\"./en-nz.js\": 85558,\n\t\"./en-sg\": 33617,\n\t\"./en-sg.js\": 33617,\n\t\"./eo\": 51241,\n\t\"./eo.js\": 51241,\n\t\"./es\": 2103,\n\t\"./es-do\": 57105,\n\t\"./es-do.js\": 57105,\n\t\"./es-mx\": 94629,\n\t\"./es-mx.js\": 94629,\n\t\"./es-us\": 53016,\n\t\"./es-us.js\": 53016,\n\t\"./es.js\": 2103,\n\t\"./et\": 80095,\n\t\"./et.js\": 80095,\n\t\"./eu\": 31058,\n\t\"./eu.js\": 31058,\n\t\"./fa\": 65550,\n\t\"./fa.js\": 65550,\n\t\"./fi\": 34657,\n\t\"./fi.js\": 34657,\n\t\"./fil\": 82916,\n\t\"./fil.js\": 82916,\n\t\"./fo\": 36829,\n\t\"./fo.js\": 36829,\n\t\"./fr\": 84618,\n\t\"./fr-ca\": 32006,\n\t\"./fr-ca.js\": 32006,\n\t\"./fr-ch\": 98928,\n\t\"./fr-ch.js\": 98928,\n\t\"./fr.js\": 84618,\n\t\"./fy\": 34528,\n\t\"./fy.js\": 34528,\n\t\"./ga\": 93697,\n\t\"./ga.js\": 93697,\n\t\"./gd\": 57338,\n\t\"./gd.js\": 57338,\n\t\"./gl\": 50619,\n\t\"./gl.js\": 50619,\n\t\"./gom-deva\": 99749,\n\t\"./gom-deva.js\": 99749,\n\t\"./gom-latn\": 341,\n\t\"./gom-latn.js\": 341,\n\t\"./gu\": 58114,\n\t\"./gu.js\": 58114,\n\t\"./he\": 1232,\n\t\"./he.js\": 1232,\n\t\"./hi\": 22989,\n\t\"./hi.js\": 22989,\n\t\"./hr\": 39256,\n\t\"./hr.js\": 39256,\n\t\"./hu\": 58340,\n\t\"./hu.js\": 58340,\n\t\"./hy-am\": 14475,\n\t\"./hy-am.js\": 14475,\n\t\"./id\": 1307,\n\t\"./id.js\": 1307,\n\t\"./is\": 34137,\n\t\"./is.js\": 34137,\n\t\"./it\": 89660,\n\t\"./it-ch\": 39526,\n\t\"./it-ch.js\": 39526,\n\t\"./it.js\": 89660,\n\t\"./ja\": 49566,\n\t\"./ja.js\": 49566,\n\t\"./jv\": 2944,\n\t\"./jv.js\": 2944,\n\t\"./ka\": 20398,\n\t\"./ka.js\": 20398,\n\t\"./kk\": 499,\n\t\"./kk.js\": 499,\n\t\"./km\": 68957,\n\t\"./km.js\": 68957,\n\t\"./kn\": 40297,\n\t\"./kn.js\": 40297,\n\t\"./ko\": 59314,\n\t\"./ko.js\": 59314,\n\t\"./ku\": 85219,\n\t\"./ku-kmr\": 49153,\n\t\"./ku-kmr.js\": 49153,\n\t\"./ku.js\": 85219,\n\t\"./ky\": 67698,\n\t\"./ky.js\": 67698,\n\t\"./lb\": 74671,\n\t\"./lb.js\": 74671,\n\t\"./lo\": 14758,\n\t\"./lo.js\": 14758,\n\t\"./lt\": 33358,\n\t\"./lt.js\": 33358,\n\t\"./lv\": 68010,\n\t\"./lv.js\": 68010,\n\t\"./me\": 28772,\n\t\"./me.js\": 28772,\n\t\"./mi\": 78125,\n\t\"./mi.js\": 78125,\n\t\"./mk\": 46630,\n\t\"./mk.js\": 46630,\n\t\"./ml\": 88945,\n\t\"./ml.js\": 88945,\n\t\"./mn\": 1033,\n\t\"./mn.js\": 1033,\n\t\"./mr\": 42282,\n\t\"./mr.js\": 42282,\n\t\"./ms\": 3974,\n\t\"./ms-my\": 25969,\n\t\"./ms-my.js\": 25969,\n\t\"./ms.js\": 3974,\n\t\"./mt\": 75491,\n\t\"./mt.js\": 75491,\n\t\"./my\": 7995,\n\t\"./my.js\": 7995,\n\t\"./nb\": 22990,\n\t\"./nb.js\": 22990,\n\t\"./ne\": 22454,\n\t\"./ne.js\": 22454,\n\t\"./nl\": 41105,\n\t\"./nl-be\": 53794,\n\t\"./nl-be.js\": 53794,\n\t\"./nl.js\": 41105,\n\t\"./nn\": 66364,\n\t\"./nn.js\": 66364,\n\t\"./oc-lnc\": 44526,\n\t\"./oc-lnc.js\": 44526,\n\t\"./pa-in\": 72547,\n\t\"./pa-in.js\": 72547,\n\t\"./pl\": 56152,\n\t\"./pl.js\": 56152,\n\t\"./pt\": 26073,\n\t\"./pt-br\": 65171,\n\t\"./pt-br.js\": 65171,\n\t\"./pt.js\": 26073,\n\t\"./ro\": 8162,\n\t\"./ro.js\": 8162,\n\t\"./ru\": 99186,\n\t\"./ru.js\": 99186,\n\t\"./sd\": 23571,\n\t\"./sd.js\": 23571,\n\t\"./se\": 27137,\n\t\"./se.js\": 27137,\n\t\"./si\": 96773,\n\t\"./si.js\": 96773,\n\t\"./sk\": 59827,\n\t\"./sk.js\": 59827,\n\t\"./sl\": 42070,\n\t\"./sl.js\": 42070,\n\t\"./sq\": 16240,\n\t\"./sq.js\": 16240,\n\t\"./sr\": 3551,\n\t\"./sr-cyrl\": 20878,\n\t\"./sr-cyrl.js\": 20878,\n\t\"./sr.js\": 3551,\n\t\"./ss\": 40520,\n\t\"./ss.js\": 40520,\n\t\"./sv\": 56902,\n\t\"./sv.js\": 56902,\n\t\"./sw\": 42545,\n\t\"./sw.js\": 42545,\n\t\"./ta\": 76245,\n\t\"./ta.js\": 76245,\n\t\"./te\": 28169,\n\t\"./te.js\": 28169,\n\t\"./tet\": 69274,\n\t\"./tet.js\": 69274,\n\t\"./tg\": 44467,\n\t\"./tg.js\": 44467,\n\t\"./th\": 6276,\n\t\"./th.js\": 6276,\n\t\"./tk\": 8439,\n\t\"./tk.js\": 8439,\n\t\"./tl-ph\": 42727,\n\t\"./tl-ph.js\": 42727,\n\t\"./tlh\": 32125,\n\t\"./tlh.js\": 32125,\n\t\"./tr\": 74220,\n\t\"./tr.js\": 74220,\n\t\"./tzl\": 16642,\n\t\"./tzl.js\": 16642,\n\t\"./tzm\": 21066,\n\t\"./tzm-latn\": 42976,\n\t\"./tzm-latn.js\": 42976,\n\t\"./tzm.js\": 21066,\n\t\"./ug-cn\": 69380,\n\t\"./ug-cn.js\": 69380,\n\t\"./uk\": 91346,\n\t\"./uk.js\": 91346,\n\t\"./ur\": 36990,\n\t\"./ur.js\": 36990,\n\t\"./uz\": 93976,\n\t\"./uz-latn\": 95523,\n\t\"./uz-latn.js\": 95523,\n\t\"./uz.js\": 93976,\n\t\"./vi\": 41393,\n\t\"./vi.js\": 41393,\n\t\"./x-pseudo\": 52722,\n\t\"./x-pseudo.js\": 52722,\n\t\"./yo\": 30514,\n\t\"./yo.js\": 30514,\n\t\"./zh-cn\": 52066,\n\t\"./zh-cn.js\": 52066,\n\t\"./zh-hk\": 77671,\n\t\"./zh-hk.js\": 77671,\n\t\"./zh-mo\": 18675,\n\t\"./zh-mo.js\": 18675,\n\t\"./zh-tw\": 19146,\n\t\"./zh-tw.js\": 19146\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 34549;"],"sourceRoot":""}