{"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/reporting/dashboard/actions.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/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/actions.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/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/retail/actions.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/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/actions.js","webpack://@smart-flows/insight/./src/reporting/advertising/pois/index.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/utils/cookie.js","webpack://@smart-flows/insight/./src/commons/sites/sagas.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","type","fetchFeaturesFailure","fetchSitesSuccess","data","history","fetchSitesFailure","setCurrentSite","siteId","fetchScalesSuccess","scales","fetchScalesFailure","getAllSites","state","_","sites","getCurrentSite","_findInstanceProperty","call","s","uuid","navigation","getCurrentSiteId","getCurrentSiteId2","getCurrentRtId","rtId","getCurrentPoiId","getCurrentFloorId","getCurrentFloorId2","getCurrentAreaId","areaId","getCurrentAreaId2","getCurrentApp","app","getCurrentApp2","getCurrentSection","section","getCurrentSection2","getCurrentDayFrom","moment","subtract","format","getCurrentDayTo","getComparedDayFrom","getComparedDayTo","getCurrentComparisonMode","name","getComparedArea","getCurrentPopulation","getCurrentDestination","getCurrentSubsection","DATA_COMPLETED_MONTH_THRESHOLD","isGranularityAvailable","granularity","from","to","dateFrom","dateTo","diffDays","diff","diffMonths","getSmallestAvailableGranularity","granularities","_indexOfInstanceProperty","length","getSmallestAvailableGranularityFromFilters","comparedFrom","comparedTo","diffBaseDate","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","index","compared_time","compared_value","zone2","compared_isCompleted","isCompleted","getTimeKey","_everyInstanceProperty","getTooltipFormat","selectedPayload","timezone","tz","isDailyDistribComplete","dayFrom","dayTo","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","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","kind","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","values","units","selectPresenceSumLoading","selectDwelltimeMean","thru","dwelltimeInSeconds","as","selectDwelltimeMeanLoading","selectStatsLoading","selectDailyStatsLoading","selectMapAreas","floorId","floorsState","_context9","_context10","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","localeReady","changePopulation","changeSubsection","subsection","setCurrentPoi","poiId","fetchConfig","fetchConfigSuccess","fetchConfigFailure","fetchConfig2","fetchConfigSuccess2","fetchConfigFailure2","getConfig","isConfigFetched","fetchRealtimeStats","homeCardLoaded","fetchHomePresenceStats","fetchYesterdayHomeStats","yesterdayHomeStatsLoading","fetchYesterdayHomeStatsSuccess","fetchYesterdayHomeStatsFailure","homeMeanStatsLoading","fetchHomeMeanStatsSuccess","fetchHomeMeanStatsFailure","listMostVisitedSitesLoading","fetchHomeMostVisitedSitesSuccess","fetchHomeMostVisitedSitesFailure","fetchFocusSites","fetchFocusSitesLoading","fetchFocusSitesSuccess","fetchFocusSitesFailure","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","computeAreasThreshold","computeAreaThresholdSuccess","smoothingAlgorithm","historical","prediction","nSamples","smoothStart","predStart","x","arrayToSmooth","smoothed","filter","Float64Array","denominator1","Math","sqrt","PI","denominator2","pow","exp","normalizer","_reduceInstanceProperty","acc","val","normfilter","sum","c","computeAreaSocialDistancing","liveArea","trafficType","rt_model","getterSiteConfigsForSocialDistancing","match","getSocialDistancingParameters","isSocialDistancingParametersLoading","getterSiteLiveAreas","liveAreas","findLiveAreaRtId","areaUuid","findEntireSiteAreaId","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","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","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","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","_context11","_context12","_context13","_context14","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","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","isWrongDataWifi","displayErrorMessage","wrongWifiDataLabel","alignItems","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","dashboardSectionLoaded","fetchDashboardStats","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","__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","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","reportsCreationSectionLoaded","fetchReportsCreationStats","fetchAggregatedStatsFromComputeEngine","endpoint","configId","fetchStatsFromComputeEngine","fetchPresenceMeanFromComputeEngine","downloadReportStart","downloadReportSuccess","CurrentDateSelector","ComparisonSelector","onOpenArea","isOpenArea","onCloseArea","currentComparisonMode","optionsComparisonMode","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","flightsReportSectionLoaded","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","sortedColors_1","sortedColors_1_1","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","retailSectionLoaded","fetchPoisPresenceStats","fetchPoisPresenceStatsByArea","fetchPoisPresenceStatsByStopping","fetchPresenceStats","fetchReferencePresenceStats","fetchDwelltimeStats","fetchTrafficStatsByPopulation","fetchDwelltimeStatsByPopulation","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","advertisingSectionLoaded","fetchAdvertisingStatsByArea","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","i18n","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","language","searchSite","App","showMobileMessage","initAppLocation","onSitesInit","userLoggedIn","auth0","getAccessTokenSilently","getIdTokenClaims","user","then","accessToken","idToken","setItem","isMobile","sitesFetched","featuresFetched","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","setCookie","cookie","getCookie","split","waitFeaturesThenFetchSites","take","tryFetchSites","sfiV2All","siteIdToSet","siteIdFromCookie","availableSites","isCurrentSiteIdInAvailableSites","isSiteInCookieInAvailableSites","firstAvailableSiteId","getSiteToSet","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","tryFetchRealtimeV4","formated","fetchHistoricalData","updateRtIdOnSelectArea","liveAreaSagas","tryFetchAreaPois","currentPoiId","firstPoiId","setFloorAndAreaFromPOIsaga","poisSaga","pushToGTM","dataLayer","sendUserMailToGTM","event","usermail","setSiteToGTM","sendCurrentSiteToGTM","gtmSaga","newRtDataAvailable","rtDataRefreshFailed","initWebsocket","ws","WebSocket","WISPATCH_ENDPOINT","onopen","send","createSocketChannel","socket","eventChannel","emit","onmessage","startStopChannel","socketChannel","STATUS","getStatusForAPs","nbApsUps","tryFetchAccessPoints","accessPointsSaga","tryFetchFeatures","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","fromDate","toDate","tryFetchPresenceStats","useReferenceData","tryFetchMonthlyStats","encodeURIComponent","tryFetchReferencePresenceStatsSaga","tryFetchDwelltimeStats","customGranularity","tryFetchAggregatedPresenceStats","tryFetchAggregatedDwelltimeStats","monthlyData","tryFetchTrafficStatsByPopulation","tryFetchDwelltimeStatsByPopulation","computeSagas","fetchProcesses","fetchProcessesSuccess","fetchProcessesFailure","initReportsCreationSectionSaga","tryFetchReportsCreationStatsFromCompute","fetchAggregatedStatsFromComputeEngineSaga","fetchStatsFromComputeEngineSaga","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=574df9fcf695abab2b9d","sourcesContent":["export var fetchFeatures = function (siteId) { return ({\n type: 'FETCH_FEATURES',\n siteId: siteId,\n}); };\nexport var fetchFeaturesSuccess = function (features) { return ({\n type: 'FETCH_FEATURES_SUCCESS',\n features: features,\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 isFeatureActivated = function (feature) {\n return createSelector(getterFeatures, function (features) { return _.includes(features, feature); });\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 !_.isEmpty(_.get(config, 'data', {})); });\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;\n return (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};\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 } 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, isWrongDataWifi = _a.isWrongDataWifi, displaySdaInLive = _a.displaySdaInLive, t = _a.t, siteId = _a.siteId, displayErrorMessage = _a.displayErrorMessage;\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 displayErrorMessage && (React.createElement(StatusMessage, { message: \"Depuis le 07 novembre 2022, un incident touche l'infrastructure Wi-Fi et empêche la production de statistiques de qualité.\" })),\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 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};\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 isWrongDataWifi: isFeatureActivated('wrong_wifi_data')(state),\n displaySdaInLive: isFeatureActivated('sda_in_live')(state),\n displayErrorMessage: isFeatureActivated('live_error_message')(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 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","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","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 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","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","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 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","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","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","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, 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","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: [] });\n }\n case 'FETCH_FEATURES_SUCCESS': {\n return __assign(__assign({}, state), { loading: false, data: action.features });\n }\n case 'FETCH_FEATURES_FAILURE': {\n return __assign(__assign({}, state), { loading: false, data: [] });\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 _ 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, 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 { __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 } from \"tslib\";\nimport { takeEvery, put } from 'redux-saga/effects';\nimport { getFromMDM } from '@src/commons/utils/request';\nimport { fetchFeaturesSuccess, fetchFeaturesFailure } from './actions';\nexport function tryFetchFeatures(_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, 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 return [4, put(fetchFeaturesSuccess(data))];\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 'react-app-polyfill/ie11';\nimport 'react-app-polyfill/stable';\nimport cssVars from 'css-vars-ponyfill';\nimport { Route, BrowserRouter as Router } from 'react-router-dom';\nimport { Provider } from 'react-redux';\nimport { render } from 'react-dom';\nimport { withAuthenticationRequired } from '@auth0/auth0-react';\nimport * as Sentry from '@sentry/react';\nimport { Integrations } from '@sentry/tracing';\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 './reset.scss';\nimport '@src/i18n';\nimport 'react-dates/initialize';\nimport 'react-dates/lib/css/_datepicker.css';\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(Route, { exact: true, path: ['/', '/:anything'], component: withAuthenticationRequired(MayRedirect) }),\n React.createElement(Route, { path: \"/v2/:app/:siteId?/:section?/:subsection?\", component: withAuthenticationRequired(App) })))), 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\": 81844,\n\t\"./oc-lnc.js\": 81844,\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":""}