{"version":3,"sources":["../../../components/src/modules/charts/Chart/Chart.tsx","../../../components/src/modules/generic/FullscreenButton/FullscreenButton.tsx","../../../components/src/modules/generic/WithSuperScript/WithSuperScript.tsx","../../../components/src/modules/generic/Flag/Flag.tsx","../../../components/src/modules/generic/NoteWithSuperScript/NoteWithSuperScript.tsx","../../../components/src/modules/generic/MediaQueryDynamicImport/MediaQueryDynamicImport.tsx","../../../components/src/modules/generic/Welcome/Welcome.tsx","../../../components/src/modules/generic/Switch/Switch.tsx","../../../components/src/modules/generic/DraggableTabs/DraggableTabs.tsx","../../../components/src/modules/generic/CheckboxMenu/CheckboxMenu.tsx","../../../components/src/modules/carousel/providers/CarouselContext.tsx","../../../components/src/modules/carousel/components/CarouselPagination/CarouselPagination.tsx","../../../components/src/modules/carousel/components/CarouselHeader/CarouselHeader.tsx","../../../components/src/modules/farm-overview/OverviewHeader/OverviewHeader.tsx","../../../components/src/modules/farm-overview/OverviewPanel/OverviewPanel.tsx","../../../components/src/modules/layout/WidgetWrapper/WidgetWrapper.tsx","../../../components/src/modules/layout/AsyncLayout/AsyncLayout.tsx","../../../components/src/modules/layout/ContentWrapper/ContentWrapper.tsx","../../../components/src/modules/layout/Empty/Empty.tsx","../../../components/src/modules/layout/ApplicationWrapper/ApplicationWrapper.tsx","../../../components/src/modules/farm-overview/EmptyPanel/EmptyPanel.tsx","../../../components/src/modules/farm-overview/MobileViewRow/MobileViewRow.tsx","../../../components/src/modules/farm-overview/InsightItem/InsightItem.tsx","../../../components/src/modules/simplified-overview/PanelHeader/PanelHeader.tsx","../../../components/src/modules/simplified-overview/Empty/Empty.tsx","../../../components/src/modules/charts/ChartHeader/ChartHeader.tsx","../../../components/src/modules/charts/SimpleDropdown/SimpleDropdown.tsx","../../../components/src/modules/charts/MultiDropdown/MultiDropdown.tsx","../../../components/src/modules/charts/ChartViewIcon/svg/area.svg","../../../components/src/modules/charts/ChartViewIcon/svg/area-stacked.svg","../../../components/src/modules/charts/ChartViewIcon/svg/area-stacked-100.svg","../../../components/src/modules/charts/ChartViewIcon/svg/bar.svg","../../../components/src/modules/charts/ChartViewIcon/svg/bar-horizontal.svg","../../../components/src/modules/charts/ChartViewIcon/svg/bar-stacked.svg","../../../components/src/modules/charts/ChartViewIcon/svg/bar-stacked-100.svg","../../../components/src/modules/charts/ChartViewIcon/svg/column-stacked.svg","../../../components/src/modules/charts/ChartViewIcon/svg/column-stacked-100.svg","../../../components/src/modules/charts/ChartViewIcon/svg/donut.svg","../../../components/src/modules/charts/ChartViewIcon/svg/geospatial-scatter.svg","../../../components/src/modules/charts/ChartViewIcon/svg/heatmap.svg","../../../components/src/modules/charts/ChartViewIcon/svg/line.svg","../../../components/src/modules/charts/ChartViewIcon/svg/number.svg","../../../components/src/modules/charts/ChartViewIcon/svg/scatter.svg","../../../components/src/modules/charts/ChartViewIcon/svg/table.svg","../../../components/src/modules/charts/ChartViewIcon/svg/word-cloud.svg","../../../components/src/modules/charts/ChartViewIcon/ChartViewIcon.tsx","../../../components/src/modules/charts/EventList/EventList.tsx","../../../components/src/modules/charts/EventEntry/EventEntry.tsx","../../../components/src/modules/navigation/FarmOption/FarmOption.tsx","../../../components/src/modules/navigation/FarmSelect/FarmSelect.tsx","../../../components/src/modules/analytics/compare-charts/Empty/assets/empty-left.svg","../../../components/src/modules/navigation/NaviCard/NaviCard.tsx","../../../components/src/modules/analytics/chart-layout/SectionHeader/SectionHeader.tsx","../../../components/src/modules/analytics/chart-layout/SectionPanel/SectionPanel.tsx","../../../components/src/modules/analytics/compare-charts/Empty/assets/empty-right.svg","../../../components/src/modules/analytics/compare-charts/CorrelationMetric/CorrelationMetric.tsx","../../../components/src/modules/analytics/compare-charts/Empty/Empty.tsx","../../../components/src/modules/analytics/compare-charts/Trend/Trend.tsx","../../../components/src/modules/analytics/compare-charts/NoCorrelations/NoCorrelations.tsx","../../../components/src/modules/analytics/v3/Dropdown/Dropdown.tsx","../../../components/src/modules/analytics/v3/MultiDropdown/MultiDropdown.tsx","../../../components/src/modules/analytics/v3/CategoryIcon/assets/behavior.svg","../../../components/src/modules/analytics/v3/CategoryIcon/assets/feed.svg","../../../components/src/modules/analytics/v3/CategoryIcon/assets/health.svg","../../../components/src/modules/analytics/v3/CategoryIcon/assets/production.svg","../../../components/src/modules/analytics/v3/CategoryIcon/assets/reproduction.svg","../../../components/src/modules/analytics/v3/CategoryIcon/assets/herdComposition.svg","../../../components/src/modules/analytics/v3/CategoryIcon/assets/weather.svg","../../../components/src/modules/analytics/v3/CategoryIcon/assets/finance.svg","../../../components/src/modules/analytics/v3/Empty/assets/no-charts.svg","../../../components/src/modules/analytics/v3/CategoryIcon/CategoryIcon.tsx","../../../components/src/modules/analytics/v3/ChartCard/ChartCard.tsx","../../../components/src/modules/analytics/v3/MiniChartCard/MiniChartCard.tsx","../../../components/src/modules/analytics/v3/Empty/assets/no-dashboards.svg","../../../components/src/modules/insights/list/Empty/assets/empty1.svg","../../../components/src/modules/analytics/v3/Empty/Empty.tsx","../../../components/src/modules/insights/shared/TimePeriod/TimePeriod.tsx","../../../components/src/modules/insights/shared/FarmProgress/FarmProgress.tsx","../../../components/src/modules/insights/list/ListHeader/ListHeader.tsx","../../../components/src/modules/insights/list/ListItem/ListItem.tsx","../../../components/src/modules/insights/list/Resolution/Resolution.tsx","../../../components/src/modules/insights/list/Empty/assets/empty2.svg","../../../components/src/modules/insights/list/Empty/Empty.tsx","../../../components/src/modules/insights/dialog/DialogHeader/DialogHeader.tsx","../../../components/src/modules/insights/dialog/StatusDropdown/StatusDropdown.tsx","../../../components/src/modules/insights/dialog/NavigationWrapper/NavigationWrapper.tsx","../../../components/src/modules/auth/AuthPage/AuthPage.tsx","../../../components/src/modules/auth/AuthWidgetWrapper/AuthWidgetWrapper.tsx","../../../components/src/modules/auth/LoginForm/LoginForm.tsx","../../../components/src/modules/auth/ForgotPasswordForm/ForgotPasswordForm.tsx","../../../components/src/modules/auth/AcceptInviteForm/AcceptInviteForm.tsx","../../../components/src/modules/auth/SignupForm/SignupForm.tsx","../../../components/src/modules/impact-tracking/KPIChange/KPIChange.tsx","../../../components/src/modules/auth/SSOList/SSOList.tsx","../../../components/src/modules/events/eventCategoryMap.ts","../../../components/src/modules/impact-tracking/Arrow/Arrow.tsx","../../../components/src/modules/impact-tracking/Bar/Bar.tsx","../../../components/src/modules/impact-tracking/ValueChange/ValueChange.tsx","../../../components/src/modules/impact-tracking/WidgetWrapper/WidgetWrapper.tsx","../../../components/src/modules/impact-tracking/EventOriginIcon/EventOriginIcon.tsx","../../../components/src/modules/impact-tracking/TimelineItem/TimelineItem.tsx","../../../components/src/modules/impact-tracking/Header/Header.tsx","../../../components/src/modules/impact-tracking/DateRangePicker/DateRangePicker.tsx","../../../components/src/context/SpinnerContext/SpinnerContext.tsx","../../../components/src/utils/versioning.ts","../../../components/src/context/CalendlyAppointmentContext/CalendlyAppointmentContext.tsx","modules/insights/insight/hooks/useInsightModalNavigation.ts","modules/base/analytics/index.ts","../../../components/src/elements/typography/Text/Text.module.less","../../../components/src/elements/Digits/Digits.module.less","../../../components/src/modules/generic/Flag/Flag.module.less","../../../components/src/modules/generic/Switch/Switch.module.less","../../../components/src/modules/generic/CheckboxMenu/CheckboxMenu.module.less","../../../components/src/modules/farm-overview/OverviewPanel/OverviewPanel.module.less","../../../components/src/modules/charts/ChartHeader/ChartHeader.module.less","../../../components/src/modules/charts/MultiDropdown/MultiDropdown.module.less","modules/events/providers/EventListContext/EventListContext.tsx","modules/events/providers/CreateEventDialogContext/CreateEventDialogContext.tsx","modules/events/providers/EventContext/EventContext.tsx","modules/events/providers/CreateEventContext/categories.ts","modules/events/providers/CreateEventContext/CreateEventContext.tsx","modules/events/processing/Base.ts","modules/events/providers/ImpactTrackingContext/ImpactTrackingContext.tsx","modules/events/components/CreateEvent/CreateEvent.tsx","modules/events/components/AddEventButton/AddEventButton.tsx","modules/events/components/EventList/EventList.tsx","modules/events/components/EventEntry/EventEntry.tsx","modules/events/components/EventEmpty/EventEmpty.tsx","modules/events/utils.ts","modules/events/components/EventIcon/EventIcon.tsx","modules/events/components/FarmTimelineItem/FarmTimelineItem.tsx","modules/events/components/FarmTimeline/FarmTimeline.tsx","modules/events/components/EventPage/EventPage.tsx","modules/events/components/FarmTimelinePage/FarmTimelinePage.tsx","modules/events/processing/GenericInsightEvent.ts","modules/events/processing/CustomEvent.ts","modules/events/event-page/components/OverlapEvent/OverlapEvent.tsx","modules/events/event-page/components/ImpactTrackedEventPage/ImpactTrackedEventPage.tsx","modules/events/processing/AIModelEvent.ts","modules/events/processing/Event.ts","modules/events/analytics/index.ts","modules/events/event-extras/components/GenericEventCta/GenericEventCta.tsx","modules/events/event-extras/components/CustomEventCta/CustomEventCta.tsx","modules/events/event-extras/components/CustomEventExpandIcon/CustomEventExpandIcon.tsx","modules/events/event-view/components/GenericEventView/GenericEventView.tsx","modules/events/event-view/components/CustomEventView/CustomEventView.tsx","modules/events/event-view/components/GenericInsightEventView/GenericInsightEventView.tsx","modules/events/testing.ts","modules/events/index.ts","../../../components/src/modules/charts/EventList/EventList.module.less","../../../components/src/modules/analytics/chart-layout/SectionPanel/SectionPanel.module.less","../../../components/src/modules/analytics/compare-charts/CorrelationMetric/CorrelationMetric.module.less","../../../components/src/modules/analytics/compare-charts/NoCorrelations/NoCorrelations.module.less","../../../components/src/modules/analytics/v3/CategoryIcon/CategoryIcon.module.less","../../../components/src/modules/insights/shared/FarmProgress/FarmProgress.module.less","../../../components/src/modules/insights/list/ListHeader/ListHeader.module.less","../../../components/src/modules/impact-tracking/EventOriginIcon/EventOriginIcon.module.less","modules/farms/components/FarmDetails/FarmDetails.module.less","modules/farms/components/FarmTag/FarmTag.module.less","modules/insights/insight-page/components/InsightListPage/InsightListPage.module.less","modules/chart/components/Toolbar/Toolbar.module.less","modules/analytics/components/chart-layout/v3/AnalyticsPage/AnalyticsPage.module.less","modules/analytics/components/sharing/ShareChartDialog/ShareChartDialog.module.less","modules/chart/components/ChartFooter/ChartFooter.module.less","modules/chart/components/ChartViewFilter/ChartViewFilter.module.less","modules/insights/insight-body/components/KPIInsightBody/KPIInsightBody.module.less","modules/insights/insight-validation/components/OnboardingInsightValidation/OnboardingInsightValidation.module.less","modules/insights/insight-extensions/components/OnboardingFooter/OnboardingFooter.module.less","modules/insights/insight-extensions/components/StockingDensityFooter/StockingDensityFooter.module.less","modules/insights/insight-body/components/VulcanV2InsightBody/VulcanV2InsightBody.module.less","modules/farm-summaries/components/FarmSummaryPage/FarmSummaryPage.module.less","modules/insights/insight-list/components/InsightEntry/InsightEntry.module.less","modules/insights/insight-body/components/InsightBody/InsightBody.module.less","modules/insights/insight-resolution/components/ResolutionWidget/ResolutionWidget.module.less","modules/events/event-view/components/GenericEventView/GenericEventView.module.less","modules/network/components/ReferralPage/ReferralPage.module.less","modules/network/components/RequestAccessPage/RequestAccessPage.module.less","modules/network/components/NetworkPage/NetworkPage.module.less","modules/base/components/AcceptInviteModal/AcceptInviteModal.module.less","modules/base/components/MobileViewModal/MobileViewModal.module.less","modules/base/components/CookieConsent/CookieConsent.module.less","../../../i18n/src/utils/grammar.ts","../../../i18n/src/utils/create-module.ts","../../../i18n/src/utils/from.ts","../../../i18n/src/utils/makeAsset.ts","../../../i18n/src/utils/template.ts","../../../i18n/src/enterprise/modules/auth.ts","../../../i18n/src/enterprise/modules/kpi.ts","../../../i18n/src/enterprise/modules/helloworld.ts","../../../i18n/src/enterprise/modules/base.ts","../../../i18n/src/enterprise/modules/layouts.ts","../../../i18n/src/enterprise/modules/chart.ts","../../../i18n/src/enterprise/modules/game-plans.ts","../../../i18n/src/enterprise/modules/analytics.ts","../../../i18n/src/enterprise/modules/settings.ts","../../../i18n/src/enterprise/modules/insights.ts","../../../i18n/src/enterprise/modules/cows.ts","../../../i18n/src/enterprise/modules/ask-ida.ts","../../../i18n/src/enterprise/modules/events.ts","../../../i18n/src/enterprise/modules/grammar.ts","../../../i18n/src/enterprise/modules/overview.ts","../../../i18n/src/enterprise/modules/unit-system.ts","../../../i18n/src/enterprise/modules/impact-tracking.ts","../../../i18n/src/enterprise/modules/farm-summaries.ts","../../../i18n/src/enterprise/modules/iofc.ts","../../../i18n/src/enterprise/modules/network.ts","../../../i18n/src/enterprise/index.ts","../../../i18n/src/subscriptions/modules/base.ts","../../../i18n/src/subscriptions/modules/signup.ts","../../../i18n/src/subscriptions/modules/getting-started.ts","../../../i18n/src/subscriptions/index.ts","../../../i18n/src/utils/versioning.ts","../../../i18n/src/locales/index.ts","../../../i18n/src/TranslationContext/TranslationContext.tsx","../../../i18n/src/config/index.ts","../../../charts/src/providers/ChartContext/ChartContext.tsx","../../../charts/src/utils/numbers.ts","../../../charts/src/utils/filtering.ts","../../../charts/src/providers/RangeFilterContext/RangeFilterContext.tsx","../../../charts/src/providers/SeriesColorContext/SeriesColorContext.tsx","../../../charts/src/providers/AnnotationsContext/AnnotationsContext.tsx","../../../charts/src/typings.ts","../../../charts/src/providers/ChartLegendValuesContext/ChartLegendValuesContext.tsx","../../../charts/src/hocs/testing.ts","../../../charts/src/hocs/withChartWrapper/withChartWrapper.tsx","../../../charts/src/hocs/withLegend/withLegend.tsx","../../../charts/src/hocs/withSeriesColor/withSeriesColor.tsx","../../../charts/src/hooks/useCommonConfig.tsx","../../../charts/src/hooks/useMinMax.ts","../../../charts/src/components/charts/Line/utils.ts","../../../charts/src/components/charts/Line/geometries.ts","../../../charts/src/components/charts/Line/interactions.ts","../../../charts/src/components/charts/Line/useLineConfig.tsx","../../../charts/src/components/charts/Line/Line.tsx","../../../charts/src/hocs/withAnnotations/withAnnotations.tsx","../../../charts/src/components/charts/Bar/useBarConfig.tsx","../../../charts/src/components/charts/Bar/Bar.tsx","../../../charts/src/components/charts/Table/Table.tsx","../../../charts/src/components/charts/Heatmap/useHeatmapConfig.tsx","../../../charts/src/hooks/useColorGradient.ts","../../../charts/src/components/charts/Heatmap/Heatmap.tsx","../../../charts/src/hocs/withRangeFilter/withRangeFilter.tsx","../../../charts/src/components/charts/Column/useColumnConfig.tsx","../../../charts/src/components/charts/Column/Column.tsx","../../../charts/src/components/charts/Area/Area.tsx","../../../charts/src/components/charts/Area/useAreaConfig.tsx","../../../components/src/modules/insights/list/ListItem/ListItem.module.less","modules/chart/components/Chart/Chart.module.less","modules/insights/insight-page/components/InsightListPage/InsightListPage.tsx","modules/insights/insight/providers/InsightContext/InsightContext.tsx","modules/insights/insight/components/Insight/Insight.tsx","modules/insights/insight/components/InsightDetails/InsightDetails.tsx","modules/insights/insight/components/MarkAsSeen/MarkAsSeen.tsx","modules/insights/insight-body/components/InsightBody/InsightBody.tsx","modules/insights/insight-body/components/KPIInsightBody/KPIInsightBody.tsx","modules/insights/insight-validation/providers/InsightValidationContext/InsightValidationContext.tsx","modules/insights/insight-validation/components/InsightValidation/InsightValidation.tsx","modules/insights/insight-validation/components/RegularInsightValidation/RegularInsightValidation.tsx","modules/insights/insight-validation/components/LelyNoMilkDropInsightValidation/LelyNoMilkDropInsightValidation.tsx","modules/insights/insight-validation/components/ValidationQuestion/ValidationQuestion.tsx","modules/insights/insight-validation/components/ValidationButtons/ValidationButtons.tsx","modules/insights/insight-validation/components/AjinomotoTwoStepValidation/AjinomotoTwoStepValidation.tsx","modules/insights/insight-validation/components/AjinomotoBloodTestInsightValidation/AjinomotoBloodTestInsightValidation.tsx","modules/insights/insight-validation/components/AjinomotoFeedingScheduleInsightValidation/AjinomotoFeedingScheduleInsightValidation.tsx","modules/insights/insight-validation/components/AjinomotoNutritionRecommendationInsightValidation/AjinomotoNutritionRecommendationInsightValidation.tsx","modules/insights/insight-validation/components/AjinomotoHighRiskCowsInsightValidation/AjinomotoHighRiskCowsInsightValidation.tsx","modules/insights/insight-validation/components/AjinomotoHighRiskCowInsightValidation/AjinomotoHighRiskCowInsightValidation.tsx","modules/insights/insight-validation/components/OnboardingInsightValidation/OnboardingInsightValidation.tsx","modules/insights/insight-extensions/components/OnboardingFooter/OnboardingFooter.tsx","modules/insights/insight-extensions/components/StockingDensityFooter/StockingDensityFooter.tsx","modules/insights/insight-body/components/OnboardingInsightBody/OnboardingInsightBody.tsx","modules/insights/insight-body/components/VulcanV2InsightBody/VulcanV2InsightBody.tsx","modules/insights/insight-body/components/StockingDensityInsightBody/StockingDensityInsightBody.tsx","modules/insights/insight-header/components/InsightHeader/InsightHeader.tsx","modules/insights/insight-header/components/InsightStateSwitcher/InsightStateSwitcher.tsx","modules/insights/insight-list/providers/InsightListContext/InsightListContext.tsx","modules/insights/insight-list/components/EmptyList/EmptyList.tsx","modules/insights/insight-list/components/InsightList/InsightList.tsx","modules/insights/insight-list/components/InsightEntry/InsightEntry.tsx","modules/insights/insight-list/components/TabNavigation/TabNavigation.tsx","modules/insights/insight-list/hooks/useLatestInsights.tsx","modules/insights/insight-list/hooks/useOnboardingInsights.ts","modules/insights/insight-resolution/providers/InsightResolutionContext/InsightResolutionContext.tsx","modules/insights/insight-resolution/components/ResolutionWidget/ResolutionWidget.tsx","modules/insights/insight-resolution/components/ResolutionTagList/ResolutionTagList.tsx","modules/insights/processing/Base.ts","modules/insights/processing/KPIInsight.ts","modules/insights/processing/OnboardingInsight.ts","modules/insights/processing/VulcanV2Insight.ts","modules/insights/processing/StockingDensityInsight.ts","modules/insights/processing/GenericInsight.ts","modules/insights/providers/InsightTypeContext/InsightTypeContext.tsx","modules/insights/analytics/index.ts","modules/insights/testing.ts","modules/insights/utils.ts","modules/analytics/analytics/index.ts","modules/analytics/components/chart-layout/v3/MetricPicker/MetricPicker.tsx","modules/analytics/components/chart-layout/v3/ListItem/ListItem.tsx","modules/analytics/components/chart-layout/v3/MiniChart/MiniChart.tsx","modules/analytics/components/chart-layout/v3/MetricSelectorPage/MetricSelectorPage.tsx","modules/analytics/components/chart-layout/v3/CorrelationList/utils/closestSupportedInterval.ts","modules/analytics/components/chart-layout/v3/CorrelationList/utils/correlation.tsx","modules/analytics/components/chart-layout/v3/CorrelationList/CorrelationList.tsx","modules/analytics/components/chart-layout/v3/ChartList/ChartList.tsx","modules/analytics/components/chart-layout/v3/CopyDashboardModal/CopyDashboardModal.tsx","modules/analytics/components/chart-layout/v3/DashboardPage/hooks/useTabs.tsx","modules/analytics/components/chart-layout/v3/DashboardPage/DashboardPage.tsx","modules/analytics/components/chart-layout/v3/BrowsePage/BrowsePage.tsx","modules/analytics/components/chart-layout/v3/Filter/Filter.tsx","modules/analytics/components/chart-layout/v3/ChartSelector/ChartSelector.tsx","modules/analytics/components/chart-layout/v3/AddChartPage/AddChartPage.tsx","modules/analytics/components/chart-layout/v3/AnalyticsPage/AnalyticsPage.tsx","modules/analytics/components/compare-charts/ChartPicker/ChartPicker.tsx","modules/analytics/components/index.ts","modules/analytics/components/compare-charts/FarmDropdown/FarmDropdown.tsx","modules/analytics/components/sharing/ShareChartDialog/ShareChartDialog.tsx","modules/analytics/providers/SavedChartsContext/SavedChartsContext.tsx","modules/analytics/providers/ScreenshotContext/ScreenshotContext.tsx","modules/analytics/testing.ts","modules/analytics/utils.ts","modules/analytics/index.ts","utils/sentry.ts","serviceWorker.ts","testing/webdriver.ts","index.tsx","../../../../external \"faker\"","modules/analytics/components/chart-layout/v3/DashboardPage/DashboardPage.module.less","modules/events/event-page/components/OverlapEvent/OverlapEvent.module.less","../../../components/src/modules/layout/ContentWrapper/ContentWrapper.module.less","modules/analytics/components/chart-layout/v3/CorrelationList/CorrelationList.module.less","../../../components/src/modules/layout/ApplicationWrapper/ApplicationWrapper.module.less","../../../components/src/modules/farm-overview/InsightItem/InsightItem.module.less","../../../components/src/modules/analytics/v3/ChartCard/ChartCard.module.less","../../../components/src/modules/auth/AuthWidgetWrapper/AuthWidgetWrapper.module.less","../../../components/src/modules/impact-tracking/DateRangePicker/DateRangePicker.module.less","modules/analytics/components/chart-layout/v3/CopyDashboardModal/CopyDashboardModal.module.less","modules/base/providers/DataDictionaryProvider/DataDictionaryProvider.tsx","modules/base/providers/UserPreferencesContext/UserPreferencesContext.tsx","modules/base/providers/LocalizationContext/LocalizationContext.tsx","modules/base/providers/DataDictionaryContext/DataDictionaryContext.tsx","modules/base/providers/AlertContext/AlertContext.tsx","modules/base/providers/InvitationContext/InvitationContext.tsx","modules/base/providers/DataIntegrationContext/DataIntegrationContext.tsx","modules/base/providers/UserListContext/UserListContext.tsx","modules/base/providers/AccountContext/AccountContext.tsx","modules/routes.ts","modules/insights/routes.ts","modules/iofc/routes.ts","modules/network/routes.ts","../../../components/assets/svg/user.svg","../../../components/src/elements/typography/Text/Text.tsx","../../../components/src/elements/Icon/withIconDefaultStyles.tsx","../../../components/assets/svg/logout.svg","../../../components/assets/svg/analytics.svg","../../../components/assets/svg/game-plans.svg","../../../components/assets/svg/settings.svg","../../../components/assets/svg/notifications.svg","../../../components/assets/svg/password.svg","../../../components/assets/svg/overview.svg","../../../components/assets/svg/due-date.svg","../../../components/assets/svg/product-updates.svg","../../../components/assets/svg/email.svg","../../../components/assets/svg/phone.svg","../../../components/assets/svg/kpi-tracking.svg","../../../components/assets/svg/tasks.svg","../../../components/assets/svg/gp-summary.svg","../../../components/assets/svg/empty-insight.svg","../../../components/assets/svg/empty-task.svg","../../../components/assets/svg/empty-gameplan.svg","../../../components/assets/svg/empty-eventlist.svg","../../../components/assets/branding/logo.svg","../../../components/assets/svg/barn.svg","../../../components/assets/svg/barns.svg","../../../components/assets/svg/comparison.svg","../../../components/assets/svg/analysis.svg","../../../components/assets/svg/kpi-unavailable.svg","../../../components/assets/svg/kpi-locked.svg","../../../components/assets/svg/undo.svg","../../../components/assets/insights/kpi-threshold-up.svg","../../../components/assets/insights/kpi-threshold-up-v2.svg","../../../components/assets/insights/kpi-threshold-down.svg","../../../components/assets/insights/kpi-threshold-down-v2.svg","../../../components/assets/insights/kpi-variance-up.svg","../../../components/assets/insights/kpi-variance-down.svg","../../../components/assets/insights/kpi-variance-up-circle.svg","../../../components/assets/insights/kpi-variance-down-circle.svg","../../../components/assets/svg/dot.svg","../../../components/assets/insights/lely-milk-drop-detail.svg","../../../components/assets/insights/lely-milk-drop-list.svg","../../../components/assets/insights/lely-no-milk-drop-detail.svg","../../../components/assets/insights/lely-no-milk-drop-list.svg","../../../components/assets/insights/lely-ketosis-detail.svg","../../../components/assets/insights/lely-ketosis-list.svg","../../../components/assets/insights/ajinomoto.svg","../../../components/assets/svg/cow.svg","webpack:///./packages/components/assets/svg/farm-equipment.svg?334e","webpack:///./packages/components/assets/svg/feed.svg?1e58","webpack:///./packages/components/assets/svg/housing.svg?1959","webpack:///./packages/components/assets/svg/management.svg?9737","webpack:///./packages/components/assets/svg/other.svg?5f4a","webpack:///./packages/components/assets/svg/weather.svg?d4cb","../../../components/assets/svg/avatar-list.svg","../../../components/assets/svg/increased-bars.svg","../../../components/assets/svg/decreased-bars.svg","../../../components/assets/svg/unchanged-bars.svg","../../../components/assets/svg/unchanged-bars-insufficient.svg","../../../components/assets/svg/browser.svg","../../../components/assets/svg/action-key.svg","../../../components/assets/svg/copilot.svg","../../../components/assets/svg/star-half-filled.svg","../../../components/assets/svg/feed-circle.svg","../../../components/assets/svg/housing-circle.svg","../../../components/assets/svg/management-circle.svg","../../../components/assets/svg/other-circle.svg","../../../components/assets/svg/weather-circle.svg","../../../components/assets/svg/farm-equipment-circle.svg","../../../components/assets/svg/radar.svg","../../../components/assets/svg/cow-group.svg","../../../components/assets/svg/inner-join.svg","../../../components/assets/svg/farm-equipment.svg","../../../components/assets/svg/feed.svg","../../../components/assets/svg/housing.svg","../../../components/assets/svg/management.svg","../../../components/assets/svg/other.svg","../../../components/assets/svg/weather.svg","../../../components/assets/svg/check-circle.svg","../../../components/assets/svg/bulb-circle.svg","../../../components/assets/branding/logo-text.svg","../../../components/src/elements/Icon/index.tsx","../../../components/src/elements/MockDate/MockDate.tsx","../../../components/src/elements/Button/Button.tsx","../../../components/assets/branding/logo-without-text.svg","../../../components/src/elements/Logo/Logo.tsx","../../../components/src/elements/index.tsx","../../../components/src/modules/simplified-overview/PanelHeader/PanelHeader.module.less","../../../components/src/modules/impact-tracking/WidgetWrapper/WidgetWrapper.module.less","modules/analytics/components/chart-layout/v3/BrowsePage/BrowsePage.module.less","modules/analytics/components/chart-layout/v3/AddChartPage/AddChartPage.module.less","modules/events/components/EventList/EventList.module.less","modules/events/components/FarmTimeline/FarmTimeline.module.less","../../../analytics/src/components/ComponentTracker/ComponentTracker.tsx","../../../analytics/src/hoc/makeTrackEvent/makeTrackEvent.ts","../../../analytics/src/context/GAContext/GAContext.tsx","../../../analytics/src/gtag/gtag.ts","modules/network/analytics/index.ts","modules/network/components/ReferralForm/ReferralForm.tsx","modules/network/components/ReferralPage/hooks/useValidationSchema.ts","modules/network/components/ReferralPage/ReferralPage.tsx","modules/network/components/FarmAccessTable/FarmAccessTable.tsx","modules/network/components/UserAccessTable/UserAccessTable.tsx","modules/network/components/UserReferralTable/UserReferralTable.tsx","modules/network/components/FarmReferralTable/FarmReferralTable.tsx","modules/network/components/ReferralListPage/ReferralListPage.tsx","modules/network/components/RequestAccessPage/RequestAccessPage.tsx","modules/network/components/NetworkPage/NetworkPage.tsx","../../../components/src/elements/typography/Title/Title.module.less","modules/base/components/UserPreferences/UserPreferences.tsx","modules/base/components/Debugger/Debugger.tsx","modules/base/components/ErrorBoundary/ErrorBoundary.tsx","modules/base/components/FeatureTag/useTagStore.ts","modules/base/components/MobileViewModal/MobileViewModal.tsx","modules/base/components/Portal/Portal.tsx","modules/base/components/SandboxFlipSwitch/SandboxFlipSwitch.tsx","modules/base/components/InviteFarmForm/InviteFarmForm.tsx","modules/base/components/NoFarmsWidget/NoFarmsWidget.tsx","modules/base/components/CookieConsent/CookieConsent.tsx","modules/base/testing.ts","../../../components/src/modules/impact-tracking/Bar/Bar.module.less","../../../components/src/modules/impact-tracking/Header/Header.module.less","../../../charts/src/hocs/withLegend/withLegend.module.less","modules/insights/insight-header/components/InsightHeader/InsightHeader.module.less","modules/farms/analytics/index.ts","modules/farms/providers/FarmContext/FarmContext.tsx","modules/farms/providers/FarmListContext/FarmListContext.tsx","modules/farms/components/testing.ts","modules/farms/components/FarmDetails/FarmDetails.tsx","modules/farms/components/FarmSelector/FarmSelector.tsx","modules/farms/components/FarmTag/FarmTag.tsx","modules/base/routes.ts","utils/versioning.ts","utils/url.ts","../../../components/src/modules/simplified-overview/Empty/Empty.module.less","../../../components/src/modules/charts/Chart/Chart.module.less","../../../components/src/modules/auth/AuthPage/AuthPage.module.less","../../../components/src/modules/impact-tracking/KPIChange/KPIChange.module.less","modules/analytics/components/chart-layout/v3/MetricSelectorPage/MetricSelectorPage.module.less","modules/events/event-page/components/ImpactTrackedEventPage/ImpactTrackedEventPage.module.less","modules/base/components/Navigation/Navigation.module.less","modules/base/components/UserPreferences/UserPreferences.module.less","modules/base/components/FeatureTag/FeatureTag.module.less","../../../components/src/modules/carousel/components/CarouselPagination/CarouselPagination.module.less","../../../components/src/modules/farm-overview/OverviewHeader/OverviewHeader.module.less","../../../components/src/modules/charts/EventEntry/EventEntry.module.less","../../../components/src/modules/analytics/compare-charts/Trend/Trend.module.less","../../../components/src/modules/analytics/v3/MiniChartCard/MiniChartCard.module.less","../../../components/src/modules/insights/dialog/NavigationWrapper/NavigationWrapper.module.less","../../../components/src/modules/auth/LoginForm/LoginForm.module.less","../../../components/src/modules/auth/ForgotPasswordForm/ForgotPasswordForm.module.less","../../../components/src/modules/impact-tracking/TimelineItem/TimelineItem.module.less","modules/analytics/components/chart-layout/v3/MetricPicker/MetricPicker.module.less","modules/analytics/components/chart-layout/v3/ListItem/ListItem.module.less","modules/chart/components/ChartExtra/ChartExtra.module.less","modules/settings/components/SettingsPage/SettingsPage.module.less","modules/insights/insight-list/components/InsightList/InsightList.module.less","modules/network/components/ReferralListPage/ReferralListPage.module.less","modules/base/components/NoFarmsWidget/NoFarmsWidget.module.less","modules/base/components/Intercom/providers/IntercomContext.tsx","modules/auth/routes.ts","../../../components/src/index.tsx","modules/farms/routes.ts","modules/analytics/routes.ts","modules/settings/routes.ts","modules/events/routes.ts","modules/farm-summaries/routes.ts","../../../utils/src/versioning.ts","../../../utils/src/redux/types.ts","../../../utils/src/redux/actions.ts","../../../utils/src/string/units.ts","../../../utils/src/string/camelize.ts","../../../utils/src/string/classname.ts","../../../utils/src/string/capitalcase.ts","../../../utils/src/string/getDisplayName.ts","../../../utils/src/string/makeList.ts","../../../utils/src/routing/build-routes.ts","../../../utils/src/routing/parse-query.ts","../../../utils/src/date/epoch.ts","../../../utils/src/date/ts.ts","../../../utils/src/date/units.ts","../../../utils/src/date/duration.ts","../../../utils/src/date/granularity.ts","../../../utils/src/object/omit.ts","../../../utils/src/object/convertKeys.ts","../../../utils/src/object/readableHash.ts","../../../utils/src/hooks/useDidMount.ts","../../../utils/src/hooks/isMutableRef.ts","../../../utils/src/env/isProduction.ts","../../../utils/src/env/isLocal.ts","../../../utils/src/env/isBlueGreen.ts","../../../utils/src/testing/data-testid.ts","../../../utils/src/testing/selenium.ts","../../../utils/src/oop/getInheritedPropertyNames.ts","../../../utils/src/oop/memoize.ts","../../../utils/src/debug/index.ts","../../../utils/src/cookies/index.ts","../../../utils/src/color/convertColor.ts","../../../utils/src/color/utils.ts","../../../utils/src/number/index.ts","../../../utils/src/number/format.ts","../../../utils/src/device/is-ios.ts","../../../utils/src/canvas/resizeImage.ts","../../../components/src/elements/typography/Title/Title.tsx","modules/chart/providers/ChartFilterContext/typings.ts","modules/chart/hooks/useFilter.ts","modules/chart/hooks/useTimePeriod.ts","modules/chart/hooks/useISODuration.ts","modules/chart/providers/ChartFilterContext/ChartFilterContext.tsx","modules/chart/providers/ChartAPIContext/ChartAPIContext.tsx","modules/chart/hooks/useViews.ts","modules/chart/hooks/useChart.ts","modules/chart/hooks/useKPISupport.ts","modules/chart/providers/ChartDataContext/ChartDataContext.tsx","modules/chart/hooks/useDebounce.ts","modules/chart/providers/PublicChartContext/PublicChartContext.tsx","modules/chart/components/Toolbar/Toolbar.tsx","modules/chart/components/AnomalyToggle/AnomalyToggle.tsx","modules/chart/components/testing.ts","modules/chart/components/ChartExtra/ChartExtra.tsx","modules/chart/components/ChartView/Base.ts","modules/chart/components/ChartView/xAxis/Base.ts","modules/chart/components/ChartView/xAxis/Day.ts","modules/chart/components/ChartView/xAxis/WeekDay.ts","modules/chart/components/ChartView/xAxis/Month.ts","modules/chart/components/ChartView/xAxis/XAxisType.ts","modules/chart/components/ChartView/DataPointsBase.ts","modules/chart/components/ChartView/LineChart.ts","modules/chart/components/ChartView/BarChart.ts","modules/chart/components/ChartView/AreaChart.ts","modules/chart/components/ChartView/Table.ts","modules/chart/components/ChartView/Heatmap.ts","modules/chart/components/ChartView/ColumnChart.ts","modules/chart/components/ChartView/ChartView.ts","modules/chart/components/ChartFooter/ChartFooter.tsx","modules/chart/components/Chart/Chart.tsx","modules/chart/analytics/index.ts","modules/chart/components/ChartViewFilter/ChartViewFilter.tsx","modules/chart/components/HerdGroupFilter/HerdGroupFilter.tsx","modules/chart/components/PenFilter/PenFilter.tsx","modules/chart/components/DIMGroupFilter/DIMGroupFilter.tsx","modules/chart/components/ISODurationFilter/ISODurationFilter.tsx","modules/chart/components/ChartZoom/ChartZoom.tsx","modules/chart/components/ChartEdit/ChartEdit.tsx","modules/chart/components/ChartFeedback/ChartFeedback.tsx","modules/chart/components/PublicChart/PublicChart.tsx","../../../components/src/elements/Button/Button.module.less","../../../components/src/modules/generic/NoteWithSuperScript/NoteWithSuperScript.module.less","../../../components/src/modules/generic/DraggableTabs/DraggableTabs.module.less","../../../components/src/modules/layout/WidgetWrapper/WidgetWrapper.module.less","../../../components/src/modules/analytics/v3/Dropdown/Dropdown.module.less","../../../components/src/modules/analytics/v3/MultiDropdown/MultiDropdown.module.less","../../../components/src/modules/impact-tracking/ValueChange/ValueChange.module.less","modules/farms/components/FarmSelector/FarmSelector.module.less","../../../charts/src/components/charts/Table/Table.module.less","modules/chart/components/ISODurationFilter/ISODurationFilter.module.less","modules/chart/components/EventList/EventList.module.less","modules/insights/insight-validation/components/RegularInsightValidation/RegularInsightValidation.module.less","modules/insights/insight-validation/components/LelyNoMilkDropInsightValidation/LelyNoMilkDropInsightValidation.module.less","modules/insights/insight-validation/components/ValidationQuestion/ValidationQuestion.module.less","modules/insights/insight-validation/components/AjinomotoTwoStepValidation/AjinomotoTwoStepValidation.module.less","modules/base/components/Sider/Sider.module.less","../../../api/src/utils/ajax.ts","../../../api/src/utils/versioning.ts","../../../api/src/modules/session/types.ts","../../../api/src/modules/session/reducer.ts","../../../api/src/modules/session/actions.ts","../../../api/src/modules/session/epics.ts","../../../api/src/modules/session/index.ts","../../../api/src/utils/reducer.ts","../../../api/src/modules/async/types.ts","../../../api/src/modules/async/reducer.ts","../../../api/src/modules/async/middleware.ts","../../../api/src/modules/auth/typings.ts","../../../api/src/modules/async/index.ts","../../../api/src/modules/auth/types.ts","../../../api/src/modules/auth/reducer.ts","../../../api/src/modules/auth/utils.ts","../../../api/src/modules/auth/actions.ts","../../../api/src/modules/herd-groups/schemas.ts","../../../api/src/modules/dim-groups/schemas.ts","../../../api/src/modules/pens/schemas.ts","../../../api/src/modules/farms/schemas.ts","../../../api/src/modules/farms/types.ts","../../../api/src/modules/farms/actions.ts","../../../api/src/modules/auth/epics.ts","../../../api/src/modules/auth/index.ts","../../../api/src/modules/farms/reducer.ts","../../../api/src/modules/user/types.ts","../../../api/src/modules/user/reducer.ts","../../../api/src/modules/user/schemas.ts","../../../api/src/modules/user/actions.ts","../../../api/src/modules/user/epics.ts","../../../api/src/modules/user/utils.ts","../../../api/src/modules/user/index.ts","../../../api/src/modules/signup/types.ts","../../../api/src/modules/signup/reducer.ts","../../../api/src/modules/signup/actions.ts","../../../api/src/modules/signup/epics.ts","../../../api/src/modules/signup/index.ts","../../../api/src/modules/farms/typings.ts","../../../api/src/modules/farms/epics.ts","../../../api/src/modules/farms/index.ts","../../../api/src/modules/chart/typings.ts","../../../api/src/modules/breadcrumbs/types.ts","../../../api/src/modules/breadcrumbs/reducer.ts","../../../api/src/modules/breadcrumbs/actions.ts","../../../api/src/modules/breadcrumbs/components/Breadcrumbs/Breadcrumb.tsx","../../../api/src/modules/breadcrumbs/index.ts","../../../api/src/modules/data-dictionary/types.ts","../../../api/src/modules/data-dictionary/reducer.ts","../../../api/src/modules/chart/schemas.ts","../../../api/src/modules/data-dictionary/schemas.ts","../../../api/src/modules/data-dictionary/actions.ts","../../../api/src/modules/data-dictionary/epics.ts","../../../api/src/modules/data-dictionary/defaults.ts","../../../api/src/modules/data-dictionary/index.ts","../../../api/src/modules/chart/types.ts","../../../api/src/modules/chart/reducer.ts","../../../api/src/modules/chart/normalizer/Base.ts","../../../api/src/modules/chart/xAxis/Base.ts","../../../api/src/modules/chart/xAxis/Day.ts","../../../api/src/modules/chart/xAxis/XAxisType.ts","../../../api/src/modules/chart/normalizer/DataPointsBase.ts","../../../api/src/modules/chart/normalizer/LineNormalizer.ts","../../../api/src/modules/chart/normalizer/BarNormalizer.ts","../../../api/src/modules/chart/normalizer/TableNormalizer.ts","../../../api/src/modules/chart/normalizer/HeatmapNormalizer.ts","../../../api/src/modules/chart/normalizer/Normalizer.ts","../../../api/src/modules/chart/utils.ts","../../../api/src/modules/chart/actions.ts","../../../api/src/modules/chart/epic/Base.ts","../../../api/src/modules/chart/epic/DataPointsEpic.ts","../../../api/src/modules/chart/epic/Epic.ts","../../../api/src/modules/generic/types.ts","../../../api/src/modules/generic/actions.ts","../../../api/src/modules/chart/epics.ts","../../../api/src/modules/chart/series/Base.ts","../../../api/src/modules/chart/series/FarmSeries.ts","../../../api/src/modules/chart/series/DimGroupSeries.ts","../../../api/src/modules/chart/series/HerdGroupSeries.ts","../../../api/src/modules/chart/series/Series.ts","../../../api/src/modules/chart/index.ts","../../../api/src/modules/insights/typings.ts","../../../api/src/modules/herd-groups/reducer.ts","../../../api/src/modules/herd-groups/index.ts","../../../api/src/modules/pens/reducer.ts","../../../api/src/modules/pens/index.ts","../../../api/src/modules/scorecard/types.ts","../../../api/src/modules/scorecard/reducer.ts","../../../api/src/modules/scorecard/utils.ts","../../../api/src/modules/scorecard/schemas.ts","../../../api/src/modules/scorecard/actions.ts","../../../api/src/modules/scorecard/epics.ts","../../../api/src/modules/scorecard/index.ts","../../../api/src/modules/dim-groups/reducer.ts","../../../api/src/modules/dim-groups/index.ts","../../../api/src/modules/insights/types.ts","../../../api/src/modules/cows/typings.ts","../../../api/src/modules/insights/reducer.ts","../../../api/src/modules/cows/reducers.ts","../../../api/src/modules/cows/schemas.ts","../../../api/src/modules/cows/index.ts","../../../api/src/modules/insights/schemas.ts","../../../api/src/modules/insights/actions.ts","../../../api/src/modules/insights/epics.ts","../../../api/src/modules/insights/utils.ts","../../../api/src/modules/insights/odata/presets.ts","../../../api/src/modules/insights/odata/queries.ts","../../../api/src/modules/insights/index.ts","../../../api/src/modules/notifications/push.ts","../../../api/src/modules/notifications/index.ts","../../../api/src/modules/preferences/types.ts","../../../api/src/modules/preferences/reducer.ts","../../../api/src/modules/preferences/actions.ts","../../../api/src/modules/preferences/epics.ts","../../../api/src/modules/preferences/index.ts","../../../api/src/modules/events/typings.ts","../../../api/src/modules/events/types.ts","../../../api/src/modules/events/reducer.ts","../../../api/src/modules/events/utils.ts","../../../api/src/modules/events/schemas.ts","../../../api/src/modules/events/actions.ts","../../../api/src/modules/events/epics.ts","../../../api/src/modules/events/index.ts","../../../api/src/modules/labels/typings.ts","../../../api/src/modules/labels/types.ts","../../../api/src/modules/labels/actions.ts","../../../api/src/modules/labels/epics.ts","../../../api/src/modules/labels/index.ts","../../../api/src/modules/saved-cards/types.ts","../../../api/src/modules/saved-cards/typings.ts","../../../api/src/modules/saved-cards/reducer.ts","../../../api/src/modules/saved-cards/actions.ts","../../../api/src/modules/saved-cards/epics.ts","../../../api/src/modules/saved-cards/index.ts","../../../api/src/modules/impact-tracking/typings.ts","../../../api/src/modules/impact-tracking/types.ts","../../../api/src/modules/impact-tracking/reducer.ts","../../../api/src/modules/invitation/typings.ts","../../../api/src/modules/impact-tracking/schemas.ts","../../../api/src/modules/impact-tracking/actions.ts","../../../api/src/modules/impact-tracking/epics.ts","../../../api/src/modules/impact-tracking/index.ts","../../../api/src/modules/invitation/types.ts","../../../api/src/modules/invitation/reducer.ts","../../../api/src/modules/invitation/schemas.ts","../../../api/src/modules/invitation/actions.ts","../../../api/src/modules/invitation/epics.ts","../../../api/src/modules/invitation/index.ts","../../../api/src/modules/farm-summaries/types.ts","../../../api/src/modules/farm-summaries/reducers.ts","../../../api/src/modules/farm-summaries/actions.ts","../../../api/src/modules/farm-summaries/epics.ts","../../../api/src/modules/farm-summaries/index.ts","../../../api/src/modules/iofc/types.ts","../../../api/src/modules/iofc/actions.ts","../../../api/src/modules/iofc/epics.ts","../../../api/src/modules/iofc/reducers.ts","../../../api/src/modules/iofc/typings.ts","../../../api/src/modules/iofc/index.ts","../../../api/src/modules/account/reducer.ts","../../../api/src/modules/account/index.ts","../../../api/src/modules/generic/epics.ts","../../../api/src/modules/generic/index.ts","../../../api/src/modules/index.ts","../../../api/src/modules/auth/middleware.ts","../../../api/src/enterprise/reducer.ts","../../../api/src/enterprise/epic.ts","../../../api/src/enterprise/store.ts","../../../api/src/enterprise/entities.ts","../../../api/src/enterprise/index.ts","../../../api/src/subscriptions/reducer.ts","../../../api/src/subscriptions/epic.ts","../../../api/src/subscriptions/store.ts","../../../api/src/subscriptions/entities.ts","../../../api/src/testing/store.ts","modules/auth/providers/UserContext/UserContext.tsx","modules/auth/providers/SessionContext/SessionContext.tsx","modules/auth/components/ProtectedRoute/ProtectedRoute.tsx","modules/auth/components/AuthenticateWithToken/AuthenticateWithToken.tsx","modules/auth/index.ts","modules/overview/routes.ts","modules/farm-summaries/analytics/index.ts","modules/farm-summaries/providers/FarmSummarySubscriptionsContext/FarmSummarySubscriptionsContext.tsx","modules/farm-summaries/components/FarmBriefingSettings/FarmBriefingSettings.tsx","modules/farm-summaries/components/FarmSummaryPage/FarmSummaryPage.tsx","../../../components/src/modules/generic/UserMenu/UserMenu.module.less","../../../components/src/modules/generic/WithSuperScript/WithSuperScript.module.less","../../../components/src/modules/carousel/components/CarouselHeader/CarouselHeader.module.less","../../../components/src/modules/layout/AsyncLayout/AsyncLayout.module.less","../../../components/src/modules/layout/Empty/Empty.module.less","../../../components/src/modules/farm-overview/EmptyPanel/EmptyPanel.module.less","../../../components/src/modules/farm-overview/MobileViewRow/MobileViewRow.module.less","../../../components/src/modules/navigation/FarmOption/FarmOption.module.less","../../../components/src/modules/navigation/FarmSelect/FarmSelect.module.less","../../../components/src/modules/navigation/NaviCard/NaviCard.module.less","../../../components/src/modules/analytics/chart-layout/SectionHeader/SectionHeader.module.less","../../../components/src/modules/insights/shared/TimePeriod/TimePeriod.module.less","../../../components/src/modules/insights/list/Resolution/Resolution.module.less","../../../components/src/modules/insights/dialog/DialogHeader/DialogHeader.module.less","../../../components/src/modules/insights/dialog/StatusDropdown/StatusDropdown.module.less","../../../components/src/modules/auth/AcceptInviteForm/AcceptInviteForm.module.less","../../../components/src/modules/auth/SignupForm/SignupForm.module.less","../../../components/src/modules/impact-tracking/Arrow/Arrow.module.less","../../../charts/src/hocs/withChartWrapper/withChartWrapper.module.less","modules/analytics/components/chart-layout/v3/MiniChart/MiniChart.module.less","modules/analytics/components/chart-layout/v3/ChartList/ChartList.module.less","modules/analytics/components/chart-layout/v3/ChartSelector/ChartSelector.module.less","modules/analytics/components/compare-charts/FarmDropdown/FarmDropdown.module.less","modules/chart/components/ChartFeedback/ChartFeedback.module.less","modules/chart/components/PublicChart/PublicChart.module.less","modules/insights/insight-list/components/EmptyList/EmptyList.module.less","modules/insights/insight-list/components/TabNavigation/TabNavigation.module.less","modules/events/components/EventEntry/EventEntry.module.less","modules/events/components/EventEmpty/EventEmpty.module.less","modules/events/components/FarmTimelinePage/FarmTimelinePage.module.less","modules/base/components/FAB/FAB.module.less","modules/base/components/SandboxFlipSwitch/SandboxFlipSwitch.module.less","modules/settings/components/PriceInputWidget/PriceInputWidget.tsx","modules/settings/components/SettingsPage/SettingsPage.tsx","modules/settings/providers/InsightSettingsProvider/InsightSettingsProvider.tsx","modules/settings/providers/InsightNotificationContext/InsightNotificationContext.tsx","modules/settings/providers/DataIntegrationsContext/DataIntegrationsContext.tsx","modules/settings/providers/FarmInputContext/FarmInputContext.tsx","modules/auth/analytics/index.ts","modules/settings/analytics/index.ts","modules/base/components/Navigation/Navigation.tsx","modules/base/components/GoogleAnalytics/GoogleAnalytics.tsx","modules/base/components/OneSignal/OneSignal.tsx","modules/base/components/AcceptInviteModal/AcceptInviteModal.tsx","modules/base/components/FAB/FAB.tsx","modules/chart/components/EventList/EventList.tsx"],"names":["ChartVariant","FullscreenButton","exit","onClick","type","icon","FullscreenExitOutlined","FullscreenOutlined","WithSuperScript","children","title","content","popoverPlacement","onMouseEnter","placement","className","styles","Popover","QuestionCircleOutlined","Icon","Flag","countryCode","flagUrl","toLowerCase","src","alt","height","Text","Title","MediaQueryDynamicImport","mobile","desktop","renderMobile","renderDesktop","useState","ResolvedComponent","setResolvedComponent","isMobile","window","matchMedia","matches","useEffect","then","Component","_","Typography","Welcome","isLoading","description","props","classname","level","Switch","label","disabled","rest","direction","DraggableTabNode","index","moveNode","ref","useRef","useDrop","accept","collect","monitor","getItem","isOver","dropClassName","Dropping","drop","item","useDrag","isDragging","drag","Tab","DraggableTabs","items","handleDrag","order","setOrder","moveTabNode","dragKey","hoverKey","newOrder","slice","forEach","key","indexOf","push","dragIndex","hoverIndex","splice","orderItems","orderIndex","DndProvider","backend","HTML5Backend","renderTabBar","tabBarProps","DefaultTabBar","node","CheckboxMenu","x","groupSize","value","onChange","groups","i","colWidth","length","best","current","overlayClassName","color","trigger","Group","gutter","style","width","group","span","whiteSpace","DefaultContext","createContext","undefined","meta","currentIdx","list","api","setCurrent","setList","next","prev","CarouselContext","Provider","entityIDList","useDeepCompareEffect","move","total","id","Consumer","useCarousel","useContext","CarouselPagination","wrap","justify","align","Container","LeftOutlined","Disabled","flex","Numbers","RightOutlined","CarouselHeader","Wrapper","lineHeight","Hidden","OverviewHeader","unseen","actionable","variant","insights","BulbOutlined","gamePlans","CompassOutlined","tasks","FileDoneOutlined","size","count","Badge","Count","Panel","OverviewPanel","header","loadMore","restOfList","spinning","Item","justifyContent","WidgetWrapper","toolbar","loading","omitHeader","tip","colorMap","highlighted","HighlightedHeader","neutral","NeutralHeader","Skeleton","Content","AsyncLayout","ContentWrapper","accent","interactive","padded","footer","Border","Interactive","get","upperFirst","Padded","Footer","Paragraph","Empty","illustration","Sider","Header","ApplicationWrapper","sandboxMode","floaters","dialogMode","sider","onSiderCollapse","useBreakpoint","md","lg","collapsedSider","setCollapsedSider","collapsedWidth","collapsible","collapsed","SiderWrapper","onCollapse","SiderContent","Logo","isCollapsed","toggle","minHeight","HeaderWrapper","Sandbox","PageContent","FooterWrapper","EmptyPanel","LikeOutlined","MobileViewRow","hasBadge","IconWrapper","offset","dot","MobileView","farm","period","InsightItem","component","Barn","CalendarOutlined","Caret","PanelHeader","farmName","date","Col","Feed","Description","Date","Tag","withIconBackground","IconBackground","ChartHeader","tag","extra","titleComponent","Chart","filters","extension","Mini","V3","Filter","SimpleDropdown","values","currentValue","showLabel","getLabel","renderIcon","renderExtra","dropdownToggle","isToggle","overlay","map","MultiDropdown","_path","_path2","limit","selection","placeholder","open","Select","minWidth","allowClear","showArrow","labelInValue","maxTagCount","mode","state","Option","_extends","Object","assign","target","arguments","source","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgArea","_ref","svgRef","titleId","xmlns","viewBox","d","opacity","_path3","ForwardRef","SvgAreaStacked","SvgAreaStacked100","isolation","SvgBar","SvgBarHorizontal","SvgBarStacked","SvgBarStacked100","SvgColumnStacked","SvgColumnStacked100","SvgDonut","SvgGeospatialScatter","_path4","SvgHeatmap","SvgLine","SvgNumber","SvgScatter","SvgTable","SvgWordCloud","chartViewIconMap","area","Area","StackedArea","StackedArea100","bar","Bar","basicBar","HorizontalBar","StackedBar","StackedBar100","StackedColumn","basicColumn","StackedColumn100","stackedPercentColumn","donut","Donut","GeospatialScatter","heatmap","Heatmap","line","Line","basicLine","number","NumberSVG","scatter","Scatter","table","Table","WordCloud","ChartViewIcon","view","EventList","handleClose","EventEntry","start","end","NoDescription","isSame","Small","format","FarmOption","plural","Barns","strong","FarmSelect","popupClassName","Dropdown","_g","_defs","NaviCard","Primary","SectionHeader","DownOutlined","SectionPanel","SvgEmptyLeft","fill","clipPath","stroke","strokeWidth","strokeMiterlimit","strokeLinecap","fillRule","clipRule","transform","SvgEmptyRight","CorrelationType","WithIllustrationVariant","Trend","correlationType","text","zero","MinusOutlined","negative","FallOutlined","RiseOutlined","Space","CorrelationMetric","correlationPercent","trend","correlation","xs","PlusCircleOutlined","Progress","steps","percent","showInfo","NoCorrelations","InfoCircleOutlined","SvgBehavior","_path5","_path6","_path7","_path8","_path9","_path10","_path11","_path12","SvgFeed","SvgHealth","SvgProduction","SvgReproduction","maskType","maskUnits","y","mask","SvgHerdComposition","SvgWeather","SvgFinance","_circle","_rect","_rect2","_rect3","_rect4","CategoryIcon","obj","partialKey","category","Icons","ChartCard","metric","labels","handleDelete","handleConfigure","handleReport","handleShare","Div","Metric","MiniChartCard","tooltip","event","stopPropagation","components","a","rel","Expand","SvgNoCharts","cx","cy","r","rx","strokeDasharray","filter","filterUnits","colorInterpolationFilters","floodOpacity","result","dy","stdDeviation","in2","_rect5","_rect6","_rect7","_rect8","_rect9","_rect10","_rect11","_rect12","_rect13","_rect14","_rect15","SvgNoDashboards","TimePeriod","withIcon","from","until","startMoment","Epoch","asMoment","load","TS","endMoment","NoIcon","FarmProgress","progress","pointer","pointerElement","progressPercent","position","left","right","translate","ListHeader","insight","feedback","onView","ListItem","Seen","status","Resolution","validation","InsightValidation","yes","CheckCircleOutlined","no","CloseCircleOutlined","maybe","na","ExclamationCircleOutlined","SvgEmpty1","strokeLinejoin","SvgEmpty2","DialogHeader","Label","StatusDropdown","selected","isDone","InsightWorkflowState","done","dropdownRender","selectedKeys","toFollowUp","LoadingOutlined","NavigationWrapper","enabled","previous","AuthPage","ChildrenWrapper","AuthWidgetWrapper","introTitle","IntroTitle","NoWhitespace","testIds","emailField","passwordField","submit","rememberMe","LoginForm","username","password","rejected","onFieldBlur","name","multiple","required","prefix","MailOutlined","onBlur","Password","iconRender","visible","EyeTwoTone","EyeInvisibleOutlined","UnlockOutlined","block","htmlType","closable","showIcon","message","Extra","Flat","margin","ForgotPasswordForm","fulfilled","firstName","lastName","companyName","confirmPassword","phoneNumber","subType","emailAddress","error","AcceptInviteForm","getSubType","AdvisorType","phoneNumberField","firstNameField","lastNameField","confirmPasswordField","create","eula","SignupForm","emailDisabled","email","executeRecaptcha","useGoogleReCaptcha","useFormikContext","setFieldValue","submitForm","handleSubmit","useCallback","token","onVerify","layout","hasFeedback","Button","isProduction","Variant","SSOList","FacebookFilled","GoogleCircleFilled","AppstoreFilled","AppleFilled","provider","eventCategoryMap","EventCategory","farmEquipment","FarmEquipment","FarmEquipmentCircle","FarmEquipmentSRC","other","Other","OtherCircle","OtherSRC","weather","Weather","WeatherCircle","WeatherSRC","feed","FeedCircle","FeedSRC","housing","Housing","HousingCircle","HousingSRC","management","Management","ManagementCircle","ManagementSRC","Arrow","Direction","increase","ArrowUpOutlined","decrease","ArrowDownOutlined","stagnate","unit","Light","Neon","Dark","LightGray","DarkGray","Nmbr","suffix","context","missingDataReason","dataStatus","MinusCircleOutlined","DataAvailability","beforeOnly","ClockCircleOutlined","afterOnly","MissingDataReason","TimeWindowNotPassed","WarningOutlined","hasRealValue","scrollable","minimalistic","Headless","Minimalistic","OverflowContainer","Scrollable","BarVariant","before","projected","after","inputValue","delta","Math","abs","min","mixed","v","avBefore","avProjected","avAfter","max","kpi","active","Bars","sup","noData","MetricWrapper","ValueChange","TableRowVariant","KpiCell","KPIChange","bars","EventIcon","EventOrigin","automated","EventOriginIcon","TimelineItem","eventOrigin","highlightedRef","scrollIntoView","behavior","inline","Highlighted","Clickable","eventSource","theme","trim","FromNow","fromNow","EventOriginContainer","DateRangePicker","durations","center","valueDuration","moment","duration","clone","subtract","add","startLabel","endLabel","centerLabel","tabs","humanize","DateRange","Tabs","activeKey","on","SpinnerContext","queue","setQueue","setOn","setProps","existing","useSpinner","getVersion","parseFloat","version","replace","getStorageKey","persist","getEvent","setEvent","CalendlyAppointmentContext","setIsLoading","eventInfo","setEventInfo","eventID","Cookies","fetch","headers","Authorization","response","json","resource","set","useCalendlyAppointment","useInsightModalNavigation","useLocation","search","pathname","searchParams","URLSearchParams","insightID","Number","insightList","useSelector","Enterprise","entities","getInsightList","currentIndex","hasPrevious","hasNext","jump","history","toString","GACategories","GAActions","module","exports","events","selectedEvents","hash","EventListContext","farmID","grouped","params","dispatch","useDispatch","Events","utils","makeEventHash","getEventCount","Debug","farmTimeline","info","_grouped","getEventList","exclude","hasFetched","isDispatched","types","FETCH_EVENTS","primaryValue","isPending","actions","fetchEvents","useEventList","CreateEventURLParams","EventContext","serializedEvent","GenericEvent","serialize","e","console","apiState","setApiState","useEvent","categories","scope","CreateEventContext","useCreateEvent","close","eventListHash","isDefault","isEventCreated","isEventUpdated","isCreateEventFailed","isUpdateEventFailed","CreateEventDialogContext","farmContext","useFarm","match","useRouteMatch","Routes","app","timeline","useCreateEventDialog","parseQuery","createEventKey","editEventKey","createEvent","editEvent","farmURIReference","isFulfilled","CREATE_EVENT","withPayload","createdEventPayload","UPDATE_EVENT","updatedEventPayload","isRejected","action","has","DefaultImpactTrackingContext","results","otherResults","isProcessing","isAdding","isIntervalSupported","ImpactTrackingContext","annotationID","timeSpan","annotationList","getAnnotationList","ImpactTracking","FETCH_ANNOTATION_RESULTS","isFailed","ADD_METRIC","AnnotationState","processing","processingTrigger","fetchAnnotationResults","days","asDays","supportedIntervals","allResults","otherDescriptors","useImpactTracking","CreateEventWizardV2","lazy","FarmWrapper","local","EventWrapper","CreateEvent","t","useTranslation","success","fail","AddEventButton","reference","compact","trackEvent","useGoogleAnalytics","addEvent","openAddEvent","Link","CtraLayout","DEFAULT_DISPLAY_COUNT","renderHeader","highlight","showMore","setShowMore","show","markedNew","layouts","section","isInsightTypeListLoading","isEventListLoading","isFetching","isUpdating","CompactWrapper","wrapper","List","GroupLabel","HideLastTail","rotate","ShowMore","closeFarmTimeline","openFarmTimeline","getComponents","View","withCircle","Event","entity","entry","background","Highlight","$event","EventEmpty","setFarmContext","useFarmList","farmList","empty","tParams","image","onSelect","iconWithoutCircle","iconWithCircle","FarmTimelineItem","getTitle","getDescription","getStartMoment","getContext","statusCopy","EventStatus","twoToneColor","analysing","openEvent","CompiledRoutes","userID","manual","FarmTimeline","setFilter","highlightedEventID","filterCopy","eventList","useMemo","subCategory","filterValues","eventOrigins","TimelineWrapper","ReduceTextSize","suffixIcon","OptGroup","origin","Loading","useModal","Modal","EventPage","Page","modal","contextHolder","users","useUserList","ctaText","cta","remove","confirm","eventId","sourceId","isDeleting","DELETE_EVENT","edit","onOk","deleteEvent","okText","cancelText","EventSourceType","genericInsight","EventScope","herdGroup","pen","includes","append","user","humanReadable","GACategory","eventPage","SentryRoute","Sentry","Route","FarmTimelinePage","farmIdRef","Grid","impactTracking","pageHeader","noFarm","App","Breadcrumb","path","navigation","main","aiModel","Headline","selectedEvent","eventIdList","render","to","EventBase","titleCopy","sourceType","scopeType","scopeIDs","ids","herdGroups","getHerdGroups","store","getState","pens","getPens","merged","i18nTranslate","originalDescription","CTA","GenericEventCta","ExpandIcon","startAt","endAt","memoize","GenericInsightEvent","insightResolutionIds","impactTrackingState","restOfContext","processedResolutionIds","split","isNaN","urlParams","Map","ImpactTrackedEventPage","GenericInsightEventView","makeInsightEventTitleCopy","makeResolutionTitleCopy","insightResolutions","and","grammar","conjunction","copyKeys","translated","copyKey","fromLoco","insightResolution","makeList","isSupported","enterprise","classic","insightTypeID","insightTypes","getInsightTypes","insightType","registeredInsights","GenericInsight","getRegisteredInsights","typeName","CustomEvent","CustomEventExpandIcon","CustomEventView","CustomEventCta","Collapse","OverlapEvent","isExpanded","setIsExpanded","overlap","durationLength","durationStart","durationEnd","groupedEvents","overlappingEvents","isSameOrAfter","isSameOrBefore","EventTitle","NoHeight","columns","dataIndex","ShowText","goToEvent","expandIcon","ghost","underline","hide","pagination","pageSize","hideOnSinglePage","expandable","showExpandColumn","dataSource","showHeader","getDirection","hasBefore","hasAfter","round","dataDescriptor","page","unitSystem","valueDescription","projectionsWarning","timePeriod","showProjections","whatElse","beta","askIda","answer","change","expected","createTracker","configure","kpiCol","placeholders","unsupportedIntervalDescription","useLocalization","currentTimeSpan","setCurrentTimeSpan","newMetric","setNewMetric","includeProjections","isKPIProcessing","currentDurations","getValueProps","input","dataMissingReason","labelMap","verbose","dataAvailability","reason","getMissingDataLabel","isTracking","isAfter","dataUnavailabilityReason","dataDictionary","dataDescriptors","projectionsEnabled","subsets","isDataDictionaryLoading","isImpactTrackingResultLoading","withPojectedValues","hasProjections","hasProjectedValues","Fragment","PageWrapper","backgroundColor","border","top","RangePicker","pickTimePeriod","dataDescriptorID","currentChange","beforeValue","afterValue","projectedValue","units","displayName","makeDefaultValue","UnitSystem","onAssetError","alert","showButton","flags","isImpactTrackingSupported","addNewMetric","ImpactTrackingAPI","addMetricToEvent","TableEntry","isTranslationObject","TranslationResolver","translationObj","substitutions","entries","resolveNode","formatValues","nodeType","formattedKey","formatKey","apiResponse","overrideValues","valueKey","valueNode","IntlMessageFormat","AIModelEvent","translations","JSON","parse","getV1Description","getV2Description","parts","metrics","getDataDictionary","k","part","getUserPreferences","resolver","resolveTranslation","Factory","cls","_registry","Error","instance","getInheritedPropertyNames","bind","register","customEvent","genericLabel","EventListURLParams","TimelineStatus","confirmDeleteVisible","setConfirmDeleteVisible","sourceID","onConfirm","okButtonProps","onCancel","button","GenericEventView","expanded","setExpanded","getEndMoment","sameDayEvent","defaultActiveKey","bordered","closeEvent","isActive","setTimeout","expandIconPosition","evt","italic","makeTestIds","wizard","container","question","rollback","labelPicker","addNewButton","dropdown","customLabel","inactive","datepicker","radio","herdGroupSelector","select","textarea","summary","delete","prefixColor","transports","Case","Article","assetSeparator","createModule","moduleName","keymirror","connChar","custFunc","oldVal","newVal","reduce","o","makeAsset","identity","passes","convertedIdentity","parseLocoTemplate","passthrough","RegExp","test","login","form","forgotPassword","resetPassword","acceptInvite","body","singleFarmChart","scorecard","data","acquisitionMethod","unsupported","helloWorld","theSecret","ui","cookies","loaders","fab","userMenu","language","demo","free","popover","errors","notFound","jsError","pageIntro","sectionTitle","dashboard","compareCharts","farmDetails","callout","viewAnalytics","subsection","goto","markedBeta","featuredNew","chart","iso8601Duration","custom","default","seriesTitle","axisLabel","eventToggle","dimGroup","single","all","series","tooltipTitle","contextLabel","axisTitle","annotations","graph","gamePlan","viewAll","todo","update","subtitle","step","taskList","goal","analytics","compare","dropdowns","suggestions","sections","correlations","config","infoTip","projections","v3","metricSelector","dashboards","charts","newTab","removeTab","renameTab","copyTab","saveChart","removeChart","tooltips","share","link","messages","publicPage","settings","breadcrumbs","th","td","kpiInsightForm","range","sensitivity","disable","accountDetails","notifications","mapping","groupMapping","appDownload","dataIntegrations","alerts","selectFarm","dataType","inputs","widget","formField","currency","details","referral","confirmDelete","role","logout","enable","titleParam","extensions","score","createGamePlan","cowProfile","onboarding","axis","stockingDensity","bloodScreeningSchedule","testResults","risk","untested","additiveFeedingSchedule","calendar","highRiskCows","manage","workflowState","stateSince","insightValidations","validationValue","validationDescription","cows","heading","effect","createdOn","archived","effectDescription","activateInsight","drawer","dialog","datePicker","options","scopeSelector","overview","noFarms","farmer","advisor","explorer","integrationPending","inviteFarm","invitation","farmSelector","farmOverview","panel","carousel","listItem","imageDescription","farmSummaries","iofc","network","farms","referrals","invitationAccepted","endpoints","loadPath","process","addPath","languageSelector","navicard","owner","employee","pageContent","activating","failed","contactDetails","subscription","tier","dhms","appointment","eventScheduled","dataIntegration","download","join","supportedLocales","localKey","storeAppLocale","locale","localStorage","setItem","defaultLocale","loadAppLocale","appLocale","translationContext","setTranslationContext","isAssetError","asset","TranslationContext","sentryExceptionStorageKey","storage","currentContext","setCurrentContext","sentryExceptions","setSentryExceptions","previousContext","originalUseTranslation","stringify","defaultGeneratedValue","defaultInputValue","defaultValue","restParams","returnDetails","res","usedKey","tags","diagnostics","newContext","localStorageKey","i18n","defaultLanguage","init","paths","i18next","lng","use","initReactI18next","ICU","Backend","debug","fallbackLng","saveMissing","parsePayload","namespace","requestOptions","payload","credentials","cache","interpolation","escapeValue","react","bindI18n","bindI18nStore","nsMode","defaultConfig","defaultViewOptions","zoomed","zoomEnabled","dataOptions","viewOptions","toggleEvents","toggleAnnotations","toggleAnomalies","groupEvents","ChartContext","forwardRef","guardedEntity","setGuardedEntity","guardedConfig","setGuardedConfig","guardedData","setGuardedData","guardedEvents","setGuardedEvents","guardedMeta","setGuardedMeta","guardedSeries","setGuardedSeries","guardedDataOptions","setGuardedDataOptions","guardedViewOptions","setGuardedViewOptions","previousConfig","previousViewOptions","previousDataOptions","showEvents","showAnnotations","showAnomalies","useChartContext","getStackedMax","groupByProperty","sumProperty","acc","getStackedMin","getMinValue","byProperty","datum","getMaxValue","seriesKeys","seriesField","defaultRange","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","defaultContextValue","initialRange","setRange","filterByRange","RangeFilterContext","z","getColor","hue","saturation","luminosity","SeriesColorContext","localColorStoreKey","eatingPct","ruminationPct","lyingPct","standingPct","restingPct","otherPct","colors","setColors","seriesType","cacheObject","newColors","seriesKey","fieldName","cacheKey","itemKey","huePalette","cacheSize","sizeIndex","divisorFactor","assignColor","useSeriesColor","eventGroups","_AnnotationsProvider","memo","useDeepCompareMemo","dates","flatEventList","idx","collection","rangeStart","rangeEnd","diff","isBetween","LegendPosition","AnnotationsContext","legendValues","initialValues","setLegendValues","ChartLegendValuesContext","initialLegendValues","useLayoutEffect","withChartWrapper","withSeriesColor","withLegend","WrappedComponent","classNames","Zoom","WithChartWrapper","getDisplayName","hoistNonReactStatic","Top","bottom","Bottom","Left","Right","WithSeriesColor","hoistNonReactStatics","tUnit","useCommonConfig","pointContextDataTypes","legendSize","commonConfig","animation","interactions","legend","flipPage","maxItemWidth","maxRow","offsetX","itemName","formatter","shared","customItems","originalItems","uniqContextList","publicContext","mappingData","Units","asIs","domStyles","display","flexDirection","alignItems","fontSize","borderRadius","marginRight","fontWeight","containerTpl","itemTpl","AnomalyPoint","findOrphans","points","point","findNearestValid","correctNaN","partition","predicate","matchesCurrent","matchesPrevious","matchesNext","mid","lead","trail","makeOrphanLine","makeLine","getAction","simplify","refill","p","isValid","yNew","makeDrawAnomalyLine","attrs","showMissingData","cfg","addGroup","lineData","missingData","anomalies","ordinaries","addShape","defaultStyle","simplified","chunks","x1","x2","lineWidth","G2","registerShape","draw","lineDash","anomaly","isExplained","radius","hasAiModel","img","toFront","FarmEventPointAction","element","getCurrentElement","getStates","stateName","shape","getChildren","circle","animate","easing","attr","ElementSingleSelected","registerAction","registerInteraction","showEnable","todayLabel","today","mapAnomalies","projectedRegion","fillOpacity","resolveEventAnnotations","showingEvents","uniqueByX","visibleEvents","eventsOfX","useLineConfig","contextConfig","bucketSize","roundingPrecision","filteredData","setFilteredData","setMin","setMax","isEqual","factor","pow","ceil","log10","minA","floor","maxA","maxB","useMinMax","minimum","maximum","metaSeries","endDate","filterLineBySeries","lineConfig","customInfo","connectNulls","dataProperties","maxProjectionInterval","offsetY","textAlign","showCrosshairs","crosshairs","marker","zIndex","axisUnit","isTimeOfDay","getTimeOfDay","toFixed","formatTooltip","xField","yField","lineShape","xAxis","tickMethod","time","nice","tickLine","Set","sync","formatOptions","ChartDataPointXAxisType","DataDictionary","DefaultDataInterval","mayLocalise","mayConvertToUTC","weekDay","month","utc","formatXLabel","xType","minTickInterval","yAxis","formatYLabel","hslToHex","farmEventLineConfig","lineStyle","mixConfig","syncViewPadding","plots","LineComponent","isMix","compose","WithAnnotations","useBarConfig","filterBarBySeries","showTitle","autoRotate","autoHide","autoEllipsis","BarComponent","keyRows","updateTableData","isXTypeValid","xTypeValue","overrides","updatedData","setUpdatedData","filteredColumns","setFilteredColumns","first","filterTableBySeries","sortOrder","showSorterTooltip","sorter","keyA","keyB","isBefore","localeCompare","useHeatmapConfig","inputData","setData","colorGradient","useColorGradient","colorField","fields","grid","isoWeekDay","second","isoWeekday","alignTick","WithRangeFilter","useColumnConfig","chartType","filterColumnBySeries","isStack","ChartType","stackedColumn","intervalPadding","ColumnComponent","Column","useAreaConfig","InsightListPage","useLatestInsights","insightListQuery","insightListName","query","wide","InsightContext","genericInsightID","getInsightsByID","Insights","UPDATE_INSIGHT","insightApi","setInsightApi","serializedApi","setSerializedApi","newApi","expand","presets","expandDefaults","GenericInsightID","fetchInsights","useInsight","Insight","useDataDictionary","isInsightLoading","InsightDetails","Details","MarkAsSeen","useCurrentUser","isSeen","seenBy","updateInsight","InsightBody","BodyComponent","Body","KPIInsightBody","getMetadata","getTargetGroupName","penName","baseStyles","Row","fallback","ChartContainer","PaddedChart","showToolbar","onReady","plot","validate","validatedBy","InsightValidationContext","isUserLoading","defaultValidationEntity","validationRef","validationEntity","getUserValidation","isCreating","CREATE_INSIGHT_VALIDATION","UPDATE_INSIGHT_VALIDATION","updateInsightValidation","createInsightValidation","getWorkflowState","workflowStateLastModifiedDate","now","useInsightValidation","ValidationComponent","Validation","isValidating","InsightResolutionContext","Step","Steps","RegularInsightValidation","useInsightResolutions","resolutions","unresolve","isResolved","onValidate","updatesWorkflowState","ValidationValues","getCurrentStep","Smile","ValidationLookup","Dot","includeValidation","LelyNoMilkDropInsightValidation","ValidationQuestion","rollbackText","dairyCowID","dairyCow","herdGroupID","getDairyCow","getHerdGroup","getParams","primary","cowTagNumber","secondary","Secondary","ValidationButtons","workflowStates","resolveInsight","AjinomotoTwoStepValidation","AjinomotoBloodTestInsightValidation","AjinomotoFeedingScheduleInsightValidation","AjinomotoNutritionRecommendationInsightValidation","AjinomotoHighRiskCowsInsightValidation","AjinomotoHighRiskCowInsightValidation","OnboardingInsightValidation","OnboardingFooter","Copilot","StockingDensityFooter","scoreCopy","OnboardingInsightBody","setContextValue","getMetricName","getMetric","percentile","metricName","chartConfig","pointStyle","autoFit","regressionLine","valueProperties","decimals","Gray","LastRow","VulcanV2InsightBody","variantId","subject","StockingDensityInsightBody","datapointsX","datapointsY","cowsLow","cowsHigh","isRealDrop","curveSlope","curveMidpoint","curveHigh","shallConvert","imperial","convertToUnitSystem","InsightsUI","Dialog","InsightHeader","startEpoch","endEpoch","getStateDescription","hasTimePeriodExtra","toCheck","hasToolbar","InsightType","Bordered","lastDate","InsightStateSwitcher","currentState","insightStatesMap","isUnchecked","isResolving","insightStateFilter","setInsightStateFilter","unseenCount","toFollowUpCount","_InsightListProvider","FETCH_INSIGHTS","makeQueryHash","filterInsight","insightState","listName","InsightListContext","useInsightlist","EmptyList","getFarm","toCheckState","insightSettings","hasSettings","settingsPageRoute","emptyState","enableInsights","HideIcon","GAEvent","goToEnableInsight","InsightUI","emptyTitle","emptyDescription","InsightList","isFarmListLoading","defaultPageSize","setPageSize","mergedQuery","in","isInsightListLoading","isPaginationHidden","isDependencyTreeLoading","showDoneState","ListWrapper","Hide","Pagination","renderItem","showSizeChanger","pageSizeOptions","onShowSizeChange","pageNumber","selectPage","All","InsightEntry","Data","ListIcon","openInsight","TabNavigation","overflowCount","ToFollowUpBadge","kpiInsightPreset","or","insightMetadata","contains","queries","ofType","vulcanV2","visibleToUserID","farmKPI","penDensityPreset","ofTypeID","onboardingInsightPreset","orderBy","insightStates","MONTH","overviewQuery","farmId","useOnboardingInsights","resolve","resolution","insightTypeEntity","getInsightType","getInsightResolutions","hasDispatched","FETCH_INSIGHT_RESOLUTIONS","fetchInsightResolutions","stageResolution","changes","stageWorkflowState","appliedResolutions","updateRequired","DEFAULT_NUMBER_OF_RESOLUTIONS","ResolutionWidget","mayAddNew","resolutionsSource","displayedResolutions","optionsFromSource","fallbackTitle","showSelectBox","setShowSelectBox","setOptions","marginBottom","optionFilterProp","getPopupContainer","document","getElementById","makeCustomInsightResolution","onSearch","searchText","newOption","menu","cloneElement","flattenOptions","option","ResolutionTagList","resolutionTitle","resolutionsOfInsight","getResolutionsOfInsight","InsightResolutionType","preset","GenericInsightBase","metadata","getTranslationParams","KPIInsight","userPreferences","algorithmOptions","minThreshold","maxThreshold","dataDescription","dataTypeName","dataDescriptorId","insightDirection","triggerPoint","changeDirection","datetime","thresholds","kpiUnitSystem","getDataDescriptor","globalUnitSystem","loadUnitSystem","convert","case","precision","thresholdMin","thresholdMax","withPrefix","getChartList","chartID","groupName","ChartSeriesType","KPIThresholdUpV2","KPIThresholdDownV2","OnboardingInsight","BulbCircle","variant_id","convertedData","value_thi_65","value_thi_75","value_change_pct","year","userParams","VulcanV2Insight","variantName","subjectType","getDIMGroup","changeRel","StockingDensityInsight","startDate","warn","Array","InsightTypeContext","insightTypeList","FETCH_INSIGHT_TYPES","fetchInsightTypes","useInsightTypes","previousBtn","nextBtn","addResolution","hasNoSettings","feedingSchedule","milkDropChart","highRiskCowList","GALabels","Analytics","MetricPicker","groupedMetrics","byFamilyCategory","families","projectionMetrics","filteredOptions","lookup","familyName","keywords","filteredGroupOptions","keyword","configurator","filterOption","showSearch","MiniChart","useParams","extractChartInfo","defaultInterval","variantCopy","sourceCopy","chartInfo","isoDuration","nameToDisplay","sourceNames","sourceName","variantType","addChart","metricID","Charts","Breadcrumbs","pageDescription","layoutTitle","MetricSelectorPage","setView","currentMetric","setCurrentMetric","dataDictionaryLoading","enums","savedCharts","useSavedCharts","handleClick","categoryOrder","sortedGroupedMetrics","sort","b","TabPane","tab","ChartPicker","accordion","openPanels","perCategory","chartDataSource","defaultSource","family","variants","farmVariant","MiniContainer","closestSupportedInterval","interval","selectedChart","descriptor","TableHeader","CorrelationList","variantList","variantID","onAdd","activeDescriptor","setActiveDescriptor","correlationsView","toggleCorrelationsView","note","getCorrelations","fetchFarmCorrelations","fetchChartCorrelations","combinedDescriptors","supportedDescriptors","getSupportedDescriptorsForInterval","suggestionsEnabled","correlatedCharts","getCorrelatedCharts","Alert","RelatedTitle","Metrics","correlationValue","pctChange","positive","strength","absoluteValue","correlationStrength","Entry","AddChartLink","ChartList","groupID","makeTrackEvent","sharing","isAdmin","isFarmerOf","extractSource","updateChartOrder","pageTitle","removeChartCopy","confirmCopy","orderedCharts","createRef","refs","setRefs","prevState","savedCard","dataFilters","displayFilters","dateRange","durationProps","formatFilters","seriesFilter","seriesValues","metricDisplayName","filterContext","defaultView","requestURL","browse","isMutableRef","preventDefault","resizeBase64Image","toDataURL","base64","base64Content","Card","save","isSaved","report","editChart","commonModalProps","shareChart","padding","Embedded","AntDesignInput","CopyDashboardModal","groupCopy","newTabLabel","setNewTabLabel","copyFarm","setCopyFarm","unsupportedVariants","setUnsupportedVariants","duplicateTab","getMetricList","copyFarmTabs","getSavedCards","pageKey","currentCharts","cards","supportedVariants","currentVariants","nonSupportedAlert","selectDisabled","updatedCharts","updatedTabs","SavedCards","updateTabs","inputPlaceholder","Margin","Farm","InputGroup","allFarms","useTabs","setActiveKey","setItems","addTab","newActiveKey","farmRef","defaultTab","tabAdded","ADD_TAB","newPanes","targetKey","lastIndex","onEdit","OkBtn","compareChartsKey","DashboardPage","copyModalVisible","setCopyModalVisible","updateTabOrder","tabsUpdating","analysis","addDashboard","addCta","renameTabCopy","handleAdd","handleRename","initialItems","handleEdit","removed","added","addBtn","ChartComparison","tabBarExtraContent","ChartUI","resolveIsoDuration","card","DefaultTimePeriod","BrowsePage","shareInfo","handleMetricChanges","allCharts","setShowEvents","setEventList","savedCards","currentCard","initialCardComposition","initialMetricID","chartList","setChartList","eventPanelHidden","isProjectionMetric","initialIsoDuration","initialBucketSize","baseBucketSize","isoDurationList","clampChartUnitList","defaultBucketSize","resolveBucketSize","setISOduration","useTimePeriod","initialTimePeriod","setTimePeriod","setBucketSize","isMultiDataIntervalSupported","toISOString","bucketSizeList","correlationsComponent","back","HideOverflow","Options","defaultChecked","checked","AIModel","supportedDurations","buckets","onDurationChange","onTimePeriodChange","onUnitChange","handleChange","_metric","currentValues","Close","currentChartList","showSupportedViews","alignLegends","Selector","seriesAsset","useChartFilters","isSeriesTranslatable","useChartAPI","dimGroupKey","setSeries","showFilters","supportedfarmIDs","dimGroups","getDIMGroups","FilterOutlined","dimGroupIDList","ChartFilterType","herdGroupIDList","penNameList","available","ChartSelector","isSandboxEnabled","useUserPreferences","preferences","sandbox","isEnabled","sources","trackVariant","familyMetric","variantTypes","currentVariantType","currentVariant","BrowserOutlined","sourceTypes","ActionKey","Info","resolveISODuration","dataDescriptorEntity","AddChartPage","initialSourceID","initialVariantID","initialSources","initialVariants","setChart","initialISODuration","RightMargin","Buttons","convertedDataFilters","filterToSeriesMap","handleSave","cancel","AnalyticsPage","SectionVariant","exact","filterFn","metricType","setValue","farmDataDescriptorIDList","eventScopedDataDescriptorList","eventScoped","idMatches","typeMatches","searchFiltered","chartSelect","notFoundContent","filtered","selectChart","FarmDropdown","dropdownTrigger","tail","callback","ShareChartDialog","usePublicChart","isPublishing","isUpdated","isError","publish","isOpen","setI","closeDialog","url","isLocal","validationSchema","Yup","nullable","isInitialValid","onSubmit","formikHelpers","setValues","resetForm","centered","closeChartSharing","shareViaEmail","TextArea","CopyLinkWrapper","shortId","readOnly","copyToClipboard","navigator","clipboard","writeText","copy","dateTime","currentHour","saveChartChanges","_SavedChartsProvider","dispatched","FETCH_SAVED_CHARTS","UPDATE_CHARTS","ADD_CARD","UPDATE_TABS","fetchSavedCharts","newName","currentOrder","sortedTabs","newCard","addCard","chartCard","chartIndex","updateCharts","updatedCards","sortedCharts","updatedGroup","reordered","SavedChartsContext","ScreenshotContext","useChartScreenshot","sectionDashboard","stackNavigation","dropDown","sectionToolbar","dimGroupFilter","herdGroupFilter","isoDurationFilter","penFilter","graphWrapperCollection","querySelectorAll","legendWrapperCollection","offsetWidth","resetLegends","seriesToFilterMap","packageJson","require","Boolean","location","hostname","valuesDeep","object","WebDriver","isFetchingCompleted","asyncState","async","ForgotPasswordPage","ResetPasswordPage","AcceptInvitePage","LoginPage","Public","spinner","indicator","spin","purgeStaleAPIData","purgeStaleAppData","purgeStaleUtilsData","cookieConsent","CookieKeys","tagManagerArgs","customURL","gtmId","TagManager","initialize","ReactDOM","Promise","dsn","environment","integrations","Integrations","BrowserTracing","routingInstrumentation","maskAllText","blockAllMedia","maxBreadcrumbs","normalizeDepth","autoSessionTracking","sendClientReports","release","REACT_APP_DEPLOY_BRANCH","sampleRate","tracesSampleRate","replaysSessionSampleRate","replaysOnErrorSampleRate","denyUrls","ignoreErrors","i18nInit","EnterpriseI18N","GA","persistor","showDialog","auth","signup","redirectURL","websiteSignup","redirect","serviceWorker","ready","registration","unregister","faker","DataDictionaryProvider","FETCH_METRICS","fetchMetrics","setUserPreferences","delayed","timezone","UserPreferencesContext","timer","setDelayed","isLoggedIn","Preferences","FETCH_USER_PREFERENCES","SET_USER_PREFERENCES","clearTimeout","fetchUserPreferences","updates","unitSystemKey","formats","antLocales","enUS","esES","nlNL","storeUnitSystem","updateUnitSystem","updateLocale","dateFormat","LocalizationContext","setUnitSystem","setLocale","tz","setTz","byCategory","chartScoped","DataDictionaryContext","eventScope","getEnums","allFarmMetrics","categoryGroup","categoryFamilyGroup","metricFamilies","farmSubset","supportedFarms","eventScopedSubset","projectionEnabledSubset","projectionEnabledFarms","metricCount","chartSubset","supportedCharts","mainChartID","isMultiFarmFilterSupported","enumsActionDispatched","FETCH_ENUMS","fetchEnums","AlertContext","setMessages","useAlerts","sent","received","pending","handleAccept","handleDecline","InvitationContext","needsRefresh","setNeedsRefresh","reset","useSession","hasFarms","getReferrals","InvitationType","Invitation","FETCH_INVITATION_LIST","ReferralStatus","accepted","mayAccept","ReferralType","farmerToUser","isAccepting","ACCEPT_INVITATION","DELETE_INVITATION","fetchInvitationList","code","acceptInvitation","deleteInvitation","useInvitation","isInitialLoading","dataIntegrated","session","DataIntegrationContext","initial","setInitial","remoteSession","setRemoteSession","Signup","GET_REMOTE_SESSION","getRemoteSession","UserListContext","getUserList","User","FETCH_USER_LIST","fetchUserList","fetchFarmDetails","fetchAccountDetails","AccountContext","isSignupCompleted","account","farmDetailsFetchStatus","Farms","FETCH_USER_FARM","fdFetchDispatched","fdFetchPending","accountDetailsFetchStatus","FETCH_ACCOUNT_DETAILS","adFetchDispatched","adFetchPending","fetchUserFarm","progressCheckList","useAccount","buildRoutes","_root","public","pbl","base","invite","new","requestAccess","helpCenter","compileRoutes","withIconDefaultStyles","SvgUser","SvgLogout","SvgAnalytics","SvgGamePlans","SvgSettings","SvgNotifications","SvgPassword","SvgOverview","SvgDueDate","SvgProductUpdates","SvgEmail","SvgPhone","SvgKpiTracking","SvgTasks","SvgGpSummary","SvgEmptyInsight","SvgEmptyTask","_circle2","SvgEmptyGameplan","SvgEmptyEventlist","SvgLogo","SvgBarn","SvgBarns","SvgComparison","SvgAnalysis","xmlSpace","SvgKpiUnavailable","SvgKpiLocked","SvgKpiThresholdUpV2","SvgKpiThresholdDownV2","SvgDot","SvgFarmEquipment","SvgHousing","SvgManagement","SvgOther","SvgAvatarList","SvgBrowser","SvgActionKey","SvgCopilot","SvgFeedCircle","SvgHousingCircle","SvgManagementCircle","SvgOtherCircle","SvgWeatherCircle","SvgFarmEquipmentCircle","SvgRadar","SvgCowGroup","SvgInnerJoin","SvgBulbCircle","UserOutlined","UserIcon","LineChartOutlined","Logout","GamePlans","SettingOutlined","Settings","Notifications","AppstoreOutlined","Overview","DueDate","ProductUpdates","Email","PhoneOutlined","Phone","BarChartOutlined","KPITracking","EmptyInsight","Tasks","GPSummary","_EmptyInsight","EmptyEventList","_EmptyTask","_EmptyGamePlan","_EmptyEventList","React","isBuiltInType","danger","Default","Danger","SvgLogoText","SvgLogoWithoutText","ThemedTitle","eventOptions","eventParams","cat","Intercom","event_category","isSandbox","host","GAProvider","$$typeof","Symbol","GAContext","gtag","roleCopy","ReferralForm","isSubmitting","requiredMark","org","ReferralRole","consent","href","readMore","ReferralPage","mayRedirect","setMayRedirect","mayObserveState","setMayObserveState","useDidMount","isMounting","defined","firstNameRequired","lastNameRequired","emailRequired","roleRequired","useValidationSchema","invitationId","targetUser","sourceUser","UPDATE_INVITATION","CREATE_INVITATION","isSuccessful","isRequestRejected","referralType","setSubmitting","updateInvitation","createInvitation","API","statusCode","FarmAccessTable","UserAccessTable","self","referralActions","tableValues","columnHeaderCopy","UserReferralTable","currentUser","isFarmer","farmAccess","getPointerName","userToFarmer","FarmReferralTable","tableLocale","farmTitle","farmDescription","farmTabs","farmActions","userTitle","userDescription","userTabs","filterByReferralStatus","ReferralListPage","isUserListLoading","filteredUserList","referralList","getTableProps","emptyText","userReferrals","declined","farmReferrals","overflow","rowKey","invitations","RequestAccessPage","requestFarmAccess","NetworkPage","ContextWrapper","UserPreferencesVariant","Debugger","withRouter","staticContext","log","Boundary","hasError","errorInfo","subTitle","reload","_error","withTranslation","UserPreferences","locales","setLoading","userPreferencesLoading","userPreferencesSelector","changeLanguage","off","localeKeys","isSettingsVariant","isAuthVariant","buttonText","withProps","endToEndTest","openUserPreferencesSelector","selectLanguage","onLanguageChange","ItemGroup","selectUnitSystem","MobileViewModal","PortalContext","portal","useSandboxFlipSwitch","clicked","setClicked","switchRef","getToken","refresh","accessToken","isTokenRefreshed","Auth","RENEW_TOKEN","isTokenRefreshing","isSessionReset","switchFlipping","longRequest","renewToken","Session","SandboxFlipSwitch","asLink","sandboxEnabled","handleSwitchFlip","textOn","textOff","Enabled","InviteFarmForm","isInvitationSent","isInvitationFailed","Compact","NoFarmsWidget","isAccountLoading","isAppointmentLoading","currentStep","farmerContent","start_time","parseZone","successContent","farmerLayout","gettingStarted","referrer","advisorContent","advisorLayout","ctaPlainText","ctaHyperlink","explorerContent","explorerLayout","HugeText","getConsent","inCookie","inLocalStorage","CTRA_MOBILE_WRAPPER","cookie","pop","setConsent","expireTime","toUTCString","CookieConsent","hasConsent","setHasConsent","featureTag","sessionKey","DefaultFarmContext","FarmContext","defaultFarmID","farmContextSearchParam","sessionStorage","setFarmID","getFarmList","removeItem","farmIDs","FarmListContext","FarmStatus","Created","FETCH_FARM_LIST","fetchFarmList","flush","address","selector","FarmSelector","analyticsDashboardContext","_matches","matchesEnterprise","matchesVersion","purgeStaleData","isBlueGreen","intercomLauncherClassName","isChatOpen","unreadCount","IntercomContext","hideLauncher","setIsChatOpen","setUnreadCount","help","userGroups","app_id","user_id","hide_default_launcher","language_override","custom_launcher_selector","user_group","user_type","first_name","last_name","openChat","closeChat","routes","useIntercom","welcome","general","matchesUtils","createType","String","replays","expires","preservesPayload","defineProperties","writable","Delimiters","AsyncTypeStates","createAsyncTypes","ns","defaults","typeString","createCRUDAsyncTypes","RUD","forcePrimary","createAsyncActions","typeObject","createPendingPayload","createFulfilledPayload","createRejectedPayload","getType","fulfill","reject","hasStatus","asyncType","Unit","isCompleted","args","_timeUnits","_currencies","_mass","_length","_volume","_temperature","indexOfInsensitive","array","isPercentage","percentage","isTimeUnit","isCurrency","isMass","isLength","isVolume","isTemperature","mass","volume","temperature","translatedUnit","percentageFromFraction","converted","fixed","u","getPrecision","defaultPrecision","decimal","originalValue","supportedUnits","possibilities","metricUnit","imperialUnit","conversionMap","convertedValue","camelize","capitalCase","str","arrayOfWords","commas","withConjunction","__root","rootURI","compile","_isLongEpoch","epoch","asDate","asLong","midnight","daysBetween","ts","defaultFormatUtc","epochToMoment","isMoment","SECOND","MINUTE","HOUR","DAY","iso8601Ago","durationString","startOf","asSeconds","minutes","as","isChartTimePeriod","isDateRangeTuple","isArray","defaultBucketSizes","threshold","optionDuration","dh","asHours","odh","expectedDataPoints","omitDeepUndefined","omitUndefined","convertKeysToLowerCase","keysToConvert","newObj","wordHash","WordHash","readableHash","setIsMounting","didMount","setDidMount","env","REACT_APP_SERVER_ENV","tree","feature","BaseClass","getOwnPropertyNames","getPrototypeOf","systemKey","transportCache","logdown","err","msg","cleanMessage","encoded","btoa","last","setExtra","setLevel","sentryMessage","_systemLogger","_loggers","logger","system","loggers","_intf","prop","Proxy","defineProperty","hsl","domain","getCookie","setCookie","removeCookie","base64String","Image","onload","canvas","createElement","ctx","fillStyle","fillRect","drawImage","dataURI","weight","Black","H6","DateMethod","merge","useFilter","defaultFilters","presetFilters","filterRef","setFilters","updatedFilters","filterName","inputIsoDuration","inputTimePeriod","currentDateMethod","firstUpdate","isoStartDate","isoEndDate","useISODuration","currentDuration","setCurrentDuration","defaultMetadata","supportedISODurations","filterDefinitions","isBackendAggregated","defaultFilterContextValue","setISODuration","setMetadata","setCurrentDateMethod","ChartFilterContext","initialFilters","initialSeries","durationOptions","dateMethod","iso","getDefaultFilters","setRequestURL","UnitSystemConversionMap","supportedViews","hasNoSupport","hasSupport","ChartDataSourceType","dataPoints","ChartAPIContext","contextUnitSystem","chartEntities","getChart","useViews","defaultChartID","defaultMongoChartsID","currentChartID","setCurrentChartID","useChart","farmIDList","availableFarmIDList","supportedBy","blockedBy","useKPISupport","hasFailed","_ChartDataProvider","dataURL","adjustedTimePeriod","maxProjection","forceProjection","endOf","adjustedEndDate","maxEndDate","adjustTimePeriod","queryFilter","makeChartHash","getChartData","FETCH_CHART_DATA","getChartRequestURL","getChartError","delay","head","timeout","fn","debounce","concat","useDebounce","fetchChartData","ChartDataContext","attachment","PublicChartContext","shortID","getFullname","frozenState","getChartSharingContext","FETCH_SHARED_CHART","chartResponse","FETCH_SNAPSHOT_DATA","SHARE_CHART","publishResponse","UPDATE_SHARED_CHART","updateResponse","fetchSharedChart","shareResponse","chartData","translatedName","sharedBy","accessLevel","attachments","unescape","encodeURIComponent","contentUrl","onSuccess","updateSharedChart","userTags","Toolbar","showEventToggle","isMultiIntervalSupported","isMultiSelectable","filterType","definition","isZoomed","zoom","toggleEventAnnotations","onDIMGroupChange","onHerdGroupChange","onPenChange","views","onViewChange","AnomalyToggle","hasAnomaly","hasMissingData","Eye","EyeOutlined","dataQuality","cursor","chartZoom","chartExtra","chartEdit","ChartExtra","handleCompare","pull","ViewFilter","Analysis","ChartViewBase","Base","Day","WeekDay","Month","seriesItem","DataPointsBase","labelTranslationVariant","getTranslatedXAxisLabels","getTranslatedSeries","short","long","xAxisType","XAxisType","getTranslatedLabel","LineChart","BarChart","AreaChart","BaseTable","column","getTranslatedKeyRowsLabels","row","BaseHeatmap","getConfig","ColumnChart","stackedArea","lineContinuous","stackedBar","dataTable","ChartFooter","noFarmSupport","noFarmConsent","errorTitle","errorDescription","manualDescription","manualCta","loseEqual","UIWrapper","defaultProps","isBetaChart","BetaTag","GraphWrapper","isEmpty","manualInput","Graph","Invisible","SingleFarmDescription","Inner","eventHandlers","viewRef","ChartView","createEmpty","timeRef","contextPropsRef","isChartDataLoading","identify","shouldChartUpdate","GraphComponent","getComponent","chartContextProps","chartResourceType","chartResourceID","isDataLoading","ChartWithForwardedRef","skipFarmSupportCheck","prevProps","nextProps","objValue","othValue","getIconName","mongoChartView","geospatialScatter","groupedBar","wordCloud","ChartViewFilter","changeChartType","HerdGroupFilter","selectHerdGroup","PenFilter","selectPen","DIMGroupFilter","selectDIMGroup","dimGroupID","AntDesignDatePicker","Menu","ISODurationFilter","timeLabel","customItem","dropdownClassName","formatString","startDateISOString","endDateEOD","endDateISOString","handleTimeChange","ChartZoom","getContainer","onClose","afterOpenChange","toggleFarmTimeline","ChartEdit","Input","DatePicker","feedbackCopy","ChartFeedback","isSubmitted","Generic","SEND_FEEDBACK","sendFeedback","submitCount","closeIcon","bodyStyle","thankYou","nextSteps","hidden","rows","PublicChart","translationParams","Widget","idaQnA","gamePlanTask","withSandboxPrefix","service","state$","makeApiURL","urlTemplate","envOverrides","isBeta","processEnv","makeAzureApiURL","uri","buildURLWithQueryString","parsed","QueryString","parseUrl","requestDefaults","crossDomain","Request","registerToken","dataRequest","_token","makeRequest","method","headerWithToken","ajax","GET","urlWithQuery","POST","PUT","PATCH","DELETE","appName","matchesApi","LOGOUT","RESET","initialState","isReset","reducer","action$","pipe","tap","ignoreElements","typesWhichCleanup","cleanup","cleanupAction","shouldCleanup","CLEANUP","REPLAY","primaryKey","preservedPayload","clearTimeouts","timeouts","timeoutId","cacheMiddleware","sessionTypes","reduxCaching","REQUEST_TOKEN","INJECT_TOKEN","SET_USER","REPORT_FORGOT_PASSWORD","RESET_PASSWORD","REGISTER_USER","ACCEPT_INVITE","SIGN_UP_USER","ACTIVATE_USER","REQUEST_ACTIVATION","expiresIn","tokenType","issued","impersonating","normalizeAuthEntity","expirationEpoch","expirationDate","refreshToken","refreshTokenExpirationDate","refreshTokenExpirationEpoch","refreshTokenExpires","refreshTokenExpiresIn","requestToken","currentToken","reportForgotPassword","userId","otp","registerUser","registrationFormValues","injectToken","setUser","opportunityID","signupUser","signupFormValues","activateUser","eulaAccepted","requestActivation","schema","Entity","idAttribute","herdGroupId","processStrategy","dimGroupSchemas","penSchemas","herdGroupsSchemas","gpsCoordinates","lat","lon","UPDATE_USER_FARM","FETCH_DATA_INTEGRATIONS","FETCH_FARM_INPUTS","farmListResponse","normalize","schemas","farmDetailsRequestPayload","updateUserFarm","FarmDetailsRequestPayload","fetchDataIntegrations","fetchFarmInputs","requestConfig","tokenRequestConfig","renewTokenRequestConfig","forgotPasswordRequestConfig","dev","passwordResetRequestConfig","emailSchema","mergeMap","catchError","authApi","of","grant_type","impersonatedUser","isImpersonating","validateSync","UserId","ConfirmPassword","Code","signupApi","getSsoTokenRequestConfig","formattedDetails","penIDList","FETCH_USER","UPDATE_ACCOUNT_DETAILS","UPDATE_SIGNUP_DETAILS","userAapi","srcValue","country","roles","isUserInfoResponse","givenName","surName","userName","isFarmConnectionResponse","rolesList","userList","userGroup","members","userGroupList","usersByFarmConnection","directUsers","usersByGroup","externalUsers","usersByAppAccess","directMembers","userGroupMembers","farmMembers","allMembers","assignableMembers","fetchUser","userResponse","userListResponse","updateAccountDetails","userInfo","updateSignupDetails","switchMap","userApi","pushAccountDetails","signupTypes","PUSH","COMMIT","MAKE_REMOTE_SESSION","farmTypes","dhmsDetails","userTypes","commit","makeRemoteSession","fetchRemoteSession","remoteSessionApi","farmApi","fetchFarms","mappedPenTypes","updateFarmDetails","pushFarmDetails","city","postCode","notification","zipCode","DROP_BREADCRUMB","UPDATE_BREADCRUMB","PICK_UP_BREADCRUMB","newState","dropBreadcrumb","updateBreadcrumb","newTitle","newPath","pickUpBreadcrumb","B","v4","pick","connect","metricDefined","parent","__source","minimumDataInterval","valueSettings","features","projection","timeAdjustable","displayLagDays","isTimeAdjustable","minimumDisplayInterval","defaultDisplayInterval","chartTitle","chartDescription","supportsMultiFarmFilter","supportsRelativeTime","supportsMultipleIntervals","dataLagOffsetDays","isTimeZoneSpecific","previewImageUri","isRelativeTimeSupported","metricVariant","chartSchemas","newProjectionInterval","dataSourceTypes","quantity","scoringMethod","conversions","baseTimeGranularity","gameplan","kpiInsight","projectionSupport","chartName","si","isProjectionSupported","isKPIInsight","isGamePlanKPI","isScorecardSupported","metricList","metricListResponse","restOfEntities","restOfData","FETCH_FARM_CORRELATIONS","FETCH_CHART_CORRELATIONS","DUMP_CHART_DATA","combineReducers","find","DataDictionaryTypes","intervals","formatData","formatMetadata","UnitSystemParam","penCustomType","ChartUnits","valueOf","Series","getField","formattedPoint","formatXAxis","LineNormalizer","axisType","missing","computedY","BarNormalizer","TableNormalizer","groupByKey","formatTableData","firstColumn","HeatmapNormalizer","orderedPoints","normalizeChartData","Normalizer","intervalDays","excludedDataDescriptorIDList","fetchSnapshotData","dumpChartData","EpicBase","dependencies","DataPointsEpic","buildFiltersQuery","formattedValue","serializeFilterQuery","filterQuery","includeProjected","farmIds","baseUrl","R","rehydrate","epic","EpicFactory","makeRequestURL","contextData","requestContext","authContext","chartApi","takeUntil","excludedVariants","stateAttachment","iif","genericActions","FarmSeries","DimGroupSeries","HerdGroupSeries","InsightScope","InsightState","InsightCategory","NotificationType","NotificationAction","FETCH_SCORECARD_VALUE","scorecardValue","makeScorecardHash","fetchScorecardValue","valueResponse","toDateString","FETCH_INSIGHT_NOTIFICATION_MAPPINGS","UPDATE_INSIGHT_NOTIFICATION_SETTINGS","FETCH_KPI_INSIGHT_SETTINGS","UPDATE_KPI_INSIGHT_SETTINGS","MolenaarState","initialInsightSettingsState","mappings","mappingGroups","kpiInsights","settingsReducer","mappingGroup","insightMapping","notificationType","notificationMappingID","notificationAction","channels","lists","insightValidation","validations","customResolutions","DairyCowID","cowStatus","isDeleted","watchEnabled","DoNotBreed","lactationNumber","lastCalvingEpoch","lastEstrusEpoch","doNotBreed","InsightTypeID","InsightValidationID","validationByID","_id","mappingSchema","cowSchemas","parentGenericInsightID","nodeID","insightContext","createdEpoch","seenByUserIds","insightTitle","insightDescription","conditionalInsightState","insightWorkflowState","insightWorkflowStateLastModifiedDate","developerTitle","developerDescription","kpiInsightSettings","insightResolutionList","fetchInsightNotificationMappings","updateInsightNotificationSettings","fetchKPIInsightSettings","kpiInsightSettingsResponse","updateKPIInsightSettings","validationEpoch","updatedValues","denormalize","buildQuery","requestMap","mappingId","channel","mapTo","isInsight","live","forcedLive","dominantEpoch","amount","ge","lt","union","typeID","onFarm","eq","oneSignalUserId","observable","subscribe","pushNotifications","complete","unsubscribe","handleSuccess","forkJoin","localizationResponse","sandboxResponse","preferencesApi","combineLatest","farmSchemas","substr","formValues","eventListReference","updateEvent","excludeInsightTypeIds","endTs","startTs","createdAt","eventApi","stat$","GenericLabelScope","CREATE_GENERIC_LABEL","UPDATE_GENERIC_LABEL","DELETE_GENERIC_LABEL","createGenericLabel","deleteGenericLabel","genericLabelApi","FilterConfig","pages","cardPayload","annotationResult","originalAnnotationId","availableTimeSpanDays","timeSpanDays","annotationResults","startWith","takeWhile","annotationState","descriptorId","FETCH_INVITATION","FETCH_INVITATION_BY_CODE","matchingFarm","deleted","invitationCode","invitationType","referralsByDirection","Values","singleReferral","invitationList","invitationSchema","fetchInvitation","fetchInvitationByCode","organizationName","referralApi","isAccepted","CREATE_FARM_SUMMARY","FETCH_SUBSCRIPTION_LIST","UPDATE_SUBSCRIPTION","updatedTs","findIndex","createFarmSummary","fetchSubscriptionList","updateSubscription","farmSummariesAPI","fetchSubscriptions","FETCH_IOFC_DATA","FETCH_DATA_SETS","INSERT_FARM_INPUT","DELETE_FARM_INPUT","fetchIOFCData","scenario","fetchDatasets","datasetName","insertFarmInput","deleteFarmInput","iofcApi","farmKey","chartActions","asyncTypes","chartTypes","farmInputDatasets","farmInputData","resultCount","IOFCKpiList","AuthAPI","FarmsAPI","BreadcrumbsAPI","UserAPI","SessionAPI","DataDictionaryAPI","ChartAPI","Scorecard","ScorecardAPI","InsightsAPI","NotificationsAPI","PreferencesAPI","EventsAPI","SavedCardsAPI","InvitationAPI","SignupAPI","FarmSummaries","FarmSummariesAPI","IOFC","IofcAPI","GenericAPI","sessionCookies","_auth","chartDataBlacklist","createBlacklistFilter","insightBlacklist","persistConfig","blacklist","transforms","epics","authEpics","farmEpics","userEpics","dataDictionaryEpics","chartEpics","scorecardEpics","insightEpics","preferencesEpics","sessionEpics","eventsEpics","labelsEpics","savedChartEpics","impactTrackingEpics","invitationEpics","signupEpics","farmSummaryEpics","iofcEpics","genericEpics","combinedEpics","combineEpics","rootEpic","sentryReduxEnhancer","actionTransformer","stateTransformer","epicMiddleware","createEpicMiddleware","createBrowserHistory","enhancers","middleware","routerMiddleware","asyncMiddleware","authMiddleware","composedEnhancers","composeWithDevTools","applyMiddleware","authFromCookie","createStore","persistReducer","router","connectRouter","farmInputs","persistStore","run","_hasValidToken","hasLoggedOut","getBreadcrumbs","getUsername","getUser","filterValue","getLoggedInUser","searchInString","arrayOverlap","objectOverlap","matchAgainst","getChartsOfDataDescriptors","dataDescriptorIDs","getScorecardValue","insightIDList","getInsightSettings","getNotificationMappings","getGroupMappings","getIndividualMappings","getInsightValidations","validationIDs","allValidations","userRegEx","others","propValue","any","none","child","eventIDList","childEvents","relatedAnnotationID","rootEvents","byParent","reconstructed","ordered","getAuthError","getDashboard","variantDescriptor","getFarmSummarySubscriptions","createSelector","farmPath","descriptorPath","chartPath","herdGroupPath","dimGroupPath","penPath","getFarmInputDatasets","getFarmInputs","createRootReducer","getSignupValues","entitifier","UserContext","signupState","SessionContext","isRefreshing","isTokenRefreshFulfilled","ProtectedRoute","protectedLocation","AuthenticateWithToken","authState","GAAction","makeFarmSummary","subscriptions","FarmSummarySubscriptionsContext","isFetchDispatched","useFarmSummarySubscriptions","FarmBriefingSettings","FarmSummaryPage","isCreated","errorMessage","textArray","disabledDate","valueCopy","getFormComponent","boundaries","m","showTime","InputNumber","PriceInputWidget","useFarmInputs","adjust","deleteValue","dataSets","dedupKey","inputValues","field","nextField","NextComponent","addonAfter","basics","defaultSortOrder","record","DataIntegrations","dataIntegrationAlerts","inputsAlerts","SettingsPage","defaultActiveTab","InsightsGACategories","InsightNotificationContext","DataIntegrationsContext","FarmInputsContext","InsightSettingsProvider","perFarm","perDataDescriptor","allMappings","individualMappings","updateNotificationSettings","updateID","setupdateID","isChecked","useInsightNotifications","defaultTo","useDataIntegrations","ReferralGAActions","Navigation","onToggle","myNetwork","selectable","triggerSubMenuAction","inlineIndent","sidebarMenu","collapse","marginTop","Divider","myConnections","Chat","ChatUnselected","support","GoogleAnalytics","FarmGALabels","user_name","farm_id","farm_name","unit_system","OneSignal","oneSignalUserID","Push","AcceptInviteModal","sourceFirstName","handleCancel","wrapClassName","ok","FAB","fabOpen","setFabOpen","closedWhileDragging","setClosedWhileDragging","recentlyDragged","setRecentlyDragged","fabRef","compareChartsRoute","enableKPI","handleClickOutside","addEventListener","removeEventListener","handle","onStart","onDrag","onStop","srcElement","click","FABWrapper","Plus","dragFab","closeFab","openFab","TimelineGAActions","AvatarList","AnalyticsGAActions","goToCompareCharts","InsightGAActions","getIcon"],"mappings":"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","file":"static/js/main.aec672c9.chunk.js","sourcesContent":["import * as React from \"react\";\nimport { Layout, PageHeader, Spin, Row, Col } from \"antd\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport { ContentWrapper } from \"../../layout\";\nimport ChartHeader, { ChartHeaderProps } from \"../ChartHeader/ChartHeader\";\nimport styles from \"./Chart.module.less\";\n\nconst { Content } = Layout;\n\nexport enum ChartVariant {\n /**\n * \"headless\" chart displaying only the graph\n * @type {ChartVariant.Embedded}\n */\n Embedded = \"embedded\",\n /**\n * V3 stylinh\n */\n V3 = \"v3\",\n /**\n * Mini variant\n */\n Mini = \"mini\"\n}\n\nexport interface ChartProps\n extends Omit, \"title\">,\n Pick {\n /**\n * Chart variant\n */\n variant?: ChartVariant;\n /**\n * Chart filtering widgets\n */\n filters?: React.ReactNode;\n /**\n * Loading state\n */\n loading?: boolean;\n /**\n * Loading text\n */\n tip?: string;\n /**\n * extra content for the chart header\n */\n extra?: React.ComponentProps[\"extra\"];\n /**\n * extra content for the chart header\n */\n extension?: React.ReactNode;\n /**\n * Chart footer\n */\n footer?: React.ReactNode;\n /**\n * custom chart tag\n */\n tag?: JSX.Element;\n}\n\n/**\n * Chart container which encapsulates the Mongo Charts iframe.\n * @param {boolean} loading\n * @param {string | undefined} tip\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} filters\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined | (React.ReactElement> & undefined) | (Iterable & undefined) | (React.ReactPortal & undefined) | (Iterable & React.ReactElement>) | (Iterable & string) | (Iterable & number) | (Iterable & {}) | (Iterable & Iterable) | (Iterable & React.ReactPortal) | (Iterable & boolean) | (Iterable & null) | (Iterable & undefined)} children\n * @param {string} className\n * @param {ChartVariant | undefined} variant\n * @param {JSX.Element | undefined} tag\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} extra\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} extension\n * @param {any} footer\n * @param {Omit, \"extension\" | \"children\" | \"footer\" | \"extra\" | \"variant\" | \"tip\" | \"className\" | \"filters\" | \"tag\" | \"loading\">} rest\n * @returns {JSX.Element}\n * @constructor\n */\nconst Chart: React.FC = ({\n loading = false,\n tip,\n filters,\n children,\n className = \"\",\n variant,\n tag,\n extra,\n extension,\n footer = null,\n ...rest\n}) => {\n return variant === ChartVariant.Mini ? (\n \n \n {children}\n \n \n ) : (\n \n \n {variant === ChartVariant.V3 && (\n \n \n \n )}\n {filters && {filters}}\n \n \n {children}\n \n {extension && (\n \n \n {extension}\n \n \n )}\n \n {footer}\n \n \n );\n};\n\nexport default Chart;\n","import * as React from \"react\";\nimport { FullscreenExitOutlined, FullscreenOutlined } from \"@ant-design/icons\";\n\nimport { Button } from \"../../../elements\";\n\nexport interface FullscreenButtonProps {\n /**\n * exit from full screen\n */\n exit?: boolean;\n /**\n * handle click\n */\n onClick: () => void;\n}\n\n/**\n * Full screen toggle\n * @param exit\n * @param onClick\n * @constructor\n */\nconst FullscreenButton: React.FC = ({ exit, onClick }) => (\n \n \n );\n};\n\nexport default CheckboxMenu;\n","import * as _ from \"lodash\";\nimport useDeepCompareEffect from \"use-deep-compare-effect\";\n\nimport {\n createContext,\n Dispatch,\n FC,\n PropsWithChildren,\n SetStateAction,\n useContext,\n useEffect,\n useState\n} from \"react\";\n\nimport { Optional } from \"@ctra/utils\";\n\ntype EntityID = number | string;\n\ninterface ContextType {\n /**\n * Current ID\n */\n current: Optional;\n meta: {\n /**\n * Current index\n */\n currentIdx: number;\n /**\n * List of IDs\n */\n list: Array;\n };\n api: {\n /**\n * Current ID setter\n */\n setCurrent: Dispatch>>;\n /**\n * List setter\n */\n setList: Dispatch>>;\n /**\n * Next index and ID\n */\n next: () => void;\n /**\n * Previous index and ID\n */\n prev: () => void;\n };\n}\n\ninterface CarouselContextProps {\n /**\n * List of IDs\n */\n list: Array;\n /**\n * change callback on the carousel\n */\n onChange?: (current: unknown) => void;\n}\n\nconst DefaultContext = createContext({\n current: undefined,\n meta: {\n currentIdx: 0,\n list: []\n },\n api: {\n setCurrent: _.noop,\n setList: _.noop,\n next: _.noop,\n prev: _.noop\n }\n});\n\n/**\n * Carousel context: carousel control center\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @param {Array} entityIDList\n * @param {((current: unknown) => void) | undefined} onChange\n * @return {JSX.Element}\n */\nconst _CarouselContextProvider: FC> = ({\n children,\n list: entityIDList,\n onChange\n}) => {\n const [list, setList] = useState>(entityIDList);\n const [current, setCurrent] = useState>(_.first(list));\n\n /**\n * Look for list changes\n */\n useDeepCompareEffect(() => {\n if (entityIDList?.length) {\n setList(entityIDList);\n\n if (!current || !_.includes(entityIDList, current)) {\n setCurrent(_.first(entityIDList));\n }\n } else {\n setList([]);\n setCurrent(void 0);\n }\n }, [entityIDList, current]);\n\n /**\n * Move the pointer to the next of the previous item\n * @param {-1 | 1} direction\n * @return {() => void}\n */\n const move = (direction: -1 | 1) => () => {\n const total = list?.length;\n const currentIdx = _.findIndex(list, (id) => id === current);\n const next = list[_.clamp(currentIdx + direction, 0, total - 1)];\n\n if (_.isFunction(onChange)) {\n onChange(next);\n }\n\n setCurrent(next);\n };\n\n return (\n id === current), list },\n api: { setList, setCurrent, next: move(1), prev: move(-1) }\n }}\n >\n {children}\n \n );\n};\n\nexport const CarouselContext = {\n Provider: _CarouselContextProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Make a hook to access the context in FCs\n */\nexport const useCarousel = (): ContextType => useContext(DefaultContext);\n","import { ComponentProps, FC } from \"react\";\nimport { Row, Col, Typography, Space } from \"antd\";\nimport { LeftOutlined, RightOutlined } from \"@ant-design/icons\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport { useCarousel } from \"../../providers\";\nimport styles from \"./CarouselPagination.module.less\";\n\nconst { Text } = Typography;\n\n/**\n * Carousel pagination component\n * @param {string | undefined} className\n * @param {Pick & {children?: React.ReactNode | undefined}, \"gutter\" | \"align\" | \"justify\" | \"prefixCls\" | \"wrap\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"id\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"title\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"children\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChange\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"ref\" | \"key\">} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst CarouselPagination: FC> = ({ className, ...rest }) => {\n const {\n meta: { currentIdx, list },\n api: { next, prev }\n } = useCarousel();\n\n const total = list?.length;\n\n return (\n \n \n \n \n \n \n {currentIdx + 1}\n /\n {total}\n \n \n \n \n \n \n );\n};\n\nexport default CarouselPagination;\n","import { FC, ReactNode } from \"react\";\nimport { Col, Row, Typography } from \"antd\";\n\nimport styles from \"./CarouselHeader.module.less\";\nimport CarouselPagination from \"../CarouselPagination\";\nimport { useCarousel } from \"../../providers\";\n\nconst { Text } = Typography;\n\nexport interface CarouselHeaderProps {\n /**\n * title\n */\n title: string;\n /**\n * icon\n */\n icon?: ReactNode;\n}\n\n/**\n * Carousel header component\n */\nconst CarouselHeader: FC = ({ title, icon }) => {\n const {\n meta: { list }\n } = useCarousel();\n\n return (\n \n \n {icon}\n {title}\n \n 1 ? void 0 : styles.Hidden} />\n \n );\n};\n\nexport default CarouselHeader;\n","import { ComponentProps, FC } from \"react\";\nimport { Badge, Col, Row, Typography } from \"antd\";\nimport { BulbOutlined, CompassOutlined, FileDoneOutlined } from \"@ant-design/icons\";\n\nimport { Nullable } from \"@ctra/utils\";\nimport styles from \"./OverviewHeader.module.less\";\n\nconst { Text } = Typography;\n\nexport interface OverviewHeaderProps extends ComponentProps {\n /**\n * UI variant\n */\n variant: \"insights\";\n /**\n * unseen count\n */\n unseen?: Nullable;\n /**\n * actionable count\n */\n actionable?: Nullable;\n}\n\n/**\n * Collapse header for the farm overview entries\n * @param { | undefined} unseen\n * @param { | undefined} actionable\n * @param {\"insights\"} variant\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst OverviewHeader: FC = ({ unseen, actionable, variant, children, ...rest }) => {\n /**\n * Icon for the header variant\n */\n const Icon = {\n insights: BulbOutlined,\n gamePlans: CompassOutlined,\n tasks: FileDoneOutlined\n }[variant];\n\n return (\n \n \n \n \n \n \n \n \n \n {actionable || 0}\n \n {children}\n \n \n \n );\n};\n\nexport default OverviewHeader;\n","import { ComponentProps, FC } from \"react\";\nimport { Collapse, List, Spin } from \"antd\";\n\nimport { classname } from \"@ctra/utils\";\nimport styles from \"./OverviewPanel.module.less\";\n\nconst { Panel } = Collapse;\n\nexport interface OverviewPanelProps extends ComponentProps {\n isLoading?: boolean;\n list: ComponentProps;\n}\n\n/**\n * Overview panel component for the farm overview Collapse\n * @param {string | undefined} className\n * @param {boolean | undefined} isLoading\n * @param {(({pagination, prefixCls: customizePrefixCls, bordered, split, className, children, itemLayout, loadMore, grid, dataSource, size, header, footer, loading, rowKey, renderItem, locale, ...rest}: ListProps) => JSX.Element) | {Item: import(\"./Item\").ListItemTypeProps} extends React.JSXElementConstructor ? P : ((({pagination, prefixCls: customizePrefixCls, bordered, split, className, children, itemLayout, loadMore, grid, dataSource, size, header, footer, loading, rowKey, renderItem, locale, ...rest}: ListProps) => JSX.Element) | {Item: import(\"./Item\").ListItemTypeProps} extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[(({pagination, prefixCls: customizePrefixCls, bordered, split, className, children, itemLayout, loadMore, grid, dataSource, size, header, footer, loading, rowKey, renderItem, locale, ...rest}: ListProps) => JSX.Element) | {Item: import(\"./Item\").ListItemTypeProps}] : {})} list\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} header\n * @param {Pick} props\n * @return {JSX.Element}\n * @constructor\n */\nconst OverviewPanel: FC = ({ className, isLoading = false, list, header, ...props }) => {\n const { loadMore, ...restOfList } = list;\n\n return (\n {header}}\n {...props}\n >\n \n {loadMore} : null}\n />\n \n \n );\n};\n\nexport default OverviewPanel;\n","import { ComponentProps, FC, ReactNode } from \"react\";\nimport { Row, Col, Spin, Space, Typography, Skeleton } from \"antd\";\nimport * as _ from \"lodash\";\n\nimport { classname } from \"@ctra/utils\";\nimport styles from \"./WidgetWrapper.module.less\";\n\nconst { Title } = Typography;\n\nexport interface WidgetWrapperProps extends Omit, \"title\"> {\n /**\n * widget title\n */\n title?: string | ReactNode;\n /**\n * main widget icon\n */\n icon?: ReactNode;\n /**\n * toolbar component(s)\n */\n toolbar?: ReactNode;\n /**\n * color variants\n */\n color?: \"highlighted\" | \"neutral\";\n /**\n * loading state\n */\n loading?: boolean;\n /**\n * tip to display when loading content\n */\n tip?: string;\n /**\n * omit the header components\n */\n omitHeader?: boolean;\n}\n\n/**\n * Wrapper for all the widgets in the app\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} icon\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} toolbar\n * @param {string | React.ReactElement> | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} title\n * @param {string | undefined} className\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @param {\"orange\" | \"gray\" | undefined} color\n * @param {boolean | undefined} loading\n * @param {boolean | undefined} omitHeader\n * @param {string | undefined} tip\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst WidgetWrapper: FC = ({\n icon,\n toolbar,\n title,\n className,\n children,\n color = \"neutral\",\n loading = false,\n omitHeader = false,\n tip,\n ...rest\n}) => {\n const colorMap = {\n highlighted: styles.HighlightedHeader,\n neutral: styles.NeutralHeader\n };\n\n return (\n \n \n {!omitHeader && (\n \n \n \n {icon}\n {_.isString(title) ? {title} : title}\n \n \n {toolbar && {toolbar}}\n \n )}\n \n \n \n \n {children}\n \n \n \n \n \n \n );\n};\n\nexport default WidgetWrapper;\n","import * as React from \"react\";\nimport { Layout, Spin } from \"antd\";\nimport { BasicProps } from \"antd/lib/layout/layout\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport styles from \"./AsyncLayout.module.less\";\n\nexport type AsyncLayoutProps = {\n /**\n * Loading state\n */\n loading?: boolean;\n /**\n * Loading tip\n */\n tip?: string;\n} & BasicProps;\n\nconst { Content } = Layout;\n\n/**\n * Layout with spinner for async content\n * @param loading\n * @param tip\n * @param children\n * @param className\n * @param rest\n * @constructor\n */\nconst AsyncLayout: React.FC = ({ loading = false, tip, children, className, ...rest }) => (\n \n \n {children}\n \n \n);\n\nexport default AsyncLayout;\n","import { FC, ReactElement } from \"react\";\nimport { Spin, Skeleton } from \"antd\";\nimport * as React from \"react\";\nimport _ from \"lodash\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport styles from \"./ContentWrapper.module.less\";\n\nexport interface ContentWrapperProps extends Omit, \"title\"> {\n /**\n * base color\n */\n accent?: \"white\" | \"teal\";\n /**\n * make it interactive by responding on hover\n */\n interactive?: boolean;\n /**\n * adds a padding to the component (optional as some of the content may don't need it)\n */\n padded?: boolean;\n /**\n * loading indicator\n */\n isLoading?: boolean;\n /**\n * loading tip\n */\n tip?: string;\n /**\n * title\n */\n title?: string | ReactElement;\n /**\n * footer\n */\n footer?: string | ReactElement;\n}\n\n/**\n * Content wrapper component with rounded edges and drop shadow\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined | (React.ReactElement> & undefined) | (Iterable & undefined) | (React.ReactPortal & undefined) | (Iterable & React.ReactElement>) | (Iterable & string) | (Iterable & number) | (Iterable & {}) | (Iterable & Iterable) | (Iterable & React.ReactPortal) | (Iterable & boolean) | (Iterable & null) | (Iterable & undefined)} children\n * @param {string | undefined} className\n * @param {string} accent\n * @param {boolean | undefined} interactive\n * @param {boolean} padded\n * @param {boolean} isLoading\n * @param {string | undefined} tip\n * @param {string | React.ReactElement> | undefined} title\n * @param {string | React.ReactElement> | undefined} footer\n * @param {Omit, \"isLoading\" | \"padded\" | \"children\" | \"footer\" | \"interactive\" | \"className\" | \"tip\" | \"title\" | \"accent\">} rest\n * @returns {JSX.Element}\n * @constructor\n */\nconst ContentWrapper: FC = ({\n children,\n className,\n accent = \"white\",\n interactive,\n padded = true,\n isLoading = false,\n tip,\n title,\n footer,\n ...rest\n}) => {\n return (\n \n \n \n {title && (\n
{title}
\n )}\n
{children}
\n {footer && (\n
{footer}
\n )}\n
\n
\n \n );\n};\n\nexport default ContentWrapper;\n","import { FC } from \"react\";\nimport { Row, Col, Typography } from \"antd\";\n\nimport { classname } from \"@ctra/utils\";\nimport styles from \"./Empty.module.less\";\nimport { EmptyProps } from \"./types\";\n\nconst { Title, Paragraph } = Typography;\n\n/**\n * Empty component for any layout\n * @param {string | undefined} title\n * @param {string | undefined} description\n * @param {string | undefined} className\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} illustration\n * @return {JSX.Element}\n * @constructor\n */\nconst Empty: FC = ({ title, description, className, illustration }) => (\n \n {illustration}\n \n {title && {title}}\n {description && {description}}\n \n \n);\n\nexport default Empty;\n","import { ComponentProps, FC, ReactNode, useEffect, useState } from \"react\";\nimport { Layout, Grid } from \"antd\";\nimport * as _ from \"lodash\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport { CtraLogo } from \"../../../elements\";\nimport styles from \"./ApplicationWrapper.module.less\";\n\nconst { Content, Sider, Header, Footer } = Layout;\n\nexport interface ApplicationWrapperProps extends ComponentProps {\n /**\n * sandbox mode\n */\n sandboxMode?: boolean;\n /**\n * dialog mode\n */\n dialogMode?: boolean;\n /**\n * components which will be rendered on top of the application (dialogs, modals, non-visuals, etc.)\n */\n floaters?: ReactNode;\n /**\n * components which will be rendered inside the sider\n */\n sider?:\n | ReactNode\n | (({\n isCollapsed,\n toggle\n }: {\n isCollapsed: boolean;\n toggle: (collapsed: boolean) => void;\n }) => ReactNode);\n /**\n * handler for sider collapse event\n * @param {boolean} collapsed\n */\n onSiderCollapse?: (collapsedBefore: boolean, collapsedAfter: boolean) => void;\n /**\n * components which will be rendered inside the header\n */\n header?: ReactNode;\n /**\n * components which will be rendered inside the footer\n */\n footer?: ReactNode;\n}\n\n/**\n * Application wrapper component with sidebar, header and footer\n * @param {string | undefined} className\n * @param {boolean | undefined} sandboxMode\n * @param {boolean | undefined} dialogMode\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} floaters\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined | (({isCollapsed, toggle}: {isCollapsed: boolean, toggle: (collapsed: boolean) => void}) => React.ReactNode)} sider\n * @param {((collapsedBefore: boolean, collapsedAfter: boolean) => void) | undefined} onSiderCollapse\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} header\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} footer\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @param {Omit, \"sandboxMode\" | \"dialogMode\" | \"floaters\" | \"footer\" | \"children\" | \"onSiderCollapse\" | \"header\" | \"className\" | \"sider\">} rest\n * @returns {JSX.Element}\n * @constructor\n */\nconst ApplicationWrapper: FC = ({\n className,\n sandboxMode,\n dialogMode,\n floaters,\n sider,\n onSiderCollapse,\n header,\n footer,\n children,\n ...rest\n}) => {\n const { md, lg } = Grid.useBreakpoint();\n const [collapsedSider, setCollapsedSider] = useState(!_.isUndefined(lg) && !lg);\n\n /**\n * auto collapse sidebar on mobile\n */\n useEffect(() => {\n setCollapsedSider(!lg);\n }, [lg]);\n\n return (\n \n {/* floater components */}\n {_.defaultTo(floaters, null)}\n\n {/* sidebar */}\n {sider && md ? (\n {\n if (type === \"clickTrigger\") {\n if (_.isFunction(onSiderCollapse)) {\n onSiderCollapse(collapsedSider, collapsed); // trackEvent(collapsedSider ? GAActions.collapseSidebar : GAActions.expandSidebar);\n }\n\n setCollapsedSider(collapsed);\n }\n }}\n >\n \n
\n \n
\n \n {_.isFunction(sider)\n ? sider({ isCollapsed: collapsedSider, toggle: (collapsed) => setCollapsedSider(collapsed) })\n : sider}\n \n
\n \n ) : null}\n\n {/* main content */}\n \n \n {header ? (\n
\n {header}\n
\n ) : null}\n \n \n {children}\n \n \n {!md && footer ?
{footer}
: null}\n
\n
\n \n );\n};\n\nexport default ApplicationWrapper;\n","import { Typography, Space } from \"antd\";\nimport { FC, HTMLProps } from \"react\";\nimport { LikeOutlined } from \"@ant-design/icons\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport { ContentWrapper } from \"../../layout\";\nimport styles from \"./EmptyPanel.module.less\";\n\nexport interface EmptyProps extends HTMLProps {\n /**\n * empty description\n */\n description: string;\n}\n\nconst { Text } = Typography;\n\n/**\n * Empty farm overview panel component\n */\nconst EmptyPanel: FC = ({ description, className, ...rest }) => (\n \n \n \n {description}\n \n \n);\n\nexport default EmptyPanel;\n","import { ComponentProps, FC, ReactNode } from \"react\";\nimport { Col, Row, Badge } from \"antd\";\n\nimport { classname } from \"@ctra/utils\";\nimport styles from \"./MobileViewRow.module.less\";\n\nexport interface MobileViewRowProps extends ComponentProps {\n /**\n * row icon\n */\n icon?: ReactNode;\n /**\n * tell if the icon should display a badge\n */\n hasBadge?: boolean;\n}\n\n/**\n * Farm overview item mobile view row component\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} icon\n * @param {boolean | undefined} hasBadge\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @param {string | undefined} className\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst MobileViewRow: FC = ({ icon, hasBadge, children, className, ...rest }) => {\n return (\n \n \n \n {hasBadge && }\n {icon ? (\n icon\n ) : (\n // empty icon as a spacer\n \n \n \n )}\n \n {children}\n \n \n );\n};\n\nexport default MobileViewRow;\n","import { ComponentProps, FC, ReactNode } from \"react\";\nimport { Row, Col, Tag, Typography, Grid, Badge } from \"antd\";\nimport { RightOutlined, CalendarOutlined } from \"@ant-design/icons\";\n\nimport { Nullable, classname } from \"@ctra/utils\";\n\nimport { Barn, Icon } from \"../../../elements\";\nimport MobileViewRow from \"../MobileViewRow\";\nimport styles from \"./InsightItem.module.less\";\n\nconst { Text } = Typography;\n\nexport interface InsightItemProps extends ComponentProps {\n /**\n * insight icon\n */\n icon: ReactNode;\n /**\n * title\n */\n title: string;\n /**\n * farm name\n */\n farm?: string;\n /**\n * insight time period\n */\n period: ReactNode;\n /**\n * group\n */\n group?: Nullable;\n /**\n * unseen indicator\n */\n unseen?: boolean;\n}\n\n/**\n * Mobile view\n * @param {string | undefined} className\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} icon\n * @param {string} title\n * @param {string | undefined} farm\n * @param {boolean | undefined} unseen\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} period\n * @param { | undefined} group\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst MobileView: FC = ({\n className,\n icon,\n title,\n farm,\n unseen,\n period,\n group,\n ...rest\n}) => (\n \n \n \n \n {title}\n \n {group ? (\n \n {group}\n \n ) : null}\n {farm && (\n }>\n {farm}\n \n )}\n }>{period}\n \n \n \n \n \n \n \n \n);\n\n/**\n * Insight entry for the farm overview component\n * @param {React.PropsWithChildren} props\n * @return {JSX.Element}\n * @constructor\n */\nconst InsightItem: FC = (props) => {\n const { icon, title, farm, period, className, unseen, group, ...rest } = props;\n const { md } = Grid.useBreakpoint();\n\n return md ? (\n \n \n \n \n {icon}\n \n {title}\n \n \n {group}\n \n \n {farm && (\n }>\n {farm}\n \n )}\n \n {period}\n \n \n \n \n \n \n ) : (\n \n );\n};\n\nexport default InsightItem;\n","import { Col, Row, Typography, Tag } from \"antd\";\nimport { ComponentProps, FC, ReactNode } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { classname } from \"@ctra/utils\";\nimport { FarmEntity } from \"@ctra/api\";\n\nimport { Icon, Feed, Barn } from \"../../../elements\";\nimport styles from \"./PanelHeader.module.less\";\n\nconst { Text } = Typography;\n\nexport interface PanelHeaderProps extends Omit, \"title\"> {\n /**\n * title\n */\n title: number | string;\n /**\n * description\n */\n description: string;\n /**\n * icon\n */\n icon?: ReactNode;\n /**\n * date\n */\n date?: string;\n /**\n * farm name\n */\n farmName?: FarmEntity[\"name\"];\n}\n\n/**\n * Panel header for simplified overview panels\n * @param {number | string} title\n * @param {string} description\n * @param { | undefined} farmName\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} icon\n * @param {string | undefined} date\n * @param {string | undefined} className\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst PanelHeader: FC = ({\n title,\n description,\n farmName,\n icon,\n date,\n className,\n ...rest\n}) => (\n \n \n {title}\n \n \n \n {icon && (\n \n \n \n )}\n \n \n \n {description}\n \n \n \n {_.defaultTo(date, \"\\u00A0\")}\n \n {farmName && (\n }\n >\n {farmName}\n \n )}\n \n \n \n \n \n \n);\n\nexport default PanelHeader;\n","import { ComponentProps, ComponentType, FC } from \"react\";\nimport { Row, Col, Typography, Space } from \"antd\";\nimport Icon from \"@ant-design/icons\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport styles from \"./Empty.module.less\";\n\nconst { Text } = Typography;\n\nexport interface EmptyProps extends ComponentProps {\n /**\n * header text\n */\n title: string;\n /**\n * icon component\n */\n icon: ComponentType;\n /**\n * icon background switch\n */\n withIconBackground?: boolean;\n}\n\n/**\n * Empty component\n * @param {string} title\n * @param {React.ComponentClass<{}> | React.FunctionComponent<{}>} icon\n * @param {boolean | undefined} withIconBackground\n * @param {string | undefined} className\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst Empty: FC = ({ title, icon, withIconBackground = true, className, children, ...rest }) => {\n return (\n \n \n {title}\n \n \n \n
\n \n
\n {children}\n
\n \n
\n );\n};\n\nexport default Empty;\n","import { FC, ReactNode, ComponentProps } from \"react\";\nimport { PageHeader, Space } from \"antd\";\n\nimport { WithSuperScript } from \"../../generic\";\nimport styles from \"./ChartHeader.module.less\";\n\nexport type ChartHeaderProps = {\n /**\n * chart title\n */\n title?: string | ReactNode;\n /**\n * chart description; usually a KPI description\n */\n description?: string;\n /**\n * custom chart tag\n */\n tag?: JSX.Element;\n /**\n * extra content to render in the header\n */\n extra?: ComponentProps[\"extra\"];\n};\n\n/**\n * Chart header with optional filter components\n * @param {JSX.Element | undefined} tag\n * @param {string | React.ReactElement> | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} title\n * @param {string | undefined} description\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} extra\n * @returns {JSX.Element}\n * @constructor\n */\nconst ChartHeader: FC = ({ tag, title, description, children, extra }) => {\n /**\n * Add a question mark icon next to the title\n * using a Popover when the description is present.\n */\n const titleComponent = description ? (\n \n {title}\n {tag}\n \n ) : (\n title\n );\n\n return (\n \n {children}\n \n );\n};\n\nexport default ChartHeader;\n","import * as _ from \"lodash\";\nimport { ReactNode, ComponentProps, PropsWithChildren, ReactElement } from \"react\";\nimport { Dropdown, Menu } from \"antd\";\nimport { MenuProps } from \"antd/es/menu\";\n\nimport { DefaultTFuncReturn } from \"@ctra/i18n\";\nimport { Nullable } from \"@ctra/utils\";\n\nimport { Button } from \"../../../elements\";\n\nexport type SimpleDropdownProps = ComponentProps & {\n /**\n * All the possible values the dropdown needs to display\n */\n values: Readonly>;\n /**\n * The currently active value\n */\n currentValue: Nullable;\n /**\n * Whether or not to show the label\n */\n showLabel?: boolean;\n /**\n * Handler to call when the user clicks on the list items\n */\n onChange: MenuProps[\"onClick\"];\n /**\n * Get a human readable label from the value\n * @param {Nullable} key\n * @param {{isToggle: boolean}} options\n * @return {DefaultTFuncReturn | React.ReactNode | T}\n */\n getLabel?: (key: Nullable, options: { isToggle: boolean }) => T | DefaultTFuncReturn | ReactNode;\n /**\n * Render an icon for the list item\n * @param {string} key\n */\n renderIcon?: (key: Nullable) => ReactNode;\n /**\n * Render an extra MenuItem for the list\n */\n renderExtra?: ReactNode;\n};\n\n/**\n * Wrapper around the dropdown to make the API a bit simpler\n * @param {Array} values\n * @param {} currentValue\n * @param {boolean | undefined} showLabel\n * @param {((info: MenuInfo) => void) | undefined} onChange\n * @param {((key: ) => (DefaultTFuncReturn | V)) | undefined} getLabel\n * @param {((key: ) => React.ReactNode) | undefined} renderIcon\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} renderExtra\n * @param {boolean | undefined} disabled\n * @param {Pick, currentValue: , showLabel?: boolean, onChange: MenuProps[\"onClick\"], getLabel?: (key: ) => (DefaultTFuncReturn | V), renderIcon?: (key: ) => React.ReactNode, renderExtra?: React.ReactNode}, keyof React.PropsWithChildren> extends (\"getLabel\" | \"onChange\" | \"values\" | \"renderIcon\" | \"renderExtra\" | \"disabled\" | \"currentValue\" | \"showLabel\") ? never : keyof React.PropsWithChildren>>} rest\n * @return {React.ReactElement}\n * @constructor\n */\nfunction SimpleDropdown({\n values,\n currentValue,\n showLabel = true,\n onChange,\n getLabel = (key) => key,\n renderIcon = () => null,\n renderExtra,\n disabled,\n ...rest\n}: PropsWithChildren>): ReactElement {\n const dropdownToggle = (\n \n );\n\n return values.length > 1 ? (\n (\n \n {_.without(values, currentValue).map((value) => (\n \n {getLabel(value, { isToggle: false })}\n \n ))}\n {renderExtra}\n \n )}\n placement=\"bottomRight\"\n disabled={disabled}\n {...rest}\n >\n {dropdownToggle}\n \n ) : (\n dropdownToggle\n );\n}\n\nexport default SimpleDropdown;\n","import React, { ComponentProps } from \"react\";\nimport * as _ from \"lodash\";\nimport { Space, Select } from \"antd\";\nimport { LabeledValue } from \"antd/es/select\";\n\nimport { DefaultTFuncReturn } from \"@ctra/i18n\";\nimport { classname, Nullable } from \"@ctra/utils\";\n\nimport styles from \"./MultiDropdown.module.less\";\n\nexport type MultiDropdownProps = Omit<\n ComponentProps,\n \"onSelect\" | \"onChange\"\n> & {\n /**\n * max number of options to allow, a new selection replaces the oldest one\n */\n limit?: Nullable;\n /**\n * label to display in front of the select field\n */\n label?: string | React.ReactNode;\n /**\n * placeholder\n */\n placeholder?: string | React.ReactNode;\n /**\n * possible values\n */\n values: Array;\n /**\n * selected values\n */\n selection: Array;\n /**\n * Handler to call when the user clicks on the list items\n */\n onChange: (selection: Array) => void;\n /**\n * Get a human readable label from the value\n * @param {string} key\n */\n getLabel?: (key: T) => T | DefaultTFuncReturn;\n /**\n * open state (mainly for unit tests)\n */\n open?: boolean;\n /**\n * filter options by input\n */\n filterOption?: ComponentProps[\"filterOption\"];\n /**\n * disabled\n */\n disabled?: ComponentProps[\"disabled\"];\n};\n\n/**\n * Multi-select dropdown with simple API\n * @param {number | null | undefined} limit\n * @param {string | React.ReactElement> | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} label\n * @param {Array} values\n * @param {Array} selection\n * @param {(selection: Array) => void} onChange\n * @param {((key: V) => (DefaultTFuncReturn | V)) | undefined} getLabel\n * @param {boolean | undefined} open\n * @param {any} className\n * @param {Pick<((props: (SelectProps & {children?: React.ReactNode} & {ref?: React.Ref | undefined})) => React.ReactElement) & {SECRET_COMBOBOX_MODE_DO_NOT_USE: string, Option: typeof Option, OptGroup: typeof OptGroup} extends React.JSXElementConstructor ? P : (((props: (SelectProps & {children?: React.ReactNode} & {ref?: React.Ref | undefined})) => React.ReactElement) & {SECRET_COMBOBOX_MODE_DO_NOT_USE: string, Option: typeof Option, OptGroup: typeof OptGroup} extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[((props: (SelectProps & {children?: React.ReactNode} & {ref?: React.Ref | undefined})) => React.ReactElement) & {SECRET_COMBOBOX_MODE_DO_NOT_USE: string, Option: typeof Option, OptGroup: typeof OptGroup}] : {}) & {limit?: Nullable, label?: string | React.ReactNode, placeholder?: string | React.ReactNode, values: Array, selection: Array, onChange: (selection: Array) => void, getLabel?: (key: V) => (DefaultTFuncReturn | V), open?: boolean, filterOption?: React.ComponentProps[\"filterOption\"], disabled?: React.ComponentProps[\"disabled\"]} & {children?: React.ReactNode | undefined}, keyof React.PropsWithChildren> extends (\"getLabel\" | \"selection\" | \"onChange\" | \"values\" | \"limit\" | \"className\" | \"label\" | \"open\") ? never : keyof React.PropsWithChildren>>} rest\n * @return {React.ReactElement}\n * @constructor\n */\nfunction MultiDropdown({\n limit,\n label,\n values,\n selection,\n placeholder,\n onChange,\n getLabel = (key) => key,\n open,\n className,\n ...rest\n}: React.PropsWithChildren>): React.ReactElement {\n /**\n * Handle change of selection\n * @param state\n */\n const handleChange = (state: Array) => {\n const values = _.map(limit ? _.takeRight(state, limit) : state, \"value\");\n\n onChange(values as Array);\n };\n\n return (\n \n {label}\n ({ value, label: getLabel(value) }))}\n style={{ minWidth: 100 }}\n allowClear\n placeholder={placeholder}\n showArrow\n labelInValue\n maxTagCount={3}\n mode=\"multiple\"\n onChange={handleChange}\n {...rest}\n >\n {_.without(values, ...selection).map((value) => (\n \n {getLabel(value)}\n \n ))}\n \n \n );\n}\n\nexport default MultiDropdown;\n","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgArea(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 30 23\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.8.6a1 1 0 00-1.4-.4l-8.7 4-8 7.7-10.6-1.6c-.6 0-1.1.3-1.1 1s.3 1 1 1L12.4 14l8.1-8 8.6-4c.6-.2.8-.7.6-1.2z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.4.4a1.5 1.5 0 00-.8-.1l-8.8 4a.2.2 0 00-.1.2L12 12 1.3 10.4a1 1 0 00-.7.2 2.7 2.7 0 00-.3.8v11.1a.8.8 0 00.8.8H29a.8.8 0 00.8-.8V1.1a.9.9 0 00-.3-.7z\",\n opacity: 0.2\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArea);\nexport default __webpack_public_path__ + \"static/media/area.a7aee8b9.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgAreaStacked(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 30 23\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.9.3h-7.6a1.8 1.8 0 00-1 .3l-7.5 6-1-.2-9.6-2.1a1 1 0 00-.6.1.8.8 0 00-.3.7v16.5a1.5 1.5 0 001.6 1.6h26a1.5 1.5 0 001.6-1.6V2A1.5 1.5 0 0027.9.3z\",\n opacity: 0.2\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29 8.2c-.3 0-.6 0-.8.2l-8.5 7-8.4 1.5-10-1.6a1 1 0 00-.7.2 1.2 1.2 0 00-.3.6v6.3a.8.8 0 00.7.8h27.7a.8.8 0 00.8-.8V9a.9.9 0 00-.5-.8z\",\n opacity: 0.3\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.2 18.8L1 17.2a1.2 1.2 0 01-1-1c0-.6.7-1 1.2-1L12 16.7l7.4-1.4 8.5-7a1 1 0 011.3 1.6l-8.8 7.3zM12.4 8.5L.9 6A1 1 0 010 4.7 1 1 0 011.3 4L12 6.3 19.6 0h9a1 1 0 011.1 1 1 1 0 01-1 1h-8.4z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAreaStacked);\nexport default __webpack_public_path__ + \"static/media/area-stacked.eeb6b43b.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgAreaStacked100(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 30 30\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.4 14.4a1.2 1.2 0 00-.8.2l-8.6 7-8.5 1.6-10.2-1.6a1 1 0 00-.7.2 1.2 1.2 0 00-.3.6v6.4a.8.8 0 00.8.8h28a.8.8 0 00.8-.8V15.2a.9.9 0 00-.5-.8z\",\n style: {\n isolation: \"isolate\"\n },\n opacity: 0.4\n }), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.1 0h-28a.8.8 0 00-.8.8v10.4a1 1 0 00.7.8l10.4 2.4h.1a.6.6 0 00.5-.2L20.6 8h8.5a.8.8 0 00.8-.8V.8a.8.8 0 00-.8-.8z\",\n opacity: 0.3\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.1 6.4h-8.8a.6.6 0 00-.5.2L11.4 13 1.3 10.4a1 1 0 00-.7.2.8.8 0 00-.3.6v17.6a.8.8 0 00.8.8h28a.8.8 0 00.8-.8V7.2a.8.8 0 00-.8-.8z\",\n opacity: 0.2\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.3 25.1L1 23.5a1.2 1.2 0 01-1-1.1c0-.5.6-1 1-1L12 23l7.6-1.4 8.6-7a1 1 0 111.3 1.6l-9 7.3zM12.6 14.7L1 12.2a1 1 0 01-.9-1.3 1 1 0 011.3-.8l10.7 2.2L20 6.1H29a1 1 0 011.1 1 1 1 0 01-1 .9h-8.6z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAreaStacked100);\nexport default __webpack_public_path__ + \"static/media/area-stacked-100.dc3afcd4.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgBar(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 30 28\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 21.6h2.4c.2 0 .2 0 .3-.2V15c0-.2-.1-.3-.3-.3H18c-.2 0-.4.1-.4.3v6.4c0 .1.2.3.4.3zm5.9 0h2.3c.2 0 .2-.3.3-.5v-10c0-.2-.1-.3-.3-.3H24c-.2 0-.3.1-.3.3v10.1c0 .2.1.3.3.3zm-11.8 0h2.3c.2 0 .2-.3.3-.5V10c0-.2-.1-.4-.3-.4H12c-.2 0-.3.2-.3.4v11c0 .2 0 .4.3.4zm-5.8 0h2.3c.2 0 .3-.4.3-.6V2.5c0-.3-.1-.5-.3-.5H6.3c-.2 0-.3.3-.3.5V21c0 .3.1.5.3.5zm23.1 2.9H2.8V.3c0-.1-.1-.3-.3-.3H.3L0 .3V27l.3.3h29.2l.3-.3v-2.2c0-.2-.2-.3-.4-.3z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBar);\nexport default __webpack_public_path__ + \"static/media/bar.ebf6f4a3.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgBarHorizontal(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 30 28\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.41 18.76h4.94a.4.4 0 01.4.4v2.07a.4.4 0 01-.4.4H6.41a.4.4 0 01-.4-.4v-2.07a.4.4 0 01.4-.4zm0-6h10.67a.4.4 0 01.4.4v2.07a.4.4 0 01-.4.4H6.41a.4.4 0 01-.4-.4v-2.07a.4.4 0 01.4-.4zm0-6h14.54a.4.4 0 01.4.4v2.07a.4.4 0 01-.4.4H6.41a.4.4 0 01-.4-.4V7.16a.4.4 0 01.4-.4zM6.36.93h20.19a.4.4 0 01.4.4V3.4a.4.4 0 01-.4.4H6.36a.4.4 0 01-.4-.4V1.33a.4.4 0 01.4-.4zm23.21 23.66H2.82V.34A.36.36 0 002.49 0H.33A.36.36 0 000 .34v26.74a.36.36 0 00.33.34h29.24a.36.36 0 00.33-.34v-2.16a.36.36 0 00-.33-.33z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBarHorizontal);\nexport default __webpack_public_path__ + \"static/media/bar-horizontal.c3e7ae47.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgBarStacked(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 30 28\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.6 24.6H3V.3c0-.2-.2-.4-.4-.3H.4C.2 0 0 0 0 .3v26.8c0 .2.2.4.4.3h29.2c.2 0 .3-.1.3-.3v-2.2l-.3-.3zM6.2 12.7c-.2 0-.2 0-.2.2v2.5c0 .2.2.4.4.4H11c.2 0 .3-.2.3-.4V13c0-.2-.1-.4-.3-.4zm0-2.9H15l.3-.3V7c0-.2 0-.4-.3-.4H6.2l-.3.4v2.5l.3.3zm0-5.8h12.1c.2 0 .2-.2.2-.3V1.2c0-.2 0-.4-.3-.4h-12c-.2 0-.3.2-.3.4v2.5l.3.3zm0 17.7h2.3l.3-.3v-2.5c0-.2-.1-.3-.3-.3H6.2l-.3.3v2.5c0 .2.1.4.3.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.3,\n d: \"M15.7 18.6h-3.9l-.3.3v2.5c0 .2.2.2.3.2h3.9c.1 0 .3 0 .3-.2v-2.5l-.3-.3zM25.8.8h-4.2c-.1.2-.3.2-.3.4v2.5c0 .2.1.3.3.3h4.2c.2 0 .3-.1.3-.3V1.2c0-.2 0-.4-.3-.4zm-7.4 6h2.2c.2 0 .3.1.3.3v2.6c0 .2-.1.3-.3.3h-2.2a.3.3 0 01-.3-.3V7.1c0-.2.1-.3.3-.3zm-4.2 5.8h3.4c.2 0 .3.1.3.3v2.6c0 .2-.1.3-.3.3h-3.4a.3.3 0 01-.3-.3v-2.6c0-.2.1-.3.3-.3z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBarStacked);\nexport default __webpack_public_path__ + \"static/media/bar-stacked.9a685eaa.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgBarStacked100(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 30 28\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 18.6h5.6c.2 0 .3.2.3.3v2.2c0 .2-.1.3-.3.3h-5.7a.3.3 0 01-.3-.3v-2.2c0-.1.1-.3.3-.3zM17 8.3h9.5c.2 0 .3.1.3.3v2.2c0 .2-.1.3-.3.3H17a.3.3 0 01-.3-.3V8.6c0-.2.1-.3.3-.3zm9.6 5.2H13.1c-.1 0-.3.1-.3.3V16c0 .2.2.3.3.3h13.5c.2 0 .3-.1.3-.3v-2.2c0-.2-.1-.3-.3-.3z\",\n opacity: 0.3\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.2 6.8H8V.2H5.3v1.4h1v5.2zm4.3-.8c.2.3.5.6.9.7a2.6 2.6 0 002.2 0c.4-.1.7-.4 1-.7l.5-1.1c.3-1 .3-2 0-2.9-.1-.4-.3-.7-.6-1-.2-.4-.5-.6-.9-.8l-1-.2a2.5 2.5 0 00-2.1 1c-.3.3-.5.6-.6 1a4.8 4.8 0 00.6 4zm1-2.4a3.8 3.8 0 01.2-1.5c0-.2.2-.3.4-.4.2-.2.6-.2.9 0l.3.4.3.6a4.4 4.4 0 010 1.6c0 .3-.1.5-.3.7 0 .2-.2.3-.3.4-.3.2-.6.2-.9 0-.2 0-.3-.2-.4-.4a3 3 0 01-.2-.6v-.8zm5 2.4c.4.6 1.2 1 2 1 .3 0 .7-.1 1-.3l1-.7.5-1.1c.3-1 .3-2 0-2.9 0-.4-.3-.7-.5-1-.3-.4-.6-.6-1-.8l-1-.2c-.4 0-.8 0-1.2.2l-.9.7L16 2c-.3 1-.3 2 0 2.9 0 .4.3.8.5 1.1zm1-3.3l.1-.6.4-.4.4-.1.5.1.3.4.3.6v1.6l-.3.6c0 .2-.1.3-.3.4a.8.8 0 01-1 0l-.3-.4-.2-.6v-.8-.8zm6 .6h.8c.4-.1.8-.4 1-.8 0-.3.1-.5 0-.8v-.6l-.4-.5-.6-.4H23l-.6.3a1.4 1.4 0 00-.5 1.2c0 .5.1.9.4 1.2.4.3.9.5 1.4.4zm-.4-2.1l.5-.2h.2l.3.1.1.3v.5l-.1.3-.3.1h-.2c-.2 0-.4 0-.6-.2a.7.7 0 01-.2-.4c0-.2.1-.4.3-.5zm1.3 5.6L28.2.2h-.9l-3.8 6.6h.9zM26.9 4l-.4.5a1.9 1.9 0 000 1.3c0 .2.2.4.3.5l.6.4h1.5a1.6 1.6 0 001-1v-.6-.6l-.4-.5-.6-.3-.6-.2a2 2 0 00-.8.2c-.2 0-.5.1-.6.3zm1.2.4h.3l.3.2.1.2v.3c0 .5-.3.8-.7.8-.2 0-.4 0-.5-.2a.7.7 0 01-.3-.6c0-.2.1-.4.3-.5l.5-.2zm-13 6.3V8.6c0-.2-.1-.3-.3-.3H6.3c-.2 0-.4.1-.4.3v2.2c0 .2.2.3.4.3h8.5c.2 0 .4-.2.4-.3zm14.5 13.8H2.8V.3c0-.1-.1-.3-.3-.3H.3L0 .3v26.8c0 .2.1.3.3.3h29.3c.1 0 .3-.1.3-.3v-2.2c0-.2-.2-.3-.3-.3zM6.3 13.5c-.2 0-.3.2-.3.3V16c0 .2.1.3.3.3H11c.2 0 .3-.1.3-.3v-2.2c0-.1-.1-.3-.3-.3zm0 8h12.5c.2 0 .3-.2.3-.4V19c0-.1-.1-.3-.3-.3H6.3L6 19v2.2c0 .2.2.3.3.3z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBarStacked100);\nexport default __webpack_public_path__ + \"static/media/bar-stacked-100.59a2c351.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgColumnStacked(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 30 28\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.3 7.6h-2.1a.4.4 0 00-.4.3v2a.4.4 0 00.4.4h2.1a.4.4 0 00.4-.3V8a.4.4 0 00-.4-.4zm6 4.8h-2.1a.4.4 0 00-.4.4v3.6a.4.4 0 00.4.4h2.1a.4.4 0 00.3-.4v-3.6s-.1-.4-.3-.4zm5.8-1.6H24a.3.3 0 00-.3.3v3.2a.3.3 0 00.3.3h2.2a.3.3 0 00.3-.3v-3.2a.3.3 0 00-.4-.3zM8.5 2H6.4c-.4.1-.4.3-.4.5v4l.3.1h2.2a.4.4 0 00.3-.3v-4a.4.4 0 00-.3-.3z\",\n opacity: 0.3\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.3 9h2.4c.2 0 .3.1.3.3v12c0 .2-.1.3-.3.3H6.3a.3.3 0 01-.3-.3v-12c0-.2.1-.3.3-.3zm5.9 12.6h2.3c.2 0 .2-.2.3-.4v-8.6l-.3-.3h-2.3c-.2 0-.4.1-.4.3v8.6c0 .2.2.4.4.4zm11.8.1h2.3c.2 0 .2-.1.3-.3v-4.6c0-.2 0-.4-.3-.4H24c-.2 0-.4.2-.3.4v4.6c0 .2.1.3.3.3zm-5.8 0h2.3c.2 0 .2-.1.3-.3v-2.2c0-.2-.1-.3-.3-.3h-2.3c-.2 0-.4.1-.4.3v2.2c0 .2.2.3.4.3zm11.4 2.9H3V.3c0-.2-.2-.4-.4-.3H.4C.2 0 0 .1 0 .3v26.8c0 .2.2.3.4.3h29.2c.2 0 .4-.1.4-.3v-2.2c0-.2-.2-.3-.4-.3z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgColumnStacked);\nexport default __webpack_public_path__ + \"static/media/column-stacked.782cbd0f.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgColumnStacked100(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 30 28\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 8.3l-.3.1v4h2.9v-4H18zm-5.8 0h-.4v2.4h2.8V8.3h-2.4zm13.9 0H24c-.4 0-.4 0-.4.2V15l.4.1h2.5V8.2a1 1 0 00-.4 0zm-19.9 0c-.2 0-.2 0-.2.2V15l.3.1h2.4V8.2h-.3z\",\n style: {\n isolation: \"isolate\"\n },\n opacity: 0.3\n }), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.1 13.8c-.2 0-.3 0-.3.2v7.4l.3.1h2.2l.3-.2V14l-.3-.2zm-6-1.6l-.3.2v9l.3.2h2.2c.1 0 .3 0 .3-.2v-9l-.3-.2zM6 17v4.4c0 .2 0 .2.3.2h2.2c.1 0 .3-.1.3-.3v-4.3c0-.2-.2-.3-.3-.3H6.3c-.2 0-.3 0-.3.3zm20-.3h-2c-.2 0-.3.1-.4.3v4.5l.4.1H26c.2 0 .3-.1.4-.3V17c0-.2-.3-.3-.4-.3zm3.6 8H2.8V.3c0-.1-.1-.3-.3-.3H.3C.1 0 0 .2 0 .3v26.8c0 .2.1.3.3.3h29.3c.1 0 .3-.1.3-.3v-2.2c0-.2-.2-.3-.3-.3zM6.2 6.8H8V.2H5.2v1.4h1v5.2zm4.3-.8c.2.3.5.6.8.7l1.2.3c.4 0 .8-.1 1.1-.3.4-.1.7-.4.9-.7.3-.3.4-.7.6-1.1.2-1 .2-2 0-2.9l-.6-1a2.5 2.5 0 00-2-1 2.5 2.5 0 00-2 1c-.3.3-.5.6-.6 1a4.8 4.8 0 00.6 4zm.9-2.4a3.7 3.7 0 01.2-1.5l.4-.4c.3-.2.7-.2 1 0l.3.4.2.6.1.8a4.2 4.2 0 01-.3 1.5c0 .2-.2.3-.3.4-.3.2-.6.2-1 0l-.3-.4-.3-.6v-.8zm5 2.4a2.5 2.5 0 004 0c.3-.3.5-.7.6-1 .2-1 .2-2 0-3-.1-.3-.3-.7-.6-1-.2-.3-.5-.6-.9-.8L18.4 0a2.5 2.5 0 00-2 1c-.3.3-.5.7-.6 1-.3 1-.3 2 0 3 .1.3.3.7.6 1zm1-3.3l.2-.6.4-.4.4-.1.5.1.3.4.2.6v1.6c0 .2 0 .5-.2.7l-.3.3-.5.2c-.2 0-.3 0-.4-.2a1 1 0 01-.4-.4l-.2-.6a4.2 4.2 0 010-1.6zm6.1.6h.8c.4-.1.8-.4 1-.8v-.8-.6l-.4-.5-.6-.4h-.7a2 2 0 00-.8 0c-.2 0-.4.2-.5.3a1.5 1.5 0 00-.6 1.2c0 .5.2.9.5 1.2.4.3.9.5 1.3.4zM23 1.2l.5-.2h.3l.3.1.1.3V2l-.1.2-.3.1h-.3c-.2 0-.4 0-.5-.2l-.2-.4c0-.2 0-.4.2-.5zm1.4 5.6L28.2.2h-.9l-3.8 6.6h.9zM26.9 4c-.2.1-.4.3-.4.5a1.9 1.9 0 000 1.3c0 .2.2.4.3.5l.6.4h.7a2.4 2.4 0 001.3-.4l.4-.5.2-.7c0-.2 0-.4-.2-.6 0-.2-.2-.4-.3-.5l-.6-.3a2.3 2.3 0 00-1.5 0l-.6.3zm1.2.4h.2l.4.2.1.3v.3c0 .2 0 .4-.2.5L28 6c-.2 0-.4 0-.6-.2a.8.8 0 01-.2-.6c0-.4.4-.7.8-.7z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgColumnStacked100);\nexport default __webpack_public_path__ + \"static/media/column-stacked-100.c7788877.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDonut(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 30 30\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.6 16.8c0 1-.4 2.1-1 3-.6 1-1.5 1.7-2.5 2.1-1 .4-2.1.6-3.2.4-2.2-.4-4-2.2-4.4-4.4-.2-1.1 0-2.3.4-3.3a5.6 5.6 0 015-3.5h1.2V3.7H13a13 13 0 1013 13v-1h-7.4zm5.1 1A10.8 10.8 0 1112 6v3a7.8 7.8 0 00-6.5 9.6c.7 2.9 3 5.1 5.8 5.8 4.5 1.1 9-2 9.6-6.5zm-7-10.4c1.5 0 3 .6 4 1.6s1.5 2.5 1.5 4v1h7.5v-1a13 13 0 00-13-13h-1.3v7.4zm7.6-2c1.8 1.7 2.9 4 3.2 6.4h-3a7.7 7.7 0 00-6.7-6.5v-3c2.4.2 4.7 1.3 6.5 3z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDonut);\nexport default __webpack_public_path__ + \"static/media/donut.35f6c701.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgGeospatialScatter(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 30 30\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M.3 20.2h2.4c.2 0 .3.1.3.3v2.4c0 .2-.1.3-.3.3H.3a.3.3 0 01-.3-.3v-2.4c0-.2.1-.3.3-.3zM.3 0h2.4c.2 0 .3.1.3.3v2.4c0 .2-.1.3-.3.3H.3a.3.3 0 01-.3-.3V.3C0 .1.1 0 .3 0zm2.3 13.6H.3c-.2 0-.3.2-.3.4v2.3l.3.3h2.3c.2 0 .4-.2.4-.4V14c0-.4-.2-.4-.4-.4zm0-6.8H.3c-.1 0-.2 0-.3.2v2.3l.3.3h2.3c.2 0 .4-.1.4-.3V7.1c0-.3-.2-.3-.4-.3zm6.8 6.8H7.1l-.3.3v2.3l.3.3h2.3l.3-.3V14c0-.4-.1-.4-.3-.4zM7.1 3h2.3c.2 0 .3-.2.3-.4V.3L9.4 0H7.1l-.3.3v2.3c0 .2 0 .4.3.4zm13.4-3h2.4c.2 0 .3.1.3.3v2.4c0 .2-.1.3-.3.3h-2.4a.3.3 0 01-.3-.3V.3c0-.2.1-.3.3-.3zm.1 16.4h2.2c.2 0 .4-.2.4-.4v-2.2c0-.2-.2-.4-.4-.4h-2.3c-.2 0-.3.2-.3.4V16c0 .4.2.4.4.4zm9-2.8h-2.3c-.2 0-.3.2-.3.4v2.3l.3.3h2.3l.3-.3V14c0-.4-.1-.4-.3-.4zm-13.4 0H14c-.2 0-.4.1-.4.3v2.3c0 .2.2.3.4.3h2.3l.3-.3V14c-.2-.4-.2-.4-.4-.4zM27.3 0h2.4c.2 0 .3.1.3.3v2.4c0 .2-.1.3-.3.3h-2.4a.3.3 0 01-.3-.3V.3c0-.2.1-.3.3-.3zM16.2 0H14c-.2 0-.4.1-.4.3v2.3c0 .2.2.4.4.4h2.3c.2 0 .3-.2.3-.4V.3c-.2-.1-.2-.3-.4-.3zM.3 27h2.4c.2 0 .3.1.3.3v2.4c0 .2-.1.3-.3.3H.3a.3.3 0 01-.3-.3v-2.4c0-.2.1-.3.3-.3zm6.8 0h2.4c.2 0 .3.1.3.3v2.4c0 .2-.1.3-.3.3H7.1a.3.3 0 01-.3-.3v-2.4c0-.2.1-.3.3-.3zm15.7 0h-2.3l-.3.3v2.3c0 .2.2.3.4.3h2.2c.2 0 .4-.1.4-.3v-2.2c0-.2 0-.4-.4-.4zm4.5 0h2.4c.2 0 .3.1.3.3v2.4c0 .2-.1.3-.3.3h-2.4a.3.3 0 01-.3-.3v-2.4c0-.2.1-.3.3-.3zm-11.1 0H14c-.2 0-.4.1-.4.3v2.3c0 .2.2.4.4.4h2.3c.2 0 .3-.2.3-.4v-2.2c-.2-.2-.2-.4-.4-.4zm11.1-6.8h2.4c.2 0 .3.1.3.3v2.4c0 .2-.1.3-.3.3h-2.4a.3.3 0 01-.3-.3v-2.4c0-.2.1-.3.3-.3zm-11.1 0H14c-.2 0-.4.2-.4.4v2.2c0 .2.2.4.4.4h2.3c.2 0 .3-.2.3-.4v-2.3c-.2-.1-.2-.3-.4-.3zM29.6 6.8h-2.3l-.3.3v2.3l.3.3h2.3c.2 0 .4-.1.4-.3V7.1c0-.3-.2-.3-.4-.3zm-13.4 0H14c-.2 0-.4.1-.4.3v2.3c0 .2.2.3.4.3h2.3l.3-.3V7.1c-.2-.3-.2-.3-.4-.3zm-7 16.4c0-.7-.3-1.4-.7-2-.5-.4-1.2-.7-1.9-.6-.7 0-1.3.2-1.9.6-.5.5-.8 1.3-.7 2 0 .7.3 1.3.7 1.9.5.5 1.2.8 1.9.7.7 0 1.5-.2 2-.7.5-.6.7-1.3.6-2zm.9-18.8a2 2 0 00-1.4.5 2 2 0 00-.5 1.4c0 .5.2 1 .5 1.4.8.7 2 .7 2.8 0 .3-.4.5-.9.5-1.4 0-.5-.2-1-.5-1.4a2 2 0 00-1.4-.5zm11.7 13.4c-1 0-2.1.4-2.8 1.2a4 4 0 00-1.2 2.8c0 1 .4 2.1 1.2 2.8a4 4 0 002.8 1.2c1 0 2.1-.4 2.8-1.2.7-.7 1.2-1.7 1.2-2.8 0-1-.4-2.1-1.2-2.8a4.1 4.1 0 00-2.8-1.2z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGeospatialScatter);\nexport default __webpack_public_path__ + \"static/media/geospatial-scatter.eb7b3a9d.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgHeatmap(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 30 22\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.6 7.8h3.1c.9 0 1.6.7 1.6 1.6v3.1c0 .9-.7 1.6-1.6 1.6H1.6c-.9 0-1.6-.7-1.6-1.6V9.4c0-.9.7-1.6 1.6-1.6zM17.3 0h3.1c.9 0 1.6.7 1.6 1.6v3.1c0 .9-.7 1.6-1.6 1.6h-3.1c-.9 0-1.6-.7-1.6-1.6V1.6c0-.9.7-1.6 1.6-1.6zM9.4 0h3.1c.9 0 1.6.7 1.6 1.6v3.1c0 .9-.7 1.6-1.6 1.6H9.4c-.9 0-1.6-.7-1.6-1.6V1.6C7.8.7 8.5 0 9.4 0zM1.6 0h3.1c.9 0 1.6.7 1.6 1.6v3.1c0 .9-.7 1.6-1.6 1.6H1.6C.7 6.3 0 5.6 0 4.7V1.6C0 .7.7 0 1.6 0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.2,\n d: \"M9.4 15.7h3.1c.9 0 1.6.7 1.6 1.6v3.1c0 .9-.7 1.6-1.6 1.6H9.4c-.9 0-1.6-.7-1.6-1.6v-3.1c0-.9.7-1.6 1.6-1.6zM25.1 0h3.1c.9 0 1.6.7 1.6 1.6v3.1c0 .9-.7 1.6-1.6 1.6h-3.1c-.9 0-1.6-.7-1.6-1.6V1.6c0-.9.7-1.6 1.6-1.6zm0 7.8h3.1c.9 0 1.6.7 1.6 1.6v3.1c0 .9-.7 1.6-1.6 1.6h-3.1c-.9 0-1.6-.7-1.6-1.6V9.4c0-.9.7-1.6 1.6-1.6z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.8,\n d: \"M17.3 15.7h3.1c.9 0 1.6.7 1.6 1.6v3.1c0 .9-.7 1.6-1.6 1.6h-3.1c-.9 0-1.6-.7-1.6-1.6v-3.1c0-.9.7-1.6 1.6-1.6zM9.4 7.8h3.1c.9 0 1.6.7 1.6 1.6v3.1c0 .9-.7 1.6-1.6 1.6H9.4c-.9 0-1.6-.7-1.6-1.6V9.4c0-.9.7-1.6 1.6-1.6z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.5,\n d: \"M25.1 15.7h3.1c.9 0 1.6.7 1.6 1.6v3.1c0 .9-.7 1.6-1.6 1.6h-3.1c-.9 0-1.6-.7-1.6-1.6v-3.1c0-.9.7-1.6 1.6-1.6zm-23.5 0h3.1c.9 0 1.6.7 1.6 1.6v3.1c0 .9-.7 1.6-1.6 1.6H1.6C.7 22 0 21.3 0 20.4v-3.1c0-.9.7-1.6 1.6-1.6zm15.7-7.9h3.1c.9 0 1.6.7 1.6 1.6v3.1c0 .9-.7 1.6-1.6 1.6h-3.1c-.9 0-1.6-.7-1.6-1.6V9.4c0-.9.7-1.6 1.6-1.6z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgHeatmap);\nexport default __webpack_public_path__ + \"static/media/heatmap.a3437500.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLine(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 30 18\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.7 7.5a2.8 2.8 0 00-1.6-.2L20 11.7 16.5 10l4-4.1 8.6-4a1 1 0 00.4-1.3 1 1 0 00-1.4-.5l-8.6 4-5 4.8-4.2-2-4.1 4-5-.7c-.7 0-1.1.3-1.1.9s.3 1.1.9 1.1l3.5.8-4.1 3.9a.9.9 0 000 1.4l.7.3.8-.3 5.2-5.2 5.5.8 2.5-2.5 5 2.5 9.1-5a1.3 1.3 0 00.5-1.4zm-17.9 4.4l-3-.5 2-1.9 2 1.1z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLine);\nexport default __webpack_public_path__ + \"static/media/line.9aeab759.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgNumber(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 30 27\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.5 23.2h27.2c.2 0 .3.1.3.3v2.8c0 .2-.1.3-.3.3H1.5a.3.3 0 01-.3-.3v-2.8c0-.2.1-.3.3-.3zm2.9-3.5a7 7 0 002.7.4c1 0 1.9-.1 2.8-.4a6.7 6.7 0 003.9-3.4 7 7 0 00.1-5.4c-.2-.8-.6-1.5-1.2-2a4.6 4.6 0 00-2-1.4 7 7 0 00-2.4-.4h-.8l-.5.1 4.5-7h-5L2.2 7l-.9 1.5L.6 10c-.2.5-.4 1-.4 1.6-.2.7-.2 1.3-.2 2 0 1 .2 2 .6 2.8.4.8.9 1.4 1.5 2 .7.6 1.4 1.1 2.3 1.4zM5 11a3 3 0 012.3-.9 3 3 0 013 3.1 3 3 0 01-3 3.1 3 3 0 01-3.2-3 3 3 0 011-2.3zm24.4-4.5a8.7 8.7 0 00-1.1-3.3A7 7 0 0026 1c-1-.6-2.3-1-3.5-.9-1.3 0-2.5.2-3.6.9a8.5 8.5 0 00-3.4 5.6l-.3 3.6c0 1.2.1 2.3.3 3.5.2 1.2.6 2.3 1.2 3.3.5 1 1.3 1.7 2.2 2.3 1 .7 2.3 1 3.6 1 1.2 0 2.5-.3 3.5-1 1-.6 1.7-1.4 2.3-2.3.5-1 .9-2.2 1.1-3.3.2-1.2.3-2.3.3-3.5l-.3-3.6zm-4 5.5c0 .7-.1 1.4-.4 2-.1.6-.4 1.2-.9 1.7s-1.1.7-1.8.7c-.6 0-1.2-.3-1.7-.7-.5-.5-.8-1-1-1.7l-.4-2V8c0-.7.2-1.4.5-2 .1-.6.5-1.2.9-1.7.5-.4 1-.7 1.7-.7s1.3.2 1.8.7c.5.5.8 1 .9 1.7.3.6.4 1.3.4 2v3.9z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgNumber);\nexport default __webpack_public_path__ + \"static/media/number.2733d377.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgScatter(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 30 27\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.7 19.6a2.5 2.5 0 001.7-4.2c-1-1-2.5-1-3.5 0a2.5 2.5 0 001.8 4.2zm3.9-9.2a1.9 1.9 0 001.3-3.2c-.7-.7-1.9-.7-2.6 0a1.9 1.9 0 001.3 3.2zm8 10.6c2 0 3.7-1.7 3.7-3.7 0-1-.4-1.9-1-2.6a3.7 3.7 0 10-2.7 6.4zm4.2-13.6a2.2 2.2 0 001.5-3.8 2.2 2.2 0 10-1.5 3.7zm4.6 17.1H2.8V.3c0-.2-.1-.3-.3-.3H.3C.1 0 0 .1 0 .3V27c0 .2 0 .4.3.4h29.1c.2 0 .4-.2.3-.4v-2.1c0-.2-.1-.3-.3-.3z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgScatter);\nexport default __webpack_public_path__ + \"static/media/scatter.17d8ea23.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgTable(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 30 22\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.7 0H1A1 1 0 000 1v21.3a1 1 0 001 1h27.7a1 1 0 001-1V1.1a1 1 0 00-1-1.1zm-1.3 6.9h-7V2.4h7zm0 7.4h-7V9h7zM11.6 9h6.6v5.3h-6.6zM18.1 7h-6.6V2.4h6.6zM2.4 9h7v5.3h-7zm0-6.6h7v4.5h-7zm0 14h7V21h-7zm9.2 0h6.6V21h-6.6zM27.4 21h-7v-4.5h7z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTable);\nexport default __webpack_public_path__ + \"static/media/table.51226341.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgWordCloud(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 30 27\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.1 18.2c.2 0 .2-.2.2-.3v-2.1l-.2-.3H6.4c-.2 0-.2.1-.2.3v2c0 .2 0 .3.2.4zm6.7 2v2.4H30V20h-4.2zm0-2h2.7v-2.7h-2.7v2.7zM4.5 9V6.8H1.6v2.7h2.9zm21.3 2v2.7H30V11zM4.5 13.4V11H.2v2.7h4.3zm6.5.3h8.3l.1-.3v-2l-.1-.4H11l-.2.3v2c0 .3 0 .4.2.4zm-2.2 0l.3-.1V.2L8.8 0H6.7c-.2 0-.3 0-.3.2v13.4l.3.1zm12.7-2.9c-.1 0-.3 0-.3.2v15.3c0 .2.2.2.3.2h2.1c.2 0 .3 0 .3-.2V11l-.3-.2zM.3 19.9h19c.2 0 .3.1.3.3v2.1c0 .2-.1.3-.3.3H.3a.3.3 0 01-.3-.3v-2.1c0-.2.1-.3.3-.3zM11.1 6.4h16.8c.2 0 .3.1.3.3v2.1c0 .2-.1.3-.3.3H11.1a.3.3 0 01-.3-.3V6.7c0-.2.1-.3.3-.3zM11 4.6h9.7c.2 0 .2-.1.2-.3v-2c0-.2 0-.4-.2-.4H11c-.2 0-.2.2-.2.3v2.1c0 .2 0 .3.2.3z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWordCloud);\nexport default __webpack_public_path__ + \"static/media/word-cloud.bccbefac.svg\";\nexport { ForwardRef as ReactComponent };","import * as React from \"react\";\nimport Icon from \"@ant-design/icons\";\n\nimport { ReactComponent as Area } from \"./svg/area.svg\";\nimport { ReactComponent as StackedArea } from \"./svg/area-stacked.svg\";\nimport { ReactComponent as StackedArea100 } from \"./svg/area-stacked-100.svg\";\n\nimport { ReactComponent as Bar } from \"./svg/bar.svg\";\nimport { ReactComponent as HorizontalBar } from \"./svg/bar-horizontal.svg\";\nimport { ReactComponent as StackedBar } from \"./svg/bar-stacked.svg\";\nimport { ReactComponent as StackedBar100 } from \"./svg/bar-stacked-100.svg\";\n\nimport { ReactComponent as StackedColumn } from \"./svg/column-stacked.svg\";\nimport { ReactComponent as StackedColumn100 } from \"./svg/column-stacked-100.svg\";\n\nimport { ReactComponent as Donut } from \"./svg/donut.svg\";\nimport { ReactComponent as GeospatialScatter } from \"./svg/geospatial-scatter.svg\";\nimport { ReactComponent as Heatmap } from \"./svg/heatmap.svg\";\nimport { ReactComponent as Line } from \"./svg/line.svg\";\nimport { ReactComponent as NumberSVG } from \"./svg/number.svg\";\nimport { ReactComponent as Scatter } from \"./svg/scatter.svg\";\nimport { ReactComponent as Table } from \"./svg/table.svg\";\nimport { ReactComponent as WordCloud } from \"./svg/word-cloud.svg\";\n\nexport const chartViewIconMap = {\n area: Area,\n \"stacked-area\": StackedArea,\n \"stacked-area-100\": StackedArea100,\n bar: Bar,\n basicBar: HorizontalBar,\n \"horizontal-bar\": HorizontalBar,\n \"stacked-bar\": StackedBar,\n \"stacked-bar-100\": StackedBar100,\n \"stacked-column\": StackedColumn,\n basicColumn: StackedColumn,\n \"stacked-column-100\": StackedColumn100,\n stackedPercentColumn: StackedColumn100,\n donut: Donut,\n \"geospatial-scatter\": GeospatialScatter,\n heatmap: Heatmap,\n line: Line,\n basicLine: Line,\n number: NumberSVG,\n scatter: Scatter,\n table: Table,\n \"word-cloud\": WordCloud\n};\n\nexport type ChartViewIconProps = React.ComponentProps & {\n /**\n * chart view\n */\n view: keyof typeof chartViewIconMap;\n};\n\n/**\n * Custom chart view icons for Mongo Charts\n */\nconst ChartViewIcon: React.FC = ({ view, ...rest }) => {\n return ;\n};\n\nexport default ChartViewIcon;\n","import { ComponentProps, FC } from \"react\";\nimport { List, Row } from \"antd\";\n\nimport styles from \"./EventList.module.less\";\nimport { classname } from \"@ctra/utils\";\nimport { CloseOutlined } from \"../../..\";\n\nexport interface EventListProps extends ComponentProps {\n /**\n * list title\n */\n title: string;\n /**\n * handle close\n */\n handleClose?: () => void;\n}\n\n/**\n * Chart sidebar event list component\n * @param {string} title\n * @param {any} className\n * @param {(() => void) | undefined} handleClose\n * @param {Omit, \"className\" | \"title\" | \"handleClose\">} rest\n * @returns {JSX.Element}\n * @constructor\n */\nconst EventList: FC = ({ title, className, handleClose, ...rest }) => (\n \n {title}\n {handleClose && }\n \n }\n className={classname(styles.EventList, className)}\n {...rest}\n />\n);\n\nexport default EventList;\n","import { ComponentProps, FC, ComponentType } from \"react\";\nimport { List, Space, Collapse, Typography, Row, Col } from \"antd\";\n\nimport { classname } from \"@ctra/utils\";\nimport { Icon } from \"../../../elements\";\nimport styles from \"./EventEntry.module.less\";\nimport moment from \"moment\";\n\nconst { Text } = Typography;\n\nexport interface EventEntryProps extends ComponentProps {\n /**\n * event icon\n */\n icon: ComponentType;\n /**\n * title\n */\n title: string;\n /**\n * description or extra info\n */\n description?: string | JSX.Element;\n /**\n * start\n */\n start: moment.Moment;\n /**\n * end\n */\n end: moment.Moment;\n}\n\n/**\n * Sidebar event list item component\n * @param {number | string | undefined} propName\n * @param {string | undefined} className\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst EventEntry: FC = ({ title, start, end, description, icon, className, ...rest }) => (\n \n \n \n \n \n \n {title}\n \n \n {start.isSame(end, \"day\") ? (\n \n {start.format(\"LL\")}\n \n ) : (\n \n {start.format(\"LL\")} - {end.format(\"LL\")}\n \n )}\n \n \n \n }\n key={title}\n >\n {description}\n \n \n \n);\n\nexport default EventEntry;\n","import { ComponentProps, FC } from \"react\";\nimport { Typography, Col, Row } from \"antd\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport { Barns, Barn, Icon } from \"../../../elements\";\nimport styles from \"./FarmOption.module.less\";\n\nconst { Text } = Typography;\n\nexport interface FarmOptionProps extends ComponentProps {\n /**\n * signal for use Barn or Barns as an icon\n */\n plural?: boolean;\n}\n\n/**\n * Farm selector option component\n * @param {boolean | undefined} plural\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @param {string | undefined} className\n * @param {Pick} props\n * @return {JSX.Element}\n * @constructor\n */\nconst FarmOption: FC = ({ plural, children, className, ...props }) => (\n \n \n \n \n \n {children}\n \n \n);\n\nexport default FarmOption;\n","import { ComponentProps, FC } from \"react\";\nimport { Select } from \"antd\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport styles from \"./FarmSelect.module.less\";\n\nexport type FarmSelectProps = ComponentProps;\n\n/**\n * Farm selector component\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @param {any} className\n * @param {Pick<((props: (SelectProps & {children?: React.ReactNode} & {ref?: React.Ref | undefined})) => React.ReactElement) & {SECRET_COMBOBOX_MODE_DO_NOT_USE: string, Option: typeof Option, OptGroup: typeof OptGroup} extends React.JSXElementConstructor ? P : (((props: (SelectProps & {children?: React.ReactNode} & {ref?: React.Ref | undefined})) => React.ReactElement) & {SECRET_COMBOBOX_MODE_DO_NOT_USE: string, Option: typeof Option, OptGroup: typeof OptGroup} extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[((props: (SelectProps & {children?: React.ReactNode} & {ref?: React.Ref | undefined})) => React.ReactElement) & {SECRET_COMBOBOX_MODE_DO_NOT_USE: string, Option: typeof Option, OptGroup: typeof OptGroup}] : {}) & {children?: React.ReactNode | undefined}, never>} props\n * @return {JSX.Element}\n * @constructor\n */\nconst FarmSelect: FC & { Option: typeof Select.Option } = ({\n children,\n className,\n ...props\n}) => (\n
\n \n
\n);\n\nFarmSelect.Option = Select.Option;\n\nexport default FarmSelect;\n","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgEmptyLeft(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 106,\n height: 105,\n viewBox: \"0 0 106 105\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_811_100330)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52.9999 103.954C81.4053 103.954 104.432 80.9268 104.432 52.5214C104.432 24.116 81.4053 1.08887 52.9999 1.08887C24.5945 1.08887 1.56738 24.116 1.56738 52.5214C1.56738 80.9268 24.5945 103.954 52.9999 103.954Z\",\n fill: \"#EAEAEA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.5 52.5215C0.5 23.5721 24.0506 0.0214844 53 0.0214844C81.9494 0.0214844 105.5 23.5721 105.5 52.5215C105.5 81.4709 81.9494 105.021 53 105.021C24.0506 105.021 0.5 81.4709 0.5 52.5215ZM2.635 52.5215C2.635 80.294 25.2275 102.886 53 102.886C80.7725 102.886 103.365 80.294 103.365 52.5215C103.365 24.749 80.7681 2.15648 53 2.15648C25.2275 2.15648 2.635 24.7534 2.635 52.5215Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.0467 52.4349C43.0467 52.4349 49.0536 68.023 63.0186 61.8498C71.9479 64.7155 80.5536 57.628 75.8461 47.5611C82.9904 35.7092 72.9236 31.1636 72.9236 31.1636C73.0854 22.8817 64.1561 24.833 64.1561 24.833C64.1561 24.833 54.2511 23.6955 52.9123 31.0017C31.8467 33.1105 43.0511 52.4349 43.0511 52.4349H43.0467Z\",\n fill: \"#DDDDDD\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.9254 54.2411C75.9254 54.2411 70.916 67.2349 59.2785 62.0899C51.8366 64.4786 44.6616 58.5724 48.586 50.1811C42.6316 40.3024 51.0229 36.5136 51.0229 36.5136C50.8873 29.6099 58.3291 31.2374 58.3291 31.2374C58.3291 31.2374 66.5848 30.288 67.7004 36.3824C85.2616 38.1411 75.921 54.2455 75.921 54.2455L75.9254 54.2411Z\",\n fill: \"#EAEAEA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.8999 77.4285H67.2799C67.2799 77.4285 66.1118 76.991 65.893 76.6628C63.5743 73.1366 62.8436 63.8441 64.2568 59.8672C64.7424 58.5022 67.678 55.1816 67.678 55.1816L67.3061 54.7835C67.3061 54.7835 65.123 56.8354 64.5543 56.5072C62.9311 55.571 63.4474 49.5947 63.4474 49.5947H62.533C62.533 49.5947 62.9793 60.0116 60.7436 62.116C60.3149 62.5185 58.7618 60.856 58.7618 60.856L58.5299 61.311C58.5299 61.311 60.2055 63.3279 60.4811 64.1372C61.5049 67.121 61.0324 74.0728 59.278 76.6978C59.0593 77.0216 57.8955 77.4285 57.8955 77.4285H57.8999Z\",\n fill: \"#AAAAAA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.1816 76.1166L85.5985 47.9941\",\n stroke: \"#E0E0E0\",\n strokeWidth: 5,\n strokeMiterlimit: 10,\n strokeLinecap: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M21.8285 62.0071L19.7285 64.304L21.3341 67.3184L25.1316 71.339L25.7441 71.374L25.3723 68.2196L31.9916 65.5202L33.9691 67.944L35.2773 67.6596L33.9779 63.6477L35.6666 60.6202L37.106 59.5834L36.0779 55.5059L31.4141 57.4396L29.8085 59.0496L21.8285 62.0071Z\",\n fill: \"#F9F9F9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M27.4023 71.7983L26.2036 69.7245L26.1205 68.8014L31.2086 66.627C31.4886 66.5089 31.7598 66.3733 32.0223 66.2245L33.9998 68.9764L35.9248 68.1539L34.6298 63.9845C35.3123 63.1052 35.8111 62.1033 36.1086 61.0402L36.5723 60.8433C36.883 60.712 37.1411 60.4758 37.2986 60.1783C37.4561 59.8808 37.4998 59.5395 37.4298 59.2158L36.7867 56.3239L37.2067 56.1445C37.4517 56.0395 37.6486 55.8427 37.7492 55.602C37.8498 55.3614 37.8498 55.0858 37.7492 54.8452L37.5567 54.3945L30.3467 57.4745L30.4517 57.7195L21.0805 61.7227C20.328 62.0464 19.7286 62.6502 19.418 63.3983C19.1073 64.1464 19.1073 64.982 19.4223 65.7214L21.7892 71.2645L22.9267 70.7789L22.1567 68.972L25.4686 72.6295L27.4111 71.7983H27.4023ZM34.7567 61.2895C34.468 62.0683 34.048 62.7945 33.5142 63.4333L33.2998 63.6914L34.4986 67.5064L32.3548 64.5445L31.8605 64.8683C31.5017 65.1002 31.1255 65.3058 30.7317 65.472L25.9848 67.4977L25.7836 65.2795L24.5498 65.4064L24.9742 70.0745L25.2805 70.5952L20.6561 65.4895L20.538 65.2095C20.4461 64.9908 20.398 64.7545 20.398 64.5139C20.398 64.2733 20.4461 64.037 20.538 63.8139C20.6298 63.5908 20.7655 63.3895 20.9361 63.2145C21.1067 63.0439 21.3123 62.9039 21.5355 62.8077L23.6486 61.9064C23.933 62.3702 24.3486 62.7377 24.8473 62.9695C25.3461 63.2014 25.9017 63.2889 26.453 63.2189C26.6411 63.1927 26.8292 63.2102 27.0042 63.2627C27.1836 63.3195 27.3455 63.4158 27.4767 63.5427C27.748 63.8095 28.0936 63.9933 28.4742 64.0633C28.8548 64.1333 29.2486 64.0895 29.603 63.9364C29.9617 63.7833 30.2636 63.5295 30.4736 63.2058C30.6836 62.882 30.793 62.5058 30.7886 62.1295C30.7886 61.9502 30.828 61.7752 30.9067 61.6133C30.9855 61.4514 31.0992 61.307 31.2436 61.1933C31.6592 60.8477 31.9655 60.3927 32.1142 59.8808C32.263 59.3689 32.2542 58.8264 32.088 58.3233L32.2586 58.2489L33.8948 60.6814C34.0961 60.9833 34.4111 61.1977 34.7698 61.272L34.7567 61.2895ZM35.5355 56.4245L36.2136 59.4608C36.2223 59.5045 36.2136 59.5527 36.1917 59.5964C36.1698 59.6402 36.1348 59.6708 36.0911 59.6927L35.168 60.0864C35.1242 60.1039 35.0717 60.1083 35.028 60.0952C34.9798 60.082 34.9405 60.0558 34.9142 60.0164L33.1817 57.4264L35.5355 56.4202V56.4245Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.251 76.9873L85.6722 48.8691\",\n stroke: \"#BCBCBC\",\n strokeMiterlimit: 10,\n strokeLinecap: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52.1733 60.4365H52.6108C53.5033 60.4365 54.2514 61.1059 54.3521 61.994L55.8308 76.4665C55.8833 76.9828 55.4808 77.429 54.9602 77.429H49.8283C49.3121 77.429 48.9052 76.9828 48.9577 76.4665L50.4364 61.994C50.5371 61.1103 51.2852 60.4365 52.1777 60.4365H52.1733Z\",\n fill: \"#BCBCBC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52.3921 63.1359C52.989 63.1359 53.4728 62.652 53.4728 62.0552C53.4728 61.4584 52.989 60.9746 52.3921 60.9746C51.7953 60.9746 51.3115 61.4584 51.3115 62.0552C51.3115 62.652 51.7953 63.1359 52.3921 63.1359Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M53.4245 62.1646C53.4245 61.5696 52.9388 61.084 52.3438 61.084C51.9195 61.084 51.552 61.3334 51.377 61.6921C51.5257 61.2765 51.9195 60.9746 52.3876 60.9746C52.9826 60.9746 53.4682 61.4602 53.4682 62.0552C53.4682 62.2259 53.4245 62.3834 53.3545 62.5277C53.3938 62.414 53.4201 62.2915 53.4201 62.1646H53.4245Z\",\n fill: \"#BCBCBC\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_811_100330\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 105,\n height: 105,\n fill: \"white\",\n transform: \"translate(0.5)\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmptyLeft);\nexport default __webpack_public_path__ + \"static/media/empty-left.beb7c680.svg\";\nexport { ForwardRef as ReactComponent };","import { FC, ReactNode } from \"react\";\nimport { Space } from \"antd\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport { Typography } from \"../../../elements\";\nimport styles from \"./NaviCard.module.less\";\n\nconst { Text } = Typography;\n\nexport interface NaviCardProps extends React.HTMLAttributes {\n /**\n * card title\n */\n title: string;\n /**\n * card description\n */\n description: string;\n /**\n * card icon\n */\n icon?: ReactNode;\n}\n\n/**\n * Navicard component\n * @param {string} title\n * @param {string} description\n * @param {string | undefined} icon\n * @param {string | undefined} className\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst NaviCard: FC = ({ title, description, icon, className, ...rest }) => (\n
\n \n {icon ? icon : null}\n \n {title}\n \n {description}\n \n
\n);\n\nexport default NaviCard;\n","import { ComponentProps, FC, ReactNode } from \"react\";\nimport { Row, Col } from \"antd\";\nimport { DownOutlined } from \"@ant-design/icons\";\n\nimport { classname } from \"@ctra/utils\";\nimport styles from \"./SectionHeader.module.less\";\n\nexport interface SectionHeaderProps extends ComponentProps {\n /**\n * section title\n */\n title: string;\n /**\n * toolbar component(s)\n */\n toolbar?: ReactNode;\n}\n\n/**\n * Chart analytics section header\n * @param {string} title\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} toolbar\n * @param {string | undefined} className\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst SectionHeader: FC = ({ title, toolbar, className, ...rest }) => (\n \n \n {title}\n \n {toolbar && {toolbar}}\n \n \n \n \n);\n\nexport default SectionHeader;\n","import { ComponentProps, FC } from \"react\";\nimport { Collapse } from \"antd\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport styles from \"./SectionPanel.module.less\";\n\nconst { Panel } = Collapse;\n\nexport type SectionPanelProps = ComponentProps;\n\n/**\n * Analytics section panel component\n * @param {string | undefined} className\n * @param {Pick} props\n * @return {JSX.Element}\n * @constructor\n */\nconst SectionPanel: FC = ({ className, ...props }) => {\n return (\n \n );\n};\n\nexport default SectionPanel;\n","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgEmptyRight(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 106,\n height: 106,\n viewBox: \"0 0 106 106\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_811_100315)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52.9999 104.037C81.4053 104.037 104.432 81.0098 104.432 52.6044C104.432 24.199 81.4053 1.17188 52.9999 1.17188C24.5945 1.17188 1.56738 24.199 1.56738 52.6044C1.56738 81.0098 24.5945 104.037 52.9999 104.037Z\",\n fill: \"#EAEAEA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.5 52.6035C0.5 23.6541 24.0506 0.103516 53 0.103516C81.9494 0.103516 105.5 23.6541 105.5 52.6035C105.5 81.5529 81.9494 105.104 53 105.104C24.0506 105.104 0.5 81.5529 0.5 52.6035ZM2.635 52.6035C2.635 80.376 25.2275 102.969 53 102.969C80.7725 102.969 103.365 80.376 103.365 52.6035C103.365 24.831 80.7681 2.23852 53 2.23852C25.2275 2.23852 2.635 24.8354 2.635 52.6035Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.0467 52.5169C43.0467 52.5169 49.0536 68.105 63.0186 61.9319C71.9479 64.7975 80.5536 57.71 75.8461 47.6431C82.9904 35.7913 72.9236 31.2456 72.9236 31.2456C73.0854 22.9638 64.1561 24.915 64.1561 24.915C64.1561 24.915 54.2511 23.7775 52.9123 31.0838C31.8467 33.1925 43.0511 52.5169 43.0511 52.5169H43.0467Z\",\n fill: \"#DDDDDD\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.9254 54.3232C75.9254 54.3232 70.916 67.3169 59.2785 62.1719C51.8366 64.5607 44.6616 58.6544 48.586 50.2632C42.6316 40.3844 51.0229 36.5957 51.0229 36.5957C50.8873 29.6919 58.3291 31.3194 58.3291 31.3194C58.3291 31.3194 66.5848 30.3701 67.7004 36.4644C85.2616 38.2232 75.921 54.3276 75.921 54.3276L75.9254 54.3232Z\",\n fill: \"#EAEAEA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.8999 77.5115H67.2799C67.2799 77.5115 66.1118 77.074 65.893 76.7459C63.5743 73.2196 62.8436 63.9271 64.2568 59.9502C64.7424 58.5852 67.678 55.2646 67.678 55.2646L67.3061 54.8665C67.3061 54.8665 65.123 56.9184 64.5543 56.5902C62.9311 55.654 63.4474 49.6777 63.4474 49.6777H62.533C62.533 49.6777 62.9793 60.0946 60.7436 62.199C60.3149 62.6015 58.7618 60.939 58.7618 60.939L58.5299 61.394C58.5299 61.394 60.2055 63.4109 60.4811 64.2202C61.5049 67.204 61.0324 74.1559 59.278 76.7809C59.0593 77.1046 57.8955 77.5115 57.8955 77.5115H57.8999Z\",\n fill: \"#AAAAAA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M85.6722 76.1987L19.251 48.0762\",\n stroke: \"#E0E0E0\",\n strokeWidth: 5,\n strokeMiterlimit: 10,\n strokeLinecap: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M83.0255 62.0891L85.1255 64.386L83.5199 67.4004L79.7224 71.421L79.1099 71.456L79.4818 68.3016L72.8624 65.6023L70.8849 68.026L69.5724 67.7416L70.8718 63.7298L69.1874 60.7023L67.748 59.6654L68.7762 55.5879L73.4355 57.5216L75.0455 59.1316L83.0255 62.0891Z\",\n fill: \"#F9F9F9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M79.39 72.7077L82.7018 69.0502L81.9318 70.857L83.0693 71.3427L85.4362 65.7995C85.7512 65.0602 85.7512 64.2289 85.4406 63.4764C85.13 62.7283 84.535 62.1245 83.7781 61.8008L74.4068 57.7977L74.5118 57.5527L67.3018 54.4727L67.1093 54.9233C67.0087 55.1639 67.0043 55.4352 67.1093 55.6802C67.2143 55.9252 67.4068 56.1177 67.6518 56.2227L68.0718 56.402L67.4287 59.2939C67.3543 59.6177 67.4025 59.9589 67.56 60.2564C67.7175 60.5539 67.9712 60.7902 68.2862 60.9214L68.75 61.1183C69.0431 62.1814 69.5462 63.1833 70.2287 64.0627L68.9337 68.232L70.8587 69.0545L72.8362 66.3027C73.0987 66.4514 73.37 66.587 73.65 66.7052L78.7381 68.8795L78.655 69.8027L77.4562 71.8764L79.3987 72.7077H79.39ZM70.9681 60.777L72.6043 58.3445L72.775 58.4189C72.6043 58.922 72.5956 59.4645 72.7487 59.9764C72.8975 60.4883 73.2037 60.9477 73.6193 61.2889C73.7593 61.4027 73.8775 61.547 73.9562 61.7089C74.035 61.8708 74.0743 62.0458 74.0743 62.2252C74.0656 62.6058 74.175 62.982 74.3893 63.3014C74.5993 63.6252 74.9056 63.8789 75.26 64.032C75.6187 64.1852 76.0125 64.2289 76.3887 64.1589C76.7693 64.0889 77.115 63.9095 77.3862 63.6383C77.5175 63.5114 77.6793 63.4152 77.8587 63.3583C78.0381 63.3014 78.2262 63.2883 78.41 63.3145C78.9612 63.3845 79.5168 63.297 80.0156 63.0652C80.51 62.8333 80.93 62.4614 81.2143 62.002L83.3275 62.9033C83.5506 62.9995 83.7562 63.1352 83.9268 63.3102C84.0975 63.4808 84.2331 63.6864 84.325 63.9095C84.4168 64.1327 84.465 64.3689 84.465 64.6095C84.465 64.8502 84.4168 65.0864 84.325 65.3052L84.2068 65.5852L79.5825 70.6908L79.8887 70.1702L80.3131 65.502L79.0793 65.3752L78.8781 67.5933L74.1312 65.5677C73.7375 65.397 73.3612 65.1958 73.0025 64.9639L72.5081 64.6402L70.3643 67.602L71.5631 63.787L71.3487 63.5289C70.815 62.8858 70.3906 62.1639 70.1062 61.3852C70.465 61.3064 70.78 61.0964 70.9812 60.7945L70.9681 60.777ZM71.6681 57.5133L69.9356 60.1033C69.9093 60.1427 69.87 60.1689 69.8218 60.182C69.7737 60.1952 69.7256 60.1908 69.6818 60.1733L68.7587 59.7795C68.715 59.7577 68.68 59.7227 68.6581 59.6833C68.6362 59.6395 68.6275 59.5914 68.6362 59.5477L69.3143 56.5114L71.6681 57.5177V57.5133Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M85.5985 77.0693L19.1816 48.9512\",\n stroke: \"#BCBCBC\",\n strokeMiterlimit: 10,\n strokeLinecap: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52.1733 60.5176H52.6108C53.5033 60.5176 54.2514 61.187 54.3521 62.0751L55.8308 76.5476C55.8833 77.0638 55.4808 77.5101 54.9602 77.5101H49.8283C49.3121 77.5101 48.9052 77.0638 48.9577 76.5476L50.4364 62.0751C50.5371 61.1913 51.2852 60.5176 52.1777 60.5176H52.1733Z\",\n fill: \"#BCBCBC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52.3921 63.2179C52.989 63.2179 53.4728 62.7341 53.4728 62.1373C53.4728 61.5405 52.989 61.0566 52.3921 61.0566C51.7953 61.0566 51.3115 61.5405 51.3115 62.1373C51.3115 62.7341 51.7953 63.2179 52.3921 63.2179Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M53.4245 62.2466C53.4245 61.6516 52.9388 61.166 52.3438 61.166C51.9195 61.166 51.552 61.4154 51.377 61.7741C51.5257 61.3585 51.9195 61.0566 52.3876 61.0566C52.9826 61.0566 53.4682 61.5423 53.4682 62.1373C53.4682 62.3079 53.4245 62.4654 53.3545 62.6098C53.3938 62.496 53.4201 62.3735 53.4201 62.2466H53.4245Z\",\n fill: \"#BCBCBC\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_811_100315\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 105,\n height: 105,\n fill: \"white\",\n transform: \"translate(0.5 0.0820312)\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmptyRight);\nexport default __webpack_public_path__ + \"static/media/empty-right.d9dffaa6.svg\";\nexport { ForwardRef as ReactComponent };","import { ComponentProps, FC } from \"react\";\nimport { Card, Typography, Row, Col, Progress } from \"antd\";\nimport { PlusCircleOutlined } from \"@ant-design/icons\";\n\nimport { Button } from \"../../../../elements\";\nimport Trend from \"../Trend/Trend\";\nimport styles from \"./CorrelationMetric.module.less\";\n\nexport enum CorrelationType {\n positive = \"positive\",\n negative = \"negative\",\n zero = \"zero\"\n}\n\nconst { Text } = Typography;\n\nexport interface CorrelationMetricProps extends ComponentProps {\n /**\n * type of correlation to show as an icon\n */\n correlationType: CorrelationType;\n /**\n * correlation trend\n */\n trend: string;\n /**\n * Correlation strength\n */\n correlation: string;\n /**\n * Correlation %\n */\n correlationPercent: number;\n}\n\n/**\n * Correlation metric component for comparing charts\n * @param {CorrelationType} correlationType\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} title\n * @param {Array} metrics\n * @param {string} trend\n * @param {string} correlation\n * @param {%} correlationPercent\n * @param {string | undefined} className\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst CorrelationMetric: FC & { CorrelationType: typeof CorrelationType } = ({\n correlationType,\n correlationPercent,\n title,\n className,\n onClick,\n trend,\n correlation,\n extra\n}) => {\n return (\n \n \n \n \n \n \n \n {title}\n \n \n \n \n \n \n {correlation}\n \n {extra}\n \n );\n};\n\nCorrelationMetric.CorrelationType = CorrelationType;\n\nexport default CorrelationMetric;\n","import { FC } from \"react\";\n\nimport { Empty } from \"../../../layout\";\nimport { EmptyProps } from \"../../../layout/Empty\";\nimport { ReactComponent as LeftIllustration } from \"./assets/empty-left.svg\";\nimport { ReactComponent as RightIllustration } from \"./assets/empty-right.svg\";\n\n/**\n * Empty state with illustration variants\n * @param {\"cliff\" | \"hill\"} variant\n * @param {Pick & {variant: \"cliff\" | \"hill\"} & {children?: React.ReactNode | undefined}, \"title\" | \"description\" | \"gutter\" | \"align\" | \"justify\" | \"prefixCls\" | \"wrap\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"id\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"children\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChange\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"ref\" | \"key\">} props\n * @return {JSX.Element}\n * @constructor\n */\nconst WithIllustrationVariant: FC & { variant: \"left\" | \"right\" }> = ({\n variant,\n ...props\n}) => {\n return (\n : } />\n );\n};\n\nexport default WithIllustrationVariant;\n","import { FC } from \"react\";\nimport { Space } from \"antd\";\nimport { FallOutlined, MinusOutlined, RiseOutlined } from \"@ant-design/icons\";\n\nimport { CorrelationType } from \"../CorrelationMetric\";\nimport styles from \"./Trend.module.less\";\n\nexport interface TrendProps {\n /**\n * correlation type\n */\n correlationType?: CorrelationType;\n /**\n * text\n */\n text: string;\n}\n\n/**\n * Trend of correlation (increase/decrease/zero)\n * @param correlationType\n * @param text\n */\nconst Trend: FC = ({ correlationType, text }) => {\n const icon =\n correlationType === CorrelationType.zero ? (\n \n ) : correlationType === CorrelationType.negative ? (\n \n ) : (\n \n );\n\n return (\n \n {icon}\n {text}\n \n );\n};\n\nexport default Trend;\n","import { Typography, Space } from \"antd\";\nimport { FC, HTMLProps } from \"react\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport styles from \"./NoCorrelations.module.less\";\n\nexport interface NoCorrelationsProps extends HTMLProps {\n /**\n * description\n */\n description: string;\n}\n\nconst { Title } = Typography;\n\n/**\n * No correlations found component\n */\nconst NoCorrelations: FC = ({ description, className, ...rest }) => (\n
\n \n \n {description}\n \n
\n);\n\nexport default NoCorrelations;\n","import React, { ComponentProps, ComponentType } from \"react\";\nimport * as _ from \"lodash\";\nimport { Space, Select } from \"antd\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport styles from \"./Dropdown.module.less\";\nimport { Icon } from \"../../../../elements\";\n\nexport type DropdownProps = Omit, \"onSelect\" | \"onChange\"> & {\n /**\n * placeholder\n */\n placeholder?: string | React.ReactNode;\n /**\n * possible values\n */\n values: Array<{ value: string; label: string }>;\n /**\n * selected values\n */\n selection: string;\n /**\n * Handler to call when the user clicks on the list items\n */\n onChange: (selection: string) => void;\n /**\n * open state (mainly for unit tests)\n */\n open?: boolean;\n /**\n * filter options by input\n */\n filterOption?: ComponentProps[\"filterOption\"];\n /**\n * disabled\n */\n disabled?: ComponentProps[\"disabled\"];\n /**\n * Icon\n */\n icon?: ComponentType;\n};\n\n/**\n * Dropdown with simple API\n */\nfunction Dropdown({\n values,\n selection,\n placeholder,\n onChange,\n open,\n icon,\n className,\n ...rest\n}: React.PropsWithChildren): React.ReactElement {\n /**\n * Handle change of selection\n */\n const handleChange = (value: string) => {\n onChange(value);\n };\n\n return (\n \n \n \n {_.map(values, ({ label, value }) => (\n \n {label}\n \n ))}\n \n \n );\n}\n\nexport default Dropdown;\n","import React, { ComponentProps, ComponentType } from \"react\";\nimport * as _ from \"lodash\";\nimport { Space, Select } from \"antd\";\nimport { LabeledValue } from \"antd/es/select\";\n\nimport { DefaultTFuncReturn } from \"@ctra/i18n\";\nimport { classname, Nullable } from \"@ctra/utils\";\n\nimport styles from \"./MultiDropdown.module.less\";\nimport { Icon } from \"../../../../elements\";\n\nexport type MultiDropdownProps = Omit<\n ComponentProps,\n \"onSelect\" | \"onChange\"\n> & {\n /**\n * max number of options to allow, a new selection replaces the oldest one\n */\n limit?: Nullable;\n /**\n * placeholder\n */\n placeholder?: string | React.ReactNode;\n /**\n * possible values\n */\n values: Array;\n /**\n * selected values\n */\n selection: Array;\n /**\n * Handler to call when the user clicks on the list items\n */\n onChange: (selection: Array) => void;\n /**\n * Get a human readable label from the value\n * @param {string} key\n */\n getLabel?: (key: T) => T | DefaultTFuncReturn;\n /**\n * open state (mainly for unit tests)\n */\n open?: boolean;\n /**\n * filter options by input\n */\n filterOption?: ComponentProps[\"filterOption\"];\n /**\n * disabled\n */\n disabled?: ComponentProps[\"disabled\"];\n /**\n * Icon\n */\n icon?: ComponentType;\n};\n\n/**\n * Dropdown with simple API\n */\nfunction MultiDropdown({\n limit,\n values,\n selection,\n placeholder,\n onChange,\n getLabel = (key) => key,\n open,\n icon,\n className,\n ...rest\n}: React.PropsWithChildren>): React.ReactElement {\n /**\n * Handle change of selection\n * @param state\n */\n const handleChange = (state: Array) => {\n const values = _.map(limit ? _.takeRight(state, limit) : state, \"value\");\n\n onChange(values as Array);\n };\n\n return (\n \n \n ({ value, label: getLabel(value) }))}\n style={{ minWidth: 200 }}\n allowClear\n placeholder={placeholder}\n showArrow\n labelInValue\n maxTagCount={3}\n mode=\"multiple\"\n onChange={handleChange}\n {...rest}\n >\n {_.without(values, ...selection).map((value) => (\n \n {getLabel(value)}\n \n ))}\n \n \n );\n}\n\nexport default MultiDropdown;\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgBehavior(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 25,\n height: 25,\n viewBox: \"0 0 25 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.1265 6.4579C15.1265 6.45695 15.1265 6.45572 15.1266 6.45417L15.1275 6.43711C15.1284 6.42242 15.13 6.40343 15.1323 6.37972C15.1369 6.33214 15.144 6.2715 15.1536 6.19834C15.1728 6.05215 15.2006 5.86569 15.2347 5.65155C15.3026 5.22379 15.3935 4.69646 15.4849 4.18188C15.5762 3.66778 15.6675 3.16854 15.736 2.79768C15.7703 2.6123 15.7988 2.4591 15.8188 2.35229L15.8419 2.22866L15.848 2.19628L15.8496 2.18804L15.85 2.18597L15.8501 2.18546L15.8501 2.18534L15.3588 2.09263L14.8674 2L14.8674 2.00014L14.8673 2.0007L14.8669 2.00285L14.8653 2.01128L14.8591 2.04404L14.8358 2.16851C14.8157 2.27591 14.7871 2.42981 14.7527 2.61598C14.6839 2.98823 14.5921 3.48991 14.5003 4.00707C14.4086 4.52374 14.3164 5.058 14.247 5.49467C14.1815 5.90751 14.1264 6.28946 14.1264 6.46029C14.1264 6.62555 14.0572 6.91621 13.9584 7.30893L13.9473 7.35332L13.9473 7.35333C13.8644 7.68206 13.7602 8.09539 13.7602 8.40148C13.7602 8.54795 13.8088 9.21491 13.8761 10.0928C13.9449 10.9884 14.0365 12.1417 14.128 13.294C14.2196 14.4468 14.311 15.5987 14.3796 16.4926C14.4139 16.9397 14.4424 17.3213 14.4623 17.6058C14.4688 17.6983 14.4743 17.78 14.4788 17.85L14.4433 17.85L14.4198 17.85C14.3027 17.8497 14.0995 17.8492 13.9245 17.9008C13.8204 17.9314 13.6802 17.9923 13.566 18.122C13.4432 18.2616 13.3941 18.4306 13.3941 18.5927C13.3941 19.0279 13.6769 19.2819 13.8631 19.4141L11.1683 18.8877C11.3153 18.7047 11.4405 18.6056 11.5329 18.5648C12.1938 18.2728 12.5206 17.5426 12.6905 16.9462C12.8667 16.328 12.9266 15.6663 12.9293 15.2272C13.0553 14.1876 13.1456 11.5351 12.552 8.7814C11.9757 6.10816 11.8309 3.20122 11.8309 2.09263H10.8309C10.8309 3.24875 10.979 6.23007 11.5744 8.99214C12.1466 11.6461 12.0495 14.2091 11.9333 15.1332L11.9294 15.1643V15.1956C11.9294 15.5659 11.8779 16.1488 11.7288 16.6722C11.5692 17.2325 11.3467 17.5538 11.1288 17.65C10.7939 17.798 10.5221 18.0777 10.307 18.3673C10.0861 18.6647 9.89127 19.0187 9.7244 19.376C9.39059 20.0906 9.14296 20.8742 9.0151 21.3825L9 21.4426V21.5045C9 22.235 9.74229 22.9751 11.3309 22.9751C12.8477 22.9751 13.8128 22.6434 14.1703 22.4066L14.3049 22.3174L14.3619 22.1663L13.8941 21.9898L14.3619 22.1662L14.362 22.1661L14.3621 22.1658L14.3625 22.1645L14.3642 22.1601L14.3706 22.1431L14.3944 22.0792C14.4148 22.0242 14.4438 21.9453 14.4786 21.8491C14.5481 21.6572 14.6411 21.3954 14.7343 21.1175C14.8271 20.8406 14.922 20.5426 14.9942 20.2795C15.0604 20.0381 15.1264 19.7623 15.1264 19.5633C15.1264 19.2149 14.9452 18.9827 14.7774 18.8361C14.8392 18.8285 14.9024 18.817 14.9622 18.7993C15.0662 18.7687 15.2065 18.7078 15.3207 18.5781C15.4435 18.4385 15.4926 18.2695 15.4926 18.1074C15.4926 17.9609 15.4441 17.294 15.3767 16.4161C15.308 15.5208 15.2164 14.368 15.1249 13.216L15.1249 13.2159L15.1249 13.2149C15.0333 12.062 14.9418 10.9102 14.8732 10.0163C14.8389 9.56919 14.8104 9.1876 14.7905 8.90306C14.7805 8.76068 14.7728 8.64377 14.7676 8.55562C14.765 8.5115 14.7631 8.47572 14.7618 8.44815L14.7605 8.41497L14.7603 8.4051L14.7603 8.40236C14.7602 8.40171 14.7602 8.40143 14.7602 8.40148C14.7602 8.23622 14.8295 7.94556 14.9282 7.55284L14.9394 7.50845C15.0223 7.17972 15.1264 6.76639 15.1264 6.46029C15.1264 6.46033 15.1264 6.45956 15.1265 6.4579Z\",\n fill: \"#666666\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBehavior);\nexport default __webpack_public_path__ + \"static/media/behavior.215a46c9.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgFeed(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 25,\n height: 25,\n viewBox: \"0 0 25 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.9168 14.9901V14.8742C22.8483 13.9711 22.5576 13.099 22.0706 12.3355C21.8481 11.9409 21.5194 11.6166 21.1219 11.3994C20.7244 11.1822 20.274 11.0808 19.8217 11.1067H18.8248C19.0495 10.7926 19.2217 10.4442 19.3348 10.075C19.4624 9.66927 19.5551 9.26354 19.6478 8.83463V8.7303C19.699 8.20603 19.699 7.67802 19.6478 7.15376V6.85236C19.5593 6.02915 19.2859 5.2366 18.848 4.53392C18.6353 4.11431 18.3103 3.76204 17.9091 3.5164C17.5079 3.27077 17.0463 3.14145 16.5759 3.14285H16.4716C15.4514 3.14285 15.579 3.14285 14.6632 3.14285H13.3996C13.2382 3.11889 13.0742 3.11889 12.9128 3.14285C12.7776 3.17077 12.659 3.2511 12.583 3.36625C12.507 3.4814 12.4796 3.62199 12.507 3.75724C12.5532 3.93465 12.6598 4.09042 12.8084 4.19774C12.9305 4.27079 13.0725 4.30326 13.2141 4.29048H16.6918C16.8396 4.28676 16.9865 4.31485 17.1225 4.37285C17.2585 4.43085 17.3805 4.51741 17.4801 4.62665C17.8896 5.06195 18.167 5.60469 18.2799 6.1916C18.2799 6.40026 18.3611 6.62051 18.3959 6.84077V7.02624C18.4377 7.5006 18.4377 7.97772 18.3959 8.45208V8.63756C18.3204 9.2245 18.123 9.78915 17.8163 10.2952C17.6971 10.538 17.5097 10.7408 17.277 10.8788C17.0444 11.0167 16.7765 11.0838 16.5063 11.0719C14.7675 11.0719 13.0287 11.0719 11.3014 11.0719H9.67852C10.3354 10.0776 10.6601 8.90064 10.6059 7.71018C10.667 6.50607 10.3465 5.31338 9.69012 4.30207H10.432C10.57 4.31568 10.7087 4.28306 10.8262 4.20933C10.9778 4.10497 11.0852 3.94797 11.1275 3.76883C11.1446 3.70177 11.1479 3.63194 11.1371 3.56358C11.1263 3.49522 11.1018 3.42977 11.0649 3.37121C11.028 3.31265 10.9796 3.26221 10.9226 3.22295C10.8656 3.18369 10.8013 3.15644 10.7334 3.14285C10.6376 3.1252 10.5394 3.1252 10.4436 3.14285H7.84695C7.33539 3.13922 6.83885 3.31568 6.44429 3.64132C5.90421 4.088 5.50219 4.67898 5.28507 5.34537C4.88284 6.45811 4.77112 7.65508 4.96049 8.82303C5.05738 9.65139 5.34722 10.4455 5.80672 11.1415H5.00686C4.7342 11.1514 4.46457 11.2022 4.207 11.2922C3.58457 11.5622 3.08466 12.0538 2.80434 12.6717C2.07121 14.1231 1.88996 15.7914 2.29428 17.3665C2.43591 17.9988 2.69974 18.5974 3.07096 19.1285C2.93612 19.2958 2.83744 19.4892 2.78116 19.6965C2.70844 20.1135 2.6851 20.5376 2.7116 20.9601C2.72268 21.1563 2.80563 21.3416 2.9446 21.4806C3.08358 21.6196 3.26886 21.7025 3.4651 21.7136C4.12585 21.7136 4.78661 21.7136 5.42418 21.7136H5.73717C5.87454 21.7076 6.00429 21.6488 6.09933 21.5494C6.19437 21.4501 6.24736 21.3178 6.24723 21.1803C6.26076 21.0513 6.22878 20.9216 6.15681 20.8136C6.08484 20.7057 5.97741 20.6263 5.85309 20.5891C5.74786 20.5558 5.63876 20.5364 5.52851 20.5312H3.82446V20.1602C3.82858 20.0497 3.86936 19.9436 3.94038 19.8588C4.26174 20.0547 4.63053 20.1589 5.00686 20.1602H20.0072C20.3783 20.1592 20.7425 20.0591 21.0621 19.8704C21.099 19.9232 21.1264 19.9821 21.1432 20.0443C21.1554 20.1831 21.1554 20.3228 21.1432 20.4616V20.5312H8.33383C8.21067 20.5155 8.08603 20.5155 7.96288 20.5312C7.80915 20.5404 7.66539 20.6103 7.56321 20.7255C7.46104 20.8407 7.40882 20.9918 7.41804 21.1456C7.42726 21.2993 7.49718 21.443 7.6124 21.5452C7.72762 21.6474 7.87871 21.6996 8.03243 21.6904H21.5258C21.7274 21.6675 21.9159 21.5792 22.0625 21.4389C22.209 21.2986 22.3055 21.1141 22.3372 20.9137V20.7978C22.4185 20.3626 22.3784 19.9134 22.2213 19.4995C22.1383 19.3441 22.0413 19.1966 21.9315 19.059C22.3464 18.4572 22.6271 17.7732 22.7545 17.0535C22.7545 16.8564 22.8241 16.671 22.8589 16.4739V16.1957L22.9168 14.9901ZM6.5834 5.33378C6.6939 5.10463 6.83851 4.89357 7.01231 4.7078C7.09631 4.59022 7.20543 4.49281 7.33175 4.42263C7.45806 4.35246 7.59841 4.31127 7.74262 4.30207C7.89069 4.3103 8.03536 4.34965 8.16719 4.41757C8.29902 4.48548 8.41505 4.58042 8.50771 4.69621C8.91731 5.18403 9.18941 5.77226 9.29598 6.40026C9.35394 6.69007 9.37713 6.99147 9.4119 7.29286C9.44668 7.59426 9.4119 7.55948 9.4119 7.66381C9.42084 8.56986 9.1888 9.462 8.73955 10.2489C8.62023 10.4409 8.476 10.6163 8.31064 10.7705C8.22972 10.8529 8.1332 10.9183 8.02672 10.963C7.92024 11.0076 7.80593 11.0306 7.69046 11.0306C7.57499 11.0306 7.46068 11.0076 7.3542 10.963C7.24772 10.9183 7.1512 10.8529 7.07027 10.7705C6.68502 10.3971 6.41196 9.92323 6.282 9.40265C5.86482 8.05698 5.97251 6.60329 6.5834 5.33378ZM6.00379 18.2127C5.8835 18.4074 5.73506 18.5832 5.56329 18.7344C5.4077 18.8845 5.19991 18.9685 4.98368 18.9685C4.76745 18.9685 4.55965 18.8845 4.40407 18.7344C4.00621 18.3531 3.72481 17.8667 3.59261 17.3317C3.16748 15.9851 3.26685 14.5277 3.87082 13.2513C3.99778 12.9798 4.16592 12.7295 4.36929 12.5094C4.44682 12.4269 4.54012 12.3607 4.64366 12.3149C4.7472 12.2691 4.85888 12.2446 4.97208 12.2427C5.20269 12.2531 5.42141 12.348 5.58647 12.5094C6.03865 12.9369 6.34313 13.4971 6.45589 14.1091C6.53725 14.4486 6.59535 14.7933 6.62977 15.1408C6.63455 15.218 6.63455 15.2954 6.62977 15.3726C6.68829 16.359 6.47157 17.3423 6.00379 18.2127ZM6.90798 18.9894C7.56749 17.9958 7.89613 16.8192 7.84695 15.6277C7.90071 14.4353 7.58053 13.2559 6.93117 12.2543H9.00617C8.357 13.2516 8.03673 14.4273 8.09039 15.6161C8.03829 16.8047 8.35843 17.9799 9.00617 18.9778L6.90798 18.9894ZM12.2404 17.8302C12.1023 18.1906 11.8797 18.5126 11.5912 18.7692C11.511 18.8548 11.4141 18.923 11.3064 18.9697C11.1987 19.0164 11.0826 19.0405 10.9653 19.0405C10.8479 19.0405 10.7318 19.0164 10.6241 18.9697C10.5165 18.923 10.4195 18.8548 10.3393 18.7692C9.92016 18.3606 9.63342 17.8356 9.51623 17.2622C9.42349 16.8796 9.36553 16.4739 9.31916 16.1841C9.32251 16.1262 9.32251 16.0681 9.31916 16.0102C9.26721 15.0091 9.49607 14.0133 9.97992 13.1353C10.0681 12.9914 10.169 12.8556 10.2813 12.7296C10.3744 12.6189 10.4894 12.5288 10.6191 12.465C10.7488 12.4011 10.8904 12.3649 11.0348 12.3587C11.3244 12.3957 11.5893 12.5406 11.7767 12.7644C12.1312 13.2107 12.3736 13.7354 12.4838 14.2946C12.7615 15.4513 12.6765 16.6655 12.2404 17.7722V17.8302ZM21.3171 17.8302C21.1751 18.1828 20.962 18.5024 20.6911 18.7692C20.4948 18.9572 20.2327 19.0612 19.9608 19.059H12.9128C13.562 18.0569 13.8858 16.8788 13.8401 15.6856C13.8858 14.4925 13.562 13.3144 12.9128 12.3123H19.8681C20.0857 12.3079 20.3008 12.3587 20.4934 12.4601C20.686 12.5615 20.8498 12.71 20.9693 12.8919C21.3508 13.4227 21.5939 14.0403 21.6765 14.6887C21.8437 15.7262 21.7193 16.7898 21.3171 17.7606V17.8302Z\",\n fill: \"#666666\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.3819 5.46134C15.3038 5.45593 15.2302 5.42244 15.1748 5.36704C15.1194 5.31165 15.0859 5.23809 15.0805 5.15994C15.0864 5.08101 15.1219 5.00724 15.18 4.95346C15.2381 4.89969 15.3144 4.86992 15.3935 4.87013C15.4704 4.87013 15.5441 4.90067 15.5984 4.95502C15.6528 5.00937 15.6833 5.08308 15.6833 5.15994C15.6804 5.23896 15.6478 5.31396 15.5918 5.36987C15.5359 5.42578 15.4609 5.45846 15.3819 5.46134Z\",\n fill: \"#666666\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.1903 9.50714C17.1849 9.58529 17.1514 9.65885 17.096 9.71424C17.0406 9.76964 16.967 9.80313 16.8889 9.80853C16.8099 9.80566 16.7349 9.77298 16.679 9.71707C16.623 9.66116 16.5904 9.58616 16.5875 9.50714C16.5875 9.43028 16.618 9.35656 16.6724 9.30221C16.7267 9.24786 16.8004 9.21733 16.8773 9.21733C16.9173 9.21412 16.9575 9.21924 16.9953 9.23236C17.0332 9.24549 17.068 9.26632 17.0974 9.29356C17.1268 9.3208 17.1502 9.35384 17.1662 9.3906C17.1822 9.42737 17.1904 9.46705 17.1903 9.50714Z\",\n fill: \"#666666\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.5217 9.3449C11.4417 9.3449 11.3651 9.31315 11.3086 9.25662C11.252 9.2001 11.2203 9.12344 11.2203 9.0435C11.2232 8.96756 11.2546 8.8955 11.3084 8.84176C11.3621 8.78802 11.4341 8.75657 11.5101 8.7537C11.5892 8.75348 11.6655 8.78326 11.7236 8.83703C11.7817 8.8908 11.8172 8.96458 11.8231 9.0435C11.8231 9.12344 11.7913 9.2001 11.7348 9.25662C11.6783 9.31315 11.6016 9.3449 11.5217 9.3449Z\",\n fill: \"#666666\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.5905 10.3765C15.5221 10.3629 15.4606 10.326 15.4164 10.2721C15.3721 10.2182 15.348 10.1506 15.348 10.0809C15.348 10.0111 15.3721 9.94357 15.4164 9.88967C15.4606 9.83577 15.5221 9.79887 15.5905 9.78526C15.6716 9.78521 15.7495 9.81659 15.8078 9.8728C15.8662 9.92901 15.9005 10.0057 15.9035 10.0867C15.902 10.1262 15.8927 10.1652 15.8762 10.2012C15.8597 10.2372 15.8362 10.2695 15.8071 10.2965C15.778 10.3234 15.7439 10.3443 15.7068 10.358C15.6696 10.3717 15.6301 10.378 15.5905 10.3765Z\",\n fill: \"#666666\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.2483 14.0859C17.2087 14.0845 17.1698 14.0752 17.1338 14.0586C17.0978 14.0421 17.0654 14.0186 17.0385 13.9895C17.0116 13.9605 16.9907 13.9264 16.9769 13.8892C16.9632 13.852 16.9569 13.8125 16.9585 13.773C16.9641 13.696 16.9981 13.6238 17.0537 13.5703C17.1093 13.5169 17.1827 13.4858 17.2599 13.4832C17.3398 13.4832 17.4165 13.5149 17.473 13.5714C17.5295 13.628 17.5613 13.7046 17.5613 13.7846C17.5613 13.8645 17.5295 13.9411 17.473 13.9977C17.4165 14.0542 17.3398 14.0859 17.2599 14.0859H17.2483Z\",\n fill: \"#666666\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.7607 15.8944C20.7623 15.9345 20.7556 15.9744 20.7411 16.0117C20.7265 16.049 20.7044 16.0829 20.676 16.1112C20.6477 16.1395 20.6138 16.1617 20.5765 16.1762C20.5392 16.1908 20.4993 16.1975 20.4593 16.1958C20.4197 16.1943 20.3808 16.1851 20.3448 16.1685C20.3088 16.152 20.2764 16.1285 20.2495 16.0994C20.2226 16.0704 20.2016 16.0363 20.1879 15.9991C20.1742 15.9619 20.1679 15.9224 20.1695 15.8829C20.1796 15.8076 20.2149 15.738 20.2696 15.6854C20.3244 15.6328 20.3953 15.6002 20.4709 15.593C20.5488 15.596 20.6225 15.6291 20.6765 15.6853C20.7306 15.7415 20.7607 15.8165 20.7607 15.8944Z\",\n fill: \"#666666\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.3008 18.0851C15.2991 18.0467 15.3055 18.0082 15.3195 17.9723C15.3335 17.9364 15.3548 17.9038 15.382 17.8766C15.4092 17.8493 15.4418 17.828 15.4777 17.8141C15.5137 17.8001 15.5521 17.7937 15.5906 17.7953C15.6705 17.7953 15.7472 17.8271 15.8037 17.8836C15.8602 17.9401 15.892 18.0168 15.892 18.0967C15.889 18.1716 15.8571 18.2423 15.8031 18.2942C15.7491 18.3461 15.6771 18.375 15.6022 18.375C15.5627 18.3783 15.523 18.3732 15.4857 18.36C15.4484 18.3467 15.4144 18.3257 15.3859 18.2983C15.3573 18.2708 15.335 18.2376 15.3203 18.2009C15.3056 18.1641 15.299 18.1247 15.3008 18.0851Z\",\n fill: \"#666666\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.05564 13.2282C7.97859 13.2176 7.90759 13.1806 7.85474 13.1236C7.8019 13.0665 7.77048 12.9929 7.76584 12.9152C7.77387 12.8391 7.80851 12.7684 7.86365 12.7153C7.9188 12.6623 7.9909 12.6305 8.06723 12.6254C8.10786 12.6269 8.14777 12.6365 8.18457 12.6538C8.22137 12.671 8.2543 12.6956 8.28137 12.7259C8.30845 12.7562 8.32911 12.7917 8.34211 12.8302C8.35511 12.8687 8.36019 12.9095 8.35704 12.95C8.35555 12.9881 8.34656 13.0255 8.3306 13.0601C8.31464 13.0947 8.29202 13.1258 8.26403 13.1516C8.23603 13.1774 8.20322 13.1975 8.16746 13.2107C8.1317 13.2238 8.09371 13.2298 8.05564 13.2282Z\",\n fill: \"#666666\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.27348 15.6161V17.0536C5.27348 17.1347 5.27348 17.2506 5.27348 17.297C5.20579 17.3877 5.10651 17.4498 4.99527 17.4709C4.88943 17.4378 4.79895 17.3679 4.74024 17.2738C4.71605 17.1945 4.71605 17.1097 4.74024 17.0304V14.2482C4.74024 13.9353 4.83298 13.7846 5.04164 13.773C5.2503 13.7614 5.35463 13.9353 5.35463 14.2598L5.27348 15.6161Z\",\n fill: \"#666666\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.6755 14.1556C10.6755 13.9121 10.803 13.773 10.9885 13.773C11.174 13.773 11.2783 13.9237 11.2783 14.1556V17.0536C11.2783 17.2854 11.1624 17.4246 10.9653 17.4246C10.7682 17.4246 10.6755 17.297 10.6755 17.0536V14.1556Z\",\n fill: \"#666666\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.04402 9.15919C8.04402 9.37944 7.9281 9.53014 7.75422 9.53014C7.58033 9.53014 7.45282 9.39103 7.45282 9.1476V6.22636C7.45282 5.98292 7.55715 5.867 7.74263 5.85541C7.9281 5.84382 8.04402 5.98292 8.04402 6.23795V9.15919Z\",\n fill: \"#666666\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFeed);\nexport default __webpack_public_path__ + \"static/media/feed.824aba4b.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgHealth(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 25,\n height: 25,\n viewBox: \"0 0 25 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.01399 15.7664C6.71316 16.0215 6.6727 16.4365 6.90838 16.7257L10.3437 20.7918C10.9815 21.5526 11.9528 22 12.913 22C13.8785 22 14.82 21.5404 15.4836 20.7489L18.9254 16.7171C19.2164 16.4086 19.1771 16.0056 18.8665 15.7751C18.569 15.5233 18.1402 15.5709 17.8642 15.8668L14.4279 19.8926C13.9794 20.4061 13.4963 20.631 12.913 20.631C12.3835 20.631 11.8522 20.3713 11.4401 19.8908L8.00231 15.8632C7.76624 15.5735 7.30085 15.5231 7.01399 15.7664ZM9.73913 7.43886C9.33937 7.43886 8.95345 7.55514 8.64233 7.77739C8.30501 7.99196 8.07491 8.35469 7.99605 8.80572L7.23968 12.5415L6.97886 12.7074H3.69565C3.29397 12.7074 3 12.9879 3 13.3712C3 13.7388 3.32067 14.0349 3.69565 14.0349H6.91304C7.75818 14.0349 8.50032 13.4485 8.65612 12.6681L9.39525 9.01743L9.41426 8.96401L9.49014 8.8192L9.73913 8.70041L9.98812 8.8192L10.064 8.96401L10.083 9.01718L10.9958 13.4964L11.5617 16.1965C11.6331 16.5713 11.8837 16.9499 12.2174 17.2293C12.5187 17.4449 12.9046 17.5611 13.3043 17.5611C13.7041 17.5611 14.09 17.4449 14.3913 17.2293C14.7183 16.9953 14.9745 16.6184 15.0477 16.2344L15.6128 13.5385L16.178 10.8005L16.1969 10.7478L16.2727 10.603L16.5217 10.4843L16.7707 10.603L16.8466 10.7478L16.8655 10.8008L17.2574 12.7118C17.4102 13.514 18.1357 14.0764 19 14.0764H22.1739C22.5592 14.0764 22.8696 13.7705 22.8703 13.3954C22.9025 13.0272 22.5778 12.7074 22.1739 12.7074H18.8665L18.6251 12.4772L18.6126 12.4146L18.2209 10.4629C18.1458 10.0689 17.8784 9.65425 17.5652 9.43013C17.2639 9.21453 16.878 9.09825 16.4783 9.09825C16.0785 9.09825 15.6926 9.21453 15.3815 9.43678C15.0441 9.65135 14.814 10.0141 14.735 10.4659L14.1697 13.2044L13.6087 15.8603V16.1129L13.3043 16.2581L13.0554 16.1393L12.9795 15.9945L12.9607 15.9424L12.3954 13.2452L11.4812 8.80048C11.409 8.38711 11.1585 8.0086 10.8359 7.77739C10.474 7.54719 10.124 7.43886 9.73913 7.43886ZM17 3C15.5889 3 14.2839 3.52053 13.1907 4.48016L13.0404 4.61203L12.8931 4.47727C11.8642 3.53652 10.5191 3 9.13043 3C7.46961 3 5.94803 3.71539 4.86031 4.96076C3.77257 6.16469 3.13044 7.83077 3.13044 9.55459C3.13044 9.86198 3.15746 10.1628 3.21571 10.6075L3.2165 10.652C3.18785 10.9526 3.4367 11.1725 3.78261 11.1725C3.86957 11.1725 3.86957 11.1725 3.8773 11.1753C4.27757 11.1117 4.54729 10.7652 4.48122 10.4184C4.44228 10.1955 4.43478 10.0023 4.43478 9.55459C4.43478 8.12802 4.95349 6.78137 5.83547 5.85132C6.69839 4.89797 7.84334 4.369 9.04348 4.369C10.3377 4.369 11.5724 4.98722 12.4146 6.04765L12.5885 6.21359C12.5924 6.21729 12.6162 6.2247 12.66 6.23581L12.7059 6.25771C12.7297 6.26906 12.7422 6.2732 12.7531 6.27493C12.7648 6.27678 12.7787 6.27729 12.8261 6.27729L12.8948 6.28794C13.0633 6.34151 13.2517 6.29656 13.455 6.17211C13.4807 6.14757 13.5621 6.08753 13.5565 6.09202C13.5754 6.077 13.5845 6.06713 13.6087 6.02838C14.4407 4.96994 15.6398 4.369 16.9565 4.369C18.1844 4.369 19.2901 4.88526 20.1645 5.85132C21.0583 6.83873 21.5652 8.14361 21.5652 9.55459C21.5652 9.68311 21.559 9.79237 21.5429 10.0003C21.5263 10.2143 21.5217 10.2885 21.5188 10.4184C21.4517 10.8026 21.7162 11.1423 22.087 11.1725H22.2174C22.5539 11.1725 22.883 10.9091 22.9147 10.6075C22.968 10.2004 23 9.83456 23 9.55459C23 7.80449 22.3833 6.18628 21.2705 4.96118C20.1385 3.71488 18.618 3 17 3Z\",\n fill: \"#666666\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgHealth);\nexport default __webpack_public_path__ + \"static/media/health.19e15b8f.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgProduction(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 25,\n height: 25,\n viewBox: \"0 0 25 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.4983 8.72506L15.7341 6.09753V5.67241C15.8956 5.67384 16.0513 5.61196 16.1678 5.49999C16.2844 5.38802 16.3526 5.23483 16.358 5.07315V2.61465C16.3573 2.53326 16.3406 2.4528 16.3089 2.37787C16.2772 2.30293 16.2311 2.23499 16.1731 2.17791C16.1152 2.12084 16.0466 2.07575 15.9713 2.04523C15.8959 2.01471 15.8154 1.99935 15.7341 2.00002H9.49548C9.41422 1.99935 9.33363 2.01471 9.2583 2.04523C9.18297 2.07575 9.11438 2.12084 9.05645 2.17791C8.99852 2.23499 8.95238 2.30293 8.92067 2.37787C8.88895 2.4528 8.87228 2.53326 8.87162 2.61465V5.07315C8.87228 5.15454 8.88895 5.235 8.92067 5.30993C8.95238 5.38487 8.99852 5.45281 9.05645 5.50989C9.11438 5.56696 9.18297 5.61205 9.2583 5.64257C9.33363 5.67309 9.41422 5.68845 9.49548 5.68778V6.09753L7.73128 8.70457C7.25163 9.41712 6.99686 10.2576 7.00003 11.117V21.1559C7.00543 21.6485 7.20532 22.1191 7.55602 22.4646C7.90672 22.8101 8.37971 23.0025 8.87162 22.9997H16.358C16.6033 23.0038 16.8469 22.9593 17.075 22.8687C17.303 22.7781 17.5109 22.6432 17.6868 22.4719C17.8626 22.3005 18.0029 22.096 18.0995 21.8702C18.1962 21.6443 18.2473 21.4016 18.25 21.1559V11.117C18.2456 10.2621 17.9836 9.42838 17.4983 8.72506V8.72506ZM10.1193 3.22927H15.1102V4.45853H10.1193V3.22927ZM16.9818 14.6562C15.4418 14.3631 13.8483 14.5845 12.446 15.2862C11.2232 15.8952 9.82416 16.0495 8.49832 15.7215L8.24775 15.655V11.117C8.24169 10.5097 8.42002 9.91487 8.75912 9.41139L10.6256 6.64557C10.6928 6.54574 10.7285 6.42794 10.7279 6.30753V5.6929H14.471V6.30753C14.4696 6.42885 14.5072 6.54741 14.5784 6.64557L16.4449 9.41139C16.7452 9.84975 16.9218 10.3611 16.9563 10.8916L16.9818 14.6562Z\",\n fill: \"#666666\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.1866 11.2034L12.9416 13.8677C12.9042 13.9101 12.8591 13.9449 12.8086 13.9702C12.6998 14.0111 12.5799 14.0111 12.4711 13.9702C12.4206 13.9449 12.3755 13.9101 12.3381 13.8677L10.0727 11.2034C10.0315 11.1541 10.0065 11.0933 10.0011 11.0292C9.99488 10.9672 10.0073 10.9047 10.0369 10.8499C10.0709 10.7945 10.1184 10.7486 10.1749 10.7167C10.2369 10.6858 10.3052 10.67 10.3744 10.6706H11.121V10.2043C11.125 10.1468 11.1513 10.0931 11.1943 10.0547C11.2373 10.0164 11.2936 9.99653 11.3511 9.99935H11.6426C11.7001 9.99653 11.7564 10.0164 11.7995 10.0547C11.8425 10.0931 11.8688 10.1468 11.8728 10.2043V11.0036C11.8721 11.0487 11.8617 11.0931 11.8423 11.1338C11.8228 11.1745 11.7949 11.2105 11.7603 11.2393C11.6862 11.3028 11.5918 11.3374 11.4943 11.3366H11.121L12.6296 13.1248L14.128 11.3469H13.7547C13.6572 11.3476 13.5628 11.3131 13.4888 11.2495C13.4542 11.2207 13.4262 11.1847 13.4068 11.144C13.3873 11.1033 13.3769 11.0589 13.3763 11.0138V8.20607C13.3802 8.14852 13.4065 8.09482 13.4496 8.05651C13.4926 8.01819 13.5489 7.9983 13.6064 8.00112H13.8979C13.9554 7.9983 14.0117 8.01819 14.0547 8.05651C14.0978 8.09482 14.1241 8.14852 14.128 8.20607V10.6706H14.8746C14.9438 10.67 15.0122 10.6858 15.0741 10.7167C15.1306 10.7486 15.1781 10.7945 15.2122 10.8499C15.2417 10.9047 15.2541 10.9672 15.248 11.0292C15.2455 11.0921 15.2241 11.1529 15.1866 11.2034V11.2034Z\",\n fill: \"#666666\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgProduction);\nexport default __webpack_public_path__ + \"static/media/production.a07c7a07.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _g, _path3, _path4;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgReproduction(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 25,\n height: 25,\n viewBox: \"0 0 25 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.11437 15.5905V15.5373C5.99847 15.1167 6.11437 14.8009 6.40412 14.5377C6.52001 14.4324 6.75181 14.2213 6.92565 13.9581C6.75181 13.906 6.52001 13.906 6.28822 13.906C5.99847 13.906 5.70873 13.9581 5.30309 13.9581C4.78155 14.0113 4.14411 14.0639 3.33282 14.0639C2.92718 14.0639 2.46359 14.0639 2 14.0113C2.05795 14.5903 2.17385 15.1688 2.28974 15.7484C2.63744 15.7484 2.98513 15.8005 3.27488 15.8005C4.7236 15.8005 5.59283 15.6431 6.11437 15.5905\",\n fill: \"#666666\"\n })), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask0_559_36689\",\n style: {\n maskType: \"luminance\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: 4,\n y: 2,\n width: 18,\n height: 11\n }, _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.82129 2H21.8956V12.3286H4.82129V2Z\",\n fill: \"white\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask0_559_36689)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12.9175 4.96676H13.4797C13.7608 4.96676 14.0981 5.0217 14.3793 5.0217C14.8853 5.0217 15.2226 4.96676 15.5037 4.85688C15.6718 4.80194 15.8411 4.747 16.0097 4.63712C16.066 4.69206 16.1784 4.747 16.1784 4.80194C16.7963 5.2964 17.584 6.17544 18.3149 7.05448C18.8209 7.65882 19.3264 8.26316 19.8329 8.75762C19.8329 8.81256 19.7767 8.81256 19.7767 8.8675C19.3831 8.92244 18.8209 9.03232 18.2019 9.08726C16.2341 9.30702 14.9977 9.52678 14.2106 10.0762C13.6484 10.5157 12.7488 11.3947 11.8492 12.3287H13.0861H14.3793C14.7728 11.9441 15.1096 11.6694 15.3351 11.5046C16.066 10.9552 18.8209 10.8453 20.2827 10.5706C21.4634 10.3509 22.363 8.48292 21.6321 7.87858C20.4508 6.88966 18.8771 4.58218 17.4715 3.42844C16.9093 2.98892 17.9208 2.43952 17.8651 2.10988C17.8089 2.05494 17.6964 2 17.584 2C17.0218 2 15.6718 2.98892 14.9415 3.20868C14.8285 3.26362 14.6042 3.26362 14.3793 3.26362C13.9295 3.26362 13.311 3.20868 12.9175 3.20868H6.95778H6.78911C6.0582 3.75808 5.38352 4.30748 4.82129 4.96676H6.95778H12.9175Z\",\n fill: \"#666666\"\n }))), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.11036 17.3852C9.05707 17.3852 9.00379 17.3291 8.89723 17.3291C8.84394 17.4414 8.84394 17.5536 8.79066 17.6659C8.79066 17.5536 8.73738 17.3852 8.73738 17.273C8.52425 17.2168 8.20456 17.1607 7.99143 17.1607C7.67173 17.1046 7.40532 17.1046 7.19219 17.0484C7.08563 17.0484 7.03235 16.9923 6.92578 16.9362C7.19219 18.2833 7.35204 20.6971 7.4586 22.1004C7.51189 22.7178 8.15127 22.9985 8.73738 22.9985C9.37677 22.9985 9.96287 22.7178 10.0162 22.2688C10.0694 21.3706 10.176 20.0235 10.3359 18.7885C9.80303 18.0588 9.2702 17.5536 9.11036 17.3852\",\n fill: \"#666666\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.9118 17.1182C19.9118 17.1732 19.8562 17.2282 19.8562 17.2832C19.6898 17.8332 19.7449 18.1632 19.8562 18.6032C19.8562 18.6582 19.9118 18.7132 19.9118 18.8232C19.9118 18.9882 20.0231 19.8682 19.8562 20.4182C19.8011 19.8682 19.578 18.8232 19.2998 18.4382C19.1335 18.2182 18.7991 17.8882 18.5209 17.7782C18.354 17.6682 17.8538 17.6682 17.3525 17.6682H16.5736H16.3516C15.8503 17.7782 15.3502 17.7782 14.9607 17.7782C14.5707 17.7782 14.2925 17.7232 14.0699 17.7232C13.903 17.7232 13.7918 17.6682 13.6248 17.6682C13.0685 17.6682 12.7903 17.9982 12.679 18.2182C12.5677 18.4382 12.457 19.3182 12.4008 19.8132C12.2896 19.2632 12.1226 18.2182 11.8445 17.8882C11.5106 17.5032 11.1768 17.1182 10.7879 16.7332C10.4535 16.4032 10.1197 16.0732 9.89715 15.9081C9.73024 15.7981 9.50769 15.6881 9.28515 15.6331C9.0626 15.5781 8.72877 15.5231 8.39495 15.4681C8.28423 15.4681 8.22804 15.4681 8.11677 15.4131C7.83858 15.3581 7.61603 15.3581 7.39348 15.3031L7.33785 15.2481C7.56039 15.0281 7.72786 14.8081 7.94985 14.5881C7.94985 14.5331 8.00605 14.5331 8.00605 14.4781C8.33931 14.0931 8.6175 13.4331 9.00696 13.2131C9.0626 13.2131 9.0626 13.1581 9.11879 13.1581C9.17387 13.1581 9.28515 13.1581 9.34078 13.2131C9.50769 13.2681 9.67516 13.3231 9.89715 13.3781C10.1197 13.4881 10.3979 13.4881 10.4535 13.4881H10.6204H13.0685H13.1241H18.4653H19.6898C19.968 13.4881 20.0793 13.5981 20.0793 13.6531C20.3013 13.9831 20.6357 14.6981 19.9118 17.1182M19.968 12.8832H19.6898H19.4667H13.2353H10.5647C10.4535 12.8832 9.61891 12.3882 9.06254 12.3882H9.00691C8.72872 12.3882 8.67308 12.4982 8.61745 12.5532C7.9498 13.1032 7.22652 14.5332 6.67015 15.0282C6.33688 15.3032 6.72578 16.1283 7.28215 16.2383C7.89416 16.3483 9.17382 16.4033 9.50764 16.6783C9.84146 16.8983 10.5647 17.6683 11.288 18.5483C11.7331 19.0983 11.9557 21.4634 12.0113 22.2334C12.0113 22.4534 12.1788 22.6184 12.512 22.6184C12.7902 22.6184 13.0133 22.5084 13.0133 22.2334C13.0684 21.4084 13.2915 19.0433 13.4579 18.7133C13.5135 18.6583 13.5697 18.6033 13.6804 18.6033C13.903 18.6033 14.2924 18.7133 14.9606 18.7133C15.3501 18.7133 15.9065 18.6583 16.5179 18.5483H16.9079H18.0758C18.4652 18.5483 18.799 18.9883 18.8552 19.0983C19.0216 19.3733 19.3554 21.2434 19.2447 22.2334C19.2447 22.3434 19.1885 22.3984 19.2447 22.4534C19.2998 22.5634 19.4116 22.6184 19.6898 22.6184C19.9118 22.6184 20.1343 22.5634 20.19 22.3984C20.3012 22.2334 20.8576 19.2633 20.7463 18.7133C20.6356 18.1633 20.5794 17.9983 20.6907 17.5583C20.7463 17.2833 21.3027 15.7433 21.2471 14.5332C21.3027 14.6982 21.3027 14.9182 21.3027 15.1382C21.3027 15.9083 21.3027 15.6883 21.2471 16.5683V17.2833C21.2471 17.5033 21.414 17.6683 21.6371 17.6683C21.8591 17.6683 22.0266 17.5033 22.0266 17.2833V16.5683C22.0266 15.6883 22.0816 15.9083 22.0816 15.1382C22.0816 14.3682 21.8591 13.7632 21.4702 13.3782C21.0245 12.9382 20.4125 12.8832 19.968 12.8832\",\n fill: \"#666666\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgReproduction);\nexport default __webpack_public_path__ + \"static/media/reproduction.8f939a5c.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgHerdComposition(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 25,\n height: 25,\n viewBox: \"0 0 25 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.9677 7.46102C11.9677 7.34916 11.9677 7.2 11.9677 7.12543C11.9677 6.93899 12.0036 6.78983 12.0036 6.64068C12.0036 6.9017 12.0036 7.2 12.0395 7.46102H12.5425C12.3988 6.5661 12.5425 6.23051 12.6143 6.15593C12.6502 6.11865 12.6862 6.04407 12.9017 6.04407C13.0095 6.04407 13.3687 6.04407 13.8357 6.04407C14.8416 6.04407 16.5659 6.04407 17.895 6.04407C19.0086 6.04407 19.6912 6.04407 19.9067 6.04407C19.9427 6.04407 20.0145 6.04407 20.0863 6.04407C20.1941 6.04407 20.3019 6.04407 20.4097 6.04407C20.5893 6.04407 20.697 6.04407 20.8048 6.00678C20.8767 5.96949 20.9126 5.96949 20.9844 5.9322C21.0203 5.96949 21.0203 5.96949 21.0563 6.00678C21.2718 6.19322 21.5233 6.49153 21.7747 6.82712C21.9544 7.05085 22.134 7.23729 22.2777 7.42373L22.2417 7.46102C22.098 7.49831 21.9184 7.49831 21.7029 7.5356V7.5356L22.098 8.09492C22.2417 8.09492 22.3495 8.05763 22.4214 8.05763C22.8165 7.98306 23.1398 7.34916 22.8884 7.12543C22.4932 6.75254 21.9544 5.96949 21.4873 5.55932C21.3077 5.41017 21.631 5.18644 21.631 5.07458C21.631 5.03729 21.5951 5 21.5592 5C21.3796 5 20.9126 5.33559 20.6611 5.41017C20.6252 5.41017 20.5533 5.44746 20.4815 5.44746C20.3378 5.44746 20.1223 5.44746 19.9786 5.41017C19.7271 5.41017 18.9368 5.41017 17.9669 5.41017C16.2785 5.41017 14.0872 5.41017 13.2609 5.41017C13.2609 5.41017 13.2609 5.41017 13.225 5.41017H13.0813C12.6862 5.41017 12.1473 5.37288 11.7162 5.78305C11.4288 6.08136 11.2852 6.52882 11.2852 7.12543C11.2852 7.23729 11.2852 7.34916 11.2852 7.46102H11.9677Z\",\n fill: \"#666666\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M22.8611 9.37373C22.3737 8.97902 21.7363 8.11783 21.1365 7.57958C21.0615 7.50781 20.9865 7.47193 20.9115 7.40016C20.7616 7.29251 20.8741 7.14898 20.9865 7.00545C21.0615 6.93368 21.1365 6.86192 21.1365 6.79015C21.1365 6.75427 21.099 6.71838 21.024 6.71838C20.7616 6.71838 20.1242 7.14898 19.7868 7.25663C19.7118 7.29251 19.6369 7.29251 19.5244 7.29251C19.2994 7.29251 19.037 7.25663 18.8495 7.25663C18.5121 7.25663 17.4249 7.25663 16.0752 7.25663C14.838 7.25663 13.3759 7.25663 12.1387 7.25663H11.6138H11.3888C11.1639 7.25663 10.9389 7.25663 10.7515 7.25663H9.58927H9.55178H9.51429C9.43931 7.25663 9.36433 7.25663 9.28935 7.25663C8.76447 7.25663 7.97716 7.22075 7.4148 7.75899C7.03989 8.08194 6.85243 8.62019 6.81494 9.26609H7.67723C7.67723 9.12255 7.71472 8.97902 7.75222 8.83549C7.75222 8.97902 7.75222 9.12255 7.75222 9.26609H8.46454C8.42705 8.58431 8.57702 8.33312 8.652 8.22547C8.68949 8.18959 8.76447 8.08194 9.0644 8.08194H9.62676H10.789C10.9764 8.08194 11.2014 8.08194 11.4263 8.08194C11.5388 8.08194 11.6888 8.08194 11.8012 8.08194H12.3261C13.4883 8.08194 14.8005 8.08194 15.9252 8.08194C17.4624 8.08194 18.3996 8.08194 18.6996 8.08194C18.7746 8.08194 18.8495 8.08194 18.962 8.08194C19.0745 8.08194 19.1495 8.08194 19.2619 8.08194C19.2994 8.08194 19.3369 8.08194 19.3744 8.08194C19.5994 8.08194 19.7493 8.04606 19.8993 8.01018C19.9743 7.97429 20.0493 7.93841 20.1617 7.90253C20.1992 7.93841 20.2367 7.93841 20.2367 7.97429V7.97429C20.5366 8.22547 20.8741 8.62019 21.249 8.97902C21.5114 9.26609 21.7363 9.51727 21.9613 9.73257L21.9238 9.76845C21.7363 9.80433 21.4739 9.84022 21.174 9.8761C20.3117 9.98375 19.7493 10.0555 19.3744 10.2708L19.9743 10.8449C20.3867 10.6655 21.5489 10.5938 22.1862 10.4861C22.7486 10.4502 23.1985 9.6608 22.8611 9.37373Z\",\n fill: \"#666666\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.6472 11.4925C19.4571 11.2671 19.2669 11.0794 19.0767 10.854C19.0387 10.7789 18.9626 10.7413 18.9246 10.6662C18.6584 10.4033 18.4302 10.1404 18.1639 9.9151C17.9738 9.76487 18.1259 9.57709 18.24 9.42686C18.3161 9.35174 18.3921 9.27663 18.3921 9.20152C18.3921 9.1264 18.3541 9.1264 18.278 9.1264C18.24 9.1264 18.202 9.1264 18.1639 9.1264C18.0118 9.16396 17.8597 9.23907 17.6315 9.35174C17.061 9.57709 16.2243 9.72731 16.1482 9.72731H13.2577V9.72731H12.4971H12.3449H11.8125H11.242H10.8997C10.4433 9.72731 9.98689 9.72731 9.56853 9.72731H8.42754H7.70492H7.59082C7.28656 9.72731 6.9823 9.72731 6.71607 9.72731C6.64 9.72731 6.56394 9.72731 6.48787 9.72731H5.15672H5.11869C5.04262 9.72731 4.96656 9.72731 4.89049 9.72731C4.28197 9.72731 3.40721 9.68976 2.72262 10.2907C2.26623 10.7413 2 11.4174 2 12.3187C2 13.2577 2.03803 14.9853 2.03803 16.0369C2.03803 16.4875 2.03803 16.788 2.03803 16.8631C2.03803 17.126 2.26623 17.3514 2.53246 17.3514C2.79869 17.3514 3.02689 17.126 3.02689 16.8631C3.02689 16.788 3.02689 16.4875 3.02689 16.0369C3.02689 14.9853 2.98885 13.2577 2.98885 12.3187C2.98885 12.0183 3.02689 11.7929 3.06492 11.5676C2.98885 12.9948 3.63541 14.7975 3.71148 15.0979C3.86361 15.6237 3.78754 15.8115 3.63541 16.4875C3.55935 17.2387 4.16787 19.6423 4.32 19.8677C4.4341 20.0554 4.73836 20.1306 5.04262 20.1306C5.30885 20.1306 5.61312 20.0554 5.68918 19.9052C5.72722 19.8301 5.72722 19.6799 5.72722 19.5297C5.57508 18.3654 5.91738 16.8631 6.18361 16.8631C6.18361 16.8631 6.18361 16.8631 6.22164 16.8631C6.37377 16.9382 6.67804 17.0509 7.05836 17.0509C7.0964 17.0509 7.13443 17.0509 7.17246 17.0509C8.04722 16.9758 8.16131 16.5627 8.38951 16.4124C8.46558 16.3749 8.54164 16.3373 8.61771 16.3373C8.65574 16.3373 8.69377 16.3373 8.73181 16.3373C9.49246 16.45 10.101 16.4875 10.5954 16.4875C11.3941 16.4875 11.8505 16.3749 12.1167 16.3749C12.2689 16.3749 12.3449 16.4124 12.383 16.4875C12.421 16.6002 12.4971 16.7504 12.5351 16.9758C12.6872 17.6894 12.7633 18.8912 12.8013 19.6048C12.8394 19.9052 13.1816 20.0555 13.5239 20.0555C13.8662 20.0555 14.2466 19.9052 14.2466 19.6799C14.2846 19.0039 14.3607 17.8772 14.6269 17.0509C14.703 16.7504 14.8171 16.4875 14.9692 16.3373C15.3875 15.8491 15.8059 15.3984 16.1862 15.0228C16.5666 14.6473 16.9089 14.3093 17.099 14.1966C17.2131 14.0839 17.4794 14.0464 17.7836 13.9712C18.3921 13.8586 19.2289 13.7835 19.7233 13.7083C20.0276 13.6332 20.3318 13.3703 20.4459 13.0699C20.598 12.7694 20.6361 12.4314 20.4079 12.2812C20.1797 12.0934 19.9135 11.8305 19.6472 11.4925ZM19.4191 12.8815C19.1909 12.9191 18.8867 12.9566 18.5824 12.9942C18.4683 12.9942 18.3162 13.0317 18.2021 13.0317C18.0499 13.0317 17.9358 13.0693 17.8217 13.0693C17.5175 13.1068 17.2893 13.1444 17.0611 13.2195C16.947 13.2571 16.8329 13.2946 16.7188 13.3322C16.6047 13.3697 16.5286 13.4449 16.4145 13.4824C16.3004 13.5575 16.1863 13.6702 16.0342 13.7829C15.4637 14.3087 14.703 15.1349 14.0945 15.8109C13.8283 16.1114 13.6381 16.5245 13.486 17.0128C13.448 17.1254 13.4099 17.2757 13.3719 17.4259C13.3339 17.2757 13.3339 17.1254 13.2958 17.0128C13.2198 16.6372 13.1437 16.3743 13.0296 16.1865C12.9155 15.9612 12.5732 15.548 11.8886 15.548C11.7365 15.548 11.5844 15.5856 11.3942 15.5856C11.128 15.6231 10.7857 15.6607 10.3673 15.6607C10.2152 15.6607 10.1011 15.6607 9.94894 15.6607C9.53058 15.6231 9.11222 15.5856 8.65583 15.5105C8.6178 15.5105 8.57976 15.5105 8.54173 15.5105C8.5037 15.5105 8.42763 15.5105 8.3896 15.5105C8.0473 15.5105 7.81911 15.6231 7.62894 15.7358C7.43878 15.8485 7.32468 15.9987 7.24861 16.0738C7.13452 16.1865 7.09648 16.2241 6.83025 16.2616H6.79222C6.64009 16.2616 6.48796 16.1865 6.33583 16.1489H6.29779C6.1837 16.1114 6.03156 16.0738 5.91747 16.0738C5.6132 16.0738 5.30894 16.1865 5.11878 16.4494C4.85255 16.7499 4.66238 17.3508 4.54828 17.9517C4.47222 17.4634 4.39615 17.0503 4.39615 16.8625C4.43419 16.7874 4.43419 16.6747 4.43419 16.5996C4.54828 16.1114 4.62435 15.6983 4.43419 15.0598C4.43419 15.0222 4.39615 14.9471 4.35812 14.872C3.48337 11.9801 3.86369 11.1539 4.01583 10.9661C4.05386 10.9285 4.12992 10.8159 4.51025 10.8159H6.44993C6.52599 10.8159 6.60206 10.8159 6.71615 10.8159C6.98238 10.8159 7.28665 10.8159 7.59091 10.8159H7.85714H8.57976C8.88402 10.8159 9.18829 10.8159 9.53058 10.8159C10.3673 10.8159 11.204 10.8159 12.0027 10.8159H16.4526V10.8159C16.4526 10.8159 17.5175 10.8159 17.8217 11.1163C17.9739 11.2666 18.126 11.4543 18.2781 11.6421L18.3162 11.7172C18.3922 11.7924 18.4683 11.905 18.5444 11.9801C18.6204 12.0928 18.7345 12.2055 18.8106 12.3181C19.0008 12.5435 19.1909 12.7313 19.343 12.9191C19.4191 12.8439 19.4191 12.8815 19.4191 12.8815Z\",\n fill: \"#666666\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgHerdComposition);\nexport default __webpack_public_path__ + \"static/media/herdComposition.4c4e86a2.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgWeather(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 25,\n height: 25,\n viewBox: \"0 0 25 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.8145 2L8.31884 3.55719L9.42845 3.90968L9.92411 2.35249L8.8145 2Z\",\n fill: \"#666666\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.34931 5.30958L2 6.41462L3.55386 6.90483L3.90317 5.79979L2.34931 5.30958Z\",\n fill: \"#666666\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.85346 11.2819L5.36831 12.8467H5.49306L6.35247 13.1098H6.47722L7.00395 11.642L5.85346 11.2819Z\",\n fill: \"#666666\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.65934 2.58556L4.7029 3.07022L5.4237 4.45499L6.38013 3.97032L5.65934 2.58556Z\",\n fill: \"#666666\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.02376 8.85859L2.69307 9.55097L3.13663 10.5342L4.50891 9.82792L4.02376 8.85859Z\",\n fill: \"#666666\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.7287 5.88127V5.57662C12.7287 5.4187 12.6659 5.26725 12.5541 5.15558C12.4424 5.04391 12.2908 4.98117 12.1327 4.98117C11.9746 4.98117 11.823 5.04391 11.7112 5.15558C11.5994 5.26725 11.5366 5.4187 11.5366 5.57662V12.9159C10.8459 13.0606 10.2168 13.4149 9.73543 13.9305C9.25406 14.4461 8.94394 15.0978 8.84752 15.7962V16.1839C8.83446 16.2688 8.83991 16.3555 8.86351 16.438C8.88711 16.5206 8.9283 16.597 8.98426 16.6622C9.04021 16.7273 9.10961 16.7796 9.18769 16.8155C9.26578 16.8514 9.3507 16.8699 9.43663 16.8699C9.52257 16.8699 9.60749 16.8514 9.68557 16.8155C9.76365 16.7796 9.83305 16.7273 9.88901 16.6622C9.94496 16.597 9.98615 16.5206 10.0098 16.438C10.0334 16.3555 10.0388 16.2688 10.0257 16.1839V16.0039C10.0698 15.4818 10.3047 14.9942 10.6856 14.6341C11.0666 14.274 11.5669 14.0666 12.0911 14.0514C12.5485 14.0514 12.7426 13.8021 12.7426 13.3175V5.88127H12.7287Z\",\n fill: \"#666666\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.8633 15.7133C14.7875 15.7114 14.7121 15.7248 14.6416 15.7525C14.571 15.7802 14.5067 15.8217 14.4525 15.8746C14.3982 15.9275 14.3551 15.9907 14.3257 16.0605C14.2963 16.1303 14.2811 16.2053 14.2811 16.281V16.378C14.2704 16.9389 14.0416 17.4737 13.6432 17.8691C13.2448 18.2645 12.708 18.4896 12.1465 18.4967H11.9802C11.829 18.5139 11.6901 18.5882 11.592 18.7044C11.506 18.8353 11.4669 18.9915 11.4811 19.1475C11.5035 19.2834 11.5724 19.4074 11.676 19.4983C11.7797 19.5892 11.9116 19.6414 12.0495 19.646H12.1742C12.9769 19.6373 13.7487 19.3353 14.3437 18.797C14.9388 18.2586 15.3159 17.5213 15.4039 16.7242V16.3087C15.4077 16.2342 15.3966 16.1596 15.3715 16.0893C15.3463 16.0189 15.3075 15.9543 15.2573 15.899C15.2071 15.8437 15.1464 15.7988 15.0788 15.7669C15.0112 15.7351 14.938 15.7168 14.8633 15.7133Z\",\n fill: \"#666666\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23 15.7824H22.0158L22.8752 14.8961L22.0574 14.0514L21.5861 14.5777L20.5465 15.6993C20.4824 15.7592 20.3986 15.7937 20.3109 15.7962H18.0931L18.301 15.4501C18.5921 14.9792 18.8832 14.5084 19.1604 14.0653C19.1988 14.0155 19.2468 13.974 19.3016 13.9431C19.3563 13.9122 19.4167 13.8925 19.4792 13.8853L20.9762 13.5114L21.6 13.3591L21.3505 12.3066L20.0891 12.5974L20.5881 11.7666L19.701 11.1157L19.1743 11.9743L18.8416 10.728L17.7881 11.005L17.9406 11.6004C18.0653 12.1128 18.1901 12.5974 18.3287 13.0821C18.3531 13.139 18.3657 13.2002 18.3657 13.2621C18.3657 13.324 18.3531 13.3853 18.3287 13.4421C18.0792 13.8299 17.8436 14.2176 17.6079 14.6053L17.2198 15.2423C17.0321 14.3968 16.6203 13.6173 16.0277 12.9852C16.1525 12.5559 16.2495 12.1266 16.3604 11.6835L16.5406 11.005L15.4871 10.728L15.1545 11.9743C15.1224 11.9158 15.0853 11.8602 15.0436 11.8081C15.0436 11.5866 15.0436 11.365 15.0436 11.1434V9.62019C15.0436 9.46227 14.9808 9.31081 14.869 9.19914C14.7572 9.08748 14.6056 9.02474 14.4475 9.02474C14.2894 9.02474 14.1378 9.08748 14.0261 9.19914C13.9143 9.31081 13.8515 9.46227 13.8515 9.62019V10.2433C13.8515 10.9219 13.8515 11.6281 13.8515 12.2651C13.8422 12.4182 13.8763 12.5709 13.9499 12.7056C14.0234 12.8403 14.1334 12.9516 14.2673 13.0267C14.9369 13.4404 15.4659 14.0464 15.7849 14.7654C16.104 15.4844 16.1983 16.2829 16.0554 17.0564C15.9089 17.8981 15.4919 18.6693 14.8676 19.2532C14.2432 19.8371 13.4456 20.2021 12.5952 20.2928C11.7448 20.3835 10.8879 20.1952 10.1543 19.7561C9.42057 19.3171 8.84995 18.6514 8.52871 17.8595C8.1785 17.0142 8.13654 16.0728 8.41014 15.1997C8.68374 14.3265 9.25553 13.5771 10.0257 13.0821C10.1847 12.9911 10.3147 12.8569 10.4006 12.6952C10.4864 12.5334 10.5247 12.3507 10.5109 12.1682C10.5109 10.1602 10.5109 8.01386 10.5109 5.93671C10.5075 5.64741 10.5798 5.36224 10.7206 5.10941C10.8613 4.85658 11.0658 4.64485 11.3136 4.49517C11.5615 4.34549 11.8441 4.26306 12.1336 4.25601C12.4232 4.24897 12.7095 4.31757 12.9644 4.45501C13.2403 4.59298 13.4706 4.80735 13.6279 5.07254C13.7852 5.33772 13.8628 5.64252 13.8515 5.95056V7.03068C13.8515 7.10823 13.867 7.18501 13.8971 7.25649C13.9272 7.32797 13.9713 7.39271 14.0269 7.44691C14.0824 7.5011 14.1482 7.54365 14.2205 7.57205C14.2927 7.60045 14.3699 7.61413 14.4475 7.61228C14.6019 7.61228 14.75 7.551 14.8592 7.44193C14.9684 7.33286 15.0297 7.18493 15.0297 7.03068V5.85363C15.0055 5.12679 14.7056 4.43631 14.1909 3.92208C13.6761 3.40784 12.985 3.10828 12.2574 3.08409C11.5082 3.05016 10.7759 3.31353 10.2202 3.81677C9.66454 4.32001 9.33056 5.02231 9.29108 5.77054C8.92262 5.43214 8.45841 5.21589 7.96208 5.15143C7.46576 5.08697 6.96162 5.17746 6.51881 5.4105C6.23048 5.55703 5.97401 5.75907 5.76415 6.005C5.55429 6.25093 5.39518 6.53589 5.29599 6.84349C5.19679 7.15108 5.15946 7.47524 5.18614 7.7973C5.21283 8.11937 5.303 8.43298 5.45148 8.72009C5.73824 9.29021 6.23511 9.72702 6.83762 9.93869C7.24297 10.0686 7.6754 10.0896 8.09146 9.99966C8.50752 9.90972 8.89257 9.71199 9.20791 9.42632V11.365C9.20791 11.6281 9.20791 11.7527 9.20791 11.9327C9.20796 11.9953 9.19286 12.0569 9.1639 12.1124C9.13493 12.1679 9.09297 12.2155 9.04158 12.2512C8.11085 12.9332 7.43836 13.9095 7.13341 15.0216C6.82847 16.1337 6.90901 17.3162 7.36193 18.3768C7.81485 19.4374 8.61353 20.3137 9.62814 20.8634C10.6428 21.4131 11.8136 21.6038 12.9505 21.4045C13.2516 21.3418 13.548 21.2586 13.8376 21.1553L14.5168 21.5707L15.0436 20.7122L15.3624 21.9585L16.2772 21.723H16.3604V21.5846C16.3604 21.4322 16.2911 21.2938 16.2634 21.1414C16.1968 20.8084 16.1088 20.48 16 20.1583C15.9577 20.0613 15.9297 19.9586 15.9168 19.8536C16.4784 19.2078 16.8691 18.4318 17.0535 17.5964C17.047 17.5691 17.047 17.5407 17.0535 17.5134C17.1644 17.6657 17.2614 17.8319 17.3584 17.998C17.4554 18.1642 17.7881 18.7181 18.0238 19.0643C18.1178 19.1813 18.1789 19.3213 18.2008 19.4697C18.2228 19.6182 18.2047 19.7698 18.1485 19.909C18.0238 20.2967 17.9267 20.6983 17.8297 21.0999C17.8297 21.2661 17.7604 21.4322 17.7188 21.5984V21.7369L18.7723 22V21.8754L19.0634 20.7676L19.5901 21.6261L20.5188 21.0445L20.0198 20.2137L21.2812 20.5183L21.5307 19.452L20.8653 19.2166L19.4792 18.8843C19.4192 18.871 19.3625 18.8457 19.3125 18.81C19.2625 18.7743 19.2202 18.7289 19.1881 18.6766C18.9386 18.2611 18.6891 17.8457 18.4257 17.4303L18.0931 16.9041H20.0752C20.1954 16.9006 20.3148 16.9236 20.425 16.9715C20.5352 17.0193 20.6335 17.0909 20.7129 17.181C21.0178 17.5134 21.3505 17.818 21.6554 18.1227L22.0713 18.5104L22.9168 17.7765L22.0574 16.9041H22.9723L23 15.7824Z\",\n fill: \"#666666\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWeather);\nexport default __webpack_public_path__ + \"static/media/weather.af64e049.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgFinance(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 1024 1024\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFinance);\nexport default __webpack_public_path__ + \"static/media/finance.586b5744.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _rect, _g, _path, _rect2, _rect3, _rect4, _path2, _path3, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgNoCharts(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 935,\n height: 800,\n viewBox: \"0 0 935 800\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 510,\n cy: 400,\n r: 400,\n fill: \"#E6F7FF\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 520.5,\n y: 269.5,\n width: 413,\n height: 261,\n rx: 18.5,\n stroke: \"#40A9FF\",\n strokeWidth: 3,\n strokeDasharray: \"8 8\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter0_d_1211_24270)\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: 16,\n y: 225,\n width: 550,\n height: 350,\n rx: 20,\n fill: \"#BAE7FF\"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 17.5,\n y: 226.5,\n width: 547,\n height: 347,\n rx: 18.5,\n stroke: \"#1890FF\",\n strokeWidth: 3\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M737 365H717V390L692 390V410H717V435H737V410H762V390L737 390V365Z\",\n fill: \"#BAE7FF\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 39,\n y: 244,\n width: 200,\n height: 24,\n rx: 12,\n fill: \"white\"\n })), _rect3 || (_rect3 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 39,\n y: 277,\n width: 71,\n height: 16,\n rx: 8,\n fill: \"white\"\n })), _rect4 || (_rect4 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 130,\n y: 277,\n width: 71,\n height: 16,\n rx: 8,\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39 320V552H539\",\n stroke: \"white\",\n strokeWidth: 4\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M49 454L59.8762 450.189C131.636 425.047 209.077 420.879 283.121 438.174L290.5 439.898V439.898C368.717 450.475 448.218 434.42 516.201 394.319L532 385\",\n stroke: \"white\",\n strokeWidth: 6,\n strokeLinecap: \"round\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter0_d_1211_24270\",\n x: 0,\n y: 213,\n width: 582,\n height: 382,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n \"in\": \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n }), /*#__PURE__*/React.createElement(\"feOffset\", {\n dy: 4\n }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 8\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_1211_24270\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n \"in\": \"SourceGraphic\",\n in2: \"effect1_dropShadow_1211_24270\",\n result: \"shape\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgNoCharts);\nexport default __webpack_public_path__ + \"static/media/no-charts.96bc8052.svg\";\nexport { ForwardRef as ReactComponent };","import { FC, FunctionComponent, HTMLAttributes, SVGProps } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport * as Icons from \"./assets\";\nimport { Icon } from \"../../../../elements\";\n\nimport styles from \"./CategoryIcon.module.less\";\n\nexport type CategoryIconProps = {\n category: string;\n};\n\n/**\n * Returns the appropriate category icon\n * @param category\n * @returns\n */\nconst CategoryIcon: FC> = ({\n category,\n className,\n ...rest\n}) => {\n /**\n * Get the icon by partial match\n * so similar categories can have similar icons\n * @param obj\n * @param partialKey\n * @returns\n */\n const findKeyByPartialMatch = (\n obj: Record>>,\n partialKey: string\n ) => {\n return _.defaultTo(\n _.findKey(obj, (value, key) => _.startsWith(_.upperFirst(partialKey), key)),\n \"\"\n );\n };\n\n return (\n \n );\n};\n\nexport default CategoryIcon;\n","import { useDrag, useDrop } from \"react-dnd\";\nimport { ComponentProps, FC, useRef, Key, MouseEventHandler } from \"react\";\nimport Markdown from \"react-markdown\";\nimport { Col, Row, Space, Tooltip, Typography } from \"antd\";\nimport * as _ from \"lodash\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport {\n ActionKey,\n BrowserOutlined,\n DeleteOutlined,\n EditOutlined,\n WarningOutlined,\n ShareAltOutlined,\n Barn,\n Icon\n} from \"../../../..\";\n\nimport { ContentWrapper } from \"../../../layout\";\n\nimport styles from \"./ChartCard.module.less\";\n\nconst { Text } = Typography;\n\nconst type = \"CHART_CARD\";\n\nexport interface ChartCardProps extends ComponentProps {\n /**\n * index\n */\n index?: Key;\n /**\n * Metric title\n */\n metric: string;\n /**\n * Variant title\n */\n variant: string;\n /**\n * Source title\n */\n source?: string;\n /**\n * Optional farm name\n */\n farm?: string;\n /**\n * labels for the tooltips\n */\n labels?: { remove?: string; edit?: string; report?: string; share?: string };\n /**\n * delete handler\n */\n handleDelete?: MouseEventHandler;\n /**\n * configuration handler\n */\n handleConfigure?: MouseEventHandler;\n /**\n * report handler\n */\n handleReport?: MouseEventHandler;\n /**\n * share handler\n */\n handleShare?: MouseEventHandler;\n /**\n * delete handler\n */\n handleDrag?: (dragIndex: Key, hoverIndex: Key) => void;\n}\n\n/**\n * Chart card that wraps up the chart\n * @param {string | number | undefined} index\n * @param {string} metric\n * @param {string} variant\n * @param {string | undefined} source\n * @param {string | undefined} farm\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined | (React.ReactElement> & undefined) | (Iterable & undefined) | (React.ReactPortal & undefined) | (Iterable & React.ReactElement>) | (Iterable & string) | (Iterable & number) | (Iterable & {}) | (Iterable & Iterable) | (Iterable & React.ReactPortal) | (Iterable & boolean) | (Iterable & null) | (Iterable & undefined) | (Iterable & React.ReactElement> & undefined) | (Iterable & Iterable & undefined) | (Iterable & React.ReactPortal & undefined) | (Iterable & undefined & React.ReactElement>) | (Iterable & undefined & Iterable) | (Iterable & undefined & React.ReactPortal)} children\n * @param {string | undefined} className\n * @param {{}} labels\n * @param {((event: React.MouseEvent) => void) | undefined} handleDelete\n * @param {((event: React.MouseEvent) => void) | undefined} handleConfigure\n * @param {((event: React.MouseEvent) => void) | undefined} handleReport\n * @param {((dragIndex: React.Key, hoverIndex: React.Key) => void) | undefined} handleDrag\n * @param {((event: React.MouseEvent) => void) | undefined} handleShare\n * @param {Omit, \"handleShare\" | \"index\" | \"className\" | \"source\" | \"handleConfigure\" | \"labels\" | \"handleDelete\" | \"handleDrag\" | \"metric\" | \"children\" | \"variant\" | \"farm\" | \"handleReport\">} rest\n * @returns {JSX.Element}\n * @constructor\n */\nconst ChartCard: FC = ({\n index,\n metric,\n variant,\n source,\n farm,\n children,\n className,\n labels = {},\n handleDelete,\n handleConfigure,\n handleReport,\n handleDrag,\n handleShare,\n ...rest\n}) => {\n const ref = useRef(null);\n\n const [{ isOver }, drop] = useDrop({\n accept: type,\n collect: (monitor) => {\n const { index: dragIndex } = monitor.getItem() || {};\n\n if (dragIndex === index) {\n return {};\n }\n\n return {\n isOver: monitor.isOver(),\n dropClassName: styles.Dropping,\n className: styles.Div\n };\n },\n drop: (item: { index: Key }) => {\n if (!!index && _.isFunction(handleDrag)) {\n handleDrag(item.index, index);\n }\n }\n });\n\n const [{ isDragging }, drag] = useDrag({\n type,\n item: { index },\n collect: (monitor) => ({\n isDragging: monitor.isDragging()\n })\n });\n\n drop(drag(ref));\n\n return (\n \n \n \n {metric}\n \n {_.isFunction(handleReport) && (\n {_.get(labels, [\"report\"], \"report\")}}>\n \n \n \n \n )}\n {_.isFunction(handleDelete) && (\n {_.get(labels, [\"remove\"], \"remove\")}}>\n \n \n \n \n )}\n {_.isFunction(handleConfigure) && (\n {_.get(labels, [\"edit\"], \"edit\")}}>\n \n \n \n \n )}\n {_.isFunction(handleShare) && (\n {_.get(labels, [\"share\"], \"share\")}}>\n \n \n \n \n )}\n \n \n \n {farm && (\n \n \n \n {farm}\n \n \n )}\n \n \n \n {variant}\n \n \n {source && (\n \n \n \n {source}\n \n \n )}\n \n {children}\n \n \n );\n};\n\nexport default ChartCard;\n","import { ComponentProps, FC } from \"react\";\nimport Markdown from \"react-markdown\";\nimport { Col, Row, Space, Tooltip, Typography } from \"antd\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport { ContentWrapper } from \"../../../layout\";\nimport { ActionKey, ArrowsAltOutlined, BrowserOutlined, InfoCircleOutlined } from \"../../../..\";\n\nimport styles from \"./MiniChartCard.module.less\";\n\nconst { Text } = Typography;\n\nexport interface MiniChartCardProps extends ComponentProps {\n /**\n * Metric title\n */\n metric: string;\n /**\n * Variant title\n */\n variant: string;\n /**\n * Source title\n */\n source?: string;\n /**\n * tooltip info\n */\n tooltip?: string;\n}\n\n/**\n * MiniChartCard that wraps up the chart\n */\nconst MiniChartCard: FC = ({\n metric,\n variant,\n source,\n children,\n tooltip,\n className,\n ...rest\n}) => {\n return (\n \n \n \n {metric}\n {\n event.stopPropagation();\n }}\n >\n \n }}\n >\n {tooltip}\n \n ) : (\n void 0\n )\n }\n placement=\"right\"\n >\n \n \n \n \n \n \n \n \n \n \n \n \n {variant}\n \n \n \n {source && (\n \n \n {source}\n \n )}\n \n \n {children}\n \n );\n};\n\nexport default MiniChartCard;\n","var _circle, _g, _rect, _rect2, _rect3, _rect4, _path, _path2, _rect5, _rect6, _rect7, _rect8, _path3, _path4, _rect9, _rect10, _rect11, _rect12, _path5, _path6, _rect13, _path7, _rect14, _rect15, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgNoDashboards(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 800,\n height: 800,\n viewBox: \"0 0 800 800\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 400,\n cy: 400,\n r: 400,\n fill: \"#E6F7FF\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter0_d_1211_24269)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41 119H246V189H759V680H41V119Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M246 189.5H758.5V679.5H41.5V119.5H245.5V189V189.5H246Z\",\n stroke: \"#69C0FF\"\n }))), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 94,\n y: 242,\n width: 287,\n height: 181.909,\n rx: 19,\n fill: \"#BAE7FF\",\n stroke: \"#1890FF\",\n strokeWidth: 2\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 105.086,\n y: 250.984,\n width: 105.091,\n height: 12.6109,\n rx: 6.30545,\n fill: \"white\"\n })), _rect3 || (_rect3 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 105.086,\n y: 268.324,\n width: 37.3073,\n height: 8.40727,\n rx: 4.20364,\n fill: \"white\"\n })), _rect4 || (_rect4 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 152.902,\n y: 268.324,\n width: 37.3073,\n height: 8.40727,\n rx: 4.20364,\n fill: \"white\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.086 290.918V412.824H367.813\",\n stroke: \"white\",\n strokeWidth: 4\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M110.34 361.329L112.297 360.643C152.458 346.572 195.798 344.24 237.237 353.919V353.919V353.919C278.337 359.477 320.111 351.041 355.833 329.97L364.134 325.073\",\n stroke: \"white\",\n strokeWidth: 6,\n strokeLinecap: \"round\"\n })), _rect5 || (_rect5 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 94,\n y: 450.909,\n width: 287,\n height: 181.909,\n rx: 19,\n fill: \"#BAE7FF\",\n stroke: \"#1890FF\",\n strokeWidth: 2\n })), _rect6 || (_rect6 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 105.086,\n y: 459.893,\n width: 105.091,\n height: 12.6109,\n rx: 6.30545,\n fill: \"white\"\n })), _rect7 || (_rect7 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 105.086,\n y: 477.233,\n width: 37.3073,\n height: 8.40727,\n rx: 4.20364,\n fill: \"white\"\n })), _rect8 || (_rect8 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 152.902,\n y: 477.233,\n width: 37.3073,\n height: 8.40727,\n rx: 4.20364,\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.086 499.827V621.733H367.813\",\n stroke: \"white\",\n strokeWidth: 4\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M110.34 570.238L112.297 569.552C152.458 555.481 195.798 553.149 237.237 562.828V562.828V562.828C278.337 568.386 320.111 559.95 355.833 538.879L364.134 533.982\",\n stroke: \"white\",\n strokeWidth: 6,\n strokeLinecap: \"round\"\n })), _rect9 || (_rect9 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 418,\n y: 242,\n width: 287,\n height: 181.909,\n rx: 19,\n fill: \"#BAE7FF\",\n stroke: \"#1890FF\",\n strokeWidth: 2\n })), _rect10 || (_rect10 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 429.086,\n y: 250.984,\n width: 105.091,\n height: 12.6109,\n rx: 6.30545,\n fill: \"white\"\n })), _rect11 || (_rect11 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 429.086,\n y: 268.324,\n width: 37.3073,\n height: 8.40727,\n rx: 4.20364,\n fill: \"white\"\n })), _rect12 || (_rect12 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 476.902,\n y: 268.324,\n width: 37.3073,\n height: 8.40727,\n rx: 4.20364,\n fill: \"white\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M429.086 290.918V412.824H691.813\",\n stroke: \"white\",\n strokeWidth: 4\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M434.34 361.329L436.297 360.643C476.458 346.572 519.798 344.24 561.237 353.919V353.919V353.919C602.337 359.477 644.111 351.041 679.833 329.97L688.134 325.073\",\n stroke: \"white\",\n strokeWidth: 6,\n strokeLinecap: \"round\"\n })), _rect13 || (_rect13 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 418,\n y: 450.909,\n width: 287,\n height: 181.404,\n rx: 19,\n stroke: \"#40A9FF\",\n strokeWidth: 2,\n strokeDasharray: \"8 8\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M568.447 517.296H554.553V534.664L537.186 534.664V548.558H554.553V565.926H568.447V548.558H585.815V534.664L568.447 534.664V517.296Z\",\n fill: \"#BAE7FF\"\n })), _rect14 || (_rect14 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 69,\n y: 150,\n width: 46,\n height: 13,\n rx: 6.5,\n fill: \"#69C0FF\"\n })), _rect15 || (_rect15 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 127,\n y: 150,\n width: 94,\n height: 13,\n rx: 6.5,\n fill: \"#69C0FF\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter0_d_1211_24269\",\n x: 25,\n y: 107,\n width: 750,\n height: 593,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n \"in\": \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n }), /*#__PURE__*/React.createElement(\"feOffset\", {\n dy: 4\n }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 8\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_1211_24269\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n \"in\": \"SourceGraphic\",\n in2: \"effect1_dropShadow_1211_24269\",\n result: \"shape\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgNoDashboards);\nexport default __webpack_public_path__ + \"static/media/no-dashboards.8aebff71.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgEmpty1(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 240,\n height: 240,\n viewBox: \"0 0 240 240\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_786_103821)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M119.999 237.61C184.926 237.61 237.559 184.977 237.559 120.05C237.559 55.1236 184.926 2.49023 119.999 2.49023C55.0729 2.49023 2.43945 55.1236 2.43945 120.05C2.43945 184.977 55.0729 237.61 119.999 237.61Z\",\n fill: \"#EAEAEA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M120 240.05C53.83 240.05 0 186.22 0 120.05C0 53.8798 53.83 0.0498047 120 0.0498047C186.17 0.0498047 240 53.8798 240 120.05C240 186.22 186.17 240.05 120 240.05ZM120 4.9298C56.52 4.9298 4.88 56.5798 4.88 120.05C4.88 183.52 56.53 235.17 120 235.17C183.47 235.17 235.12 183.53 235.12 120.05C235.12 56.5698 183.48 4.9298 120 4.9298Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M216.251 37.3594H23.7407C18.2068 37.3594 13.7207 41.8455 13.7207 47.3794V197.379C13.7207 202.913 18.2068 207.399 23.7407 207.399H216.251C221.785 207.399 226.271 202.913 226.271 197.379V47.3794C226.271 41.8455 221.785 37.3594 216.251 37.3594Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M216.271 35.0303H23.7207C18.1979 35.0303 13.7207 39.5074 13.7207 45.0303V195.07C13.7207 200.593 18.1979 205.07 23.7207 205.07H216.271C221.794 205.07 226.271 200.593 226.271 195.07V45.0303C226.271 39.5074 221.794 35.0303 216.271 35.0303Z\",\n fill: \"#F9F9F9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M206.941 187.21H33.8509C33.1809 187.21 32.6309 186.66 32.6309 185.99V50.7298C32.6309 50.0598 33.1809 49.5098 33.8509 49.5098C34.5209 49.5098 35.0709 50.0598 35.0709 50.7298V184.77H206.941C207.611 184.77 208.161 185.32 208.161 185.99C208.161 186.66 207.611 187.21 206.941 187.21Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.8196 187.21C66.1496 187.21 65.5996 186.66 65.5996 185.99V181.01C65.5996 180.34 66.1496 179.79 66.8196 179.79C67.4896 179.79 68.0396 180.34 68.0396 181.01V185.99C68.0396 186.66 67.4896 187.21 66.8196 187.21Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.7903 187.21C99.1203 187.21 98.5703 186.66 98.5703 185.99V181.01C98.5703 180.34 99.1203 179.79 99.7903 179.79C100.46 179.79 101.01 180.34 101.01 181.01V185.99C101.01 186.66 100.46 187.21 99.7903 187.21Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M132.759 187.21C132.089 187.21 131.539 186.66 131.539 185.99V181.01C131.539 180.34 132.089 179.79 132.759 179.79C133.429 179.79 133.979 180.34 133.979 181.01V185.99C133.979 186.66 133.429 187.21 132.759 187.21Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M165.73 187.21C165.06 187.21 164.51 186.66 164.51 185.99V181.01C164.51 180.34 165.06 179.79 165.73 179.79C166.4 179.79 166.95 180.34 166.95 181.01V185.99C166.95 186.66 166.4 187.21 165.73 187.21Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M198.7 187.21C198.03 187.21 197.48 186.66 197.48 185.99V181.01C197.48 180.34 198.03 179.79 198.7 179.79C199.37 179.79 199.92 180.34 199.92 181.01V185.99C199.92 186.66 199.37 187.21 198.7 187.21Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.8201 186.23C66.6901 186.23 66.5801 186.12 66.5801 185.99V50.7302C66.5801 50.6002 66.6901 50.4902 66.8201 50.4902C66.9501 50.4902 67.0601 50.6002 67.0601 50.7302V185.99C67.0601 186.12 66.9501 186.23 66.8201 186.23Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.7908 186.23C99.6608 186.23 99.5508 186.12 99.5508 185.99V50.7302C99.5508 50.6002 99.6608 50.4902 99.7908 50.4902C99.9208 50.4902 100.031 50.6002 100.031 50.7302V185.99C100.031 186.12 99.9208 186.23 99.7908 186.23Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M132.76 186.23C132.63 186.23 132.52 186.12 132.52 185.99V50.7302C132.52 50.6002 132.63 50.4902 132.76 50.4902C132.89 50.4902 133 50.6002 133 50.7302V185.99C133 186.12 132.89 186.23 132.76 186.23Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M165.73 186.23C165.6 186.23 165.49 186.12 165.49 185.99V50.7302C165.49 50.6002 165.6 50.4902 165.73 50.4902C165.86 50.4902 165.97 50.6002 165.97 50.7302V185.99C165.97 186.12 165.86 186.23 165.73 186.23Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M198.701 186.23C198.571 186.23 198.461 186.12 198.461 185.99V50.7302C198.461 50.6002 198.571 50.4902 198.701 50.4902C198.831 50.4902 198.941 50.6002 198.941 50.7302V185.99C198.941 186.12 198.831 186.23 198.701 186.23Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.8406 159.81H33.8606C33.1906 159.81 32.6406 159.26 32.6406 158.59C32.6406 157.92 33.1906 157.37 33.8606 157.37H38.8406C39.5106 157.37 40.0606 157.92 40.0606 158.59C40.0606 159.26 39.5106 159.81 38.8406 159.81Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.8406 126.839H33.8606C33.1906 126.839 32.6406 126.289 32.6406 125.619C32.6406 124.949 33.1906 124.399 33.8606 124.399H38.8406C39.5106 124.399 40.0606 124.949 40.0606 125.619C40.0606 126.289 39.5106 126.839 38.8406 126.839Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.8406 93.8697H33.8606C33.1906 93.8697 32.6406 93.3197 32.6406 92.6497C32.6406 91.9797 33.1906 91.4297 33.8606 91.4297H38.8406C39.5106 91.4297 40.0606 91.9797 40.0606 92.6497C40.0606 93.3197 39.5106 93.8697 38.8406 93.8697Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.8406 60.9097H33.8606C33.1906 60.9097 32.6406 60.3597 32.6406 59.6897C32.6406 59.0197 33.1906 58.4697 33.8606 58.4697H38.8406C39.5106 58.4697 40.0606 59.0197 40.0606 59.6897C40.0606 60.3597 39.5106 60.9097 38.8406 60.9097Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M206.939 158.83H33.8494C33.7194 158.83 33.6094 158.72 33.6094 158.59C33.6094 158.46 33.7194 158.35 33.8494 158.35H206.939C207.069 158.35 207.179 158.46 207.179 158.59C207.179 158.72 207.069 158.83 206.939 158.83Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M206.939 125.87H33.8494C33.7194 125.87 33.6094 125.76 33.6094 125.63C33.6094 125.5 33.7194 125.39 33.8494 125.39H206.939C207.069 125.39 207.179 125.5 207.179 125.63C207.179 125.76 207.069 125.87 206.939 125.87Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M206.939 92.8999H33.8494C33.7194 92.8999 33.6094 92.7899 33.6094 92.6599C33.6094 92.5299 33.7194 92.4199 33.8494 92.4199H206.939C207.069 92.4199 207.179 92.5299 207.179 92.6599C207.179 92.7899 207.069 92.8999 206.939 92.8999Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M206.939 59.9302H33.8494C33.7194 59.9302 33.6094 59.8202 33.6094 59.6902C33.6094 59.5602 33.7194 59.4502 33.8494 59.4502H206.939C207.069 59.4502 207.179 59.5602 207.179 59.6902C207.179 59.8202 207.069 59.9302 206.939 59.9302Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.4102 103.35H44.4102\",\n stroke: \"#E0E0E0\",\n strokeWidth: 2,\n strokeMiterlimit: 10,\n strokeLinecap: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M48.3496 103.35H199.91\",\n stroke: \"#E0E0E0\",\n strokeWidth: 2,\n strokeMiterlimit: 10,\n strokeLinecap: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M201.881 103.35H202.881\",\n stroke: \"#E0E0E0\",\n strokeWidth: 2,\n strokeMiterlimit: 10,\n strokeLinecap: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.4102 147.069H44.4102\",\n stroke: \"#E0E0E0\",\n strokeWidth: 2,\n strokeMiterlimit: 10,\n strokeLinecap: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M48.3496 147.069H199.91\",\n stroke: \"#E0E0E0\",\n strokeWidth: 2,\n strokeMiterlimit: 10,\n strokeLinecap: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M201.881 147.069H202.881\",\n stroke: \"#E0E0E0\",\n strokeWidth: 2,\n strokeMiterlimit: 10,\n strokeLinecap: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.2,\n d: \"M202.87 103.35H43.4102V147.07H202.87V103.35Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.5898 137.07L66.8198 125.62L99.7898 137.07L132.76 107.33L165.73 115.56\",\n stroke: \"#CCCCCC\",\n strokeWidth: 5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M43.5303 120.53L41.3203 123.22L43.2903 126.5L47.7703 130.77H48.4603L47.8603 127.27L55.1003 123.86L57.4603 126.46L58.9103 126.06L57.2203 121.65L58.9303 118.16L60.4803 116.92L59.0903 112.42L53.9903 114.86L52.2803 116.75L43.5303 120.53Z\",\n fill: \"#F9F9F9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M50.3409 131.15L48.8809 128.9L48.7309 127.87L54.2909 125.14C54.5909 124.99 54.8909 124.83 55.1809 124.64L57.5509 127.6L59.6509 126.57L57.9609 121.98C58.6709 120.96 59.1709 119.81 59.4409 118.6L59.9509 118.35C60.2909 118.18 60.5609 117.91 60.7209 117.56C60.8809 117.22 60.9109 116.84 60.8109 116.48L59.9209 113.28L60.3809 113.05C60.6509 112.92 60.8509 112.69 60.9509 112.41C61.0509 112.13 61.0309 111.83 60.9009 111.57L60.6609 111.08L52.7709 114.95L52.9009 115.22L42.6509 120.25C41.8309 120.66 41.1909 121.37 40.8909 122.22C40.5909 123.08 40.6409 124.01 41.0309 124.82L44.0009 130.88L45.2409 130.27L44.2709 128.29L48.1909 132.19L50.3109 131.15H50.3409ZM57.9509 118.97C57.6709 119.86 57.2509 120.69 56.6809 121.44L56.4609 121.74L58.0209 125.94L55.4509 122.75L54.9109 123.14C54.5209 123.42 54.1109 123.67 53.6809 123.88L48.4909 126.43L48.1309 123.96L46.7609 124.17L47.5109 129.37L47.8809 129.94L42.4109 124.5L42.2609 124.19C42.1409 123.95 42.0709 123.69 42.0609 123.42C42.0409 123.15 42.0809 122.88 42.1709 122.63C42.2609 122.38 42.4009 122.14 42.5809 121.94C42.7609 121.74 42.9809 121.57 43.2309 121.45L45.5409 120.32C45.8909 120.82 46.3709 121.21 46.9409 121.44C47.5109 121.67 48.1409 121.74 48.7509 121.62C48.9609 121.58 49.1709 121.59 49.3709 121.64C49.5709 121.69 49.7609 121.79 49.9109 121.93C50.2309 122.21 50.6309 122.4 51.0509 122.45C51.4709 122.5 51.9209 122.43 52.3109 122.24C52.7009 122.05 53.0309 121.75 53.2409 121.37C53.4609 121 53.5609 120.57 53.5309 120.15C53.5209 119.95 53.5509 119.75 53.6309 119.56C53.7109 119.37 53.8309 119.21 53.9809 119.07C54.4309 118.66 54.7409 118.13 54.8809 117.55C55.0209 116.97 54.9809 116.36 54.7609 115.81L54.9509 115.72L56.9209 118.35C57.1609 118.68 57.5309 118.9 57.9409 118.96L57.9509 118.97ZM58.5409 113.49L59.4809 116.85C59.4909 116.9 59.4809 116.95 59.4709 117C59.4509 117.05 59.4109 117.09 59.3609 117.11L58.3509 117.61C58.3509 117.61 58.2509 117.64 58.1909 117.63C58.1409 117.62 58.0909 117.59 58.0609 117.55L55.9709 114.76L58.5409 113.5V113.49Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M78.89 114.25L75.42 114.59L74.5 118.3L74.64 124.5L75.13 124.98L77.18 122.08L84.71 124.79L84.54 128.29L85.85 129.03L87.77 124.72L91.44 123.47L93.42 123.68L95.62 119.52L90.29 117.63L87.75 117.77L78.89 114.25Z\",\n fill: \"#F9F9F9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M76.1899 126.58L76.7499 123.96L77.3699 123.13L83.2299 125.13C83.5499 125.24 83.8799 125.33 84.2099 125.41L83.7999 129.18L86.0199 129.94L88.0699 125.5C89.2999 125.28 90.4599 124.82 91.5099 124.16L92.0399 124.34C92.3999 124.46 92.7899 124.46 93.1399 124.33C93.4899 124.2 93.7899 123.95 93.9699 123.63L95.5999 120.74L96.0899 120.91C96.3699 121.01 96.6799 120.99 96.9499 120.86C97.2199 120.73 97.4199 120.51 97.5099 120.23L97.6899 119.71L89.3799 116.87L89.2799 117.15L78.4799 113.46C77.6099 113.17 76.6599 113.22 75.8399 113.61C75.0199 114 74.3999 114.7 74.0999 115.55L71.9199 121.94L73.2299 122.39L73.9399 120.31L73.9599 125.84L76.1999 126.61L76.1899 126.58ZM90.1899 123.34C89.3699 123.77 88.4699 124.06 87.5499 124.19L87.1799 124.24L85.3199 128.31L85.7499 124.24L85.0899 124.14C84.6199 124.07 84.1499 123.95 83.6899 123.8L78.2199 121.93L79.7099 119.93L78.5899 119.11L75.4399 123.32L75.2999 123.98L75.2799 116.27L75.3899 115.95C75.4799 115.7 75.6099 115.47 75.7899 115.27C75.9699 115.07 76.1899 114.91 76.4299 114.79C76.6699 114.67 76.9399 114.61 77.2099 114.59C77.4799 114.58 77.7499 114.61 78.0099 114.7L80.4499 115.53C80.3399 116.13 80.4099 116.75 80.6499 117.31C80.8899 117.88 81.2899 118.37 81.7999 118.72C81.9699 118.84 82.1199 118.99 82.2299 119.17C82.3399 119.35 82.3999 119.55 82.4099 119.76C82.4299 120.19 82.5899 120.6 82.8499 120.94C83.1099 121.28 83.4699 121.54 83.8899 121.68C84.2999 121.82 84.7399 121.84 85.1599 121.73C85.5799 121.62 85.9499 121.39 86.2299 121.07C86.3599 120.92 86.5299 120.8 86.7199 120.73C86.9099 120.65 87.1099 120.62 87.3099 120.63C87.9099 120.66 88.5099 120.5 89.0199 120.19C89.5299 119.88 89.9299 119.42 90.1599 118.87L90.3599 118.94L89.8999 122.19C89.8399 122.59 89.9399 123 90.1899 123.34ZM94.4799 119.88L92.7699 122.92C92.7699 122.92 92.6999 123 92.6499 123.02C92.5999 123.04 92.5499 123.04 92.4899 123.02L91.4199 122.66C91.3699 122.64 91.3299 122.61 91.2999 122.56C91.2699 122.51 91.2599 122.46 91.2699 122.41L91.7699 118.96L94.4799 119.89V119.88Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M106.93 110.56L105.49 113.74L108.25 116.39L113.69 119.35L114.35 119.17L112.86 115.95L118.97 110.77L121.92 112.66L123.21 111.9L120.43 108.08L121.18 104.27L122.35 102.67L119.84 98.6797L115.55 102.36L114.39 104.64L106.93 110.56Z\",\n fill: \"#F9F9F9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M116.271 119.05L114.271 117.26L113.861 116.31L118.521 112.23C118.781 112.01 119.021 111.77 119.251 111.52L122.311 113.76L124.071 112.22L121.241 108.23C121.661 107.06 121.851 105.82 121.791 104.58L122.211 104.21C122.501 103.96 122.691 103.62 122.751 103.25C122.811 102.88 122.751 102.5 122.551 102.18L120.861 99.32L121.251 98.98C121.471 98.78 121.611 98.51 121.641 98.21C121.671 97.91 121.571 97.63 121.381 97.41L121.021 97L114.411 102.79L114.611 103.01L106.021 110.53C105.331 111.14 104.901 111.99 104.831 112.89C104.761 113.8 105.051 114.68 105.641 115.36L110.091 120.44L111.131 119.53L109.681 117.87L114.481 120.61L116.261 119.05H116.271ZM120.441 105.3C120.401 106.23 120.211 107.15 119.861 108.02L119.721 108.37L122.321 112.02L119.011 109.61L118.591 110.13C118.291 110.5 117.961 110.85 117.601 111.17L113.251 114.98L112.261 112.69L110.991 113.25L113.071 118.07L113.581 118.52L106.881 114.69L106.661 114.43C106.481 114.23 106.351 114 106.271 113.74C106.191 113.49 106.151 113.22 106.181 112.95C106.201 112.68 106.271 112.42 106.401 112.18C106.521 111.94 106.691 111.72 106.901 111.54L108.841 109.84C109.301 110.23 109.881 110.48 110.491 110.56C111.101 110.63 111.721 110.53 112.291 110.27C112.481 110.18 112.691 110.13 112.891 110.13C113.101 110.13 113.301 110.17 113.491 110.26C113.871 110.45 114.301 110.52 114.731 110.47C115.161 110.42 115.561 110.23 115.891 109.94C116.221 109.65 116.451 109.28 116.571 108.86C116.681 108.44 116.671 108.01 116.531 107.6C116.471 107.41 116.451 107.21 116.481 107.01C116.511 106.81 116.581 106.62 116.691 106.45C117.011 105.94 117.181 105.35 117.161 104.75C117.141 104.15 116.941 103.58 116.591 103.1L116.751 102.96L119.341 104.98C119.661 105.23 120.071 105.35 120.481 105.31L120.441 105.3ZM119.581 99.85L121.361 102.85C121.361 102.85 121.391 102.95 121.391 103C121.391 103.05 121.361 103.1 121.321 103.14L120.471 103.88C120.471 103.88 120.381 103.93 120.321 103.94C120.271 103.94 120.211 103.93 120.171 103.89L117.421 101.74L119.581 99.85Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M143.2 94.5605L139.77 95.1805L139.15 98.9505L139.79 105.111L140.31 105.561L142.13 102.501L149.85 104.601L149.96 108.101L151.32 108.741L152.9 104.291L156.46 102.741L158.45 102.801L160.31 98.4706L154.84 97.0205L152.32 97.3605L143.2 94.5605Z\",\n fill: \"#F9F9F9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M141.501 107.06L141.851 104.4L142.401 103.52L148.411 105.05C148.741 105.13 149.071 105.2 149.411 105.25L149.301 109.04L151.571 109.62L153.261 105.03C154.471 104.71 155.591 104.16 156.581 103.42L157.131 103.56C157.501 103.65 157.891 103.62 158.231 103.46C158.571 103.3 158.841 103.03 159.001 102.69L160.391 99.6802L160.891 99.8102C161.181 99.8802 161.491 99.8402 161.741 99.6902C161.991 99.5402 162.181 99.3002 162.251 99.0202L162.391 98.4902L153.881 96.3202L153.811 96.6102L142.751 93.7902C141.861 93.5702 140.921 93.7002 140.131 94.1502C139.341 94.6102 138.781 95.3502 138.551 96.2202L136.881 102.76L138.221 103.1L138.761 100.97L139.221 106.48L141.511 107.06H141.501ZM155.191 102.71C154.401 103.21 153.541 103.57 152.621 103.77L152.261 103.85L150.731 108.06L150.841 103.96L150.181 103.91C149.701 103.87 149.231 103.8 148.761 103.68L143.161 102.25L144.491 100.14L143.311 99.4102L140.511 103.85L140.431 104.52L139.791 96.8302L139.871 96.5002C139.941 96.2402 140.051 96.0002 140.221 95.7902C140.381 95.5802 140.591 95.4002 140.821 95.2602C141.051 95.1202 141.311 95.0402 141.581 95.0002C141.851 94.9602 142.121 94.9802 142.391 95.0502L144.891 95.6902C144.831 96.3002 144.951 96.9102 145.231 97.4502C145.511 98.0002 145.951 98.4502 146.491 98.7602C146.671 98.8602 146.831 99.0102 146.951 99.1802C147.071 99.3502 147.151 99.5502 147.181 99.7502C147.241 100.17 147.421 100.57 147.711 100.89C148.001 101.21 148.381 101.44 148.801 101.55C149.221 101.66 149.661 101.64 150.071 101.5C150.481 101.36 150.831 101.1 151.081 100.75C151.201 100.59 151.361 100.46 151.541 100.37C151.721 100.28 151.921 100.23 152.121 100.23C152.721 100.21 153.311 100.01 153.791 99.6502C154.271 99.3002 154.631 98.8102 154.821 98.2502L155.021 98.3002L154.821 101.58C154.791 101.99 154.931 102.39 155.201 102.7L155.191 102.71ZM159.191 98.9102L157.731 102.08C157.731 102.08 157.671 102.16 157.621 102.19C157.571 102.21 157.521 102.22 157.471 102.21L156.381 101.93C156.331 101.92 156.281 101.88 156.251 101.84C156.221 101.8 156.201 101.74 156.201 101.69L156.421 98.2102L159.201 98.9202L159.191 98.9102Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M183.811 109.07L180.951 107.09L177.841 109.32L173.951 114.14L174.001 114.82L177.451 113.94L181.441 120.88L179.041 123.44L179.561 124.85L183.821 122.8L187.431 124.22L188.801 125.67L193.171 123.91L190.321 119.03L188.291 117.48L183.811 109.07Z\",\n fill: \"#F9F9F9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M173.781 116.73L175.901 115.09L176.911 114.86L180.091 120.18C180.261 120.47 180.451 120.75 180.661 121.02L177.901 123.63L179.101 125.64L183.531 123.58C184.611 124.2 185.801 124.61 187.021 124.78L187.311 125.26C187.501 125.59 187.801 125.84 188.161 125.96C188.511 126.09 188.901 126.09 189.251 125.96L192.361 124.81L192.621 125.25C192.771 125.51 193.021 125.69 193.311 125.77C193.601 125.85 193.901 125.8 194.151 125.65L194.621 125.37L190.121 117.83L189.861 117.98L184.011 108.18C183.541 107.39 182.781 106.82 181.901 106.59C181.021 106.36 180.101 106.48 179.321 106.94L173.521 110.4L174.231 111.59L176.121 110.46L172.561 114.68L173.771 116.71L173.781 116.73ZM186.551 123.32C185.641 123.12 184.771 122.76 183.981 122.26L183.661 122.06L179.601 123.96L182.571 121.13L182.141 120.63C181.831 120.27 181.541 119.88 181.301 119.47L178.341 114.51L180.771 113.95L180.451 112.6L175.331 113.77L174.801 114.19L179.771 108.29L180.061 108.12C180.291 107.98 180.541 107.89 180.811 107.86C181.071 107.82 181.351 107.84 181.611 107.91C181.871 107.98 182.121 108.1 182.331 108.26C182.551 108.42 182.731 108.63 182.871 108.86L184.191 111.07C183.721 111.46 183.371 111.97 183.191 112.56C183.011 113.15 182.991 113.78 183.151 114.38C183.211 114.58 183.221 114.79 183.181 115C183.141 115.21 183.061 115.4 182.941 115.57C182.681 115.91 182.531 116.32 182.511 116.75C182.491 117.18 182.601 117.61 182.821 117.98C183.041 118.35 183.371 118.65 183.761 118.84C184.151 119.03 184.581 119.09 185.001 119.03C185.201 119 185.401 119.03 185.591 119.08C185.781 119.14 185.961 119.25 186.111 119.39C186.551 119.8 187.111 120.07 187.701 120.16C188.291 120.25 188.891 120.16 189.421 119.9L189.531 120.08L187.081 122.26C186.771 122.53 186.591 122.91 186.551 123.32ZM192.061 123.45L188.791 124.66C188.791 124.66 188.691 124.68 188.641 124.66C188.591 124.64 188.551 124.61 188.521 124.56L187.941 123.59C187.941 123.59 187.901 123.49 187.911 123.43C187.911 123.38 187.941 123.33 187.981 123.29L190.591 120.98L192.061 123.44V123.45Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M197.63 144.34L195.69 141.45L191.98 142.4L186.6 145.48L186.41 146.13L189.94 146.56L191.14 154.47L187.97 155.99L187.94 157.49L192.65 157.13L195.5 159.76L196.25 161.61L200.96 161.56L200.08 155.98L198.75 153.8L197.63 144.34Z\",\n fill: \"#F9F9F9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M185.51 147.83L188.08 147.07L189.1 147.22L190.13 153.33C190.19 153.66 190.26 154 190.35 154.32L186.83 155.75L187.22 158.06L192.1 157.75C192.88 158.72 193.84 159.53 194.92 160.13L195.01 160.69C195.07 161.06 195.26 161.41 195.54 161.65C195.82 161.9 196.18 162.04 196.55 162.04L199.87 162.1L199.95 162.61C200 162.9 200.16 163.17 200.4 163.34C200.64 163.51 200.93 163.58 201.22 163.54L201.76 163.45L200.31 154.79L200.02 154.84L198.13 143.58C197.97 142.67 197.48 141.86 196.74 141.33C196.01 140.8 195.1 140.58 194.21 140.72L187.55 141.84L187.78 143.21L189.95 142.85L185.1 145.49L185.49 147.82L185.51 147.83ZM195.01 158.6C194.24 158.08 193.56 157.43 193 156.68L192.78 156.38L188.31 156.68L192.1 155.12L191.88 154.49C191.72 154.04 191.6 153.57 191.52 153.1L190.56 147.4L193.03 147.76L193.22 146.39L188.02 145.62L187.37 145.81L194.14 142.12L194.48 142.06C194.74 142.02 195.01 142.03 195.27 142.09C195.53 142.15 195.78 142.27 195.99 142.43C196.21 142.59 196.39 142.79 196.54 143.02C196.68 143.25 196.78 143.51 196.82 143.78L197.25 146.32C196.67 146.51 196.16 146.86 195.77 147.34C195.39 147.82 195.14 148.4 195.08 149.02C195.06 149.23 194.99 149.43 194.88 149.61C194.77 149.79 194.62 149.94 194.45 150.05C194.09 150.27 193.8 150.6 193.62 151C193.44 151.4 193.39 151.83 193.46 152.26C193.53 152.69 193.73 153.09 194.02 153.4C194.32 153.72 194.7 153.93 195.11 154.03C195.3 154.08 195.49 154.17 195.64 154.3C195.8 154.43 195.92 154.59 196.01 154.77C196.28 155.31 196.69 155.76 197.21 156.06C197.73 156.36 198.32 156.49 198.91 156.44L198.94 156.65L195.86 157.79C195.48 157.93 195.16 158.22 194.98 158.59L195.01 158.6ZM200.1 160.73L196.61 160.67C196.56 160.67 196.51 160.65 196.47 160.61C196.43 160.58 196.4 160.53 196.39 160.48L196.2 159.37C196.2 159.32 196.2 159.26 196.23 159.21C196.26 159.16 196.3 159.13 196.35 159.11L199.62 157.9L200.09 160.73H200.1Z\",\n fill: \"#CCCCCC\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_786_103821\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 240,\n height: 240,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmpty1);\nexport default __webpack_public_path__ + \"static/media/empty1.73b52df0.svg\";\nexport { ForwardRef as ReactComponent };","import { FC } from \"react\";\n\nimport { Empty } from \"../../../layout\";\nimport { EmptyProps } from \"../../../layout/Empty\";\nimport { ReactComponent as NoCharts } from \"./assets/no-charts.svg\";\nimport { ReactComponent as NoDashboards } from \"./assets/no-dashboards.svg\";\n\n/**\n * Empty state with illustration variants\n * @param variant\n * @return {JSX.Element}\n * @constructor\n */\nconst WithIllustrationVariant: FC & { variant: \"dashboards\" | \"charts\" }> =\n ({ variant, ...props }) => {\n return : } />;\n };\n\nexport default WithIllustrationVariant;\n","import { FC, HTMLProps, ReactNode } from \"react\";\nimport { Space, Typography } from \"antd\";\nimport { CalendarOutlined } from \"@ant-design/icons\";\nimport * as _ from \"lodash\";\n\nimport { classname, TS, Epoch } from \"@ctra/utils\";\n\nimport styles from \"./TimePeriod.module.less\";\n\nexport interface TimePeriodProps extends HTMLProps {\n /**\n * start date or epoch\n */\n from: number | string;\n /**\n * end date or epoch\n */\n until?: number | string;\n /**\n * extra text to add to the content\n */\n extra?: string | ReactNode;\n /**\n * date print format\n */\n format?: string | { from: string; until: string };\n /**\n * icon toggle\n */\n withIcon?: boolean;\n}\n\nconst { Text } = Typography;\n\n/**\n * Insight list/dialog time period component\n * @param {boolean | undefined} withIcon\n * @param {number | string} from\n * @param {number | string | undefined} until\n * @param {string | {from: string, until: string} | undefined} format\n * @param {string | undefined} className\n * @param {string | undefined} extra\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst TimePeriod: FC = ({\n withIcon = true,\n from,\n until,\n format = \"LL\",\n className,\n extra,\n ...rest\n}) => {\n /**\n * Convert to moment\n * @type {moment.Moment}\n */\n const startMoment = _.isNumber(from) ? Epoch.asMoment(Epoch.load(from)) : TS.asMoment(from);\n\n /**\n * Convert to moment\n * @type {moment.Moment|undefined}\n */\n const endMoment = until\n ? _.isNumber(until)\n ? Epoch.asMoment(Epoch.load(until))\n : TS.asMoment(until)\n : void 0;\n\n const text = (\n \n {startMoment.format(_.get(format, [\"from\"], format))}\n {endMoment && ` - ${endMoment.format(_.get(format, [\"until\"], format))}`}\n {extra}\n \n );\n\n return (\n \n {withIcon ? (\n \n \n {text}\n \n ) : (\n text\n )}\n \n );\n};\n\nexport default TimePeriod;\n","import { FC, HTMLProps } from \"react\";\nimport { Space } from \"antd\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport { Typography, Icon, Barn } from \"../../../../elements\";\nimport styles from \"./FarmProgress.module.less\";\n\nconst { Text } = Typography;\n\nexport interface FarmProgressProps extends HTMLProps {\n /**\n * progress value between 0 and 1\n */\n progress: number;\n /**\n * pointer label\n */\n pointer?: string;\n /**\n * widget label\n */\n label?: string;\n}\n\n/**\n * FarmProgress component\n * @param propName\n * @todo rename and implement\n */\nconst FarmProgress: FC = ({ progress, pointer, label, className, ...rest }) => {\n /**\n * Pointer element\n * @type {JSX.Element}\n */\n const pointerElement = pointer ? (\n \n \n {pointer}\n \n ) : (\n \n );\n\n const progressPercent = `${progress * 100}%`;\n\n const position =\n progress <= 0.5\n ? {\n left: `max(10px, ${progressPercent})`\n }\n : {\n right: `max(10px, calc(100% - ${progressPercent}))`\n };\n\n const translate = {\n transform: progress <= 0.5 ? \"translateX(-50%)\" : \"translateX(50%)\"\n };\n\n return (\n \n
\n \n {pointerElement}\n
\n \n \n
\n {label && {label}}\n \n );\n};\n\nexport default FarmProgress;\n","import { ComponentProps, FC } from \"react\";\nimport { Row, Col, Typography, Grid } from \"antd\";\n\nimport { classname } from \"@ctra/utils\";\nimport styles from \"./ListHeader.module.less\";\n\nconst { Text } = Typography;\n\nexport interface ListHeaderProps extends ComponentProps {\n /**\n * heading labels\n */\n labels: {\n insight: string;\n feedback?: string;\n farm: string;\n period: string;\n };\n}\n\n/**\n * Insight list header component\n * @param {string} insight\n * @param {string | undefined} feedback\n * @param {string} farm\n * @param {string} period\n * @param {string | undefined} className\n * @param {Pick} props\n * @return {JSX.Element}\n * @constructor\n */\nconst ListHeader: FC = ({\n labels: { insight, feedback, farm, period },\n className,\n ...props\n}) => {\n const { md } = Grid.useBreakpoint();\n\n return md ? (\n \n \n {insight}\n \n \n {feedback && {feedback}}\n \n {farm}\n \n \n {period}\n \n \n ) : null;\n};\n\nexport default ListHeader;\n","import { ComponentProps, FC, ReactNode } from \"react\";\nimport { Row, Col, Badge, Tag, Typography, Grid } from \"antd\";\nimport { RightOutlined, CalendarOutlined } from \"@ant-design/icons\";\n\nimport { Nullable, classname } from \"@ctra/utils\";\n\nimport { Icon, Barn } from \"../../../../elements\";\nimport MobileViewRow from \"../../../farm-overview/MobileViewRow\";\nimport styles from \"./ListItem.module.less\";\n\nconst { Text } = Typography;\n\nexport interface ListItemProps extends ComponentProps {\n /**\n * icon reference\n */\n icon: ReactNode;\n /**\n * insight title\n */\n title: string;\n /**\n * insight resolution / validation\n */\n feedback?: ReactNode;\n /**\n * farm name\n */\n farm: string;\n /**\n * time period component\n */\n period: ReactNode;\n /**\n * group e.g per pen\n */\n group: Nullable;\n /**\n * click handler\n */\n onClick: () => void;\n /**\n * handle view to toggle seen/unseen\n */\n onView?: () => void;\n /**\n * tell whether the insight is unseen\n */\n unseen: boolean;\n}\n\n/**\n * Mobile view of the insight list item\n * @constructor\n */\nconst MobileView: FC = ({\n icon,\n title,\n feedback,\n farm,\n onClick,\n onView,\n unseen,\n period,\n group,\n className,\n ...rest\n}) => {\n return (\n \n \n \n \n \n {title}\n \n \n {feedback && {feedback}}\n }>\n {farm}\n \n }>{period}\n \n \n \n \n \n \n \n \n );\n};\n\n/**\n * Insight list item component\n * @param {React.PropsWithChildren} props\n * @return {JSX.Element}\n * @constructor\n */\nconst ListItem: FC = (props) => {\n const { icon, title, feedback, farm, onClick, onView, unseen, period, group, className, ...rest } = props;\n const { md } = Grid.useBreakpoint();\n\n return md ? (\n \n \n \n \n \n \n {icon}\n \n {title}\n \n \n \n \n {group}\n \n \n {feedback || null}\n \n \n }>\n {farm}\n \n \n \n \n {period}\n \n \n \n \n \n \n \n \n ) : (\n \n );\n};\n\nexport default ListItem;\n","import { ComponentProps, FC } from \"react\";\nimport { Tag } from \"antd\";\nimport * as _ from \"lodash\";\n\nimport {\n CheckCircleOutlined,\n ExclamationCircleOutlined,\n CloseCircleOutlined,\n QuestionCircleOutlined\n} from \"@ant-design/icons\";\n\nimport { InsightValidation } from \"@ctra/api\";\n\nimport styles from \"./Resolution.module.less\";\nimport { classname } from \"@ctra/utils\";\n\nexport interface ResolutionProps extends ComponentProps {\n /**\n * resolution label\n */\n label: string;\n /**\n * Validation (for picking the right color and icon)\n */\n validation?: InsightValidation;\n}\n\n/**\n * Insight list resolution component\n * @param {string} label\n * @param {InsightValidation} validation\n * @param {string | undefined} className\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst Resolution: FC = ({ label, validation, className, ...rest }) => {\n let icon;\n\n switch (validation) {\n case InsightValidation.yes:\n icon = ;\n break;\n case InsightValidation.no:\n icon = ;\n break;\n case InsightValidation.maybe:\n icon = ;\n break;\n case InsightValidation.na:\n icon = ;\n break;\n }\n\n return (\n \n {label}\n \n );\n};\n\nexport default Resolution;\n","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgEmpty2(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 240,\n height: 240,\n viewBox: \"0 0 240 240\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_786_103506)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M119.999 237.61C184.926 237.61 237.559 184.977 237.559 120.05C237.559 55.1236 184.926 2.49023 119.999 2.49023C55.0729 2.49023 2.43945 55.1236 2.43945 120.05C2.43945 184.977 55.0729 237.61 119.999 237.61Z\",\n fill: \"#EAEAEA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M120 240.05C53.83 240.05 0 186.22 0 120.05C0 53.8798 53.83 0.0498047 120 0.0498047C186.17 0.0498047 240 53.8798 240 120.05C240 186.22 186.17 240.05 120 240.05ZM120 4.9298C56.52 4.9298 4.88 56.5798 4.88 120.05C4.88 183.52 56.53 235.17 120 235.17C183.47 235.17 235.12 183.53 235.12 120.05C235.12 56.5698 183.48 4.9298 120 4.9298Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M216.251 37.3594H23.7407C18.2068 37.3594 13.7207 41.8455 13.7207 47.3794V197.379C13.7207 202.913 18.2068 207.399 23.7407 207.399H216.251C221.785 207.399 226.271 202.913 226.271 197.379V47.3794C226.271 41.8455 221.785 37.3594 216.251 37.3594Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M216.271 35.0303H23.7207C18.1979 35.0303 13.7207 39.5074 13.7207 45.0303V195.07C13.7207 200.593 18.1979 205.07 23.7207 205.07H216.271C221.794 205.07 226.271 200.593 226.271 195.07V45.0303C226.271 39.5074 221.794 35.0303 216.271 35.0303Z\",\n fill: \"#F9F9F9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M206.941 187.21H33.8509C33.1809 187.21 32.6309 186.66 32.6309 185.99V50.7298C32.6309 50.0598 33.1809 49.5098 33.8509 49.5098C34.5209 49.5098 35.0709 50.0598 35.0709 50.7298V184.77H206.941C207.611 184.77 208.161 185.32 208.161 185.99C208.161 186.66 207.611 187.21 206.941 187.21Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.8196 187.209C66.1496 187.209 65.5996 186.659 65.5996 185.989V181.009C65.5996 180.339 66.1496 179.789 66.8196 179.789C67.4896 179.789 68.0396 180.339 68.0396 181.009V185.989C68.0396 186.659 67.4896 187.209 66.8196 187.209Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.7903 187.209C99.1203 187.209 98.5703 186.659 98.5703 185.989V181.009C98.5703 180.339 99.1203 179.789 99.7903 179.789C100.46 179.789 101.01 180.339 101.01 181.009V185.989C101.01 186.659 100.46 187.209 99.7903 187.209Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M132.759 187.209C132.089 187.209 131.539 186.659 131.539 185.989V181.009C131.539 180.339 132.089 179.789 132.759 179.789C133.429 179.789 133.979 180.339 133.979 181.009V185.989C133.979 186.659 133.429 187.209 132.759 187.209Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M165.73 187.209C165.06 187.209 164.51 186.659 164.51 185.989V181.009C164.51 180.339 165.06 179.789 165.73 179.789C166.4 179.789 166.95 180.339 166.95 181.009V185.989C166.95 186.659 166.4 187.209 165.73 187.209Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M198.7 187.209C198.03 187.209 197.48 186.659 197.48 185.989V181.009C197.48 180.339 198.03 179.789 198.7 179.789C199.37 179.789 199.92 180.339 199.92 181.009V185.989C199.92 186.659 199.37 187.209 198.7 187.209Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.8201 186.23C66.6901 186.23 66.5801 186.12 66.5801 185.99V50.7302C66.5801 50.6002 66.6901 50.4902 66.8201 50.4902C66.9501 50.4902 67.0601 50.6002 67.0601 50.7302V185.99C67.0601 186.12 66.9501 186.23 66.8201 186.23Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.7908 186.23C99.6608 186.23 99.5508 186.12 99.5508 185.99V50.7302C99.5508 50.6002 99.6608 50.4902 99.7908 50.4902C99.9208 50.4902 100.031 50.6002 100.031 50.7302V185.99C100.031 186.12 99.9208 186.23 99.7908 186.23Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M132.76 186.23C132.63 186.23 132.52 186.12 132.52 185.99V50.7302C132.52 50.6002 132.63 50.4902 132.76 50.4902C132.89 50.4902 133 50.6002 133 50.7302V185.99C133 186.12 132.89 186.23 132.76 186.23Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M165.73 186.23C165.6 186.23 165.49 186.12 165.49 185.99V50.7302C165.49 50.6002 165.6 50.4902 165.73 50.4902C165.86 50.4902 165.97 50.6002 165.97 50.7302V185.99C165.97 186.12 165.86 186.23 165.73 186.23Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M198.701 186.23C198.571 186.23 198.461 186.12 198.461 185.99V50.7302C198.461 50.6002 198.571 50.4902 198.701 50.4902C198.831 50.4902 198.941 50.6002 198.941 50.7302V185.99C198.941 186.12 198.831 186.23 198.701 186.23Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.8406 159.809H33.8606C33.1906 159.809 32.6406 159.259 32.6406 158.589C32.6406 157.919 33.1906 157.369 33.8606 157.369H38.8406C39.5106 157.369 40.0606 157.919 40.0606 158.589C40.0606 159.259 39.5106 159.809 38.8406 159.809Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.8406 126.84H33.8606C33.1906 126.84 32.6406 126.29 32.6406 125.62C32.6406 124.95 33.1906 124.4 33.8606 124.4H38.8406C39.5106 124.4 40.0606 124.95 40.0606 125.62C40.0606 126.29 39.5106 126.84 38.8406 126.84Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.8406 93.8697H33.8606C33.1906 93.8697 32.6406 93.3197 32.6406 92.6497C32.6406 91.9797 33.1906 91.4297 33.8606 91.4297H38.8406C39.5106 91.4297 40.0606 91.9797 40.0606 92.6497C40.0606 93.3197 39.5106 93.8697 38.8406 93.8697Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.8406 60.9097H33.8606C33.1906 60.9097 32.6406 60.3597 32.6406 59.6897C32.6406 59.0197 33.1906 58.4697 33.8606 58.4697H38.8406C39.5106 58.4697 40.0606 59.0197 40.0606 59.6897C40.0606 60.3597 39.5106 60.9097 38.8406 60.9097Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M206.939 158.83H33.8494C33.7194 158.83 33.6094 158.72 33.6094 158.59C33.6094 158.46 33.7194 158.35 33.8494 158.35H206.939C207.069 158.35 207.179 158.46 207.179 158.59C207.179 158.72 207.069 158.83 206.939 158.83Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M206.939 125.871H33.8494C33.7194 125.871 33.6094 125.761 33.6094 125.631C33.6094 125.501 33.7194 125.391 33.8494 125.391H206.939C207.069 125.391 207.179 125.501 207.179 125.631C207.179 125.761 207.069 125.871 206.939 125.871Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M206.939 92.8999H33.8494C33.7194 92.8999 33.6094 92.7899 33.6094 92.6599C33.6094 92.5299 33.7194 92.4199 33.8494 92.4199H206.939C207.069 92.4199 207.179 92.5299 207.179 92.6599C207.179 92.7899 207.069 92.8999 206.939 92.8999Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M206.939 59.9302H33.8494C33.7194 59.9302 33.6094 59.8202 33.6094 59.6902C33.6094 59.5602 33.7194 59.4502 33.8494 59.4502H206.939C207.069 59.4502 207.179 59.5602 207.179 59.6902C207.179 59.8202 207.069 59.9302 206.939 59.9302Z\",\n fill: \"#E0E0E0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.601 139.57C42.671 139.57 41.771 139.05 41.341 138.15C40.741 136.9 41.271 135.41 42.521 134.82C43.301 134.45 121.411 97.5996 202.881 97.5996C204.261 97.5996 205.381 98.7196 205.381 100.1C205.381 101.48 204.261 102.6 202.881 102.6C122.531 102.6 45.441 138.96 44.671 139.33C44.321 139.5 43.961 139.57 43.591 139.57H43.601Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M44.0805 120.7L41.7305 123.27L43.5305 126.65L47.7805 131.15L48.4705 131.19L48.0505 127.66L55.4605 124.63L57.6805 127.35L59.1505 127.03L57.6905 122.53L59.5805 119.14L61.2005 117.98L60.0405 113.42L54.8205 115.58L53.0205 117.38L44.0805 120.7Z\",\n fill: \"#F9F9F9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M50.3297 131.66L48.9897 129.34L48.8997 128.31L54.5997 125.88C54.9097 125.75 55.2197 125.6 55.5097 125.43L57.7297 128.51L59.8897 127.59L58.4397 122.92C59.1997 121.93 59.7697 120.81 60.0897 119.62L60.6097 119.4C60.9597 119.25 61.2497 118.99 61.4197 118.66C61.5897 118.33 61.6497 117.95 61.5597 117.58L60.8397 114.34L61.3097 114.14C61.5797 114.02 61.7997 113.8 61.9197 113.53C62.0397 113.26 62.0297 112.95 61.9197 112.68L61.6997 112.17L53.6197 115.62L53.7397 115.89L43.2397 120.37C42.3997 120.73 41.7297 121.41 41.3797 122.25C41.0297 123.09 41.0297 124.02 41.3797 124.85L44.0297 131.06L45.2997 130.52L44.4397 128.5L48.1497 132.59L50.3297 131.66ZM58.5697 119.89C58.2497 120.76 57.7797 121.57 57.1797 122.29L56.9397 122.58L58.2797 126.85L55.8797 123.53L55.3197 123.89C54.9197 124.15 54.4897 124.38 54.0497 124.57L48.7297 126.84L48.4997 124.36L47.1197 124.5L47.5997 129.73L47.9397 130.31L42.7597 124.59L42.6297 124.28C42.5297 124.03 42.4697 123.77 42.4697 123.5C42.4697 123.23 42.5197 122.97 42.6297 122.72C42.7297 122.47 42.8897 122.24 43.0797 122.05C43.2697 121.86 43.4997 121.7 43.7497 121.6L46.1197 120.59C46.4397 121.11 46.9097 121.52 47.4597 121.78C48.0197 122.04 48.6397 122.14 49.2597 122.06C49.4697 122.03 49.6797 122.05 49.8797 122.11C50.0797 122.17 50.2597 122.28 50.4097 122.42C50.7097 122.72 51.0997 122.92 51.5297 123C51.9597 123.08 52.3997 123.03 52.7997 122.86C53.1997 122.69 53.5397 122.4 53.7797 122.04C54.0197 121.68 54.1397 121.26 54.1297 120.83C54.1297 120.63 54.1697 120.43 54.2597 120.25C54.3497 120.07 54.4797 119.91 54.6397 119.78C55.1097 119.39 55.4497 118.88 55.6097 118.31C55.7797 117.74 55.7697 117.13 55.5797 116.57L55.7697 116.49L57.5997 119.21C57.8297 119.55 58.1797 119.79 58.5797 119.87L58.5697 119.89ZM59.4397 114.44L60.1997 117.84C60.1997 117.89 60.1997 117.94 60.1797 117.99C60.1597 118.04 60.1197 118.08 60.0697 118.1L59.0297 118.54C58.9797 118.56 58.9197 118.56 58.8697 118.54C58.8197 118.53 58.7697 118.49 58.7397 118.45L56.7997 115.55L59.4397 114.42V114.44Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M74.7294 108.63L72.1094 110.93L73.5194 114.48L77.2494 119.43L77.9294 119.54L77.8994 115.99L85.5994 113.8L87.5094 116.74L88.9994 116.59L88.0494 111.96L90.2994 108.8L92.0294 107.82L91.3894 103.16L85.9594 104.73L83.9794 106.33L74.7294 108.63Z\",\n fill: \"#F9F9F9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M79.72 120.22L78.64 117.76L78.66 116.72L84.59 114.93C84.91 114.83 85.23 114.72 85.54 114.58L87.4 117.89L89.64 117.21L88.71 112.41C89.58 111.51 90.26 110.46 90.72 109.31L91.26 109.15C91.62 109.04 91.94 108.81 92.15 108.5C92.36 108.19 92.45 107.82 92.41 107.45L92.05 104.15L92.54 104C92.83 103.91 93.07 103.72 93.21 103.46C93.35 103.2 93.39 102.9 93.3 102.62L93.14 102.09L84.73 104.63L84.82 104.91L73.89 108.21C73.01 108.48 72.27 109.08 71.83 109.87C71.39 110.67 71.29 111.6 71.55 112.45L73.5 118.91L74.83 118.51L74.19 116.4L77.42 120.88L79.69 120.2L79.72 120.22ZM89.21 109.43C88.79 110.26 88.24 111.02 87.56 111.66L87.29 111.92L88.15 116.32L86.13 112.76L85.54 113.06C85.11 113.28 84.67 113.46 84.21 113.59L78.68 115.26L78.73 112.77H77.34L77.24 118.01L77.51 118.63L72.99 112.38L72.89 112.05C72.81 111.79 72.79 111.53 72.82 111.26C72.85 110.99 72.93 110.74 73.06 110.5C73.19 110.26 73.37 110.05 73.58 109.88C73.79 109.71 74.04 109.58 74.3 109.5L76.77 108.76C77.03 109.31 77.45 109.77 77.97 110.09C78.49 110.41 79.1 110.58 79.73 110.57C79.94 110.57 80.15 110.6 80.34 110.69C80.53 110.77 80.7 110.9 80.83 111.06C81.1 111.39 81.46 111.64 81.87 111.76C82.28 111.88 82.73 111.88 83.14 111.76C83.56 111.63 83.93 111.39 84.2 111.06C84.48 110.73 84.64 110.32 84.68 109.9C84.7 109.7 84.77 109.51 84.88 109.34C84.99 109.17 85.13 109.02 85.3 108.92C85.81 108.59 86.2 108.12 86.43 107.56C86.66 107.01 86.72 106.4 86.59 105.82L86.79 105.76L88.31 108.67C88.5 109.03 88.82 109.31 89.21 109.44V109.43ZM90.68 104.11L91.06 107.58C91.06 107.63 91.06 107.68 91.02 107.73C90.99 107.77 90.95 107.81 90.9 107.83L89.82 108.16C89.77 108.17 89.71 108.17 89.66 108.16C89.61 108.14 89.57 108.1 89.54 108.06L87.93 104.96L90.68 104.13V104.11Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M109.07 98.4794L106.33 100.639L107.57 104.259L111.04 109.389L111.71 109.539L111.87 105.989L119.67 104.189L121.42 107.229L122.92 107.149L122.21 102.479L124.61 99.4394L126.39 98.5494L125.99 93.8594L120.49 95.1594L118.42 96.6494L109.07 98.4794Z\",\n fill: \"#F9F9F9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M113.47 110.31L112.52 107.8L112.59 106.77L118.61 105.28C118.94 105.2 119.26 105.1 119.58 104.98L121.27 108.38L123.55 107.82L122.87 102.98C123.78 102.13 124.52 101.11 125.03 99.9899L125.58 99.8499C125.95 99.7599 126.27 99.5499 126.5 99.2499C126.73 98.9499 126.84 98.5799 126.82 98.2099L126.63 94.8999L127.13 94.7799C127.42 94.7099 127.67 94.5299 127.83 94.2799C127.99 94.0299 128.03 93.7299 127.96 93.4499L127.83 92.9199L119.3 95.0299L119.37 95.3199L108.29 98.0599C107.4 98.2799 106.63 98.8399 106.15 99.6099C105.67 100.38 105.52 101.31 105.74 102.18L107.36 108.74L108.71 108.41L108.18 106.27L111.18 110.91L113.48 110.34L113.47 110.31ZM123.49 100.02C123.03 100.83 122.44 101.55 121.73 102.17L121.45 102.42L122.09 106.85L120.25 103.19L119.64 103.46C119.2 103.65 118.75 103.81 118.28 103.93L112.67 105.32L112.85 102.83L111.47 102.75L111.1 107.99L111.34 108.62L107.15 102.14L107.07 101.81C107.01 101.55 107 101.28 107.04 101.02C107.08 100.76 107.18 100.5 107.32 100.27C107.46 100.04 107.65 99.8399 107.87 99.6799C108.09 99.5199 108.34 99.3999 108.61 99.3399L111.11 98.7199C111.34 99.2799 111.74 99.7699 112.24 100.11C112.75 100.46 113.35 100.65 113.97 100.67C114.18 100.67 114.39 100.73 114.57 100.82C114.76 100.91 114.92 101.05 115.04 101.22C115.29 101.57 115.64 101.83 116.05 101.97C116.46 102.11 116.9 102.14 117.32 102.03C117.74 101.93 118.12 101.7 118.42 101.38C118.71 101.06 118.9 100.67 118.96 100.24C118.99 100.04 119.07 99.8499 119.18 99.6899C119.3 99.5199 119.45 99.3899 119.63 99.2899C120.15 98.9799 120.57 98.5299 120.83 97.9899C121.09 97.4499 121.18 96.8499 121.08 96.2599L121.28 96.2099L122.65 99.1899C122.82 99.5599 123.13 99.8499 123.51 99.9999L123.49 100.02ZM125.23 94.7799L125.43 98.2599C125.43 98.3099 125.42 98.3599 125.38 98.4099C125.35 98.4499 125.3 98.4799 125.25 98.4999L124.16 98.7699C124.11 98.7799 124.05 98.7699 124 98.7499C123.95 98.7299 123.91 98.6899 123.89 98.6399L122.44 95.4699L125.22 94.7799H125.23Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M142.241 90.9998L139.371 92.9698L140.361 96.6698L143.481 102.02L144.141 102.21L144.531 98.6798L152.441 97.3998L153.981 100.55L155.491 100.57L155.081 95.8598L157.691 92.9898L159.521 92.2198L159.431 87.5098L153.861 88.4398L151.691 89.7898L142.241 90.9998Z\",\n fill: \"#F9F9F9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M145.84 103.09L145.06 100.52L145.2 99.4902L151.3 98.4102C151.63 98.3502 151.96 98.2702 152.29 98.1802L153.75 101.68L156.06 101.27L155.7 96.3902C156.67 95.6002 157.47 94.6402 158.06 93.5502L158.61 93.4501C158.98 93.3801 159.32 93.1902 159.57 92.9102C159.82 92.6302 159.95 92.2702 159.95 91.8902L159.98 88.5702L160.48 88.4802C160.77 88.4302 161.04 88.2601 161.21 88.0201C161.38 87.7801 161.45 87.4801 161.4 87.2001L161.3 86.6602L152.65 88.2001L152.7 88.4902L141.46 90.4902C140.56 90.6502 139.75 91.1602 139.22 91.9002C138.69 92.6402 138.48 93.5502 138.64 94.4302L139.82 101.08L141.18 100.84L140.8 98.6702L143.49 103.5L145.82 103.09H145.84ZM156.52 93.4902C156.01 94.2702 155.37 94.9501 154.62 95.5201L154.32 95.7502L154.66 100.22L153.07 96.4402L152.45 96.6702C152 96.8302 151.54 96.9602 151.06 97.0402L145.37 98.0502L145.71 95.5802L144.33 95.4102L143.61 100.61L143.81 101.26L140.06 94.5201L140 94.1802C139.95 93.9202 139.96 93.6502 140.02 93.3902C140.08 93.1302 140.19 92.8802 140.35 92.6602C140.51 92.4402 140.71 92.2502 140.94 92.1102C141.17 91.9702 141.43 91.8702 141.7 91.8202L144.24 91.3702C144.43 91.9502 144.8 92.4601 145.28 92.8401C145.76 93.2201 146.35 93.4601 146.97 93.5201C147.18 93.5401 147.38 93.6002 147.56 93.7102C147.74 93.8202 147.89 93.9602 148 94.1402C148.23 94.5002 148.56 94.7902 148.96 94.9602C149.36 95.1302 149.8 95.1802 150.22 95.1102C150.65 95.0302 151.04 94.8302 151.36 94.5402C151.67 94.2402 151.89 93.8602 151.98 93.4402C152.02 93.2502 152.11 93.0602 152.24 92.9102C152.37 92.7502 152.53 92.6302 152.71 92.5402C153.25 92.2702 153.7 91.8502 153.99 91.3302C154.28 90.8102 154.41 90.2101 154.35 89.6301L154.56 89.5901L155.73 92.6602C155.87 93.0402 156.16 93.3502 156.54 93.5302L156.52 93.4902ZM158.6 88.3801L158.57 91.8702C158.57 91.9202 158.55 91.9702 158.51 92.0102C158.48 92.0502 158.43 92.0801 158.38 92.0901L157.27 92.2902C157.22 92.2902 157.16 92.2902 157.11 92.2602C157.06 92.2302 157.03 92.1902 157.01 92.1402L155.77 88.8801L158.59 88.3801H158.6Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M175.381 86.5806L172.301 88.2206L172.871 92.0005L175.371 97.6705L176.001 97.9305L176.791 94.4706L184.791 94.0905L185.971 97.4006L187.461 97.5905L187.591 92.8605L190.501 90.3006L192.421 89.7505L192.861 85.0605L187.211 85.3505L184.911 86.4505L175.381 86.5806Z\",\n fill: \"#F9F9F9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M177.6 99.0002L177.11 96.3602L177.37 95.3602L183.56 94.9702C183.9 94.9502 184.24 94.9102 184.57 94.8502L185.63 98.4902L187.97 98.3401L188.17 93.4501C189.22 92.7801 190.12 91.9102 190.83 90.9002L191.39 90.8602C191.77 90.8402 192.13 90.6802 192.4 90.4302C192.68 90.1702 192.85 89.8302 192.9 89.4602L193.3 86.1602L193.81 86.1301C194.11 86.1101 194.39 85.9802 194.59 85.7602C194.79 85.5402 194.89 85.2502 194.87 84.9602L194.84 84.4102L186.07 84.9602L186.09 85.2602L174.7 85.9702C173.78 86.0302 172.93 86.4402 172.32 87.1202C171.71 87.7902 171.4 88.6802 171.46 89.5702L171.88 96.3102L173.26 96.2202L173.12 94.0201L175.25 99.1202L177.61 98.9702L177.6 99.0002ZM189.3 90.6602C188.7 91.3702 187.99 91.9802 187.18 92.4602L186.86 92.6502L186.69 97.1301L185.53 93.2001L184.89 93.3602C184.42 93.4702 183.95 93.5402 183.47 93.5802L177.7 93.9402L178.32 91.5201L176.97 91.1902L175.67 96.2802L175.8 96.9402L172.83 89.8202L172.81 89.4802C172.79 89.2102 172.83 88.9502 172.92 88.6902C173.01 88.4402 173.15 88.2002 173.33 88.0002C173.51 87.8002 173.73 87.6401 173.97 87.5201C174.22 87.4001 174.48 87.3302 174.75 87.3202L177.32 87.1602C177.45 87.7602 177.75 88.3002 178.19 88.7302C178.63 89.1602 179.18 89.4601 179.79 89.5901C180 89.6301 180.19 89.7202 180.36 89.8502C180.53 89.9802 180.66 90.1402 180.75 90.3202C180.93 90.7002 181.23 91.0302 181.61 91.2402C181.99 91.4502 182.42 91.5602 182.85 91.5302C183.28 91.5002 183.7 91.3501 184.04 91.0901C184.38 90.8301 184.64 90.4702 184.78 90.0702C184.85 89.8802 184.96 89.7102 185.1 89.5702C185.24 89.4302 185.42 89.3202 185.61 89.2502C186.18 89.0402 186.67 88.6702 187.02 88.1902C187.37 87.7102 187.56 87.1302 187.57 86.5402H187.78L188.59 89.7102C188.69 90.1002 188.94 90.4502 189.29 90.6602H189.3ZM191.94 85.8202L191.52 89.2802C191.52 89.3302 191.49 89.3802 191.45 89.4202C191.41 89.4602 191.36 89.4802 191.31 89.4902L190.19 89.5602C190.14 89.5602 190.08 89.5502 190.04 89.5102C190 89.4802 189.96 89.4302 189.95 89.3801L189.09 86.0002L191.95 85.8202H191.94Z\",\n fill: \"#CCCCCC\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_786_103506\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 240,\n height: 240,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmpty2);\nexport default __webpack_public_path__ + \"static/media/empty2.50269982.svg\";\nexport { ForwardRef as ReactComponent };","import { FC } from \"react\";\n\nimport { Empty } from \"../../../layout\";\nimport { EmptyProps } from \"../../../layout/Empty\";\nimport { ReactComponent as CliffIllustration } from \"./assets/empty1.svg\";\nimport { ReactComponent as HillIllustration } from \"./assets/empty2.svg\";\n\n/**\n * Empty state with illustration variants\n * @param {\"cliff\" | \"hill\"} variant\n * @param {Pick & {variant: \"cliff\" | \"hill\"} & {children?: React.ReactNode | undefined}, \"title\" | \"description\" | \"gutter\" | \"align\" | \"justify\" | \"prefixCls\" | \"wrap\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"id\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"children\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChange\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"ref\" | \"key\">} props\n * @return {JSX.Element}\n * @constructor\n */\nconst WithIllustrationVariant: FC & { variant: \"cliff\" | \"hill\" }> = ({\n variant,\n ...props\n}) => : } />;\n\nexport default WithIllustrationVariant;\n","import { ComponentProps, FC, ReactNode } from \"react\";\nimport { Row, Typography, Col, Tag, Space } from \"antd\";\nimport { BulbOutlined } from \"@ant-design/icons\";\nimport Markdown from \"react-markdown\";\n\nimport { Barn, Icon } from \"../../../../elements\";\nimport { FarmEntity } from \"@ctra/api\";\nimport styles from \"./DialogHeader.module.less\";\nimport { classname } from \"@ctra/utils\";\n\nconst { Paragraph, Text, Title } = Typography;\n\nexport interface DialogHeaderProps extends ComponentProps {\n /**\n * top label, eg. \"your insight\"\n */\n label: string;\n /**\n * insight title\n */\n title: string;\n /**\n * insight description\n */\n description?: string;\n /**\n * farm name\n */\n farm: FarmEntity[\"name\"];\n /**\n * insight icon\n */\n icon: ReactNode;\n /**\n * time period\n */\n period: ReactNode;\n /**\n * toolbar (with eg. status dropdown)\n */\n toolbar?: ReactNode;\n}\n\n/**\n * Insight dialog header component\n * @param {string} label\n * @param {string} title\n * @param {string} description\n * @param {string | null | undefined} farm\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} icon\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} period\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} toolbar\n * @param {string | undefined} className\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst DialogHeader: FC = ({\n label,\n title,\n description,\n farm,\n icon,\n period,\n toolbar,\n className,\n ...rest\n}) => {\n return (\n \n \n \n \n \n {label}\n \n \n {toolbar}\n \n \n \n \n {icon}\n \n {title}\n {description && {description}}\n \n }>\n {farm}\n \n {period}\n \n \n \n \n \n );\n};\n\nexport default DialogHeader;\n","import { ComponentProps, FC } from \"react\";\nimport { Dropdown, Menu } from \"antd\";\nimport { DownOutlined, LoadingOutlined } from \"@ant-design/icons\";\nimport * as _ from \"lodash\";\n\nimport { InsightWorkflowState } from \"@ctra/api\";\nimport { classname } from \"@ctra/utils\";\n\nimport { Button } from \"../../../../elements\";\nimport styles from \"./StatusDropdown.module.less\";\n\nexport interface StatusDropdownProps extends ComponentProps {\n /**\n * disabled state\n */\n disabled?: boolean;\n /**\n * loading state\n */\n loading?: boolean;\n /**\n * current selection\n */\n selected: InsightWorkflowState;\n /**\n * click handler\n */\n onClick: ComponentProps[\"onClick\"];\n /**\n * dropdown labels\n */\n labels: {\n [InsightWorkflowState.toCheck]: string;\n [InsightWorkflowState.toFollowUp]: string;\n [InsightWorkflowState.done]: string;\n };\n}\n\n/**\n * Insight dialog status dropdown component\n * @param {boolean | undefined} loading\n * @param {boolean | undefined} disabled\n * @param {InsightWorkflowState} selected\n * @param {{\"[InsightWorkflowState.toCheck]\": string, \"[InsightWorkflowState.toFollowUp]\": string, \"[InsightWorkflowState.done]\": string}} labels\n * @param {((info: MenuInfo) => void) | undefined} onClick\n * @param {string | undefined} className\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst StatusDropdown: FC = ({\n loading,\n disabled,\n selected,\n labels,\n onClick,\n className,\n ...rest\n}) => {\n const isDone = selected === InsightWorkflowState.done;\n\n return (\n (\n \n {isDone ? (\n \n {labels[InsightWorkflowState.toFollowUp]}\n \n ) : (\n {labels[InsightWorkflowState.done]}\n )}\n \n )}\n {...rest}\n >\n \n \n );\n};\n\nexport default StatusDropdown;\n","import { ComponentProps, FC } from \"react\";\nimport { Col, Row } from \"antd\";\nimport { LeftOutlined, RightOutlined } from \"@ant-design/icons\";\nimport * as _ from \"lodash\";\n\nimport { classname } from \"@ctra/utils\";\nimport styles from \"./NavigationWrapper.module.less\";\n\nexport interface NavigationWrapperProps extends ComponentProps {\n /**\n * enabled state\n */\n enabled: boolean;\n /**\n * handle clicking on the previous button\n */\n previous?: () => void;\n /**\n * handle clicking on the next button\n */\n next?: () => void;\n}\n\n/**\n * Insight dialog navigation wrapper component\n * @param {boolean} enabled\n * @param {(() => void) | undefined} previous\n * @param {(() => void) | undefined} next\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @param {string | undefined} className\n * @param {Pick} rest\n * @return {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined}\n * @constructor\n */\nconst NavigationWrapper: FC = ({\n enabled,\n previous,\n next,\n children,\n className,\n ...rest\n}) => {\n return enabled ? (\n \n \n {_.isFunction(previous) && (\n \n )}\n \n {children}\n \n \n \n \n ) : (\n <>{children}\n );\n};\n\nexport default NavigationWrapper;\n","import { FC, ComponentProps, ReactNode } from \"react\";\nimport { Col, Layout, Row, Grid } from \"antd\";\n\nimport { classname } from \"@ctra/utils\";\nimport { CtraLogo } from \"../../../elements\";\n\nimport styles from \"./AuthPage.module.less\";\n\nexport interface AuthPageProps extends ComponentProps {\n /**\n * page header\n */\n header?: ReactNode;\n /**\n * page footer\n */\n footer?: ReactNode;\n}\n\n/**\n * Auth page wrapper: login, forgot password, etc.\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} header\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} footer\n * @param {string | undefined} className\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst AuthPage: FC = ({ header, children, footer, className, ...rest }) => {\n const { md } = Grid.useBreakpoint();\n\n return (\n \n \n \n \n \n {header && {header}}\n \n \n {children}\n \n {footer && (\n \n {footer}\n \n )}\n \n );\n};\n\nexport default AuthPage;\n","import { ComponentProps, FC, ReactNode } from \"react\";\nimport { Space, Typography, Grid } from \"antd\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport { WidgetWrapper, ContentWrapper } from \"../../layout\";\n\nimport styles from \"./AuthWidgetWrapper.module.less\";\n\nconst { Title, Text, Paragraph } = Typography;\n\nexport interface AuthWidgetWrapperProps extends ComponentProps {\n /**\n * main widget title\n */\n introTitle: string;\n /**\n * title inside the widget\n */\n title?: string;\n /**\n * widget description\n */\n description?: string;\n /**\n * footer content\n */\n footer?: ReactNode;\n}\n\n/**\n * Auth page widget wrapper component\n * @param {string} introTitle\n * @param {string | undefined} title\n * @param {string | undefined} description\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} footer\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst AuthWidgetWrapper: FC = ({\n introTitle,\n title,\n description,\n footer,\n children,\n ...rest\n}) => {\n const { md } = Grid.useBreakpoint();\n\n return (\n \n \n <Space align=\"center\" size={md ? void 0 : \"middle\"} direction={md ? \"horizontal\" : \"vertical\"}>\n <Text>{introTitle}</Text>\n </Space>\n \n \n \n \n {title && (\n \n {title}\n \n )}\n {description && (\n \n {description}\n \n )}\n {children}\n \n {footer && {footer}}\n \n \n \n );\n};\n\nexport default AuthWidgetWrapper;\n","import { ComponentProps, FC, ReactNode } from \"react\";\nimport { Row, Alert } from \"antd\";\nimport { MailOutlined, EyeTwoTone, EyeInvisibleOutlined, UnlockOutlined } from \"@ant-design/icons\";\nimport { Form, Input, Checkbox } from \"formik-antd\";\nimport * as _ from \"lodash\";\n\nimport { Button } from \"../../../elements\";\nimport styles from \"./LoginForm.module.less\";\nimport { classname } from \"@ctra/utils\";\n\nexport interface LoginFormProps extends ComponentProps {\n /**\n * translated labels\n */\n labels: {\n username: string;\n password: string;\n submit: string;\n rememberMe: string;\n rejected?: string | ReactNode;\n };\n /**\n * handle field blur\n * @param {string} fieldName\n */\n onFieldBlur: (fieldName: \"username\" | \"password\") => void;\n /**\n * loading state\n */\n isLoading?: boolean;\n /**\n * form extra, eg. link to other page\n */\n extra?: ReactNode;\n}\n\n/**\n * Test ids for unit testing\n * @type {{submit: string, emailField: string, passwordField: string, rememberMe: string}}\n */\nexport const testIds = {\n emailField: \"emailField\",\n passwordField: \"passwordField\",\n submit: \"submit\",\n rememberMe: \"rememberMe\"\n};\n\n/**\n * Login form component\n * @param {string} username\n * @param {string} password\n * @param {string} submit\n * @param {string} rememberMe\n * @param {string} rejected\n * @param {boolean | undefined} isLoading\n * @param {boolean | undefined} isRejected\n * @param {(fieldName: string) => void} onFieldBlur\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} extra\n * @param {string | undefined} className\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst LoginForm: FC & { testIds: typeof testIds } = ({\n labels: { username, password, submit, rememberMe, rejected },\n isLoading,\n onFieldBlur,\n extra = null,\n className,\n ...rest\n}) => (\n
\n \n }\n onBlur={_.partial(onFieldBlur, \"username\")}\n />\n \n \n (visible ? : )}\n name=\"password\"\n required={true}\n placeholder={password}\n prefix={}\n onBlur={_.partial(onFieldBlur, \"password\")}\n />\n \n \n {submit}\n \n {rejected &&\n (_.isString(rejected) ? (\n \n ) : (\n rejected\n ))}\n \n \n \n {rememberMe}\n \n \n {extra}\n \n \n);\n\nLoginForm.testIds = testIds;\n\nexport default LoginForm;\n","import { ComponentProps, FC, ReactNode } from \"react\";\nimport { Row, Alert } from \"antd\";\nimport { MailOutlined } from \"@ant-design/icons\";\nimport { Form, Input } from \"formik-antd\";\nimport * as _ from \"lodash\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport { Button } from \"../../../elements\";\nimport styles from \"./ForgotPasswordForm.module.less\";\n\nexport interface ForgotPasswordFormProps extends ComponentProps {\n /**\n * translated labels\n */\n labels: {\n username: string;\n submit: string;\n fulfilled?: string;\n };\n /**\n * handle field blur\n * @param {string} fieldName\n */\n onFieldBlur: (fieldName: \"username\" | \"password\") => void;\n /**\n * loading state\n */\n isLoading?: boolean;\n /**\n * form extra, eg. link to other page\n */\n extra?: ReactNode;\n}\n\n/**\n * Test ids for unit testing\n * @type {{submit: string, emailField: string}}\n */\nconst testIds = {\n emailField: \"emailField\",\n submit: \"submit\"\n};\n\n/**\n * Forgot password form component\n * @param {string} username\n * @param {string} submit\n * @param {string | undefined} fulfilled\n * @param {boolean | undefined} isLoading\n * @param {(fieldName: (\"username\" | \"password\")) => void} onFieldBlur\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} extra\n * @param {string | undefined} className\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst ForgotPasswordForm: FC & { testIds: typeof testIds } = ({\n labels: { username, submit, fulfilled },\n isLoading,\n onFieldBlur,\n extra = null,\n className,\n ...rest\n}) => (\n \n \n }\n onBlur={_.partial(onFieldBlur, \"username\")}\n data-gtm-category=\"Forgot password\"\n data-gtm-action=\"Username\"\n />\n \n \n {submit}\n \n {fulfilled && }\n {extra && (\n \n {extra}\n \n )}\n \n);\n\nForgotPasswordForm.testIds = testIds;\n\nexport default ForgotPasswordForm;\n","import { ComponentProps, FC } from \"react\";\nimport { Alert } from \"antd\";\nimport { MailOutlined, EyeTwoTone, EyeInvisibleOutlined, UnlockOutlined } from \"@ant-design/icons\";\nimport { Form, Input } from \"formik-antd\";\nimport * as _ from \"lodash\";\n\nimport { classname } from \"@ctra/utils\";\nimport { AdvisorType } from \"@ctra/api\";\n\nimport { IdcardOutlined, PhoneOutlined, Select, Button } from \"../../../index\";\nimport styles from \"./AcceptInviteForm.module.less\";\nimport * as React from \"react\";\n\nexport interface AcceptInviteFormProps extends ComponentProps {\n /**\n * translated labels\n */\n labels: {\n firstName: string;\n lastName: string;\n companyName: string;\n subType: string;\n emailAddress: string;\n phoneNumber: string;\n password: string;\n confirmPassword: string;\n submit: string;\n rejected?: string;\n };\n /**\n * Get sub type\n * @param {string} subType\n * @return {string}\n */\n getSubType: (subType: string) => string;\n /**\n * handle field blur\n * @param {string} fieldName\n */\n onFieldBlur: (\n fieldName:\n | \"firstName\"\n | \"lastName\"\n | \"companyName\"\n | \"subType\"\n | \"emailAddress\"\n | \"phoneNumber\"\n | \"password\"\n | \"confirmPassword\"\n ) => void;\n /**\n * loading state\n */\n isLoading?: boolean;\n}\n\n/**\n * Test ids for unit testing\n * @type {{firstName: string, lastName: string, password: string, emailAddress: string, phoneNumber: string, submit: string, companyName: string, confirmPassword: string, subType: string, error: string}}\n */\nexport const testIds = {\n firstName: \"firstName\",\n lastName: \"lastName\",\n companyName: \"companyName\",\n password: \"password\",\n confirmPassword: \"confirmPassword\",\n phoneNumber: \"phoneNumber\",\n subType: \"subType\",\n emailAddress: \"emailAddress\",\n submit: \"submit\",\n error: \"error\"\n};\n\n/**\n * Accept invite form component\n * @param {string} firstName\n * @param {string} lastName\n * @param {string} companyName\n * @param {string} password\n * @param {string} confirmPassword\n * @param {string} phoneNumber\n * @param {string} subType\n * @param {string} emailAddress\n * @param {string} submit\n * @param {string | undefined} rejected\n * @param {boolean | undefined} isLoading\n * @param {(subType: string) => string} getSubType\n * @param {(fieldName: (\"firstName\" | \"lastName\" | \"companyName\" | \"subType\" | \"emailAddress\" | \"phoneNumber\" | \"password\" | \"confirmPassword\")) => void} onFieldBlur\n * @param {string | undefined} className\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst AcceptInviteForm: FC & { testIds: typeof testIds } = ({\n labels: {\n firstName,\n lastName,\n companyName,\n password,\n confirmPassword,\n phoneNumber,\n subType,\n emailAddress,\n submit,\n rejected\n },\n isLoading,\n getSubType,\n onFieldBlur,\n className,\n ...rest\n}) => (\n \n \n \n \n \n \n \n \n }\n onBlur={_.partial(onFieldBlur, \"companyName\")}\n />\n \n\n \n \n {Object.values(AdvisorType).map((value) => (\n \n {getSubType(value)}\n \n ))}\n \n \n \n }\n onBlur={_.partial(onFieldBlur, \"emailAddress\")}\n />\n \n \n }\n onBlur={_.partial(onFieldBlur, \"phoneNumber\")}\n />\n \n \n (visible ? : )\n }\n prefix={}\n onBlur={_.partial(onFieldBlur, \"password\")}\n />\n \n \n (visible ? : )\n }\n prefix={}\n onBlur={_.partial(onFieldBlur, \"confirmPassword\")}\n />\n \n \n {submit}\n \n {rejected && (\n \n )}\n \n);\n\nAcceptInviteForm.testIds = testIds;\n\nexport default AcceptInviteForm;\n","import { GoogleReCaptcha, useGoogleReCaptcha } from \"react-google-recaptcha-v3\";\nimport { ComponentProps, FC, ReactElement, useCallback } from \"react\";\nimport { Alert, Typography } from \"antd\";\nimport { EyeTwoTone, EyeInvisibleOutlined } from \"@ant-design/icons\";\nimport { Form, Input } from \"formik-antd\";\nimport * as _ from \"lodash\";\n\nimport { classname, isProduction } from \"@ctra/utils\";\n\nimport { Button } from \"../../../elements\";\nimport styles from \"./SignupForm.module.less\";\nimport { useFormikContext } from \"formik\";\n\nconst { Text } = Typography;\n\nexport interface SignupFormProps extends Omit, \"disabled\"> {\n /**\n * translated labels\n */\n labels: {\n email: string;\n firstName: string;\n lastName: string;\n phoneNumber: string;\n password: string;\n confirmPassword: string;\n create: string;\n rejected?: string;\n eula: ReactElement;\n };\n /**\n * disabled state\n */\n disabled?: {\n email?: boolean;\n };\n /**\n * handle field blur\n * @param {string} fieldName\n */\n onFieldBlur?: (fieldName: \"email\" | \"password\" | \"confirmPassword\" | \"phoneNumber\") => void;\n /**\n * loading state\n */\n isLoading?: boolean;\n}\n\nexport const testIds = {\n emailField: \"emailField\",\n phoneNumberField: \"phoneNumberField\",\n firstNameField: \"firstNameField\",\n lastNameField: \"lastNameField\",\n passwordField: \"passwordField\",\n confirmPasswordField: \"confirmPasswordField\",\n create: \"create\",\n eula: \"eula\"\n};\n\n/**\n * Sign up form component\n * @param {any} emailDisabled\n * @param {string} firstName\n * @param {string} lastName\n * @param {string} email\n * @param {string} phoneNumber\n * @param {string} password\n * @param {string} confirmPassword\n * @param {string} create\n * @param {string | undefined} rejected\n * @param {React.ReactElement>} eula\n * @param {boolean | undefined} isLoading\n * @param {(fieldName: (\"email\" | \"password\" | \"confirmPassword\" | \"phoneNumber\")) => void} onFieldBlur\n * @param {string | undefined} className\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst SignupForm: FC & { testIds: typeof testIds } = ({\n disabled: { email: emailDisabled } = {},\n labels: { firstName, lastName, email, phoneNumber, password, confirmPassword, create, rejected, eula },\n isLoading,\n onFieldBlur = _.noop,\n className,\n ...rest\n}) => {\n const { executeRecaptcha } = useGoogleReCaptcha();\n const { values, setFieldValue, submitForm } = useFormikContext();\n\n const handleSubmit = useCallback(async () => {\n if (executeRecaptcha) {\n const token = await executeRecaptcha(\"userSignup\");\n\n setFieldValue(\"g-recaptcha-response\", token);\n submitForm();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [executeRecaptcha]);\n\n /**\n * Verify reCaptcha token\n * @type {(token) => void}\n */\n const onVerify = useCallback((token) => {\n setFieldValue(\"g-recaptcha-response\", token);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n (visible ? : )}\n name=\"password\"\n required={true}\n onBlur={_.partial(onFieldBlur, \"password\")}\n />\n \n \n (visible ? : )}\n name=\"confirmPassword\"\n required={true}\n onBlur={_.partial(onFieldBlur, \"confirmPassword\")}\n />\n \n \n {eula}\n \n \n {rejected && }\n \n {create}\n \n \n );\n};\n\nSignupForm.testIds = testIds;\n\nexport default SignupForm;\n","import { ComponentProps, FC } from \"react\";\nimport { Col, Row, Space, Skeleton, Popover } from \"antd\";\nimport * as _ from \"lodash\";\nimport { QuestionCircleOutlined } from \"@ant-design/icons\";\nimport Markdown from \"react-markdown\";\n\nimport { DataAvailability, MissingDataReason, Direction } from \"@ctra/api\";\nimport { classname, Nullable } from \"@ctra/utils\";\n\nimport { Typography } from \"../../../elements\";\nimport Bar from \"../Bar\";\nimport Arrow from \"../Arrow\";\nimport ValueChange from \"../ValueChange\";\nimport WidgetWrapper from \"../WidgetWrapper\";\n\nimport \"./KPIChange.css\";\nimport styles from \"./KPIChange.module.less\";\n\nconst { Text } = Typography;\n\nexport enum Variant {\n bars = \"bars\",\n table = \"table\"\n}\n\nexport interface KPIChangeProps extends ComponentProps {\n labels: {\n kpi: string;\n direction: string;\n noData?: string;\n };\n before: {\n label?: string;\n description?: string;\n value: Nullable;\n noData?: string;\n };\n projected?: {\n label?: string;\n description?: string;\n value: Nullable;\n noData?: string;\n };\n after: {\n label?: string;\n description?: string;\n value: Nullable;\n noData?: string;\n };\n suffix: string;\n direction: Direction;\n variant?: Variant;\n value?: number;\n loading?: boolean;\n context?: {\n dataStatus: Nullable;\n missingDataReason: Nullable;\n };\n}\n\n/**\n * Bar representation of a KPI change\n * @param {{kpi: string, direction: string, noData?: string}} labels\n * @param {{label?: string, value: Nullable}} before\n * @param {{label?: string, value: Nullable} | undefined} projected\n * @param {{label?: string, value: Nullable}} after\n * @param {string} suffix\n * @param {Direction} direction\n * @param {number | undefined} inputValue\n * @param {string | undefined} className\n * @param {boolean | undefined} loading\n * @param {{dataAvailability: Nullable, dataUnavailableReason: Nullable} | undefined} context\n * @param {Omit>, \"before\" | \"projected\" | \"context\" | \"className\" | \"after\" | \"suffix\" | \"loading\" | \"value\" | \"labels\" | \"direction\">} rest\n * @returns {JSX.Element}\n * @constructor\n */\nconst BarVariant: FC> = ({\n labels,\n before,\n projected,\n after,\n suffix,\n direction,\n value: inputValue,\n className,\n loading,\n context,\n ...rest\n}) => {\n /**\n * Calculate the delta between the before and after values\n * @type {number | null}\n */\n const delta =\n after.value && _.defaultTo(projected, before).value\n ? _.round(Math.abs((_.defaultTo(projected, before).value as NonNullable) - after.value), 2)\n : null;\n\n /**\n * Calculate the value to display\n * @type {number | null}\n */\n const value = _.defaultTo(inputValue, delta);\n\n /**\n * Calculate the min value\n * @type {number}\n */\n const min = Math.min(..._.compact([before.value, projected?.value, after.value]));\n\n /**\n * Tell if any of the values are negative\n * @type {boolean}\n */\n const mixed = _.some(_.compact([before.value, projected?.value, after.value]), (v) => v < 0);\n\n /**\n * Shift/adjust values to be positive\n * @type {(number|undefined)[]}\n */\n const [avBefore, avProjected, avAfter] = _.map([before.value, projected?.value, after.value], (v) =>\n mixed && _.isNumber(v) ? v + Math.abs(min) : v\n );\n\n /**\n * Calculate the max value\n * @type {number}\n */\n const max = Math.max(..._.compact([avBefore, avProjected, avAfter]));\n\n return (\n \n \n \n \n \n \n \n \n {before.description ? (\n {before.description}}\n trigger=\"hover\"\n placement=\"top\"\n >\n {before.label}{\" \"}\n \n \n \n \n ) : (\n {before.label}\n )}\n \n {projected && (\n \n {projected.description ? (\n {projected.description}}\n trigger=\"hover\"\n placement=\"top\"\n >\n {projected.label}{\" \"}\n \n \n \n \n ) : (\n {projected.label}\n )}\n \n )}\n \n {after.description ? (\n {after.description}}\n trigger=\"hover\"\n placement=\"top\"\n >\n {after.label}{\" \"}\n \n \n \n \n ) : (\n {after.label}\n )}\n \n \n \n \n \n {projected && _.isNumber(avProjected) && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n );\n};\n\n/**\n * Table variant of a KPI change\n * @param {{kpi: string, direction: string, noData?: string}} labels\n * @param {{label?: string, value: Nullable}} before\n * @param {string} suffix\n * @param {{label?: string, value: Nullable} | undefined} projected\n * @param {{label?: string, value: Nullable}} after\n * @param {Direction} direction\n * @param {string | undefined} className\n * @return {JSX.Element}\n * @constructor\n */\nconst TableRowVariant: FC> = ({\n labels,\n before,\n suffix,\n projected,\n after,\n direction,\n className\n}) => (\n \n \n \n {labels.kpi}\n \n \n \n \n {before.value} {suffix}\n \n \n \n \n {after.value} {suffix}\n \n \n \n \n \n {_.isNumber(after.value) && _.isNumber(_.defaultTo(projected, before).value) && (\n \n \n {_.round(\n Math.abs((_.defaultTo(projected, before).value as NonNullable) - after.value),\n 2\n )}{\" \"}\n {suffix}\n \n {labels.direction}\n \n )}\n \n \n \n);\n\n/**\n * KPI value change before/after\n * @param {Variant | undefined} variant\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst KPIChange: FC> = ({ variant = Variant.bars, ...rest }) =>\n variant === Variant.bars ? : ;\n\nexport default KPIChange;\n","import { FC, ReactElement } from \"react\";\nimport * as _ from \"lodash\";\nimport { Button, Col, Row } from \"antd\";\nimport { FacebookFilled, GoogleCircleFilled, AppstoreFilled, AppleFilled } from \"@ant-design/icons\";\n\nexport interface SSOListProps {\n /**\n * click handler\n */\n onClick: (provider: string) => void;\n /**\n * get label for provider\n * @param {string} provider\n * @return {string}\n */\n getLabel: (provider: string) => string;\n}\n\n/**\n * SSO List component\n * @param {((event: React.MouseEvent) => void) | undefined} onClick\n * @param {(provider: string) => string} getLabel\n * @return {JSX.Element}\n * @constructor\n */\nconst SSOList: FC = ({ onClick, getLabel }) => {\n return (\n \n {_.map<[string, typeof FacebookFilled], ReactElement>(\n [\n [\"facebook\", FacebookFilled],\n [\"google\", GoogleCircleFilled],\n [\"microsoft\", AppstoreFilled],\n [\"apple\", AppleFilled]\n ],\n ([provider, Icon]) => (\n \n }\n block\n onClick={_.partial(onClick, provider)}\n >\n {getLabel(provider)}\n \n \n )\n )}\n \n );\n};\n\nexport default SSOList;\n","import { EventCategory } from \"@ctra/api\";\n\nimport {\n FarmEquipment,\n FarmEquipmentCircle,\n FarmEquipmentSRC,\n Feed,\n FeedCircle,\n FeedSRC,\n Housing,\n HousingCircle,\n HousingSRC,\n Management,\n ManagementCircle,\n ManagementSRC,\n Other,\n OtherCircle,\n OtherSRC,\n Weather,\n WeatherCircle,\n WeatherSRC\n} from \"../../elements\";\n\n/**\n * Map categories to icons\n */\nexport const eventCategoryMap: Record<\n EventCategory,\n [typeof FarmEquipment, typeof FarmEquipment, typeof FarmEquipmentSRC]\n> = {\n [EventCategory.farmEquipment]: [FarmEquipment, FarmEquipmentCircle, FarmEquipmentSRC],\n [EventCategory.other]: [Other, OtherCircle, OtherSRC],\n [EventCategory.weather]: [Weather, WeatherCircle, WeatherSRC],\n [EventCategory.feed]: [Feed, FeedCircle, FeedSRC],\n [EventCategory.housing]: [Housing, HousingCircle, HousingSRC],\n [EventCategory.management]: [Management, ManagementCircle, ManagementSRC]\n};\n","import { FC } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Direction } from \"@ctra/api\";\n\nimport styles from \"./Arrow.module.less\";\n\nimport { ArrowDownOutlined, ArrowUpOutlined, MinusOutlined } from \"../../../index\";\nimport { classname } from \"@ctra/utils\";\n\nexport interface ArrowProps {\n /**\n * arrow direction\n */\n direction: Direction;\n /**\n * arrow size\n */\n size?: \"small\" | \"large\";\n}\n\n/**\n * Arrows to indicate increase/decrease or no change\n * @param {Direction} direction\n * @param {\"small\" | \"large\" | undefined} size\n * @return {JSX.Element}\n * @constructor\n */\nconst Arrow: FC = ({ direction, size = \"large\" }) => {\n const Icon = {\n [Direction.increase]: ArrowUpOutlined,\n [Direction.decrease]: ArrowDownOutlined,\n [Direction.stagnate]: MinusOutlined\n }[direction];\n\n return (\n \n );\n};\n\nexport default Arrow;\n","import { ComponentProps, FC } from \"react\";\nimport { Row, Col } from \"antd\";\nimport * as _ from \"lodash\";\n\nimport { Typography } from \"../../../elements\";\nimport { classname, Nmbr, Nullable } from \"@ctra/utils\";\n\nimport styles from \"./Bar.module.less\";\n\nconst { Text } = Typography;\n\nexport interface BarProps extends ComponentProps {\n /**\n * bar label\n */\n value?: Nullable;\n /**\n * bar label\n */\n unit?: string;\n /**\n * width\n */\n width?: number;\n /**\n * variant\n */\n variant?: \"light\" | \"dark\" | \"neon\" | \"lightGray\" | \"darkGray\";\n}\n/**\n * Bar component for showing value change\n * @param {string} variant\n * @param {number | string | null | undefined} value\n * @param {string | undefined} unit\n * @param {string | undefined} className\n * @param {number} width\n * @param {Omit, \"variant\" | \"width\" | \"unit\" | \"className\" | \"value\">} rest\n * @returns {JSX.Element}\n * @constructor\n */\nconst Bar: FC = ({ variant = \"light\", value, unit, className, width = 100, ...rest }) => (\n \n \n \n {_.isNumber(value) && unit === \"$\" ? \"$\" : \"\"}\n {_.isNumber(value) ? Nmbr.format(value) : _.isNil(value) ? \"\\u00A0\" : value}\n \n {_.isNumber(value) && !!unit && unit !== \"$\" && (\n <>\n {\" \"}\n {unit}\n \n )}\n \n \n);\n\nexport default Bar;\n","import { FC } from \"react\";\nimport { Col, Row, Space } from \"antd\";\nimport { WarningOutlined, ClockCircleOutlined, MinusCircleOutlined } from \"@ant-design/icons\";\nimport * as _ from \"lodash\";\n\nimport { DataAvailability, Direction, MissingDataReason } from \"@ctra/api\";\nimport { classname, Nullable } from \"@ctra/utils\";\n\nimport { Typography } from \"../../../elements\";\nimport Arrow from \"../Arrow\";\nimport styles from \"./ValueChange.module.less\";\n\nconst { Text, Title } = Typography;\n\nexport interface ValueChangeProps {\n /**\n * the change value represented\n */\n value: Nullable;\n /**\n * suffix\n */\n suffix: Nullable;\n /**\n * increase / decrease status text\n */\n text?: string;\n /**\n * type\n */\n type?: Direction;\n /**\n * context info to make decisions about what to render\n */\n context?: {\n dataStatus: Nullable;\n missingDataReason: Nullable;\n };\n}\n\n/**\n * Numeric value change representation with suffix\n * @param {number | null | undefined} value\n * @param {string | null | undefined} suffix\n * @param {Direction | undefined} type\n * @param {string | undefined} text\n * @param {{dataStatus: Nullable, missingDataReason: Nullable} | undefined} context\n * @returns {JSX.Element}\n * @constructor\n */\nconst Metric: FC = ({ value, suffix, type, text, context }) => {\n const { dataStatus, missingDataReason } = _.defaultTo(context, {\n missingDataReason: null,\n dataStatus: null\n });\n\n /**\n * Pick an arrow icon\n * @type {JSX.Element | null}\n */\n const arrowIcon = _.cond([\n [_.matches(Direction.increase), () => ],\n [_.matches(Direction.decrease), () => ],\n [_.matches(Direction.stagnate), () => ],\n [_.stubTrue, _.constant(null)]\n ])(type);\n\n /**\n * Pick a \"selected\" icon\n * @type {JSX.Element | null}\n */\n const icon =\n arrowIcon ||\n _.cond([\n [_.matches(DataAvailability.beforeOnly), () => ],\n [_.matches(DataAvailability.afterOnly), _.constant(null)],\n [_.matches(MissingDataReason.TimeWindowNotPassed), _.constant(null)],\n [_.stubTrue, () => ]\n ])(missingDataReason || dataStatus);\n\n const hasRealValue = !!value && type !== Direction.stagnate;\n\n return (\n \n {icon}\n \n \n {hasRealValue && (\n \n \n {suffix === \"$\" ? (\n <Text>${_.round(value, 2)}</Text>\n ) : (\n <Space>\n <Text>{_.round(value, 2)}</Text>\n <Text size=\"lg\">{suffix}</Text>\n </Space>\n )}\n \n \n )}\n {text ? (\n \n {text}\n \n ) : null}\n \n \n \n );\n};\n\nexport default Metric;\n","import { FC, HTMLProps, ReactNode } from \"react\";\nimport { Typography } from \"antd\";\nimport * as _ from \"lodash\";\n\nimport { classname } from \"@ctra/utils\";\nimport styles from \"./WidgetWrapper.module.less\";\n\nconst { Text } = Typography;\n\nexport interface WidgetWrapperProps extends Omit, \"label\"> {\n /**\n * card label\n */\n label?: string | ReactNode;\n /**\n * scrollable card\n */\n scrollable?: boolean;\n /**\n * minimalistic card\n */\n minimalistic?: boolean;\n}\n\n/**\n * Widget wrapper component\n * @param {string | React.ReactElement> | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} label\n * @param {boolean | undefined} scrollable\n * @param {boolean | undefined} minimalistic\n * @param {string | undefined} className\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst WidgetWrapper: FC = ({\n label,\n scrollable,\n minimalistic,\n className,\n children,\n ...rest\n}) => (\n \n {label ? (\n
\n {_.isString(label) ? {label} : label}\n
\n ) : null}\n
\n
\n {children}\n
\n
\n \n);\n\nexport default WidgetWrapper;\n","import { FC } from \"react\";\n\nimport { Icon } from \"@ctra/components\";\nimport { EventOrigin } from \"@ctra/api\";\n\nimport styles from \"./EventOriginIcon.module.less\";\n\nexport interface EventIconProps {\n /**\n * type which defines automated or manual\n */\n type: EventOrigin;\n}\n\n/**\n * Event origin icon for showing automated or manual\n * @param {EventOrigin} type\n * @return {JSX.Element}\n * @constructor\n */\nconst EventIcon: FC = ({ type }) => {\n const eventIcon = () =>
{type === EventOrigin.automated ? \"A\" : \"M\"}
;\n\n return ;\n};\n\nexport default EventIcon;\n","import { ComponentProps, FC, useEffect, useRef } from \"react\";\nimport { Timeline, Row, Col, Space } from \"antd\";\nimport * as _ from \"lodash\";\nimport Markdown from \"react-markdown\";\n\nimport { EventOrigin } from \"@ctra/api\";\nimport { classname } from \"@ctra/utils\";\n\nimport { Typography } from \"../../../elements\";\nimport EventOriginIcon from \"../EventOriginIcon\";\nimport styles from \"./TimelineItem.module.less\";\n\nconst { Text } = Typography;\n\nexport interface TimelineItemProps extends ComponentProps {\n /**\n * title\n */\n title: string;\n /**\n * description\n */\n description: string;\n /**\n * date\n */\n date: string;\n /**\n * highlighted\n */\n highlighted?: boolean;\n /**\n * extra\n */\n extra?: React.ReactNode;\n /**\n * click handler\n */\n onClick?: () => void;\n /**\n * event type\n */\n eventOrigin: EventOrigin;\n}\n\n/**\n * Farm timeline item\n * @param {string} title\n * @param {string} description\n * @param {string} date\n * @param {boolean | undefined} highlighted\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} extra\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined | (React.ReactElement> & undefined) | (Iterable & undefined) | (React.ReactPortal & undefined)} children\n * @param {string | undefined} className\n * @param {(() => void) | undefined} onClick\n * @param {EventOrigin} eventOrigin\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst TimelineItem: FC = ({\n title,\n description,\n date,\n highlighted,\n extra,\n children,\n className,\n onClick,\n eventOrigin,\n ...rest\n}) => {\n const highlightedRef = useRef(null);\n\n useEffect(() => {\n if (highlighted && highlightedRef.current) {\n highlightedRef.current.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"nearest\"\n });\n }\n }, [highlighted]);\n\n return (\n \n \n \n \n \n {title}\n \n \n {extra && {extra}}\n \n \n {_.trim(description) && (\n \n \n {description}\n \n \n )}\n \n \n \n {date}\n \n \n \n \n \n );\n};\n\nexport default TimelineItem;\n","import { FC, HTMLProps, ReactNode } from \"react\";\nimport { Col, Row, Space, Typography } from \"antd\";\nimport Markdown from \"react-markdown\";\nimport moment from \"moment\";\nimport _ from \"lodash\";\n\nimport { classname } from \"@ctra/utils\";\nimport { EventOrigin } from \"@ctra/api\";\n\nimport { ThemedTitle } from \"../../../elements/typography/Title\";\nimport EventOriginIcon from \"../EventOriginIcon\";\nimport styles from \"./Header.module.less\";\n\nconst { Text } = Typography;\n\nexport interface HeaderProps extends HTMLProps {\n /**\n * title of the header\n */\n title: string;\n /**\n * description of the header\n */\n description?: string;\n /**\n * date\n */\n date: moment.Moment;\n /**\n * extra content\n */\n extra?: ReactNode;\n /**\n * toolbar\n */\n toolbar?: ReactNode;\n /**\n * icon\n */\n icon: ReactNode;\n /**\n * event type\n */\n eventOrigin: EventOrigin;\n /**\n * event source\n */\n eventSource?: string;\n}\n\n/**\n * Header for farm timeline page\n * @param {string} title\n * @param {string | undefined} description\n * @param {moment.Moment} date\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} icon\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} extra\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} toolbar\n * @param {string | undefined} className\n * @param {EventOrigin} eventOrigin\n * @param {string | undefined } eventSource\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst Header: FC = ({\n title,\n description,\n date,\n icon,\n extra,\n toolbar,\n className,\n eventOrigin,\n eventSource,\n ...rest\n}) => {\n return (\n
\n \n {icon}\n \n \n \n \n {title}\n \n \n {toolbar && {toolbar}}\n \n \n {!!description && _.trim(description) && (\n \n \n \n {description}\n \n \n {date.format(\"LL\")}\n \n {date.fromNow()}\n \n \n \n \n )}\n {extra && {extra}}\n \n \n \n \n \n {eventSource}\n \n \n \n \n \n
\n );\n};\n\nexport default Header;\n","import { ComponentProps, FC } from \"react\";\nimport { Row, Col, Tabs, Typography, Space, Grid } from \"antd\";\nimport moment from \"moment\";\nimport * as _ from \"lodash\";\n\nimport { classname } from \"@ctra/utils\";\nimport styles from \"./DateRangePicker.module.less\";\n\nconst { Text } = Typography;\n\nexport interface DateRangePickerProps extends Omit, \"onChange\"> {\n /**\n * center date to manipulate\n */\n center: moment.Moment;\n /**\n * list of ISO time periods\n */\n durations: Array | Array<{ duration: string; label: string }>;\n /**\n * current value\n */\n value: string;\n /**\n * change handler\n */\n onChange: (period: string) => void;\n /**\n * labels\n */\n labels: {\n before: string;\n after: string;\n };\n}\n\n/**\n * Date range picker component\n * @param {Array | Array<{duration: string, label: string}>} durations\n * @param {(period: string) => void} onChange\n * @param {moment.Moment} center\n * @param {string} value\n * @param {{before: string, after: string}} labels\n * @param {string | undefined} className\n * @param {Omit, \"onChange\" | \"center\" | \"durations\" | \"className\" | \"value\" | \"labels\">} rest\n * @returns {JSX.Element}\n * @constructor\n */\nconst DateRangePicker: FC = ({\n durations,\n onChange,\n center,\n value,\n labels,\n className,\n ...rest\n}) => {\n const valueDuration = moment.duration(value);\n const { md } = Grid.useBreakpoint();\n\n /**\n * Start and end labels\n */\n const [startLabel, endLabel] = [\n center.clone().subtract(valueDuration).format(\"LL\"),\n center.clone().add(valueDuration).format(\"LL\")\n ];\n\n /**\n * Center label\n * @type {string}\n */\n const centerLabel = center.format(\"LL\");\n\n /**\n * Make tabs\n * @type {{key: string, label: string}[]}\n */\n const tabs = _.map(durations, (duration) => {\n if (typeof duration === \"string\") {\n return {\n key: duration,\n label: moment.duration(duration).humanize()\n };\n } else {\n const { duration: durationString, label } = duration;\n\n return {\n key: durationString,\n label\n };\n }\n });\n\n return (\n \n \n
\n \n {labels.before}\n \n {startLabel} - {centerLabel}\n \n \n
\n \n \n
\n \n {labels.after}\n \n {centerLabel} - {endLabel}\n \n \n
\n \n \n \n \n \n );\n};\n\nexport default DateRangePicker;\n","import { FC, createContext, useContext, useState, ComponentProps, useEffect } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Spin } from \"antd\";\n\ninterface ContextType {\n api: {\n /**\n * Toggle spinner\n * @param {string} id\n * @param {boolean} on\n * @param {Omit, \"spinning\">} props\n */\n toggle: (id: string, on: boolean, props?: Omit, \"spinning\">) => void;\n };\n on: boolean;\n}\n\n/**\n * Default context\n * @type {React.Context}\n */\nconst DefaultContext = createContext({\n api: {\n toggle: _.noop\n },\n on: false\n});\n\n/**\n * Spinner provider\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @return {JSX.Element}\n */\nconst _SpinnerProvider: FC = ({ children }) => {\n const [queue, setQueue] = useState, \"spinning\">]>>([]);\n const [on, setOn] = useState(false);\n const [props, setProps] = useState, \"spinning\">>({});\n\n /**\n * Toggle spinner\n * @param {string} id\n * @param {boolean} on\n * @param {Omit, \"spinning\"> | undefined} props\n */\n const toggle: ContextType[\"api\"][\"toggle\"] = (id, on, props) => {\n setQueue((prev) => {\n const existing = _.find(prev, [0, id]);\n\n return on\n ? existing\n ? prev\n : [...prev, [id, props ?? {}]]\n : (_.without(prev, _.find(prev, [0, id])) as typeof prev);\n });\n };\n\n useEffect(() => {\n if (queue.length) {\n const [, props] = queue[0];\n\n setProps(props);\n setOn(true);\n } else {\n setOn(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [queue.length]);\n\n return (\n \n \n {children}\n \n \n );\n};\n\nexport const SpinnerContext = {\n Provider: _SpinnerProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Use spinner hook\n * @return {ContextType}\n */\nexport const useSpinner = (): ContextType => useContext(DefaultContext);\n","import { Nullable } from \"@ctra/utils\";\n\nimport { version } from \"../../package.json\";\n\n/**\n * Get the version from the package.json\n * @return {number}\n */\nexport const getVersion = (): number => {\n return parseFloat(version.replace(/\\./g, \"\"));\n};\n\n/**\n * Get the storage key prefix\n * @param {boolean} persist\n * @return {`persist:ctra.subscriptions.v${number}` | `ctra.subscriptions.v${number}`}\n */\nexport const getStorageKey = ({ persist }: { persist: boolean } = { persist: false }): string => {\n return `${persist ? \"persist:\" : \"\"}ctra.components.v${getVersion()}`;\n};\n\n/**\n * Check if the key matches the current version\n * @param {Nullable} key\n * @return {key is string}\n */\nconst _matches = (key: Nullable): key is string => {\n const matchesComponents = key && key.match(/^ctra\\.components/);\n const matchesVersion = key && key.match(new RegExp(getVersion().toString(), \"gi\"));\n\n return !!matchesComponents && !matchesVersion;\n};\n\n/**\n * Purge the storage\n */\nexport const purgeStaleData: () => void = () => {\n for (let i = 0; i < sessionStorage.length; i++) {\n const key = sessionStorage.key(i);\n\n if (_matches(key)) {\n sessionStorage.removeItem(key);\n }\n }\n\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n\n if (_matches(key)) {\n localStorage.removeItem(key);\n }\n }\n};\n","import React, { FC, useEffect, useState, createContext, useContext } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Nullable, Cookies } from \"@ctra/utils\";\nimport { getStorageKey } from \"../../utils/versioning\";\n\ninterface ContextType {\n event: Nullable<{ start_time: string }>;\n meta: {\n isLoading: boolean;\n };\n api: {\n getEvent: () => void;\n setEvent: (eventID: string) => void;\n };\n}\n\nconst DefaultContext = createContext({\n event: null,\n meta: {\n isLoading: false\n },\n api: {\n getEvent: _.noop,\n setEvent: _.noop\n }\n});\n\n/**\n * Calendly event context provider\n */\nconst _CalendlyAppointmentProvider: FC = ({ children }) => {\n const [isLoading, setIsLoading] = useState(false);\n const [eventInfo, setEventInfo] = useState(null);\n\n const tkn =\n \"eyJraWQiOiIxY2UxZTEzNjE3ZGNmNzY2YjNjZWJjY2Y4ZGM1YmFmYThhNjVlNjg0MDIzZjdjMzJiZTgzNDliMjM4MDEzNWI0IiwidHlwIjoiUEFUIiwiYWxnIjoiRVMyNTYifQ.eyJpc3MiOiJodHRwczovL2F1dGguY2FsZW5kbHkuY29tIiwiaWF0IjoxNzEzNTE3MDM2LCJqdGkiOiI1N2VjY2FkNS0yMjk5LTRhYzUtOTYyNS1lOTVmYzZkNjQ3NzAiLCJ1c2VyX3V1aWQiOiI2ODA2MWQwMC00YTNiLTQ2MmUtOGM2YS0xZmQwOTFmM2EyYzIifQ.8denerJtVnX2D6CohAurfb5NX6FiVm8AjOv_V7HHcgiKaNuilU1SeD1U3ouYmzScrHMVXehsZPkKbzXZ4976eQ\";\n\n /**\n * Set event details\n * @return {Promise}\n */\n const getEvent = async () => {\n const key = `${getStorageKey()}.appointment`;\n const eventID = Cookies.get(key);\n\n setIsLoading(true);\n\n fetch(`https://api.calendly.com/scheduled_events/${eventID}`, {\n headers: { Authorization: `Bearer ${tkn}` }\n })\n .then((response) => response.json())\n .then(({ resource }) => setEventInfo(resource))\n .finally(() => setIsLoading(false));\n };\n\n /**\n * Set event details\n * @param {string} eventID\n */\n const setEvent = (eventID: string) => {\n const key = `${getStorageKey()}.appointment`;\n Cookies.set(key, eventID);\n\n getEvent();\n };\n\n useEffect(() => {\n const key = `${getStorageKey()}.appointment`;\n const eventID = Cookies.get(key);\n\n if (eventID) {\n getEvent();\n }\n }, []);\n\n return (\n \n {children}\n \n );\n};\n\nexport const CalendlyAppointmentContext = {\n Provider: _CalendlyAppointmentProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Use calendly event\n */\nexport const useCalendlyAppointment = (): ContextType => useContext(DefaultContext);\n","import { useLocation } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\n\nimport { Enterprise, EnterpriseAppState, GenericInsightEntity } from \"@ctra/api\";\nimport { Nullable } from \"@ctra/utils\";\n\ntype NavigationAPI = {\n previous?: () => void;\n next?: () => void;\n};\n\nexport const useInsightModalNavigation = (): NavigationAPI => {\n const { search, pathname } = useLocation();\n const searchParams = new URLSearchParams(search);\n\n /**\n * Insight to pull from the insights\n */\n const insightID: Nullable = Number(searchParams.get(\"genericInsightID\"));\n\n /**\n * Insight list reference for navigation\n */\n const list: Nullable = searchParams.get(\"insightList\");\n\n /**\n * Get insight lists that match the list name\n */\n const insightList = useSelector>((state) => {\n return list ? (Enterprise.entities.getInsightList(state, { list }) as Array) : [];\n });\n\n /**\n * The index of the current insight in the list\n */\n const currentIndex = _.findIndex(insightList, (item) => item.id === insightID);\n\n /**\n * Is true if the current index is great than zero\n */\n const hasPrevious = currentIndex > 0;\n\n /**\n * Is true if the index of the current insight + 1 is less than the number of insights in the list\n */\n const hasNext = currentIndex + 1 < insightList.length;\n\n /**\n * Jump to specific index\n * @param index\n */\n const jump = (index: number) => {\n if (insightList[index]) {\n searchParams.set(\"genericInsightID\", insightList[index].id as unknown as string);\n\n Enterprise.history.push({\n pathname,\n search: searchParams.toString()\n });\n }\n };\n\n /**\n * Go to the previous insight\n */\n const previous = hasPrevious\n ? (): void => {\n jump(currentIndex - 1);\n }\n : void 0;\n\n /**\n * Go to the next insight\n */\n const next = hasNext\n ? (): void => {\n jump(currentIndex + 1);\n }\n : void 0;\n\n return {\n previous,\n next\n };\n};\n","export enum GACategories {\n help = \"Help\",\n productUpdates = \"Product updates\",\n sidebarMenu = \"Sidebar menu\",\n userPreferencesSelector = \"User preferences selector\",\n fab = \"Floating action button\",\n mainFarmDropdown = \"Main farm dropdown\",\n gettingStarted = \"Getting started\"\n}\n\nexport enum GAActions {\n backToAllFarms = \"Back to all farms\",\n collapseSidebar = \"Collapse sidebar\",\n expandSidebar = \"Expand sidebar\",\n goToAnalytics = \"Go to Analytics\",\n goToIOFC = \"Go to IOFC\",\n goToHelpCenter = \"Go to Help Center\",\n goToInsights = \"Go to Insights\",\n goToOverview = \"Go to Overview\",\n goToSettings = \"Go to Settings\",\n goToMyConnections = \"Go to My Connections\",\n goToTimeline = \"Go to Timeline\",\n goToSummaries = \"Go to Farm Summaries\",\n openAccountDropdown = \"Open account dropdown\",\n openChat = \"Open chat\",\n closeChat = \"Close chat\",\n openFarmSelector = \"Open farm selector\",\n closeFarmSelector = \"Close farm selector\",\n openUserPreferencesSelector = \"Open user preferences selector\",\n selectLanguage = \"Select language\",\n selectUnitSystem = \"Select unit system\",\n openFab = \"Open FAB\",\n closeFab = \"Close FAB\",\n dragFab = \"Drag FAB out of the way\"\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Xs\":\"Xs--11YpR\",\"Sm\":\"Sm--6Bkb8\",\"Md\":\"Md--kwDBK\",\"Lg\":\"Lg--2ZX-i\",\"Xl\":\"Xl--317bl\",\"Xxl\":\"Xxl--3ODEV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Input\":\"Input--2MxXS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Flag\":\"Flag--18NNL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Switch\":\"Switch--1KyTi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"CheckboxMenu\":\"CheckboxMenu--1XsXk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Panel\":\"Panel--1OSOd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ChartHeader\":\"ChartHeader--3gRlt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Select\":\"Select--mII0-\"};","import { useContext, createContext, ReactElement, PropsWithChildren, ComponentProps, Consumer } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport {\n Enterprise,\n EnterpriseAppState,\n Events,\n EventListQueryParams,\n FarmEntity,\n GroupedEventList,\n ExtendedEventList,\n ChartEventsList\n} from \"@ctra/api\";\n\nimport { Debug, isDispatched, isPending, Optional } from \"@ctra/utils\";\nimport { useDeepCompareEffect } from \"use-deep-compare\";\n\ninterface ProviderProps extends Partial {\n farmID?: FarmEntity[\"id\"];\n grouped?: boolean;\n limit?: number;\n}\n\ntype ContextType> = {\n events: T;\n selectedEvents: ChartEventsList;\n meta: {\n count: number;\n isLoading: boolean;\n hash: string;\n };\n};\n\n/**\n * Make a default context for event list values\n */\nconst DefaultContext = createContext>({\n events: {},\n selectedEvents: [],\n meta: {\n count: 0,\n isLoading: true,\n hash: \"\"\n }\n});\n\n/**\n * Get a list of events from the back-end\n * @param farmID\n * @param children\n * @param grouped\n * @param limit\n * @param params\n */\nconst _EventListProvider = ({\n farmID,\n children,\n grouped,\n limit,\n ...params\n}: PropsWithChildren): ReactElement => {\n const dispatch = useDispatch();\n const hash = Events.utils.makeEventHash(farmID, params);\n\n /**\n * Get the event count for the given list\n */\n const count = useSelector((state) =>\n Enterprise.entities.getEventCount(state, { hash })\n );\n\n /**\n * Pull the events in the requested format (plain or grouped) from the store\n */\n const events = useSelector((state) => {\n Debug.farmTimeline.info(\"Retrieving event list from store\", { hash, _grouped: grouped, limit, params });\n\n return Enterprise.entities.getEventList(state, { hash, grouped, limit, exclude: params.exclude });\n });\n\n const selectedEvents: ChartEventsList = [];\n\n /**\n * Tell if the events have already been fetched.\n */\n const hasFetched = useSelector((state) =>\n isDispatched(state, Events.types.FETCH_EVENTS, { primaryValue: hash })\n );\n\n /**\n * Tell whether the events are loading\n */\n const isLoading = useSelector((state) =>\n isPending(state, Events.types.FETCH_EVENTS, { primaryValue: hash })\n );\n\n useDeepCompareEffect(() => {\n if (farmID && !hasFetched) {\n Debug.farmTimeline.info(\"Fetching event list\", { farmID, params, hash });\n dispatch(Events.actions.fetchEvents.start(farmID, params));\n }\n }, [dispatch, farmID, hasFetched, params, hash]);\n\n return (\n \n {children}\n \n );\n};\n\n/**\n * Make a typed consumer\n * @param children\n */\nconst _EventListConsumer = ({\n children\n}: ComponentProps>>): ReactElement => (\n \n {children as ComponentProps[\"children\"]}\n \n);\n\nexport const EventListContext = {\n Provider: _EventListProvider,\n Consumer: _EventListConsumer\n};\n\n/**\n * Make a hook to access the context in FCs\n */\nexport function useEventList(): ContextType {\n return useContext(DefaultContext) as ContextType;\n}\n","import { createContext, FC, useContext } from \"react\";\nimport { useLocation, useRouteMatch } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\n\nimport { isFulfilled, isRejected, Nullable, parseQuery } from \"@ctra/utils\";\n\nimport {\n Enterprise,\n EnterpriseAppState,\n EventEntity,\n Events,\n FarmEntity,\n NormalizedEvent,\n TimelineEventFormValues\n} from \"@ctra/api\";\n\nimport { useFarm } from \"@farms\";\nimport { Routes } from \"@routes\";\n\nexport enum CreateEventURLParams {\n createEventKey = \"createEvent\",\n editEventKey = \"editEvent\",\n farm = \"farm\"\n}\n\ninterface BaseContext {\n api: {\n open: (\n eventListHash: EventEntity[\"id\"],\n farmID?: FarmEntity[\"id\"],\n action?: Exclude\n ) => void;\n close: () => void;\n };\n searchParams: {\n eventListHash: Nullable;\n farmID: Nullable;\n };\n meta: {\n isDefault: boolean;\n eventID: Nullable;\n isEventCreated: boolean;\n isEventUpdated: boolean;\n isCreateEventFailed: boolean;\n isUpdateEventFailed: boolean;\n };\n}\n\nconst DefaultContext = createContext({\n api: {\n open: _.noop,\n close: _.noop\n },\n searchParams: {\n eventListHash: null,\n farmID: null\n },\n meta: {\n isDefault: true,\n eventID: null,\n isEventCreated: false,\n isEventUpdated: false,\n isCreateEventFailed: false,\n isUpdateEventFailed: false\n }\n});\n\n/**\n * Context provider to help creating an Ask Ida tracker\n * @param children\n */\nconst _CreateEventDialogContextProvider: FC = ({ children }) => {\n const { search, pathname } = useLocation();\n const searchParams = new URLSearchParams(search);\n const { farm: farmContext } = useFarm();\n const match = useRouteMatch<{ id: EventEntity[\"id\"] }>(`${Routes.app.timeline.event.index}*`);\n const eventID = match?.params.id;\n\n const {\n meta: { isDefault }\n } = useCreateEventDialog();\n\n if (!isDefault) {\n console.error(\"Do not nest CreateEventDialogContext.Provider, it will cause problems.\");\n }\n\n const {\n createEvent,\n editEvent,\n farm: farmURIReference\n } = parseQuery(\n searchParams,\n CreateEventURLParams.createEventKey,\n CreateEventURLParams.editEventKey,\n CreateEventURLParams.farm\n );\n\n const farmID = _.defaultTo(farmURIReference, farmContext?.id);\n\n /**\n * Tell if the event is created\n */\n const [isEventCreated, createdEventPayload] = useSelector<\n EnterpriseAppState,\n [boolean, TimelineEventFormValues | NormalizedEvent]\n >((state) => isFulfilled(state, Events.types.CREATE_EVENT, { withPayload: true }));\n\n /**\n * Tell if the event is updated\n */\n const [isEventUpdated, updatedEventPayload] = useSelector<\n EnterpriseAppState,\n [boolean, TimelineEventFormValues | NormalizedEvent | null]\n >((state) => {\n return eventID\n ? isFulfilled(state, Events.types.UPDATE_EVENT, { withPayload: true, primaryValue: eventID })\n : [false, null];\n });\n\n /**\n * Tell if creating the event is failed\n * @type {boolean}\n */\n const isCreateEventFailed = useSelector((state) =>\n isRejected(state, Events.types.CREATE_EVENT)\n );\n\n /**\n * Tell if updating the event is failed\n * @type {boolean}\n */\n const isUpdateEventFailed = useSelector((state) =>\n eventID ? isRejected(state, Events.types.UPDATE_EVENT, { primaryValue: eventID }) : false\n );\n\n /**\n * Open the dialog (using the given origin)\n * @param {EventEntity[\"id\"]} eventListHash\n * @param {FarmEntity[\"id\"]} farmID\n * @param {Exclude} action\n */\n const open = (\n eventListHash: EventEntity[\"id\"],\n farmID?: FarmEntity[\"id\"],\n action: Exclude = CreateEventURLParams.createEventKey\n ) => {\n searchParams.set(action, eventListHash);\n\n if (farmID) {\n searchParams.set(CreateEventURLParams.farm, farmID.toString());\n }\n\n Enterprise.history.push({ pathname, search: searchParams.toString() });\n };\n\n /**\n * Close the dialog\n */\n const close = () => {\n searchParams.delete(CreateEventURLParams.createEventKey);\n searchParams.delete(CreateEventURLParams.editEventKey);\n searchParams.delete(CreateEventURLParams.farm);\n\n Enterprise.history.push({ pathname, search: searchParams.toString() });\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport const CreateEventDialogContext = {\n Provider: _CreateEventDialogContextProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * @returns {void}\n */\nexport const useCreateEventDialog = (): BaseContext => useContext(DefaultContext);\n","import { FC, createContext, useContext, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport { Enterprise, EnterpriseAppState, EventEntity, ExtendedEventEntity } from \"@ctra/api\";\nimport { Optional } from \"@ctra/utils\";\nimport { EventBase, GenericEvent } from \"@events\";\nimport { useDeepCompareEffect } from \"use-deep-compare\";\n\ninterface ProviderProps {\n /**\n * Event ID\n */\n eventID: EventEntity[\"id\"];\n}\n\n/**\n * Base meta which contains the permanent keys\n */\ntype BaseMeta = {\n isLoading: boolean;\n};\n\n/**\n * Base context with optional event and meta with added keys\n */\ntype BaseContext> = undefined> = {\n event?: ExtendedEventEntity;\n meta: M extends undefined ? BaseMeta : BaseMeta & M;\n};\n\ntype ContextType<\n /**\n * event interface to implement\n */\n C extends EventBase = EventBase,\n /**\n * props passed to the provider ending up in the context as metadata\n */\n M extends Optional> = undefined\n> = C & {\n event: ExtendedEventEntity;\n} & BaseContext;\n\nconst DefaultContext = createContext({ meta: { isLoading: true } });\n\n/**\n * Event context provider\n * @param children\n * @param eventID\n * @private\n */\nconst _EventProvider: FC = ({ eventID, children }) => {\n let serializedEvent: ReturnType = {} as ReturnType<\n typeof GenericEvent.serialize\n >;\n\n /**\n * Get the event from the store\n */\n const event = useSelector(\n (state) => Enterprise.entities.getEvent(state, { id: eventID }) as ExtendedEventEntity\n );\n\n try {\n if (event) {\n serializedEvent = GenericEvent.serialize(GenericEvent.create(event));\n }\n } catch (e) {\n console.error(e, event);\n }\n\n /**\n * Make an API from the event\n */\n const [apiState, setApiState] = useState>(serializedEvent);\n\n useDeepCompareEffect(() => {\n if (event) {\n setApiState(GenericEvent.serialize(GenericEvent.create(event)));\n }\n }, [event]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const EventContext = {\n Provider: _EventProvider,\n Consumer: DefaultContext.Consumer\n};\n\nexport const useEvent = <\n C extends EventBase = EventBase,\n M extends Optional> = undefined\n>(): M extends undefined ? ContextType : ContextType =>\n useContext(DefaultContext) as M extends undefined ? ContextType : ContextType;\n","import { EventCategory } from \"@ctra/api\";\n\n/**\n * All the categories and subcategories\n */\nconst categories = [\n {\n id: EventCategory.feed,\n children: [\n {\n id: \"Ration\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"FeedMixing\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"Concentrates\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"FeedingSchedule\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"FeedAccessibility\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"Grazing\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"Pasture\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"WaterAvailability\",\n scope: [\"Farm\", \"HerdGroup\"]\n }\n ]\n },\n {\n id: EventCategory.housing,\n children: [\n {\n id: \"StockingDensity\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"Bedding\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"GroupChange\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"BarnAdjustment\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"NewBarn\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"NewCubicles\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"HoofBath\",\n scope: [\"Farm\", \"HerdGroup\"]\n }\n ]\n },\n {\n id: EventCategory.farmEquipment,\n children: [\n {\n id: \"AutomatedFeeding\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"AutomatedFeedPushing\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"VentilationSystem\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"MilkSystemProblem\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"ManureSystemProblem\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"FeedingSystemProblem\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"MilkRobot\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"PowerOutage\",\n scope: [\"Farm\", \"HerdGroup\"]\n }\n ]\n },\n {\n id: EventCategory.weather,\n children: [\n {\n id: \"HeatStress\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"HeavyRainfall\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"Cold\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"StrongWinds\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"TemperatureChange\",\n scope: [\"Farm\", \"HerdGroup\"]\n }\n ]\n },\n {\n id: EventCategory.management,\n children: [\n {\n id: \"NewFarmEmployee\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"ProtocolChange\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"Agitation\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"ManagementError\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"HoofTrimming\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"Vaccinations\",\n scope: [\"Farm\", \"HerdGroup\"]\n }\n ]\n },\n {\n id: EventCategory.other,\n children: [\n {\n id: \"DiseaseOutbreak\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"InternetOutage\",\n scope: [\"Farm\", \"HerdGroup\"]\n },\n {\n id: \"Other\",\n scope: [\"Farm\", \"HerdGroup\"]\n }\n ]\n }\n];\n\nexport default categories;\n","import { createContext, FC, useContext } from \"react\";\nimport categories from \"./categories\";\n\ninterface BaseContext {\n meta: {\n categories: typeof categories;\n };\n}\n\nconst DefaultContext = createContext({\n meta: {\n categories: []\n }\n});\n\n/**\n * Manage form changes via a Provider\n * @param children\n */\nconst _CreateEventContextProvider: FC = ({ children }) => {\n return (\n \n {children}\n \n );\n};\n\nexport const CreateEventContext = {\n Provider: _CreateEventContextProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Hook for create event context\n * @returns {void}\n */\nexport const useCreateEvent = (): BaseContext => useContext(DefaultContext);\n","/* eslint @typescript-eslint/no-explicit-any: 0 */\n\nimport { ComponentType, FC } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { EventEntity, Enterprise as App, EventScope, EventContext } from \"@ctra/api\";\nimport { memoize, TS } from \"@ctra/utils\";\nimport { i18nTranslate, Enterprise as Content } from \"@ctra/i18n\";\nimport { DownOutlined } from \"@ctra/components\";\n\nimport { GenericEventCta } from \"@events\";\nimport moment from \"moment\";\n\nexport enum EventOrigin {\n enterprise = \"enterprise\",\n classic = \"classic\"\n}\n\n/**\n * Generic Events class to give a structured API on the event entities\n */\nclass EventBase {\n /**\n * The underlying event entity\n */\n protected entity: EventEntity;\n\n constructor(event: EventEntity) {\n this.entity = event;\n }\n\n /**\n * Get the metadata for the events\n */\n @memoize\n getContext(): Record {\n return _.defaultTo(this.entity.context, {});\n }\n\n /**\n * Get event subCategory\n * @param params {{}}\n */\n @memoize\n getTitle(params?: Record): string {\n const {\n entity: { title: titleCopy }\n } = Content.events;\n\n const {\n subCategory,\n title,\n source: { type: sourceType },\n scope: { type: scopeType, ids: scopeIDs }\n } = this.entity;\n\n let herdGroup = null;\n\n if ([EventScope.herdGroup, EventScope.pen].includes(scopeType)) {\n const herdGroups = _.pick(_.keyBy(App.entities.getHerdGroups(App.store.getState()), \"name\"), scopeIDs);\n const pens = _.pick(_.keyBy(App.entities.getPens(App.store.getState()), \"name\"), scopeIDs);\n const merged = _.merge(herdGroups, pens);\n\n if (!_.isEmpty(merged)) {\n herdGroup = _.join(_.map(merged, \"name\"), \", \");\n }\n }\n\n return i18nTranslate(titleCopy(_.defaultTo(subCategory, \"Other\")), {\n title: _.defaultTo(title, null),\n scope: [EventScope.herdGroup, EventScope.pen].includes(scopeType) ? EventScope.herdGroup : scopeType,\n herdGroup,\n sourceType,\n ...params\n });\n }\n\n /**\n * Get event description\n * @param params {{}}\n */\n @memoize\n getDescription(params?: Record): string {\n const {\n description: originalDescription,\n source: { type }\n } = this.entity;\n\n const {\n entity: { description }\n } = Content.events;\n\n return i18nTranslate(description(type), {\n ...params,\n originalDescription: _.trim(originalDescription) || null\n });\n }\n\n /**\n * Events have different components used for rendering it.\n * @todo override in subclass when necessary\n */\n @memoize\n getComponents(): Record<\"View\" | \"CTA\" | \"ExpandIcon\" | \"Page\", ComponentType | FC> {\n return {\n View: () => null,\n CTA: GenericEventCta,\n ExpandIcon: DownOutlined,\n Page: () => null\n };\n }\n\n /**\n * Start moment\n */\n @memoize\n getStartMoment(): moment.Moment {\n return TS.asMoment(this.entity.startAt);\n }\n\n /**\n * End moment\n */\n @memoize\n getEndMoment(): moment.Moment {\n return TS.asMoment(this.entity.endAt);\n }\n\n /**\n * Certain entities of a type may not be supported, while some others are\n * @example GenericInsight: not all insight types are registered\n * @todo implement in subclass\n */\n isSupported(): boolean {\n return true;\n }\n}\n\nexport { EventBase };\n","import moment from \"moment\";\nimport * as _ from \"lodash\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useEffect, createContext, useContext, FC, useRef } from \"react\";\n\nimport {\n AnnotationList,\n AnnotationResults,\n AnnotationState,\n Enterprise,\n EnterpriseAppState,\n ImpactTracking\n} from \"@ctra/api\";\nimport { isPending, isRejected } from \"@ctra/utils\";\n\ninterface ContextType {\n results: AnnotationResults[\"results\"][\"timeSpan\"];\n otherResults: AnnotationResults[\"results\"][\"timeSpan\"];\n meta: {\n isLoading: boolean;\n isRejected: boolean;\n isProcessing: boolean;\n isAdding: boolean;\n isIntervalSupported: boolean;\n };\n}\n\n/**\n * Impact tracking context\n */\nexport const DefaultImpactTrackingContext = createContext({\n results: {},\n otherResults: {},\n meta: {\n isLoading: false,\n isRejected: false,\n isProcessing: false,\n isAdding: false,\n isIntervalSupported: false\n }\n});\n\n/**\n * Annotation Context that takes in ID and returns results for it\n * @param {string} annotationID\n * @param {string | undefined} timeSpan\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @return {JSX.Element}\n * @constructor\n */\nconst ImpactTrackingContextProvider: FC<{ annotationID: AnnotationResults[\"id\"]; timeSpan?: string }> = ({\n annotationID,\n timeSpan,\n children\n}) => {\n const dispatch = useDispatch();\n\n /**\n * Get the list of annotations\n */\n const annotationList = useSelector((state) =>\n Enterprise.entities.getAnnotationList(state)\n );\n\n const isLoading = useSelector((state) =>\n isPending(state, ImpactTracking.types.FETCH_ANNOTATION_RESULTS, { primaryValue: annotationID })\n );\n\n const isFailed = useSelector((state) =>\n isRejected(state, ImpactTracking.types.FETCH_ANNOTATION_RESULTS, { primaryValue: annotationID })\n );\n\n const isAdding = useSelector((state) =>\n isPending(state, ImpactTracking.types.ADD_METRIC, { primaryValue: annotationID })\n );\n\n /**\n * Check if annotation is in processing state\n */\n const isProcessing = _.isEqual(_.get(annotationList, [annotationID, \"state\"]), AnnotationState.processing);\n\n /**\n * This will ensure it only triggers the dispatch once, when its in processing\n */\n const processingTrigger = useRef(isProcessing);\n\n useEffect(() => {\n if (isProcessing) {\n processingTrigger.current = true;\n }\n }, [isProcessing]);\n\n /**\n * Dispatch if not already fetched, or if its in processing state\n */\n useEffect(() => {\n if (!annotationList[annotationID] || processingTrigger.current) {\n dispatch(ImpactTracking.actions.fetchAnnotationResults.start(annotationID));\n processingTrigger.current = false;\n }\n }, [annotationID, annotationList, dispatch]);\n\n /**\n * Convert moment to days e.g. P3D to 3\n */\n const days = moment.duration(timeSpan).asDays();\n\n /**\n * supported time intervals\n */\n const supportedIntervals = _.get(annotationList, [annotationID, \"timeSpanDays\"]);\n /**\n * Check if interval is actually supported from BE\n */\n const isIntervalSupported = _.includes(supportedIntervals, days);\n\n /**\n * results for a particular time period\n */\n const allResults = _.get(annotationList, [annotationID, \"results\", days]);\n\n /**\n * Hard coded data descriptors that are to be shown as 'what else has changed'\n * DIM and THI\n * @type {string[]}\n */\n const otherDescriptors = [\n \"60997b74ee5779d6f5a3a97f\",\n \"653aaf7288e5d7525a8f4aa0\", // Average DIM\n \"64df384495995c0be51eeffd\"\n ];\n\n const results = _.omit(allResults, otherDescriptors);\n const otherResults = _.pick(allResults, otherDescriptors);\n\n return (\n \n {children}\n \n );\n};\n\nexport const ImpactTrackingContext = {\n Provider: ImpactTrackingContextProvider,\n Consumer: DefaultImpactTrackingContext.Consumer\n};\n\n/**\n * Hook for impact tracking context\n * @returns {void}\n */\nexport const useImpactTracking = (): ContextType => useContext(DefaultImpactTrackingContext);\n","import { FC, lazy, useEffect } from \"react\";\nimport { useRouteMatch, useLocation } from \"react-router-dom\";\n\nimport { MediaQueryDynamicImport, message } from \"@ctra/components\";\nimport { useTranslation, Enterprise as Content } from \"@ctra/i18n\";\nimport { EventEntity } from \"@ctra/api\";\n\nimport { FarmContext } from \"@farms\";\nimport { Routes } from \"@routes\";\n\nimport { CreateEventURLParams, EventContext, useCreateEventDialog } from \"../../providers\";\n\nconst CreateEventWizardV2 = lazy(() => import(\"../WizardV2\"));\n\nconst FarmWrapper: FC = ({ children }) => {\n const {\n searchParams: { farmID }\n } = useCreateEventDialog();\n\n return farmID ? (\n \n {children}\n \n ) : (\n <>{children}\n );\n};\n\nconst EventWrapper: FC = ({ children }) => {\n const match = useRouteMatch<{ id: EventEntity[\"id\"] }>(`${Routes.app.timeline.event.index}*`);\n const { search } = useLocation();\n const searchParams = new URLSearchParams(search);\n\n return searchParams.has(CreateEventURLParams.editEventKey) && match?.params.id ? (\n {children}\n ) : (\n <>{children}\n );\n};\n\n/**\n * Create a timeline event\n * @constructor\n */\nconst CreateEvent: FC = () => {\n const { t } = useTranslation();\n\n const {\n api: { close },\n searchParams: { eventListHash },\n meta: { isEventCreated, isEventUpdated, isCreateEventFailed, isUpdateEventFailed }\n } = useCreateEventDialog();\n\n const {\n timeline: {\n createEvent: { success, fail }\n }\n } = Content;\n\n useEffect(() => {\n if (isEventCreated) {\n message.success(t(success));\n close();\n } else if (isCreateEventFailed) {\n message.error(t(fail));\n }\n // eslint-disable-next-line\n }, [isEventCreated, isCreateEventFailed]);\n\n useEffect(() => {\n if (isEventUpdated) {\n message.success(t(success));\n close();\n } else if (isUpdateEventFailed) {\n message.error(t(fail));\n }\n // eslint-disable-next-line\n }, [isEventUpdated, isUpdateEventFailed]);\n\n return eventListHash ? (\n import(\"./Mobile\")} desktop={() => import(\"./Desktop\")}>\n {(Component) => (\n \n \n \n \n \n \n \n )}\n \n ) : null;\n};\n\nexport default CreateEvent;\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n\nimport { FC } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Button, PlusCircleOutlined } from \"@ctra/components\";\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\nimport { useGoogleAnalytics } from \"@ctra/analytics\";\nimport { GAActions, useCreateEventDialog } from \"@events\";\nimport { useFarm } from \"@farms\";\n\ninterface AddEventButtonProps {\n reference: string;\n compact?: boolean;\n}\n\n/**\n * Add a new event\n * @param reference\n * @param compact\n * @constructor\n */\nexport const AddEventButton: FC = ({ reference, compact = false }) => {\n const { t } = useTranslation();\n const { trackEvent } = useGoogleAnalytics();\n const { farm } = useFarm();\n\n const {\n api: { open }\n } = useCreateEventDialog();\n\n const {\n events: {\n list: {\n headers: { addEvent }\n }\n }\n } = Content;\n\n return (\n }\n onClick={() => {\n /* istanbul ignore next */\n trackEvent(GAActions.openAddEvent, { label: _.defaultTo(farm?.name, void 0) });\n open(reference, farm?.id);\n }}\n >\n {compact ? null : t(addEvent)}\n \n );\n};\n","import React, { FC, useState } from \"react\";\nimport * as _ from \"lodash\";\nimport { SlideDown } from \"react-slidedown\";\n\nimport {\n CtraLayout,\n Col,\n DownOutlined,\n LoadingOutlined,\n PageHeader,\n Row,\n Skeleton,\n Tag,\n Timeline,\n Typography\n} from \"@ctra/components\";\n\nimport { Enterprise, useTranslation } from \"@ctra/i18n\";\nimport { classname } from \"@ctra/utils\";\nimport { ExtendedEventEntity, GroupedEventList } from \"@ctra/api\";\nimport { useGoogleAnalytics } from \"@ctra/analytics\";\n\nimport { useFarm } from \"@farms\";\nimport { InsightTypeContext } from \"@insights\";\n\nimport {\n EventContext,\n EventEmpty,\n EventEntry,\n EventListContext,\n GAActions,\n testIds,\n CreateEventDialogContext\n} from \"@events\";\n\nimport { AddEventButton } from \"../AddEventButton\";\nimport styles from \"./EventList.module.less\";\nimport \"react-slidedown/lib/slidedown.css\";\n\nconst { Link, Paragraph } = Typography;\nconst { AsyncLayout } = CtraLayout;\nexport const DEFAULT_DISPLAY_COUNT = 3;\n\ntype EventListProps = {\n /**\n * Render the list with|w/o borders and padding\n */\n compact?: boolean;\n /**\n * Render the list with|w/o a header\n */\n renderHeader?: boolean;\n /**\n * Use a limited amount of events and add a \"show more\" button\n */\n limit?: number;\n /**\n * Add a highlight to the given event\n */\n highlight?: ExtendedEventEntity[\"id\"];\n};\n\n/**\n * Events List\n * @param {boolean | undefined} compact\n * @param {boolean | undefined} renderHeader\n * @param {number | undefined} limit\n * @param {string | undefined} highlight\n * @return {JSX.Element}\n * @constructor\n */\nexport const EventList: FC = ({\n compact,\n renderHeader,\n limit = DEFAULT_DISPLAY_COUNT,\n highlight\n}) => {\n const [showMore, setShowMore] = useState(false);\n const { t } = useTranslation();\n const { farm } = useFarm();\n const { trackEvent } = useGoogleAnalytics();\n\n const {\n events: {\n list: { headers, show, loading }\n },\n layouts: {\n section: { markedNew }\n }\n } = Enterprise;\n\n return (\n \n \n {({ meta: { isLoading: isInsightTypeListLoading } }) => (\n \n >\n {({ events, meta: { count, isLoading: isEventListLoading, hash } }) => {\n /**\n * Initial fetching should display a spinner and an empty list\n */\n const isFetching = isInsightTypeListLoading || (_.isEmpty(events) && isEventListLoading);\n\n /**\n * Background updating should just display a spinner in the title\n */\n const isUpdating = !_.isEmpty(events) && isEventListLoading;\n\n return (\n (loading)}\n className={classname(compact ? styles.CompactWrapper : null)}\n data-testid={testIds.list.wrapper}\n >\n {renderHeader && (\n \n {t(headers.title)}{\" \"}\n \n {t(markedNew)}\n \n {isUpdating && }\n \n }\n extra={farm ? : null}\n />\n )}\n \n {_.isEmpty(events) ? (\n \n ) : (\n \n \n \n \n {_.map(events, (group, label) => (\n
\n {_.capitalize(label)}\n \n {_.map(group, (event) => (\n \n \n \n ))}\n
\n \n ))}\n
\n {count > limit && (\n }\n className={styles.ShowMore}\n >\n {\n /* istanbul ignore next */\n trackEvent(\n showMore ? GAActions.closeFarmTimeline : GAActions.openFarmTimeline\n );\n setShowMore(!showMore);\n }}\n >\n {t(show, {\n variant: !showMore ? \"more\" : \"less\"\n })}\n \n \n )}\n
\n \n
\n )}\n
\n \n );\n }}\n \n
\n )}\n
\n
\n );\n};\n","import { FC, useEffect, useRef } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Timeline } from \"@ctra/components\";\nimport { classname } from \"@ctra/utils\";\n\nimport { useEvent, testIds, EventIcon, useEventList } from \"@events\";\nimport { Debugger } from \"@base\";\n\nimport styles from \"./EventEntry.module.less\";\n\n/**\n * Event list entry\n * @constructor\n */\nexport const EventEntry: FC<{ highlighted?: boolean }> = ({ highlighted }) => {\n const { getComponents, event } = useEvent();\n const { View } = getComponents();\n const highlightedRef = useRef(null);\n const { selectedEvents } = useEventList();\n\n useEffect(() => {\n if (highlighted && highlightedRef.current) {\n highlightedRef.current.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"nearest\"\n });\n }\n }, [highlighted]);\n\n return (\n }\n className={styles.Event}\n data-testid={testIds.entity.entry.wrapper}\n style={{ background: _.includes(selectedEvents, event.id) ? \"#cccccc\" : undefined }}\n >\n
\n \n \n
\n \n );\n};\n","import React, { FC } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Row, Typography, Empty, EmptyEventList, AntDesignSelect as Select } from \"@ctra/components\";\nimport { FarmEntity } from \"@ctra/api\";\nimport { useTranslation, Enterprise as Content } from \"@ctra/i18n\";\nimport { useFarm, useFarmList } from \"@farms\";\n\nimport styles from \"./EventEmpty.module.less\";\n\nconst { Paragraph } = Typography;\nconst { Option } = Select;\n\n/**\n * Empty Events List\n * @constructor\n */\nexport const EventEmpty: FC = () => {\n const { t } = useTranslation();\n const { farm, setFarmContext } = useFarm();\n const { farmList, isLoading } = useFarmList();\n\n const {\n events: {\n empty: { title, description, action }\n }\n } = Content;\n\n const tParams = {\n farm: farm?.name || null\n };\n\n return (\n \n }\n className={styles.Empty}\n description={\n <>\n {t(title, tParams)}\n {t(description, tParams)}\n \n }\n >\n {!farm && (\n (action, tParams)}\n style={{ width: \"100%\" }}\n onSelect={(farmID: FarmEntity[\"id\"]) => {\n // istanbul ignore next\n setFarmContext(farmID);\n }}\n >\n {_.map(farmList, ({ id, name }) => (\n \n ))}\n \n )}\n
\n \n );\n};\n","import { Events } from \"@ctra/components\";\n\n/**\n * Map categories to icons\n * @todo deal with this later LOL :)\n */\nexport const eventCategoryMap = Events.eventCategoryMap;\n","import { ComponentProps, FC } from \"react\";\n\nimport { EventCategory } from \"@ctra/api\";\nimport { Nullable } from \"@ctra/utils\";\nimport { CompassOutlined, Icon } from \"@ctra/components\";\n\nimport { eventCategoryMap } from \"../../utils\";\n\ninterface EventIconProps extends ComponentProps {\n category?: Nullable;\n withCircle?: boolean;\n}\n\n/**\n * Icon wrapper for any event category\n * @constructor\n */\nexport const EventIcon: FC = ({ category, withCircle, ...rest }) => {\n const [iconWithoutCircle, iconWithCircle] = category ? eventCategoryMap[category] : [null, null, \"\"];\n const icon = withCircle ? iconWithCircle : iconWithoutCircle;\n\n return icon ? : ;\n};\n","import { FC, ReactNode } from \"react\";\nimport { EventIcon, useEvent } from \"@events\";\n\nimport { Enterprise, EventOrigin, EventStatus } from \"@ctra/api\";\nimport { ImpactTracking, ClockCircleTwoTone, CheckCircleTwoTone, Typography, Space } from \"@ctra/components\";\nimport { useTranslation, Enterprise as Content } from \"@ctra/i18n\";\nimport { useGoogleAnalytics } from \"@ctra/analytics\";\n\nimport { GAActions } from \"@events\";\nimport { CompiledRoutes } from \"@routes\";\n\nconst { TimelineItem } = ImpactTracking;\nconst { Text } = Typography;\n\n/**\n * Farm timeline item component\n * @param {boolean | undefined} highlighted\n * @return {JSX.Element}\n * @constructor\n */\nexport const FarmTimelineItem: FC<{ highlighted?: boolean }> = ({ highlighted }) => {\n const { t } = useTranslation();\n const { trackEvent } = useGoogleAnalytics();\n const { getTitle, getDescription, getStartMoment, getContext, event } = useEvent();\n\n const { status } = getContext();\n\n const {\n events: {\n entity: { status: statusCopy }\n }\n } = Content;\n\n let extra: ReactNode = null;\n\n /**\n * Add the extra based on the status\n * @todo this can be different for any type of event so be prepared for a factory pattern here\n */\n switch (status) {\n case EventStatus.done: {\n extra = (\n \n \n \n {t(statusCopy(status))}\n \n \n );\n break;\n }\n case EventStatus.analysing:\n case EventStatus.processing: {\n extra = (\n \n \n \n {t(statusCopy(status))}\n \n \n );\n break;\n }\n }\n\n return (\n }\n highlighted={highlighted}\n title={getTitle()}\n description={getDescription()}\n date={getStartMoment().format(\"LL\")}\n onClick={() => {\n trackEvent(GAActions.openEvent, {\n label: `[${event.id}] ${getTitle()}`\n });\n\n Enterprise.history.push(\n CompiledRoutes.app.timeline.event.index({\n id: event.id\n })\n );\n }}\n eventOrigin={event.context?.userID ? EventOrigin.manual : EventOrigin.automated}\n />\n );\n};\n","import { ComponentProps, FC, useMemo, useState } from \"react\";\nimport * as _ from \"lodash\";\nimport { useRouteMatch } from \"react-router-dom\";\n\nimport {\n Timeline,\n Typography,\n ImpactTracking,\n Button,\n AntDesignSelect as Select,\n Row,\n Col,\n PlusCircleOutlined,\n FilterOutlined,\n Skeleton,\n LoadingOutlined\n} from \"@ctra/components\";\n\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\nimport { useGoogleAnalytics } from \"@ctra/analytics\";\nimport { EventEntity, GroupedEventList, EventOrigin } from \"@ctra/api\";\n\nimport { InsightTypeContext } from \"@insights\";\nimport { useFarm } from \"@farms\";\nimport { EventContext, GAActions, useCreateEventDialog, useEventList } from \"@events\";\n\nimport { FarmTimelineItem } from \"../FarmTimelineItem\";\nimport styles from \"./FarmTimeline.module.less\";\n\nconst { WidgetWrapper } = ImpactTracking;\nconst { Paragraph } = Typography;\n\ntype FarmTimelineProps = ComponentProps;\n\n/**\n * Farm timeline component\n * @param {React.PropsWithChildren} props\n * @return {JSX.Element}\n * @constructor\n */\nexport const FarmTimeline: FC = (props) => {\n const { trackEvent } = useGoogleAnalytics();\n const { t } = useTranslation();\n const [filter, setFilter] = useState();\n const { farm } = useFarm();\n\n const {\n api: { open }\n } = useCreateEventDialog();\n\n const {\n events,\n meta: { isLoading: isEventListLoading, hash }\n } = useEventList();\n\n const {\n params: { id: highlightedEventID }\n } = useRouteMatch<{ id: EventEntity[\"id\"] }>();\n\n const {\n timeline: { filter: filterCopy }\n } = Content;\n\n /**\n * Filter the event list based on the selected filter\n * @type {Dictionary}\n */\n const eventList = useMemo(() => {\n return _.omitBy(\n _.mapValues(events, (group) =>\n _.filter(group, (event) => {\n switch (filter) {\n case EventOrigin.automated:\n return !event.context.userID;\n case EventOrigin.manual:\n return !!event.context.userID;\n default:\n return !filter || event.subCategory === filter;\n }\n })\n ),\n _.isEmpty\n );\n }, [filter, events]);\n\n return (\n \n \n {({ meta: { isLoading: isInsightTypeListLoading } }) => {\n /**\n * Initial fetching should display a spinner and an empty list\n */\n const isFetching = isInsightTypeListLoading || (_.isEmpty(events) && isEventListLoading);\n\n /**\n * Background updating should just display a spinner in the title\n */\n const isUpdating = !_.isEmpty(events) && isEventListLoading;\n\n /**\n * Event subcategories are used as filter values\n * @type {string[]}\n */\n const filterValues: string[] = _.uniq(_.map(_.flatten(_.values(events)), \"subCategory\"));\n\n /**\n * Event sources are used as filter values too\n * @type {string[]}\n */\n const eventOrigins: string[] = [EventOrigin.automated, EventOrigin.manual];\n\n return (\n \n \n }\n placeholder={t(filterCopy.placeholder)}\n value={filter}\n onChange={(value) => setFilter(value)}\n >\n (filterCopy.group.origin)} key=\"origin\">\n {_.map(eventOrigins, (value) => (\n \n {t(filterCopy.origin(value))}\n \n ))}\n \n (filterCopy.group.type)} key=\"category\">\n {_.map(filterValues, (value) => (\n \n {t(filterCopy.type(value))}\n \n ))}\n \n \n \n \n }\n onClick={() => {\n trackEvent(GAActions.openAddEvent, {\n label: _.defaultTo(farm?.name, void 0)\n });\n\n open(hash, farm?.id);\n }}\n >\n {t(Content.events.list.headers.addEvent)}\n \n \n \n }\n {...props}\n >\n \n {isUpdating && (\n
\n \n
\n )}\n \n {_.map(eventList, (group, label) => (\n
\n {_.capitalize(label)}\n
\n {_.map(group, (event) => (\n \n \n \n ))}\n
\n
\n ))}\n
\n
\n \n );\n }}\n
\n
\n );\n};\n","import React, { FC } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\nimport html2pdf from \"html2pdf.js\";\n\nimport {\n Enterprise,\n EnterpriseAppState,\n Events,\n EventScope,\n EventSourceType,\n EventOrigin,\n GroupedEventList\n} from \"@ctra/api\";\n\nimport {\n Button,\n DeleteOutlined,\n ImpactTracking,\n Spin,\n EllipsisOutlined,\n EditOutlined,\n Modal,\n ExclamationCircleOutlined,\n Dropdown,\n Space\n} from \"@ctra/components\";\n\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\nimport { isPending, Optional } from \"@ctra/utils\";\nimport { GAContext } from \"@ctra/analytics\";\n\nimport {\n GACategory,\n EventIcon,\n useEvent,\n useEventList,\n CreateEventURLParams,\n useCreateEventDialog\n} from \"@events\";\n\nimport { Routes } from \"@routes\";\nimport { useUserList } from \"@base\";\nimport { useFarm } from \"@farms\";\n\nimport styles from \"./EventPage.module.less\";\n\nconst { Header } = ImpactTracking;\nconst { useModal } = Modal;\n\n/**\n * Event page\n * @return {JSX.Element}\n * @constructor\n */\nexport const EventPage: FC = () => {\n const dispatch = useDispatch();\n const { event, getTitle, getStartMoment, getDescription, getComponents } = useEvent();\n const { Page } = getComponents();\n const { t } = useTranslation();\n const { farm } = useFarm();\n const [modal, contextHolder] = useModal();\n const { users } = useUserList();\n\n const {\n api: { open }\n } = useCreateEventDialog();\n\n const {\n meta: { hash }\n } = useEventList();\n\n const {\n events: {\n entity: { ctaText, actions },\n list: {\n entry: {\n meta: { source },\n cta: {\n remove: { confirm, yes, no }\n }\n }\n }\n }\n } = Content;\n\n const {\n id: eventId,\n source: { type, id: sourceId },\n context\n } = event;\n\n /**\n * Tell if the given event is being deleted\n */\n const isDeleting = useSelector((state) =>\n isPending(state, Events.types.DELETE_EVENT, { primaryValue: eventId })\n );\n\n let extra: Optional = void 0;\n\n /**\n * Event actions\n * @type {JSX.Element}\n */\n const toolbar = (\n \n }\n onClick={() => {\n open(hash, farm?.id, CreateEventURLParams.editEventKey);\n }}\n >\n {t(actions.edit)}\n \n }\n onClick={() => {\n modal.confirm({\n onOk: () => {\n dispatch(Events.actions.deleteEvent.start(eventId, type, sourceId));\n },\n icon: ,\n content: t(confirm),\n okText: t(yes),\n cancelText: t(no)\n });\n }}\n >\n {t(actions.delete)}\n \n \n );\n\n switch (type) {\n case EventSourceType.genericInsight:\n extra = [EventScope.herdGroup, EventScope.pen].includes(event.scope.type) ? (\n void 0\n ) : (\n {\n const search = new URLSearchParams();\n search.append(\"genericInsightID\", sourceId.toString());\n\n Enterprise.history.push({\n pathname: Routes.app.insights.index,\n search: search.toString()\n });\n }}\n >\n {t(ctaText(EventSourceType.genericInsight))}\n \n );\n break;\n }\n\n const userID = event.context?.userID;\n const user = _.isString(userID) ? _.get(users, [userID]) : void 0;\n const humanReadable = user ? _.trim(`${user.firstName} ${user.lastName}`) : null;\n\n const label = t(source, {\n user: humanReadable,\n origin: userID ? EventOrigin.manual : EventOrigin.automated\n });\n\n return (\n \n {contextHolder}\n
\n }\n extra={extra}\n toolbar={toolbar}\n eventOrigin={event.context?.userID ? EventOrigin.manual : EventOrigin.automated}\n eventSource={label}\n />\n \n \n \n
\n
\n );\n};\n","import { FC, useEffect, useRef } from \"react\";\nimport * as _ from \"lodash\";\nimport * as Sentry from \"@sentry/react\";\nimport { Redirect, Route, Switch } from \"react-router-dom\";\n\nimport { Alert, Col, Grid, Row } from \"@ctra/components\";\nimport { Breadcrumbs, Enterprise as App, EventSourceType, FarmEntity, GroupedEventList } from \"@ctra/api\";\nimport { Optional } from \"@ctra/utils\";\nimport { Enterprise, useTranslation } from \"@ctra/i18n\";\n\nimport { useFarm } from \"@farms\";\nimport { CompiledRoutes, Routes } from \"@routes\";\nimport { UserListContext } from \"@base\";\n\nimport { EventContext, EventListContext } from \"../../providers\";\nimport { FarmTimeline } from \"../FarmTimeline\";\nimport { EventPage } from \"../EventPage\";\nimport styles from \"./FarmTimelinePage.module.less\";\n\nconst SentryRoute = Sentry.withSentryRouting(Route);\n\n/**\n * Farm timeline page\n * @return {JSX.Element}\n * @constructor\n */\nexport const FarmTimelinePage: FC = () => {\n const { farm } = useFarm();\n const farmIdRef = useRef>(farm?.id);\n const { t } = useTranslation();\n const { md } = Grid.useBreakpoint();\n\n const {\n impactTracking: { pageHeader, empty, noFarm }\n } = Enterprise;\n\n useEffect(() => {\n if (farm?.id && farmIdRef.current !== farm.id) {\n farmIdRef.current = farm.id;\n App.history.push(Routes.app.timeline.index);\n }\n }, [farm?.id]);\n\n return (\n
\n (Enterprise.navigation.main.timeline)}\n />\n {farm?.id ? (\n \n \n {md && (\n \n {t(pageHeader)}\n \n )}\n >\n {({ events, meta: { isLoading } }) => {\n /**\n * Get the first event of the first group\n * @type {EventEntity | undefined}\n */\n const selectedEvent = _.get(_.values(events), [0, 0]);\n\n /**\n * Make a list of all event ids\n * @type {string[]}\n */\n const eventIdList = _.map(_.flatten(_.values(events)), \"id\");\n\n return (\n \n \n \n \n \n \n eventIdList.includes(id as string) ? (\n \n \n \n \n \n ) : (\n \n )\n }\n />\n \n {_.isEmpty(events) && !isLoading && (\n \n \n \n )}\n {selectedEvent && (\n \n )}\n \n \n \n );\n }}\n \n \n \n ) : (\n \n )}\n
\n );\n};\n","import * as _ from \"lodash\";\n\nimport { EventEntity, GenericInsightEventContext, Enterprise as App, EventScope } from \"@ctra/api\";\nimport { i18nTranslate, Enterprise, Enterprise as Content } from \"@ctra/i18n\";\nimport { memoize, makeList } from \"@ctra/utils\";\nimport { EventOrigin, GenericInsightEventView, ImpactTrackedEventPage } from \"@events\";\n\nimport { EventBase } from \"./Base\";\nimport { GenericInsight } from \"@insights\";\n\n/**\n * Generic Insight Event\n */\nclass GenericInsightEvent extends EventBase<\n GenericInsightEventContext & {\n insightResolutionIds: string;\n }\n> {\n /**\n * Get the metadata for the event\n */\n @memoize\n getContext(): {\n urlParams: Map;\n ctaText: string;\n } & GenericInsightEventContext {\n const {\n source: { id, type },\n context: { insightResolutionIds = \"\", impactTrackingState, ...restOfContext }\n } = this.entity;\n\n const {\n events: {\n entity: { ctaText: cta }\n }\n } = Enterprise;\n\n /**\n * Split the comma separated string, then filter out numeric ids (custom resolutions)\n */\n const processedResolutionIds = _.compact(\n _.filter(_.map(insightResolutionIds.split(\",\"), _.trim), (id) => isNaN(parseFloat(id)))\n );\n\n return {\n insightResolutionIds: processedResolutionIds,\n status: impactTrackingState,\n ...restOfContext,\n urlParams: new Map([[\"genericInsightID\", id]]),\n ctaText: i18nTranslate(cta(type))\n };\n }\n\n /**\n * Get the components for the event\n */\n @memoize\n getComponents(): ReturnType {\n return {\n ...super.getComponents(),\n Page: ImpactTrackedEventPage,\n View: GenericInsightEventView\n };\n }\n\n /**\n * Make a title from the insight resolution\n * @param params\n */\n @memoize\n getTitle(params?: Record): string {\n const {\n title,\n source: { type: sourceType },\n scope: { type: scopeType, ids: scopeIDs }\n } = this.entity;\n\n const {\n events: {\n entity: { title: makeInsightEventTitleCopy }\n },\n insightResolutions: { title: makeResolutionTitleCopy },\n grammar: {\n conjunction: { and }\n }\n } = Content;\n\n const { insightResolutionIds } = this.getContext();\n\n if (!insightResolutionIds.length) {\n return super.getTitle();\n }\n\n let herdGroup = null;\n\n if (scopeType === EventScope.herdGroup) {\n const herdGroups = _.pick(App.entities.getHerdGroups(App.store.getState()), scopeIDs);\n\n if (!_.isEmpty(herdGroups)) {\n herdGroup = _.join(_.map(herdGroups, \"name\"), \", \");\n }\n }\n\n /**\n * Collect the ids and the corresponding copy keys\n */\n const copyKeys = _.zip(\n insightResolutionIds,\n _.map(insightResolutionIds, (id) => makeResolutionTitleCopy(id))\n );\n\n /**\n * Make a list of translated resolution titles with a fallback to the humanized id\n */\n const translated = _.map(copyKeys, ([id, copyKey]) => {\n const fromLoco = i18nTranslate(copyKey as string);\n\n return fromLoco && fromLoco === copyKey ? _.lowerCase(id) : fromLoco;\n });\n\n return i18nTranslate(makeInsightEventTitleCopy(\"GenericInsight\", \"resolved\"), {\n insightResolution: _.upperFirst(makeList(translated, i18nTranslate(and))),\n title: _.defaultTo(title, null),\n scope: scopeType,\n herdGroup,\n sourceType,\n ...params\n });\n }\n\n /**\n * Get event description\n * @param params {{}}\n */\n @memoize\n getDescription(params?: Record): string {\n const {\n description: originalDescription,\n source: { type }\n } = this.entity;\n\n const {\n entity: { description }\n } = Content.events;\n\n return i18nTranslate(description(type), {\n ...params,\n originalDescription: _.trim(originalDescription) || null,\n origin: this.isSupported() ? EventOrigin.enterprise : EventOrigin.classic\n });\n }\n\n /**\n * Match the source type of the event to the registry we have locally\n */\n @memoize\n isSupported(): boolean {\n const { insightTypeID } = this.getContext();\n const insightTypes = App.entities.getInsightTypes(App.store.getState());\n const insightType = _.find(insightTypes, [\"id\", Number(insightTypeID)]);\n const registeredInsights = GenericInsight.getRegisteredInsights();\n\n return !!insightType && registeredInsights.includes(insightType.typeName);\n }\n}\n\nexport { GenericInsightEvent };\n","import { memoize } from \"@ctra/utils\";\n\nimport { CustomEventView, CustomEventCta, CustomEventExpandIcon, ImpactTrackedEventPage } from \"@events\";\nimport { EventStatus } from \"@ctra/api\";\n\nimport { EventBase } from \"./Base\";\n\n/**\n * Ida Classic label (group, farm or cow) event\n */\nclass CustomEvent extends EventBase {\n /**\n * Get the metadata for the event\n */\n @memoize\n getContext(): {\n status: EventStatus;\n } {\n const {\n context: { impactTrackingState }\n } = this.entity;\n\n return {\n status: impactTrackingState as EventStatus\n };\n }\n\n /**\n * Get the components for the events\n */\n @memoize\n getComponents(): ReturnType {\n return {\n Page: ImpactTrackedEventPage,\n ExpandIcon: CustomEventExpandIcon,\n View: CustomEventView,\n CTA: CustomEventCta\n };\n }\n}\n\nexport { CustomEvent };\n","import * as _ from \"lodash\";\nimport moment from \"moment\";\nimport { FC, useEffect, useState } from \"react\";\nimport type { ColumnsType } from \"antd/es/table\";\n\nimport { EventOrigin, GroupedEventList, Enterprise, EventEntity } from \"@ctra/api\";\nimport { Col, Collapse, InnerJoin, Row, Space, Table, Typography, ImpactTracking } from \"@ctra/components\";\nimport { useTranslation, Enterprise as Content } from \"@ctra/i18n\";\n\nimport { useEventList, EventIcon, useEvent, EventContext } from \"@events\";\nimport { CompiledRoutes } from \"@routes\";\n\nimport styles from \"./OverlapEvent.module.less\";\n\nconst { EventOriginIcon } = ImpactTracking;\nconst { Text, Title, Link } = Typography;\nconst { Panel } = Collapse;\n\n/**\n * Overlapping event list component\n * @param {string} startTime\n * @param {string} duration\n * @returns {JSX.Element | null}\n * @constructor\n */\nexport const OverlapEvent: FC<{\n duration: string;\n}> = ({ duration }) => {\n const { t } = useTranslation();\n const [isExpanded, setIsExpanded] = useState(false);\n\n const {\n event: { id, startAt }\n } = useEvent();\n\n const {\n impactTracking: { overlap }\n } = Content;\n\n /**\n * Get the number of days in given duration\n * @type {number}\n */\n const durationLength = moment.duration(duration).days();\n const durationStart = moment(startAt).subtract(durationLength, \"days\");\n const durationEnd = moment(startAt).add(durationLength, \"days\");\n const { events: groupedEvents } = useEventList();\n\n /**\n * Find the overlapping events\n * @type {ExtendedEventEntity[]}\n */\n const overlappingEvents = _.flatMap(groupedEvents, (eventList) => {\n return _.filter(eventList, (event) => {\n const startMoment = moment(event.startAt);\n\n return (\n event.id !== id && startMoment.isSameOrAfter(durationStart) && startMoment.isSameOrBefore(durationEnd)\n );\n });\n });\n\n useEffect(() => {\n if (!overlappingEvents.length) {\n setIsExpanded(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [duration]);\n\n /**\n * Event item component\n * @param {string} id\n * @param {EventCategory} category\n * @returns {JSX.Element}\n * @constructor\n */\n const EventTitle = ({ id, category }: EventEntity): JSX.Element => {\n const { getTitle } = useEvent();\n\n return (\n \n \n \n \n {getTitle({ id })}\n \n );\n };\n\n /**\n * Column definitions for the table\n * @type {({dataIndex: string, width: string, render: (event: EventEntity) => JSX.Element, key: string} | {width: string, render: (event: EventEntity) => JSX.Element} | {width: string, render: (record: EventEntity) => JSX.Element})[]}\n */\n const columns: ColumnsType = [\n {\n dataIndex: \"title\",\n key: \"title\",\n render: (value, event: EventEntity) => (\n \n \n \n )\n },\n {\n render: (value, event: EventEntity) => (\n \n \n \n \n \n {moment(event.startAt).format(\"MMMM DD\")}\n \n \n )\n },\n {\n render: (value, { id }) => (\n \n \n {\n Enterprise.history.push(CompiledRoutes.app.timeline.event.index({ id }));\n }}\n className={styles.ShowText}\n >\n {t(overlap.goToEvent)}\n \n \n \n )\n }\n ];\n\n return overlappingEvents.length ? (\n \n \n null}\n onChange={() => setIsExpanded(!isExpanded)}\n className={styles.Collapse}\n ghost\n >\n \n \n \n \n {t(overlap.header)}\n \n \n \n \n \n {isExpanded ? t(overlap.hide) : t(overlap.show)}\n \n \n \n \n }\n key=\"1\"\n >\n
\n \n
\n \n \n \n \n ) : null;\n};\n","import * as _ from \"lodash\";\nimport moment from \"moment\";\nimport { ComponentProps, FC, Fragment, useRef, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport Markdown from \"react-markdown\";\n\nimport {\n Typography,\n ImpactTracking,\n Col,\n Row,\n Skeleton,\n Alert,\n Space,\n Tag,\n Button,\n PlusOutlined,\n Spin,\n Switch,\n Popover\n} from \"@ctra/components\";\n\nimport {\n DataAvailability,\n Direction,\n ImpactTracking as ImpactTrackingAPI,\n Result,\n DataDescriptorEntity\n} from \"@ctra/api\";\n\nimport { useTranslation } from \"@ctra/i18n\";\nimport { Enterprise as Content } from \"@ctra/i18n\";\nimport { Nullable, UnitSystem } from \"@ctra/utils\";\nimport { useGoogleAnalytics } from \"@ctra/analytics\";\n\nimport { useLocalization, DataDictionaryContext } from \"@base\";\nimport { ImpactTrackingContext, useEvent, GAActions, GACategory } from \"@events\";\nimport { ChartPicker } from \"@analytics\";\nimport { useFarm } from \"@farms\";\n\nimport { OverlapEvent } from \"../OverlapEvent\";\nimport styles from \"./ImpactTrackedEventPage.module.less\";\n\nconst { Title, Paragraph, Text } = Typography;\nconst { KPIChange, DateRangePicker, Variant, WidgetWrapper } = ImpactTracking;\n\ntype ValueVariant = \"before\" | \"after\" | \"projected\";\n\n/**\n * Get the direction based on the before and after values\n * @param {number} before\n * @param {Nullable} after\n * @returns {Direction.increase}\n */\nconst getDirection = (before: Nullable, after: Nullable) => {\n const hasBefore = _.isNumber(before);\n const hasAfter = _.isNumber(after);\n\n if (hasAfter && hasBefore) {\n if (after - before > 0) {\n return Direction.increase;\n } else if (after - before === 0) {\n return Direction.stagnate;\n } else {\n return Direction.decrease;\n }\n }\n\n if (hasBefore && !hasAfter) {\n return Direction.decrease;\n }\n\n if (!hasBefore && hasAfter) {\n return Direction.increase;\n }\n\n return Direction.stagnate;\n};\n\n/**\n * Round the value based on the data descriptor\n * @param {Nullable} value\n * @param {DataDescriptorEntity} dataDescriptor\n * @returns {number | null}\n */\nconst round = (value: Nullable, dataDescriptor: DataDescriptorEntity) => {\n return _.isNumber(value) ? _.round(value, _.get(dataDescriptor, [\"valueProperties\", \"decimals\"], 2)) : null;\n};\n\nconst {\n events: {\n page: { title, description }\n },\n unitSystem: { unit },\n impactTracking: {\n projectionsWarning,\n description: valueDescription,\n showProjections,\n timePeriod,\n noData,\n whatElse,\n beta,\n add\n },\n kpi,\n askIda: {\n answer: {\n change: { after, before, expected }\n },\n createTracker: {\n configure: {\n labels: { change },\n placeholders: { kpi: kpiCol }\n }\n },\n noData: { description: unsupportedIntervalDescription }\n }\n} = Content;\n\n/**\n * Impact tracked event page component\n * @returns {JSX.Element}\n * @constructor\n */\nexport const ImpactTrackedEventPage: FC = () => {\n const { t } = useTranslation();\n const { unitSystem } = useLocalization();\n const [currentTimeSpan, setCurrentTimeSpan] = useState(\"P3D\");\n const [newMetric, setNewMetric] = useState(\"\");\n const [includeProjections, setIncludeProjections] = useState(false);\n const dispatch = useDispatch();\n const { farm } = useFarm();\n const isKPIProcessing = useRef(false);\n const { trackEvent } = useGoogleAnalytics();\n\n const {\n event: {\n id,\n source: { type },\n startAt\n }\n } = useEvent();\n\n /**\n * Durations for date range\n * @type {string[]}\n */\n const currentDurations = [\"P3D\", \"P1W\", \"P2W\", \"P4W\"];\n\n /**\n * Get the value/label for the given result set\n * @param {Result} input\n * @param {\"before\" | \"after\"} variant\n * @param {React.ComponentProps>>[\"before\"][\"value\"]} value\n * @returns {React.ComponentProps>>[\"before\"]}\n */\n const getValueProps = (\n input: Result,\n variant: ValueVariant,\n value: NonNullable[ValueVariant]>[\"value\"]\n ): NonNullable[ValueVariant]> => {\n /**\n * If the data is missing, find out why\n */\n const dataMissingReason = _.get(input, \"dataUnavailabilityReason\", null);\n\n const labelMap: Record = {\n before: before,\n after: after,\n projected: expected\n };\n\n return {\n value,\n noData: t(noData.label, {\n verbose: false,\n dataStatus: input.dataAvailability,\n reason: dataMissingReason\n }),\n label: t(labelMap[variant])\n };\n };\n\n /**\n * Make a label for missing data\n * @returns {any}\n */\n const getMissingDataLabel = (input?: Result) => {\n const isTracking = moment(startAt)\n .add(moment.duration(currentTimeSpan).asDays(), \"days\")\n .isAfter(moment(), \"day\");\n\n const { dataAvailability, dataUnavailabilityReason } = _.defaultTo(input, {\n dataAvailability: null,\n dataUnavailabilityReason: null\n });\n\n const reason = _.defaultTo(dataUnavailabilityReason, isTracking ? \"tracking\" : \"empty\");\n\n return t(noData.label, {\n verbose: true,\n dataStatus: dataAvailability,\n reason\n });\n };\n\n return (\n \n \n {({\n dataDescriptors: dataDictionary,\n subsets: { projectionsEnabled },\n meta: { isLoading: isDataDictionaryLoading }\n }) => (\n \n \n {({\n results,\n otherResults,\n meta: {\n isLoading: isImpactTrackingResultLoading,\n isRejected,\n isProcessing,\n isAdding,\n isIntervalSupported\n }\n }) => {\n /**\n * Results with projected values\n * @type {Dictionary<{imperial: Result, si: Result}>}\n */\n const withPojectedValues = _.pickBy(\n results,\n (value) => !_.isNil(_.get(value, [unitSystem, \"projected\"]))\n );\n\n /**\n * Tell whether projections are available at all\n * @type {boolean}\n */\n const hasProjections = !!_.size(_.intersection(projectionsEnabled, _.keys(results)));\n\n /**\n * Tell if there are any projected values in the data\n * @type {boolean}\n */\n const hasProjectedValues = !!_.size(_.keys(withPojectedValues));\n\n const hasProjectionWarning =\n (_.size(projectionsEnabled) > 0 && !hasProjections) ||\n !_.size(projectionsEnabled) ||\n !hasProjectedValues;\n\n const PopoverComponent = hasProjectionWarning ? Popover : Fragment;\n\n return (\n
\n \n \n <Space>\n <span>{t<string>(title, { type })}</span>\n {/* @todo make a component and remove when not needed anymore */}\n <Tag\n style={{\n backgroundColor: \"#666\",\n color: \"#80FFEC\",\n border: \"none\",\n position: \"relative\",\n top: \"-3px\"\n }}\n >\n {t<string>(beta)}\n </Tag>\n </Space>\n \n {t(description, { type })}\n {/**/}\n {/* */}\n {/* */}\n {/* */}\n {/* {t(showProjections)}*/}\n {/* */}\n {/* */}\n {/* {t(projectionsWarning, {*/}\n {/* farmName: farm?.name,*/}\n {/* reason:*/}\n {/* _.size(projectionsEnabled) > 0 && !hasProjections*/}\n {/* ? \"noMetricSupport\"*/}\n {/* : !_.size(projectionsEnabled)*/}\n {/* ? \"noFarmSupport\"*/}\n {/* : \"noData\"*/}\n {/* })}*/}\n {/* */}\n {/* }*/}\n {/* >*/}\n {/* {*/}\n {/* setIncludeProjections(checked);*/}\n {/* }}*/}\n {/* />*/}\n {/* */}\n {/* */}\n {/* */}\n {/**/}\n ({\n duration,\n label: t(timePeriod(duration), { variant: null })\n }))}\n value={currentTimeSpan}\n center={moment(startAt)}\n labels={{ before: t(before), after: t(after) }}\n onChange={(value) => {\n trackEvent(GAActions.pickTimePeriod, { label: value });\n setCurrentTimeSpan(value);\n }}\n />\n \n {isRejected ? (\n \n ) : _.isEmpty(results) ? (\n \n ) : (\n <>\n \n {_.map(results, (result, dataDescriptorID) => {\n const currentChange = result[unitSystem];\n const dataDescriptor = _.get(dataDictionary, [dataDescriptorID]);\n const beforeValue = round(currentChange.before, dataDescriptor);\n const afterValue = round(currentChange?.after, dataDescriptor);\n const projectedValue = round(currentChange?.projected, dataDescriptor);\n\n /**\n * Get direction based on current change\n * @type {Direction.increase | Direction.stagnate | Direction.decrease}\n */\n const direction = getDirection(beforeValue, afterValue);\n\n isKPIProcessing.current = _.isEqual(\n _.get(currentChange, \"dataAvailability\"),\n DataAvailability.processing\n );\n\n /**\n * Get the units to use\n * @type {undefined}\n */\n const units = _.get(dataDescriptor, [\"valueProperties\", \"units\"]);\n\n return (\n \n (valueDescription.projected)\n }\n : void 0\n }\n direction={direction}\n suffix={\n dataDescriptor\n ? t(unit(_.get(units, unitSystem, _.get(units, UnitSystem.metric))), {\n onAssetError: \"\"\n })\n : \"...\"\n }\n context={{\n dataStatus: _.defaultTo(currentChange?.dataAvailability, null),\n missingDataReason: _.defaultTo(\n currentChange?.dataUnavailabilityReason,\n null\n )\n }}\n />\n \n );\n })}\n {(isProcessing || isAdding) && !isKPIProcessing.current && (\n \n \n \n \n \n )}\n \n \n \n \n {/** @todo replace with metric picker when analytics v3 is done */}\n \n isImpactTrackingSupported\n }\n />\n \n \n }\n onClick={() => {\n trackEvent(GAActions.addNewMetric, { label: newMetric });\n\n dispatch(\n ImpactTrackingAPI.actions.addMetricToEvent.start(id, newMetric)\n );\n }}\n >\n {t(add.cta)}\n \n \n \n \n \n \n {!_.isEmpty(otherResults) && (\n <>\n \n {t(whatElse.title)}\n \n {t(whatElse.description)}\n \n \n {t(kpiCol)}\n \n \n {t(before)}\n \n \n {t(after)}\n \n \n {`${t(change(Direction.increase))} / ${t(\n change(Direction.decrease)\n )}`}\n \n \n }\n >\n {_.map(otherResults, (result, dataDescriptorID) => {\n /**\n * Get current change value based on current unit system\n */\n const currentChange = result[unitSystem];\n\n /**\n * Get data descriptor from data dictionary\n * @type {DataDescriptorEntity}\n */\n const dataDescriptor = dataDictionary[dataDescriptorID];\n\n /**\n * Get before and after values\n * @type {number}\n */\n const beforeValue = _.round(\n currentChange?.before,\n _.get(dataDescriptor, [\"valueProperties\", \"decimals\"], 2)\n );\n\n const afterValue = _.isNumber(currentChange?.after)\n ? _.round(\n currentChange.after,\n _.get(dataDescriptor, [\"valueProperties\", \"decimals\"], 2)\n )\n : null;\n\n /**\n * Get direction based on current change\n * @type {Direction.increase | Direction.stagnate | Direction.decrease}\n */\n const direction = getDirection(beforeValue, afterValue);\n const units = _.get(dataDescriptor, [\"valueProperties\", \"units\"]);\n\n return (\n \n );\n })}\n \n \n )}\n \n )}\n \n
\n );\n }}\n
\n
\n )}\n
\n
\n );\n};\n","import * as _ from \"lodash\";\nimport { JsonValue } from \"type-fest\";\n\nimport { memoize } from \"@ctra/utils\";\nimport { AIModelEventContext, Enterprise as App, EventStatus, UserPreferencesEntity } from \"@ctra/api\";\nimport { Enterprise as Content, i18nTranslate, IntlMessageFormat } from \"@ctra/i18n\";\n\nimport { EventBase } from \"./Base\";\nimport { ImpactTrackedEventPage } from \"../event-page\";\nimport { CustomEventCta, CustomEventExpandIcon, CustomEventView } from \"@events\";\n\nconst {\n kpi: { displayName }\n} = Content;\n\ninterface TranslationObject {\n key: string;\n values?: Record;\n params?: Record;\n substitutions?: Record;\n type?: string;\n}\n\n/**\n * Check if the object is a translation object\n * @param obj\n * @returns {obj is TranslationObject}\n */\nconst isTranslationObject = (obj: unknown): obj is TranslationObject => {\n return _.isObject(obj) && \"key\" in obj;\n};\n\n/**\n * Translation resolver class to resolve translation objects\n */\nclass TranslationResolver {\n private unitSystem: string;\n\n constructor(unitSystem: string) {\n this.unitSystem = unitSystem;\n }\n\n /**\n * Recursively resolve a translation object, going depth-first.\n * @param {TranslationObject} translationObj\n * @returns {string}\n */\n resolveTranslation(translationObj: TranslationObject): string {\n const substitutions: Record = {};\n\n for (const [key, value] of Object.entries(translationObj.substitutions || {})) {\n if (typeof value === \"object\" && value !== null) {\n substitutions[key] = value[this.unitSystem.toLowerCase()];\n } else {\n substitutions[key] = value;\n }\n }\n\n return this.resolveNode(translationObj, substitutions);\n }\n\n /**\n * Function to format the key using params\n * @param {string} key\n * @param {Record} params\n * @param {Record} substitutions\n * @returns {string}\n */\n formatKey(key: string, params: Record, substitutions: Record): string {\n if (params && Object.keys(params).length > 0) {\n key = this.formatValues(key, substitutions, params);\n }\n return key;\n }\n\n /**\n * Resolves a single node in the JSON translation object.\n * @param {TranslationObject} node\n * @param {Record} substitutions\n * @returns {string}\n */\n resolveNode(node: TranslationObject, substitutions: Record): string {\n const nodeType = node.type || \"asset\";\n const key = node.key;\n const values = node.values || {};\n const params = node.params || {};\n\n if (nodeType === \"asset\") {\n const formattedKey = this.formatKey(key, params, substitutions);\n const apiResponse = i18nTranslate(formattedKey);\n\n return this.formatValues(apiResponse, substitutions, values);\n } else if (nodeType === \"substitution\") {\n return substitutions[key] || key;\n } else if (nodeType === \"dynamic\") {\n return this.formatValues(key, substitutions, values);\n } else {\n return key;\n }\n }\n\n /**\n * Format the ICU string with the given values.\n * @param {string} key\n * @param {Record} substitutions\n * @param {Record} values\n * @returns {string}\n */\n formatValues(key: string, substitutions: Record, values: Record): string {\n const overrideValues: Record = {};\n\n for (const [valueKey, valueNode] of Object.entries(values)) {\n overrideValues[valueKey] = this.resolveNode(valueNode, substitutions);\n }\n\n const formatter = new IntlMessageFormat(key);\n const result = formatter.format(overrideValues);\n\n return _.isString(result) ? result : _.join(result, \"\\r\\n\");\n }\n}\n\n/**\n * AI model event (for chart annotations)\n */\nclass AIModelEvent extends EventBase {\n /**\n * Get the metadata for the event\n */\n @memoize\n getContext(): {\n status: EventStatus;\n translations: JsonValue;\n version: number;\n } {\n const {\n context: { impactTrackingState, translations, version }\n } = this.entity;\n\n return {\n translations: JSON.parse(translations),\n status: impactTrackingState as EventStatus,\n version: !!version ? parseFloat(version) : 1\n };\n }\n\n @memoize\n getDescription(): string {\n const { version } = this.getContext();\n\n return version === 1 ? this.getV1Description() : this.getV2Description();\n }\n\n @memoize\n getV1Description(): string {\n const { description: originalDescription } = this.entity;\n const parts = _.trim(originalDescription).split(/\\[|\\]/);\n\n const metrics = _.mapValues(\n _.pick(_.keyBy(App.entities.getDataDictionary(App.store.getState()), \"dataProperties.typeName\"), parts),\n (v, k) => i18nTranslate(displayName(k))\n );\n\n return _.join(\n _.map(parts, (part) => metrics[part] || part),\n \"\"\n );\n }\n\n @memoize\n getV2Description(): string {\n let result;\n\n const { unitSystem } = _.defaultTo(App.entities.getUserPreferences(App.store.getState()), {\n unitSystem: \"SI\"\n }) as UserPreferencesEntity;\n\n const { translations } = this.getContext();\n const resolver = new TranslationResolver(_.toLower(unitSystem));\n const isTranslatable = isTranslationObject(translations);\n\n if (isTranslatable) {\n result = resolver.resolveTranslation(translations);\n } else if (_.isArray(translations)) {\n result = _.join(\n _.compact(\n _.map(translations, (t) => (isTranslationObject(t) ? resolver.resolveTranslation(t) : null))\n ),\n \"\\r\\n\"\n );\n } else {\n result = \"[NOT_TRANSLATABLE]\";\n }\n\n return result;\n }\n\n /**\n * Get the components for the events\n */\n @memoize\n getComponents(): ReturnType {\n return {\n Page: ImpactTrackedEventPage,\n ExpandIcon: CustomEventExpandIcon,\n View: CustomEventView,\n CTA: CustomEventCta\n };\n }\n}\n\nexport { AIModelEvent };\n","import * as _ from \"lodash\";\n\nimport { EventSourceType, ExtendedEventEntity } from \"@ctra/api\";\nimport { getInheritedPropertyNames } from \"@ctra/utils\";\n\nimport { GenericInsightEvent } from \"./GenericInsightEvent\";\nimport { CustomEvent } from \"./CustomEvent\";\nimport { AIModelEvent } from \"./AIModelEvent\";\nimport { EventBase } from \"./Base\";\n\ntype RegisteredEvents = typeof GenericInsightEvent | typeof CustomEvent | typeof AIModelEvent;\n\n/**\n * A factory to create a nice API around the events\n * @example\n * ```ts\n * Factory.create(eventObject, extra, info, to, pass);\n * // instanceof GenericInsightEvent extends BaseEvent\n * ```\n */\nclass Factory {\n /**\n * Keep all the registered event here\n */\n private static _registry = new Map();\n\n /**\n * Register a class of event\n * @param source\n * @param cls\n */\n static register(source: EventSourceType, cls: I): void {\n if (!Factory._registry.has(source)) {\n Factory._registry.set(source, cls);\n } else {\n throw new Error(`${source} is already set in the registry`);\n }\n }\n\n /**\n * Create an instance object\n * @param event\n * @param rest\n * @returns\n */\n static create(event: ExtendedEventEntity, ...rest: unknown[]): InstanceType {\n const type = _.get(event, [\"source\", \"type\"]);\n\n if (type) {\n const cls = Factory._registry.get(type);\n\n if (!cls) {\n throw new Error(`${type} is not yet in the registry`);\n }\n\n return new cls(event, ...rest);\n }\n\n console.error(\"Event type is not defined\", event);\n throw new Error(\"Event type is not defined. See console.error for more details.\");\n }\n\n /**\n * Serialize any event object to {} for allowing spread operations\n * @param instance\n */\n static serialize = >(instance: T): Record =>\n _.reduce>(\n getInheritedPropertyNames(instance, EventBase) as Array,\n (result, key) => {\n // @ts-ignore - binding is necessary\n result[key] = _.isFunction(instance[key]) ? instance[key].bind(instance) : instance[key];\n\n return result;\n },\n {} as Record\n );\n}\n\nFactory.register(EventSourceType.genericInsight, GenericInsightEvent);\nFactory.register(EventSourceType.customEvent, CustomEvent);\nFactory.register(EventSourceType.genericLabel, CustomEvent);\nFactory.register(EventSourceType.aiModel, AIModelEvent);\n\nexport { Factory };\n","export enum GACategory {\n timeline = \"Farm timeline\",\n eventPage = \"Event page\"\n}\n\nexport enum GAActions {\n addEvent = \"Add event\",\n updateEvent = \"Update event\",\n closeEvent = \"Close event\",\n closeFarmTimeline = \"Close farm timeline\",\n closeWhileChartZoom = \"Close farm timeline in chart zoom\",\n closeWhileComparing = \"Close 'Events during this period'\",\n openAddEvent = \"Open 'add event'\",\n openEvent = \"Open event\",\n openFarmTimeline = \"Open farm timeline\",\n cannotOpenFarmTimeline = \"Try to open disabled farm timeline\",\n openWhileChartZoom = \"Open farm timeline in chart zoom\",\n openWhileComparing = \"Open 'Events during this period'\",\n pickTimePeriod = \"Change time\",\n saveDetails = \"Save details\",\n selectCategory = \"Select event category\",\n selectEvent = \"Select event\",\n selectScope = \"Select scope\",\n skipDetails = \"Skip details\",\n updateDetails = \"Update details\",\n addNewMetric = \"Add new metric\",\n deleteMetric = \"Delete metric\"\n}\n\nexport enum EventListURLParams {\n selectedEvent = \"selectedEvent\",\n timelineStatus = \"timelineStatus\"\n}\n\nexport enum TimelineStatus {\n open = \"open\",\n closed = \"closed\"\n}\n","import React, { FC } from \"react\";\nimport { useLocation } from \"react-router-dom\";\n\nimport { Button } from \"@ctra/components\";\nimport { Enterprise } from \"@ctra/api\";\n\nimport { useEvent, testIds } from \"@events\";\n\n/**\n * Generic Event call to action component\n * @constructor\n */\nexport const GenericEventCta: FC = () => {\n const { pathname, search } = useLocation();\n const { getContext } = useEvent();\n const { urlParams, ctaText } = getContext();\n\n /**\n * Build the search params and push to the new path\n */\n const handleClick = () => {\n const searchParams = new URLSearchParams(search);\n\n for (const [key, value] of urlParams as Map) {\n searchParams.append(key, value);\n }\n\n Enterprise.history.push({\n pathname,\n search: searchParams.toString()\n });\n };\n\n return (\n \n );\n};\n","import React, { FC, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { Button, DeleteOutlined, Popconfirm } from \"@ctra/components\";\nimport { EnterpriseAppState, Events } from \"@ctra/api\";\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\nimport { isPending } from \"@ctra/utils\";\n\nimport { testIds, useEvent } from \"@events\";\n\n/**\n * Custom event call to action component\n * @constructor\n */\nexport const CustomEventCta: FC = () => {\n const [confirmDeleteVisible, setConfirmDeleteVisible] = useState(false);\n const { t } = useTranslation();\n\n const {\n events: {\n list: {\n entry: {\n cta: {\n remove: { confirm, yes, no }\n }\n }\n }\n }\n } = Content;\n\n const {\n event: {\n id,\n source: { type, id: sourceID }\n }\n } = useEvent();\n\n const dispatch = useDispatch();\n\n /**\n * Tell if the given event is being deleted\n */\n const isDeleting = useSelector((state) =>\n isPending(state, Events.types.DELETE_EVENT, { primaryValue: id })\n );\n\n return (\n (confirm)}\n onConfirm={() => {\n dispatch(Events.actions.deleteEvent.start(id, type, sourceID));\n }}\n okText={t(yes)}\n okButtonProps={{ loading: isDeleting }}\n onCancel={() => setConfirmDeleteVisible(false)}\n cancelText={t(no)}\n >\n setConfirmDeleteVisible(true)}\n size=\"small\"\n icon={}\n />\n \n );\n};\n","import React, { FC } from \"react\";\n\nimport { DownOutlined } from \"@ctra/components\";\n\ninterface CustomEventExpandIconProps {\n /**\n * Angle of rotation for the icon\n */\n rotate: number;\n}\n\n/**\n * Custom event expand icon\n * @param {React.PropsWithChildren} props\n * @return {JSX.Element}\n * @constructor\n */\nexport const CustomEventExpandIcon: FC = ({ rotate }) => {\n return ;\n};\n","import { FC, useState } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Collapse, Row, Col } from \"@ctra/components\";\nimport { useGoogleAnalytics } from \"@ctra/analytics\";\nimport { useEvent, testIds, GAActions } from \"@events\";\n\nimport styles from \"./GenericEventView.module.less\";\n\nconst { Panel } = Collapse;\n\n/**\n * Generic Event View component\n * @constructor\n */\nexport const GenericEventView: FC<{ interactive?: boolean; open?: boolean }> = ({\n children,\n open = false,\n interactive = true\n}) => {\n const [expanded, setExpanded] = useState(open);\n const { trackEvent } = useGoogleAnalytics();\n\n const {\n event: { id },\n getTitle,\n getStartMoment,\n getEndMoment,\n isSupported,\n getComponents\n } = useEvent();\n\n const { CTA, ExpandIcon } = getComponents();\n\n /**\n * Tell if the event falls on the same day\n */\n const sameDayEvent = getStartMoment().isSame(getEndMoment(), \"day\");\n\n /**\n * Date format\n */\n const format = \"MMM D\";\n\n return (\n {\n /* istanbul ignore next */\n trackEvent(expanded ? GAActions.closeEvent : GAActions.openEvent);\n }}\n expandIcon={({ isActive }) => {\n /**\n * Using setTimeout to queue the setSate call\n * This is necessary to get rid of the warning below\n *\n * Cannot update a component (`EventEntry`) while\n * rendering a different component (`CollapsePanel`)\n */\n setTimeout(() => {\n setExpanded(!!isActive);\n }, 0);\n\n return (\n
\n {/* use expanded.toString() to avoid the non-string html parameter warning */}\n \n
\n );\n }}\n expandIconPosition=\"end\"\n >\n \n {sameDayEvent ? (\n {getStartMoment().format(format)}\n ) : (\n \n {getStartMoment().format(format)} - {getEndMoment().format(format)}\n \n )}\n {interactive && isSupported() && expanded && (\n {\n /* istanbul ignore next */\n evt.stopPropagation();\n }}\n >\n \n \n )}\n \n }\n >\n {children}\n \n \n );\n};\n","import React, { FC } from \"react\";\nimport Markdown from \"react-markdown\";\n\nimport { GenericEventView, testIds, useEvent } from \"@events\";\nimport { Col, Row, Typography } from \"@ctra/components\";\n\nconst { Text } = Typography;\n\n/**\n * Custom Event View component\n * @constructor\n */\nexport const CustomEventView: FC<{ open?: boolean }> = (props) => {\n const { getDescription } = useEvent();\n\n return (\n \n \n {getDescription() && (\n \n {getDescription()}\n \n )}\n \n \n );\n};\n","import React, { FC } from \"react\";\n\nimport { GenericEventView, testIds, useEvent } from \"@events\";\nimport { Col, Row, Typography } from \"@ctra/components\";\n\nconst { Text } = Typography;\n\n/**\n * View for GenericInsight-based events\n * @constructor\n */\nexport const GenericInsightEventView: FC<{ open?: boolean }> = (props) => {\n const { getDescription } = useEvent();\n\n return (\n \n \n \n {getDescription()}\n \n \n \n );\n};\n","import { makeTestIds } from \"@ctra/utils\";\n\n/**\n * Make test ids for game plans\n */\nexport const testIds = makeTestIds(\"timeline\", {\n createEvent: {\n wizard: {\n container: \"container\"\n },\n modal: {\n desktop: \"desktop\",\n mobile: \"mobile\"\n },\n question: {\n rollback: \"rollback\"\n },\n labelPicker: {\n container: \"container\",\n addNewButton: \"addNewButton\",\n dropdown: \"dropdown\",\n dropdownToggle: \"dropdownToggle\",\n label: \"label\",\n category: \"category\",\n customLabel: {\n input: \"input\",\n submit: \"submit\"\n },\n inactive: {\n tag: \"tag\"\n }\n },\n datepicker: {\n radio: \"radio\"\n },\n herdGroupSelector: {\n inactive: \"inactive\",\n select: \"select\"\n },\n description: {\n textarea: \"textarea\",\n inactive: \"inactive\",\n submit: \"submit\"\n },\n summary: {\n description: \"description\"\n }\n },\n cta: {\n wrapper: \"wrapper\",\n button: {\n delete: \"delete\"\n }\n },\n entity: {\n entry: {\n description: \"description\",\n view: \"view\",\n wrapper: \"wrapper\"\n }\n },\n expandIcon: \"expandIcon\",\n list: {\n header: \"header\",\n wrapper: \"wrapper\"\n }\n});\n","import { Debug } from \"@ctra/utils\";\nimport { FarmTimelinePage } from \"./components\";\n\nDebug.create(\"farmTimeline\", \"Farm Timeline\", { prefixColor: \"#6A5D4D\", transports: true });\n\nexport * from \"./processing\";\nexport * from \"./components\";\nexport * from \"./providers\";\nexport * from \"./routes\";\nexport * from \"./analytics\";\nexport * from \"./event-extras\";\nexport * from \"./event-view\";\nexport * from \"./event-page\";\nexport * from \"./testing\";\nexport * from \"./utils\";\n\nexport default FarmTimelinePage;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"EventList\":\"EventList--3d9ci\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"SectionPanel\":\"SectionPanel--2nVZM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Progress\":\"Progress--1A8i3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"EmptyPanel\":\"EmptyPanel--3XaRd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Icon\":\"Icon--envMP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"FarmProgress\":\"FarmProgress--2t8L7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ListHeader\":\"ListHeader--3IKmW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"EventOriginIcon\":\"EventOriginIcon--2cou6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Wrapper\":\"Wrapper--KNEUX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Tag\":\"Tag--3773H\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"PageContent\":\"PageContent--3MN7F\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Wrapper\":\"Wrapper--aveRk\",\"EventWidget\":\"EventWidget--lfmki\",\"Analysis\":\"Analysis--2uuNJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"PageContent\":\"PageContent--31yMY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"CopyLinkWrapper\":\"CopyLinkWrapper--1eOkG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Wrapper\":\"Wrapper--17KRK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Caret\":\"Caret--33bAG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ChartContainer\":\"ChartContainer--2lg8C\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Link\":\"Link--19F9y\",\"Smile\":\"Smile--3u_26\",\"Steps\":\"Steps--IKaX5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Icon\":\"Icon--1wO6n\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Icon\":\"Icon--2cXSp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ChartContainer\":\"ChartContainer--BCGb8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"PageContent\":\"PageContent--1TRwK\",\"Wrapper\":\"Wrapper--3zJh0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ListItem\":\"ListItem--6p2Py\",\"Wrapper\":\"Wrapper--PlqJ1\",\"Sub\":\"Sub--3RixJ\",\"Unread\":\"Unread--JzhLU\",\"Barn\":\"Barn--3GCVO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Row\":\"Row--xzJjq\",\"LastRow\":\"LastRow--2jR0_\",\"Padded\":\"Padded--1SMbE\",\"PaddedChart\":\"PaddedChart--3RCxl\",\"Gray\":\"Gray--3_Cjm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Wrapper\":\"Wrapper--2MsGb\",\"Divider\":\"Divider--1M5kI\",\"InputCol\":\"InputCol--20gp2\",\"Link\":\"Link--3ruzq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Collapse\":\"Collapse--1z1A8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Wrapper\":\"Wrapper--1D3kZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Wrapper\":\"Wrapper--2gb-R\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"PageContent\":\"PageContent--1kRq7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Wrapper\":\"Wrapper--2OtV_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Wrapper\":\"Wrapper--19AqV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Wrapper\":\"Wrapper--zHVp1\"};","/**\n * @todo add more grammatical cases for translation accuracy\n * @see https://en.wikipedia.org/wiki/List_of_glossing_abbreviations\n */\nenum Case {\n inessive = \"INE\",\n accusative = \"ACC\",\n superessive = \"SUPESS\"\n}\n\n/**\n * \"The\", \"a\", \"an\" or nothing\n */\nenum Article {\n definite = \"DEF\",\n indefinite = \"NDEF\"\n}\n\nexport const Grammar = {\n Case,\n Article\n};\n","/* eslint @typescript-eslint/no-explicit-any: 0 */\n// @ts-ignore - we can ignore this, it sits in global.d.ts\nimport keymirror from \"key-mirror-nested\";\nimport * as _ from \"lodash\";\n\nimport { Nullable } from \"@ctra/utils\";\n\n/**\n * Get all the function arguments apart from the 1st one.\n * As the asset creator is a result of a _.partial, we rely on this one.\n */\ntype TailParameters any> = F extends (head: any, ...tail: infer T) => any\n ? T\n : never;\n\nexport type AssetError = {\n error: string;\n copyKey: string;\n identity: string;\n rest: string[];\n result: string;\n};\n\n/**\n * Asset definition: string or null\n */\ntype AssetDefinition = Nullable;\n\n/**\n * Create a string asset (copy key) by joining the arguments of the function.\n */\ntype AssetCreatorDefinition = (copyKey: string, ...suffix: string[]) => string | AssetError;\n\n/**\n * i18n content definition\n * @note exported for unit testing\n */\nexport type ContentDefinition = {\n [assetId: string]: ContentDefinition | AssetDefinition | AssetCreatorDefinition;\n};\n\n/**\n * String asset (copy key)\n */\ntype Asset = string;\n\n/**\n * Asset creator\n */\nexport type AssetCreator = (\n ...suffix: TailParameters\n) => ReturnType;\n\n/**\n * i18n module\n * @typeParam C - content definition\n */\nexport type I18NModule = {\n [assetId in keyof C]: C[assetId] extends ContentDefinition\n ? I18NModule\n : C[assetId] extends AssetCreatorDefinition\n ? AssetCreator\n : Asset;\n};\n\ntype I18NModuleCreator = (moduleName: string, content: C) => I18NModule;\n\nexport const assetSeparator = \"-\";\n\n/**\n * Create content module by generating translation keys from a nested object.\n * @param {string} moduleName\n * @param {{}} content\n * @example\n * ```ts\n * const module = createModule(\"moduleName\", {\n * key1: \"value1\",\n * nested: {\n * key2: \"value2\",\n * deeper: {\n * key3: \"value3\"\n * }\n * },\n * key4: (copyKey, suffix = \"\") => `${copyKey}-${suffix}`\n * });\n *\n * console.log(module.key1); // \"moduleName.value\"\n * console.log(module.nested.key2); // \"moduleName.nested-key2\"\n * console.log(module.nested.deeper.key3); // \"moduleName.nested-deeper-key3\"\n * console.log(module.key4(\"any-suffix\")); // \"moduleName.key4-any-suffix\"\n * ```\n */\nexport const createModule: I18NModuleCreator = (moduleName, content): any => {\n if (!_.isObject(content)) {\n throw new Error(\"An i18n module must be an object.\");\n }\n\n return keymirror>(content, {\n connChar: assetSeparator,\n /**\n * Customize output\n * @param {*} oldVal\n * @param {string} newVal\n * @return {string|function}\n */\n custFunc: (oldVal: AssetDefinition | AssetCreatorDefinition, newVal: string): Asset | AssetCreator => {\n const copyKey = `${moduleName}.${newVal}`;\n\n if (_.isFunction(oldVal)) {\n return _.partial(oldVal, copyKey);\n }\n\n return copyKey;\n }\n });\n};\n","/**\n * Convert an Array type to Record using the members of the given array as keys.\n * @typeParam A - the Array to convert to Record\n */\ntype FromArray
= Record;\n\n/**\n * Create a { [key1]: null, [key2]: null } object from a given [key1, key2] array.\n * @typeParam A - list of copy keys to convert\n * @param {string[]} copyKey\n * @return {{}}\n * @example\n * ```ts\n * from(\"a\", \"b\", \"c\");\n * // { a: null, b: null, c: null }\n * ```\n */\nexport const from = (...copyKey: A): FromArray =>\n copyKey.reduce((o, i) => ({ ...o, [i]: i }), {} as FromArray);\n","import * as _ from \"lodash\";\nimport { AssetError, assetSeparator } from \"./create-module\";\n\n/**\n * Make a unique asset from anything\n * @param copyKey\n * @param identity\n * @param rest\n */\nexport const makeAsset = (copyKey: string, identity: string, ...rest: string[]): string | AssetError => {\n const passes = _.isString(identity) && (!rest.length || _.every(rest, _.isString));\n\n const convertedIdentity = _.upperFirst(_.camelCase(identity));\n const result = `${copyKey}-${convertedIdentity || identity}${\n rest.length ? `#${_.join(_.map(rest, _.camelCase), assetSeparator)}` : \"\"\n }`;\n\n return passes ? result : { error: \"Invalid asset\", copyKey, identity, rest, result };\n};\n","import * as _ from \"lodash\";\nimport { Nullable } from \"@ctra/utils\";\n\n/**\n * Parse a $`content` formatted loco template string\n * @param {string} text\n * @param {boolean} trim\n * @param {boolean} passthrough\n * @returns {Nullable>}\n */\nexport const parseLocoTemplate = (\n text: string,\n {\n trim,\n passthrough\n }: {\n trim?: boolean;\n passthrough?: boolean;\n } = { trim: false, passthrough: false }\n): Nullable> => {\n const rx = new RegExp(\"\\\\$`(.*?)`\", \"gi\");\n const compact = _.compact(text.split(rx));\n const result: Array = trim ? _.filter(compact, (content) => /\\S/.test(content)) : compact;\n\n return result.length > 1 || passthrough ? result : null;\n};\n","import { createModule, from, makeAsset } from \"../../utils\";\n\nexport const login = createModule(\"login\", {\n ...from(\"social\"),\n page: from(\"header\", \"content\"),\n form: {\n ...from(\"title\", \"loginFailed\", \"welcome\", \"activated\", \"footer\"),\n labels: from(\"username\", \"password\", \"rememberMe\", \"submit\", \"forgotPassword\", \"activationResent\"),\n placeholders: from(\"username\", \"password\"),\n validation: from(\"emailFormat\", \"emailRequired\", \"incorrectCredentials\", \"passwordRequired\")\n }\n});\n\nexport const forgotPassword = createModule(\"forgotPassword\", {\n page: from(\"header\", \"content\"),\n form: {\n ...from(\"title\", \"subtitle\", \"description\", \"requestSentMessage\"),\n labels: from(\"emailAddress\", \"sendResetLink\", \"login\"),\n placeholders: from(\"username\"),\n validation: from(\"emailFormat\", \"emailRequired\")\n }\n});\n\nexport const resetPassword = createModule(\"resetPassword\", {\n page: from(\"header\", \"content\"),\n form: {\n ...from(\"title\", \"subtitle\", \"resetPasswordMessage\"),\n labels: from(\"emailAddress\", \"login\", \"resetPassword\"),\n placeholders: from(\"password\", \"confirmPassword\"),\n validation: from(\n \"emailFormat\",\n \"emailRequired\",\n \"passwordRequired\",\n \"passwordLength\",\n \"passwordCharacters\",\n \"passwordsMatch\"\n )\n }\n});\n\nexport const acceptInvite = createModule(\"acceptInvite\", {\n error: makeAsset,\n page: {\n ...from(\"header\", \"title\", \"content\", \"divider\", \"hasAccount\", \"login\"),\n modal: from(\"subTitle\", \"action\")\n },\n form: {\n ...from(\"inviteRejectedMessage\"),\n subType: makeAsset,\n labels: from(\n \"emailAddress\",\n \"createAccount\",\n \"password\",\n \"confirmPassword\",\n \"firstName\",\n \"lastName\",\n \"companyName\",\n \"subType\"\n ),\n placeholders: from(\n \"companyName\",\n \"emailAddress\",\n \"phoneNumber\",\n \"password\",\n \"confirmPassword\",\n \"firstName\",\n \"lastName\",\n \"subType\"\n ),\n validation: from(\n \"emailFormat\",\n \"emailRequired\",\n \"passwordRequired\",\n \"passwordLength\",\n \"passwordsMatch\",\n \"passwordFormat\",\n \"firstNameRequired\",\n \"lastNameRequired\",\n \"companyName\"\n )\n },\n modal: {\n actions: from(\"ok\", \"cancel\"),\n body: \"body\",\n title: \"title\"\n }\n});\n","import { createModule, from, makeAsset } from \"../../utils\";\n\nexport const kpi = createModule(\"kpi\", {\n ...from(\"noFarmSupport\", \"noFarmConsent\"),\n singleFarmChart: from(\"title\", \"description\"),\n scorecard: {\n data: from(\"notAvailable\")\n },\n displayName: makeAsset,\n category: makeAsset,\n acquisitionMethod: makeAsset,\n unsupported: from(\"title\", \"description\")\n});\n","import { createModule } from \"../../utils\";\n\nexport const helloWorld = createModule(\"test\", {\n theSecret: \"the-secret-of-getting-ahead-is-getting-started\",\n helloWorld: \"hello-world\"\n});\n","import { createModule, from } from \"../../utils\";\n\n/**\n * Generic UI content\n * @type {I18NModule<{table: FromArray<[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]>}>}\n */\nexport const ui = createModule(\"ui\", {\n ...from(\"new\", \"beta\", \"na\", \"self\"),\n cookies: from(\"title\", \"text\", \"link\", \"accept\"),\n loaders: from(\"longRequest\", \"renewToken\", \"acceptInvite\", \"loggingIn\", \"reload\"),\n table: from(\n \"filterTitle\",\n \"filterConfirm\",\n \"filterReset\",\n \"filterEmptyText\",\n \"filterCheckall\",\n \"filterSearchPlaceholder\",\n \"emptyText\",\n \"selectAll\",\n \"selectInvert\",\n \"selectNone\",\n \"selectionAll\",\n \"sortTitle\",\n \"expand\",\n \"collapse\",\n \"triggerDesc\",\n \"triggerAsc\",\n \"cancelSort\"\n )\n});\n\n/**\n * Module for navigation related content\n * @todo don't pollute, this is not a trash for content without a category\n */\nexport const navigation = createModule(\"navigation\", {\n main: from(\n \"overview\",\n \"insights\",\n \"farms\",\n \"gamePlans\",\n \"iofc\",\n \"farmSummaries\",\n \"docs\",\n \"fetchingData\",\n \"analytics\",\n \"settings\",\n \"myConnections\",\n \"helpCenter\",\n \"support\",\n \"allFarms\",\n \"selectFarm\",\n \"backToAllFarms\",\n \"more\",\n \"timeline\",\n \"collapse\",\n \"logout\"\n ),\n fab: from(\"compareCharts\", \"newGamePlan\", \"activateInsight\", \"addEvent\"),\n userMenu: from(\"logout\"),\n language: from(\"label\"),\n unitSystem: from(\"label\", \"imperial\", \"metric\"),\n demo: from(\"on\", \"off\")\n});\n\n/**\n * Generic free version indicator\n */\nexport const free = createModule(\"free\", {\n text: \"text\",\n popover: \"popover\",\n title: \"title\"\n});\n\n/**\n * Error handling\n */\nexport const errors = createModule(\"errors\", {\n notFound: from(\"title\", \"subtitle\", \"action\"),\n jsError: from(\"title\", \"subtitle\", \"action\")\n});\n","import * as _ from \"lodash\";\nimport { createModule, from, makeAsset } from \"../../utils\";\n\n/**\n * Shared content structure between the dashboard and the farm page.\n * @type {{[p: string]: string, popover: FromArray<[string, string]>}}\n */\nconst content = {\n ...from(\"header\", \"loading\"),\n popover: from(\"title\", \"content\")\n};\n\n/**\n * Welcome message for any page\n * @type {FromArray<[string, string]>}\n */\nconst pageIntro = {\n pageIntro: from(\"title\", \"description\")\n};\n\nconst section = {\n description: (copyKey: string, sectionTitle: string): string => `${copyKey}-${_.camelCase(sectionTitle)}`\n};\n\nexport const layouts = createModule(\"layouts\", {\n dashboard: {\n ...content,\n ...pageIntro,\n compareCharts: {\n ...pageIntro,\n title: \"compareCharts\",\n ...content\n },\n section,\n farmDetails: {\n title: \"title\"\n },\n callout: {\n title: makeAsset,\n description: makeAsset,\n navigation: \"navigation\"\n },\n viewAnalytics: \"viewAnalytics\"\n },\n insights: {\n ...pageIntro,\n ...content\n },\n gamePlans: {\n ...pageIntro,\n ...content\n },\n tasks: content,\n farm: {\n ...content,\n section\n },\n section: {\n subsection: from(\"navTitle\", \"projections\"),\n title: (copyKey: string, sectionTitle: string): string => `${copyKey}-${_.camelCase(sectionTitle)}`,\n goto: \"goto\",\n markedNew: \"markedNew\",\n markedBeta: \"markedBeta\",\n unsupported: from(\"title\", \"description\"),\n featuredNew: {\n title: \"title\",\n content: \"content\"\n }\n }\n});\n","import { createModule, from, makeAsset } from \"../../utils\";\n\nexport const chart = createModule(\"chart\", {\n description: makeAsset,\n ...from(\"loading\", \"beta\", \"compare\"),\n error: from(\"title\", \"description\"),\n footer: from(\"dataQuality\"),\n empty: from(\"description\", \"manualDescription\", \"manualCta\"),\n timePeriod: (copyKey, iso8601Duration) => `${copyKey}-${iso8601Duration}`,\n unit: {\n custom: makeAsset,\n default: \"default\"\n },\n view: (copyKey, view) => `${copyKey}-${view}`,\n seriesTitle: makeAsset,\n axisLabel: from(\"x\"),\n filters: {\n eventToggle: \"eventToggle\",\n dimGroup: {\n label: \"label\",\n single: \"single\",\n all: \"all\",\n placeholder: \"placeholder\"\n },\n herdGroup: {\n label: \"label\",\n single: \"single\",\n all: \"all\",\n placeholder: \"placeholder\"\n },\n pen: {\n label: \"label\",\n single: \"single\",\n all: \"all\",\n placeholder: \"placeholder\"\n }\n },\n series: makeAsset,\n tooltipTitle: \"tooltipTitle\",\n tooltip: {\n contextLabel: makeAsset\n },\n bar: {\n axisTitle: from(\"x\")\n },\n line: {\n axisTitle: from(\"x\"),\n tooltip: {\n annotations: from(\"title\")\n }\n },\n heatmap: {\n seriesTitle: \"seriesTitle\"\n }\n});\n\nexport const graph = createModule(\"graph\", {\n axisLabel: {\n x: makeAsset,\n y: makeAsset\n }\n});\n","import { createModule, from } from \"../../utils\";\n\nexport const gamePlan = createModule(\"gamePlan\", {\n ...from(\"pageHeader\"),\n /**\n * navigating between different game plan lists\n */\n navigation: from(\"active\", \"previous\"),\n /**\n * user interactions with a game plan as a whole\n */\n actions: {\n delete: {\n ...from(\"label\", \"pending\", \"success\"),\n confirm: from(\"title\", \"yes\", \"no\")\n },\n create: \"create\",\n edit: \"edit\"\n },\n /**\n * game plan list related content\n */\n list: {\n empty: from(\"title\", \"description\"),\n headers: from(\"title\", \"kpi\", \"current\", \"target\", \"tasks\", \"period\", \"start\"),\n viewAll: \"viewAll\"\n },\n /**\n * task list related content\n */\n todo: {\n ...from(\"lastModified\"),\n list: {\n empty: from(\"title\", \"description\")\n },\n status: from(\"overdue\", \"todo\", \"done\"),\n update: from(\"complete\", \"unmark\", \"reject\")\n },\n /**\n * game plan wizard\n */\n wizard: {\n title: from(\"create\", \"update\", \"updateHeader\", \"general\", \"tracking\", \"tasks\", \"summary\"),\n subtitle: from(\"general\", \"tracking\", \"tasks\", \"summary\"),\n step: from(\"general\", \"tracking\", \"tasks\", \"summary\", \"next\", \"previous\"),\n form: {\n actions: from(\"submit\", \"cancel\", \"addTask\"),\n label: {\n ...from(\"title\", \"description\", \"timePeriod\", \"dataDescriptorID\", \"farmID\", \"goal\"),\n taskList: from(\"label\", \"assignedTo\", \"dueDate\", \"optional\")\n },\n validation: {\n ...from(\"title\", \"farmID\", \"timePeriod\", \"dataDescriptorID\"),\n taskList: {\n label: \"label\"\n }\n },\n placeholder: {\n ...from(\"title\", \"description\", \"startEpoch\", \"endEpoch\", \"dataDescriptorID\", \"farmID\"),\n goal: from(\"enabled\", \"disabled\"),\n taskList: from(\"label\", \"assignedTo\", \"dueDate\", \"addTask\")\n },\n extra: from(\"submitting\", \"description\", \"hasTarget\", \"hasNoTarget\", \"withoutKPI\")\n }\n },\n /**\n * generic labels related to game plans (may be spread through many components)\n */\n labels: from(\"kpi\", \"current\", \"goal\", \"description\", \"todo\", \"period\", \"title\", \"deadline\", \"farm\")\n});\n","import { createModule, from, makeAsset } from \"../../utils\";\n\nexport const analytics = createModule(\"analytics\", {\n /**\n * charts comparison module\n */\n compare: {\n ...from(\"title\", \"subtitle\", \"openEventList\", \"showAnnotations\", \"goback\", \"showTimeline\"),\n dropdowns: {\n label: from(\"farm\"),\n notFound: \"notFound\",\n placeholder: from(\"farm\", \"fetchingFarmList\", \"category\", \"chart\"),\n suggestions: \"suggestions\"\n },\n empty: from(\"title\", \"description\"),\n sections: makeAsset\n },\n correlations: {\n ...from(\n \"alert\",\n \"pageTitle\",\n \"pageDescription\",\n \"suggestions\",\n \"events\",\n \"add\",\n \"goBack\",\n \"show\",\n \"selectedChart\"\n ),\n headers: from(\"trend\", \"correlation\", \"chartSelect\"),\n trend: \"trend\",\n correlation: \"correlation\",\n tooltip: \"tooltip\",\n metric: makeAsset,\n chart: {\n ...from(\"correlationHeader\"),\n error: from(\"alreadyUsed\", \"noCorrelations\")\n }\n },\n config: {\n ...from(\"pageTitle\"),\n search: from(\"pageDescription\", \"title\", \"placeholder\", \"cta\"),\n metric: { displayName: makeAsset, ...from(\"info\", \"filter\") },\n placeholders: from(\"metric\", \"variant\", \"source\"),\n variant: makeAsset,\n source: makeAsset,\n infoTip: \"infoTip\",\n projections: \"projections\"\n },\n v3: {\n ...from(\n \"pageTitle\",\n \"pageDescription\",\n \"dashboard\",\n \"addCta\",\n \"addDashboard\",\n \"analysis\",\n \"browseCta\",\n \"editDescription\"\n ),\n metricSelector: { view: \"view\" },\n empty: {\n dashboards: from(\"title\", \"description\", \"cta\"),\n charts: from(\"title\", \"description\", \"cta\")\n },\n confirm: {\n newTab: from(\"title\", \"description\", \"inputPlaceholder\"),\n removeTab: from(\"title\", \"description\"),\n renameTab: from(\"title\", \"description\"),\n copyTab: from(\"title\", \"dashboard\", \"farm\", \"alert\"),\n saveChart: from(\"title\", \"description\"),\n removeChart: from(\"title\", \"description\"),\n error: from(\"duplicateTab\")\n },\n config: {\n cta: from(\"save\", \"add\", \"update\", \"back\", \"cancel\", \"report\", \"share\")\n },\n tooltips: from(\"dashboard\", \"addChart\")\n },\n feedback: from(\n \"title\",\n \"description\",\n \"date\",\n \"feedback\",\n \"submit\",\n \"cancel\",\n \"done\",\n \"thankYou\",\n \"nextSteps\"\n ),\n share: {\n ...from(\"title\", \"close\", \"status\", \"callback\"),\n tabs: from(\"email\", \"link\"),\n email: {\n ...from(\"description\"),\n labels: from(\"email\", \"message\", \"submit\"),\n validation: from(\"email\")\n },\n link: {\n ...from(\"description\"),\n labels: from(\"copy\", \"copy\"),\n messages: from(\"copied\", \"copyError\")\n },\n publicPage: {\n ...from(\"title\", \"pretext\", \"description\"),\n cta: from(\"title\", \"text\", \"button\")\n }\n }\n});\n","import { createModule, from, makeAsset } from \"../../utils\";\n\nexport const settings = createModule(\"settings\", {\n tabs: from(\"settings\", \"inputs\"),\n pageIntro: from(\"title\", \"description\"),\n type: from(\"insight\", \"help\", \"account\"),\n navigation: from(\"general\", \"insights\", \"notifications\", \"account\", \"personal\", \"password\", \"users\"),\n insights: {\n ...from(\"title\", \"description\"),\n breadcrumbs: from(\"add\", \"edit\"),\n farmList: {\n th: from(\"farmName\", \"insightsEnabled\"),\n td: from(\"insightsEnabled\")\n },\n insightList: {\n ...from(\"title\"),\n empty: from(\"title\", \"description\", \"enable\"),\n actions: from(\"addNew\", \"back\"),\n th: from(\"typeName\", \"range\", \"sensitivity\"),\n td: from(\"range\", \"noRange\")\n },\n kpiInsightForm: {\n labels: {\n ...from(\"dataDescriptorID\", \"thresholds\", \"pen\", \"herdGroup\"),\n range: from(\"primary\", \"secondary\", \"average\"),\n sensitivity: {},\n input: from(\"lower\", \"upper\")\n },\n placeholders: from(\"dataDescriptorID\", \"pen\", \"herdGroup\"),\n actions: {\n ...from(\"submit\", \"cancel\", \"disable\"),\n disable: {\n ...from(\"label\"),\n confirm: from(\"title\", \"yes\", \"no\")\n }\n }\n }\n },\n accountDetails: {\n ...from(\"title\", \"description\"),\n user: from(\"name\", \"email\", \"locale\")\n },\n notifications: {\n ...from(\"title\", \"description\", \"feature\"),\n mapping: from(\"title\", \"description\", \"popover\"),\n groupMapping: from(\"category\", \"categoryDescription\", \"popover\"),\n appDownload: from(\"title\", \"description\", \"download\")\n },\n dataIntegrations: {\n ...from(\"title\", \"description\"),\n alerts: {\n selectFarm: from(\"title\", \"description\")\n },\n dataType: makeAsset,\n entry: {\n labels: from(\"name\", \"description\", \"lastUpdated\"),\n name: makeAsset,\n description: makeAsset\n }\n },\n inputs: {\n ...from(\"title\", \"description\"),\n alerts: {\n selectFarm: from(\"title\", \"description\")\n },\n widget: {\n title: makeAsset,\n labels: {\n ...from(\"current\", \"action\", \"submit\", \"delete\"),\n formField: makeAsset\n },\n values: {\n currency: makeAsset\n }\n }\n },\n details: from(\"title\", \"description\"),\n password: from(\"title\", \"description\"),\n users: {\n ...from(\"title\", \"description\"),\n alerts: {\n selectFarm: from(\"title\", \"description\"),\n referral: from(\"title\", \"description\")\n },\n actions: {\n ...from(\"invite\"),\n delete: from(\"error\", \"success\"),\n confirmDelete: from(\"ok\", \"cancel\", \"text\")\n },\n table: {\n ...from(\"empty\"),\n columns: from(\"name\", \"email\", \"role\", \"org\", \"invitation\"),\n values: {\n status: makeAsset\n }\n },\n form: {\n ...from(\"title\", \"submit\", \"cancel\", \"error\", \"success\"),\n role: makeAsset,\n validation: from(\n \"firstNameRequired\",\n \"lastNameRequired\",\n \"emailRequired\",\n \"roleRequired\",\n \"consentRequired\"\n ),\n labels: from(\"consent\", \"readMore\", \"firstName\", \"lastName\", \"email\", \"org\", \"role\"),\n placeholders: from(\"firstName\", \"lastName\", \"email\", \"org\", \"role\")\n }\n },\n logout: \"logout\"\n});\n","import { createModule, from, makeAsset } from \"../../utils\";\n\nexport const insights = createModule(\"insights\", {\n modal: from(\"loading\"),\n enable: \"enable\",\n list: {\n headers: from(\"insight\", \"feedback\", \"farm\", \"period\"),\n pageIntro: from(\"title\", \"description\"),\n empty: from(\"title\", \"description\", \"action\"),\n viewAll: \"viewAll\"\n },\n entity: {\n title: makeAsset,\n titleParam: makeAsset,\n description: makeAsset,\n navigation: from(\"details\")\n },\n extensions: {\n score: from(\"label\"),\n createGamePlan: from(\"title\", \"description\", \"action\"),\n cowProfile: from(\"title\"),\n onboarding: {\n footer: from(\"title\", \"description\"),\n chart: {\n ...from(\"title\", \"description\"),\n axis: from(\"x\", \"y\")\n }\n },\n stockingDensity: {\n footer: from(\"title\", \"description\"),\n chart: {\n ...from(\"title\", \"description\"),\n axis: from(\"x\", \"y\")\n }\n },\n bloodScreeningSchedule: {\n ...from(\"title\", \"description\", \"exportLabel\"),\n tabs: from(\"thisWeek\", \"nextWeek\"),\n table: {\n ...from(\"showMore\"),\n columns: from(\"cowTagNumber\", \"calvingDate\", \"screeningResult\"),\n testResults: {\n risk: from(\"high\", \"medium\", \"low\"),\n untested: null\n }\n }\n },\n additiveFeedingSchedule: {\n ...from(\"title\", \"description\"),\n calendar: {\n entry: {\n title: makeAsset\n }\n }\n },\n highRiskCows: {\n ...from(\"title\", \"description\", \"exportLabel\"),\n table: {\n ...from(\"showMore\"),\n columns: from(\"cowTagNumber\", \"riskSeverity\", \"riskType\"),\n risk: from(\"high\", \"medium\", \"low\")\n }\n }\n },\n manage: from(\"title\", \"edit\"),\n popover: from(\"title\", \"content\"),\n workflowState: from(\"toCheck\", \"toFollowUp\", \"done\"),\n stateSince: makeAsset,\n total: makeAsset,\n unseen: \"unseen\"\n});\n\nexport const insightValidations = createModule(\"insight-validations\", {\n steps: {\n question: makeAsset,\n rollback: null\n },\n validationValue: from(\"yes\", \"no\", \"maybe\", \"na\"),\n validationDescription: makeAsset\n});\n\nexport const insightResolutions = createModule(\"insight-resolutions\", {\n ...from(\"placeholder\", \"action\", \"other\", \"customLabel\"),\n title: makeAsset\n});\n","import { createModule, from } from \"../../utils\";\n\n/**\n * Error handling\n */\nexport const cows = createModule(\"cows\", {\n entity: {\n status: (copyKey: string, status: string) => `${copyKey}-${status}`,\n ...from(\"lactationNumber\", \"dim\", \"pen\")\n }\n});\n","import { createModule, from, makeAsset } from \"../../utils\";\n\nexport const askIda = createModule(\"askIda\", {\n question: {\n heading: \"heading\",\n description: \"description\",\n title: \"title\",\n change: makeAsset,\n effect: makeAsset,\n createdOn: \"createdOn\",\n archived: \"archived\"\n },\n answer: {\n ...from(\"empty\", \"heading\", \"title\", \"description\", \"more\"),\n change: from(\"before\", \"expected\", \"after\", \"duration\", \"weight\"),\n effect: {\n description: makeAsset\n }\n },\n createTracker: {\n ...from(\"loading\", \"success\", \"fail\", \"close\"),\n actions: from(\"cancel\", \"confirm\", \"submit\"),\n steps: {\n ...from(\"rollback\"),\n title: makeAsset\n },\n configure: {\n ...from(\"kpiLead\", \"changeDirectionLead\", \"dateTimeLead\"),\n effectDescription: makeAsset,\n placeholders: from(\"change\", \"kpi\"),\n labels: {\n ...from(\"kpi\", \"addRow\", \"next\", \"beta\"),\n change: makeAsset\n }\n },\n summary: from(\"title\", \"description\", \"date\"),\n activateInsight: from(\"title\", \"description\", \"cta\")\n },\n noData: from(\"message\", \"description\")\n});\n","import { createModule, from, makeAsset } from \"../../utils\";\n\nexport const events = createModule(\"events\", {\n entity: {\n ...from(\"noDescription\"),\n title: makeAsset,\n actions: from(\"edit\", \"delete\", \"download\"),\n description: makeAsset,\n ctaText: makeAsset,\n status: makeAsset\n },\n empty: from(\"title\", \"description\", \"action\"),\n list: {\n ...from(\"header\", \"loading\", \"showMore\", \"show\"),\n headers: from(\"title\", \"addEvent\"),\n entry: {\n meta: from(\"source\"),\n cta: {\n ...from(\"ask\"),\n remove: from(\"confirm\", \"yes\", \"no\")\n }\n }\n },\n widget: {\n title: \"title\"\n },\n page: {\n ...from(\"title\", \"description\")\n }\n});\n\nexport const timeline = createModule(\"timeline\", {\n drawer: from(\"title\", \"toggle\", \"tooltip\"),\n filter: {\n ...from(\"placeholder\"),\n origin: makeAsset,\n type: makeAsset,\n group: from(\"origin\", \"type\")\n },\n createEvent: {\n ...from(\"summary\", \"submit\", \"cancel\", \"loading\", \"updating\", \"success\", \"fail\", \"trackingInfo\"),\n dialog: from(\"title\"),\n steps: {\n title: makeAsset,\n rollback: null\n },\n labelPicker: {\n ...from(\"title\", \"other\", \"placeholder\"),\n custom: from(\"placeholder\", \"newLabel\"),\n category: makeAsset,\n label: makeAsset\n },\n datePicker: {\n ...from(\"placeholder\", \"inactive\"),\n options: from(\"date\", \"range\")\n },\n scopeSelector: from(\"label\"),\n herdGroupSelector: from(\"label\", \"placeholder\", \"submit\"),\n scope: makeAsset,\n description: from(\"label\", \"placeholder\", \"skip\", \"toggle\", \"submit\", \"empty\")\n }\n});\n","import { createModule, from } from \"../../utils\";\n\nexport const grammar = createModule(\"grammar\", {\n conjunction: from(\"and\", \"or\")\n});\n","import { createModule, from, makeAsset } from \"../../utils\";\n\nexport const overview = createModule(\"overview\", {\n ...from(\"sandboxAlert\", \"noFarms\"),\n noFarms: {\n ...from(\"sider\", \"title\"),\n farmer: from(\"step\", \"content\", \"event\", \"cta\"),\n advisor: from(\"content\", \"ctaPlainText\", \"ctaHyperlink\"),\n explorer: from(\"content\", \"ctaPlainText\", \"ctaHyperlink\")\n },\n integrationPending: {},\n inviteFarm: from(\"label\", \"submit\", \"success\", \"error\"),\n pageIntro: from(\"greeting\", \"description\"),\n invitation: from(\"title\", \"subTitle\", \"description\", \"cta\"),\n farmSelector: from(\"allFarms\"),\n farmOverview: {\n ...from(\"loading\", \"header\", \"preview\"),\n goto: makeAsset,\n insights: from(\"header\"),\n gamePlans: from(\"header\"),\n tasks: from(\"header\"),\n empty: from(\"description\")\n },\n panel: {\n ...from(\"loading\", \"header\", \"title\"),\n chart: {\n ...from(\"panelHeader\", \"itemHeader\"),\n empty: from(\"title\", \"description\")\n },\n timeline: {\n ...from(\"panelHeader\", \"itemHeader\"),\n empty: from(\"title\", \"description\")\n },\n insights: {\n ...from(\"panelHeader\", \"itemHeader\"),\n empty: from(\"title\", \"description\")\n },\n gamePlan: {\n ...from(\"panelHeader\", \"itemHeader\"),\n labels: from(\"kpi\", \"target\", \"progress\"),\n empty: from(\"title\", \"description\")\n },\n askIda: {\n ...from(\"panelHeader\", \"itemHeader\"),\n empty: from(\"title\", \"description\")\n }\n },\n carousel: {\n ...from(\"title\", \"description\", \"cta\"),\n listItem: makeAsset,\n imageDescription: makeAsset\n }\n});\n","import { createModule, makeAsset } from \"../../utils\";\n\nexport const unitSystem = createModule(\"unitSystem\", {\n unit: makeAsset\n});\n","import { createModule, from, makeAsset } from \"../../utils\";\n\nexport const impactTracking = createModule(\"impactTracking\", {\n ...from(\"pageHeader\", \"beta\", \"showProjections\", \"projectionsWarning\"),\n timePeriod: makeAsset,\n description: from(\"before\", \"after\", \"projected\"),\n empty: from(\"message\", \"description\"),\n noFarm: from(\"message\", \"description\"),\n noData: from(\"label\", \"message\", \"description\"),\n whatElse: from(\"title\", \"description\"),\n overlap: from(\"header\", \"hide\", \"show\", \"goToEvent\"),\n add: { ...from(\"title\", \"placeholder\", \"cta\"), alert: from(\"loading\", \"message\", \"description\") }\n});\n","import { createModule, from } from \"../../utils\";\n\nexport const farmSummaries = createModule(\"farmSummaries\", {\n page: {\n ...from(\"title\", \"description\"),\n alerts: {\n ...from(\"error\", \"success\"),\n selectFarm: from(\"title\", \"description\")\n },\n create: {\n ...from(\"title\", \"description\", \"loading\"),\n form: {\n labels: from(\"timePeriod\", \"submit\")\n }\n }\n },\n settings: {\n ...from(\"title\", \"description\"),\n toggle: from(\"label\", \"description\"),\n alerts: {\n selectFarm: from(\"title\", \"description\")\n }\n }\n});\n","import { createModule, from, makeAsset } from \"../../utils\";\n\nexport const iofc = createModule(\"iofc\", {\n page: {\n ...from(\"title\"),\n alert: from(\"title\", \"description\")\n },\n form: {\n ...from(\"title\", \"empty\"),\n validation: from(\"required\", \"sum\", \"typeNumber\"),\n label: from(\n \"range\",\n \"avgFeedCost\",\n \"avgMilkPrice\",\n \"milkYieldSource\",\n \"milkFatSource\",\n \"milkProteinSource\",\n \"submit\",\n \"add\",\n \"remove\",\n \"scenario\",\n \"simulation\",\n \"milkPickups\",\n \"milkClass\",\n \"classWeight\",\n \"classWeightLegend\"\n )\n },\n chart: {\n ...from(\"title\", \"scenario\", \"today\"),\n kpi: makeAsset\n }\n});\n","import { createModule, from, makeAsset } from \"../../utils\";\n\nexport const network = createModule(\"network\", {\n farms: {\n ...from(\"title\", \"description\"),\n table: {\n ...from(\"empty\"),\n columns: from(\"name\", \"status\", \"actions\"),\n actions: from(\"leave\")\n },\n tabs: from(\"farms\", \"invitations\"),\n actions: {\n ...from(\"invite\", \"revoke\")\n }\n },\n referrals: {\n ...from(\"title\", \"description\"),\n actions: from(\"accept\", \"decline\", \"invite\", \"revoke\"),\n alerts: {\n invitationAccepted: from(\"title\", \"description\", \"cta\")\n }\n },\n users: {\n ...from(\"title\", \"description\"),\n table: {\n ...from(\"empty\"),\n columns: from(\"name\", \"email\", \"userGroup\", \"actions\"),\n actions: from(\"revoke\"),\n values: {\n status: makeAsset\n }\n },\n tabs: from(\"users\", \"invitations\", \"requests\"),\n actions: {\n ...from(\"invite\", \"revoke\")\n }\n }\n});\n","export * from \"./modules/auth\";\nexport * from \"./modules/kpi\";\nexport * from \"./modules/helloworld\";\nexport * from \"./modules/base\";\nexport * from \"./modules/layouts\";\nexport * from \"./modules/chart\";\nexport * from \"./modules/game-plans\";\nexport * from \"./modules/analytics\";\nexport * from \"./modules/settings\";\nexport * from \"./modules/insights\";\nexport * from \"./modules/cows\";\nexport * from \"./modules/ask-ida\";\nexport * from \"./modules/events\";\nexport * from \"./modules/grammar\";\nexport * from \"./modules/overview\";\nexport * from \"./modules/unit-system\";\nexport * from \"./modules/impact-tracking\";\nexport * from \"./modules/farm-summaries\";\nexport * from \"./modules/iofc\";\nexport * from \"./modules/network\";\n\n/**\n * Loco API endpoints for Ida Enterprise\n */\nexport const endpoints = {\n loadPath: `https://translate-enterprise-v3.connecterra.workers.dev/?lang={{lng}}&env=${process.env.REACT_APP_LOCO_ENV}`,\n addPath: `https://create-enterprise-v3-asset.connecterra.workers.dev/?env=${process.env.REACT_APP_LOCO_ENV}`\n};\n","import { createModule, from } from \"../../utils\";\n\nexport const base = createModule(\"base\", {\n languageSelector: from(\"label\")\n});\n\n/**\n * Module for navigation related content\n * @todo don't pollute, this is not a trash for content without a category\n */\nexport const navigation = createModule(\"navigation\", {\n main: from(\"gettingStarted\", \"helpCenter\", \"support\", \"collapse\", \"logout\"),\n navicard: {\n owner: from(\"title\", \"description\"),\n explorer: from(\"title\", \"description\"),\n other: from(\"title\", \"description\"),\n advisor: from(\"title\", \"description\"),\n employee: from(\"title\", \"description\")\n },\n language: from(\"label\"),\n unitSystem: from(\"label\", \"imperial\", \"metric\")\n});\n\n/**\n * Error handling\n */\nexport const errors = createModule(\"errors\", {\n notFound: from(\"title\", \"subtitle\", \"action\")\n});\n","import { createModule, from } from \"../../utils\";\n\nexport const signup = createModule(\"signup\", {\n ...from(\"pageTitle\", \"social\"),\n form: {\n ...from(\"title\", \"signupFailed\", \"eula\", \"footer\"),\n labels: from(\"create\"),\n placeholders: from(\"firstName\", \"lastName\", \"email\", \"password\", \"confirmPassword\", \"phoneNumber\"),\n validation: from(\n \"emailFormat\",\n \"emailRequired\",\n \"passwordRequired\",\n \"passwordLength\",\n \"passwordsMatch\",\n \"passwordFormat\",\n \"firstNameRequired\",\n \"lastNameRequired\"\n )\n }\n});\n\nexport const activate = createModule(\"activate\", {\n ...from(\"pageTitle\"),\n pageContent: from(\"intro\", \"mailInfo\"),\n actions: from(\"resend\"),\n alerts: from(\"emailSent\")\n});\n\nexport const confirmEmail = createModule(\"confirmEmail\", {\n ...from(\"pageTitle\"),\n pageContent: from(\"mailInfo\", \"label\"),\n actions: from(\"resend\"),\n alerts: from(\"emailSent\")\n});\n\nexport const activation = createModule(\"activation\", {\n page: from(\"header\"),\n content: {\n ...from(\"intro\", \"email\", \"expired\", \"resend\", \"emailSent\"),\n activating: {\n ...from(\"inProgress\"),\n failed: from(\"title\", \"description\")\n }\n }\n});\n","import { createModule, from, makeAsset } from \"../../utils\";\n\nexport const gettingStarted = createModule(\"gettingStarted\", {\n ...from(\"title\", \"subtitle\", \"description\", \"prev\", \"next\", \"skip\", \"final\", \"loader\"),\n navigation: from(\"accountDetails\", \"farmDetails\", \"appointment\", \"dataIntegration\", \"dhms\"),\n accountDetails: {\n ...from(\"title\", \"description\"),\n contactDetails: {\n ...from(\"title\"),\n form: {\n ...from(\"required\", \"unknownCountry\"),\n labels: from(\"firstName\", \"lastName\", \"country\", \"email\", \"phone\", \"submit\")\n }\n },\n subscription: {\n ...from(\"title\", \"confirm\"),\n tier: from(\"title\", \"description\")\n }\n },\n farmDetails: {\n ...from(\"title\", \"description\"),\n form: {\n ...from(\"title\", \"required\", \"unknownCountry\"),\n labels: from(\"name\", \"address\", \"city\", \"postCode\", \"country\", \"submit\")\n }\n },\n dhms: {\n ...from(\"title\", \"description\", \"alert\"),\n form: {\n ...from(\"title\", \"smallPrint\", \"link\", \"alert\", \"required\"),\n labels: from(\"dhms\", \"other\", \"checkbox\", \"submit\")\n }\n },\n appointment: {\n ...from(\"title\", \"description\"),\n content: from(\"title\", \"description\")\n },\n success: {\n ...from(\"title\", \"description\"),\n eventScheduled: from(\"title\", \"description\")\n },\n dataIntegration: {\n ...from(\"title\", \"description\", \"loader\", \"confirm\"),\n steps: {\n ...from(\"title\", \"description\"),\n alert: from(\"sameComputer\", \"doNotClose\"),\n download: from(\"title\", \"description\"),\n open: from(\"title\", \"description\"),\n join: {\n ...from(\"title\", \"description\"),\n call: from(\"text\", \"link\")\n }\n },\n carousel: {\n ...from(\"title\", \"description\", \"cta\"),\n listItem: makeAsset,\n imageDescription: makeAsset\n },\n result: {\n ...from(\"title\", \"description\"),\n alert: from(\"title\", \"description\", \"button\", \"link\")\n }\n }\n});\n","export * from \"./modules/base\";\nexport * from \"./modules/signup\";\nexport * from \"./modules/getting-started\";\n\n/**\n * Loco API endpoints for the subscriptions app\n */\nexport const endpoints = {\n loadPath: `https://translate-subscriptions.connecterra.workers.dev/?lang={{lng}}&env=${process.env.REACT_APP_LOCO_ENV}`,\n addPath: `https:/create-subscriptions-asset.connecterra.workers.dev/?env=${process.env.REACT_APP_LOCO_ENV}`\n};\n","import { version } from \"../../package.json\";\n\n/**\n * Get the version from the package.json\n * @return {number}\n */\nexport const getVersion = () => {\n return parseFloat(version.replace(/\\./g, \"\"));\n};\n\n/**\n * Get the storage key prefix\n * @param {boolean} persist\n * @return {`ctra.i18n.v${number}`}\n */\nexport const getStorageKey = ({ persist }: { persist: boolean } = { persist: false }) => {\n return `${persist ? \"persist:\" : \"\"}ctra.i18n.v${getVersion()}`;\n};\n","import { getStorageKey } from \"../utils/versioning\";\n\nconst countryCodesMap = {\n \"en-US\": \"US\" as const,\n \"nl-NL\": \"NL\" as const,\n \"es-MX\": \"MX\" as const\n};\n\n/**\n * Types of supported locale keys\n */\nexport type SupportedLocaleKeys = keyof typeof countryCodesMap;\n\n/**\n * Country codes to be used for rendering flags\n */\nexport type SupportedCountryCodes = typeof countryCodesMap[SupportedLocaleKeys];\n\n/**\n * Interface for supported locale types object\n */\nexport type SupportedLocales = {\n [key in SupportedLocaleKeys]: { title: string; countryCode: SupportedCountryCodes };\n};\n\n/**\n * Supported locales\n */\nexport const supportedLocales: SupportedLocales = {\n \"en-US\": { title: \"English - USA\", countryCode: countryCodesMap[\"en-US\"] },\n \"nl-NL\": { title: \"Nederlands\", countryCode: countryCodesMap[\"nl-NL\"] },\n \"es-MX\": { title: \"Español - México\", countryCode: countryCodesMap[\"es-MX\"] }\n};\n\n/**\n * namespace for locale\n */\nconst localKey = `${getStorageKey()}.locale`;\n\n/**\n * local storage setup for locale/language\n */\nexport const storeAppLocale = (locale: SupportedLocaleKeys): void => {\n localStorage.setItem(localKey, locale);\n};\n\n/**\n * Default locale\n */\nexport const defaultLocale = \"en-US\";\n\n/**\n * Accepts a locale/local storage, verifies if it is supported,\n * returns it else returns the default locale\n * @param appLocale\n * @returns\n * @todo Might consider renaming this\n */\nexport const loadAppLocale = (appLocale?: SupportedLocaleKeys): SupportedLocaleKeys => {\n const locale = appLocale || localStorage.getItem(localKey);\n\n return locale && locale in supportedLocales ? (locale as SupportedLocaleKeys) : defaultLocale;\n};\n","import { useContext, createContext, useState, FC } from \"react\";\nimport { TFunction, TOptions, default as i18n, i18n as i18nFunction } from \"i18next\";\nimport { useTranslation as originalUseTranslation } from \"react-i18next\";\nimport { useDeepCompareEffect } from \"use-deep-compare\";\nimport * as _ from \"lodash\";\nimport * as Sentry from \"@sentry/react\";\n\nimport { getStorageKey } from \"../utils/versioning\";\nimport { AssetError, assetSeparator } from \"../utils\";\n\ninterface ContextType {\n translationContext: Record;\n setTranslationContext: (translationContext: Record) => void;\n t: CustomTFunction;\n}\n\ninterface TranslationProviderProps {\n /**\n * Translation context value that comes from outside e.g { unitSystem: \"metric \"}\n */\n value?: Record;\n}\n\ninterface CustomTOptions extends TOptions {\n makeDefaultValue?: boolean;\n onAssetError?: string | ((error: AssetError) => string);\n}\n\ntype CustomTFunction = TFunction extends (...args: infer U) => infer R\n ? (...args: [asset: string | AssetError, options?: CustomTOptions]) => string\n : string;\n\n/**\n * Return type for our modified useTranslation hook\n */\ninterface UseTranslationReturnType {\n t: CustomTFunction;\n i18n: i18nFunction;\n setTranslationContext: (translationContext: Record) => void;\n}\n\n/**\n * Default translation context\n */\nexport const DefaultContext = createContext({\n translationContext: {},\n setTranslationContext: _.noop,\n t: _.noop as CustomTFunction\n});\n\nconst isAssetError = (asset: string | AssetError): asset is AssetError => {\n return (asset as AssetError).error !== undefined;\n};\n\n/**\n * Translation unit provider\n * @param children\n * @param translationContext\n * @private\n */\nconst _TranslationProvider: FC = ({ value, children }) => {\n const sentryExceptionStorageKey = `${getStorageKey({ persist: false })}.localization.sentryException`;\n const storage = JSON.parse(_.defaultTo(localStorage.getItem(sentryExceptionStorageKey), \"[]\"));\n\n const [currentContext, setCurrentContext] = useState>(value || {});\n const [sentryExceptions, setSentryExceptions] = useState(storage);\n\n const previousContext = useContext(DefaultContext);\n const { t } = originalUseTranslation();\n\n const setContextValue = (newContext: Record): void => {\n setCurrentContext(newContext);\n };\n\n const translationContext = { ...previousContext.translationContext, ...currentContext };\n\n /**\n * Save the sentry exceptions to the local storage\n */\n useDeepCompareEffect(() => {\n localStorage.setItem(sentryExceptionStorageKey, JSON.stringify(sentryExceptions));\n }, [sentryExceptions]);\n\n /**\n * Inject the context in t\n * @param {string} asset\n * @param {CustomTOptions} params\n * @return {ReturnType}\n */\n const modifiedT: CustomTFunction = (asset: string | AssetError, params = {}): string => {\n let defaultGeneratedValue;\n\n if (isAssetError(asset)) {\n console.error(asset.error, _.omit(asset, \"error\"));\n\n return _.isFunction(params.onAssetError)\n ? params.onAssetError(asset)\n : _.isString(params.onAssetError)\n ? params.onAssetError\n : asset.result;\n }\n\n const { makeDefaultValue, defaultValue: defaultInputValue, ...restParams } = params;\n\n if (makeDefaultValue && !defaultInputValue) {\n const [, key] = asset.split(\".\");\n const path = key.split(assetSeparator);\n\n defaultGeneratedValue = _.upperFirst(_.lowerCase(_.last(path)));\n }\n\n const { res, usedKey } = t(asset, {\n ...translationContext,\n ...restParams,\n defaultValue: defaultInputValue || defaultGeneratedValue,\n returnDetails: true\n });\n\n if (makeDefaultValue && defaultGeneratedValue && res === usedKey) {\n if (!_.includes(sentryExceptions, usedKey)) {\n /**\n * Capture a Sentry exception to see what happens\n */\n Sentry.captureException(new Error(`${usedKey} is not yet translated.`), {\n tags: {\n diagnostics: \"i18nError\"\n }\n });\n\n setSentryExceptions([...sentryExceptions, usedKey]);\n }\n\n return defaultGeneratedValue;\n }\n\n return _.trim(res);\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport const TranslationContext = {\n Provider: _TranslationProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * The modified useTranslation hook that also has a translation context within \"t\"\n */\nexport const useTranslation = (): UseTranslationReturnType => {\n const { setTranslationContext, t } = useContext(DefaultContext);\n const { t: originalT, ...rest } = originalUseTranslation();\n\n return { t, setTranslationContext, ...rest };\n};\n\n/**\n * The modified translation function in i18n to be used by pure functions\n * also has localization context\n */\nexport const i18nTranslate = (asset: string | AssetError, params?: Record): string => {\n const localStorageKey = `${getStorageKey({ persist: true })}.localization`;\n const defaultUnitSystem = \"si\";\n\n const unitSystem = localStorage.getItem(localStorageKey) || defaultUnitSystem;\n\n const translationContext = {\n unitSystem\n };\n\n return isAssetError(asset) ? asset.result : i18n.t(asset, { ...translationContext, ...params });\n};\n","import i18next, { TFunction } from \"i18next\";\nimport moment from \"moment\";\nimport ICU from \"i18next-icu\";\nimport Backend, { BackendOptions } from \"i18next-http-backend\";\nimport { initReactI18next } from \"react-i18next\";\nimport * as _ from \"lodash\";\n\nimport { loadAppLocale } from \"../locales\";\n\n/**\n * Default language\n * use locale set in local storage or\n * fallbackLng (English-US) if not set\n * @type {string}\n */\nconst defaultLanguage = loadAppLocale();\n\n/**\n * Paths to use to load and save assets from.\n */\ninterface Paths {\n loadPath: string;\n addPath: string;\n}\n\ninterface Payload {\n id: string;\n text: string;\n default: string;\n}\n\n/**\n * Make an i18n instance for the given back-end.\n * @param {Paths} paths\n * @example\n * ```ts\n * const API = {\n * loadPath: \"https://translate-enterprise.connecterra.workers.dev/?lang={{lng}}\",\n * addPath: \"https://create-enterprise-asset.connecterra.workers.dev/\",\n * };\n *\n * init(API).then(() => {\n * console.info(\"i18n successfully initialised\");\n * });\n * ```\n */\nexport const init = (paths: Paths): Promise => {\n i18next.on(\"languageChanged\", (lng) => moment.locale(lng));\n\n return i18next\n .use(initReactI18next)\n .use(ICU)\n .use(Backend)\n .init(\n {\n debug: true,\n lng: _.defaultTo(defaultLanguage, void 0),\n fallbackLng: _.defaultTo(defaultLanguage, void 0),\n saveMissing: true,\n\n backend: {\n ...paths,\n\n /**\n * Loco \"new asset\" format\n * @param {string} namespace\n * @param {string} key\n * @return {{id: string, text: string, default: string}}\n */\n parsePayload: (namespace: string, key: string): Payload => ({\n id: key,\n text: key,\n default: \"incomplete\"\n }),\n\n /**\n * Add some \"cors\" \"no-cors\" smartery as\n * workers.dev does not support\n * fetch with method \"POST\" & cors together.\n * @param {{}} payload\n */\n requestOptions: (\n payload: Payload\n ): {\n mode: string;\n credentials: string;\n cache: string;\n } => ({\n mode: payload ? \"no-cors\" : \"cors\",\n credentials: \"same-origin\",\n cache: \"default\"\n })\n } as BackendOptions,\n\n interpolation: {\n escapeValue: false\n },\n\n react: {\n bindI18n: \"languageChanged loaded\",\n bindI18nStore: \"added removed\",\n nsMode: \"default\"\n }\n },\n () => null\n );\n};\n","import { useState, useContext, createContext, forwardRef, ForwardedRef, PropsWithChildren } from \"react\";\nimport * as _ from \"lodash\";\nimport useDeepCompareEffect from \"use-deep-compare-effect\";\nimport { Options } from \"@ant-design/charts\";\n\nimport {\n ChartData,\n DataType,\n MetaType,\n ExtendedEventList,\n ExtendedEventEntity,\n ChartViewOptions,\n ChartDataOptions,\n ChartEntity,\n EventSourceType\n} from \"@ctra/api\";\n\nimport { SeriesType } from \"../../typings\";\nimport { TS } from \"@ctra/utils\";\n\ntype ChartProviderProps = {\n entity: ChartEntity;\n data: ChartData[\"data\"];\n meta: ChartData[\"meta\"];\n viewOptions?: ChartViewOptions;\n dataOptions?: ChartDataOptions;\n config?: Partial;\n series?: SeriesType;\n events?: ExtendedEventList;\n};\n\ntype ContextType = {\n ref: ForwardedRef;\n data: T[\"data\"];\n meta: T[\"meta\"];\n entity: ChartEntity;\n series: SeriesType;\n viewOptions: ChartViewOptions;\n dataOptions: ChartDataOptions;\n config: Partial;\n api: {\n toggleEvents: (on: Record) => void;\n toggleAnnotations: (on: boolean) => void;\n toggleAnomalies: (on: boolean) => void;\n };\n events: Record>;\n};\n\n/**\n * Default custom config\n */\nconst defaultConfig: Partial = {\n // legend: { position: \"top\" }\n // height: 220\n};\n\n/**\n * Default view options\n * @type {{zoomEnabled: boolean, zoomed: boolean, height: number}}\n */\nconst defaultViewOptions: ChartViewOptions = {\n zoomed: false,\n zoomEnabled: true\n};\n\nconst DefaultContext = createContext>>({\n ref: null,\n data: [],\n meta: {},\n entity: {} as ChartEntity,\n series: {},\n dataOptions: {},\n viewOptions: defaultViewOptions,\n config: defaultConfig,\n api: {\n toggleEvents: _.noop,\n toggleAnnotations: _.noop,\n toggleAnomalies: _.noop\n },\n events: {}\n});\n\n/**\n * Group events\n * @param {ExtendedEventList} events\n * @return {Dictionary<[unknown, ...unknown[]]>}\n */\nconst groupEvents = (events: ExtendedEventList) =>\n _.groupBy(events, (event) => TS.asMoment(event.startAt).format(\"YYYY-MM-DD\"));\n\n/**\n * @note Instead of filtering first, we are sending all the info down so that different charts can compose what they need.\n * So, in summary: Context -> (Filter + Config + Data + Chart) as against Context -> (Filter + Config + Data) -> Chart\n * @param {ChartEntity} entity\n * @param {Array<{x: number, y: string, seriesField: string}> | Array<{x: string, y: number, seriesField: string}> | Array<{x: string, y: Nullable, seriesField: string, anomaly?: {prediction?: number, type?: string}}> | Array<{x: string | number, y: string, z: number}> | Array>} data\n * @param {(DataPointsMetaSource & TranslatedMeta) | TableMeta} meta\n * @param {any[]} series\n * @param {{}} events\n * @param {{}} viewOptions\n * @param {{}} dataOptions\n * @param {{}} config\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @returns {JSX.Element}\n */\nconst _ChartContextProvider = forwardRef>(\n (\n {\n entity,\n data,\n meta,\n series = {},\n events = {},\n viewOptions = {},\n dataOptions = {},\n config = {},\n children\n },\n ref\n ) => {\n const [guardedEntity, setGuardedEntity] = useState(entity);\n const [guardedConfig, setGuardedConfig] = useState>(_.merge({}, defaultConfig, config));\n const [guardedData, setGuardedData] = useState(data);\n const [guardedEvents, setGuardedEvents] = useState(groupEvents(events));\n const [guardedMeta, setGuardedMeta] = useState(meta);\n const [guardedSeries, setGuardedSeries] = useState(series);\n const [guardedDataOptions, setGuardedDataOptions] = useState(dataOptions);\n const [guardedViewOptions, setGuardedViewOptions] = useState({\n ...defaultViewOptions,\n ...viewOptions\n });\n\n useDeepCompareEffect(() => {\n setGuardedEntity(entity);\n }, [entity]);\n\n useDeepCompareEffect(() => {\n setGuardedConfig((previousConfig) => _.merge({}, previousConfig, config));\n }, [config]);\n\n useDeepCompareEffect(() => {\n setGuardedViewOptions((previousViewOptions) => ({ ...previousViewOptions, ...viewOptions }));\n }, [viewOptions]);\n\n useDeepCompareEffect(() => {\n setGuardedDataOptions((previousDataOptions) => _.merge({}, previousDataOptions, dataOptions));\n }, [dataOptions]);\n\n useDeepCompareEffect(() => {\n setGuardedData(data);\n }, [data]);\n\n useDeepCompareEffect(() => {\n setGuardedEvents(groupEvents(events));\n }, [events]);\n\n useDeepCompareEffect(() => {\n setGuardedMeta(_.defaultTo(meta, {}));\n }, [meta]);\n\n useDeepCompareEffect(() => {\n setGuardedSeries(series);\n }, [series]);\n\n return (\n {\n setGuardedViewOptions((viewOptions) => ({ ...viewOptions, showEvents: on }));\n },\n toggleAnnotations: (on) => {\n setGuardedViewOptions((viewOptions) => ({ ...viewOptions, showAnnotations: on }));\n },\n toggleAnomalies: (on) => {\n setGuardedViewOptions((viewOptions) => ({ ...viewOptions, showAnomalies: on }));\n }\n }\n }}\n >\n {children}\n \n );\n }\n);\n\nexport const ChartContext = {\n Provider: _ChartContextProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Hook for chart data, series and config provider context\n * @returns\n */\nexport const useChartContext = (): ContextType =>\n useContext(DefaultContext) as ContextType;\n","import * as _ from \"lodash/fp\";\n\n/**\n * Get the stacked max value\n * @param data\n * @param groupByProperty\n * @param sumProperty\n * @returns\n */\nexport const getStackedMax = >(\n data: Array,\n groupByProperty: keyof T,\n sumProperty: keyof T\n): number | undefined => {\n //@ts-ignore\n return _.max(\n _.map((items) => {\n //@ts-ignore\n return _.reduce((acc, item) => acc + item[sumProperty], 0, items);\n //@ts-ignore\n })(_.groupBy(groupByProperty, data))\n );\n};\n\n/**\n * Get the stacked min value\n * @param data\n * @param groupByProperty\n * @param sumProperty\n * @returns\n */\nexport const getStackedMin = >(\n data: Array,\n groupByProperty: keyof T,\n sumProperty: keyof T\n): number | undefined => {\n return _.min(\n _.map((items) => {\n //@ts-ignore\n return _.min(_.map((item) => item[sumProperty])(items));\n //@ts-ignore\n })(_.groupBy(groupByProperty, data))\n );\n};\n\n/**\n * Returns the minimum value for a particular property from an array of objects\n * @param {Array} data\n * @param {keyof T} byProperty\n * @param {number} precision\n * @return {number}\n */\nexport function getMinValue>(data: Array, byProperty: keyof T): number {\n return _.compose(\n _.defaultTo(0),\n _.get(byProperty),\n _.minBy((datum: T) => datum[byProperty])\n )(data);\n}\n\n/**\n * Returns the maximum value for a particular property from an array of objects\n * @param {Array} data\n * @param {keyof T} byProperty\n * @param {number} precision\n * @return {number}\n */\nexport function getMaxValue>(data: Array, byProperty: keyof T): number {\n return _.compose(\n _.defaultTo(0),\n _.get(byProperty),\n _.maxBy((datum: T) => datum[byProperty])\n )(data);\n}\n","import * as _ from \"lodash\";\n\nimport { Bar, ChartDataPointXAxisType, Column, DataPointsMeta, Line, TableMeta } from \"@ctra/api\";\nimport { Optional } from \"@ctra/utils\";\n\nimport { SeriesType } from \"../typings\";\n\n/**\n * Filter data which has `seriesField` in the items\n * @param {T} data\n * @param {DataPointsMeta} meta\n * @param {SeriesType} series\n * @returns {T | ({x: string, y: Nullable, seriesField: string, anomaly?: {prediction?: number, type?: string}} | {x: string, y: number, seriesField: string})[]}\n */\nconst filter = (data: T, meta: DataPointsMeta, series: SeriesType) => {\n const seriesKeys = _.get(meta, [\"series\", \"keys\"], {});\n\n return _.isEmpty(series) || _.size(series) === _.size(seriesKeys)\n ? data\n : _.filter(data, (datum: T[number]) => _.has(series, datum.seriesField));\n};\n\n/**\n * Filter line data by the given series\n * @param {Line} data\n * @param {DataPointsMeta} meta\n * @param {SeriesType} series\n * @returns {Line | ({x: string, y: Nullable, seriesField: string, anomaly?: {prediction?: number, type?: string}} | {x: string, y: number, seriesField: string})[]}\n */\nexport const filterLineBySeries = (data: Line, meta: DataPointsMeta, series: SeriesType): Line =>\n filter(data, meta, series);\n\n/**\n * Filter bar data by the given series\n * @param {Bar} data\n * @param {DataPointsMeta} meta\n * @param {SeriesType} series\n * @returns {Bar}\n */\nexport const filterBarBySeries = (data: Bar, meta: DataPointsMeta, series: SeriesType): Bar =>\n filter(data, meta, series);\n\n/**\n * Filter column data by the given series\n * @param {BarData} data\n * @param {DataPointsMeta} meta\n * @param {SeriesType} series\n * @returns {Column | ({x: string, y: Nullable, seriesField: string, anomaly?: {prediction?: number, type?: string}} | {x: string, y: number, seriesField: string})[]}\n */\nexport const filterColumnBySeries = (data: Column, meta: DataPointsMeta, series: SeriesType): Column =>\n filter(data, meta, series);\n\n/**\n * Filter table data by the given series\n * @param {TableMeta[\"columns\"]} columns\n * @param {string} key\n * @param {SeriesType} series\n * @returns {TableMeta[\"columns\"]}\n */\nexport const filterTableBySeries = (\n columns: TableMeta[\"columns\"],\n key: Optional,\n series: SeriesType\n): TableMeta[\"columns\"] => {\n if (!_.isString(key) || _.isEmpty(series)) {\n return columns;\n }\n\n return _.filter(columns, ({ key: k }) => k === key || _.has(series, k as string));\n};\n","import { createContext, useContext, FC, useState, useMemo, useCallback, useEffect } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { HeatmapData } from \"@ctra/api\";\n\nimport { useChartContext } from \"../ChartContext\";\nimport { getMaxValue, getMinValue } from \"../../utils\";\n\ntype RangeType = { min: number; max: number };\n\ntype ContextType = {\n range: RangeType;\n initialRange: RangeType;\n api: {\n setRange: (range: RangeType) => void;\n filterByRange: (data: HeatmapData[\"data\"]) => NonNullable;\n };\n};\n\nexport const defaultRange = { min: Number.MIN_SAFE_INTEGER, max: Number.MAX_SAFE_INTEGER };\n\nconst defaultContextValue = {\n range: defaultRange,\n initialRange: defaultRange,\n api: {\n setRange: _.noop,\n filterByRange: () => []\n }\n};\n\nconst DefaultContext = createContext(defaultContextValue);\n\n/**\n * Range Filter Provider\n * This provides range value context\n * @param param0\n * @returns\n */\nconst _RangeFilterProvider: FC = ({ children }) => {\n const { data = [] } = useChartContext();\n /**\n * Recalculate the initial min and max value only when the input data changes\n */\n const { min, max } = useMemo(() => ({ min: getMinValue(data, \"z\"), max: getMaxValue(data, \"z\") }), [data]);\n\n const [range, setRange] = useState({ min, max });\n\n useEffect(() => {\n setRange({ min, max });\n }, [min, max]);\n\n /**\n * Callback for filtering by range\n */\n const filterByRange = useCallback(\n (data: HeatmapData[\"data\"] = []) => {\n return data.filter((datum) => datum.z >= range.min && datum.z <= range.max);\n },\n [range]\n );\n\n return (\n \n {children}\n \n );\n};\n\nexport const RangeFilterContext = {\n Provider: _RangeFilterProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Hook for the ranger color context\n */\nexport const useRangeFilter = (): ContextType => useContext(DefaultContext);\n","import { useEffect, useContext, createContext, FC, useState } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { huePalette, ColorType, localColorStoreKey, Optional } from \"@ctra/utils\";\nimport { DataPointsData } from \"@ctra/api\";\n\nimport { useChartContext } from \"../ChartContext\";\n\ntype ContextType = {\n getColor: (cacheKey: Optional, itemKey: Optional) => ColorType;\n};\n\nconst DefaultContext = createContext({\n getColor: () => ({ hue: 0, saturation: 0, luminosity: 0 })\n});\n\n/**\n * Here, we generate color from our color palette (provided by the design team) to be used by a group of items\n *\n * This function takes in a cacheKey and an item key and assigns the next available color to the item\n *\n * At the moment, we can generate 26 unique colors from this.\n * If you ever need to increase this number, you need to play around with the divisor factor\n * and the gap between the saturation and luminosity\n *\n * We have 13 colors in the list from design. To get the 14th color, we do the following:\n * 14 % 13 = 1, then set the hue to palette[1], saturation to 75 (_.floor(14/13)) and luminosity to saturation - 50\n * @param {string} cacheKey\n * @param {string} itemKey\n * @param {Record} cacheObject\n * @param {Array} list\n * @return {ColorType}\n */\nconst assignColor = (\n cacheKey: string,\n itemKey: string,\n cacheObject: Record,\n list = huePalette\n): ColorType => {\n const cacheSize = _.size(cacheObject);\n const sizeIndex = cacheSize % list.length;\n const hue = list[sizeIndex];\n\n /**\n * Numbers ranging from 0 - list.length will produce 0, then 1\n * @todo deal with more rounds than only 2\n */\n const divisorFactor = _.floor(cacheSize / list.length) % 2;\n\n const saturation = divisorFactor === 0 ? 90 : 50;\n const luminosity = saturation - (divisorFactor === 0 ? 35 : 5);\n\n return { hue, saturation, luminosity };\n};\n\n/**\n * Series color provider\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @return {JSX.Element}\n */\nconst _SeriesColorProvider: FC = ({ children }) => {\n const { meta } = useChartContext();\n\n const [colors, setColors] = useState>>(\n JSON.parse(\n _.defaultTo(\n localStorage.getItem(localColorStoreKey),\n JSON.stringify({\n /**\n * default color for each behavior\n */\n behavior: {\n eatingPct: { hue: 0, saturation: 100, luminosity: 27 },\n ruminationPct: { hue: 96, saturation: 100, luminosity: 27 },\n lyingPct: { hue: 164, saturation: 100, luminosity: 27 },\n standingPct: { hue: 208, saturation: 100, luminosity: 27 },\n restingPct: { hue: 61, saturation: 100, luminosity: 28 },\n otherPct: { hue: 276, saturation: 100, luminosity: 50 }\n }\n })\n )\n )\n );\n\n /**\n * Gets the color from the local store\n * @todo allow use of generics\n * @param {string} cacheKey\n * @param {string} itemKey\n * @return {ColorType}\n */\n const getColor: ContextType[\"getColor\"] = (cacheKey, itemKey) => {\n const color = cacheKey && itemKey ? _.get(colors, [cacheKey, itemKey]) : null;\n\n return _.defaultTo(color, {\n hue: 0,\n saturation: 0,\n luminosity: 0\n });\n };\n\n /**\n * Save colors to the local storage\n */\n useEffect(() => {\n localStorage.setItem(localColorStoreKey, JSON.stringify(colors));\n }, [colors]);\n\n /**\n * Assign new colors when the seriesType, seriesKeys changes\n */\n useEffect(() => {\n if (meta && meta.series) {\n const {\n series: { keys: seriesKeys },\n seriesType,\n seriesField\n } = meta;\n\n /**\n * If seriesKeys is empty, we use the seriesField as the keys\n * @type {Record}\n */\n const keys = _.isEmpty(seriesKeys) && seriesField ? { [seriesField]: seriesField } : seriesKeys;\n\n if (_.isString(seriesType)) {\n /**\n * Pick the color list already assigned to the series type, eg. \"farm colors\"\n * @type {Record}\n */\n const cacheObject: Record = _.get(colors, _.toString(seriesType), {});\n\n /**\n * Assign new colors to items which does exist in the above list\n * @type {Record}\n */\n const newColors = _.reduce>(\n keys,\n (result, seriesKey, fieldName) => {\n /**\n * Tell if aa color is already in the list\n * @type {Exclude[keyof Record], undefined> | null}\n */\n const existingColor = _.get(cacheObject, fieldName, null);\n\n if (!existingColor) {\n /**\n * Assign a unique color\n * @type {ColorType}\n */\n result[fieldName] = assignColor(_.toString(seriesType), fieldName, {\n ...cacheObject,\n ...result\n });\n }\n\n return result;\n },\n {}\n );\n\n if (!_.isEmpty(newColors)) {\n setColors({\n ...colors,\n [_.toString(seriesType)]: {\n ...colors[_.toString(seriesType)],\n ...newColors\n }\n });\n }\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [meta]);\n\n return {children};\n};\n\nexport const SeriesColorContext = {\n Provider: _SeriesColorProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Hook for the series color context\n */\nexport const useSeriesColor = (): ContextType => useContext(DefaultContext);\n","import { createContext, useContext, FC, useMemo, memo } from \"react\";\nimport * as _ from \"lodash\";\nimport { useDeepCompareMemo } from \"use-deep-compare\";\n\nimport { ExtendedEventEntity, LineData } from \"@ctra/api\";\nimport { TS } from \"@ctra/utils\";\n\nimport { useChartContext } from \"../ChartContext\";\n\nexport type ContextType = {\n eventGroups: Record;\n};\n\nconst DefaultContext = createContext({\n eventGroups: {}\n});\n\n/**\n * Context provider for events\n * @todo rename to event provider\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @return {JSX.Element}\n */\nconst _AnnotationsProvider: FC = memo(({ children }) => {\n const { events, data } = useChartContext();\n\n /**\n * Group events to the dates which are available on the charts\n * @type {Record>}\n */\n const eventGroups = useDeepCompareMemo(() => {\n /**\n * All the dates within the data\n * @type {string[]}\n */\n const dates = _.uniq(_.map(data, \"x\"));\n\n /**\n * Make a flat event list as some events will not fall on a chart date anyway\n * @type {ExtendedEventEntity[]}\n */\n const flatEventList = _.flatMap(_.values(events));\n\n return _.reduce>>(\n dates,\n (result, date, idx, collection) => {\n /**\n * Range start by converting the date to a Moment\n * @type {moment.Moment}\n */\n const rangeStart = TS.asMoment(date);\n\n /**\n * Detect if we are on the end of the loop\n * @type {boolean}\n */\n const isLast = !collection[idx + 1];\n\n /**\n * Make a range end by adding N days to the last date or using the next item in the loop\n * @type {moment.Moment}\n */\n const rangeEnd = isLast\n ? rangeStart.add(Math.abs(TS.asMoment(collection[idx - 1]).diff(rangeStart, \"days\")), \"days\")\n : TS.asMoment(collection[idx + 1]);\n\n /**\n * Collect the events which fall between the range ends\n * @type {ExtendedEventEntity[]}\n */\n const events = _.filter(flatEventList, (event) =>\n TS.asMoment(event.startAt).isBetween(rangeStart, rangeEnd, void 0, \"[)\")\n );\n\n if (events.length) {\n result[date] = events;\n }\n\n return result;\n },\n {}\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [events, data]);\n\n return {children};\n});\n\n_AnnotationsProvider.displayName = \"AnnotationsProvider\";\n\nexport const AnnotationsContext = {\n Consumer: DefaultContext.Consumer,\n Provider: _AnnotationsProvider\n};\n\nexport const useAnnotations = (): ContextType => useContext(DefaultContext);\n","import { BarConfig, ColumnConfig, HeatmapConfig, LineConfig } from \"@ant-design/charts\";\n\nexport type LibraryConfigType = Omit;\n\nexport enum LegendPosition {\n top = \"top\",\n bottom = \"bottom\",\n right = \"right\",\n left = \"left\"\n}\n\nexport type SeriesType = Record;\n\nexport type { HeatmapConfig };\n","import {\n FC,\n createContext,\n useContext,\n useState,\n Dispatch,\n SetStateAction,\n useRef,\n useLayoutEffect\n} from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Optional } from \"@ctra/utils\";\n\ninterface ChartLegendProviderProps {\n initialValues?: Optional>;\n}\n\ntype ContextType = {\n legendValues: Array;\n initialValues: Array;\n setLegendValues: Dispatch>;\n};\n\n/**\n * Default legends Context\n */\nconst DefaultContext = createContext({\n legendValues: [],\n initialValues: [],\n setLegendValues: _.noop\n});\n\n/**\n * Store the currently selected legend values at app level\n * @constructor\n */\nexport const _ChartLegendValuesProvider: FC = ({ initialValues, children }) => {\n const [legendValues, setLegendValues] = useState>([]);\n const initialLegendValues = useRef(initialValues || []);\n\n /**\n * Need legend values on initial render only so the values aren't persisted in the update cycle\n * set it to [] after initial render\n */\n useLayoutEffect(() => {\n if (initialLegendValues.current.length) {\n initialLegendValues.current = [];\n }\n }, [initialValues]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const ChartLegendValuesContext = {\n Provider: _ChartLegendValuesProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Hook for accessing currently selected legend values for a chart view\n * @returns\n */\nexport const useLegendValues = (): ContextType => useContext(DefaultContext);\n","import { makeTestIds } from \"@ctra/utils\";\n\n/**\n * Make test ids for hocs\n */\nexport const testIds = makeTestIds(\"hocs\", {\n withChartWrapper: {\n wrapper: \"wrapper\"\n },\n withSeriesColor: {\n wrapper: \"wrapper\"\n },\n withLegend: {\n wrapper: \"wrapper\"\n }\n});\n","import { FC, ComponentType, PropsWithChildren } from \"react\";\nimport hoistNonReactStatic from \"hoist-non-react-statics\";\n\nimport { classname, getDisplayName } from \"@ctra/utils\";\nimport { Row, Col } from \"@ctra/components\";\n\nimport { testIds } from \"../testing\";\nimport { useChartContext } from \"../../providers\";\n\nimport styles from \"./withChartWrapper.module.less\";\n\n/**\n * Most charts share the same wrapper height and width.\n * This hoc justs abstracts the shared wrapper and wraps the charts with it\n * @returns\n */\nexport function withChartWrapper

>>(\n WrappedComponent: ComponentType

,\n classNames = { wrapper: styles.Wrapper, zoomed: styles.Zoom }\n): FC

{\n const WithChartWrapper: FC

= (props: P) => {\n const {\n viewOptions: { zoomed }\n } = useChartContext();\n\n return (\n \n \n \n \n \n );\n };\n\n WithChartWrapper.displayName = `WithChartWrapper(${getDisplayName(WrappedComponent)})`;\n hoistNonReactStatic(WithChartWrapper, WrappedComponent);\n\n return WithChartWrapper;\n}\n","import { FC, ComponentType, PropsWithChildren } from \"react\";\nimport hoistNonReactStatics from \"hoist-non-react-statics\";\nimport * as _ from \"lodash\";\n\nimport { Row, Col } from \"@ctra/components\";\nimport { getDisplayName, classname } from \"@ctra/utils\";\nimport { DataPointsData } from \"@ctra/api\";\n\nimport { useChartContext } from \"../../providers\";\nimport { LegendPosition } from \"../../typings\";\n\nimport styles from \"./withLegend.module.less\";\nimport { testIds } from \"../testing\";\n\n/**\n * Map legend positions to the styles\n */\nconst positionToStyleMap: Record = {\n [LegendPosition.top]: styles.Top,\n [LegendPosition.bottom]: styles.Bottom,\n [LegendPosition.left]: styles.Left,\n [LegendPosition.right]: styles.Right\n};\n\n/**\n * withLegend hoc\n *\n * Places a passed in Legend component in a specified position around the Wrapped component\n * @param {React.ComponentType} Legend\n * @param {{conditionalRender: boolean}} options\n * @return {(WrappedComponent: React.ComponentType

) => React.FC

}\n */\nexport function withLegend

>>(\n Legend: ComponentType,\n options: { conditionalRender: boolean }\n): (WrappedComponent: ComponentType

) => FC

{\n return function (WrappedComponent: ComponentType

): FC

{\n const { conditionalRender } = options;\n\n const WithLegend: FC

= (props: P) => {\n const {\n meta,\n config: { legend }\n } = useChartContext();\n\n const keys = _.get(meta, [\"series\", \"keys\"], {});\n\n /**\n * Only show the series if they are more than one.\n * This applies for when the legend prop is a Legend component.\n * Slider legends always have conditionalRender set as false.\n */\n const showLegend = _.isBoolean(legend) ? legend : conditionalRender ? _.size(keys) > 1 : true;\n\n /**\n * Pick a default legend position\n * @type {string|null}\n */\n const position = _.get(legend, \"position\", null);\n\n return (\n \n \n \n \n {showLegend && }\n \n );\n };\n\n WithLegend.displayName = `WithLegend(${getDisplayName(WrappedComponent)})`;\n return hoistNonReactStatics(WithLegend, WrappedComponent);\n };\n}\n","import { FC, ComponentType, PropsWithChildren } from \"react\";\nimport hoistNonReactStatics from \"hoist-non-react-statics\";\n\nimport { getDisplayName } from \"@ctra/utils\";\nimport { SeriesColorContext } from \"../../providers\";\n\n/**\n * Wrap component with series coloring\n * @param {React.ComponentType

} WrappedComponent\n * @return {React.FC

}\n */\nexport function withSeriesColor

>>(\n WrappedComponent: ComponentType

\n): FC

{\n const WithSeriesColor: FC

= (props: P) => {\n return (\n \n \n \n );\n };\n\n WithSeriesColor.displayName = `WithSeriesColor(${getDisplayName(WrappedComponent)})`;\n return hoistNonReactStatics(WithSeriesColor, WrappedComponent);\n}\n","import * as _ from \"lodash\";\nimport { useDeepCompareMemo } from \"use-deep-compare\";\n\nimport { Enterprise, Enterprise as Content, useTranslation } from \"@ctra/i18n\";\nimport { Units } from \"@ctra/utils\";\n\nimport { LibraryConfigType } from \"../typings\";\nimport { useChartContext } from \"../providers\";\n\nconst {\n unitSystem: { unit: tUnit },\n chart: {\n tooltip: { contextLabel }\n }\n} = Content;\n\n/**\n * These configs are common to all charts\n * @todo rename `commonConfig` to `config`\n */\nexport function useCommonConfig(): { commonConfig: T } {\n const { meta, series } = useChartContext();\n const { t } = useTranslation();\n\n /**\n * Get the data type of the point context from the metadata and make a lookup\n * @type {Dictionary}\n */\n const pointContextDataTypes = _.mapValues(_.keyBy(_.get(meta, [\"pointContexts\"], []), \"name\"), \"unit\");\n\n /**\n * Get the series keys from the metadata\n */\n const seriesKeys = _.get(meta, [\"series\", \"keys\"], {});\n\n /**\n * Count the number of items in the legend\n * @type {number}\n */\n const legendSize = _.size(series) || _.size(seriesKeys);\n\n return useDeepCompareMemo<{ commonConfig: any }>(\n () => ({\n commonConfig: {\n animation: false,\n interactions: [{ type: \"element-active\" }],\n /**\n * Basic legend settings\n */\n legend: {\n layout: \"horizontal\",\n position: \"top-left\",\n flipPage: true,\n maxItemWidth: 120,\n maxRow: 2,\n offsetX: 24,\n itemName: {\n formatter: (text: string) => _.get(meta, [\"series\", \"keys\", text], text)\n }\n },\n /**\n * Basic tooltip settings\n */\n tooltip: {\n shared: legendSize <= 3,\n position: \"top\",\n customItems: (originalItems: any[]) => {\n const hasContext = _.every(originalItems, (item) => _.has(item, [\"data\", \"context\"]));\n\n if (hasContext) {\n /**\n * See if the context is the same for all items\n * @type {Array<*>}\n */\n const uniqContextList: Array> = _.uniqBy(\n _.map(originalItems, (item) => _.get(item, [\"data\", \"context\"], null)),\n _.isEqual\n );\n\n if (_.size(_.compact(uniqContextList)) === 1) {\n const [context] = uniqContextList;\n const publicContext = _.omitBy(context, (value, key) => _.startsWith(key, \"_\"));\n\n if (_.size(publicContext)) {\n return [\n ...originalItems,\n {\n name: \"\",\n value: \"\"\n },\n ..._.map(publicContext, (value: string | number, key) => ({\n data: {},\n mappingData: {},\n name: t(contextLabel(key)),\n value: pointContextDataTypes[key]\n ? Units.format(\n value,\n pointContextDataTypes[key],\n t(tUnit(pointContextDataTypes[key])),\n {\n asIs: true\n }\n )\n : value\n })),\n {\n name: \"\",\n value: \"\"\n }\n ];\n } else {\n return originalItems;\n }\n } else if (_.size(uniqContextList) > 1) {\n return _.flatten(\n _.map(originalItems, (item, collection) => {\n const context = _.get(item, [\"data\", \"context\"], null);\n const publicContext = _.omitBy(context, (value, key) => _.startsWith(key, \"_\"));\n\n return publicContext\n ? [\n item,\n // CSS will look for empty name span\n {\n name: \"\",\n value: \"\"\n },\n ..._.map(publicContext, (value, key) => ({\n data: {},\n mappingData: {},\n name: t(contextLabel(key)),\n value: pointContextDataTypes[key]\n ? Units.format(\n value,\n pointContextDataTypes[key],\n t(tUnit(pointContextDataTypes[key])),\n {\n asIs: true\n }\n )\n : value\n })),\n // CSS will look for empty name span\n {\n name: \"\",\n value: \"\"\n }\n ]\n : item;\n })\n );\n }\n }\n\n return originalItems;\n },\n domStyles: {\n \"g2-tooltip\": {},\n \"g2-tooltip-title\": {\n color: \"#666\",\n margin: \"10px 0 10px 16px\"\n },\n \"g2-tooltip-list\": {},\n \"g2-tooltip-list-item\": {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n fontSize: \"14px\",\n whiteSpace: \"nowrap\"\n },\n \"g2-tooltip-marker\": {\n borderRadius: \"50%\",\n display: \"inline-block\",\n height: \"8px\",\n marginRight: \"8px\",\n width: \"8px\"\n },\n \"g2-tooltip-value\": {\n fontWeight: \"bold\"\n },\n \"g2-tooltip-name\": {}\n },\n containerTpl: `\n

\n
    \n
    \n
    \n `,\n itemTpl: `\n
  • \n \n {name}\n {value}\n
  • \n `\n }\n }\n }),\n [meta, series]\n );\n}\n","import { useEffect, useState } from \"react\";\nimport useDeepCompareEffect from \"use-deep-compare-effect\";\nimport _ from \"lodash\";\n\nimport { getMinValue, getMaxValue } from \"../utils\";\n\n/**\n * useMinMax hook\n * Ensures that the min and max values are not the same.\n *\n * Bar charts appear empty when the min and max values are the same\n * because the minimum value on the axis could be the chart's selected min which becomes same as the max.\n * @param data\n * @param byProperty\n * @returns\n */\nexport const useMinMax = >(\n data: Array,\n byProperty: keyof T\n): { min: number; max: number } => {\n const [min, setMin] = useState(getMinValue(data, byProperty));\n const [max, setMax] = useState(getMaxValue(data, byProperty));\n\n useDeepCompareEffect(() => {\n setMin(getMinValue(data, byProperty));\n setMax(getMaxValue(data, byProperty));\n }, [data, byProperty]);\n\n /**\n * Handle cases when min and max are equal\n * Round them down (min) and up (max) when they are equal\n *\n * I don't think floor and ceil can ever return same value.\n * If they do, this might cause an infinite loop\n */\n useEffect(() => {\n if (_.isEqual(min, max)) {\n if (min === 0) {\n setMin(0);\n setMax(1);\n } else {\n const factor = Math.pow(10, Math.ceil(Math.log10(min))) / 10;\n\n /**\n * Use the factor to round the min and max values\n * @type {number}\n */\n const minA = Math.floor(min / factor) * factor;\n const maxA = Math.ceil(min / factor) * factor;\n\n /**\n * Simply add the factor to the min and max values\n * @type {number}\n */\n const minB = min - factor;\n const maxB = max + factor;\n\n setMin(minA === maxA ? minB : minA);\n setMax(minA === maxA ? maxB : maxA);\n }\n }\n }, [min, max]);\n\n return { min, max };\n};\n","import { G2 } from \"@ant-design/plots\";\nimport * as _ from \"lodash\";\n\nimport { Line } from \"@ctra/api\";\nimport { Nullable } from \"@ctra/utils\";\n\nexport enum AnomalyPoint {\n lead = \"lead\",\n mid = \"mid\",\n trail = \"trail\",\n join = \"join\"\n}\n\nexport type Coordinates = Array<\n (NonNullable[number] & { type?: AnomalyPoint }) | null\n>;\n\n/**\n * Find orphan points in the data surrounded by no values\n * @param {Coordinates | NonNullable} points\n * @param {Line} data\n * @return {Coordinates}\n */\nexport const findOrphans = (\n points: Coordinates | NonNullable,\n data: Line\n): Coordinates => {\n const result: Coordinates = [];\n\n _.forEach(data, (point, idx, collection) => {\n /**\n * Find the previous data point\n * @type {any}\n */\n const previous = _.get(collection, [idx - 1], {} as Line[number]);\n\n /**\n * Find the next data point\n * @type {any}\n */\n const next = _.get(collection, [idx + 1], {} as Line[number]);\n\n if (_.isNil(previous.y) && _.isNil(next.y)) {\n result.push(points[idx]);\n }\n });\n\n return result;\n};\n\n/**\n * Find the nearest valid point in the data given an index and direction\n * @param {Coordinates} points\n * @param {number} idx\n * @param {1 | -1} direction\n * @returns {any | undefined}\n */\nconst findNearestValid = (\n points: Coordinates,\n idx: number,\n direction: 1 | -1\n): Coordinates[number] | undefined => {\n for (let i = idx + direction; i >= 0 && i < points.length; i += direction) {\n const point = points[i];\n\n if (point && !isNaN(_.get(point, [\"y\"])) && !isNaN(_.get(point, [\"x\"]))) {\n return point;\n }\n }\n};\n\n/**\n * Corrct NaN values by replacing them with the nearest valid value\n * @param {Coordinates} points\n * @returns {Coordinates}\n */\nconst correctNaN = (points: Coordinates): Coordinates => {\n return _.map(points, (point, idx, collection) => {\n const prev = findNearestValid(collection, idx, -1);\n const next = findNearestValid(collection, idx, 1);\n\n if ((point && _.isNaN(_.get(point, [\"y\"]))) || _.isNaN(_.get(point, [\"x\"]))) {\n return {\n ...point,\n x: _.get(next, [\"x\"], _.get(prev, [\"x\"], 0)),\n y: _.get(next, [\"y\"], _.get(prev, [\"y\"], 0))\n };\n }\n\n return point;\n });\n};\n\n/**\n * Partition the data into two sets based on the predicate\n * @param {NonNullable} points\n * @param {Line} data\n * @param {(point: Line[number]) => boolean} predicate\n * @return {[Coordinates, Coordinates]}\n */\nexport const partition = (\n points: Coordinates | NonNullable,\n data: Line,\n predicate: (point: Nullable) => boolean\n): [Coordinates, Coordinates] => {\n const left: Coordinates = [];\n const right: Coordinates = [];\n\n _.forEach(data, (point, idx, collection) => {\n /**\n * Find the next data point\n * @type {any}\n */\n const next = _.get(collection, [idx + 1], {} as Line[number]);\n\n /**\n * Find the previous data point\n * @type {any}\n */\n const previous = _.get(collection, [idx - 1], {} as Line[number]);\n\n /**\n * Check if the current point matches the predicate\n * @type {boolean}\n */\n const matchesCurrent = predicate(point);\n\n /**\n * Check if the previous point one matches the predicate\n * @type {boolean}\n */\n const matchesPrevious = idx > 0 && predicate(previous);\n\n /**\n * Check if the next point one matches the predicate\n * @type {boolean}\n */\n const matchesNext = idx < collection.length - 1 && predicate(next);\n\n if (matchesPrevious || matchesCurrent || matchesNext) {\n let type: AnomalyPoint = AnomalyPoint.mid;\n\n if (matchesCurrent) {\n /**\n * Current one matches the predicate\n */\n if (idx === 0) {\n type = AnomalyPoint.lead;\n } else if (idx === collection.length - 1) {\n type = AnomalyPoint.trail;\n } else {\n type = AnomalyPoint.mid;\n }\n } else if (matchesPrevious && matchesNext) {\n /**\n * Previous and next one matches the predicate\n */\n type = AnomalyPoint.join;\n } else if (matchesPrevious) {\n /**\n * Previous one matches the predicate\n */\n type = AnomalyPoint.trail;\n } else if (matchesNext) {\n /**\n * Next one matches the predicate\n */\n type = AnomalyPoint.lead;\n }\n\n left.push({\n ...points[idx],\n type\n });\n right.push(predicate(point) ? null : points[idx]);\n } else {\n left.push(null);\n right.push(points[idx]);\n }\n });\n\n return [correctNaN(left), correctNaN(right)];\n};\n\n/**\n * Make a path of orphan points\n * @param {Coordinates} points\n * @return {Array<[string, Nullable, Nullable]>}\n */\nexport const makeOrphanLine = (points: Coordinates): Array<[string, Nullable, Nullable]> => {\n const path: Array<[string, Nullable, Nullable]> = [];\n\n _.forEach(points, (point, idx, collection) => {\n const current = _.defaultTo(point, {}) as G2.Types.Point;\n\n if (current.x && current.y) {\n path.push([\"M\", current.x - 5, current.y]);\n path.push([\"L\", current.x + 5, current.y]);\n }\n });\n\n return path;\n};\n\ntype Path = Array<[string, Nullable, Nullable]>;\n\n/**\n * Make a path of connecting points\n * @param {Coordinates} points\n * @param {(prev: Point, current: Point) => (\"L\" | \"M\")} getAction\n * @return {Array<[string, Nullable, Nullable]>}\n */\nexport const makeLine = (\n points: Coordinates,\n getAction: (prev: G2.Types.Point, current: G2.Types.Point, collection: Coordinates) => \"L\" | \"M\" = (prev) =>\n prev.x && prev.y ? \"L\" : \"M\"\n): Path => {\n const path: Path = [];\n\n _.forEach(points, (point, idx, collection) => {\n const current = _.defaultTo(point, {}) as G2.Types.Point;\n const prev = _.defaultTo(collection[idx - 1], {}) as G2.Types.Point;\n\n if (current.x && current.y) {\n const action = getAction(prev, current, collection);\n\n /**\n * Push the line section to the path\n */\n path.push([action, current.x, current.y]);\n }\n });\n\n return path;\n};\n\n/**\n * Simplify path by dropping the middle points in the sections\n * @param {Coordinates} points\n * @return {Coordinates}\n */\nexport const simplify = (points: Coordinates): Coordinates =>\n _.reduce(\n points,\n (acc, point, idx, collection) => {\n const { type } = _.defaultTo(point, {});\n const prev = collection[idx - 1];\n const next = collection[idx + 1];\n const midPoint = type ? type === AnomalyPoint.mid : !!prev && !!next;\n\n if (!midPoint) {\n if (point && next && !idx) {\n acc.push({\n ...point,\n y: _.get(next, [\"y\"], _.get(point, [\"y\"]))\n });\n } else if (point && prev && idx === collection.length - 1) {\n acc.push({\n ...point,\n y: _.get(prev, [\"y\"], _.get(point, [\"y\"]))\n });\n } else {\n if (type === AnomalyPoint.join) {\n acc.push(point);\n }\n\n acc.push(point);\n }\n }\n\n return acc;\n },\n [] as Coordinates\n );\n\ntype Point = G2.Types.Point & { type: AnomalyPoint };\n\n/**\n * Refill the missing y values with the nearest valid y value\n * @param {Coordinates} points\n * @return {Coordinates}\n */\nexport const refill = (points: Coordinates): Coordinates =>\n _.map(points, (point, idx, collection) => {\n /**\n * Previous point with valid y value\n * @type {Point | undefined}\n */\n const prev = _.findLast(_.take(collection, idx), (p: Point) => p && !_.isNaN(p.y));\n\n /**\n * Next point with valid y value\n * @type {Point | undefined}\n */\n const next = _.find(\n _.takeRight(collection, collection.length - idx - 1),\n (p: Point) => p && !_.isNaN(p.y)\n );\n\n if (point) {\n /**\n * Tell if the y value is NaN\n * @type {boolean}\n */\n const isValid = !_.isNaN(_.get(point, [\"y\"]));\n const { type } = point;\n\n if (!isValid) {\n /**\n * Pick a new y value from the previous or next valid point\n * @type {any}\n */\n const yNew = _.get(\n type === AnomalyPoint.lead ? next : prev,\n [\"y\"],\n _.get(type === AnomalyPoint.trail ? next : prev, [\"y\"], 0)\n );\n\n return {\n ...point,\n y: yNew\n };\n }\n }\n\n return point;\n });\n","// istanbul ignore file - I'd have a hell of a hard time testing this\n\nimport { G2 } from \"@ant-design/plots\";\nimport * as _ from \"lodash\";\n\nimport { EventEntity, EventSourceType, ExtendedEventEntity, Line } from \"@ctra/api\";\nimport { Events } from \"@ctra/components\";\n\nimport { AnomalyPoint, makeLine, partition, simplify, findOrphans, makeOrphanLine, refill } from \"./utils\";\nconst { eventCategoryMap } = Events;\n\n// const factories = G2.getShapeFactory(\"point\");\n// const defaultPoint: G2.Types.Shape = _.get(factories, factories.defaultShapeType);\n//\n// /**\n// * Register a point with inheritance\n// */\n// G2.registerShape(\n// \"point\",\n// \"with-inheritance\",\n// _.extend({}, defaultPoint, {\n// draw(cfg, container) {\n// defaultPoint.draw.apply(this, [cfg, container]);\n// }\n// } as G2.Types.Shape)\n// );\n\n/**\n * Draw anomaly lines\n * @param {Record} attrs\n * @param {{showMissingData: boolean}} options\n * @return {(cfg, container) => IGroup}\n */\nconst makeDrawAnomalyLine: (\n attrs: Record,\n options?: {\n showMissingData?: boolean;\n simplify?: boolean;\n }\n) => G2.Types.RegisterShape[\"draw\"] =\n (\n attrs,\n options = {\n showMissingData: false,\n simplify: false\n }\n ) =>\n (cfg, container) => {\n const group = container.addGroup();\n const points = _.get(cfg, [\"points\"], []);\n const lineData = _.get(cfg, [\"data\"], []) as Line;\n\n /**\n * Partition the data into missing and existing\n */\n const [missingData, existingData] = partition(\n points,\n lineData,\n (point) => !_.isNumber(_.get(point, [\"y\"], null))\n );\n\n /**\n * Partition the existing data into anomalies and ordinaries\n */\n const [anomalies, ordinaries] = partition(\n // todo use existingData instead of points\n points,\n lineData,\n (point) => !_.isNumber(_.get(point, [\"y\"], null)) || !_.isEmpty(_.get(point, [\"anomaly\"], null))\n );\n\n /**\n * Add the ordinary path to the chart\n */\n group.addShape(\"path\", {\n attrs: {\n path: makeLine(ordinaries),\n ...cfg.defaultStyle,\n stroke: cfg.color\n },\n name: \"ordinaries\"\n });\n\n /**\n * Add the special points to the chart\n */\n group.addShape(\"path\", {\n attrs: {\n path: makeLine(refill(options.simplify ? simplify(anomalies) : anomalies), (prev, current) => {\n return _.get(current, [\"type\"]) === AnomalyPoint.lead ? \"M\" : \"L\";\n }),\n ...cfg.defaultStyle,\n stroke: cfg.color,\n ...attrs\n },\n name: \"anomalies\"\n });\n\n /**\n * Make the orphan line\n */\n group.addShape(\"path\", {\n attrs: {\n path: makeOrphanLine(findOrphans(points, lineData)),\n ...cfg.defaultStyle,\n stroke: cfg.color\n },\n name: \"orphans\"\n });\n\n if (options.showMissingData) {\n const simplified = simplify(missingData);\n const chunks = _.chunk(_.compact(simplified), 2);\n\n _.forEach(chunks, ([start, end]) => {\n if (\n ![AnomalyPoint.lead, AnomalyPoint.join].includes(start.type as AnomalyPoint) &&\n ![AnomalyPoint.trail, AnomalyPoint.join].includes(start.type as AnomalyPoint)\n ) {\n console.error(\"Your start and end points are not lead and trail points.\", start, end);\n } else {\n const { x: x1 } = start as G2.Types.Point;\n const { x: x2 } = end as G2.Types.Point;\n const margin = 2;\n\n group.addShape(\"rect\", {\n attrs: {\n width: x2 - (x1 + margin) - margin,\n height: 1000, // a big enough number to cover the whole chart\n x: x1 + margin,\n y: 0,\n fill: \"rgba(0, 0 ,0 ,0.15)\",\n lineWidth: 0\n },\n name: \"rect-shape\"\n });\n }\n });\n }\n\n return group;\n };\n\nG2.registerShape(\"line\", \"hidden-anomaly-line\", {\n draw: makeDrawAnomalyLine(\n {\n lineDash: [4, 4]\n },\n {\n showMissingData: false,\n simplify: true\n }\n )\n});\n\n/**\n * Rewrite the line constructor to enable split-lines for missing data and anomalies\n */\nG2.registerShape(\"line\", \"anomaly-line\", {\n draw: makeDrawAnomalyLine(\n {\n stroke: \"#CF1322\"\n },\n {\n showMissingData: true,\n simplify: false\n }\n )\n});\n\n/**\n * Register a point for anomalies\n */\nG2.registerShape(\"point\", \"anomaly-point\", {\n draw(cfg, container) {\n const { x, y, data } = cfg;\n const anomaly = _.get(data, [\"anomaly\"], null);\n\n if (anomaly) {\n const { type } = anomaly;\n const group = container.addGroup();\n const isExplained = _.startsWith(type, \"explained\");\n\n group.addShape(\"circle\", {\n attrs: {\n x: x as number,\n y: y as number,\n r: 4,\n fill: isExplained ? \"#389e0d\" : \"#CF1322\",\n opacity: 1\n }\n });\n\n return group;\n }\n }\n});\n\n/**\n * Make an interactive farm-event point\n */\nG2.registerShape(\"point\", \"farm-event-point\", {\n draw({ x, y, data, ...rest }, container) {\n const radius = 16;\n const top = 32;\n const events = _.get(data, [\"events\"], []);\n\n if (events.length) {\n const { category } = _.head(events) as ExtendedEventEntity;\n const [, , icon] = eventCategoryMap[category];\n\n const hasAiModel = _.some(\n events,\n (event: EventEntity) => event.source.type === EventSourceType.aiModel\n );\n\n const group: G2.IGroup = container.addGroup();\n\n group.addShape(\"rect\", {\n name: \"click-area\",\n attrs: {\n x: Number(x) - radius,\n y: 0,\n width: radius * 2,\n height: Number(y),\n fill: \"#ccc\",\n opacity: 0\n }\n });\n\n group.addShape(\"path\", {\n name: \"line\",\n attrs: {\n filter: hasAiModel ? \"hue-rotate(180deg)\" : void 0,\n path: [\n [\"M\", x, 0],\n [\"L\", x, Number(y)]\n ],\n stroke: \"#d9d9d9\",\n lineWidth: 1,\n lineDash: [4, 4]\n }\n });\n\n const img = group.addShape(\"image\", {\n name: \"icon\",\n attrs: {\n filter: hasAiModel ? \"hue-rotate(180deg)\" : void 0,\n x: Number(x) - radius / 2,\n y: top - radius / 2,\n img: icon,\n width: radius,\n height: radius\n }\n });\n\n group.addShape(\"circle\", {\n name: \"circle\",\n attrs: {\n filter: hasAiModel ? \"hue-rotate(180deg)\" : void 0,\n x: Number(x),\n y: top,\n r: radius,\n stroke: \"#007180\",\n fill: \"#ffffff\"\n }\n });\n\n img.toFront();\n\n return group;\n }\n }\n});\n","import { G2 } from \"@ant-design/plots\";\nimport { IGroup } from \"@ant-design/charts\";\nimport * as _ from \"lodash\";\n\n/**\n * How much I hate importing stuff like this, but as they are not exposed and\n * I don't want to duplicate the code, I have to do it this way.\n * PS. `getActionClass` does not yield the proper type\n */\nimport { getCurrentElement } from \"@antv/g2/lib/interaction/action/util\";\nimport ElementSingleSelected from \"@antv/g2/lib/interaction/action/element/single-selected\";\n\n/**\n * Highlight the farm event point on click\n */\nclass FarmEventPointAction extends ElementSingleSelected {\n toggle() {\n super.toggle();\n const element = getCurrentElement(this.context);\n\n if (element && _.isFunction(_.get(element, [\"shape\", \"getChildren\"]))) {\n if (element.getStates().includes(this.stateName)) {\n const [, path, circle, text] = (element.shape as IGroup).getChildren();\n\n circle.animate(\n {\n fill: \"#007180\"\n },\n {\n duration: 200,\n easing: \"easeLinear\"\n }\n );\n\n text.animate(\n {\n fill: \"#ffffff\"\n },\n {\n duration: 200,\n easing: \"easeLinear\"\n }\n );\n\n path.attr({\n stroke: \"#007180\",\n lineDash: [0, 0]\n });\n }\n }\n }\n}\n\n/**\n * Register the farm event point action\n */\nG2.registerAction(\"farm-event-point-action\", FarmEventPointAction);\n\n/**\n * Register the farm event point interaction\n */\nG2.registerInteraction(\"farm-event-point-interaction\", {\n start: [{ trigger: \"element:click\", action: \"farm-event-point-action:toggle\" }]\n});\n\n/**\n * Show a pointer cursor when hovering over a chart element\n */\nG2.registerInteraction(\"hover-cursor\", {\n showEnable: [\n { trigger: \"element:mouseenter\", action: \"cursor:pointer\" },\n { trigger: \"element:mouseleave\", action: \"cursor:default\" }\n ]\n});\n","import { useState } from \"react\";\nimport * as _ from \"lodash\";\nimport { Datum, LineConfig, MixConfig } from \"@ant-design/charts\";\nimport { useDeepCompareEffect, useDeepCompareMemo } from \"use-deep-compare\";\nimport moment from \"moment\";\n\nimport {\n ChartDataPointXAxisType,\n DataDictionary,\n DataPointsMeta,\n EventSourceType,\n ExtendedEventEntity,\n ISODuration,\n Line,\n LineData\n} from \"@ctra/api\";\n\nimport { Epoch, getTimeOfDay, hslToHex, TS } from \"@ctra/utils\";\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\n\nimport { useAnnotations, useChartContext, useSeriesColor } from \"../../../providers\";\nimport { useCommonConfig, useMinMax } from \"../../../hooks\";\nimport { LibraryConfigType } from \"../../../typings\";\nimport { filterLineBySeries } from \"../../../utils\";\nimport \"../Tooltip.css\";\n\nimport \"./geometries\";\nimport \"./interactions\";\n\nconst {\n iofc: {\n chart: { today: todayLabel }\n }\n} = Content;\n\n/**\n * Today's date\n * @type {string}\n */\nconst today = moment().format(\"YYYY-MM-DD\");\n\n/**\n * Map predictions into the line data\n * @param {Line} data\n * @return {Line}\n */\nconst mapAnomalies = (data: Line): Line =>\n _.map(data, ({ y, anomaly, ...rest }) => ({\n y, // y: _.get(anomaly, [\"prediction\"], y),\n anomaly,\n ...rest\n }));\n\n/**\n * Format the x-axis label\n * @param {number} value\n * @param {{type: ChartDataPointXAxisType, bucketSize: ISODuration}} formatOptions\n * @param {{mayLocalise?: boolean, mayConvertToUTC?: boolean}} flags\n * @returns {string}\n */\nconst formatXLabel = (\n value: number,\n formatOptions: {\n type?: ChartDataPointXAxisType;\n bucketSize?: ISODuration;\n } = {\n type: ChartDataPointXAxisType.date,\n bucketSize: DataDictionary.DefaultDataInterval\n },\n flags: { mayLocalise?: boolean; mayConvertToUTC?: boolean } = {}\n): string => {\n const { type, bucketSize } = formatOptions;\n const { mayLocalise, mayConvertToUTC } = flags;\n\n /**\n * Make an epock from the value\n * @type {moment.Moment}\n */\n let moment = Epoch.asMoment(Epoch.load(value));\n\n let format;\n\n switch (type) {\n case ChartDataPointXAxisType.weekDay:\n format = \"DD MMM\";\n break;\n case ChartDataPointXAxisType.month:\n format = \"MMM YYYY\";\n break;\n default:\n format = \"L\";\n }\n\n switch (bucketSize) {\n case \"P1D\":\n format = \"L\";\n break;\n case \"P1W\":\n format = \"DD MMM\";\n break;\n case \"P1M\":\n format = \"MMM YYYY\";\n break;\n case \"P1Y\":\n format = \"YYYY\";\n break;\n default:\n format = \"L\";\n }\n\n if (mayConvertToUTC) {\n moment = moment.utc();\n }\n\n if (mayLocalise) {\n moment = moment.local();\n }\n\n return moment.format(format);\n};\n\n/**\n * Format the y-axis label\n * @param {string} value\n * @param {DataPointsMeta} meta\n * @returns {string | number}\n */\nconst formatYLabel = (value: string, meta: DataPointsMeta): string | number => {\n const axisUnit = _.get(meta, [\"yAxis\", \"unit\"]);\n const isTimeOfDay = axisUnit === \"timeOfDay\" && _.isNumber(Number(value));\n let label: string | number = value;\n\n if (isTimeOfDay) {\n label = getTimeOfDay(Number(value));\n } else if (_.isNumber(Number(value))) {\n label = _.round(Number(value), 4);\n }\n\n return label;\n};\n\n/**\n * Future region annotation - for projections\n * @type {{type: string, start: string[], end: string[], style: {fill: string, fillOpacity: number}}}\n */\nconst projectedRegion: NonNullable[number] = {\n type: \"region\",\n start: [today, \"min\"],\n end: [\"max\", \"max\"],\n style: {\n fill: \"#CCF9FF\",\n fillOpacity: 1\n }\n};\n\n/**\n * Get the projected separator (usually \"today\")\n * @param {string} label\n * @returns {NonNullable[number]}\n */\nconst getProjectedAreaSeparator = (label: string): NonNullable[number] => {\n return {\n type: \"line\",\n start: [today, 0],\n end: [today, \"max\"],\n text: {\n content: label,\n position: \"right\",\n offsetX: 18,\n offsetY: 5,\n style: {\n textAlign: \"right\"\n }\n },\n style: {\n lineWidth: 2,\n lineDash: [4, 4]\n }\n };\n};\n\n/**\n * Format the tooltip\n * @param {Datum} datum\n * @param {DataPointsMeta} meta\n * @param {{roundingPrecision?: number}} options\n * @returns {{name: string, value: string}}\n */\nconst formatTooltip = (\n datum: Datum,\n meta: DataPointsMeta,\n options: { roundingPrecision?: number } = {}\n): { name: string; value: string } => {\n const { y, seriesField } = datum;\n const axisUnit = _.get(meta, [\"yAxis\", \"unit\"]);\n const series = _.get(meta, [\"series\"], {});\n const isTimeOfDay = axisUnit === \"timeOfDay\" && _.isNumber(y);\n const { roundingPrecision } = options;\n const name = _.get(series, [\"keys\", seriesField], seriesField);\n\n let value = y;\n\n if (isTimeOfDay) {\n value = getTimeOfDay(Number(y));\n } else if (_.isNumber(y)) {\n if (roundingPrecision) {\n value = y.toFixed(roundingPrecision);\n } else {\n value = _.round(y, 2);\n }\n } else if (_.isNull(y)) {\n value = \"N/A\";\n }\n\n return {\n name,\n value\n };\n};\n\n/**\n * Resolve the event annotations\n * @note this is basically a custom Line in the chart which will receive manipulated geometry\n * @param {Line} data\n * @param {Record} eventGroups\n * @param {Record} showingEvents\n * @returns {{x: string, y: number, seriesField: string, events: any[]}[]}\n */\nconst resolveEventAnnotations = (\n data: Line,\n eventGroups: Record,\n showingEvents?: Record\n): { x: string; y: number; seriesField: string; events: any[] }[] => {\n /**\n * Make the data unique by x, we only care about the dates\n * @type {{x: string, y: Nullable, seriesField: string, context?: PointContext, missing?: boolean, anomaly?: {prediction?: number, type?: string}}[]}\n */\n const uniqueByX = _.uniqBy(data, \"x\");\n\n /**\n * Get a list of visible event types\n * @type {string[]}\n */\n const visibleEvents: string[] = _.isPlainObject(showingEvents)\n ? _.keys(_.omitBy(showingEvents, (on) => !on))\n : [];\n\n return _.map(uniqueByX, ({ x }) => {\n /**\n * Grab all events of the given date\n * @type {Exclude[string], undefined> | any[]}\n */\n const eventsOfX = _.get(eventGroups, [x], []);\n\n /**\n * Grab the events which are supposed to be visible\n * @type {any[]}\n */\n const filteredEvents = _.filter(eventsOfX, ({ source: { type } }) => visibleEvents.includes(type));\n\n return {\n x,\n /**\n * This trick allows to easily determine the height of the graph in pixels.\n * The value 0 will become \"bottom of graph\".\n */\n y: 0,\n seriesField: \"farm-event\",\n /**\n * Append the events to the data\n */\n events: filteredEvents\n };\n });\n};\n\n/**\n * Hook that merges line config with the common config\n * The common config coming from the main app overrides the preset config\n * @return {{config: MixConfig}}\n */\nexport const useLineConfig = (): {\n config: MixConfig | LineConfig;\n} => {\n const { getColor } = useSeriesColor();\n const { commonConfig } = useCommonConfig();\n const { t } = useTranslation();\n const { eventGroups } = useAnnotations();\n\n const {\n entity,\n data,\n config: contextConfig,\n series,\n meta,\n dataOptions: { bucketSize, timePeriod, roundingPrecision },\n viewOptions: { showEvents, showAnomalies }\n } = useChartContext();\n\n const [filteredData, setFilteredData] = useState(data);\n const { min: minimum, max: maximum } = useMinMax(filteredData, \"y\");\n const { seriesType, axis, series: metaSeries } = _.defaultTo(meta, {});\n\n /**\n * Show projections if the end date is after today\n */\n const showProjections = moment(timePeriod?.endDate).isAfter(moment(today).add(1, \"days\"));\n\n /**\n * Get the series keys from the metadata\n */\n const seriesKeys = _.get(meta, [\"series\", \"keys\"], {});\n\n /**\n * Count the number of items in the legend\n * @type {number}\n */\n const legendSize = _.size(series) || _.size(seriesKeys);\n\n /**\n * Update the graph every time the data changes\n */\n useDeepCompareEffect(() => {\n setFilteredData(filterLineBySeries(data, meta, series));\n }, [data, meta, series]);\n\n /**\n * Line chart config\n */\n const lineConfig: LineConfig = useDeepCompareMemo(\n () =>\n _.merge({}, commonConfig, {\n /**\n * Custom info for the shapes\n */\n customInfo: \"Test: this should be accessible in registerShape in some way.\",\n /**\n * turn off the legends if there is only one series\n */\n legend:\n legendSize > 1\n ? _.isUndefined(contextConfig.legend)\n ? commonConfig.legend\n : contextConfig.legend\n : false,\n /**\n * Don't connect null values\n */\n connectNulls: false,\n /**\n * Line data\n */\n data: showAnomalies ? filteredData : mapAnomalies(filteredData),\n /**\n * Pull the annotations from the context config\n */\n annotations:\n showProjections && entity.dataProperties.maxProjectionInterval\n ? _.compact(\n _.concat(contextConfig.annotations, [\n projectedRegion,\n getProjectedAreaSeparator(t(todayLabel))\n ])\n )\n : contextConfig.annotations,\n /**\n * Tooltip settings\n */\n tooltip: _.isUndefined(contextConfig.tooltip)\n ? {\n shared: legendSize <= 3,\n showCrosshairs: true,\n containerTpl: `\n
    \n
      \n
      \n
      \n `,\n crosshairs: {\n type: \"x\",\n line: {\n style: {\n lineDash: [4, 4]\n }\n }\n },\n marker: {\n zIndex: 0\n },\n title: (value: string, { x }: Line[number]) => TS.asMoment(x).format(\"LL\"),\n formatter: (datum: Datum): { name: string; value: string | number } =>\n formatTooltip(datum, meta, { roundingPrecision })\n }\n : contextConfig.tooltip,\n /**\n * Field settings\n */\n xField: \"x\",\n yField: \"y\",\n seriesField: \"seriesField\",\n /**\n * Custom shapes\n */\n lineShape: showAnomalies ? \"anomaly-line\" : \"hidden-anomaly-line\",\n point: showAnomalies\n ? {\n shape: \"anomaly-point\"\n }\n : void 0,\n /**\n * X axis styling\n */\n xAxis: {\n tickMethod: (time: any) => time.values,\n label: {\n offset: 10\n },\n line: {\n style: {\n lineWidth: 0.5,\n stroke: \"#000000\"\n }\n },\n nice: true,\n tickLine: {\n length: 3,\n style: {\n lineWidth: 1,\n stroke: \"#000000\"\n }\n },\n /**\n * @todo keep an eye on this\n * range is changed to [0.49, 0.51] if there is only one date on the x-axis\n * this is used to center the single data points on the center of the x-axis\n */\n range: new Set(data.map((item) => item?.x)).size === 1 ? [0.49, 0.51] : [0, 1]\n },\n meta: {\n x: {\n sync: true,\n type: \"time\",\n /**\n * Format the x-axis labels, but localise the date only if it is not a weekDay or month\n * @param {number} value\n * @returns {string}\n */\n formatter: (value: number): string =>\n formatXLabel(\n value,\n { type: meta.xType, bucketSize },\n { mayLocalise: false, mayConvertToUTC: false }\n )\n },\n y: {\n minTickInterval: roundingPrecision ? 1 / Math.pow(10, roundingPrecision) : void 0\n }\n },\n /**\n * y-axis styling\n */\n yAxis: {\n label: {\n formatter: (value: string) => formatYLabel(value, meta)\n },\n max: _.round(maximum * 1.02, roundingPrecision),\n min: _.round(minimum - maximum * 0.02, roundingPrecision),\n title: {\n text: _.get(axis, [\"y\", \"title\"], \"\")\n }\n },\n /**\n * Get colors for the lines\n * @param {any} seriesField\n * @return {any}\n */\n color: _.memoize(\n ({ seriesField }: Datum) => hslToHex(getColor(seriesType as string, seriesField)),\n ({ seriesField }) => seriesField\n )\n }),\n [\n filteredData,\n axis,\n commonConfig,\n maximum,\n minimum,\n metaSeries,\n seriesType,\n showAnomalies,\n contextConfig.annotations,\n getColor\n ]\n );\n\n /**\n * Farm events line config\n */\n const farmEventLineConfig: LineConfig = useDeepCompareMemo(\n () => ({\n animation: false,\n /**\n * Add the farm event info to the points where they exist\n */\n data: resolveEventAnnotations(filteredData, eventGroups, showEvents),\n /**\n * Tooltip settings\n */\n tooltip: false,\n /**\n * Field settings\n */\n xField: \"x\",\n yField: \"y\",\n seriesField: \"seriesField\",\n /**\n * Turn off axes\n */\n xAxis: false,\n yAxis: false,\n /**\n * Point for farm events\n */\n point: {\n shape: \"farm-event-point\",\n state: {\n active: {\n style: () => ({\n stroke: \"#007180\"\n })\n },\n /**\n * Keep this empty so the interaction can be responsible for the\n * styling as this point has more components to target separately\n */\n selected: {\n style: () => ({\n stroke: \"#007180\",\n lineDash: [0, 0]\n })\n }\n }\n },\n /**\n * Line styling\n */\n lineStyle: {\n opacity: 0\n },\n /**\n * Hook up interactions\n */\n interactions: [\n { type: \"hover-cursor\" },\n { type: \"element-active\" },\n { type: \"element-single-selected\" }\n ]\n }),\n [filteredData, eventGroups, showEvents]\n );\n\n /**\n * Mix chart config\n */\n const mixConfig: MixConfig | LibraryConfigType = useDeepCompareMemo(\n () =>\n showEvents\n ? {\n syncViewPadding: true,\n plots: _.compact([\n {\n type: \"line\",\n options: lineConfig\n },\n {\n type: \"line\",\n options: farmEventLineConfig\n }\n ])\n }\n : lineConfig,\n [farmEventLineConfig, lineConfig, showEvents]\n );\n\n return useDeepCompareMemo(\n () => ({\n config: _.merge(\n // no tooltip for the chart as a whole\n {\n tooltip: false,\n ..._.omit(contextConfig, \"annotations\")\n },\n // use the common config without tooltip\n _.omit(commonConfig, \"tooltip\"),\n // add in the mix config which has tooltip definitions\n mixConfig\n )\n }),\n [contextConfig, commonConfig, mixConfig]\n );\n};\n","import { FC, ForwardedRef, memo, MutableRefObject } from \"react\";\nimport * as _ from \"lodash\";\nimport { compose } from \"lodash/fp\";\nimport { Mix as AntMix, MixConfig, Line as AntLine } from \"@ant-design/charts\";\n\nimport { withChartWrapper, withSeriesColor, withAnnotations } from \"../../../hocs\";\nimport { LibraryConfigType } from \"../../../typings\";\nimport { useLineConfig } from \"./useLineConfig\";\n\nconst isMix = (config: MixConfig | LibraryConfigType): config is MixConfig => _.has(config, \"plots\");\n\n// const isMutableRef = (ref: ForwardedRef): ref is MutableRefObject => _.has(ref, \"current\");\n\n/**\n * Line component\n * @type {React.NamedExoticComponent}\n */\nconst LineComponent: FC = memo(\n () => {\n const { config } = useLineConfig();\n\n return isMix(config) ? : ;\n },\n (prev, next) => _.isEqual(prev, next)\n);\n\nLineComponent.displayName = \"Line\";\n\n/**\n * Full Line chart\n */\nexport const Line: FC = compose(withAnnotations, withChartWrapper, withSeriesColor)(LineComponent);\n","import { FC, ComponentType, PropsWithChildren } from \"react\";\nimport hoistNonReactStatics from \"hoist-non-react-statics\";\n\nimport { getDisplayName } from \"@ctra/utils\";\nimport { AnnotationsContext } from \"../../providers\";\n\n/**\n * Wrap component with annotations\n * @param WrappedComponent\n * @returns\n */\nexport function withAnnotations

      >>(\n WrappedComponent: ComponentType

      \n): FC

      {\n const WithAnnotations: FC

      = (props: P) => (\n \n \n \n );\n\n WithAnnotations.displayName = `WithAnnotations(${getDisplayName(WrappedComponent)})`;\n return hoistNonReactStatics(WithAnnotations, WrappedComponent);\n}\n","import { useState } from \"react\";\nimport * as _ from \"lodash\";\nimport { BarConfig, Datum } from \"@ant-design/charts\";\nimport { useDeepCompareEffect, useDeepCompareMemo } from \"use-deep-compare\";\n\nimport { BarData, ChartSeriesType } from \"@ctra/api\";\nimport { hslToHex } from \"@ctra/utils\";\n\nimport { useChartContext, useSeriesColor } from \"../../../providers\";\nimport { useCommonConfig } from \"../../../hooks\";\nimport { filterBarBySeries } from \"../../../utils\";\nimport \"../Tooltip.css\";\n\n/**\n * Hook that merges bar config with the common config\n * The common config coming from the main app overrides the preset config\n * @returns\n */\nexport const useBarConfig = (): { config: BarConfig } => {\n const { commonConfig } = useCommonConfig();\n const { getColor } = useSeriesColor();\n\n const { series, data = [], meta } = useChartContext();\n const [filteredData, setFilteredData] = useState(data);\n const { seriesType, series: metaSeries, yAxis: xAxis, axis } = _.defaultTo(meta, {});\n\n /**\n * Get the series keys from the metadata\n */\n const seriesKeys = _.get(meta, [\"series\", \"keys\"], {});\n\n /**\n * Count the number of items in the legend\n * @type {number}\n */\n const legendSize = _.size(series) || _.size(seriesKeys);\n\n useDeepCompareEffect(() => {\n setFilteredData(filterBarBySeries(data, meta, series));\n }, [data, meta, series]);\n\n /**\n * Bar chart config\n * @type {{yAxis: {line: {style: {stroke: string, lineWidth: number}}, label: {style: {fontSize: number, stroke: string, lineWidth: number}}, tickLine: {length: number, style: {stroke: string, lineWidth: number}}}, xAxis: {min: number, max: number, line: {style: {stroke: string, lineWidth: number}}, label: {offset: number}, title: {style: {fontSize: number, fontWeight: string}, text: string | undefined}, nice: boolean, tickLine: {length: number, style: {stroke: string, lineWidth: number}}}, xField: string, color: ({seriesField}: {seriesField: any}) => string, data: any[], yField: string, tooltip: {shared: boolean, customContent: (_title, content) => HTMLElement, showTitle: boolean}, seriesField: string, intervalPadding: number}}\n */\n const config: BarConfig = useDeepCompareMemo(\n () => ({\n color: _.memoize(\n ({ seriesField }: Datum) => {\n return hslToHex(getColor(seriesType as string, seriesField));\n },\n ({ seriesField }) => seriesField\n ),\n /**\n * turn off the legends if there is only one series\n */\n legend: legendSize > 1 ? commonConfig.legend : false,\n data: filteredData,\n seriesField: \"seriesField\",\n tooltip: {\n shared: true,\n containerTpl: `\n

      \n
        \n
        \n `,\n showTitle: false,\n formatter: (datum: Datum) => ({\n name: _.get(metaSeries, [\"keys\", datum.seriesField], datum.seriesField),\n value: _.round(datum.x, 2)\n })\n },\n xAxis: {\n label: {\n formatter: (value) => _.get(metaSeries, [\"keys\", value], value),\n offset: 10,\n autoRotate: true,\n autoHide: false,\n autoEllipsis: true\n },\n line: {\n style: {\n lineWidth: 0.5,\n stroke: \"#000000\"\n }\n },\n tickLine: {\n style: {\n lineWidth: 1,\n stroke: \"#000000\"\n }\n }\n },\n yAxis: {\n title: {\n style: {\n fontSize: 14,\n fontWeight: \"bolder\"\n },\n text: xAxis?.unit ? `${axis?.x.title}(${xAxis.unit})` : axis?.x.title\n },\n label: {\n style: {\n fontSize: 11,\n lineWidth: 0.5,\n stroke: \"#000000\"\n }\n },\n line: {\n style: {\n lineWidth: 0.5,\n stroke: \"#000000\"\n }\n },\n tickLine: {\n length: 5,\n style: {\n lineWidth: 1,\n stroke: \"#000000\"\n }\n }\n },\n xField: \"y\",\n yField: \"x\"\n }),\n [filteredData, metaSeries, seriesType, legendSize, commonConfig, axis, xAxis]\n );\n\n return useDeepCompareMemo(\n () => ({\n config: _.merge({}, commonConfig, config)\n }),\n [commonConfig, config]\n );\n};\n","import { FC, memo } from \"react\";\nimport * as _ from \"lodash\";\nimport { compose } from \"lodash/fp\";\n\nimport { Column as AntBar } from \"@ant-design/charts\";\n\nimport { useBarConfig } from \"./useBarConfig\";\n\nimport { withChartWrapper, withSeriesColor } from \"../../../hocs\";\n\n/**\n * Bar Component\n * @returns\n */\nconst BarComponent: FC = memo(\n () => {\n const { config } = useBarConfig();\n\n return ;\n },\n (prev, next) => _.isEqual(prev, next)\n);\n\nBarComponent.displayName = \"Bar\";\n\n/**\n * Full Bar chart\n */\nexport const Bar: FC = compose(withChartWrapper, withSeriesColor)(BarComponent);\n","import { FC, useState, useCallback } from \"react\";\nimport * as _ from \"lodash\";\nimport { useDeepCompareEffect } from \"use-deep-compare\";\n\nimport { TableData, Table as TableType } from \"@ctra/api\";\nimport { Table as AntTable } from \"@ctra/components\";\n\nimport { withChartWrapper } from \"../../../hocs\";\nimport { useChartContext } from \"../../../providers\";\n\nimport styles from \"./Table.module.less\";\nimport { filterTableBySeries } from \"../../../utils\";\nimport moment from \"moment/moment\";\n\n/**\n * Table component\n * @returns\n */\nexport const TableComponent: FC = () => {\n const { series, data = [], meta } = useChartContext();\n\n const { columns, xType, keyRows } = _.defaultTo(meta, {\n columns: [],\n keyRows: {}\n });\n\n /**\n * Update the rows of first column\n * The values are contained in the keyRows\n */\n const updateTableData = useCallback(\n (data: TableType) =>\n _.map(data, (item) => {\n const isXTypeValid = _.isString(xType);\n const xTypeValue = isXTypeValid ? item[xType] : void 0;\n\n const isDataValid =\n isXTypeValid && (_.isArray(xTypeValue) || _.isString(xTypeValue) || _.isNumber(xTypeValue));\n\n const overrides = isDataValid\n ? { [xType]: _.get(keyRows, _.isArray(xTypeValue) ? xTypeValue : [xTypeValue]) }\n : {};\n\n return _.isEmpty(overrides)\n ? item\n : {\n ...item,\n ...overrides\n };\n }),\n [keyRows, xType]\n );\n\n const [updatedData, setUpdatedData] = useState(updateTableData(data));\n\n useDeepCompareEffect(() => {\n setUpdatedData(updateTableData(data));\n }, [data]);\n\n const [filteredColumns, setFilteredColumns] = useState(columns);\n\n useDeepCompareEffect(() => {\n if (_.isArray(columns)) {\n const [first, ...rest] = columns;\n const { key } = first;\n\n setFilteredColumns(\n filterTableBySeries(\n [\n {\n ...first,\n ...(key === \"date\"\n ? {\n sortOrder: \"descend\",\n showSorterTooltip: false,\n sorter: ({ key: keyA }: { key: string }, { key: keyB }: { key: string }) => {\n if (moment(keyA).isValid() && moment(keyB).isValid()) {\n return moment(keyA).isBefore(keyB) ? -1 : 1;\n } else if (_.isString(keyA) && _.isString(keyB)) {\n return keyA.localeCompare(keyB);\n } else {\n return 0;\n }\n }\n }\n : {})\n },\n ...rest\n ],\n xType,\n series\n )\n );\n }\n }, [columns, xType, series]);\n\n return (\n \n );\n};\n\n/**\n * Full Table chart\n */\nexport const Table: FC = withChartWrapper(TableComponent, {\n wrapper: styles.Wrapper,\n zoomed: styles.Zoom\n});\n","import { useState, useEffect } from \"react\";\nimport moment from \"moment\";\nimport * as _ from \"lodash\";\nimport { Datum, HeatmapConfig } from \"@ant-design/charts\";\n\nimport { ChartDataPointXAxisType, HeatmapData } from \"@ctra/api\";\nimport { TS, Units } from \"@ctra/utils\";\n\nimport { useChartContext, useRangeFilter, useSeriesColor } from \"../../../providers\";\nimport { useColorGradient, useCommonConfig } from \"../../../hooks\";\nimport \"../Tooltip.css\";\n\n/**\n * Hook that merges heatmap config with the common config\n * The common config coming from the main app overrides the preset config\n * @returns\n */\nexport const useHeatmapConfig = (): { config: HeatmapConfig } => {\n const { commonConfig } = useCommonConfig();\n const { getColor } = useSeriesColor();\n const { data: inputData = [], meta, config: contextConfig } = useChartContext();\n const [data, setData] = useState(inputData);\n\n const { seriesType, seriesField, axis } = _.defaultTo(meta, {});\n const colorGradient = useColorGradient(getColor(seriesType, seriesField));\n\n const {\n api: { filterByRange }\n } = useRangeFilter();\n\n useEffect(() => {\n setData(filterByRange(inputData));\n }, [filterByRange, inputData]);\n\n /**\n * Heatmap chart config\n * @type {{yAxis: {grid: null, line: {style: {stroke: string, lineWidth: number}}, tickLine: {length: number, style: {stroke: string, lineWidth: number}}}, xAxis: {grid: null, line: {style: {stroke: string, lineWidth: number}}, label: {formatter: (value: string) => string | undefined, rotate: number, offset: number, style: {fontSize: number}}, tickLine: {alignTick: boolean, length: number, style: {stroke: string, lineWidth: number}}}, xField: string, color: Array, data: any[], meta: {x: {type: string}}, yField: string, tooltip: {shared: boolean, customContent: (_title, content) => HTMLElement, showTitle: boolean}, colorField: string}}\n */\n /* istanbul ignore next - testing this proved a pain especially the callbacks */\n const config: HeatmapConfig = {\n color: colorGradient,\n colorField: \"z\",\n data,\n meta: {\n x: {\n type: \"cat\"\n }\n },\n tooltip: {\n title: (title, { x }) => TS.asMoment(x).format(\"LL\"),\n fields: [\"x\", \"y\", \"z\"],\n shared: false,\n formatter: (datum: Datum) => ({\n name: `${_.padStart(datum.y, 2, \"0\")}:00`,\n value: Units.format(datum.z, axis?.y.title || \"\")\n })\n },\n xAxis: {\n grid: null,\n label: {\n autoRotate: true,\n formatter: (value: string) => {\n const [key] = _.isString(value) ? value.split(\"T\") : [value];\n const isoWeekDay = moment(value).second();\n\n return _.isEqual(meta.xType, ChartDataPointXAxisType.weekDay)\n ? moment().isoWeekday(isoWeekDay).format(\"dddd\")\n : axis?.x.labels?.short[key];\n }\n },\n line: {\n style: {\n lineWidth: 0.5,\n stroke: \"#000000\"\n }\n },\n tickLine: {\n alignTick: true,\n length: 5,\n style: {\n lineWidth: 1,\n stroke: \"#000000\"\n }\n }\n },\n yAxis: {\n grid: null,\n line: {\n style: {\n lineWidth: 0.5,\n stroke: \"#000000\"\n }\n },\n tickLine: {\n length: 5,\n style: {\n lineWidth: 1,\n stroke: \"#000000\"\n }\n }\n },\n xField: \"x\",\n yField: \"y\"\n };\n\n return { config: _.merge({}, commonConfig, config, contextConfig) };\n};\n","import { ColorType, hslToHex } from \"@ctra/utils\";\n\n/**\n * useColorGradient hook\n *\n * @param color\n * @returns\n */\nexport const useColorGradient = (color: ColorType): Array => {\n const { hue } = color;\n\n const lightestShade = hslToHex({ hue, saturation: 10, luminosity: 90 });\n const midShade = hslToHex({ hue, saturation: 50, luminosity: 50 });\n const darkestShade = hslToHex({ hue, saturation: 90, luminosity: 10 });\n\n return [lightestShade, midShade, darkestShade];\n};\n","import { FC } from \"react\";\nimport * as _ from \"lodash/fp\";\nimport { Heatmap as AntHeatmap } from \"@ant-design/charts\";\n\nimport { withChartWrapper, withRangeFilter, withSeriesColor } from \"../../../hocs\";\nimport { useHeatmapConfig } from \"./useHeatmapConfig\";\n\n/**\n * Heatmap Component\n * @returns\n */\nconst HeatmapComponent = () => {\n const { config } = useHeatmapConfig();\n\n return ;\n};\n\n/**\n * Full Heatmap chart\n */\nexport const Heatmap: FC = _.compose(withChartWrapper, withSeriesColor, withRangeFilter)(HeatmapComponent);\n","import { FC, ComponentType, PropsWithChildren } from \"react\";\nimport hoistNonReactStatics from \"hoist-non-react-statics\";\n\nimport { getDisplayName } from \"@ctra/utils\";\nimport { RangeFilterContext } from \"../../providers\";\n\n/**\n * Wrap component with filtering by range\n * @param {React.ComponentType

        } WrappedComponent\n * @return {React.FC

        }\n */\nexport function withRangeFilter

        >>(\n WrappedComponent: ComponentType

        \n): FC

        {\n const WithRangeFilter: FC

        = (props: P) => {\n return (\n \n \n \n );\n };\n\n WithRangeFilter.displayName = `WithRangeFilter(${getDisplayName(WrappedComponent)})`;\n return hoistNonReactStatics(WithRangeFilter, WrappedComponent);\n}\n","import { useState } from \"react\";\nimport * as _ from \"lodash\";\nimport { ColumnConfig, Datum } from \"@ant-design/charts\";\nimport { useDeepCompareEffect, useDeepCompareMemo } from \"use-deep-compare\";\n\nimport { ChartType, ColumnData } from \"@ctra/api\";\nimport { hslToHex } from \"@ctra/utils\";\n\nimport { useChartContext, useSeriesColor } from \"../../../providers\";\nimport { useCommonConfig } from \"../../../hooks\";\nimport { filterColumnBySeries, getStackedMax } from \"../../../utils\";\nimport \"../Tooltip.css\";\n\n/**\n * Hook that merges column config with the common config\n * The common config coming from the main app overrides the preset config\n * @returns\n */\nexport const useColumnConfig = (): { config: ColumnConfig } => {\n const { getColor } = useSeriesColor();\n const { commonConfig } = useCommonConfig();\n\n const { series, data = [], meta, config: contextConfig } = useChartContext();\n const [filteredData, setFilteredData] = useState(data);\n const { type: chartType, seriesType, axis, series: metaSeries } = _.defaultTo(meta, {});\n\n /**\n * Get the series keys from the metadata\n */\n const seriesKeys = _.get(meta, [\"series\", \"keys\"], {});\n\n /**\n * Count the number of items in the legend\n * @type {number}\n */\n const legendSize = _.size(series) || _.size(seriesKeys);\n\n useDeepCompareEffect(() => {\n setFilteredData(filterColumnBySeries(data, meta, series));\n }, [data, meta, series]);\n\n const isStack =\n chartType === ChartType.stackedColumn ||\n chartType === ChartType.stackedPercentColumn ||\n chartType === ChartType.basicColumn;\n\n /**\n * Column chart config\n * @type {{yAxis: {min: number | undefined, max: number | undefined, line: {style: {stroke: string, lineWidth: number}}, label: {formatter: (value) => number}, tickLine: {length: number, style: {stroke: string, lineWidth: number}}}, xAxis: {line: {style: {stroke: string, lineWidth: number}}, label: {formatter: (value) => string | undefined, offset: number}, nice: boolean, tickLine: {length: number, style: {stroke: string, lineWidth: number}}}, xField: string, color: ({seriesField}: {seriesField: any}) => string, data: any[], yField: string, tooltip: {shared: boolean, customContent: (_title, content) => HTMLElement, showTitle: boolean}, seriesField: string, intervalPadding: number, isStack: boolean}}\n */\n const config: ColumnConfig = useDeepCompareMemo(\n () => ({\n color: _.memoize(\n ({ seriesField }) => hslToHex(getColor(seriesType as string, seriesField)),\n ({ seriesField }) => seriesField\n ),\n /**\n * turn off the legends if there is only one series\n */\n legend: legendSize > 1 ? commonConfig.legend : false,\n data: filteredData,\n intervalPadding: 5,\n isStack,\n seriesField: \"seriesField\",\n tooltip: {\n shared: true,\n containerTpl: `\n

        \n
          \n
          \n `,\n showTitle: false,\n formatter: (datum: Datum) => ({\n name: _.get(metaSeries, [\"keys\", datum.seriesField], datum.seriesField),\n value: datum.y\n })\n },\n xAxis: {\n label: {\n formatter: (value) => {\n return axis?.x.labels?.short[value];\n },\n offset: 10,\n autoRotate: true,\n autoHide: false,\n autoEllipsis: true\n },\n line: {\n style: {\n lineWidth: 0.5,\n stroke: \"#000000\"\n }\n },\n nice: true,\n tickLine: {\n length: 5,\n style: {\n lineWidth: 1,\n stroke: \"#000000\"\n }\n }\n },\n yAxis: {\n label: {\n formatter: (value) => {\n return _.round(parseFloat(value), 2);\n }\n },\n line: {\n style: {\n lineWidth: 0.5,\n stroke: \"#000000\"\n }\n },\n max: getStackedMax(filteredData, \"x\", \"y\"),\n min: 0,\n tickLine: {\n style: {\n lineWidth: 1,\n stroke: \"#000000\"\n },\n length: 5\n }\n },\n xField: \"x\",\n yField: \"y\"\n }),\n [filteredData, metaSeries, axis, commonConfig, legendSize, seriesType]\n );\n\n return useDeepCompareMemo(\n () => ({\n config: _.merge({}, contextConfig, commonConfig, config)\n }),\n [config, commonConfig, contextConfig]\n );\n};\n","import { FC, memo } from \"react\";\nimport * as _ from \"lodash\";\nimport { compose } from \"lodash/fp\";\nimport { Column as AntColumn } from \"@ant-design/charts\";\n\nimport { withChartWrapper, withSeriesColor } from \"../../../hocs\";\nimport { useColumnConfig } from \"./useColumnConfig\";\n\n/**\n * Column Component\n * @returns\n */\nconst ColumnComponent: FC = memo(\n () => {\n const { config } = useColumnConfig();\n\n return ;\n },\n (prev, next) => _.isEqual(prev, next)\n);\n\nColumnComponent.displayName = \"Column\";\n\n/**\n * Full Column chart\n */\nexport const Column: FC = compose(withChartWrapper, withSeriesColor)(ColumnComponent);\n","import { FC } from \"react\";\nimport * as _ from \"lodash/fp\";\n\nimport { Area as AntArea } from \"@ant-design/charts\";\n\nimport { useAreaConfig } from \"./useAreaConfig\";\n\nimport { withChartWrapper, withSeriesColor } from \"../../../hocs\";\n\n/**\n * Area Component\n * @returns\n */\nconst AreaComponent: FC = () => {\n const { config } = useAreaConfig();\n\n return ;\n};\n\n/**\n * Full Area chart\n */\nexport const Area: FC = _.compose(withChartWrapper, withSeriesColor)(AreaComponent);\n","import { useEffect, useState } from \"react\";\nimport * as _ from \"lodash\";\nimport { AreaConfig } from \"@ant-design/charts\";\n\nimport { LineData } from \"@ctra/api\";\nimport { hslToHex } from \"@ctra/utils\";\n\nimport { useChartContext, useSeriesColor } from \"../../../providers\";\nimport { useCommonConfig } from \"../../../hooks\";\nimport { getStackedMax, getStackedMin } from \"../../../utils\";\nimport \"../Tooltip.css\";\n\n/**\n * Hook that merges area config with the common config\n * The common config coming from the main app overrides the preset config\n * @returns\n */\nexport const useAreaConfig = (): { config: AreaConfig } => {\n const { getColor } = useSeriesColor();\n const { commonConfig } = useCommonConfig();\n\n // const {\n // api: { filterBySeries }\n // } = useSeriesFilter();\n\n /* istanbul ignore next - ignoring default logic */\n const { data = [], meta, config: contextConfig } = useChartContext();\n const { seriesType, axis } = _.defaultTo(meta, {});\n // const [data, setData] = useState(inputData);\n\n // useEffect(() => {\n // setData(filterBySeries(inputData));\n // }, [filterBySeries, inputData]);\n\n /**\n * Area chart config\n * @type {{yAxis: {min: number | undefined, max: number | undefined, label: {formatter: (value) => number}, title: {text: string | undefined}}, xAxis: {line: {style: {stroke: string, lineWidth: number}}, label: {formatter: (value) => string | undefined, offset: number}, nice: boolean, tickLine: {length: number, style: {stroke: string, lineWidth: number}}}, xField: string, color: ({seriesField}: {seriesField: any}) => string, data: any[], yField: string, seriesField: string}}\n */\n /* istanbul ignore next - testing this proved a pain especially the callbacks */\n const config: AreaConfig = {\n color: ({ seriesField }) => hslToHex(getColor(seriesType, seriesField)),\n data,\n seriesField: \"seriesField\",\n xAxis: {\n label: {\n formatter: (value) => axis?.x.labels?.short[value],\n offset: 10\n },\n line: {\n style: {\n lineWidth: 0.5,\n stroke: \"#000000\"\n }\n },\n nice: true,\n tickLine: {\n length: 3,\n style: {\n lineWidth: 1,\n stroke: \"#000000\"\n }\n }\n },\n yAxis: {\n label: {\n formatter: (value) => {\n return _.round(parseFloat(value), 2);\n }\n },\n max: getStackedMax(data, \"x\", \"y\"),\n min: getStackedMin(data, \"x\", \"y\"),\n title: {\n text: axis?.y.title\n }\n },\n xField: \"x\",\n yField: \"y\"\n };\n\n return { config: _.merge({}, contextConfig, commonConfig, config) };\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ListItem\":\"ListItem--2Xnwm\",\"Col\":\"Col--9IcoS\",\"Icon\":\"Icon--Yvpgl\",\"Title\":\"Title--1w_pV\",\"Seen\":\"Seen--1jFmk\",\"Caret\":\"Caret--GzRSm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Graph\":\"Graph--2Rdo3\",\"Zoom\":\"Zoom--1qify\",\"Events\":\"Events--39Djj\",\"BetaTag\":\"BetaTag--38vM3\",\"Error\":\"Error--rUJnS\",\"Empty\":\"Empty--2jX2i\",\"HideIcon\":\"HideIcon--OOvce\",\"Invisible\":\"Invisible--3M6ED\",\"SingleFarmDescription\":\"SingleFarmDescription--2FlCm\"};","import { FC } from \"react\";\n\nimport { GAContext } from \"@ctra/analytics\";\nimport { useTranslation, Enterprise } from \"@ctra/i18n\";\nimport { Breadcrumbs } from \"@ctra/api\";\n\nimport { InsightList, GACategories as InsightsGACategories, useLatestInsights } from \"@insights\";\nimport { Routes } from \"@routes\";\n\nimport styles from \"./InsightListPage.module.less\";\n\n/**\n * Insight list page\n * @constructor\n */\nconst InsightListPage: FC = () => {\n const { t } = useTranslation();\n const { insightListQuery, insightListName } = useLatestInsights();\n\n return (\n <>\n (Enterprise.navigation.main.insights)}\n />\n
          \n \n
          \n \n );\n};\n\nexport default InsightListPage;\n","import { createContext, FC, useContext, useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\n\nimport { Enterprise, EnterpriseAppState, GenericInsightEntity, Insights } from \"@ctra/api\";\nimport { isPending, Optional } from \"@ctra/utils\";\nimport { GenericInsight } from \"@insights\";\nimport { GenericInsightBase } from \"../../../processing/Base\";\nimport { useLocalization } from \"@base\";\n\ninterface ProviderProps extends Record {\n genericInsightID: GenericInsightEntity[\"id\"];\n list?: string;\n}\n\n/**\n * Base meta which contains the permanent keys\n */\ntype BaseMeta = {\n isLoading: boolean;\n isUpdating: boolean;\n};\n\n/**\n * Base context with optional insight and meta with added keys\n */\ntype BaseContext> = undefined> = {\n insight?: GenericInsightEntity;\n meta: M extends undefined ? BaseMeta : BaseMeta & M;\n};\n\n/**\n * A bit more smartness here, we can assume an insight to be present,\n * so there is no need for ! assertions and conditions in the child component\n * where an insight is given, eg. which render with the expectation of\n * and insight entity in the context.\n */\ntype ContextType<\n /**\n * insight interface to implement\n */\n C extends GenericInsightBase,\n /**\n * props passed to the provider ending up in the context as metadata\n */\n M extends Optional> = undefined\n> = C & { insight: GenericInsightEntity } & BaseContext;\n\nconst DefaultContext = createContext({\n meta: {\n isLoading: true,\n isUpdating: false\n }\n});\n\n/**\n * Insight context provider\n * @param children\n * @param genericInsightID\n * @param list\n * @param meta\n * @private\n */\nconst _InsightContextProvider: FC = ({ children, genericInsightID, list, ...meta }) => {\n const dispatch = useDispatch();\n const { unitSystem } = useLocalization();\n\n /**\n * Try to get the insight from the store\n */\n const insight = useSelector((state) =>\n Enterprise.entities.getInsightsByID(state, { id: genericInsightID })\n );\n\n /**\n * Tell if the insight is updating\n */\n const isUpdating = useSelector((state) =>\n isPending(state, Insights.types.UPDATE_INSIGHT, {\n primaryValue: genericInsightID\n })\n );\n\n /**\n * Make an API from the insight if present\n */\n const [insightApi, setInsightApi] = useState>>(\n insight ? GenericInsight.create(insight) : void 0\n );\n\n /**\n * Serialize the API\n */\n const [serializedApi, setSerializedApi] = useState>(\n insightApi ? GenericInsight.serialize(insightApi) : {}\n );\n\n /**\n * Update when the insight changes\n */\n useEffect(() => {\n if (insight) {\n if (!insightApi || !insightApi.isEqual(insight)) {\n const newApi = GenericInsight.create(insight);\n\n setInsightApi(newApi);\n setSerializedApi(GenericInsight.serialize(newApi));\n }\n } else {\n setInsightApi(void 0);\n setSerializedApi({});\n\n /**\n * Make a simple filter: get the insight by ID\n */\n const query = {\n expand: Insights.presets.expandDefaults(),\n filter: {\n GenericInsightID: genericInsightID\n }\n };\n\n dispatch(Insights.actions.fetchInsights.start(query, list));\n }\n // eslint-disable-next-line\n }, [insight, genericInsightID]);\n\n /**\n * Update when the unit system changes\n */\n useEffect(() => {\n if (insight) {\n const newApi = GenericInsight.create(insight);\n\n setInsightApi(newApi);\n setSerializedApi(GenericInsight.serialize(newApi));\n }\n // eslint-disable-next-line\n }, [unitSystem]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const InsightContext = {\n Provider: _InsightContextProvider,\n Consumer: DefaultContext.Consumer\n};\n\nexport const useInsight = <\n C extends GenericInsightBase = GenericInsightBase,\n M extends Optional> = undefined\n>(): M extends undefined ? ContextType : ContextType =>\n useContext(DefaultContext) as M extends undefined ? ContextType : ContextType;\n","import { FC } from \"react\";\n\nimport { Skeleton, Spin } from \"@ctra/components\";\nimport { GenericInsightEntity } from \"@ctra/api\";\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\n\nimport { useDataDictionary } from \"@base\";\nimport { testIds, InsightContext, InsightBody, InsightHeader, MarkAsSeen } from \"@insights\";\n\ninterface InsightProps {\n genericInsightID: GenericInsightEntity[\"id\"];\n}\n\n/**\n * Entry point for THE insight component\n * @todo make it scalable to work with EVERY POSSIBLE insight\n * @constructor\n */\nexport const Insight: FC = ({ genericInsightID }) => {\n const { t } = useTranslation();\n\n const {\n meta: { isLoading: isDataDictionaryLoading }\n } = useDataDictionary();\n\n return (\n \n \n {({ meta: { isLoading: isInsightLoading } }) => {\n const isLoading = isDataDictionaryLoading || isInsightLoading;\n\n return (\n (Content.insights.modal.loading)}\n >\n \n {/* to the pattern of `Redirect`, this marks\n the insight as seen by the current user */}\n \n \n \n \n \n );\n }}\n \n \n );\n};\n","import { FC } from \"react\";\nimport { useLocation } from \"react-router-dom\";\n\nimport { GenericInsightEntity } from \"@ctra/api\";\nimport { Nullable } from \"@ctra/utils\";\nimport { MediaQueryDynamicImport } from \"@ctra/components\";\n\nimport { DataDictionaryContext } from \"@base\";\nimport { testIds } from \"@insights\";\n\n/**\n * InsightDetails component to render when the search params match on any route\n * @constructor\n */\nexport const InsightDetails: FC = () => {\n const { search } = useLocation();\n const searchParams = new URLSearchParams(search);\n\n /**\n * Insight to pull from the insights\n */\n const insightID: Nullable = Number(searchParams.get(\"genericInsightID\"));\n\n return insightID ? (\n \n
          \n import(\"./Mobile\")} desktop={() => import(\"./Desktop\")}>\n {(Details) =>
          }\n \n
          \n
          \n ) : null;\n};\n","import { FC, useEffect } from \"react\";\nimport { useDispatch } from \"react-redux\";\n\nimport { Insights } from \"@ctra/api\";\nimport { useInsight } from \"@insights\";\nimport { useCurrentUser } from \"@auth\";\n\n/**\n * Drop-in component to mark an insight as seen\n * @constructor\n */\nexport const MarkAsSeen: FC = () => {\n const dispatch = useDispatch();\n const { user } = useCurrentUser();\n\n const {\n isSeen,\n insight: { seenBy, id },\n meta: { isLoading, isUpdating }\n } = useInsight();\n\n useEffect(() => {\n if (!isLoading && !isUpdating && user.id && !isSeen(user.id)) {\n dispatch(\n Insights.actions.updateInsight.start(id, {\n seenBy: [...seenBy, user.id]\n })\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isLoading, isUpdating, user.id, id]);\n\n return null;\n};\n","import { FC } from \"react\";\n\nimport { useInsight } from \"@insights\";\n\n/**\n * Insight body factory\n * @constructor\n */\nexport const InsightBody: FC = () => {\n const { getComponents } = useInsight();\n const BodyComponent = getComponents().Body;\n\n return ;\n};\n","import { FC, useRef } from \"react\";\nimport * as _ from \"lodash\";\nimport * as Sentry from \"@sentry/react\";\n\nimport { Col, Row, Skeleton } from \"@ctra/components\";\nimport { classname } from \"@ctra/utils\";\n\nimport { Chart, ChartFilterContext, ChartAPIContext } from \"@chart\";\nimport { useInsight, InsightValidation, KPIInsight } from \"@insights\";\n\nimport baseStyles from \"../InsightBody/InsightBody.module.less\";\nimport styles from \"./KPIInsightBody.module.less\";\n\n/**\n * Insight body for KPI insights\n * @constructor\n */\nexport const KPIInsightBody: FC = () => {\n const {\n insight: { farm },\n getMetadata,\n getTargetGroupName,\n meta: { isLoading }\n } = useInsight();\n\n const ref = useRef();\n\n const {\n dataDescriptor: { id }\n } = getMetadata();\n\n /**\n * Get the group, which is either going to be herd group or pen\n */\n const [type, value] = _.split(getTargetGroupName(), \" \");\n\n /**\n * if there is a pen name group, use that in filters\n */\n const penName = _.isEqual(type, \"Pen\") ? [value] : [];\n\n return (\n \n \n \n \n \n \n {null}}>\n \n \n \n \n {\n ref.current = plot;\n }\n }}\n />\n \n \n \n \n \n \n );\n};\n","import { createContext, FC, useContext, useEffect, useRef } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\n\nimport {\n Enterprise,\n EnterpriseAppState,\n GenericInsightEntity,\n InsightValidation,\n InsightValidationEntity,\n Insights,\n InsightWorkflowState\n} from \"@ctra/api\";\n\nimport { Epoch, isPending, Optional, TS } from \"@ctra/utils\";\n\nimport { useCurrentUser } from \"@auth\";\n\ninterface ProviderProps {\n genericInsightID: GenericInsightEntity[\"id\"];\n}\n\ninterface ContextType {\n validate: (value: InsightValidation) => void;\n validation: InsightValidationEntity;\n meta: {\n isLoading: boolean;\n };\n}\n\nconst DefaultContext = createContext({\n validate: _.noop,\n validation: {\n id: null,\n validation: InsightValidation.na,\n validatedBy: null\n } as InsightValidationEntity,\n meta: {\n isLoading: true\n }\n});\n\n/**\n * Insight validation API\n * @param genericInsightID\n * @param children\n * @private\n */\nconst _InsightValidationContextProvider: FC = ({ genericInsightID, children }) => {\n const dispatch = useDispatch();\n\n const {\n user,\n meta: { isLoading: isUserLoading }\n } = useCurrentUser();\n\n const defaultValidationEntity: InsightValidationEntity = {\n id: null,\n genericInsightID,\n validation: InsightValidation.na,\n validatedBy: null\n };\n\n /**\n * Use a ref as it needs to be updated later\n */\n const validationRef = useRef(defaultValidationEntity);\n\n /**\n * Get user validation for the specific insight\n */\n const validationEntity = useSelector>((state) =>\n Enterprise.entities.getUserValidation(state, { genericInsightID })\n );\n\n if (validationEntity) {\n validationRef.current = validationEntity;\n }\n\n /**\n * Tell if a validation is being created\n */\n const isCreating = useSelector((state) =>\n isPending(state, Insights.types.CREATE_INSIGHT_VALIDATION)\n );\n\n /**\n * Tell if a validation is being updated\n */\n const isUpdating = useSelector(\n (state) =>\n !!validationRef.current.id &&\n isPending(state, Insights.types.UPDATE_INSIGHT_VALIDATION, { primaryValue: validationRef.current.id })\n );\n\n /**\n * Reset the validation ref when the genericInsightID changes\n */\n useEffect(() => {\n validationRef.current = defaultValidationEntity;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [genericInsightID]);\n\n useEffect(() => {\n if (!validationRef.current.id && !validationRef.current.validatedBy && user.id) {\n validationRef.current = {\n ...validationRef.current,\n validatedBy: user.id\n };\n }\n\n if (validationEntity) {\n validationRef.current = validationEntity;\n }\n }, [user, validationRef, validationEntity]);\n\n /**\n * Validate the insight\n * update the new workflow state of the insight\n * @param {InsightValidation} value\n * @param {InsightWorkflowState} workflowState\n */\n const validate = (value: InsightValidation, workflowState?: InsightWorkflowState): void => {\n const { id, genericInsightID } = validationRef.current;\n\n if (id) {\n dispatch(\n Insights.actions.updateInsightValidation.start(validationRef.current, {\n validatedBy: user.id,\n validation: value\n })\n );\n } else {\n dispatch(\n Insights.actions.createInsightValidation.start({\n ...validationRef.current,\n validation: value\n })\n );\n }\n\n /**\n * Update the new workflow state for the insight\n */\n dispatch(\n Insights.actions.updateInsight.start(genericInsightID, {\n workflowState: workflowState || Insights.utils.getWorkflowState(value),\n workflowStateLastModifiedDate: TS.serialize(Epoch.now())\n })\n );\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport const InsightValidationContext = {\n Provider: _InsightValidationContextProvider,\n Consumer: DefaultContext.Consumer\n};\n\nexport const useInsightValidation = (): ContextType => useContext(DefaultContext);\n","import { FC } from \"react\";\n\nimport { Spin, Skeleton } from \"@ctra/components\";\nimport { useInsight } from \"@insights\";\nimport { InsightResolutionContext } from \"@insights\";\n\nimport { InsightValidationContext } from \"../../providers\";\n\n/**\n * Insight validation factory\n * @constructor\n */\nexport const InsightValidation: FC = () => {\n const {\n insight: { id },\n getComponents,\n meta: { isLoading }\n } = useInsight();\n\n const ValidationComponent = getComponents().Validation;\n\n return (\n \n \n \n {({ meta: { isLoading: isValidating } }) => (\n \n \n \n \n \n )}\n \n \n \n );\n};\n","import { FC } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Steps, Icon, Smile, Dot, Typography } from \"@ctra/components\";\nimport { InsightValidation as ValidationValues, ValidationLookup } from \"@ctra/api\";\nimport { Enterprise, useTranslation } from \"@ctra/i18n\";\n\nimport {\n useInsightResolutions,\n useInsightValidation,\n ResolutionWidget,\n ValidationQuestion,\n ValidationButtons,\n ResolutionTagList\n} from \"@insights\";\n\nimport styles from \"./RegularInsightValidation.module.less\";\n\nconst { Step } = Steps;\nconst { Text } = Typography;\n\n/**\n * Regular insight validation\n * @constructor\n */\nexport const RegularInsightValidation: FC = () => {\n const { t } = useTranslation();\n\n const { validation: validationEntity, validate } = useInsightValidation();\n const {\n resolutions,\n unresolve,\n meta: { isResolved }\n } = useInsightResolutions();\n\n const {\n insightValidations: { validationValue }\n } = Enterprise;\n\n const { validation } = validationEntity;\n\n /**\n * Get current step based on the validation value\n */\n const getCurrentStep = () => {\n switch (validation) {\n case ValidationValues.na: {\n return 0;\n }\n case ValidationValues.maybe:\n case ValidationValues.no:\n case ValidationValues.yes: {\n return isResolved ? 2 : 1;\n }\n }\n };\n\n /**\n * Handle validation attempt and make sure the unresolve doesn't update workflow state\n * because its already being updated via the validation.\n * @param value\n */\n const onValidate = _.flow(validate, _.partial(unresolve, { updatesWorkflowState: false }));\n\n return (\n \n }\n title={}\n description={\n validation === ValidationValues.na ? (\n \n ) : (\n \n {t(validationValue[ValidationLookup[validation]])}\n \n )\n }\n />\n {validation !== ValidationValues.na && !!_.keys(resolutions).length && (\n }\n title={\n \n }\n description={isResolved ? : }\n />\n )}\n {validation !== ValidationValues.na && isResolved && (\n }\n title={\n /**\n * If there are no resolutions for the selected validation,\n * then we just change the validation to NA, else we unresolve.\n * Using _.ary(unresolve, 0) instead of just unresolve\n * because rollback sends an unwanted event argument which needs to be avoided.\n */\n \n }\n />\n )}\n \n );\n};\n","import { FC } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Icon, Smile, Typography, Steps } from \"@ctra/components\";\nimport { InsightValidation as ValidationValues, ValidationLookup } from \"@ctra/api\";\nimport { Enterprise, useTranslation } from \"@ctra/i18n\";\n\nimport {\n useInsightResolutions,\n useInsightValidation,\n ValidationQuestion,\n ValidationButtons\n} from \"@insights\";\n\nimport styles from \"./LelyNoMilkDropInsightValidation.module.less\";\n\nconst { Step } = Steps;\nconst { Text } = Typography;\n\n/**\n * LelyNoMilkDrop insight validation\n * @constructor\n */\nexport const LelyNoMilkDropInsightValidation: FC = () => {\n const { t } = useTranslation();\n\n const { validation: validationEntity, validate } = useInsightValidation();\n const { unresolve } = useInsightResolutions();\n\n const {\n insightValidations: { validationValue }\n } = Enterprise;\n\n const { validation } = validationEntity;\n\n /**\n * Handle validation attempt\n * make sure the unresolve doesn't update workflow state because its already being updated via validation\n * @param value\n */\n const onValidate = _.flow(validate, _.partial(unresolve, { updatesWorkflowState: false }));\n\n return (\n \n }\n title={\n \n }\n description={\n validation === ValidationValues.na ? (\n \n ) : (\n \n {t(validationValue[ValidationLookup[validation]])}\n \n )\n }\n />\n \n );\n};\n","import * as _ from \"lodash\";\nimport { FC } from \"react\";\n\nimport { DairyCowEntity, Enterprise, EnterpriseAppState, HerdGroupEntity } from \"@ctra/api\";\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\nimport { Row, Col, Typography, Button, RollbackOutlined } from \"@ctra/components\";\n\nimport { testIds, useInsight } from \"@insights\";\nimport styles from \"./ValidationQuestion.module.less\";\nimport { useSelector } from \"react-redux\";\n\nconst { Text } = Typography;\n\ninterface ValidationQuestionProps extends Record {\n step?: number;\n rollback?: () => void;\n highlighted?: boolean;\n}\n\n/**\n * Multi-row validation question to bee used as `title` prop for AntD `Step`\n * @param onClick\n * @param step\n * @param rollback\n * @param highlighted\n * @param rest\n * @constructor\n */\nexport const ValidationQuestion: FC = ({ step, rollback, highlighted, ...rest }) => {\n const { t } = useTranslation();\n\n const {\n insightValidations: {\n steps: { question, rollback: rollbackText }\n }\n } = Content;\n\n const {\n insight: { insightType: typeName, dairyCow: dairyCowID, herdGroup: herdGroupID }\n } = useInsight();\n\n /**\n * Get dairy cow\n * @type {DairyCowEntity | void}\n */\n const dairyCow = useSelector((state) =>\n dairyCowID\n ? Enterprise.entities.getDairyCow(state, {\n id: dairyCowID\n })\n : void 0\n );\n\n /**\n * Get herd group\n * @type {HerdGroupEntity | void}\n */\n const herdGroup = useSelector((state) =>\n herdGroupID ? Enterprise.entities.getHerdGroup(state, { id: herdGroupID }) : void 0\n );\n\n /**\n * Get copy key params\n * @param type\n * @example\n * ```ts\n * question(\"KPIInsightFarm\", getParams(\"secondary))\n * // insightValidations-steps-question#step1-secondary\n * ```\n */\n const getParams = (type = \"primary\") => _.compact([step ? `step${step}` : null, type]);\n\n const primary = t(question(typeName, ...getParams()), {\n ...rest,\n cowTagNumber: _.get(dairyCow, \"cowTagNumber\"),\n herdGroup: _.get(herdGroup, \"name\", null)\n });\n\n const secondary = t(question(typeName, ...getParams(\"secondary\")), {\n ...rest,\n cowTagNumber: _.get(dairyCow, \"cowTagNumber\"),\n herdGroup: _.get(herdGroup, \"name\", null)\n });\n\n return (\n \n \n \n {primary}\n \n {_.isFunction(rollback) && (\n \n }\n onClick={_.ary(rollback, 0)} // kill any arguments passed by the onClick\n >\n {t(rollbackText)}\n \n \n )}\n \n {!!secondary && highlighted && (\n \n {{secondary}}\n \n )}\n \n );\n};\n","import { FC, ReactNode } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Button, Space } from \"@ctra/components\";\nimport { InsightValidation as ValidationValues, InsightWorkflowState, ValidationLookup } from \"@ctra/api\";\nimport { Enterprise, useTranslation } from \"@ctra/i18n\";\n\nimport { useInsightResolutions, useInsightValidation, testIds, GACategories, GAActions } from \"@insights\";\n\ntype ValidationButtonsProp = {\n /**\n * Validation options\n */\n options: Array;\n /**\n * Following workflow states in the same order as the options\n */\n workflowStates?: Array;\n};\n\n/**\n * Validation buttons to chose from\n */\nexport const ValidationButtons: FC = ({ options, workflowStates = [] }) => {\n const { t } = useTranslation();\n\n const { validate } = useInsightValidation();\n const { unresolve } = useInsightResolutions();\n\n const {\n insightValidations: { validationValue }\n } = Enterprise;\n\n /**\n * Handle validation attempt; workflow state update already handled in \"validate\",\n * so no need to update in \"unresolve\"\n * @param value\n */\n const onValidate = _.flow(validate, _.partial(unresolve, { updatesWorkflowState: false }));\n\n return (\n \n {_.map(options, (value, idx) => (\n \n {t(validationValue[ValidationLookup[value]])}\n \n ))}\n \n );\n};\n","import { FC } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Dot, Icon, Smile, Steps, Typography } from \"@ctra/components\";\nimport { InsightValidation as ValidationValues, InsightWorkflowState, ValidationLookup } from \"@ctra/api\";\nimport { Enterprise, useTranslation } from \"@ctra/i18n\";\n\nimport {\n ResolutionTagList,\n ResolutionWidget,\n useInsightResolutions,\n useInsightValidation,\n ValidationButtons,\n ValidationQuestion\n} from \"@insights\";\n\nimport styles from \"./AjinomotoTwoStepValidation.module.less\";\n\nconst { Step } = Steps;\nconst { Text } = Typography;\n\n/**\n * 2-step generic validation for Ajinomoto insights\n * @return {React.ReactNode}\n * @constructor\n */\nexport const AjinomotoTwoStepValidation: FC = () => {\n const { t } = useTranslation();\n const { validation: validationEntity, validate } = useInsightValidation();\n\n const {\n resolutions,\n unresolve,\n meta: { isResolved }\n } = useInsightResolutions();\n\n const {\n insightValidations: { validationValue }\n } = Enterprise;\n\n const { validation } = validationEntity;\n\n /**\n * Get current step based on the validation value\n */\n const getCurrentStep = () => {\n switch (validation) {\n case ValidationValues.na: {\n return 0;\n }\n case ValidationValues.no:\n case ValidationValues.yes: {\n return isResolved ? 2 : 1;\n }\n }\n };\n\n /**\n * Handle validation attempt and make sure the unresolve doesn't update workflow state\n * because its already being updated via the validation.\n * @param value\n */\n const onValidate = _.flow(validate, _.partial(unresolve, { updatesWorkflowState: false }));\n\n return (\n \n }\n title={}\n description={\n validation === ValidationValues.na ? (\n \n ) : (\n \n {t(validationValue[ValidationLookup[validation]])}\n \n )\n }\n />\n {validation !== ValidationValues.na && !!_.keys(resolutions).length && (\n }\n title={\n \n }\n description={isResolved ? : }\n />\n )}\n {validation !== ValidationValues.na && isResolved && (\n }\n title={\n /**\n * If there are no resolutions for the selected validation,\n * then we just change the validation to NA, else we unresolve.\n * Using _.ary(unresolve, 0) instead of just unresolve\n * because rollback sends an unwanted event argument which needs to be avoided.\n */\n \n }\n />\n )}\n \n );\n};\n","import { FC } from \"react\";\nimport { AjinomotoTwoStepValidation } from \"../AjinomotoTwoStepValidation\";\n\n/**\n * Blood test insight \"validation\"\n * @param {React.PropsWithChildren<{}>} props\n * @return {JSX.Element}\n * @constructor\n */\nexport const AjinomotoBloodTestInsightValidation: FC = (props) => ;\n","import { FC } from \"react\";\nimport { AjinomotoTwoStepValidation } from \"../AjinomotoTwoStepValidation\";\n\n/**\n * Feeding schedule insight validation\n * @return {React.ReactNode}\n * @constructor\n */\nexport const AjinomotoFeedingScheduleInsightValidation: FC = (props) => (\n \n);\n","import { FC } from \"react\";\nimport { AjinomotoTwoStepValidation } from \"../AjinomotoTwoStepValidation\";\n\n/**\n * Nutrition recommendation insight\n * @param {React.PropsWithChildren<{}>} props\n * @return {JSX.Element}\n * @constructor\n */\nexport const AjinomotoNutritionRecommendationInsightValidation: FC = (props) => (\n \n);\n","import { FC } from \"react\";\nimport { AjinomotoTwoStepValidation } from \"../AjinomotoTwoStepValidation\";\n\n/**\n * High risk cows insight validation\n * @param {React.PropsWithChildren<{}>} props\n * @return {JSX.Element}\n * @constructor\n */\nexport const AjinomotoHighRiskCowsInsightValidation: FC = (props) => (\n \n);\n","import { FC } from \"react\";\n\n/**\n * High risk cow insight validation\n * @return {React.ReactNode}\n * @constructor\n */\nexport const AjinomotoHighRiskCowInsightValidation: FC = () => {\n return null;\n};\n","import { FC } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Steps, Icon, Dot } from \"@ctra/components\";\n\nimport {\n useInsightResolutions,\n useInsightValidation,\n ResolutionWidget,\n ValidationQuestion,\n ResolutionTagList\n} from \"@insights\";\n\nimport styles from \"./OnboardingInsightValidation.module.less\";\nimport { useGoogleAnalytics } from \"@ctra/analytics\";\n\nconst { Step } = Steps;\n\n/**\n * Regular insight validation\n * @constructor\n */\nexport const OnboardingInsightValidation: FC = () => {\n const { validation: validationEntity } = useInsightValidation();\n\n const {\n unresolve,\n meta: { isResolved }\n } = useInsightResolutions();\n\n const { validation } = validationEntity;\n\n return (\n \n }\n title={}\n description={isResolved ? : }\n />\n {isResolved && (\n }\n title={\n \n }\n />\n )}\n \n );\n};\n","import { FC, HTMLAttributes } from \"react\";\nimport Markdown from \"react-markdown\";\n\nimport { Col, Copilot, Icon, Row, Typography } from \"@ctra/components\";\nimport { useTranslation, Enterprise } from \"@ctra/i18n\";\n\nimport styles from \"./OnboardingFooter.module.less\";\n\nconst { Title, Paragraph } = Typography;\n\nconst {\n insights: {\n extensions: { onboarding }\n }\n} = Enterprise;\n\n/**\n * Footer for the onboarding insight\n * @param {string | undefined} className\n * @returns {JSX.Element}\n * @constructor\n */\nexport const OnboardingFooter: FC> = ({ className }) => {\n const { t } = useTranslation();\n\n return (\n \n \n \n \n \n \n <Markdown>{t<string>(onboarding.footer.title)}</Markdown>\n \n \n {t(onboarding.footer.description)}\n \n \n \n );\n};\n","import { FC, HTMLAttributes } from \"react\";\nimport Markdown from \"react-markdown\";\n\nimport { Col, Copilot, Icon, Row, Typography } from \"@ctra/components\";\nimport { useTranslation, Enterprise } from \"@ctra/i18n\";\n\nimport styles from \"./StockingDensityFooter.module.less\";\n\nconst { Title, Paragraph } = Typography;\n\nconst {\n insights: {\n extensions: { stockingDensity }\n }\n} = Enterprise;\n\n/**\n * Footer for the onboarding insight\n * @param {string | undefined} className\n * @returns {JSX.Element}\n * @constructor\n * @todo basically the same as the onboarding footer but new content, so maybe make it generic\n */\nexport const StockingDensityFooter: FC> = ({ className }) => {\n const { t } = useTranslation();\n\n return (\n \n \n \n \n \n \n <Markdown>{t<string>(stockingDensity.footer.title)}</Markdown>\n \n \n {t(stockingDensity.footer.description)}\n \n \n \n );\n};\n","import { ComponentProps, FC, useEffect, useMemo } from \"react\";\nimport * as Sentry from \"@sentry/react\";\nimport { Datum } from \"@ant-design/charts\";\n\nimport { Divider, Typography, Insights, Skeleton, Row, Col } from \"@ctra/components\";\nimport { useTranslation, Enterprise as Content } from \"@ctra/i18n\";\nimport { classname } from \"@ctra/utils\";\nimport { Scatter } from \"@ctra/charts\";\n\nimport { InsightValidation } from \"../../../insight-validation\";\nimport { useInsight } from \"../../../insight\";\nimport { OnboardingFooter } from \"../../../insight-extensions\";\n\nimport baseStyles from \"../InsightBody/InsightBody.module.less\";\nimport { OnboardingInsight } from \"../../../processing/OnboardingInsight\";\nimport * as _ from \"lodash\";\nimport { useGoogleAnalytics } from \"@ctra/analytics\";\n\nconst { Text, Paragraph } = Typography;\nconst { FarmProgress } = Insights;\n\nconst {\n insights: {\n extensions: { onboarding, score: scoreCopy }\n }\n} = Content;\n\n/**\n * Body for the onboarding insight in 2 variants\n * @param {\"card\" | \"dialog\"} variant\n * @returns {JSX.Element}\n * @constructor\n */\nexport const OnboardingInsightBody: FC<{ variant: \"card\" | \"dialog\" }> = ({ variant }) => {\n const { t } = useTranslation();\n const { setContextValue } = useGoogleAnalytics();\n\n const {\n getDescription,\n getMetadata,\n getMetricName,\n getMetric,\n meta: { isLoading }\n } = useInsight();\n\n const { percentile, data } = getMetadata();\n const metric = getMetric();\n const metricName = getMetricName();\n\n useEffect(() => {\n /**\n * For GA, set a context variable\n */\n setContextValue(\"insightType\", \"Heat Stress\");\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n /**\n * Chart configuration\n * @type {{pointStyle: {fill: string, stroke: string, lineWidth: number}, yAxis: {title: {text: string}}, xField: string, xAxis: {title: {text: string}}, data: any, size: number, yField: string, tooltip: {formatter: (datum: Datum) => {name: any, value: any}}, regressionLine: {type: string}, autoFit: boolean}}\n */\n const chartConfig: ComponentProps = useMemo(\n () => ({\n data,\n animation: false,\n xField: \"x\",\n yField: \"y\",\n size: 3,\n pointStyle: {\n stroke: \"#777777\",\n lineWidth: 1,\n fill: \"#5B8FF9\"\n },\n autoFit: true,\n regressionLine: {\n style: { lineWidth: 3 },\n type: \"quad\" // linear, exp, loess, log, poly, pow, quad\n },\n xAxis: {\n title: {\n text: t(onboarding.chart.axis.x, { metric: metricName })\n }\n },\n yAxis: {\n label: {\n formatter: (value: string) => {\n return _.round(parseFloat(value), metric.valueProperties.decimals);\n }\n },\n title: {\n text: t(onboarding.chart.axis.y, { metric: metricName })\n }\n },\n tooltip: {\n formatter: (datum: Datum) => {\n return { name: datum.x, value: datum.y };\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }),\n [data]\n );\n\n return variant === \"card\" ? (\n <>\n {getDescription()}\n \n (scoreCopy.label)} progress={percentile} />\n \n ) : (\n \n \n \n (scoreCopy.label)} progress={percentile} />\n \n \n \n \n \n \n \n {null}}>\n \n \n {t(onboarding.chart.title, { metric: metricName })}\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { FC, useRef } from \"react\";\nimport * as _ from \"lodash\";\nimport * as Sentry from \"@sentry/react\";\n\nimport { Col, Row, Skeleton } from \"@ctra/components\";\nimport { classname } from \"@ctra/utils\";\n\nimport { Chart, ChartFilterContext, ChartAPIContext } from \"@chart\";\nimport { useInsight, InsightValidation, VulcanV2Insight } from \"@insights\";\n\nimport baseStyles from \"../InsightBody/InsightBody.module.less\";\nimport styles from \"./VulcanV2InsightBody.module.less\";\n\n/**\n * Insight body for KPI insights\n * @constructor\n */\nexport const VulcanV2InsightBody: FC = () => {\n const {\n getMetadata,\n insight: { farm },\n meta: { isLoading }\n } = useInsight();\n\n const { variantId: id, subject } = getMetadata();\n const ref = useRef();\n\n return (\n \n \n \n \n \n \n {null}}>\n \n \n \n \n {\n ref.current = plot;\n }\n }}\n />\n \n \n \n \n \n \n );\n};\n","import { ComponentProps, FC, useEffect } from \"react\";\nimport * as Sentry from \"@sentry/react\";\nimport { Datum } from \"@ant-design/charts\";\nimport * as _ from \"lodash\";\nimport { useDeepCompareMemo } from \"use-deep-compare\";\n\nimport { Col, Row, Skeleton } from \"@ctra/components\";\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\nimport { classname, Units, UnitSystem } from \"@ctra/utils\";\nimport { Scatter } from \"@ctra/charts\";\n\nimport { useLocalization } from \"@base\";\n\nimport { useInsight } from \"../../../insight\";\nimport { StockingDensityFooter } from \"../../../insight-extensions\";\nimport { StockingDensityInsight } from \"../../../processing/StockingDensityInsight\";\nimport { InsightValidation } from \"../../../insight-validation\";\nimport baseStyles from \"../InsightBody/InsightBody.module.less\";\nimport { useGoogleAnalytics } from \"@ctra/analytics\";\n\nconst {\n insights: {\n extensions: { stockingDensity }\n }\n} = Content;\n\n/**\n * Body for the stocking density insight in 2 variants\n * @param {\"card\" | \"dialog\"} variant\n * @returns {JSX.Element}\n * @constructor\n */\nexport const StockingDensityInsightBody: FC = () => {\n const { t } = useTranslation();\n const { unitSystem } = useLocalization();\n const { setContextValue } = useGoogleAnalytics();\n\n useEffect(() => {\n /**\n * For GA, set a context variable\n */\n setContextValue(\"insightType\", \"Pen Stocking Density\");\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const {\n getMetadata,\n meta: { isLoading }\n } = useInsight();\n\n const {\n datapointsX,\n datapointsY,\n metricName,\n cowsLow,\n cowsHigh,\n isRealDrop,\n curveSlope,\n curveMidpoint,\n curveHigh\n } = getMetadata();\n\n /**\n * Chart configuration\n * @type {{pointStyle: {fill: string, stroke: string, lineWidth: number}, yAxis: {title: {text: string}}, xField: string, xAxis: {title: {text: string}}, data: any, size: number, yField: string, tooltip: {formatter: (datum: Datum) => {name: any, value: any}}, regressionLine: {type: string}, autoFit: boolean}}\n */\n const chartConfig: ComponentProps = useDeepCompareMemo(\n () => ({\n data: _.reduce<[number | undefined, number | undefined], Array<{ x: number; y: number | undefined }>>(\n _.zip(datapointsX, datapointsY),\n (res, [x, y]) => {\n if (_.isNumber(x) && x >= cowsLow && x <= cowsHigh) {\n /**\n * Tell whether to convert the metric to imperial\n * @type {boolean}\n */\n const shallConvert: boolean =\n [\"averageYield\", \"averageDMI\"].includes(metricName) &&\n unitSystem === UnitSystem.imperial &&\n _.isNumber(y);\n\n res.push({\n x,\n y: shallConvert\n ? Units.convertToUnitSystem(\n y as number,\n {\n [UnitSystem.imperial]: \"lb\",\n [UnitSystem.metric]: \"kg\"\n },\n {\n from: UnitSystem.metric,\n to: UnitSystem.imperial\n }\n )\n : y\n });\n }\n\n return res;\n },\n []\n ),\n animation: false,\n xField: \"x\",\n yField: \"y\",\n size: 3,\n pointStyle: {\n stroke: \"#777777\",\n lineWidth: 1,\n fill: \"#5B8FF9\"\n },\n autoFit: true,\n regressionLine: isRealDrop\n ? {\n // algorithm: (data) => {\n // const sorted = _.sortBy(data, \"x\");\n // const first = _.first(sorted);\n // const last = _.last(sorted);\n //\n // return _.map([first, last], ({ x }) => {\n // /**\n // * Tell whether to convert the metric to imperial\n // * @type {boolean}\n // */\n // const shallConvert: boolean =\n // metricName === \"averageYield\" && unitSystem === UnitSystem.imperial;\n //\n // /**\n // * Metric value\n // * @type {number}\n // */\n // const metricValue: number = curveHigh / (1 + Math.exp(curveSlope * (x - curveMidpoint)));\n //\n // /**\n // * Final value\n // * @type {number}\n // */\n // const finalValue: number = shallConvert\n // ? Units.convertToUnitSystem(metricValue, {\n // [UnitSystem.imperial]: \"lb\",\n // [UnitSystem.metric]: \"kg\"\n // })\n // : metricValue;\n //\n // return [x, finalValue];\n // });\n // },\n style: {\n lineWidth: 3\n },\n type: \"linear\" // linear, exp, loess, log, poly, pow, quad\n }\n : void 0,\n xAxis: {\n title: {\n text: t(stockingDensity.chart.axis.x)\n }\n },\n yAxis: {\n title: {\n text: t(stockingDensity.chart.axis.y, { metricName })\n },\n label: {\n formatter: (value: string) => {\n return _.round(parseFloat(value), 2);\n }\n }\n },\n tooltip: {\n formatter: (datum: Datum) => {\n return { name: datum.x, value: datum.y };\n }\n }\n }),\n [datapointsX, datapointsY, unitSystem, cowsLow, cowsHigh, metricName]\n );\n\n return (\n \n \n \n \n \n \n {null}}>\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { FC } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Icon, Skeleton, Grid, Insights as InsightsUI } from \"@ctra/components\";\nimport { classname, TS } from \"@ctra/utils\";\nimport { InsightType, InsightWorkflowState } from \"@ctra/api\";\n\nimport { useFarmList } from \"@farms\";\nimport { useInsight, InsightStateSwitcher } from \"@insights\";\n\nimport { useInsightModalNavigation } from \"../../../insight/hooks\";\nimport { GenericInsightBase } from \"../../../processing/Base\";\n\nimport styles from \"./InsightHeader.module.less\";\n\nconst {\n Dialog: { Header, NavigationWrapper },\n TimePeriod\n} = InsightsUI;\n\n/**\n * Insight header\n * @todo scale up to different type of insights when needed, use a factory\n * @constructor\n */\nexport const InsightHeader: FC = () => {\n const { md } = Grid.useBreakpoint();\n const { previous, next } = useInsightModalNavigation();\n const { farmList } = useFarmList();\n\n const {\n insight: { insightType, farm, workflowStateLastModifiedDate, workflowState, startEpoch, endEpoch },\n getComponents,\n getDescription,\n getTitle,\n getStateDescription,\n meta: { isLoading }\n } = useInsight();\n\n /**\n * Tell if we need to add a 3rd date to the time period\n * @type {boolean}\n */\n const hasTimePeriodExtra =\n workflowState !== InsightWorkflowState.toCheck && !!workflowStateLastModifiedDate;\n\n /**\n * Onboarding insights do not have a toolbar\n * @type {boolean}\n */\n const hasToolbar = insightType !== InsightType.onboarding;\n\n return (\n \n \n }\n title={getTitle()}\n description={getDescription()}\n period={\n \n {\", \"}\n {getStateDescription({\n lastDate: TS.asMoment(workflowStateLastModifiedDate).format(\"LL\")\n })}\n \n ) : null\n }\n />\n }\n toolbar={hasToolbar ? : null}\n />\n \n \n );\n};\n","import { ComponentProps, FC } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { Epoch, isPending, TS } from \"@ctra/utils\";\nimport { Enterprise, useTranslation } from \"@ctra/i18n\";\nimport { EnterpriseAppState, InsightWorkflowState, Insights } from \"@ctra/api\";\nimport { Menu, Insights as InsightsUI } from \"@ctra/components\";\n\nimport { useInsight } from \"@insights\";\n\nconst {\n Dialog: { StatusDropdown }\n} = InsightsUI;\n\n/**\n * A dropdown for changing insight state, remains disabled in \"To-Check\"\n */\nexport const InsightStateSwitcher: FC = () => {\n const dispatch = useDispatch();\n const { t } = useTranslation();\n\n const {\n insight: { workflowState: currentState, id }\n } = useInsight();\n\n const {\n insights: {\n workflowState: { toCheck, toFollowUp, done }\n }\n } = Enterprise;\n\n const insightStatesMap: { [index in InsightWorkflowState]: string } = {\n [InsightWorkflowState.toCheck]: t(toCheck),\n [InsightWorkflowState.toFollowUp]: t(toFollowUp),\n [InsightWorkflowState.done]: t(done)\n };\n\n const isUnchecked = currentState === InsightWorkflowState.toCheck;\n\n /**\n * Tell if the insight is being updated\n */\n const isResolving = useSelector((state) =>\n isPending(state, Insights.types.UPDATE_INSIGHT, { primaryValue: id })\n );\n\n /**\n * Handle workflow state change\n */\n const handleClick: ComponentProps[\"onClick\"] = ({ key }) => {\n dispatch(\n Insights.actions.updateInsight.start(id, {\n workflowState: key as InsightWorkflowState,\n workflowStateLastModifiedDate: TS.serialize(Epoch.now())\n })\n );\n };\n\n return (\n \n );\n};\n","import { createContext, FC, useEffect, Dispatch, useState, SetStateAction, useContext } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport * as _ from \"lodash\";\n\nimport { isDispatched, isPending, Nullable } from \"@ctra/utils\";\nimport {\n GenericInsightEntity,\n Enterprise,\n Insights,\n InsightWorkflowState,\n EnterpriseAppState\n} from \"@ctra/api\";\n\ninterface ProviderProps {\n /**\n * Query to load in odata\n * @note omit to delay loading\n */\n query?: Record; // @todo use odata-query\n /**\n * List name\n */\n list?: string;\n /**\n * Filter the insights by their workflow state\n */\n filter?: InsightWorkflowState | \"all\";\n}\n\ninterface ContextType {\n insights: Nullable>;\n insightStateFilter: InsightWorkflowState | \"all\";\n setInsightStateFilter: Dispatch>;\n meta: { isLoading: boolean; unseenCount: number; toFollowUpCount: number; listName?: string };\n}\n\n/**\n * Make a default context for insight list values\n */\nconst DefaultContext = createContext({\n insights: [],\n insightStateFilter: InsightWorkflowState.toCheck,\n setInsightStateFilter: _.noop,\n meta: { isLoading: true, unseenCount: 0, toFollowUpCount: 0 }\n});\n\n/**\n * Get a list of insights from the back-end\n * @param {Record | undefined} query\n * @param {string | undefined} list\n * @param {InsightWorkflowState | undefined} filter\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @returns {JSX.Element}\n */\nexport const _InsightListProvider: FC = ({ query, list, filter, children }) => {\n const dispatch = useDispatch();\n const [insightStateFilter, setInsightStateFilter] = useState(\n _.defaultTo(filter, InsightWorkflowState.toCheck)\n );\n\n /**\n * See if we have a match for our query in the store\n */\n const insights = useSelector>>((state) =>\n Enterprise.entities.getInsightList(state, { query, list })\n );\n\n /**\n * Tell if the insights have been already fetched\n */\n const hasFetched = useSelector(\n (state) =>\n !!query &&\n isDispatched(state, Insights.types.FETCH_INSIGHTS, {\n primaryValue: Insights.utils.makeQueryHash(query)\n })\n );\n\n /**\n * Tell whether the insights are loading\n */\n const isLoading = useSelector(\n (state) =>\n !query ||\n isPending(state, Insights.types.FETCH_INSIGHTS, {\n primaryValue: Insights.utils.makeQueryHash(query)\n })\n );\n\n useEffect(() => {\n if (!hasFetched && query) {\n dispatch(Insights.actions.fetchInsights.start(query, list));\n }\n /* eslint-disable react-hooks/exhaustive-deps, */\n }, [query, list, insights]);\n\n /**\n * filtering locally based on the filter passed instead of individually fetching via oData calls\n * because we still need to be able to show the count badges\n */\n const filterInsight = (insightState: InsightWorkflowState) =>\n _.filter(insights, (insight) => insight.workflowState === insightState);\n\n /**\n * classify the insight list into sub categories\n */\n const insightList = {\n [InsightWorkflowState.toCheck]: filterInsight(InsightWorkflowState.toCheck),\n [InsightWorkflowState.toFollowUp]: filterInsight(InsightWorkflowState.toFollowUp),\n [InsightWorkflowState.done]: filterInsight(InsightWorkflowState.done)\n };\n\n /**\n * count of the unseen insights\n * it can only be unseen if it's in to check\n */\n const unseenCount = insights\n ? _.filter(insightList[InsightWorkflowState.toCheck], (insight) => insight.seenBy.length === 0).length\n : 0;\n\n return (\n \n {children}\n \n );\n};\n\nexport const InsightListContext = {\n Provider: _InsightListProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Make a hook to access the context in FCs\n */\nexport const useInsightlist = (): ContextType => useContext(DefaultContext);\n","import { FC } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\n\nimport { Empty, Row, Typography, Button, PlusCircleOutlined, EmptyInsight } from \"@ctra/components\";\nimport { Enterprise as App, EnterpriseAppState, FarmEntity, InsightWorkflowState } from \"@ctra/api\";\nimport { Nullable } from \"@ctra/utils\";\nimport { Enterprise, useTranslation } from \"@ctra/i18n\";\nimport { GAEvent } from \"@ctra/analytics\";\n\nimport { InsightSettingsProvider } from \"@settings\";\nimport { CompiledRoutes } from \"@routes\";\nimport { testIds, GAActions, GACategories } from \"@insights\";\n\nimport styles from \"./EmptyList.module.less\";\n\nconst { Paragraph } = Typography;\n\n/**\n * Empty insight list with call to action if the insights are not enabled\n * @param {number | undefined} farmID\n * @param {InsightWorkflowState | undefined} workflowState\n * @returns {JSX.Element}\n * @constructor\n */\nexport const EmptyList: FC<{ farmID?: FarmEntity[\"id\"]; workflowState?: InsightWorkflowState }> = ({\n farmID,\n workflowState\n}) => {\n const { t } = useTranslation();\n\n const {\n insights: {\n list: { empty }\n }\n } = Enterprise;\n\n /**\n * Get farm (if applicable)\n */\n const farm = useSelector>((state) =>\n farmID ? App.entities.getFarm(state, { farmID }) : null\n );\n\n const toCheckState = workflowState === InsightWorkflowState.toCheck;\n\n return (\n \n {(insightSettings, { isLoading }) => {\n const hasSettings = !!(farmID\n ? _.filter(insightSettings[farmID], \"isEnabled\").length\n : _.filter(insightSettings, \"isEnabled\").length);\n\n const farmName = farm ? farm.name : null;\n const status = hasSettings ? \"enabled\" : \"disabled\";\n const settingsPageRoute = CompiledRoutes.app.insights.manage;\n\n return (\n \n }\n description={null}\n >\n {t(empty.title, { farmName, status, workflowState })}\n {t(empty.description, { farmName, status, workflowState })}\n {toCheckState && (\n {\n GAEvent(GACategories.insights, GAActions.goToEnableInsight);\n App.history.push(\n farmID ? settingsPageRoute.farm.index({ farmID }) : settingsPageRoute.index()\n );\n }}\n icon={}\n type=\"primary\"\n >\n {t(empty.action, { farmName, status })}\n \n )}\n \n \n );\n }}\n \n );\n};\n","import { FC, useState } from \"react\";\nimport * as _ from \"lodash\";\nimport { Link } from \"react-router-dom\";\n\nimport {\n Button,\n CtraLayout,\n Grid,\n Insights as InsightUI,\n List,\n RightOutlined,\n PlusOutlined,\n Row,\n Skeleton\n} from \"@ctra/components\";\n\nimport { Nullable } from \"@ctra/utils\";\nimport { GAEvent } from \"@ctra/analytics\";\nimport { Enterprise, useTranslation } from \"@ctra/i18n\";\nimport { Enterprise as App, GenericInsightEntity, Insights, InsightWorkflowState } from \"@ctra/api\";\n\nimport {\n GAActions,\n GACategories,\n InsightContext,\n InsightEntry,\n InsightListContext,\n InsightResolutionContext,\n InsightValidationContext,\n TabNavigation\n} from \"@insights\";\n\nimport { useFarmList, useFarm } from \"@farms\";\nimport { CompiledRoutes, Routes } from \"@routes\";\nimport { DataDictionaryProvider } from \"@base\";\n\nimport styles from \"./InsightList.module.less\";\n\nconst { WidgetWrapper, ContentWrapper } = CtraLayout;\n\nconst {\n List: { ListHeader, Empty }\n} = InsightUI;\n\ninterface InsightListProps {\n /**\n * query to load into the insight list\n */\n query: Nullable>; // @todo use odata-query\n /**\n * a named list for convenience and to be used for translations\n */\n list: string;\n /**\n * wide version of the list on a seperate page\n */\n wide?: boolean;\n}\n\nconst {\n layouts: {\n insights: { loading }\n },\n insights: {\n enable,\n list: {\n headers,\n viewAll,\n empty: { title: emptyTitle, description: emptyDescription }\n }\n }\n} = Enterprise;\n\n/**\n * Insight list wrapper\n * @param query\n * @param list\n * @param wide\n * @constructor\n */\nexport const InsightList: FC = ({ query, list, wide }) => {\n const { t } = useTranslation();\n const { farm } = useFarm();\n const { md } = Grid.useBreakpoint();\n const { farmList, isLoading: isFarmListLoading } = useFarmList();\n\n const defaultPageSize = wide ? 10 : 3;\n const [pageSize, setPageSize] = useState(defaultPageSize);\n\n /**\n * Don't fetch anything without the farm list, hence the void 0\n */\n const mergedQuery =\n !query || _.isEmpty(farmList)\n ? void 0\n : {\n ...query,\n filter: {\n ...(query.filter || {}),\n farmID: farm?.id || { in: _.map(_.map(farmList, \"id\"), _.toNumber) }\n }\n };\n /**\n * Farm nome\n * @type {string|null}\n */\n const farmName = farm ? _.get(farmList, `${farm.id}.name`) : null;\n\n return (\n \n {(dataDescriptors, { isLoading: isDataDictionaryLoading }) => (\n \n \n {({ insights, insightStateFilter, meta: { isLoading: isInsightListLoading } }) => {\n const items = _.values(insights);\n const length = items.length;\n const isPaginationHidden = !(md || wide) && length > defaultPageSize;\n\n /**\n * Tell if any of the dependencies are loading\n * @type {boolean}\n */\n const isDependencyTreeLoading =\n isDataDictionaryLoading || isFarmListLoading || isInsightListLoading;\n\n /**\n * Render the insight list entry\n * @param {GenericInsightEntity} insight\n * @return {JSX.Element}\n */\n const renderInsight = (insight: GenericInsightEntity) => (\n \n \n \n \n \n \n \n );\n\n return (\n (loading)}\n toolbar={\n {\n App.history.push(\n _.get(\n CompiledRoutes,\n _.compact(\n _.flatten([\n \"app\",\n \"insights\",\n \"manage\",\n farm?.id ? [\"farm\", \"enable\"] : \"index\"\n ])\n )\n )({ farmID: farm?.id || void 0 })\n );\n }}\n >\n {t(enable)}\n \n }\n >\n \n \n \n {_.isEmpty(insights) ? (\n (emptyTitle, {\n farmName,\n workflowState: insightStateFilter,\n status: \"disabled\"\n })}\n description={t(emptyDescription, {\n farmName,\n workflowState: insightStateFilter,\n status: \"disabled\"\n })}\n />\n ) : (\n <>\n (headers.insight),\n feedback:\n insightStateFilter === InsightWorkflowState.toCheck\n ? void 0\n : t(headers.feedback),\n farm: t(headers.farm),\n period: t(headers.period)\n }}\n />\n defaultPageSize,\n pageSizeOptions: _.times(3, (i) => (defaultPageSize * (i + 1)).toString()),\n onShowSizeChange:\n // istanbul ignore next - ant design internal\n (current, pageSize) => setPageSize(pageSize),\n onChange:\n // istanbul ignore next - ant design internal\n (pageNumber) =>\n GAEvent(GACategories.insights, GAActions.selectPage, pageNumber.toString())\n }}\n />\n \n )}\n {isPaginationHidden && (\n \n \n \n {t(viewAll)} \n \n \n \n \n )}\n \n \n \n );\n }}\n \n \n )}\n \n );\n};\n","import { FC } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { useLocation } from \"react-router-dom\";\nimport * as _ from \"lodash\";\n\nimport { Enterprise as Data, EnterpriseAppState, FarmEntity, InsightValidation } from \"@ctra/api\";\nimport { Icon, Insights as InsightsUI } from \"@ctra/components\";\nimport { defaultLocale } from \"@ctra/i18n\";\nimport { GAEvent } from \"@ctra/analytics\";\n\nimport {\n GAActions,\n GACategories,\n testIds,\n useInsight,\n ResolutionTagList,\n useInsightValidation,\n KPIInsight\n} from \"@insights\";\n\nimport { useCurrentUser } from \"@auth\";\n\nimport styles from \"./InsightEntry.module.less\";\n\ninterface ListItemProps {\n list?: string;\n}\n\nconst {\n TimePeriod,\n List: { ListItem }\n} = InsightsUI;\n\n/**\n * Insight list item\n * @todo make it work with all type of insights\n * @param list\n * @constructor\n */\nexport const InsightEntry: FC = ({ list }) => {\n const { pathname, search } = useLocation();\n\n const {\n user: { id: userID }\n } = useCurrentUser();\n\n const {\n insight: { farm: farmID, endEpoch, id },\n getTitle,\n getComponents,\n getTargetGroupName,\n isSeen\n } = useInsight();\n\n const {\n validation: { validation: validationValue }\n } = useInsightValidation();\n\n const { name } = useSelector((state) =>\n Data.entities.getFarm(state, { farmID })\n );\n\n /**\n * Open the insight dialog\n * @todo not all insights may do this\n */\n const handleClick = () => {\n const searchParams = new URLSearchParams(search);\n searchParams.append(\"genericInsightID\", id.toString());\n\n GAEvent(GACategories.insights, GAActions.openInsight, `${getTitle({ lng: defaultLocale })} - ${name}`);\n\n if (list) {\n searchParams.append(\"insightList\", list);\n }\n\n Data.history.push({\n pathname,\n search: searchParams.toString()\n });\n };\n\n return (\n }\n group={_.isFunction(getTargetGroupName) ? getTargetGroupName() : void 0}\n unseen={!isSeen(userID)}\n feedback={validationValue && validationValue !== InsightValidation.na ? : void 0}\n farm={_.defaultTo(name, \"-\")}\n icon={}\n title={getTitle()}\n onClick={handleClick}\n />\n );\n};\n","import { ComponentProps, FC } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Badge, Menu } from \"@ctra/components\";\nimport { InsightWorkflowState } from \"@ctra/api\";\nimport { Enterprise, useTranslation } from \"@ctra/i18n\";\nimport { GAEvent } from \"@ctra/analytics\";\n\nimport { GAActions, GACategories, useInsightlist } from \"@insights\";\n\nimport styles from \"./TabNavigation.module.less\";\n\n/**\n * Insight tabs: To Check, To Follow up, Done\n */\nexport const TabNavigation: FC<{ showDoneState?: boolean }> = ({ showDoneState = true }) => {\n const { t } = useTranslation();\n\n const {\n setInsightStateFilter,\n insightStateFilter,\n meta: { toFollowUpCount, unseenCount }\n } = useInsightlist();\n\n const {\n insights: {\n workflowState: { toCheck, toFollowUp, done }\n }\n } = Enterprise;\n\n /**\n * Handle click on the menu\n * @param {string} key\n */\n const onClick: ComponentProps[\"onClick\"] = ({ key }) => {\n setInsightStateFilter(key as InsightWorkflowState);\n GAEvent(GACategories.insights, GAActions.selectPage, _.startCase(key));\n };\n\n /**\n * Menu items\n * @type {(MenuItemType | SubMenuType | MenuItemGroupType | MenuDividerType | null)[]}\n */\n const items: ComponentProps[\"items\"] = _.compact([\n {\n label: (\n \n {t(toCheck)}\n \n ),\n key: InsightWorkflowState.toCheck\n },\n {\n label: (\n \n {t(toFollowUp)}\n \n ),\n key: InsightWorkflowState.toFollowUp\n },\n showDoneState\n ? {\n label: t(done),\n key: InsightWorkflowState.done\n }\n : null\n ]);\n\n return (\n \n );\n};\n","import * as _ from \"lodash\";\n\nimport { FarmEntity, Insights, InsightType } from \"@ctra/api\";\nimport { MONTH, YEAR, isProduction } from \"@ctra/utils\";\n\nimport { useCurrentUser } from \"@auth\";\nimport { useFarm } from \"@farms\";\n\ntype LatestInsights = {\n insightListQuery: Record | null;\n overviewQuery: Record | null;\n insightListName: string;\n};\n\n/**\n * List query and list name for latest insights\n */\nexport const useLatestInsights = (farmID?: FarmEntity[\"id\"]): LatestInsights => {\n const { farm } = useFarm();\n\n const {\n user: { id: userID }\n } = useCurrentUser();\n\n /**\n * Query preset for KPI insights\n * @type {{and: ({visibleToUserID: string | undefined} | PlainObject)[]}}\n */\n const kpiInsightPreset = {\n or: _.compact([\n isProduction()\n ? null\n : {\n insightMetadata: { contains: `\\\"stage\\\": 4` },\n ...Insights.queries.ofType([InsightType.vulcanV2])\n },\n {\n visibleToUserID: userID,\n ...Insights.queries.ofType(InsightType.farmKPI)\n }\n ])\n };\n\n /**\n * Stocking density insights\n * @type {PlainObject}\n */\n const penDensityPreset = Insights.queries.ofTypeID(83);\n\n /**\n * Onboarding insights\n * @type {PlainObject}\n */\n const onboardingInsightPreset = Insights.queries.ofType(InsightType.onboarding);\n\n /**\n * Make a query for the insight list widget\n * @type {{filter: {or: ({[p: string]: any, or: ({[p: string]: any, insightMetadata: {contains: string}} | {[p: string]: any, visibleToUserID: string | undefined})[]} | PlainObject)[], insightState: {in: Array}}, expand: Array, orderBy: string} | null}\n * @todo don't add farm info here, that goes one level deeper\n */\n const insightListQuery = userID\n ? {\n orderBy: \"endEpoch desc\",\n expand: Insights.presets.expandDefaults(),\n filter: {\n insightState: {\n in: Insights.presets.insightStates()\n },\n or: [\n {\n ...Insights.queries.from(5, MONTH),\n ...kpiInsightPreset\n },\n penDensityPreset,\n onboardingInsightPreset\n ]\n }\n }\n : null;\n\n /**\n * Make a query for the overview widget\n * @type {{filter: {or: ({[p: string]: any, or: ({[p: string]: any, insightMetadata: {contains: string}} | {[p: string]: any, visibleToUserID: string | undefined})[]} | PlainObject)[], insightState: {in: Array}}, expand: Array, orderBy: string} | null}\n * @todo don't add farm info here, that goes one level deeper\n */\n const overviewQuery = userID\n ? {\n orderBy: \"endEpoch desc\",\n expand: Insights.presets.expandDefaults(),\n filter: {\n insightState: {\n in: Insights.presets.insightStates()\n },\n or: [\n {\n ...Insights.queries.from(1, MONTH),\n ...kpiInsightPreset\n },\n penDensityPreset\n ]\n }\n }\n : null;\n\n /**\n * Set an insight list name, append the farm name or id if available.\n */\n const farmId = farm ? _.camelCase(farm.name as string) || farm.id : null;\n const insightListName = _.join(_.compact([\"latestInsights\", farmId]), \"-\");\n\n return { insightListQuery, insightListName, overviewQuery };\n};\n","import * as _ from \"lodash\";\n\nimport { FarmEntity, Insights, InsightType } from \"@ctra/api\";\nimport { MONTH, Optional } from \"@ctra/utils\";\n\nimport { useFarm, useFarmList } from \"@farms\";\n\ntype LatestInsights = {\n insightListQuery: Optional>;\n insightListName: string;\n};\n\n/**\n * List query and list name for latest insights\n */\nexport const useOnboardingInsights = (farmID?: FarmEntity[\"id\"]): LatestInsights => {\n const { farm } = useFarm();\n const { farmList, isLoading: isFarmListLoading } = useFarmList();\n\n /**\n * Make a query for the insight list widget\n * @todo don't add farm info here, that goes one level deeper\n */\n const insightListQuery = isFarmListLoading\n ? void 0\n : {\n orderBy: \"endEpoch desc\",\n expand: Insights.presets.expandDefaults(),\n filter: {\n ...Insights.queries.ofType(InsightType.onboarding),\n farmID: farm?.id || { in: _.map(_.map(farmList, \"id\"), _.toNumber) },\n insightState: { in: Insights.presets.insightStates() }\n }\n };\n\n /**\n * Set an insight list name, append the farm name or id if available.\n */\n const farmId = farm ? _.camelCase(farm.name as string) || farm.id : null;\n const insightListName = _.join(_.compact([\"onboardingInsights\", farmId]), \"-\");\n\n return { insightListQuery, insightListName };\n};\n","import { createContext, FC, useContext, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\n\nimport {\n Insights,\n EnterpriseAppState,\n Enterprise,\n InsightResolutionEntity,\n InsightTypeEntity,\n InsightWorkflowState,\n InsightValidation\n} from \"@ctra/api\";\n\nimport { Epoch, isDispatched, isFulfilled, isPending, Nullable, TS } from \"@ctra/utils\";\nimport { useInsight, useInsightValidation } from \"@insights\";\n\ninterface ContextType {\n resolutions: Record;\n resolve: (resolutions: Record) => void;\n unresolve: (options?: { updatesWorkflowState: boolean }) => void;\n meta: {\n isFetching: boolean;\n isResolving: boolean;\n isResolved: boolean;\n };\n}\n\nconst DefaultContext = createContext({\n resolutions: {},\n resolve: _.noop,\n unresolve: _.noop,\n meta: {\n isFetching: true,\n isResolving: false,\n isResolved: false\n }\n});\n\n/**\n * Fetch the resolutions from the server\n * @private\n */\nconst _InsightResolutionContextProvider: FC = ({ children }) => {\n const dispatch = useDispatch();\n\n const {\n insight: { id, insightType, resolution }\n } = useInsight();\n\n /**\n * Get the insight type\n */\n const insightTypeEntity = useSelector>((state) =>\n Enterprise.entities.getInsightType(state, { typeName: insightType })\n );\n\n /**\n * This will never fail as the insight validation context has a pretty good default value\n */\n const { validation: validationEntity } = useInsightValidation();\n\n /**\n * Get the insight resolutions which match the query\n */\n const insightResolutions = useSelector<\n EnterpriseAppState,\n Record\n >((state) =>\n Enterprise.entities.getInsightResolutions(state, {\n typeName: insightTypeEntity?.typeName,\n validation: validationEntity.validation\n })\n );\n\n const hasDispatched = useSelector((state) =>\n isDispatched(state, Insights.types.FETCH_INSIGHT_RESOLUTIONS)\n );\n\n /**\n * Tell if the insight is resolved\n *\n * @note Check if there are resolutions attached to the insight OR\n * if the validation is not NA AND it has no resolutions list from the source\n */\n const isResolved =\n !!resolution.length ||\n (validationEntity.validation !== InsightValidation.na && _.isEmpty(insightResolutions));\n\n /**\n * Tell if the resolutions are being fetched\n */\n const isFetching = useSelector(\n (state) => !isFulfilled(state, Insights.types.FETCH_INSIGHT_RESOLUTIONS)\n );\n\n /**\n * Tell if the insight is being updated\n */\n const isResolving = useSelector((state) =>\n isPending(state, Insights.types.UPDATE_INSIGHT, { primaryValue: id })\n );\n\n useEffect(() => {\n if (!hasDispatched) {\n dispatch(Insights.actions.fetchInsightResolutions.start());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n /**\n * Resolve the insight, by batch updating the resolutions\n * @param resolutions\n */\n const resolve = (resolutions: Record): void => {\n /**\n * Already applied resolutions\n */\n const appliedResolutions = _.pick(insightResolutions, resolution);\n\n dispatch(\n /**\n * This is a bit of a hard candy to swallow as the action uses denormalize\n */\n Insights.actions.updateInsight.start(\n id,\n /**\n * keys as in source\n * when you resolve, the state of the insight will always be done\n */\n {\n resolution: _.keys(resolutions),\n workflowState: InsightWorkflowState.done,\n workflowStateLastModifiedDate: TS.serialize(Epoch.now())\n },\n /**\n * keys as in schema definition\n */\n {\n insightResolution: _.mapValues(\n { ...appliedResolutions, ...resolutions },\n /**\n * Pick the keys to be saved to the BE\n * @param id\n * @param source\n * @param title\n * @param version\n * @param flags\n */\n ({ id, source, title, version, flags }) => ({\n id,\n title,\n source,\n version,\n flags\n })\n )\n }\n )\n );\n };\n\n /**\n * Stage resolution changes for insight updating\n */\n const stageResolution = (changes = {}) => ({\n ...changes,\n resolution: []\n });\n\n /**\n * Stage workflow state changes for insight updating\n */\n const stageWorkflowState = (changes = {}) => ({\n ...changes,\n workflowState: InsightWorkflowState.toFollowUp,\n workflowStateLastModifiedDate: TS.serialize(Epoch.now())\n });\n\n /**\n * update insight only when it has some resolutions\n */\n const updateInsight = (changes = {}) =>\n !_.isEmpty(resolution) && dispatch(Insights.actions.updateInsight.start(id, changes));\n\n /**\n * workflow state updation is optional\n * update resolution to []\n */\n const unresolve = (options: { updatesWorkflowState: boolean } = { updatesWorkflowState: true }) => {\n /**\n * workflow state can be update via unresolving when:\n * 1) the optional updatesWorkflowState parameter is true\n * 2) the current validation is not \"NO\" i.e.\n * NO validation means the insight is always DONE, regardless of the resolution, hence we dont change the state\n */\n const updateRequired =\n options.updatesWorkflowState && validationEntity.validation !== InsightValidation.no;\n\n _.flow([updateRequired ? stageWorkflowState : _.noop, stageResolution, updateInsight])();\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport const InsightResolutionContext = {\n Provider: _InsightResolutionContextProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Hook for accessing insight resolutions\n */\nexport const useInsightResolutions = (): ContextType => useContext(DefaultContext);\n","import { FC, useState, cloneElement } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Space, Button, Spin, AntDesignSelect as Select, Row, Col, PlusOutlined } from \"@ctra/components\";\nimport { useTranslation, Enterprise } from \"@ctra/i18n\";\nimport { InsightResolutionEntity } from \"@ctra/api\";\nimport { useInsight, testIds, makeCustomInsightResolution, GACategories, GAActions } from \"@insights\";\n\nimport { useInsightResolutions } from \"../../providers\";\nimport styles from \"./ResolutionWidget.module.less\";\nimport { useGoogleAnalytics } from \"@ctra/analytics\";\n\nexport const DEFAULT_NUMBER_OF_RESOLUTIONS = 5;\n\n/**\n * Simple insight resolution widget\n * A user can only select one resolution\n * @constructor\n */\nexport const ResolutionWidget: FC<{ mayAddNew?: boolean }> = ({ mayAddNew } = { mayAddNew: true }) => {\n const { t } = useTranslation();\n const { insightType: info } = useGoogleAnalytics<{ insightType: string }>();\n\n const {\n resolve,\n resolutions: resolutionsSource,\n meta: { isResolving, isFetching }\n } = useInsightResolutions();\n\n const {\n meta: { isLoading: isInsightLoading },\n insight: { insightType }\n } = useInsight();\n\n const {\n insightResolutions: { title, customLabel, placeholder, other }\n } = Enterprise;\n\n /**\n * Take the first ${DEFAULT_NUMBER_OF_RESOLUTIONS} resolutions returned from source\n */\n const displayedResolutions: Array = _.orderBy(\n _.map(\n _.take(_.keys(resolutionsSource), DEFAULT_NUMBER_OF_RESOLUTIONS),\n (item) => resolutionsSource[item]\n ),\n \"ordinal\"\n );\n\n /**\n * Format the resolutions from source for use as select options\n */\n const optionsFromSource: Array<{ label: string; value: InsightResolutionEntity[\"id\"] }> = _.map(\n resolutionsSource,\n ({ id, source, title: fallbackTitle }) => {\n const label = source === \"preset\" ? t(title(id), { insightType }) : fallbackTitle;\n\n return {\n label,\n value: id\n };\n }\n );\n\n const [showSelectBox, setShowSelectBox] = useState(false);\n const [options, setOptions] = useState(optionsFromSource);\n\n return (\n <>\n {/**\n * The use of a wrapper div with an id solves the position issues\n * pointed out in ant's select component document page.\n * See getPopupContainer prop in the documentation\n */}\n
          \n \n \n \n \n {_.map(displayedResolutions, (resolution) => {\n const { id, source, title: fallbackTitle } = resolution;\n\n return (\n \n {source === \"preset\" ? t(title(id), { insightType }) : fallbackTitle}\n \n );\n })}\n {mayAddNew && !showSelectBox && (\n }\n onClick={_.partial(setShowSelectBox, true)}\n >\n {t(other)}\n \n )}\n \n \n {mayAddNew && (\n \n \n {showSelectBox && (\n \n (placeholder)}\n options={options}\n optionFilterProp={\"label\"}\n value={[]}\n getPopupContainer={() => document.getElementById(\"widget\") as HTMLElement}\n onSelect={(value: InsightResolutionEntity[\"id\"]) => {\n /**\n * Because we are accepting custom resolutions,\n * we need to make them on the fly as the user inputs them.\n * This allows us to support adding/removing of custom resolutions\n */\n const resolution = resolutionsSource[value] || makeCustomInsightResolution(value);\n resolve({ [resolution.id]: resolution });\n }}\n onSearch={(searchText) => {\n /**\n * Use trim to get rid of empty strings\n */\n // istanbul ignore next\n if (_.trim(searchText)) {\n const key = _.kebabCase(searchText);\n\n const newOption = {\n label: t(customLabel, { label: searchText }),\n value: searchText\n };\n\n /**\n * Add the search text to the options only if it's not\n * in the existing options\n */\n // istanbul ignore next\n if (!_.includes(_.keys(resolutionsSource), key)) {\n setOptions([...optionsFromSource, newOption]);\n }\n }\n }}\n dropdownRender={(menu) => {\n /**\n * Clone the menu and remove the placeholder option\n * from the menu since we are using our own custom text\n */\n return cloneElement(menu, {\n ...menu.props,\n flattenOptions: _.filter(\n menu.props.flattenOptions as Array<{\n data: Record;\n key: string;\n groupOption: boolean;\n }>,\n (option) => option.key !== \"__RC_SELECT_TAG_PLACEHOLDER__\"\n )\n });\n }}\n />\n \n )}\n \n \n )}\n \n \n
          \n \n );\n};\n","import { FC } from \"react\";\nimport * as _ from \"lodash\";\nimport { useSelector } from \"react-redux\";\n\nimport {\n Enterprise as Data,\n EnterpriseAppState,\n InsightResolutionEntity,\n InsightResolutionType,\n ValidationLookup,\n InsightValidation\n} from \"@ctra/api\";\n\nimport { Col, Row, Insights as InsightsUI } from \"@ctra/components\";\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\n\nimport { useInsightValidation, useInsight, testIds } from \"@insights\";\n\nconst {\n List: { Resolution }\n} = InsightsUI;\n\ninterface ResolutionTagListProps {\n includeValidation?: boolean;\n}\n\n/**\n * List of resolutions as tags and a validation value\n * @constructor\n */\nexport const ResolutionTagList: FC = ({ includeValidation = true }) => {\n const { t } = useTranslation();\n\n const {\n insightResolutions: { title: resolutionTitle },\n insightValidations: { validationDescription }\n } = Content;\n\n const {\n insight: { id, insightType: typeName }\n } = useInsight();\n\n const {\n validation: { validation: validationValue }\n } = useInsightValidation();\n\n /**\n * Resolve the resolutions for the current insight\n */\n const resolutionsOfInsight = useSelector<\n EnterpriseAppState,\n Record\n >((state) => Data.entities.getResolutionsOfInsight(state, { id }));\n\n return (\n \n \n {_.isEmpty(resolutionsOfInsight) ? (\n validationValue === InsightValidation.na ? null : (\n (validationDescription(typeName), { value: ValidationLookup[validationValue] })}\n />\n )\n ) : (\n _.map(resolutionsOfInsight, ({ id, source, title }) => (\n (resolutionTitle(id), { insightType: typeName })\n : title\n }\n />\n ))\n )}\n \n \n );\n};\n","/* eslint @typescript-eslint/no-explicit-any: 0 */\n\nimport { ComponentType } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { i18nTranslate, Enterprise } from \"@ctra/i18n\";\nimport { GenericInsightEntity, InsightContext, UserEntity } from \"@ctra/api\";\nimport { Epoch, memoize } from \"@ctra/utils\";\n\n/**\n * Generic insight base class to give some sort of structured API on the insight entities\n * @todo extend this in subclasses\n * @todo add base functionality for resolutions/validations/recommendations, etc.\n */\nclass GenericInsightBase {\n /**\n * The underlying insight entity\n */\n protected entity: GenericInsightEntity;\n\n constructor(insight: GenericInsightEntity) {\n this.entity = insight;\n }\n\n /**\n * Get the metadata for the insight\n * @todo implement in subclass to organise anything messy\n */\n @memoize\n getMetadata(): Record {\n return this.entity.metadata;\n }\n\n /**\n * Get the context for the insight\n * @todo implement in subclass if needed\n */\n @memoize\n getContext(): InsightContext {\n return this.entity.context;\n }\n\n /**\n * Insight may have different components based on the type name\n * or other data. This should give you a rundown of all the\n * child components an insghts may use.\n * @todo extend in subclass\n */\n @memoize\n getComponents(): Record<\"ListIcon\" | \"Icon\" | \"Validation\" | \"Body\", ComponentType> {\n return {\n ListIcon: () => null,\n Icon: () => null,\n Validation: () => null,\n Body: () => null\n };\n }\n\n @memoize\n getTranslationParams(): Record {\n return {};\n }\n\n /**\n * Get insight title\n * @param params {{}}\n */\n @memoize\n getTitle(params?: Record): string {\n const {\n entity: { title }\n } = Enterprise.insights;\n\n return i18nTranslate(title(this.entity.insightType), {\n ...this.getMetadata(),\n ...this.getTranslationParams(),\n ...params\n });\n }\n\n /**\n * Get insight description\n * @param params {{}}\n */\n @memoize\n getDescription(params?: Record): string {\n const {\n entity: { description }\n } = Enterprise.insights;\n\n return i18nTranslate(description(this.entity.insightType), {\n ...this.getMetadata(),\n ...this.getTranslationParams(),\n ...params\n });\n }\n\n /**\n * Get insight workflow state description\n * @param params {{}}\n */\n @memoize\n getStateDescription(params?: Record): string {\n const { stateSince } = Enterprise.insights;\n\n return i18nTranslate(stateSince(this.entity.workflowState), {\n ...this.getMetadata(),\n ...params\n });\n }\n\n /**\n * Start moment\n * @note as we usually use this for manipulation, better to use than startEpoch\n */\n @memoize\n getStartMoment(): ReturnType {\n return Epoch.asMoment(this.entity.startEpoch);\n }\n\n /**\n * End moment\n * @note as we usually use this for manipulation, better to use than startEpoch\n */\n @memoize\n getEndMoment(): ReturnType {\n return Epoch.asMoment(this.entity.endEpoch);\n }\n\n /**\n * Tell whether the user has seeeen this insight\n * @param userID\n */\n isSeen(userID?: UserEntity[\"id\"]): boolean {\n return !!userID && this.entity.seenBy.includes(userID);\n }\n\n /**\n * Tell if the insight given is equal to the entity stored\n * @param insight\n */\n isEqual(insight: GenericInsightEntity): boolean {\n return _.isEqual(this.entity, insight);\n }\n}\n\nexport { GenericInsightBase };\n","import moment from \"moment\";\nimport * as _ from \"lodash\";\n\nimport { Enterprise as App, DataDescriptorEntity, ChartSeriesType } from \"@ctra/api\";\nimport { i18nTranslate, Enterprise } from \"@ctra/i18n\";\nimport { KPIThresholdDownV2, KPIThresholdUpV2 } from \"@ctra/components\";\nimport { Units, UnitSystem, memoize, Optional } from \"@ctra/utils\";\n\nimport { RegularInsightValidation, KPIInsightBody } from \"@insights\";\nimport { loadUnitSystem } from \"@base\";\n\nimport { GenericInsightBase } from \"./Base\";\n\n/**\n * KPI insight\n */\nclass KPIInsight extends GenericInsightBase {\n /**\n * Format the ugly metadata to something more readable\n */\n @memoize\n getMetadata(): {\n dataDescriptor: {\n id: DataDescriptorEntity[\"id\"];\n typeName: DataDescriptorEntity[\"dataProperties\"][\"typeName\"];\n };\n changeDirection: \"increase\" | \"decrease\";\n trigger: {\n value: number;\n datetime: string;\n };\n thresholds: {\n min: number;\n max: number;\n };\n unitSystem: UnitSystem;\n group: Optional;\n } {\n const {\n userPreferences: {\n unitSystem,\n algorithmOptions: { minThreshold, maxThreshold },\n group\n },\n dataDescription: { dataTypeName, dataDescriptorId, insightDirection },\n triggerPoint: {\n date,\n context: { value }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } = GenericInsightBase.prototype.getMetadata.apply(this) as Record;\n\n return {\n dataDescriptor: {\n id: dataDescriptorId,\n typeName: dataTypeName\n },\n changeDirection: insightDirection,\n trigger: {\n value,\n datetime: date\n },\n thresholds: {\n min: minThreshold,\n max: maxThreshold\n },\n group,\n /**\n * convert into internal format i.e lower case\n */\n unitSystem: unitSystem?.toLowerCase() || UnitSystem.metric\n };\n }\n\n /**\n * Get parameters for translating the title and the description\n * @returns {{changeDirection: \"increase\" | \"decrease\", datetime: string, thresholdMin: string, kpi: string, thresholdMax: string, value: string, group: string | undefined}}\n */\n @memoize\n getTranslationParams() {\n const {\n kpi,\n unitSystem: { unit: tUnit }\n } = Enterprise;\n\n const {\n dataDescriptor: { id, typeName },\n trigger: { value, datetime },\n thresholds: { min, max },\n changeDirection,\n unitSystem: kpiUnitSystem\n } = this.getMetadata();\n\n const units = App.entities.getDataDescriptor(App.store.getState(), { id })?.valueProperties?.units;\n const globalUnitSystem = loadUnitSystem();\n const unit = _.get(units, globalUnitSystem, _.get(units, UnitSystem.metric));\n\n const kpiName = i18nTranslate(kpi.displayName(typeName), {\n variant: \"short\",\n case: null,\n makeDefaultValue: true\n });\n\n const convert = (value: number) =>\n Units.convertToUnitSystem(value, units, { from: kpiUnitSystem, to: globalUnitSystem });\n\n return {\n changeDirection,\n kpi: kpiName,\n value: Units.format(convert(value), unit, i18nTranslate(tUnit(unit)), { precision: 1 }),\n datetime: moment(datetime).format(\"LL\"),\n thresholdMin: Units.format(convert(min), unit, i18nTranslate(tUnit(unit)), { precision: 1 }),\n thresholdMax: Units.format(convert(max), unit, i18nTranslate(tUnit(unit)), { precision: 1 }),\n group: this.getTargetGroupName({ withPrefix: false })\n };\n }\n\n /**\n * Get the herd group or pen name\n * @return {string}\n */\n @memoize\n getTargetGroupName({ withPrefix } = { withPrefix: true }): Optional {\n const {\n settings: {\n insights: {\n kpiInsightForm: {\n labels: { pen, herdGroup }\n }\n }\n }\n } = Enterprise;\n\n const { farm } = this.entity;\n\n const {\n dataDescriptor: { id: dataDescriptorID },\n group\n } = this.getMetadata();\n\n if (!group) {\n return void 0;\n }\n\n const dataDictionary = App.entities.getDataDictionary(App.store.getState());\n const charts = App.entities.getChartList(App.store.getState());\n const herdGroups = App.entities.getHerdGroups(App.store.getState(), { farmID: farm });\n const pens = _.keyBy(App.entities.getPens(App.store.getState(), { farmID: farm }), \"name\");\n\n const chartID = _.get(dataDictionary, [dataDescriptorID, \"supportedCharts\", 0]);\n const seriesType = _.get(charts, [chartID, \"dataProperties\", \"seriesType\"]);\n const groupName = _.get({ ...herdGroups, ...pens }, [group, \"name\"]);\n\n return _.compact([\n withPrefix ? i18nTranslate(seriesType === ChartSeriesType.herdGroup ? herdGroup : pen) : null,\n _.defaultTo(groupName, group)\n ]).join(\" \");\n }\n\n /**\n * Replace the icons based on the metadata and add it's own validation\n */\n @memoize\n getComponents(): ReturnType {\n const { changeDirection } = this.getMetadata();\n\n return {\n Icon: changeDirection === \"increase\" ? KPIThresholdUpV2 : KPIThresholdDownV2,\n ListIcon: changeDirection === \"increase\" ? KPIThresholdUpV2 : KPIThresholdDownV2,\n Validation: RegularInsightValidation,\n Body: KPIInsightBody\n };\n }\n}\n\nexport { KPIInsight };\n","import { memoize, Units, UnitSystem } from \"@ctra/utils\";\nimport * as _ from \"lodash\";\n\nimport { BulbCircle } from \"@ctra/components\";\nimport { DataDescriptorEntity, Enterprise as App } from \"@ctra/api\";\nimport { Enterprise, i18nTranslate } from \"@ctra/i18n\";\n\nimport { OnboardingInsightValidation } from \"@insights\";\nimport { loadUnitSystem } from \"@base\";\n\nimport { OnboardingInsightBody } from \"../insight-body\";\nimport { GenericInsightBase } from \"./Base\";\nimport { string } from \"yup\";\n\nclass OnboardingInsight extends GenericInsightBase {\n @memoize\n getComponents(): Omit, \"Body\"> & {\n Body: typeof OnboardingInsightBody;\n } {\n return {\n ...super.getComponents(),\n Body: OnboardingInsightBody,\n Validation: OnboardingInsightValidation,\n Icon: BulbCircle,\n ListIcon: BulbCircle\n };\n }\n\n @memoize\n getMetadata(): Record {\n const globalUnitSystem = loadUnitSystem();\n const { data, variant_id, ...rest } = super.getMetadata();\n const metric = App.entities.getDataDescriptor(App.store.getState(), { id: variant_id });\n const units = _.get(metric, [\"valueProperties\", \"units\"]);\n\n /**\n * Convert value to global unit system\n * @param {number} value\n * @returns {number}\n */\n const convert = (value: number): number =>\n Units.convertToUnitSystem(value, units, {\n from: UnitSystem.metric,\n to: globalUnitSystem,\n precision: metric.valueProperties.decimals\n });\n\n const convertedData = data.map((item: { x: number; y: number }) => ({\n x: item.x,\n y: convert(item.y)\n }));\n\n return {\n data: convertedData,\n variant_id,\n ...rest\n };\n }\n\n @memoize\n getMetric(): DataDescriptorEntity {\n return App.entities.getDataDescriptor(App.store.getState(), { id: this.getMetadata().variant_id });\n }\n\n @memoize\n getMetricName(): string {\n const { kpi } = Enterprise;\n const metric = this.getMetric();\n const typeName = _.get(metric, [\"dataProperties\", \"typeName\"]);\n\n return i18nTranslate(kpi.displayName(typeName), {\n variant: \"short\",\n case: null,\n makeDefaultValue: true\n });\n }\n\n /**\n * Get translation params\n * @returns {{metric: string, year: any, value_thi_65: string, value_thi_75: string, value_change_pct: string, direction: string | null}}\n */\n @memoize\n getTranslationParams() {\n const { value_thi_65, value_thi_75, value_change_pct, variant_id, year } = super.getMetadata();\n const globalUnitSystem = loadUnitSystem();\n const metric = App.entities.getDataDescriptor(App.store.getState(), { id: variant_id });\n const metricName = this.getMetricName();\n const units = _.get(metric, [\"valueProperties\", \"units\"]);\n const unit = _.get(units, globalUnitSystem, _.get(units, UnitSystem.metric));\n\n /**\n * Convert value to global unit system\n * @param {number} value\n * @returns {number}\n */\n const convert = (value: number): number =>\n Units.convertToUnitSystem(value, units, {\n from: UnitSystem.metric,\n to: globalUnitSystem,\n precision: metric.valueProperties.decimals\n });\n\n return {\n metric: metricName,\n value_thi_65: Units.format(convert(value_thi_65), unit, void 0, {\n precision: metric.valueProperties.decimals\n }),\n value_thi_75: Units.format(convert(value_thi_75), unit, void 0, {\n precision: metric.valueProperties.decimals\n }),\n value_change_pct: Units.format(Math.abs(value_change_pct), \"%\", void 0, {\n precision: 2\n }),\n direction: value_thi_65 < value_thi_75 ? \"increase\" : value_thi_65 > value_thi_75 ? \"decrease\" : null,\n year\n };\n }\n\n /**\n * Get insight title\n * @param params {{}}\n */\n @memoize\n getTitle(params?: Record): string {\n const {\n entity: { title }\n } = Enterprise.insights;\n\n return i18nTranslate(title(this.entity.insightType), {\n metricName: this.getMetricName(),\n ...this.getMetadata(),\n ...params\n });\n }\n\n /**\n * Get insight description\n * @param userParams {{}}\n */\n @memoize\n getDescription(userParams?: Record): string {\n const {\n insights: {\n entity: { description }\n }\n } = Enterprise;\n\n const params = {\n ...this.getTranslationParams(),\n ...userParams\n };\n\n return i18nTranslate(description(this.entity.insightType), params);\n }\n}\n\nexport { OnboardingInsight };\n","import * as _ from \"lodash\";\n\nimport { DataDescriptorEntity, ChartSeriesType, Enterprise as App } from \"@ctra/api\";\nimport { i18nTranslate, Enterprise } from \"@ctra/i18n\";\nimport { KPIThresholdDownV2, KPIThresholdUpV2 } from \"@ctra/components\";\nimport { memoize } from \"@ctra/utils\";\n\nimport { OnboardingInsightValidation, VulcanV2InsightBody } from \"@insights\";\n\nimport { GenericInsightBase } from \"./Base\";\n\ninterface VulcanV2InsightMetadata {\n stage: number;\n variantId: DataDescriptorEntity[\"id\"];\n variantName: DataDescriptorEntity[\"dataProperties\"][\"typeName\"];\n subjectType: ChartSeriesType; // or ChartFilterType\n subject: string;\n changeRel: number;\n modelVersion: string;\n lengthDays: number;\n}\n\nconst {\n kpi,\n insights: {\n entity: { titleParam }\n }\n} = Enterprise;\n\n/**\n * Automated KPI insight\n */\nclass VulcanV2Insight extends GenericInsightBase {\n @memoize\n getMetadata(): VulcanV2InsightMetadata {\n return super.getMetadata() as VulcanV2InsightMetadata;\n }\n\n getDescription() {\n return \"\";\n }\n\n /**\n * Get parameters for translating the title and the description\n */\n @memoize\n getTranslationParams() {\n const { variantName: typeName, subjectType, subject } = this.getMetadata();\n\n let groupName = subject;\n\n switch (subjectType) {\n case \"farm\": {\n groupName = _.defaultTo(App.entities.getFarm(App.store.getState(), { farmID: +subject })?.name, \"\");\n break;\n }\n case \"dimGroup\": {\n groupName = _.defaultTo(App.entities.getDIMGroup(App.store.getState(), { id: subject }), {\n name: \"\"\n }).name;\n break;\n }\n case \"penSubType\": {\n groupName = i18nTranslate(titleParam(subjectType, subject));\n break;\n }\n }\n\n const kpiName = i18nTranslate(kpi.displayName(typeName), {\n variant: \"short\",\n case: null,\n makeDefaultValue: true\n });\n\n return {\n kpi: kpiName,\n groupName\n };\n }\n\n /**\n * Replace the icons based on the metadata and add its own validation\n */\n @memoize\n getComponents(): ReturnType {\n const { changeRel } = this.getMetadata();\n\n return {\n Body: VulcanV2InsightBody,\n Icon: changeRel > 0 ? KPIThresholdUpV2 : KPIThresholdDownV2,\n ListIcon: changeRel > 0 ? KPIThresholdUpV2 : KPIThresholdDownV2,\n Validation: OnboardingInsightValidation\n };\n }\n}\n\nexport { VulcanV2Insight };\n","import { Epoch, memoize } from \"@ctra/utils\";\nimport * as _ from \"lodash\";\n\nimport { BulbCircle } from \"@ctra/components\";\n\nimport { StockingDensityInsightBody } from \"@insights\";\nimport { GenericInsightBase } from \"./Base\";\nimport { OnboardingInsightValidation } from \"@insights\";\n\nclass StockingDensityInsight extends GenericInsightBase {\n @memoize\n getComponents(): Omit, \"Body\"> & {\n Body: typeof StockingDensityInsightBody;\n } {\n return {\n ...super.getComponents(),\n Body: StockingDensityInsightBody,\n Validation: OnboardingInsightValidation, // same component basically\n Icon: BulbCircle,\n ListIcon: BulbCircle\n };\n }\n\n @memoize\n getMetadata(): {\n cowsHigh: number;\n cowsLow: number;\n datapointsD: string[];\n datapointsX: number[];\n datapointsY: number[];\n penName: string;\n drop: number;\n metricName: \"feedEfficiency\" | \"averageDMI\" | \"averageYield\";\n startDate: string;\n endDate: string;\n curveSlope: number;\n curveMidpoint: number;\n curveHigh: number;\n isRealDrop: 1 | 0;\n } {\n const meta = super.getMetadata();\n const { startEpoch, endEpoch } = this.entity;\n const startDate = Epoch.asMoment(Epoch.load(startEpoch)).format(\"LL\");\n const endDate = Epoch.asMoment(Epoch.load(endEpoch)).format(\"LL\");\n const { cowsLow, cowsHigh } = meta;\n\n return {\n ..._.pick(\n _.mapValues(meta, (v) => (_.isNumber(v) ? _.round(v, 2) : v)),\n \"curveSlope\",\n \"curveMidpoint\",\n \"curveHigh\",\n \"datapointsD\",\n \"datapointsX\",\n \"datapointsY\",\n \"penName\",\n \"drop\",\n \"metricName\"\n ),\n isRealDrop: _.isNumber(meta.drop) && meta.drop >= 1 ? 1 : 0,\n cowsLow: _.round(cowsLow),\n cowsHigh: _.round(cowsHigh),\n startDate,\n endDate\n };\n }\n}\n\nexport { StockingDensityInsight };\n","import * as _ from \"lodash\";\n\nimport { GenericInsightEntity, InsightType, InsightTypeEntity } from \"@ctra/api\";\nimport { getInheritedPropertyNames } from \"@ctra/utils\";\n\nimport { KPIInsight } from \"./KPIInsight\";\nimport { GenericInsightBase } from \"./Base\";\nimport { OnboardingInsight } from \"./OnboardingInsight\";\nimport { VulcanV2Insight } from \"./VulcanV2Insight\";\nimport { StockingDensityInsight } from \"./StockingDensityInsight\";\n\n/**\n * @todo figure out a way to handle unions so each insight will expose the proper API\n */\ntype RegisteredInsights =\n | typeof KPIInsight\n | typeof OnboardingInsight\n | typeof VulcanV2Insight\n | typeof StockingDensityInsight;\n\n/**\n * A factory to create a nice API around the insights\n * @example\n * ```ts\n * GenericInsight.create(insightObject, extra, info, to, pass);\n * // instanceof KPIInsight extends GenericInsightBase\n * ```\n */\nclass Factory {\n /**\n * Keep all the registered insights here\n */\n private static _registry = new Map();\n\n /**\n * Register a class of insight\n * @param typeName\n * @param cls\n */\n static register(typeName: InsightTypeEntity[\"typeName\"], cls: I): void {\n if (!Factory._registry.has(typeName)) {\n Factory._registry.set(typeName, cls);\n } else {\n throw new Error(`${typeName} is already set in the registry.`);\n }\n }\n\n /**\n * Create an insight object\n * @param insight\n * @param rest\n */\n static create(\n insight: GenericInsightEntity,\n ...rest: unknown[]\n ): InstanceType {\n const { insightType } = insight;\n let cls = Factory._registry.get(insightType);\n\n if (!cls) {\n console.warn(`${insightType} is not yet in the registry. Using GenericInsightBase as constructor.`);\n cls = GenericInsightBase;\n }\n\n return new cls(insight, ...rest);\n }\n\n /**\n * Serialize any insight object to {} for allowing spread operations\n * @param instance\n */\n static serialize = >(instance: T): Record =>\n _.reduce>(\n getInheritedPropertyNames(instance, GenericInsightBase) as Array,\n (result, key) => {\n // @ts-ignore - binding is necessary\n result[key] = _.isFunction(instance[key]) ? instance[key].bind(instance) : instance[key];\n\n return result;\n },\n {} as Record\n );\n\n /**\n * Get the registered insight type names\n */\n static getRegisteredInsights = (): Array => {\n return Array.from(Factory._registry.keys());\n };\n}\n\nFactory.register(InsightType.farmKPI, KPIInsight);\nFactory.register(InsightType.vulcanV2, VulcanV2Insight);\nFactory.register(InsightType.onboarding, OnboardingInsight);\nFactory.register(InsightType.stockingDensity, StockingDensityInsight);\n\nexport { Factory };\n","import { FC, useEffect, useContext, createContext } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { EnterpriseAppState, InsightTypeEntity, Insights, Enterprise } from \"@ctra/api\";\nimport { isDispatched, isPending } from \"@ctra/utils\";\n\ntype ContextType = {\n insightTypes: Record;\n meta: {\n isLoading: boolean;\n };\n};\n\n/**\n * Make a default context\n */\nconst DefaultContext = createContext({\n insightTypes: {},\n meta: {\n isLoading: true\n }\n});\n\n/**\n * Fetch the insight types from the API\n * @param children\n */\nconst _InsightTypeListProvider: FC = ({ children }) => {\n const dispatch = useDispatch();\n\n const insightTypeList = useSelector(\n Enterprise.entities.getInsightTypes\n );\n\n const hasFetched = useSelector((state) =>\n isDispatched(state, Insights.types.FETCH_INSIGHT_TYPES)\n );\n\n const isLoading = useSelector((state) =>\n isPending(state, Insights.types.FETCH_INSIGHT_TYPES)\n );\n\n useEffect(() => {\n if (!hasFetched) {\n dispatch(Insights.actions.fetchInsightTypes.start());\n }\n }, [dispatch, hasFetched]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const InsightTypeContext = {\n Provider: _InsightTypeListProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Make a hook to access the context in FCs\n */\nexport const useInsightTypes = (): ContextType => useContext(DefaultContext);\n","export enum GACategories {\n insights = \"Insights\",\n kpiInsights = \"KPI insights\"\n}\n\nexport enum GAActions {\n closeInsight = \"Close Insight\",\n goToEnableInsight = \"Go to Enable insight\",\n goToSettings = \"Go to Settings\",\n hoverHelp = \"Hover help\",\n openInsight = \"Open insight\",\n selectPage = \"Select page\",\n resolveInsight = \"Resolve Insight\"\n}\n","import { makeTestIds } from \"@ctra/utils\";\nimport { InsightValidation } from \"@ctra/api\";\n\n/**\n * Make test ids for react\n */\nexport const testIds = makeTestIds(\"insights\", {\n entity: {\n wrapper: \"wrapper\",\n details: {\n wrapper: \"wrapper\",\n mobile: {\n wrapper: \"wrapper\"\n },\n desktop: {\n wrapper: \"wrapper\",\n previousBtn: \"previousBtn\",\n nextBtn: \"nextBtn\"\n }\n },\n header: {\n farmName: \"farmName\",\n content: \"content\"\n },\n resolution: {\n widget: {\n button: \"button\",\n select: \"select\",\n addResolution: \"addResolution\",\n input: \"input\"\n },\n list: {\n tag: \"tag\"\n }\n },\n validation: {\n options: {\n [InsightValidation.yes]: \"yes\",\n [InsightValidation.no]: \"no\",\n [InsightValidation.maybe]: \"maybe\",\n [InsightValidation.na]: \"na\"\n },\n rollback: \"rollback\"\n }\n },\n list: {\n entry: {\n wrapper: \"wrapper\",\n resolution: \"resolution\"\n },\n emptyState: {\n enableInsights: {\n hasSettings: \"hasSettings\",\n hasNoSettings: \"hasNoSettings\"\n }\n }\n },\n extensions: {\n bloodScreeningSchedule: {\n wrapper: \"wrapper\",\n table: \"table\"\n },\n feedingSchedule: \"feedingSchedule\",\n milkDropChart: \"milkDropChart\",\n highRiskCowList: {\n wrapper: \"wrapper\",\n table: \"table\"\n }\n }\n});\n","import * as _ from \"lodash\";\nimport { InsightResolutionEntity, InsightResolutionType } from \"@ctra/api\";\n\n/**\n * Make a custom insight resolution from string\n * @param title\n * @returns\n */\nexport const makeCustomInsightResolution = (title: string): InsightResolutionEntity => {\n return {\n id: _.kebabCase(title),\n title,\n version: 2,\n source: InsightResolutionType.custom,\n flags: {}\n };\n};\n","export enum GACategories {\n compareCharts = \"Compare charts\",\n analytics = \"Analytics\",\n correlations = \"Correlations\",\n /****** v3 *****/\n dashboards = \"Dashboards\",\n configurator = \"Configurator\",\n sharing = \"Sharing\"\n}\n\nexport enum GAActions {\n shareChart = \"Share chart\",\n closeChartSharing = \"Close chart sharing\",\n copyToClipboard = \"Copy to clipboard\",\n shareViaEmail = \"Share via email\",\n backToDashboard = \"Back to dashboard\",\n selectChart = \"Select chart\",\n selectFarm = \"Select farm\",\n backTo = \"Back to\",\n closeSubsection = \"Close subsection\",\n goToAllAnalytics = \"Go to all analytics\",\n goToCompareCharts = \"Go to compare charts\",\n goToDashboard = \"Go to dashboard\",\n goToFarm = \"Go to farm\",\n openSubsection = \"Open subsection\",\n selectDashboard = \"Select dashboard\",\n addChartToList = \"Add chart to list\",\n switchCorrelationsTab = \"Switch correlations tab\",\n addCorrelationToComparison = \"Add correlation to comparison\",\n /****** v3 *****/\n addMetricToList = \"Add metric to list\",\n saveMetric = \"Save metric to dashboard\",\n removeMetric = \"Remove metric from dashboard\",\n openEvent = \"Open event\",\n goToChartConfig = \"Go to chart configurator\",\n goToAnalysisDirectly = \"Go to analysis directly\",\n addDashboard = \"Add new dashboard\",\n removeDashboard = \"Remove dashboard\",\n renameDashboard = \"Rename dashboard\",\n copyDashboard = \"Copy dashboard\",\n saveChanges = \"Save changes\"\n}\n\nexport enum GALabels {\n goToFarm = \"Go to farm\"\n}\n","import { FC, useState } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { GAEvent } from \"@ctra/analytics\";\nimport { MetricEntity } from \"@ctra/api\";\nimport { useTranslation, Enterprise as Content } from \"@ctra/i18n\";\nimport { SearchOutlined, AntDesignSelect as Select, Analytics, Tag, Row, Col } from \"@ctra/components\";\n\nimport styles from \"./MetricPicker.module.less\";\nimport { useDataDictionary } from \"@base\";\nimport { GACategories } from \"@analytics\";\n\nconst { OptGroup, Option } = Select;\nconst {\n V3: { CategoryIcon }\n} = Analytics;\n\ninterface MetricPickerProps {\n onChange: (value: MetricEntity[\"id\"]) => void;\n value?: MetricEntity[\"id\"];\n}\n/**\n * Metric Picker component\n * @param param0\n * @returns\n */\nexport const MetricPicker: FC = ({ value, onChange }) => {\n const { t } = useTranslation();\n const [filter, setFilter] = useState(\"\");\n\n const {\n metrics,\n groups: { byFamilyCategory: groupedMetrics, families, projectionMetrics }\n } = useDataDictionary();\n\n const {\n layouts: { section },\n analytics: {\n config: {\n search: { placeholder },\n metric: { displayName },\n projections\n }\n }\n } = Content;\n\n /**\n * Get the dropdown data\n * @type {{}[]}\n */\n const items = _.map(_.keys(groupedMetrics), (category, idx) => ({\n key: idx,\n label: t(section.title(category), { makeDefaultValue: true }),\n options: _.orderBy(\n _.map(_.keys(_.get(groupedMetrics, [category])), (key) => {\n const lookup = [category, key, 0];\n\n const familyName = _.get(groupedMetrics, [...lookup, \"family\"]);\n const name = _.get(groupedMetrics, [...lookup, \"name\"]);\n const id = _.get(groupedMetrics, [...lookup, \"id\"]);\n const keywords = _.get(groupedMetrics, [...lookup, \"keywords\"], []);\n\n return {\n keywords,\n key: _.defaultTo(familyName, id),\n value: _.defaultTo(familyName, id),\n label: t(displayName(_.defaultTo(familyName, name)), { makeDefaultValue: true })\n };\n }),\n ({ label }) => label.toLowerCase()\n )\n }));\n\n /**\n * Filter the options based on search query\n */\n const filteredOptions = items.reduce((acc: typeof items, data) => {\n const filteredGroupOptions = data.options.filter(\n (option) =>\n option.label.toLowerCase().includes(filter.toLowerCase()) ||\n _.some(option.keywords, (keyword) => keyword.toLowerCase().includes(filter.toLowerCase()))\n );\n\n if (filteredGroupOptions.length > 0) {\n acc.push({\n ...data,\n options: filteredGroupOptions\n });\n }\n\n return acc;\n }, []);\n\n return (\n
          \n {value ? (\n \n ) : (\n \n )}\n {\n GAEvent(\n GACategories.configurator,\n \"Select metric\",\n JSON.stringify({ metric: value && _.get(metrics, [value, \"name\"], value) })\n );\n\n onChange(value);\n }}\n value={value}\n filterOption={false}\n showSearch\n showArrow={false}\n >\n {filteredOptions.map(({ label, options }) => (\n \n {options.map(({ label, value }) => (\n \n ))}\n \n ))}\n \n
          \n );\n};\n","import { FC } from \"react\";\nimport * as _ from \"lodash\";\nimport Markdown from \"react-markdown\";\n\nimport { Col, List, PlusCircleOutlined, Popover, Row, Space, Tag } from \"@ctra/components\";\nimport { Enterprise, useTranslation } from \"@ctra/i18n\";\nimport { isProduction } from \"@ctra/utils\";\n\nimport { useDataDictionary } from \"@base\";\n\nimport styles from \"./ListItem.module.less\";\n\n/**\n * List item for the category list displayed on config search page\n * @param {{id: string, name: string}} item\n * @param {() => void} onClick\n * @returns {JSX.Element}\n * @constructor\n */\nexport const ListItem: FC<{ item: { id: string; name: string }; onClick: () => void }> = ({\n item,\n onClick\n}) => {\n const { t } = useTranslation();\n const {\n groups: { projectionMetrics }\n } = useDataDictionary();\n\n const {\n analytics: {\n config: {\n metric: { displayName },\n projections\n }\n }\n } = Enterprise;\n\n return (\n \n \n \n \n \n {isProduction() ? (\n \n ) : (\n {item.id}} trigger=\"hover\">\n \n \n )}\n \n {t(displayName(item.name), { makeDefaultValue: true })}\n \n \n \n {_.includes(projectionMetrics, item.id) && {t(projections)}}\n \n \n \n );\n};\n","import { FC } from \"react\";\nimport * as _ from \"lodash\";\nimport { useLocation, useParams } from \"react-router-dom\";\n\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\nimport { Charts, Analytics, Tag, Col } from \"@ctra/components\";\n\nimport { useFarm } from \"@farms\";\nimport { useDataDictionary } from \"@base\";\nimport { Chart, ChartAPIContext, ChartFilterContext } from \"@chart\";\nimport { Enterprise } from \"@ctra/api\";\nimport { CompiledRoutes } from \"@routes\";\n\nimport styles from \"./MiniChart.module.less\";\n\nconst {\n V3: { MiniChartCard }\n} = Analytics;\n\ninterface MiniChartProps {\n metric: string;\n variant: string;\n source?: string;\n}\n\n/**\n * List of chart cards\n * @returns\n */\nexport const MiniChart: FC = ({ metric, variant, source }) => {\n const { t } = useTranslation();\n const { farm } = useFarm();\n const { dashboard } = useParams<{ dashboard: string }>();\n const { search, state } = useLocation();\n const searchParams = new URLSearchParams(search);\n\n const {\n api: { extractChartInfo },\n groups: { projectionMetrics },\n dataDescriptors\n } = useDataDictionary();\n\n /**\n * Default interval for the chart\n */\n const defaultInterval = _.get(dataDescriptors, [variant, \"valueProperties\", \"defaultInterval\"], \"P3M\");\n\n const {\n analytics: {\n config: {\n metric: { displayName },\n variant: variantCopy,\n source: sourceCopy,\n projections\n }\n },\n chart: { description }\n } = Content;\n\n const chartInfo = extractChartInfo({ source, variant, metric });\n\n return (\n \n \n \n {({ chart: { title } }) => (\n t(sourceCopy(sourceName))),\n \", \"\n )\n }\n variant={t(variantCopy(chartInfo.variantType))}\n tooltip={t(description(title))}\n onClick={() => {\n source && searchParams.set(\"source\", source);\n searchParams.set(\"variant\", variant);\n\n Enterprise.history.push({\n pathname: CompiledRoutes.app.analytics.dashboard.addChart.metric({\n dashboard,\n metricID: metric\n }),\n search: searchParams.toString(),\n state\n });\n }}\n >\n \n \n {_.includes(projectionMetrics, metric) && {t(projections)}}\n \n \n )}\n \n \n \n );\n};\n","import { useLocation, useParams } from \"react-router-dom\";\nimport React, { FC, useState } from \"react\";\nimport * as _ from \"lodash\";\n\nimport {\n CtraLayout,\n Typography,\n Collapse,\n List,\n Row,\n Col,\n Button,\n Divider,\n PlusOutlined,\n Analytics,\n BarChartOutlined,\n Tabs,\n UnorderedListOutlined\n} from \"@ctra/components\";\n\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\nimport { Breadcrumbs, Enterprise, MetricEntity } from \"@ctra/api\";\nimport { GAEvent } from \"@ctra/analytics\";\n\nimport { useFarm } from \"@farms\";\nimport { useDataDictionary } from \"@base\";\nimport { CompiledRoutes } from \"@routes\";\nimport { GACategories, useSavedCharts } from \"@analytics\";\n\nimport { MetricPicker } from \"../MetricPicker\";\nimport { ListItem } from \"../ListItem\";\n\nimport styles from \"./MetricSelectorPage.module.less\";\nimport { MiniChart } from \"../MiniChart\";\n\nconst { WidgetWrapper, ContentWrapper } = CtraLayout;\nconst { Paragraph } = Typography;\nconst {\n components: { Breadcrumb }\n} = Breadcrumbs;\n\nconst {\n V3: { CategoryIcon }\n} = Analytics;\n\nconst {\n analytics: {\n config: {\n metric: { displayName },\n search: { pageDescription, cta, title }\n },\n v3: { metricSelector }\n },\n layouts: {\n section: { title: layoutTitle }\n }\n} = Content;\n\n/**\n * Metric selector page\n * @return {JSX.Element}\n * @constructor\n */\nexport const MetricSelectorPage: FC = () => {\n const { t } = useTranslation();\n const [view, setView] = useState(\"chart\");\n const { state } = useLocation();\n const { farm } = useFarm();\n\n const [currentMetric, setCurrentMetric] = useState();\n const { dashboard } = useParams<{ dashboard: string }>();\n\n const {\n dataDescriptors: dataDictionary,\n groups: { byFamilyCategory: groupedMetrics },\n meta: { isLoading: dataDictionaryLoading, enums },\n api: { extractChartInfo }\n } = useDataDictionary();\n\n const { savedCharts } = useSavedCharts();\n const groupName = _.find(savedCharts, { id: dashboard })?.groupName;\n\n const handleClick = (metricID: string, name?: string) => {\n GAEvent(GACategories.configurator, \"Select metric and route to config\", JSON.stringify({ name }));\n\n Enterprise.history.push({\n pathname: CompiledRoutes.app.analytics.dashboard.addChart.metric({ dashboard, metricID }),\n state\n });\n };\n\n /**\n * Get BE enums for category which contains the order in which they should be mapped\n */\n const categoryOrder = enums[\"MetricCategory\"];\n\n const sortedGroupedMetrics = _.keys(groupedMetrics).sort((a, b) => {\n const indexA = categoryOrder?.indexOf(a);\n const indexB = categoryOrder?.indexOf(b);\n return indexA - indexB;\n });\n\n return (\n {t(pageDescription)}}\n >\n {groupName && (\n \n )}\n \n \n \n {t(metricSelector.view, { variant: \"chart\" })}\n \n }\n key=\"chart\"\n />\n \n \n {t(metricSelector.view, { variant: \"list\" })}\n \n }\n key=\"list\"\n />\n \n \n {t(title)}\n \n \n \n \n \n \n currentMetric && handleClick(currentMetric)}\n icon={}\n >\n {t(cta)}\n \n \n \n \n {\n Enterprise.history.push({\n state: {\n openPanels: _.isString(openPanels) ? openPanels : _.join(openPanels, \",\")\n }\n });\n }}\n className={styles.Collapse}\n expandIconPosition=\"right\"\n >\n {_.map(sortedGroupedMetrics, (category, idx) => {\n const perCategory = _.get(groupedMetrics, category);\n\n /**\n * Set the structure of the data with id and name, use family name if belongs to a metric family\n */\n const dataSource = _.orderBy(\n _.map(_.keys(perCategory), (key) => {\n const lookup = [key, 0];\n const familyName = _.get(perCategory, [...lookup, \"family\"]);\n\n return {\n id: _.defaultTo(familyName, _.get(perCategory, [...lookup, \"id\"])),\n name: _.defaultTo(familyName, _.get(perCategory, [...lookup, \"name\"]))\n };\n }),\n ({ name }) => t(displayName(name))\n );\n\n /**\n * Organise metric/source/variant combination\n */\n const chartDataSource = _.orderBy(\n _.map(perCategory, (dataSource) => {\n /**\n * It metric family, the default source will always be the one with least family index value e.g. 0\n */\n const defaultSource =\n dataSource.length > 1 ? _.minBy(dataSource, \"familyIndex\") : _.first(dataSource);\n\n const metric = defaultSource?.family;\n const source = defaultSource?.id;\n const variants = defaultSource?.variants;\n\n const farmVariant = _.find(variants, (variant) =>\n _.isEqual(_.get(dataDictionary, [variant, \"dataProperties\", \"type\"]), \"farm\")\n );\n\n const variant = !farm ? farmVariant : _.first(variants);\n\n /**\n * If family is found that becomes metric, otherwise the source is the metric\n */\n if (metric) {\n return {\n metric,\n source,\n variant\n };\n } else {\n return { metric: source, variant };\n }\n }),\n ({ metric, source, variant }) => {\n if (metric && variant) {\n const chartInfo = extractChartInfo({ metric, source, variant });\n\n return t(displayName(chartInfo.nameToDisplay));\n }\n }\n );\n\n return (\n \n \n {t(layoutTitle(category), { makeDefaultValue: true })}\n \n }\n key={category}\n >\n {_.isEqual(\"list\", view) ? (\n (\n handleClick(item.id, item.name)} />\n )}\n />\n ) : (\n \n {_.map(chartDataSource, ({ metric, source, variant }) => (\n \n {metric && variant && }\n \n ))}\n \n )}\n \n );\n })}\n \n \n );\n};\n","import moment from \"moment\";\nimport * as _ from \"lodash\";\n\nimport { ISODuration } from \"@ctra/api\";\nimport { Nullable } from \"@ctra/utils\";\n\n/**\n * Takes iso duration and returns the closest supported interval in days\n * Supported time windows 30, 60, 90, 180, 270, 365, 1825\n * @param interval\n */\nexport const closestSupportedInterval = (interval: Nullable): number => {\n const days = _.isNull(interval) ? 0 : moment.duration(interval).asDays();\n\n if (days <= 30) {\n return 30;\n } else if (days >= 30 && days <= 61) {\n return 60;\n } else if (days > 61 && days <= 91) {\n return 90;\n } else if (days > 91 && days <= 183) {\n return 180;\n } else if (days > 183 && days <= 274) {\n return 270;\n } else if (days > 274 && days <= 365) {\n return 365;\n } else if (days >= 365) {\n return 1825;\n } else {\n return 30;\n }\n};\n","import { Analytics } from \"@ctra/components\";\n\nconst { CorrelationType } = Analytics;\n\nexport const correlationDelta = (value: number): Analytics.CorrelationType => {\n if (value >= -0.05 && value <= 0.05) {\n return CorrelationType.zero;\n } else if (value > 0.05) {\n return CorrelationType.positive;\n } else return CorrelationType.negative;\n};\n\n/**\n * strength of correlation\n */\nexport const correlationStrength = (absoluteValue: number): number => {\n if (absoluteValue >= 0.8 && absoluteValue <= 1) {\n return 100;\n } else if (absoluteValue >= 0.5 && absoluteValue < 0.8) {\n return 60;\n } else {\n return 20;\n }\n};\n","import { useDispatch, useSelector } from \"react-redux\";\nimport { FC, useEffect, useState } from \"react\";\nimport * as _ from \"lodash\";\nimport Markdown from \"react-markdown\";\n\nimport {\n Charts,\n Correlations,\n DataDescriptorEntity,\n Enterprise,\n EnterpriseAppState,\n CorrelationList as CorrelationsList,\n ISODuration\n} from \"@ctra/api\";\n\nimport {\n Analytics,\n Button,\n Row,\n Col,\n Tag,\n Typography,\n Alert,\n LinkOutlined,\n Space,\n QuestionCircleOutlined,\n Tooltip\n} from \"@ctra/components\";\n\nimport { useTranslation, Enterprise as Content, parseLocoTemplate } from \"@ctra/i18n\";\nimport { Nullable, Optional } from \"@ctra/utils\";\n\nimport { useFarm } from \"@farms\";\nimport { useDataDictionary } from \"@base\";\n\nimport { GACategories } from \"@analytics\";\nimport { closestSupportedInterval, correlationDelta, correlationStrength } from \"./utils\";\nimport styles from \"./CorrelationList.module.less\";\n\nconst { CorrelationMetric } = Analytics;\nconst { Text } = Typography;\n\ninterface CorrelationListProps {\n /**\n * Iso duration\n */\n isoDuration: Nullable;\n /**\n * List of data descriptors\n */\n variantList: Array;\n /**\n * chart to show correlations for\n */\n variantID: DataDescriptorEntity[\"id\"];\n /**\n * handle adding this to the chart list\n * @param {DataDescriptorEntity[\"id\"]} dataDescriptorID\n */\n onAdd: (dataDescriptorID: DataDescriptorEntity[\"id\"]) => void;\n}\n\nconst {\n gamePlan: {\n list: {\n headers: { kpi }\n }\n },\n analytics: {\n correlations: { headers }\n },\n analytics: {\n correlations: { show, add, trend, correlation, tooltip, alert, selectedChart }\n },\n layouts: {\n section: { markedBeta }\n },\n kpi: descriptor\n} = Content;\n\n/**\n * Correlation list header\n * @return {JSX.Element}\n * @constructor\n */\nconst TableHeader: FC = () => {\n const { t } = useTranslation();\n\n return (\n \n \n \n {t(kpi)}\n \n \n {t(headers.trend)}\n \n \n {t(headers.correlation)}\n \n \n \n );\n};\n\n/**\n * Correlation list for the selected variant/data descriptor id\n * @param {dataDescriptors} variants\n * @param {string} variantID\n * @param {(dataDescriptorID: DataDescriptorEntity[\"id\"]) => void} onAdd\n * @return {JSX.Element}\n * @constructor\n */\nexport const CorrelationList: FC = ({ isoDuration, variantList, variantID, onAdd }) => {\n const { farm } = useFarm();\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const { dataDescriptors } = useDataDictionary();\n const [activeDescriptor, setActiveDescriptor] = useState();\n const [correlationsView, toggleCorrelationsView] = useState(false);\n const [description, note] = _.defaultTo(parseLocoTemplate(t(tooltip)), []);\n\n /**\n * Correlations on different farms\n */\n const correlations = useSelector((state) =>\n Enterprise.entities.getCorrelations(state)\n );\n\n /**\n * Fetch correlations\n */\n useEffect(() => {\n if (farm) {\n if (!_.get(correlations, [farm.id, \"index\"])) {\n dispatch(Charts.actions.fetchFarmCorrelations.start(farm.id));\n }\n\n if (variantList.length > 0) {\n const [excluded, current] =\n variantList.length === 1\n ? [void 0, _.first(variantList)]\n : [_.initial(variantList), _.last(variantList)];\n\n if (current) {\n dispatch(Charts.actions.fetchChartCorrelations.start(farm.id, current, excluded));\n }\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [variantID, farm]);\n\n /**\n * get combined descriptor id's if they are available\n * e.g for a descriptor called eating and ruminating time, the combined descriptors will have\n * an array of eating time descriptor id and ruminating time descriptor id\n */\n const combinedDescriptors = dataDescriptors[variantID]?.dataProperties?.combinedDescriptors;\n\n /**\n * If there are combined descriptors, the active descriptor should be from the list\n * otherwise use the chart descriptor id\n */\n useEffect(() => {\n setActiveDescriptor(_.isEmpty(combinedDescriptors) ? variantID : _.first(combinedDescriptors));\n }, [combinedDescriptors, variantID]);\n\n /**\n * Fetch the correlated charts\n */\n const supportedDescriptors = useSelector>>(\n (state) =>\n Enterprise.entities.getSupportedDescriptorsForInterval(state, {\n farmID: farm?.id,\n interval: closestSupportedInterval(isoDuration)\n })\n );\n\n /**\n * Check if the data descriptor has suggestions enabled\n */\n const suggestionsEnabled = _.includes(supportedDescriptors, activeDescriptor);\n\n /**\n * Fetch the correlated charts\n */\n const correlatedCharts = useSelector<\n EnterpriseAppState,\n Record>\n >((state) =>\n suggestionsEnabled\n ? _.reduce(\n [variantID, ..._.defaultTo(combinedDescriptors, [])],\n (result, id) => {\n const correlatedCharts = Enterprise.entities.getCorrelatedCharts(state, {\n dataDescriptorID: id,\n farmID: farm?.id,\n interval: closestSupportedInterval(isoDuration)\n });\n\n if (correlatedCharts) {\n result[id] = correlatedCharts;\n }\n\n return result;\n },\n {} as Record>\n )\n : {}\n );\n\n return _.isEmpty(correlatedCharts) ? null : (\n \n \n \n \n {t(alert)}\n {t(markedBeta)}\n \n \n toggleCorrelationsView(!correlationsView)}\n >\n {t(show, { visible: correlationsView })}\n \n \n {correlationsView && (\n \n \n {_.map(correlatedCharts, (charts, id) => (\n \n \n \n \n {/* kind of defeats the purpose TODO fix */}\n {t(description)}\n
          \n
          \n \n {t(note)}\n \n \n }\n >\n \n \n {t(selectedChart)}\n \n {t(descriptor.displayName(dataDescriptors[id].dataProperties.typeName), {\n case: null,\n variant: null,\n makeDefaultValue: true\n })}\n \n
          \n \n \n \n {_.map(\n _.take(_.toArray(correlatedCharts[id]), 3),\n ({ dataDescriptorID, correlationValue, pctChange }) => {\n const correlationType =\n CorrelationMetric.CorrelationType[correlationDelta(pctChange)];\n\n const typeName = _.get(dataDescriptors, [\n dataDescriptorID,\n \"dataProperties\",\n \"typeName\"\n ]);\n\n const title = t(descriptor.displayName(typeName), {\n makeDefaultValue: true,\n case: null,\n variant: null\n });\n\n const absoluteValue = Math.abs(correlationValue);\n const strength = correlationStrength(absoluteValue);\n\n return (\n onAdd(dataDescriptorID)}\n correlationType={correlationType}\n trend={t(trend, { correlationType })}\n correlation={t(correlation, { strength })}\n correlationPercent={strength}\n title={title}\n extra={\n \n }\n />\n );\n }\n )}\n \n
          \n ))}\n \n
          \n )}\n \n }\n />\n );\n};\n","import { FC, Key, useState, createRef } from \"react\";\nimport * as _ from \"lodash\";\nimport { useDeepCompareEffect } from \"use-deep-compare\";\n\nimport {\n Col,\n Row,\n Analytics,\n Charts,\n DndProvider,\n HTML5Backend,\n CtraLayout,\n Button,\n Modal,\n Space,\n DeleteOutlined\n} from \"@ctra/components\";\n\nimport { GAEvent, makeTrackEvent } from \"@ctra/analytics\";\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\nimport { Enterprise, SavedCardState, SavedCardsPayload, ISODuration } from \"@ctra/api\";\nimport { isMutableRef, resizeBase64Image } from \"@ctra/utils\";\n\nimport { CompiledRoutes } from \"@routes\";\nimport { useFarm } from \"@farms\";\nimport { useDataDictionary } from \"@base\";\nimport { GACategories, GAActions, formatFilters, useSavedCharts } from \"@analytics\";\nimport { Chart, ChartAPIContext, ChartFilterContext } from \"@chart\";\nimport { useCurrentUser } from \"@auth\";\n\nimport { commonModalProps } from \"../DashboardPage\";\nimport styles from \"./ChartList.module.less\";\n\nconst {\n V3: { ChartCard, Empty }\n} = Analytics;\n\nconst { ContentWrapper } = CtraLayout;\nconst { confirm } = Modal;\n\ninterface ChartListProps {\n charts: SavedCardsPayload;\n groupID: string;\n groupName: string;\n}\n\n/**\n * List of chart cards\n * @returns\n */\nexport const ChartList: FC = ({ charts, groupID, groupName }) => {\n const { t } = useTranslation();\n const { farm } = useFarm();\n const [order, setOrder] = useState([]);\n const trackEvent = makeTrackEvent(GACategories.sharing);\n\n const {\n meta: { isAdmin },\n api: { isFarmerOf }\n } = useCurrentUser();\n\n const {\n dataDescriptors,\n api: { extractSource, extractChartInfo },\n meta: { isLoading }\n } = useDataDictionary();\n\n const {\n api: { removeChart, updateChartOrder }\n } = useSavedCharts();\n\n const {\n analytics: {\n config: {\n metric: { displayName },\n variant: variantCopy,\n source: sourceCopy,\n pageTitle\n },\n v3: {\n config: { cta },\n empty,\n confirm: { removeChart: removeChartCopy }\n }\n },\n gamePlan: {\n actions: {\n delete: { confirm: confirmCopy }\n }\n }\n } = Content;\n\n /**\n * Route to configurator with the chart\n */\n const handleClick = (chartID: SavedCardState[\"id\"]) => {\n if (chartID) {\n Enterprise.history.push({\n state: { editChart: { chartID, dashboard: groupID } }\n });\n }\n };\n\n const moveNode = (dragKey: Key, hoverKey: Key) => {\n const newOrder = order.slice();\n\n charts.forEach((item) => {\n if (item.id && newOrder.indexOf(item.id) === -1) {\n newOrder.push(item.id);\n }\n });\n\n const dragIndex = newOrder.indexOf(dragKey);\n const hoverIndex = newOrder.indexOf(hoverKey);\n\n newOrder.splice(dragIndex, 1);\n newOrder.splice(hoverIndex, 0, dragKey);\n\n updateChartOrder(newOrder, groupID);\n setOrder(newOrder);\n };\n\n /**\n * Delete handler with pop confirm\n * @param chartID\n * @param groupID\n */\n const handleDelete = (chartID: string, groupID: string, metric: string) => {\n /**\n * Opens up a confirmation modal\n */\n confirm({\n ...commonModalProps,\n okText: t(confirmCopy.yes),\n cancelText: t(confirmCopy.no),\n title: (\n \n \n {t(removeChartCopy.title)}\n \n ),\n content: t(removeChartCopy.description),\n onOk() {\n GAEvent(GACategories.dashboards, \"Remove metric\", JSON.stringify({ metric, dashboard: groupName }));\n\n removeChart(chartID, groupID);\n }\n });\n };\n\n /**\n * Order the charts based on the provided order state\n */\n const orderedCharts = _.sortBy(charts, (chart) => {\n const orderIndex = _.indexOf(order, chart.id);\n return orderIndex !== -1 ? orderIndex : charts.indexOf(chart);\n });\n\n const [refs, setRefs] = useState>(\n _.reduce(orderedCharts, (acc, { id }) => ({ ...acc, [id]: createRef() }), {})\n );\n\n useDeepCompareEffect(() => {\n setRefs((prevState) => ({\n ..._.reduce(orderedCharts, (acc, { id }) => ({ ...acc, [id]: createRef() }), {}),\n ..._.omit(prevState, _.difference(_.keys(prevState), _.map(orderedCharts, \"id\")))\n }));\n }, [orderedCharts]);\n\n return (\n \n {!isLoading &&\n !_.isEmpty(dataDescriptors) &&\n _.map(orderedCharts, (savedCard) => {\n const {\n id,\n variantId: variantID,\n dataFilters,\n displayFilters,\n dateRange,\n chartType,\n bucketSize\n } = savedCard;\n\n const chart = extractSource(variantID);\n const chartInfo = chart && extractChartInfo(chart);\n\n /**\n * dateRange can either b iso duration in an array e.g [\"P1M\"] or a custom range e.g. [\"2023-05-01\", \"2023-06-01\"]\n * Supply props to api context based on length of array\n */\n const isoDuration = dateRange && _.size(dateRange) === 1 ? _.first(dateRange) : null;\n const [startDate, endDate] = dateRange && _.size(dateRange) === 2 ? dateRange : [];\n\n const durationProps = isoDuration\n ? { isoDuration: isoDuration as ISODuration }\n : startDate && endDate && { timePeriod: { startDate, endDate }, isoDuration: null };\n\n /**\n * Filters\n */\n const filters = dataFilters && formatFilters(dataFilters);\n const seriesFilter = _.find(displayFilters, { type: \"series\" });\n const seriesValues = _.get(seriesFilter, \"values\", []);\n\n const metricDisplayName = chartInfo?.nameToDisplay\n ? t(displayName(chartInfo?.nameToDisplay), { makeDefaultValue: true })\n : \"\";\n\n return (\n chart && (\n \n \n \n {(filterContext) => (\n \n \n {({\n chart,\n dataDescriptor: {\n dataProperties: { typeName }\n },\n meta: { requestURL }\n }) => (\n \n {\n Enterprise.history.push(\n CompiledRoutes.app.analytics.dashboard.browse.chart({\n dashboard: groupID,\n chartID: id\n })\n );\n }}\n handleReport={\n isMutableRef(refs[id])\n ? async (e) => {\n e.preventDefault();\n e.stopPropagation();\n\n const base64 = await resizeBase64Image(\n refs[id].current.toDataURL(\"image/png\"),\n 1280\n );\n\n Enterprise.history.push({\n state: {\n feedback: {\n sourceID: chart.id,\n sourceType: \"Chart\",\n context: {\n timePeriod: filterContext.timePeriod,\n typeName\n },\n base64Content: base64\n }\n }\n });\n }\n : void 0\n }\n index={id}\n className={styles.Card}\n metric={metricDisplayName}\n variant={chartInfo?.variantType ? t(variantCopy(chartInfo?.variantType)) : \"\"}\n source={\n chartInfo?.sourceNames &&\n _.join(\n _.map(chartInfo?.sourceNames, (sourceName) =>\n t(sourceCopy(sourceName))\n ),\n \", \"\n )\n }\n labels={{\n remove: t(cta.save, { isSaved: true }),\n edit: t(pageTitle),\n report: t(cta.report),\n share: t(cta.share)\n }}\n handleDrag={moveNode}\n data-gtm-info={JSON.stringify({\n metric: metricDisplayName,\n dashboard: groupName\n })}\n handleConfigure={(event) => {\n event.stopPropagation();\n if (_.toLower(_.get(event, [\"target\", \"tagName\"])) !== \"canvas\") {\n handleClick(id);\n }\n }}\n handleDelete={(e) => {\n e.stopPropagation();\n handleDelete(id, groupID, metricDisplayName);\n }}\n handleShare={\n (isAdmin || isFarmerOf(farm?.id)) && isMutableRef(refs[id])\n ? async (e) => {\n trackEvent(GAActions.shareChart, { label: metricDisplayName });\n\n e.preventDefault();\n e.stopPropagation();\n\n const base64 = await resizeBase64Image(\n refs[id].current.toDataURL(\"image/png\"),\n 1280\n );\n\n Enterprise.history.push({\n state: {\n shareChart: {\n instance: +new Date(),\n chartID: chart.id,\n farmID: farm?.id,\n requestURL,\n base64Content: base64,\n filterContext: _.pick(filterContext, [\n \"filters\",\n \"timePeriod\",\n \"metadata\",\n \"isoDuration\",\n \"series\"\n ]),\n dataDescriptorID: variantID\n }\n }\n });\n }\n : void 0\n }\n >\n \n {\n if (refs[id]) {\n refs[id].current = plot;\n } else {\n console.warn(\"Ref not found\");\n }\n }\n }}\n />\n \n \n \n )}\n \n \n )}\n \n \n \n )\n );\n })}\n \n \n \n Enterprise.history.push({\n pathname: CompiledRoutes.app.analytics.dashboard.addChart.index({ dashboard: groupID })\n })\n }\n >\n {t(empty.charts.cta)}\n \n }\n />\n \n \n \n );\n};\n","import { useDispatch, useSelector } from \"react-redux\";\nimport { FC, useEffect, useState } from \"react\";\nimport * as _ from \"lodash\";\n\nimport {\n Button,\n Typography,\n Space,\n AntDesignInput,\n Icon,\n Barn,\n AntDesignSelect,\n Modal,\n CopyOutlined,\n Alert,\n List,\n InfoCircleFilled,\n message\n} from \"@ctra/components\";\n\nimport { Optional } from \"@ctra/utils\";\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\nimport {\n Enterprise,\n EnterpriseAppState,\n FarmEntity,\n MetricCollection,\n MetricEntity,\n SavedCardList,\n SavedCards\n} from \"@ctra/api\";\n\nimport { useFarm, useFarmList } from \"@farms\";\nimport { GACategories, useSavedCharts } from \"@analytics\";\nimport { useDataDictionary } from \"@base\";\nimport { commonModalProps } from \"../DashboardPage\";\n\nimport styles from \"./CopyDashboardModal.module.less\";\n\nconst { Group } = AntDesignInput;\nconst { Text } = Typography;\n\ninterface CopyDashboardModalProps {\n visible: boolean;\n group: Optional;\n onCancel: () => void;\n}\n/**\n * Modal to copy tab from one farm to another\n * @param param0\n * @returns\n */\nexport const CopyDashboardModal: FC = ({ visible, group, onCancel }) => {\n const dispatch = useDispatch();\n const { t } = useTranslation();\n\n const { farm } = useFarm();\n const { farmList } = useFarmList();\n const { savedCharts } = useSavedCharts();\n\n const groupName = _.find(savedCharts, { id: group })?.groupName;\n\n const groupCopy = `${groupName}-copy`;\n const [newTabLabel, setNewTabLabel] = useState(groupCopy);\n const [copyFarm, setCopyFarm] = useState>(void 0);\n const [unsupportedVariants, setUnsupportedVariants] = useState>();\n\n const {\n api: { extractSource, extractChartInfo }\n } = useDataDictionary();\n\n const {\n analytics: {\n v3: {\n confirm: {\n newTab,\n copyTab,\n error: { duplicateTab }\n }\n },\n config: {\n metric: { displayName }\n }\n },\n navigation,\n timeline: {\n createEvent: { submit }\n }\n } = Content;\n\n /**\n * Attempt to get metrics for the copy farm\n */\n const metrics = useSelector((state) =>\n Enterprise.entities.getMetricList(state, { farmID: copyFarm })\n );\n\n /**\n * Attempt to get the saved charts for copy farm\n */\n const copyFarmTabs = useSelector((state) =>\n Enterprise.entities.getSavedCards(state, { pageKey: copyFarm?.toString() })\n );\n\n const currentCharts = _.find(savedCharts, { id: group })?.cards;\n\n /**\n * Set the non supported variants upon select\n */\n useEffect(() => {\n const supportedVariants = _.flatMap(metrics, ({ variants }) => _.map(variants));\n const currentVariants = _.map(currentCharts, \"variantId\");\n\n setNewTabLabel(groupCopy);\n setUnsupportedVariants(_.difference(currentVariants, supportedVariants));\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [copyFarm, group, currentCharts]);\n\n /**\n * Alert to be shown if non supported metrics\n */\n const nonSupportedAlert = unsupportedVariants?.length ? (\n \n \n \n {t(copyTab.alert)}\n \n {\n const source = extractSource(variant);\n\n const chartInfo = source && extractChartInfo(source);\n\n return (\n \n {source && chartInfo && (\n - {t(displayName(chartInfo.nameToDisplay), { makeDefaultValue: true })}\n )}\n \n );\n }}\n />\n \n }\n />\n ) : null;\n\n /**\n * Handle copying of tab to other farm\n */\n const handleSave = () => {\n const updatedCharts =\n currentCharts &&\n _.filter(currentCharts, ({ variantId: variantID }) => !_.includes(unsupportedVariants, variantID));\n\n const updatedTabs = [...copyFarmTabs, { groupName: newTabLabel, cards: updatedCharts }];\n\n /**\n * Check if this tab already exists\n */\n if (_.includes(_.map(copyFarmTabs, \"groupName\"), newTabLabel)) {\n message.error(t(duplicateTab));\n } else {\n dispatch(SavedCards.actions.updateTabs.start(copyFarm, updatedTabs));\n }\n\n onCancel();\n };\n\n /**\n * Keep farm selection disabled if\n * on all farms view, empty farm list, or if there is only one farm\n */\n const selectDisabled = _.isEmpty(farmList) || !farm || _.keys(farmList).length === 1;\n\n return (\n \n \n {t(copyTab.title)}\n \n }\n >\n \n {t(copyTab.dashboard)}\n {\n setNewTabLabel(value);\n }}\n />\n {t(copyTab.farm)}\n \n \n }\n className={styles.Link}\n onClick={() => setCopyModalVisible(true)}\n >\n {t(copyTab.title)}\n \n \n ) : (\n {t(tooltips.dashboard)}}>\n handleRename(id) },\n {\n key: \"2\",\n label: t(removeTab.title),\n onClick: () => handleEdit && handleEdit(\"empty\", \"remove\")\n },\n { key: \"3\", label: t(copyTab.title), onClick: () => setCopyModalVisible(true) }\n ]\n }}\n >\n \n \n {t(dashboard)}\n \n \n \n \n )}\n {t(tooltips.addChart)}}>\n }\n onClick={() => handleAdd(id)}\n >\n {t(addCta)}\n \n \n \n {_.isEmpty(cards) ? (\n \n handleAdd(id)}\n >\n {t(empty.charts.cta)}\n \n {t(empty.charts.description)}\n \n }\n />\n ) : (\n \n )}\n \n )\n }))\n : [],\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [savedCharts, farm, dataDescriptors, md]\n );\n\n const { onChange, onEdit, activeKey, items } = useTabs(initialItems);\n\n /**\n * Add or remove a dashboard\n * @param key\n * @param action\n */\n const handleEdit: TabsProps[\"onEdit\"] = (key, action) => {\n if (action === \"remove\") {\n /**\n * Opens up a confirmation modal\n */\n confirm({\n ...commonModalProps,\n okText: t(confirmCopy.yes),\n cancelText: t(confirmCopy.no),\n title: (\n \n \n {t(removeTab.title)}\n \n ),\n content: t(removeTab.description),\n onOk() {\n GAEvent(GACategories.dashboards, \"Remove dashboard\", JSON.stringify({ removed: key }));\n\n onEdit(key, action);\n }\n });\n }\n\n if (action === \"add\") {\n let newTabLabel: string;\n confirm({\n ...commonModalProps,\n okText: t(cta),\n title: (\n \n \n {t(newTab.title)}\n \n ),\n content: (\n \n {t(newTab.description)}\n {\n newTabLabel = value;\n }}\n />\n \n ),\n onOk() {\n if (_.includes(_.map(savedCharts, \"groupName\"), newTabLabel)) {\n message.error(t(duplicateTab));\n } else {\n GAEvent(GACategories.dashboards, \"Add dashboard\", JSON.stringify({ added: newTabLabel }));\n\n onEdit(key, action, newTabLabel);\n }\n }\n });\n }\n };\n\n const addBtn = (\n \n }\n data-gtm-category={GACategories.dashboards}\n data-gtm-action=\"Start Analysis\"\n onClick={() =>\n Enterprise.history.push({\n /**\n * not a good practise, but gets the job done\n */\n pathname: CompiledRoutes.app.analytics.dashboard.browse.chart({\n dashboard: activeKey,\n chartID: compareChartsKey\n })\n })\n }\n >\n {t(analysis)}\n \n \n );\n\n return (\n <>\n \n {t(pageDescription)}\n \n \n {_.isEmpty(items) ? (\n <>\n \n }\n data-gtm-category={GACategories.dashboards}\n data-gtm-action=\"Add dashboard\"\n type=\"secondary\"\n size=\"large\"\n onClick={() => handleEdit(\"empty\", \"add\")}\n >\n {t(addDashboard)}\n \n {addBtn}\n \n \n \n \\ {t(empty.dashboards.description)}\n \n }\n />\n \n ) : (\n \n )}\n \n setCopyModalVisible(false)}\n group={activeKey}\n />\n \n );\n};\n","import moment from \"moment\";\nimport { FC, useEffect, useRef, useState } from \"react\";\nimport { useLocation, useParams } from \"react-router-dom\";\nimport { Redirect } from \"react-router-dom\";\nimport { PlotEvent } from \"@ant-design/charts\";\nimport * as _ from \"lodash\";\nimport { useDeepCompareEffect } from \"use-deep-compare\";\n\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\nimport { clampChartUnitList, isMutableRef, Nullable, Optional, resizeBase64Image } from \"@ctra/utils\";\nimport { GAEvent } from \"@ctra/analytics\";\n\nimport {\n Charts,\n ExtendedEventEntity,\n MetricEntity,\n Breadcrumbs,\n Enterprise,\n EventSourceType,\n ChartEntity,\n DataDescriptorEntity,\n ISODuration,\n DataDictionary,\n ChartTimePeriod,\n SavedCard\n} from \"@ctra/api\";\n\nimport {\n Charts as ChartUI,\n CtraLayout,\n SwitchWithLabel,\n Row,\n Col,\n Typography,\n Button,\n PlusOutlined,\n CloseOutlined,\n ArrowLeftOutlined,\n ShareAltOutlined\n} from \"@ctra/components\";\n\nimport { useFarm } from \"@farms\";\nimport { CompiledRoutes, Routes } from \"@routes\";\nimport { EventListContext } from \"@events\";\nimport { useDataDictionary } from \"@base\";\nimport {\n useSavedCharts,\n alignLegends,\n GACategories,\n GAActions,\n formatFilters,\n ChartSelector\n} from \"@analytics\";\n\nimport {\n Chart,\n ChartAPIContext,\n ChartFilterContext,\n EventList,\n ISODurationFilter,\n useTimePeriod\n} from \"@chart\";\n\nimport { MetricPicker } from \"../MetricPicker\";\nimport { CorrelationList } from \"../CorrelationList\";\nimport { compareChartsKey } from \"../DashboardPage\";\nimport styles from \"./BrowsePage.module.less\";\nimport { useCurrentUser } from \"@auth\";\n\nconst { WidgetWrapper, ContentWrapper } = CtraLayout;\nconst { ChartVariant } = ChartUI;\nconst { Paragraph } = Typography;\n\nconst {\n components: { Breadcrumb }\n} = Breadcrumbs;\n\nconst {\n analytics: {\n correlations: { pageDescription, events },\n v3: {\n config: { cta }\n },\n config: {\n metric: { displayName }\n }\n },\n layouts: {\n dashboard: { compareCharts }\n }\n} = Content;\n\n/**\n * Get the initial ISO duration\n * @param {SavedCard} card\n * @param {DataDescriptorEntity} variant\n * @returns {any}\n */\nconst resolveIsoDuration = (card?: SavedCard, variant?: DataDescriptorEntity): Nullable => {\n if (card?.dateRange) {\n if (_.size(card.dateRange) === 1) {\n return _.first(card.dateRange) as ISODuration;\n } else {\n return null;\n }\n } else if (variant) {\n return _.get(variant, [\"valueProperties\", \"defaultInterval\"], DataDictionary.DefaultTimePeriod);\n }\n\n return DataDictionary.DefaultTimePeriod;\n};\n\n/**\n * Get the initial time unit\n * @param {SavedCard} card\n * @param {DataDescriptorEntity} variant\n * @returns {ISODuration}\n */\nconst resolveBucketSize = (card?: SavedCard, variant?: DataDescriptorEntity): ISODuration => {\n let baseBucketSize;\n\n const isoDurationList = clampChartUnitList(\n _.defaultTo(resolveIsoDuration(card, variant), DataDictionary.DefaultTimePeriod)\n );\n\n if (card) {\n baseBucketSize = _.get(card, [\"bucketSize\"], DataDictionary.DefaultDataInterval);\n } else if (variant) {\n const defaultBucketSize = _.get(variant, [\"valueProperties\", \"defaultBucketSize\"]);\n\n baseBucketSize = _.get(variant, [\"valueProperties\", \"baseTimeGranularity\"], defaultBucketSize);\n } else {\n baseBucketSize = DataDictionary.DefaultDataInterval;\n }\n\n return _.includes(isoDurationList, baseBucketSize)\n ? baseBucketSize\n : _.defaultTo(_.first(isoDurationList), DataDictionary.DefaultDataInterval);\n};\n\n/**\n * Chart configurator page\n * @return {JSX.Element}\n * @constructor\n */\nexport const BrowsePage: FC = () => {\n const { t } = useTranslation();\n const { dashboard: groupID, chartID } = useParams<{ dashboard: string; chartID: string }>();\n const { farm: farmContext } = useFarm();\n\n /**\n * Set up a ref for graph image conversion\n * @type {React.MutableRefObject}\n */\n const ref = useRef();\n\n /**\n * Make a ref to store sharing info with the button on the page\n * @type {React.MutableRefObject<{chart: ChartEntity, requestURL: string, filterContext: Record, dataDescriptorID: DataDescriptorEntity[\"id\"]} | undefined>}\n */\n const shareInfo = useRef<{\n chartID: ChartEntity[\"id\"];\n requestURL: string;\n filterContext: Record;\n dataDescriptorID: DataDescriptorEntity[\"id\"];\n metricName: string;\n // @ts-expect-error\n }>({});\n\n const {\n meta: { isAdmin },\n api: { isFarmerOf }\n } = useCurrentUser();\n\n const { state } = useLocation();\n\n const {\n dataDescriptors,\n metrics,\n meta: { isLoading },\n groups: { projectionMetrics },\n api: { extractSource, handleMetricChanges, extractChartInfo }\n } = useDataDictionary();\n\n const { savedCharts: allCharts } = useSavedCharts();\n\n /**\n * Tell whether to show the events\n */\n const [showEvents, setShowEvents] = useState>(\n _.mapValues({ ..._.invert(_.toPlainObject(EventSourceType)) }, () => false) as Record<\n EventSourceType,\n boolean\n >\n );\n\n const [eventList, setEventList] = useState([]);\n const [newMetric, setNewMetric] = useState();\n\n const group = _.find(allCharts, { id: groupID });\n const groupName = _.get(group, \"groupName\");\n const savedCards = _.get(group, \"cards\", []);\n const currentCard = _.isEqual(compareChartsKey, chartID) ? void 0 : _.find(savedCards, { id: chartID });\n\n const initialCardComposition = currentCard && extractSource(currentCard.variantId);\n const chartInfo = initialCardComposition && extractChartInfo({ ...initialCardComposition });\n const initialMetricID = initialCardComposition?.metric;\n\n /**\n * State to keep the list of metrics\n */\n const [chartList, setChartList] = useState(\n initialMetricID\n ? [handleMetricChanges(initialMetricID, initialCardComposition?.source, initialCardComposition.variant)]\n : []\n );\n\n /**\n * Tell whether the event panel should be hidden\n * @type {boolean}\n */\n const eventPanelHidden = _.isEmpty(eventList) || _.isEmpty(chartList);\n\n /**\n * Tell whether the chart is a projection metric\n * @type {boolean}\n */\n const isProjectionMetric = _.includes(projectionMetrics, _.first(chartList)?.metric);\n\n /**\n * Get the data descriptor\n */\n const variant = _.get(_.first(chartList), \"variant\");\n\n /**\n * dateRange can either b iso duration in an array e.g [\"P1M\"] or a custom range e.g. [\"2023-05-01\", \"2023-06-01\"]\n * Supply props to api context based on length of array\n */\n const initialIsoDuration = resolveIsoDuration(currentCard, variant ? dataDescriptors[variant] : void 0);\n\n /**\n * Set the initial time unit based on the current card or the variant\n */\n const initialBucketSize = resolveBucketSize(currentCard, variant ? dataDescriptors[variant] : void 0);\n\n const [startDate, endDate] =\n currentCard?.dateRange && _.size(currentCard.dateRange) === 2 ? currentCard.dateRange : [];\n\n const [isoDuration, setISOduration] = useState>(initialIsoDuration);\n const [initialTimePeriod] = useTimePeriod({ isoDuration }, _.defaultTo(0, 86400));\n\n const [timePeriod, setTimePeriod] = useState(\n startDate && endDate ? { startDate, endDate } : initialTimePeriod\n );\n\n const [bucketSize, setBucketSize] = useState(initialBucketSize);\n const seriesFilter = _.find(currentCard?.displayFilters, { type: \"series\" });\n const seriesValues = _.get(seriesFilter, \"values\", []);\n const dataFilters = formatFilters(currentCard?.dataFilters || []);\n\n /**\n * Tell if the data descriptor supports multi data interval\n */\n const isMultiDataIntervalSupported = variant\n ? _.get(dataDescriptors, [variant, \"flags\", \"isMultiDataIntervalSupported\"])\n : false;\n\n /**\n * Handle adding new metric to the list\n */\n const addNewMetric = () => {\n if (newMetric) {\n setChartList((list) => [...list, handleMetricChanges(newMetric)]);\n setNewMetric(void 0);\n }\n };\n\n /**\n * Handle adding new metric from suggested correlations to the list\n * @param {MetricEntity[\"id\"]} variantID\n */\n const addCorrelation = (variantID: MetricEntity[\"id\"]) => {\n const source = extractSource(variantID);\n source && setChartList((list) => [...list, source]);\n };\n\n /**\n * If projection metric, add a month to the end date\n */\n useEffect(() => {\n if (isProjectionMetric) {\n initialTimePeriod.endDate = moment(initialTimePeriod.endDate).add(1, \"months\").toISOString();\n setISOduration(null);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isProjectionMetric]);\n\n /**\n * Reset the event list when the chart list changes\n */\n useDeepCompareEffect(() => {\n setEventList([]);\n }, [chartList]);\n\n /**\n * Reset the event list when the show events change\n */\n useDeepCompareEffect(() => {\n if (eventList.length > 0 && !_.some(showEvents)) {\n setEventList([]);\n }\n }, [showEvents]);\n\n /**\n * Update the time period when the iso duration changes\n */\n useDeepCompareEffect(() => {\n const bucketSizeList = clampChartUnitList(isoDuration || timePeriod);\n\n if (!_.includes(bucketSizeList, bucketSize)) {\n setBucketSize(_.first(bucketSizeList) as ISODuration);\n }\n }, [timePeriod, isoDuration, bucketSize]);\n\n /**\n * Get the translated metric name\n */\n const metricName = chartInfo\n ? t(displayName(chartInfo.nameToDisplay), {\n makeDefaultValue: true\n })\n : t(compareCharts.title);\n\n /**\n * Make a correlation component\n * @type {JSX.Element}\n */\n const correlationsComponent = (\n \n );\n\n return (\n \n {groupName && currentCard && (\n \n )}\n \n \n \n {\n Enterprise.history.push({\n pathname: CompiledRoutes.app.analytics.dashboard.index({\n dashboard: groupID\n }),\n state\n });\n }}\n icon={}\n >\n {t(cta.back)}\n \n \n {isAdmin || isFarmerOf(farmContext?.id) ? (\n \n }\n onClick={\n isMutableRef(ref)\n ? async (e) => {\n e.preventDefault();\n e.stopPropagation();\n\n const base64 = await resizeBase64Image(ref.current.toDataURL(\"image/png\"), 1280);\n\n Enterprise.history.push({\n state: {\n shareChart: {\n ...shareInfo.current,\n instance: +new Date(),\n farmID: farmContext?.id,\n base64Content: base64,\n filterContext: _.pick(shareInfo.current.filterContext, [\n \"filters\",\n \"timePeriod\",\n \"metadata\",\n \"isoDuration\",\n \"series\"\n ])\n }\n }\n });\n }\n : void 0\n }\n >\n {t(cta.share)}\n \n \n ) : null}\n \n {t(pageDescription)}}\n >\n \n \n \n \n {farmContext && (\n \n {({ events: eventList }) =>\n _.size(eventList) > 0 && (\n <>\n \n \n setShowEvents((current) => ({\n ...current,\n [EventSourceType.aiModel]: checked\n }))\n }\n disabled={_.isEmpty(chartList)}\n size=\"small\"\n label={t(events, {\n variant: \"ai\"\n })}\n />\n \n \n \n setShowEvents(({ AIModel, ...rest }) => ({\n AIModel,\n ..._.mapValues(rest, () => checked)\n }))\n }\n disabled={_.isEmpty(chartList)}\n size=\"small\"\n label={t(events, { variant: \"Events\" })}\n />\n \n \n )\n }\n \n )}\n \n \n \n \n {_.map(chartList, ({ metric, source, variant }, idx, collection) => {\n /**\n * Value change handler for dropdowns associated with metric/source/variant changes\n * @param {number} idx\n * @param {string} _metric\n * @param {string} source\n * @param {string} variant\n */\n const handleChange = (idx: number, _metric: string, source?: string, variant?: string) => {\n setChartList((list) =>\n _.map(list, (chart, i) =>\n _.isEqual(chart.metric, metric) && i === idx\n ? handleMetricChanges(_metric, source, variant)\n : chart\n )\n );\n };\n\n return dataDescriptors[variant] ? (\n \n \n {(filterContext) =>\n variant && (\n \n \n {({ chart, meta: { requestURL } }) => {\n /**\n * Metric name for GA\n */\n const nameToDisplay = extractChartInfo({\n metric,\n source,\n variant\n }).nameToDisplay;\n\n const metricName = t(displayName(nameToDisplay), {\n makeDefaultValue: true\n });\n\n /**\n * Update the share info ref\n * @type {{requestURL: string, chart: ChartEntity, filterContext: ContextType, dataDescriptorID: string}}\n */\n shareInfo.current = {\n chartID: chart.id,\n requestURL,\n filterContext,\n dataDescriptorID: variant,\n metricName\n };\n\n return (\n <>\n \n \n \n \n {metric !== initialMetricID && (\n \n \n setChartList((currentChartList) =>\n _.filter(\n currentChartList,\n (item) => !_.isEqual(item.metric, metric)\n )\n )\n }\n />\n \n )}\n \n \n \n {\n ref.current = plot;\n\n plot.on(\n \"afterrender\",\n _.throttle(() => {\n if (collection.length > 1) {\n alignLegends();\n }\n }, 100)\n );\n\n plot.on(\"element:click\", (event: PlotEvent) => {\n const shape = _.get(event, [\"data\", \"shape\"]);\n const eventList = _.get(event, [\"data\", \"data\", \"events\"]);\n\n GAEvent(\n GACategories.configurator,\n \"Open event\",\n JSON.stringify({ eventList })\n );\n\n if (shape === \"farm-event-point\") {\n setEventList(() => eventList);\n }\n });\n },\n ...(chartList.length === 1 ? { height: 450 } : {})\n }}\n />\n \n \n \n );\n }}\n \n \n )\n }\n \n \n ) : (\n \n );\n })}\n {correlationsComponent}\n \n \n \n \n \n }\n >\n {t(cta.add)}\n \n \n \n \n \n {eventPanelHidden ? null : (\n \n event.source.type === EventSourceType.aiModel)\n ? EventList.variant.insights\n : EventList.variant.events\n }\n data={eventList}\n handleClose={() => setEventList([])}\n />\n \n )}\n \n \n \n );\n};\n","import { useSelector } from \"react-redux\";\nimport { FC, ComponentProps } from \"react\";\nimport * as _ from \"lodash\";\n\nimport {\n ChartFilterType,\n DIMGroupList,\n Enterprise,\n EnterpriseAppState,\n HerdGroupEntity,\n HerdGroupList,\n PenEntity,\n PensList,\n DIMGroupEntity\n} from \"@ctra/api\";\n\nimport { Analytics, FilterOutlined, FilterFilled, CheckboxMenu } from \"@ctra/components\";\nimport { useTranslation, Enterprise as Content } from \"@ctra/i18n\";\n\nimport { DIMGroupFilter, HerdGroupFilter, PenFilter, useChartAPI, useChartFilters } from \"@chart\";\nimport { GACategories } from \"@analytics\";\n\nconst {\n V3: { MultiDropdown }\n} = Analytics;\n\nconst {\n chart: { series: seriesAsset },\n analytics: {\n config: {\n metric: { filter }\n }\n }\n} = Content;\n\n/**\n * Filter controller for variant\n * @param {string | undefined} type\n * @returns {JSX.Element | null}\n * @constructor\n */\nexport const Filter: FC<{ type?: string }> = ({ type }) => {\n const { t } = useTranslation();\n const { series, filters, api, metadata } = useChartFilters();\n\n const {\n chart: {\n flags: { isSeriesTranslatable }\n }\n } = useChartAPI();\n\n const { herdGroupID, dimGroupKey, penName } = filters;\n const { setFilter, setSeries } = api;\n const { showFilters, supportedfarmIDs } = metadata;\n\n /**\n * Handle herd group changes\n * @param herdGroupIDList\n */\n const onHerdGroupChange: ComponentProps[\"onHerdGroupChange\"] = (herdGroupIDList) =>\n setFilter(ChartFilterType.herdGroup, herdGroupIDList);\n\n /**\n * Handle pen changes\n * @param {Array} penNameList\n */\n const onPenChange: ComponentProps[\"onPenChange\"] = (\n penNameList: Array\n ) => setFilter(ChartFilterType.penName, penNameList);\n\n /**\n * Handle DIM group changes\n * @param {Array} dimGroupIDList\n */\n const onDIMGroupChange: ComponentProps[\"onDIMGroupChange\"] = (\n dimGroupIDList: Array\n ) => setFilter(ChartFilterType.dimGroup, dimGroupIDList);\n\n const dimGroups = useSelector((state) =>\n Enterprise.entities.getDIMGroups(state, { farmID: supportedfarmIDs })\n );\n\n /**\n * Fetch the herd groups which are available for the given farms\n */\n const herdGroups = useSelector((state) =>\n Enterprise.entities.getHerdGroups(state, { farmID: supportedfarmIDs })\n );\n\n /**\n * Pick the pens which are available for the given farms\n * @type {PensList}\n */\n const pens = useSelector((state) =>\n Enterprise.entities.getPens(state, { farmID: supportedfarmIDs })\n );\n\n /**\n * Combine the two lists\n * @type {{[p: string]: PenEntity, [p: number]: HerdGroupEntity}}\n */\n const input: Record = {\n ...pens,\n ...herdGroups\n };\n\n return showFilters ? (\n <>\n {!!dimGroupKey && (\n \n )}\n {!!herdGroupID && (\n \n values={_.map(\n _.sortBy(herdGroups, (group) => {\n /**\n * some of the group names are numeric strings, we pad them so, they can be ordered lexicographically\n */\n return _.isInteger(_.parseInt(group.name)) ? _.padStart(group.name, 4) : group.name;\n }),\n \"id\"\n )}\n selection={herdGroupID}\n onChange={onHerdGroupChange}\n placeholder={\"no filters\"}\n />\n )}\n {!!penName && (\n \n values={_.uniq(\n _.map(\n _.sortBy(input, (entity) => parseFloat(entity.name)),\n \"name\"\n )\n )}\n selection={penName}\n onChange={onPenChange}\n placeholder={\"no filters\"}\n />\n )}\n {/** Show the checkbox even if there is only one option available */}\n 0 ? : }\n size=\"large\"\n data-gtm-category={GACategories.configurator}\n data-gtm-action=\"Change filters\"\n data-gtm-info={JSON.stringify({ values: series.active })}\n onChange={(value) =>\n setSeries({\n available: series.available,\n active: value as string[]\n })\n }\n items={_.map(series.available, (label, value) => ({\n label: isSeriesTranslatable ? t(seriesAsset(value)) : label,\n value\n }))}\n value={_.values(series.active)}\n >\n {t(filter, { type })}\n \n \n ) : null;\n};\n","import * as _ from \"lodash\";\nimport { FC } from \"react\";\nimport Markdown from \"react-markdown\";\n\nimport {\n ActionKey,\n Analytics,\n BrowserOutlined,\n Button,\n Col,\n InfoCircleOutlined,\n Row,\n Tooltip\n} from \"@ctra/components\";\nimport { GAEvent } from \"@ctra/analytics\";\nimport { Optional } from \"@ctra/utils\";\nimport { Enterprise, useTranslation } from \"@ctra/i18n\";\n\nimport { useFarm } from \"@farms\";\nimport { useChartAPI, useChartFilters } from \"@chart\";\nimport { useDataDictionary, useUserPreferences } from \"@base\";\nimport { GACategories } from \"@analytics\";\n\nimport { MetricPicker } from \"../MetricPicker\";\nimport { Filter } from \"../Filter\";\n\nimport styles from \"./ChartSelector.module.less\";\n\nconst {\n V3: { Dropdown }\n} = Analytics;\n\ninterface ChartSelectorProps {\n metric: string;\n source?: Optional;\n variant: string;\n handleChange: (metric: string, source?: string, variant?: string) => void;\n}\n\n/**\n * Chart selector consisting of metric/sourc/variant combination\n * @returns\n */\nexport const ChartSelector: FC = ({ metric, source, variant, handleChange }) => {\n const { t } = useTranslation();\n const { farm } = useFarm();\n\n const { series } = useChartFilters();\n\n const {\n preferences: {\n sandbox: { isEnabled: isSandboxEnabled }\n }\n } = useUserPreferences();\n\n const {\n dataDescriptors,\n metrics,\n groups: { families }\n } = useDataDictionary();\n\n const {\n chart: { title }\n } = useChartAPI();\n\n const {\n analytics: { config },\n chart: { description }\n } = Enterprise;\n\n const sources = _.get(families, metric);\n const variants = _.get(metrics, [source || metric, \"variants\"]);\n\n /**\n * Pick the variants which are supported by the current farm\n * @type {string[]}\n */\n const supportedVariants = _.filter(variants, (variant) => {\n return farm?.id ? _.includes(_.get(dataDescriptors, [variant, \"supportedFarms\"]), farm.id) : true;\n });\n\n /**\n * Ensure that metric changes use the previously selected variant type\n * if it exists within the new one\n * @param {string} metric\n */\n const trackVariant = (metric: string) => {\n const familyMetric = _.get(families, [metric, 0, \"id\"]);\n /**\n * Get the list of variants from family or the metric\n */\n const variants = _.get(metrics, [familyMetric || metric, \"variants\"]);\n /**\n * types of variants, e.g. farm/pen etc.\n */\n const variantTypes = _.map(variants, (variant) => ({\n [_.get(dataDescriptors, [variant, \"dataProperties\", \"type\"])]: variant\n }));\n /**\n * variant type of the current\n */\n const currentVariantType = _.get(dataDescriptors, [variant, \"dataProperties\", \"type\"]);\n /**\n * Get the variant from the list of variants\n */\n const currentVariant = _.filter(variantTypes, currentVariantType);\n\n return _.get(currentVariant, currentVariantType);\n };\n\n return (\n \n \n handleChange(metricID, void 0, trackVariant(metricID))}\n />\n \n {source && (\n {\n GAEvent(\n GACategories.configurator,\n \"Select source\",\n JSON.stringify({\n source: _.find(sources, ({ id }) => id === source)?.name\n })\n );\n\n handleChange(metric, source, trackVariant(source));\n }}\n values={_.map(_.orderBy(sources, \"familyIndex\", \"asc\"), ({ id, sourceTypes }) => ({\n value: id,\n label: _.join(\n _.map(sourceTypes, (sourceType) => t(config.source(sourceType))),\n \", \"\n )\n }))}\n />\n )}\n {\n GAEvent(\n GACategories.configurator,\n \"Select variant\",\n JSON.stringify({\n variant: t(config.variant(_.get(dataDescriptors, [variant, \"dataProperties\", \"type\"])))\n })\n );\n\n handleChange(metric, source, variant);\n }}\n values={_.compact(\n _.map(supportedVariants, (variant) => {\n /**\n * Get the type of the variant\n * @type {DataDescriptorEntity}\n */\n const type = _.get(dataDescriptors, [variant, \"dataProperties\", \"type\"]);\n\n return isSandboxEnabled && type === \"dimGroup\"\n ? null\n : {\n value: variant,\n label: t(config.variant(type))\n };\n })\n )}\n />\n {_.size(series.available) > 1 && (\n \n )}\n {!!t(description(title)) && (\n {t(description(title))}}>\n \n \n )}\n \n );\n};\n","import moment from \"moment\";\nimport { FC, useEffect, useRef, useState } from \"react\";\nimport { useLocation, useParams } from \"react-router-dom\";\nimport { PlotEvent } from \"@ant-design/charts\";\nimport * as _ from \"lodash\";\nimport { useDeepCompareEffect } from \"use-deep-compare\";\n\nimport {\n ChartFilters,\n Charts,\n ExtendedEventEntity,\n Filter,\n MetricEntity,\n filterToSeriesMap,\n SavedCard,\n V3DisplayFilter,\n Breadcrumbs,\n Enterprise,\n EventSourceType,\n ISODuration,\n DataDictionary,\n DataDescriptorEntity\n} from \"@ctra/api\";\n\nimport {\n Charts as ChartUI,\n CtraLayout,\n SwitchWithLabel,\n Row,\n Col,\n Typography,\n Button,\n PlusCircleOutlined,\n ArrowLeftOutlined\n} from \"@ctra/components\";\n\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\nimport { clampChartUnitList, Nullable, parseQuery } from \"@ctra/utils\";\nimport { GAEvent } from \"@ctra/analytics\";\n\nimport { useFarm } from \"@farms\";\nimport { CompiledRoutes, URIState } from \"@routes\";\nimport { EventListContext } from \"@events\";\nimport { useDataDictionary } from \"@base\";\nimport { useSavedCharts, GACategories } from \"@analytics\";\n\nimport {\n Chart,\n ChartAPIContext,\n ChartFilterContext,\n EventList,\n ISODurationFilter,\n useTimePeriod\n} from \"@chart\";\n\nimport { ChartSelector } from \"../ChartSelector\";\nimport styles from \"./AddChartPage.module.less\";\n\nconst { WidgetWrapper, ContentWrapper } = CtraLayout;\nconst { ChartVariant } = ChartUI;\nconst { Paragraph } = Typography;\nconst {\n components: { Breadcrumb }\n} = Breadcrumbs;\n\nconst {\n analytics: {\n correlations: { pageDescription, events },\n v3: {\n config: { cta }\n },\n config: {\n metric: { displayName }\n }\n }\n} = Content;\n\n/**\n * Resolve the ISO duration from the data descriptor\n * @param {DataDescriptorEntity} dataDescriptorEntity\n * @returns {ISODuration}\n */\nconst resolveISODuration = (dataDescriptorEntity: DataDescriptorEntity): ISODuration => {\n return _.get(\n dataDescriptorEntity,\n [\"valueProperties\", \"defaultInterval\"],\n DataDictionary.DefaultTimePeriod\n );\n};\n\n/**\n * Resolve the time unit from the data descriptor\n * @param {DataDescriptorEntity} dataDescriptorEntity\n * @returns {ISODuration}\n */\nconst resolveBucketSize = (dataDescriptorEntity: DataDescriptorEntity): ISODuration => {\n const isoDurationList = clampChartUnitList(resolveISODuration(dataDescriptorEntity));\n const defaultBucketSize = _.get(dataDescriptorEntity, [\"valueProperties\", \"defaultBucketSize\"]);\n\n const baseBucketSize = _.get(\n dataDescriptorEntity,\n [\"valueProperties\", \"baseTimeGranularity\"],\n defaultBucketSize\n );\n\n return _.includes(isoDurationList, baseBucketSize)\n ? baseBucketSize\n : _.defaultTo(_.first(isoDurationList), DataDictionary.DefaultDataInterval);\n};\n\n/**\n * Chart configurator page\n * @return {JSX.Element}\n * @constructor\n */\nexport const AddChartPage: FC = () => {\n const { t } = useTranslation();\n\n /**\n * Set up a ref for sharing and 1CF\n * @type {React.MutableRefObject}\n */\n const ref = useRef();\n\n /**\n * Resolve what event types to show\n */\n const [showEvents, setShowEvents] = useState>(\n _.mapValues({ ..._.invert(_.toPlainObject(EventSourceType)) }, () => false) as Record<\n EventSourceType,\n boolean\n >\n );\n\n const [eventList, setEventList] = useState([]);\n const { farm: farmContext } = useFarm();\n\n const {\n metrics,\n dataDescriptors,\n meta: { isLoading },\n groups: { families, projectionMetrics },\n api: { extractChartInfo }\n } = useDataDictionary();\n\n const {\n savedCharts: allCharts,\n api: { saveChart },\n meta: { isUpdating }\n } = useSavedCharts();\n\n const { dashboard: groupID, metricID: initialMetricID } =\n useParams<{ dashboard: string; metricID: string }>();\n\n const { search, state } = useLocation();\n const searchParams = new URLSearchParams(search);\n const query = parseQuery(searchParams, \"source\", \"variant\");\n const initialSourceID = _.defaultTo(query.source, void 0);\n const initialVariantID = _.defaultTo(query.variant, void 0);\n\n const group = _.find(allCharts, { id: groupID });\n const groupName = _.get(group, \"groupName\");\n\n /**\n * Handle a metric value change\n * @param {MetricEntity[\"id\"]} metric\n * @param {string} source\n * @param {string} variant\n * @returns {{metric: string, variant: string, source: any}}\n * @todo rename to reflect actual purpose\n */\n const handleMetricChanges = (metric: MetricEntity[\"id\"], source?: string, variant?: string) => {\n const initialSources = _.get(families, metric);\n const initialSourceID = source || _.minBy(initialSources, \"familyIndex\")?.id;\n const initialVariants = _.get(metrics, [initialSourceID || metric, \"variants\"]);\n\n /**\n * Get the farm type variant\n */\n const farmVariant = _.find(initialVariants, (variant) =>\n _.isEqual(_.get(dataDescriptors, [variant, \"dataProperties\", \"type\"]), \"farm\")\n );\n\n /**\n * If no farm selected, then use the per farm variant, otherwise use the variant passed. Default to the first one\n */\n const initialVariantID = (\n !farmContext ? farmVariant : _.defaultTo(variant, farmVariant || _.first(initialVariants))\n ) as string;\n\n return { metric, source: initialSourceID, variant: initialVariantID };\n };\n\n const [chart, setChart] = useState(handleMetricChanges(initialMetricID, initialSourceID, initialVariantID));\n const { metric, source, variant } = chart;\n const dataDescriptorEntity = dataDescriptors[variant];\n const isProjectionMetric = _.includes(projectionMetrics, metric);\n const initialISODuration = resolveISODuration(dataDescriptorEntity);\n const [isoDuration, setISOduration] = useState>(initialISODuration);\n const [initialTimePeriod] = useTimePeriod({ isoDuration }, _.defaultTo(0, 86400));\n const initialBucketSize = resolveBucketSize(dataDescriptorEntity);\n const [bucketSize, setBucketSize] = useState(initialBucketSize);\n\n const {\n flags: { isMultiDataIntervalSupported }\n } = dataDescriptorEntity;\n\n const [timePeriod, setTimePeriod] = useState(initialTimePeriod);\n const eventPanelHidden = _.isEmpty(eventList);\n const chartInfo = extractChartInfo(chart);\n\n const metricName = t(displayName(chartInfo.nameToDisplay), {\n makeDefaultValue: true\n });\n\n /**\n * Handle saving a chart to a dashboard tab\n *\n * @param {MetricEntity[\"id\"]} variantID\n * @param {string} view\n * @param {ChartFilters} dataFilters\n * @param {SavedChart[\"displayFilters\"]} displayFilters\n */\n const handleSave = (\n variantID: MetricEntity[\"id\"],\n view: string,\n dataFilters: ChartFilters,\n displayFilters?: SavedCard[\"displayFilters\"]\n ) => {\n /**\n * Make an ISO duration or a date range tuple\n * @type {[string]}\n */\n const dateRange: [ISODuration] | [string, string] = isoDuration\n ? [isoDuration]\n : [timePeriod.startDate, timePeriod.endDate];\n\n /**\n * convert filters into type + value format\n */\n const convertedDataFilters = _.map(\n dataFilters,\n (value, key) =>\n ({\n type: _.get(filterToSeriesMap, key),\n values: value\n } as Filter)\n );\n\n if (groupID && groupName) {\n saveChart(variantID, groupID, groupName, {\n chartType: view,\n dateRange,\n bucketSize,\n dataFilters: convertedDataFilters,\n displayFilters\n });\n\n Enterprise.history.push(CompiledRoutes.app.analytics.dashboard.index({ dashboard: groupID }));\n } else {\n throw new Error(\"Group ID or Group Name is missing.\");\n }\n };\n\n /**\n * Value change handler for dropdowns associated with metric/source/variant changes\n */\n const handleChange = (_metric: string, source?: string, variant?: string) =>\n setChart((chart) =>\n _.isEqual(chart.metric, metric) ? handleMetricChanges(_metric, source, variant) : chart\n );\n\n /**\n * If projection metric, add a month to the end date\n */\n useEffect(() => {\n if (isProjectionMetric) {\n initialTimePeriod.endDate = moment(initialTimePeriod.endDate).add(1, \"months\").toISOString();\n setISOduration(null);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isProjectionMetric]);\n\n /**\n * Update the time period when the iso duration changes\n */\n useDeepCompareEffect(() => {\n const bucketSizeList = clampChartUnitList(isoDuration || timePeriod);\n\n if (!_.includes(bucketSizeList, bucketSize)) {\n setBucketSize(_.first(bucketSizeList) as ISODuration);\n }\n }, [timePeriod, bucketSize, isoDuration]);\n\n /**\n * Reset the event list when the chart changes\n */\n useDeepCompareEffect(() => {\n setEventList([]);\n }, [chart]);\n\n /**\n * Reset the event list when the show events change\n */\n useDeepCompareEffect(() => {\n if (eventList.length > 0 && !_.some(showEvents)) {\n setEventList([]);\n }\n }, [showEvents]);\n\n return (\n \n {groupName && (\n \n )}\n \n \n Enterprise.history.push({\n pathname: CompiledRoutes.app.analytics.dashboard.addChart.index({\n dashboard: groupID\n }),\n state\n })\n }\n icon={}\n >\n {t(cta.back)}\n \n {t(pageDescription)}}\n >\n \n \n \n {farmContext && (\n \n {({ events: eventList }) =>\n _.size(eventList) > 0 && (\n <>\n \n \n setShowEvents((current) => ({ ...current, [EventSourceType.aiModel]: checked }))\n }\n size=\"small\"\n label={t(events, {\n variant: \"ai\"\n })}\n />\n \n \n \n setShowEvents(({ AIModel, ...rest }) => ({\n AIModel,\n ..._.mapValues(rest, () => checked)\n }))\n }\n size=\"small\"\n label={t(events, { variant: \"events\" })}\n />\n \n \n )\n }\n \n )}\n \n \n \n \n \n \n \n {({ series, filters }) =>\n variant && (\n \n \n {({ chart: { view } }) => {\n /**\n * current display filters\n */\n\n const displayFilters = series.active.length\n ? ([\n {\n type: \"series\",\n values: series.active\n }\n ] as V3DisplayFilter[])\n : void 0;\n\n /**\n * Metric name for GA\n */\n const name = _.get(metrics, [metric, \"name\"]);\n const metricName = t(displayName(_.defaultTo(name, metric)), {\n makeDefaultValue: true\n });\n\n return (\n <>\n \n \n \n \n \n \n \n {\n ref.current = plot;\n\n plot.on(\"element:click\", (event: PlotEvent) => {\n const shape = _.get(event, [\"data\", \"shape\"]);\n const eventList = _.get(event, [\"data\", \"data\", \"events\"]);\n\n GAEvent(\n GACategories.configurator,\n \"Open event\",\n JSON.stringify({ eventList })\n );\n\n if (shape === \"farm-event-point\") {\n setEventList(() => eventList);\n }\n });\n }\n }}\n />\n \n \n \n }\n size=\"large\"\n type=\"primary\"\n data-gtm-category={GACategories.dashboards}\n data-gtm-action=\"Save metric to dashboard\"\n data-gtm-info={JSON.stringify({ metric: metricName })}\n onClick={() => handleSave(variant, view, filters, displayFilters)}\n >\n {t(cta.save, { isSaved: false })}\n \n \n Enterprise.history.push(\n CompiledRoutes.app.analytics.dashboard.addChart.index({\n dashboard: groupID\n })\n )\n }\n >\n {t(cta.cancel)}\n \n \n \n );\n }}\n \n \n )\n }\n \n \n \n \n {eventPanelHidden ? null : (\n \n event.source.type === EventSourceType.aiModel)\n ? EventList.variant.insights\n : EventList.variant.events\n }\n data={eventList}\n handleClose={() => setEventList([])}\n />\n \n )}\n \n \n \n );\n};\n","import { FC } from \"react\";\nimport { Route, Switch } from \"react-router-dom\";\n\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\nimport { GAContext } from \"@ctra/analytics\";\nimport { Breadcrumbs } from \"@ctra/api\";\n\nimport { DataDictionaryContext } from \"@base\";\nimport { Routes } from \"@routes\";\nimport { useFarm } from \"@farms\";\n\nimport { GACategories, SectionVariant } from \"@analytics\";\n\nimport { BrowsePage, MetricSelectorPage } from \"..\";\n\nimport styles from \"./AnalyticsPage.module.less\";\nimport { DashboardPage } from \"../DashboardPage\";\nimport { AddChartPage } from \"../AddChartPage\";\n\nconst {\n components: { Breadcrumb }\n} = Breadcrumbs;\n/**\n * Analytics route page\n * @constructor\n */\nconst AnalyticsPage: FC = () => {\n const { t } = useTranslation();\n const { farm } = useFarm();\n\n const {\n navigation: {\n main: { analytics }\n }\n } = Content;\n\n return (\n \n (analytics, {\n variant: farm ? SectionVariant.farm : SectionVariant.overview\n })}\n />\n
          \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
          \n
          \n );\n};\n\nexport default AnalyticsPage;\n","import * as _ from \"lodash\";\nimport { FC, useEffect, useState } from \"react\";\nimport { useLocation } from \"react-router\";\n\nimport { DataDescriptorEntity } from \"@ctra/api\";\nimport { AntDesignSelect as Select, Col, Row, Button } from \"@ctra/components\";\nimport { defaultLocale, Enterprise as Content, useTranslation } from \"@ctra/i18n\";\nimport { useGoogleAnalytics } from \"@ctra/analytics\";\n\nimport { useEvent } from \"@events\";\nimport { useDataDictionary } from \"@base\";\n\nimport { GAActions } from \"../../../analytics\";\n\nconst { Option, OptGroup } = Select;\n\nconst {\n kpi: { category, displayName },\n analytics: {\n correlations: { add, headers },\n compare: {\n dropdowns: { placeholder, notFound }\n }\n }\n} = Content;\n\n/**\n * Chart picker component\n * @param {(value: DataDescriptorEntity[\"id\"]) => void} onChange\n * @param {((variant: DataDescriptorEntity) => boolean) | undefined} filterFn\n * @param {string} placement\n * @param {string | undefined} defaultValue\n * @param {boolean} showLabel\n * @param {boolean} showButton\n * @param {Array | undefined} filterValues\n * @param {Array | undefined} metricType\n * @returns {JSX.Element}\n * @constructor\n */\nexport const ChartPicker: FC<{\n placement?: \"impactTracking\" | \"analytics\";\n onChange: (value: DataDescriptorEntity[\"id\"]) => void;\n defaultValue?: DataDescriptorEntity[\"id\"];\n showLabel?: boolean;\n showButton?: boolean;\n filterValues?: Array;\n metricType?: Array;\n filter?: (variant: DataDescriptorEntity) => boolean;\n}> = ({\n onChange,\n filter: filterFn,\n placement = \"analytics\",\n defaultValue,\n showLabel = true,\n showButton = true,\n filterValues,\n metricType\n}) => {\n const [filter, setFilter] = useState(\"\");\n const [value, setValue] = useState();\n const { t } = useTranslation();\n const { trackEvent } = useGoogleAnalytics();\n const { search } = useLocation();\n const { event } = useEvent();\n\n const {\n dataDescriptors,\n subsets: { farm: farmDataDescriptorIDList, eventScoped: eventScopedDataDescriptorList }\n } = useDataDictionary();\n\n useEffect(() => {\n const searchParams = new URLSearchParams(search);\n const dataDescriptorID = searchParams.get(\"dataDescriptorID\");\n\n if (dataDescriptorID && dataDescriptorID !== defaultValue) {\n onChange(dataDescriptorID);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [search]);\n\n /**\n * Get the data dictionary for the given farm id / event scope\n * @type {Pick}\n */\n const dataDictionary = _.pickBy(dataDescriptors, (variant) => {\n const {\n id,\n dataProperties: { type }\n } = variant;\n const idMatches = (event ? eventScopedDataDescriptorList : farmDataDescriptorIDList).includes(id);\n const typeMatches = !metricType || metricType.includes(type);\n const filterMatches = !_.isFunction(filterFn) || filterFn(variant);\n\n return filterMatches && idMatches && typeMatches;\n });\n\n /**\n * Get the dropdown data\n * @type {unknown[]}\n */\n const items = _.map(\n _.groupBy(dataDictionary, ({ dataProperties: { category } }) => category),\n (list, groupName) => ({\n key: groupName,\n label: t(category(groupName)),\n options: _.map(list, ({ id, dataProperties: { typeName } }) => ({\n key: id,\n value: id,\n label: t(displayName(typeName), {\n case: null,\n variant: placement === \"impactTracking\" ? void 0 : \"short\",\n makeDefaultValue: true\n })\n }))\n })\n );\n\n /**\n * Filter the options based on search query\n */\n const searchFiltered = items.reduce((acc: typeof items, data) => {\n const filteredGroupOptions = data.options.filter((option) =>\n option.label.toLowerCase().includes(filter.toLowerCase())\n );\n\n if (filteredGroupOptions.length > 0) {\n acc.push({\n ...data,\n options: filteredGroupOptions\n });\n }\n\n return acc;\n }, []);\n\n return (\n \n {showLabel && (\n \n {t(headers.chartSelect)}\n \n )}\n \n (placeholder.chart)}\n onSearch={setFilter}\n onChange={event ? onChange : setValue}\n value={value}\n filterOption={false}\n showSearch\n notFoundContent={t(notFound)}\n >\n {searchFiltered.map(({ label, options }) => {\n /**\n * filter the values if props specify any filter values\n */\n const filtered = _.filter(options, ({ value }) => !_.includes(filterValues, value));\n\n return (\n !_.isEmpty(filtered) && (\n \n {filtered.map(({ label, value }) => (\n \n ))}\n \n )\n );\n })}\n \n \n {showButton && (\n \n {\n if (value) {\n debugger;\n // TODO test if `value` is a data descriptior id\n\n trackEvent(GAActions.selectChart, {\n label: t(displayName(dataDictionary[value].dataProperties.typeName), {\n lng: defaultLocale,\n case: null,\n variant: null\n })\n });\n\n onChange(value);\n setValue(void 0);\n setFilter(\"\");\n }\n }}\n >\n {t(add)}\n \n \n )}\n \n );\n};\n","export enum SectionVariant {\n overview = \"overview\",\n farm = \"farm\"\n}\n\n/**\n * Get time of the day from the given moment instance\n * @todo maybe find a util for this (though quite coupled with this component)\n * @param dateTime\n */\nexport const getTimeOfDay = (dateTime: moment.Moment): string => {\n let timeOfDay: string;\n\n const afternoonSplit = 12;\n const eveningSplit = 17;\n const currentHour = parseFloat(dateTime.format(\"HH\"));\n\n if (currentHour >= afternoonSplit && currentHour <= eveningSplit) {\n timeOfDay = \"afternoon\";\n } else if (currentHour >= eveningSplit) {\n timeOfDay = \"evening\";\n } else {\n timeOfDay = \"morning\";\n }\n\n return timeOfDay;\n};\n\nexport { default } from \"./chart-layout/v3/AnalyticsPage\";\nexport * from \"./compare-charts/ChartPicker\";\nexport * from \"./compare-charts/FarmDropdown\";\nexport * from \"./chart-layout/v3/ChartSelector\";\nexport * from \"./sharing\";\n","import { FC } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Row, Col, Typography, Dropdown, InfoCircleOutlined } from \"@ctra/components\";\nimport { FarmEntity } from \"@ctra/api\";\nimport { Enterprise as Content, parseLocoTemplate, useTranslation } from \"@ctra/i18n\";\nimport { useGoogleAnalytics } from \"@ctra/analytics\";\nimport { useFarmList } from \"@farms\";\n\nimport { GAActions } from \"../../../analytics\";\n\nimport styles from \"./FarmDropdown.module.less\";\n\nconst { Text } = Typography;\n\ninterface DropDownProps {\n /**\n * change handler\n */\n onChange: (id: FarmEntity[\"id\"]) => void;\n}\n\n/**\n * Farm selector for charts comparison\n * @param {(value: (((prevState: ) => ) | )) => void} setFarm\n * @return {JSX.Element}\n * @constructor\n */\nexport const FarmDropdown: FC = ({ onChange }) => {\n const { t } = useTranslation();\n const { trackEvent } = useGoogleAnalytics();\n const { farmList } = useFarmList();\n\n const { label } = Content.analytics.compare.dropdowns;\n const [lead, dropdownTrigger, tail] = _.defaultTo(parseLocoTemplate(t(label.farm)), []);\n\n return (\n \n \n \n \n \n {lead}\n ({ key: id, label: name })),\n onClick: ({ key }) => {\n trackEvent(GAActions.selectFarm, {\n label: _.defaultTo(farmList[_.toNumber(key)]?.name, void 0)\n });\n\n onChange(_.toNumber(key));\n }\n }}\n >\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n {\n e.preventDefault();\n }}\n >\n {dropdownTrigger}\n \n \n {tail}\n \n \n );\n};\n","import { FC, useEffect, useState } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport * as _ from \"lodash\";\nimport { Formik } from \"formik\";\nimport { useDeepCompareEffect } from \"use-deep-compare\";\nimport * as Yup from \"yup\";\n\nimport {\n Form,\n AntDesignForm,\n AntDesignInput,\n Input,\n MailOutlined,\n LinkOutlined,\n MediaQueryDynamicImport,\n Tabs,\n Typography,\n Button,\n Space,\n Spin,\n message\n} from \"@ctra/components\";\n\nimport { Enterprise } from \"@ctra/api\";\nimport { useTranslation, Enterprise as Content } from \"@ctra/i18n\";\nimport { isLocal, isProduction, Nullable } from \"@ctra/utils\";\n\nimport { GACategories, GAActions } from \"@analytics\";\nimport { URIState } from \"@routes\";\nimport { usePublicChart } from \"@chart\";\n\nimport styles from \"./ShareChartDialog.module.less\";\n\nconst { Paragraph } = Typography;\n\nconst {\n analytics: {\n share: { status, callback, tabs, email, link, close }\n }\n} = Content;\n\n/**\n * Dialog for sharing a chart\n * @returns {JSX.Element}\n * @constructor\n */\nexport const ShareChartDialog: FC = () => {\n const { t } = useTranslation();\n\n const {\n chart,\n meta: { isPublishing, isUpdating, isUpdated },\n api: { isError, publish, update }\n } = usePublicChart();\n\n const { state } = useLocation();\n const dataDescriptorID = state?.shareChart?.dataDescriptorID;\n const instance = state?.shareChart?.instance;\n const isOpen = !_.isUndefined(dataDescriptorID);\n\n const [i, setI] = useState(instance);\n\n /**\n * Close the dialog\n */\n const closeDialog = () => {\n Enterprise.history.push({\n state: {}\n });\n };\n\n useDeepCompareEffect(() => {\n if (isOpen && dataDescriptorID && !chart) {\n publish();\n } else if (isError(chart)) {\n message.error(t(callback, { action: \"publish\", status: \"error\" }));\n }\n }, [chart, isOpen, dataDescriptorID]);\n\n /**\n * Display a success message when the chart is updated\n */\n useEffect(() => {\n if (isUpdated && i === instance) {\n message.success(t(callback, { action: \"update\", status: \"success\" }));\n closeDialog();\n }\n\n setI(instance);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isUpdated, instance]);\n\n const url = isLocal()\n ? \"http://localhost:3000\"\n : `https://${isProduction() ? \"\" : \"staging-\"}app.connecterra.ai`;\n\n return isOpen ? (\n import(\"./Mobile\")} desktop={() => import(\"./Desktop\")}>\n {(Component, { isMobile }) => (\n ;\n message: Nullable;\n mode: \"email\" | \"link\";\n status: Nullable;\n }>\n validationSchema={Yup.object().shape({\n email: Yup.string()\n .email(t(email.validation.email))\n .required(t(email.validation.email))\n .nullable()\n })}\n isInitialValid={false}\n initialValues={{\n email: null,\n message: null,\n status: null,\n mode: \"email\"\n }}\n onSubmit={(values, formikHelpers) => {\n switch (values.mode) {\n case \"email\":\n if (chart && !isError(chart) && values.email) {\n update(chart.id, values.email, _.defaultTo(values.message, void 0));\n }\n break;\n }\n }}\n >\n {({ setFieldValue, setValues, resetForm, isValid, submitForm, initialValues, values }) => (\n {\n setValues(initialValues);\n closeDialog();\n }}\n footer={_.compact([\n {\n resetForm();\n closeDialog();\n }}\n >\n {t(close)}\n ,\n values.mode === \"email\" && chart && !isError(chart) ? (\n {\n submitForm();\n }}\n >\n {t(email.labels.submit)}\n \n ) : null\n ])}\n >\n (status, { status: isUpdating ? \"updating\" : \"publishing\" })}\n >\n
          \n {\n setFieldValue(\"mode\", activeKey);\n setFieldValue(\"status\", null);\n }}\n items={[\n {\n key: \"email\",\n label: (\n \n \n {t(tabs.email)}\n \n ),\n children: (\n <>\n {t(email.description)}\n (email.labels.email)}>\n } />\n \n (email.labels.message)}>\n \n \n \n )\n },\n {\n key: \"link\",\n label: (\n \n \n {t(tabs.link)}\n \n ),\n children: (\n <>\n {t(link.description)}\n \n \n \n {\n if (chart && !isError(chart)) {\n navigator.clipboard\n .writeText(`${url}/public/chart/${chart.shortId}`)\n .then(\n () => {\n message.success(\n t(callback, { action: \"copy\", status: \"success\" })\n );\n },\n () => {\n message.error(\n t(callback, { action: \"copy\", status: \"error\" })\n );\n }\n );\n }\n }}\n >\n {t(link.labels.copy)}\n \n \n \n \n )\n }\n ]}\n />\n {isMobile ? (\n \n {_.map(\n _.compact([\n {\n resetForm();\n closeDialog();\n }}\n >\n {t(close)}\n ,\n values.mode === \"email\" && chart && !isError(chart) ? (\n {\n submitForm();\n }}\n >\n {t(email.labels.submit)}\n \n ) : null\n ])\n )}\n \n ) : null}\n \n \n \n )}\n \n )}\n
          \n ) : null;\n};\n","import { FC, useEffect, createContext, useContext, Key } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\n\nimport { isDispatched, isPending } from \"@ctra/utils\";\n\nimport {\n Enterprise,\n EnterpriseAppState,\n SavedCards,\n SavedCardList,\n MetricEntity,\n Group,\n Filter,\n V3DisplayFilter,\n SavedCard,\n ISODuration\n} from \"@ctra/api\";\n\nimport { useFarm } from \"@farms\";\n\nexport type TargetKey = React.MouseEvent | React.KeyboardEvent | string;\n\ntype ContextType = {\n savedCharts: SavedCardList;\n api: {\n addTab: (groupName: string) => void;\n updateTabOrder: (order: Array) => void;\n removeTab: (targetKey: TargetKey) => void;\n renameTab: (targetKey: TargetKey, newName: string) => void;\n saveChart: (\n variantID: MetricEntity[\"id\"],\n groupID: Group[\"id\"],\n groupName: Group[\"groupName\"],\n meta: {\n dateRange: [ISODuration] | [string, string];\n bucketSize: ISODuration;\n chartType: string;\n dataFilters: Array;\n displayFilters?: Array;\n }\n ) => void;\n saveChartChanges: (groupID: Group[\"id\"], card: SavedCard) => void;\n removeChart: (id: SavedCard[\"id\"], groupID: Group[\"id\"]) => void;\n updateChartOrder: (order: Array, groupID: Group[\"id\"]) => void;\n };\n meta: {\n isLoading: boolean;\n isUpdating: boolean;\n tabsUpdating: boolean;\n };\n};\n\n/**\n * Default SavedCharts Context\n */\nconst DefaultContext = createContext({\n savedCharts: [],\n api: {\n addTab: _.noop,\n removeTab: _.noop,\n renameTab: _.noop,\n updateTabOrder: _.noop,\n saveChart: _.noop,\n saveChartChanges: _.noop,\n removeChart: _.noop,\n updateChartOrder: _.noop\n },\n meta: {\n isLoading: false,\n isUpdating: false,\n tabsUpdating: false\n }\n});\n\n/**\n * Fetch saved charts for the given farm or the dashboard\n * @constructor\n */\nexport const _SavedChartsProvider: FC = ({ children }) => {\n const dispatch = useDispatch();\n const { farm } = useFarm();\n\n /**\n * Either get saved charts for a farm or all farms i.e. main\n */\n const pageKey = farm?.id ? _.toString(farm.id) : \"main\";\n\n /**\n * Attempt to get the saved charts\n */\n const savedCharts = useSelector((state) =>\n Enterprise.entities.getSavedCards(state, { pageKey })\n );\n\n /**\n * Tell whether the fetching action has been dispatched\n */\n const dispatched = useSelector((state) =>\n isDispatched(state, SavedCards.types.FETCH_SAVED_CHARTS)\n );\n\n /**\n * Tell whether the fetching action is pending\n */\n const isLoading = useSelector((state) =>\n isPending(state, SavedCards.types.FETCH_SAVED_CHARTS)\n );\n\n /**\n * Tell whether chart list is being updated\n */\n const isUpdating = useSelector(\n (state) => isPending(state, SavedCards.types.UPDATE_CHARTS) || isPending(state, SavedCards.types.ADD_CARD)\n );\n\n /**\n * Tell whether tabs are being updated\n */\n const tabsUpdating = useSelector((state) =>\n isPending(state, SavedCards.types.UPDATE_TABS)\n );\n\n useEffect(() => {\n if (!dispatched) {\n dispatch(SavedCards.actions.fetchSavedCharts.start());\n }\n }, [dispatch, dispatched]);\n\n /**\n * Add a new tab\n * @param groupName\n */\n const addTab = (groupName: string) => {\n if (_.isArray(savedCharts)) {\n const updatedCharts = [...savedCharts];\n //@ts-ignore\n updatedCharts.push({ groupName, cards: [] });\n dispatch(SavedCards.actions.addTab.start(pageKey, groupName));\n }\n };\n\n /**\n * Remove a tab\n * @param {TargetKey} targetKey\n */\n const removeTab = (targetKey: TargetKey) => {\n const updatedCharts = _.filter(savedCharts, ({ id }) => !_.isEqual(id, targetKey));\n\n dispatch(SavedCards.actions.updateTabs.start(pageKey, updatedCharts));\n };\n\n /**\n * Change the order of the tabs\n * @param order\n */\n const updateTabOrder = (order: Array) => {\n const currentOrder = _.map(savedCharts, \"id\");\n\n if (!_.isEqual(order, currentOrder)) {\n const sortedTabs = _.sortBy(savedCharts, ({ id }) => _.findIndex(order, (key) => _.isEqual(key, id)));\n\n dispatch(SavedCards.actions.updateTabs.start(pageKey, sortedTabs));\n }\n };\n\n /**\n * Change the name of the tab\n * @param {TargetKey} targetKey\n * @param {string} newName\n */\n const renameTab = (targetKey: TargetKey, newName: string) => {\n const updatedTabs = _.map(savedCharts, (group) =>\n group.id === targetKey ? { ...group, groupName: newName } : group\n );\n\n dispatch(SavedCards.actions.updateTabs.start(pageKey, updatedTabs));\n };\n\n /**\n * Save a chart to dashboard\n * @param {MetricEntity[\"id\"]} variantID\n * @param {Group[\"id\"]} groupID\n * @param {Group[\"groupName\"]} groupName\n * @param {{dateRange: [ISODuration] | [string, string], bucketSize: ISODuration, chartType: string, dataFilters: Array, displayFilters?: Array}} meta\n */\n const saveChart: ContextType[\"api\"][\"saveChart\"] = (\n variantID: MetricEntity[\"id\"],\n groupID: Group[\"id\"],\n groupName: Group[\"groupName\"],\n meta: {\n dateRange: [ISODuration] | [string, string];\n bucketSize: ISODuration;\n chartType: string;\n dataFilters: Array;\n displayFilters?: Array;\n }\n ) => {\n const newCard = { variantId: variantID, ...meta };\n\n dispatch(SavedCards.actions.addCard.start(pageKey, groupID, groupName, newCard));\n };\n\n /**\n * Update existing chart state\n * @param {Group[\"id\"]} id\n * @param {SavedCard} chartCard\n */\n const saveChartChanges: ContextType[\"api\"][\"saveChartChanges\"] = (\n id: Group[\"id\"],\n chartCard: SavedCard\n ) => {\n const updatedCharts = _.cloneDeep(savedCharts);\n\n const group = _.find(updatedCharts, { id });\n if (group) {\n const chartIndex = _.findIndex(group.cards, { id: chartCard.id });\n if (chartIndex !== -1) {\n group.cards[chartIndex] = chartCard;\n }\n }\n\n dispatch(SavedCards.actions.updateCharts.start(pageKey, updatedCharts));\n };\n\n /**\n * Save a chart to dashboard\n * @param {SavedCard[\"id\"]} id\n * @param {Group[\"id\"]} groupID\n */\n const removeChart = (id: SavedCard[\"id\"], groupID: Group[\"id\"]) => {\n /**\n * Update the chart cards within the group\n */\n const updatedCards = _.map(savedCharts, (group) =>\n _.isEqual(group.id, groupID)\n ? {\n ...group,\n cards: _.filter(group.cards, (card) => !_.isEqual(card.id, id))\n }\n : group\n );\n dispatch(SavedCards.actions.updateCharts.start(pageKey, updatedCards));\n };\n\n /**\n * Change the order of the charts\n * @param {Array} order\n * @param {Group[\"id\"]} id\n */\n const updateChartOrder = (order: Array, id: Group[\"id\"]) => {\n const group = _.find(savedCharts, { id });\n const currentOrder = group && _.map(group.cards, \"id\");\n if (!_.isEqual(order, currentOrder)) {\n const sortedCharts = _.sortBy(group?.cards, ({ id }) =>\n _.findIndex(order, (key) => _.isEqual(key, id))\n );\n const updatedGroup = { ...group, cards: sortedCharts };\n const reordered = _.map(savedCharts, (group) => (_.isEqual(group.id, id) ? updatedGroup : group));\n\n dispatch(SavedCards.actions.updateCharts.start(pageKey, reordered));\n }\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport const SavedChartsContext = {\n Provider: _SavedChartsProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Hook for SavedCharts context\n * @returns\n */\nexport const useSavedCharts = (): ContextType => useContext(DefaultContext);\n","import { createContext, FC, useContext } from \"react\";\n\ninterface ContextType {\n a?: string;\n}\n\nconst DefaultContext = createContext({});\n\nconst _Provider: FC = ({ children }) => {\n return {children};\n};\n\nexport const ScreenshotContext = {\n Provider: _Provider,\n Consumer: DefaultContext.Consumer\n};\n\nexport const useChartScreenshot = () => useContext(DefaultContext);\n","import { makeTestIds } from \"@ctra/utils\";\n\n/**\n * Make test ids for the analytics module\n */\nexport const testIds = makeTestIds(\"analytics\", {\n sectionDashboard: \"sectionDashboard\",\n stackNavigation: {\n dropDown: \"dropDown\"\n },\n sectionToolbar: {\n dimGroupFilter: \"dim-group-filter\",\n herdGroupFilter: \"herd-group-filter\",\n isoDurationFilter: \"iso-duration-filter\",\n penFilter: \"pen-filter\"\n }\n});\n","import { Filter, seriesToFilterMap } from \"@ctra/api\";\nimport * as _ from \"lodash\";\n\n/**\n * Align the legends\n */\nexport const alignLegends = () => {\n const graphWrapperCollection = document.querySelectorAll(\n \".ctra-chart-graphWrapper\"\n ) as NodeListOf;\n\n const legendWrapperCollection = document.querySelectorAll(\n \".ctra-chart-legendWrapper\"\n ) as NodeListOf;\n\n /**\n * Get the max of the legend widths\n * @type {unknown}\n */\n const max = _.max(_.map(legendWrapperCollection, (item) => item.offsetWidth));\n\n /**\n * Apply the max width to all the graphs\n */\n _.forEach(graphWrapperCollection, (item) => {\n item.style.width = `calc(100% - ${max}px)`;\n });\n\n /**\n * Apply the max width to all the charts\n */\n _.forEach(legendWrapperCollection, (item) => {\n item.style.width = `${max}px`;\n });\n};\n\n/**\n * Reset legends\n */\nexport const resetLegends = () => {\n const graphWrapperCollection = document.querySelectorAll(\n \".ctra-chart-graphWrapper\"\n ) as NodeListOf;\n\n const legendWrapperCollection = document.querySelectorAll(\n \".ctra-chart-legendWrapper\"\n ) as NodeListOf;\n\n /**\n * Apply the auto width to all the charts\n */\n _.forEach(graphWrapperCollection, (item) => {\n item.style.width = \"auto\";\n });\n\n /**\n * Apply the auto width to all the legends\n */\n _.forEach(legendWrapperCollection, (item) => {\n item.style.width = \"auto\";\n });\n};\n\n/**\n * Change format of filters from type: \"\", value: \"\" to [key]: value\n */\nexport const formatFilters = (dataFilters: Filter[]) =>\n _.reduce(\n dataFilters,\n (acc: Record, item) => {\n const newType = seriesToFilterMap[item.type];\n acc[newType] = item.values;\n return acc;\n },\n {}\n );\n","import { Debug } from \"@ctra/utils\";\n\nDebug.create(\"analytics\", \"Analytics\", { prefixColor: \"#A52019\", transports: false });\n\nexport { default } from \"./components\";\n\nexport * from \"./routes\";\nexport * from \"./components\";\nexport * from \"./providers\";\nexport * from \"./analytics\";\nexport * from \"./testing\";\nexport * from \"./utils\";\n","import * as _ from \"lodash\";\nimport * as Sentry from \"@sentry/react\";\nimport { Integrations } from \"@sentry/tracing\";\n\nimport { Enterprise } from \"@ctra/api\";\nimport { CookieKeys, Cookies } from \"@ctra/utils\";\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst packageJson = require(\"../../package.json\");\n\n/**\n * Init Sentry\n */\nconst initialise = () =>\n Sentry.init({\n dsn: \"https://593cd23fa65a42908f4645e43f6ed15a@o1047074.ingest.sentry.io/6024152\",\n environment: process.env.REACT_APP_BUILD_ENV,\n debug: false, // process.env.REACT_APP_SERVER_ENV === \"local\",\n integrations: _.compact([\n new Integrations.BrowserTracing({\n routingInstrumentation: Sentry.reactRouterV5Instrumentation(Enterprise.history)\n }),\n process.env.REACT_APP_BUILD_ENV === \"production\"\n ? new Sentry.Replay({\n maskAllText: false,\n blockAllMedia: false\n })\n : null\n ]),\n maxBreadcrumbs: 30,\n normalizeDepth: 4,\n autoSessionTracking: true,\n sendClientReports: false,\n release:\n process.env.REACT_APP_DEPLOY_BRANCH === \"master\"\n ? packageJson.version\n : process.env.REACT_APP_DEPLOY_BRANCH,\n sampleRate: process.env.REACT_APP_BUILD_ENV === \"production\" ? 1 : 0.5,\n tracesSampleRate: process.env.REACT_APP_BUILD_ENV === \"production\" ? 0.25 : 0,\n replaysSessionSampleRate: process.env.REACT_APP_BUILD_ENV === \"production\" ? 0.35 : 0,\n replaysOnErrorSampleRate: 1.0,\n denyUrls: [\n // anything from localhost\n new RegExp(\"localhost\", \"gi\"),\n // Facebook flakiness\n /graph\\.facebook\\.com/i,\n // Facebook blocked\n /connect\\.facebook\\.net\\/en_US\\/all\\.js/i,\n // Woopra flakiness\n /eatdifferent\\.com\\.woopra-ns\\.com/i,\n /static\\.woopra\\.com\\/js\\/woopra\\.js/i,\n // Chrome extensions\n /extensions\\//i,\n /^chrome:\\/\\//i,\n // Other plugins\n /127\\.0\\.0\\.1:4001\\/isrunning/i, // Cacaoweb\n /webappstoolbarba\\.texthelp\\.com\\//i,\n /metrics\\.itunes\\.apple\\.com\\.edgesuite\\.net\\//i,\n // Firefox extensions\n /^resource:\\/\\//i\n ],\n ignoreErrors: [\n // screen resizing, no-op\n \"ResizeObserver loop limit exceeded\",\n \"ResizeObserver loop completed with undelivered notifications\",\n // ignore the AntV error related to the tooltips\n \"(reading 'appendChild')\",\n // Random plugins/extensions\n \"top.GLOBALS\",\n // See: http://blog.errorception.com/2012/03/tale-of-unfindable-js-error.html\n \"originalCreateNotification\",\n \"canvas.contentDocument\",\n \"MyApp_RemoveAllHighlights\",\n \"http://tt.epicplay.com\",\n \"Can't find variable: ZiteReader\",\n \"jigsaw is not defined\",\n \"ComboSearch is not defined\",\n \"http://loading.retry.widdit.com/\",\n \"atomicFindClose\",\n // Facebook borked\n \"fb_xd_fragment\",\n // ISP \"optimizing\" proxy - `Cache-Control: no-transform` seems to reduce this. (thanks @acdha)\n // See http://stackoverflow.com/questions/4113268/how-to-stop-javascript-injection-from-vodafone-proxy\n \"bmi_SafeAddOnload\",\n \"EBCallBackMessageReceived\",\n // See http://toolbar.conduit.com/Developer/HtmlAndGadget/Methods/JSInjection.aspx\n \"conduitPage\",\n // Generic error code from errors outside the security sandbox\n // You can delete this if using raven.js > 1.0, which ignores these automatically.\n \"Script error.\"\n ]\n });\n\n/**\n * Init Sentry\n * @return {Promise}\n */\nexport const initSentry = (): Promise =>\n new Promise((resolve) => {\n const cookieConsent = Cookies.get(CookieKeys.cookieConsent);\n\n if (cookieConsent === \"optional\" && window.location.hash !== \"#no-sentry\") {\n initialise();\n }\n\n resolve(true);\n });\n","/* istanbul ignore file */\n\n// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === \"localhost\" ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === \"[::1]\" ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener(\"load\", () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n \"This web app is being served cache-first by a service \" +\n \"worker. To learn more, visit https://bit.ly/CRA-PWA\"\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === \"installed\") {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n \"New content is available and will be used when all \" +\n \"tabs for this page are closed. See https://bit.ly/CRA-PWA.\"\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"ContentDefinition is cached for offline use.\" message.\n console.log(\"ContentDefinition is cached for offline use.\");\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error(\"Error during service worker registration:\", error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { \"Service-Worker\": \"script\" }\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get(\"content-type\");\n if (response.status === 404 || (contentType != null && contentType.indexOf(\"javascript\") === -1)) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\"No internet connection found. App is running in offline mode.\");\n });\n}\n\nexport function unregister() {\n if (\"serviceWorker\" in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","// istanbul ignore file - this is for testing only\n\nimport { Enterprise, EnterpriseAppState } from \"@ctra/api\";\nimport * as _ from \"lodash\";\n\ndeclare global {\n interface Window {\n WebDriver: {\n isFetchingCompleted: () => boolean;\n };\n }\n}\n\ntype RecursiveObject = {\n [key: string]: string | RecursiveObject;\n};\n\n/**\n * Get the flat values of a recursive object\n * @param object\n */\nconst valuesDeep = (object: RecursiveObject): Array =>\n _.flatMap(_.values(object), (v) => (_.isString(v) ? v : valuesDeep(v)));\n\n/**\n * Tell if the every item in the async state is in a \"fulfilled\" state\n */\nconst isFetchingCompleted = (): boolean => {\n const { async: asyncState }: EnterpriseAppState = Enterprise.store.getState();\n\n console.info(\"[WEBDRIVER]\", \"[Async state]\", JSON.stringify(asyncState));\n\n return _.every(valuesDeep(asyncState as RecursiveObject), _.matches(\"fulfilled\"));\n};\n\nwindow.WebDriver = {\n isFetchingCompleted\n};\n","/* istanbul ignore file */\n\nimport { Suspense, lazy } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Provider } from \"react-redux\";\nimport { ConnectedRouter } from \"connected-react-router\";\nimport { Switch, Route, Redirect } from \"react-router-dom\";\nimport * as Sentry from \"@sentry/react\";\nimport TagManager from \"react-gtm-module-custom-domain\";\n\n/**\n * Make sure this stays high so the CSS actually gets generated for everything.\n */\nimport \"./index.less\";\n\nimport { init as i18nInit, Enterprise as EnterpriseI18N, TranslationContext } from \"@ctra/i18n\";\nimport { Enterprise, PersistGate, purgeStaleData as purgeStaleAPIData } from \"@ctra/api\";\nimport { CookieKeys, Cookies, isProduction, purgeStaleData as purgeStaleUtilsData } from \"@ctra/utils\";\nimport { GA, GAContext } from \"@ctra/analytics\";\nimport { Row, Spin, SpinnerContext, LoadingOutlined } from \"@ctra/components\";\n\nimport { Routes } from \"@routes\";\nimport { AuthenticateWithToken, ProtectedRoute, GACategories, UserContext, SessionContext } from \"@auth\";\nimport { FarmContext, FarmListContext } from \"@farms\";\n\nimport {\n InvitationContext,\n LocalizationContext,\n UserPreferencesContext,\n CookieConsent,\n UserListContext,\n AlertContext\n} from \"@base\";\n\nimport { initSentry } from \"./utils/sentry\";\nimport { redirectURL } from \"./utils/url\";\nimport { purgeStaleData as purgeStaleAppData } from \"./utils/versioning\";\nimport * as serviceWorker from \"./serviceWorker\";\nimport \"./testing\";\n\nconst ForgotPasswordPage = lazy(() => import(\"./modules/auth/components/ForgotPasswordPage\"));\nconst ResetPasswordPage = lazy(() => import(\"./modules/auth/components/ResetPasswordPage\"));\nconst AcceptInvitePage = lazy(() => import(\"./modules/auth/components/AcceptInvitePage\"));\nconst LoginPage = lazy(() => import(\"./modules/auth/components/LoginPage\"));\nconst App = lazy(() => import(\"./modules/base/components/App\"));\nconst Public = lazy(() => import(\"./modules/base/components/Public\"));\n\nconst SentryRoute = Sentry.withSentryRouting(Route);\n\n/**\n * Generic spinner (loading nothing)\n */\nconst spinner = (\n \n } />\n \n);\n\n/**\n * Purge any stale data from the local storage and session storage\n */\npurgeStaleAPIData();\npurgeStaleAppData();\npurgeStaleUtilsData();\n\nconst cookieConsent = Cookies.get(CookieKeys.cookieConsent);\n\nif (cookieConsent === \"optional\") {\n /**\n * Google Tag Manager args\n * @type {{gtmId: string}}\n */\n const tagManagerArgs = {\n customURL: \"https://ua.connecterra.ai/gtm.js\",\n gtmId: isProduction() ? \"GTM-WQTMJKLB\" : \"GTM-NGLVQPB2\"\n };\n\n TagManager.initialize(tagManagerArgs);\n}\n\n/**\n * Show a spinner while the loco is loading\n */\nReactDOM.render(spinner, document.getElementById(\"root\"));\n\n/**\n * Init Sentry and Loco\n */\ninitSentry()\n .then(() => i18nInit(EnterpriseI18N.endpoints))\n .then(() => {\n if (cookieConsent === \"optional\") {\n GA.initialize(isProduction(process.env.REACT_APP_ANALYTICS_ENV) ? \"G-5J6RQPTH6D\" : \"G-BML74PB84C\");\n }\n\n ReactDOM.render(\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n if (window) {\n window.open(`${redirectURL}/signup${search}${hash}`, \"_self\");\n }\n\n return null;\n }}\n />\n {\n if (window) {\n window.open(\n isProduction()\n ? \"https://www.connecterra.ai/signup\"\n : \"https://connecterra-1-0.webflow.io/signup\",\n \"_self\"\n );\n }\n\n return null;\n }}\n />\n } />\n (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n ,\n document.getElementById(\"root\")\n );\n })\n .catch((error) => {\n throw error;\n });\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","module.exports = faker;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Header\":\"Header--3O1_j\",\"Link\":\"Link--WPJ6e\",\"Empty\":\"Empty--1Uomz\",\"Dropdown\":\"Dropdown--FfzCW\",\"Modal\":\"Modal--SZUR4\",\"Primary\":\"Primary--3__ir\",\"OkBtn\":\"OkBtn--2FHYU\",\"Tabs\":\"Tabs--35srg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"NoHeight\":\"NoHeight--3jhow\",\"Icon\":\"Icon--K_rLv\",\"Small\":\"Small--27wka\",\"Collapse\":\"Collapse--5o4KE\",\"Panel\":\"Panel--2LO4K\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ContentWrapper\":\"ContentWrapper--1139h\",\"AccentWhite\":\"AccentWhite--1NhUh\",\"Border\":\"Border--3YQOR\",\"Title\":\"Title--2lep6\",\"Footer\":\"Footer--18ajf\",\"AccentTeal\":\"AccentTeal--1x7gY\",\"Interactive\":\"Interactive--3EcSW\",\"Padded\":\"Padded--1L4AB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Entry\":\"Entry--2C_uJ\",\"Header\":\"Header--2KOsM\",\"Wrapper\":\"Wrapper--3t_Wh\",\"Skeleton\":\"Skeleton--3eO3g\",\"AddChartLink\":\"AddChartLink--whE4s\",\"Table\":\"Table--1i6Iw\",\"RelatedTitle\":\"RelatedTitle--19kUz\",\"Tabs\":\"Tabs--2d-nK\",\"NoCombinedCorrelations\":\"NoCombinedCorrelations--2QqlT\",\"Metrics\":\"Metrics--Mx-mk\",\"Title\":\"Title--3lp6i\",\"Alert\":\"Alert--utskd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ApplicationWrapper\":\"ApplicationWrapper--1zgW3\",\"SiderWrapper\":\"SiderWrapper--1BqZ2\",\"SiderContent\":\"SiderContent--3iL5K\",\"Logo\":\"Logo--P1Qi3\",\"HeaderWrapper\":\"HeaderWrapper--2DOze\",\"Sandbox\":\"Sandbox--dkKN9\",\"PageContent\":\"PageContent--1KC3n\",\"FooterWrapper\":\"FooterWrapper--3LNti\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"InsightItem\":\"InsightItem--3viF_\",\"Icon\":\"Icon--14WlY\",\"Hidden\":\"Hidden--2cfOI\",\"Title\":\"Title--2Dtg_\",\"Caret\":\"Caret--2Y7GS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ChartCard\":\"ChartCard---Q9-V\",\"Icons\":\"Icons--3uOQC\",\"Title\":\"Title--3mTRn\",\"Metric\":\"Metric--2GEzH\",\"Dropping\":\"Dropping--2_nx0\",\"Div\":\"Div--1LCWT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"AuthWidgetWrapper\":\"AuthWidgetWrapper--umvUk\",\"IntroTitle\":\"IntroTitle--OEUq6\",\"Smile\":\"Smile--3u3Es\",\"Title\":\"Title--24Bqv\",\"NoWhitespace\":\"NoWhitespace--3aRHc\",\"Description\":\"Description--3JS44\",\"Content\":\"Content--3rANv\",\"ContentWrapper\":\"ContentWrapper--2fxYS\",\"Footer\":\"Footer--3cyrR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"DateRangePicker\":\"DateRangePicker--jojAF\",\"DateRange\":\"DateRange--3Ibo7\",\"Label\":\"Label--1pbvj\",\"Date\":\"Date--15voe\",\"Tabs\":\"Tabs--1NGFj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Margin\":\"Margin--2ii4o\",\"Select\":\"Select--CIh0A\",\"Modal\":\"Modal--1oKKG\",\"Alert\":\"Alert---Nq5x\",\"List\":\"List--1_52P\"};","import * as _ from \"lodash\";\nimport { ReactElement, useEffect, FC } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { isDispatched } from \"@ctra/utils\";\n\nimport { Enterprise, DataDictionary, DataDescriptorList, EnterpriseAppState } from \"@ctra/api\";\n\ninterface DataDictionaryProviderProps {\n children: (dataDescriptors: DataDescriptorList, meta: { isLoading: boolean }) => ReactElement | null;\n}\n\n/**\n * Fetch data dictionary\n * @param children\n * @constructor\n * @deprecated in favor of DataDictionaryContext\n */\nexport const DataDictionaryProvider: FC = ({ children }) => {\n const dispatch = useDispatch();\n\n /**\n * Attempt to get data descriptors\n */\n const dataDictionary = useSelector(\n Enterprise.entities.getDataDictionary\n );\n\n /**\n * Tell whether the fetching action has been dispatched\n */\n const dispatched = useSelector((state) =>\n isDispatched(state, DataDictionary.types.FETCH_METRICS)\n );\n\n useEffect(() => {\n if (_.isEmpty(dataDictionary) && !dispatched) {\n dispatch(DataDictionary.actions.fetchMetrics.start());\n }\n }, [dispatch, dispatched, dataDictionary]);\n\n return children(dataDictionary, { isLoading: _.isEmpty(dataDictionary) });\n};\n","import { createContext, FC, useContext, useEffect, useRef, useState } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\n\nimport {\n Enterprise,\n EnterpriseAppState,\n Preferences,\n UserPreferencesEntity,\n UserPreferencesAPI\n} from \"@ctra/api\";\n\nimport { isPending, isDispatched, UnitSystem } from \"@ctra/utils\";\n\ninterface ContextType {\n api: {\n setUserPreferences: (preferences: UserPreferencesAPI) => void;\n };\n meta: {\n isLoading: boolean;\n isUpdating: boolean;\n delayed: boolean;\n };\n preferences: UserPreferencesEntity;\n}\n\n/**\n * Make default context for user preferences\n * @type {React.Context}\n */\nconst DefaultContext = createContext({\n api: {\n setUserPreferences: _.noop\n },\n meta: {\n isLoading: false,\n isUpdating: false,\n delayed: false\n },\n preferences: {\n timezone: null,\n locale: \"en-US\",\n unitSystem: UnitSystem.metric,\n sandbox: {\n isEnabled: false,\n farmId: 0\n }\n }\n});\n\n/**\n * User preferences provider\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @return {JSX.Element}\n */\nconst _UserPreferencesProvider: FC = ({ children }) => {\n const timer = useRef>();\n const [delayed, setDelayed] = useState(false);\n const dispatch = useDispatch();\n\n /**\n * Fetch user preferences from the store\n * @type {UserPreferencesEntity}\n */\n const userPreferences = useSelector(\n (state) =>\n _.merge(\n {\n sandbox: {\n isEnabled: false\n }\n },\n Enterprise.entities.getUserPreferences(state)\n ) as UserPreferencesEntity\n );\n\n /**\n * Tell if the user is logged in\n */\n const isLoggedIn = useSelector(Enterprise.entities.isLoggedIn);\n\n /**\n * Tell if the user preferences fetching call has been dispatched\n * @type {boolean}\n */\n const hasDispatched = useSelector((state) =>\n isDispatched(state, Preferences.types.FETCH_USER_PREFERENCES)\n );\n\n /**\n * Tell if the value fetching call is in progress\n */\n const isLoading = useSelector((state) =>\n isPending(state, Preferences.types.FETCH_USER_PREFERENCES)\n );\n\n /**\n * Check whether the preference updation is in progress\n */\n const isUpdating = useSelector((state) =>\n isPending(state, Preferences.types.SET_USER_PREFERENCES)\n );\n\n /**\n * Start a timer to tell whether the loading takes a long time\n */\n useEffect(() => {\n const timeout = 1000;\n\n if (isLoading || isUpdating) {\n timer.current = setTimeout(() => {\n setDelayed(true);\n }, timeout);\n } else {\n if (delayed) {\n setDelayed(false);\n }\n\n if (timer.current) {\n clearTimeout(timer.current);\n }\n }\n\n return () => {\n if (delayed) {\n setDelayed(false);\n }\n\n if (timer.current) {\n clearTimeout(timer.current);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isLoading, isUpdating]);\n\n /**\n * load user preferences\n */\n useEffect(() => {\n if (isLoggedIn && !hasDispatched) {\n dispatch(Preferences.actions.fetchUserPreferences.start());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isLoggedIn, hasDispatched]);\n\n return (\n } updates\n */\n setUserPreferences: (updates) => {\n if (isLoggedIn) {\n dispatch(Preferences.actions.setUserPreferences.start(updates));\n }\n }\n },\n meta: {\n delayed,\n isLoading,\n isUpdating\n },\n preferences: userPreferences\n }}\n >\n {children}\n \n );\n};\n\nexport const UserPreferencesContext = {\n Provider: _UserPreferencesProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Hook to get the user preferences\n * @return {ContextType}\n */\nexport const useUserPreferences = (): ContextType => useContext(DefaultContext);\n","import { FC, useState, createContext, useContext, useEffect } from \"react\";\nimport { useDeepCompareEffect } from \"use-deep-compare\";\nimport * as _ from \"lodash\";\n\nimport { enUS, esES, nlNL, ConfigProvider } from \"@ctra/components\";\nimport { UnitSystem, Optional, Nullable } from \"@ctra/utils\";\n\nimport {\n SupportedLocaleKeys,\n defaultLocale,\n storeAppLocale,\n loadAppLocale,\n useTranslation,\n getStorageKey\n} from \"@ctra/i18n\";\n\nimport { useUserPreferences } from \"../UserPreferencesContext\";\n\n/**\n * key for local storage of unit system\n */\nconst unitSystemKey = `${getStorageKey({ persist: true })}.localization`;\n\n/**\n * Load unit system from local storage or returns a default\n * @returns unitSystem\n */\nexport const loadUnitSystem = (): UnitSystem =>\n (localStorage.getItem(unitSystemKey) as UnitSystem) || UnitSystem.imperial;\n\n/**\n * Localization date format defaults per locale\n * @type {{\"nl-NL\": any, \"en-US\": string, \"es-MX\": any}}\n */\nconst formats: Record> = {\n \"en-US\": \"MM/DD/YYYY\",\n \"es-MX\": void 0,\n \"nl-NL\": void 0\n};\n\n/**\n * Ant design locales\n * @type {{\"nl-NL\": Locale, \"en-US\": Locale, \"es-MX\": Locale}}\n */\nconst antLocales = {\n \"en-US\": enUS,\n \"es-MX\": esES,\n \"nl-NL\": nlNL\n};\n\n/**\n * set unit system within local storage\n * @param unitSystem\n */\nconst storeUnitSystem = (unitSystem: UnitSystem): void => localStorage.setItem(unitSystemKey, unitSystem);\n\ninterface ContextType {\n unitSystem: UnitSystem;\n locale: SupportedLocaleKeys;\n dateFormat: Optional;\n updateUnitSystem: (unit: UnitSystem) => void;\n updateLocale: (locale: SupportedLocaleKeys) => void;\n meta: {\n isLoading: boolean;\n };\n}\n\n/**\n * Make default context for unit system\n */\nconst DefaultContext = createContext({\n unitSystem: loadUnitSystem(),\n locale: loadAppLocale(),\n updateUnitSystem: _.noop,\n updateLocale: _.noop,\n dateFormat: formats[defaultLocale],\n meta: {\n isLoading: true\n }\n});\n\n/**\n * Provide the localization context to the translation system and the app\n * @param children\n * @private\n */\nconst _LocalizationContextProvider: FC = ({ children }) => {\n const [unitSystem, setUnitSystem] = useState(loadUnitSystem());\n const [locale, setLocale] = useState(loadAppLocale());\n const [tz, setTz] = useState>(null);\n const { setTranslationContext } = useTranslation();\n\n const {\n api: { setUserPreferences },\n meta: { isLoading, isUpdating },\n preferences\n } = useUserPreferences();\n\n /**\n * update according to user preferences\n */\n useDeepCompareEffect(() => {\n if (!_.isEmpty(preferences)) {\n const { unitSystem, locale, timezone } = preferences;\n\n setUnitSystem(unitSystem);\n storeUnitSystem(unitSystem);\n setLocale(loadAppLocale(locale));\n setTz(timezone);\n }\n }, [preferences]);\n\n /**\n * Update translation context whenever unit system changes\n */\n useEffect(() => {\n setTranslationContext({ unitSystem });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [unitSystem]);\n\n /**\n * Set unit system in the app:\n * set local state, local storage and user preferences\n * @param {UnitSystem} unitSystem\n */\n const updateUnitSystem = (unitSystem: UnitSystem): void => {\n setUnitSystem(unitSystem);\n storeUnitSystem(unitSystem);\n setUserPreferences({ unitSystem, locale, timezone: tz });\n };\n\n /**\n * Set locale in the app:\n * set local state, local storage and user preferences\n * @param {SupportedLocaleKeys} locale\n */\n const updateLocale = (locale: SupportedLocaleKeys) => {\n setLocale(loadAppLocale(locale));\n storeAppLocale(locale);\n setUserPreferences({ locale, unitSystem, timezone: tz });\n };\n\n return (\n \n \n {children}\n \n \n );\n};\n\nexport const LocalizationContext = {\n Provider: _LocalizationContextProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Hook to get the unit system and setter from within the context\n */\nexport const useLocalization = (): ContextType => useContext(DefaultContext);\n","import { createContext, FC, useContext, useEffect, useMemo } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\n\nimport {\n DataDescriptorList,\n EnterpriseAppState,\n Enterprise,\n DataDictionary,\n DataDescriptorEntity,\n MetricCollection,\n MetricEntity,\n ChartList,\n EnumList\n} from \"@ctra/api\";\n\nimport { isDispatched, Optional } from \"@ctra/utils\";\nimport { useFarm, useFarmList } from \"@farms\";\nimport * as Sentry from \"@sentry/react\";\nimport { useEvent } from \"@events\";\nimport { useDeepCompareMemo } from \"use-deep-compare\";\n\nexport interface ChartInfo {\n familyName: Optional;\n metricName: string;\n variantType: string;\n sourceNames: Optional;\n nameToDisplay: string;\n}\n\ntype ChartSource = {\n metric: string;\n source: string | undefined;\n variant: string;\n};\n\ninterface ContextType {\n /**\n * all the data descriptors\n */\n dataDescriptors: DataDescriptorList;\n /**\n * all the metrics\n */\n metrics: MetricCollection;\n /**\n * subsets of data descriptors which are frequently used\n */\n subsets: {\n /**\n * data descriptors supported by the current farm\n */\n farm: Array;\n /**\n * data descriptors which support projections\n */\n projectionsEnabled: Array;\n /**\n * data descriptors supported by the current event scope\n */\n eventScoped: Array;\n /**\n * data descriptors which may render a chart for the current scope\n */\n chartScoped: Array;\n };\n groups: {\n /**\n * metrics grouped by category\n */\n byCategory: _.Dictionary<[MetricEntity, ...MetricEntity[]]>;\n /**\n * metrics grouped by family\n */\n byFamilyCategory: {\n [x: string]: _.Dictionary<[MetricEntity, ...MetricEntity[]]>;\n };\n /**\n * all the metric families\n */\n families: Pick<_.Dictionary<[MetricEntity, ...MetricEntity[]]>, string | number>;\n /**\n * metrics which support projections\n */\n projectionMetrics: Array;\n };\n api: {\n /**\n * Extract the combination of metric/source/variant from a metric ID\n * @param {MetricEntity[\"id\"]} variantID\n * @returns {Optional}\n */\n extractSource: (variantID: MetricEntity[\"id\"]) => Optional;\n /**\n * Extract all the information needed to display a chart\n * @param {ChartSource} chart\n * @returns {{familyName: Optional, metricName: string, variantType: string, sourceNames: Optional, nameToDisplay: string}}\n */\n extractChartInfo: (chart: ChartSource) => ChartInfo;\n /**\n * Handle a metric value change\n * @param {MetricEntity[\"id\"]} metric\n * @param {string} source\n * @param {string} variant\n * @returns {ChartSource}\n */\n handleMetricChanges: (metric: MetricEntity[\"id\"], source?: string, variant?: string) => ChartSource;\n };\n /**\n * meta information about the data dictionary\n */\n meta: {\n /**\n * all the enums\n */\n enums: EnumList;\n /**\n * whether the data dictionary is the root one (not nested in each other)\n */\n isDefault: boolean;\n /**\n * whether the data dictionary is still loading\n */\n isLoading: boolean;\n };\n}\n\n/**\n * Make a default context for user entities\n * @type {React.Context}\n */\nconst DefaultContext = createContext({\n dataDescriptors: {},\n metrics: {},\n meta: { isLoading: true, isDefault: true, enums: {} },\n groups: { byCategory: {}, byFamilyCategory: {}, families: {}, projectionMetrics: [] },\n api: {\n extractSource: () => void 0,\n extractChartInfo: () => {\n return {\n familyName: void 0,\n metricName: \"\",\n variantType: \"\",\n sourceNames: void 0,\n nameToDisplay: \"\"\n };\n },\n handleMetricChanges: () => {\n return {\n metric: \"\",\n source: void 0,\n variant: \"\"\n };\n }\n },\n subsets: {\n farm: [],\n eventScoped: [],\n chartScoped: [],\n projectionsEnabled: []\n }\n});\n\n/**\n * Hook to get the user info within the context\n */\nexport const useDataDictionary = (): ContextType => useContext(DefaultContext);\n\n/**\n * Data dictionary provider\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @return {JSX.Element}\n */\nconst _DataDictionaryProvider: FC = ({ children }) => {\n const dispatch = useDispatch();\n const { farm } = useFarm();\n const { farmList } = useFarmList();\n const { event } = useEvent();\n const eventScope = event?.scope.type;\n\n const {\n meta: { isDefault }\n } = useDataDictionary();\n\n if (!isDefault) {\n console.error(\"You should not nest DataDictionaryContext.\");\n\n Sentry.captureException(\"Nested data dictionary contexts.\", {\n tags: {\n diagnostics: \"dataDictionaryError\"\n }\n });\n }\n\n /**\n * Attempt to get metrics\n */\n const metrics = useSelector((state) =>\n Enterprise.entities.getMetricList(state, { farmID: farm?.id })\n );\n\n /**\n * Get the chart list from the store\n * @type {ChartList}\n */\n const charts = useSelector((state) =>\n Enterprise.entities.getChartList(state)\n );\n\n /**\n * Attempt to get data descriptors\n * @type {DataDescriptorList}\n */\n const dataDictionary = useSelector((state) =>\n isDefault ? Enterprise.entities.getDataDictionary(state) : {}\n );\n\n /**\n * Attempt to get all enums\n * @type {DataDescriptorList}\n */\n const enums = useSelector((state) => Enterprise.entities.getEnums(state));\n\n /**\n * Pick only the metrics that do have \"farm\" variants if no farm is selected. Omit the rest\n */\n const allFarmMetrics = _.filter(metrics, ({ variants }) =>\n _.some(variants, (variant) =>\n _.isEqual(_.get(dataDictionary, [variant, \"dataProperties\", \"type\"]), \"farm\")\n )\n );\n\n /**\n * Group metrics by category\n */\n const categoryGroup = _.groupBy((farm ? metrics : allFarmMetrics) as MetricCollection, \"category\");\n /**\n * Add a layer of family group\n * if the group does not exist, group it by name for the sake of level consistency\n */\n const categoryFamilyGroup = _.mapValues(categoryGroup, (metric) =>\n _.groupBy(metric, ({ family, id }) => family || id)\n );\n\n /**\n * Get only a list of families\n */\n const metricFamilies = _.omit(\n _.groupBy(metrics, ({ family }) => family),\n \"undefined\"\n );\n /**\n * Get the farm subset (descriptors supported by the current farm)\n * @type {Array}\n */\n const farmSubset = useSelector>((state) =>\n isDefault\n ? farm?.id\n ? _.map(\n Enterprise.entities.getDataDictionary(state, {\n filter: { supportedFarms: [farm.id], dataProperties: { type: \"farm\" } }\n }),\n \"id\"\n )\n : []\n : []\n );\n\n /**\n * Get the event scoped subset\n * @type {Array}\n */\n const eventScopedSubset = useSelector>((state) =>\n isDefault\n ? farm?.id\n ? _.map(\n Enterprise.entities.getDataDictionary(state, {\n filter: { supportedFarms: [farm.id], dataProperties: { type: eventScope } }\n }),\n \"id\"\n )\n : []\n : []\n );\n\n /**\n * Get the data descriptors which support projections\n * @type {Array}\n */\n const projectionEnabledSubset = useDeepCompareMemo(() => {\n return _.map(\n _.filter(\n dataDictionary,\n ({ projectionEnabledFarms, valueProperties: { maxProjectionInterval } }) =>\n !!maxProjectionInterval && farm?.id\n ? _.includes(projectionEnabledFarms, farm.id)\n : _.size(projectionEnabledFarms) > 0 // _.isEqual(_.sortBy(projectionEnabledFarms), _.sortBy(_.map(farmList, \"id\")))\n ),\n \"id\"\n );\n }, [farm, farmList]);\n\n /**\n * Get the metrics which support projections\n * @returns metric id or family name\n */\n const projectionMetrics = _.chain(metrics)\n .values()\n .filter((metric) => _.some(metric.variants, (variant) => _.includes(projectionEnabledSubset, variant)))\n .map(({ family, id }) => _.defaultTo(family, id))\n .value();\n\n /**\n * Count the number of metrics (which can indicate an update)\n * @type {number}\n */\n const metricCount = _.size(dataDictionary);\n\n /**\n * Get the data descriptors which may render a chart for the current scope.\n * Eg. filter out when a farm is picked but not supported or all farms are picked but the chart supports a single farm\n * @type {Array}\n */\n const chartSubset = useMemo(\n () =>\n isDefault\n ? _.map(\n _.pickBy(dataDictionary, (dataDescriptor) => {\n const { supportedFarms, supportedCharts } = dataDescriptor;\n const [mainChartID] = supportedCharts;\n\n const {\n flags: { isMultiFarmFilterSupported }\n } = charts[mainChartID];\n\n /**\n * Tell if the selected farm is supported by the data descriptor,\n * or whether the chart supports multiple farms\n */\n const supportsCurrentFarmView = farm?.id\n ? supportedFarms.includes(farm.id)\n : isMultiFarmFilterSupported;\n\n return supportsCurrentFarmView;\n }),\n \"id\"\n )\n : [],\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [metricCount, farm, isDefault]\n );\n\n /**\n * Tell whether the fetching action has been dispatched\n * @type {boolean}\n */\n const dispatched = useSelector((state) =>\n isDispatched(state, DataDictionary.types.FETCH_METRICS)\n );\n\n /**\n * Tell whether the fetching action has been dispatched for enums\n * @type {boolean}\n */\n const enumsActionDispatched = useSelector((state) =>\n isDispatched(state, DataDictionary.types.FETCH_ENUMS)\n );\n\n /**\n * Fetch the data dictionary if it is not yet present in the store\n */\n useEffect(() => {\n if (isDefault && _.isEmpty(dataDictionary) && !dispatched) {\n dispatch(DataDictionary.actions.fetchMetrics.start());\n }\n }, [dispatch, isDefault, dispatched, dataDictionary]);\n\n /**\n * Fetch the enums if not yet present in the store\n */\n useEffect(() => {\n if (_.isEmpty(enums) && !enumsActionDispatched) {\n dispatch(DataDictionary.actions.fetchEnums.start());\n }\n }, [dispatch, enums, enumsActionDispatched]);\n\n /********** API section *******/\n\n /**\n * Util to extract the combination of metric/source/variant from a metric ID\n * @param variantID\n * @param metrics\n * @returns\n */\n const extractSource = (variantID: MetricEntity[\"id\"]) => {\n const metric = _.find(metrics, ({ variants }) => _.includes(variants, variantID));\n\n if (metric?.family) {\n return { metric: metric.family, source: metric.id, variant: variantID };\n }\n\n return metric && { metric: metric.id, source: void 0, variant: variantID };\n };\n\n /**\n * Extracts all the information needed to display a chart\n * @param chart\n * @returns\n */\n const extractChartInfo = (chart: ChartSource): ChartInfo => {\n const familyName =\n chart &&\n _.get(\n _.find(metrics, ({ family }) => _.isEqual(family, chart.metric)),\n \"family\"\n );\n\n const metricName = (chart && _.get(metrics, [chart.metric, \"name\"])) as string;\n const variantType = chart && _.get(dataDictionary, [chart.variant, \"dataProperties\", \"type\"]);\n const sourceNames = (chart?.source && _.get(metrics, [chart.source, \"sourceTypes\"])) || void 0;\n\n const nameToDisplay = familyName || metricName;\n\n return { familyName, metricName, variantType, sourceNames, nameToDisplay };\n };\n\n /**\n * Handle a metric value change\n * @param {MetricEntity[\"id\"]} metric\n * @param {string} source\n * @param {string} variant\n */\n const handleMetricChanges = (metric: MetricEntity[\"id\"], source?: string, variant?: string) => {\n const initialSources = _.get(metricFamilies, metric);\n const initialSourceID = source || _.first(initialSources)?.id;\n\n const initialVariants = _.get(metrics, [initialSourceID || metric, \"variants\"]);\n /**\n * Get the farm type variant\n */\n const farmVariant = _.find(initialVariants, (variant) =>\n _.isEqual(_.get(dataDictionary, [variant, \"dataProperties\", \"type\"]), \"farm\")\n );\n /**\n * If no farm selected, then use the per farm variant, otherwise use the variant passed. Default to the first one\n */\n const initialVariantID = (\n !farm ? farmVariant : _.defaultTo(variant, farmVariant || _.first(initialVariants))\n ) as string;\n\n return { metric, source: initialSourceID, variant: initialVariantID };\n };\n\n /********** API section end *******/\n\n return isDefault ? (\n \n {children}\n \n ) : (\n <>{children}\n );\n};\n\n/**\n * Context for the data dictionary\n * @type {{Consumer: React.ExoticComponent>, Provider: React.FunctionComponent<{}>}}\n */\nexport const DataDictionaryContext = {\n Consumer: DefaultContext.Consumer,\n Provider: _DataDictionaryProvider\n};\n","import { ComponentProps, createContext, FC, useContext, useState } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Alert } from \"@ctra/components\";\n\ninterface ContextType {\n messages: Record>;\n api: {\n add: (id: string, props: ComponentProps) => void;\n remove: (id: string) => void;\n };\n}\n\nconst DefaultContext = createContext({\n messages: {},\n api: {\n add: _.noop,\n remove: _.noop\n }\n});\n\n/**\n * User list context provider\n * @param {\"compat\" | \"consent\"} source\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @return {JSX.Element}\n */\nconst _AlertContextProvider: FC = ({ children }) => {\n const [messages, setMessages] = useState>>({});\n\n return (\n setMessages((prev) => ({ ...prev, [id]: props })),\n remove: (id) => setMessages((prev) => _.omit(prev, id))\n }\n }}\n >\n {children}\n \n );\n};\n\nexport const AlertContext = {\n Provider: _AlertContextProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Make a hook to access the context in FCs\n */\nexport const useAlerts = (): ContextType => useContext(DefaultContext);\n","import * as _ from \"lodash\";\nimport { createContext, FC, PropsWithChildren, useContext, useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport {\n Enterprise as App,\n EnterpriseAppState,\n Invitation,\n InvitationList,\n InvitationType,\n ReferralEntity,\n ReferralStatus,\n ReferralType\n} from \"@ctra/api\";\n\nimport { GAEvent } from \"@ctra/analytics\";\nimport { isFulfilled, isPending, isDispatched } from \"@ctra/utils\";\nimport { Button } from \"@ctra/components\";\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\n\nimport { useFarmList } from \"@farms\";\n\nimport { useAlerts } from \"../AlertContext\";\nimport { useSession } from \"@auth\";\nimport { GACategories } from \"@network\";\n\ninterface ContextType {\n sent: InvitationList;\n received: InvitationList;\n pending: Array;\n api: {\n handleAccept: (code: string) => void;\n handleDecline: (code: string) => void;\n handleDelete: (id: ReferralEntity[\"id\"]) => void;\n };\n meta: {\n isLoading: boolean;\n };\n}\n\nconst DefaultContext = createContext({\n sent: {},\n received: {},\n pending: [],\n api: {\n handleAccept: _.noop,\n handleDecline: _.noop,\n handleDelete: _.noop\n },\n meta: {\n isLoading: false\n }\n});\n\nconst {\n network: {\n referrals: {\n alerts: { invitationAccepted }\n }\n }\n} = Content;\n\n/**\n * Invitation context\n * @param children\n * @param params\n * @private\n */\nconst _InvitationContextProvider: FC>> = ({ children }) => {\n const { farmList } = useFarmList();\n const dispatch = useDispatch();\n const [needsRefresh, setNeedsRefresh] = useState();\n const { t } = useTranslation();\n\n const {\n api: { reset }\n } = useSession();\n\n const {\n api: { add, remove }\n } = useAlerts();\n\n /**\n * Tell if the user has farms\n * @type {boolean}\n */\n const hasFarms = !_.isEmpty(farmList);\n\n /**\n * Get the received invitations\n * @type {InvitationList}\n */\n const received = useSelector((state) =>\n App.entities.getReferrals(state, { variant: InvitationType.received })\n );\n\n /**\n * Get the sent invitations\n * @type {InvitationList}\n */\n const sent = useSelector((state) =>\n App.entities.getReferrals(state, { variant: InvitationType.sent })\n );\n\n /**\n * Tell if the invitation list has been dispatched\n * @type {boolean}\n */\n const dispatched = useSelector((state) =>\n isDispatched(state, Invitation.types.FETCH_INVITATION_LIST)\n );\n\n /**\n * Filter and get only the invitations not accepted yet\n * @type {ReferralEntity[]}\n */\n const pending = _.filter(received, ({ type, status }) => {\n const isPending = !_.isEqual(status, ReferralStatus.accepted);\n const mayAccept = hasFarms || _.isEqual(type, ReferralType.farmerToUser);\n\n return isPending && mayAccept;\n });\n\n /**\n * Tell if the invitation list is loading\n * @type {boolean}\n */\n const isFetching = useSelector((state) =>\n isPending(state, Invitation.types.FETCH_INVITATION_LIST)\n );\n\n /**\n * Tell is an invitation is being accepted\n * @type {boolean}\n */\n const isAccepting = useSelector((state) =>\n isPending(state, Invitation.types.ACCEPT_INVITATION)\n );\n\n /**\n * Tell if the invitation is deleting\n * @type {boolean}\n */\n const isDeleting = useSelector((state) =>\n isPending(state, Invitation.types.DELETE_INVITATION)\n );\n\n /**\n * Tell if an invitation is accepted\n * @type {boolean}\n */\n const accepted = useSelector((state) =>\n isFulfilled(state, Invitation.types.ACCEPT_INVITATION)\n );\n\n /**\n * Accept the invitation\n * @param {string} code\n */\n const handleAccept = (code: string) => {\n const invitation = _.find(received, { code });\n\n if (invitation) {\n const { type } = invitation;\n\n /**\n * The reason we never set it to false is because\n * the notification should always stay visible, even\n * if the user accepts another type of invitation in the meantime.\n * After the refresh this will go away.\n */\n if (type === ReferralType.farmerToUser) {\n setNeedsRefresh(true);\n }\n\n GAEvent(GACategories.network, \"Accept referral\", JSON.stringify({ type, code }));\n dispatch(Invitation.actions.acceptInvitation.start(code));\n }\n };\n\n /**\n * Delete the invitation\n * @param {ReferralEntity[\"id\"]} id\n */\n const handleDelete = (id: ReferralEntity[\"id\"]) => {\n GAEvent(GACategories.network, \"Delete referral\", JSON.stringify({ id }));\n dispatch(Invitation.actions.deleteInvitation.start(id));\n };\n\n useEffect(() => {\n if (!dispatched) {\n dispatch(Invitation.actions.fetchInvitationList.start());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dispatched]);\n\n /**\n * If invitation is accepted, remove any params (invitation)\n * flush and reload\n */\n useEffect(() => {\n if (accepted && needsRefresh) {\n add(\"invitationAccepted\", {\n showIcon: true,\n message: t(invitationAccepted.title), // \"Invitation accepted successfully\",\n description: t(invitationAccepted.description), // \"Please reload the app to see the updates.\",\n action: (\n {\n GAEvent(GACategories.network, \"Reload app after invitation accepted\");\n reset();\n }}\n >\n {t(invitationAccepted.cta)}\n \n ),\n type: \"success\"\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [accepted, needsRefresh]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const InvitationContext = {\n Provider: _InvitationContextProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Make a hook to access the context in FCs\n */\nexport const useInvitation = (): ContextType => useContext(DefaultContext);\n","import { createContext, FC, useContext, useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useDeepCompareEffect } from \"use-deep-compare\";\n\nimport { RemoteSession, Signup, Enterprise, EnterpriseAppState } from \"@ctra/api\";\nimport { isDispatched, isPending, isFulfilled, Nullable } from \"@ctra/utils\";\n\nimport { Routes } from \"@routes\";\nimport { useUserPreferences } from \"../UserPreferencesContext\";\n\ninterface ContextType {\n meta: {\n isInitialLoading: boolean;\n isLoading: boolean;\n dataIntegrated: boolean;\n };\n session: Partial;\n}\n\nconst DefaultContext = createContext({\n meta: {\n isInitialLoading: true,\n isLoading: true,\n dataIntegrated: false\n },\n session: {}\n});\n\n/**\n * Data integration context provider\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @return {JSX.Element}\n */\nconst _DataIntegrationContextProvider: FC = ({ children }) => {\n const dispatch = useDispatch();\n const [initial, setInitial] = useState(true);\n const [remoteSession, setRemoteSession] = useState>({});\n\n const {\n preferences: { sandbox }\n } = useUserPreferences();\n\n /**\n * Check if the remote session has been dispatched\n * @type {boolean}\n */\n const hasDispatched = useSelector((state) =>\n isDispatched(state, Signup.types.GET_REMOTE_SESSION)\n );\n\n /**\n * Check if the remote session is loading\n * @type {boolean}\n */\n const isLoading = useSelector((state) =>\n isPending(state, Signup.types.GET_REMOTE_SESSION)\n );\n\n /**\n * Check the remote session status\n */\n const [, response] = useSelector>]>((state) =>\n isFulfilled(state, Signup.types.GET_REMOTE_SESSION, { withPayload: true })\n );\n\n useEffect(() => {\n if (!hasDispatched) {\n dispatch(Signup.actions.getRemoteSession.start());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [hasDispatched]);\n\n /**\n * Set initial to false when remote session is available\n */\n useDeepCompareEffect(() => {\n if (response) {\n setRemoteSession(response);\n\n if (initial) {\n setInitial(false);\n }\n }\n }, [response]);\n\n /**\n * Any status but \"Closed\" will redirect to overview\n */\n // useEffect(() => {\n // if (remoteSession.status !== \"Closed\") {\n // Enterprise.history.push(Routes.app.overview.index);\n // }\n // }, [remoteSession.status]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const DataIntegrationContext = {\n Provider: _DataIntegrationContextProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Use data integration\n * @return {ContextType}\n */\nexport const useDataIntegration = (): ContextType => useContext(DefaultContext);\n","import { createContext, FC, useContext, useEffect } from \"react\";\nimport * as _ from \"lodash\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useFarm } from \"@farms\";\nimport { Enterprise, EnterpriseAppState, User, UserList } from \"@ctra/api\";\nimport { isDispatched, isPending } from \"@ctra/utils\";\n\ninterface ContextType {\n users: UserList;\n meta: {\n isLoading: boolean;\n };\n}\n\nconst DefaultContext = createContext({\n users: {},\n meta: {\n isLoading: true\n }\n});\n\n/**\n * User list context provider\n * @param {\"compat\" | \"consent\"} source\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @return {JSX.Element}\n */\nconst _UserListContextProvider: FC = ({ children }) => {\n const dispatch = useDispatch();\n const { farm } = useFarm();\n const farmId = _.defaultTo(farm?.id, -1);\n\n /**\n * Get all the users of the app\n */\n const users = useSelector((state) =>\n Enterprise.entities.getUserList(state, { farmID: farm?.id })\n );\n\n /**\n * Tell whether the fetching action has been dispatched\n */\n const dispatched = useSelector((state) =>\n isDispatched(state, User.types.FETCH_USER_LIST, { primaryValue: farmId })\n );\n\n /**\n * Tell if the data request is in progress\n */\n const isLoading = useSelector((state) =>\n isPending(state, User.types.FETCH_USER_LIST, { primaryValue: farmId })\n );\n\n useEffect(() => {\n if (!dispatched) {\n dispatch(User.actions.fetchUserList.start(farmId > -1 ? \"consent\" : \"compat\", farmId));\n }\n }, [dispatch, dispatched, farmId]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const UserListContext = {\n Provider: _UserListContextProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Make a hook to access the context in FCs\n */\nexport const useUserList = (): ContextType => useContext(DefaultContext);\n","import { FC, createContext, useContext, useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport * as _ from \"lodash\";\n\nimport {\n AccountState,\n DHMSDetails,\n EnterpriseAppState,\n FarmDetailsRequestPayload,\n Farms,\n User,\n UserInfoRequestPayload\n} from \"@ctra/api\";\n\nimport { isDispatched, isFulfilled, isPending } from \"@ctra/utils\";\nimport { useCurrentUser } from \"@auth\";\nimport { useCalendlyAppointment } from \"@ctra/components\";\n\ninterface ContextType {\n accountDetails: Partial;\n farmDetails: Partial>;\n dhms: Partial;\n progress: Array<[string, boolean]>;\n api: {\n fetchFarmDetails: () => void;\n fetchAccountDetails: () => void;\n };\n meta: {\n isLoading: boolean;\n };\n}\n\nconst DefaultContext = createContext({\n accountDetails: {},\n farmDetails: {},\n dhms: {},\n progress: [],\n api: {\n fetchFarmDetails: _.noop,\n fetchAccountDetails: _.noop\n },\n meta: {\n isLoading: true\n }\n});\n\n/**\n * Context provider for account & farm details\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @return {JSX.Element}\n */\nconst _AccountContextProvider: FC = ({ children }) => {\n const dispatch = useDispatch();\n const { event } = useCalendlyAppointment();\n\n const {\n meta: { isSignupCompleted }\n } = useCurrentUser();\n\n const { dhms, accountDetails, farmDetails } = useSelector(\n (state) => state.account\n );\n\n /**\n * Get the farm details fetch status\n * @type {[boolean, boolean, boolean]}\n */\n const farmDetailsFetchStatus = useSelector((state) => [\n isDispatched(state, Farms.types.FETCH_USER_FARM),\n isPending(state, Farms.types.FETCH_USER_FARM),\n isFulfilled(state, Farms.types.FETCH_USER_FARM)\n ]);\n\n const [fdFetchDispatched, fdFetchPending, fdFetchFulfilled] = farmDetailsFetchStatus;\n\n /**\n * Get the account details fetch status\n * @type {[boolean, boolean, boolean]}\n */\n const accountDetailsFetchStatus = useSelector((state) => [\n isDispatched(state, User.types.FETCH_ACCOUNT_DETAILS),\n isPending(state, User.types.FETCH_ACCOUNT_DETAILS),\n isFulfilled(state, User.types.FETCH_ACCOUNT_DETAILS)\n ]);\n\n const [adFetchDispatched, adFetchPending, adFetchFulfilled] = accountDetailsFetchStatus;\n\n /**\n * Fetch the context information\n */\n useEffect(() => {\n if (!fdFetchDispatched) {\n dispatch(Farms.actions.fetchUserFarm.start());\n }\n\n if (!adFetchDispatched) {\n dispatch(User.actions.fetchAccountDetails.start());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fdFetchDispatched, adFetchDispatched]);\n\n /**\n * Check list for progress\n * @type {boolean[]}\n */\n const progressCheckList: Array<[string, boolean]> = [\n [\"farmDetails\", !_.isEmpty(farmDetails)],\n [\"dhms\", !_.isEmpty(dhms)],\n [\n \"accountDetails\",\n _.size(_.pickBy(accountDetails, _.negate(_.isEmpty))) >=\n 5 /* implicitly check whether all fields are filled in */\n ],\n [\"appointment\", isSignupCompleted || !!event]\n ];\n\n return (\n dispatch(Farms.actions.fetchUserFarm.start()),\n fetchAccountDetails: () => dispatch(User.actions.fetchAccountDetails.start())\n },\n meta: {\n isLoading: fdFetchPending || adFetchPending || (!fdFetchDispatched && !adFetchDispatched)\n }\n }}\n >\n {children}\n \n );\n};\n\nexport const AccountContext = {\n Provider: _AccountContextProvider,\n Consumer: DefaultContext.Consumer\n};\n\nexport const useAccount = (): ContextType => useContext(DefaultContext);\n","import { buildRoutes, compileRoutes } from \"@ctra/utils\";\n\nimport {\n ChartEntity,\n ChartFilters,\n ChartTimePeriod,\n DataDescriptorEntity,\n FarmEntity,\n ISODuration,\n SavedCardState,\n V3DisplayFilter\n} from \"@ctra/api\";\n\nimport { base, pbl } from \"./base/routes\";\nimport { auth } from \"./auth/routes\";\nimport { overview, dashboards } from \"./overview/routes\";\nimport { farms } from \"./farms/routes\";\nimport { analytics } from \"./analytics/routes\";\nimport { settings } from \"./settings/routes\";\nimport { insights } from \"./insights/routes\";\nimport { timeline } from \"./events/routes\";\nimport { farmSummaries } from \"./farm-summaries/routes\";\nimport { iofc } from \"./iofc/routes\";\nimport { network } from \"./network/routes\";\n\nimport { ContextType } from \"@chart\";\nimport { ChartInfo } from \"@base\";\n\nexport interface URIState {\n zoom?: {\n dataDescriptorID: DataDescriptorEntity[\"id\"];\n filters?: ChartFilters;\n legendValues?: Array;\n isoDuration?: ISODuration;\n timePeriod?: ChartTimePeriod;\n view?: string;\n dashboard?: string;\n displayFilters?: V3DisplayFilter[];\n };\n browseChart?: {\n openPanels?: string;\n };\n editChart?: {\n chartID: SavedCardState[\"id\"];\n dashboard: string;\n };\n feedback?: {\n sourceType: string;\n sourceID: string;\n base64Content: string;\n context?: Record;\n };\n shareChart?: {\n instance: number;\n farmID?: FarmEntity[\"id\"];\n requestURL: string;\n base64Content?: string;\n chartID: ChartEntity[\"id\"];\n filterContext: Pick;\n dataDescriptorID: DataDescriptorEntity[\"id\"];\n };\n timeline?: {\n disabled?: boolean;\n };\n navigation?: {\n farmSelect: {\n overview: {\n open: boolean;\n };\n sidebar: {\n open: boolean;\n };\n };\n };\n savedChart?: SavedCardState;\n dashboard?: string;\n}\n\n/**\n * Route strings for Enterprise\n * @note the weird looking destructuring actually helps getting rid of circular imports in tests, no idea how\n */\nexport const Routes = buildRoutes({\n _root: \"\",\n auth,\n public: pbl, // published pages, but user not is logged in\n app: {\n ...base,\n overview,\n insights,\n farms,\n analytics,\n settings,\n dashboards,\n timeline,\n farmSummaries,\n iofc,\n network,\n public: pbl, // published pages, but user is logged in\n helpCenter: {\n _root: \"/helpcenter\"\n }\n }\n});\n\n/**\n * Compiled route strings which are callable. It comes handy during\n * navigation as you do not need to individually compile any path.\n * @example\n * ```ts\n * assert(Routes.app.farms.farm === \"/app/farms/:farmID/\");\n * CompiledRoutes.app.farms.farm({ farmID: 1 });\n * // \"/app/farms/1/\"\n * ```\n */\nexport const CompiledRoutes = compileRoutes(Routes);\n","export const insights = {\n _root: \"/insights\",\n manage: {\n _root: \"/manage\",\n farm: {\n _root: \"/:farmID\",\n enable: \"/enable\",\n insight: {\n _root: \"/:dataDescriptorID\",\n edit: { _root: \"/edit\", group: \"/:group\" }\n }\n }\n }\n};\n","export const iofc = {\n _root: \"/iofc\"\n};\n","export const network = {\n _root: \"/network\",\n invite: {\n _root: \"/invite\",\n new: \"/new\",\n edit: \"/:invitationId\"\n },\n requestAccess: \"/request-access\"\n};\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgUser(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 500 500\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M499.1 451a18 18 0 0 0-7.7-12.1 18.4 18.4 0 0 0-28.2 19.6 4.1 4.1 0 0 1-1 3.5 3.4 3.4 0 0 1-2.8 1.3H40.5c-.5 0-1 0-1.6-.3-.5-.3-.9-.6-1.2-1a3.8 3.8 0 0 1-.8-3.5A218 218 0 0 1 110.5 337c37.4-31.2 84.3-49 133.1-50.7H255a219 219 0 0 1 176 96.1 18.4 18.4 0 0 0 30.6-20.3A254 254 0 0 0 328 262.6a143 143 0 0 0 59.2-160.4A143 143 0 0 0 249.6 0a144 144 0 0 0-137.7 102.2 142.2 142.2 0 0 0 59.2 160.4A256.8 256.8 0 0 0 1 451a40.5 40.5 0 0 0 39.6 49h419a40.5 40.5 0 0 0 39.6-49zM142.6 143.2a106 106 0 0 1 66-98.2 107.4 107.4 0 0 1 116.5 23 106.2 106.2 0 0 1-75.6 181.6c-28.3 0-55.5-11.3-75.5-31.2-20-20-31.3-47-31.4-75.2z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUser);\nexport default __webpack_public_path__ + \"static/media/user.3d69ed76.svg\";\nexport { ForwardRef as ReactComponent };","import { ComponentProps, FC } from \"react\";\nimport { Typography } from \"antd\";\nimport * as _ from \"lodash\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport styles from \"./Text.module.less\";\n\nconst { Text } = Typography;\n\n/**\n * Title with a dark or light theme\n * @param {string | undefined} className\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined | (React.ReactElement> & undefined) | (Iterable & undefined) | (React.ReactPortal & undefined)} children\n * @param {\"small\" | \"default\" | \"large\" | undefined} size\n * @param {Pick & {size?: \"small\" | \"default\" | \"large\"} & {children?: React.ReactNode | undefined}, \"ellipsis\" | \"title\" | \"editable\" | \"copyable\" | \"type\" | \"disabled\" | \"code\" | \"mark\" | \"underline\" | \"delete\" | \"strong\" | \"keyboard\" | \"italic\" | \"id\" | \"prefixCls\" | \"style\" | \"aria-label\" | \"direction\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChange\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"ref\" | \"key\">} props\n * @return {JSX.Element}\n * @constructor\n */\nexport const ThemedText: FC<\n ComponentProps & {\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"xxl\";\n sup?: boolean;\n }\n> = ({ className, children, sup, size, ...props }) => (\n \n {sup ? {children} : children}\n \n);\n","import { FC, ComponentProps } from \"react\";\nimport Icon from \"@ant-design/icons\";\n\nimport { ReactComponent as UserIcon } from \"../../../assets/svg/user.svg\";\n\n/**\n * HOC thar returns icon component for custom icons\n * Would help us get rid of wrapping icons in \n * @param icon\n */\nconst withIconDefaultStyles = (icon: typeof UserIcon): FC> => {\n const IconWrapper: FC> = (props) => ;\n\n return IconWrapper;\n};\n\nexport default withIconDefaultStyles;\n","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLogout(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 500 500\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M482.3 0H17.7C7.8 0 0 7.8 0 17.7v464.6c0 9.9 7.8 17.7 17.7 17.7h305.8c9.8 0 17.7-7.8 17.7-17.7 0-9.8-7.9-17.6-17.7-17.6H35.3V35.3h429.4v63.3c0 9.9 7.8 17.7 17.6 17.7 9.9 0 17.7-7.8 17.7-17.7v-81C500 7.9 492 0 482.3 0zM482.3 383.7c-9.8 0-17.6 7.8-17.6 17.7v63.3h-46c-9.8 0-17.6 7.8-17.6 17.6 0 9.9 7.8 17.7 17.7 17.7h63.5c9.9 0 17.7-7.8 17.7-17.7v-81c0-9.8-8-17.6-17.7-17.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M478 244.7l-82.7-63a6.4 6.4 0 0 0-10.3 5v45.6H199.6c-9.9 0-17.7 7.9-17.7 17.7 0 9.8 7.8 17.7 17.7 17.7H385v45.6c0 5.3 6 8.3 10.3 5l82.8-63.3c3.5-2.5 3.5-7.5 0-10.3z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogout);\nexport default __webpack_public_path__ + \"static/media/logout.e8a4ee4a.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgAnalytics(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 500 500\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M483.2 462.6H33.6V164.4c0-10.4-7.5-18.6-16.8-18.6C7.4 145.8 0 154 0 164.4v317C0 491.8 7.4 500 16.8 500h466.4c9.4 0 16.8-8.2 16.8-18.6 0-10.3-7.7-18.8-16.8-18.8zM16.8 102.5c9.3 0 16.8-8.2 16.8-18.6V18.6C33.6 8.2 26 0 16.8 0 7.4 0 0 8.2 0 18.6v65.3c0 10.1 7.4 18.6 16.8 18.6zM375 230.1c4.6 0 9.4-2 13-6.1l71.7-79.4c7-7.8 7-21 0-28.8-7.1-7.8-19-7.8-26 0L362 195.2c-7 7.8-7 21 0 28.8 3.5 4 8.2 6.1 13 6.1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.5 338.7c4.7 0 9.5-2 13.2-6.1l89.2-99 70.4 78a21 21 0 0 0 13.2 6.2c5 0 9.4-2.4 13.1-6.2l30-33.7c7-7.9 7-21 0-28.8-7.2-7.9-19-7.9-26 0l-17.1 19.2-70.7-77.7c-7.3-8.1-18.9-8.1-26 0L95.4 304.1c-7.1 7.8-7.1 21 0 28.8 3.7 3.8 8.4 5.8 13.1 5.8z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAnalytics);\nexport default __webpack_public_path__ + \"static/media/analytics.5fe2aa74.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgGamePlans(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 500 500\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M250 0A250.3 250.3 0 0 0 0 250c0 48.8 10.8 87.5 36 129.2a17.3 17.3 0 0 0 29.6-17.8 200 200 0 0 1-31-111.4A215.7 215.7 0 0 1 250 34.5 215.7 215.7 0 0 1 465.5 250 215.7 215.7 0 0 1 250 465.5c-60.9 0-103.3-23-128.2-42.2a17.2 17.2 0 0 0-21.2 27.1A242 242 0 0 0 250 500c137.8 0 250-112.2 250-250S387.8 0 250 0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M147.7 369.8l148.2-65c1.4-.8 3-1.8 4.2-3 .2-.3.7-.5 1-.8 1.4-1.4 2.6-3.4 3.6-5.4v-.2l62-146.2c2.6-6.4 1.2-14-3.8-19s-12.5-6.4-19-3.7l-145 62.8-.2.3c-2 1-4 2.2-5.4 3.7-.3.2-.3.5-.5.7-1.2 1.5-2.5 3-3.2 4.5v.5L125 347c-3 6.4-1.5 14 3.7 19 3.2 3.2 7.6 5.2 12 5.2 2.3 0 4.8-.5 7-1.5zM283 258.6l-47.3-47.3 82.8-35.8-35.5 83.1zm-71.7-22.9l47.8 47.8-85 37 37.2-84.8z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGamePlans);\nexport default __webpack_public_path__ + \"static/media/game-plans.3d4d2513.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgSettings(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 500 500\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M249.8 143.9a106.4 106.4 0 1 0 31.9 207.7c9.4-3 15-13.4 12-23-3-9.4-13.5-15-23-12-6.5 2-14 3.6-21 3.6a70 70 0 0 1-69.7-70 70 70 0 0 1 69.8-69.9 70 70 0 0 1 69.7 70c0 6.4-1 13.4-3 19.4-3 10 2.5 20 12.5 23s20-2.5 23-12.5a106.8 106.8 0 0 0-102.2-136.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M459.6 199.8h-11a32 32 0 0 1-29.4-20c-5-12-2.4-25.5 6.5-34.4l7.5-7.5a40.2 40.2 0 0 0 0-56.5l-15-15a41 41 0 0 0-56.3 0l-7.5 7.5c-9 9-22.4 11.5-34.9 6.5-12-5-19.9-16.5-19.9-29V40c0-22-18-40-39.9-40h-21.4a40 40 0 0 0-39.9 40v11c0 13-7.5 24.4-20 29.4-11.9 5-25.4 2.5-34.3-6.5l-7.5-7.5a41 41 0 0 0-56.3 0l-15 15a39.3 39.3 0 0 0-11.5 28c0 10.5 4 20.5 11.5 28l7.5 7.5a32 32 0 0 1 6.5 35c-5 12-16.5 19.9-29 19.9H40a40 40 0 0 0-39.9 40v21.4c0 22 18 40 39.9 40h11c13 0 24.4 8 29.4 20s2.5 25.5-6.5 34.4l-7.5 7.5a39.3 39.3 0 0 0-11.5 28c0 10.5 4 20.5 11.5 28l15 15a41 41 0 0 0 56.3 0l7.5-7.5c9-9 21.9-12 34.9-6.5 12 5 19.9 16.5 19.9 29v11c0 22 18 39.9 39.9 39.9h21.4a40 40 0 0 0 39.9-40v-11c0-13 7.5-24.4 20-29.4 11.9-5 25.4-2.5 34.3 6.5l7.5 7.5a41 41 0 0 0 56.3 0l15-15a39.3 39.3 0 0 0 11.5-28c0-10.5-4-20.5-11.5-28l-7.5-7.5a32 32 0 0 1-6.5-35c5-12 16.5-19.4 29-19.4h11a40 40 0 0 0 39.8-40v-21.4a40.7 40.7 0 0 0-40.4-39.5zm3 61c0 1.4-1.5 3-3 3h-11a68 68 0 0 0-63.3 42.9c-10.4 26-5 55 14.5 75l7.5 7.4v4.5l-15 15h-4.5l-7.4-7.5a68 68 0 0 0-74.8-14.5 68 68 0 0 0-42.4 63.4v11c0 1.5-1.5 3-3 3h-21.4c-1.5 0-3-1.5-3-3v-11c0-28-16.5-52.4-42.9-63.4a68.2 68.2 0 0 0-74.8 14.5l-7.4 7.5h-4.5l-15-15v-4.5l7.5-7.5a68.3 68.3 0 0 0 14.5-75 67.8 67.8 0 0 0-63.4-42.4h-10c-1.4 0-3-1.5-3-3v-21.4c0-1.5 1.6-3 3-3h11a68 68 0 0 0 63.4-43c10.4-26 5-55-14.5-75l-7.5-7.4c-1-1-1-3 0-4.5l15-15h4.5l7.4 7.5a68 68 0 0 0 74.8 14.5 68 68 0 0 0 42.4-63.5V40c0-1.5 1.5-3 3-3h21.4c1.5 0 3 1.5 3 3v11c0 28 16.5 52.4 42.9 63.4a69 69 0 0 0 74.8-14.5l9.4-9.5 2.5 2 15 15c1 1 1 3 0 4.5l-7.5 7.5a68.3 68.3 0 0 0-14.5 75 67.8 67.8 0 0 0 63.4 42.4h11c1.4 0 3 1.5 3 3v21h-1z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSettings);\nexport default __webpack_public_path__ + \"static/media/settings.ff19393a.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgNotifications(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 42 50\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41 41c-.7-1.5-1.3-3.6-1.7-6.5a57.1 57.1 0 0 1-.9-10 1.8 1.8 0 0 0-3.5.8 64.2 64.2 0 0 0 2 15.1 134.7 134.7 0 0 1-5.8.7 102.8 102.8 0 0 1-25.7-.7 66 66 0 0 0 2-15.1v-7.8a13.8 13.8 0 0 1 27.5 0 1.8 1.8 0 1 0 3.7 0 17.5 17.5 0 0 0-35 0v7.8c0 3-.2 6.2-.6 9.2-.3 2.3-1 4.5-1.8 6.6a1.8 1.8 0 0 0 1.3 2.6 104.8 104.8 0 0 0 8.3 1.1l3.7.3a7 7 0 0 0 13.2 0l3.7-.3h.3a104.8 104.8 0 0 0 8.8-1.4A1.8 1.8 0 0 0 41 41zm-19.9 5.3a3.2 3.2 0 0 1-2.4-1h4.8a3.2 3.2 0 0 1-2.4 1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.5 17.5a1.8 1.8 0 1 0 3.7 0 6 6 0 0 1 6-6 1.8 1.8 0 0 0 0-3.7 9.7 9.7 0 0 0-9.7 9.7z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgNotifications);\nexport default __webpack_public_path__ + \"static/media/notifications.7a8845e6.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgPassword(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 45 50\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43 21.8h-5.9V8.2C37.1 3.7 33.4 0 29 0h-13a8.3 8.3 0 0 0-8.2 8.2v13.6H1.8c-1 0-1.8.8-1.8 1.8v24.6c0 1 .8 1.8 1.8 1.8h25c1.1 0 1.9-.8 1.9-1.8s-.8-1.8-1.8-1.8H3.6v-21h37.6v21h-4.6c-1 0-1.8.8-1.8 1.8s.8 1.8 1.8 1.8H43c1 0 1.8-.8 1.8-1.8V23.6c0-1-.8-1.8-1.8-1.8zm-31.7 0V8.2c0-2.5 2.1-4.6 4.7-4.6h12.9c2.5 0 4.6 2.1 4.6 4.6v13.6H11.3z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22 40.6h1c.7 0 1.2-.6 1.2-1.3v-2.5c.6-.5 1-1.3 1-2.1a2.8 2.8 0 0 0-5.6 0c0 .8.4 1.6 1 2.1v2.5c0 .7.6 1.3 1.4 1.3z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPassword);\nexport default __webpack_public_path__ + \"static/media/password.4426fcae.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgOverview(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 51 50\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M48.4 0H29c-1 0-1.7.8-1.7 1.7v9.7c0 1 .8 1.8 1.7 1.8 1 0 1.8-.8 1.8-1.8v-8h16v16h-24V1.7c0-1-.7-1.7-1.7-1.7H1.7C.7 0 0 .8 0 1.7v19.4c0 1 .8 1.8 1.7 1.8h17.7v23.6h-16V30.6H12c1 0 1.7-.8 1.7-1.7 0-1-.7-1.8-1.7-1.8H1.7C.7 27.1 0 28 0 29v19.4c0 1 .8 1.7 1.7 1.7h19.4c1 0 1.8-.8 1.8-1.7V22.9h25.5c1 0 1.8-.8 1.8-1.8V1.7c0-1-.8-1.7-1.8-1.7zm-45 19.4v-16h16v16h-16z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M48.4 27.1H29c-1 0-1.7.8-1.7 1.8v19.4c0 1 .8 1.7 1.7 1.7h19.4c1 0 1.8-.8 1.8-1.7V28.9c0-1-.8-1.8-1.8-1.8zm-1.7 19.4h-16V30.6h16v16z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgOverview);\nexport default __webpack_public_path__ + \"static/media/overview.5dc27f33.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDueDate(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 50 51\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M47.5 15.1a1.8 1.8 0 0 0-3.3 1.6 21 21 0 0 1-2.4 22.4 21.3 21.3 0 1 1-4.9-30.8 1.8 1.8 0 1 0 2-3 25 25 0 1 0 8.6 9.8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25 9.5a1.8 1.8 0 0 0-1.8 1.9v14.8c0 .5.2 1 .5 1.3l8.5 8.5a1.8 1.8 0 0 0 2.6-2.6l-8-8v-14A1.8 1.8 0 0 0 25 9.5z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDueDate);\nexport default __webpack_public_path__ + \"static/media/due-date.8c180a97.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgProductUpdates(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 50 51\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46.5 8.5h-4.6v-.8A7.6 7.6 0 0 0 34.4 0c-4.8 0-7.7 3.3-9.4 6.3-1.7-3-4.7-6.3-9.5-6.3A7.6 7.6 0 0 0 8 7.7l.1.8H3.5A3.5 3.5 0 0 0 0 11.9v10a3.4 3.4 0 0 0 2.3 3.2v21.4A3.5 3.5 0 0 0 6 50H44a3.5 3.5 0 0 0 3.6-3.5V31a1.8 1.8 0 0 0-3.7 0v15.3H30.4v-21h16A3.5 3.5 0 0 0 50 22V12a3.5 3.5 0 0 0-3.4-3.5zm-12-4.8a4 4 0 0 1 3.7 4.8H28c1.2-2.3 3.2-4.8 6.4-4.8zm-22.8 4a4 4 0 0 1 3.8-4c3.2 0 5.3 2.5 6.5 4.8H11.8l-.1-.8zM6 25.4h13.6v21H6v-21zm20.8 21h-3.5v-21h3.5v21zm19.5-24.7H3.7v-9.5h42.6v9.5z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgProductUpdates);\nexport default __webpack_public_path__ + \"static/media/product-updates.11481ed3.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgEmail(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 50 38\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M1.5 0A1.5 1.5 0 0 0 0 1.8v34.7c0 .8.7 1.5 1.6 1.5h46.8c.9 0 1.6-.7 1.6-1.5v-7.6a1.5 1.5 0 0 0-3 0v6H3V4.7l21.8 16c.6.4 1.3.4 1.9 0l20.2-16v15.2a1.5 1.5 0 0 0 3 0v-18A1.5 1.5 0 0 0 48.6 0h-47zm4.7 3H44L25.7 17.6 6.2 3z\",\n clipRule: \"evenodd\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmail);\nexport default __webpack_public_path__ + \"static/media/email.6a3a35e7.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgPhone(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 51 50\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M48.3 35.1a18 18 0 0 0-7-4.7c-3-.8-5.7 0-8 2.3l-2.9 2.8-.1-.1a40 40 0 0 1-8.4-6.5l-.3-.3a40 40 0 0 1-6.5-8.3V20l2.7-2.8c2.3-2.4 3-5.1 2.2-8a18 18 0 0 0-4.7-7 7.2 7.2 0 0 0-10-.4h-.1A15.6 15.6 0 0 0 1 13.5c0 8 4.4 17 11.6 24.3h.2A45.7 45.7 0 0 0 18 42a1.7 1.7 0 0 0 1.5-3 44 44 0 0 1-4.4-3.7 33.4 33.4 0 0 1-10.7-22 12.3 12.3 0 0 1 3.2-9 3.8 3.8 0 0 1 5.3.2c5.2 5.3 4.8 8 2.5 10.3l-3.7 3.8a1.7 1.7 0 0 0-.3 1.9c2 3.9 4.6 7.5 7.8 10.5l.3.3c3 3.2 6.6 5.8 10.6 7.8a1.7 1.7 0 0 0 1.8-.3l3.7-3.7a4.6 4.6 0 0 1 4-1.5c1.8.2 3.8 1.5 6.3 4a3.8 3.8 0 0 1 .2 5.2 12.3 12.3 0 0 1-8.9 3.3c-3.4-.2-6.7-1-9.8-2.3a1.7 1.7 0 1 0-1.3 3c3.4 1.7 7.2 2.5 11 2.7h.1a15.6 15.6 0 0 0 11.3-4.3h.1V45a7.1 7.1 0 0 0-.4-10h.1z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPhone);\nexport default __webpack_public_path__ + \"static/media/phone.56afa978.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgKpiTracking(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 54 51\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.2 46.3H3.7V16.2c0-1-.8-2-1.8-2s-1.9 1-1.9 2v32c0 1 .8 1.8 1.9 1.8h49.3c1 0 1.8-.8 1.8-1.8s-.8-2-1.8-2zM1.9 10c1 0 1.8-.9 1.8-2V2C3.7.9 3 0 2 0S0 .8 0 1.9V8C0 9 .8 10 1.9 10z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 40.7c1 0 1.9-.8 1.9-1.9V28.2c0-1-.9-1.9-1.9-1.9-1 0-1.9.9-1.9 1.9v10.6c0 1 .9 2 1.9 2zM21.7 40.7c1 0 1.9-.8 1.9-1.9v-22c0-1-.9-1.8-1.9-1.8-1 0-1.9.8-1.9 1.8v22c0 1 .9 2 1.9 2zM32.4 40.7c1 0 1.9-.8 1.9-1.9V22c0-1-.8-1.8-1.9-1.8-1 0-1.8.8-1.8 1.8v16.8c0 1 .8 2 1.8 2zM43 40.7c1.1 0 2-.8 2-1.9V11.2c0-1-.9-1.9-2-1.9-1 0-1.8.8-1.8 1.9v27.6c0 1 .8 2 1.9 2z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgKpiTracking);\nexport default __webpack_public_path__ + \"static/media/kpi-tracking.8209d86a.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgTasks(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 50 51\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M48.3 10.2c1 0 1.7-.8 1.7-1.7V3a3 3 0 0 0-3-3H3a3 3 0 0 0-3 3v44a3 3 0 0 0 3 3h44a3 3 0 0 0 3-3V16.9a1.7 1.7 0 0 0-3.5 0v29.7h-43v-43h43v5c0 1 .8 1.7 1.8 1.7z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.8 15.6a2.2 2.2 0 0 0 0-4.4 2.2 2.2 0 0 0 0 4.4zM11.8 27.2a2.2 2.2 0 0 0 0-4.4 2.2 2.2 0 0 0 0 4.4zM11.8 38.8a2.2 2.2 0 0 0 0-4.4c-1.2 0-2.2 1-2.2 2.2 0 1.2 1 2.2 2.2 2.2zM40.4 11.7h-4a1.7 1.7 0 0 0 0 3.5h4c1 0 1.8-.9 1.8-1.8 0-1-.8-1.7-1.8-1.7zM18.6 15.2H28c1 0 1.8-.8 1.8-1.8s-.8-1.7-1.8-1.7h-9.6c-1 0-1.7.8-1.7 1.8s.8 1.7 1.8 1.7zM18.6 35c-1 0-1.8.8-1.8 1.7 0 1 .8 1.8 1.8 1.8h4.3a1.7 1.7 0 0 0 0-3.5h-4.3zM40.4 35h-8.9c-1 0-1.7.8-1.7 1.8s.7 1.7 1.7 1.7h9c1 0 1.7-.7 1.7-1.7s-.8-1.7-1.8-1.7zM40.4 23.2l-21.9.1a1.7 1.7 0 0 0 0 3.5h22c.9 0 1.6-.9 1.6-1.8 0-1-.7-1.8-1.7-1.8z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTasks);\nexport default __webpack_public_path__ + \"static/media/tasks.ef068595.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgGpSummary(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 50 51\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M48.3 10.2c1 0 1.7-.8 1.7-1.7V3a3 3 0 0 0-3-3H3a3 3 0 0 0-3 3v44a3 3 0 0 0 3 3h44a3 3 0 0 0 3-3V19.3a1.7 1.7 0 0 0-3.5 0v27.3h-43v-43h43v5c0 1 .8 1.7 1.8 1.7z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.2 22.5h-3.7l7.2 10h3.7l12.8-17.3h-3.7L21.5 30l-5.3-7.5z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGpSummary);\nexport default __webpack_public_path__ + \"static/media/gp-summary.e06bbb09.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgEmptyInsight(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 150 150\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 75,\n cy: 75,\n r: 75,\n fillOpacity: 0.05\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillOpacity: 0.07,\n d: \"M82 82.07a15.5 15.5 0 1 0-15 0V91h15v-8.93z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M83.4 95.04H65.9a.5.5 0 0 0-.5.5v1.98a2.49 2.49 0 0 0 2.47 2.48h13.49a2.49 2.49 0 0 0 2.48-2.48v-2c.02-.25-.2-.48-.45-.48zM92.54 63.63a1.72 1.72 0 0 0-2.13-1.21 1.73 1.73 0 0 0-1.22 2.13c.3 1.1.5 2.75.5 4.04 0 5.75-3.2 10.93-8.36 13.51-.59.3-.96.9-.96 1.56v5.83H68.89V83.7c0-.67-.37-1.26-.97-1.56A15.12 15.12 0 1 1 85.2 57.83c.67.7 1.76.7 2.46.03.69-.67.69-1.76.02-2.46a18.6 18.6 0 1 0-22.26 29.35v6.47c0 .97.77 1.74 1.74 1.74h14.97c.47 0 .89-.17 1.24-.52.32-.32.52-.77.52-1.24v-6.52c5.77-3.32 9.3-9.4 9.3-16.11a22.87 22.87 0 0 0-.65-4.94z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmptyInsight);\nexport default __webpack_public_path__ + \"static/media/empty-insight.9a3cc64d.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgEmptyTask(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 150 150\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 75,\n cy: 75,\n r: 75,\n fillOpacity: 0.05\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillOpacity: 0.07,\n d: \"M57 53h28l3.5 3.5L92 60v37H57V53z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M93.4 96.25l-35.75.15V53.65h23.4c1 0 1.95.35 2.65 1l7.35 6.95.05.05c.6.6.95 1.35.95 2.1v24.7a1.85 1.85 0 1 0 3.7 0v-24.7c0-1.85-.75-3.55-2.15-4.8l-.05-.05-7.4-6.95a7.54 7.54 0 0 0-5.1-1.95h-23.4c-2 0-3.65 1.55-3.65 3.5v42.95a3.6 3.6 0 0 0 3.65 3.5H93.4c1 0 1.85-.8 1.85-1.85a1.88 1.88 0 0 0-1.85-1.85z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.1 64.55h-12a1.85 1.85 0 1 0 0 3.7h12a1.85 1.85 0 1 0 0-3.7zM84.05 64.55h-2.5a1.85 1.85 0 1 0 0 3.7h2.5a1.85 1.85 0 1 0 0-3.7zM75.1 71.85h-12c-1 0-1.85.8-1.85 1.85s.8 1.85 1.85 1.85h12a1.85 1.85 0 1 0 0-3.7zM75.1 79.2h-12a1.85 1.85 0 1 0 0 3.7h12a1.85 1.85 0 1 0 0-3.7zM84.05 71.85h-2.5c-1 0-1.85.8-1.85 1.85s.8 1.85 1.85 1.85h2.5a1.85 1.85 0 1 0 0-3.7z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmptyTask);\nexport default __webpack_public_path__ + \"static/media/empty-task.401b6827.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _circle2, _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgEmptyGameplan(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 150 150\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 75,\n cy: 75,\n r: 75,\n fillOpacity: 0.05\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 75,\n cy: 75,\n r: 22,\n fillOpacity: 0.07\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75 50c-13.78 0-25 11.22-25 25 0 4.88 1.08 8.75 3.6 12.92a1.73 1.73 0 0 0 2.96-1.78A20 20 0 0 1 53.46 75 21.57 21.57 0 0 1 75 53.45 21.57 21.57 0 0 1 96.55 75 21.57 21.57 0 0 1 75 96.55c-6.09 0-10.33-2.3-12.82-4.22a1.72 1.72 0 1 0-2.12 2.71A24.2 24.2 0 0 0 75 100c13.78 0 25-11.22 25-25S88.78 50 75 50z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.77 86.98l14.82-6.5c.14-.08.3-.18.41-.3.03-.03.08-.05.1-.08.15-.14.27-.34.37-.54v-.02l6.2-14.62c.26-.64.11-1.4-.38-1.9-.5-.5-1.26-.64-1.9-.37l-14.5 6.28-.02.03c-.2.1-.4.22-.54.37-.03.02-.03.05-.05.07-.12.15-.25.3-.32.45v.05L62.5 84.7c-.3.65-.15 1.4.37 1.9.32.32.76.52 1.2.52.23 0 .48-.05.7-.15zM78.3 75.86l-4.73-4.73 8.28-3.58-3.55 8.31zm-7.17-2.29l4.78 4.78-8.5 3.7 3.72-8.48z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmptyGameplan);\nexport default __webpack_public_path__ + \"static/media/empty-gameplan.9ad8823c.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgEmptyEventlist(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 500 500\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 250,\n cy: 250,\n r: 250,\n fillOpacity: 0.05\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M153 346.2h44.4c3.1 0 5.6 2.4 5.6 5.5v44.5c0 3-2.5 5.5-5.6 5.5H153c-3 0-5.6-2.5-5.6-5.5v-44.5c0-3 2.5-5.5 5.6-5.5Zm0-128.3h44.4c3.1 0 5.6 2.5 5.6 5.6V268c0 3.1-2.5 5.6-5.6 5.6H153c-3 0-5.6-2.5-5.6-5.6v-44.4c0-3 2.5-5.6 5.6-5.6Zm0-128.2h44.4c3.1 0 5.6 2.5 5.6 5.6v44.4c0 3.1-2.5 5.6-5.6 5.6H153c-3 0-5.6-2.5-5.6-5.6V95.3c0-3 2.5-5.6 5.6-5.6Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"gray\",\n d: \"M170 290.6h10.3c.8 0 1.3.6 1.3 1.3V332c0 .7-.5 1.2-1.3 1.2h-10.2c-.7 0-1.3-.5-1.3-1.2v-40.2c0-.7.6-1.3 1.3-1.3Zm0-132.5h10.3c.8 0 1.3.6 1.3 1.3v40.2c0 .7-.5 1.3-1.3 1.3h-10.2c-.7 0-1.3-.6-1.3-1.3v-40.2c0-.7.6-1.3 1.3-1.3Zm47 222.2h100c.8 0 1.4.6 1.4 1.3V392c0 .7-.6 1.3-1.3 1.3H217c-.7 0-1.3-.6-1.3-1.3v-10.3c0-.7.6-1.3 1.3-1.3Zm0-128.2h100c.8 0 1.4.6 1.4 1.3v10.3c0 .7-.6 1.3-1.3 1.3H217c-.7 0-1.3-.6-1.3-1.3v-10.3c0-.7.6-1.3 1.3-1.3Zm0-128.2h100c.8 0 1.4.6 1.4 1.3v10.3c0 .7-.6 1.3-1.3 1.3H217c-.7 0-1.3-.6-1.3-1.3v-10.3c0-.7.6-1.3 1.3-1.3Zm94.5 230.8h65c1 0 1.7.8 1.7 1.7v13.7c0 1-.8 1.7-1.7 1.7h-65c-.9 0-1.7-.8-1.7-1.7v-13.7c0-1 .8-1.7 1.7-1.7Zm0-128.2h65c1 0 1.7.8 1.7 1.7v13.7c0 1-.8 1.7-1.7 1.7h-65c-.9 0-1.7-.8-1.7-1.7v-13.7c0-1 .8-1.7 1.7-1.7Zm-94 128.2h82c1 0 1.8.8 1.8 1.7v13.7c0 1-.8 1.7-1.7 1.7h-82c-1 0-1.8-.8-1.8-1.7v-13.7c0-1 .8-1.7 1.7-1.7Zm0-128.2h82c1 0 1.8.8 1.8 1.7v13.7c0 1-.8 1.7-1.7 1.7h-82c-1 0-1.8-.8-1.8-1.7v-13.7c0-1 .8-1.7 1.7-1.7Zm0-128.2H385c1 0 1.8.8 1.8 1.7v13.7c0 1-.8 1.7-1.8 1.7H217.5c-1 0-1.7-.8-1.7-1.7V100c0-1 .8-1.7 1.7-1.7Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmptyEventlist);\nexport default __webpack_public_path__ + \"static/media/empty-eventlist.84a05cb8.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 500 500\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 480.853 225.245 C 415.08 180.162 346.528 272.271 330.448 264.024 C 308.352 252.708 396.332 168.054 317.86 113.329 C 259.252 72.441 143.652 104.792 67.01 181.423 C -11.774 260.207 -21.393 355.977 39.771 389.175 C 139.423 443.231 251.976 335.789 278.49 335.789 C 299.458 335.789 284.025 371.332 310.25 392.255 C 343.527 418.814 416.408 398.415 461.246 349.672 C 506.82 300.124 510.648 245.689 480.853 225.268 L 480.853 225.245 Z M 388.744 308.315 L 149.946 308.36 C 129.011 308.36 110.108 298.383 110.108 275.295 C 110.108 241.281 157.401 193.397 207.439 193.397 C 271.103 193.397 254.933 294.701 307.828 294.701 C 348.146 294.701 391.221 268.722 415.526 268.722 C 426.072 268.722 428.951 275.183 428.951 279.814 C 428.951 292.648 409.612 308.337 388.744 308.293 L 388.744 308.315 Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogo);\nexport default __webpack_public_path__ + \"static/media/logo.985eb30b.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgBarn(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 500 500\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 498.689 226.759 C 500.685 232.745 500.685 238.733 496.694 243.721 C 493.7 249.707 487.714 252.701 481.727 252.701 L 456.783 252.701 L 456.783 479.191 C 456.783 489.169 447.803 497.15 437.826 497.15 L 367.983 497.15 C 357.007 497.15 349.025 489.169 349.025 479.191 L 349.025 325.536 L 312.109 353.474 C 310.113 356.467 306.122 357.465 302.131 357.465 C 297.143 357.465 291.156 355.47 287.165 350.48 C 281.178 342.499 283.174 331.523 291.156 325.536 L 321.089 302.589 L 179.408 302.589 L 310.113 402.364 C 318.095 408.35 320.091 420.323 314.104 428.305 C 310.113 432.296 305.125 435.29 299.139 435.29 C 295.147 435.29 292.154 434.293 289.16 431.299 L 149.475 325.536 L 149.475 392.387 C 149.475 402.364 141.493 410.346 131.516 410.346 C 120.54 410.346 112.558 402.364 112.558 392.387 L 112.558 298.597 C 113.102 279.858 128.741 265.113 147.48 265.671 L 351.021 265.671 C 369.978 265.671 385.942 280.638 385.942 298.597 L 385.942 459.235 L 419.866 459.235 L 419.866 249.707 C 419.866 230.973 435.054 215.785 453.789 215.785 L 403.903 103.038 L 249.251 41.178 L 94.599 103.038 L 45.71 215.785 C 64.666 215.785 79.632 230.75 79.632 249.707 L 79.632 461.231 L 126.526 461.231 L 186.392 414.337 C 194.374 407.353 205.349 409.349 212.334 417.33 C 218.321 425.312 217.322 436.288 209.34 442.274 L 145.484 493.159 C 142.03 495.75 137.828 497.15 133.511 497.15 L 61.673 497.15 C 50.698 497.15 42.716 489.169 42.716 479.191 L 42.716 252.701 L 17.772 252.701 C 11.785 252.701 6.797 249.707 2.806 244.719 C -0.188 238.733 -1.186 232.745 1.808 226.759 L 64.666 81.087 C 66.666 76.658 70.215 73.109 74.644 71.11 L 243.264 3.263 C 247.768 1.579 252.728 1.579 257.233 3.263 L 423.857 71.11 C 428.287 73.109 431.835 76.658 433.835 81.087 L 497.691 226.759 Z M 282.177 147.937 L 282.177 129.977 L 216.325 129.977 L 216.325 195.829 L 300.136 195.829 C 306.73 195.829 312.824 199.348 316.122 205.058 C 323.226 217.363 314.345 232.745 300.136 232.745 L 197.367 232.745 C 187.39 232.745 179.408 223.766 179.408 213.789 L 179.408 111.021 C 179.408 101.042 187.39 93.06 197.367 93.06 L 300.136 93.06 C 311.112 93.06 319.093 101.042 319.093 111.021 L 319.093 147.937 C 319.093 157.915 310.113 165.897 300.136 165.897 C 290.159 165.897 282.177 157.915 282.177 147.937 Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBarn);\nexport default __webpack_public_path__ + \"static/media/barn.7f470b4e.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgBarns(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 500 500\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 226.857 101.345 C 227.758 104.043 227.758 106.744 225.958 108.992 C 224.608 111.692 221.91 113.041 219.209 113.041 L 207.961 113.041 L 207.961 215.165 C 207.961 219.663 203.914 223.263 199.414 223.263 L 167.922 223.263 C 162.974 223.263 159.375 219.663 159.375 215.165 L 159.375 145.882 L 142.729 158.479 C 141.829 159.83 140.03 160.279 138.229 160.279 C 135.98 160.279 133.282 159.38 131.482 157.13 C 128.782 153.531 129.683 148.582 133.282 145.882 L 146.779 135.536 L 82.894 135.536 L 141.829 180.524 C 145.428 183.222 146.327 188.622 143.629 192.222 C 141.829 194.02 139.579 195.37 136.881 195.37 C 135.08 195.37 133.731 194.921 132.381 193.571 L 69.396 145.882 L 69.396 176.026 C 69.396 180.524 65.799 184.124 61.301 184.124 C 56.352 184.124 52.753 180.524 52.753 176.026 L 52.753 133.735 C 52.997 125.287 60.049 118.638 68.498 118.89 L 160.274 118.89 C 168.822 118.89 176.021 125.638 176.021 133.735 L 176.021 206.168 L 191.316 206.168 L 191.316 111.692 C 191.316 103.245 198.165 96.396 206.612 96.396 L 184.119 45.559 L 114.387 17.666 L 44.655 45.559 L 22.61 96.396 C 31.157 96.396 37.905 103.143 37.905 111.692 L 37.905 207.067 L 59.05 207.067 L 86.044 185.922 C 89.643 182.773 94.592 183.674 97.741 187.272 C 100.44 190.871 99.99 195.821 96.39 198.519 L 67.598 221.464 C 66.041 222.633 64.147 223.263 62.199 223.263 L 29.808 223.263 C 24.86 223.263 21.26 219.663 21.26 215.165 L 21.26 113.041 L 10.013 113.041 C 7.314 113.041 5.065 111.692 3.266 109.443 C 1.915 106.744 1.465 104.043 2.816 101.345 L 31.157 35.661 C 32.06 33.665 33.659 32.064 35.658 31.162 L 111.686 0.571 C 113.717 -0.19 115.954 -0.19 117.986 0.571 L 193.116 31.162 C 195.114 32.064 196.714 33.665 197.615 35.661 L 226.407 101.345 Z M 129.232 65.804 L 129.232 57.705 L 99.539 57.705 L 99.539 87.398 L 137.33 87.398 C 140.304 87.398 143.051 88.985 144.538 91.56 C 147.742 97.107 143.737 104.043 137.33 104.043 L 90.992 104.043 C 86.494 104.043 82.894 99.994 82.894 95.496 L 82.894 49.158 C 82.894 44.66 86.494 41.06 90.992 41.06 L 137.33 41.06 C 142.28 41.06 145.878 44.66 145.878 49.158 L 145.878 65.804 C 145.878 70.303 141.829 73.902 137.33 73.902 C 132.831 73.902 129.232 70.303 129.232 65.804 Z M 497.332 101.345 C 498.233 104.043 498.233 106.744 496.432 108.992 C 495.083 111.692 492.385 113.041 489.685 113.041 L 478.437 113.041 L 478.437 215.165 C 478.437 219.663 474.388 223.263 469.89 223.263 L 438.397 223.263 C 433.448 223.263 429.849 219.663 429.849 215.165 L 429.849 145.882 L 413.203 158.479 C 412.304 159.83 410.505 160.279 408.705 160.279 C 406.455 160.279 403.757 159.38 401.956 157.13 C 399.257 153.531 400.158 148.582 403.757 145.882 L 417.253 135.536 L 353.37 135.536 L 412.304 180.524 C 415.903 183.222 416.802 188.622 414.104 192.222 C 412.304 194.02 410.054 195.37 407.356 195.37 C 405.555 195.37 404.206 194.921 402.857 193.571 L 339.872 145.882 L 339.872 176.026 C 339.872 180.524 336.275 184.124 331.775 184.124 C 326.826 184.124 323.227 180.524 323.227 176.026 L 323.227 133.735 C 323.472 125.287 330.523 118.638 338.972 118.89 L 430.748 118.89 C 439.298 118.89 446.495 125.638 446.495 133.735 L 446.495 206.168 L 461.792 206.168 L 461.792 111.692 C 461.792 103.245 468.639 96.396 477.087 96.396 L 454.593 45.559 L 384.861 17.666 L 315.129 45.559 L 293.085 96.396 C 301.632 96.396 308.381 103.143 308.381 111.692 L 308.381 207.067 L 329.525 207.067 L 356.518 185.922 C 360.117 182.773 365.066 183.674 368.215 187.272 C 370.915 190.871 370.465 195.821 366.866 198.519 L 338.073 221.464 C 336.516 222.633 334.621 223.263 332.675 223.263 L 300.284 223.263 C 295.335 223.263 291.736 219.663 291.736 215.165 L 291.736 113.041 L 280.489 113.041 C 277.789 113.041 275.54 111.692 273.739 109.443 C 272.391 106.744 271.941 104.043 273.29 101.345 L 301.632 35.661 C 302.534 33.665 304.134 32.064 306.132 31.162 L 382.162 0.571 C 384.192 -0.19 386.429 -0.19 388.46 0.571 L 463.59 31.162 C 465.589 32.064 467.188 33.665 468.089 35.661 L 496.881 101.345 Z M 399.707 65.804 L 399.707 57.705 L 370.016 57.705 L 370.016 87.398 L 407.805 87.398 C 410.779 87.398 413.525 88.985 415.014 91.56 C 418.216 97.107 414.212 104.043 407.805 104.043 L 361.468 104.043 C 356.969 104.043 353.37 99.994 353.37 95.496 L 353.37 49.158 C 353.37 44.66 356.969 41.06 361.468 41.06 L 407.805 41.06 C 412.754 41.06 416.353 44.66 416.353 49.158 L 416.353 65.804 C 416.353 70.303 412.304 73.902 407.805 73.902 C 403.307 73.902 399.707 70.303 399.707 65.804 Z M 497.332 378.081 C 498.233 380.78 498.233 383.481 496.432 385.729 C 495.083 388.429 492.385 389.778 489.685 389.778 L 478.435 389.778 L 478.435 491.902 C 478.435 496.401 474.388 500 469.89 500 L 438.397 500 C 433.448 500 429.849 496.401 429.849 491.902 L 429.849 422.619 L 413.203 435.217 C 412.304 436.566 410.505 437.015 408.705 437.015 C 406.455 437.015 403.757 436.116 401.956 433.867 C 399.257 430.268 400.158 425.319 403.757 422.619 L 417.253 412.272 L 353.37 412.272 L 412.304 457.261 C 415.903 459.959 416.802 465.358 414.104 468.958 C 412.304 470.757 410.053 472.107 407.356 472.107 C 405.554 472.107 404.206 471.658 402.857 470.308 L 339.871 422.619 L 339.871 452.762 C 339.871 457.261 336.275 460.86 331.775 460.86 C 326.826 460.86 323.226 457.261 323.226 452.762 L 323.226 410.473 C 323.472 402.024 330.523 395.375 338.972 395.626 L 430.748 395.626 C 439.298 395.626 446.495 402.375 446.495 410.473 L 446.495 482.905 L 461.792 482.905 L 461.792 388.429 C 461.792 379.981 468.639 373.134 477.087 373.134 L 454.593 322.296 L 384.861 294.403 L 315.129 322.296 L 293.084 373.134 C 301.632 373.134 308.381 379.88 308.381 388.429 L 308.381 483.804 L 329.525 483.804 L 356.518 462.66 C 360.117 459.51 365.066 460.41 368.215 464.009 C 370.915 467.608 370.465 472.557 366.866 475.256 L 338.073 498.2 C 336.516 499.369 334.621 500 332.675 500 L 300.284 500 C 295.333 500 291.736 496.401 291.736 491.902 L 291.736 389.778 L 280.489 389.778 C 277.789 389.778 275.54 388.429 273.74 386.179 C 272.391 383.481 271.941 380.78 273.29 378.081 L 301.632 312.398 C 302.534 310.401 304.134 308.802 306.132 307.899 L 382.16 277.308 C 384.192 276.548 386.429 276.548 388.46 277.308 L 463.59 307.899 C 465.589 308.802 467.188 310.401 468.089 312.398 L 496.881 378.081 Z M 399.707 342.542 L 399.707 334.441 L 370.015 334.441 L 370.015 364.135 L 407.805 364.135 C 410.779 364.135 413.525 365.723 415.014 368.297 C 418.216 373.845 414.212 380.78 407.805 380.78 L 361.468 380.78 C 356.969 380.78 353.37 376.732 353.37 372.233 L 353.37 325.894 C 353.37 321.396 356.969 317.797 361.468 317.797 L 407.805 317.797 C 412.754 317.797 416.353 321.396 416.353 325.894 L 416.353 342.542 C 416.353 347.04 412.304 350.64 407.805 350.64 C 403.307 350.64 399.707 347.04 399.707 342.542 Z M 226.857 378.081 C 227.758 380.78 227.758 383.481 225.958 385.729 C 224.608 388.429 221.91 389.778 219.209 389.778 L 207.961 389.778 L 207.961 491.902 C 207.961 496.401 203.914 500 199.414 500 L 167.923 500 C 162.974 500 159.375 496.401 159.375 491.902 L 159.375 422.619 L 142.729 435.217 C 141.829 436.566 140.03 437.015 138.229 437.015 C 135.98 437.015 133.282 436.116 131.482 433.867 C 128.782 430.268 129.683 425.319 133.282 422.619 L 146.779 412.272 L 82.894 412.272 L 141.829 457.261 C 145.428 459.959 146.327 465.358 143.629 468.958 C 141.829 470.757 139.58 472.107 136.881 472.107 C 135.081 472.107 133.731 471.658 132.381 470.308 L 69.398 422.619 L 69.398 452.762 C 69.398 457.261 65.799 460.86 61.301 460.86 C 56.352 460.86 52.753 457.261 52.753 452.762 L 52.753 410.473 C 52.997 402.024 60.049 395.375 68.498 395.626 L 160.274 395.626 C 168.822 395.626 176.021 402.375 176.021 410.473 L 176.021 482.905 L 191.316 482.905 L 191.316 388.429 C 191.316 379.981 198.165 373.134 206.612 373.134 L 184.119 322.296 L 114.387 294.403 L 44.655 322.296 L 22.61 373.134 C 31.157 373.134 37.905 379.88 37.905 388.429 L 37.905 483.804 L 59.05 483.804 L 86.044 462.66 C 89.643 459.51 94.592 460.41 97.741 464.009 C 100.44 467.608 99.99 472.557 96.39 475.256 L 67.598 498.2 C 66.041 499.369 64.147 500 62.2 500 L 29.808 500 C 24.86 500 21.26 496.401 21.26 491.902 L 21.26 389.778 L 10.013 389.778 C 7.314 389.778 5.065 388.429 3.266 386.179 C 1.915 383.481 1.465 380.78 2.816 378.081 L 31.157 312.398 C 32.06 310.401 33.659 308.802 35.658 307.899 L 111.687 277.308 C 113.717 276.548 115.954 276.548 117.986 277.308 L 193.116 307.899 C 195.114 308.802 196.714 310.401 197.615 312.398 L 226.407 378.081 Z M 129.232 342.542 L 129.232 334.441 L 99.541 334.441 L 99.541 364.135 L 137.33 364.135 C 140.304 364.135 143.051 365.723 144.538 368.297 C 147.742 373.845 143.737 380.78 137.33 380.78 L 90.992 380.78 C 86.494 380.78 82.894 376.732 82.894 372.233 L 82.894 325.894 C 82.894 321.396 86.494 317.797 90.992 317.797 L 137.33 317.797 C 142.28 317.797 145.878 321.396 145.878 325.894 L 145.878 342.542 C 145.878 347.04 141.829 350.64 137.33 350.64 C 132.831 350.64 129.232 347.04 129.232 342.542 Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBarns);\nexport default __webpack_public_path__ + \"static/media/barns.c83f3f1a.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgComparison(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 50 50\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M48.2 10.9c1 0 1.7-.8 1.7-1.8V1.7c0-1-.8-1.7-1.7-1.7H16.5c-1 0-1.8.8-1.8 1.7v13.1h-13c-1 0-1.7.8-1.7 1.8v12.2c0 1 .8 1.7 1.7 1.7 1 0 1.7-.8 1.7-1.7V18.3h28.3v28.3H3.4V37c0-1-.7-1.7-1.7-1.7S0 36 0 37v11.2c0 1 .8 1.7 1.7 1.7h31.7c1 0 1.8-.8 1.8-1.7V35.2h13c1 0 1.7-.8 1.7-1.8V17.6c0-1-.8-1.8-1.7-1.8-1 0-1.7.8-1.7 1.8v14.1H35.2V16.6c0-.8-.5-1.4-1.2-1.6v-1.2c0-1-.7-1.7-1.7-1.7s-1.7.7-1.7 1.7v1h-4v-4.5c0-1-.7-1.8-1.6-1.8-1 0-1.8.8-1.8 1.8v4.5h-5V3.4h28.3v5.7c0 1 .7 1.8 1.7 1.8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.9 42.2V35c0-1-.8-1.8-1.7-1.8-1 0-1.8.8-1.8 1.8v7.3c0 1 .8 1.8 1.8 1.8s1.7-.8 1.7-1.8zM19.3 42.2V30c0-1-.8-1.7-1.7-1.7-1 0-1.8.8-1.8 1.7v12.3c0 1 .8 1.8 1.8 1.8s1.7-.8 1.7-1.8zM26.7 42.2V26.3c0-1-.8-1.7-1.7-1.7-1 0-1.8.8-1.8 1.7v16c0 1 .8 1.7 1.8 1.7s1.7-.8 1.7-1.8zM38 15.2V26c0 1 .8 1.7 1.7 1.7 1 0 1.7-.8 1.7-1.7V15c0-.9-.7-1.6-1.7-1.6s-1.7.7-1.7 1.7z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComparison);\nexport default __webpack_public_path__ + \"static/media/comparison.8141cd25.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgAnalysis(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n id: \"Layer_1\",\n x: 0,\n y: 0,\n viewBox: \"0 0 20.2 20.3\",\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.9 12.5c-.1 0-.1 0-.1.1v2.6c0 .1 0 .1.1.1h1.3c.1 0 .1 0 .1-.1v-2.6c0-.1 0-.1-.1-.1H2.9zM5.6 11.1c-.1 0-.1 0-.1.1v4c0 .1 0 .1.1.1H7c.1 0 .1 0 .1-.1v-4c0-.1 0-.1-.1-.1H5.6zM13.8 5.5c-.1 0-.1 0-.1.1v2.1c.4-.1.7-.1 1.1-.1h.4v-2c0-.1 0-.1-.1-.1h-1.3zM8.3 9.8v2c.4-.8.9-1.5 1.5-2.1H8.4s-.1 0-.1.1zM14.8 9.5c-3 0-5.4 2.4-5.4 5.4s2.4 5.4 5.4 5.4 5.4-2.4 5.4-5.4c.1-3-2.4-5.4-5.4-5.4zm2.4 5.7s-.1.1 0 0l-1.9.1v1.8c0 .1 0 .1-.1.1h-.6c-.1 0-.1 0-.1-.1v-1.8h-1.8c-.1 0-.1 0-.1-.1v-.6c0-.1 0-.1.1-.1h1.8v-1.8c0-.1 0-.1.1-.1h.6c.1 0 .1 0 .1.1v1.8h1.8c.1 0 .1 0 .1.1v.6z\",\n className: \"st0\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.5 16.5V7h9.4v1.8c.1-.1.2-.1.3-.2.1-.1.3-.2.4-.2.2-.1.5-.2.7-.3h.1V5.7c0-.1 0-.1-.1-.1H9.7V4.3H8.2v1.3H7v-4h9.5v6.3c.5.1 1 .3 1.5.5V.8c0-.4-.3-.8-.8-.8h-11c-.4 0-.8.3-.8.8v4.8H.8c-.4 0-.8.3-.8.8v11c0 .3.3.6.8.6h7.7c-.2-.5-.4-1-.5-1.5H1.5z\",\n className: \"st0\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAnalysis);\nexport default __webpack_public_path__ + \"static/media/analysis.a13b6b31.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgKpiUnavailable(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 118 117\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillOpacity: 0.2,\n d: \"M59 0a58.5 58.5 0 1 1 0 117A58.5 58.5 0 0 1 59 0zm.5 80a21 21 0 1 0 0-42 21 21 0 0 0 0 42z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillOpacity: 0.7,\n d: \"M94.7 84.3H31.2V26.8a.9.9 0 0 0-.8-.8h-5.1a.9.9 0 0 0-.8.8v63.4a.9.9 0 0 0 .8.8h69.4a.9.9 0 0 0 .8-.8v-5.1a.9.9 0 0 0-.8-.8z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillOpacity: 1,\n d: \"M59.5 40.6a18.4 18.4 0 1 0 0 36.8 18.4 18.4 0 0 0 0-36.8zm-1.3 9.5c0-.1.1-.3.3-.3h2c.2 0 .3.2.3.3v11.2c0 .2-.1.3-.3.3h-2a.3.3 0 0 1-.3-.3V50.1zm1.3 18.1a2 2 0 0 1 0-4 2 2 0 0 1 0 4z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgKpiUnavailable);\nexport default __webpack_public_path__ + \"static/media/kpi-unavailable.cdd26ab8.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgKpiLocked(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 118 121\",\n fill: \"#fff\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59 3.5A58.5 58.5 0 01117.5 62 58.5 58.5 0 0159 120.5 58.5 58.5 0 01.5 62 58.5 58.5 0 0159 3.5z\",\n fillOpacity: 0.2\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76.7 77a.8.8 0 01-.2-.4V57.1a.8.8 0 01.6-.8h4.5l.4.3.2.5v19.4c-.3.4-.3.8-.6.8H77l-.4-.2zm-11.3 0V64.6c0-.3.4-.5.7-.5h4.4c.3 0 .6.2.6.5V77c-.3.3-.3.5-.6.5h-4.4c-.3 0-.7-.2-.7-.5zM54 76.4V55c0-.4.3-.8.6-.8H59c.4 0 .7.4.7.8v21.4c-.3.4-.3.9-.7.9h-4.4c-.3 0-.6-.5-.6-.9zm-11.1-.1v-36c0-.4.3-1 .6-1H48c.3 0 .6.6.6 1v36c0 .4-.3 1-.6 1h-4.5c-.3 0-.6-.6-.6-1zm45.4 7l.2.4v4.2c0 .1 0 .3-.2.4l-.4.2H32a.7.7 0 01-.6-.6V36c0-.1 0-.3.2-.4l.4-.2h4.1a.7.7 0 01.7.6v47h51l.4.1z\",\n fillOpacity: 0.7\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.5.5a25 25 0 110 50 25 25 0 010-50zm10.3 24.2h-2V18c0-2.2-1.8-3.9-4-3.9h-7.4a3.8 3.8 0 00-3.8 3.9v6.7h-2a1 1 0 00-1 1v11.5c0 .5.4 1 1 1h19.2c.5 0 1-.5 1-1V25.7c0-.6-.5-1-1-1zm-15-6.7c0-1 .7-1.7 1.6-1.7H97c.9 0 1.6.7 1.6 1.7v6.7H87.8zm13.8 18H84.7v-9.1h16.9zm-9.3-4.2v1.6l.2.3h1.2c.2 0 .3-.2.3-.3v-1.6a1.4 1.4 0 10-1.7 0z\",\n fillOpacity: 1\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgKpiLocked);\nexport default __webpack_public_path__ + \"static/media/kpi-locked.56206fa9.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgUndo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 11,\n height: 10,\n viewBox: \"0 0 11 10\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.98216 9.21639C0.775818 8.27297 -5.47183e-05 6.80371 -5.48625e-05 5.15402C-5.51114e-05 2.307 2.3005 0.00387203 5.14751 5.30166e-06C7.99839 -0.00386142 10.3105 2.30442 10.3105 5.15402C10.3105 6.76763 9.56947 8.20724 8.40824 9.15195C8.36313 9.18804 8.2974 9.18031 8.26132 9.1352L7.75352 8.48434C7.71872 8.44052 7.72645 8.37737 7.76898 8.34128C7.87338 8.25622 7.97391 8.16471 8.07057 8.06805C8.4474 7.69253 8.74767 7.24737 8.9547 6.75732C9.17123 6.25081 9.27949 5.71079 9.27949 5.15402C9.27949 4.59724 9.17123 4.05723 8.95599 3.54943C8.74849 3.05839 8.45077 2.61761 8.07186 2.23869C7.69294 1.85978 7.25216 1.56206 6.76112 1.35456C6.25204 1.13933 5.71202 1.03107 5.15525 1.03107C4.59847 1.03107 4.05846 1.13933 3.55066 1.35456C3.05962 1.56206 2.61884 1.85978 2.23992 2.2387C1.86101 2.61761 1.56329 3.05839 1.35579 3.54943C1.14056 4.05723 1.03229 4.59725 1.03229 5.15402C1.03229 5.71079 1.14056 6.25081 1.35579 6.75861C1.56282 7.24866 1.8631 7.69382 2.23992 8.06934C2.35978 8.1892 2.48609 8.30133 2.61755 8.40443L3.1421 7.73296C3.15398 7.71761 3.16994 7.70592 3.18817 7.69924C3.20639 7.69256 3.22613 7.69116 3.24511 7.6952C3.26409 7.69924 3.28155 7.70855 3.29548 7.72207C3.3094 7.73559 3.31923 7.75277 3.32383 7.77162L3.8342 9.8621C3.84967 9.92654 3.80069 9.98969 3.73496 9.98969L1.58262 10C1.49627 10 1.4473 9.90076 1.50143 9.83374L1.98216 9.21639Z\",\n fill: \"#262626\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUndo);\nexport default __webpack_public_path__ + \"static/media/undo.e3c65b10.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgKpiThresholdUp(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 500 500\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 250.001 0 C 388.072 0 500 111.928 500 249.999 C 500 388.07 388.072 500 250.001 500 C 111.93 500 0 388.07 0 249.999 C 0 111.928 111.93 0 250.001 0 Z M 338.74 235.274 C 340.753 234.03 342.373 232.239 343.405 230.11 C 344.484 227.988 344.945 225.61 344.742 223.239 C 344.539 220.867 343.679 218.601 342.258 216.696 L 265.596 114.478 C 264.347 112.981 262.783 111.774 261.018 110.945 C 259.252 110.118 257.324 109.69 255.374 109.69 C 253.422 109.69 251.495 110.118 249.728 110.945 C 247.964 111.774 246.4 112.981 245.15 114.478 L 168.489 216.696 C 167.067 218.601 166.207 220.867 166.005 223.239 C 165.801 225.61 166.263 227.988 167.341 230.11 C 168.374 232.239 169.994 234.03 172.007 235.274 C 174.019 236.517 176.346 237.165 178.712 237.137 L 200.244 237.137 C 202.465 237.137 204.266 238.937 204.266 241.159 L 204.266 335.332 C 204.266 337.554 206.066 339.352 208.287 339.352 C 209.991 339.352 230.565 339.352 232.098 339.352 C 237.633 339.352 283.245 339.352 284.948 339.352 L 302.46 339.352 C 304.68 339.352 306.48 337.554 306.48 335.332 L 306.48 241.159 C 306.48 238.937 308.282 237.137 310.502 237.137 L 332.034 237.137 C 334.401 237.165 336.727 236.517 338.74 235.274 Z\",\n className: \"tone-1\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 119.048 224.488 C 119.048 221.202 121.714 218.535 125 218.535 L 167.346 218.535 C 166.603 219.995 166.145 221.591 166.005 223.239 C 165.801 225.61 166.263 227.988 167.341 230.11 C 168.374 232.239 169.994 234.03 172.007 235.274 C 174.019 236.517 176.346 237.165 178.712 237.137 L 200.244 237.137 C 201.645 237.137 202.879 237.853 203.599 238.94 L 125 238.94 C 121.714 238.94 119.048 236.273 119.048 232.988 Z M 385.202 218.535 C 388.488 218.535 391.155 221.202 391.155 224.488 L 391.155 232.988 C 391.155 236.273 388.488 238.94 385.202 238.94 L 307.147 238.94 C 307.867 237.853 309.102 237.137 310.502 237.137 L 332.034 237.137 C 334.401 237.165 336.727 236.517 338.74 235.274 C 340.753 234.03 342.373 232.239 343.405 230.11 C 344.484 227.988 344.945 225.61 344.742 223.239 C 344.601 221.591 344.143 219.995 343.4 218.535 Z M 159.869 380.952 C 159.869 377.654 162.524 374.999 165.821 374.999 L 385.202 374.999 C 388.488 374.999 391.155 377.654 391.155 380.952 L 391.155 389.452 C 391.155 392.737 388.488 395.404 385.202 395.404 L 165.821 395.404 C 162.524 395.404 159.869 392.737 159.869 389.452 Z M 119.048 380.952 C 119.048 377.654 121.714 374.999 125 374.999 L 133.5 374.999 C 136.786 374.999 139.452 377.654 139.452 380.952 L 139.452 389.452 C 139.452 392.737 136.786 395.404 133.5 395.404 L 125 395.404 C 121.714 395.404 119.048 392.737 119.048 389.452 Z\",\n className: \"tone-2\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgKpiThresholdUp);\nexport default __webpack_public_path__ + \"static/media/kpi-threshold-up.a897b975.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgKpiThresholdUpV2(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_859_113119)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 15.8511H32C32 24.6876 24.8366 31.8511 16 31.8511C7.16344 31.8511 0 24.6876 0 15.8511Z\",\n fill: \"#CBEDEE\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 15.8512H28.448V17.4512H32V15.8512ZM24.896 15.8512H21.344V17.4512H24.896V15.8512ZM17.792 15.8512H14.24V17.4512H17.792V15.8512ZM10.688 15.8512H7.136V17.4512H10.688V15.8512ZM3.584 15.8512H0V17.4512H3.552V15.8512H3.584Z\",\n fill: \"#A0D9DB\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.52 4.90686L30.624 12.3789C30.592 12.6189 30.288 12.7309 30.112 12.5549L27.888 10.3309L17.712 20.5069C17.472 20.7469 17.104 20.7469 16.864 20.5069L13.04 16.6989L2.67198 27.0509C2.67198 27.0509 2.54398 27.1309 2.46398 27.1309C2.38398 27.1309 2.30398 27.0989 2.25598 27.0509L0.55998 25.3549C0.55998 25.3549 0.47998 25.2269 0.47998 25.1469C0.47998 25.0669 0.51198 24.9869 0.55998 24.9389L12.624 12.8749C12.864 12.6349 13.232 12.6349 13.472 12.8749L17.296 16.6829L25.776 8.20286L23.552 5.97886C23.552 5.97886 23.488 5.88286 23.472 5.83486C23.472 5.78686 23.472 5.72286 23.472 5.67486C23.488 5.62686 23.52 5.57886 23.568 5.54686C23.616 5.51486 23.664 5.48286 23.728 5.48286L31.2 4.58686C31.392 4.55486 31.552 4.73086 31.536 4.92286L31.52 4.90686Z\",\n fill: \"#62BFC2\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_859_113119\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 32,\n height: 27.28,\n fill: \"white\",\n transform: \"matrix(1 0 0 -1 0 31.8511)\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgKpiThresholdUpV2);\nexport default __webpack_public_path__ + \"static/media/kpi-threshold-up-v2.fcb83c3d.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgKpiThresholdDown(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 500 500\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 250 0 C 388.071 0 500 111.929 500 250 C 500 388.071 388.071 500 250 500 C 111.929 500 0 388.071 0 250 C 0 111.929 111.929 0 250 0 Z M 171.464 269.821 C 169.452 271.06 167.833 272.857 166.798 274.976 C 165.726 277.107 165.262 279.488 165.464 281.857 C 165.667 284.226 166.524 286.488 167.952 288.393 L 244.619 390.607 C 245.857 392.107 247.429 393.321 249.19 394.143 C 250.952 394.976 252.881 395.405 254.833 395.405 C 256.786 395.405 258.714 394.976 260.476 394.143 C 262.25 393.321 263.81 392.107 265.06 390.607 L 341.714 288.393 C 343.143 286.488 344 284.226 344.202 281.857 C 344.405 279.488 343.94 277.107 342.869 274.976 C 341.833 272.857 340.214 271.06 338.202 269.821 C 336.19 268.571 333.869 267.929 331.5 267.952 L 309.964 267.952 C 307.738 267.952 305.94 266.155 305.94 263.929 L 305.94 169.762 C 305.94 167.536 304.143 165.738 301.917 165.738 C 300.214 165.738 279.643 165.738 278.107 165.738 C 272.571 165.738 226.964 165.738 225.262 165.738 L 207.75 165.738 C 205.524 165.738 203.726 167.536 203.726 169.762 L 203.726 263.929 C 203.726 266.155 201.929 267.952 199.702 267.952 L 178.179 267.952 C 175.81 267.929 173.476 268.571 171.464 269.821 Z\",\n className: \"tone-1\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 391.155 280.607 C 391.155 283.893 388.488 286.56 385.202 286.56 L 342.858 286.56 C 343.604 285.1 344.062 283.504 344.202 281.857 C 344.405 279.488 343.94 277.107 342.869 274.976 C 341.833 272.857 340.214 271.06 338.202 269.821 C 336.19 268.571 333.869 267.929 331.5 267.952 L 309.964 267.952 C 308.562 267.952 307.33 267.239 306.609 266.155 L 385.202 266.155 C 388.488 266.155 391.155 268.821 391.155 272.107 Z M 125 286.56 C 121.714 286.56 119.048 283.893 119.048 280.607 L 119.048 272.107 C 119.048 268.821 121.714 266.155 125 266.155 L 203.057 266.155 C 202.337 267.239 201.105 267.952 199.702 267.952 L 178.179 267.952 C 175.81 267.929 173.476 268.571 171.464 269.821 C 169.452 271.06 167.833 272.857 166.798 274.976 C 165.726 277.107 165.262 279.488 165.464 281.857 C 165.605 283.504 166.063 285.1 166.808 286.56 Z M 350.345 124.143 C 350.345 127.429 347.679 130.095 344.393 130.095 L 125 130.095 C 121.714 130.095 119.048 127.429 119.048 124.143 L 119.048 115.643 C 119.048 112.357 121.714 109.69 125 109.69 L 344.393 109.69 C 347.679 109.69 350.345 112.357 350.345 115.643 Z M 391.155 124.143 C 391.155 127.429 388.488 130.095 385.202 130.095 L 376.702 130.095 C 373.417 130.095 370.75 127.429 370.75 124.143 L 370.75 115.643 C 370.75 112.357 373.417 109.69 376.702 109.69 L 385.202 109.69 C 388.488 109.69 391.155 112.357 391.155 115.643 Z\",\n className: \"tone-2\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgKpiThresholdDown);\nexport default __webpack_public_path__ + \"static/media/kpi-threshold-down.dd66f216.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgKpiThresholdDownV2(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 28,\n viewBox: \"0 0 32 28\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_859_113159)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 16.1489L32 16.1489C32 7.31237 24.8366 0.148926 16 0.148926C7.16344 0.148926 0 7.31237 0 16.1489Z\",\n fill: \"#EAEAEA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 16.1488H28.448V14.5488H32V16.1488ZM24.896 16.1488H21.344V14.5488L24.896 14.5488V16.1488ZM17.792 16.1488L14.24 16.1488V14.5488H17.792V16.1488ZM10.688 16.1488H7.136V14.5488L10.688 14.5488V16.1488ZM3.584 16.1488H0L0 14.5488H3.552V16.1488H3.584Z\",\n fill: \"#BFBFBF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.52 27.0931L30.624 19.6211C30.592 19.3811 30.288 19.2691 30.112 19.4451L27.888 21.6691L17.712 11.4931C17.472 11.2531 17.104 11.2531 16.864 11.4931L13.04 15.3011L2.67198 4.94914C2.67198 4.94914 2.54398 4.86914 2.46398 4.86914C2.38398 4.86914 2.30398 4.90114 2.25598 4.94914L0.55998 6.64514C0.55998 6.64514 0.47998 6.77314 0.47998 6.85314C0.47998 6.93314 0.51198 7.01314 0.55998 7.06114L12.624 19.1251C12.864 19.3651 13.232 19.3651 13.472 19.1251L17.296 15.3171L25.776 23.7971L23.552 26.0211C23.552 26.0211 23.488 26.1171 23.472 26.1651C23.472 26.2131 23.472 26.2771 23.472 26.3251C23.488 26.3731 23.52 26.4211 23.568 26.4531C23.616 26.4851 23.664 26.5171 23.728 26.5171L31.2 27.4131C31.392 27.4451 31.552 27.2691 31.536 27.0771L31.52 27.0931Z\",\n fill: \"#595959\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_859_113159\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 32,\n height: 27.28,\n fill: \"white\",\n transform: \"translate(0 0.148926)\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgKpiThresholdDownV2);\nexport default __webpack_public_path__ + \"static/media/kpi-threshold-down-v2.bc3b14e1.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgKpiVarianceUp(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 33,\n height: 40,\n viewBox: \"0 0 33 40\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.3\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.1226 28.5616L10.9524 39.4552C10.8255 39.6244 10.661 39.7616 10.472 39.8562C10.2829 39.9507 10.0744 39.9999 9.86299 39.9999C9.65159 39.9999 9.4431 39.9507 9.25401 39.8562C9.06493 39.7616 8.90046 39.6244 8.77362 39.4552L0.603378 28.5616C0.45187 28.3583 0.360124 28.1168 0.338472 27.8641C0.316819 27.6115 0.366121 27.3579 0.480824 27.1318C0.591051 26.9049 0.763509 26.714 0.978086 26.5814C1.19266 26.4488 1.44052 26.38 1.69274 26.3829H4.41616V24.4928C4.41616 24.0325 4.78925 23.6594 5.24949 23.6594H6.30624C6.76648 23.6594 7.13957 24.0325 7.13957 24.4928V27.7446C7.13957 28.1057 6.99611 28.4521 6.74074 28.7074C6.48537 28.9628 6.13901 29.1063 5.77787 29.1063H4.41616L9.86299 36.3642L15.3098 29.1063H13.9481C13.587 29.1063 13.2406 28.9628 12.9852 28.7074C12.7299 28.4521 12.5864 28.1057 12.5864 27.7446V16.3225C12.5864 15.8623 12.9595 15.4892 13.4197 15.4892H14.4765C14.9367 15.4892 15.3098 15.8623 15.3098 16.3225V26.3829H18.0332C18.2855 26.38 18.5333 26.4488 18.7479 26.5814C18.9625 26.714 19.1349 26.9049 19.2452 27.1318C19.3599 27.3579 19.4092 27.6115 19.3875 27.8641C19.3659 28.1168 19.2741 28.3583 19.1226 28.5616Z\",\n fill: \"black\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.41619 19.046C4.41619 18.5858 4.78928 18.2127 5.24952 18.2127H6.30627C6.76651 18.2127 7.1396 18.5858 7.1396 19.046V20.1028C7.1396 20.563 6.76651 20.9361 6.30627 20.9361H5.24952C4.78928 20.9361 4.41619 20.563 4.41619 20.1028V19.046Z\",\n fill: \"black\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.8202 13.3843C32.0347 13.2517 32.2072 13.0609 32.3174 12.834C32.4321 12.6079 32.4814 12.3542 32.4598 12.1016C32.4381 11.849 32.3464 11.6075 32.1949 11.4042L24.0246 0.510513C23.8916 0.350739 23.725 0.222183 23.5368 0.133958C23.3485 0.0457339 23.1432 0 22.9353 0C22.7273 0 22.522 0.0457339 22.3337 0.133958C22.1455 0.222183 21.9789 0.350739 21.8459 0.510513L13.6756 11.4042C13.5241 11.6075 13.4324 11.849 13.4107 12.1016C13.3891 12.3542 13.4384 12.6079 13.5531 12.834C13.6633 13.0609 13.8358 13.2517 14.0504 13.3843C14.2649 13.5169 14.5128 13.5858 14.765 13.5829H17.0599C17.2965 13.5829 17.4884 13.7748 17.4884 14.0115V24.048C17.4884 24.2847 17.6803 24.4766 17.917 24.4766H19.7833C19.9648 24.4766 20.2913 24.4766 20.4548 24.4766H25.4157C26.0056 24.4766 25.9057 24.4766 26.0872 24.4766H27.9535C28.1902 24.4766 28.3821 24.2847 28.3821 24.048V14.0115C28.3821 13.7748 28.574 13.5829 28.8107 13.5829H31.1055C31.3577 13.5858 31.6056 13.5169 31.8202 13.3843Z\",\n fill: \"#068E99\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgKpiVarianceUp);\nexport default __webpack_public_path__ + \"static/media/kpi-variance-up.77e6b6ed.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgKpiVarianceDown(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 33,\n height: 40,\n viewBox: \"0 0 33 40\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.3\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.2108 11.4383L22.381 0.544683C22.5079 0.375565 22.6724 0.238296 22.8614 0.143757C23.0505 0.0492159 23.259 -1.84811e-08 23.4704 0C23.6818 1.84811e-08 23.8903 0.049216 24.0794 0.143757C24.2685 0.238296 24.4329 0.375565 24.5598 0.544683L32.73 11.4383C32.8815 11.6416 32.9733 11.8832 32.9949 12.1358C33.0166 12.3884 32.9673 12.642 32.8526 12.8681C32.7424 13.095 32.5699 13.2859 32.3553 13.4185C32.1407 13.5511 31.8929 13.62 31.6407 13.6171H28.9172V15.5072C28.9172 15.9674 28.5441 16.3405 28.0839 16.3405H27.0272C26.5669 16.3405 26.1938 15.9674 26.1938 15.5072V12.2554C26.1938 11.8942 26.3373 11.5479 26.5927 11.2925C26.848 11.0371 27.1944 10.8937 27.5555 10.8937L28.9172 10.8937L23.4704 3.63575L18.0236 10.8937L19.3853 10.8937C19.7464 10.8937 20.0928 11.0371 20.3482 11.2925C20.6035 11.5479 20.747 11.8942 20.747 12.2554L20.747 23.6774C20.747 24.1376 20.3739 24.5107 19.9137 24.5107H18.8569C18.3967 24.5107 18.0236 24.1376 18.0236 23.6774L18.0236 13.6171H15.3002C15.0479 13.62 14.8001 13.5511 14.5855 13.4185C14.3709 13.2859 14.1985 13.095 14.0882 12.8681C13.9735 12.642 13.9242 12.3884 13.9459 12.1358C13.9675 11.8832 14.0593 11.6416 14.2108 11.4383Z\",\n fill: \"black\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.9172 20.9539C28.9172 21.4142 28.5441 21.7873 28.0839 21.7873H27.0271C26.5669 21.7873 26.1938 21.4142 26.1938 20.9539V19.8972C26.1938 19.4369 26.5669 19.0638 27.0271 19.0638L28.0839 19.0638C28.5441 19.0638 28.9172 19.4369 28.9172 19.8972V20.9539Z\",\n fill: \"black\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.51335 26.6157C1.29877 26.7483 1.12632 26.9391 1.01609 27.166C0.901386 27.3921 0.852082 27.6458 0.873734 27.8984C0.895387 28.151 0.987135 28.3925 1.13864 28.5958L9.30888 39.4895C9.44191 39.6493 9.60846 39.7778 9.79672 39.866C9.98498 39.9543 10.1903 40 10.3982 40C10.6062 40 10.8115 39.9543 10.9998 39.866C11.188 39.7778 11.3546 39.6493 11.4876 39.4895L19.6579 28.5958C19.8094 28.3925 19.9011 28.151 19.9228 27.8984C19.9444 27.6458 19.8951 27.3921 19.7804 27.166C19.6702 26.9391 19.4977 26.7483 19.2831 26.6157C19.0686 26.4831 18.8207 26.4142 18.5685 26.4171L16.2736 26.4171C16.037 26.4171 15.8451 26.2252 15.8451 25.9885L15.8451 15.952C15.8451 15.7153 15.6532 15.5234 15.4165 15.5234L13.5502 15.5234C13.3687 15.5234 13.0422 15.5234 12.8787 15.5234L7.91781 15.5234C7.32789 15.5234 7.42783 15.5234 7.24626 15.5234L5.37999 15.5234C5.1433 15.5234 4.95142 15.7153 4.95142 15.952L4.95142 25.9885C4.95142 26.2252 4.75954 26.4171 4.52285 26.4171L2.22801 26.4171C1.97578 26.4142 1.72792 26.4831 1.51335 26.6157Z\",\n fill: \"#068E99\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgKpiVarianceDown);\nexport default __webpack_public_path__ + \"static/media/kpi-variance-down.6e033f6b.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _g, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgKpiVarianceUpCircle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 42,\n height: 42,\n viewBox: \"0 0 42 42\",\n fill: \"#068E99\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 21C0 9.40202 9.40202 0 21 0V0C32.598 0 42 9.40202 42 21V21C42 32.598 32.598 42 21 42V42C9.40202 42 0 32.598 0 21V21Z\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.3\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.2735 26.3508L17.3713 32.887C17.2952 32.9884 17.1965 33.0708 17.0831 33.1275C16.9696 33.1842 16.8445 33.2138 16.7177 33.2138C16.5909 33.2138 16.4658 33.1842 16.3523 33.1275C16.2389 33.0708 16.1402 32.9884 16.0641 32.887L11.1619 26.3508C11.071 26.2288 11.016 26.0839 11.003 25.9323C10.99 25.7807 11.0196 25.6285 11.0884 25.4929C11.1545 25.3568 11.258 25.2422 11.3868 25.1627C11.5155 25.0831 11.6642 25.0418 11.8155 25.0435H13.4496V23.9095C13.4496 23.6333 13.6735 23.4095 13.9496 23.4095H14.5836C14.8598 23.4095 15.0836 23.6333 15.0836 23.9095V25.8605C15.0836 26.0772 14.9976 26.285 14.8443 26.4383C14.6911 26.5915 14.4833 26.6776 14.2666 26.6776H13.4496L16.7177 31.0323L19.9858 26.6776H19.1688C18.9521 26.6776 18.7443 26.5915 18.591 26.4383C18.4378 26.285 18.3517 26.0772 18.3517 25.8605V19.0073C18.3517 18.7312 18.5756 18.5073 18.8517 18.5073H19.4858C19.7619 18.5073 19.9858 18.7312 19.9858 19.0073V25.0435H21.6198C21.7712 25.0418 21.9199 25.0831 22.0486 25.1627C22.1774 25.2422 22.2809 25.3568 22.347 25.4929C22.4158 25.6285 22.4454 25.7807 22.4324 25.9323C22.4194 26.0839 22.3644 26.2288 22.2735 26.3508Z\",\n fill: \"black\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.4496 20.6414C13.4496 20.3653 13.6735 20.1414 13.9496 20.1414H14.5837C14.8598 20.1414 15.0837 20.3653 15.0837 20.6414V21.2755C15.0837 21.5516 14.8598 21.7755 14.5837 21.7755H13.9496C13.6735 21.7755 13.4496 21.5516 13.4496 21.2755V20.6414Z\",\n fill: \"black\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.8924 17.2445C30.0211 17.1649 30.1246 17.0504 30.1907 16.9142C30.2596 16.7786 30.2891 16.6264 30.2761 16.4748C30.2632 16.3233 30.2081 16.1783 30.1172 16.0564L25.2151 9.52017C25.1352 9.42431 25.0353 9.34718 24.9224 9.29424C24.8094 9.24131 24.6862 9.21387 24.5614 9.21387C24.4367 9.21387 24.3135 9.24131 24.2005 9.29424C24.0876 9.34718 23.9876 9.42431 23.9078 9.52017L19.0057 16.0564C18.9148 16.1783 18.8597 16.3233 18.8467 16.4748C18.8337 16.6264 18.8633 16.7786 18.9321 16.9142C18.9983 17.0504 19.1018 17.1649 19.2305 17.2445C19.3592 17.324 19.508 17.3653 19.6593 17.3636H21.0362C21.1782 17.3636 21.2933 17.4787 21.2933 17.6208V23.6427C21.2933 23.7847 21.4085 23.8998 21.5505 23.8998H22.6703C22.7792 23.8998 22.9751 23.8998 23.0732 23.8998H26.0497C26.4037 23.8998 26.3437 23.8998 26.4526 23.8998H27.5724C27.7144 23.8998 27.8295 23.7847 27.8295 23.6427V17.6208C27.8295 17.4787 27.9447 17.3636 28.0867 17.3636H29.4636C29.6149 17.3653 29.7636 17.324 29.8924 17.2445Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgKpiVarianceUpCircle);\nexport default __webpack_public_path__ + \"static/media/kpi-variance-up-circle.568f0e56.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _g, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgKpiVarianceDownCircle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 42,\n height: 42,\n viewBox: \"0 0 42 42\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"#068E99\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 21C0 9.40202 9.40202 0 21 0V0C32.598 0 42 9.40202 42 21V21C42 32.598 32.598 42 21 42V42C9.40202 42 0 32.598 0 21V21Z\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.3\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.7264 16.0769L23.6285 9.54068C23.7046 9.43921 23.8033 9.35684 23.9168 9.30012C24.0302 9.2434 24.1553 9.21387 24.2821 9.21387C24.409 9.21387 24.5341 9.2434 24.6475 9.30012C24.761 9.35684 24.8597 9.43921 24.9358 9.54068L29.8379 16.0769C29.9288 16.1988 29.9839 16.3438 29.9969 16.4953C30.0099 16.6469 29.9803 16.7991 29.9114 16.9347C29.8453 17.0709 29.7418 17.1854 29.6131 17.265C29.4843 17.3445 29.3356 17.3858 29.1843 17.3841H27.5502V18.5182C27.5502 18.7943 27.3264 19.0182 27.0502 19.0182H26.4162C26.1401 19.0182 25.9162 18.7943 25.9162 18.5182V16.5671C25.9162 16.3504 26.0023 16.1426 26.1555 15.9894C26.3087 15.8361 26.5165 15.7501 26.7332 15.7501L27.5502 15.7501L24.2821 11.3953L21.0141 15.7501L21.8311 15.7501C22.0478 15.7501 22.2556 15.8361 22.4088 15.9894C22.562 16.1426 22.6481 16.3504 22.6481 16.5671L22.6481 23.4203C22.6481 23.6964 22.4242 23.9203 22.1481 23.9203H21.5141C21.2379 23.9203 21.0141 23.6964 21.0141 23.4203L21.0141 17.3841H19.38C19.2287 17.3858 19.08 17.3445 18.9512 17.265C18.8225 17.1854 18.719 17.0709 18.6529 16.9347C18.584 16.7991 18.5544 16.6469 18.5674 16.4953C18.5804 16.3438 18.6355 16.1988 18.7264 16.0769Z\",\n fill: \"black\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.5502 21.7862C27.5502 22.0624 27.3264 22.2862 27.0502 22.2862H26.4162C26.14 22.2862 25.9162 22.0624 25.9162 21.7862V21.1522C25.9162 20.876 26.14 20.6522 26.4162 20.6522L27.0502 20.6522C27.3264 20.6522 27.5502 20.876 27.5502 21.1522V21.7862Z\",\n fill: \"black\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.1076 25.1833C10.9789 25.2628 10.8754 25.3774 10.8093 25.5135C10.7404 25.6491 10.7109 25.8013 10.7239 25.9529C10.7368 26.1045 10.7919 26.2494 10.8828 26.3714L15.7849 32.9076C15.8648 33.0034 15.9647 33.0806 16.0776 33.1335C16.1906 33.1864 16.3138 33.2139 16.4386 33.2139C16.5633 33.2139 16.6865 33.1864 16.7995 33.1335C16.9124 33.0806 17.0124 33.0034 17.0922 32.9076L21.9943 26.3714C22.0852 26.2494 22.1403 26.1045 22.1533 25.9529C22.1663 25.8013 22.1367 25.6491 22.0679 25.5135C22.0017 25.3774 21.8982 25.2628 21.7695 25.1833C21.6408 25.1037 21.492 25.0624 21.3407 25.0641L19.9638 25.0641C19.8218 25.0641 19.7067 24.949 19.7067 24.807L19.7067 18.7851C19.7067 18.6431 19.5915 18.5279 19.4495 18.5279L18.3297 18.5279C18.2208 18.5279 18.0249 18.5279 17.9268 18.5279L14.9503 18.5279C14.5963 18.5279 14.6563 18.5279 14.5474 18.5279L13.4276 18.5279C13.2856 18.5279 13.1705 18.6431 13.1705 18.7851L13.1705 24.807C13.1705 24.949 13.0553 25.0641 12.9133 25.0641L11.5364 25.0641C11.3851 25.0624 11.2364 25.1037 11.1076 25.1833Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgKpiVarianceDownCircle);\nexport default __webpack_public_path__ + \"static/media/kpi-variance-down-circle.3fa1c40c.svg\";\nexport { ForwardRef as ReactComponent };","var _circle;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDot(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 8 8\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 4,\n cy: 4,\n r: 4\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDot);\nexport default __webpack_public_path__ + \"static/media/dot.ab41c9dd.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLelyMilkDropDetail(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 500 500\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m254 330-2 1h-5l-2-1-30-37-1-2v-2l2-2h13v-7c0-2 1-2 3-2h4c1 0 3 0 3 2v11l-1 3-4 1h-5l21 24 19-24h-5l-3-1-1-3v-37c0-2 1-4 3-4h3c2 0 3 2 3 4v33h14l1 2 1 2-1 2Zm-25-68c0-1 1-2 3-2h4l3 2v4l-3 2h-4c-2 0-3-1-3-2Zm-56-157c0-27 35-49 78-49 42 0 78 22 78 49 0 26-36 48-78 48-43 0-78-22-78-48Zm117 1 8-33-10 4-4 21-8-16-7 3 11 23v21l10 5Zm-16 13-10-5V87l-9 3v29l19 8Zm-28-28-13-6v39l13-6v-7l-6 2v-5l6-1v-4l-6-1v-6l6 2Zm-18 28-12 4V78l-10-4v62l22-9Zm98 171v136c0 14-12 26-26 25H198c-14 0-25-11-25-25V290c0-11 3-23 10-32l24-36v-5c-5 0-9-4-9-8v-34c0-5 4-8 9-8h84c5 0 9 3 9 8v34c0 4-4 8-9 8v5l24 36c7 10 11 21 11 32Zm-111-90h68v-17h-68Zm93 88c0-7-3-15-7-21l-25-36-1-6v-8h-52v8l-1 6-25 36c-5 7-7 16-7 23v62l3 1c19 4 38 2 54-6 19-10 40-13 61-9Z\",\n fill: \"#CF1322\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLelyMilkDropDetail);\nexport default __webpack_public_path__ + \"static/media/lely-milk-drop-detail.0b075bbe.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLelyMilkDropList(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 500 500\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M250 500a250 250 0 1 0-1-500 250 250 0 0 0 1 500Z\",\n fill: \"#EAEAEA\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m254 330-2 1h-5l-2-1-30-37-1-2v-2l2-2h13v-7c0-2 1-2 3-2h4c1 0 3 0 3 2v11l-1 3-4 1h-5l21 24 19-24h-5l-3-1-1-3v-37c0-2 1-4 3-4h3c2 0 3 2 3 4v33h14l1 2 1 2-1 2Zm-25-68c0-1 1-2 3-2h4l3 2v4l-3 2h-4c-2 0-3-1-3-2Zm-56-157c0-27 35-49 78-49 42 0 78 22 78 49 0 26-36 48-78 48-43 0-78-22-78-48Zm117 1 8-33-10 4-4 21-8-16-7 3 11 23v21l10 5Zm-16 13-10-5V87l-9 3v29l19 8Zm-28-28-13-6v39l13-6v-7l-6 2v-5l6-1v-4l-6-1v-6l6 2Zm-18 28-12 4V78l-10-4v62l22-9Zm98 171v136c0 14-12 26-26 25H198c-14 0-25-11-25-25V290c0-11 3-23 10-32l24-36v-5c-5 0-9-4-9-8v-34c0-5 4-8 9-8h84c5 0 9 3 9 8v34c0 4-4 8-9 8v5l24 36c7 10 11 21 11 32Zm-111-90h68v-17h-68Zm93 88c0-7-3-15-7-21l-25-36-1-6v-8h-52v8l-1 6-25 36c-5 7-7 16-7 23v62l3 1c19 4 38 2 54-6 19-10 40-13 61-9Z\",\n fill: \"#CF1322\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLelyMilkDropList);\nexport default __webpack_public_path__ + \"static/media/lely-milk-drop-list.af06c4dd.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLelyNoMilkDropDetail(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 500 500\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M177 100c0-27 34-49 77-49s78 22 78 49c0 26-35 48-78 48s-77-22-77-48Z\",\n fill: \"#CF1322\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m294 129-10-4v-22l-11-23 6-3 8 15 5-21 9-4-7 33v29Zm-17-7-19-9V86l9-4v27l10 4v9Zm-27-29-7-2v5l7 1v5l-7 1v5l7-2v7l-14 6V80l14 6v7Zm-19 28-22 10V68l10 5v44l12-4v8Z\",\n fill: \"#FFF\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m187 253 23-35v-6c-4 0-8-4-8-8v-34c0-4 4-8 8-8h85c5 0 9 4 9 8v34c0 4-4 8-9 8v6l24 35c7 10 10 21 10 33v136c0 14-11 25-25 25H202c-14 0-25-11-25-25V286c0-12 3-23 10-33Zm100-74h-68v16h68v-16Zm-93 111c5 3 14 6 25 6 16 0 30-8 30-8s17-9 38-9c10 0 19 2 25 4 0-7-3-14-7-20l-25-38-2-5v-8h-51v8l-1 5-25 38c-5 7-7 15-7 23v4Zm104 61a7 7 0 0 0-11-10l-37 40c-2 2-5 2-7 0l-23-19a7 7 0 0 0-9 11l23 19c8 7 19 6 26-1l38-40Z\",\n fill: \"#CF1322\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLelyNoMilkDropDetail);\nexport default __webpack_public_path__ + \"static/media/lely-no-milk-drop-detail.8e2e5b6c.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLelyNoMilkDropList(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 500 500\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 250,\n cy: 250,\n r: 250,\n fill: \"#EAEAEA\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M177 100c0-27 34-49 77-49s78 22 78 49c0 26-35 48-78 48s-77-22-77-48Z\",\n fill: \"#CF1322\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m294 129-10-4v-22l-11-23 6-3 8 15 5-21 9-4-7 33v29Zm-17-7-19-9V86l9-4v27l10 4v9Zm-27-29-7-2v5l7 1v5l-7 1v5l7-2v7l-14 6V80l14 6v7Zm-19 28-22 10V68l10 5v44l12-4v8Z\",\n fill: \"#FFF\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m187 253 23-35v-6c-4 0-8-4-8-8v-34c0-4 4-8 8-8h85c5 0 9 4 9 8v34c0 4-4 8-9 8v6l24 35c7 10 10 21 10 33v136c0 14-11 25-25 25H202c-14 0-25-11-25-25V286c0-12 3-23 10-33Zm100-74h-68v16h68v-16Zm-93 111c5 3 14 6 25 6 16 0 30-8 30-8s17-9 38-9c10 0 19 2 25 4 0-7-3-14-7-20l-25-38-2-5v-8h-51v8l-1 5-25 38c-5 7-7 15-7 23v4Zm104 61a7 7 0 0 0-11-10l-37 40c-2 2-5 2-7 0l-23-19a7 7 0 0 0-9 11l23 19c8 7 19 6 26-1l38-40Z\",\n fill: \"#CF1322\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLelyNoMilkDropList);\nexport default __webpack_public_path__ + \"static/media/lely-no-milk-drop-list.c88131dc.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLelyKetosisDetail(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 500 500\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M174 105c0-27 34-49 77-49s78 22 78 49c0 26-35 48-78 48s-77-22-77-48Zm117 0 7-33-9 4-5 21-7-15-7 3 11 23v22l10 4Zm-17 13-10-4V87l-9 4v27l19 9Zm-27-27-14-6v39l14-6v-7l-7 2v-5l7-1v-4l-7-2v-5l7 2Zm-19 27-12 4V78l-10-5v63l22-10Zm-37 209 41 45c4 6 11 9 17 9 7 0 13-3 18-9l40-45c4-3 9-4 12-1 4 2 4 7 1 10l-41 46c-8 9-19 14-30 14s-23-5-30-13l-41-46c-3-4-2-8 1-11 4-3 9-2 12 1Zm33-92c4 3 7 7 8 12l11 50 7 31 1 2 3 1 3-1v-3l7-30 6-31c1-5 4-10 8-12 4-3 8-4 13-4s9 1 13 4c4 2 7 7 8 12l4 22 3 3h39c5 0 9 4 8 8 0 4-3 8-8 8h-37c-10 0-19-7-21-16l-4-22h-1l-1-2-2-1-3 1-1 2h-1l-6 31-7 31c-1 4-4 9-8 11-3 3-8 4-12 4-5 0-10-1-13-4-4-3-7-7-8-11l-7-31-10-51h-1l-1-2-3-1-2 1-1 2h-1l-8 42c-2 8-11 15-21 15h-38c-4 0-8-3-8-7 0-5 3-8 8-8h39l3-2 9-42c1-5 4-9 8-12 3-2 8-4 12-4 5 0 9 2 13 4Zm124-32a75 75 0 0 1 19 64c0 4-4 7-8 7h-2c-4-1-7-5-6-9v-10c0-16-6-30-16-42a51 51 0 0 0-78 3l-2 1c-2 1-4 2-6 1h-3l-1-1-2-1a52 52 0 0 0-40-19c-14 0-27 6-38 16a60 60 0 0 0-16 42v10c1 4-2 8-7 9h-1c-4 0-7-3-7-6v-1l-1-12c0-19 8-38 21-52a68 68 0 0 1 95-5l1 1 2-1a69 69 0 0 1 96 5Z\",\n fill: \"#CF1322\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLelyKetosisDetail);\nexport default __webpack_public_path__ + \"static/media/lely-ketosis-detail.8d6d8d37.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLelyKetosisList(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 500 500\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 250,\n cy: 250.5,\n r: 250,\n fill: \"#EAEAEA\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M174 105c0-27 34-49 77-49s78 22 78 49c0 26-35 48-78 48s-77-22-77-48Zm117 0 7-33-9 4-5 21-7-15-7 3 11 23v22l10 4Zm-17 13-10-4V87l-9 4v27l19 9Zm-27-27-14-6v39l14-6v-7l-7 2v-5l7-1v-4l-7-2v-5l7 2Zm-19 27-12 4V78l-10-5v63l22-10Zm-37 209 41 45c4 6 11 9 17 9 7 0 13-3 18-9l40-45c4-3 9-4 12-1 4 2 4 7 1 10l-41 46c-8 9-19 14-30 14s-23-5-30-13l-41-46c-3-4-2-8 1-11 4-3 9-2 12 1Zm33-92c4 3 7 7 8 12l11 50 7 31 1 2 3 1 3-1v-3l7-30 6-31c1-5 4-10 8-12 4-3 8-4 13-4s9 1 13 4c4 2 7 7 8 12l4 22 3 3h39c5 0 9 4 8 8 0 4-3 8-8 8h-37c-10 0-19-7-21-16l-4-22h-1l-1-2-2-1-3 1-1 2h-1l-6 31-7 31c-1 4-4 9-8 11-3 3-8 4-12 4-5 0-10-1-13-4-4-3-7-7-8-11l-7-31-10-51h-1l-1-2-3-1-2 1-1 2h-1l-8 42c-2 8-11 15-21 15h-38c-4 0-8-3-8-7 0-5 3-8 8-8h39l3-2 9-42c1-5 4-9 8-12 3-2 8-4 12-4 5 0 9 2 13 4Zm124-32a75 75 0 0 1 19 64c0 4-4 7-8 7h-2c-4-1-7-5-6-9v-10c0-16-6-30-16-42a51 51 0 0 0-78 3l-2 1c-2 1-4 2-6 1h-3l-1-1-2-1a52 52 0 0 0-40-19c-14 0-27 6-38 16a60 60 0 0 0-16 42v10c1 4-2 8-7 9h-1c-4 0-7-3-7-6v-1l-1-12c0-19 8-38 21-52a68 68 0 0 1 95-5l1 1 2-1a69 69 0 0 1 96 5Z\",\n fill: \"#CF1322\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLelyKetosisList);\nexport default __webpack_public_path__ + \"static/media/lely-ketosis-list.0321e5f6.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgAjinomoto(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 500 500\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"circle\", {\n style: {\n stroke: \"#000\",\n fill: \"#eaeaea\",\n paintOrder: \"fill\",\n strokeWidth: 0\n },\n cx: 250,\n cy: 250,\n r: 250\n }), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M452.2 223.6a35.5 35.5 0 0 0-35.1-32.2 37.4 37.4 0 0 0-36.4 23.9c0-9.3-3.2-16.7-11.7-19.8a39 39 0 0 0 18.2-32.8 39.5 39.5 0 0 0-39.8-39.1c-20.3 0-37 15-39.5 34.2v-15.9c0-13-7.6-22.9-23.4-22.9h-27c-8.1 0-15.5 3.8-20.5 9.7l-59.6 68.4c-7.6-2-24.4-5.6-38.2-5.7-24-.1-46 9-63.2 26.5a56.8 56.8 0 0 0-11.7 62c8.8 19.2 27.4 31.9 53.4 32.6 38.9 1.1 63.5-25.5 85-49.7 13.3 3.2 26 5 41.2 5.6V289c0 12 10 21.9 22.3 21.9h31.3c-11.4 7.5-16.4 16.7-17 25.4-.8 11 10.4 32.7 45 32.7 14.7 0 28.2-6.1 38-17.3 8-9.3 13-21.3 14.3-35a276.4 276.4 0 0 0 47.2-34.2c19.1-18.3 29-37.9 27.2-58.9Z\",\n fill: \"#fff\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m257.5 178-39.3 45.8c13.6 3.2 26.3 4.8 39.3 4.6Zm-95.6 57.5a60.4 60.4 0 0 0-15.3-3.8c-16.5-2.3-32.2 0-43 14.8-8 11-3.8 28.6 9.6 28.6 12.6 0 24.8-14.8 35.2-25.7ZM364.7 309c-.1 28.4-17.7 46.6-39.1 46.6-9.8 0-18.7-2.1-25.6-8-6.6-5.6-10.5-14 3.8-24l26-17.5.1-71.8c-12.4 6.7-24 11.3-36.6 15V289c0 4.7-4 8.6-8.8 8.6h-18.3a8.7 8.7 0 0 1-8.7-8.6v-33.7c-25.1 0-41.5-2.4-59.7-7.7v.1s-6.3 7.6-12.9 14.6c-24.7 26.5-41.4 36.9-67.2 36.9-39.4 0-59.6-41.7-31.6-72.4a72.5 72.5 0 0 1 61.3-21.7c15.3 1.5 27.5 5 34.5 7.4l65.7-75.4c3-3.1 6-4.7 9.8-4.7h27.1c4.7 0 8.5 3.6 8.8 8.2v82.2c21.7-7.5 33-17.7 44.6-17.7h17.6c5 0 9.1 3.9 9.2 8.7V283c18.4-13 33-25.6 39.2-39.9-5.1-3.8-8.4-10-8.4-16.8 0-11.7 9.6-21.2 21.6-21.2 11.3 0 21.7 9.2 21.7 21.3 1.8 34.7-39.2 61.8-74.1 82.7ZM321 162.7a26 26 0 0 1 26.3-25.8 26 26 0 0 1 26.2 25.8 26 26 0 0 1-26.2 25.8 26 26 0 0 1-26.3-25.8Z\",\n fill: \"#E31118\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAjinomoto);\nexport default __webpack_public_path__ + \"static/media/ajinomoto.8f173082.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCow(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 500 500\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 250,\n cy: 250,\n r: 250,\n fill: \"#FFF\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#262626\",\n d: \"M217 305.3a18 18 0 0114.7 8 18.8 18.8 0 012.2 16.8c-.2.8-.6 1.6-1.2 2.2-.7.6-1.4 1-2.3 1.2-3.4.6-5.6-2.3-4.4-6a9.7 9.7 0 00-9.6-13.3 9.4 9.4 0 00-7.3 4.3l-.6 1a4.1 4.1 0 01-5.7 1.6 4.2 4.2 0 01-2-2.7 4.3 4.3 0 01.6-3.3c1.8-3.5 4.8-6.3 8.5-7.8 2.3-.8 4.7-1.5 7.2-2zm47.6 18.8c0-4 1.5-8 4-11.2 2.4-3.2 5.8-5.6 9.7-6.6a17.8 17.8 0 0120.5 10 4.5 4.5 0 01-.6 3.4c-.3.5-.7 1-1.2 1.3-2.2 1.3-4.4.7-6-2a9.4 9.4 0 00-17.7 3.2c-.2 1.8 0 3.6.4 5.2.8 3 0 5.2-2.4 6a4.2 4.2 0 01-4.7-1.8c-.3-.5-.6-1-.6-1.7-.6-1.8-1-3.8-1.4-5.8zm30.4 48.5a21.4 21.4 0 01-17 9.3h-56.7a20.5 20.5 0 01-16-9c2.5.1 5 0 7.6-.4 6.3-1.4 12.5-3.1 18.6-4.8 12.2-3.5 25-3.5 37.1 0 6.5 1.8 13 3.4 19.5 4.9 2.3.2 4.6.2 7 0zm-44.4-107.8c7.6 0 15.3-.3 22.9 0 7 .4 13.4 3.5 18.2 8.6 2.1 2 4 4.3 5.9 6.6a20.5 20.5 0 0014.1 8 23.8 23.8 0 0118.8 12c1.2 2.3 2 5 2.2 7.7.5 7.7.3 15.4-.5 23a30.6 30.6 0 01-14.6 21.8c-4 2.5-7.8 5.2-11.9 7.6a28 28 0 01-22.8 3c-8.3-3-16.9-5-25.5-6.3-10.8-.9-21.7.4-32 3.7a54.2 54.2 0 01-17.2 3.8c-4.2 0-8.3-1-12-2.9-6.4-3.6-12.4-7.6-18.2-12a29.9 29.9 0 01-10.8-22.5c-.2-5-.3-10.2-.3-15.3-.2-5.5 1.5-11 5-15.2a22 22 0 0113.7-8l4.5-.8c4.5-.7 8.5-3 11.4-6.6a91 91 0 0110-10.3c5.4-4.3 12-6.5 18.8-6.2h20.4zm-.7 8h-20c-5.6 0-11.1 2.2-15.3 6.1-2.7 2.6-5 5.5-7.5 8.3a25 25 0 01-14.2 8.4l-6.8 1.4a14 14 0 00-7.9 5c-2 2.4-3 5.6-3.1 8.8.2 4.4 0 8.7 0 13.2a23.9 23.9 0 009 19.3c4.6 3.4 9.4 6.6 14.3 9.6a19.5 19.5 0 0016 2l9.5-3a80 80 0 0139.2-2.8c7 1.3 14 3.3 20.8 5.3a21.5 21.5 0 0018.1-1.8l9.7-6a25.8 25.8 0 0013-24.1v-11.6a14 14 0 00-3-9.2c-2-2.6-5-4.3-8.1-4.9-3.6-.8-7.2-1.4-10.7-2.6a29.4 29.4 0 01-13.5-11.1 25.5 25.5 0 00-22-10.4c-5.9.4-11.7.2-17.5.2zm131.7-141.6c13 .6 26 3.8 38 9.2a9.2 9.2 0 015 9.8 73.1 73.1 0 01-40.1 56.5 38 38 0 01-26.5 3.6c-1.3-.3-1.7-.8-2-2.2a29.8 29.8 0 00-11.8-19.8 14.7 14.7 0 01-6-10.3 83.2 83.2 0 00-7.4-24 2.9 2.9 0 011.3-3.3 69.6 69.6 0 0149.5-19.5zm-261.7 0c19.3 0 35 7.6 48.7 20.5a2.8 2.8 0 01.4 2.2c-2 6.4-4.4 12.7-6.4 19.1-.5 1.8-.8 3.6-1 5.4a14.6 14.6 0 01-6 9.9 29.2 29.2 0 00-11.8 19.9c-.2 1.5-.8 2-2.2 2.2-9.4 2-19.1.5-27.4-4.3a79.1 79.1 0 01-28-25.5 77 77 0 01-10.8-31 8.6 8.6 0 015.3-9.4c12.3-5.5 25.7-8.6 39.2-9zm90-10.2a78.3 78.3 0 0179.2-.4s24 13.9 31.1 31c5.1 9.4 8.6 19.6 10.2 30.2a22 22 0 009.3 13.7 20.4 20.4 0 018.3 16.7v17.4a29 29 0 01-12.4 23.1 22.9 22.9 0 00-10 18.5l-.8 11c-5-1.1-9.7-2-14.2-3.4-2-.7-3.7-1.7-5.2-3.2-3.5-3.4-6.6-7.2-10.2-10.6a33 33 0 00-13.4-7.3 2.9 2.9 0 01-2.2-2.7 201 201 0 01-2.3-35.4c.3-27.3 8.9-53.8 24.5-75.9l.9-1.5a71.1 71.1 0 00-105.6 0l2.1 3.2c12 17.3 19.5 37.3 22.1 58.3 2 17.2 1.7 34.5-1 51.6-.1.5-.3 1-.7 1.5-.3.4-.8.7-1.4.8-7.7 2.3-14.5 7-19.3 13.6a21 21 0 01-15.5 9c-2.8.5-5.5 1.3-8.2 2.3l-.8-11.5a23.6 23.6 0 00-9.9-18 28.7 28.7 0 01-12.5-24.7v-15.8a20.5 20.5 0 018.1-16.7 24.7 24.7 0 0010.2-17.3c1.5-9.2 4.6-18 9.2-26C186 138 210 121 210 121zm-18.2 108.5c0-3.4-1.4-6.6-3.6-9a6.5 6.5 0 00-6.7-2.6 6.8 6.8 0 00-4.8 6.1c-.5 3.3.1 6.8 1.9 9.6a7.7 7.7 0 008.5 4.5c2.6-.9 4.6-4.3 4.6-8.7zm132.2-3.2c-.3-1.7-.8-3.5-1.5-5.1a5.8 5.8 0 00-3.9-3.4 5.5 5.5 0 00-5 1.2 13.5 13.5 0 00-4.2 15.4 6 6 0 004 3.8 5.8 5.8 0 005.4-1.3 14 14 0 005-10.7z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCow);\nexport default __webpack_public_path__ + \"static/media/cow.cf765418.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgFarmEquipment(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"#007180\",\n viewBox: \"0 0 500 500\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M481.2 473.5a13 13 0 0 0-10.2-2h-12.5v-40a18 18 0 0 0-5-13 15 15 0 0 0-10.8-4 15 15 0 0 0-11.3 5 14.6 14.6 0 0 0-3.6 11.7v40.9H220V253c0-4.5-2-8.8-5.2-12a14 14 0 0 0-10.8-4 15.2 15.2 0 0 0-15 16.4v8.9L50.2 299.2l-21 5.8a24.1 24.1 0 0 0-14.8 10.7 23.4 23.4 0 0 0-2.7 18c.8 4 1.4 8 1.8 12.1.5 6.1 1.5 12.2 2.9 18.1a24.3 24.3 0 0 0 19.6 17v89.5H20.4c-3.5.5-6.6 2.3-8.9 5-2.2 2.5-3.4 5.9-3.4 9.4a14 14 0 0 0 2.8 9.6c2.1 2.7 5.2 4.6 8.6 5.3 3 .4 5.9.4 8.8 0h445c3 .2 6-.6 8.5-2.3 4.6-3 7.6-8 8.2-13.5a17.5 17.5 0 0 0-8.8-10.4ZM174.5 420c.3-3.4.3-7 0-10.4a31.3 31.3 0 0 0-29.2-24.4h-28a31.3 31.3 0 0 0-33.3 33v53H67.4v-95.8l121.4-33.3v128.8h-14.3V420Zm-31.8-4v54h-29.2v-38.5c1.4-5.5 1.4-9.8 1.7-15.5h27.5ZM190 292.6V310l-83.8 23.3-60.4 16.4v-17L190 292.6Zm268.2-156a131.3 131.3 0 0 0-62-115.8A136.2 136.2 0 0 0 223 44.5c-18 20-29.3 44.9-32.6 71.5-1.2 12-1.7 24-1.4 36.2v37.4c-.2 4.8 1.8 9.4 5.2 12.7 3.4 2.8 7.9 4 12.3 3.4 4.2-.7 8-3 10.4-6.4a16 16 0 0 0 3-11.7v-10h207.2v193.8a14 14 0 0 0 4.4 9c2.6 2.4 5.9 3.8 9.4 4h3.2a21 21 0 0 0 12.8-7.8 18 18 0 0 0 2.6-11.8v-33.1c-1.1-67.6-1.1-123.1-1.4-195Zm-233.5-31c6.1-21.3 19-40 36.7-53.2a103.7 103.7 0 0 1 124-.3c17.8 13.3 30.8 32 36.9 53.5H224.7ZM429 136.9v9.2H220.3V137H429Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFarmEquipment);\nexport default __webpack_public_path__ + \"static/media/farm-equipment.652057ac.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgFeed(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"#007180\",\n viewBox: \"0 0 500 500\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m500 312-1.4 29v6.7c-.8 4.7-2.5 9.1-2.5 13.9-3 17.3-9.8 33.7-19.7 48.1 2.6 3.3 5 6.9 7 10.6 3.7 10 4.7 20.7 2.7 31.1v2.8a22.2 22.2 0 0 1-19.5 18.7H142.8a14 14 0 1 1-1.7-27.9c3-.3 6-.3 9 0h307.3v-1.6a56 56 0 0 0 0-10c-.4-1.5-1-3-1.9-4.2-7.7 4.5-16.4 6.9-25.3 7h-360c-9-.1-17.9-2.6-25.6-7.3-1.7 2-2.7 4.6-2.8 7.2v9h40.9c2.6 0 5.2.5 7.8 1.3a13.3 13.3 0 0 1 9.4 14.2c0 6.9-5.3 12.5-12.2 12.8H33.2a19.2 19.2 0 0 1-18.1-18 130 130 0 0 1 1.7-30.4c1.3-5 3.7-9.6 7-13.6-9-12.8-15.3-27.1-18.7-42.3a161.1 161.1 0 0 1 12.2-112.7 65.7 65.7 0 0 1 33.7-33 65 65 0 0 1 19.2-3.7h19.2A128 128 0 0 1 69 164.1a167 167 0 0 1 7.7-83.5 88.8 88.8 0 0 1 27.9-41c9.4-7.7 21.4-12 33.6-11.9h62.4c2.3-.4 4.6-.4 6.9 0a12.2 12.2 0 0 1 9.5 15c-1 4.3-3.6 8.1-7.3 10.6a15 15 0 0 1-9.4 2.3h-17.8a137.3 137.3 0 0 1 22 81.7 135 135 0 0 1-22.3 80.7h163.9c13.2.6 25.6-6.7 31.4-18.6 7.4-12.2 12-25.7 13.9-39.8v-4.5c1-11.3 1-22.8 0-34.2v-4.4c-.8-5.3-2.8-10.6-2.8-15.6a75.8 75.8 0 0 0-19.2-37.6 24.7 24.7 0 0 0-18.9-8h-83.5c-3.4.3-6.8-.5-9.7-2.3a18.8 18.8 0 0 1-7.2-10.5c-1.4-6.8 3-13.4 9.7-14.8 3.9-.6 7.8-.6 11.7 0h76.2c23 0 44.2 12.9 54.6 33.4 10.5 16.9 17 35.9 19.1 55.7v7.2c1.3 12.6 1.3 25.2 0 37.8v2.5a332 332 0 0 1-7.5 29.8 85.3 85.3 0 0 1-12.2 24.8h24a58.1 58.1 0 0 1 54 29.4 131.7 131.7 0 0 1 20.2 61ZM108 80.3a133.9 133.9 0 0 0-7.2 97.7 69 69 0 0 0 18.9 32.8 20.9 20.9 0 0 0 29.8 0c4-3.7 7.4-8 10.3-12.5a122.4 122.4 0 0 0 16.1-62c0-2.6.8-1.7 0-9-.8-7.2-1.4-14.4-2.8-21.4a86 86 0 0 0-18.9-41c-4.5-5.5-11.2-9-18.4-9.4-7 .5-13.4 4-17.5 9.8a60 60 0 0 0-10.3 15Zm1.1 241c.2-2 .2-3.8 0-5.7-.8-8.3-2.2-16.6-4.1-24.7a70.3 70.3 0 0 0-21-38.4c-3.9-3.9-9.1-6.1-14.6-6.4-5.5.1-10.8 2.4-14.5 6.4-4.9 5.3-9 11.3-12 17.8a134.4 134.4 0 0 0-6.7 98 69.9 69.9 0 0 0 19.5 33.6 20 20 0 0 0 27.8 0c4.2-3.6 7.7-7.9 10.6-12.5a128 128 0 0 0 15-68.2Zm6.7 86.7 50.4-.3a137.2 137.2 0 0 1-22-80.6 136.6 136.6 0 0 1 22-80.7h-49.8c15.5 24 23.2 52.3 22 81 1.1 28.5-6.8 56.8-22.6 80.6Zm128-29.2a139 139 0 0 0 5.8-83.4 85.8 85.8 0 0 0-17-36.8A27.8 27.8 0 0 0 215 249a25 25 0 0 0-18.1 8.9c-2.7 3-5.1 6.3-7.3 9.7-11.6 21.1-17 45-15.8 69v4.2c1 7 2.5 16.7 4.7 25.8a70.1 70.1 0 0 0 19.8 36.2 20.6 20.6 0 0 0 30 0c7-6.1 12.3-13.8 15.6-22.5Zm217.8-.3a136 136 0 0 0 8.6-73.7 94.6 94.6 0 0 0-17-43.1 30.9 30.9 0 0 0-26.4-14H260a139 139 0 0 1 22.3 81 139 139 0 0 1-22.3 81h169.2a25 25 0 0 0 17.5-7 66 66 0 0 0 15-22.5ZM319.2 83.4c-3.9-.3-7-3.4-7.3-7.3.4-3.9 3.6-7 7.5-7a7 7 0 0 1 7 7c-.1 4-3.3 7.1-7.2 7.3Zm43.4 97c-.3 4-3.4 7-7.3 7.3-3.9-.1-7-3.3-7.2-7.2a7 7 0 0 1 7-7 7 7 0 0 1 7.5 7Zm-136-3.8c-4 0-7.3-3.3-7.3-7.3a7.3 7.3 0 0 1 7-7c4 0 7.2 3.1 7.5 7 0 4-3.3 7.3-7.3 7.3Zm97.6 24.7a7.2 7.2 0 0 1 0-14.2c4 0 7.4 3.2 7.5 7.3-.1 4-3.5 7-7.5 7Zm39.8 89c-4-.1-7.1-3.5-7-7.4a7.5 7.5 0 0 1 7.2-7 7.2 7.2 0 0 1 0 14.5Zm84.3 43.5a7 7 0 0 1-10 6.5 7.3 7.3 0 0 1-4.2-6.8 8 8 0 0 1 7.2-7c3.9.2 7 3.4 7 7.3Zm-131 52.5c-.2-3.9 3-7 6.9-7 4 0 7.2 3.3 7.2 7.3a7 7 0 0 1-7 6.7c-4 .3-7.3-3-7.2-7Zm-174-116.5a8 8 0 0 1-7-7.5 7.8 7.8 0 0 1 7.3-7c4.1.2 7.3 3.7 7 7.8a7 7 0 0 1-7.3 6.7ZM76.6 327v40.3c-1.7 2.2-4 3.7-6.7 4.2-2.5-.8-4.7-2.5-6.1-4.7a10 10 0 0 1 0-5.9v-66.8c0-7.5 2.2-11 7.2-11.3 5-.3 7.5 3.8 7.5 11.6Zm129.6-35c0-6 3-9.2 7.5-9.2s7 3.6 7 9.1v69.6c0 5.5-2.8 8.9-7.5 8.9-4.8 0-7-3-7-9Zm-63.1-120c0 5.3-2.8 9-7 9s-7.2-3.4-7.2-9.3v-70c0-6 2.5-8.7 7-9 4.4-.3 7.2 3 7.2 9.2v70.1Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m500 312-1.4 29v6.7c-.8 4.7-2.5 9.1-2.5 13.9-3 17.3-9.8 33.7-19.7 48.1 2.6 3.3 5 6.9 7 10.6 3.7 10 4.7 20.7 2.7 31.1v2.8a22.2 22.2 0 0 1-19.5 18.7H142.8a14 14 0 1 1-1.7-27.9c3-.3 6-.3 9 0h307.3v-1.6a56 56 0 0 0 0-10c-.4-1.5-1-3-1.9-4.2-7.7 4.5-16.4 6.9-25.3 7h-360c-9-.1-17.9-2.6-25.6-7.3-1.7 2-2.7 4.6-2.8 7.2v9h40.9c2.6 0 5.2.5 7.8 1.3a13.3 13.3 0 0 1 9.4 14.2c0 6.9-5.3 12.5-12.2 12.8H33.2a19.2 19.2 0 0 1-18.1-18 130 130 0 0 1 1.7-30.4c1.3-5 3.7-9.6 7-13.6-9-12.8-15.3-27.1-18.7-42.3a161.1 161.1 0 0 1 12.2-112.7 65.7 65.7 0 0 1 33.7-33 65 65 0 0 1 19.2-3.7h19.2A128 128 0 0 1 69 164.1a167 167 0 0 1 7.7-83.5 88.8 88.8 0 0 1 27.9-41c9.4-7.7 21.4-12 33.6-11.9h62.4c2.3-.4 4.6-.4 6.9 0a12.2 12.2 0 0 1 9.5 15c-1 4.3-3.6 8.1-7.3 10.6a15 15 0 0 1-9.4 2.3h-17.8a137.3 137.3 0 0 1 22 81.7 135 135 0 0 1-22.3 80.7h163.9c13.2.6 25.6-6.7 31.4-18.6 7.4-12.2 12-25.7 13.9-39.8v-4.5c1-11.3 1-22.8 0-34.2v-4.4c-.8-5.3-2.8-10.6-2.8-15.6a75.8 75.8 0 0 0-19.2-37.6 24.7 24.7 0 0 0-18.9-8h-83.5c-3.4.3-6.8-.5-9.7-2.3a18.8 18.8 0 0 1-7.2-10.5c-1.4-6.8 3-13.4 9.7-14.8 3.9-.6 7.8-.6 11.7 0h76.2c23 0 44.2 12.9 54.6 33.4 10.5 16.9 17 35.9 19.1 55.7v7.2c1.3 12.6 1.3 25.2 0 37.8v2.5a332 332 0 0 1-7.5 29.8 85.3 85.3 0 0 1-12.2 24.8h24a58.1 58.1 0 0 1 54 29.4 131.7 131.7 0 0 1 20.2 61ZM108 80.3a133.9 133.9 0 0 0-7.2 97.7 69 69 0 0 0 18.9 32.8 20.9 20.9 0 0 0 29.8 0c4-3.7 7.4-8 10.3-12.5a122.4 122.4 0 0 0 16.1-62c0-2.6.8-1.7 0-9-.8-7.2-1.4-14.4-2.8-21.4a86 86 0 0 0-18.9-41c-4.5-5.5-11.2-9-18.4-9.4-7 .5-13.4 4-17.5 9.8a60 60 0 0 0-10.3 15Zm1.1 241c.2-2 .2-3.8 0-5.7-.8-8.3-2.2-16.6-4.1-24.7a70.3 70.3 0 0 0-21-38.4c-3.9-3.9-9.1-6.1-14.6-6.4-5.5.1-10.8 2.4-14.5 6.4-4.9 5.3-9 11.3-12 17.8a134.4 134.4 0 0 0-6.7 98 69.9 69.9 0 0 0 19.5 33.6 20 20 0 0 0 27.8 0c4.2-3.6 7.7-7.9 10.6-12.5a128 128 0 0 0 15-68.2Zm6.7 86.7 50.4-.3a137.2 137.2 0 0 1-22-80.6 136.6 136.6 0 0 1 22-80.7h-49.8c15.5 24 23.2 52.3 22 81 1.1 28.5-6.8 56.8-22.6 80.6Zm128-29.2a139 139 0 0 0 5.8-83.4 85.8 85.8 0 0 0-17-36.8A27.8 27.8 0 0 0 215 249a25 25 0 0 0-18.1 8.9c-2.7 3-5.1 6.3-7.3 9.7-11.6 21.1-17 45-15.8 69v4.2c1 7 2.5 16.7 4.7 25.8a70.1 70.1 0 0 0 19.8 36.2 20.6 20.6 0 0 0 30 0c7-6.1 12.3-13.8 15.6-22.5Zm217.8-.3a136 136 0 0 0 8.6-73.7 94.6 94.6 0 0 0-17-43.1 30.9 30.9 0 0 0-26.4-14H260a139 139 0 0 1 22.3 81 139 139 0 0 1-22.3 81h169.2a25 25 0 0 0 17.5-7 66 66 0 0 0 15-22.5ZM319.2 83.4c-3.9-.3-7-3.4-7.3-7.3.4-3.9 3.6-7 7.5-7a7 7 0 0 1 7 7c-.1 4-3.3 7.1-7.2 7.3Zm43.4 97c-.3 4-3.4 7-7.3 7.3-3.9-.1-7-3.3-7.2-7.2a7 7 0 0 1 7-7 7 7 0 0 1 7.5 7Zm-136-3.8c-4 0-7.3-3.3-7.3-7.3a7.3 7.3 0 0 1 7-7c4 0 7.2 3.1 7.5 7 0 4-3.3 7.3-7.3 7.3Zm97.6 24.7a7.2 7.2 0 0 1 0-14.2c4 0 7.4 3.2 7.5 7.3-.1 4-3.5 7-7.5 7Zm39.8 89c-4-.1-7.1-3.5-7-7.4a7.5 7.5 0 0 1 7.2-7 7.2 7.2 0 0 1 0 14.5Zm84.3 43.5a7 7 0 0 1-10 6.5 7.3 7.3 0 0 1-4.2-6.8 8 8 0 0 1 7.2-7c3.9.2 7 3.4 7 7.3Zm-131 52.5c-.2-3.9 3-7 6.9-7 4 0 7.2 3.3 7.2 7.3a7 7 0 0 1-7 6.7c-4 .3-7.3-3-7.2-7Zm-174-116.5a8 8 0 0 1-7-7.5 7.8 7.8 0 0 1 7.3-7c4.1.2 7.3 3.7 7 7.8a7 7 0 0 1-7.3 6.7ZM76.6 327v40.3c-1.7 2.2-4 3.7-6.7 4.2-2.5-.8-4.7-2.5-6.1-4.7a10 10 0 0 1 0-5.9v-66.8c0-7.5 2.2-11 7.2-11.3 5-.3 7.5 3.8 7.5 11.6Zm129.6-35c0-6 3-9.2 7.5-9.2s7 3.6 7 9.1v69.6c0 5.5-2.8 8.9-7.5 8.9-4.8 0-7-3-7-9Zm-63.1-120c0 5.3-2.8 9-7 9s-7.2-3.4-7.2-9.3v-70c0-6 2.5-8.7 7-9 4.4-.3 7.2 3 7.2 9.2v70.1Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFeed);\nexport default __webpack_public_path__ + \"static/media/feed.c188587f.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgHousing(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"#007180\",\n viewBox: \"0 0 500 500\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M500 421c.6 6-3 11.5-8.8 13.2-2.8 1-5.8 1.4-8.8 1.2H16.8c-6.8.6-13.4-2.8-16.8-8.7V417c2.1-4.7 6.5-8 11.6-8.8v-55.1c0-11.9 5.2-17 17-17h28V182.7a18.7 18.7 0 0 1 9.6-17.2c58-34.4 115.6-69 173-103.7a19 19 0 0 1 21.3 0L432 165.2a19 19 0 0 1 10.2 17.8v153h23.7c18.9 0 22.2 3.4 22.2 22v50.4h1.9c5.8 1.4 10 6.6 10 12.6Zm-182.3-13.3h142V364h-142v8.2h39.8a13.7 13.7 0 1 1 0 27.3H318ZM416 201V189c0-1.6 0-2.1-2.1-3.3-24.8-14.7-50.4-29.6-74-44.5L318 128.6V201Zm-32.6 95.3c-.1 7-5.6 12.7-12.6 13.2h-53v26h97.8V229.2H318v52.8h47.3c2.2-.3 4.4-.3 6.6 0 6.9.8 12 6.8 11.6 13.7Zm-173.7-67v51.9H289v-52.6Zm0-115.9v87.8h80.2v-88.7c-.3-.7-.8-1.2-1.4-1.5L270 99.7c-6.4-3.8-12.6-7.3-18.7-11.4h-3.1l-37 22.3c-1.6 1-1.6 1.2-1.6 2.8Zm0 196.6v97.5h80V310Zm-125.1 0v26h97.4v-26Zm97.4-108.4-.2-73-21.5 12.5L84 186.3v95.6h98V229h-47.4c-5.2.4-10.4-1.3-14.4-4.7a12 12 0 0 1-3.3-9.5c0-5 2.3-13.2 17.7-13.2H182Zm-142 198-.6 9h142v-43.4h-142v7.3H79c7.3-.3 13.5 5.4 13.7 12.8.5 7.4-5.1 13.7-12.5 14.4ZM427 372a14 14 0 0 1 14.8 13.7c0 7.8-6.6 14-14.4 13.5h-19.6c-4.1 0-8-1.6-11-4.5a13 13 0 0 1-3.5-9.7c.1-4.3 2.4-8.2 6-10.6l5.4-2.4Zm-280 0c8.2-1 15.4 5.5 15.4 13.7s-7 14.5-15.2 13.5h-19.3c-8.1.6-14.9-6-14.5-14.2 0-4.5 2.5-8.6 6.4-10.9l5.2-2.1Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgHousing);\nexport default __webpack_public_path__ + \"static/media/housing.98d7c9bf.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgManagement(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"#007180\",\n viewBox: \"0 0 500 500\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M442 481a19.6 19.6 0 0 1-19 19H80a19.6 19.6 0 0 1-19-19V69c0-10.6 8.5-19.3 19-19.5h76.3V19.6a19 19 0 0 1 19-19.5h169.4a19.6 19.6 0 0 1 21.1 19.5v30H421c10.6.2 19 8.9 19 19.5v200.7a19.6 19.6 0 1 1-38.5 0V89.7h-37.6v21.6a19.6 19.6 0 0 1-19 19H175.2a19 19 0 0 1-19-19V89.7H99.6v372.2h303.8V359a19.6 19.6 0 0 1 38.6 0ZM195 89.7h132.3V38.2H194.9Zm-4.7 124 31-34a19 19 0 0 1 27.2 0 20 20 0 0 1 0 27.4l-44.8 44.8a22 22 0 0 1-7.7 4c-7 3.5-15.5 2-21.1-3.5L148 225.6a20 20 0 0 1 0-27.3c3.8-3.6 8.7-5.6 14-5.7 5.3.7 10.1 3.5 13.3 7.8Zm0 152.5 29.4-32.5a20 20 0 0 1 27.3 0 19 19 0 0 1 0 27.3L202 405.8c-2 2.4-4.7 4-7.7 4.6a19 19 0 0 1-21.2-4L147 379.4a18.5 18.5 0 0 1 0-26.7 17 17 0 0 1 13.4-5.7 20 20 0 0 1 13.9 5.2Zm154.5-167.4a19.6 19.6 0 0 1 0 38.6h-33a19.6 19.6 0 1 1 0-38.6h33Zm0 151.9a19.6 19.6 0 0 1 0 38.6h-33a19.6 19.6 0 1 1 0-38.6Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgManagement);\nexport default __webpack_public_path__ + \"static/media/management.7d9b58d6.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgOther(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"#007180\",\n viewBox: \"0 0 500 500\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m394.6 139.8-.2 4v7.8c0 3.7-1.2 7.3-3.6 10.2l-11.6 11.8-19.6 19.8v-56.6c0-9.5-2.7-12.3-12.2-12.3h-24.1v34.6H91.9v-34.6H65.1a9.3 9.3 0 0 0-10 9.8v201.4a17.5 17.5 0 1 1-34.8 0V135c-1-25.5 20-46.4 45.5-45.5h31.8a58.9 58.9 0 0 1 35.5-32c8-2 14.2-8.2 16.3-16.1a61.4 61.4 0 0 1 116.2-.3c2.4 7.9 8.6 14 16.5 16.2a58.2 58.2 0 0 1 35 31.8h32.1c25.4-.8 46.2 20 45.4 45.4v5.3Zm-106.5-14v-9.7c0-11.8-8-22.1-19.4-25.2-17-5.5-30.4-19-35.6-36.1-1.4-4.4-4-8.4-7.3-11.6-14-14.1-38-8.3-43.9 10.7a56.4 56.4 0 0 1-37.2 37c-4 1.6-7.7 4-10.7 7-6.4 7.5-9 17.4-7.3 27Zm186.5 66.7a26.4 26.4 0 0 1 .3 40l-79.1 79.1c-.4.8-.4 1.7 0 2.5v138.6a44.1 44.1 0 0 1-34.1 45.7L357 500H58.5c-11-2-21-7.6-28.4-16.1a45.5 45.5 0 0 1-10-29.3v-43.2a17.5 17.5 0 1 1 34.8 0v43.1c0 9.4 5.7 11 7.5 11 1.2.2 2.4.2 3.6 0h281.2c8 0 11.3-3.2 11.3-11V347l-10 10-64 64.4a22.7 22.7 0 0 1-16.2 6.6h-51.8v-56.2a18 18 0 0 1 5-12l189.7-190a26.8 26.8 0 0 1 40.7 0l22.8 22.7ZM268.5 390.1 255 376.8c-1.3 1.6-10.7 10.7-12.5 14.3-1.8 3.7 0 5.7 0 5.7 3.6 4.3 5.3 8.6 7.5 8.6.7 0 16.7-14.2 18.4-15.3Zm173.9-175.8L430 202 280.8 351.6l12.3 12Zm-142 35H114.6V215h185.6Zm-11 19.3L271 287c-2.5 2.5-5 4.6-7 7-5 6.2-12.6 9.6-20.4 9.2H113.8v-34.6Zm-54.3 54.8-17.5 17.5-13.4 12a13.6 13.6 0 0 1-9.3 3.4H120l-7-1.3v-32.8Zm-39 86.6h-83v-34.3h83ZM207.5 49c11.4.9 20.3 10 21 21.4 0 5.8-2.2 11.4-6.2 15.6a30 30 0 0 1-15.7 6.6 21 21 0 0 1-8.4-1.6 22.7 22.7 0 0 1-13.4-20.6c.7-12 10.7-21.4 22.7-21.4Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgOther);\nexport default __webpack_public_path__ + \"static/media/other.893419e4.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgWeather(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"#007180\",\n viewBox: \"0 0 500 500\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m188.7 21.4-11.8 37.1-26.5-8.4L162.2 13ZM45.3 103.6 37 129.9 0 118.2 8.3 92Zm46.4 130.6 27.4 8.6-12.5 35h-3l-20.4-6.3h-3l11.5-37.3ZM87.1 27l17.2 33-22.8 11.5-17.2-33L87.1 27Zm-39 149.5Zm0 0 11.6 23-32.6 16.9L16.5 193Zm207.7-71v177.2c0 11.6-4.6 17.5-15.5 17.5-25.9.8-47 20.8-49.2 46.6v4.3a14.2 14.2 0 1 1-28 0v-9.3a81.5 81.5 0 0 1 64-68.6v-175a14.2 14.2 0 1 1 28.3 0v7.3Zm50.5 234.3c7.5.4 13.2 6.7 12.9 14.2v10a78.2 78.2 0 0 1-77 69.6h-3a14.2 14.2 0 0 1-13.5-12c-.3-3.6.6-7.4 2.7-10.5 2.3-2.7 5.6-4.5 9.2-5h4a51.5 51.5 0 0 0 50.8-50.4v-2.3c0-7.6 6.3-13.7 13.9-13.6Zm193 28.4h-21.7L498 389 478 406.5l-10-9.2c-7.2-7.3-15-14.6-22.4-22.5a19.5 19.5 0 0 0-15.1-6.6h-47.2l7.9 12.6c6.2 9.8 12.2 19.7 18.1 29.6a11 11 0 0 0 7 5l33 8 15.8 5.5-6 25.5-30-7.3 12 19.8-22.2 13.9-12.5-20.5-7 26.4v3l-25-6.3V480c1-4 2.6-8 2.6-11.9 2.3-9.6 4.6-19.1 7.6-28.4a20.1 20.1 0 0 0-3-20.1 531.2 531.2 0 0 1-15.8-25.4c-2.3-4-4.6-8-7.3-11.6v2c-4.4 20-13.7 38.4-27 53.8.3 2.5 1 5 2 7.3 2.5 7.6 4.6 15.5 6.2 23.4.7 3.6 2.3 7 2.3 10.6v3.3h-2l-21.7 5.6-7.6-29.7-12.6 20.4-16.2-9.9c-6.8 2.5-14 4.5-21 6a121.8 121.8 0 0 1-93.2-218.2c2.5-1.7 4-4.5 4-7.6V190a57.8 57.8 0 0 1-56.4 12.2 58.7 58.7 0 0 1-33-29 58.4 58.4 0 0 1 25.4-79c21.6-11.3 48-7.9 66 8.7a67.6 67.6 0 0 1 70.6-64c36 1.1 64.8 30 66 66v28c0 7.7-6.2 13.9-13.9 13.9-7.7.1-14.1-6.1-14.1-13.9v-25.7c.5-15-7.8-29-21.2-35.7a39.6 39.6 0 0 0-58.4 35.4v148.4c.7 9-3.8 17.4-11.5 21.8a93.8 93.8 0 1 0 143.6 94.7 93 93 0 0 0-42.6-96 19.5 19.5 0 0 1-10-18.1v-63a14.2 14.2 0 1 1 28.4 0v52c1 1.3 2 2.6 2.7 4L321 221l25 6.6-4.2 16.2c-2.7 10.6-5 20.8-8 31 14.2 15 24 33.7 28.5 53.8l9.2-15.2c5.6-9.2 11.2-18.5 17.2-27.7 1.1-2.7 1.1-5.8 0-8.6a945.9 945.9 0 0 1-9.3-35.3l-3.6-14.2 25-6.6 8 29.7 12.5-20.4 21.1 15.5-11.8 19.8 30-7 6 25.1-15 3.7-35.5 8.9c-3 .3-5.8 1.9-7.6 4.3-6.6 10.5-13.6 21.7-20.5 33l-5 8.2H436c2 0 4-.9 5.6-2.3l24.7-26.7 11.3-12.6 19.4 20.2-20.4 21H500Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWeather);\nexport default __webpack_public_path__ + \"static/media/weather.529f7b65.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgAvatarList(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 500 500\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 103.142 0 C 127.619 0 147.495 19.876 147.495 44.347 L 147.495 44.701 C 147.495 69.202 127.619 89.054 103.142 89.054 C 78.642 89.054 58.789 69.202 58.789 44.701 L 58.789 44.347 C 58.789 19.876 78.642 0 103.142 0 Z M 103.142 205.482 C 127.619 205.482 147.495 225.358 147.495 249.835 L 147.495 250.159 C 147.495 274.66 127.619 294.512 103.142 294.512 C 78.642 294.512 58.789 274.66 58.789 250.159 L 58.789 249.835 C 58.789 225.358 78.642 205.482 103.142 205.482 Z M 103.142 410.969 C 127.619 410.969 147.495 430.846 147.495 455.322 L 147.495 455.647 C 147.495 480.147 127.619 500 103.142 500 C 78.642 500 58.789 480.147 58.789 455.647 L 58.789 455.322 C 58.789 430.846 78.642 410.969 103.142 410.969 Z M 181.669 13.672 L 427.233 13.672 C 434.783 13.672 440.934 19.823 440.934 27.373 C 440.934 34.952 434.783 41.074 427.233 41.074 L 181.669 41.074 C 174.096 41.074 167.968 34.952 167.968 27.373 C 167.968 19.823 174.096 13.672 181.669 13.672 Z M 181.669 219.159 L 290.753 219.159 C 298.302 219.159 304.454 225.311 304.454 232.86 C 304.454 240.433 298.302 246.561 290.753 246.561 L 181.669 246.561 C 174.096 246.561 167.968 240.433 167.968 232.86 C 167.968 225.311 174.096 219.159 181.669 219.159 Z M 181.669 424.723 L 290.753 424.723 C 298.302 424.723 304.454 430.869 304.454 438.419 C 304.454 445.998 298.302 452.12 290.753 452.12 L 181.669 452.12 C 174.096 452.12 167.968 445.998 167.968 438.419 C 167.968 430.869 174.096 424.723 181.669 424.723 Z M 331.803 219.159 L 413.585 219.159 C 421.135 219.159 427.286 225.311 427.286 232.86 C 427.286 240.433 421.135 246.561 413.585 246.561 L 331.803 246.561 C 324.23 246.561 318.102 240.433 318.102 232.86 C 318.102 225.311 324.23 219.159 331.803 219.159 Z M 331.803 424.723 L 413.585 424.723 C 421.135 424.723 427.286 430.869 427.286 438.419 C 427.286 445.998 421.135 452.12 413.585 452.12 L 331.803 452.12 C 324.23 452.12 318.102 445.998 318.102 438.419 C 318.102 430.869 324.23 424.723 331.803 424.723 Z M 178.248 54.775 L 321.476 54.775 C 327.155 54.775 331.756 59.376 331.756 65.049 C 331.756 70.723 327.155 75.324 321.476 75.324 L 178.248 75.324 C 172.568 75.324 167.968 70.723 167.968 65.049 C 167.968 59.376 172.568 54.775 178.248 54.775 Z M 178.248 260.263 L 321.476 260.263 C 327.155 260.263 331.756 264.863 331.756 270.537 C 331.756 276.211 327.155 280.811 321.476 280.811 L 178.248 280.811 C 172.568 280.811 167.968 276.211 167.968 270.537 C 167.968 264.863 172.568 260.263 178.248 260.263 Z M 178.248 465.75 L 321.476 465.75 C 327.155 465.75 331.756 470.351 331.756 476.024 C 331.756 481.698 327.155 486.299 321.476 486.299 L 178.248 486.299 C 172.568 486.299 167.968 481.698 167.968 476.024 C 167.968 470.351 172.568 465.75 178.248 465.75 Z M 103.166 109.58 C 108.793 109.603 113.364 114.18 113.393 119.807 L 113.393 167.834 C 113.393 173.485 108.816 178.079 103.166 178.079 C 97.492 178.079 92.915 173.508 92.915 167.834 L 92.915 119.807 C 92.915 114.156 97.515 109.58 103.166 109.58 Z M 103.166 321.891 C 108.816 321.915 113.393 326.492 113.393 332.142 L 113.393 380.146 C 113.393 385.796 108.816 390.391 103.166 390.391 C 97.492 390.391 92.915 385.82 92.915 380.146 L 92.915 332.142 C 92.915 326.492 97.492 321.891 103.166 321.891 Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAvatarList);\nexport default __webpack_public_path__ + \"static/media/avatar-list.8b09f655.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _rect2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIncreasedBars(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 500 500\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 306.5,\n height: 129,\n x: 435.5,\n y: 1177.4,\n fillOpacity: 0.6,\n rx: 60,\n transform: \"rotate(-90 -92.7 1028.2)\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 500,\n height: 129,\n x: 693.5,\n y: 1177.4,\n rx: 60,\n transform: \"rotate(-90 165.3 1028.2)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIncreasedBars);\nexport default __webpack_public_path__ + \"static/media/increased-bars.56c643bd.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _rect2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDecreasedBars(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 500 500\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 306.5,\n height: 129,\n x: -435.5,\n y: -1177.4,\n fillOpacity: 0.6,\n rx: 60,\n transform: \"matrix(0 -1 -1 0 -733.9 64.5)\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 500,\n height: 129,\n x: -693.5,\n y: -1177.4,\n rx: 60,\n transform: \"matrix(0 -1 -1 0 -992 -193.5)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDecreasedBars);\nexport default __webpack_public_path__ + \"static/media/decreased-bars.3f1b9ce2.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _rect2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgUnchangedBars(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 500 500\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 500,\n height: 129,\n x: 435.5,\n y: 1177.4,\n fillOpacity: 0.6,\n rx: 60,\n transform: \"rotate(-90 -92.7 1028.2)\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 500,\n height: 129,\n x: 693.5,\n y: 1177.4,\n rx: 60,\n transform: \"rotate(-90 165.3 1028.2)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUnchangedBars);\nexport default __webpack_public_path__ + \"static/media/unchanged-bars.f871eea6.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _rect2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgUnchangedBarsInsufficient(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 500 500\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 500,\n height: 129,\n x: 435.5,\n y: 1177.4,\n fillOpacity: 0.6,\n rx: 60,\n transform: \"rotate(-90 -92.7 1028.2)\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 500,\n height: 129,\n x: 693.5,\n y: 1177.4,\n fillOpacity: 0.6,\n rx: 60,\n transform: \"rotate(-90 165.3 1028.2)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUnchangedBarsInsufficient);\nexport default __webpack_public_path__ + \"static/media/unchanged-bars-insufficient.317f5246.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgBrowser(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 16,\n viewBox: \"0 0 18 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.00033 15.5V13.8333L4.83366 13H2.33366C1.87533 13 1.48296 12.8368 1.15658 12.5104C0.830187 12.184 0.666992 11.7917 0.666992 11.3333V2.16667C0.666992 1.70833 0.830187 1.31597 1.15658 0.989583C1.48296 0.663194 1.87533 0.5 2.33366 0.5H9.00033V2.16667H2.33366V11.3333H15.667V8.83333H17.3337V11.3333C17.3337 11.7917 17.1705 12.184 16.8441 12.5104C16.5177 12.8368 16.1253 13 15.667 13H13.167L14.0003 13.8333V15.5H4.00033ZM11.5003 10.5L7.33366 6.33333L8.50033 5.16667L10.667 7.3125V0.5H12.3337V7.3125L14.5003 5.16667L15.667 6.33333L11.5003 10.5Z\",\n fill: \"#666666\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBrowser);\nexport default __webpack_public_path__ + \"static/media/browser.6ae97005.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgActionKey(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 500 500\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m467.442 500-71.512-70.93a84.874 84.874 0 0 1-22.384 9.593c-7.946 2.132-16.182 3.197-24.709 3.197-25.581 0-47.481-9.108-65.698-27.325-18.216-18.217-27.325-40.116-27.325-65.698 0-25.581 9.109-47.48 27.325-65.698 18.217-18.216 40.117-27.325 65.698-27.325 25.582 0 47.481 9.109 65.698 27.325 18.217 18.218 27.325 40.117 27.325 65.698 0 8.915-1.162 17.345-3.488 25.291-2.326 7.946-5.62 15.407-9.884 22.384L500 467.442 467.442 500ZM93.023 441.86c-25.581 0-47.481-9.108-65.697-27.325C9.109 396.318 0 374.419 0 348.837c0-25.581 9.109-47.48 27.326-65.698 18.216-18.216 40.116-27.325 65.697-27.325 25.582 0 47.481 9.109 65.698 27.325 18.217 18.218 27.325 40.117 27.325 65.698 0 25.582-9.108 47.481-27.325 65.698-18.217 18.217-40.116 27.325-65.698 27.325Zm0-46.511c12.791 0 23.74-4.554 32.849-13.663 9.109-9.108 13.663-20.058 13.663-32.849 0-12.791-4.554-23.74-13.663-32.849-9.109-9.108-20.058-13.662-32.849-13.662-12.79 0-23.74 4.554-32.849 13.662-9.108 9.109-13.662 20.058-13.662 32.849 0 12.791 4.554 23.741 13.662 32.849 9.109 9.109 20.059 13.663 32.849 13.663Zm255.814 0c12.791 0 23.74-4.554 32.849-13.663 9.109-9.108 13.663-20.058 13.663-32.849 0-12.791-4.554-23.74-13.663-32.849-9.109-9.108-20.058-13.662-32.849-13.662-12.791 0-23.74 4.554-32.849 13.662-9.108 9.109-13.662 20.058-13.662 32.849 0 12.791 4.554 23.741 13.662 32.849 9.109 9.109 20.058 13.663 32.849 13.663ZM93.023 186.046c-25.581 0-47.481-9.108-65.697-27.325C9.109 140.504 0 118.605 0 93.023c0-25.581 9.109-47.48 27.326-65.697C45.542 9.109 67.442 0 93.023 0c25.582 0 47.481 9.109 65.698 27.326 18.217 18.217 27.325 40.116 27.325 65.697 0 25.582-9.108 47.481-27.325 65.698-18.217 18.217-40.116 27.325-65.698 27.325Zm255.814 0c-25.581 0-47.481-9.108-65.698-27.325-18.216-18.217-27.325-40.116-27.325-65.698 0-25.581 9.109-47.48 27.325-65.697C301.356 9.109 323.256 0 348.837 0c25.582 0 47.481 9.109 65.698 27.326 18.217 18.217 27.325 40.116 27.325 65.697 0 25.582-9.108 47.481-27.325 65.698-18.217 18.217-40.116 27.325-65.698 27.325ZM93.023 139.535c12.791 0 23.74-4.554 32.849-13.663 9.109-9.108 13.663-20.058 13.663-32.849 0-12.79-4.554-23.74-13.663-32.849-9.109-9.108-20.058-13.662-32.849-13.662-12.79 0-23.74 4.554-32.849 13.662-9.108 9.109-13.662 20.059-13.662 32.849 0 12.791 4.554 23.741 13.662 32.849 9.109 9.109 20.059 13.663 32.849 13.663Zm255.814 0c12.791 0 23.74-4.554 32.849-13.663 9.109-9.108 13.663-20.058 13.663-32.849 0-12.79-4.554-23.74-13.663-32.849-9.109-9.108-20.058-13.662-32.849-13.662-12.791 0-23.74 4.554-32.849 13.662-9.108 9.109-13.662 20.059-13.662 32.849 0 12.791 4.554 23.741 13.662 32.849 9.109 9.109 20.058 13.663 32.849 13.663ZM93.023 348.837Zm0-255.814Zm255.814 0Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgActionKey);\nexport default __webpack_public_path__ + \"static/media/action-key.999897d4.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCopilot(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n viewBox: \"0 0 18 18\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 4.2c-1 0-1.9.9-1.9 2 0 .3.1.6.3.8l-1.1 1.1H8.4V5.7h1.4a2 2 0 0 0 3.7-.9c0-1-.9-1.9-2-1.9a2 2 0 0 0-1.8 1.3H8.4v-.1a3 3 0 0 0-6 0v.4A3 3 0 0 0 .6 9.2 3 3 0 0 0 2.4 14a3 3 0 0 0 6-.4H11a2 2 0 0 0 3.7-.8c0-1-.9-1.9-2-1.9a2 2 0 0 0-1.7 1.2H8.4V9.5h5.4L15.4 8h.7c1 0 1.9-.8 1.9-1.8s-.9-2-2-2zm-4.4.1c.2 0 .5.2.5.5s-.3.5-.5.5-.5-.2-.5-.5.2-.5.5-.5zM7 13.6c0 .9-.7 1.6-1.6 1.6-.8 0-1.5-.6-1.6-1.4l-.1-1-1-.2c-.7-.2-1.3-.8-1.3-1.6 0-.4.2-.7.3-1l.7-.8-.7-.8c-.1-.2-.3-.5-.3-1C1.4 6.7 2 6 2.7 6l1.1-.3V4.1A1.6 1.6 0 1 1 7 4v9.5zm5.8-1.3c.3 0 .5.2.5.5s-.2.5-.5.5a.5.5 0 0 1-.5-.5c0-.3.2-.5.5-.5zM16 6.7a.5.5 0 0 1-.5-.5c0-.3.2-.6.5-.6.2 0 .5.3.5.6 0 .2-.3.5-.5.5z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCopilot);\nexport default __webpack_public_path__ + \"static/media/copilot.45dfed48.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _path, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgStarHalfFilled(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 19 19\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_1777_83362)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillOpacity: 0.01,\n d: \"M.5.3999h18v18H.5z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip1_1777_83362)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00444D\",\n d: \"M17.4574 6.2092l-5.1006-.7413L10.0766.8454A.6393.6393 0 0 0 9.7853.554C9.468.3974 9.0822.528 8.9235.8454L6.6434 5.4679l-5.1007.7413a.6416.6416 0 0 0-.3676.1869.6439.6439 0 0 0 .012.91l3.6904 3.598-.8719 5.0806a.6415.6415 0 0 0 .2553.6287.6414.6414 0 0 0 .6769.0483L9.5 14.263l4.5623 2.3987a.6382.6382 0 0 0 .4078.0643c.3496-.0603.5846-.3918.5244-.7413l-.8719-5.0806 3.6904-3.598a.642.642 0 0 0 .1868-.3676c.0543-.3516-.1908-.677-.5424-.7293zm-4.8877 4.1886l.7252 4.2248L9.5 12.6298l-3.7948 1.9948.7252-4.2247-3.0696-2.9934 4.2428-.6167L9.5 2.9468l1.8965 3.843 4.2428.6168-3.0696 2.9912z\"\n })))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00444D\",\n d: \"M9.5 13.3999v-11.5l-2.5 4.5-4.5 1 3.5 3-1 5 4.5-2z\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1777_83362\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M0 0h18v18H0z\",\n transform: \"translate(.5 .3999)\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip1_1777_83362\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M0 0h18v18H0z\",\n transform: \"translate(.5 .3999)\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgStarHalfFilled);\nexport default __webpack_public_path__ + \"static/media/star-half-filled.54d41265.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgFeedCircle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 500 500\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 250,\n cy: 250,\n r: 250,\n id: \"background\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n id: \"icon\",\n d: \"m426.1 269.3-1 20.6v4.8c-.5 3.3-1.7 6.4-1.7 9.9-2.2 12.2-7 23.9-14 34.1 1.8 2.4 3.5 5 5 7.6a41.2 41.2 0 0 1 1.9 22v2c-1.1 7.1-6.8 12.5-13.9 13.3h-230a10 10 0 1 1-1.2-19.8 32 32 0 0 1 6.4 0h218.3v-1.1c.2-2.4.2-4.8 0-7.1-.3-1.1-.7-2.2-1.4-3a36.4 36.4 0 0 1-18 5H120.9c-6.4-.1-12.7-1.9-18.2-5.2a8.5 8.5 0 0 0-2 5v6.5h29c2 0 3.8.3 5.6 1a9.4 9.4 0 0 1 6.7 10 9 9 0 0 1-8.7 9H94.5c-7-.3-12.4-5.8-12.9-12.7-.4-7.2 0-14.5 1.2-21.6a25 25 0 0 1 5-9.7 84 84 0 0 1-13.3-30c-6.9-26.9-3.8-55.3 8.7-80a46.7 46.7 0 0 1 24-23.5c4.3-1.6 9-2.5 13.6-2.7h13.6a91 91 0 0 1-14.5-39.5c-3.2-19.9-1.3-40.3 5.5-59.3a63 63 0 0 1 19.8-29.1 37.4 37.4 0 0 1 23.9-8.5h44.3c1.7-.3 3.3-.3 5 0 4.8 1 8 5.9 6.7 10.7-.7 3-2.6 5.7-5.2 7.5-2 1.3-4.3 1.9-6.7 1.6h-12.6a97.6 97.6 0 0 1 15.6 58 96 96 0 0 1-15.8 57.4h116.4c9.4.5 18.2-4.7 22.3-13.2A73.1 73.1 0 0 0 349 161v-3.2c.7-8 .7-16.2 0-24.3v-3c-.6-3.8-2-7.6-2-11.2-2-10-6.7-19.2-13.6-26.7a17.6 17.6 0 0 0-13.5-5.7h-59.3c-2.4.2-4.8-.3-6.9-1.6a13.4 13.4 0 0 1-5.1-7.5 9 9 0 0 1 6.9-10.5c2.8-.4 5.5-.4 8.3 0h54.1c16.4 0 31.4 9.2 38.8 23.8 7.5 12 12.1 25.5 13.6 39.5v5.1c1 9 1 18 0 26.9v1.8a236 236 0 0 1-5.3 21.2c-2 6.3-4.9 12.2-8.7 17.6h17c15.8-1 30.7 7.1 38.4 20.9 8.3 13 13.2 27.9 14.4 43.3ZM147.6 104.7a95.1 95.1 0 0 0-5 69.4 49 49 0 0 0 13.4 23.3c5.8 6 15.3 6 21.1 0 2.9-2.6 5.3-5.7 7.3-8.9a87 87 0 0 0 11.5-44c0-1.9.5-1.2 0-6.4-.6-5.1-1-10.2-2-15.2a61 61 0 0 0-13.4-29.1c-3.2-4-8-6.4-13.1-6.7-5 .3-9.5 2.8-12.4 7-3 3.1-5.5 6.7-7.4 10.6Zm.8 171.2c.2-1.4.2-2.7 0-4a133 133 0 0 0-2.9-17.6 50 50 0 0 0-15-27.3 15.8 15.8 0 0 0-10.3-4.5c-3.9 0-7.7 1.7-10.3 4.5a49 49 0 0 0-8.5 12.7 95.5 95.5 0 0 0-4.8 69.6c2.3 9.1 7.1 17.4 13.9 23.9a14.2 14.2 0 0 0 19.7 0 39 39 0 0 0 7.6-8.9 91 91 0 0 0 10.6-48.4Zm4.8 61.6 35.8-.2c-11-17-16.5-37-15.6-57.3a97 97 0 0 1 15.6-57.3h-35.4c11 17 16.5 37.2 15.6 57.6a97 97 0 0 1-16 57.2Zm91-20.7a98.8 98.8 0 0 0 4-59.3 61 61 0 0 0-12-26.1 19.8 19.8 0 0 0-12.5-6.8c-5 .2-9.7 2.5-12.9 6.3-2 2.1-3.6 4.5-5.2 6.9-8.2 15-12 32-11.2 49v3c.7 5 1.8 11.8 3.3 18.3 2 9.8 7 18.8 14 25.7a14.6 14.6 0 0 0 21.4 0c5-4.3 8.7-9.8 11-16Zm154.7-.2c6.8-16.6 9-34.7 6-52.4a67.2 67.2 0 0 0-12-30.6 22 22 0 0 0-18.8-10H255.6c11.1 17.1 16.7 37.2 15.9 57.6a98.8 98.8 0 0 1-15.9 57.5h120.2c4.7 0 9.1-1.7 12.5-5 4.6-4.5 8.2-10 10.6-16ZM297.7 106.9c-2.8-.2-5-2.4-5.2-5.2.3-2.8 2.6-5 5.3-5a5 5 0 0 1 5 5c0 2.9-2.3 5-5.1 5.2Zm30.8 69c-.2 2.8-2.4 4.9-5.2 5.1-2.7 0-5-2.3-5-5.1a5 5 0 0 1 4.9-5 5 5 0 0 1 5.3 5ZM232 173a5.2 5.2 0 0 1-5.2-5.2 5.2 5.2 0 0 1 5-5c2.8 0 5.1 2.3 5.3 5 0 2.9-2.3 5.2-5.2 5.2Zm69.3 17.6a5.1 5.1 0 0 1 0-10.1c2.9 0 5.3 2.3 5.4 5.2-.1 2.8-2.5 5-5.4 5Zm28.3 63.2c-2.8 0-5-2.5-5-5.3a5.3 5.3 0 0 1 5.2-5 5.2 5.2 0 1 1 0 10.4Zm60 31a5 5 0 0 1-7.2 4.5c-1.9-.8-3-2.7-3-4.8a5.7 5.7 0 0 1 5.1-5c2.8.2 5 2.4 5 5.2ZM296.2 322c-.1-2.8 2.2-5 5-5s5 2.4 5 5.2a5 5 0 0 1-5 4.8 4.8 4.8 0 0 1-5-5Zm-123.6-82.8a5.7 5.7 0 0 1-5-5.3 5.5 5.5 0 0 1 5.2-5c3 .2 5.2 2.7 5 5.6a5 5 0 0 1-5.2 4.7ZM125.3 280v28.6a7.8 7.8 0 0 1-4.7 3 8.1 8.1 0 0 1-4.4-3.3 7.1 7.1 0 0 1 0-4.2v-47.5c0-5.3 1.6-7.8 5.2-8 3.5-.2 5.3 2.7 5.3 8.2Zm92.1-24.9c0-4.3 2.1-6.5 5.3-6.5 3.2 0 5 2.5 5 6.4v49.5c0 3.9-2 6.3-5.3 6.3-3.4 0-5-2.1-5-6.4Zm-44.8-85.3c0 3.8-2 6.4-5 6.4s-5.1-2.4-5.1-6.6V120c0-4.3 1.8-6.2 5-6.4 3-.2 5 2.1 5 6.5v49.8ZM426 269.3l-1 20.6v4.8c-.5 3.3-1.7 6.4-1.7 9.9-2.2 12.2-7 23.9-14 34.1 1.8 2.4 3.5 5 5 7.6a41.2 41.2 0 0 1 1.9 22v2c-1.1 7.1-6.8 12.5-13.9 13.3h-230a10 10 0 1 1-1.2-19.8 32 32 0 0 1 6.4 0h218.3v-1.1c.2-2.4.2-4.8 0-7.1-.3-1.1-.7-2.2-1.4-3a36.4 36.4 0 0 1-18 5H120.9c-6.4-.1-12.7-1.9-18.2-5.2a8.5 8.5 0 0 0-2 5v6.5h29c2 0 3.8.3 5.6 1a9.4 9.4 0 0 1 6.7 10 9 9 0 0 1-8.7 9H94.5c-7-.3-12.4-5.8-12.9-12.7-.4-7.2 0-14.5 1.2-21.6a25 25 0 0 1 5-9.7 84 84 0 0 1-13.3-30c-6.9-26.9-3.8-55.3 8.7-80a46.7 46.7 0 0 1 24-23.5c4.3-1.6 9-2.5 13.6-2.7h13.6a91 91 0 0 1-14.5-39.5c-3.2-19.9-1.3-40.3 5.5-59.3a63 63 0 0 1 19.8-29.1 37.4 37.4 0 0 1 23.9-8.5h44.3c1.7-.3 3.3-.3 5 0 4.8 1 8 5.9 6.7 10.7-.7 3-2.6 5.7-5.2 7.5-2 1.3-4.3 1.9-6.7 1.6h-12.6a97.6 97.6 0 0 1 15.6 58 96 96 0 0 1-15.8 57.4h116.4c9.4.5 18.2-4.7 22.3-13.2A73.1 73.1 0 0 0 349 161v-3.2c.7-8 .7-16.2 0-24.3v-3c-.6-3.8-2-7.6-2-11.2-2-10-6.7-19.2-13.6-26.7a17.6 17.6 0 0 0-13.5-5.7h-59.3c-2.4.2-4.8-.3-6.9-1.6a13.4 13.4 0 0 1-5.1-7.5 9 9 0 0 1 6.9-10.5c2.8-.4 5.5-.4 8.3 0h54.1c16.4 0 31.4 9.2 38.8 23.8 7.5 12 12.1 25.5 13.6 39.5v5.1c1 9 1 18 0 26.9v1.8a236 236 0 0 1-5.3 21.2c-2 6.3-4.9 12.2-8.7 17.6h17c15.8-1 30.7 7.1 38.4 20.9 8.3 13 13.2 27.9 14.4 43.3ZM147.6 104.7a95.1 95.1 0 0 0-5 69.4 49 49 0 0 0 13.4 23.3c5.8 6 15.3 6 21.1 0 2.9-2.6 5.3-5.7 7.3-8.9a87 87 0 0 0 11.5-44c0-1.9.5-1.2 0-6.4-.6-5.1-1-10.2-2-15.2a61 61 0 0 0-13.4-29.1c-3.2-4-8-6.4-13.1-6.7-5 .3-9.5 2.8-12.4 7-3 3.1-5.5 6.7-7.4 10.6Zm.8 171.2c.2-1.4.2-2.7 0-4a133 133 0 0 0-2.9-17.6 50 50 0 0 0-15-27.3 15.8 15.8 0 0 0-10.3-4.5c-3.9 0-7.7 1.7-10.3 4.5a49 49 0 0 0-8.5 12.7 95.5 95.5 0 0 0-4.8 69.6c2.3 9.1 7.1 17.4 13.9 23.9a14.2 14.2 0 0 0 19.7 0 39 39 0 0 0 7.6-8.9 91 91 0 0 0 10.6-48.4Zm4.8 61.6 35.8-.2c-11-17-16.5-37-15.6-57.3a97 97 0 0 1 15.6-57.3h-35.4c11 17 16.5 37.2 15.6 57.6a97 97 0 0 1-16 57.2Zm91-20.7a98.8 98.8 0 0 0 4-59.3 61 61 0 0 0-12-26.1 19.8 19.8 0 0 0-12.5-6.8c-5 .2-9.7 2.5-12.9 6.3-2 2.1-3.6 4.5-5.2 6.9-8.2 15-12 32-11.2 49v3c.7 5 1.8 11.8 3.3 18.3 2 9.8 7 18.8 14 25.7a14.6 14.6 0 0 0 21.4 0c5-4.3 8.7-9.8 11-16Zm154.7-.2c6.8-16.6 9-34.7 6-52.4a67.2 67.2 0 0 0-12-30.6 22 22 0 0 0-18.8-10H255.6c11.1 17.1 16.7 37.2 15.9 57.6a98.8 98.8 0 0 1-15.9 57.5h120.2c4.7 0 9.1-1.7 12.5-5 4.6-4.5 8.2-10 10.6-16ZM297.7 106.9c-2.8-.2-5-2.4-5.2-5.2.3-2.8 2.6-5 5.3-5a5 5 0 0 1 5 5c0 2.9-2.3 5-5.1 5.2Zm30.8 69c-.2 2.8-2.4 4.9-5.2 5.1-2.7 0-5-2.3-5-5.1a5 5 0 0 1 4.9-5 5 5 0 0 1 5.3 5ZM232 173a5.2 5.2 0 0 1-5.2-5.2 5.2 5.2 0 0 1 5-5c2.8 0 5.1 2.3 5.3 5 0 2.9-2.3 5.2-5.2 5.2Zm69.3 17.6a5.1 5.1 0 0 1 0-10.1c2.9 0 5.3 2.3 5.4 5.2-.1 2.8-2.5 5-5.4 5Zm28.3 63.2c-2.8 0-5-2.5-5-5.3a5.3 5.3 0 0 1 5.2-5 5.2 5.2 0 1 1 0 10.4Zm60 31a5 5 0 0 1-7.2 4.5c-1.9-.8-3-2.7-3-4.8a5.7 5.7 0 0 1 5.1-5c2.8.2 5 2.4 5 5.2ZM296.2 322c-.1-2.8 2.2-5 5-5s5 2.4 5 5.2a5 5 0 0 1-5 4.8 4.8 4.8 0 0 1-5-5Zm-123.6-82.8a5.7 5.7 0 0 1-5-5.3 5.5 5.5 0 0 1 5.2-5c3 .2 5.2 2.7 5 5.6a5 5 0 0 1-5.2 4.7ZM125.3 280v28.6a7.8 7.8 0 0 1-4.7 3 8.1 8.1 0 0 1-4.4-3.3 7.1 7.1 0 0 1 0-4.2v-47.5c0-5.3 1.6-7.8 5.2-8 3.5-.2 5.3 2.7 5.3 8.2Zm92.1-24.9c0-4.3 2.1-6.5 5.3-6.5 3.2 0 5 2.5 5 6.4v49.5c0 3.9-2 6.3-5.3 6.3-3.4 0-5-2.1-5-6.4Zm-44.8-85.3c0 3.8-2 6.4-5 6.4s-5.1-2.4-5.1-6.6V120c0-4.3 1.8-6.2 5-6.4 3-.2 5 2.1 5 6.5v49.8Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFeedCircle);\nexport default __webpack_public_path__ + \"static/media/feed-circle.f424298a.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgHousingCircle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 500 500\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 250,\n cy: 250,\n r: 250,\n id: \"background\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n id: \"icon\",\n d: \"M 426.103 342.487 C 426.529 346.749 423.972 350.657 419.852 351.864 C 417.863 352.574 415.731 352.859 413.6 352.716 L 82.857 352.716 C 78.027 353.142 73.338 350.727 70.923 346.536 L 70.923 339.646 C 72.415 336.306 75.541 333.963 79.163 333.394 L 79.163 294.254 C 79.163 285.8 82.857 282.178 91.239 282.178 L 111.13 282.178 L 111.13 173.209 C 110.899 168.171 113.542 163.44 117.949 160.991 C 159.15 136.555 200.067 111.975 240.841 87.326 C 245.41 84.234 251.402 84.234 255.972 87.326 L 377.797 160.777 C 382.477 163.214 385.308 168.153 385.044 173.422 L 385.044 282.107 L 401.879 282.107 C 415.305 282.107 417.649 284.522 417.649 297.734 L 417.649 333.537 L 418.999 333.537 C 423.119 334.531 426.103 338.226 426.103 342.487 Z M 296.604 333.039 L 397.476 333.039 L 397.476 301.997 L 296.604 301.997 L 296.604 307.821 L 324.877 307.821 C 332.341 307.182 337.698 314.863 334.519 321.647 C 332.791 325.34 328.94 327.562 324.877 327.214 L 296.817 327.214 Z M 366.432 186.208 L 366.432 177.684 C 366.432 176.548 366.432 176.192 364.941 175.34 C 347.324 164.897 329.139 154.313 312.374 143.728 L 296.817 134.777 L 296.817 186.208 Z M 343.274 253.905 C 343.204 258.878 339.297 262.927 334.324 263.282 L 296.675 263.282 L 296.675 281.752 L 366.148 281.752 L 366.148 206.241 L 296.817 206.241 L 296.817 243.747 L 330.417 243.747 C 331.98 243.535 333.543 243.535 335.105 243.747 C 340.007 244.315 343.63 248.577 343.346 253.479 Z M 219.886 206.311 L 219.886 243.179 L 276.217 243.179 L 276.217 205.814 Z M 219.886 123.981 L 219.886 186.351 L 276.857 186.351 L 276.857 123.341 C 276.643 122.844 276.287 122.489 275.861 122.276 L 262.72 114.249 C 258.174 111.55 253.769 109.063 249.437 106.15 L 247.234 106.15 L 220.951 121.992 C 219.814 122.702 219.814 122.844 219.814 123.981 Z M 219.886 263.637 L 219.886 332.897 L 276.715 332.897 L 276.715 263.637 Z M 131.019 263.637 L 131.019 282.107 L 200.209 282.107 L 200.209 263.637 Z M 200.209 186.634 L 200.067 134.777 L 184.794 143.658 L 130.593 175.766 L 130.593 243.677 L 200.209 243.677 L 200.209 206.099 L 166.537 206.099 C 162.843 206.382 159.15 205.175 156.308 202.76 C 154.576 200.962 153.72 198.495 153.964 196.01 C 153.964 192.459 155.598 186.634 166.537 186.634 L 200.209 186.634 Z M 99.337 327.285 L 98.912 333.679 L 199.782 333.679 L 199.782 302.849 L 98.912 302.849 L 98.912 308.035 L 127.042 308.035 C 132.226 307.821 136.631 311.871 136.773 317.127 C 137.128 322.383 133.151 326.86 127.894 327.356 Z M 374.246 307.679 C 379.876 307.356 384.648 311.774 384.759 317.411 C 384.759 322.952 380.071 327.356 374.53 327.002 L 360.607 327.002 C 357.695 327.002 354.924 325.865 352.793 323.805 C 351.051 321.948 350.151 319.455 350.308 316.914 C 350.378 313.859 352.013 311.089 354.57 309.384 L 358.405 307.679 Z M 175.346 307.679 C 181.17 306.969 186.286 311.586 186.286 317.411 C 186.286 323.236 181.313 327.712 175.488 327.002 L 161.778 327.002 C 156.024 327.428 151.194 322.739 151.478 316.914 C 151.478 313.717 153.254 310.805 156.024 309.171 L 159.718 307.679 Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgHousingCircle);\nexport default __webpack_public_path__ + \"static/media/housing-circle.4a514939.svg\";\nexport { ForwardRef as ReactComponent };","var _circle;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgManagementCircle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 500 500\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 250,\n cy: 250,\n r: 250,\n id: \"background\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n id: \"icon\",\n d: \"M 377.792 393.647 C 377.58 400.679 371.928 406.331 364.897 406.543 L 132.107 406.543 C 125.074 406.331 119.424 400.679 119.212 393.647 L 119.212 114.028 C 119.212 106.834 124.981 100.929 132.107 100.794 L 183.891 100.794 L 183.891 80.501 C 183.7 73.247 189.53 67.264 196.786 67.267 L 311.755 67.267 C 319.469 66.674 326.059 72.764 326.076 80.501 L 326.076 100.861 L 363.54 100.861 C 370.734 100.997 376.435 106.902 376.435 114.096 L 376.435 250.308 C 378.361 260.365 368.678 268.738 359.005 265.377 C 352.767 263.21 349.063 256.794 350.305 250.308 L 350.305 128.076 L 324.787 128.076 L 324.787 142.736 C 324.574 149.768 318.924 155.42 311.892 155.632 L 196.718 155.632 C 189.596 155.632 183.823 149.859 183.823 142.736 L 183.823 128.076 L 145.409 128.076 L 145.409 380.684 L 351.595 380.684 L 351.595 310.847 C 353.379 300.764 365.41 296.394 373.25 302.981 C 375.64 304.99 377.247 307.774 377.792 310.847 Z M 210.156 128.076 L 299.946 128.076 L 299.946 93.124 L 210.088 93.124 Z M 206.966 212.233 L 228.005 189.159 C 233.066 183.972 241.405 183.972 246.466 189.159 C 251.379 194.383 251.379 202.529 246.466 207.755 L 216.061 238.16 C 214.516 239.403 212.739 240.326 210.835 240.875 C 206.084 243.249 200.316 242.232 196.515 238.499 L 178.258 220.31 C 173.387 215.095 173.387 206.999 178.258 201.782 C 180.837 199.339 184.162 197.981 187.759 197.913 C 191.356 198.389 194.615 200.289 196.786 203.207 Z M 206.966 315.734 L 226.919 293.676 C 232.136 288.806 240.232 288.806 245.448 293.676 C 250.681 298.744 250.681 307.138 245.448 312.205 L 214.907 342.61 C 213.55 344.239 211.718 345.325 209.681 345.732 C 204.787 347.901 199.06 346.822 195.293 343.017 L 177.579 324.692 C 172.427 319.751 172.427 311.514 177.579 306.571 C 179.876 303.984 183.215 302.563 186.673 302.703 C 190.153 302.626 193.531 303.89 196.108 306.232 Z M 311.823 202.121 C 321.906 203.906 326.277 215.937 319.689 223.777 C 317.681 226.168 314.896 227.775 311.823 228.319 L 289.427 228.319 C 279.344 230.104 271.109 220.304 274.605 210.679 C 276.812 204.605 283.063 200.995 289.427 202.121 L 311.823 202.121 Z M 311.823 305.214 C 321.906 306.999 326.277 319.03 319.689 326.871 C 317.681 329.26 314.896 330.867 311.823 331.412 L 289.427 331.412 C 279.344 333.196 271.109 323.396 274.605 313.772 C 276.812 307.698 283.063 304.088 289.427 305.214 Z\",\n style: {}\n }));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgManagementCircle);\nexport default __webpack_public_path__ + \"static/media/management-circle.8ae317c1.svg\";\nexport { ForwardRef as ReactComponent };","var _circle;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgOtherCircle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 500 500\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 250,\n cy: 250,\n r: 250,\n id: \"background\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n id: \"icon\",\n d: \"M 375.04 151.275 L 374.9 154.088 L 374.9 159.572 C 374.9 162.174 374.056 164.705 372.369 166.743 L 364.212 175.041 L 350.431 188.962 L 350.431 149.166 C 350.431 142.486 348.533 140.517 341.853 140.517 L 324.907 140.517 L 324.907 164.845 L 162.203 164.845 L 162.203 140.517 L 143.359 140.517 C 139.413 140.213 136.103 143.456 136.327 147.408 L 136.327 289.019 C 137.339 298.437 127.776 305.418 119.114 301.584 C 114.22 299.419 111.288 294.339 111.859 289.019 L 111.859 147.9 C 111.155 129.97 125.921 115.274 143.851 115.907 L 166.211 115.907 C 170.978 105.217 180.046 97.043 191.172 93.407 C 196.797 92.001 201.157 87.642 202.633 82.087 C 213.3 50.611 254.04 42.487 275.965 67.462 C 279.666 71.677 282.509 76.573 284.337 81.876 C 286.024 87.431 290.384 91.72 295.939 93.267 C 306.936 96.901 315.879 105.026 320.548 115.626 L 343.119 115.626 C 360.978 115.063 375.603 129.689 375.04 147.548 L 375.04 151.275 Z M 300.157 141.431 L 300.157 134.611 C 300.157 126.314 294.532 119.072 286.517 116.892 C 274.563 113.025 265.141 103.532 261.485 91.509 C 260.501 88.415 258.672 85.602 256.352 83.353 C 246.508 73.438 229.633 77.516 225.485 90.876 C 221.576 103.322 211.795 113.05 199.328 116.892 C 196.516 118.017 193.914 119.705 191.805 121.814 C 187.305 127.087 185.476 134.048 186.672 140.798 Z M 431.291 188.33 C 439.942 195.671 440.042 208.986 431.502 216.455 L 375.884 272.073 C 375.603 272.635 375.603 273.268 375.884 273.831 L 375.884 371.284 C 376.823 386.417 366.681 400.009 351.908 403.418 L 348.603 404.543 L 138.718 404.543 C 130.984 403.136 123.952 399.199 118.75 393.223 C 114.07 387.388 111.581 380.099 111.718 372.62 L 111.718 342.245 C 110.707 332.827 120.27 325.846 128.932 329.68 C 133.826 331.845 136.758 336.925 136.187 342.245 L 136.187 372.55 C 136.187 379.16 140.195 380.284 141.46 380.284 C 142.304 380.426 143.148 380.426 143.992 380.284 L 341.712 380.284 C 347.337 380.284 349.657 378.035 349.657 372.55 L 349.657 296.964 L 342.626 303.995 L 297.626 349.277 C 294.601 352.283 290.5 353.954 286.235 353.918 L 249.813 353.918 L 249.813 314.402 C 249.893 311.249 251.146 308.24 253.328 305.963 L 386.713 172.369 C 394.233 163.593 407.809 163.593 415.33 172.369 L 431.362 188.33 Z M 286.376 327.269 L 276.883 317.917 C 275.969 319.042 269.36 325.44 268.094 327.972 C 266.829 330.573 268.094 331.98 268.094 331.98 C 270.625 335.003 271.821 338.026 273.368 338.026 C 273.86 338.026 285.111 328.042 286.306 327.269 Z M 408.65 203.658 L 399.932 195.01 L 295.024 300.198 L 303.673 308.636 Z M 308.806 228.268 L 178.164 228.268 L 178.164 204.15 L 308.665 204.15 Z M 301.071 241.839 L 288.133 254.776 C 286.376 256.534 284.618 258.01 283.212 259.698 C 279.696 264.058 274.352 266.448 268.868 266.167 L 177.601 266.167 L 177.601 241.839 Z M 262.892 280.37 L 250.586 292.675 L 241.164 301.112 C 239.363 302.703 237.028 303.556 234.625 303.503 L 181.961 303.503 L 177.039 302.589 L 177.039 279.526 Z M 235.469 341.261 L 177.109 341.261 L 177.109 317.144 L 235.469 317.144 Z M 243.485 87.431 C 251.501 88.064 257.759 94.462 258.25 102.477 C 258.25 106.556 256.704 110.493 253.891 113.446 C 250.737 116.027 246.903 117.639 242.852 118.087 C 240.827 118.121 238.817 117.738 236.946 116.962 C 231.237 114.399 227.554 108.735 227.524 102.477 C 228.016 94.04 235.047 87.431 243.485 87.431 Z\",\n style: {}\n }));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgOtherCircle);\nexport default __webpack_public_path__ + \"static/media/other-circle.7e064ac0.svg\";\nexport { ForwardRef as ReactComponent };","var _circle;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgWeatherCircle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 500 500\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 250,\n cy: 250,\n r: 250,\n id: \"background\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n id: \"icon\",\n d: \"M 202.986 78.709 L 194.602 105.067 L 175.775 99.099 L 184.159 72.741 Z M 101.107 137.108 L 95.21 155.794 L 68.923 147.481 L 74.819 128.867 Z M 134.071 229.893 L 153.538 236.003 L 144.657 260.869 L 142.525 260.869 L 128.033 256.393 L 125.901 256.393 L 134.071 229.893 Z M 130.803 82.688 L 143.023 106.132 L 126.825 114.303 L 114.605 90.858 L 130.803 82.688 Z M 103.096 188.9 Z M 103.096 188.9 L 111.337 205.24 L 88.176 217.248 L 80.645 200.623 Z M 250.656 138.459 L 250.656 264.35 C 250.656 272.592 247.389 276.784 239.645 276.784 C 221.244 277.351 206.253 291.561 204.69 309.89 L 204.69 312.945 C 205.989 320.602 198.513 326.794 191.232 324.09 C 186.689 322.403 183.987 317.723 184.798 312.945 L 184.798 306.338 C 188.146 282.123 206.342 262.619 230.267 257.601 L 230.267 133.272 C 229.615 125.533 237.586 119.992 244.613 123.297 C 248.43 125.092 250.726 129.07 250.372 133.272 L 250.372 138.459 Z M 286.534 304.917 C 291.863 305.201 295.912 309.677 295.699 315.005 L 295.699 322.11 C 292.607 350.062 269.117 371.297 240.994 371.558 L 238.863 371.558 C 234.038 371.377 230.016 367.802 229.272 363.033 C 229.059 360.474 229.699 357.775 231.19 355.572 C 232.824 353.654 235.169 352.376 237.727 352.02 L 240.568 352.02 C 260.281 351.757 276.24 335.923 276.659 316.214 L 276.659 314.58 C 276.659 309.18 281.135 304.846 286.534 304.917 Z M 423.652 325.094 L 408.235 325.094 L 422.728 339.872 L 408.519 352.304 L 401.414 345.768 C 396.299 340.582 390.758 335.395 385.5 329.783 C 382.793 326.712 378.866 324.995 374.773 325.094 L 341.239 325.094 L 346.851 334.046 C 351.257 341.008 355.52 348.042 359.711 355.075 C 360.818 356.885 362.613 358.168 364.685 358.627 L 388.129 364.311 L 399.354 368.218 L 395.092 386.335 L 373.778 381.149 L 382.303 395.216 L 366.531 405.091 L 357.65 390.527 L 352.677 409.282 L 352.677 411.414 L 334.917 406.938 L 334.917 404.523 C 335.626 401.68 336.763 398.839 336.763 396.068 C 338.397 389.248 340.032 382.499 342.163 375.892 C 344.088 371.096 343.274 365.635 340.032 361.611 C 336.121 355.702 332.378 349.684 328.807 343.566 C 327.173 340.724 325.538 337.882 323.62 335.325 L 323.62 336.745 C 320.494 350.955 313.887 364.026 304.438 374.967 C 304.651 376.744 305.149 378.52 305.859 380.154 C 307.635 385.554 309.127 391.166 310.264 396.779 C 310.761 399.336 311.898 401.752 311.898 404.309 L 311.898 406.653 L 310.477 406.653 L 295.06 410.633 L 289.661 389.532 L 280.709 404.025 L 269.199 396.992 C 264.368 398.767 259.253 400.189 254.28 401.254 C 188.687 412.867 135.12 349.117 157.859 286.507 C 163.715 270.386 174.228 256.367 188.065 246.234 C 189.842 245.026 190.908 243.036 190.908 240.834 L 190.908 198.491 C 180.051 208.318 164.785 211.621 150.838 207.159 C 140.651 203.585 132.247 196.2 127.394 186.556 C 116.759 166.084 124.866 140.869 145.438 130.43 C 160.784 122.402 179.54 124.817 192.329 136.611 C 193.707 110.244 216.111 89.934 242.486 91.142 C 268.063 91.924 288.524 112.456 289.377 138.032 L 289.377 157.925 C 289.377 163.396 284.971 167.8 279.501 167.8 C 274.03 167.871 269.483 163.466 269.483 157.925 L 269.483 139.666 C 269.839 129.009 263.942 119.063 254.422 114.303 C 235.526 104.107 212.634 117.983 212.932 139.453 L 212.932 244.884 C 213.429 251.278 210.232 257.246 204.762 260.372 C 161.775 288.37 165.217 352.402 210.956 375.63 C 250.905 395.917 299.091 371.792 306.783 327.652 C 311.725 300.852 299.706 273.765 276.517 259.448 C 271.884 256.873 269.126 251.881 269.413 246.589 L 269.413 201.831 C 269.413 194.064 277.82 189.211 284.545 193.093 C 287.666 194.896 289.589 198.227 289.589 201.831 L 289.589 238.774 C 290.3 239.697 291.011 240.621 291.507 241.616 L 296.978 220.515 L 314.739 225.204 L 311.756 236.714 C 309.838 244.245 308.204 251.491 306.072 258.738 C 316.16 269.395 323.123 282.68 326.32 296.96 L 332.856 286.161 C 336.835 279.625 340.813 273.018 345.075 266.482 C 345.858 264.564 345.858 262.361 345.075 260.372 C 342.712 252.055 340.509 243.694 338.469 235.293 L 335.91 225.204 L 353.672 220.515 L 359.356 241.616 L 368.237 227.122 L 383.227 238.135 L 374.843 252.202 L 396.157 247.228 L 400.419 265.061 L 389.763 267.689 L 364.542 274.013 C 362.411 274.226 360.421 275.363 359.143 277.067 C 354.453 284.528 349.48 292.484 344.579 300.512 L 341.026 306.338 L 378.68 306.338 C 380.101 306.338 381.522 305.699 382.659 304.704 L 400.207 285.735 L 408.235 276.784 L 422.017 291.135 L 407.524 306.054 L 424.149 306.054 Z\",\n style: {}\n }));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWeatherCircle);\nexport default __webpack_public_path__ + \"static/media/weather-circle.fb653f42.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgFarmEquipmentCircle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 500 500\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 250,\n cy: 250,\n r: 250,\n id: \"background\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n id: \"icon\",\n d: \"M 410.19 398.569 C 408.045 397.086 405.38 396.563 402.833 397.127 L 393.818 397.127 L 393.818 368.276 C 393.922 364.793 392.623 361.414 390.211 358.899 C 388.102 356.939 385.299 355.901 382.421 356.014 C 379.313 355.99 376.343 357.303 374.271 359.62 C 372.211 361.917 371.262 365.002 371.674 368.059 L 371.674 397.559 L 221.794 397.559 L 221.794 239.528 C 221.794 236.283 220.351 233.181 218.043 230.873 C 215.981 228.838 213.144 227.788 210.254 227.988 C 203.901 228.052 198.932 233.484 199.434 239.817 L 199.434 246.236 L 99.322 272.851 L 84.175 277.035 C 79.742 278.107 75.908 280.879 73.5 284.752 C 71.126 288.64 70.423 293.322 71.553 297.735 C 72.13 300.62 72.562 303.505 72.851 306.463 C 73.212 310.862 73.933 315.262 74.943 319.518 C 76.896 325.989 82.397 330.76 89.08 331.779 L 89.08 396.333 L 77.828 396.333 C 75.303 396.694 73.067 397.992 71.408 399.94 C 69.822 401.743 68.956 404.195 68.956 406.72 C 68.754 409.198 69.473 411.663 70.976 413.644 C 72.49 415.591 74.726 416.962 77.179 417.467 C 79.342 417.755 81.434 417.755 83.526 417.467 L 404.492 417.467 C 406.656 417.611 408.82 417.034 410.623 415.808 C 413.941 413.644 416.105 410.037 416.538 406.07 C 415.522 402.815 413.233 400.11 410.19 398.569 Z M 188.976 359.981 C 189.192 357.529 189.192 354.932 188.976 352.48 C 186.737 342.53 178.104 335.316 167.915 334.881 L 147.719 334.881 C 134.19 333.993 122.935 345.146 123.701 358.683 L 123.701 396.91 L 111.728 396.91 L 111.728 327.812 L 199.29 303.794 L 199.29 396.694 L 188.976 396.694 L 188.976 359.981 Z M 166.039 357.096 L 166.039 396.045 L 144.978 396.045 L 144.978 368.276 C 145.988 364.309 145.988 361.207 146.204 357.096 L 166.039 357.096 Z M 200.156 268.091 L 200.156 280.641 L 139.713 297.447 L 96.148 309.276 L 96.148 297.014 L 200.156 268.091 Z M 393.601 155.572 C 394.693 121.74 377.644 89.897 348.882 72.049 C 308.595 46.746 255.966 53.948 223.958 89.143 C 210.975 103.568 202.824 121.528 200.444 140.714 C 199.579 149.369 199.218 158.025 199.434 166.824 L 199.434 193.8 C 199.29 197.262 200.733 200.58 203.185 202.96 C 205.637 204.979 208.883 205.845 212.057 205.412 C 215.086 204.907 217.827 203.248 219.558 200.796 C 221.354 198.374 222.131 195.345 221.722 192.357 L 221.722 185.144 L 371.17 185.144 L 371.17 324.927 C 371.39 327.408 372.521 329.72 374.343 331.419 C 376.218 333.15 378.599 334.159 381.123 334.304 L 383.431 334.304 C 387.096 333.628 390.383 331.625 392.664 328.678 C 394.25 326.142 394.913 323.135 394.539 320.167 L 394.539 296.293 C 393.745 247.535 393.745 207.504 393.529 155.644 Z M 225.184 133.213 C 229.584 117.85 238.888 104.362 251.655 94.841 C 278.136 74.989 314.515 74.901 341.092 94.625 C 353.931 104.218 363.308 117.705 367.707 133.213 L 225.184 133.213 Z M 372.54 155.789 L 372.54 162.424 L 222.01 162.424 L 222.01 155.861 L 372.54 155.861 Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFarmEquipmentCircle);\nexport default __webpack_public_path__ + \"static/media/farm-equipment-circle.8a2efeac.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgRadar(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"radar_FILL0_wght400_GRAD0_opsz48 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector\",\n d: \"M9.99996 18.3333C8.84718 18.3333 7.76385 18.1146 6.74996 17.6771C5.73607 17.2396 4.85413 16.6458 4.10413 15.8958C3.35413 15.1458 2.76038 14.2639 2.32288 13.25C1.88538 12.2361 1.66663 11.1528 1.66663 10C1.66663 8.84723 1.88538 7.76389 2.32288 6.75C2.76038 5.73612 3.35413 4.85417 4.10413 4.10417C4.85413 3.35417 5.73607 2.76042 6.74996 2.32292C7.76385 1.88542 8.84718 1.66667 9.99996 1.66667C11.1527 1.66667 12.2361 1.88542 13.25 2.32292C14.2638 2.76042 15.1458 3.35417 15.8958 4.10417C16.6458 4.85417 17.2395 5.73612 17.677 6.75C18.1145 7.76389 18.3333 8.84723 18.3333 10C18.3333 11.1528 18.1145 12.2361 17.677 13.25C17.2395 14.2639 16.6458 15.1458 15.8958 15.8958C15.1458 16.6458 14.2638 17.2396 13.25 17.6771C12.2361 18.1146 11.1527 18.3333 9.99996 18.3333ZM9.99996 17.0833C10.875 17.0833 11.6979 16.941 12.4687 16.6563C13.2395 16.3715 13.9375 15.9653 14.5625 15.4375L13.0625 13.9583C12.6319 14.2778 12.1597 14.5313 11.6458 14.7188C11.1319 14.9063 10.5833 15 9.99996 15C8.61107 15 7.43051 14.5139 6.45829 13.5417C5.48607 12.5694 4.99996 11.3889 4.99996 10C4.99996 8.61112 5.48607 7.43056 6.45829 6.45834C7.43051 5.48612 8.61107 5 9.99996 5C11.3888 5 12.5694 5.48612 13.5416 6.45834C14.5138 7.43056 15 8.61112 15 10C15 10.5833 14.9062 11.1319 14.7187 11.6458C14.5312 12.1597 14.2777 12.6319 13.9583 13.0625L15.4375 14.5417C15.9513 13.9167 16.3541 13.2222 16.6458 12.4583C16.9375 11.6944 17.0833 10.875 17.0833 10C17.0833 8.02778 16.3958 6.35417 15.0208 4.97917C13.6458 3.60417 11.9722 2.91667 9.99996 2.91667C8.02774 2.91667 6.35413 3.60417 4.97913 4.97917C3.60413 6.35417 2.91663 8.02778 2.91663 10C2.91663 11.9722 3.60413 13.6458 4.97913 15.0208C6.35413 16.3958 8.02774 17.0833 9.99996 17.0833ZM9.99996 13.75C10.4027 13.75 10.7882 13.691 11.1562 13.5729C11.5243 13.4549 11.8611 13.2847 12.1666 13.0625L10.625 11.5417C10.5277 11.5833 10.427 11.6146 10.3229 11.6354C10.2187 11.6563 10.1111 11.6667 9.99996 11.6667C9.54163 11.6667 9.14926 11.5035 8.82288 11.1771C8.49649 10.8507 8.33329 10.4583 8.33329 10C8.33329 9.54167 8.49649 9.14931 8.82288 8.82292C9.14926 8.49653 9.54163 8.33334 9.99996 8.33334C10.4583 8.33334 10.8507 8.49653 11.177 8.82292C11.5034 9.14931 11.6666 9.54167 11.6666 10C11.6666 10.1111 11.6527 10.2222 11.625 10.3333C11.5972 10.4444 11.5625 10.5556 11.5208 10.6667L13.0625 12.1667C13.2847 11.8611 13.4548 11.5243 13.5729 11.1563C13.6909 10.7882 13.75 10.4028 13.75 10C13.75 8.95834 13.3854 8.07292 12.6562 7.34375C11.927 6.61459 11.0416 6.25 9.99996 6.25C8.95829 6.25 8.07288 6.61459 7.34371 7.34375C6.61454 8.07292 6.24996 8.95834 6.24996 10C6.24996 11.0417 6.61454 11.9271 7.34371 12.6563C8.07288 13.3854 8.95829 13.75 9.99996 13.75Z\",\n fill: \"#1890FF\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRadar);\nexport default __webpack_public_path__ + \"static/media/radar.b619b732.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCowGroup(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 16 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.62473 2.47825C7.62473 2.39769 7.62473 2.29027 7.62473 2.23657C7.62473 2.10229 7.6506 1.99488 7.6506 1.88746C7.6506 2.07544 7.6506 2.29027 7.67648 2.47825H8.03867C7.93519 1.83375 8.03867 1.59206 8.09042 1.53835C8.11629 1.5115 8.14216 1.45779 8.29739 1.45779C8.375 1.45779 8.63371 1.45779 8.97004 1.45779C9.69443 1.45779 10.9363 1.45779 11.8935 1.45779C12.6955 1.45779 13.1871 1.45779 13.3423 1.45779C13.3682 1.45779 13.4199 1.45779 13.4716 1.45779C13.5493 1.45779 13.6269 1.45779 13.7045 1.45779C13.8338 1.45779 13.9114 1.45779 13.9891 1.43094C14.0408 1.40408 14.0667 1.40408 14.1184 1.37723C14.1443 1.40408 14.1443 1.40408 14.1702 1.43094C14.3254 1.56521 14.5065 1.78004 14.6876 2.02173C14.8169 2.18286 14.9463 2.31713 15.0498 2.4514L15.0239 2.47825C14.9204 2.50511 14.7911 2.50511 14.6358 2.53196L14.9204 2.93478C15.0239 2.93478 15.1015 2.90792 15.1533 2.90792C15.4379 2.85421 15.6707 2.39769 15.4896 2.23657C15.205 1.96802 14.8169 1.40408 14.4806 1.10869C14.3513 1.00127 14.5841 0.840143 14.5841 0.75958C14.5841 0.732726 14.5582 0.705872 14.5324 0.705872C14.403 0.705872 14.0667 0.94756 13.8856 1.00127C13.8597 1.00127 13.808 1.02812 13.7562 1.02812C13.6527 1.02812 13.4975 1.02812 13.394 1.00127C13.2129 1.00127 12.6438 1.00127 11.9452 1.00127C10.7293 1.00127 9.15114 1.00127 8.5561 1.00127C8.5561 1.00127 8.5561 1.00127 8.53023 1.00127H8.42674C8.14216 1.00127 7.75409 0.974414 7.44363 1.26981C7.23666 1.48465 7.13318 1.8069 7.13318 2.23657C7.13318 2.31713 7.13318 2.39769 7.13318 2.47825H7.62473Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.4702 3.85573C15.1192 3.57146 14.6602 2.95124 14.2282 2.56361C14.1742 2.51192 14.1202 2.48608 14.0662 2.4344C13.9582 2.35687 14.0392 2.2535 14.1202 2.15013C14.1742 2.09844 14.2282 2.04676 14.2282 1.99507C14.2282 1.96923 14.2012 1.94339 14.1472 1.94339C13.9582 1.94339 13.4992 2.2535 13.2562 2.33103C13.2022 2.35687 13.1482 2.35687 13.0672 2.35687C12.9052 2.35687 12.7162 2.33103 12.5812 2.33103C12.3382 2.33103 11.5552 2.33103 10.5831 2.33103C9.69213 2.33103 8.63912 2.33103 7.74811 2.33103H7.3701H7.2081C7.0461 2.33103 6.8841 2.33103 6.7491 2.33103H5.91209H5.88509H5.85809C5.80409 2.33103 5.75008 2.33103 5.69608 2.33103C5.31808 2.33103 4.75107 2.30518 4.34607 2.69282C4.07606 2.9254 3.94106 3.31304 3.91406 3.7782H4.53507C4.53507 3.67483 4.56207 3.57146 4.58907 3.46809C4.58907 3.57146 4.58907 3.67483 4.58907 3.7782H5.10208C5.07508 3.28719 5.18308 3.1063 5.23708 3.02877C5.26408 3.00293 5.31808 2.9254 5.53408 2.9254H5.93909H6.7761C6.9111 2.9254 7.0731 2.9254 7.2351 2.9254C7.3161 2.9254 7.4241 2.9254 7.50511 2.9254H7.88311C8.72012 2.9254 9.66513 2.9254 10.4751 2.9254C11.5822 2.9254 12.2572 2.9254 12.4732 2.9254C12.5272 2.9254 12.5812 2.9254 12.6622 2.9254C12.7432 2.9254 12.7972 2.9254 12.8782 2.9254C12.9052 2.9254 12.9322 2.9254 12.9592 2.9254C13.1212 2.9254 13.2292 2.89956 13.3372 2.87372C13.3912 2.84787 13.4452 2.82203 13.5262 2.79619C13.5532 2.82203 13.5802 2.82203 13.5802 2.84787C13.7962 3.02877 14.0392 3.31304 14.3092 3.57146C14.4982 3.7782 14.6602 3.9591 14.8222 4.11415L14.7952 4.13999C14.6602 4.16583 14.4712 4.19168 14.2552 4.21752C13.6342 4.29505 13.2292 4.34673 12.9592 4.50179L13.3912 4.91526C13.6882 4.78605 14.5252 4.73437 14.9842 4.65684C15.3892 4.631 15.7132 4.06247 15.4702 3.85573Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M13.1558 5.38168C13.0188 5.2194 12.8818 5.08416 12.7449 4.92187C12.7175 4.86778 12.6627 4.84073 12.6353 4.78663C12.4436 4.5973 12.2793 4.40796 12.0875 4.24568C11.9506 4.13749 12.0601 4.00225 12.1423 3.89406C12.1971 3.83996 12.2519 3.78586 12.2519 3.73177C12.2519 3.67767 12.2245 3.67767 12.1697 3.67767C12.1423 3.67767 12.1149 3.67767 12.0875 3.67767C11.978 3.70472 11.8684 3.75882 11.7041 3.83996C11.2932 4.00225 10.6906 4.11044 10.6358 4.11044H8.55414H8.00633H7.89676H7.5133H7.10244H6.85592C6.52724 4.11044 6.19855 4.11044 5.89725 4.11044H5.07554H4.55512H4.47294C4.25382 4.11044 4.0347 4.11044 3.84296 4.11044C3.78818 4.11044 3.7334 4.11044 3.67862 4.11044H2.71995H2.69256C2.63778 4.11044 2.583 4.11044 2.52822 4.11044C2.08997 4.11044 1.45998 4.08339 0.966954 4.51615C0.638267 4.84073 0.446533 5.32759 0.446533 5.97673C0.446533 6.65293 0.473924 7.89713 0.473924 8.65447C0.473924 8.97904 0.473924 9.19542 0.473924 9.24952C0.473924 9.43885 0.638267 9.60114 0.830001 9.60114C1.02173 9.60114 1.18608 9.43885 1.18608 9.24952C1.18608 9.19542 1.18608 8.97904 1.18608 8.65447C1.18608 7.89713 1.15869 6.65293 1.15869 5.97673C1.15869 5.76035 1.18608 5.59807 1.21347 5.43578C1.15869 6.46359 1.62433 7.76189 1.67911 7.97827C1.78867 8.35694 1.73389 8.49218 1.62433 8.97904C1.56955 9.51999 2.00779 11.2511 2.11736 11.4133C2.19953 11.5486 2.41865 11.6027 2.63778 11.6027C2.82951 11.6027 3.04864 11.5486 3.10342 11.4404C3.13081 11.3863 3.13081 11.2781 3.13081 11.1699C3.02125 10.3314 3.26776 9.24952 3.45949 9.24952C3.45949 9.24952 3.45949 9.24952 3.48688 9.24952C3.59645 9.30361 3.81557 9.38476 4.08948 9.38476C4.11687 9.38476 4.14426 9.38476 4.17165 9.38476C4.80163 9.33066 4.8838 9.03313 5.04815 8.92494C5.10293 8.89789 5.15771 8.87085 5.21249 8.87085C5.23988 8.87085 5.26727 8.87085 5.29466 8.87085C5.84247 8.95199 6.28072 8.97904 6.6368 8.97904C7.212 8.97904 7.54069 8.8979 7.73242 8.8979C7.84198 8.8979 7.89676 8.92494 7.92415 8.97904C7.95154 9.06018 8.00633 9.16837 8.03372 9.33066C8.14328 9.84457 8.19806 10.7101 8.22545 11.224C8.25284 11.4404 8.49936 11.5486 8.74587 11.5486C8.99239 11.5486 9.26629 11.4404 9.26629 11.2781C9.29368 10.7912 9.34846 9.97981 9.5402 9.38476C9.59498 9.16837 9.67715 8.97904 9.78671 8.87085C10.088 8.51923 10.3893 8.19465 10.6632 7.92417C10.9371 7.6537 11.1836 7.41027 11.3206 7.32912C11.4028 7.24798 11.5945 7.22093 11.8136 7.16684C12.2519 7.08569 12.8545 7.0316 13.2105 6.9775C13.4297 6.92341 13.6488 6.73407 13.731 6.51769C13.8405 6.30131 13.8679 6.05788 13.7036 5.94969C13.5392 5.81445 13.3475 5.62511 13.1558 5.38168ZM12.9913 6.38199C12.8269 6.40903 12.6078 6.43608 12.3887 6.46313C12.3065 6.46313 12.1969 6.49018 12.1148 6.49018C12.0052 6.49018 11.923 6.51723 11.8409 6.51723C11.6217 6.54427 11.4574 6.57132 11.2931 6.62542C11.2109 6.65246 11.1287 6.67951 11.0465 6.70656C10.9644 6.73361 10.9096 6.7877 10.8274 6.81475C10.7452 6.86885 10.6631 6.94999 10.5535 7.03113C10.1426 7.4098 9.59484 8.00485 9.15659 8.49171C8.96485 8.7081 8.8279 9.00562 8.71834 9.35724C8.69095 9.43839 8.66356 9.54658 8.63617 9.65477C8.60878 9.54658 8.60878 9.43839 8.58139 9.35724C8.5266 9.08676 8.47182 8.89743 8.38965 8.76219C8.30748 8.59991 8.06097 8.30238 7.56794 8.30238C7.45837 8.30238 7.34881 8.32943 7.21186 8.32943C7.02012 8.35647 6.77361 8.38352 6.47231 8.38352C6.36275 8.38352 6.28058 8.38352 6.17102 8.38352C5.86972 8.35647 5.56843 8.32943 5.23974 8.27533C5.21235 8.27533 5.18496 8.27533 5.15757 8.27533C5.13018 8.27533 5.0754 8.27533 5.04801 8.27533C4.80149 8.27533 4.63715 8.35647 4.50019 8.43762C4.36324 8.51876 4.28107 8.62695 4.22629 8.68105C4.14412 8.76219 4.11673 8.78924 3.92499 8.81629H3.8976C3.78804 8.81629 3.67848 8.76219 3.56892 8.73514H3.54152C3.45935 8.7081 3.34979 8.68105 3.26762 8.68105C3.0485 8.68105 2.82937 8.76219 2.69242 8.95153C2.50068 9.16791 2.36373 9.60067 2.28156 10.0334C2.22678 9.68182 2.172 9.38429 2.172 9.24905C2.19939 9.19496 2.19939 9.11381 2.19939 9.05972C2.28156 8.7081 2.33634 8.41057 2.19939 7.95076C2.19939 7.92371 2.172 7.86962 2.14461 7.81552C1.51462 5.73284 1.78853 5.13779 1.89809 5.00255C1.92548 4.9755 1.98026 4.89436 2.25417 4.89436H3.65109C3.70587 4.89436 3.76065 4.89436 3.84282 4.89436C4.03455 4.89436 4.25368 4.89436 4.4728 4.89436H4.66454H5.18496C5.40408 4.89436 5.62321 4.89436 5.86972 4.89436C6.47231 4.89436 7.07491 4.89436 7.65011 4.89436H10.8548C10.8548 4.89436 11.6217 4.89436 11.8409 5.11074C11.9504 5.21893 12.06 5.35417 12.1695 5.48941L12.1969 5.54351C12.2517 5.5976 12.3065 5.67874 12.3613 5.73284C12.4161 5.81398 12.4982 5.89513 12.553 5.97627C12.69 6.13856 12.8269 6.2738 12.9365 6.40903C12.9913 6.35494 12.9913 6.38199 12.9913 6.38199Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCowGroup);\nexport default __webpack_public_path__ + \"static/media/cow-group.b393c924.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgInnerJoin(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.66683 15.8333C5.04183 15.8333 3.66336 15.2674 2.53141 14.1354C1.39947 13.0035 0.833496 11.625 0.833496 10C0.833496 8.375 1.39947 6.99653 2.53141 5.86458C3.66336 4.73264 5.04183 4.16666 6.66683 4.16666C7.04183 4.16666 7.40641 4.20139 7.76058 4.27083C8.11475 4.34028 8.4585 4.4375 8.79183 4.5625C8.55572 4.75694 8.3335 4.96875 8.12516 5.19791C7.91683 5.42708 7.72239 5.66666 7.54183 5.91666C7.40294 5.88889 7.26058 5.86805 7.11475 5.85416C6.96891 5.84028 6.81961 5.83333 6.66683 5.83333C5.51405 5.83333 4.53141 6.23958 3.71891 7.05208C2.90641 7.86458 2.50016 8.84722 2.50016 10C2.50016 11.1528 2.90641 12.1354 3.71891 12.9479C4.53141 13.7604 5.51405 14.1667 6.66683 14.1667C6.81961 14.1667 6.96891 14.1597 7.11475 14.1458C7.26058 14.1319 7.40294 14.1111 7.54183 14.0833C7.72239 14.3333 7.91683 14.5729 8.12516 14.8021C8.3335 15.0312 8.55572 15.2431 8.79183 15.4375C8.4585 15.5625 8.11475 15.6597 7.76058 15.7292C7.40641 15.7986 7.04183 15.8333 6.66683 15.8333ZM13.3335 15.8333C12.9585 15.8333 12.5939 15.7986 12.2397 15.7292C11.8856 15.6597 11.5418 15.5625 11.2085 15.4375C11.4446 15.2431 11.6668 15.0312 11.8752 14.8021C12.0835 14.5729 12.2779 14.3333 12.4585 14.0833C12.6113 14.1111 12.7571 14.1319 12.896 14.1458C13.0349 14.1597 13.1807 14.1667 13.3335 14.1667C14.4863 14.1667 15.4689 13.7604 16.2814 12.9479C17.0939 12.1354 17.5002 11.1528 17.5002 10C17.5002 8.84722 17.0939 7.86458 16.2814 7.05208C15.4689 6.23958 14.4863 5.83333 13.3335 5.83333C13.1807 5.83333 13.0349 5.84028 12.896 5.85416C12.7571 5.86805 12.6113 5.88889 12.4585 5.91666C12.2779 5.66666 12.0835 5.42708 11.8752 5.19791C11.6668 4.96875 11.4446 4.75694 11.2085 4.5625C11.5418 4.4375 11.8856 4.34028 12.2397 4.27083C12.5939 4.20139 12.9585 4.16666 13.3335 4.16666C14.9585 4.16666 16.337 4.73264 17.4689 5.86458C18.6009 6.99653 19.1668 8.375 19.1668 10C19.1668 11.625 18.6009 13.0035 17.4689 14.1354C16.337 15.2674 14.9585 15.8333 13.3335 15.8333ZM10.0002 14.7917C9.2085 14.25 8.59391 13.5556 8.15641 12.7083C7.71891 11.8611 7.50016 10.9583 7.50016 10C7.50016 9.04166 7.71891 8.13889 8.15641 7.29166C8.59391 6.44444 9.2085 5.75 10.0002 5.20833C10.7918 5.75 11.4064 6.44444 11.8439 7.29166C12.2814 8.13889 12.5002 9.04166 12.5002 10C12.5002 10.9583 12.2814 11.8611 11.8439 12.7083C11.4064 13.5556 10.7918 14.25 10.0002 14.7917Z\",\n fill: \"#1890FF\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgInnerJoin);\nexport default __webpack_public_path__ + \"static/media/inner-join.3b4cc484.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/farm-equipment.652057ac.svg\";","export default __webpack_public_path__ + \"static/media/feed.c188587f.svg\";","export default __webpack_public_path__ + \"static/media/housing.98d7c9bf.svg\";","export default __webpack_public_path__ + \"static/media/management.7d9b58d6.svg\";","export default __webpack_public_path__ + \"static/media/other.893419e4.svg\";","export default __webpack_public_path__ + \"static/media/weather.529f7b65.svg\";","var _circle, _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCheckCircle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"check-circle-unchecked\",\n cx: 6,\n cy: 6,\n r: 4.5,\n fill: \"none\",\n stroke: \"black\",\n strokeWidth: 1\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"check-circle-checked\",\n d: \"M6 .75a5.25 5.25 0 100 10.5A5.25 5.25 0 006 .75zm2.268 3.536L5.8 7.707a.373.373 0 01-.606 0L3.732 5.682a.094.094 0 01.077-.148h.55c.119 0 .232.057.303.155l.834 1.158 1.842-2.554a.375.375 0 01.304-.156h.55c.076 0 .12.086.076.149z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCheckCircle);\nexport default __webpack_public_path__ + \"static/media/check-circle.5895668e.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgBulbCircle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 49 51\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 49,\n height: 51,\n rx: 25,\n fill: \"#F2FFFD\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.541 35.4131H20.9785C20.8582 35.4131 20.7598 35.5115 20.7598 35.6318V36.5068C20.7598 36.9908 21.1508 37.3818 21.6348 37.3818H26.8848C27.3688 37.3818 27.7598 36.9908 27.7598 36.5068V35.6318C27.7598 35.5115 27.6613 35.4131 27.541 35.4131ZM24.2598 12.8818C19.3078 12.8818 15.291 16.8986 15.291 21.8506C15.291 25.1701 17.0957 28.0686 19.7754 29.6189V32.7881C19.7754 33.2721 20.1664 33.6631 20.6504 33.6631H27.8691C28.3531 33.6631 28.7441 33.2721 28.7441 32.7881V29.6189C31.4238 28.0686 33.2285 25.1701 33.2285 21.8506C33.2285 16.8986 29.2117 12.8818 24.2598 12.8818ZM27.757 27.9154L26.7754 28.4842V31.6943H21.7441V28.4842L20.7625 27.9154C18.6105 26.6713 17.2598 24.3799 17.2598 21.8506C17.2598 17.9842 20.3934 14.8506 24.2598 14.8506C28.1262 14.8506 31.2598 17.9842 31.2598 21.8506C31.2598 24.3799 29.909 26.6713 27.757 27.9154Z\",\n fill: \"#59B3A5\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBulbCircle);\nexport default __webpack_public_path__ + \"static/media/bulb-circle.0fd23a4a.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLogoText(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 500 85\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 183.956 36.932 C 191.778 36.932 197.1 41.328 198.036 48.893 L 190.712 48.893 C 189.959 44.986 187.394 42.756 183.887 42.756 C 178.444 42.756 175.879 47.589 175.879 53.289 C 175.879 58.989 178.444 63.946 183.887 63.946 C 187.456 63.946 189.77 62.149 190.774 58.494 L 198.036 58.494 C 197.032 65.188 192.153 69.77 183.956 69.77 C 174.442 69.77 168.435 62.766 168.435 53.354 C 168.435 43.998 174.442 36.932 183.956 36.932 Z M 201.199 53.357 C 201.199 43.998 206.893 36.932 216.723 36.932 C 226.55 36.932 232.182 43.998 232.182 53.357 C 232.182 62.716 226.55 69.776 216.723 69.776 C 206.893 69.776 201.199 62.772 201.199 53.357 Z M 216.723 63.952 C 222.541 63.952 224.793 58.934 224.793 53.295 C 224.793 47.657 222.541 42.762 216.723 42.762 C 210.902 42.762 208.65 47.719 208.65 53.295 C 208.65 58.872 210.902 63.952 216.723 63.952 Z M 236.999 37.74 L 244.258 37.74 L 244.258 42.446 C 246.383 38.914 250.454 36.932 254.711 36.932 C 261.786 36.932 265.975 41.458 265.975 49.389 L 265.975 68.968 L 258.713 68.968 L 258.713 50.253 C 258.713 45.544 256.086 42.939 252.077 42.939 C 247.632 42.939 244.258 46.532 244.258 51.365 L 244.258 68.962 L 236.999 68.962 L 236.999 37.74 Z M 272.264 37.734 L 272.264 37.74 L 272.258 37.74 L 272.264 37.734 Z M 279.519 37.74 L 279.519 42.446 C 281.648 38.914 285.715 36.932 289.975 36.932 C 297.048 36.932 301.239 41.458 301.239 49.389 L 301.239 68.968 L 293.984 68.968 L 293.984 50.253 C 293.984 45.544 291.354 42.939 287.348 42.939 C 282.899 42.939 279.525 46.532 279.525 51.365 L 279.525 68.962 L 272.264 68.962 L 272.264 37.74 L 279.519 37.74 Z M 305.827 53.357 C 305.827 43.998 311.772 36.932 321.162 36.932 C 329.422 36.932 336.181 41.641 335.68 55.151 L 313.086 55.151 C 313.523 60.294 315.964 64.138 321.218 64.138 C 324.787 64.138 327.163 62.406 328.167 59.181 L 335.305 59.181 C 334.301 65.133 329.422 69.776 321.162 69.776 C 311.772 69.776 305.827 62.772 305.827 53.357 Z M 328.545 50.321 C 328.167 44.869 325.54 42.514 321.156 42.514 C 316.339 42.514 313.894 45.925 313.21 50.321 L 328.545 50.321 Z M 354.503 36.932 C 362.325 36.932 367.648 41.328 368.583 48.893 L 361.257 48.893 C 360.504 44.986 357.939 42.756 354.435 42.756 C 348.992 42.756 346.426 47.589 346.426 53.289 C 346.426 58.989 348.992 63.946 354.435 63.946 C 358.004 63.946 360.318 62.149 361.322 58.494 L 368.583 58.494 C 367.58 65.188 362.7 69.77 354.503 69.77 C 344.989 69.77 338.982 62.766 338.982 53.354 C 338.982 43.998 344.989 36.932 354.503 36.932 Z M 375.833 61.232 L 375.833 43.261 L 370.888 43.261 L 370.888 37.746 L 374.333 37.746 C 375.272 37.746 375.833 37.189 375.833 36.194 L 375.833 27.396 L 383.094 27.396 L 383.094 37.746 L 389.854 37.746 L 389.854 43.261 L 383.094 43.261 L 383.094 59.686 C 383.094 62.289 383.909 63.345 386.347 63.345 L 390.607 63.345 L 390.607 68.983 L 383.782 68.983 C 378.528 68.983 375.839 66.629 375.839 61.238 L 375.833 61.232 Z M 392.556 53.357 C 392.556 43.998 398.504 36.932 407.891 36.932 C 416.15 36.932 422.91 41.641 422.411 55.151 L 399.814 55.151 C 400.251 60.294 402.692 64.138 407.946 64.138 C 411.515 64.138 413.891 62.406 414.895 59.181 L 422.033 59.181 C 421.029 65.133 416.15 69.776 407.891 69.776 C 398.504 69.776 392.556 62.772 392.556 53.357 Z M 415.279 50.321 C 414.901 44.869 412.274 42.514 407.891 42.514 C 403.073 42.514 400.635 45.925 399.944 50.321 L 415.279 50.321 Z M 427.296 37.74 L 434.558 37.74 L 434.558 43.069 C 436.37 39.286 439.31 37.74 443.319 37.74 L 445.011 37.74 L 445.011 44.559 L 442.573 44.559 C 437.191 44.559 434.564 47.905 434.564 53.856 L 434.564 68.974 L 427.303 68.974 L 427.303 37.746 L 427.296 37.74 Z M 448.896 37.74 L 456.157 37.74 L 456.157 43.069 C 457.97 39.286 460.91 37.74 464.918 37.74 L 466.61 37.74 L 466.61 44.559 L 464.172 44.559 C 458.791 44.559 456.163 47.905 456.163 53.856 L 456.163 68.974 L 448.902 68.974 L 448.902 37.746 L 448.896 37.74 Z M 480.665 50.817 L 486.734 49.949 C 489.049 49.578 489.616 48.403 489.616 46.975 C 489.616 44.435 487.865 42.39 483.983 42.39 C 480.102 42.39 477.787 44.125 477.347 47.533 L 470.086 47.533 C 470.963 40.59 476.533 36.938 484.039 36.938 C 492.549 36.938 496.809 40.968 496.809 48.527 L 496.809 61.914 C 496.809 62.784 497.435 63.336 498.312 63.336 L 500 63.336 L 500 68.977 L 495.372 68.977 C 492.181 68.977 490.179 67.422 490.179 65.009 L 490.179 64.324 C 487.425 68.293 483.293 69.776 479.166 69.776 C 472.97 69.776 468.961 66.183 468.961 60.733 C 468.964 53.419 475.346 51.687 480.665 50.817 Z M 481.542 64.33 C 486.548 64.33 489.616 60.238 489.616 55.098 L 489.616 53.425 C 488.674 53.924 487.803 54.11 486.734 54.358 L 482.044 55.166 C 478.1 55.848 476.35 57.332 476.35 59.996 C 476.35 62.66 478.413 64.336 481.542 64.336 L 481.542 64.33 Z M 133.514 35.671 C 141.786 41.284 140.726 56.251 128.068 69.876 C 115.62 83.278 95.381 88.885 86.143 81.58 C 78.862 75.83 83.147 66.056 77.326 66.056 C 69.965 66.056 38.713 95.598 11.044 80.737 C -5.942 71.607 -3.268 45.278 18.607 23.62 C 39.887 2.547 71.982 -6.344 88.259 4.895 C 110.044 19.942 85.616 43.217 91.75 46.328 C 96.217 48.596 115.251 23.269 133.514 35.665 L 133.514 35.671 Z M 107.937 58.5 C 113.733 58.512 119.102 54.197 119.102 50.668 C 119.102 49.395 118.306 47.62 115.375 47.62 C 108.628 47.62 96.667 54.761 85.474 54.761 C 70.786 54.761 75.275 26.91 57.595 26.91 C 43.703 26.91 30.571 40.073 30.571 49.426 C 30.571 55.774 35.822 58.518 41.634 58.518 L 107.937 58.506 L 107.937 58.5 Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoText);\nexport default __webpack_public_path__ + \"static/media/logo-text.34dcb889.svg\";\nexport { ForwardRef as ReactComponent };","import withIconDefaultStyles from \"./withIconDefaultStyles\";\n\nimport { ReactComponent as UserIcon } from \"../../../assets/svg/user.svg\";\nimport { ReactComponent as Logout } from \"../../../assets/svg/logout.svg\";\nimport { ReactComponent as Analytics } from \"../../../assets/svg/analytics.svg\";\nimport { ReactComponent as GamePlans } from \"../../../assets/svg/game-plans.svg\";\nimport { ReactComponent as Settings } from \"../../../assets/svg/settings.svg\";\nimport { ReactComponent as Notifications } from \"../../../assets/svg/notifications.svg\";\nimport { ReactComponent as Password } from \"../../../assets/svg/password.svg\";\nimport { ReactComponent as Overview } from \"../../../assets/svg/overview.svg\";\nimport { ReactComponent as DueDate } from \"../../../assets/svg/due-date.svg\";\nimport { ReactComponent as ProductUpdates } from \"../../../assets/svg/product-updates.svg\";\nimport { ReactComponent as Email } from \"../../../assets/svg/email.svg\";\nimport { ReactComponent as Phone } from \"../../../assets/svg/phone.svg\";\nimport { ReactComponent as KPITracking } from \"../../../assets/svg/kpi-tracking.svg\";\nimport { ReactComponent as Tasks } from \"../../../assets/svg/tasks.svg\";\nimport { ReactComponent as GPSummary } from \"../../../assets/svg/gp-summary.svg\";\nimport { ReactComponent as _EmptyInsight } from \"../../../assets/svg/empty-insight.svg\";\nimport { ReactComponent as _EmptyTask } from \"../../../assets/svg/empty-task.svg\";\nimport { ReactComponent as _EmptyGamePlan } from \"../../../assets/svg/empty-gameplan.svg\";\nimport { ReactComponent as _EmptyEventList } from \"../../../assets/svg/empty-eventlist.svg\";\n\nexport { default as Icon } from \"@ant-design/icons\";\nexport { ReactComponent as Smile } from \"../../../assets/branding/logo.svg\"; // export logo as \"Smile\"\nexport { ReactComponent as Barn } from \"../../../assets/svg/barn.svg\";\nexport { ReactComponent as Barns } from \"../../../assets/svg/barns.svg\";\nexport { ReactComponent as ChartComparison } from \"../../../assets/svg/comparison.svg\";\nexport { ReactComponent as Analysis } from \"../../../assets/svg/analysis.svg\";\nexport { ReactComponent as KpiUnavailable } from \"../../../assets/svg/kpi-unavailable.svg\";\nexport { ReactComponent as KpiLocked } from \"../../../assets/svg/kpi-locked.svg\";\nexport { ReactComponent as ConnecterraLogo } from \"../../../assets/branding/logo.svg\";\nexport { ReactComponent as Undo } from \"../../../assets/svg/undo.svg\";\nexport { ReactComponent as KPIThresholdUp } from \"../../../assets/insights/kpi-threshold-up.svg\";\nexport { ReactComponent as KPIThresholdUpV2 } from \"../../../assets/insights/kpi-threshold-up-v2.svg\";\nexport { ReactComponent as KPIThresholdDown } from \"../../../assets/insights/kpi-threshold-down.svg\";\nexport { ReactComponent as KPIThresholdDownV2 } from \"../../../assets/insights/kpi-threshold-down-v2.svg\";\nexport { ReactComponent as KPIVarianceUp } from \"../../../assets/insights/kpi-variance-up.svg\";\nexport { ReactComponent as KPIVarianceDown } from \"../../../assets/insights/kpi-variance-down.svg\";\nexport { ReactComponent as KPIVarianceUpCircle } from \"../../../assets/insights/kpi-variance-up-circle.svg\";\nexport { ReactComponent as KPIVarianceDownCircle } from \"../../../assets/insights/kpi-variance-down-circle.svg\";\nexport { ReactComponent as Dot } from \"../../../assets/svg/dot.svg\";\nexport { ReactComponent as LelyMilkDropDetail } from \"../../../assets/insights/lely-milk-drop-detail.svg\";\nexport { ReactComponent as LelyMilkDropList } from \"../../../assets/insights/lely-milk-drop-list.svg\";\nexport { ReactComponent as LelyNoMilkDropDetail } from \"../../../assets/insights/lely-no-milk-drop-detail.svg\";\nexport { ReactComponent as LelyNoMilkDropList } from \"../../../assets/insights/lely-no-milk-drop-list.svg\";\nexport { ReactComponent as LelyKetosisDetail } from \"../../../assets/insights/lely-ketosis-detail.svg\";\nexport { ReactComponent as LelyKetosisList } from \"../../../assets/insights/lely-ketosis-list.svg\";\nexport { ReactComponent as Ajinomoto } from \"../../../assets/insights/ajinomoto.svg\";\nexport { ReactComponent as Cow } from \"../../../assets/svg/cow.svg\";\nexport { ReactComponent as AskIda } from \"../../../assets/branding/logo.svg\";\nexport { ReactComponent as AskIdaDuotone } from \"../../../assets/branding/logo.svg\";\nexport { ReactComponent as FarmEquipment } from \"../../../assets/svg/farm-equipment.svg\";\nexport { ReactComponent as Feed } from \"../../../assets/svg/feed.svg\";\nexport { ReactComponent as Housing } from \"../../../assets/svg/housing.svg\";\nexport { ReactComponent as Management } from \"../../../assets/svg/management.svg\";\nexport { ReactComponent as Other } from \"../../../assets/svg/other.svg\";\nexport { ReactComponent as Weather } from \"../../../assets/svg/weather.svg\";\nexport { ReactComponent as AvatarList } from \"../../../assets/svg/avatar-list.svg\";\nexport { ReactComponent as IncreasedBars } from \"../../../assets/svg/increased-bars.svg\";\nexport { ReactComponent as DecreasedBars } from \"../../../assets/svg/decreased-bars.svg\";\nexport { ReactComponent as UnchangedBars } from \"../../../assets/svg/unchanged-bars.svg\";\nexport { ReactComponent as UnchangedBarsInsufficient } from \"../../../assets/svg/unchanged-bars-insufficient.svg\";\nexport { ReactComponent as BrowserOutlined } from \"../../../assets/svg/browser.svg\";\nexport { ReactComponent as ActionKey } from \"../../../assets/svg/action-key.svg\";\nexport { ReactComponent as Copilot } from \"../../../assets/svg/copilot.svg\";\nexport { ReactComponent as StarHalfFilled } from \"../../../assets/svg/star-half-filled.svg\";\n\nexport { ReactComponent as FeedCircle } from \"../../../assets/svg/feed-circle.svg\";\nexport { ReactComponent as HousingCircle } from \"../../../assets/svg/housing-circle.svg\";\nexport { ReactComponent as ManagementCircle } from \"../../../assets/svg/management-circle.svg\";\nexport { ReactComponent as OtherCircle } from \"../../../assets/svg/other-circle.svg\";\nexport { ReactComponent as WeatherCircle } from \"../../../assets/svg/weather-circle.svg\";\nexport { ReactComponent as FarmEquipmentCircle } from \"../../../assets/svg/farm-equipment-circle.svg\";\nexport { ReactComponent as Radar } from \"../../../assets/svg/radar.svg\";\nexport { ReactComponent as CowGroup } from \"../../../assets/svg/cow-group.svg\";\nexport { ReactComponent as InnerJoin } from \"../../../assets/svg/inner-join.svg\";\n\n// export some source URLs for use in chart event visuals\nexport { default as FarmEquipmentSRC } from \"../../../assets/svg/farm-equipment.svg\";\nexport { default as FeedSRC } from \"../../../assets/svg/feed.svg\";\nexport { default as HousingSRC } from \"../../../assets/svg/housing.svg\";\nexport { default as ManagementSRC } from \"../../../assets/svg/management.svg\";\nexport { default as OtherSRC } from \"../../../assets/svg/other.svg\";\nexport { default as WeatherSRC } from \"../../../assets/svg/weather.svg\";\n\nexport { ReactComponent as CheckCircle } from \"../../../assets/svg/check-circle.svg\";\nexport { ReactComponent as BulbCircle } from \"../../../assets/svg/bulb-circle.svg\";\n\n/**\n * Export custom icons with the same names as the ant icons in use\n */\nexport const UserOutlined = withIconDefaultStyles(UserIcon);\nexport const ExportOutlined = withIconDefaultStyles(Logout);\nexport const LineChartOutlined = withIconDefaultStyles(Analytics);\nexport const CompassOutlined = withIconDefaultStyles(GamePlans);\nexport const SettingOutlined = withIconDefaultStyles(Settings);\nexport const NotificationOutlined = withIconDefaultStyles(Notifications);\nexport const UnlockOutlined = withIconDefaultStyles(Password);\nexport const AppstoreOutlined = withIconDefaultStyles(Overview);\nexport const ClockCircleOutlined = withIconDefaultStyles(DueDate);\nexport const GiftOutlined = withIconDefaultStyles(ProductUpdates);\nexport const MailOutlined = withIconDefaultStyles(Email);\nexport const PhoneOutlined = withIconDefaultStyles(Phone);\nexport const BarChartOutlined = withIconDefaultStyles(KPITracking);\nexport const CheckSquareOutlined = withIconDefaultStyles(Tasks);\nexport const ProfileOutlined = withIconDefaultStyles(GPSummary);\n\n/**\n * Export custom generated icons for empty states\n */\nexport const EmptyInsight = withIconDefaultStyles(_EmptyInsight);\nexport const EmptyTask = withIconDefaultStyles(_EmptyTask);\nexport const EmptyGamePlan = withIconDefaultStyles(_EmptyGamePlan);\nexport const EmptyEventList = withIconDefaultStyles(_EmptyEventList);\n","import * as React from \"react\";\nimport MockDate from \"mockdate\";\n\ntype MockDateProps = {\n /**\n * Date string to set the current date to\n */\n date: string;\n};\n\n/**\n * Mock a date for the children component\n */\nclass MockDateComponent extends React.Component {\n constructor(props: MockDateProps) {\n MockDate.set(props.date);\n super(props);\n }\n\n componentWillUnmount(): void {\n MockDate.reset();\n }\n\n render(): React.ReactNode {\n return this.props.children;\n }\n}\n\nexport default MockDateComponent;\n","import { FC } from \"react\";\nimport { Button as AntDButton, ButtonProps as AntDButtonProps } from \"antd\";\nimport * as _ from \"lodash\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport styles from \"./Button.module.less\";\n\nexport interface ButtonProps extends Omit {\n type?: AntDButtonProps[\"type\"] | \"secondary\" | \"tertiary\";\n}\n\n/**\n * Tell if the type is a built-in type\n * @param {string} type\n * @return {type is ButtonProps[\"type\"]}\n */\nconst isBuiltInType = (type: string | undefined): type is AntDButtonProps[\"type\"] => {\n return !type || [\"default\", \"primary\", \"ghost\", \"dashed\", \"link\", \"text\"].includes(type);\n};\n\n/**\n * Extended button component based on the Ant Design variant\n * @param {\"default\" | \"primary\" | \"ghost\" | \"dashed\" | \"link\" | \"text\" | undefined | \"secondary\" | \"tertiary\"} type\n * @param {boolean | undefined} danger\n * @param {string | undefined} className\n * @param {Pick} props\n * @return {JSX.Element}\n * @constructor\n */\nconst Button: FC = ({ type, danger, className, ...props }) => {\n return (\n \n );\n};\n\nexport default Button;\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLogoWithoutText(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 500 85\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 133.514 35.671 C 141.786 41.284 140.726 56.251 128.068 69.876 C 115.62 83.278 95.381 88.885 86.143 81.58 C 78.862 75.83 83.147 66.056 77.326 66.056 C 69.965 66.056 38.713 95.598 11.044 80.737 C -5.942 71.607 -3.268 45.278 18.607 23.62 C 39.887 2.547 71.982 -6.344 88.259 4.895 C 110.044 19.942 85.616 43.217 91.75 46.328 C 96.217 48.596 115.251 23.269 133.514 35.665 L 133.514 35.671 Z M 107.937 58.5 C 113.733 58.512 119.102 54.197 119.102 50.668 C 119.102 49.395 118.306 47.62 115.375 47.62 C 108.628 47.62 96.667 54.761 85.474 54.761 C 70.786 54.761 75.275 26.91 57.595 26.91 C 43.703 26.91 30.571 40.073 30.571 49.426 C 30.571 55.774 35.822 58.518 41.634 58.518 L 107.937 58.506 L 107.937 58.5 Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoWithoutText);\nexport default __webpack_public_path__ + \"static/media/logo-without-text.01e3db53.svg\";\nexport { ForwardRef as ReactComponent };","import { FC } from \"react\";\n\nimport { classname } from \"@ctra/utils\";\nimport { ReactComponent as LogoGraphic } from \"../../../assets/branding/logo.svg\";\nimport { ReactComponent as LogoWithText } from \"../../../assets/branding/logo-text.svg\";\nimport { ReactComponent as LogoWithoutText } from \"../../../assets/branding/logo-without-text.svg\";\n\nexport interface LogoProps extends React.HTMLAttributes {\n variant?: \"withText\" | \"noText\" | \"cropped\";\n}\n\n/**\n * Logo component\n * @param {\"withText\" | \"noText\" | \"cropped\" | undefined} variant\n * @param {string | undefined} className\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst Logo: FC = ({ variant = \"cropped\", className, ...rest }) => {\n return variant === \"withText\" ? (\n \n ) : variant === \"noText\" ? (\n \n ) : (\n \n );\n};\n\nexport default Logo;\n","import { Typography as T } from \"antd\";\nimport { ThemedTitle } from \"./typography/Title\";\nimport { ThemedText } from \"./typography/Text\";\n\nexport * from \"./Icon\";\n\nexport { default as MockDate } from \"./MockDate\";\nexport { default as Button } from \"./Button\";\nexport { default as Digits } from \"./Digits\";\nexport { default as CtraLogo } from \"./Logo\";\n\nexport const Typography = {\n ...T,\n Text: ThemedText,\n Title: ThemedTitle\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"PanelHeader\":\"PanelHeader--332zV\",\"Col\":\"Col--262SQ\",\"Hidden\":\"Hidden--2PDIx\",\"Tag\":\"Tag--ajO5P\",\"Description\":\"Description--1NK_r\",\"Date\":\"Date--1LYKz\",\"Icon\":\"Icon--JgBDp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Wrapper\":\"Wrapper--28_IE\",\"Headless\":\"Headless--3xcvy\",\"Minimalistic\":\"Minimalistic--3JqVM\",\"Header\":\"Header--326a-\",\"Content\":\"Content--159i_\",\"OverflowContainer\":\"OverflowContainer--2e3ny\",\"Scrollable\":\"Scrollable--3mxhU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"WidgetWrapper\":\"WidgetWrapper--31yC9\",\"HideOverflow\":\"HideOverflow--2zKnr\",\"Options\":\"Options--UbHyr\",\"Selector\":\"Selector--2F5Mu\",\"Border\":\"Border--2ZB0-\",\"Close\":\"Close--2QWCH\",\"Chart\":\"Chart--qvWaB\",\"Save\":\"Save--2mt1K\",\"Saved\":\"Saved--2OMe-\",\"Dropdown\":\"Dropdown--1U8cy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"WidgetWrapper\":\"WidgetWrapper--3E8Nl\",\"Wrapper\":\"Wrapper--17Bjx\",\"Options\":\"Options--1l2z9\",\"Selector\":\"Selector--21MTy\",\"Close\":\"Close--3R5n8\",\"Chart\":\"Chart--JnUA6\",\"RightMargin\":\"RightMargin--1srwG\",\"Saved\":\"Saved--1i3EC\",\"Dropdown\":\"Dropdown--1C-Kl\",\"Buttons\":\"Buttons--2wL8R\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Skeleton\":\"Skeleton--OsNqv\",\"CompactWrapper\":\"CompactWrapper--2GLXB\",\"List\":\"List--3Ofy6\",\"GroupLabel\":\"GroupLabel--3zaLE\",\"HideLastTail\":\"HideLastTail--3gbEC\",\"ShowMore\":\"ShowMore--1eGNN\",\"Tag\":\"Tag--2wfwW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"TimelineWrapper\":\"TimelineWrapper--rYhhv\",\"ReduceTextSize\":\"ReduceTextSize--1dFEo\",\"GroupLabel\":\"GroupLabel--6xblg\",\"Loading\":\"Loading--2FjNh\"};","import { Component } from \"react\";\nimport GA from \"react-ga4\";\n\ntype ComponentTrackerProps = {\n category: string;\n action: string;\n label?: string;\n value?: number;\n};\n\n/**\n * Drop in tracker component. Useful for tracking components that\n * does not require user interaction\n * Since this tracker doesn't require user interaction, nonInteraction is set to true to avoid skewing bounce rate data\n * ```ts\n * \n * ```\n */\nexport class ComponentTracker extends Component {\n componentDidMount(): void {\n GA.event({ ...this.props, nonInteraction: true });\n }\n\n render(): null {\n return null;\n }\n}\n","import GA from \"react-ga4\";\nimport * as _ from \"lodash\";\nimport { CookieKeys, Cookies } from \"@ctra/utils\";\n\ntype IntercomType = (\n action: string,\n options?: string | Record | (() => void),\n meta?: Record\n) => void;\n\ndeclare global {\n interface Window {\n Intercom: IntercomType;\n }\n}\n\n/**\n * HOF for tracking events\n * @param {string} category\n * @return {(action: string, eventOptions?: {label?: string, value?: number, nonInteraction?: boolean}, eventParams?: Record) => void}\n */\nexport const makeTrackEvent =\n (\n category: string\n ): ((\n action: string,\n eventOptions?: { label?: string; value?: number; nonInteraction?: boolean; category?: string },\n eventParams?: Record\n ) => void) =>\n (action: string, eventOptions = {}, eventParams = {}) => {\n const cat = _.defaultTo(category || eventOptions.category, \"Uncategorized\");\n const cookieConsent = Cookies.get(CookieKeys.cookieConsent);\n\n if (cookieConsent === \"optional\") {\n if (_.isFunction(_.get(window, [\"Intercom\"]))) {\n window.Intercom(\"trackEvent\", `${cat} / ${action}`, {\n ..._.omit(eventOptions, \"category\"),\n ...eventParams\n });\n }\n\n GA.event(\n { category: cat, action, ..._.omit(eventOptions, \"category\") },\n { event_category: cat, eventParams }\n );\n }\n };\n","import { createContext, useState, useEffect, Provider, ReactNode, useContext } from \"react\";\nimport useDeepCompareEffect from \"use-deep-compare-effect\";\nimport * as _ from \"lodash\";\n\nimport { makeTrackEvent } from \"../../hoc\";\n\nexport interface GAProviderDefaultValues {\n category: string;\n}\n\nexport interface GAProviderAPI {\n readonly trackEvent: ReturnType;\n readonly setContextValue: (key: string, value: unknown) => void;\n}\n\nexport type GAProviderPublicAPI> = T & GAProviderAPI & GAProviderDefaultValues;\n\n/**\n * Tell if the host is in sandbox mode\n * @return {boolean}\n */\nconst isSandbox = () => window.location.host === \"demo.app.connecterra.ai\";\n\n/**\n * Default Google Analytics context with category and any extra info\n */\nexport const DefaultContext = createContext<\n Record & GAProviderDefaultValues & GAProviderAPI\n>({\n category: `${isSandbox() ? \"[DEMO] \" : \"\"}Uncategorized`,\n setContextValue: _.noop,\n trackEvent: _.noop\n});\n\n/**\n * GA custom provider that manages adhoc variables\n * @param value\n * @param children\n * @constructor\n */\nfunction GAProvider>({\n value,\n children\n}: {\n value: T & GAProviderDefaultValues;\n children?: ReactNode;\n}): ReturnType>> {\n const { category } = value;\n const [currentContext, setCurrentContext] = useState(value);\n const trackEvent = makeTrackEvent(isSandbox() ? `[DEMO] ${category}` : category);\n\n useDeepCompareEffect(() => {\n setCurrentContext(value);\n }, [value]);\n\n const setContextValue = (name: string, value: unknown) => {\n setCurrentContext({ ...currentContext, [name]: value });\n };\n\n return (\n \n {children}\n \n );\n}\n\nGAProvider.$$typeof = Symbol(\"Google Analytics Context Provider\");\n\nexport const GAContext = {\n Provider: GAProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Make a hook for Google Analytics\n * @return {GAProviderPublicAPI}\n */\nexport const useGoogleAnalytics = >(): GAProviderPublicAPI =>\n // @ts-ignore - the value of DefaultContext is somewhat different to GAProviderPublicAPI, but that is our intention\n useContext>(DefaultContext);\n","import * as _ from \"lodash\";\n\nimport { Cookies, CookieKeys } from \"@ctra/utils\";\nimport { GA } from \"..\";\n\n/**\n * Util function for Google Analytics event tracking\n * @param category\n * @param action\n * @param info\n * @returns\n */\nexport const GAEvent = (category: string, action: string, info?: string) => {\n const cookieConsent = Cookies.get(CookieKeys.cookieConsent);\n\n return cookieConsent === \"optional\"\n ? GA.gtag(\"event\", action, {\n category,\n action,\n info\n })\n : _.noop();\n};\n","export const GACategories = {\n network: \"network\"\n};\n","import { FC } from \"react\";\nimport { useFormikContext } from \"formik\";\nimport * as _ from \"lodash\";\n\nimport { Input, Select, Checkbox, Form, MailOutlined, Space, Typography } from \"@ctra/components\";\nimport { useTranslation, Enterprise as Content } from \"@ctra/i18n\";\nimport { ReferralRole } from \"@ctra/api\";\n\nimport { Invitation } from \"../../../settings/components/Users/typings\";\nimport { GACategories } from \"../../analytics\";\n\nconst { Text } = Typography;\n\nconst {\n settings: {\n users: {\n form: { labels, placeholders, role: roleCopy }\n }\n }\n} = Content;\n\n/**\n * Referral form\n * @return {JSX.Element}\n * @constructor\n */\nexport const ReferralForm: FC = () => {\n const { t } = useTranslation();\n const { isSubmitting } = useFormikContext();\n\n return (\n
          \n \n (labels.firstName)}>\n (placeholders.firstName)}\n name=\"firstName\"\n />\n \n (labels.lastName)}>\n (placeholders.lastName)}\n name=\"lastName\"\n data-gtm-category={GACategories.network}\n data-gtm-action=\"Last name\"\n />\n \n (labels.email)}>\n }\n placeholder={t(placeholders.email)}\n name=\"email\"\n data-gtm-category={GACategories.network}\n data-gtm-action=\"Email\"\n />\n \n (labels.org)}>\n (placeholders.org)}\n name=\"org\"\n data-gtm-category={GACategories.network}\n data-gtm-action=\"Organization\"\n />\n \n (labels.role)}>\n (placeholders.role)}\n name=\"role\"\n data-gtm-category={GACategories.network}\n data-gtm-action=\"Role\"\n >\n {_.map(_.values(ReferralRole), (role) => (\n \n {t(roleCopy(role))}\n \n ))}\n \n \n \n \n \n \n {t(labels.consent)}{\" \"}\n \n {t(labels.readMore)}\n \n \n \n \n
          \n );\n};\n","import * as Yup from \"yup\";\n\nimport { useTranslation, Enterprise } from \"@ctra/i18n\";\nimport { Invitation } from \"../../../../settings/components/Users/typings\";\n\nconst {\n settings: {\n users: {\n form: { validation }\n }\n }\n} = Enterprise;\n\ntype ValidationSchema = Yup.SchemaOf>;\n\n/**\n * Validation schema for the invitation form\n */\nexport const useValidationSchema = (): (() => ValidationSchema) => {\n const { t } = useTranslation();\n\n const validationSchema = Yup.object().shape({\n id: Yup.string().nullable(true),\n firstName: Yup.string().defined(t(validation.firstNameRequired)),\n lastName: Yup.string().defined(t(validation.lastNameRequired)),\n email: Yup.string().defined(t(validation.emailRequired)),\n org: Yup.string(),\n role: Yup.string().defined(t(validation.roleRequired))\n });\n\n return () => validationSchema;\n};\n","import { FC, useEffect, useState } from \"react\";\nimport { Redirect, useRouteMatch } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { Formik } from \"formik\";\nimport _ from \"lodash\";\n\nimport {\n EnterpriseAppState,\n Invitation,\n ReferralEntity,\n ReferralFormValues,\n Breadcrumbs,\n Enterprise as API,\n ReferralType\n} from \"@ctra/api\";\n\nimport { useTranslation, Enterprise as Content } from \"@ctra/i18n\";\nimport { CtraLayout, message, Row, Col, Alert, Button, Typography } from \"@ctra/components\";\nimport { isPending, isFulfilled, useDidMount, isRejected, Nullable } from \"@ctra/utils\";\n\nimport { Routes } from \"@routes\";\nimport { useUserPreferences } from \"@base\";\nimport { GACategories } from \"@network\";\n\nimport { ReferralForm } from \"../ReferralForm\";\nimport { useValidationSchema } from \"./hooks\";\nimport styles from \"./ReferralPage.module.less\";\n\nconst { WidgetWrapper, ContentWrapper } = CtraLayout;\nconst { Title, Paragraph } = Typography;\n\nconst {\n components: { Breadcrumb }\n} = Breadcrumbs;\n\nconst {\n settings: {\n users: {\n description,\n form: { error, success, submit, cancel }\n }\n }\n} = Content;\n\n/**\n * Invite new user or edit existing invitation\n * @return {JSX.Element}\n * @constructor\n */\nexport const ReferralPage: FC = () => {\n const [mayRedirect, setMayRedirect] = useState(false);\n const [mayObserveState, setMayObserveState] = useState(false);\n const [isMounting] = useDidMount();\n const validationSchema = useValidationSchema();\n const { t } = useTranslation();\n const dispatch = useDispatch();\n\n const {\n preferences: { sandbox }\n } = useUserPreferences();\n\n const {\n params: { invitationId }\n } =\n useRouteMatch<{\n invitationId: NonNullable;\n }>();\n\n /**\n * Look up the existing invitation shall there be any and use it as initial values for the form\n * @type {ReferralFormValues}\n */\n const initialValues: ReferralFormValues = useSelector((state) => {\n const { targetUser, sourceUser, ...rest } = _.get(state, [\"invitations\", \"entities\", invitationId], {\n targetUser: {}\n } as ReferralEntity);\n\n return { ...rest, ...targetUser };\n });\n\n /**\n * Check if the form is currently submitting\n * @type {boolean}\n */\n const isLoading: boolean = useSelector((state) =>\n invitationId\n ? isPending(state, Invitation.types.UPDATE_INVITATION, { primaryValue: invitationId })\n : isPending(state, Invitation.types.CREATE_INVITATION)\n );\n\n /**\n * Check if the form has been submitted successfully\n * @type {boolean}\n */\n const isSuccessful: boolean = useSelector(\n (state) =>\n !isMounting &&\n (invitationId\n ? isFulfilled(state, Invitation.types.UPDATE_INVITATION, { primaryValue: invitationId })\n : isFulfilled(state, Invitation.types.CREATE_INVITATION))\n );\n\n /**\n * Check if the form submission has been rejected\n */\n const [isRequestRejected, payload] = useSelector<\n EnterpriseAppState,\n [boolean, Nullable<{ error: string; statusCode: number }>]\n >((state) =>\n invitationId\n ? isRejected(state, Invitation.types.UPDATE_INVITATION, {\n withPayload: true,\n primaryValue: invitationId\n })\n : isRejected(state, Invitation.types.CREATE_INVITATION, {\n withPayload: true\n })\n );\n\n /**\n * Display a message to the user based on the form submission status\n */\n useEffect(() => {\n if (mayObserveState && isRequestRejected) {\n setMayRedirect(false);\n setMayObserveState(false);\n }\n\n if (mayObserveState && isSuccessful) {\n message.success(t(success, { variant: invitationId ? \"update\" : \"create\" }));\n setMayRedirect(true);\n setMayObserveState(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isRequestRejected, isSuccessful, mayObserveState]);\n\n return mayRedirect && !isLoading ? (\n \n ) : (\n \n \n {t<string>(Content.settings.users.form.title, {\n variant: invitationId ? \"edit\" : \"new\",\n referralType: ReferralType.farmerToUser\n })}\n \n {t(description, { referralType: ReferralType.farmerToUser })}\n \n }\n >\n (Content.settings.users.form.title, {\n variant: invitationId ? \"edit\" : \"new\",\n referralType: ReferralType.farmerToUser\n })}\n />\n \n initialValues={{\n ...initialValues,\n consent: true\n }}\n onSubmit={({ consent, ...values }, { setSubmitting }) => {\n setMayObserveState(true);\n\n dispatch(\n values.id\n ? Invitation.actions.updateInvitation.start(values)\n : Invitation.actions.createInvitation.start(values)\n );\n\n setSubmitting(false);\n }}\n validationSchema={validationSchema}\n >\n {({ submitForm, values: { id, consent }, isSubmitting }) => {\n return (\n \n \n \n \n {t(submit, {\n variant: id ? \"edit\" : \"create\"\n })}\n \n \n \n API.history.push(Routes.app.network.index)}\n >\n {t(cancel)}\n \n \n \n \n }\n >\n {isRequestRejected && (\n (error, {\n error: payload?.error,\n statusCode: payload?.statusCode\n })}\n />\n )}\n \n \n );\n }}\n \n \n );\n};\n","import { FC } from \"react\";\n\nimport { FarmEntity, UserEntity } from \"@ctra/api\";\nimport { Table, TableProps, Button, ExportOutlined } from \"@ctra/components\";\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\n\nconst { Column } = Table;\n\nconst {\n network: {\n farms: { table }\n }\n} = Content;\n\n/**\n * Table view of users\n * @param {React.PropsWithChildren>} props\n * @returns {JSX.Element}\n * @constructor\n */\nexport const FarmAccessTable: FC> = (props) => {\n const { t } = useTranslation();\n\n return (\n {...props}>\n width=\"50%\" title={t(table.columns.name)} key=\"name\" dataIndex=\"name\" />\n title={t(table.columns.status)} key=\"status\" dataIndex=\"status\" />\n {/**/}\n {/* align=\"right\"*/}\n {/* title={t(table.columns.actions)}*/}\n {/* render={() => (*/}\n {/* */}\n {/* )}*/}\n {/*/>*/}\n \n );\n};\n","import { FC } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { ReferralEntity, ReferralStatus, UserEntity } from \"@ctra/api\";\nimport { Button, UserDeleteOutlined, Table, TableProps } from \"@ctra/components\";\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\n\nconst { Column } = Table;\n\nconst {\n network: {\n users: { table }\n }\n} = Content;\n\n/**\n * Table view of users\n * @param {React.PropsWithChildren>} props\n * @returns {JSX.Element}\n * @constructor\n */\nexport const UserAccessTable: FC> = (props) => {\n const { t } = useTranslation();\n\n return (\n {...props}>\n \n width=\"50%\"\n title={t(table.columns.name)}\n key=\"name\"\n sorter={(a, b) => _.defaultTo(a.firstName, \"\").localeCompare(_.defaultTo(b.firstName, \"\"))}\n render={(value, { firstName, lastName }) => _.join(_.compact([firstName, lastName]), \" \") || \"-\"}\n />\n \n width=\"50%\"\n title={t(table.columns.email)}\n dataIndex=\"email\"\n key=\"email\"\n sorter={(a, b) => _.defaultTo(a.email, \"\").localeCompare(_.defaultTo(b.email, \"\"))}\n />\n {/**/}\n {/* title={t(table.columns.userGroup)}*/}\n {/* key=\"userGroup\"*/}\n {/* render={(value, entity) => _.map(entity.userGroups, \"name\").join(\", \")}*/}\n {/*/>*/}\n {/**/}\n {/* align=\"right\"*/}\n {/* width=\"25%\"*/}\n {/* title={t(table.columns.actions)}*/}\n {/* render={() => (*/}\n {/* */}\n {/* )}*/}\n {/*/>*/}\n \n );\n};\n","import { FC } from \"react\";\nimport * as _ from \"lodash\";\nimport Markdown from \"react-markdown\";\n\nimport {\n CloseOutlined,\n Button,\n Col,\n DeleteOutlined,\n Popconfirm,\n Row,\n Table,\n TableProps,\n Typography,\n Popover,\n CheckOutlined,\n Tag\n} from \"@ctra/components\";\n\nimport { ReferralEntity, ReferralStatus, ReferralType } from \"@ctra/api\";\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\n\nimport { useInvitation, useUserPreferences } from \"@base\";\nimport { useCurrentUser } from \"@auth\";\n\nconst { Text } = Typography;\nconst { Column } = Table;\n\nconst {\n ui: { na, self },\n network: {\n referrals: { actions: referralActions }\n },\n settings: {\n users: {\n actions: { confirmDelete },\n form: { role: roleCopy },\n table: { values: tableValues, columns: columnHeaderCopy }\n }\n }\n} = Content;\n\n/**\n * Table view of referrals\n * @param {React.PropsWithChildren>} props\n * @returns {JSX.Element}\n * @constructor\n */\nexport const UserReferralTable: FC> = (props) => {\n const { t } = useTranslation();\n const { user: currentUser } = useCurrentUser();\n const isFarmer = !!currentUser.farmAccess?.farmId;\n\n const {\n preferences: { sandbox }\n } = useUserPreferences();\n\n const {\n api: { handleDelete, handleAccept, handleDecline },\n meta: { isLoading }\n } = useInvitation();\n\n const getPointerName = (entity: ReferralEntity) => {\n return isFarmer && entity.type === ReferralType.farmerToUser ? \"targetUser\" : \"sourceUser\";\n };\n\n return (\n {...props}>\n \n title={t(columnHeaderCopy.name)}\n key=\"name\"\n sorter={(a, b) => {\n return _.defaultTo(a[getPointerName(a)].firstName, \"\").localeCompare(\n _.defaultTo(b[getPointerName(b)].firstName, \"\")\n );\n }}\n render={(value, entity) => {\n const user = entity[getPointerName(entity)];\n\n return (\n <>\n {_.join(_.compact([user.firstName, user.lastName]), \" \") || \"-\"}{\" \"}\n {user.email === currentUser.email ? {t(self)} : null}\n \n );\n }}\n />\n \n title={t(columnHeaderCopy.email)}\n key=\"email\"\n sorter={(a, b) =>\n _.defaultTo(a[getPointerName(a)].email, \"\").localeCompare(\n _.defaultTo(b[getPointerName(b)].email, \"\")\n )\n }\n render={(value, entity) => {\n const user = entity[getPointerName(entity)];\n\n return _.trim(user.email);\n }}\n />\n \n title={t(columnHeaderCopy.org)}\n key=\"org\"\n sorter={(a, b) => _.defaultTo(a.targetUser.org, \"\").localeCompare(_.defaultTo(b.targetUser.org, \"\"))}\n render={(value, entity) => _.trim(entity.targetUser.org) || t(na)}\n />\n \n title={t(columnHeaderCopy.role)}\n key=\"role\"\n render={(value, entity) => t(roleCopy(entity.targetUser.role))}\n sorter={(a, b) => a.targetUser.role.localeCompare(b.targetUser.role)}\n />\n \n title={t(columnHeaderCopy.invitation)}\n dataIndex=\"status\"\n key=\"status\"\n render={(value, { id, type, code, targetUser: { email } }) => {\n const isFarmer = !!currentUser.farmAccess?.farmId;\n const received = email === currentUser.email || (isFarmer && type === ReferralType.userToFarmer);\n\n return (\n \n \n {t(tableValues.status(value), { received })}\n \n {received ? (\n \n {t(referralActions.accept, { type })}}>\n }\n // GA log in context\n onClick={_.partial(handleAccept, code)}\n />\n \n {/*(referralActions.decline, { type })}>*/}\n {/* }*/}\n {/* onClick={_.partial(handleDecline, code)}*/}\n {/* />*/}\n {/**/}\n \n ) : (\n \n {/*(referralActions.revoke, { type })}>*/}\n {/* (confirmDelete.text)}*/}\n {/* okButtonProps={{ loading: isLoading }}*/}\n {/* onConfirm={() => {*/}\n {/* // GA log in context*/}\n {/* handleDelete(id);*/}\n {/* }}*/}\n {/* okText={t(confirmDelete.ok)}*/}\n {/* cancelText={t(confirmDelete.cancel)}*/}\n {/* >*/}\n {/* }*/}\n {/* />*/}\n {/* */}\n {/**/}\n \n )}\n \n );\n }}\n />\n \n );\n};\n","import { FC } from \"react\";\nimport * as _ from \"lodash\";\n\nimport {\n Button,\n Col,\n DeleteOutlined,\n Popconfirm,\n Row,\n Table,\n TableProps,\n Typography\n} from \"@ctra/components\";\n\nimport { ReferralEntity, ReferralStatus, ReferralType } from \"@ctra/api\";\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\n\nimport { useInvitation, useUserPreferences } from \"@base\";\nimport { useCurrentUser } from \"@auth\";\n\nconst { Text } = Typography;\nconst { Column } = Table;\n\nconst {\n settings: {\n users: {\n actions: { confirmDelete },\n table: { values: tableValues, columns: columnHeaderCopy }\n }\n }\n} = Content;\n\n/**\n * Table view of referrals\n * @param {React.PropsWithChildren>} props\n * @returns {JSX.Element}\n * @constructor\n */\nexport const FarmReferralTable: FC> = (props) => {\n const { t } = useTranslation();\n const { user: currentUser } = useCurrentUser();\n const isFarmer = !!currentUser.farmAccess?.farmId;\n\n const {\n api: { handleDelete },\n meta: { isLoading }\n } = useInvitation();\n\n const getPointerName = (entity: ReferralEntity) => {\n return isFarmer && entity.type === ReferralType.farmerToUser ? \"sourceUser\" : \"targetUser\";\n };\n\n const {\n preferences: { sandbox }\n } = useUserPreferences();\n\n return (\n {...props}>\n \n width=\"50%\"\n title={t(columnHeaderCopy.email)}\n dataIndex=\"email\"\n key=\"email\"\n sorter={(a, b) =>\n _.defaultTo(a[getPointerName(a)].email, \"\").localeCompare(\n _.defaultTo(b[getPointerName(b)].email, \"\")\n )\n }\n render={(value, entity) => {\n const user = entity[getPointerName(entity)];\n\n return _.trim(user.email);\n }}\n />\n \n width=\"50%\"\n title={t(columnHeaderCopy.invitation)}\n dataIndex=\"status\"\n key=\"status\"\n render={(value, entity) => {\n const user = entity[getPointerName(entity)];\n const received = currentUser.email === user.email;\n const { id } = entity;\n\n return (\n \n \n {t(tableValues.status(value), { received })}\n \n {value === ReferralStatus.sent && (\n \n {/*(confirmDelete.text)}*/}\n {/* okButtonProps={{ loading: isLoading }}*/}\n {/* onConfirm={() => {*/}\n {/* // GA log in context*/}\n {/* handleDelete(id);*/}\n {/* }}*/}\n {/* okText={t(confirmDelete.ok)}*/}\n {/* cancelText={t(confirmDelete.cancel)}*/}\n {/*>*/}\n {/* }*/}\n {/* />*/}\n {/**/}\n \n )}\n \n );\n }}\n />\n \n );\n};\n","import { FC } from \"react\";\nimport * as _ from \"lodash\";\n\nimport {\n Alert,\n Button,\n CtraLayout,\n PlusOutlined,\n TableProps,\n Tabs,\n Typography,\n Badge\n} from \"@ctra/components\";\n\nimport { Breadcrumbs, Enterprise as API, ReferralEntity, ReferralStatus, ReferralType } from \"@ctra/api\";\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\nimport { isProduction } from \"@ctra/utils\";\n\nimport { Routes } from \"@routes\";\nimport { useInvitation, useUserList } from \"@base\";\nimport { useFarm, useFarmList } from \"@farms\";\nimport { useCurrentUser } from \"@auth\";\n\nimport { FarmAccessTable } from \"../FarmAccessTable\";\nimport { UserAccessTable } from \"../UserAccessTable\";\nimport { UserReferralTable } from \"../UserReferralTable\";\nimport { FarmReferralTable } from \"../FarmReferralTable\";\n\nimport styles from \"./ReferralListPage.module.less\";\nimport { GAEvent } from \"@ctra/analytics\";\nimport { GACategories } from \"@network\";\n\nconst { WidgetWrapper, ContentWrapper } = CtraLayout;\nconst { Title, Paragraph, Text } = Typography;\nconst { TabPane } = Tabs;\n\nconst {\n components: { Breadcrumb }\n} = Breadcrumbs;\n\nconst {\n ui: { table: tableLocale },\n network: {\n farms: { title: farmTitle, description: farmDescription, tabs: farmTabs, actions: farmActions },\n users: { title: userTitle, description: userDescription, tabs: userTabs }\n },\n settings: {\n users: {\n alerts: { selectFarm, referral },\n actions: { invite },\n table: { empty }\n }\n }\n} = Content;\n\n/**\n * Filter the referral list by the referral status\n * @param {Array} dataSource\n * @param {ReferralStatus} status\n * @returns {(ReferralEntity | UserEntity)[]}\n * @note if the entity is a user, it will be considered as an accepted referral\n */\nconst filterByReferralStatus = (\n dataSource: Array,\n status: ReferralStatus[]\n): ReferralEntity[] => _.filter(dataSource, (item) => status.includes(item.status));\n\n/**\n * Referral list page\n * @return {JSX.Element}\n * @constructor\n */\nexport const ReferralListPage: FC = () => {\n const { t } = useTranslation();\n const { farm } = useFarm();\n const { farmList } = useFarmList();\n\n const {\n users,\n meta: { isLoading: isUserListLoading }\n } = useUserList();\n\n const {\n sent,\n received,\n meta: { isLoading }\n } = useInvitation();\n\n const { user } = useCurrentUser();\n const isFarmer = !!user.farmAccess?.farmId;\n\n /**\n * Filtered user list\n * @type {Array}\n */\n const filteredUserList = _.filter(users, ({ email }) =>\n isProduction()\n ? !_.includes(email, \"connecterra\") && !_.includes(email, user.email)\n : !_.includes(email, user.email)\n );\n\n /**\n * Referral list\n * @type {InvitationList}\n */\n const referralList = { ...sent, ...received };\n\n /**\n * Common table props\n * @type {{pagination: {hideOnSinglePage: boolean, pageSize: number, position: string[]}, locale: {[p: string]: TDefaultResult} & {emptyText: string}}}\n */\n const getTableProps = (referralType: ReferralType): Partial> => ({\n locale: {\n ..._.mapValues(tableLocale, _.unary(t)),\n emptyText: t(empty, { referralType })\n },\n pagination: {\n hideOnSinglePage: true,\n position: [\"bottomCenter\"],\n pageSize: 10\n }\n });\n\n /**\n * Farmer to user referrals\n * @type {ReferralEntity[]}\n */\n const userReferrals = filterByReferralStatus(_.values(referralList), [\n ReferralStatus.sent,\n ReferralStatus.declined\n ]);\n\n /**\n * User to farmer referrals\n * @type {ReferralEntity[]}\n */\n const farmReferrals = filterByReferralStatus(_.values(referralList), [\n ReferralStatus.sent,\n ReferralStatus.declined\n ]);\n\n return (\n <>\n (userTitle) : t(farmTitle)}\n />\n\n {/* farmer to user referrals */}\n {isFarmer && _.size(farmList) ? (\n \n {t<string>(userTitle)}\n {t(userDescription, { farmName: farm?.name || null })}\n \n }\n toolbar={\n farm?.id ? (\n }\n onClick={() => API.history.push(Routes.app.network.invite.new)}\n >\n {t(invite)}\n \n ) : (\n void 0\n )\n }\n >\n {farm?.id ? (\n {\n GAEvent(GACategories.network, `Switch referral tab - ${activeKey}`);\n }}\n >\n (userTabs.users)} key=\"users\">\n \n \n \n \n {!!_.size(userReferrals) && (\n \n {t(userTabs.invitations)}\n \n }\n key=\"user-referrals\"\n >\n \n \n \n \n )}\n \n ) : (\n (selectFarm.title)}\n description={t(selectFarm.description)}\n />\n )}\n \n ) : isFarmer && !_.size(farmList) ? (\n (referral.title)}\n description={t(referral.description)}\n />\n ) : null}\n\n {/* user to farmer referrals */}\n {!isFarmer ? (\n \n {t<string>(farmTitle)}\n {t(farmDescription)}\n \n }\n toolbar={\n }\n onClick={() => API.history.push(Routes.app.network.requestAccess)}\n >\n {t(farmActions.invite)}\n \n }\n >\n {\n GAEvent(GACategories.network, `Switch referral tab - ${activeKey}`);\n }}\n >\n (farmTabs.farms)} key=\"farms\">\n \n \n \n \n {!!_.size(farmReferrals) && (\n \n {t(farmTabs.invitations)}\n \n }\n key=\"farm-requests\"\n >\n \n \n \n \n )}\n \n \n ) : null}\n \n );\n};\n","import { FC, useEffect, useState } from \"react\";\nimport { Redirect } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { Formik } from \"formik\";\n\nimport {\n EnterpriseAppState,\n Invitation,\n ReferralFormValues,\n Breadcrumbs,\n Enterprise as API,\n ReferralType\n} from \"@ctra/api\";\n\nimport {\n CtraLayout,\n message,\n Row,\n Col,\n Alert,\n Button,\n Typography,\n Form,\n Input,\n MailOutlined\n} from \"@ctra/components\";\n\nimport { useTranslation, Enterprise as Content } from \"@ctra/i18n\";\nimport { isPending, isFulfilled, useDidMount, isRejected, Nullable } from \"@ctra/utils\";\n\nimport { Routes } from \"@routes\";\nimport { useUserPreferences } from \"@base\";\nimport { GACategories } from \"@network\";\n\nimport styles from \"./RequestAccessPage.module.less\";\n\nconst { WidgetWrapper, ContentWrapper } = CtraLayout;\nconst { Title, Paragraph } = Typography;\n\nconst {\n components: { Breadcrumb }\n} = Breadcrumbs;\n\nconst {\n overview: {\n inviteFarm: { label }\n },\n settings: {\n users: {\n title,\n description,\n form: { error, success, submit, cancel, placeholders }\n }\n }\n} = Content;\n\n/**\n * Invite new user or edit existing invitation\n * @return {JSX.Element}\n * @constructor\n */\nexport const RequestAccessPage: FC = () => {\n const [mayRedirect, setMayRedirect] = useState(false);\n const [isMounting] = useDidMount();\n const { t } = useTranslation();\n const dispatch = useDispatch();\n\n const {\n preferences: { sandbox }\n } = useUserPreferences();\n\n /**\n * Check if the form is currently submitting\n * @type {boolean}\n */\n const isLoading = useSelector((state) =>\n isPending(state, Invitation.types.CREATE_INVITATION)\n );\n\n /**\n * Check if the form has been submitted successfully\n * @type {boolean}\n */\n const isSuccessful = useSelector((state) =>\n isFulfilled(state, Invitation.types.CREATE_INVITATION)\n );\n\n /**\n * Check if the form submission has been rejected\n */\n const [isRequestRejected, payload] = useSelector<\n EnterpriseAppState,\n [boolean, Nullable<{ error: string; statusCode: number }>]\n >((state) =>\n isRejected(state, Invitation.types.CREATE_INVITATION, {\n withPayload: true\n })\n );\n\n /**\n * Display a message to the user based on the form submission status\n */\n useEffect(() => {\n if (isRequestRejected) {\n setMayRedirect(false);\n }\n\n if (isSuccessful) {\n message.success(t(success, { variant: \"create\" }));\n setMayRedirect(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isRequestRejected, isSuccessful]);\n\n return mayRedirect && !isMounting && !isLoading ? (\n \n ) : (\n \n {t<string>(title, { referralType: ReferralType.userToFarmer })}\n {t(description, { referralType: ReferralType.userToFarmer })}\n \n }\n >\n (title, { referralType: ReferralType.userToFarmer })}\n />\n >\n initialValues={{\n email: \"\"\n }}\n onSubmit={({ email }, { setSubmitting }) => {\n dispatch(Invitation.actions.requestFarmAccess.start(email));\n setSubmitting(false);\n }}\n >\n {({ submitForm, values: { email }, isSubmitting }) => {\n return (\n \n \n \n \n {t(submit, {\n variant: \"create\"\n })}\n \n \n \n API.history.push(Routes.app.network.index)}\n >\n {t(cancel)}\n \n \n \n \n }\n >\n
          \n (label)}>\n }\n placeholder={t(placeholders.email)}\n name=\"email\"\n data-gtm-category={GACategories.network}\n data-gtm-action=\"Email\"\n />\n \n
          \n {isRequestRejected && (\n (error, {\n error: payload?.error,\n statusCode: payload?.statusCode\n })}\n />\n )}\n \n );\n }}\n \n \n );\n};\n","import { FC, useMemo } from \"react\";\nimport { Route, Switch } from \"react-router-dom\";\nimport * as Sentry from \"@sentry/react\";\n\nimport { useCurrentUser } from \"@auth\";\nimport { Routes } from \"@routes\";\nimport { FarmContext } from \"@farms\";\n\nimport { ReferralPage } from \"../ReferralPage\";\nimport { ReferralListPage } from \"../ReferralListPage\";\nimport { RequestAccessPage } from \"../RequestAccessPage\";\nimport styles from \"./NetworkPage.module.less\";\nimport { UserListContext } from \"@base\";\n\nconst SentryRoute = Sentry.withSentryRouting(Route);\n\n/**\n * Network page\n * @returns {JSX.Element}\n * @constructor\n */\nconst NetworkPage: FC = (): JSX.Element => {\n const { user } = useCurrentUser();\n const farmId = user.farmAccess?.farmId;\n\n /**\n * Make a context for the user's own farm\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @returns {JSX.Element}\n * @constructor\n */\n const ContextWrapper: FC = useMemo(\n () =>\n // eslint-disable-next-line react/display-name\n ({ children }) =>\n farmId ? (\n \n {children}\n \n ) : (\n <>{children}\n ),\n [farmId]\n );\n\n return (\n \n \n
          \n \n \n \n \n \n
          \n
          \n
          \n );\n};\n\nexport default NetworkPage;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Title\":\"Title--2w8zu\",\"H6\":\"H6--m3tBV\",\"Light\":\"Light--1I1Ag\",\"Black\":\"Black--3FHgt\"};","import { FC, ComponentProps, useState, useEffect } from \"react\";\nimport { useLocation } from \"react-router\";\nimport * as _ from \"lodash\";\nimport { withProps } from \"hoc-with-props\";\n\nimport {\n Enterprise as Content,\n useTranslation,\n supportedLocales,\n SupportedLocaleKeys,\n SupportedLocales\n} from \"@ctra/i18n\";\n\nimport {\n Button,\n Flag,\n DownOutlined,\n Dropdown,\n LoadingOutlined,\n Menu,\n RightOutlined,\n Spin,\n Icon,\n Typography,\n Space\n} from \"@ctra/components\";\n\nimport { endToEndTest, UnitSystem } from \"@ctra/utils\";\nimport { makeTrackEvent } from \"@ctra/analytics\";\n\nimport { Routes } from \"@routes\";\nimport { useLocalization } from \"@base\";\n\nimport { GACategories, GAActions } from \"../../analytics\";\nimport styles from \"./UserPreferences.module.less\";\n\nconst { Text } = Typography;\n\n/**\n * User Preferences selector of 3 types\n * Login Page, Dashboard, User Menu\n * Uppercase so it can refer to the CSS Class e.g styles.Auth\n */\nexport enum UserPreferencesVariant {\n auth = \"Auth\",\n dashboard = \"Dashboard\",\n settings = \"Settings\"\n}\n\ninterface UserPreferencesProps {\n variant?: UserPreferencesVariant;\n locales?: SupportedLocales;\n}\n\n/**\n * User preference selector\n * @constructor\n */\nexport const UserPreferences: FC = ({\n variant = UserPreferencesVariant.dashboard,\n locales = supportedLocales\n}) => {\n const { i18n, t } = useTranslation();\n const [loading, setLoading] = useState(false);\n const { pathname } = useLocation();\n\n const {\n unitSystem,\n locale,\n updateUnitSystem,\n updateLocale,\n meta: { isLoading: userPreferencesLoading }\n } = useLocalization();\n\n const trackEvent = makeTrackEvent(GACategories.userPreferencesSelector);\n\n /**\n * i18n to be in sync with locale from user prefs\n */\n useEffect(() => {\n if (locale && i18n.language !== locale) {\n setLoading(true);\n i18n.changeLanguage(locale);\n }\n }, [locale, i18n]);\n\n /**\n * register on mount an event listener for when language is changed\n * this help us visualize the loading state\n * unregister on unmount\n */\n useEffect(() => {\n i18n.on(\"languageChanged\", () => setLoading(false));\n return () => {\n i18n.off(\"languageChanged\");\n };\n }, [i18n]);\n\n /**\n * Locale keys that are to be mapped\n */\n const localeKeys = _.keys(locales) as Array;\n\n const isSettingsVariant = variant === UserPreferencesVariant.settings;\n const isAuthVariant = variant === UserPreferencesVariant.auth;\n\n /**\n * Language change handler\n */\n const onLanguageChange = ({ key }: { key: SupportedLocaleKeys }) => {\n setLoading(true);\n updateLocale(key);\n i18n.changeLanguage(key);\n };\n\n /**\n * Unit system change handler\n * update unit system in the localization context\n */\n const onUnitChange = ({ unitSystem }: { unitSystem: UnitSystem }) => {\n updateUnitSystem(unitSystem);\n };\n\n /**\n * get the title with the given country code\n */\n const getTitle = (locale: SupportedLocaleKeys) => locales[locale].title;\n\n /**\n * Map of units to show on dropdown button\n */\n const units = {\n [UnitSystem.imperial]: t(Content.navigation.unitSystem.imperial, { variant: \"short\" }),\n [UnitSystem.metric]: t(Content.navigation.unitSystem.metric, { variant: \"short\" })\n };\n\n /**\n * Dropdown button text\n * to be shown to logged in user\n */\n const buttonText = `${getTitle(locale)}, ${units[unitSystem]}`;\n\n /**\n * Dropdown toggle button\n */\n const button = (\n }\n data-testid={endToEndTest(\"settings\", \"dropdownButton\")}\n data-gtm-category={GACategories.userPreferencesSelector}\n data-gtm-action=\"Open locale settings\"\n onClick={() => trackEvent(GAActions.openUserPreferencesSelector)}\n >\n \n {isAuthVariant ? getTitle(locale) : buttonText}\n {loading || userPreferencesLoading ? (\n \n ) : isSettingsVariant ? (\n \n ) : (\n \n )}\n \n \n );\n\n /**\n * Menu overlay for dropdown\n */\n const overlay = (\n <>\n {\n /* istanbul ignore next */\n trackEvent(GAActions.selectLanguage, { label: e.key });\n onLanguageChange({ key: e.key as SupportedLocaleKeys }) as ComponentProps[\"onClick\"];\n }}\n selectedKeys={[locale]}\n >\n (Content.navigation.language.label)}\n className={styles[`${variant}Group`] || styles.Group}\n >\n {localeKeys.map((value) => (\n }\n >\n {getTitle(value)}\n \n ))}\n \n \n {!isAuthVariant && (\n {\n /* istanbul ignore next */\n trackEvent(GAActions.selectUnitSystem, { label: e.key });\n onUnitChange({ unitSystem: e.key as UnitSystem }) as ComponentProps[\"onClick\"];\n }}\n selectedKeys={[unitSystem]}\n >\n (Content.navigation.unitSystem.label)}\n className={styles[`${variant}Group`] || styles.Group}\n >\n \n {t(Content.navigation.unitSystem.imperial, { variant: \"extended\" })}\n \n \n {t(Content.navigation.unitSystem.metric, { variant: \"extended\" })}\n \n \n \n )}\n \n );\n\n /**\n * if settings variant, show only button on /settings path and not an actual dropdown\n * button used to route to other page i.e. /settings/preferences, which shows the overlay\n */\n const renderSettingsVariant = () =>\n pathname === Routes.app.settings.index ? (\n {overlay}\n ) : (\n button\n );\n\n return localeKeys.length > 1 ? (\n isSettingsVariant ? (\n renderSettingsVariant()\n ) : (\n overlay} placement={\"bottomLeft\"}>\n {button}\n \n )\n ) : null;\n};\n","import { ComponentProps, FC } from \"react\";\nimport { withRouter, RouteComponentProps } from \"react-router-dom\";\nimport * as _ from \"lodash\";\n\nimport { Button, BugOutlined } from \"@ctra/components\";\n\ntype DebuggerProps = RouteComponentProps &\n ComponentProps & {\n /**\n * Show a bug icon instead of text\n */\n icon?: boolean;\n } & Record;\n\n/**\n * Debugger button which outputs any content to the console.\n * It may be kept in production when the \"#debug\" hash is used in the URL.\n */\nconst Debugger = withRouter>(\n ({ icon, history, match, staticContext, location: { hash }, ...rest }) => {\n /**\n * Filter the Button props\n */\n const props = _.omitBy(rest, (v, k) => _.startsWith(k, \"$\"));\n\n /**\n * Pick the props starting with $,\n * those should be listed as debug\n */\n const debug = _.pickBy(rest, (v, k) => _.startsWith(k, \"$\"));\n\n return hash.includes(\"debug\") ? (\n \n ) : null;\n }\n);\n\nexport default Debugger;\n","import { Component, ErrorInfo } from \"react\";\n\nimport { Result, Button } from \"@ctra/components\";\nimport { withTranslation, WithTranslation, Enterprise } from \"@ctra/i18n\";\nimport { Enterprise as App } from \"@ctra/api\";\n\ninterface State {\n hasError: boolean;\n}\n\n/**\n * Copy-paste error boundary from the react docs\n */\nclass Boundary extends Component {\n state: State;\n\n constructor(props: WithTranslation) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(_error: Error): State {\n return {\n hasError: true\n };\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n /**\n * @todo log to Sentry\n */\n }\n\n render() {\n const { t } = this.props;\n const { title, subtitle, action } = Enterprise.errors.jsError;\n\n if (this.state.hasError) {\n return (\n (title)}\n subTitle={t(subtitle)}\n extra={\n {\n App.store.reset();\n window.location.reload();\n }}\n >\n {t(action)}\n \n }\n />\n );\n }\n\n return this.props.children;\n }\n}\n\nexport const ErrorBoundary = withTranslation()(Boundary);\n","import { useEffect, useMemo, useState, Dispatch, SetStateAction } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Optional } from \"@ctra/utils\";\nimport { getStorageKey } from \"../../../../utils/versioning\";\n\nexport const featureTagKey = `${getStorageKey({ persist: true })}.feature`;\n\nexport type FeatureTagEntry = {\n seen: boolean;\n};\n\n/**\n * Uses a localKey to store a tag to localStorage\n * @param localKey\n * @returns\n */\nexport const useTagStore = (\n localKey: string\n): {\n tag: Optional;\n setTag: Dispatch>>;\n storeTag: (tag: FeatureTagEntry) => void;\n} => {\n const localKeySlug = _.kebabCase(localKey);\n\n const featuresTags: Record = useMemo(\n () => JSON.parse(localStorage.getItem(featureTagKey) as string) || {},\n []\n );\n const [tag, setTag] = useState>(featuresTags[localKeySlug]);\n\n const storeTag = (tag: FeatureTagEntry): void => {\n localStorage.setItem(featureTagKey, JSON.stringify({ ...featuresTags, [localKeySlug]: tag }));\n };\n\n useEffect(() => {\n if (!featuresTags.hasOwnProperty(localKeySlug)) {\n const tag: FeatureTagEntry = { seen: false };\n setTag(tag);\n storeTag(tag);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [featuresTags, localKeySlug]);\n\n return {\n tag,\n setTag,\n storeTag\n };\n};\n","import React, { HTMLAttributes, ReactNode } from \"react\";\n\nimport { classname } from \"@ctra/utils\";\nimport styles from \"./MobileViewModal.module.less\";\n\ninterface MobileViewModalProps extends HTMLAttributes {\n children: ReactNode;\n}\n\n/**\n * Mobile equivalent of desktop modals\n * @note In order to optimise space on mobile screens, we use this fixed container wherever we use a modal on desktop screens.\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @param {string | undefined} className\n * @param {Pick} rest\n * @return {JSX.Element}\n * @constructor\n */\nexport const MobileViewModal = ({ children, className, ...rest }: MobileViewModalProps): JSX.Element => {\n return (\n
          \n {children}\n
          \n );\n};\n","import { FC, createContext, useContext } from \"react\";\nimport ReactDOM from \"react-dom\";\n\ninterface Ctx {\n portal: string;\n}\n\n/**\n * Make a context for passing on the dom element ID for the extra buttons\n */\nexport const PortalContext = createContext({\n /**\n * Element id to use for the DOM node to portal to\n */\n portal: \"portal\"\n});\n\n/**\n * Hook for getting portal container\n * @return {ReturnType}\n */\nexport const usePortal = (): Ctx => useContext(PortalContext);\n\n/**\n * Portals any children to the #game-plan-wizard-portal element\n * @param children\n * @constructor\n */\nconst Portal: FC = ({ children }) => (\n \n {({ portal }) => ReactDOM.createPortal(children, document.getElementById(portal) as Element)}\n \n);\n\nexport default Portal;\n","import { ComponentProps, FC, useEffect, useRef, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\n\nimport { Button, useSpinner } from \"@ctra/components\";\nimport { Auth, Enterprise, EnterpriseAppState, Session, TokenEntity } from \"@ctra/api\";\nimport { classname, isFulfilled, isPending, isProduction, Nullable } from \"@ctra/utils\";\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\n\nimport { useUserPreferences } from \"@base\";\n\nimport styles from \"./SandboxFlipSwitch.module.less\";\n\n/**\n * Hook to handle the sandbox flip switch mechanism\n * @return {readonly [(null | undefined | boolean), (() => void)]}\n */\nexport const useSandboxFlipSwitch = (): readonly [null | undefined | boolean, () => void] => {\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const [clicked, setClicked] = useState(false);\n\n const {\n ui: { loaders }\n } = Content;\n\n const {\n api: { toggle }\n } = useSpinner();\n\n const {\n api: { setUserPreferences },\n meta: { isLoading, isUpdating, delayed },\n preferences: {\n sandbox: { isEnabled }\n }\n } = useUserPreferences();\n\n /**\n * Store the previous value of the sandbox switch\n * @type {React.MutableRefObject}\n */\n const switchRef = useRef>(isEnabled);\n\n /**\n * Get the access token from the store\n */\n const { refresh, accessToken } = useSelector(Enterprise.entities.getToken);\n\n /**\n * Tell if the token has been refreshed\n * @type {boolean}\n */\n const isTokenRefreshed = useSelector((state) =>\n isFulfilled(state, Auth.types.RENEW_TOKEN)\n );\n\n /**\n * Tell if the token is being refreshed\n * @type {boolean}\n */\n const isTokenRefreshing = useSelector((state) =>\n isPending(state, Auth.types.RENEW_TOKEN)\n );\n\n /**\n * Tell if the session has been reset\n * @type {boolean}\n */\n const isSessionReset = useSelector(Enterprise.entities.isSessionReset);\n\n /**\n * Set the sandbox preferences\n */\n const handleSwitchFlip = () => {\n setClicked(true);\n\n setUserPreferences({\n sandbox: {\n isEnabled: !isEnabled\n }\n });\n };\n\n /**\n * Toggle the spinner on the app\n */\n useEffect(() => {\n const switchFlipping = delayed && (isLoading || isUpdating);\n\n toggle(\"sandboxFlipSwitch\", isTokenRefreshing || switchFlipping, {\n size: \"large\",\n tip: switchFlipping\n ? t(loaders.longRequest)\n : isTokenRefreshing\n ? t(loaders.renewToken)\n : void 0\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isTokenRefreshing, isLoading, isUpdating, delayed]);\n\n /**\n * Refresh the token if the switch has been flipped\n */\n useEffect(\n () => {\n if (_.isBoolean(switchRef.current) && switchRef.current !== isEnabled) {\n dispatch(Auth.actions.renewToken.start(accessToken, refresh, null));\n }\n\n /**\n * Before/while fetching the user prefs, ths value is set to null.\n * With this we enable the switch.\n * @type {null | undefined | boolean}\n */\n switchRef.current = isEnabled;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isEnabled, switchRef.current]\n );\n\n /**\n * Reset the session if the token has been refreshed\n */\n useEffect(() => {\n if (clicked && isTokenRefreshed) {\n dispatch(Session.actions.reset());\n setClicked(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isTokenRefreshed]);\n\n /**\n * In production, reload the app with a new subdomain\n */\n useEffect(() => {\n if (isSessionReset && window) {\n toggle(\"reload\", true, {\n size: \"large\",\n tip: t(loaders.reload)\n });\n\n if (isProduction()) {\n window.location.assign(`https://${isEnabled ? \"demo.\" : \"\"}app.connecterra.ai`);\n } else {\n window.location.reload();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isSessionReset]);\n\n return [isEnabled, handleSwitchFlip] as const;\n};\n\n/**\n * Sandbox flip switch button\n * @param {boolean | undefined} asLink\n * @param {Omit & {asLink?: boolean})>, \"asLink\">} props\n * @returns {JSX.Element}\n * @constructor\n */\nexport const SandboxFlipSwitch: FC & { asLink?: boolean }> = ({\n asLink,\n ...props\n}) => {\n const { t } = useTranslation();\n const [sandboxEnabled, handleSwitchFlip] = useSandboxFlipSwitch();\n\n const {\n navigation: {\n demo: { on, off }\n }\n } = Content;\n\n const textOn = t(on);\n const textOff = t(off);\n\n return asLink ? (\n \n {sandboxEnabled ? textOff : textOn}\n \n ) : (\n \n {sandboxEnabled ? textOff : textOn}\n \n );\n};\n","import { FC, useEffect } from \"react\";\nimport { Formik } from \"formik\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { Form, Input, Button, Space, MailOutlined, message } from \"@ctra/components\";\nimport { useTranslation, Enterprise as Content } from \"@ctra/i18n\";\nimport { EnterpriseAppState, Invitation, ReferralFormValues } from \"@ctra/api\";\nimport { isFulfilled, isPending, isRejected } from \"@ctra/utils\";\nimport { GACategories } from \"@network\";\n\nconst {\n overview: {\n inviteFarm: { label, submit }\n }\n} = Content;\n\n/**\n * Invite farm form\n * @returns {JSX.Element}\n * @constructor\n */\nexport const InviteFarmForm: FC = () => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n\n /**\n * Tell if the invitation has been sent\n * @type {boolean}\n */\n const isInvitationSent = useSelector((state) =>\n isFulfilled(state, Invitation.types.CREATE_INVITATION)\n );\n\n /**\n * Tell if the invitation has failed\n * @type {boolean}\n */\n const isInvitationFailed = useSelector((state) =>\n isRejected(state, Invitation.types.CREATE_INVITATION)\n );\n\n /**\n * Tell if the invitation is loading\n * @type {boolean}\n */\n const isLoading = useSelector((state) =>\n isPending(state, Invitation.types.CREATE_INVITATION)\n );\n\n useEffect(() => {\n if (isInvitationSent) {\n message.success(t(Content.overview.inviteFarm.success));\n }\n\n if (isInvitationFailed) {\n message.error(t(Content.overview.inviteFarm.error));\n }\n }, [isInvitationSent, isInvitationFailed]);\n\n return (\n >\n initialValues={{\n email: \"\"\n }}\n onSubmit={({ email }, { setSubmitting, resetForm }) => {\n dispatch(Invitation.actions.requestFarmAccess.start(email));\n resetForm();\n\n setSubmitting(false);\n }}\n >\n {({ isSubmitting }) => (\n
          \n \n \n }\n placeholder={t(label)}\n required\n disabled={isSubmitting || isLoading}\n type=\"text\"\n name=\"email\"\n />\n \n {t(submit)}\n \n \n \n
          \n )}\n \n );\n};\n","import { FC } from \"react\";\nimport * as _ from \"lodash\";\n\nimport {\n Typography,\n CtraLayout,\n Row,\n Col,\n useCalendlyAppointment,\n Skeleton,\n Button,\n Alert,\n Grid\n} from \"@ctra/components\";\n\nimport { parseLocoTemplate, useTranslation, Enterprise as Content } from \"@ctra/i18n\";\nimport { CookieKeys, Cookies, TS } from \"@ctra/utils\";\n\nimport { useCurrentUser } from \"@auth\";\n\nimport { GACategories } from \"../../analytics\";\nimport { redirectURL } from \"../../../../utils/url\";\nimport { InviteFarmForm } from \"../InviteFarmForm/\";\nimport { useAccount } from \"../../providers\";\nimport styles from \"./NoFarmsWidget.module.less\";\nimport { SandboxFlipSwitch } from \"../SandboxFlipSwitch\";\n\nconst { ContentWrapper } = CtraLayout;\nconst { Title, Paragraph, Link } = Typography;\n\nconst {\n overview: { noFarms }\n} = Content;\n\n/**\n * No farms widget\n * @return {JSX.Element}\n * @constructor\n */\nexport const NoFarmsWidget: FC = () => {\n const { t } = useTranslation();\n const { md } = Grid.useBreakpoint();\n\n const {\n progress,\n meta: { isLoading: isAccountLoading }\n } = useAccount();\n\n const {\n event,\n meta: { isLoading: isAppointmentLoading }\n } = useCalendlyAppointment();\n\n const {\n role,\n meta: { isLoading: isUserLoading },\n user: { firstName }\n } = useCurrentUser();\n\n const [currentStep] = _.defaultTo(\n _.find(progress, ([, completed]) => !completed),\n [\"appointment\", true]\n );\n\n /**\n * Parse farmer text content\n * @type {Array}\n */\n const farmerContent = _.defaultTo(\n parseLocoTemplate(\n t(noFarms.farmer.content, {\n step: currentStep,\n dateTime: event\n ? TS.asMoment(event.start_time, {\n parseZone: true\n })\n .local()\n .format(\"LLL\")\n : null\n }),\n { trim: true, passthrough: true }\n ),\n []\n );\n\n /**\n * Success content for farmer\n */\n const successContent = event\n ? t(noFarms.farmer.event, { dateTime: TS.asMoment(event.start_time).local().format(\"LLL\") })\n : null;\n\n /**\n * Layout for farmer role\n * @type {JSX.Element | null}\n */\n const farmerLayout =\n role === \"Farmer\" ? (\n \n \n {t<string>(noFarms.title, { firstName, role })}\n \n \n {successContent ? (\n \n ) : null}\n {_.map(farmerContent, (p, idx) => (\n {p}\n ))}\n {event ? null : (\n {\n Cookies.set(CookieKeys.referrer, \"platform\");\n window.open(redirectURL, \"_self\");\n }}\n >\n {t(noFarms.farmer.cta, { step: currentStep })}\n \n )}\n \n \n ) : null;\n\n /**\n * Parse advisor text content\n * @type {Array}\n */\n const advisorContent = _.defaultTo(\n parseLocoTemplate(t(noFarms.advisor.content), { trim: true, passthrough: true }),\n []\n );\n\n /**\n * Layout for advisor role\n * @type {JSX.Element | null}\n */\n const advisorLayout = [\"Other\", \"Advisor\"].includes(role) ? (\n \n \n {t<string>(noFarms.title, { firstName, role })}\n {_.map(advisorContent, (p, idx) => (\n {p}\n ))}\n \n \n {t(noFarms.advisor.ctaPlainText)}{\" \"}\n {\n Cookies.set(CookieKeys.referrer, \"platform\");\n }}\n href={redirectURL}\n >\n {t(noFarms.advisor.ctaHyperlink)}\n \n \n \n \n ) : null;\n\n /**\n * Parse explorer text content\n * @type {Array}\n */\n const explorerContent = _.defaultTo(\n parseLocoTemplate(t(noFarms.explorer.content), { trim: true, passthrough: true }),\n []\n );\n\n /**\n * Layout for explorer role\n * @type {JSX.Element | null}\n */\n const explorerLayout =\n role === \"Explorer\" ? (\n \n \n {t<string>(noFarms.title, { firstName, role })}\n {_.map(explorerContent, (p, idx) => (\n {p}\n ))}\n \n \n \n \n {t(noFarms.explorer.ctaPlainText)}{\" \"}\n {\n Cookies.set(CookieKeys.referrer, \"platform\");\n }}\n href={redirectURL}\n >\n {t(noFarms.explorer.ctaHyperlink)}\n \n \n \n \n ) : null;\n\n return (\n \n \n {md && (\n \n {t(noFarms.sider, { role })}\n \n )}\n \n \n {farmerLayout || advisorLayout || explorerLayout}\n \n \n \n \n );\n};\n","import { FC, useEffect, useState } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { useTranslation, Enterprise as Content } from \"@ctra/i18n\";\nimport { Typography, Button, Space, Grid } from \"@ctra/components\";\nimport { CookieKeys, Cookies, Nullable } from \"@ctra/utils\";\n\nimport styles from \"./CookieConsent.module.less\";\n\nconst { Title, Paragraph, Link } = Typography;\n\n/**\n * Get cookie consent\n * @returns {string}\n */\nconst getConsent = (): Nullable => {\n let inCookie = Cookies.get(CookieKeys.cookieConsent);\n const inLocalStorage = localStorage.getItem(CookieKeys.cookieConsent);\n\n if (window.CTRA_MOBILE_WRAPPER) {\n const cookie = document.cookie.match(\n new RegExp(`(^|;)\\\\s*${CookieKeys.cookieConsent}\\\\s*=\\\\s*([^;]+)`, \"gi\")\n );\n\n inCookie = cookie ? cookie.pop() : void 0;\n }\n\n return _.defaultTo(inCookie, inLocalStorage);\n};\n\n/**\n * Set cookie consent\n * @param {string} consent\n */\nconst setConsent = (consent: string) => {\n const expireTime = new Date(Date.now() + 1000 * 60 * 60 * 24 * 365).toUTCString();\n\n localStorage.setItem(CookieKeys.cookieConsent, consent);\n\n if (window.CTRA_MOBILE_WRAPPER) {\n document.cookie = `${CookieKeys.cookieConsent}=${consent}; path=/; expires=${expireTime}`;\n } else {\n Cookies.set(CookieKeys.cookieConsent, consent);\n }\n};\n\n/**\n * Cookie consent component\n * @return {null | JSX.Element}\n * @constructor\n */\nexport const CookieConsent: FC = () => {\n const { t } = useTranslation();\n const [hasConsent, setHasConsent] = useState>(getConsent());\n const { md } = Grid.useBreakpoint();\n\n const {\n ui: { cookies }\n } = Content;\n\n /**\n * Set cookie consent state\n */\n useEffect(() => {\n const consent = getConsent();\n\n setHasConsent(consent);\n }, []);\n\n return _.isString(hasConsent) ? null : (\n
          \n {t<string>(cookies.title)}\n \n {t(cookies.text)}{\" \"}\n \n {t(cookies.link)}\n \n \n \n {\n setConsent(\"optional\");\n setHasConsent(\"optional\");\n window.location.reload();\n }}\n >\n {t(cookies.accept, { variant: \"optional\" })}\n \n {\n setConsent(\"mandatory\");\n setHasConsent(\"mandatory\");\n }}\n >\n {t(cookies.accept, { variant: \"mandatory\" })}\n \n \n
          \n );\n};\n","import { makeTestIds } from \"@ctra/utils\";\n\n/**\n * Make test ids for react\n */\nexport const testIds = makeTestIds(\"base\", {\n featureTag: {\n wrapper: \"wrapper\"\n }\n});\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Bar\":\"Bar--3N-Ns\",\"Light\":\"Light--2Polj\",\"Dark\":\"Dark--3nyDF\",\"Neon\":\"Neon--aVzGG\",\"LightGray\":\"LightGray--2dw6Q\",\"DarkGray\":\"DarkGray--2x2Wl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Wrapper\":\"Wrapper--2epMm\",\"Icon\":\"Icon--2KiNp\",\"Description\":\"Description--3wn5_\",\"Extra\":\"Extra--Y21IA\",\"FromNow\":\"FromNow--3kfIz\",\"EventOriginContainer\":\"EventOriginContainer--2DJoq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Wrapper\":\"Wrapper--135nx\",\"ChartWrapper\":\"ChartWrapper--rTt-d\",\"Top\":\"Top--1FyDA\",\"Bottom\":\"Bottom--1WvoR\",\"Left\":\"Left--21Pai\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Padded\":\"Padded--2RXN0\",\"Bordered\":\"Bordered--87cIL\",\"HeaderWrapper\":\"HeaderWrapper--1Ynp4\"};","export enum GACategories {}\n\nexport enum GAActions {\n selectFarm = \"Select farm\"\n}\n\nexport enum GALabels {\n allFarms = \"All farms\"\n}\n","import { useState, useEffect, createContext, useContext, FC } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { useLocation } from \"react-router-dom\";\nimport * as _ from \"lodash\";\n\nimport { Enterprise, EnterpriseAppState, FarmEntity, FarmList, PensList, HerdGroupList } from \"@ctra/api\";\nimport { Nullable } from \"@ctra/utils\";\n\nimport { getStorageKey } from \"../../../../utils/versioning\";\n\ninterface ContextType {\n farm: Nullable;\n pens: PensList;\n herdGroups: HerdGroupList;\n setFarmContext: (farmID: Nullable) => void;\n}\n\n/**\n * farm context session key\n */\nexport const sessionKey = `${getStorageKey({ persist: true })}.farmContext`;\n\n/**\n * Default farm context\n */\nexport const DefaultFarmContext = createContext({\n farm: null,\n pens: {},\n herdGroups: {},\n setFarmContext: _.noop\n});\n\n/**\n * Custom farm context provider which sets the farm context based on the selected farm.\n * For persistence, it uses session storage and clears the key when a user logs out/closes the tab.\n * @note Due to the fact that some pages in the app uses farmID as a query param for their business logic,\n * external URLS will make use of farmContext as their query param which will then be deleted once the farm context\n * has been set. This helps us avoid a conflict in query param names.\n * @param local\n * @param defaultFarmID\n * @param children\n * @constructor\n */\nconst FarmContextProvider: FC<{ local?: boolean; farmID?: FarmEntity[\"id\"] }> = ({\n local,\n farmID: defaultFarmID,\n children\n}) => {\n const { pathname, search } = useLocation();\n const searchParams = new URLSearchParams(search);\n const farmContextSearchParam = searchParams.get(\"farmContext\");\n\n /**\n * Fetch the initial farmID from the url farmContext param or the session storage\n */\n const [farmID, setFarmID] = useState>(\n defaultFarmID || farmContextSearchParam || JSON.parse(sessionStorage.getItem(sessionKey) as string)\n );\n\n /**\n * Get the farm list\n */\n const farmList = useSelector((state) =>\n Enterprise.entities.getFarmList(state)\n );\n\n /**\n * Get the pen list from the store\n * @type {PensList}\n */\n const pens = useSelector((state) =>\n farmID ? Enterprise.entities.getPens(state, { farmID }) : {}\n );\n\n /**\n * Get the herd group list from the store\n * @type {HerdGroupList}\n */\n const herdGroups = useSelector((state) =>\n farmID ? Enterprise.entities.getHerdGroups(state, { farmID }) : {}\n );\n\n useEffect(() => {\n if (defaultFarmID !== farmID) {\n setFarmID(defaultFarmID);\n }\n // eslint-disable-next-line\n }, [defaultFarmID]);\n\n useEffect(() => {\n /**\n * Set the farm context and delete the farmContext from the URL param\n * when the farmContextSearchParam changes\n */\n setFarmContext(farmID);\n searchParams.delete(\"farmContext\");\n\n Enterprise.history.push({ pathname, search: searchParams.toString() });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [farmContextSearchParam]);\n\n useEffect(() => {\n return () => {\n if (!local) {\n sessionStorage.removeItem(sessionKey);\n }\n\n /**\n * Remove the selected farm object from session storage when the user logs out\n */\n setFarmID(null);\n };\n }, [local]);\n\n useEffect(() => {\n const farmIDs = _.keys(farmList) as unknown as Array;\n\n /**\n * If the user has only one farm,\n * go ahead and set it in the context\n */\n if (_.eq(farmIDs.length, 1)) {\n setFarmContext(Number(_.first(farmIDs)));\n }\n // eslint-disable-next-line\n }, [farmList]);\n\n /**\n * Save selected farm object to session storage and set the context value\n * @param farmID\n */\n const setFarmContext = (farmID: Nullable) => {\n /**\n * This ensures that we do not lose farm data on browser page refresh\n */\n if (!local) {\n sessionStorage.setItem(sessionKey, JSON.stringify(farmID));\n }\n\n setFarmID(farmID);\n };\n\n /**\n * Find the farm in the store\n * @todo check what happens if the farm list is not yet loaded\n */\n const farm = farmID ? farmList[farmID] : null;\n\n return (\n \n {children}\n \n );\n};\n\nexport const FarmContext = {\n Provider: FarmContextProvider,\n Consumer: DefaultFarmContext.Consumer\n};\n\n/**\n * Hook for farm context\n * @returns {void}\n */\nexport const useFarm = (): ContextType => useContext(DefaultFarmContext);\n","import { createContext, FC, useContext, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\nimport { useDeepCompareEffect } from \"use-deep-compare\";\n\nimport { Enterprise, EnterpriseAppState, FarmList, Farms, FarmStatus } from \"@ctra/api\";\nimport { isDispatched, isPending } from \"@ctra/utils\";\n\ninterface ContextType {\n farmList: FarmList;\n isLoading: boolean;\n}\n\nconst DefaultContext = createContext({\n farmList: {},\n isLoading: true\n});\n\n/**\n * Provider for farm list\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @return {JSX.Element}\n */\nconst _FarmListContextProvider: FC = ({ children }) => {\n const dispatch = useDispatch();\n\n /**\n * Get the farm list from the store\n */\n const farmList = useSelector((state) => {\n return _.filter(Enterprise.entities.getFarmList(state), ({ status }) => status !== FarmStatus.Created);\n });\n\n /**\n * Tell whether the action has been dispatched (aka found in async state)\n */\n const dispatched = useSelector((state) =>\n isDispatched(state, Farms.types.FETCH_FARM_LIST)\n );\n\n /**\n * Tell if the farm list is being fetched\n * @type {boolean}\n */\n const isLoading = useSelector((state) =>\n isPending(state, Farms.types.FETCH_FARM_LIST)\n );\n\n useEffect(() => {\n if (!dispatched) {\n dispatch(Farms.actions.fetchFarmList.start(\"enterprise\"));\n }\n }, [dispatch, dispatched]);\n\n useDeepCompareEffect(() => {\n /**\n * Reload farm list after a change to the farm list\n * e.g a farm is added after an invite is accepted\n */\n Enterprise.persistor.flush();\n }, [farmList]);\n\n return {children};\n};\n\n/**\n * @type {{Consumer: React.ExoticComponent>, Provider: React.FunctionComponent<{}>}}\n */\nexport const FarmListContext = {\n Provider: _FarmListContextProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Make a hook for it\n * @return {ContextType}\n */\nexport const useFarmList: () => ContextType = () => useContext(DefaultContext);\n","import { makeTestIds } from \"@ctra/utils\";\n\n/**\n * Make test ids for farm module components\n */\nexport const testIds = makeTestIds(\"farms\", {\n details: {\n farmName: \"farmName\",\n address: \"address\"\n },\n selector: {\n title: {\n farmName: \"farmName\",\n allFarms: \"allFarms\"\n }\n }\n});\n","import { FC, useState } from \"react\";\n\nimport {\n CtraLayout,\n Typography,\n EnvironmentOutlined,\n Collapse,\n DownOutlined,\n UpOutlined\n} from \"@ctra/components\";\n\nimport { Enterprise, useTranslation } from \"@ctra/i18n\";\n\nimport { useFarm } from \"../../providers\";\nimport { testIds } from \"../testing\";\nimport styles from \"./FarmDetails.module.less\";\n\nconst { Paragraph, Title } = Typography;\nconst { Panel } = Collapse;\nconst { AsyncLayout } = CtraLayout;\n\n/**\n * Farm \"business card\" for md and lg screens\n * @constructor\n */\nexport const FarmDetails: FC = () => {\n const [collapsed, setCollapsed] = useState(false);\n const { farm } = useFarm();\n const { t } = useTranslation();\n\n const {\n layouts: {\n dashboard: { farmDetails }\n }\n } = Enterprise;\n\n return (\n \n {\n /* istanbul ignore next */\n return collapsed ? : ;\n }}\n expandIconPosition=\"end\"\n onChange={() => {\n /* istanbul ignore next */\n setCollapsed(!collapsed);\n }}\n ghost\n >\n \n \n {t(farmDetails.title, { name: farm ? farm.name : null })}\n \n }\n >\n {farm && (\n \n {farm.address && farm.city ? `${farm.address}, ${farm.city}` : farm.address || farm.city}\n {farm.postCode && (\n <>\n
          \n {farm.postCode}\n \n )}\n {farm.country && (\n <>\n
          \n {farm.country}\n \n )}\n
          \n )}\n \n \n
          \n );\n};\n","import { FC } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Button, Icon, Barn, AntDesignSelect, AntDesignInput, Grid } from \"@ctra/components\";\nimport { Enterprise, useTranslation } from \"@ctra/i18n\";\nimport { useGoogleAnalytics } from \"@ctra/analytics\";\nimport { FarmEntity } from \"@ctra/api\";\nimport { Nullable } from \"@ctra/utils\";\n\nimport { useFarm, useFarmList } from \"../../providers\";\nimport { GAActions, GALabels } from \"../../analytics\";\n\nimport styles from \"./FarmSelector.module.less\";\nimport { useRouteMatch } from \"react-router-dom\";\nimport { Routes } from \"@routes\";\n\nconst { Group } = AntDesignInput;\nconst { useBreakpoint } = Grid;\n\n/**\n * Farm selector component for navigation bar in header\n * @return {JSX.Element}\n * @constructor\n */\nexport const FarmSelector: FC = ({ children }) => {\n const { farm, setFarmContext } = useFarm();\n const { t } = useTranslation();\n const { trackEvent } = useGoogleAnalytics();\n const { farmList, isLoading } = useFarmList();\n const { md, lg } = useBreakpoint();\n const analyticsDashboardContext = useRouteMatch(`${Routes.app.analytics.dashboard.index}/*`);\n\n return (\n \n {lg && (\n }\n disabled\n />\n )}\n (option?.label ?? \"\").toLowerCase().includes(input.toLowerCase())}\n options={[\n { label: t(Enterprise.navigation.main.allFarms), value: null },\n ..._.map(farmList, ({ name, id }) => ({ label: name, value: id }))\n ]}\n onSelect={(farmID: Nullable) => {\n setFarmContext(farmID);\n\n if (farmID) {\n const farm = farmList[farmID];\n\n if (farm) {\n trackEvent(GAActions.selectFarm, { label: _.defaultTo(farm.name, void 0) });\n } else {\n console.error(`Farm with ID ${farmID} not found`);\n }\n } else {\n trackEvent(GAActions.selectFarm, { label: GALabels.allFarms });\n }\n }}\n />\n {children}\n \n );\n};\n","import { FC } from \"react\";\n\nimport { Barn, Icon, Spin, Tag, Typography } from \"@ctra/components\";\nimport { useFarmList } from \"@farms\";\n\nimport styles from \"./FarmTag.module.less\";\n\nconst { Text } = Typography;\n\n/**\n * Farm tag\n * @param id\n * @return {JSX.Element}\n * @constructor\n */\nexport const FarmTag: FC<{ id: number }> = ({ id }) => {\n const { farmList, isLoading } = useFarmList();\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const farm = farmList[id!];\n\n return isLoading ? (\n \n ) : (\n \n \n {farm.name}\n \n \n );\n};\n","export const base = {\n _root: \"/app\"\n};\n\nexport const pbl = {\n _root: \"/public\",\n chart: {\n _root: \"/chart/:shortID\"\n }\n};\n","import { version } from \"../../package.json\";\nimport { Nullable } from \"@ctra/utils\";\n\n/**\n * Get the version from the package.json\n * @return {number}\n */\nexport const getVersion = (): number => {\n return parseFloat(version.replace(/\\./g, \"\"));\n};\n\n/**\n * Get the storage key prefix\n * @param {boolean} persist\n * @return {`persist:ctra.enterprise.v${number}` | `ctra.enterprise.v${number}`}\n */\nexport const getStorageKey = ({ persist }: { persist: boolean } = { persist: false }): string => {\n return `${persist ? \"persist:\" : \"\"}ctra.enterprise.v${getVersion()}`;\n};\n\n/**\n * Check if the key matches the current version\n * @param {Nullable} key\n * @return {key is string}\n */\nconst _matches = (key: Nullable): key is string => {\n const matchesEnterprise = key && key.match(/^ctra\\.enterprise/);\n const matchesVersion = key && key.match(new RegExp(getVersion().toString(), \"gi\"));\n\n return !!matchesEnterprise && !matchesVersion;\n};\n\n/**\n * Purge the storage\n */\nexport const purgeStaleData: () => void = () => {\n for (let i = 0; i < sessionStorage.length; i++) {\n const key = sessionStorage.key(i);\n\n if (_matches(key)) {\n sessionStorage.removeItem(key);\n }\n }\n\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n\n if (_matches(key)) {\n localStorage.removeItem(key);\n }\n }\n};\n","import { isLocal, isProduction, isBlueGreen } from \"@ctra/utils\";\n\n/**\n * Redirect URL for the signup app\n * @type {string}\n */\nexport const redirectURL = isLocal()\n ? \"http://localhost:3001\"\n : isBlueGreen()\n ? \"https://signup.deploy-app.connecterra.ai\"\n : `https://signup.${isProduction() ? \"\" : \"staging-\"}app.connecterra.ai`;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Empty\":\"Empty--wJbB9\",\"Header\":\"Header--17XCB\",\"Content\":\"Content--3WArt\",\"Icon\":\"Icon--3M7_0\",\"IconBackground\":\"IconBackground--2XAiM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Chart\":\"Chart--1u7Qx\",\"Mini\":\"Mini--2xKAe\",\"Header\":\"Header--1i-eL\",\"Standalone\":\"Standalone--15w9J\",\"V2\":\"V2--3LCjk\",\"Filter\":\"Filter--3w4V2\",\"Content\":\"Content--1mnIq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Wrapper\":\"Wrapper--IkycQ\",\"Header\":\"Header--nKEu7\",\"Content\":\"Content--3daid\",\"ChildrenWrapper\":\"ChildrenWrapper--gtSxF\",\"Branding\":\"Branding--2_J7Q\",\"Footer\":\"Footer--lJrd6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Text\":\"Text--1Bfhg\",\"Bars\":\"Bars--2WZSI\",\"Wrapper\":\"Wrapper--2Gbkd\",\"MetricWrapper\":\"MetricWrapper--OPfe0\",\"KpiCell\":\"KpiCell--1AtH7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ChartPicker\":\"ChartPicker--3f-sL\",\"MetricPicker\":\"MetricPicker--2oLrq\",\"Collapse\":\"Collapse--2KBYA\",\"Header\":\"Header--2bxzr\",\"MiniContainer\":\"MiniContainer--1XWQp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"PageWrapper\":\"PageWrapper--1TLsQ\",\"RangePicker\":\"RangePicker--OPsu1\",\"Title\":\"Title--3FJYk\",\"Table\":\"Table--1tB6S\",\"TableEntry\":\"TableEntry--1swt_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Wrapper\":\"Wrapper--3f479\",\"Chat\":\"Chat--38J8Z\",\"Collapse\":\"Collapse--2tsKE\",\"ChatUnselected\":\"ChatUnselected--A2cLQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Base\":\"Base--6aiuU\",\"Settings\":\"Settings--yMy5B\",\"Dashboard\":\"Dashboard--1IGUA\",\"Auth\":\"Auth--25Elv\",\"Group\":\"Group--1m42T\",\"DashboardGroup\":\"DashboardGroup--1ufGL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Wrapper\":\"Wrapper--10wNk\",\"Popover\":\"Popover--RGDGn\",\"CloseIcon\":\"CloseIcon--1GSvi\",\"Dot\":\"Dot--2VBh1\",\"Tag\":\"Tag--22lHN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Container\":\"Container--2UZqo\",\"Disabled\":\"Disabled--2bIMT\",\"Numbers\":\"Numbers--2JQau\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Badge\":\"Badge--bqQjC\",\"Icon\":\"Icon--2Ow9L\",\"Count\":\"Count--3x8pu\",\"Text\":\"Text--3R8wz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"EventEntry\":\"EventEntry--1ot6k\",\"NoDescription\":\"NoDescription--1Djvy\",\"Small\":\"Small--3_h1x\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Space\":\"Space--ajtF3\",\"Icon\":\"Icon--2vtHL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ChartCard\":\"ChartCard--2hiWo\",\"Title\":\"Title--3awW2\",\"Metric\":\"Metric--2MIDP\",\"Expand\":\"Expand--1lyyc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Hidden\":\"Hidden--UlfbE\",\"Icon\":\"Icon--39jN-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"LoginForm\":\"LoginForm--2VBza\",\"Extra\":\"Extra--21CC0\",\"Flat\":\"Flat--2GKvZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ForgotPasswordForm\":\"ForgotPasswordForm--3i2Xg\",\"Extra\":\"Extra--Yfaat\",\"Flat\":\"Flat--1ctKe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"TimelineItem\":\"TimelineItem--2Rrqz\",\"Highlighted\":\"Highlighted--2SvLx\",\"Date\":\"Date--z--FM\",\"Clickable\":\"Clickable--1E6Fp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Space\":\"Space--1LUpu\",\"Icon\":\"Icon--PEQZS\",\"Tag\":\"Tag--3RFPX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Icon\":\"Icon--2rpIK\",\"Item\":\"Item--_t2Wg\",\"Tag\":\"Tag--3iyfM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Wrapper\":\"Wrapper--1bC8v\",\"ViewFilter\":\"ViewFilter--3_kBA\",\"Popover\":\"Popover--3Cegg\",\"Close\":\"Close--2_umt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"PageWrapper\":\"PageWrapper--1d8bS\",\"Label\":\"Label--13ewI\",\"Free\":\"Free--3c3vC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ListWrapper\":\"ListWrapper--1y2lw\",\"Pagination\":\"Pagination--ysiOv\",\"Hide\":\"Hide--kW_od\",\"All\":\"All--Dheig\",\"Header\":\"Header--1PPL4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Wrapper\":\"Wrapper--207ew\",\"Tabs\":\"Tabs--2O-fQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Wrapper\":\"Wrapper--2tp27\",\"Sider\":\"Sider--2hPl_\",\"HugeText\":\"HugeText--1T0oI\",\"Content\":\"Content--2y0Ts\",\"Alert\":\"Alert--3uNk1\"};","/* eslint-disable react-hooks/exhaustive-deps */\nimport * as _ from \"lodash\";\nimport { useLocation } from \"react-router-dom\";\nimport { createContext, FC, useContext, useEffect, useState } from \"react\";\n\nimport { isProduction } from \"@ctra/utils\";\nimport { Grid } from \"@ctra/components\";\nimport { makeTrackEvent } from \"@ctra/analytics\";\nimport { UserEntity } from \"@ctra/api\";\n\nimport { Routes } from \"@routes\";\nimport { useCurrentUser } from \"@auth\";\n\nimport { GAActions, GACategories } from \"../../../analytics\";\nimport { useLocalization } from \"../../../providers\";\n\ntype IntercomType = (\n action: string,\n options?: string | Record | (() => void),\n meta?: Record\n) => void;\n\ndeclare global {\n interface Window {\n Intercom: IntercomType;\n }\n}\n\n/**\n * @type {string}\n */\nexport const intercomLauncherClassName = \"ctra-enterprise-intercom\";\n\ninterface ContextType {\n /**\n * Intercom entity\n */\n entity: IntercomType;\n /**\n * Chat open or not\n */\n isChatOpen: boolean;\n /**\n * Count of unread messages\n */\n unreadCount: number;\n}\n\n/**\n * Make a default context for intercom state\n */\nconst DefaultContext = createContext({\n entity: () => void 0,\n isChatOpen: false,\n unreadCount: 0\n});\n\ninterface ProviderProps extends Partial {\n /**\n * default launcher visibilty\n */\n hideLauncher?: boolean;\n}\n\n/**\n * Intercom setup\n * @param username\n * @param hideLauncher\n */\nexport const _IntercomProvider: FC = ({ hideLauncher = true, children, ...props }) => {\n const { Intercom } = window;\n const [isChatOpen, setIsChatOpen] = useState(false);\n const [unreadCount, setUnreadCount] = useState(0);\n const { md } = Grid.useBreakpoint();\n const trackEvent = makeTrackEvent(GACategories.help);\n const { pathname } = useLocation();\n const { locale } = useLocalization();\n\n const {\n user: { firstName, lastName, email, userGroups }\n } = useCurrentUser();\n\n const { username } = props;\n\n /**\n * Launch event handler and cleanup\n */\n useEffect(() => {\n Intercom(\"boot\", {\n app_id: isProduction() ? \"pysg6fpw\" : \"bqmw0vq4\",\n user_id: username,\n hide_default_launcher: hideLauncher,\n language_override: _.first(locale.split(\"-\")),\n custom_launcher_selector: `.${intercomLauncherClassName}`,\n user_group: userGroups && userGroups.length ? _.map(userGroups, \"name\").join(\", \") : null,\n user_type: \"Enterprise\",\n first_name: firstName,\n last_name: lastName,\n name: _.trim(`${firstName} ${lastName}`),\n email\n });\n\n return function cleanup() {\n Intercom(\"shutdown\");\n };\n }, [Intercom, hideLauncher, username, firstName, lastName, email]);\n\n /**\n * Other interaction based event handlers\n */\n useEffect(() => {\n Intercom(\"onShow\", () => {\n /* istanbul ignore next */\n trackEvent(GAActions.openChat);\n setIsChatOpen(true);\n });\n\n Intercom(\"onHide\", () => {\n /* istanbul ignore next */\n trackEvent(GAActions.closeChat);\n setIsChatOpen(false);\n });\n\n // @ts-ignore - intercom issue, does not recognise the count\n Intercom(\"onUnreadCountChange\", (count) => {\n setUnreadCount(count);\n });\n }, [Intercom]);\n\n /**\n * Update language\n */\n useEffect(() => {\n Intercom(\"update\", {\n language_override: _.first(locale.split(\"-\"))\n });\n }, [locale]);\n\n useEffect(() => {\n /**\n * Routes we are interested in tracking\n */\n const routes: Array = [\n Routes.app.insights.index,\n Routes.app.analytics.index,\n Routes.app.analytics.compareCharts.index\n ];\n\n const map: Record = {\n [Routes.app.insights.index]: \"Initiate Insights feature\",\n [Routes.app.analytics.index]: \"Initiate Analytics feature\",\n [Routes.app.analytics.compareCharts.index]: \"Initiate Compare Charts feature\"\n };\n\n if (!md && _.includes(routes, pathname)) {\n Intercom(\"trackEvent\", map[pathname]);\n }\n }, [md, pathname]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const IntercomContext = {\n Provider: _IntercomProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Make a hook to access the context in FCs\n */\nexport const useIntercom = (): ContextType => useContext(DefaultContext);\n","export const auth = {\n _root: \"/auth\",\n login: \"/login\",\n forgotPassword: \"/forgot-password\",\n resetPassword: \"/reset-password\",\n acceptInvite: \"/invitation\",\n welcome: \"/welcome\",\n websiteSignup: \"/website-signup\",\n signup: \"/signup\"\n};\n","import enUS from \"antd/es/locale/en_US\";\nimport esES from \"antd/es/locale/es_ES\";\nimport nlNL from \"antd/es/locale/nl_NL\";\n\n// @todo find the proper way to export Input.Group and other ant design defaults as they may not be covered in \"formik-antd\"\nexport {\n Input as AntDesignInput,\n Select as AntDesignSelect,\n DatePicker as AntDesignDatePicker,\n Checkbox as AntDesignCheckbox,\n Radio as AntDesignRadio,\n Slider as AntDesignSlider,\n Typography as AntDesignTypography,\n Button as AntDesignButton,\n Form as AntDesignForm\n} from \"antd\";\n\nexport * from \"antd\";\n\nexport {\n Form,\n Input,\n DatePicker,\n AutoComplete,\n Select,\n InputNumber,\n Slider,\n Checkbox,\n Radio\n} from \"formik-antd\";\n\nexport { Fab as TinyFab, Action as TinyFabAction } from \"react-tiny-fab-ak\";\nexport * from \"@ant-design/icons\";\nexport * from \"antd/lib/table\";\nexport * from \"react-dnd\";\nexport * from \"react-dnd-html5-backend\";\n\nexport * from \"./elements\";\nexport { Typography, Button, Digits } from \"./elements\";\nexport * from \"./modules\";\nexport * from \"./context\";\n\n/**\n * Re-export custom icons with the same name as ant icons\n */\nexport {\n UserOutlined,\n ExportOutlined,\n LineChartOutlined,\n SettingOutlined,\n CompassOutlined,\n NotificationOutlined,\n UnlockOutlined,\n AppstoreOutlined,\n ClockCircleOutlined,\n GiftOutlined,\n MailOutlined,\n PhoneOutlined,\n BarChartOutlined,\n CheckSquareOutlined,\n ProfileOutlined\n} from \"./elements\";\n\nexport { enUS, esES, nlNL };\n","export const farms = {\n _root: \"/farms\",\n farm: {\n _root: \"/:farmID\"\n }\n};\n","export const analytics = {\n _root: \"/analytics\",\n section: {\n _root: \"/:sectionSlug\",\n subsection: \"/:subsectionSlug\"\n },\n compareCharts: {\n _root: \"/compare-charts\"\n },\n dashboard: {\n _root: \"/:dashboard\",\n addChart: {\n _root: \"/addChart\",\n metric: \"/:metricID\"\n },\n editChart: {\n _root: \"/editChart\",\n chart: \"/:chartID\"\n },\n browse: {\n _root: \"/browse\",\n chart: \"/:chartID\"\n }\n }\n};\n","export const settings = {\n _root: \"/settings\",\n general: \"/general\",\n inputs: \"/inputs\",\n logout: \"/logout\"\n};\n","export const timeline = {\n _root: \"/timeline\",\n event: {\n _root: \"/event/:id\"\n },\n createEvent: \"/create-event\"\n};\n","export const farmSummaries = {\n _root: \"/farm-summary\"\n};\n","// istanbul ignore file\nimport { version } from \"../package.json\";\nimport { Nullable } from \"./typings\";\n\n/**\n * Get the version from the package.json\n * @return {number}\n */\nexport const getVersion = (): number => {\n return parseFloat(version.replace(/\\./g, \"\"));\n};\n\n/**\n * Get the storage key prefix\n * @return {`ctra.utils.v${number}`}\n */\nexport const getStorageKey = () => {\n return `ctra.utils.v${getVersion()}`;\n};\n\n/**\n * Check if the key matches the current version\n * @param {Nullable} key\n * @return {key is string}\n */\nconst _matches = (key: Nullable): key is string => {\n const matchesUtils = key && key.match(/^ctra\\.utils/);\n const matchesVersion = key && key.match(new RegExp(getVersion().toString(), \"gi\"));\n\n return !!matchesUtils && !matchesVersion;\n};\n\n/**\n * Purge the storage\n */\nexport const purgeStaleData = () => {\n for (let i = 0; i < sessionStorage.length; i++) {\n const key = sessionStorage.key(i);\n\n if (_matches(key)) {\n sessionStorage.removeItem(key);\n }\n }\n\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n\n if (_matches(key)) {\n localStorage.removeItem(key);\n }\n }\n};\n","import * as _ from \"lodash\";\n\ntype TypeOptions = {\n primary?: string | null;\n async?: boolean;\n replays?: boolean;\n expires?: number;\n preservesPayload?: boolean | string | string[];\n};\n\ntype AsyncTypeMetadata = {\n title: string;\n primary: string | null;\n};\n\n/**\n * Async-enabled action type using the String constructor.\n * It adds some extra fields which our utils can use.\n */\nexport interface AsyncTypeString extends String {\n primary?: string | null;\n async?: boolean;\n replays?: boolean;\n expires?: number;\n preservesPayload?: boolean | string | string[];\n}\n\ntype AsyncTypeValues = Record;\n\n/**\n * All the possible async states.\n */\nexport type AsyncStates = {\n pending: \"PENDING\";\n fulfilled: \"FULFILLED\";\n rejected: \"REJECTED\";\n};\n\n/**\n * Async action type with metadata field.\n */\nexport interface AsyncType extends AsyncTypeValues {\n meta: AsyncTypeMetadata;\n}\n\n/**\n * Create a special Redux type which has additional metadata appended\n * @param {string} from\n * @param {TypeOptions} options\n */\nconst createType = (from: string, options: TypeOptions): AsyncTypeString => {\n // eslint-disable-next-line no-new-wrappers\n const type = new String(from);\n\n /**\n * Default options\n */\n const defaults: TypeOptions = {\n primary: null,\n async: true,\n replays: false,\n expires: 0,\n preservesPayload: false\n };\n\n const { primary, async, expires, replays, preservesPayload } = { ...defaults, ...options };\n\n Object.defineProperties(type, {\n primary: {\n value: primary,\n writable: false\n },\n async: {\n value: async,\n writable: false\n },\n expires: {\n value: expires,\n writable: false\n },\n replays: {\n value: replays,\n writable: false\n },\n preservesPayload: {\n value: preservesPayload,\n writable: false\n }\n });\n\n return type;\n};\n\n/**\n * Delimiters used in async action types.\n * @todo switch to enum\n * @example\n * ```typescript\n * \"app/namespace/FETCH_SOME_DATA.PENDING\"\n * ```\n */\nexport const Delimiters = {\n action: \"/\",\n status: \".\"\n};\n\n/**\n * Possible async type statuses.\n * @note This is a constant. If you are looking for the type...\n * @see AsyncStates\n */\nexport const AsyncTypeStates: AsyncStates = {\n pending: \"PENDING\",\n fulfilled: \"FULFILLED\",\n rejected: \"REJECTED\"\n};\n\n/**\n * Create async types from the given namespace and title.\n * @param {string} ns\n * @param {string} title\n * @param {TypeOptions} options\n * @example\n * ```typescript\n * const asyncType = createAsyncTypes(\"app\", \"TEST_ACTION\", {\n * primary: \"id\", // expects action payload to have an `id` field\n * async: true, // default true for async actions\n * replays: true, // replays after the timeout specified in `expires`\n * expires: 60 * 1000 // timeout before the action automatically gets dispatched again\n * });\n * ```\n */\nexport const createAsyncTypes = (ns: string, title: string, options: TypeOptions = {}): AsyncType => {\n if (!title) {\n throw new Error(\"All async action types need a title.\");\n }\n\n /**\n * Default options\n */\n const defaults: TypeOptions = {\n primary: null,\n async: true,\n replays: false,\n expires: 0,\n preservesPayload: false\n };\n\n /**\n * Metadata which stores the status-free title of the\n */\n const meta: AsyncTypeMetadata = {\n title: `${ns}/${title}`,\n primary: _.get(options, \"primary\", null)\n };\n\n /**\n * PENDING, FULFILLED and REJECTED statuses\n */\n const values: AsyncTypeValues = _.mapValues(\n AsyncTypeStates,\n (value) => {\n const typeString = `${ns}${Delimiters.action}${title}${Delimiters.status}${value}`;\n\n return createType(typeString, { ...defaults, ...options });\n }\n );\n\n return {\n meta,\n ...values\n };\n};\n\n/**\n * Create CRUD async action types with one command.\n * @param {string} ns\n * @param {string} title\n * @param {TypeOptions} options\n * @see createAsyncTypes\n * @example\n * ```typescript\n * const types = createCRUDAsyncTypes(\"test\", \"USER\");\n *\n * const [CREATE_USER, FETCH_USER, UPDATE_USER, DELETE_USER] = types;\n * ```\n */\nexport const createCRUDAsyncTypes = (\n ns: string,\n title: string,\n options: TypeOptions & {\n forcePrimary?: boolean;\n } = {}\n): Array => {\n const RUD = [\"FETCH\", \"UPDATE\", \"DELETE\"];\n\n return [\n /**\n * Create does may need a primary (self-explanatory)\n */\n createAsyncTypes(\n ns,\n `CREATE_${title}`,\n _.omit(options, _.compact([\"forcePrimary\", options.forcePrimary ? null : \"primary\"]))\n ),\n ..._.map(RUD, (action) => createAsyncTypes(ns, `${action}_${title}`, _.omit(options, \"forcePrimary\")))\n ];\n};\n","import * as _ from \"lodash\";\nimport { Action as ReduxAction } from \"redux\";\nimport { AsyncStates, AsyncType, AsyncTypeStates, AsyncTypeString } from \"./types\";\nimport { Nullable } from \"../typings\";\n\n/**\n * Parameters which may be used during checking the status of any async action.\n */\ninterface StatusCheckerParams {\n maybe?: boolean;\n primaryValue?: string | number | null;\n withPayload?: T;\n}\n\ntype AsyncTypeCreator = (...args: unknown[]) => AsyncType;\n\n/**\n * Action payload creator for converting the given arguments to a new format.\n * @see createAsyncActions\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type PayloadCreator = (...args: any[]) => any;\n\n/**\n * Redux action extended with an optional `payload` field.\n */\nexport type AbstractAction

          = P extends void\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ReduxAction & { payload?: any }\n : ReduxAction & { payload: P };\n\n/**\n * Async action with \"async-enabled\" `type` field.\n */\nexport type AsyncAction

          = P extends void\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n { type: AsyncTypeString; payload?: any }\n : { type: AsyncTypeString; payload: P };\n\n/**\n * Replacement of Redux `Action` which supports an async `type` field.\n */\nexport type Action

          = AbstractAction

          | AsyncAction

          ;\n\n/**\n * Action creator with ensured payload\n */\ntype ActionCreator = (...args: Parameters) => Action>;\n\n/**\n * Async action creator with `start`, `fulfill` and `reject` API.\n * @typeParam S - action creator for `start`\n * @typeParam F - action creator for `fulfill`\n * @typeParam R - action creator for `reject`\n */\nexport interface AsyncActionCreator<\n A extends PayloadCreator,\n B extends PayloadCreator,\n C extends PayloadCreator\n> {\n start: ActionCreator;\n fulfill: ActionCreator;\n reject: ActionCreator;\n}\n\n/**\n * Make an async action creator from the given async action type.\n * @param {AsyncType | AsyncTypeCreator} typeObject\n * @param {PayloadCreator} createPendingPayload\n * @param {PayloadCreator} createFulfilledPayload\n * @param {PayloadCreator} createRejectedPayload\n * @example\n * ```typescript\n * import { createAsyncTypes } from \"@ctra/utils\";\n *\n * const type = createAsyncTypes(\"test\", \"TEST_ACTION\");\n * const actions = createAsyncActions(\n * type,\n * (id, value1, value2) => ({ id, values: [value1, value2] })\n * );\n *\n * actions.start(1, 2, 3);\n * // { type: \"TEST_ACTION.PENDING\", payload: { id: 1, values: [2, 3] } }\n * ```\n */\nexport const createAsyncActions = <\n A extends PayloadCreator,\n B extends PayloadCreator,\n C extends PayloadCreator\n>(\n typeObject: AsyncType | AsyncTypeCreator,\n createPendingPayload: A = _.stubObject as A,\n createFulfilledPayload: B = _.stubObject as B,\n createRejectedPayload: C = _.stubObject as C\n): AsyncActionCreator => {\n /**\n * Get the async action type by either returning the AsyncType object or passing the payload to\n * get one on the fly. This may be handy when you want to use the same action creator to yield different\n * actions based on the payload.\n * @param {*[]} args\n * @return {AsyncType}\n */\n const getType = (...args: unknown[]): AsyncType => {\n if (typeof typeObject === \"function\") {\n return typeObject(...args);\n } else {\n return typeObject;\n }\n };\n\n return {\n start: (...args) =>\n ({\n type: getType(...args).pending,\n payload: createPendingPayload(...args)\n } as AsyncAction>),\n fulfill: (...args) =>\n ({\n type: getType(...args).fulfilled,\n payload: createFulfilledPayload(...args)\n } as AsyncAction>),\n reject: (...args) =>\n ({\n type: getType(...args).rejected,\n payload: createRejectedPayload(...args)\n } as AsyncAction>)\n };\n};\n\ntype StatusWithPayload

          = [boolean, P];\ntype StatusCheckValue = T extends true ? StatusWithPayload

          : boolean;\n\n/**\n * Tell if the given async type has a certain status in the store.\n * Do not use it unless you need, there are better options below.\n * @param state\n * @param asyncType\n * @param status\n * @param params\n * @see isPending\n * @see isFulfilled\n * @see isRejected\n */\nexport function hasStatus, T extends boolean = false, P = unknown>(\n state: S,\n asyncType: AsyncType,\n status: string,\n params: {\n maybe?: boolean;\n primaryValue?: string | number | null;\n withPayload?: T;\n } = {\n maybe: false,\n primaryValue: null,\n withPayload: false as unknown as T\n }\n): StatusCheckValue {\n const { primary, title } = asyncType.meta;\n const { maybe, primaryValue, withPayload } = params;\n\n if (primary && _.isUndefined(primaryValue)) {\n throw new Error(\n [\n `\"${title}\" has a primary key of \"${primary}\", but you forgot to pass its value to find in the state.`,\n `Example: hasStatus(state, myTypes.anAsyncType, \"PENDING\", { primaryValue: })`\n ].join(\" \")\n );\n }\n\n /**\n * Create a lookup path in the state to find the requested async value\n */\n const path = primaryValue ? [\"async\", title, primaryValue] : [\"async\", title];\n\n /**\n * Find the value in the store: pending, fulfilled, rejected\n */\n // @ts-ignore - \"status\" and \"payload\" will exist in the result\n const { status: value, payload }: { status: Nullable; payload: Nullable

          } = _.get<\n typeof state,\n string,\n { status: Nullable; payload: Nullable

          }\n >(state, path.join(\".\"), {\n status: null,\n payload: null\n });\n\n const matches = value === _.lowerCase(status);\n const result = maybe ? !value || matches : matches;\n\n return (withPayload ? [result, payload] : result) as StatusCheckValue;\n}\n\n/**\n * Tell whether the given action is pending.\n * @param state\n * @param asyncType\n * @param params\n * @return {boolean}\n * @example\n * ```typescript\n * import { useSelector } from \"react-redux\";\n * import { myAsyncType } from \"./my-types\";\n *\n * ...\n *\n * const isPending = useSelector(state => isPending(state, myAsyncType));\n * // true | false\n *\n * ```\n */\nexport const isPending = , T extends boolean = false, P = unknown>(\n state: S,\n asyncType: AsyncType,\n params?: StatusCheckerParams\n): StatusCheckValue => hasStatus(state, asyncType, AsyncTypeStates.pending, params);\n\n/**\n * Tell whether an action is fulfilled.\n * @param state\n * @param action\n * @param params\n * @return {boolean}\n * @example\n * ```typescript\n * import { useSelector } from \"react-redux\";\n * import { myAsyncType } from \"./my-types\";\n *\n * ...\n *\n * const isFulfilled = useSelector(state => isFulfilled(state, myAsyncType));\n * // true | false\n *\n * ```\n */\nexport const isFulfilled = , T extends boolean = false, P = unknown>(\n state: S,\n action: AsyncType,\n params?: StatusCheckerParams\n): StatusCheckValue => hasStatus(state, action, AsyncTypeStates.fulfilled, params);\n\n/**\n * Tell whether an action is rejected.\n * @param state\n * @param action\n * @param params\n * @return {boolean}\n * @example\n * ```typescript\n * import { useSelector } from \"react-redux\";\n * import { myAsyncType } from \"./my-types\";\n *\n * ...\n *\n * const isRejected = useSelector(state => isRejected(state, myAsyncType));\n * // true | false\n *\n * ```\n */\nexport const isRejected = , T extends boolean = false, P = unknown>(\n state: S,\n action: AsyncType,\n params?: StatusCheckerParams\n): StatusCheckValue => hasStatus(state, action, AsyncTypeStates.rejected, params);\n\n/**\n * Tell whether an action is settled.\n * @param state\n * @param action\n * @param params\n * @return {boolean}\n * @example\n * ```ts\n * import { useSelector } from \"react-redux\";\n * import { myAsyncType } from \"./my-types\";\n *\n * ...\n *\n * const isSettled = useSelector(state => isSettled(state, myAsyncType));\n * // true | false\n * ```\n */\nexport const isCompleted = , T extends boolean = false, P = unknown>(\n state: S,\n action: AsyncType,\n params?: StatusCheckerParams\n): StatusCheckValue => isFulfilled(state, action, params) || isRejected(state, action, params);\n\n/**\n * Tell whether the give action hs already been dispatched\n * @param state\n * @param action\n * @param params\n * @return {boolean}\n * @example\n * ```ts\n * import { useSelector } from \"react-redux\";\n * import { myAsyncType } from \"./my-types\";\n *\n * ...\n *\n * const isSettled = isDispatched(state => isSettled(state, myAsyncType));\n * // true | false\n * ```\n */\nexport const isDispatched = >(\n state: S,\n action: AsyncType,\n params?: StatusCheckerParams\n): boolean => {\n const args: [S, AsyncType, StatusCheckerParams] = [\n state,\n action,\n { ...params, withPayload: false, maybe: false }\n ];\n\n return isPending(...args) || isFulfilled(...args) || isRejected(...args);\n};\n","import * as _ from \"lodash\";\nimport convert from \"convert-units\";\n\nimport { Nullable } from \"../typings\";\nimport { ValueUnit } from \"@ctra/api\";\n\n/**\n * Abbreviations for seconds\n * @private\n */\nconst _second = [\"s\", \"sec\", \"second\", \"seconds\"];\n\n/**\n * Abbreviations for minutes\n * @private\n */\nconst _minute = [\"min\", \"minute\", \"minutes\"];\n\n/**\n * Abbreviations for hours\n * @private\n */\nconst _hour = [\"h\", \"hr\", \"hour\", \"hours\"];\n\n/**\n * Abbreviations for hours\n * @private\n */\nconst _day = [\"d\", \"day\", \"days\"];\n\n/**\n * Time units\n * @todo extend this as needed\n * @private\n */\nconst _timeUnits = [..._second, ..._minute, ..._hour, ..._day] as const;\n\n/**\n * Currencies\n * @todo extend this as needed\n * @private\n */\nconst _currencies = [\"$\", \"USD\"] as const;\n\n/**\n * Mass units\n * @todo extend this as needed\n * @private\n */\nconst _mass = [\n \"mg\",\n \"mgs\",\n \"g\",\n \"gm\",\n \"gms\",\n \"gram\",\n \"grams\",\n \"kg\",\n \"kgs\",\n \"kilogram\",\n \"kilograms\",\n \"t\",\n \"ton\",\n \"tons\",\n \"lb\",\n \"lbs\"\n] as const;\n\n/**\n * Length units\n */\nconst _length = [\"mm\", \"cm\", \"m\", \"km\", \"in\", \"inch\", \"feet\", \"ft\", \"yard\", \"mile\"] as const;\n\n/**\n * Volume units\n */\nconst _volume = [\"x1000 cells/mL\"] as const;\n\n/**\n * Temperature units\n */\nconst _temperature = [\"degF\", \"degC\"] as const;\n\n/**\n * Percentage unit\n */\nexport type Percentage = \"percentage\";\n\n/**\n * Time units\n */\nexport type TimeUnit = typeof _timeUnits[number];\n\n/**\n * Currency units\n */\nexport type Currency = typeof _currencies[number];\n\n/**\n * Mass units\n */\nexport type Mass = typeof _mass[number];\n\n/**\n * Length\n */\nexport type Length = typeof _length[number];\n\n/**\n * Volums units\n */\nexport type Volume = typeof _volume[number];\n\n/**\n * Temperature units\n */\nexport type Temperature = typeof _temperature[number];\n\n/**\n * Unit types\n */\nexport enum Unit {\n time = \"time\",\n percentage = \"percentage\",\n currency = \"currency\",\n temperature = \"temperature\",\n mass = \"mass\",\n length = \"length\",\n speed = \"speed\",\n number = \"number\",\n volume = \"volume\"\n}\n\nexport enum UnitSystem {\n imperial = \"imperial\",\n metric = \"si\"\n}\n\n/**\n * Case insensitive indexOf\n * @param {string[]} array\n * @param {string} value\n * @return {number}\n */\nconst indexOfInsensitive = (array: string[] | readonly string[], value: string): number =>\n _.findIndex(array, (item) => item.toLowerCase() === value.toLowerCase());\n\n/**\n * Tell if the given unit is percentage\n * @param {string} unit\n * @return {unit is Percentage}\n */\nexport const isPercentage = (unit: string): unit is Percentage => unit === Unit.percentage || unit === \"%\";\n\n/**\n * Tell if a given unit is a time unit\n * @param {string} unit\n * @return {unit is TimeUnit}\n */\nexport const isTimeUnit = (unit: string): unit is TimeUnit => indexOfInsensitive(_timeUnits, unit) > -1;\n\n/**\n * Tell if the given unit is a currency\n * @param {string} unit\n * @return {unit is Currency}\n */\nexport const isCurrency = (unit: string): unit is Currency => indexOfInsensitive(_currencies, unit) > -1;\n\n/**\n * Tell if the given unit is mass\n * @param {string} unit\n * @return {unit is Mass}\n */\nexport const isMass = (unit: string): unit is Mass => indexOfInsensitive(_mass, unit) > -1;\n\n/**\n * Tell if the given unit is length\n * @param {string} unit\n * @return {unit is Length}\n */\nexport const isLength = (unit: string): unit is Length => indexOfInsensitive(_length, unit) > -1;\n\n/**\n * Tell if the given unit is volume\n * @param {string} unit\n * @return {unit is Volume}\n */\nexport const isVolume = (unit: string): unit is Volume => indexOfInsensitive(_volume, unit) > -1;\n\n/**\n * Tell if the given unit is temperature\n * @param unit\n */\nexport const isTemperature = (unit: string): unit is Temperature =>\n indexOfInsensitive(_temperature, unit) > -1;\n\n/**\n * Get the type of a given unit\n * @param unit\n * @example\n * ```ts\n * getType(\"hr\"); // \"time\"\n * getType(\"$\"); // \"currency\"\n * ```\n */\nexport const getType = (unit: string): Unit => {\n if (isPercentage(unit)) {\n return Unit.percentage;\n } else if (isCurrency(unit)) {\n return Unit.currency;\n } else if (isTimeUnit(unit)) {\n return Unit.time;\n } else if (isMass(unit)) {\n return Unit.mass;\n } else if (isLength(unit)) {\n return Unit.length;\n } else if (isVolume(unit)) {\n return Unit.volume;\n } else if (isTemperature(unit)) {\n return Unit.temperature;\n }\n\n return Unit.number;\n};\n\n/**\n * Format a given value with the given unit\n * @param {string | number | undefined | null} value\n * @param {string} unit\n * @param {string} translatedUnit\n * @param {boolean} asIs\n * @param {boolean} append\n * @param {number} precision\n * @param {boolean} percentageFromFraction\n * @returns {string}\n * @example\n * ```ts\n * format(12, \"%\"); // \"12%\"\n * format(1450, \"$\"); // \"$1450\"\n * ```\n *\n * @returns formatted string\n */\nexport const format = (\n value: string | number | undefined | null,\n unit: string,\n translatedUnit?: string,\n {\n asIs,\n append,\n precision,\n percentageFromFraction\n }: {\n asIs?: boolean;\n precision?: number;\n append?: boolean;\n percentageFromFraction?: boolean;\n } = {\n asIs: false,\n append: false,\n precision: 0,\n percentageFromFraction: false\n }\n): string => {\n /**\n * The only place where I allow myself to use\n * a triple inline condition, as it just makes sense here\n */\n const converted = _.isNil(value) ? 0 : _.isString(value) ? parseFloat(value) : value;\n\n /**\n * Fix the number of digits to the given precision\n * when there is a fraction in the number\n */\n const fixed = asIs ? converted : _.round(converted, precision);\n\n if (!unit) {\n return fixed.toString();\n }\n\n if (isNaN(fixed as number)) {\n return \"\";\n }\n\n /**\n * Fall back if there is no translated unit\n * @type {string}\n */\n const u = _.defaultTo(translatedUnit, unit);\n\n if (append) {\n return `${fixed} ${u}`;\n }\n\n switch (getType(unit)) {\n case Unit.currency:\n return `${u}${fixed}`;\n case Unit.percentage:\n return `${percentageFromFraction ? (fixed as number) * 100 : fixed}%`;\n case Unit.time:\n case Unit.mass:\n return `${fixed} ${u}`;\n case Unit.volume:\n return `${fixed}${u}`;\n case Unit.temperature:\n return `${fixed}${u}`;\n case Unit.length:\n return `${fixed} ${u}`;\n default:\n return `${fixed} ${u}`;\n }\n};\n\ntype ConversionUnit = Parameters[\"from\"]>[\"0\"];\n\n/**\n * Guess a precision based on the given value\n * @param {number} value\n * @param {number} defaultPrecision\n * @return {number}\n */\nexport const getPrecision = (value: number, defaultPrecision = 1): number =>\n _.defaultTo(\n _.find([2, 3, 4, 5], (decimal) => {\n return value > Math.pow(10, -decimal);\n }),\n defaultPrecision\n );\n\n/**\n *\n * @param value\n * @param units\n * @param unitSystems\n * @returns converted value in the desired unit system\n */\nexport const convertToUnitSystem = (\n value: string | number,\n units: Nullable>,\n {\n from,\n to,\n precision = 1\n }: {\n from: UnitSystem;\n to: UnitSystem;\n precision?: number;\n } = {\n from: UnitSystem.metric,\n to: UnitSystem.metric,\n precision: 1\n }\n): number => {\n const originalValue = +value;\n\n /**\n * return value as is, if unit systems are same and not convertible\n */\n if (from === to) {\n return originalValue;\n }\n\n /**\n * conversion to work only if units are present and not empty\n */\n if (units && !_.isEmpty(units)) {\n /**\n * make sure the provided units are convertible e.g. lb, kg\n * units like % are not convertible so it should just return the value as is\n */\n const supportedUnits = convert().possibilities();\n\n /**\n * @type {ConversionUnit}\n */\n const metricUnit = units[UnitSystem.metric] as ConversionUnit;\n\n /**\n * @type {ConversionUnit}\n */\n const imperialUnit = units[UnitSystem.imperial] as ConversionUnit;\n\n /**\n * Check whether the library supports the provided units and both units are present\n */\n const isSupported =\n _.every([metricUnit, imperialUnit]) &&\n _.every(units, (unit) => supportedUnits.includes(unit as typeof supportedUnits[1]));\n\n if (isSupported) {\n const conversionMap = {\n [UnitSystem.imperial]: convert(originalValue).from(metricUnit).to(imperialUnit),\n [UnitSystem.metric]: convert(originalValue).from(imperialUnit).to(metricUnit)\n };\n\n const convertedValue = +conversionMap[to];\n\n return +convertedValue.toFixed(getPrecision(convertedValue, precision));\n }\n }\n\n return +originalValue.toFixed(precision);\n};\n","import * as _ from \"lodash\";\n\n/**\n * Converts the keys of the given object to camelCase.\n * @param {{}} obj - the object to convert\n * @todo find a generic solution to allow autocomplete\n * @example\n * ```typescript\n * camelize({ this_key: 1, another_key: 2 })\n * // { thisKey: 1, anotherKey: 2 }\n * ```\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const camelize = (obj: Record): Record =>\n _.mapKeys(obj, (v, k) => _.camelCase(k));\n","import * as _ from \"lodash\";\nimport { Nullable } from \"../typings\";\n\n/**\n * Make a \"ctra\" prefixed list of class names to be used in JSX\n * @param {string[]} classNames\n * @return {string}\n * @example\n * ```ts\n * classname(\"MyComponent\", \"any-other-classname\");\n * // \"ctra-MyComponent ctra-any-other-classname\"\n * ```\n */\nexport const classname = (...classNames: Nullable[]): string => {\n /**\n * Remove the falsy values\n */\n const compact = _.compact(classNames);\n\n if (!_.every(compact, _.isString)) {\n throw new Error(\"Only string arguments are allowed here.\");\n }\n\n return compact.join(\" \");\n};\n","import * as _ from \"lodash\";\n\n/**\n * Converts a given string to CapitalCase\n * @param {string} str\n * @example\n * ```ts\n * capitalCase(\"lorem ipsum dolor\");\n * // \"Lorem Ipsum Dolor\"\n * ```\n */\nexport const capitalCase = (str: string): string => _.upperFirst(_.camelCase(str));\n","import React from \"react\";\n\n/**\n * Returns the displayName of a component/function. This is important for when working with hocs\n * https://reactjs.org/docs/higher-order-components.html#convention-wrap-the-display-name-for-easy-debugging\n *\n * @param WrappedComponent\n * @returns {string}\n */\nexport function getDisplayName

          (WrappedComponent: React.ComponentType

          ): string {\n return WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n}\n","import * as _ from \"lodash\";\n\n/**\n * Takes in array of words + conjunction and outputs a list of words grammatically seperated with conjunction\n * note: conjunction is a param because of its variability in different languages\n * @param arrayOfWords\n * @param conjunction\n */\nexport const makeList = (arrayOfWords: Array, conjunction: string): string => {\n let commas: Array = [];\n let withConjunction: Array = [];\n\n /**\n * Array of required commas\n */\n if (arrayOfWords.length > 2) commas = _.fill(new Array(arrayOfWords.length - 2), \", \");\n\n /**\n * array of commas with conjunction\n * only conjunction if two words and no commas\n */\n if (arrayOfWords.length >= 2) withConjunction = _.concat(commas, ` ${conjunction} `);\n\n /**\n * zip array of words with commas and conjunction\n */\n const combined = _.compact(_.flatten(_.zip(arrayOfWords, withConjunction)));\n /**\n * convert array with commas and conjunction to proper sentence\n */\n const sentence = combined.join(\"\");\n\n return sentence;\n};\n","/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport * as _ from \"lodash\";\nimport { compile, PathFunction } from \"path-to-regexp\";\n\ninterface NestedRouteDefinition {\n [route: string]: string | RouteDefinition;\n}\n\ntype RouteDefinition = NestedRouteDefinition & {\n __root?: string;\n _root?: string;\n};\n\n/**\n * Make a public route by removing the `_root` and the `__root`\n * keys from the given route definition.\n */\ntype Public = Omit;\n\n/**\n * Route object made of the given route definition.\n * @typeParam R - route definition type to convert\n * @example\n * ```typescript\n * type Definition = {\n * _root: string,\n * page: string,\n * blog: {\n * _root: string,\n * value: string\n * }\n * }\n *\n * type AppRoutes = Route;\n *\n * const routes: AppRoutes = {\n * index: \"/app\",\n * page: \"/app/page\",\n * blog: {\n * index: \"/app/blog,\n * value: \"/app/blog/value\"\n * }\n * }\n * ```\n */\nexport type Route = {\n index: string;\n} & {\n [K in keyof Public]: R[K] extends string ? R[K] : Route;\n};\n\n/**\n * Build routes from the given route definitions.\n * @param routes\n * @example\n * ```typescript\n * buildRoutes({ _root: \"/uri\", namedRoute: \"/route\" });\n * // { index: \"/uri\", namedRoute: \"/uri/route\" }\n * ```\n */\nexport const buildRoutes = (routes: R): Route => {\n const { __root = \"\", _root = \"\", ...children } = routes;\n const rootURI = `${__root}${_root}`;\n\n // I decided to ts-ignore it because\n // this error is just pure BULLSHIT.\n // My linter just fails on this randomly: once it is good, once it is not.\n // Fuck you!\n // @ts-ignore\n const result: Route = {\n index: rootURI\n };\n\n for (const [name, path] of Object.entries(children)) {\n if (_.isString(path)) {\n _.set(result, name, `${rootURI}${path}`);\n }\n\n if (_.isPlainObject(path)) {\n _.set(result, name, buildRoutes({ __root: rootURI, ...path }));\n }\n }\n\n return result;\n};\n\n/**\n * Compiled route type\n */\ntype Compiled = {\n // eslint-disable-next-line @typescript-eslint/ban-types, @typescript-eslint/no-explicit-any\n [K in keyof R]: R[K] extends string ? PathFunction : Compiled;\n};\n\n/**\n * Compile routes to callable functions\n * @param routes\n * @example\n * ```ts\n * const makeURL = compileRoutes({ index: \"/uri\", namedRoute: \"/uri/:id\" });\n * makeURL.namedRoute({ id: 1 });\n * // \"/uri/1\"\n * ```\n */\nexport const compileRoutes = (routes: R): Compiled => {\n // Again, this work perfectly, but TS cries.\n // I suspect mapValues to be not covering all the cases.\n // @ts-ignore\n return _.mapValues(routes, (value) => {\n if (_.isPlainObject(value)) {\n return compileRoutes(value);\n }\n\n return compile(value);\n });\n};\n","import * as _ from \"lodash\";\nimport { Nullable } from \"../typings\";\n\ntype Parsed = Record>;\n\n/**\n * Parse the given keys from the URL Params\n * @param urlParams\n * @param keys\n */\nexport const parseQuery = (\n urlParams: URLSearchParams,\n ...keys: Keys\n): Parsed =>\n _.reduce>(\n keys,\n (result, key) => {\n result[key] = urlParams.get(key);\n\n return result;\n },\n {} as Parsed\n );\n","import moment from \"moment\";\n\n/**\n * Tell whether the given epoch is in a long format\n * @param {number} epoch\n * @private\n */\nconst _isLongEpoch = (epoch: number): boolean => epoch.toString().length === 13;\n\n/**\n * Parse a 10 or 13 digit epoch to moment\n * @param {number} epoch\n * @example\n * ```ts\n * asMoment(1608208158000).isSame(asMoment(1608208158));\n * // true\n * ```\n */\nexport const asMoment = (epoch: number): moment.Moment => moment(_isLongEpoch(epoch) ? epoch : epoch * 1000);\n\n/**\n * Convert the given epoch to Date\n * @param epoch\n * @example\n * ```ts\n * asDate(1234567890);\n * // Date of 1234567890\n * ```\n */\nexport const asDate = (epoch: number): Date => new Date(_isLongEpoch(epoch) ? epoch : epoch * 1000);\n\n/**\n * Convert a given epoch to long format\n * @param epoch\n * ```ts\n * asLong(1234567890); // 1234567890000\n */\nexport const asLong = (epoch: number): number => (_isLongEpoch(epoch) ? epoch : epoch * 1000);\n\n/**\n * Load an epoch and convert it to a 10 digit version\n * @param {number} epoch\n * @example\n * ```ts\n * load(1608208158000);\n * // 1608208158\n *\n * load(1608208158);\n * // 1608208158\n * ```\n */\nexport const load = (epoch: number): number => (_isLongEpoch(epoch) ? Math.round(epoch / 1000) : epoch);\n\n/**\n * Get today midnight\n * @param trail\n * @example\n * ```ts\n * midnight();\n * // 1234567890\n * midnight({ trail: true });\n * // 2345678901\n * ```\n */\nexport const midnight = ({ trail }: { trail?: boolean } = {}): number =>\n load(+moment()[trail ? \"endOf\" : \"startOf\"](\"day\").utc());\n\n/**\n * Get the current epoch\n * @example\n * ```ts\n * now();\n * // 1234567890\n * ```\n */\nexport const now = (): number => load(+moment.utc());\n\n/**\n * Tell the difference between two epochs in days\n * @param start\n * @param end\n * @todo add example\n * @example\n * ```ts\n * ```\n */\nexport const daysBetween = (start: number, end: number): number =>\n asMoment(end).diff(asMoment(start), \"days\");\n\n/**\n * Tell how much time is left until the given epoch\n * @param epoch\n * @todo add example\n * @example\n * ```ts\n * ```\n */\nexport const until = (epoch: number): string => moment.duration(daysBetween(epoch, now()), \"days\").humanize();\n","import moment from \"moment\";\nimport * as _ from \"lodash\";\nimport { load, asMoment as epochToMoment } from \"./epoch\";\nimport { Nullable } from \"../typings\";\n\n/**\n * Convert a timestamp to moment\n * @param {string} ts\n * @param {boolean} parseZone\n * @returns {moment.Moment}\n * @example\n * ```ts\n * asMoment(\"2021-02-10T14:30:19.192Z\"); // Moment of \"2021-02-10T14:30:19.192Z\"\n * ```\n */\nexport const asMoment = (ts: string, { parseZone }: { parseZone?: boolean } = {}): moment.Moment =>\n parseZone ? moment.parseZone(ts) : moment(ts, moment.defaultFormatUtc);\n\n/**\n * Serialise the given date time (epoch or moment)\n * @param {number|moment.Moment} dateTime\n * @example\n * ```ts\n * serialize(1234567890); // 2009-02-14T00:31:30Z\n * ```\n */\nexport const serialize = (dateTime: Nullable): Nullable => {\n if (_.isNull(dateTime)) {\n return dateTime;\n } else if (_.isNumber(dateTime)) {\n return epochToMoment(load(dateTime)).format(moment.defaultFormatUtc);\n } else if (moment.isMoment(dateTime)) {\n return dateTime.format(moment.defaultFormatUtc);\n }\n\n throw new Error(`I cannot understand ${dateTime}`);\n};\n\n/**\n * Get the current timestamp\n * @example\n * ```ts\n * now(); // 2022-03-04T00:31:30Z\n * ```\n * @returns\n */\nexport const now = (): string => moment().utc().toISOString();\n","export const SECOND = 1;\nexport const MINUTE = 60 * SECOND;\nexport const HOUR = 60 * MINUTE;\nexport const DAY = 24 * HOUR;\nexport const WEEK = 7 * DAY;\nexport const FORTNIGHT = 2 * WEEK;\nexport const MONTH = 31 * DAY;\nexport const QUARTER = 3 * MONTH;\nexport const HALFYEAR = 2 * QUARTER;\nexport const YEAR = 2 * HALFYEAR;\n","import moment from \"moment\";\n\n/**\n * Get a date string in the past using an ISO 8601 duration string and a custom offset value.\n * @param durationString\n * @param offset\n * @example\n * ```ts\n * import { DAY } from \"@ctra/utils\";\n *\n * iso8601Ago(\"P1M\"); // 1 month ago as date string (utc)\n * iso8601Ago(\"P1M\", DAY); // 1 month and 1 day ago as date string\n * ```\n */\nexport const iso8601Ago = (durationString: string, offset = 0): string => {\n const now = moment().utc().startOf(\"day\");\n const duration = moment.duration(durationString).asSeconds();\n\n return moment(+now.subtract(duration + offset, \"seconds\")).toISOString();\n};\n\n/**\n * Create a human readable duration string\n * @param seconds\n */\nexport const getDuration = (seconds: number): Record<\"days\" | \"hours\" | \"minutes\", number> => {\n const duration = moment.duration(seconds, \"seconds\");\n const functions = [\"days\", \"hours\", \"minutes\"] as const;\n\n return functions.reduce(\n (result, fn) => {\n result[fn] = duration[fn]();\n\n return result;\n },\n {\n days: 0,\n hours: 0,\n minutes: 0\n }\n );\n};\n\n/**\n * Convert minutes to a time of day string\n * @param {number} minutes\n * @return {string}\n */\nexport const getTimeOfDay = (minutes: number): string =>\n moment.utc(moment.duration(minutes, \"minutes\").as(\"milliseconds\")).format(\"LT\");\n","import { ChartTimePeriod, ISODuration } from \"@ctra/api\";\nimport moment from \"moment/moment\";\nimport * as _ from \"lodash\";\n\nexport const isChartTimePeriod = (\n period: ISODuration | ChartTimePeriod | [string, string]\n): period is ChartTimePeriod => {\n return _.isPlainObject(period) && (period as ChartTimePeriod).startDate !== undefined;\n};\n\nexport const isDateRangeTuple = (\n period: ISODuration | ChartTimePeriod | [string, string]\n): period is [string, string] => {\n return Array.isArray(period);\n};\n\n/**\n * Default time units\n * @type {string[]}\n */\nexport const defaultBucketSizes: ISODuration[] = [\"PT1H\", \"P1D\", \"P1W\", \"P1M\", \"P1Y\"];\n\n/**\n * Filter the time units to always be reasonable for the given time period\n * @param {ISODuration | ChartTimePeriod | [string, string]} period\n * @param {ISODuration[]} options\n * @param {number} threshold\n * @returns {ISODuration[]}\n */\nexport const clampChartUnitList = (\n period: ISODuration | ChartTimePeriod | [string, string],\n options: ISODuration[] = defaultBucketSizes,\n threshold = 100\n): ISODuration[] => {\n let duration: moment.Duration;\n\n if (isChartTimePeriod(period)) {\n const { startDate, endDate } = period;\n\n duration = moment.duration(moment(endDate).diff(moment(startDate)));\n } else if (isDateRangeTuple(period)) {\n const [startDate, endDate] = period;\n\n duration = moment.duration(moment(endDate).diff(moment(startDate)));\n } else {\n duration = moment.duration(period);\n }\n\n return options.filter((option) => {\n const optionDuration = moment.duration(option);\n const dh = duration.asHours();\n const odh = optionDuration.asHours();\n const expectedDataPoints = _.round(dh / odh);\n\n return dh > odh && expectedDataPoints >= 3 && expectedDataPoints <= threshold;\n });\n};\n","import * as _ from \"lodash\";\n\ntype Mapped = { [key in keyof A]: A[keyof A] };\n\n/**\n * Omit undefined values from an object.\n * @param obj\n * @example\n * ```ts\n * const values = {\n * a: 1,\n * b: 2,\n * c: undefined\n * };\n *\n * omitUndefined(values);\n * // { a: 1, b: 2 }\n * ```\n */\nexport const omitUndefined = >(obj: A): Mapped =>\n _.omitBy(obj, _.isUndefined) as Mapped;\n\n/**\n * Deep-omit undefined values from an object.\n * @param obj\n * @example\n * ```ts\n * const values = {\n * a: 1,\n * b: undefined;\n * c: {\n * d: 1,\n * e: undefined\n * }\n * }\n *\n * omitDeepUndefined(values);\n * // { a: 1, c: { d: 1 } }\n * ```\n */\nexport const omitDeepUndefined = >(obj: A): Mapped =>\n _.mapValues(omitUndefined(obj), (value) =>\n _.isPlainObject(value) ? omitDeepUndefined(value as Record) : value\n ) as Mapped;\n","import * as _ from \"lodash\";\nimport { CamelCasedPropertiesDeep } from \"type-fest\";\n\n/**\n * function recursively converts a nested object's properties to camel case\n * returns a deeply camel cased object\n * @param obj\n */\nexport const camelCaseDeep = (obj: object): CamelCasedPropertiesDeep> =>\n _.transform(obj, (acc: Record, value, key, target) => {\n const camelKey = _.isArray(target) ? key : _.camelCase(key);\n acc[camelKey] = _.isObject(value) ? camelCaseDeep(value) : value;\n });\n\n/**\n * function that recursively converts nested object keys to lowercase\n * @param obj\n */\nexport const lowerCaseDeep = (obj: object) => {\n if (_.isObject(obj)) {\n const newObj: Record = {};\n\n _.forOwn(obj, (value, key) => {\n const newKey = key.toLowerCase();\n newObj[newKey] = lowerCaseDeep(value);\n });\n\n return newObj;\n } else {\n return obj;\n }\n};\n\n/**\n * Convert specific keys in a nested object to lower case\n * @param obj\n * @param keysToConvert\n * @returns\n */\nexport const convertKeysToLowerCase = (\n obj: Record,\n keysToConvert: string[]\n): Record => {\n if (_.isObject(obj)) {\n const newObj: Record = {};\n for (const [key, value] of _.entries(obj)) {\n const updatedKey = _.includes(keysToConvert, key) ? _.lowerCase(key) : key;\n newObj[updatedKey] = convertKeysToLowerCase(value as Record, keysToConvert);\n }\n return newObj;\n }\n return obj;\n};\n","import hash from \"object-hash\";\nimport WordHash from \"wordhash\";\n\nconst wordHash = WordHash();\n\n/**\n * Make a human-readable hash of an object\n * @param {Record} obj\n * @returns {string}\n */\nexport const readableHash = (obj: Record): string => {\n return wordHash.hash(hash(obj));\n};\n","import * as React from \"react\";\n\n/**\n * Give mounting info on the component\n */\nexport const useDidMount = (): [boolean, boolean] => {\n const [isMounting, setIsMounting] = React.useState(true);\n const [didMount, setDidMount] = React.useState(false);\n\n React.useEffect(() => {\n setIsMounting(false);\n setDidMount(true);\n }, []);\n\n return [isMounting, didMount];\n};\n","import { ForwardedRef, MutableRefObject } from \"react\";\nimport * as _ from \"lodash\";\n\nexport const isMutableRef = (ref: ForwardedRef): ref is MutableRefObject =>\n _.has(ref, \"current\") && !_.isNil(_.get(ref, [\"current\"]));\n","/**\n * Tell if we are on production\n * @param env\n */\nexport const isProduction = (env = process.env.REACT_APP_BUILD_ENV): env is \"production\" => {\n return env === \"production\";\n};\n","/**\n * Tell if we are on localhost\n * @param env\n */\nexport const isLocal = (env = process.env.REACT_APP_SERVER_ENV): env is \"local\" => {\n return env === \"local\";\n};\n","import * as _ from \"lodash\";\nimport { isProduction } from \"./isProduction\";\n\n/**\n * Check if the environment is blue-green\n * @returns {boolean}\n */\nexport const isBlueGreen: () => boolean = (): boolean =>\n isProduction() && _.includes(window.location.hostname, \"deploy-app\");\n","import keymirror from \"key-mirror-nested\";\n\n/**\n * Make a `data-testid` tree for better testing experience\n * @param module\n * @param tree\n */\nexport const makeTestIds = = Record>(\n module: string,\n tree: T\n): T =>\n keymirror(tree, {\n connChar: \"-\",\n /**\n * Customize output\n * @param oldVal\n * @param newVal\n */\n custFunc: (oldVal: string, newVal: string): string => `${module}.${newVal}`\n });\n","/**\n * Make a class name for end-to-end testing\n * @param {string} feature\n * @param {string} component\n * @param {string} ns\n * @return {`selenium-app-${string}-${string}`}\n */\nexport const endToEndTest = (feature: string, component: string, ns = \"app\") =>\n `selenium-${ns}-${feature}-${component}`;\n","import * as _ from \"lodash\";\n\n/**\n * Get thee inherited property names of the given object\n * @param obj\n * @param BaseClass\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const getInheritedPropertyNames = (obj: T, BaseClass: B) => {\n const props = new Set();\n\n do {\n Object.getOwnPropertyNames(obj).forEach((p) => props.add(p));\n } while ((obj = obj instanceof BaseClass ? Object.getPrototypeOf(obj) : null));\n\n return _.without(Array.from(props), \"constructor\");\n};\n","import * as _ from \"lodash\";\n\n// istanbul ignore next - this is just a wrapper around memoize\nexport function memoize(cls: T, key: keyof T): void {\n if (_.isFunction(cls[key])) {\n // @ts-ignore - I have no idea how to type this\n cls[key] = _.memoize(cls[key]);\n }\n}\n","// istanbul ignore file - dev tool\n\nimport logdown, { Logger, LogdownOptions, TransportFunction, LoggerState } from \"logdown\";\nimport * as Sentry from \"@sentry/react\";\nimport * as _ from \"lodash\";\nimport { HOUR } from \"../date\";\n\nconst systemKey = \"system\";\n\ntype AdvancedLogger = Logger & {\n state: LoggerState & {\n transports?: boolean;\n tags?: Record;\n };\n};\n\n/**\n * Record a message to Sentry\n * @param {string} message\n * @param {Record} extra\n * @param {Record} tags\n */\nconst sentryMessage = (message: string, extra?: Record, tags?: Record) => {\n Sentry.withScope((scope) => {\n if (extra) {\n for (const key in extra) {\n if (!_.startsWith(\"_\", key)) {\n scope.setExtra(key, extra[key]);\n }\n }\n }\n\n scope.setLevel(\"info\");\n Sentry.captureMessage(message, {\n tags: _.merge({ diagnostics: \"debugger\" }, _.defaultTo(tags, {}))\n });\n });\n};\n\n/**\n * Record an exception to Sentry\n * @param {Error} err\n * @param {Record} extra\n * @param {Record} tags\n */\nconst sentryException = (err: Error, extra?: Record, tags?: Record) => {\n Sentry.withScope((scope) => {\n if (extra) {\n for (const key in extra) {\n if (!_.startsWith(\"_\", key)) {\n scope.setExtra(key, extra[key]);\n }\n }\n }\n\n scope.setLevel(\"error\");\n Sentry.captureException(err, {\n tags: _.merge({ diagnostics: \"debugger\" }, _.defaultTo(tags, {}))\n });\n });\n};\n\n/**\n * Cache for the transport function (keep messages up to an hour)\n * @type {Map}\n */\nconst transportCache = new Map();\n\n/**\n * Sentry transport function\n * @param {string} msg\n * @param {string} level\n * @param {any[]} args\n * @param {logdown.LoggerState} state\n */\nconst sentryTransport: TransportFunction = ({ msg, level, args, state }) => {\n const cleanMessage = msg.replace(\"[[\", \"[\").replace(\"]]\", \"]\");\n const now = +new Date();\n const encoded = btoa(cleanMessage);\n\n if (_.get(state, [\"transports\"], false)) {\n const last = transportCache.get(encoded);\n\n if (!last || now - last >= HOUR * 1000) {\n transportCache.set(encoded, now);\n\n if (level === \"error\") {\n sentryException(\n new Error(cleanMessage),\n {\n args\n },\n _.get(state, [\"tags\"])\n );\n } else if (level === \"info\") {\n sentryMessage(\n cleanMessage,\n {\n args\n },\n _.get(state, [\"tags\"])\n );\n }\n }\n }\n};\n\nlogdown.transports = [sentryTransport];\n\n/**\n * Make a system logger and make it default enabled\n * @type {logdown.Logger}\n */\nconst _systemLogger = logdown(\"[system]\", { prefixColor: \"#468699\" });\n_systemLogger.state.isEnabled = true;\n\n/**\n * Local state of active loggers\n * @type {{system: {ns: string, logger: logdown.Logger}}}\n */\nconst _loggers: Record<\n string,\n {\n ns: string;\n logger: Logger | AdvancedLogger;\n }\n> = {\n [systemKey]: {\n ns: \"system\",\n logger: _systemLogger\n }\n};\n\n/**\n * Tell if a logger is enabled in the local storage\n * @param {string} key\n * @return {boolean}\n */\nconst isEnabled = (key: string) => {\n /**\n * Get all enabled loggers\n * @type {string[]}\n */\n const enabled = _.defaultTo(window.localStorage.getItem(\"debug\"), \"\").split(\",\");\n\n return enabled.includes(key);\n};\n\n/**\n * Create a new logger instance and append it to the list of loggers\n * @param {string} key\n * @param {string} ns\n * @param {logdown.LogdownOptions & {transports?: boolean, tags?: Record}} options\n * @return {logdown.Logger | AdvancedLogger}\n */\nconst create = (\n key: string,\n ns: string,\n options: LogdownOptions & { transports?: boolean; tags?: Record }\n): Logger | AdvancedLogger => {\n if (_loggers[key]) {\n _loggers.system.logger.error(`${key} is already registered as a logger.`);\n\n return _loggers[key].logger;\n } else {\n const logger = logdown(`[${ns}]`, options);\n\n if (isEnabled(key)) {\n logger.state.isEnabled = true;\n }\n\n if (options.transports) {\n (logger as AdvancedLogger).state.transports = true;\n\n (logger as AdvancedLogger).state.tags = _.merge(\n {\n diagnostics: key\n },\n options.tags\n );\n }\n\n _loggers[key] = {\n ns,\n logger\n };\n\n return logger;\n }\n};\n\n/**\n * Enable some or all loggers\n * @param {string} loggers\n */\nconst enable = (...loggers: Array): string => {\n /**\n * Get all enabled loggers\n * @type {string[]}\n */\n const enabled = _.defaultTo(window.localStorage.getItem(\"debug\"), \"\").split(\",\");\n\n /**\n * All the loggers\n * @type {string[]}\n */\n const all = _.map(_loggers, (v, k) => k);\n\n /**\n * Make a new list: all or the selected ones\n * @type {string}\n */\n const list = _.compact(\n _.uniq(loggers.includes(\"all\") ? all : _.concat(enabled, _.intersection(all, loggers)))\n );\n\n /**\n * Manually enable them to break free of the node variable logdown uses\n */\n _.forEach(list, (key) => {\n const logger = _.get(_loggers, [key, \"logger\"]);\n\n if (logger) {\n logger.state.isEnabled = true;\n }\n });\n\n window.localStorage.setItem(\"debug\", list.join(\",\"));\n\n return `Enabled loggers: ${list.join(\", \")}.`;\n};\n\n/**\n * Disable some or all loggers\n * @param {string} loggers\n */\nconst disable = (...loggers: Array): string => {\n const enabled = _.defaultTo(window.localStorage.getItem(\"debug\"), \"\").split(\",\");\n\n /**\n * Make a new list: none or without the selected ones\n * @type {string}\n */\n const list = _.compact(_.uniq(loggers.includes(\"all\") ? [systemKey] : _.without(enabled, ...loggers)));\n\n /**\n * Manually disable them to break free of the node variable logdown uses\n */\n _.forEach(list, (key) => {\n const logger = _.get(_loggers, [key, \"logger\"]);\n\n if (logger) {\n logger.state.isEnabled = false;\n }\n });\n\n window.localStorage.setItem(\"debug\", list.join(\",\"));\n\n return `Enabled loggers: ${list.join(\", \")}.`;\n};\n\n/**\n * Debug module public interface\n * @type {{get(target: ({[p: string]: logdown.Logger} & {create: (key: string, ns: string, options: logdown.LogdownOptions) => logdown.Logger}), prop: string): (((key: string, ns: string, options: logdown.LogdownOptions) => logdown.Logger) | logdown.Logger)}}\n */\nconst _intf = {\n get(\n target: {\n [p: string]: Logger;\n },\n prop: string\n ) {\n const logger = prop in _loggers ? _loggers[prop].logger : _loggers.system.logger;\n\n switch (prop) {\n case \"create\":\n return create;\n default:\n return logger;\n }\n }\n};\n\ntype Public = Record & {\n create: typeof create;\n};\n\n/**\n * CLI commands for the debugger\n * @type {{debug: {fn: ([command, ...args]: Array) => (string | string), description: string}}}\n * @example\n * ```\n * > debug list\n * a,b,c,other,logger\n * > debug enable a b c\n * Enabled loggers: system,a,b,c\n * > debug enable all\n * Enabled loggers: system,a,b,c,other,logger\n * > debug disable a b c\n * Enabled loggers: system,other,logger\n * > debug disable all\n * Enabled loggers: system\n * ```\n */\nexport const debuggerCLI = {\n debug: {\n description: `Manage the debug tool.\n * list - list all loggers\n * enable [all | logger | logger,logger,logger] - enables one or more logger(s)\n * disable [all | logger | logger,logger,logger] - disables one or more logger(s)\n `,\n fn: ([command, ...args]: Array) => {\n switch (command) {\n case \"list\":\n return _.map(_loggers, (v, k) => k).join(\", \");\n case \"enable\": {\n return enable(...args);\n }\n case \"disable\":\n return disable(...args);\n default:\n return \"Invalid command.\";\n }\n }\n }\n};\n\n/**\n * Any logger previously created can be referred to by its key, falling back to \"system\"\n * @type {{[p: string]: ReturnType}}\n * @example\n * ```ts\n * Debug.gamePlan.log(\"Log something.\");\n * Debug.gamePlan.error(\"An error occurred.\");\n * ```\n */\nexport const Debug = new Proxy(_.mapValues(_loggers, \"logger\"), _intf) as Public;\n\nif (window) {\n Object.defineProperty(window, \"Debug\", {\n get() {\n return {\n list: () => _.map(_loggers, (v, k) => k).join(\", \"),\n enable: (...args: string[]) => enable(...args),\n disable: (...args: string[]) => disable(...args)\n };\n }\n });\n}\n","import { getCookie, setCookie, removeCookie } from \"typescript-cookie\";\nimport * as _ from \"lodash\";\nimport { isLocal, isProduction } from \"../env\";\n\n/**\n * Domain for cookies\n * @type {string}\n */\nconst domain = isLocal() ? \"localhost\" : isProduction() ? \"connecterra.ai\" : \"connecterra.ai\";\n\n/**\n * Namespace for cookies\n * @type {string}\n */\nconst ns = \"ctra\";\n\n/**\n * Get cookie by key\n * @param {string} key\n * @return {string | undefined}\n */\nconst get = (key: string) => getCookie(_.startsWith(key, ns) ? key : `${ns}.${key}`);\n\n/**\n * Set cookie by key\n * @param {string} key\n * @param {string} value\n * @return {string}\n */\nconst set = (key: string, value: string) =>\n setCookie(_.startsWith(key, ns) ? key : `${ns}.${key}`, value, {\n expires: 365,\n domain,\n path: \"/\"\n });\n\n/**\n * Remove cookie by key\n * @param {string} key\n */\nconst remove = (key: string) =>\n removeCookie(_.startsWith(key, ns) ? key : `${ns}.${key}`, {\n domain,\n path: \"/\"\n });\n\n/**\n * CTRA global cookie interface\n * @type {{set: (key: string, value: string) => string, get: (key: string) => string | undefined, remove: (key: string) => void}}\n */\nexport const Cookies = {\n get,\n set,\n remove\n};\n\nexport enum CookieKeys {\n cookieConsent = \"cookieConsent\",\n invitationCode = \"invitationCode\",\n referrer = \"referrer\"\n}\n","import hsl from \"hsl-to-hex\";\n\nimport { ColorType } from \"./utils\";\n\n/**\n * Converts hsl to hex\n * @param color\n * @returns\n */\nexport const hslToHex = (color: ColorType): string => {\n const { hue, saturation, luminosity } = color;\n return hsl(hue, saturation, luminosity);\n};\n","/* istanbul ignore file - just a bunch of vars and types */\nimport { getStorageKey } from \"../versioning\";\n\nexport const localColorStoreKey = `${getStorageKey()}.colors`;\nexport type ColorType = { hue: number; saturation: number; luminosity: number };\n\n/**\n * Hue palette\n *\n * According to our design scheme:\n * @see https://www.figma.com/file/8cUXP1eqw1Wft9YTDvTezo/Ida-Enterprise-v3.0?node-id=7160%3A433594\n */\nexport const huePalette: Array = [100, 228, 52, 327, 265, 25, 77, 357, 187, 32, 0, 180, 40];\n\n/**\n * export const colorPalette: Array = [\n \"#52C41A\",\n \"#2F54EB\",\n \"#FADB14\",\n \"#EB2F96\",\n \"#722ED1\",\n \"#FF6C01\",\n \"#A0D911\",\n \"#F5222D\",\n \"#009EB3\",\n \"#FF8E0A\",\n \"#BFBFBF\"\n \"#13C2C2\",\n \"#FAAD14\",\n];\n */\n","import { format } from \"./format\";\n\n/**\n * @type {{format: (x: number) => string}}\n */\nexport const Nmbr = {\n format\n};\n","/**\n * Format number to string with commas\n * @param {number} x\n * @return {string}\n */\nexport const format = (x: number) => x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n","import * as _ from \"lodash\";\n\ndeclare global {\n interface Window {\n CTRA_MOBILE_WRAPPER: boolean;\n CTRA_DEVICE_INFO: Record;\n }\n}\n\n/**\n * Tell if the device is iOs\n */\nexport const isIosDevice = () => {\n const isMedianMobile = _.get(window, [\"CTRA_MOBILE_WRAPPER\"], false);\n const medianPlatform = _.get(window, [\"CTRA_DEVICE_INFO\", \"platform\"], null);\n const userAgent = navigator.userAgent;\n\n // Check for iPhone, iPad, or iPod\n const isIOSDevice = /iPhone|iPad|iPod/i.test(userAgent);\n\n // Check for iOS versions\n const iosVersionMatch = userAgent.match(/OS (\\d+)_\\d+/);\n const iosVersion = iosVersionMatch ? parseInt(iosVersionMatch[1], 10) : null;\n\n return (isIOSDevice && iosVersion !== null) || (isMedianMobile && medianPlatform === \"ios\");\n};\n","/**\n * Resize an image to a specific width\n * @param {string} base64String\n * @param {number} width\n * @returns {Promise}\n */\nexport const resizeBase64Image = (base64String: string, width: number) => {\n return new Promise(async function (resolve, reject) {\n const img = new Image();\n\n img.src = base64String;\n\n img.onload = function () {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n\n canvas.width = width;\n canvas.height = img.height * (width / img.width);\n\n if (ctx) {\n ctx.save();\n ctx.fillStyle = \"#FFFFFF\";\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n // @ts-expect-error - this\n ctx.drawImage(this, 0, 0, canvas.width, canvas.height);\n }\n\n const dataURI = canvas.toDataURL(\"image/jpeg\", 0.85);\n\n resolve(dataURI);\n };\n\n img.src = base64String;\n });\n};\n","import { ComponentProps, FC } from \"react\";\nimport { Typography } from \"antd\";\n\nimport { classname } from \"@ctra/utils\";\n\nimport styles from \"./Title.module.less\";\n\nconst { Title } = Typography;\n\n/**\n * Title with a dark or light theme\n * @param {\"light\" | \"dark\" | \"black\" | undefined} theme\n * @param {number | undefined} weight\n * @param {string | undefined} className\n * @param {1 | 2 | 3 | 4 | 5 | 6 | undefined} level\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined | (React.ReactElement> & undefined) | (Iterable & undefined) | (React.ReactPortal & undefined)} children\n * @param {React.CSSProperties | undefined} style\n * @param {Pick, \"level\"> & {weight?: number, theme?: \"light\" | \"dark\" | \"black\", level: 1 | 2 | 3 | 4 | 5 | 6 | undefined} & {children?: React.ReactNode | undefined}, \"title\" | \"editable\" | \"copyable\" | \"type\" | \"disabled\" | \"ellipsis\" | \"code\" | \"mark\" | \"underline\" | \"delete\" | \"keyboard\" | \"italic\" | \"id\" | \"prefixCls\" | \"aria-label\" | \"direction\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChange\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"ref\" | \"key\">} props\n * @return {JSX.Element}\n * @constructor\n */\nexport const ThemedTitle: FC<\n Omit, \"level\"> & {\n weight?: number;\n theme?: \"light\" | \"dark\" | \"black\";\n level: 1 | 2 | 3 | 4 | 5 | 6 | undefined;\n }\n> = ({ theme, weight, className, level, children, style, ...props }) =>\n !level || level < 6 ? (\n [\"level\"]}\n style={weight ? { fontWeight: weight, ...style } : style}\n {...props}\n >\n {children}\n \n ) : (\n \n {children}\n \n );\n","import { Dispatch, SetStateAction } from \"react\";\n\nimport { ChartTimePeriod, ISODuration, ChartFilters, ChartFilterDefinition, FarmEntity } from \"@ctra/api\";\nimport { Nullable } from \"@ctra/utils\";\n\nimport { FilterSetter, ISODurationSetter } from \"@chart\";\n\nexport interface FilterMetadata {\n filterDefinitions: Array;\n supportedISODurations: Readonly>;\n supportedfarmIDs: Array;\n flags: { isBackendAggregated: boolean };\n offset?: number;\n showFilters?: boolean;\n}\n\nexport enum DateMethod {\n custom = \"custom\",\n iso = \"iso\"\n}\n\nexport type FilterProviderAPI = {\n /**\n * set current ISO duration value (to be converted to a time period)\n */\n setISODuration: ISODurationSetter;\n /**\n * set time unit\n */\n setBucketSize: ISODurationSetter;\n /**\n * set a given filter to a given value\n */\n setFilter: FilterSetter;\n /**\n * reset all filters to their default values\n */\n reset: () => void;\n /**\n * set the series on the chart\n */\n setSeries: Dispatch<\n SetStateAction<{\n available: Record;\n active: Array;\n }>\n >;\n /**\n * set time period from within custom date range selector\n */\n setTimePeriod: Dispatch>;\n /**\n * set filter metadata\n */\n setMetadata: Dispatch>;\n /**\n * set the current date range deciding method\n */\n setCurrentDateMethod: Dispatch>;\n};\n\nexport type FilterProviderProps = {\n series?: string[];\n filters?: ChartFilters;\n isoDuration?: Nullable;\n timePeriod?: ChartTimePeriod;\n bucketSize?: ISODuration;\n durationOptions?: Readonly>;\n /**\n * Force values to stay the same\n */\n currentValues?: {\n isoDuration?: Nullable;\n timePeriod?: ChartTimePeriod;\n bucketSize?: ISODuration;\n };\n};\n\nexport type ContextType = {\n filters: ChartFilters;\n timePeriod: ChartTimePeriod;\n isoDuration: Nullable;\n bucketSize: ISODuration;\n series: {\n available: Record;\n active: Array;\n };\n api: FilterProviderAPI;\n metadata: FilterMetadata;\n currentDateMethod?: DateMethod;\n};\n","import { useState, useRef } from \"react\";\nimport * as _ from \"lodash\";\nimport useDeepCompareEffect from \"use-deep-compare-effect\";\n\nimport { ChartFilters } from \"@ctra/api\";\nimport { Nullable } from \"@ctra/utils\";\n\nexport type FilterSetter = (\n filterName: A,\n value: ChartFilters[A],\n options?: { asPreset?: boolean }\n) => void;\n\n/**\n * Merge two filter objects without undefined values\n * @param {Nullable} a\n * @param {Nullable} b\n * @returns {ChartFilters}\n */\nconst merge = (a: Nullable, b: Nullable): ChartFilters => {\n return _.omitBy(\n _.mapValues(\n {\n ...a,\n ...b\n },\n _.compact\n ),\n _.isEmpty\n ) as ChartFilters;\n};\n\n/**\n * API hook to to update chart filters\n * @param defaultFilters - these come from the chart object, initially empty\n * @param presetFilters - developer-presets\n */\nexport const useFilter = (\n defaultFilters: Nullable,\n presetFilters?: ChartFilters\n): [ChartFilters, FilterSetter, () => void] => {\n /**\n * We combine the preset and the user defined filters.\n * The preset always have priority. Eg. via props we can set a\n * list of farm ids which will apply to the chart and can be overridden\n * by the user interface. The default filters come from the BE\n * baked in the chart config or set by Redux.\n *\n * Using a ref keeps track of the incoming filters to\n * so changes from the outside may be detected.\n * If the props of the wrapper component change,\n * the filters must be updated.\n */\n const filterRef = useRef(merge(defaultFilters, presetFilters));\n\n const [filters, setFilters] = useState(filterRef.current);\n\n useDeepCompareEffect(() => {\n const updatedFilters = merge(defaultFilters, presetFilters);\n\n /**\n * Prevent a setState loop by checking if the filters actually\n * got updated from the outside.\n */\n if (!_.isEqual(updatedFilters, filterRef.current)) {\n setFilters(updatedFilters);\n filterRef.current = updatedFilters;\n }\n }, [defaultFilters, presetFilters]);\n\n /**\n * Update a given filter with the provided value\n * @param filterName\n * @param value\n */\n const updateFilter: FilterSetter = (filterName, value) => {\n setFilters(\n /**\n * Apply the filter value as it is overriding anything else\n */\n merge(filters, { [filterName]: value })\n );\n };\n\n /**\n * Reset the filters to the initial state\n */\n const reset = () => {\n setFilters(merge(defaultFilters, presetFilters));\n };\n\n return [filters, updateFilter, reset];\n};\n","import { useState, useEffect, Dispatch, SetStateAction, useRef } from \"react\";\nimport moment from \"moment\";\nimport * as _ from \"lodash\";\n\nimport { ChartTimePeriod, ISODuration } from \"@ctra/api\";\nimport { iso8601Ago, Nullable } from \"@ctra/utils\";\nimport { DateMethod } from \"../providers\";\n\n/**\n * @param {} inputIsoDuration\n * @param {{startDate: string, endDate: string} | Record} inputTimePeriod\n * @param {DateMethod} currentDateMethod\n * @param {number} offset\n * @return {[ChartTimePeriod, React.Dispatch>]}\n */\nexport const useTimePeriod = (\n {\n isoDuration: inputIsoDuration,\n timePeriod: inputTimePeriod,\n currentDateMethod\n }: {\n isoDuration?: Nullable;\n timePeriod?: ChartTimePeriod;\n currentDateMethod?: DateMethod;\n } = {},\n offset: number\n): [ChartTimePeriod, Dispatch>] => {\n const firstUpdate = useRef(true);\n\n /**\n * Get the default display interval as start date string,\n * which is basically picking a date in the past which\n * matches the default duration + data lag offset.\n */\n const isoStartDate = inputIsoDuration ? iso8601Ago(inputIsoDuration, offset) : void 0;\n\n /**\n * Select input time period if date method is custom\n */\n const startDate = _.get(\n currentDateMethod === DateMethod.custom ? inputTimePeriod : isoStartDate,\n \"startDate\",\n isoStartDate\n );\n\n /**\n * Get the end date string using the data offset value.\n * This does not change as we assume the users would be interested in\n * \"N units ago ... now\". The data offset is taken into account.\n */\n const isoEndDate = inputIsoDuration\n ? moment().subtract(offset, \"seconds\").startOf(\"hour\").toISOString()\n : void 0;\n\n /**\n * Select input time period if date method is custom\n */\n const endDate = _.get(\n currentDateMethod === DateMethod.custom ? inputTimePeriod : isoEndDate,\n \"endDate\",\n isoEndDate\n );\n\n /**\n * Prepare a state for time period switching\n * Start with date strings of the default display interval or nothing\n */\n const [timePeriod, setTimePeriod] = useState(\n startDate && endDate ? { startDate, endDate } : {}\n );\n\n /**\n * Update time period whenever date strings change from dropdown\n */\n useEffect(() => {\n if (firstUpdate.current) {\n firstUpdate.current = false;\n } else {\n /**\n * Any invalid time period falls back to the previous one until set properly\n */\n setTimePeriod(startDate && endDate ? { startDate, endDate } : timePeriod);\n }\n // eslint-disable-next-line\n }, [startDate, endDate]);\n\n return [timePeriod, setTimePeriod];\n};\n","import { useState, useEffect, useRef } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { ISODuration } from \"@ctra/api\";\nimport { Nullable } from \"@ctra/utils\";\n\nexport type ISODurationSetter> = (isoDuration: T) => void;\n\n/**\n * Custom hook for managing the ISO duration settings for charts\n *\n * The ISODuration can be set from 3 points namely: via props,\n * via API contexts (ChartAPIContext and SectionContext),\n * and from the select dropdowns by the user.\n *\n * When the props is set and on first render, we want it to be the initial value, which can then be updated via the dropdowns\n * Other times, we want the value from the chart/section contexts to be the initial value\n *\n * So, we are using a ref to keep track of the first render.\n * After the first render, other channels can go on to update the ISODuration\n *\n * @param {Nullable} initialISODuration\n * @return {[Nullable, ISODurationSetter]}\n */\nexport const useISODuration = >(\n initialISODuration?: T\n): [T, ISODurationSetter] => {\n const firstUpdate = useRef(true);\n\n const [currentDuration, setCurrentDuration] = useState(_.defaultTo(initialISODuration, null) as T);\n\n /**\n * @param {T} isoDuration\n */\n const updateCurrentDuration: ISODurationSetter = (isoDuration: T) => {\n if (!firstUpdate.current || _.isUndefined(initialISODuration)) {\n setCurrentDuration(isoDuration);\n }\n };\n\n useEffect(() => {\n firstUpdate.current = false;\n }, []);\n\n return [currentDuration, updateCurrentDuration];\n};\n","import { FC, useState, createContext, useContext } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Charts, DataDictionary } from \"@ctra/api\";\nimport { useFilter, useISODuration, useTimePeriod } from \"@chart\";\n\nimport { ContextType, DateMethod, FilterMetadata, FilterProviderProps } from \"./typings\";\nimport { useUserPreferences } from \"@base\";\n\n/**\n * Default filter metadata\n * @type {{offset: number, flags: {isBackendAggregated: boolean}, supportedISODurations: string[], supportedfarmIDs: any[], showFilters: boolean, filterDefinitions: any[]}}\n */\nconst defaultMetadata: FilterMetadata = {\n supportedISODurations: Charts.utils.supportedDurations,\n showFilters: true,\n filterDefinitions: [],\n flags: { isBackendAggregated: false },\n offset: 86400,\n supportedfarmIDs: []\n};\n\n/**\n * Default filter context value\n * @type {{metadata: FilterMetadata, series: any[], timePeriod: {}, filters: {}, api: {setMetadata: (...args: any[]) => void, setISODuration: (...args: any[]) => void, reset: (...args: any[]) => void, setCurrentDateMethod: (...args: any[]) => void, setTimePeriod: (...args: any[]) => void, setFilter: (...args: any[]) => void}, isoDuration: null}}\n */\nexport const defaultFilterContextValue: ContextType = {\n filters: {},\n timePeriod: {},\n isoDuration: null,\n bucketSize: DataDictionary.DefaultDataInterval,\n metadata: defaultMetadata,\n series: {\n available: {},\n active: []\n },\n api: {\n reset: _.noop,\n setSeries: _.noop,\n setISODuration: _.noop,\n setBucketSize: _.noop,\n setFilter: _.noop,\n setTimePeriod: _.noop,\n setMetadata: _.noop,\n setCurrentDateMethod: _.noop\n }\n};\n\nconst DefaultContext = createContext(defaultFilterContextValue);\n\n/**\n * Provides API for changing time, unit, series, and filters\n * @note values come from props, section/chart that call the setter APIs down the components tree\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @param {{}} initialFilters\n * @param {any[]} initialSeries\n * @param {string | null | undefined} initialISODuration\n * @param {{}} initialTimePeriod\n * @param {string} initialBucketSize\n * @param {{isoDuration?: Nullable, timePeriod?: ChartTimePeriod, bucketSize?: ISODuration} | undefined} currentValues\n * @param {ReadonlyArray | undefined} durationOptions\n * @returns {JSX.Element}\n */\nconst _ChartFilterProvider: FC = ({\n children,\n filters: initialFilters = {},\n series: initialSeries = [],\n isoDuration: initialISODuration,\n timePeriod: initialTimePeriod = {},\n bucketSize: initialBucketSize = DataDictionary.DefaultDataInterval,\n currentValues,\n durationOptions\n}) => {\n const {\n preferences: {\n sandbox: { isEnabled: isSandboxEnabled }\n }\n } = useUserPreferences();\n\n /**\n * Manage the time period and the time unit via ISO durations\n */\n const [isoDuration, setISODuration] = useISODuration(initialISODuration);\n const [bucketSize, setBucketSize] = useISODuration(initialBucketSize);\n\n /**\n * Manage the active and available series (visual filter to be saved)\n */\n const [series, setSeries] = useState<{\n available: Record;\n active: Array;\n }>({ available: {}, active: initialSeries });\n\n /**\n * Tell whether the date used for data fetching is an ISO duration or a from-to time period\n * @type {DateMethod.iso}\n */\n const dateMethod = initialISODuration ? DateMethod.iso : DateMethod.custom;\n const [currentDateMethod, setCurrentDateMethod] = useState(dateMethod);\n\n /**\n * Manage the chart metadata\n */\n const [metadata, setMetadata] = useState(\n durationOptions ? { ...defaultMetadata, supportedISODurations: durationOptions } : defaultMetadata\n );\n\n /**\n * Manage the from-to time perios\n */\n const [timePeriod, setTimePeriod] = useTimePeriod(\n {\n isoDuration: currentValues?.isoDuration || isoDuration,\n timePeriod: currentValues?.timePeriod || initialTimePeriod,\n currentDateMethod: dateMethod\n },\n _.defaultTo(metadata.offset, 86400)\n );\n\n /**\n * Manage any eventual data filters (non visual, changes chart query and data fetching params)\n */\n const [filters, setFilter, reset] = useFilter(\n Charts.utils.getDefaultFilters(metadata.filterDefinitions),\n initialFilters\n );\n\n return (\n \n {children}\n \n );\n};\n\nexport const ChartFilterContext = {\n Provider: _ChartFilterProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Hook for Base Filter context\n * @returns\n */\nexport const useChartFilters = (): ContextType => useContext(DefaultContext);\n","import { useEffect, useContext, createContext, FC, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\n\nimport {\n DataDescriptorEntity,\n EnterpriseAppState,\n Enterprise,\n ChartDataSourceType,\n UnitSystemConversionMap,\n ChartEntity\n} from \"@ctra/api\";\n\nimport { UnitSystem } from \"@ctra/utils\";\n\nimport { useLocalization } from \"@base\";\n\nimport { useChart, useKPISupport } from \"../../hooks\";\nimport { useViews } from \"../../hooks/useViews\";\nimport { useChartFilters } from \"../ChartFilterContext\";\nimport { ChartAPIProviderProps, ContextType } from \"./typings\";\n\n/**\n * Default Chart API Context\n */\nconst DefaultContext = createContext({\n chart: \"Empty context: no chart\" as unknown as ChartEntity,\n dataDescriptor: \"Empty context: no data descriptor\" as unknown as DataDescriptorEntity,\n api: {\n setChart: _.noop,\n setRequestURL: _.noop\n },\n meta: {\n requestURL: \"\",\n unitSystem: UnitSystemConversionMap[UnitSystem.metric],\n supportedViews: {},\n farms: { hasNoSupport: [], hasSupport: [] },\n sourceType: ChartDataSourceType.dataPoints\n }\n});\n\n/**\n * Provide an API for displaying/updating charts and set meta data used to initialize filter context values\n * @param {string} dataDescriptorID\n * @param {number | undefined} farmID\n * @param {string | undefined} defaultView\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @returns {JSX.Element}\n */\nconst _ChartAPIProvider: FC = ({\n dataDescriptorID,\n farmID,\n defaultView,\n children\n}) => {\n const { unitSystem: contextUnitSystem } = useLocalization();\n\n const {\n api: { setMetadata }\n } = useChartFilters();\n\n /**\n * Resolve the chart object and a basic chart switching API using the data descriptor\n */\n const supportedViews = useViews(dataDescriptorID);\n const [chart, setChart] = useChart(dataDescriptorID, defaultView && supportedViews[defaultView]);\n\n /**\n * Manage the chart request URL which is necessary for sharing\n */\n const [requestURL, setRequestURL] = useState(\"\");\n\n /**\n * Farm support information, partitions the farm id list based on chart support\n * @note this is important so when unsupported farms try to access the chart, we can disaply an error message\n */\n const { hasSupport, hasNoSupport } = useKPISupport(dataDescriptorID, farmID ? [farmID] : undefined);\n\n /**\n * Get the data descriptor and tell whether and imperial data conversion is supported\n * @type {DataDescriptorEntity}\n */\n const dataDescriptorEntity = useSelector((state) =>\n Enterprise.entities.getDataDescriptor(state, { id: dataDescriptorID })\n );\n\n /**\n * Always use the context unit system as the default unit system, even is imperial is not supported\n * @type {UnitSystemParam}\n */\n const unitSystem = UnitSystemConversionMap[contextUnitSystem];\n\n /**\n * Manage the metadata and update the filtering context when the chart ID changes\n * @note this mostly happens when the user switches between charts, and we replace it without remounting\n */\n useEffect(() => {\n const isBackendAggregated = _.some(chart.filters, \"isBackendAggregated\");\n\n setMetadata((metadata) => ({\n ...metadata,\n flags: { ...metadata.flags, isBackendAggregated },\n supportedfarmIDs: hasSupport\n }));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [chart.id]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const ChartAPIContext = {\n Provider: _ChartAPIProvider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Hook for Chart context\n * @returns\n */\nexport const useChartAPI = (): ContextType => useContext(DefaultContext);\n","import { useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\n\nimport { ChartEntity, ChartList, DataDescriptorEntity, Enterprise, EnterpriseAppState } from \"@ctra/api\";\n\n/**\n * Get a list of available chart views in a data descriptor\n * @param dataDescriptorID\n */\nexport const useViews = (\n dataDescriptorID: DataDescriptorEntity[\"id\"]\n): Record => {\n /**\n * Resolve data descriptor from data descriptor id\n */\n const descriptor = useSelector((state) =>\n Enterprise.entities.getDataDescriptor(state, { id: dataDescriptorID })\n );\n\n const supportedCharts = descriptor?.supportedCharts;\n\n /**\n * Get the corresponding charts from the store\n */\n const chartEntities = useSelector((state) =>\n supportedCharts ? (Enterprise.entities.getChart(state, { id: supportedCharts }) as ChartList) : {}\n );\n\n return _.invert(_.mapValues(chartEntities, \"view\"));\n};\n","import { useState, useEffect, Dispatch, SetStateAction } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\n\nimport { ChartEntity, DataDescriptorEntity, Enterprise, EnterpriseAppState } from \"@ctra/api\";\nimport { Optional } from \"@ctra/utils\";\n\n/**\n * Provide a chart switching API given a data descriptor id\n * @param {DataDescriptorEntity[\"id\"]} dataDescriptorID\n * @param {} defaultChartID\n * @return {[ChartEntity, React.Dispatch>]}\n */\nexport const useChart = (\n dataDescriptorID: DataDescriptorEntity[\"id\"],\n defaultChartID?: Optional\n): [ChartEntity, Dispatch>] => {\n /**\n * Resolve data descriptor from data descriptor id\n */\n const dataDescriptor = useSelector((state) =>\n Enterprise.entities.getDataDescriptor(state, { id: dataDescriptorID })\n );\n\n if (!dataDescriptor) {\n throw new Error(`Data descriptor \"${dataDescriptorID}\" could not be located in the store.`);\n }\n\n const { supportedCharts } = dataDescriptor;\n const defaultMongoChartsID = defaultChartID || _.first(supportedCharts);\n\n if (!defaultMongoChartsID) {\n throw new Error(`Data descriptor \"${dataDescriptorID}\" does not have any charts.`);\n }\n\n /**\n * Prepare a state for chart ID switching.\n * Use the default Mongo chart ID to start with.\n */\n const [currentChartID, setCurrentChartID] = useState(defaultMongoChartsID);\n\n /**\n * If the data descriptor updates, update the chart ID as well\n */\n useEffect(() => {\n setCurrentChartID(defaultMongoChartsID);\n }, [defaultMongoChartsID]);\n\n /**\n * Resolve the current chart\n */\n const chart = useSelector(\n (state) => Enterprise.entities.getChart(state, { id: currentChartID }) as ChartEntity\n );\n\n return [chart, setCurrentChartID];\n};\n","import { useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\n\nimport { Enterprise, DataDescriptorEntity, EnterpriseAppState, FarmEntity } from \"@ctra/api\";\n\n/**\n * Tell which of the given farms have support for the given KPI\n * @param dataDescriptorID\n * @param farmIDList\n */\nexport const useKPISupport = (\n dataDescriptorID: DataDescriptorEntity[\"id\"],\n farmIDList: Array = []\n): Record<\"hasSupport\" | \"hasNoSupport\", Array> => {\n /**\n * Resolve data descriptor from data descriptor id\n */\n const dataDescriptor = useSelector((state) =>\n Enterprise.entities.getDataDescriptor(state, { id: dataDescriptorID })\n );\n\n if (!dataDescriptor) {\n throw new Error(`Data descriptor \"${dataDescriptorID}\" could not be located in the store.`);\n }\n\n /**\n * Get all the farm ids which are associated with the app\n */\n const availableFarmIDList = useSelector>((state) =>\n _.map(Enterprise.entities.getFarmList(state), \"id\")\n );\n\n const { supportedFarms } = dataDescriptor;\n\n /**\n * Tell which farms support the KPI\n */\n const supportedBy = _.intersection(\n _.isEmpty(farmIDList) ? availableFarmIDList : farmIDList,\n supportedFarms\n );\n\n /**\n * Tell which farms does not support the KPI\n */\n const blockedBy = _.difference(_.isEmpty(farmIDList) ? availableFarmIDList : farmIDList, supportedFarms);\n\n return {\n hasSupport: supportedBy,\n hasNoSupport: blockedBy\n };\n};\n","import { FC, createContext, useContext, memo } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { AjaxError } from \"rxjs/ajax\";\nimport * as _ from \"lodash\";\nimport moment from \"moment\";\n\nimport { isDispatched, isPending, isRejected, Nullable, Optional, TS } from \"@ctra/utils\";\nimport { Enterprise, Charts, EnterpriseAppState, ChartData, ChartTimePeriod } from \"@ctra/api\";\n\nimport { useChartAPI } from \"../ChartAPIContext\";\nimport { useChartFilters } from \"../ChartFilterContext\";\nimport { useDebounce } from \"../../hooks/useDebounce\";\nimport { useDeepCompareEffect } from \"use-deep-compare\";\n\ntype ContextType = {\n data: Optional;\n meta: Optional;\n requestURL: Nullable;\n flags: {\n isLoading: boolean;\n hasFailed: boolean;\n hasConsent: boolean;\n };\n};\n\n/**\n * Default chart data provider context\n */\nconst DefaultContext = createContext({\n data: void 0,\n meta: void 0,\n requestURL: null,\n flags: {\n isLoading: true,\n hasFailed: false,\n hasConsent: false\n }\n});\n\n/**\n * Adjust the date range to the current date if the end date is in the future\n * @param {string} startDate\n * @param {string} endDate\n * @param {Nullable} maxProjection\n * @param {boolean} forceProjection\n * @returns {ChartTimePeriod}\n */\nconst adjustTimePeriod = (\n { startDate, endDate }: ChartTimePeriod,\n maxProjection?: Nullable,\n forceProjection?: boolean\n): ChartTimePeriod => {\n const endMoment = TS.asMoment(endDate);\n const now = moment().utc().endOf(\"day\");\n const kindOfToday = now.diff(endMoment, \"days\") < 2;\n let adjustedEndDate = endDate;\n\n if (kindOfToday && forceProjection) {\n adjustedEndDate = endMoment.clone().add(moment.duration(maxProjection)).toISOString();\n }\n\n if (endMoment.isAfter(now) && maxProjection) {\n const maxEndDate = endMoment.clone().add(moment.duration(maxProjection));\n adjustedEndDate = (maxEndDate.isAfter(endMoment) ? endMoment : maxEndDate).toISOString();\n }\n\n return { startDate, endDate: adjustedEndDate };\n};\n\n/**\n * This is where the chart ID and the filters convert to a URL\n * @constructor\n */\nexport const _ChartDataProvider: FC = memo(({ children }) => {\n const dispatch = useDispatch();\n\n const {\n chart: {\n dataURL,\n id: chartID,\n dataProperties: { maxProjectionInterval }\n },\n meta: {\n unitSystem,\n sourceType,\n farms: { hasSupport: farmIDs }\n }\n } = useChartAPI();\n\n const {\n timePeriod,\n bucketSize,\n filters,\n metadata: {\n flags: { isBackendAggregated }\n }\n } = useChartFilters();\n\n const adjustedTimePeriod = adjustTimePeriod(timePeriod, maxProjectionInterval);\n const queryFilter = isBackendAggregated ? filters : undefined;\n\n /**\n * Make a hash from the chart fingerprint\n */\n const hash = Charts.utils.makeChartHash(\n chartID,\n adjustedTimePeriod,\n bucketSize,\n farmIDs,\n unitSystem,\n queryFilter\n );\n\n /**\n * Check if there is a URL in our store already\n */\n const data = useSelector>((state) =>\n _.isEmpty(adjustedTimePeriod) ? void 0 : Enterprise.entities.getChartData(state, { hash })\n );\n\n /**\n * Tell whether the fetching action has already been dispatched\n * @type {boolean}\n */\n const dispatched = useSelector((state) =>\n isDispatched(state, Charts.types.FETCH_CHART_DATA, { primaryValue: hash })\n );\n\n /**\n * Tell whether the chart data is being fetched\n * @type {boolean}\n */\n const isLoading = useSelector((state) =>\n isPending(state, Charts.types.FETCH_CHART_DATA, { primaryValue: hash })\n );\n\n /**\n * Tell whether the chart has failed loading\n */\n const hasFailed = useSelector((state) =>\n isRejected(state, Charts.types.FETCH_CHART_DATA, { primaryValue: hash })\n );\n\n /**\n * Get the request URL for the chart\n * @type {Nullable}\n */\n const requestURL = useSelector>((state) =>\n Enterprise.entities.getChartRequestURL(state, { hash })\n );\n\n /**\n * Get ajax error if the chart has failed to load\n */\n const error = useSelector((state) =>\n Enterprise.entities.getChartError(state, { hash })\n );\n\n /**\n * If the error code is 401\n * then the farm owner does not have consent\n * to view the particular chart/KPI\n */\n const hasConsent = error?.status !== 401;\n\n const { debounce } = useDebounce();\n\n useDeepCompareEffect(() => {\n /**\n * @todo allow re-dispatch when the chart has failed the user requests a reload\n */\n if (!_.isEmpty(adjustedTimePeriod) && !data && !dispatched) {\n debounce(\n () => {\n dispatch(\n Charts.actions.fetchChartData.start(\n chartID,\n sourceType,\n adjustedTimePeriod,\n bucketSize,\n farmIDs,\n unitSystem,\n queryFilter,\n dataURL\n )\n );\n },\n {\n chartID,\n sourceType,\n adjustedTimePeriod,\n bucketSize,\n farmIDs,\n unitSystem,\n queryFilter\n }\n );\n }\n }, [\n dispatched,\n data,\n chartID,\n farmIDs,\n adjustedTimePeriod,\n sourceType,\n unitSystem,\n bucketSize,\n queryFilter\n ]);\n\n return (\n \n {children}\n \n );\n});\n\nexport const ChartDataContext = {\n Provider: _ChartDataProvider,\n Consumer: DefaultContext.Consumer\n};\n\n_ChartDataProvider.displayName = \"_ChartDataProvider\";\n\n/**\n * Hook for chart data provider context\n * @returns\n */\nexport const useChartData = (): ContextType => useContext(DefaultContext);\n","import { useRef, useState } from \"react\";\nimport { useDeepCompareEffect } from \"use-deep-compare\";\n\ntype Fn = (...params: any[]) => void;\ntype Queue = { fn: Fn; meta: Record }[];\ntype Intf = { debounce: (callback: Fn, meta: Record) => void };\n\n/**\n * Debounce hook for any callbacks passed (not just the same function)\n * @param {number} delay\n * @param {boolean} head\n * @returns {Intf}\n */\nexport const useDebounce = (delay = 500, { head }: { head: boolean } = { head: false }): Intf => {\n const [queue, setQueue] = useState([]);\n const timeout = useRef | null>(null);\n\n useDeepCompareEffect(() => {\n if (queue.length) {\n if (timeout.current) {\n clearTimeout(timeout.current);\n }\n\n timeout.current = setTimeout(() => {\n const { fn } = head ? queue[0] : queue[queue.length - 1];\n\n fn();\n setQueue([]);\n }, delay);\n }\n }, [queue]);\n\n return {\n debounce: (callback: Fn, meta: Record = {}) => {\n setQueue((current) =>\n current.concat({\n fn: callback,\n meta: meta\n })\n );\n }\n };\n};\n","import { FC, createContext, useContext, useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\nimport { useLocation } from \"react-router-dom\";\n\nimport { Enterprise, EnterpriseAppState, ShareChartResponse, Charts, ShareChartPayload } from \"@ctra/api\";\nimport { Nullable, isPending, isFulfilled, Optional, readableHash } from \"@ctra/utils\";\nimport { URIState } from \"@routes\";\nimport { useDataDictionary, useLocalization } from \"@base\";\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\nimport { useCurrentUser } from \"@auth\";\nimport { useDeepCompareEffect } from \"use-deep-compare\";\nimport { useFarm } from \"@farms\";\n\ntype Error = ReturnType[\"payload\"];\n\ninterface ContextType {\n chart: Nullable;\n attachment: Nullable | Error>;\n api: {\n isError: (value: unknown) => value is Error;\n publish: () => void;\n update: (id: ShareChartResponse[\"id\"], email: string, message: Optional) => void;\n };\n meta: {\n isUpdating: boolean;\n isPublishing: boolean;\n isFetching: boolean;\n isUpdated: boolean;\n };\n}\n\nconst {\n analytics: {\n config: {\n metric: { displayName },\n variant: variantCopy,\n source: sourceCopy\n }\n }\n} = Content;\n\nconst DefaultContext = createContext({\n chart: null,\n attachment: null,\n api: {\n // @ts-expect-error - this is a default value\n isError: () => false,\n publish: _.noop,\n update: _.noop\n },\n meta: {\n isUpdating: false,\n isPublishing: false,\n isFetching: true,\n isUpdated: false\n }\n});\n\n/**\n * Check if the value is an error\n * @param value\n * @returns {value is Error}\n */\nconst isError = (value: unknown): value is Error => {\n return _.has(value, \"error\");\n};\n\n/**\n * Context provider\n * @param {string} shortID\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @returns {JSX.Element}\n */\nconst _Provider: FC<{ shortID?: ShareChartResponse[\"shortId\"] }> = ({ shortID, children }) => {\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const { state } = useLocation();\n const { locale } = useLocalization();\n const [chart, setChart] = useState();\n const { farm } = useFarm();\n\n const {\n api: { getFullname }\n } = useCurrentUser();\n\n const {\n api: { extractSource, extractChartInfo }\n } = useDataDictionary();\n\n const { dataDescriptorID, chartID, farmID, filterContext, requestURL, base64Content } = _.defaultTo(\n state?.shareChart,\n {} as NonNullable\n );\n\n /**\n * Hash for the chart (if there is any)\n * @type {string}\n */\n const hash = readableHash({ dataDescriptorID, ...filterContext });\n\n /**\n * Get the context the chart needs to be shared and stay interactive on the receiver side\n * @type {Partial}\n */\n const frozenState = useSelector>((state) =>\n shortID ? {} : Enterprise.entities.getChartSharingContext(state, { dataDescriptorID, chartID, farmID })\n );\n\n /**\n * Pick up the chart which is recently loaded\n */\n const [, chartResponse] = useSelector((state) =>\n isFulfilled(state, Charts.types.FETCH_SHARED_CHART, { withPayload: true })\n );\n\n /**\n * Pick up the attachment which is recently loaded\n */\n const [, attachment] = useSelector | Error]>(\n (state) => isFulfilled(state, Charts.types.FETCH_SNAPSHOT_DATA, { withPayload: true })\n );\n\n /**\n * Tells if the chart or the attachment is loading\n * @type {boolean}\n */\n const isFetching = useSelector(\n (state) =>\n isPending(state, Charts.types.FETCH_SHARED_CHART) || isPending(state, Charts.types.FETCH_SNAPSHOT_DATA)\n );\n\n /**\n * Tells if the chart is being published\n */\n const [isPublishing, publishResponse] = useSelector<\n EnterpriseAppState,\n [boolean, ShareChartResponse | Error]\n >((state) =>\n isPending(state, Charts.types.SHARE_CHART, {\n withPayload: true,\n primaryValue: hash\n })\n );\n\n /**\n * Tells if the chart is being updated\n */\n const [isUpdating, updateResponse] = useSelector(\n (state) =>\n isPending(state, Charts.types.UPDATE_SHARED_CHART, {\n primaryValue: hash,\n withPayload: true\n })\n );\n\n /**\n * Tell if the update is successful\n * @type {boolean}\n */\n const isUpdated: boolean = useSelector((state) =>\n isFulfilled(state, Charts.types.UPDATE_SHARED_CHART, {\n primaryValue: hash\n })\n );\n\n /**\n * Publish the chart to get a shareable URL\n */\n const publish = () => {\n /**\n * Metric/source/variant info\n * @type {Optional | null}\n */\n const source = dataDescriptorID ? extractSource(dataDescriptorID) : null;\n\n /**\n * Chart info\n * @type {ChartInfo | null}\n */\n const info = source ? extractChartInfo(source) : null;\n\n if (info) {\n /**\n * Translate the chart name\n */\n const translatedName = info.nameToDisplay\n ? t(displayName(info.nameToDisplay))\n : info.nameToDisplay;\n\n const payload: ShareChartPayload = {\n context: {\n sourceId: dataDescriptorID,\n sourceType: \"Chart\",\n farmId: farmID,\n startAt: filterContext.timePeriod.startDate,\n endAt: filterContext.timePeriod.endDate,\n metadata: {\n farmName: farm?.name,\n series: JSON.stringify(filterContext.series),\n locale,\n chartID: chartID,\n sharedBy: getFullname(),\n metric: info.nameToDisplay ? (displayName(info.nameToDisplay) as string) : void 0,\n variant: info.variantType ? (variantCopy(info.variantType) as string) : void 0,\n source: info.sourceNames\n ? _.map(info.sourceNames, (sourceName) => sourceCopy(sourceName))\n : void 0\n }\n },\n accessLevel: \"PublicRead\",\n type: \"Snapshot\",\n name: translatedName,\n text: \"\",\n attachments: _.compact([\n base64Content\n ? {\n name: \"screenshot\",\n base64Content\n }\n : null,\n {\n name: \"state\",\n base64Content: `data:application/json;base64,${btoa(\n unescape(encodeURIComponent(JSON.stringify(frozenState)))\n )}`\n },\n {\n name: \"data\",\n contentUrl: requestURL\n }\n ])\n };\n\n dispatch(Charts.actions.shareChart.start({ hash, ...payload }));\n } else {\n throw new Error(\"Chart cannot be published, `source` or `info` seems to be missing.\");\n }\n };\n\n /**\n * Update the shared chart\n * @param {ShareChartResponse[\"id\"]} id\n * @param {string} email\n * @param {Nullable} message\n * @param {string} onSuccess\n */\n const update = (\n id: ShareChartResponse[\"id\"],\n email: string,\n message: Nullable,\n onSuccess?: string\n ) => {\n dispatch(\n Charts.actions.updateSharedChart.start({\n accessLevel: \"PublicRead\",\n hash,\n id: id,\n userTags: [\n {\n email\n }\n ],\n text: _.defaultTo(message, void 0)\n })\n );\n };\n\n useEffect(() => {\n if (shortID) {\n dispatch(Charts.actions.fetchSharedChart.start(shortID));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [shortID]);\n\n /**\n * Set the chart data and update the JSON fields in the metadata\n */\n useDeepCompareEffect(() => {\n if (chartResponse && !isError(chartResponse)) {\n setChart({\n ...chartResponse,\n // @ts-expect-error\n context: chartResponse.context\n ? {\n ...chartResponse.context,\n metadata: {\n ..._.get(chartResponse, \"context.metadata\", {}),\n series: JSON.parse(_.get(chartResponse, \"context.metadata.series\", \"{}\"))\n }\n }\n : void 0\n });\n }\n }, [chartResponse]);\n\n /**\n * Share response from either the publish or update response\n * @type {ShareChartResponse | null}\n */\n const shareResponse = updateResponse || publishResponse;\n\n /**\n * Chart data from either the short id fetch response or the publish/update response\n * @type {null | ShareChartResponse | Error}\n */\n const chartData = _.defaultTo(chart, isPublishing ? null : shareResponse);\n\n return (\n \n {children}\n \n );\n};\n\nexport const PublicChartContext = {\n Provider: _Provider,\n Consumer: DefaultContext.Consumer\n};\n\n/**\n * Hook for context\n * @returns {ContextType}\n */\nexport const usePublicChart = (): ContextType => useContext(DefaultContext);\n","import React, { ComponentProps, FC } from \"react\";\nimport * as _ from \"lodash\";\nimport { useLocation } from \"react-router-dom\";\n\nimport { ChartEntity, ChartFilterType, Enterprise } from \"@ctra/api\";\nimport { Col, Row, Switch, Space, Typography, Button, Grid } from \"@ctra/components\";\nimport { useChartContext } from \"@ctra/charts\";\nimport { useTranslation, Enterprise as Content } from \"@ctra/i18n\";\nimport { useGoogleAnalytics } from \"@ctra/analytics\";\n\nimport { CompiledRoutes, URIState } from \"@routes\";\n\nimport {\n ChartViewFilter,\n DIMGroupFilter,\n DateMethod,\n GAActions,\n HerdGroupFilter,\n ISODurationFilter,\n useChartAPI,\n useChartFilters,\n PenFilter\n} from \"@chart\";\n\nimport styles from \"./Toolbar.module.less\";\nimport { useDataDictionary } from \"@base\";\n\nconst { Text } = Typography;\n\n/**\n * Chart filtering toolbar\n * @note This toolbar only displays when the chart\n * is not under a section context or the chart is zoomed\n * @param {boolean | undefined} withEventsToggle\n * @returns {JSX.Element}\n * @constructor\n */\nexport const Toolbar: FC = () => {\n const { t } = useTranslation();\n const { state } = useLocation();\n const searchParams = new URLSearchParams();\n const { trackEvent, label } = useGoogleAnalytics<{ label: string }>();\n const { md } = Grid.useBreakpoint();\n\n const {\n api: { extractSource }\n } = useDataDictionary();\n\n const {\n chart,\n api: { setChart },\n meta: { supportedViews }\n } = useChartAPI();\n\n const { filters, timePeriod, bucketSize, isoDuration, api, metadata } = useChartFilters();\n\n const {\n viewOptions: { showEvents, showEventToggle },\n api: { toggleEvents }\n } = useChartContext();\n\n const { setISODuration, setFilter, setTimePeriod, setCurrentDateMethod } = api;\n const { herdGroupID, dimGroupKey, penName } = filters;\n const { supportedISODurations, supportedfarmIDs } = metadata;\n\n const {\n view,\n flags: { isMultiIntervalSupported },\n filters: filterDefinitions\n } = chart as ChartEntity;\n\n const {\n chart: {\n filters: { eventToggle }\n },\n navigation: {\n fab: { compareCharts }\n }\n } = Content;\n\n /**\n * Handle herd group changes\n * @param herdGroupIDList\n */\n const onHerdGroupChange: ComponentProps[\"onHerdGroupChange\"] = (herdGroupIDList) =>\n setFilter(ChartFilterType.herdGroup, herdGroupIDList);\n\n /**\n * Handle DIM group changes\n * @param {Array} dimGroupIDList\n */\n const onDIMGroupChange: ComponentProps[\"onDIMGroupChange\"] = (dimGroupIDList) =>\n setFilter(ChartFilterType.dimGroup, dimGroupIDList);\n\n /**\n * Handle pen changes\n * @param {Array} penNameList\n */\n const onPenChange: ComponentProps[\"onPenChange\"] = (penNameList) =>\n setFilter(ChartFilterType.penName, penNameList);\n\n /**\n * Handle ISO duration changes\n * @param {} duration\n */\n const onDurationChange: ComponentProps[\"onDurationChange\"] = (duration) => {\n setCurrentDateMethod(DateMethod.iso);\n setISODuration(duration);\n };\n\n /**\n * Handle custom date range changes\n * @param {ChartTimePeriod} timePeriod\n */\n const onTimePeriodChange: ComponentProps[\"onTimePeriodChange\"] = (timePeriod) => {\n setCurrentDateMethod(DateMethod.custom);\n setTimePeriod(timePeriod);\n };\n\n /**\n * Handle chart view changes\n * @param {ChartView} view\n */\n const onViewChange: ComponentProps[\"onViewChange\"] = (view) =>\n setChart(supportedViews[view]);\n\n /**\n * Handler to toggle events on the chart\n * @param {boolean} checked\n */\n const onToggleEvents: ComponentProps[\"onChange\"] = (checked) => {\n trackEvent(GAActions.toggleEventAnnotations, { label: `${label} - ${checked ? \"on\" : \"off\"}` });\n toggleEvents(_.mapValues(showEvents, () => checked));\n };\n\n /**\n * Tell if a filter is multi-selectable\n * @param {ChartFilterType} filterType\n * @return {boolean}\n */\n const isMultiSelectable = (filterType: ChartFilterType): boolean => {\n const definition = _.find(filterDefinitions, [\"name\", filterType]);\n\n return !!definition && definition.isMultiSelectable;\n };\n\n /**\n * Tell if the chart is zoomed\n * @type {boolean}\n */\n const isZoomed = !_.isEmpty(state?.zoom);\n\n const zoom = state?.zoom;\n const variantID = zoom?.dataDescriptorID;\n // const extractedChart = extractSource(variantID!);\n\n /**\n * Route to configurator with the chart\n */\n // const handleClick = () => {\n // if (extractedChart) {\n // extractedChart?.source && searchParams.set(\"source\", extractedChart.source);\n // searchParams.set(\"variant\", extractedChart.variant);\n\n // Enterprise.history.push({\n // pathname: CompiledRoutes.app.analytics.dashboard.addChart.metric({\n // dashboard: zoom?.dashboard,\n // metricID: extractedChart.metric\n // }),\n // search: searchParams.toString(),\n // state: {\n // savedChart: {\n // view,\n // displayFilters: zoom?.displayFilters,\n // isoDuration: zoom?.isoDuration,\n // timePeriod: !zoom?.isoDuration\n // ? { startDate: zoom?.timePeriod?.startDate, endDate: zoom?.timePeriod?.endDate }\n // : void 0\n // }\n // }\n // });\n // }\n // };\n\n return (\n e.stopPropagation()}\n >\n {isZoomed && (\n <>\n {showEventToggle && (\n \n \n \n {t(eventToggle)}\n \n \n )}\n {!!dimGroupKey && (\n \n \n \n )}\n {!!herdGroupID && (\n \n \n \n )}\n {!!penName && (\n \n \n \n )}\n {_.keys(supportedViews).length > 1 && (\n \n \n \n )}\n {isMultiIntervalSupported && (\n \n \n \n )}\n {/* {isZoomed && (\n \n \n \n )} */}\n \n )}\n \n );\n};\n","import { FC } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Col, EyeOutlined, EyeInvisibleOutlined, WarningOutlined, Space, Typography } from \"@ctra/components\";\nimport { GAEvent } from \"@ctra/analytics\";\n\nimport { ChartType } from \"@ctra/api\";\nimport { useChartContext } from \"@ctra/charts\";\nimport { useTranslation, Enterprise as Content } from \"@ctra/i18n\";\n\nimport { GACategories } from \"@analytics\";\n\nconst { Text } = Typography;\n\n/**\n * Anomaly view switch\n * @return {JSX.Element}\n * @constructor\n */\nexport const AnomalyToggle: FC = () => {\n const { t } = useTranslation();\n\n const {\n meta,\n viewOptions: { showAnomalies },\n api: { toggleAnomalies }\n } = useChartContext();\n\n const { hasAnomaly, hasMissingData } = _.defaultTo(meta, {});\n const Eye = showAnomalies ? EyeInvisibleOutlined : EyeOutlined;\n\n const {\n chart: {\n footer: { dataQuality }\n }\n } = Content;\n\n return (hasAnomaly || hasMissingData) && _.isEqual(meta.type, ChartType.basicLine) ? (\n {\n evt.stopPropagation();\n toggleAnomalies(!showAnomalies);\n\n GAEvent(GACategories.configurator, \"Toggle anomalies\", JSON.stringify({ visible: showAnomalies }));\n }}\n >\n \n \n \n \n \n {t(dataQuality, {\n state: showAnomalies ? \"visible\" : \"hidden\",\n reason: _.compact([hasAnomaly ? \"anomalies\" : null, hasMissingData ? \"missingData\" : null]).join(\n \",\"\n )\n })}\n \n \n \n \n ) : null;\n};\n","import { makeTestIds } from \"@ctra/utils\";\n\nexport const testIds = makeTestIds(\"charts\", {\n chartZoom: {\n wrapper: \"wrapper\",\n mobile: {\n wrapper: \"wrapper\"\n }\n },\n chartExtra: {\n compareCharts: \"compareCharts\",\n zoom: \"zoom\"\n },\n chartEdit: {\n wrapper: \"wrapper\",\n mobile: {\n wrapper: \"wrapper\"\n }\n }\n});\n","import { ComponentProps, FC, ForwardedRef, MutableRefObject } from \"react\";\nimport * as _ from \"lodash\";\nimport Markdown from \"react-markdown\";\n\nimport {\n Analysis,\n Button,\n Charts,\n CloseOutlined,\n Col,\n FullscreenButton,\n Grid,\n Icon,\n Popover,\n Row\n} from \"@ctra/components\";\n\nimport { Enterprise as Content, useTranslation } from \"@ctra/i18n\";\nimport { ChartEntity, Enterprise } from \"@ctra/api\";\nimport { GAEvent } from \"@ctra/analytics\";\nimport { useChartContext } from \"@ctra/charts\";\nimport { isMutableRef, resizeBase64Image } from \"@ctra/utils\";\n\nimport { ChartProps, ChartViewFilter, useChartAPI, useChartFilters } from \"@chart\";\nimport { GACategories } from \"@analytics\";\n\nimport { AnomalyToggle } from \"../AnomalyToggle\";\nimport { testIds } from \"../testing\";\nimport styles from \"./ChartExtra.module.less\";\nimport { ChartView } from \"../ChartView\";\n\nexport type ChartExtraProps = Omit;\n\nconst {\n chart: { compare },\n analytics: {\n feedback: { title }\n }\n} = Content;\n\n/**\n * Extra tools for chart components: full screen/chart comparison\n * @param {(() => void) | undefined} handleCompare\n * @param {(() => void) | undefined} handleClose\n * @param {{}} viewOptions\n * @param {ChartVariant | undefined} variant\n * @param {Partial>, \"onReady\" | \"onEvent\"> & Options> | undefined} config\n * @returns {JSX.Element}\n * @constructor\n */\nexport const ChartExtra: FC = ({\n handleCompare,\n handleClose,\n viewOptions = {},\n variant\n}) => {\n const { t } = useTranslation();\n const { md } = Grid.useBreakpoint();\n const { ref } = useChartContext();\n\n const {\n chart,\n meta,\n api,\n dataDescriptor: {\n dataProperties: { typeName }\n }\n } = useChartAPI();\n\n const {\n timePeriod,\n metadata: { supportedfarmIDs: farmIDs }\n } = useChartFilters();\n\n const { setChart } = api;\n const { supportedViews } = meta;\n const { view } = chart as ChartEntity;\n\n /**\n * Handle chart view changes\n * @param view\n */\n const onViewChange: ComponentProps[\"onViewChange\"] = (view) => {\n GAEvent(GACategories.configurator, \"Change chart view\", JSON.stringify({ view }));\n\n if (view === \"table\" && isMutableRef(ref)) {\n ref.current = null;\n }\n\n setChart(supportedViews[view]);\n };\n\n return (\n {\n evt.stopPropagation();\n }}\n >\n {viewOptions.showAnnotations && (_.isEqual(variant, Charts.ChartVariant.V3) || viewOptions.zoomed) && (\n \n \n \n )}\n {isMutableRef(ref) && (\n \n {\n const base64 = await resizeBase64Image(ref.current.toDataURL(\"image/png\"), 1280);\n\n Enterprise.history.push({\n state: {\n feedback: {\n sourceID: chart.id,\n sourceType: \"Chart\",\n context: {\n timePeriod,\n typeName\n },\n base64Content: base64\n }\n }\n });\n }}\n >\n {t(title)}\n \n \n )}\n {viewOptions.showSupportedViews && _.keys(supportedViews).length > 1 && (\n \n \n \n )}\n {handleCompare && farmIDs && (\n {t(compare)}}\n placement=\"topRight\"\n overlayClassName={styles.Popover}\n >\n {\n handleCompare();\n }}\n icon={}\n />\n \n )}\n {/* exit full screen button */}\n {viewOptions.zoomed && md && (\n {\n Enterprise.history.push({\n state: {}\n });\n }}\n />\n )}\n {_.isFunction(handleClose) && }\n \n );\n};\n","import { FC } from \"react\";\n\nimport { memoize } from \"@ctra/utils\";\nimport { Empty } from \"@ctra/components\";\nimport { ChartEntity, MetaType } from \"@ctra/api\";\n\n/**\n * Chart View Base class\n */\nclass ChartViewBase {\n /**\n * The underlying chart entity\n */\n protected entity: ChartEntity;\n protected metadata: M;\n\n constructor(chart: ChartEntity, meta: M) {\n this.entity = chart;\n this.metadata = meta;\n }\n\n @memoize\n identify(): string {\n return this.entity.id;\n }\n\n /**\n * Get the chart component\n * @return {React.FC>}\n */\n @memoize\n getComponent(): FC> {\n return Empty;\n }\n\n /**\n * Get the chart metadata\n * @return {M}\n */\n @memoize\n getMetadata(params?: Record): M {\n return this.metadata;\n }\n\n /**\n * Get the chart config\n * @note using Record, the types are specified in the subclasses\n * @return {Record}\n */\n @memoize\n getConfig(): Record {\n return {};\n }\n}\n\nexport { ChartViewBase };\n","import { memoize } from \"@ctra/utils\";\n\n/**\n * X axis data type base class\n */\nclass Base {\n /**\n * Get the translated label\n * @param label\n * @returns\n */\n @memoize\n getTranslatedLabel(label: string | number, options: { long: boolean }): string {\n return label.toString();\n }\n\n /**\n * Get the config for x axis\n *\n * As charts evolve, if heatmap has a different config from line chart,\n * this method should be renamed to getHeatmapConfig, getLineConfig etc\n * For now, they all share similar config, so one config is enough\n * @returns\n */\n @memoize\n getConfig(): Record {\n return {};\n }\n}\n\nexport { Base };\n","import moment from \"moment\";\n\nimport { memoize } from \"@ctra/utils\";\nimport { i18n } from \"@ctra/i18n\";\n\nimport { Base } from \"./Base\";\n\n/**\n * X axis data type day class\n */\nclass Day extends Base {\n /**\n * Get the translated label\n * @param label\n * @param long\n * @returns\n */\n @memoize\n getTranslatedLabel(label: string, options: { long: boolean }): string {\n /**\n * Set the moment locale\n */\n moment.locale(i18n.language);\n\n return moment(label).format(options?.long ? \"DD-MMM-YYYY\" : \"D MMM\");\n }\n}\n\nexport { Day };\n","import moment from \"moment\";\nimport * as _ from \"lodash/fp\";\n\nimport { memoize } from \"@ctra/utils\";\nimport { i18n } from \"@ctra/i18n\";\n\nimport { Base } from \"./Base\";\n\n/**\n * X axis data type weekday class\n */\nclass WeekDay extends Base {\n /**\n * Get the translated label\n * @param label\n * @param long\n * @returns\n */\n @memoize\n getTranslatedLabel(label: string, options: { long: boolean }): string {\n /**\n * Set the moment locale\n */\n moment.locale(i18n.language);\n\n return moment()\n .isoWeekday(label)\n .format(options?.long ? \"dddd\" : \"ddd\");\n }\n\n /**\n * Get the config for x axis\n *\n * @returns\n */\n @memoize\n getConfig(): Record {\n return {\n meta: {\n x: {\n min: 1,\n values: _.range(0, 8)\n }\n }\n };\n }\n}\n\nexport { WeekDay };\n","import moment from \"moment\";\n\nimport { memoize, TS } from \"@ctra/utils\";\nimport { i18n } from \"@ctra/i18n\";\n\nimport { Base } from \"./Base\";\n\n/**\n * X axis data type month class\n */\nclass Month extends Base {\n /**\n * Get the translated label\n * @param {string} label\n * @param {{long: boolean}} options\n * @return {string}\n */\n @memoize\n getTranslatedLabel(label: string, options: { long: boolean }): string {\n /**\n * Set the moment locale\n */\n moment.locale(i18n.language);\n\n return TS.asMoment(label).format(options?.long ? \"MMMM YYYY\" : \"MMM\");\n }\n}\n\nexport { Month };\n","import { ChartDataPointXAxisType } from \"@ctra/api\";\nimport { Base } from \"./Base\";\nimport { Day } from \"./Day\";\nimport { WeekDay } from \"./WeekDay\";\nimport { Month } from \"./Month\";\n\ntype RegisteredSeries = typeof Base | typeof Day | typeof WeekDay | typeof Month;\n\n/**\n * A factory to create a nice API around the x axis data types\n * @example\n * ```ts\n * Factory.create(type);\n * // instanceof Day extends Base\n * ```\n */\nclass Factory {\n private static _registry = new Map();\n\n /**\n * Register an xAxis type\n * @param {ChartDataPointXAxisType} type\n * @param {I} cls\n */\n static register(type: ChartDataPointXAxisType, cls: I): void {\n if (!Factory._registry.has(type)) {\n Factory._registry.set(type, cls);\n } else {\n throw new Error(`${type} axis type is already in the registry`);\n }\n }\n\n /**\n * Create an instance of an xAxis type\n * @param {ChartDataPointXAxisType} type\n * @return {InstanceType}\n */\n static create(type?: ChartDataPointXAxisType): InstanceType {\n let cls = Factory._registry.get(type);\n\n if (!cls) {\n console.warn(`${type} is not yet in the registry. Using XAxis Base as constructor`);\n cls = Base;\n }\n\n return new cls();\n }\n}\n\nFactory.register(ChartDataPointXAxisType.group, Base);\nFactory.register(ChartDataPointXAxisType.series, Base);\nFactory.register(ChartDataPointXAxisType.date, Day);\nFactory.register(ChartDataPointXAxisType.weekDay, WeekDay);\nFactory.register(ChartDataPointXAxisType.month, Month);\n\nexport { Factory };\n","import * as _ from \"lodash\";\n\nimport { memoize } from \"@ctra/utils\";\nimport { DataPointsMeta } from \"@ctra/api\";\nimport { Enterprise as Content, i18nTranslate } from \"@ctra/i18n\";\n\nimport { ChartViewBase } from \"./Base\";\nimport { XAxisType } from \"./xAxis\";\n\nconst {\n chart: {\n series: seriesItem,\n unit,\n seriesTitle,\n line: { axisTitle }\n }\n} = Content;\n\n/**\n * DataPoints View Base class\n */\nclass DataPointsBase extends ChartViewBase {\n /**\n * Get the metadata\n * @return {M}\n */\n @memoize\n getMetadata(): M {\n const { series: { keys } = {}, yAxis, seriesType, axis } = this.metadata;\n const labelTranslationVariant = this.getTranslatedXAxisLabels(axis?.x.labels?.short);\n\n return {\n ...this.metadata,\n series: {\n title: i18nTranslate(seriesTitle(seriesType as string)),\n keys: this.getTranslatedSeries(keys)\n },\n axis: {\n x: {\n title: i18nTranslate(axisTitle.x),\n labels: {\n short: labelTranslationVariant({ long: false }),\n long: labelTranslationVariant({ long: true })\n }\n },\n y: {\n title: yAxis?.unit ? i18nTranslate(unit.custom(yAxis.unit)) : i18nTranslate(unit.default)\n }\n }\n };\n }\n\n /**\n * Translate series only if they are translatable\n * Basically, we do not want to translate farm names, numbers etc\n * @param {Record} series\n * @return {Record}\n * @private\n */\n private getTranslatedSeries(series?: Record): Record {\n return _.reduce, Record>(\n series,\n (acc, item, key) => {\n acc[key] =\n this.entity.flags.isSeriesTranslatable && !_.isFinite(+item)\n ? i18nTranslate(seriesItem(item))\n : item;\n\n return acc;\n },\n {}\n );\n }\n\n /**\n * Translate xAxis labels based on the type\n * @param {Record} labels\n * @return {(options: {long: boolean}) => Record}\n * @private\n */\n private getTranslatedXAxisLabels(\n labels?: Record\n ): (options: { long: boolean }) => Record {\n const xAxisType = XAxisType.create(this.metadata.xType);\n\n return function (options): Record {\n return _.reduce, Record>(\n labels,\n (acc, label) => {\n /* istanbul ignore next */\n acc[label] = xAxisType.getTranslatedLabel(label, { long: options.long });\n\n return acc;\n },\n {}\n );\n };\n }\n}\n\nexport { DataPointsBase };\n","import { memoize } from \"@ctra/utils\";\nimport { Line } from \"@ctra/charts\";\n\nimport { DataPointsBase } from \"./DataPointsBase\";\nimport { ChartViewBase } from \"./Base\";\n\n/**\n * Line Chart View class\n */\nclass LineChart extends DataPointsBase {\n /**\n * get the chart component\n */\n @memoize\n getComponent(): ReturnType {\n return Line;\n }\n}\n\nexport { LineChart };\n","import { memoize } from \"@ctra/utils\";\nimport { Bar } from \"@ctra/charts\";\nimport { Enterprise, i18nTranslate } from \"@ctra/i18n\";\n\nimport { DataPointsBase } from \"./DataPointsBase\";\nimport { ChartViewBase } from \"./Base\";\n\n/**\n * Bar Chart View class\n */\nclass BarChart extends DataPointsBase {\n /**\n * get the chart component\n */\n @memoize\n getComponent(): ReturnType {\n return Bar;\n }\n\n /**\n * get the meta data\n * @return {M & {axis: {x: {title: string}, y: {}}}}\n */\n @memoize\n getMetadata(): ReturnType {\n const {\n bar: { axisTitle }\n } = Enterprise.chart;\n\n return {\n ...super.getMetadata(),\n axis: {\n x: {\n title: i18nTranslate(axisTitle.x)\n },\n y: {\n ...super.getMetadata().axis?.y\n }\n }\n };\n }\n}\n\nexport { BarChart };\n","import { memoize } from \"@ctra/utils\";\nimport { Area } from \"@ctra/charts\";\n\nimport { DataPointsBase } from \"./DataPointsBase\";\nimport { ChartViewBase } from \"./Base\";\n\n/**\n * Area chart view class\n */\nclass AreaChart extends DataPointsBase {\n /**\n * get the chart component\n * @return {ReturnType}\n */\n @memoize\n getComponent(): ReturnType {\n return Area;\n }\n}\n\nexport { AreaChart };\n","import * as _ from \"lodash\";\n\nimport { memoize } from \"@ctra/utils\";\nimport { Table as BaseTable } from \"@ctra/charts\";\nimport { TableMeta } from \"@ctra/api\";\nimport { Enterprise, i18nTranslate } from \"@ctra/i18n\";\n\nimport { XAxisType } from \"./xAxis\";\nimport { ChartViewBase } from \"./Base\";\n\n/**\n * Table view class\n */\nclass Table extends ChartViewBase {\n /**\n * Get the chart component\n * @return {ReturnType}\n */\n @memoize\n getComponent(): ReturnType {\n return BaseTable;\n }\n\n /**\n * Get the metadata\n * @return {ReturnType}\n */\n @memoize\n getMetadata(): ReturnType {\n const { series } = Enterprise.chart;\n\n return {\n /**\n * Tables do not use the same set of metas as line, bar etc\n * Hence no need extending ...super.getMetadata()\n */\n ...this.metadata,\n columns: _.map(this.metadata.columns, (column) => ({\n ...column,\n /**\n * Translate legends only if they are translatable\n */\n title:\n this.entity.flags.isSeriesTranslatable && !_.isFinite(+(column.title as string))\n ? i18nTranslate(series(column.title as string))\n : column.title\n })),\n keyRows: this.getTranslatedKeyRowsLabels(this.metadata.keyRows, { long: false })\n };\n }\n\n /**\n * Translate keyRows based on the type\n * @param {Record} keyRows\n * @param {{long: boolean}} options\n * @return {Record}\n * @private\n */\n private getTranslatedKeyRowsLabels(\n keyRows: Record,\n options: { long: boolean }\n ): Record {\n const xAxisType = XAxisType.create(this.metadata.xType);\n\n return _.reduce, Record>(\n keyRows,\n (acc, row) => {\n acc[row] = xAxisType.getTranslatedLabel(row, { long: options.long });\n\n return acc;\n },\n {}\n );\n }\n}\n\nexport { Table };\n","import { memoize } from \"@ctra/utils\";\nimport { Heatmap as BaseHeatmap, HeatmapConfig } from \"@ctra/charts\";\nimport { Enterprise, i18nTranslate } from \"@ctra/i18n\";\nimport { HeatmapMeta } from \"@ctra/api\";\n\nimport { DataPointsBase } from \"./DataPointsBase\";\nimport { XAxisType } from \"./xAxis\";\nimport { ChartViewBase } from \"./Base\";\n\n/**\n * Heatmap view class\n */\nclass Heatmap extends DataPointsBase {\n /**\n * Get the chart component\n * @return {ReturnType}\n */\n @memoize\n getComponent(): ReturnType {\n return BaseHeatmap;\n }\n\n /**\n * Get the meta data\n * @return {ReturnType}\n */\n @memoize\n getMetadata(): ReturnType {\n const {\n heatmap: { seriesTitle }\n } = Enterprise.chart;\n\n return {\n ...super.getMetadata(),\n series: {\n title: i18nTranslate(seriesTitle),\n keys: {}\n }\n };\n }\n\n /**\n * Get the config\n * @return {Partial}\n */\n @memoize\n getConfig(): Partial {\n const xAxisType = XAxisType.create(super.getMetadata().xType);\n\n return xAxisType.getConfig();\n }\n}\n\nexport { Heatmap };\n","import { memoize } from \"@ctra/utils\";\nimport { Column } from \"@ctra/charts\";\n\nimport { DataPointsBase } from \"./DataPointsBase\";\nimport { ChartViewBase } from \"./Base\";\n\n/**\n * Column chart view class\n */\nclass ColumnChart extends DataPointsBase {\n /**\n * Get the chart component\n * @return {ReturnType}\n */\n @memoize\n getComponent(): ReturnType {\n return Column;\n }\n}\n\nexport { ColumnChart };\n","import { ChartDataSourceType, ChartEntity, ChartType, MetaType } from \"@ctra/api\";\n\nimport { ChartViewBase } from \"./Base\";\nimport { LineChart } from \"./LineChart\";\nimport { BarChart } from \"./BarChart\";\nimport { AreaChart } from \"./AreaChart\";\nimport { Table } from \"./Table\";\nimport { Heatmap } from \"./Heatmap\";\nimport { ColumnChart } from \"./ColumnChart\";\n\ntype RegisteredChartViews =\n | typeof LineChart\n | typeof BarChart\n | typeof AreaChart\n | typeof ColumnChart\n | typeof Table\n | typeof Heatmap\n | typeof ChartViewBase;\n\n/**\n * A factory to create a nice API around the chart view types\n * @example\n * ```ts\n * Factory.create(type);\n * // instanceof BarChartView extends BaseView\n * ```\n */\nclass Factory {\n private static _registry = new Map();\n\n static register(type: ChartType, cls: I): void {\n if (!Factory._registry.has(type)) {\n Factory._registry.set(type, cls);\n } else {\n throw new Error(`${type} is already set in the registry`);\n }\n }\n\n /**\n * Create an instance object\n * @param {ChartEntity} chart\n * @param {MetaType} metadata\n * @returns {InstanceType}\n */\n static create(chart: ChartEntity, metadata: MetaType): InstanceType {\n const { view } = chart as ChartEntity;\n\n let cls = Factory._registry.get(view);\n\n if (!cls) {\n console.warn(`${view} is not yet in the registry. Using ChartView Base as constructor`);\n cls = ChartViewBase;\n }\n\n return new cls(chart, metadata);\n }\n\n /**\n * Create an empty instance\n * @returns {InstanceType}\n */\n static createEmpty(): InstanceType {\n return new ChartViewBase({} as ChartEntity, {} as MetaType);\n }\n}\n\nFactory.register(ChartType.basicLine, LineChart);\nFactory.register(ChartType.basicBar, BarChart);\nFactory.register(ChartType.stackedArea, AreaChart);\nFactory.register(ChartType.table, Table);\nFactory.register(ChartType.heatmap, Heatmap);\nFactory.register(ChartType.basicColumn, ColumnChart);\nFactory.register(ChartType.stackedColumn, ColumnChart);\nFactory.register(ChartType.stackedPercentColumn, ColumnChart);\n\n/**\n * @deprecated Remove once all descriptors are re-configured on the BE\n */\nFactory.register(ChartType.line, LineChart);\nFactory.register(ChartType.lineContinuous, LineChart);\nFactory.register(ChartType.stackedBar, BarChart);\nFactory.register(ChartType.dataTable, Table);\n\nexport { Factory };\n","import { FC } from \"react\";\nimport * as _ from \"lodash\";\n\nimport { Row } from \"@ctra/components\";\n\nimport { ChartType } from \"@ctra/api\";\nimport { classname } from \"@ctra/utils\";\nimport { useChartContext } from \"@ctra/charts\";\n\nimport styles from \"./ChartFooter.module.less\";\nimport { AnomalyToggle } from \"../AnomalyToggle\";\n\n/**\n * Chart footer with anomaly view switch\n * @return {JSX.Element}\n * @constructor\n */\nexport const ChartFooter: FC = () => {\n const { meta } = useChartContext();\n\n const { hasAnomaly, hasMissingData } = _.defaultTo(meta, {});\n\n return (hasAnomaly || hasMissingData) && _.isEqual(meta.type, ChartType.basicLine) ? (\n \n \n \n ) : null;\n};\n","import { ComponentProps, FC, useRef, forwardRef, memo, PropsWithChildren } from \"react\";\nimport * as _ from \"lodash\";\nimport { ContainerConfig, Options } from \"@ant-design/charts\";\nimport { useDeepCompareEffect } from \"use-deep-compare\";\nimport Markdown from \"react-markdown\";\n\nimport {\n Charts,\n Empty,\n Tag,\n Alert,\n KpiUnavailable,\n KpiLocked,\n EyeInvisibleOutlined,\n Typography,\n Space,\n Button\n} from \"@ctra/components\";\n\nimport {\n ChartEntity,\n ExtendedEventList,\n ChartViewOptions,\n ChartDataOptions,\n FarmEntity,\n ChartTimePeriod,\n Enterprise\n} from \"@ctra/api\";\n\nimport { useTranslation, Enterprise as Content, defaultLocale } from \"@ctra/i18n\";\nimport { classname, isProduction } from \"@ctra/utils\";\nimport { GAContext, useGoogleAnalytics } from \"@ctra/analytics\";\nimport { ChartContext } from \"@ctra/charts\";\n\nimport { useFarm } from \"@farms\";\nimport { useEventList } from \"@events\";\n\nimport { ChartDataContext, useChartFilters, useChartAPI, useChartData } from \"../../providers\";\nimport { Toolbar } from \"../Toolbar\";\nimport { ChartExtra } from \"../ChartExtra\";\nimport { ChartView } from \"../ChartView\";\nimport { ChartFooter } from \"../ChartFooter\";\n\nimport styles from \"./Chart.module.less\";\nimport { Routes } from \"@routes\";\n\nconst { Text } = Typography;\nconst { Chart: ChartUI } = Charts;\n\nexport type ChartProps = PropsWithChildren<{\n variant?: Charts.ChartVariant;\n viewOptions?: ChartViewOptions;\n dataOptions?: ChartDataOptions;\n config?: Partial & Options>;\n handleCompare?: () => void;\n handleClose?: () => void;\n}>;\n\nconst {\n kpi: { displayName, noFarmSupport, noFarmConsent, singleFarmChart },\n chart: {\n beta,\n error: { title: errorTitle, description: errorDescription },\n empty: { description: emptyDescription, manualDescription, manualCta }\n }\n} = Content;\n\n/**\n * Lose equal function\n * @param self\n * @param other\n * @returns {boolean}\n */\nconst loseEqual = (self: unknown, other: unknown) =>\n _.isEqualWith(self, other, (a, b) => (_.isFunction(a) || _.isFunction(b) ? true : void 0));\n\n/**\n * Chart UI wrapper with default labels\n * @param {ChartVariant | undefined} variant\n * @param {Omit, \"variant\">} props\n * @returns {JSX.Element}\n * @constructor\n */\nconst UIWrapper: FC<\n {\n variant?: ComponentProps[\"variant\"];\n } & ComponentProps\n> = ({ variant = Charts.ChartVariant.V3, ...props }) => {\n const { t } = useTranslation();\n\n const {\n chart: {\n flags: { isBetaChart }\n }\n } = useChartAPI();\n\n /**\n * Make some UI props\n * @type {{subtitle: string, variant: ChartVariant | undefined, description: string, tag: any, title: any}}\n */\n const defaultProps: Partial> = {\n variant,\n tag: isBetaChart ? {t(beta)} : void 0\n };\n\n return ;\n};\n\n/**\n * Graph component with error handling (empty components)\n * @param {{}} viewOptions\n * @param {boolean} hasConsent\n * @param {boolean} hasFailed\n * @param {boolean} isMultiFarmFilterSupported\n * @param {boolean} isEmpty\n * @param {boolean} isLoading\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @returns {JSX.Element}\n * @constructor\n */\nconst GraphWrapper: FC<{\n viewOptions: ChartProps[\"viewOptions\"];\n flags: {\n isMultiFarmFilterSupported: boolean;\n isLoading: boolean;\n hasConsent: boolean;\n hasFailed: boolean;\n isEmpty: boolean;\n };\n}> = ({\n viewOptions = {},\n flags: { hasConsent, hasFailed, isMultiFarmFilterSupported, isEmpty, isLoading },\n children\n}) => {\n const { t } = useTranslation();\n const { zoomed } = viewOptions;\n\n const {\n chart,\n dataDescriptor,\n dataDescriptor: {\n dataProperties: { sourceTypes }\n }\n } = useChartAPI();\n\n /**\n * Check if the chart is a manual input chart\n * @type {boolean}\n */\n const manualInput: boolean = _.some(sourceTypes, (source) => _.startsWith(_.toLower(source), \"manual\"));\n\n return (\n

          \n {!hasConsent &&\n (isMultiFarmFilterSupported ? (\n }\n description={{t(noFarmConsent)}}\n />\n ) : (\n }\n description={\n \n {t(singleFarmChart.title)}\n \n {t(singleFarmChart.description)}\n \n \n }\n />\n ))}\n {hasConsent && hasFailed && (\n (errorTitle)}\n /**\n * Showing the chart id in dev env helps for debugging\n */\n description={`${t(errorDescription)}${!isProduction() ? ` : ${chart?.id}` : ``}`}\n type=\"error\"\n showIcon\n />\n )}\n {hasConsent && !hasFailed && (\n <>\n {isEmpty ? (\n manualInput ? (\n \n {t(emptyDescription)}\n evt.stopPropagation()} type=\"secondary\">\n {t(manualDescription)}\n \n {\n evt.stopPropagation();\n Enterprise.history.push(Routes.app.settings.inputs);\n }}\n >\n {t(manualCta)}\n \n \n )\n }\n />\n ) : (\n {isLoading ? \"\" : t(emptyDescription)}}\n />\n )\n ) : (\n children\n )}\n \n )}\n
          \n );\n};\n\n/**\n * Inner chart component with all the dependencies and API related to a chart\n * @param {Partial>, \"onReady\" | \"onEvent\"> & Options> | undefined} defaultConfig\n * @param {ChartVariant | undefined} variant\n * @param {{}} dataOptions\n * @param {{}} viewOptions\n * @param {(() => void) | undefined} handleCompare\n * @param {(() => void) | undefined} handleClose\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @returns {JSX.Element}\n * @constructor\n */\nconst Inner = forwardRef<\n unknown,\n PropsWithChildren<{\n eventHandlers: Pick;\n variant: ChartProps[\"variant\"];\n config: ChartProps[\"config\"];\n options: Pick;\n }>\n>(\n (\n {\n config: defaultConfig,\n variant = Charts.ChartVariant.V3,\n options: { dataOptions = {}, viewOptions = {} },\n eventHandlers: { handleCompare, handleClose },\n children\n },\n ref\n ) => {\n const { t } = useTranslation();\n const { data, meta, requestURL, flags } = useChartData();\n const { farm } = useFarm();\n\n const {\n series,\n api: { setSeries },\n timePeriod,\n bucketSize\n } = useChartFilters();\n\n const {\n chart,\n dataDescriptor,\n api: { setRequestURL }\n } = useChartAPI();\n\n if (requestURL) {\n setRequestURL(requestURL);\n }\n\n const {\n events,\n meta: { isLoading: isEventListLoading }\n } = useEventList();\n\n /**\n * Store the view in a ref to optimise performance\n * @type {React.MutableRefObject InstanceType> | undefined>}\n */\n const viewRef = useRef>(ChartView.createEmpty());\n const farmRef = useRef();\n const timeRef = useRef();\n\n /**\n * Use a ref for performance reasons, otherwise the chart context props\n * will trip the equality checks in the useState hooks within the charts\n */\n const contextPropsRef = useRef>();\n\n const {\n flags: { isMultiFarmFilterSupported }\n } = chart;\n\n const { showToolbar, showEvents } = viewOptions;\n const { isLoading: isChartDataLoading, hasFailed, hasConsent } = flags;\n\n /**\n * Identify the current chart view\n */\n const identity = viewRef.current.identify();\n\n /**\n * Update chart view if chart/series change*\n * (*series change on the same chart means a farm change)\n * please look at this code if black lines are persisting in the series\n * should chart update? should sereis update? based on scenarios?\n */\n const shouldChartUpdate =\n identity !== chart.id || farmRef.current !== farm?.id || timeRef.current !== timePeriod;\n\n if (meta && !_.isEmpty(meta) && shouldChartUpdate) {\n viewRef.current = ChartView.create(chart as ChartEntity, meta);\n farmRef.current = farm?.id;\n timeRef.current = timePeriod;\n } else if (identity && identity !== chart.id) {\n viewRef.current = ChartView.createEmpty();\n setSeries({ available: {}, active: [] });\n }\n\n /**\n * Get the graph component from the chart view\n */\n const GraphComponent = viewRef.current.getComponent();\n\n /**\n * Merge config from chart props with the chart view config\n * @todo remove the `getConfig` method from the chart view completely\n */\n const chartConfig = { ...defaultConfig, ...viewRef.current.getConfig() };\n\n /**\n * Make props for the chart context\n * @type {{data: Array<{x: number, y: string, seriesField: string}> | Array<{x: string, y: number, seriesField: string}> | Array<{x: string, y: Nullable, seriesField: string, anomaly?: {prediction?: number, type?: string}}> | Array<{x: string | number, y: string, z: number}> | Array>, meta: (DataPointsMetaSource & TranslatedMeta) | TableMeta, viewOptions: {}, config: {slider?: unknown, xAxis?: unknown, defaultInteractions?: unknown, data?: unknown, legend?: unknown, yField?: unknown, tooltip?: unknown, annotations?: unknown, type?: unknown, reflect?: unknown, heatmapStyle?: unknown, autoFit?: unknown, state?: unknown, height?: unknown, coordinate?: unknown, shape?: unknown, errorTemplate?: unknown, localRefresh?: unknown, loading?: unknown, colorField?: unknown, animation?: unknown, xField?: unknown, meta?: unknown, pixelRatio?: unknown, style?: unknown, syncViewPadding?: unknown, onReady?: unknown, useDeferredLabel?: unknown, scrollbar?: unknown, renderer?: unknown, color?: unknown, pattern?: unknown, sizeLegend?: unknown, className?: unknown, chartRef?: unknown, locale?: unknown, sizeField?: unknown, interactions?: unknown, sizeRatio?: unknown, supportCSSTransform?: unknown, theme?: unknown, padding?: unknown, loadingTemplate?: unknown, label?: unknown, yAxis?: unknown, limitInPlot?: unknown, onEvent?: unknown, width?: unknown, appendPadding?: unknown}, events: ExtendedEventList, entity: ChartEntity}}\n */\n const chartContextProps: ComponentProps = {\n data: _.defaultTo(data, []),\n series: _.pick(series.available, series.active),\n events: _.pickBy(events, ({ context }) => {\n if (context.chartResourceType === \"variantId\") {\n const variantId = context.chartResourceID;\n\n return variantId === dataDescriptor.id;\n }\n\n return true;\n }),\n viewOptions,\n dataOptions: { ...dataOptions, timePeriod, bucketSize },\n entity: chart,\n config: chartConfig,\n meta: viewRef.current.getMetadata()\n };\n\n /**\n * Tell if any of the dependencies are loading\n * @type {boolean}\n */\n const isDataLoading = _.every(\n showEvents ? [isChartDataLoading, isEventListLoading] : [isChartDataLoading]\n );\n\n /**\n * Get the series (in other words, legend values)\n * @type {string[]}\n */\n const legendValues = _.get(meta, [\"series\", \"keys\"], {});\n\n useDeepCompareEffect(() => {\n /**\n * Update the series ref, this will be used as a data source for the\n * universal filtering aka display filters.\n */\n if (!loseEqual(legendValues, series)) {\n setSeries(({ available, active }) => ({\n available: legendValues,\n active\n }));\n }\n }, [legendValues]);\n\n /**\n * Use a ref for performance reasons, otherwise the chart context props\n * will trip the equality checks in the useState hooks within the charts.\n * Ignore functions as they are not serializable.\n */\n if (!loseEqual(contextPropsRef.current, chartContextProps)) {\n contextPropsRef.current = chartContextProps;\n }\n\n return (\n )}\n ref={ref}\n >\n (Content.chart.loading)}\n extension={children}\n filters={showToolbar && }\n extra={\n \n }\n footer={variant !== Charts.ChartVariant.V3 ? : null}\n >\n \n \n \n \n \n );\n }\n);\n\nInner.displayName = \"Inner\";\n\n/**\n * Chart component\n * @param {ChartVariant | undefined} variant\n * @param {{}} viewOptions\n * @param {{}} dataOptions\n * @param {{}} defaultConfig\n * @param {(() => void) | undefined} handleCompare\n * @param {(() => void) | undefined} handleClose\n * @param {React.ReactElement> | string | number | {} | Iterable | React.ReactPortal | boolean | null | undefined} children\n * @returns {JSX.Element}\n * @constructor\n */\nconst ChartWithForwardedRef = forwardRef(\n (\n {\n variant = Charts.ChartVariant.V3,\n viewOptions = {},\n dataOptions = {},\n config = {},\n handleCompare,\n handleClose,\n children\n },\n ref\n ) => {\n const { category } = useGoogleAnalytics();\n const { t } = useTranslation();\n const { skipFarmSupportCheck } = viewOptions;\n\n const {\n dataDescriptor: {\n dataProperties: { typeName },\n valueProperties: { decimals }\n },\n meta: {\n farms: { hasSupport }\n }\n } = useChartAPI();\n\n return (\n (displayName(typeName), {\n case: null,\n variant: null,\n makeDefaultValue: true,\n lng: defaultLocale\n })\n }}\n >\n {!skipFarmSupportCheck && _.isEmpty(hasSupport) ? (\n }>\n }\n description={{t(noFarmSupport)}}\n />\n \n ) : (\n \n \n {children}\n \n \n )}\n \n );\n }\n);\n\nChartWithForwardedRef.displayName = \"Chart\";\n\nconst Chart = memo(ChartWithForwardedRef, (prevProps, nextProps) => {\n return _.isEqualWith(prevProps, nextProps, (objValue, othValue) => {\n if (_.isFunction(objValue) || _.isFunction(othValue)) {\n return true;\n }\n });\n});\n\nexport { Chart };\n","export enum GACategories {\n chartZoom = \"Zoomed chart\"\n}\n\nexport enum GAActions {\n changeChartType = \"Change chart type\",\n changeISODuration = \"Change time period\",\n expandChart = \"Expand chart\",\n collapseChart = \"Collapse expanded chart\",\n goToCompareCharts = \"Go to Compare Charts\",\n selectDIMGroup = \"Select DIM group\",\n selectHerdGroup = \"Select herd group\",\n selectPen = \"Select pen\",\n toggleEventAnnotations = \"Toggle event annotations\",\n toggleFarmTimeline = \"Toggle farm timeline\",\n addToFavourites = \"Add to favourites\",\n removeFromFavourites = \"Remove from favourites\",\n showAnomalies = \"Show anomalies\",\n hideAnomalies = \"Hide anomalies\"\n}\n\nexport enum GALabels {\n custom = \"Custom\"\n}\n","import { ComponentProps, FC } from \"react\";\n\nimport { Enterprise, useTranslation } from \"@ctra/i18n\";\nimport { Charts, DownOutlined, Space } from \"@ctra/components\";\nimport { ChartEntity } from \"@ctra/api\";\nimport { useGoogleAnalytics } from \"@ctra/analytics\";\n\nimport { GAActions } from \"../../analytics\";\nimport styles from \"./ChartViewFilter.module.less\";\n\nconst { ChartViewIcon, SimpleDropdown } = Charts;\ntype ChartView = ComponentProps[\"view\"];\n\n/**\n * Resolve the chart view (for the icon) from the mongo chart view\n * @param mongoChartView\n */\nconst getIconName = (mongoChartView: ChartEntity[\"view\"]): ChartView => {\n const map: Record = {\n \"100StackedArea\": \"stacked-area-100\",\n \"100StackedBar\": \"stacked-bar-100\",\n \"100StackedColumn\": \"stacked-column-100\",\n area: \"area\",\n stackedArea: \"stacked-area\",\n dataTable: \"table\",\n donut: \"donut\",\n geospatialScatter: \"geospatial-scatter\",\n groupedBar: \"horizontal-bar\",\n heatmap: \"heatmap\",\n line: \"line\",\n lineContinuous: \"line\",\n number: \"number\",\n scatter: \"scatter\",\n stackedBar: \"stacked-bar\",\n stackedColumn: \"stacked-column\",\n wordCloud: \"word-cloud\",\n basicLine: \"basicLine\",\n basicBar: \"basicBar\",\n basicColumn: \"basicColumn\",\n table: \"table\",\n stackedPercentColumn: \"stackedPercentColumn\"\n };\n\n if (!map[mongoChartView]) {\n throw new Error(`\"${mongoChartView}\" could not be mapped in ${JSON.stringify(map)}.`);\n }\n\n return map[mongoChartView];\n};\n\ninterface ChartViewFilterProps {\n /**\n * current view\n */\n view: ChartEntity[\"view\"];\n /**\n * available views/chart ids\n */\n views: Array;\n /**\n * handle view change\n * @param view\n */\n onViewChange: (view: ChartView) => void;\n}\n\n/**\n * Chart view switch\n * @param views\n * @param view\n * @param onViewChange\n * @constructor\n */\nconst ChartViewFilter: FC = ({ views, view, onViewChange }) => {\n const { t } = useTranslation();\n const { trackEvent, label } = useGoogleAnalytics<{ label: string }>();\n\n return (\n \n values={views}\n currentValue={view}\n onChange={({ key }) => {\n /* istanbul ignore next */\n trackEvent(GAActions.changeChartType, { label: `${label} - ${key}` });\n onViewChange(key as ChartView);\n }}\n showLabel={true}\n getLabel={(key, { isToggle }) => (\n \n \n {isToggle ? (\n \n ) : (\n t(Enterprise.chart.view(key as ChartEntity[\"view\"]))\n )}\n \n )}\n />\n );\n};\n\nexport default ChartViewFilter;\n","import { FC, HTMLAttributes } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\n\nimport { useTranslation, Enterprise as Content } from \"@ctra/i18n\";\nimport { HerdGroupEntity, Enterprise, FarmEntity, EnterpriseAppState, HerdGroupList } from \"@ctra/api\";\nimport { Charts } from \"@ctra/components\";\nimport { useGoogleAnalytics } from \"@ctra/analytics\";\n\nimport { GAActions } from \"../../analytics\";\n\nconst { MultiDropdown } = Charts;\n\ninterface HerdGroupFilterProps {\n /**\n * Allow multiple selections\n */\n multiple?: boolean;\n /**\n * selected herd group(s)\n */\n selection: Array;\n /**\n * handle herd group change\n */\n onHerdGroupChange: (herdGroups: Array) => void;\n /**\n * list of farm ids to pre-filter the herd groups against\n */\n farmIDList?: Array;\n /**\n * disabled state\n */\n disabled?: boolean;\n}\n\n/**\n * Herd group filtering\n * @param {boolean | undefined} multiple\n * @param {Array} selection\n * @param {Array | undefined} farmIDList\n * @param {(herdGroups: Array) => void} onHerdGroupChange\n * @param {boolean | undefined} disabled\n * @param {Pick, \"onChange\"> & {children?: React.ReactNode | undefined}, \"children\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"id\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"title\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\">} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst HerdGroupFilter: FC, \"onChange\">> = ({\n multiple = false,\n selection,\n farmIDList = [],\n onHerdGroupChange,\n disabled,\n ...rest\n}) => {\n const { t } = useTranslation();\n const { trackEvent, label } = useGoogleAnalytics<{ label: string }>();\n\n /**\n * Fetch the herd groups which are available for the given farms\n */\n const herdGroups = useSelector((state) =>\n Enterprise.entities.getHerdGroups(state, { farmID: farmIDList })\n );\n\n return (\n \n disabled={disabled}\n limit={multiple ? null : 1}\n label={t(Content.chart.filters.herdGroup.label)}\n values={_.map(\n _.sortBy(herdGroups, (group) => {\n /**\n * some of the group names are numeric strings, we pad them so, they can be ordered lexicographically\n */\n return _.isInteger(_.parseInt(group.name)) ? _.padStart(group.name, 4) : group.name;\n }),\n \"id\"\n )}\n selection={selection}\n onChange={(values) => {\n /* istanbul ignore next */\n trackEvent(GAActions.selectHerdGroup, { label: `${label} - ${values.join(\",\")}` });\n onHerdGroupChange(values as Array);\n }}\n filterOption={(input, option) => {\n return _.includes(_.toLower(option?.children), _.toLower(input));\n }}\n getLabel={(herdGroupID) => t(Content.chart.filters.herdGroup.single, herdGroups[herdGroupID])}\n placeholder={t(Content.chart.filters.herdGroup.placeholder)}\n {...rest}\n />\n );\n};\n\nexport default HerdGroupFilter;\n","import { FC, HTMLAttributes } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\n\nimport { useTranslation, Enterprise as Content } from \"@ctra/i18n\";\nimport {\n PenEntity,\n Enterprise,\n FarmEntity,\n EnterpriseAppState,\n PensList,\n HerdGroupList,\n HerdGroupEntity\n} from \"@ctra/api\";\nimport { Charts } from \"@ctra/components\";\nimport { useGoogleAnalytics } from \"@ctra/analytics\";\n\nimport { GAActions } from \"../../analytics\";\n\nconst { MultiDropdown } = Charts;\n\ninterface PenFilterProps {\n /**\n * Allow multiple selections\n */\n multiple?: boolean;\n /**\n * selected herd group(s)\n */\n selection: Array;\n /**\n * handle herd group change\n */\n onPenChange: (pens: Array) => void;\n /**\n * list of farm ids to pre-filter the herd groups against\n */\n farmIDList?: Array;\n /**\n * disabled state\n */\n disabled?: boolean;\n}\n\n/**\n * Herd group filtering\n * @param {boolean | undefined} multiple\n * @param {Array} selection\n * @param {Array | undefined} farmIDList\n * @param {(pens: Array) => void} onPenChange\n * @param {boolean | undefined} disabled\n * @param {Pick, \"onChange\"> & {children?: React.ReactNode | undefined}, \"children\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"id\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"title\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\">} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst PenFilter: FC, \"onChange\">> = ({\n multiple = false,\n selection,\n farmIDList = [],\n onPenChange,\n disabled,\n ...rest\n}) => {\n const { t } = useTranslation();\n const { trackEvent, label } = useGoogleAnalytics<{ label: string }>();\n\n /**\n * Pick the pens which are available for the given farms\n * @type {PensList}\n */\n const pens = useSelector((state) =>\n Enterprise.entities.getPens(state, { farmID: farmIDList })\n );\n\n /**\n * Pick the herd groups as well\n * @type {HerdGroupList}\n */\n const herdGroups = useSelector((state) =>\n Enterprise.entities.getHerdGroups(state, { farmID: farmIDList })\n );\n\n /**\n * Combine the two lists\n * @type {{[p: string]: PenEntity, [p: number]: HerdGroupEntity}}\n */\n const input: Record = {\n ...pens,\n ...herdGroups\n };\n\n return (\n \n disabled={disabled}\n limit={multiple ? null : 1}\n label={t(Content.chart.filters.pen.label)}\n values={_.uniq(\n _.map(\n _.sortBy(input, (entity) => parseFloat(entity.name)),\n \"name\"\n )\n )}\n selection={selection}\n onChange={(values) => {\n /* istanbul ignore next */\n trackEvent(GAActions.selectPen, { label: `${label} - ${values.join(\",\")}` });\n onPenChange(values as Array);\n }}\n filterOption={(input, option) => {\n return _.includes(_.toLower(option?.children), _.toLower(input));\n }}\n getLabel={(penName) => t(Content.chart.filters.pen.single, { name: penName })}\n placeholder={t(Content.chart.filters.pen.placeholder)}\n {...rest}\n />\n );\n};\n\nexport default PenFilter;\n","import { FC, HTMLAttributes } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\n\nimport { useTranslation, Enterprise as Content } from \"@ctra/i18n\";\nimport { DIMGroupEntity, Enterprise, FarmEntity, EnterpriseAppState, DIMGroupList } from \"@ctra/api\";\nimport { Charts } from \"@ctra/components\";\nimport { useGoogleAnalytics } from \"@ctra/analytics\";\n\nimport { GAActions } from \"../../analytics\";\n\nconst { MultiDropdown } = Charts;\n\ninterface DIMGroupFilterProps {\n /**\n * Allow multiple selections\n */\n multiple?: boolean;\n /**\n * selected herd group(s)\n */\n selection: Array;\n /**\n * handle herd group change\n */\n onDIMGroupChange: (dIMGroups: Array) => void;\n /**\n * list of farm ids to pre-filter the herd groups against\n */\n farmIDList?: Array;\n /**\n * disabled state\n */\n disabled?: boolean;\n}\n\n/**\n * Herd group filtering\n * @param {boolean | undefined} multiple\n * @param {Array} selection\n * @param {Array | undefined} farmIDList\n * @param {(dIMGroups: Array) => void} onDIMGroupChange\n * @param {boolean | undefined} disabled\n * @param {Pick, \"onChange\"> & {children?: React.ReactNode | undefined}, \"children\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"id\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"title\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\">} rest\n * @return {JSX.Element}\n * @constructor\n */\nconst DIMGroupFilter: FC, \"onChange\">> = ({\n multiple = false,\n selection,\n farmIDList = [],\n onDIMGroupChange,\n disabled,\n ...rest\n}) => {\n const { t } = useTranslation();\n const { trackEvent, label } = useGoogleAnalytics<{ label: string }>();\n\n /**\n * Fetch the herd groups which are available for the given farms\n */\n const dimGroups = useSelector((state) =>\n Enterprise.entities.getDIMGroups(state, { farmID: farmIDList })\n );\n\n return (\n \n disabled={disabled}\n limit={multiple ? null : 1}\n label={t(Content.chart.filters.dimGroup.label)}\n values={_.map(_.sortBy(dimGroups, \"sortableName\"), \"id\")}\n selection={selection}\n onChange={(values) => {\n /* istanbul ignore next */\n trackEvent(GAActions.selectDIMGroup, { label: `${label} - ${values.join(\",\")}` });\n onDIMGroupChange(values as Array);\n }}\n getLabel={(dimGroupID) => t(Content.chart.filters.dimGroup.single, dimGroups[dimGroupID])}\n placeholder={t(Content.chart.filters.dimGroup.placeholder)}\n {...rest}\n />\n );\n};\n\nexport default DIMGroupFilter;\n","import { ComponentProps, FC } from \"react\";\nimport * as _ from \"lodash\";\nimport moment from \"moment\";\n\nimport { ChartTimePeriod, ISODuration } from \"@ctra/api\";\nimport { defaultLocale, Enterprise, useTranslation } from \"@ctra/i18n\";\nimport { Nullable, TS, defaultBucketSizes, clampChartUnitList } from \"@ctra/utils\";\nimport { GAEvent } from \"@ctra/analytics\";\n\nimport {\n AntDesignDatePicker,\n AntDesignInput,\n BlockOutlined,\n CalendarOutlined,\n Charts,\n DownOutlined,\n Menu,\n Space\n} from \"@ctra/components\";\n\nimport { useLocalization } from \"@base\";\nimport { GACategories } from \"@analytics\";\n\nimport styles from \"./ISODurationFilter.module.less\";\n\nconst { SimpleDropdown } = Charts;\n\ninterface ISODurationFilterProps {\n /**\n * available iso durations\n */\n durations: Readonly>;\n /**\n * available time units\n */\n buckets?: Array;\n /**\n * selected duration\n */\n duration: Nullable;\n /**\n * selected time unit\n */\n bucketSize: ISODuration;\n /**\n * time period for pre-filled date range\n */\n timePeriod: ChartTimePeriod;\n /**\n * handle duration change\n * @param {Nullable} duration\n */\n onDurationChange: (duration: Nullable) => void;\n /**\n * handle custom date range changes\n * @param {ChartTimePeriod} timePeriod\n */\n onTimePeriodChange: (timePeriod: ChartTimePeriod) => void;\n /**\n * handle time unit change\n * @param {Nullable} bucketSize\n */\n onUnitChange?: (bucketSize: ISODuration) => void;\n /**\n * disabled state\n */\n disabled?: boolean;\n}\n\nconst { RangePicker } = AntDesignDatePicker;\nconst { Group } = AntDesignInput;\nconst { Item } = Menu;\n\n/**\n * custom string as a constant to be used as key\n */\nconst custom = \"custom\";\n\n/**\n * ISO duration switch\n * @param {string | null | undefined} duration\n * @param {Array} durations\n * @param {{startDate: string, endDate: string} | Record} timePeriod\n * @param {Array | undefined} buckets\n * @param {string | null | undefined} bucketSize\n * @param {(duration: Nullable) => void} onDurationChange\n * @param {(timePeriod: ChartTimePeriod) => void} onTimePeriodChange\n * @param {((bucketSize: Nullable) => void) | undefined} onUnitChange\n * @param {boolean | undefined} disabled\n * @returns {JSX.Element}\n * @constructor\n */\nconst ISODurationFilter: FC = ({\n duration,\n durations,\n timePeriod,\n buckets = defaultBucketSizes,\n bucketSize,\n onDurationChange,\n onTimePeriodChange,\n onUnitChange = _.noop,\n disabled\n}) => {\n const { startDate, endDate } = timePeriod;\n const { t } = useTranslation();\n const { dateFormat } = useLocalization();\n\n const {\n gamePlan: {\n wizard: {\n form: { placeholder }\n }\n },\n chart: { timePeriod: timeLabel }\n } = Enterprise;\n\n const handleChange = (key: string | number) => {\n if (key === custom) {\n onDurationChange(null);\n } else {\n onDurationChange(key as ISODuration);\n }\n };\n\n /**\n * pre-filled date range when the range picker is made visible\n */\n const defaultRange: ComponentProps[\"defaultValue\"] = [\n TS.asMoment(startDate),\n TS.asMoment(endDate)\n ];\n\n /**\n * 1) Convert moment array that comes from antd range picker to epochs\n * 2) Send epochs to time period setter\n */\n const handleTimeChange: ComponentProps[\"onChange\"] = (values) => {\n if (values) {\n const [startDate, endDate] = values;\n\n const startDateISOString = startDate?.startOf(\"day\").toISOString(true);\n const endDateEOD = endDate?.endOf(\"day\");\n\n const endDateISOString = (endDateEOD?.isAfter(moment()) ? endDateEOD : endDateEOD)?.toISOString(true);\n\n onTimePeriodChange({\n startDate: startDateISOString,\n endDate: endDateISOString\n } as unknown as ChartTimePeriod);\n }\n };\n\n /**\n * extra \"custom\" item in the date drop down list\n */\n const customItem = {t(timeLabel(custom), { variant: null })};\n\n return (\n \n {\n GAEvent(\n GACategories.configurator,\n \"Change time period\",\n `${t(timeLabel(key), { lng: defaultLocale, variant: null })}`\n );\n\n handleChange(key);\n }}\n showLabel={true}\n getLabel={(key, { isToggle }) => (\n \n {key === duration && !_.isNull(duration) && }\n {key && t(timeLabel(key), { variant: null })}\n {isToggle && }\n \n )}\n renderExtra={customItem}\n />\n {_.isNull(duration) && (\n (placeholder.startEpoch), t(placeholder.endEpoch)]}\n value={defaultRange}\n onChange={(values, formatString) => {\n GAEvent(GACategories.configurator, \"Change time period\", \"custom time\");\n\n handleTimeChange(values, formatString);\n }}\n />\n )}\n {!!_.size(buckets) && (\n {\n GAEvent(\n GACategories.configurator,\n \"Change time unit\",\n `${t(timeLabel(key), { lng: defaultLocale, variant: \"frequency\" })}`\n );\n\n onUnitChange(key);\n }}\n showLabel={true}\n getLabel={(key, { isToggle }) => (\n \n {key === bucketSize && !_.isNull(bucketSize) && }\n {key && t(timeLabel(key), { variant: \"frequency\" })}\n {isToggle && }\n \n )}\n />\n )}\n \n );\n};\n\nexport default ISODurationFilter;\n","import React, { useRef } from \"react\";\nimport { useLocation } from \"react-router-dom\";\n\nimport { MediaQueryDynamicImport, Drawer, Typography } from \"@ctra/components\";\nimport { Enterprise as App, EventEntity } from \"@ctra/api\";\nimport { Enterprise, useTranslation } from \"@ctra/i18n\";\nimport { useGoogleAnalytics, GAContext } from \"@ctra/analytics\";\n\nimport { URIState } from \"@routes\";\nimport { testIds, GACategories, GAActions } from \"@chart\";\nimport { EventListURLParams, EventList } from \"@events\";\nimport { useFarm } from \"@farms\";\n\nimport { DataDictionaryContext } from \"@base\";\n\nconst { Title } = Typography;\n\n/**\n * Zoomed chart view with farm events (if a farm is selected)\n * @constructor\n */\nexport const ChartZoom = (): JSX.Element | null => {\n const { t } = useTranslation();\n const { state, pathname, search } = useLocation();\n const { farm } = useFarm();\n const { trackEvent } = useGoogleAnalytics();\n\n const {\n events: {\n list: { headers }\n }\n } = Enterprise;\n\n const searchParams = new URLSearchParams(search);\n\n if (state) {\n const { zoom } = state;\n\n return zoom && zoom.dataDescriptorID ? (\n
          \n import(\"./Mobile\")} desktop={() => import(\"./Desktop\")}>\n {(Component) => (\n \n \n \n {\n searchParams.delete(EventListURLParams.selectedEvent);\n App.history.push({ pathname, search: searchParams.toString(), state });\n }}\n afterOpenChange={(open) => {\n trackEvent(GAActions.toggleFarmTimeline, {\n label: open ? \"open\" : \"close\"\n });\n }}\n >\n {t<string>(headers.title)}\n \n \n \n \n \n )}\n \n
          \n ) : null;\n }\n return null;\n};\n","import React from \"react\";\nimport { useLocation } from \"react-router-dom\";\n\nimport { MediaQueryDynamicImport } from \"@ctra/components\";\n\nimport { URIState } from \"@routes\";\nimport { testIds } from \"@chart\";\n\nimport { DataDictionaryContext } from \"@base\";\nimport { useFarm } from \"@farms\";\nimport { EventListContext } from \"@events\";\n\n/**\n * Edit chart view per card\n * @constructor\n */\nexport const ChartEdit = (): JSX.Element | null => {\n const { state } = useLocation();\n const { farm: farmContext } = useFarm();\n\n if (state) {\n const { editChart } = state;\n\n return editChart && editChart.chartID ? (\n
          \n {/** @todo replace the desktop import with mobile import and make a proper mobile view of it */}\n import(\"./Desktop\")} desktop={() => import(\"./Desktop\")}>\n {(Component) => (\n \n \n \n \n \n )}\n \n
          \n ) : null;\n }\n return null;\n};\n","import moment from \"moment\";\nimport { useLocation } from \"react-router-dom\";\nimport React from \"react\";\nimport { Formik } from \"formik\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport * as _ from \"lodash\";\n\nimport {\n Button,\n Space,\n MediaQueryDynamicImport,\n Spin,\n Typography,\n Form,\n Input,\n DatePicker,\n Result,\n CloseOutlined\n} from \"@ctra/components\";\n\nimport { ChartTimePeriod, Enterprise, EnterpriseAppState, Generic } from \"@ctra/api\";\nimport { useTranslation, Enterprise as Content } from \"@ctra/i18n\";\nimport { isFulfilled, isProduction, Optional, TS } from \"@ctra/utils\";\n\nimport { URIState } from \"@routes\";\nimport { testIds } from \"@chart\";\nimport { DataDictionaryContext, useLocalization } from \"@base\";\nimport { useFarm } from \"@farms\";\nimport { EventListContext } from \"@events\";\n\nimport styles from \"./ChartFeedback.module.less\";\n\nconst { Paragraph } = Typography;\nconst { TextArea } = Input;\nconst { RangePicker } = DatePicker;\n\nconst {\n kpi: { displayName },\n analytics: { feedback: feedbackCopy }\n} = Content;\n\ninterface FeedbackContext {\n typeName: string;\n timePeriod: ChartTimePeriod;\n}\n\n/**\n * Chart feedback component\n * @constructor\n */\nexport const ChartFeedback = (): JSX.Element | null => {\n const { t } = useTranslation();\n const { farm } = useFarm();\n const dispatch = useDispatch();\n const { state } = useLocation();\n const { farm: farmContext } = useFarm();\n const { dateFormat } = useLocalization();\n\n /**\n * Tell if the feedback is submitted\n * @type {boolean}\n */\n const isSubmitted = useSelector((state) =>\n isFulfilled(state, Generic.types.SEND_FEEDBACK)\n );\n\n if (state?.feedback) {\n const { sourceID, context, sourceType, base64Content } = state.feedback;\n\n const { timePeriod, typeName } = _.defaultTo(context as Optional, {\n typeName: \"\",\n timePeriod: {\n startDate: TS.now(),\n endDate: TS.now()\n }\n });\n\n return sourceID ? (\n
          \n import(\"./Mobile\")} desktop={() => import(\"./Desktop\")}>\n {(Component, { isMobile }) => (\n \n \n \n initialValues={{\n base64Content: base64Content,\n dateRange: [moment(timePeriod.startDate), moment(timePeriod.endDate)],\n text: \"\"\n }}\n onSubmit={({ base64Content, dateRange: [start, end], text }, { setSubmitting }) => {\n const payload = {\n context: {\n sourceId: sourceID,\n sourceType: sourceType,\n farmId: farm?.id,\n startAt: start.format(\"YYYY-MM-DDTHH:mm:ss\"),\n endAt: end.format(\"YYYY-MM-DDTHH:mm:ss\")\n },\n type: \"IssueReport\",\n name: `Chart issue report: ${t(displayName(typeName), {\n case: null,\n variant: null,\n makeDefaultValue: true\n })}`,\n text,\n attachments: [\n {\n name: t(displayName(typeName), {\n case: null,\n variant: null,\n makeDefaultValue: true\n }),\n base64Content\n }\n ]\n };\n\n dispatch(Generic.actions.sendFeedback.start(payload));\n }}\n >\n {({\n values: {\n dateRange: []\n },\n submitCount,\n isSubmitting\n }) => (\n 0 && isSubmitted ? void 0 : t(feedbackCopy.title)}\n footer={null}\n closable={!(submitCount > 0 && isSubmitted)}\n closeIcon={submitCount > 0 && isSubmitted ? : null}\n bodyStyle={{ height: \"100%\", padding: 0 }}\n onCancel={() => {\n Enterprise.history.push({\n state: {}\n });\n }}\n >\n {submitCount > 0 && isSubmitted ? (\n Enterprise.history.push({ state: {} })}\n >\n {t(feedbackCopy.done)}\n \n ]}\n />\n ) : (\n \n
          \n \n {t(feedbackCopy.description)}\n {isProduction() ? null : (\n \n \"screenshot\"\n \n )}\n \n \n \n \n