diff --git a/app/components/chart-panel.tsx b/app/components/chart-panel.tsx index edaf89d91..ac8d087eb 100644 --- a/app/components/chart-panel.tsx +++ b/app/components/chart-panel.tsx @@ -6,7 +6,6 @@ import Flex from "@/components/flex"; import { ChartType, ConfiguratorStateConfiguringChart, - ConfiguratorStateDescribingChart, ConfiguratorStatePublishing, } from "@/configurator"; import { useConfiguratorState } from "@/src"; @@ -18,9 +17,7 @@ type ChartPanelProps = { children: ReactNode } & BoxProps; export const ChartPanelConfigurator = (props: ChartPanelProps) => { // This type of chart panel can only appear for below steps. const [state] = useConfiguratorState() as unknown as [ - | ConfiguratorStateConfiguringChart - | ConfiguratorStateDescribingChart - | ConfiguratorStatePublishing + ConfiguratorStateConfiguringChart | ConfiguratorStatePublishing ]; return ( @@ -53,12 +50,10 @@ const useChartPanelInnerStyles = makeStyles( root: { flexDirection: "column", backgroundColor: theme.palette.grey[100], - boxShadow: theme.shadows[6], - borderRadius: 12, - borderTopLeftRadius: ({ showTabs }) => (showTabs ? 0 : 12), + border: "1px solid", + borderColor: theme.palette.divider, // TODO: Handle properly when chart composition is implemented (enable when // ChartSelectionTabs becomes scrollable) - borderTopRightRadius: 12, overflow: "hidden", width: "auto", }, diff --git a/app/components/chart-preview.tsx b/app/components/chart-preview.tsx index 26413a5c4..c241ebafe 100644 --- a/app/components/chart-preview.tsx +++ b/app/components/chart-preview.tsx @@ -1,5 +1,6 @@ import { Trans } from "@lingui/macro"; -import { Box, Typography } from "@mui/material"; +import { Box, Theme, Typography } from "@mui/material"; +import { makeStyles } from "@mui/styles"; import Head from "next/head"; import * as React from "react"; @@ -39,6 +40,23 @@ export const ChartPreview = ({ ); }; +const useStyles = makeStyles({ + title: { + marginBottom: 2, + cursor: "pointer", + "&:hover": { + textDecoration: "underline", + }, + }, + description: { + marginBottom: 2, + cursor: "pointer", + "&:hover": { + textDecoration: "underline", + }, + }, +}); + export const ChartPreviewInner = ({ dataSetIri, dataSource, @@ -46,9 +64,9 @@ export const ChartPreviewInner = ({ dataSetIri: string; dataSource: DataSource; }) => { - const [state] = useConfiguratorState(); + const [state, dispatch] = useConfiguratorState(); const locale = useLocale(); - + const classes = useStyles(); const [{ data: metaData }] = useDataCubeMetadataQuery({ variables: { iri: dataSetIri, @@ -91,16 +109,21 @@ export const ChartPreviewInner = ({ )} {(state.state === "CONFIGURING_CHART" || - state.state === "DESCRIBING_CHART" || state.state === "PUBLISHING") && ( <> <> + dispatch({ + type: "ACTIVE_FIELD_CHANGED", + value: "title", + }) + } > {state.meta.title[locale] === "" ? ( [ Title ] @@ -118,11 +141,17 @@ export const ChartPreviewInner = ({ + dispatch({ + type: "ACTIVE_FIELD_CHANGED", + value: "description", + }) + } > {state.meta.description[locale] === "" ? ( [ Description ] diff --git a/app/components/chart-selection-tabs.tsx b/app/components/chart-selection-tabs.tsx index 4cb3f654d..f183e13aa 100644 --- a/app/components/chart-selection-tabs.tsx +++ b/app/components/chart-selection-tabs.tsx @@ -1,4 +1,5 @@ -import { Box, Popover, Tab, Tabs, Theme } from "@mui/material"; +import { Trans } from "@lingui/macro"; +import { Box, Popover, Tab, Tabs, Theme, Button } from "@mui/material"; import { makeStyles } from "@mui/styles"; import React, { createContext, @@ -12,13 +13,14 @@ import React, { import { ChartType, ConfiguratorStateConfiguringChart, - ConfiguratorStateDescribingChart, ConfiguratorStatePublishing, useConfiguratorState, } from "@/configurator"; import { ChartTypeSelector } from "@/configurator/components/chart-type-selector"; import { getIconName } from "@/configurator/components/ui-helpers"; +import { useDataCubeMetadataWithComponentValuesQuery } from "@/graphql/query-hooks"; import { Icon, IconName } from "@/icons"; +import { useLocale } from "@/src"; import useEvent from "@/utils/use-event"; import Flex from "./flex"; @@ -95,9 +97,7 @@ const useStyles = makeStyles((theme) => ({ const TabsEditable = ({ chartType }: { chartType: ChartType }) => { const [configuratorState] = useConfiguratorState() as unknown as [ - | ConfiguratorStateConfiguringChart - | ConfiguratorStateDescribingChart - | ConfiguratorStatePublishing + ConfiguratorStateConfiguringChart | ConfiguratorStatePublishing ]; const [tabsState, setTabsState] = useTabsState(); const [popoverAnchorEl, setPopoverAnchorEl] = useState( @@ -149,6 +149,41 @@ const TabsFixed = ({ chartType }: { chartType: ChartType }) => { return ; }; +const PublishChartButton = () => { + const [state, dispatch] = useConfiguratorState(); + const { dataSet: dataSetIri } = state as + | ConfiguratorStatePublishing + | ConfiguratorStateConfiguringChart; + const locale = useLocale(); + const [{ data }] = useDataCubeMetadataWithComponentValuesQuery({ + variables: { + iri: dataSetIri ?? "", + sourceType: state.dataSource.type, + sourceUrl: state.dataSource.url, + locale, + }, + pause: !dataSetIri, + }); + const goNext = useEvent(() => { + if (data?.dataCubeByIri) { + dispatch({ + type: "STEP_NEXT", + dataSetMetadata: data?.dataCubeByIri, + }); + } + }); + + return ( + + ); +}; + const TabsInner = ({ chartType, editable, @@ -159,16 +194,19 @@ const TabsInner = ({ onActionButtonClick?: (e: React.MouseEvent) => void; }) => { return ( - - {/* TODO: Generate dynamically when chart composition is implemented */} - - } - /> - + + + {/* TODO: Generate dynamically when chart composition is implemented */} + + } + /> + + + ); }; diff --git a/app/components/language-menu.tsx b/app/components/language-menu.tsx index 1f1db8ecc..4d7413b0f 100644 --- a/app/components/language-menu.tsx +++ b/app/components/language-menu.tsx @@ -43,7 +43,6 @@ export const LanguageMenu = ({ contentId }: { contentId?: string }) => { ml: [0, "auto"], width: ["100%", "auto"], backgroundColor: ["grey.300", "transparent"], - order: [1, 2], justifyContent: "flex-end", }} > diff --git a/app/components/login-menu.tsx b/app/components/login-menu.tsx index d2b4a904f..79860e2ca 100644 --- a/app/components/login-menu.tsx +++ b/app/components/login-menu.tsx @@ -37,7 +37,6 @@ function LoginMenu() { <> Signed in as {session.user?.name}{" "} - {session.user?.id} {" - "} + ); +}; + +const isAnnotationField = (field: string | undefined) => { + return field === "title" || field === "description"; +}; const ConfigureChartStep = () => { - const [state] = useConfiguratorState(); + const [state, dispatch] = useConfiguratorState(); + + const handleClosePanel = useEvent(() => { + dispatch({ + type: "ACTIVE_FIELD_CHANGED", + value: undefined, + }); + }); + + const router = useRouter(); + + const handlePrevious = useEvent(() => { + if (state.state !== "CONFIGURING_CHART") { + return; + } + router.push( + { + pathname: `/browse/dataset/${encodeURIComponent(state.dataSet)}`, + }, + undefined, + { shallow: true } + ); + }); if (state.state !== "CONFIGURING_CHART") { return null; @@ -35,10 +102,18 @@ const ConfigureChartStep = () => { flexDirection: "column", }} > + + + Back to preview + + {state.chartConfig.chartType === "table" ? ( ) : ( - + <> + + + )} @@ -49,39 +124,38 @@ const ConfigureChartStep = () => { /> - - - + +
+ + + + {isAnnotationField(state.activeField) ? ( + + ) : isInteractiveFilterType(state.activeField) ? ( + + ) : ( + + )} +
+
); }; -const DescribeChartStep = () => { - const [state] = useConfiguratorState(); - - if (state.state !== "DESCRIBING_CHART") { - return null; - } - - return ( - <> - - - - - - - - - - - - - ); -}; const PublishStep = () => { const [state] = useConfiguratorState(); @@ -112,11 +186,7 @@ export const Configurator = () => { ) : ( - - - {state.state === "CONFIGURING_CHART" ? : null} - {state.state === "DESCRIBING_CHART" ? : null} {state.state === "PUBLISHING" ? : null} ); diff --git a/app/configurator/components/drawer.tsx b/app/configurator/components/drawer.tsx new file mode 100644 index 000000000..6bccf30cd --- /dev/null +++ b/app/configurator/components/drawer.tsx @@ -0,0 +1,16 @@ +import { Drawer as MuiDrawer } from "@mui/material"; +import { styled } from "@mui/material/styles"; + +export const ConfiguratorDrawer = styled(MuiDrawer)(({ theme }) => ({ + "&": { + position: "static", + }, + "& > .MuiPaper-root": { + top: 96, + bottom: 0, + height: "auto", + borderLeft: `1px ${theme.palette.divider} solid`, + borderRight: `1px ${theme.palette.divider} solid`, + boxShadow: "none", + }, +})); diff --git a/app/configurator/components/empty-right-panel.tsx b/app/configurator/components/empty-right-panel.tsx deleted file mode 100644 index 4e9d0ea94..000000000 --- a/app/configurator/components/empty-right-panel.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { Trans } from "@lingui/macro"; -import { Typography } from "@mui/material"; -import { ReactNode } from "react"; - -import { - ConfiguratorStateConfiguringChart, - ConfiguratorStateDescribingChart, -} from "@/configurator"; - -export const EmptyRightPanel = ({ - state, -}: { - state: ConfiguratorStateConfiguringChart | ConfiguratorStateDescribingChart; -}) => ( - - {getRightPanelHint(state.state)} - -); - -const getRightPanelHint = (state: string): ReactNode => { - switch (state) { - case "CONFIGURING_CHART": - return ( - - Select a chart element or a data dimension in the left panel to modify - its options. - - ); - case "DESCRIBING_CHART": - return ( - - Select an annotation field in the left panel. - - ); - default: - return "blabla"; - } -}; diff --git a/app/configurator/components/field.tsx b/app/configurator/components/field.tsx index 968dc0aa6..08e70ac83 100644 --- a/app/configurator/components/field.tsx +++ b/app/configurator/components/field.tsx @@ -1,9 +1,15 @@ import { t } from "@lingui/macro"; -import { CircularProgress, Theme } from "@mui/material"; +import { CircularProgress, Theme, Typography } from "@mui/material"; import { makeStyles } from "@mui/styles"; import { extent, timeFormat, TimeLocaleObject, timeParse } from "d3"; import get from "lodash/get"; -import { ChangeEvent, ReactNode, useCallback, useMemo, useState } from "react"; +import React, { + ChangeEvent, + ReactNode, + useCallback, + useMemo, + useState, +} from "react"; import Flex from "@/components/flex"; import { @@ -19,6 +25,7 @@ import { import { ColorPickerMenu } from "@/configurator/components/chart-controls/color-picker"; import { AnnotatorTab, + AnnotatorTabProps, ControlTab, OnOffControlTab, } from "@/configurator/components/chart-controls/control-tab"; @@ -51,10 +58,21 @@ import { FIELD_VALUE_NONE } from "@/configurator/constants"; import { truthy } from "@/domain/types"; import { useTimeFormatLocale } from "@/formatters"; import { DimensionMetadataFragment, TimeUnit } from "@/graphql/query-hooks"; -import { IconName } from "@/icons"; +import SvgIcEdit from "@/icons/components/IcEdit"; import { useLocale } from "@/locales/use-locale"; import { getPalette } from "@/palettes"; +const useFieldEditIconStyles = makeStyles((theme) => ({ + root: { + color: theme.palette.primary.main, + }, +})); + +const FieldEditIcon = () => { + const classes = useFieldEditIconStyles(); + return ; +}; + const useStyles = makeStyles((theme) => ({ loadingIndicator: { color: theme.palette.grey[700], @@ -84,6 +102,7 @@ export const ControlTabField = ({ labelId={labelId} checked={field.checked} onClick={field.onClick} + rightIcon={} /> ); }; @@ -434,23 +453,37 @@ export const TimeInput = ({ export const AnnotatorTabField = ({ value, + emptyValueWarning, ...tabProps }: { value: string; - disabled?: boolean; - icon: IconName; - label: ReactNode; -}) => { + emptyValueWarning?: React.ReactNode; +} & Omit) => { const fieldProps = useActiveFieldField({ value, }); + const [state] = useConfiguratorState(isConfiguring); + const locale = useLocale(); + const hasText = useMemo(() => { + const key = value as "title" | "description"; + return state.meta[key]?.[locale] !== ""; + }, [state.meta, value, locale]); + return ( + {emptyValueWarning} +
+ ) + } value={`${fieldProps.value}`} checked={fieldProps.checked} onClick={fieldProps.onClick} + rightIcon={} /> ); }; diff --git a/app/configurator/components/filters.tsx b/app/configurator/components/filters.tsx index ffb109b92..cf08e2119 100644 --- a/app/configurator/components/filters.tsx +++ b/app/configurator/components/filters.tsx @@ -11,7 +11,6 @@ import { AutocompleteProps, Autocomplete, Divider, - Drawer as MuiDrawer, Theme, IconButton, Tooltip, @@ -43,6 +42,7 @@ import { useDimensionSelection, useMultiFilterContext, } from "@/configurator"; +import { ConfiguratorDrawer } from "@/configurator/components/drawer"; import { MultiFilterFieldColorPicker, SingleFilterField, @@ -76,16 +76,6 @@ import { ConfiguratorState, GenericSegmentField } from "../config-types"; import { ControlSectionSkeleton } from "./chart-controls/section"; -const Drawer = styled(MuiDrawer)(({ theme }) => ({ - "& > .MuiPaper-root": { - top: 152, - bottom: 0, - height: "auto", - borderLeft: `1px ${theme.palette.divider} solid`, - borderTop: `1px ${theme.palette.divider} solid`, - }, -})); - const useStyles = makeStyles((theme: Theme) => { return { autocompleteMenuContent: { @@ -511,7 +501,7 @@ const MultiFilterContent = ({ ); })} - + - + ); }; diff --git a/app/configurator/components/layout.tsx b/app/configurator/components/layout.tsx index 6939930f6..fd07c8560 100644 --- a/app/configurator/components/layout.tsx +++ b/app/configurator/components/layout.tsx @@ -8,7 +8,7 @@ const useStyles = makeStyles((theme: Theme) => ({ overflowX: "hidden", overflowY: "auto", backgroundColor: theme.palette.grey[100], - boxShadow: theme.shadows[5], + boxShadow: "none", borderRightColor: theme.palette.grey[500], borderRightWidth: "1px", borderRightStyle: "solid", @@ -31,12 +31,11 @@ const useStyles = makeStyles((theme: Theme) => ({ width: "100%", height: "calc(100vh - 96px)", display: "grid", - gridTemplateColumns: - "minmax(12rem, 20rem) minmax(22rem, 1fr) minmax(12rem, 20rem)", + gridTemplateColumns: "minmax(12rem, 20rem) minmax(22rem, 1fr)", gridTemplateRows: "auto minmax(0, 1fr)", gridTemplateAreas: ` - "header header header" - "left middle right"`, + "header header" + "left middle"`, marginLeft: "auto", marginRight: "auto", }, diff --git a/app/configurator/components/stepper.tsx b/app/configurator/components/stepper.tsx deleted file mode 100644 index eefc256d8..000000000 --- a/app/configurator/components/stepper.tsx +++ /dev/null @@ -1,233 +0,0 @@ -import { Trans } from "@lingui/macro"; -import { Button, Theme, Typography } from "@mui/material"; -import { makeStyles } from "@mui/styles"; -import { useRouter } from "next/router"; -import React, { ReactNode, useEffect } from "react"; - -import Flex from "@/components/flex"; -import { useHeaderProgress } from "@/components/header"; -import { - canTransitionToNextStep, - canTransitionToPreviousStep, - useConfiguratorState, -} from "@/configurator"; -import { useDataCubeMetadataWithComponentValuesQuery } from "@/graphql/query-hooks"; -import SvgIcChevronLeft from "@/icons/components/IcChevronLeft"; -import SvgIcChevronRight from "@/icons/components/IcChevronRight"; -import { useLocale } from "@/src"; -import useEvent from "@/utils/use-event"; - -export type StepStatus = "past" | "current" | "future"; - -const steps = ["CONFIGURING_CHART", "DESCRIBING_CHART"] as const; -type StepState = typeof steps[number]; - -const useStyles = makeStyles((theme: Theme) => ({ - root: { - alignItems: "center", - position: "relative", - - backgroundColor: theme.palette.grey[100], - borderBottomWidth: "1px", - borderBottomStyle: "solid", - borderBottomColor: theme.palette.grey[500], - overflow: "hidden", - }, - container: { - width: "100%", - justifyContent: "center", - alignItems: "center", - padding: `0 ${theme.spacing(2)}`, - minHeight: 56, - }, -})); - -export const StepperDumb = ({ - goPrevious, - goNext, - state, - data, -}: { - goPrevious: () => void; - goNext: () => void; - state: ReturnType[0]; - data: ReturnType< - typeof useDataCubeMetadataWithComponentValuesQuery - >[0]["data"]; -}) => { - const classes = useStyles(); - const nextDisabled = - !canTransitionToNextStep(state, data?.dataCubeByIri) || - state.state === "PUBLISHING"; - const previousDisabled = - !canTransitionToPreviousStep(state) || state.state === "PUBLISHING"; - - const previousLabel = Back; - const nextLabel = - state.state === "DESCRIBING_CHART" || state.state === "PUBLISHING" ? ( - Publish this visualization - ) : ( - Next - ); - - const currentStepIndex = steps.indexOf(state.state as $IntentionalAny); - const { value: progress, setValue: setProgress } = useHeaderProgress(); - useEffect(() => { - const run = async () => { - if ( - (currentStepIndex === 0 || currentStepIndex === -1) && - progress === 100 - ) { - setProgress(0); - await new Promise((resolve) => setTimeout(resolve, 100)); - } - setProgress( - Math.round(((currentStepIndex + 1) / (steps.length + 1)) * 100) - ); - }; - run(); - return () => { - setProgress(100); - }; - }, [currentStepIndex, setProgress, progress]); - - return ( - - {/* Stepper container */} - - - - - - - - - - - - - - ); -}; - -export const Stepper = ({ dataSetIri }: { dataSetIri?: string }) => { - const [state, dispatch] = useConfiguratorState(); - const locale = useLocale(); - const [{ data }] = useDataCubeMetadataWithComponentValuesQuery({ - variables: { - iri: dataSetIri ?? "", - sourceType: state.dataSource.type, - sourceUrl: state.dataSource.url, - locale, - }, - pause: !dataSetIri, - }); - const goNext = useEvent(() => { - if (data?.dataCubeByIri) { - dispatch({ - type: "STEP_NEXT", - dataSetMetadata: data?.dataCubeByIri, - }); - } - }); - - const router = useRouter(); - - const goPrevious = useEvent(() => { - if (state.state === "CONFIGURING_CHART") { - router.push( - { - pathname: `/browse/dataset/${encodeURIComponent(state.dataSet)}`, - }, - undefined, - { shallow: true } - ); - } else { - dispatch({ - type: "STEP_PREVIOUS", - }); - } - }); - - return ( - - ); -}; - -export const CallToAction = ({ - stepState, -}: { - stepState: StepState | undefined; -}) => { - switch (stepState) { - case "CONFIGURING_CHART": - return ( - - Customize your visualization by using the filter and color - segmentation options in the sidebars. - - } - /> - ); - case "DESCRIBING_CHART": - return ( - - Before publishing, add a title and description to your chart, and - choose which elements should be interactive. - - } - /> - ); - } - - return null; -}; - -const CallToActionText = ({ label }: { label: ReactNode }) => { - return ( - - {label} - - ); -}; diff --git a/app/configurator/components/use-disclosure.tsx b/app/configurator/components/use-disclosure.tsx index c02ca5c18..21e8b74b1 100644 --- a/app/configurator/components/use-disclosure.tsx +++ b/app/configurator/components/use-disclosure.tsx @@ -1,7 +1,7 @@ import { useCallback, useState } from "react"; -const useDisclosure = () => { - const [isOpen, setOpen] = useState(false); +const useDisclosure = (initialState?: boolean) => { + const [isOpen, setOpen] = useState(initialState || false); const open = useCallback(() => setOpen(true), []); const close = useCallback(() => setOpen(false), []); return { diff --git a/app/configurator/config-form.tsx b/app/configurator/config-form.tsx index a116b33a1..9eaf0baaa 100644 --- a/app/configurator/config-form.tsx +++ b/app/configurator/config-form.tsx @@ -376,7 +376,7 @@ export const useChartType = (): { }); const value = - state.state === "CONFIGURING_CHART" || state.state === "DESCRIBING_CHART" + state.state === "CONFIGURING_CHART" ? get(state, "chartConfig.chartType") : ""; diff --git a/app/configurator/config-types.ts b/app/configurator/config-types.ts index adf78d7f7..e464a2af7 100644 --- a/app/configurator/config-types.ts +++ b/app/configurator/config-types.ts @@ -832,12 +832,6 @@ const ConfiguratorStateConfiguringChart = t.intersection([ }), Config, ]); -const ConfiguratorStateDescribingChart = t.intersection([ - t.type({ - state: t.literal("DESCRIBING_CHART"), - }), - Config, -]); const ConfiguratorStatePublishing = t.intersection([ t.type({ state: t.literal("PUBLISHING"), @@ -851,9 +845,6 @@ export type ConfiguratorStateSelectingDataSet = t.TypeOf< export type ConfiguratorStateConfiguringChart = t.TypeOf< typeof ConfiguratorStateConfiguringChart >; -export type ConfiguratorStateDescribingChart = t.TypeOf< - typeof ConfiguratorStateDescribingChart ->; export type ConfiguratorStatePublishing = t.TypeOf< typeof ConfiguratorStatePublishing >; @@ -861,7 +852,6 @@ const ConfiguratorState = t.union([ ConfiguratorStateInitial, ConfiguratorStateSelectingDataSet, ConfiguratorStateConfiguringChart, - ConfiguratorStateDescribingChart, ConfiguratorStatePublishing, ]); diff --git a/app/configurator/configurator-state.tsx b/app/configurator/configurator-state.tsx index 422e431e3..71fa73bcb 100644 --- a/app/configurator/configurator-state.tsx +++ b/app/configurator/configurator-state.tsx @@ -32,7 +32,6 @@ import { DEFAULT_FIXED_COLOR_FIELD } from "@/charts/map/constants"; import { mapValueIrisToColor } from "@/configurator/components/ui-helpers"; import { ConfiguratorStateConfiguringChart, - ConfiguratorStateDescribingChart, DataSource, GenericField, ImputationType, @@ -295,7 +294,7 @@ const emptyState: ConfiguratorStateSelectingDataSet = { }; const getCachedCubeMetadataWithComponentValues = ( - draft: ConfiguratorStateConfiguringChart | ConfiguratorStateDescribingChart, + draft: ConfiguratorStateConfiguringChart, locale: Locale ) => { const query = client.readQuery< @@ -576,17 +575,12 @@ const transitionStepNext = ( } break; case "CONFIGURING_CHART": - return { - ...draft, - activeField: undefined, - state: "DESCRIBING_CHART", - }; - case "DESCRIBING_CHART": return { ...draft, activeField: undefined, state: "PUBLISHING", }; + case "INITIAL": case "PUBLISHING": break; @@ -612,8 +606,6 @@ export const canTransitionToNextStep = ( case "SELECTING_DATASET": return state.dataSet !== undefined; case "CONFIGURING_CHART": - case "DESCRIBING_CHART": - // These are all interchangeable in terms of validity return true; } @@ -628,10 +620,8 @@ const getPreviousState = ( return state; case "CONFIGURING_CHART": return "SELECTING_DATASET"; - case "DESCRIBING_CHART": - return "CONFIGURING_CHART"; case "PUBLISHING": - return "DESCRIBING_CHART"; + return "CONFIGURING_CHART"; default: return "SELECTING_DATASET"; } @@ -662,12 +652,6 @@ const transitionStepPrevious = ( activeField: undefined, state: stepTo, }; - case "DESCRIBING_CHART": - return { - ...draft, - activeField: undefined, - state: stepTo, - }; default: return draft; } @@ -1066,10 +1050,7 @@ export const handleInteractiveFilterChanged = ( { type: "INTERACTIVE_FILTER_CHANGED" } > ) => { - if ( - draft.state === "CONFIGURING_CHART" || - draft.state === "DESCRIBING_CHART" - ) { + if (draft.state === "CONFIGURING_CHART") { setWith( draft, "chartConfig.interactiveFiltersConfig", @@ -1084,10 +1065,7 @@ export const handleInteractiveFilterChanged = ( export const handleInteractiveFilterTimeSliderReset = ( draft: ConfiguratorState ) => { - if ( - draft.state === "CONFIGURING_CHART" || - draft.state === "DESCRIBING_CHART" - ) { + if (draft.state === "CONFIGURING_CHART") { if (draft.chartConfig.interactiveFiltersConfig) { draft.chartConfig.interactiveFiltersConfig.timeSlider.componentIri = ""; } @@ -1115,10 +1093,7 @@ const reducer: Reducer = ( draft.dataSource = action.value; return draft; case "CHART_TYPE_CHANGED": - if ( - draft.state === "CONFIGURING_CHART" || - draft.state === "DESCRIBING_CHART" - ) { + if (draft.state === "CONFIGURING_CHART") { const { locale, chartType } = action.value; const metadata = getCachedCubeMetadataWithComponentValues( draft, @@ -1145,11 +1120,9 @@ const reducer: Reducer = ( return draft; case "ACTIVE_FIELD_CHANGED": - if ( - draft.state === "CONFIGURING_CHART" || - draft.state === "DESCRIBING_CHART" - ) + if (draft.state === "CONFIGURING_CHART") { draft.activeField = action.value; + } return draft; case "CHART_FIELD_CHANGED": @@ -1231,7 +1204,7 @@ const reducer: Reducer = ( return draft; case "CHART_DESCRIPTION_CHANGED": - if (draft.state === "DESCRIBING_CHART") { + if (draft.state === "CONFIGURING_CHART") { setWith(draft, `meta.${action.value.path}`, action.value.value, Object); } return draft; @@ -1568,7 +1541,6 @@ const ConfiguratorStateProviderInternal = ({ try { switch (state.state) { case "CONFIGURING_CHART": - case "DESCRIBING_CHART": if (chartId === "new") { const newChartId = createChartId(); window.localStorage.setItem( @@ -1724,9 +1696,3 @@ export const isConfiguring = ( ): s is ConfiguratorStateConfiguringChart => { return s.state === "CONFIGURING_CHART"; }; - -export const isDescribing = ( - s: ConfiguratorState -): s is ConfiguratorStateDescribingChart => { - return s.state === "DESCRIBING_CHART"; -}; diff --git a/app/configurator/interactive-filters/editor-time-brush.tsx b/app/configurator/interactive-filters/editor-time-brush.tsx index 1ffdbdfe1..d2c2ceb36 100644 --- a/app/configurator/interactive-filters/editor-time-brush.tsx +++ b/app/configurator/interactive-filters/editor-time-brush.tsx @@ -6,8 +6,10 @@ import React, { useCallback, useEffect, useRef } from "react"; import Flex from "@/components/flex"; import { Label } from "@/components/form"; import { parseDate } from "@/configurator/components/ui-helpers"; -import { ConfiguratorStateDescribingChart } from "@/configurator/config-types"; -import { useConfiguratorState } from "@/configurator/configurator-state"; +import { + isConfiguring, + useConfiguratorState, +} from "@/configurator/configurator-state"; import { updateInteractiveTimeRangeFilter } from "@/configurator/interactive-filters/interactive-filters-config-state"; import { useFormatFullDateAuto } from "@/formatters"; import { useTheme } from "@/themes"; @@ -42,8 +44,8 @@ export const EditorBrush = ({ // FIXME: make component responsive (currently triggers infinite loop) const brushWidth = 267; //width - MARGINS.left - MARGINS.right; - const [state, dispatch] = useConfiguratorState(); - const { chartConfig } = state as ConfiguratorStateDescribingChart; + const [state, dispatch] = useConfiguratorState(isConfiguring); + const { chartConfig } = state; const timeScale = scaleTime().domain(timeExtent).range([0, brushWidth]); diff --git a/app/configurator/interactive-filters/interactive-filters-config-options.tsx b/app/configurator/interactive-filters/interactive-filters-config-options.tsx index 1cf048137..6ed3a4d23 100644 --- a/app/configurator/interactive-filters/interactive-filters-config-options.tsx +++ b/app/configurator/interactive-filters/interactive-filters-config-options.tsx @@ -19,9 +19,9 @@ import { SectionTitle, } from "@/configurator/components/chart-controls/section"; import { parseDate } from "@/configurator/components/ui-helpers"; -import { ConfiguratorStateDescribingChart } from "@/configurator/config-types"; +import { ConfiguratorStateConfiguringChart } from "@/configurator/config-types"; import { - isDescribing, + isConfiguring, useConfiguratorState, } from "@/configurator/configurator-state"; import { EditorBrush } from "@/configurator/interactive-filters/editor-time-brush"; @@ -50,7 +50,7 @@ import { getTimeSliderFilterDimensions } from "./helpers"; export const InteractiveFiltersOptions = ({ state, }: { - state: ConfiguratorStateDescribingChart; + state: ConfiguratorStateConfiguringChart; }) => { const { chartConfig, dataSet, dataSource } = state; const activeField = state.activeField as InteractiveFilterType; @@ -166,7 +166,7 @@ const InteractiveTimeRangeFilterToggle = ({ const InteractiveTimeRangeFilterOptions = ({ state, }: { - state: ConfiguratorStateDescribingChart; + state: ConfiguratorStateConfiguringChart; }) => { const locale = useLocale(); const formatDateAuto = useFormatFullDateAuto(); @@ -245,7 +245,7 @@ const InteractiveTimeRangeFilterOptions = ({ const InteractiveTimeSliderFilterOptions = ({ state: { chartConfig, dataSet, dataSource }, }: { - state: ConfiguratorStateDescribingChart; + state: ConfiguratorStateConfiguringChart; }) => { const locale = useLocale(); const [{ data }] = useDataCubeMetadataWithComponentValuesQuery({ @@ -345,7 +345,7 @@ const InteractiveDataFiltersToggle = ({ const InteractiveDataFilterOptions = ({ state: { chartConfig, dataSet, dataSource }, }: { - state: ConfiguratorStateDescribingChart; + state: ConfiguratorStateConfiguringChart; }) => { const locale = useLocale(); const [{ data }] = useDataCubeMetadataWithComponentValuesQuery({ @@ -408,7 +408,7 @@ const InteractiveDataFilterOptionsCheckbox = ({ label: string; disabled: boolean; }) => { - const [state, dispatch] = useConfiguratorState(isDescribing); + const [state, dispatch] = useConfiguratorState(isConfiguring); const onChange = useCallback<(e: ChangeEvent) => void>( (e) => { diff --git a/app/configurator/interactive-filters/interactive-filters-config-state.tsx b/app/configurator/interactive-filters/interactive-filters-config-state.tsx index e56380f3a..9a0d2a1af 100644 --- a/app/configurator/interactive-filters/interactive-filters-config-state.tsx +++ b/app/configurator/interactive-filters/interactive-filters-config-state.tsx @@ -5,7 +5,7 @@ import { ChangeEvent, useCallback } from "react"; import { InteractiveFiltersConfig } from "@/configurator/config-types"; import { - isDescribing, + isConfiguring, useConfiguratorState, } from "@/configurator/configurator-state"; import { DimensionMetadataFragment } from "@/graphql/query-hooks"; @@ -14,7 +14,7 @@ import useEvent from "@/utils/use-event"; import { FIELD_VALUE_NONE } from "../constants"; export const useInteractiveLegendFiltersToggle = () => { - const [state, dispatch] = useConfiguratorState(isDescribing); + const [state, dispatch] = useConfiguratorState(isConfiguring); const onChange = useEvent((e: ChangeEvent) => { const newConfig = produce( state.chartConfig.interactiveFiltersConfig, @@ -51,7 +51,7 @@ export const useInteractiveTimeRangeFiltersToggle = ({ }: { timeExtent: [string, string]; }) => { - const [state, dispatch] = useConfiguratorState(isDescribing); + const [state, dispatch] = useConfiguratorState(isConfiguring); const { chartConfig } = state; const onChange = useCallback<(e: ChangeEvent) => void>( @@ -116,7 +116,7 @@ export const updateInteractiveTimeRangeFilter = produce( ); export const useInteractiveTimeSliderFiltersSelect = () => { - const [state, dispatch] = useConfiguratorState(isDescribing); + const [state, dispatch] = useConfiguratorState(isConfiguring); const { chartConfig } = state; const onChange = useCallback<(e: SelectChangeEvent) => void>( @@ -155,7 +155,7 @@ export const useInteractiveDataFiltersToggle = ({ }: { dimensions: DimensionMetadataFragment[]; }) => { - const [state, dispatch] = useConfiguratorState(isDescribing); + const [state, dispatch] = useConfiguratorState(isConfiguring); const { chartConfig } = state; const onChange = useCallback<(e: ChangeEvent) => void>( diff --git a/app/configurator/interactive-filters/interactive-filters-configurator.tsx b/app/configurator/interactive-filters/interactive-filters-configurator.tsx index 39c6f84b1..104dd7bb8 100644 --- a/app/configurator/interactive-filters/interactive-filters-configurator.tsx +++ b/app/configurator/interactive-filters/interactive-filters-configurator.tsx @@ -4,17 +4,17 @@ import { ReactNode, useCallback } from "react"; import { getFieldComponentIri } from "@/charts"; import { chartConfigOptionsUISpec } from "@/charts/chart-config-ui-options"; -import { Loading } from "@/components/hint"; import { OnOffControlTab } from "@/configurator/components/chart-controls/control-tab"; import { ControlSection, ControlSectionContent, + ControlSectionSkeleton, SectionTitle, } from "@/configurator/components/chart-controls/section"; import { flag } from "@/configurator/components/flag"; -import { ConfiguratorStateDescribingChart } from "@/configurator/config-types"; +import { ConfiguratorStateConfiguringChart } from "@/configurator/config-types"; import { - isDescribing, + isConfiguring, useConfiguratorState, } from "@/configurator/configurator-state"; import { isTemporalDimension } from "@/domain/data"; @@ -31,10 +31,21 @@ export type InteractiveFilterType = | "timeSlider" | "dataFilters"; +export const isInteractiveFilterType = ( + field: string | undefined +): field is InteractiveFilterType => { + return ( + field === "legend" || + field === "timeRange" || + field === "timeSlider" || + field === "dataFilters" + ); +}; + export const InteractiveFiltersConfigurator = ({ state: { dataSet, dataSource, chartConfig }, }: { - state: ConfiguratorStateDescribingChart; + state: ConfiguratorStateConfiguringChart; }) => { const { chartType, fields, filters } = chartConfig; const locale = useLocale(); @@ -78,8 +89,12 @@ export const InteractiveFiltersConfigurator = ({ - + Interactive Filters @@ -129,7 +144,24 @@ export const InteractiveFiltersConfigurator = ({ ); } else { - return ; + return ( + + + + Interactive Filters + + + + + + ); } }; @@ -142,7 +174,7 @@ const InteractiveFilterTabField = ({ icon: string; label: ReactNode; }) => { - const [state, dispatch] = useConfiguratorState(isDescribing); + const [state, dispatch] = useConfiguratorState(isConfiguring); const onClick = useCallback(() => { dispatch({ diff --git a/app/configurator/table/table-chart-configurator.tsx b/app/configurator/table/table-chart-configurator.tsx index 5bca6892d..804e6c49b 100644 --- a/app/configurator/table/table-chart-configurator.tsx +++ b/app/configurator/table/table-chart-configurator.tsx @@ -1,5 +1,5 @@ import { Trans } from "@lingui/macro"; -import { Divider, Theme, Typography } from "@mui/material"; +import { Theme, Typography } from "@mui/material"; import { makeStyles } from "@mui/styles"; import { useCallback, useState } from "react"; import { @@ -118,15 +118,16 @@ export const ChartConfiguratorTable = ({ return ( <> - - + + Chart Type - - + + + Table Options Settings} + mainLabel={Settings} /> Sorting} + mainLabel={Sorting} /> diff --git a/app/configurator/table/table-chart-sorting-options.tsx b/app/configurator/table/table-chart-sorting-options.tsx index 58ee7366b..4ee1cbb3d 100644 --- a/app/configurator/table/table-chart-sorting-options.tsx +++ b/app/configurator/table/table-chart-sorting-options.tsx @@ -55,6 +55,11 @@ const useStyles = makeStyles((theme) => ({ borderTopStyle: "solid", borderTopWidth: 1, }, + sortingItemBox: { + "&:first-of-type $sortingItemContainer": { + borderTopWidth: 0, + }, + }, selectWrapper: { color: theme.palette.grey[800], lineHeight: "1rem", @@ -80,6 +85,14 @@ const useStyles = makeStyles((theme) => ({ color: theme.palette.secondary.main, }, }, + icon: { + width: 24, + height: 24, + position: "absolute", + top: "50%", + right: 2, + marginTop: -12, + }, })); const TableSortingOptionItem = ({ @@ -325,17 +338,6 @@ const ChangeTableSortingOption = ({ ); }; -const useTableSortingOptionsStyles = makeStyles({ - icon: { - width: 24, - height: 24, - position: "absolute", - top: "50%", - right: 2, - marginTop: -12, - }, -}); - export const TableSortingOptions = ({ state, dataSetMetadata, @@ -345,7 +347,7 @@ export const TableSortingOptions = ({ }) => { const [, dispatch] = useConfiguratorState(); const { activeField, chartConfig } = state; - const classes = useTableSortingOptionsStyles(); + const classes = useStyles(); const onDragEnd = useCallback( ({ source, destination }) => { @@ -407,6 +409,7 @@ export const TableSortingOptions = ({ position: "relative", boxShadow: isDragging ? "tooltip" : undefined, }} + className={classes.sortingItemBox} style={{ ...draggableProps.style, }} diff --git a/app/db/client.ts b/app/db/client.ts index b5bf6ce85..202d3a562 100644 --- a/app/db/client.ts +++ b/app/db/client.ts @@ -1,5 +1,24 @@ import { PrismaClient } from "@prisma/client"; -const prisma = new PrismaClient(); +/** + * Global Prisma client + * + * Only one instance of Prisma is kept across hot reloads to prevent + * "FATAL: sorry, too many clients already" error. + * @see https://github.com/prisma/prisma/issues/1983 + */ +let prisma: PrismaClient; + +const g = global as unknown as { prisma: PrismaClient | undefined }; + +if (process.env.NODE_ENV === "production") { + prisma = new PrismaClient(); +} else { + if (!g.prisma) { + g.prisma = new PrismaClient(); + } + + prisma = g.prisma; +} export default prisma; diff --git a/app/docs/steps.docs.tsx b/app/docs/steps.docs.tsx deleted file mode 100644 index b72bb93b7..000000000 --- a/app/docs/steps.docs.tsx +++ /dev/null @@ -1,67 +0,0 @@ -import { markdown, ReactSpecimen } from "catalog"; - -import { HeaderBorder, HeaderProgressProvider } from "@/components/header"; -import { - ConfiguratorStateConfiguringChart, - ConfiguratorStateDescribingChart, -} from "@/configurator"; -import { StepperDumb } from "@/configurator/components/stepper"; -import { DataCubeMetadataWithComponentValuesQuery } from "@/graphql/query-hooks"; - -const mockData = { - __typename: "Query", - dataCubeByIri: { dimensions: [{}] }, -} as DataCubeMetadataWithComponentValuesQuery; - -export default () => markdown` -> The "stepper" is used to guide users through the steps of creating a visualization. - - -Configuring step - -${( - - - - {}} - goNext={() => {}} - data={mockData} - state={ - { state: "CONFIGURING_CHART" } as ConfiguratorStateConfiguringChart - } - /> - - -)} - -Describing step - - ${( - - - - {}} - goNext={() => {}} - data={mockData} - state={ - { state: "DESCRIBING_CHART" } as ConfiguratorStateDescribingChart - } - /> - - - )} - - - ## How to use - -~~~ -import { Step } from "../components/step"; - - - Primary Step - -~~~ - -`; diff --git a/app/icons/components/IcExclamation.tsx b/app/icons/components/IcExclamation.tsx new file mode 100644 index 000000000..6b6a05b7f --- /dev/null +++ b/app/icons/components/IcExclamation.tsx @@ -0,0 +1,16 @@ +import * as React from "react"; + +function SvgIcExclamation(props: React.SVGProps) { + return ( + + + + ); +} + +export default SvgIcExclamation; + diff --git a/app/icons/svg/ic_exclamation.svg b/app/icons/svg/ic_exclamation.svg new file mode 100644 index 000000000..9a91a3615 --- /dev/null +++ b/app/icons/svg/ic_exclamation.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/app/locales/de/messages.po b/app/locales/de/messages.po index ead13fa5d..8bd06d711 100644 --- a/app/locales/de/messages.po +++ b/app/locales/de/messages.po @@ -13,60 +13,60 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: app/configurator/components/chart-configurator.tsx:647 +#: app/configurator/components/chart-configurator.tsx:648 msgid "Add filter" msgstr "Filter hinzufügen" -#: app/configurator/components/chart-configurator.tsx:620 +#: app/configurator/components/chart-configurator.tsx:621 msgid "Drag filters to reorganize" msgstr "Ziehen Sie die Filter per Drag & Drop, um sie neu zu organisieren" -#: app/configurator/components/chart-configurator.tsx:617 +#: app/configurator/components/chart-configurator.tsx:618 msgid "Move filter down" msgstr "Filter nach unten verschieben" -#: app/configurator/components/chart-configurator.tsx:614 +#: app/configurator/components/chart-configurator.tsx:615 msgid "Move filter up" msgstr "Filter nach oben verschieben" -#: app/configurator/components/dataset-browse.tsx:1037 -#: app/configurator/components/filters.tsx:730 +#: app/configurator/components/dataset-browse.tsx:1043 +#: app/configurator/components/filters.tsx:719 msgid "No results" msgstr "Kein Ergebnis" -#: app/components/chart-preview.tsx:128 +#: app/components/chart-preview.tsx:157 msgid "annotation.add.description" msgstr "[ Ohne Beschreibung ]" -#: app/components/chart-preview.tsx:106 +#: app/components/chart-preview.tsx:129 msgid "annotation.add.title" msgstr "[ Ohne Titel ]" -#: app/configurator/components/dataset-browse.tsx:968 +#: app/configurator/components/dataset-browse.tsx:974 msgid "browse-panel.organizations" msgstr "Organisationen" -#: app/configurator/components/dataset-browse.tsx:950 +#: app/configurator/components/dataset-browse.tsx:956 msgid "browse-panel.themes" msgstr "Kategorien" -#: app/configurator/components/dataset-preview.tsx:128 +#: app/configurator/components/dataset-preview.tsx:139 msgid "browse.dataset.create-visualization" msgstr "Visualisierung von diesem Datensatz erstellen" -#: app/configurator/components/select-dataset-step.tsx:284 +#: app/configurator/components/select-dataset-step.tsx:295 msgid "browse.datasets.all-datasets" msgstr "Alle Datensätze" -#: app/configurator/components/select-dataset-step.tsx:217 +#: app/configurator/components/select-dataset-step.tsx:189 msgid "browse.datasets.description" msgstr "Erkunden Sie die vom LINDAS Linked Data Service bereitgestellten Datensätze, indem Sie entweder nach Kategorien oder Organisationen filtern oder direkt nach bestimmten Stichworten suchen. Klicken Sie auf einen Datensatz, um detailliertere Informationen zu erhalten und Ihre eigenen Visualisierungen zu erstellen." #: app/configurator/components/stepper.tsx:65 -msgid "button.back" -msgstr "Zurück" +#~ msgid "button.back" +#~ msgstr "Zurück" -#: app/pages/v/[chartId].tsx:167 +#: app/pages/v/[chartId].tsx:166 msgid "button.copy.visualization" msgstr "Diese Visualisierung kopieren und editieren" @@ -103,15 +103,15 @@ msgstr "Kopieren" msgid "button.hint.copied" msgstr "Kopiert!" -#: app/pages/v/[chartId].tsx:152 +#: app/pages/v/[chartId].tsx:151 msgid "button.new.visualization" msgstr "Neue Visualisierung erstellen" #: app/configurator/components/stepper.tsx:70 -msgid "button.next" -msgstr "Weiter" +#~ msgid "button.next" +#~ msgstr "Weiter" -#: app/configurator/components/stepper.tsx:68 +#: app/components/chart-selection-tabs.tsx:182 msgid "button.publish" msgstr "Diese Visualisierung veröffentlichen" @@ -123,17 +123,17 @@ msgstr "Teilen" msgid "chart.map.layers.area" msgstr "Flächen" -#: app/configurator/components/chart-configurator.tsx:696 -#: app/configurator/components/chart-options-selector.tsx:989 +#: app/configurator/components/chart-configurator.tsx:697 +#: app/configurator/components/chart-options-selector.tsx:986 #: app/configurator/components/field-i18n.ts:31 msgid "chart.map.layers.base" msgstr "Kartenanzeige" -#: app/configurator/components/chart-options-selector.tsx:993 +#: app/configurator/components/chart-options-selector.tsx:990 msgid "chart.map.layers.base.show" msgstr "Weltkarte anzeigen" -#: app/configurator/components/chart-options-selector.tsx:1001 +#: app/configurator/components/chart-options-selector.tsx:998 msgid "chart.map.layers.base.view.locked" msgstr "Gesperrte Ansicht" @@ -183,10 +183,18 @@ msgstr "Fett" msgid "columnStyle.textStyle.regular" msgstr "Normal" -#: app/configurator/interactive-filters/editor-time-brush.tsx:168 +#: app/configurator/interactive-filters/editor-time-brush.tsx:170 msgid "controls..interactiveFilters.time.defaultSettings" msgstr "Standardeinstellung" +#: app/configurator/components/chart-annotator.tsx:67 +msgid "controls.annotator.add-description-warning" +msgstr "Fügen Sie eine Beschreibung hinzu" + +#: app/configurator/components/chart-annotator.tsx:57 +msgid "controls.annotator.add-title-warning" +msgstr "Füge einen Titel hinzu" + #: app/configurator/components/field-i18n.ts:5 msgid "controls.axis.horizontal" msgstr "Horizontale Achse" @@ -227,16 +235,16 @@ msgstr "Scatterplot" msgid "controls.chart.type.table" msgstr "Tabelle" -#: app/configurator/components/chart-options-selector.tsx:720 +#: app/configurator/components/chart-options-selector.tsx:717 #: app/configurator/components/field-i18n.ts:17 msgid "controls.color" msgstr "Farbe" -#: app/configurator/components/chart-controls/control-tab.tsx:45 +#: app/configurator/components/chart-controls/control-tab.tsx:47 msgid "controls.color.add" msgstr "Hinzufügen …" -#: app/configurator/components/chart-options-selector.tsx:749 +#: app/configurator/components/chart-options-selector.tsx:746 msgid "controls.color.opacity" msgstr "Transparenz" @@ -257,35 +265,35 @@ msgstr "Farbpalette zurücksetzen" msgid "controls.color.palette.sequential" msgstr "Sequentiell" -#: app/configurator/components/chart-options-selector.tsx:836 +#: app/configurator/components/chart-options-selector.tsx:833 msgid "controls.color.scale.discretization.jenks" msgstr "Jenks (Natural Breaks)" -#: app/configurator/components/chart-options-selector.tsx:829 +#: app/configurator/components/chart-options-selector.tsx:826 msgid "controls.color.scale.discretization.quantiles" msgstr "Quantile (gleiche Anzahl Werte)" -#: app/configurator/components/chart-options-selector.tsx:822 +#: app/configurator/components/chart-options-selector.tsx:819 msgid "controls.color.scale.discretization.quantize" msgstr "Quantisierung (gleiche Wertebereiche)" -#: app/configurator/components/chart-options-selector.tsx:814 +#: app/configurator/components/chart-options-selector.tsx:811 msgid "controls.color.scale.interpolation" msgstr "Interpolation" -#: app/configurator/components/chart-options-selector.tsx:846 +#: app/configurator/components/chart-options-selector.tsx:843 msgid "controls.color.scale.number.of.classes" msgstr "Anzahl Klassen" -#: app/configurator/components/chart-options-selector.tsx:786 +#: app/configurator/components/chart-options-selector.tsx:783 msgid "controls.color.scale.type.continuous" msgstr "Kontinuierlich" -#: app/configurator/components/chart-options-selector.tsx:797 +#: app/configurator/components/chart-options-selector.tsx:794 msgid "controls.color.scale.type.discrete" msgstr "Diskret" -#: app/configurator/components/chart-options-selector.tsx:739 +#: app/configurator/components/chart-options-selector.tsx:736 msgid "controls.color.select" msgstr "Farbe auswählen" @@ -319,33 +327,33 @@ msgstr "Beschreibung hinzufügen" msgid "controls.dimensionvalue.none" msgstr "Kein Filter" -#: app/configurator/components/filters.tsx:480 +#: app/configurator/components/filters.tsx:469 msgid "controls.filter.nb-elements" msgstr "{0} von {1}" -#: app/configurator/components/filters.tsx:414 -#: app/configurator/components/filters.tsx:658 +#: app/configurator/components/filters.tsx:403 +#: app/configurator/components/filters.tsx:647 msgid "controls.filter.select.all" msgstr "Alle auswählen" -#: app/configurator/components/filters.tsx:421 -#: app/configurator/components/filters.tsx:656 +#: app/configurator/components/filters.tsx:410 +#: app/configurator/components/filters.tsx:645 msgid "controls.filter.select.none" msgstr "Alle abwählen" -#: app/configurator/components/filters.tsx:431 +#: app/configurator/components/filters.tsx:420 msgid "controls.filters.select.filters" msgstr "Filter" -#: app/configurator/components/filters.tsx:461 +#: app/configurator/components/filters.tsx:450 msgid "controls.filters.select.refresh-colors" msgstr "Farben auffrischen" -#: app/configurator/components/filters.tsx:445 +#: app/configurator/components/filters.tsx:434 msgid "controls.filters.select.reset-colors" msgstr "Farben zurücksetzen" -#: app/configurator/components/filters.tsx:438 +#: app/configurator/components/filters.tsx:427 msgid "controls.filters.select.selected-filters" msgstr "Ausgewählte Filter" @@ -357,70 +365,54 @@ msgstr "Zeitspanne" msgid "controls.groups.empty-help" msgstr "Ziehen Sie Spalten hierher, um Gruppen zu erstellen." -#: app/configurator/map/map-chart-options.tsx:204 -#~ msgid "controls.hierarchy" -#~ msgstr "Hierarchie-Ebene" - -#: app/configurator/map/map-chart-options.tsx:209 -#~ msgid "controls.hierarchy.select" -#~ msgstr "Hierarchie-Ebene auswählen" - -#: app/configurator/components/empty-right-panel.tsx:24 -msgid "controls.hint.configuring.chart" -msgstr "Bitte eine Designoption oder Datendimension auswählen, um diese zu bearbeiten." - -#: app/configurator/components/empty-right-panel.tsx:31 -msgid "controls.hint.describing.chart" -msgstr "Bitte ein Beschreibungsfeld auswählen, um dieses zu bearbeiten." - #: app/configurator/components/field-i18n.ts:87 msgid "controls.imputation" msgstr "Imputationstyp" -#: app/configurator/components/chart-options-selector.tsx:881 +#: app/configurator/components/chart-options-selector.tsx:878 #: app/configurator/components/field-i18n.ts:99 msgid "controls.imputation.type.linear" msgstr "Lineare Interpolation" -#: app/configurator/components/chart-options-selector.tsx:874 -#: app/configurator/components/chart-options-selector.tsx:886 +#: app/configurator/components/chart-options-selector.tsx:871 +#: app/configurator/components/chart-options-selector.tsx:883 #: app/configurator/components/field-i18n.ts:91 msgid "controls.imputation.type.none" msgstr "-" -#: app/configurator/components/chart-options-selector.tsx:876 +#: app/configurator/components/chart-options-selector.tsx:873 #: app/configurator/components/field-i18n.ts:95 msgid "controls.imputation.type.zeros" msgstr "Nullen" -#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:117 +#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:137 msgid "controls.interactive.filters.dataFilter" msgstr "Datenfilter" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:104 -#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:97 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:115 +#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:117 msgid "controls.interactive.filters.timeSlider" msgstr "Zeitschieber" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:327 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:375 msgid "controls.interactiveFilters.dataFilters.toggledataFilters" msgstr "Datenfilter anzeigen" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:77 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:89 msgid "controls.interactiveFilters.legend.toggleInteractiveLegend" msgstr "Filterbare Legende anzeigen" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:222 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:233 msgid "controls.interactiveFilters.time.noTimeDimension" msgstr "Keine Zeitdimension verfügbar!" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:197 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:208 msgid "controls.interactiveFilters.time.toggleTimeFilter" msgstr "Zeitfilter anzeigen" #: app/configurator/interactive-filters/interactive-filters-config-options.tsx:263 -msgid "controls.interactiveFilters.time.toggleTimeSliderFilter" -msgstr "Zeitschieber anzeigen" +#~ msgid "controls.interactiveFilters.time.toggleTimeSliderFilter" +#~ msgstr "Zeitschieber anzeigen" #: app/configurator/components/field-i18n.ts:135 msgid "controls.language.english" @@ -447,11 +439,19 @@ msgstr "Italienisch" msgid "controls.measure" msgstr "Messwert" -#: app/configurator/components/chart-controls/control-tab.tsx:312 +#: app/configurator/components/configurator.tsx:107 +msgid "controls.nav.back-to-preview" +msgstr "" + +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:292 +msgid "controls.none" +msgstr "" + +#: app/configurator/components/chart-controls/control-tab.tsx:338 msgid "controls.option.isActive" msgstr "Ein" -#: app/configurator/components/chart-controls/control-tab.tsx:308 +#: app/configurator/components/chart-controls/control-tab.tsx:334 msgid "controls.option.isNotActive" msgstr "Aus" @@ -459,7 +459,7 @@ msgstr "Aus" #~ msgid "controls.option.none" #~ msgstr "Keine" -#: app/configurator/components/chart-options-selector.tsx:779 +#: app/configurator/components/chart-options-selector.tsx:776 msgid "controls.scale.type" msgstr "Skalierungstyp" @@ -467,15 +467,15 @@ msgstr "Skalierungstyp" msgid "controls.search.clear" msgstr "Suche zurücksetzen" -#: app/configurator/components/chart-options-selector.tsx:356 +#: app/configurator/components/chart-options-selector.tsx:353 msgid "controls.section.additional-information" msgstr "Zusätzliche Informationen" -#: app/configurator/components/chart-configurator.tsx:549 +#: app/configurator/components/chart-configurator.tsx:545 msgid "controls.section.chart.options" msgstr "Diagramm-Einstellungen" -#: app/configurator/table/table-chart-configurator.tsx:164 +#: app/configurator/table/table-chart-configurator.tsx:165 msgid "controls.section.columns" msgstr "Spalten" @@ -483,16 +483,16 @@ msgstr "Spalten" msgid "controls.section.columnstyle" msgstr "Spaltenstil" -#: app/configurator/components/chart-configurator.tsx:567 +#: app/configurator/components/chart-configurator.tsx:563 msgid "controls.section.data.filters" msgstr "Filter" -#: app/configurator/components/chart-annotator.tsx:24 +#: app/configurator/components/chart-annotator.tsx:50 msgid "controls.section.description" msgstr "Titel & Beschreibung" -#: app/configurator/components/chart-options-selector.tsx:411 -#: app/configurator/components/chart-options-selector.tsx:415 +#: app/configurator/components/chart-options-selector.tsx:408 +#: app/configurator/components/chart-options-selector.tsx:412 #: app/configurator/table/table-chart-options.tsx:314 #: app/configurator/table/table-chart-options.tsx:318 #: app/configurator/table/table-chart-options.tsx:338 @@ -500,31 +500,32 @@ msgstr "Titel & Beschreibung" msgid "controls.section.filter" msgstr "Filter" -#: app/configurator/table/table-chart-configurator.tsx:155 +#: app/configurator/table/table-chart-configurator.tsx:156 msgid "controls.section.groups" msgstr "Gruppierungen" -#: app/configurator/components/chart-options-selector.tsx:915 +#: app/configurator/components/chart-options-selector.tsx:912 msgid "controls.section.imputation" msgstr "Fehlende Werte" -#: app/configurator/components/chart-options-selector.tsx:920 +#: app/configurator/components/chart-options-selector.tsx:917 msgid "controls.section.imputation.explanation" msgstr "Für diesen Diagrammtyp sollten fehlenden Werten Ersatzwerte zugewiesen werden. Entscheiden Sie sich für die Imputationslogik oder wechseln Sie zu einem anderen Diagrammtyp." -#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:78 +#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:98 +#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:157 msgid "controls.section.interactive.filters" msgstr "Interaktive Filter hinzufügen" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:117 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:128 msgid "controls.section.interactiveFilters.dataFilters" msgstr "Datenfilter" -#: app/configurator/components/chart-options-selector.tsx:365 +#: app/configurator/components/chart-options-selector.tsx:362 msgid "controls.section.show-standard-error" msgstr "Standardfehler anzeigen" -#: app/configurator/components/chart-options-selector.tsx:557 +#: app/configurator/components/chart-options-selector.tsx:554 msgid "controls.section.sorting" msgstr "Sortieren" @@ -532,21 +533,25 @@ msgstr "Sortieren" msgid "controls.section.tableSettings" msgstr "Tabelleneinstellungen" -#: app/configurator/table/table-chart-sorting-options.tsx:384 +#: app/configurator/table/table-chart-sorting-options.tsx:386 msgid "controls.section.tableSorting" msgstr "Tabellensortierung" -#: app/configurator/table/table-chart-configurator.tsx:130 +#: app/configurator/table/table-chart-configurator.tsx:131 msgid "controls.section.tableoptions" msgstr "Tabellenoptionen" -#: app/configurator/components/chart-configurator.tsx:541 -#: app/configurator/components/chart-type-selector.tsx:135 +#: app/configurator/components/chart-annotator.tsx:30 +msgid "controls.section.title.warning" +msgstr "Fügen Sie einen Titel oder eine Beschreibung hinzu" + +#: app/configurator/components/chart-configurator.tsx:537 +#: app/configurator/components/chart-type-selector.tsx:131 #: app/configurator/table/table-chart-configurator.tsx:123 msgid "controls.select.chart.type" msgstr "Diagrammtyp" -#: app/configurator/components/chart-options-selector.tsx:461 +#: app/configurator/components/chart-options-selector.tsx:458 msgid "controls.select.column.layout" msgstr "Spaltenstil" @@ -582,13 +587,14 @@ msgstr "Schriftfarbe" msgid "controls.select.columnStyle.textStyle" msgstr "Schriftstil" -#: app/configurator/components/chart-options-selector.tsx:220 +#: app/configurator/components/chart-options-selector.tsx:217 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:310 msgid "controls.select.dimension" msgstr "Dimension auswählen" -#: app/configurator/components/chart-options-selector.tsx:221 -#: app/configurator/components/chart-options-selector.tsx:647 -#: app/configurator/components/chart-options-selector.tsx:725 +#: app/configurator/components/chart-options-selector.tsx:218 +#: app/configurator/components/chart-options-selector.tsx:644 +#: app/configurator/components/chart-options-selector.tsx:722 msgid "controls.select.measure" msgstr "Messwert auswählen" @@ -599,32 +605,32 @@ msgstr "Messwert auswählen" #~ msgid "controls.select.optional" #~ msgstr "optional" -#: app/configurator/components/filters.tsx:712 +#: app/configurator/components/filters.tsx:701 msgid "controls.set-filters" msgstr "Ausgewählte Filter" -#: app/configurator/components/filters.tsx:719 +#: app/configurator/components/filters.tsx:708 msgid "controls.set-filters-caption" msgstr "Für beste Ergebnisse wählen Sie nicht mehr als 7 Werte für die Visualisierung aus" -#: app/configurator/components/filters.tsx:751 +#: app/configurator/components/filters.tsx:740 msgid "controls.set-values-apply" msgstr "Filter anwenden" -#: app/configurator/components/chart-options-selector.tsx:639 +#: app/configurator/components/chart-options-selector.tsx:636 msgid "controls.size" msgstr "Grösse" -#: app/configurator/table/table-chart-sorting-options.tsx:251 +#: app/configurator/table/table-chart-sorting-options.tsx:264 msgid "controls.sorting.addDimension" msgstr "Dimension hinzufügen" -#: app/configurator/components/chart-options-selector.tsx:509 +#: app/configurator/components/chart-options-selector.tsx:506 msgid "controls.sorting.byAuto" -msgstr "" +msgstr "Auto" -#: app/configurator/components/chart-options-selector.tsx:503 -#: app/configurator/components/chart-options-selector.tsx:513 +#: app/configurator/components/chart-options-selector.tsx:500 +#: app/configurator/components/chart-options-selector.tsx:510 msgid "controls.sorting.byDimensionLabel" msgstr "Name" @@ -638,7 +644,7 @@ msgstr "A → Z" msgid "controls.sorting.byDimensionLabel.descending" msgstr "Z → A" -#: app/configurator/components/chart-options-selector.tsx:505 +#: app/configurator/components/chart-options-selector.tsx:502 msgid "controls.sorting.byMeasure" msgstr "Messwert" @@ -650,7 +656,7 @@ msgstr "1 → 9" msgid "controls.sorting.byMeasure.descending" msgstr "9 → 1" -#: app/configurator/components/chart-options-selector.tsx:507 +#: app/configurator/components/chart-options-selector.tsx:504 msgid "controls.sorting.byTotalSize" msgstr "Gesamtgrösse" @@ -670,20 +676,20 @@ msgstr "Grösste zuerst" msgid "controls.sorting.byTotalSize.largestTop" msgstr "Kleinste unten" -#: app/configurator/table/table-chart-sorting-options.tsx:161 +#: app/configurator/table/table-chart-sorting-options.tsx:174 msgid "controls.sorting.removeOption" msgstr "Sortierung entfernen" -#: app/configurator/table/table-chart-sorting-options.tsx:213 +#: app/configurator/table/table-chart-sorting-options.tsx:226 msgid "controls.sorting.selectDimension" msgstr "Wählen Sie eine Dimension aus …" #: app/configurator/components/field-i18n.ts:43 -#: app/configurator/table/table-chart-sorting-options.tsx:322 +#: app/configurator/table/table-chart-sorting-options.tsx:335 msgid "controls.sorting.sortBy" msgstr "Sortieren nach" -#: app/configurator/components/chart-type-selector.tsx:140 +#: app/configurator/components/chart-type-selector.tsx:136 msgid "controls.switch.chart.type" msgstr "Wechseln Sie zu einem anderen Diagrammtyp unter Beibehaltung der meisten Filtereinstellungen" @@ -695,11 +701,11 @@ msgstr "Gruppieren" msgid "controls.table.column.hide" msgstr "Spalte ausblenden" -#: app/configurator/table/table-chart-configurator.tsx:142 +#: app/configurator/table/table-chart-configurator.tsx:143 msgid "controls.table.settings" msgstr "Einstellungen" -#: app/configurator/table/table-chart-configurator.tsx:148 +#: app/configurator/table/table-chart-configurator.tsx:149 msgid "controls.table.sorting" msgstr "Sortierung" @@ -731,7 +737,7 @@ msgstr "Datenquelle" msgid "data.source.notTrusted" msgstr "Dieses Diagramm verwendet keine vertrauenswürdige Datenquelle." -#: app/configurator/components/select-dataset-step.tsx:179 +#: app/configurator/components/select-dataset-step.tsx:221 msgid "dataset-preview.back-to-results" msgstr "Zurück zu den Datensätzen" @@ -751,7 +757,7 @@ msgstr "Neuestes Update" msgid "dataset.hasImputedValues" msgstr "Einige Daten in diesem Datensatz fehlen und wurden interpoliert, um die Lücken zu füllen." -#: app/configurator/components/dataset-browse.tsx:427 +#: app/configurator/components/dataset-browse.tsx:447 msgid "dataset.includeDrafts" msgstr "Entwürfe einschließen" @@ -768,7 +774,7 @@ msgid "dataset.metadata.furtherinformation" msgstr "Weitere Informationen" #: app/components/chart-footnotes.tsx:200 -#: app/configurator/components/dataset-metadata.tsx:118 +#: app/configurator/components/dataset-metadata.tsx:114 msgid "dataset.metadata.learnmore" msgstr "Erfahren Sie mehr über diesen Datensatz" @@ -780,21 +786,21 @@ msgstr "Quelle" msgid "dataset.metadata.version" msgstr "Version" -#: app/configurator/components/dataset-browse.tsx:351 +#: app/configurator/components/dataset-browse.tsx:404 msgid "dataset.order.newest" msgstr "Neueste" -#: app/configurator/components/dataset-browse.tsx:343 +#: app/configurator/components/dataset-browse.tsx:396 msgid "dataset.order.relevance" msgstr "Relevanz" -#: app/configurator/components/dataset-browse.tsx:347 +#: app/configurator/components/dataset-browse.tsx:400 msgid "dataset.order.title" msgstr "Titel" -#: app/components/chart-preview.tsx:85 +#: app/components/chart-preview.tsx:103 #: app/components/chart-published.tsx:126 -#: app/configurator/components/dataset-preview.tsx:109 +#: app/configurator/components/dataset-preview.tsx:120 msgid "dataset.publicationStatus.draft.warning" msgstr "Achtung, dieser Datensatz ist im Entwurfs-Stadium.<0/><1>Diese Grafik nicht für Berichte verwenden." @@ -802,27 +808,27 @@ msgstr "Achtung, dieser Datensatz ist im Entwurfs-Stadium.<0/><1>Diese Grafik ni msgid "dataset.publicationStatus.expires.warning" msgstr "Achtung, dieser Datensatz ist abgelaufen.<0/><1>Diese Grafik nicht für Berichte verwenden." -#: app/configurator/components/dataset-browse.tsx:415 +#: app/configurator/components/dataset-browse.tsx:435 msgid "dataset.results" msgstr "{0, plural, zero {Keine Datensätze} one {# Datensatz} other {# Datensätze}}" -#: app/configurator/components/dataset-browse.tsx:355 +#: app/configurator/components/dataset-browse.tsx:328 msgid "dataset.search.label" msgstr "Suchen" #: app/configurator/components/dataset-browse.tsx:360 -msgid "dataset.search.placeholder" -msgstr "" +#~ msgid "dataset.search.placeholder" +#~ msgstr "" -#: app/configurator/components/dataset-browse.tsx:446 +#: app/configurator/components/dataset-browse.tsx:459 msgid "dataset.sortby" msgstr "Sortieren nach" -#: app/configurator/components/dataset-browse.tsx:1152 +#: app/configurator/components/dataset-browse.tsx:1157 msgid "dataset.tag.draft" msgstr "Entwurf" -#: app/configurator/components/dataset-preview.tsx:171 +#: app/configurator/components/dataset-preview.tsx:182 msgid "datatable.showing.first.rows" msgstr "Die ersten 10 Zeilen werden angezeigt" @@ -862,7 +868,7 @@ msgstr "Es gab ein Problem beim Laden der Koordinaten aus den geografischen Dime msgid "hint.coordinatesloadingerror.title" msgstr "Koordinaten-Ladefehler" -#: app/pages/v/[chartId].tsx:129 +#: app/pages/v/[chartId].tsx:128 msgid "hint.create.your.own.chart" msgstr "Kopieren Sie diese Visualisierung oder erstellen Sie eine neue Visualisierung mit Swiss Open Government Data." @@ -878,7 +884,7 @@ msgstr "Weitere Informationen finden Sie auf der Statusseite" msgid "hint.dataloadingerror.title" msgstr "Daten-Ladefehler" -#: app/pages/v/[chartId].tsx:123 +#: app/pages/v/[chartId].tsx:122 msgid "hint.how.to.share" msgstr "Sie können diese Visualisierung teilen oder sie einbetten. Zudem können Sie eine neue Visualisierung erstellen oder die gezeigte Visualisierung kopieren." @@ -886,7 +892,7 @@ msgstr "Sie können diese Visualisierung teilen oder sie einbetten. Zudem könne msgid "hint.loading.data" msgstr "Lade Daten …" -#: app/configurator/components/chart-type-selector.tsx:153 +#: app/configurator/components/chart-type-selector.tsx:149 msgid "hint.no.visualization.with.dataset" msgstr "Mit dem ausgewählten Datensatz kann keine Visualisierung erstellt werden." @@ -918,8 +924,8 @@ msgstr "Filter ausblenden" msgid "interactive.data.filters.show" msgstr "Filter anzeigen" -#: app/components/header.tsx:188 -#: app/components/header.tsx:207 +#: app/components/header.tsx:201 +#: app/components/header.tsx:220 msgid "logo.swiss.confederation" msgstr "Logo der Schweizerischen Eidgenossenschaft" @@ -979,18 +985,12 @@ msgstr "Hier ist eine Visualisierung, die ich mit visualize.admin.ch erstellt ha msgid "publication.share.mail.subject" msgstr "visualize.admin.ch" -#: app/configurator/components/filters.tsx:632 +#: app/configurator/components/dataset-browse.tsx:333 +#: app/configurator/components/dataset-browse.tsx:369 +#: app/configurator/components/filters.tsx:621 msgid "select.controls.filters.search" msgstr "Suche" -#: app/configurator/components/stepper.tsx:209 -msgid "step.annotate" -msgstr "Bevor Sie Veröffentlichen, fügen Sie Ihrem Diagramm einen Titel und eine Beschreibung hinzu, und wählen Sie, welche Elemente interaktiv sein sollen." - -#: app/configurator/components/stepper.tsx:198 -msgid "step.visualize" -msgstr "Passen Sie Ihre Visualisierung an, indem Sie die Filter- und Farbsegmentierungsoptionen in den Seitenleisten verwenden." - #: app/configurator/components/chart-controls/drag-and-drop-tab.tsx:101 msgid "table.column.no" msgstr "Spalte {0}" diff --git a/app/locales/en/messages.po b/app/locales/en/messages.po index 15fe31cc3..89b732063 100644 --- a/app/locales/en/messages.po +++ b/app/locales/en/messages.po @@ -13,60 +13,60 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: app/configurator/components/chart-configurator.tsx:647 +#: app/configurator/components/chart-configurator.tsx:648 msgid "Add filter" msgstr "Add filter" -#: app/configurator/components/chart-configurator.tsx:620 +#: app/configurator/components/chart-configurator.tsx:621 msgid "Drag filters to reorganize" msgstr "Drag filters to reorganize" -#: app/configurator/components/chart-configurator.tsx:617 +#: app/configurator/components/chart-configurator.tsx:618 msgid "Move filter down" msgstr "Move filter down" -#: app/configurator/components/chart-configurator.tsx:614 +#: app/configurator/components/chart-configurator.tsx:615 msgid "Move filter up" msgstr "Move filter up" -#: app/configurator/components/dataset-browse.tsx:1037 -#: app/configurator/components/filters.tsx:730 +#: app/configurator/components/dataset-browse.tsx:1043 +#: app/configurator/components/filters.tsx:719 msgid "No results" msgstr "No results" -#: app/components/chart-preview.tsx:128 +#: app/components/chart-preview.tsx:157 msgid "annotation.add.description" msgstr "[ No Description ]" -#: app/components/chart-preview.tsx:106 +#: app/components/chart-preview.tsx:129 msgid "annotation.add.title" msgstr "[ No Title ]" -#: app/configurator/components/dataset-browse.tsx:968 +#: app/configurator/components/dataset-browse.tsx:974 msgid "browse-panel.organizations" msgstr "Organizations" -#: app/configurator/components/dataset-browse.tsx:950 +#: app/configurator/components/dataset-browse.tsx:956 msgid "browse-panel.themes" msgstr "Categories" -#: app/configurator/components/dataset-preview.tsx:128 +#: app/configurator/components/dataset-preview.tsx:139 msgid "browse.dataset.create-visualization" msgstr "Start a visualization" -#: app/configurator/components/select-dataset-step.tsx:284 +#: app/configurator/components/select-dataset-step.tsx:295 msgid "browse.datasets.all-datasets" msgstr "All datasets" -#: app/configurator/components/select-dataset-step.tsx:217 +#: app/configurator/components/select-dataset-step.tsx:189 msgid "browse.datasets.description" msgstr "Explore datasets provided by the LINDAS Linked Data Service by either filtering by categories or organisations or search directly for specific keywords. Click on a dataset to see more detailed information and start creating your own visualizations." #: app/configurator/components/stepper.tsx:65 -msgid "button.back" -msgstr "Back" +#~ msgid "button.back" +#~ msgstr "Back" -#: app/pages/v/[chartId].tsx:167 +#: app/pages/v/[chartId].tsx:166 msgid "button.copy.visualization" msgstr "Copy and edit this visualization" @@ -103,15 +103,15 @@ msgstr "Click to copy" msgid "button.hint.copied" msgstr "Copied!" -#: app/pages/v/[chartId].tsx:152 +#: app/pages/v/[chartId].tsx:151 msgid "button.new.visualization" msgstr "Create New Visualization" #: app/configurator/components/stepper.tsx:70 -msgid "button.next" -msgstr "Next" +#~ msgid "button.next" +#~ msgstr "Next" -#: app/configurator/components/stepper.tsx:68 +#: app/components/chart-selection-tabs.tsx:182 msgid "button.publish" msgstr "Publish this visualization" @@ -143,17 +143,17 @@ msgstr "Areas" #~ msgid "chart.map.layers.area.discretization.quantize" #~ msgstr "Quantize (equal intervals)" -#: app/configurator/components/chart-configurator.tsx:696 -#: app/configurator/components/chart-options-selector.tsx:989 +#: app/configurator/components/chart-configurator.tsx:697 +#: app/configurator/components/chart-options-selector.tsx:986 #: app/configurator/components/field-i18n.ts:31 msgid "chart.map.layers.base" msgstr "Map Display" -#: app/configurator/components/chart-options-selector.tsx:993 +#: app/configurator/components/chart-options-selector.tsx:990 msgid "chart.map.layers.base.show" msgstr "Show Worldmap" -#: app/configurator/components/chart-options-selector.tsx:1001 +#: app/configurator/components/chart-options-selector.tsx:998 msgid "chart.map.layers.base.view.locked" msgstr "Locked view" @@ -203,10 +203,18 @@ msgstr "Bold" msgid "columnStyle.textStyle.regular" msgstr "Regular" -#: app/configurator/interactive-filters/editor-time-brush.tsx:168 +#: app/configurator/interactive-filters/editor-time-brush.tsx:170 msgid "controls..interactiveFilters.time.defaultSettings" msgstr "Default Settings" +#: app/configurator/components/chart-annotator.tsx:67 +msgid "controls.annotator.add-description-warning" +msgstr "Please add a description" + +#: app/configurator/components/chart-annotator.tsx:57 +msgid "controls.annotator.add-title-warning" +msgstr "Please add a title" + #: app/configurator/components/field-i18n.ts:5 msgid "controls.axis.horizontal" msgstr "Horizontal Axis" @@ -247,16 +255,16 @@ msgstr "Scatterplot" msgid "controls.chart.type.table" msgstr "Table" -#: app/configurator/components/chart-options-selector.tsx:720 +#: app/configurator/components/chart-options-selector.tsx:717 #: app/configurator/components/field-i18n.ts:17 msgid "controls.color" msgstr "Color" -#: app/configurator/components/chart-controls/control-tab.tsx:45 +#: app/configurator/components/chart-controls/control-tab.tsx:47 msgid "controls.color.add" msgstr "Add ..." -#: app/configurator/components/chart-options-selector.tsx:749 +#: app/configurator/components/chart-options-selector.tsx:746 msgid "controls.color.opacity" msgstr "Opacity" @@ -277,35 +285,35 @@ msgstr "Reset color palette" msgid "controls.color.palette.sequential" msgstr "Sequential" -#: app/configurator/components/chart-options-selector.tsx:836 +#: app/configurator/components/chart-options-selector.tsx:833 msgid "controls.color.scale.discretization.jenks" msgstr "Jenks (natural breaks)" -#: app/configurator/components/chart-options-selector.tsx:829 +#: app/configurator/components/chart-options-selector.tsx:826 msgid "controls.color.scale.discretization.quantiles" msgstr "Quantiles (equal distribution of values)" -#: app/configurator/components/chart-options-selector.tsx:822 +#: app/configurator/components/chart-options-selector.tsx:819 msgid "controls.color.scale.discretization.quantize" msgstr "Quantize (equal intervals)" -#: app/configurator/components/chart-options-selector.tsx:814 +#: app/configurator/components/chart-options-selector.tsx:811 msgid "controls.color.scale.interpolation" msgstr "Interpolation" -#: app/configurator/components/chart-options-selector.tsx:846 +#: app/configurator/components/chart-options-selector.tsx:843 msgid "controls.color.scale.number.of.classes" msgstr "Number of classes" -#: app/configurator/components/chart-options-selector.tsx:786 +#: app/configurator/components/chart-options-selector.tsx:783 msgid "controls.color.scale.type.continuous" msgstr "Continuous" -#: app/configurator/components/chart-options-selector.tsx:797 +#: app/configurator/components/chart-options-selector.tsx:794 msgid "controls.color.scale.type.discrete" msgstr "Discrete" -#: app/configurator/components/chart-options-selector.tsx:739 +#: app/configurator/components/chart-options-selector.tsx:736 msgid "controls.color.select" msgstr "Select a color" @@ -339,33 +347,33 @@ msgstr "Description" msgid "controls.dimensionvalue.none" msgstr "No Filter" -#: app/configurator/components/filters.tsx:480 +#: app/configurator/components/filters.tsx:469 msgid "controls.filter.nb-elements" msgstr "{0} of {1}" -#: app/configurator/components/filters.tsx:414 -#: app/configurator/components/filters.tsx:658 +#: app/configurator/components/filters.tsx:403 +#: app/configurator/components/filters.tsx:647 msgid "controls.filter.select.all" msgstr "Select all" -#: app/configurator/components/filters.tsx:421 -#: app/configurator/components/filters.tsx:656 +#: app/configurator/components/filters.tsx:410 +#: app/configurator/components/filters.tsx:645 msgid "controls.filter.select.none" msgstr "Select none" -#: app/configurator/components/filters.tsx:431 +#: app/configurator/components/filters.tsx:420 msgid "controls.filters.select.filters" msgstr "Filters" -#: app/configurator/components/filters.tsx:461 +#: app/configurator/components/filters.tsx:450 msgid "controls.filters.select.refresh-colors" msgstr "Refresh colors" -#: app/configurator/components/filters.tsx:445 +#: app/configurator/components/filters.tsx:434 msgid "controls.filters.select.reset-colors" msgstr "Reset colors" -#: app/configurator/components/filters.tsx:438 +#: app/configurator/components/filters.tsx:427 msgid "controls.filters.select.selected-filters" msgstr "Selected filters" @@ -377,70 +385,54 @@ msgstr "Time Range" msgid "controls.groups.empty-help" msgstr "Drag and drop columns here to make groups." -#: app/configurator/map/map-chart-options.tsx:204 -#~ msgid "controls.hierarchy" -#~ msgstr "Hierarchy level" - -#: app/configurator/map/map-chart-options.tsx:209 -#~ msgid "controls.hierarchy.select" -#~ msgstr "Select a hierarchy level" - -#: app/configurator/components/empty-right-panel.tsx:24 -msgid "controls.hint.configuring.chart" -msgstr "Select a design element or a data dimension to modify its options." - -#: app/configurator/components/empty-right-panel.tsx:31 -msgid "controls.hint.describing.chart" -msgstr "Select an annotation field to modify its content." - #: app/configurator/components/field-i18n.ts:87 msgid "controls.imputation" msgstr "Imputation type" -#: app/configurator/components/chart-options-selector.tsx:881 +#: app/configurator/components/chart-options-selector.tsx:878 #: app/configurator/components/field-i18n.ts:99 msgid "controls.imputation.type.linear" msgstr "Linear interpolation" -#: app/configurator/components/chart-options-selector.tsx:874 -#: app/configurator/components/chart-options-selector.tsx:886 +#: app/configurator/components/chart-options-selector.tsx:871 +#: app/configurator/components/chart-options-selector.tsx:883 #: app/configurator/components/field-i18n.ts:91 msgid "controls.imputation.type.none" msgstr "-" -#: app/configurator/components/chart-options-selector.tsx:876 +#: app/configurator/components/chart-options-selector.tsx:873 #: app/configurator/components/field-i18n.ts:95 msgid "controls.imputation.type.zeros" msgstr "Zeros" -#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:117 +#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:137 msgid "controls.interactive.filters.dataFilter" msgstr "Data Filters" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:104 -#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:97 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:115 +#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:117 msgid "controls.interactive.filters.timeSlider" msgstr "Time slider" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:327 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:375 msgid "controls.interactiveFilters.dataFilters.toggledataFilters" msgstr "Show data filters" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:77 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:89 msgid "controls.interactiveFilters.legend.toggleInteractiveLegend" msgstr "Show legend filter" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:222 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:233 msgid "controls.interactiveFilters.time.noTimeDimension" msgstr "There is no time dimension!" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:197 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:208 msgid "controls.interactiveFilters.time.toggleTimeFilter" msgstr "Show time filter" #: app/configurator/interactive-filters/interactive-filters-config-options.tsx:263 -msgid "controls.interactiveFilters.time.toggleTimeSliderFilter" -msgstr "Show time slider" +#~ msgid "controls.interactiveFilters.time.toggleTimeSliderFilter" +#~ msgstr "Show time slider" #: app/configurator/components/field-i18n.ts:135 msgid "controls.language.english" @@ -467,19 +459,23 @@ msgstr "Italian" msgid "controls.measure" msgstr "Measure" -#: app/configurator/components/field.tsx:817 -#~ msgid "controls.none" -#~ msgstr "None" +#: app/configurator/components/configurator.tsx:107 +msgid "controls.nav.back-to-preview" +msgstr "Back to preview" + +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:292 +msgid "controls.none" +msgstr "None" -#: app/configurator/components/chart-controls/control-tab.tsx:312 +#: app/configurator/components/chart-controls/control-tab.tsx:338 msgid "controls.option.isActive" msgstr "On" -#: app/configurator/components/chart-controls/control-tab.tsx:308 +#: app/configurator/components/chart-controls/control-tab.tsx:334 msgid "controls.option.isNotActive" msgstr "Off" -#: app/configurator/components/chart-options-selector.tsx:779 +#: app/configurator/components/chart-options-selector.tsx:776 msgid "controls.scale.type" msgstr "Scale type" @@ -487,15 +483,15 @@ msgstr "Scale type" msgid "controls.search.clear" msgstr "Clear search field" -#: app/configurator/components/chart-options-selector.tsx:356 +#: app/configurator/components/chart-options-selector.tsx:353 msgid "controls.section.additional-information" msgstr "Additional information" -#: app/configurator/components/chart-configurator.tsx:549 +#: app/configurator/components/chart-configurator.tsx:545 msgid "controls.section.chart.options" msgstr "Chart Options" -#: app/configurator/table/table-chart-configurator.tsx:164 +#: app/configurator/table/table-chart-configurator.tsx:165 msgid "controls.section.columns" msgstr "Columns" @@ -503,16 +499,16 @@ msgstr "Columns" msgid "controls.section.columnstyle" msgstr "Column Style" -#: app/configurator/components/chart-configurator.tsx:567 +#: app/configurator/components/chart-configurator.tsx:563 msgid "controls.section.data.filters" msgstr "Filters" -#: app/configurator/components/chart-annotator.tsx:24 +#: app/configurator/components/chart-annotator.tsx:50 msgid "controls.section.description" msgstr "Title & Description" -#: app/configurator/components/chart-options-selector.tsx:411 -#: app/configurator/components/chart-options-selector.tsx:415 +#: app/configurator/components/chart-options-selector.tsx:408 +#: app/configurator/components/chart-options-selector.tsx:412 #: app/configurator/table/table-chart-options.tsx:314 #: app/configurator/table/table-chart-options.tsx:318 #: app/configurator/table/table-chart-options.tsx:338 @@ -520,31 +516,32 @@ msgstr "Title & Description" msgid "controls.section.filter" msgstr "Filter" -#: app/configurator/table/table-chart-configurator.tsx:155 +#: app/configurator/table/table-chart-configurator.tsx:156 msgid "controls.section.groups" msgstr "Groups" -#: app/configurator/components/chart-options-selector.tsx:915 +#: app/configurator/components/chart-options-selector.tsx:912 msgid "controls.section.imputation" msgstr "Missing values" -#: app/configurator/components/chart-options-selector.tsx:920 +#: app/configurator/components/chart-options-selector.tsx:917 msgid "controls.section.imputation.explanation" msgstr "For this chart type, replacement values should be assigned to missing values. Decide on the imputation logic or switch to another chart type." -#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:78 +#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:98 +#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:157 msgid "controls.section.interactive.filters" msgstr "Interactive Filters" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:117 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:128 msgid "controls.section.interactiveFilters.dataFilters" msgstr "Data Filters" -#: app/configurator/components/chart-options-selector.tsx:365 +#: app/configurator/components/chart-options-selector.tsx:362 msgid "controls.section.show-standard-error" msgstr "Show standard error" -#: app/configurator/components/chart-options-selector.tsx:557 +#: app/configurator/components/chart-options-selector.tsx:554 msgid "controls.section.sorting" msgstr "Sort" @@ -552,21 +549,25 @@ msgstr "Sort" msgid "controls.section.tableSettings" msgstr "Table Settings" -#: app/configurator/table/table-chart-sorting-options.tsx:384 +#: app/configurator/table/table-chart-sorting-options.tsx:386 msgid "controls.section.tableSorting" msgstr "Table Sorting" -#: app/configurator/table/table-chart-configurator.tsx:130 +#: app/configurator/table/table-chart-configurator.tsx:131 msgid "controls.section.tableoptions" msgstr "Table Options" -#: app/configurator/components/chart-configurator.tsx:541 -#: app/configurator/components/chart-type-selector.tsx:135 +#: app/configurator/components/chart-annotator.tsx:30 +msgid "controls.section.title.warning" +msgstr "Please add a title or description." + +#: app/configurator/components/chart-configurator.tsx:537 +#: app/configurator/components/chart-type-selector.tsx:131 #: app/configurator/table/table-chart-configurator.tsx:123 msgid "controls.select.chart.type" msgstr "Chart Type" -#: app/configurator/components/chart-options-selector.tsx:461 +#: app/configurator/components/chart-options-selector.tsx:458 msgid "controls.select.column.layout" msgstr "Column layout" @@ -602,13 +603,14 @@ msgstr "Text Color" msgid "controls.select.columnStyle.textStyle" msgstr "Text Style" -#: app/configurator/components/chart-options-selector.tsx:220 +#: app/configurator/components/chart-options-selector.tsx:217 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:310 msgid "controls.select.dimension" msgstr "Select a dimension" -#: app/configurator/components/chart-options-selector.tsx:221 -#: app/configurator/components/chart-options-selector.tsx:647 -#: app/configurator/components/chart-options-selector.tsx:725 +#: app/configurator/components/chart-options-selector.tsx:218 +#: app/configurator/components/chart-options-selector.tsx:644 +#: app/configurator/components/chart-options-selector.tsx:722 msgid "controls.select.measure" msgstr "Select a measure" @@ -619,32 +621,32 @@ msgstr "Select a measure" #~ msgid "controls.select.optional" #~ msgstr "optional" -#: app/configurator/components/filters.tsx:712 +#: app/configurator/components/filters.tsx:701 msgid "controls.set-filters" msgstr "Set filters" -#: app/configurator/components/filters.tsx:719 +#: app/configurator/components/filters.tsx:708 msgid "controls.set-filters-caption" msgstr "For best results, do not select more than 7 values in the visualization." -#: app/configurator/components/filters.tsx:751 +#: app/configurator/components/filters.tsx:740 msgid "controls.set-values-apply" msgstr "Apply filters" -#: app/configurator/components/chart-options-selector.tsx:639 +#: app/configurator/components/chart-options-selector.tsx:636 msgid "controls.size" msgstr "Size" -#: app/configurator/table/table-chart-sorting-options.tsx:251 +#: app/configurator/table/table-chart-sorting-options.tsx:264 msgid "controls.sorting.addDimension" msgstr "Add dimension" -#: app/configurator/components/chart-options-selector.tsx:509 +#: app/configurator/components/chart-options-selector.tsx:506 msgid "controls.sorting.byAuto" msgstr "Automatic" -#: app/configurator/components/chart-options-selector.tsx:503 -#: app/configurator/components/chart-options-selector.tsx:513 +#: app/configurator/components/chart-options-selector.tsx:500 +#: app/configurator/components/chart-options-selector.tsx:510 msgid "controls.sorting.byDimensionLabel" msgstr "Name" @@ -658,7 +660,7 @@ msgstr "A → Z" msgid "controls.sorting.byDimensionLabel.descending" msgstr "Z → A" -#: app/configurator/components/chart-options-selector.tsx:505 +#: app/configurator/components/chart-options-selector.tsx:502 msgid "controls.sorting.byMeasure" msgstr "Measure" @@ -670,7 +672,7 @@ msgstr "1 → 9" msgid "controls.sorting.byMeasure.descending" msgstr "9 → 1" -#: app/configurator/components/chart-options-selector.tsx:507 +#: app/configurator/components/chart-options-selector.tsx:504 msgid "controls.sorting.byTotalSize" msgstr "Total size" @@ -690,20 +692,20 @@ msgstr "Largest first" msgid "controls.sorting.byTotalSize.largestTop" msgstr "Descending" -#: app/configurator/table/table-chart-sorting-options.tsx:161 +#: app/configurator/table/table-chart-sorting-options.tsx:174 msgid "controls.sorting.removeOption" msgstr "Remove sorting dimension" -#: app/configurator/table/table-chart-sorting-options.tsx:213 +#: app/configurator/table/table-chart-sorting-options.tsx:226 msgid "controls.sorting.selectDimension" msgstr "Select a dimension …" #: app/configurator/components/field-i18n.ts:43 -#: app/configurator/table/table-chart-sorting-options.tsx:322 +#: app/configurator/table/table-chart-sorting-options.tsx:335 msgid "controls.sorting.sortBy" msgstr "Sort by" -#: app/configurator/components/chart-type-selector.tsx:140 +#: app/configurator/components/chart-type-selector.tsx:136 msgid "controls.switch.chart.type" msgstr "Switch to another chart type while maintaining most filter settings." @@ -715,11 +717,11 @@ msgstr "Use as group" msgid "controls.table.column.hide" msgstr "Hide column" -#: app/configurator/table/table-chart-configurator.tsx:142 +#: app/configurator/table/table-chart-configurator.tsx:143 msgid "controls.table.settings" msgstr "Settings" -#: app/configurator/table/table-chart-configurator.tsx:148 +#: app/configurator/table/table-chart-configurator.tsx:149 msgid "controls.table.sorting" msgstr "Sorting" @@ -751,7 +753,7 @@ msgstr "Data source" msgid "data.source.notTrusted" msgstr "This chart is not using a trusted data source." -#: app/configurator/components/select-dataset-step.tsx:179 +#: app/configurator/components/select-dataset-step.tsx:221 msgid "dataset-preview.back-to-results" msgstr "Back to the datasets" @@ -771,7 +773,7 @@ msgstr "Latest update" msgid "dataset.hasImputedValues" msgstr "Some data in this dataset is missing and has been interpolated to fill the gaps." -#: app/configurator/components/dataset-browse.tsx:427 +#: app/configurator/components/dataset-browse.tsx:447 msgid "dataset.includeDrafts" msgstr "Include draft datasets" @@ -792,7 +794,7 @@ msgid "dataset.metadata.furtherinformation" msgstr "Further information" #: app/components/chart-footnotes.tsx:200 -#: app/configurator/components/dataset-metadata.tsx:118 +#: app/configurator/components/dataset-metadata.tsx:114 msgid "dataset.metadata.learnmore" msgstr "Learn more about the dataset" @@ -804,21 +806,21 @@ msgstr "Source" msgid "dataset.metadata.version" msgstr "Version" -#: app/configurator/components/dataset-browse.tsx:351 +#: app/configurator/components/dataset-browse.tsx:404 msgid "dataset.order.newest" msgstr "Newest" -#: app/configurator/components/dataset-browse.tsx:343 +#: app/configurator/components/dataset-browse.tsx:396 msgid "dataset.order.relevance" msgstr "Relevance" -#: app/configurator/components/dataset-browse.tsx:347 +#: app/configurator/components/dataset-browse.tsx:400 msgid "dataset.order.title" msgstr "Title" -#: app/components/chart-preview.tsx:85 +#: app/components/chart-preview.tsx:103 #: app/components/chart-published.tsx:126 -#: app/configurator/components/dataset-preview.tsx:109 +#: app/configurator/components/dataset-preview.tsx:120 msgid "dataset.publicationStatus.draft.warning" msgstr "Careful, this dataset is only a draft.<0/><1>Don't use for reporting!" @@ -826,27 +828,27 @@ msgstr "Careful, this dataset is only a draft.<0/><1>Don't use for reporting!<1>Don't use for reporting!" -#: app/configurator/components/dataset-browse.tsx:415 +#: app/configurator/components/dataset-browse.tsx:435 msgid "dataset.results" msgstr "{0, plural, zero {No datasets} one {# dataset} other {# datasets}}" -#: app/configurator/components/dataset-browse.tsx:355 +#: app/configurator/components/dataset-browse.tsx:328 msgid "dataset.search.label" msgstr "Search datasets" #: app/configurator/components/dataset-browse.tsx:360 -msgid "dataset.search.placeholder" -msgstr "Name, description, organization, theme, keyword" +#~ msgid "dataset.search.placeholder" +#~ msgstr "Name, description, organization, theme, keyword" -#: app/configurator/components/dataset-browse.tsx:446 +#: app/configurator/components/dataset-browse.tsx:459 msgid "dataset.sortby" msgstr "Sort by" -#: app/configurator/components/dataset-browse.tsx:1152 +#: app/configurator/components/dataset-browse.tsx:1157 msgid "dataset.tag.draft" msgstr "Draft" -#: app/configurator/components/dataset-preview.tsx:171 +#: app/configurator/components/dataset-preview.tsx:182 msgid "datatable.showing.first.rows" msgstr "Showing first 10 rows" @@ -886,7 +888,7 @@ msgstr "There was a problem with loading the coordinates from geographical dimen msgid "hint.coordinatesloadingerror.title" msgstr "Coordinates loading error" -#: app/pages/v/[chartId].tsx:129 +#: app/pages/v/[chartId].tsx:128 msgid "hint.create.your.own.chart" msgstr "Copy this visualization or make a new visualization using Swiss Open Government Data." @@ -902,7 +904,7 @@ msgstr "Check the status page for more information" msgid "hint.dataloadingerror.title" msgstr "Data loading error" -#: app/pages/v/[chartId].tsx:123 +#: app/pages/v/[chartId].tsx:122 msgid "hint.how.to.share" msgstr "You can share this visualization by copying the URL or by embedding it on your own website. You can also create a new visualization from scratch or start by copying the visualization above." @@ -910,7 +912,7 @@ msgstr "You can share this visualization by copying the URL or by embedding it o msgid "hint.loading.data" msgstr "Loading data..." -#: app/configurator/components/chart-type-selector.tsx:153 +#: app/configurator/components/chart-type-selector.tsx:149 msgid "hint.no.visualization.with.dataset" msgstr "No visualization can be created with the selected dataset." @@ -942,8 +944,8 @@ msgstr "Hide Filters" msgid "interactive.data.filters.show" msgstr "Show Filters" -#: app/components/header.tsx:188 -#: app/components/header.tsx:207 +#: app/components/header.tsx:201 +#: app/components/header.tsx:220 msgid "logo.swiss.confederation" msgstr "Logo of the Swiss Confederation" @@ -1003,18 +1005,12 @@ msgstr "Here is a visualization I created using visualize.admin.ch" msgid "publication.share.mail.subject" msgstr "visualize.admin.ch" -#: app/configurator/components/filters.tsx:632 +#: app/configurator/components/dataset-browse.tsx:333 +#: app/configurator/components/dataset-browse.tsx:369 +#: app/configurator/components/filters.tsx:621 msgid "select.controls.filters.search" msgstr "Search" -#: app/configurator/components/stepper.tsx:209 -msgid "step.annotate" -msgstr "Before publishing, add a title and description to your chart, and choose which elements should be interactive." - -#: app/configurator/components/stepper.tsx:198 -msgid "step.visualize" -msgstr "Customize your visualization by using the filter and color segmentation options in the sidebars." - #: app/configurator/components/chart-controls/drag-and-drop-tab.tsx:101 msgid "table.column.no" msgstr "Column {0}" diff --git a/app/locales/fr/messages.po b/app/locales/fr/messages.po index 19cfca61c..5d852cef0 100644 --- a/app/locales/fr/messages.po +++ b/app/locales/fr/messages.po @@ -13,60 +13,60 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: app/configurator/components/chart-configurator.tsx:647 +#: app/configurator/components/chart-configurator.tsx:648 msgid "Add filter" msgstr "Ajouter un filtre" -#: app/configurator/components/chart-configurator.tsx:620 +#: app/configurator/components/chart-configurator.tsx:621 msgid "Drag filters to reorganize" msgstr "Faites glisser les filtres pour les réorganiser" -#: app/configurator/components/chart-configurator.tsx:617 +#: app/configurator/components/chart-configurator.tsx:618 msgid "Move filter down" msgstr "Déplacer le filtre vers le bas" -#: app/configurator/components/chart-configurator.tsx:614 +#: app/configurator/components/chart-configurator.tsx:615 msgid "Move filter up" msgstr "Déplacer le filtre vers le haut" -#: app/configurator/components/dataset-browse.tsx:1037 -#: app/configurator/components/filters.tsx:730 +#: app/configurator/components/dataset-browse.tsx:1043 +#: app/configurator/components/filters.tsx:719 msgid "No results" msgstr "Aucun résultat" -#: app/components/chart-preview.tsx:128 +#: app/components/chart-preview.tsx:157 msgid "annotation.add.description" msgstr "[ Pas de description ]" -#: app/components/chart-preview.tsx:106 +#: app/components/chart-preview.tsx:129 msgid "annotation.add.title" msgstr "[ Pas de titre ]" -#: app/configurator/components/dataset-browse.tsx:968 +#: app/configurator/components/dataset-browse.tsx:974 msgid "browse-panel.organizations" msgstr "Organisations" -#: app/configurator/components/dataset-browse.tsx:950 +#: app/configurator/components/dataset-browse.tsx:956 msgid "browse-panel.themes" msgstr "Catégories" -#: app/configurator/components/dataset-preview.tsx:128 +#: app/configurator/components/dataset-preview.tsx:139 msgid "browse.dataset.create-visualization" msgstr "Démarrer une visualisation" -#: app/configurator/components/select-dataset-step.tsx:284 +#: app/configurator/components/select-dataset-step.tsx:295 msgid "browse.datasets.all-datasets" msgstr "Tous les jeux de données" -#: app/configurator/components/select-dataset-step.tsx:217 +#: app/configurator/components/select-dataset-step.tsx:189 msgid "browse.datasets.description" msgstr "Explorez les jeux de données liés fournis par LINDAS, en filtrant par catégories ou organisations, ou en recherchant par mots-clés. Cliquez sur un ensemble de données pour afficher des informations plus détaillées et commencer à créer vos propres visualisations. " #: app/configurator/components/stepper.tsx:65 -msgid "button.back" -msgstr "Précédent" +#~ msgid "button.back" +#~ msgstr "Précédent" -#: app/pages/v/[chartId].tsx:167 +#: app/pages/v/[chartId].tsx:166 msgid "button.copy.visualization" msgstr "Copier et éditer cette visualisation" @@ -103,15 +103,15 @@ msgstr "Cliquer pour copier" msgid "button.hint.copied" msgstr "Copié!" -#: app/pages/v/[chartId].tsx:152 +#: app/pages/v/[chartId].tsx:151 msgid "button.new.visualization" msgstr "Créer une nouvelle visualisation" #: app/configurator/components/stepper.tsx:70 -msgid "button.next" -msgstr "Suivant" +#~ msgid "button.next" +#~ msgstr "Suivant" -#: app/configurator/components/stepper.tsx:68 +#: app/components/chart-selection-tabs.tsx:182 msgid "button.publish" msgstr "Publier cette visualisation" @@ -143,17 +143,17 @@ msgstr "Zones" #~ msgid "chart.map.layers.area.discretization.quantize" #~ msgstr "Intervalles égaux" -#: app/configurator/components/chart-configurator.tsx:696 -#: app/configurator/components/chart-options-selector.tsx:989 +#: app/configurator/components/chart-configurator.tsx:697 +#: app/configurator/components/chart-options-selector.tsx:986 #: app/configurator/components/field-i18n.ts:31 msgid "chart.map.layers.base" msgstr "Affichage de la carte" -#: app/configurator/components/chart-options-selector.tsx:993 +#: app/configurator/components/chart-options-selector.tsx:990 msgid "chart.map.layers.base.show" msgstr "Afficher la carte du monde" -#: app/configurator/components/chart-options-selector.tsx:1001 +#: app/configurator/components/chart-options-selector.tsx:998 msgid "chart.map.layers.base.view.locked" msgstr "Carte verrouillée" @@ -203,10 +203,18 @@ msgstr "Gras" msgid "columnStyle.textStyle.regular" msgstr "Normal" -#: app/configurator/interactive-filters/editor-time-brush.tsx:168 +#: app/configurator/interactive-filters/editor-time-brush.tsx:170 msgid "controls..interactiveFilters.time.defaultSettings" msgstr "Paramètres d'origine" +#: app/configurator/components/chart-annotator.tsx:67 +msgid "controls.annotator.add-description-warning" +msgstr "Ajoutez une description au graphique" + +#: app/configurator/components/chart-annotator.tsx:57 +msgid "controls.annotator.add-title-warning" +msgstr "Ajoutez un titre au graphique" + #: app/configurator/components/field-i18n.ts:5 msgid "controls.axis.horizontal" msgstr "Axe horizontal" @@ -247,16 +255,16 @@ msgstr "Nuage de points" msgid "controls.chart.type.table" msgstr "Tableau" -#: app/configurator/components/chart-options-selector.tsx:720 +#: app/configurator/components/chart-options-selector.tsx:717 #: app/configurator/components/field-i18n.ts:17 msgid "controls.color" msgstr "Couleur" -#: app/configurator/components/chart-controls/control-tab.tsx:45 +#: app/configurator/components/chart-controls/control-tab.tsx:47 msgid "controls.color.add" msgstr "Ajouter…" -#: app/configurator/components/chart-options-selector.tsx:749 +#: app/configurator/components/chart-options-selector.tsx:746 msgid "controls.color.opacity" msgstr "Transparence" @@ -267,7 +275,7 @@ msgstr "Couleurs" #: app/configurator/components/chart-controls/color-ramp.tsx:155 msgid "controls.color.palette.diverging" -msgstr "" +msgstr "Divergent" #: app/configurator/components/chart-controls/color-palette.tsx:261 msgid "controls.color.palette.reset" @@ -277,35 +285,35 @@ msgstr "Réinitialiser la palette de couleurs" msgid "controls.color.palette.sequential" msgstr "Séquentielle" -#: app/configurator/components/chart-options-selector.tsx:836 +#: app/configurator/components/chart-options-selector.tsx:833 msgid "controls.color.scale.discretization.jenks" msgstr "Jenks (intervalles naturels)" -#: app/configurator/components/chart-options-selector.tsx:829 +#: app/configurator/components/chart-options-selector.tsx:826 msgid "controls.color.scale.discretization.quantiles" msgstr "Quantiles (distribution homogène des valeurs)" -#: app/configurator/components/chart-options-selector.tsx:822 +#: app/configurator/components/chart-options-selector.tsx:819 msgid "controls.color.scale.discretization.quantize" msgstr "Intervalles égaux" -#: app/configurator/components/chart-options-selector.tsx:814 +#: app/configurator/components/chart-options-selector.tsx:811 msgid "controls.color.scale.interpolation" msgstr "Interpolation" -#: app/configurator/components/chart-options-selector.tsx:846 +#: app/configurator/components/chart-options-selector.tsx:843 msgid "controls.color.scale.number.of.classes" msgstr "Nombre de classes" -#: app/configurator/components/chart-options-selector.tsx:786 +#: app/configurator/components/chart-options-selector.tsx:783 msgid "controls.color.scale.type.continuous" msgstr "Continue" -#: app/configurator/components/chart-options-selector.tsx:797 +#: app/configurator/components/chart-options-selector.tsx:794 msgid "controls.color.scale.type.discrete" msgstr "Discrète" -#: app/configurator/components/chart-options-selector.tsx:739 +#: app/configurator/components/chart-options-selector.tsx:736 msgid "controls.color.select" msgstr "Sélectionner une couleur" @@ -339,33 +347,33 @@ msgstr "Description" msgid "controls.dimensionvalue.none" msgstr "Aucune filtre" -#: app/configurator/components/filters.tsx:480 +#: app/configurator/components/filters.tsx:469 msgid "controls.filter.nb-elements" msgstr "{0} sur {1}" -#: app/configurator/components/filters.tsx:414 -#: app/configurator/components/filters.tsx:658 +#: app/configurator/components/filters.tsx:403 +#: app/configurator/components/filters.tsx:647 msgid "controls.filter.select.all" msgstr "Tout sélectionner" -#: app/configurator/components/filters.tsx:421 -#: app/configurator/components/filters.tsx:656 +#: app/configurator/components/filters.tsx:410 +#: app/configurator/components/filters.tsx:645 msgid "controls.filter.select.none" msgstr "Tout déselectionner" -#: app/configurator/components/filters.tsx:431 +#: app/configurator/components/filters.tsx:420 msgid "controls.filters.select.filters" msgstr "Filtres" -#: app/configurator/components/filters.tsx:461 +#: app/configurator/components/filters.tsx:450 msgid "controls.filters.select.refresh-colors" msgstr "Renouveller les couleurs" -#: app/configurator/components/filters.tsx:445 +#: app/configurator/components/filters.tsx:434 msgid "controls.filters.select.reset-colors" msgstr "Réinitialiser les couleurs" -#: app/configurator/components/filters.tsx:438 +#: app/configurator/components/filters.tsx:427 msgid "controls.filters.select.selected-filters" msgstr "Filtres sélectionnés" @@ -377,70 +385,54 @@ msgstr "Intervalle de temps" msgid "controls.groups.empty-help" msgstr "Glisser-déposer des colonnes ici pour créer des groupes." -#: app/configurator/map/map-chart-options.tsx:204 -#~ msgid "controls.hierarchy" -#~ msgstr "Niveau hiérarchique" - -#: app/configurator/map/map-chart-options.tsx:209 -#~ msgid "controls.hierarchy.select" -#~ msgstr "Sélectionner le niveau hiérarchique" - -#: app/configurator/components/empty-right-panel.tsx:24 -msgid "controls.hint.configuring.chart" -msgstr "Sélectionnez un élément de design ou une dimension du jeu de données pour modifier leurs options." - -#: app/configurator/components/empty-right-panel.tsx:31 -msgid "controls.hint.describing.chart" -msgstr "Sélectionnez une des annotations proposées pour la modifier." - #: app/configurator/components/field-i18n.ts:87 msgid "controls.imputation" msgstr "Type d'imputation" -#: app/configurator/components/chart-options-selector.tsx:881 +#: app/configurator/components/chart-options-selector.tsx:878 #: app/configurator/components/field-i18n.ts:99 msgid "controls.imputation.type.linear" msgstr "Interpolation linéaire" -#: app/configurator/components/chart-options-selector.tsx:874 -#: app/configurator/components/chart-options-selector.tsx:886 +#: app/configurator/components/chart-options-selector.tsx:871 +#: app/configurator/components/chart-options-selector.tsx:883 #: app/configurator/components/field-i18n.ts:91 msgid "controls.imputation.type.none" msgstr "-" -#: app/configurator/components/chart-options-selector.tsx:876 +#: app/configurator/components/chart-options-selector.tsx:873 #: app/configurator/components/field-i18n.ts:95 msgid "controls.imputation.type.zeros" msgstr "Zéros" -#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:117 +#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:137 msgid "controls.interactive.filters.dataFilter" msgstr "Filtres de données" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:104 -#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:97 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:115 +#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:117 msgid "controls.interactive.filters.timeSlider" msgstr "Curseur temporel" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:327 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:375 msgid "controls.interactiveFilters.dataFilters.toggledataFilters" msgstr "Afficher les filtres de données" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:77 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:89 msgid "controls.interactiveFilters.legend.toggleInteractiveLegend" msgstr "Afficher la légende filtrante" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:222 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:233 msgid "controls.interactiveFilters.time.noTimeDimension" msgstr "Il n'y a pas de dimension temporelle!" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:197 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:208 msgid "controls.interactiveFilters.time.toggleTimeFilter" msgstr "Afficher le filtre temporel" #: app/configurator/interactive-filters/interactive-filters-config-options.tsx:263 -msgid "controls.interactiveFilters.time.toggleTimeSliderFilter" -msgstr "Afficher le curseur de temps" +#~ msgid "controls.interactiveFilters.time.toggleTimeSliderFilter" +#~ msgstr "Afficher le curseur de temps" #: app/configurator/components/field-i18n.ts:135 msgid "controls.language.english" @@ -458,28 +450,27 @@ msgstr "Allemand" msgid "controls.language.italian" msgstr "Italien" -#: app/configurator/map/map-chart-options.tsx:209 -#: app/configurator/map/map-chart-options.tsx:414 -#~ msgid "controls.location" -#~ msgstr "Localisation" - #: app/configurator/components/field-i18n.ts:9 msgid "controls.measure" msgstr "Variable mesurée" -#: app/configurator/components/field.tsx:817 -#~ msgid "controls.none" -#~ msgstr "Aucun" +#: app/configurator/components/configurator.tsx:107 +msgid "controls.nav.back-to-preview" +msgstr "Retour à l'aperçu" -#: app/configurator/components/chart-controls/control-tab.tsx:312 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:292 +msgid "controls.none" +msgstr "Aucun" + +#: app/configurator/components/chart-controls/control-tab.tsx:338 msgid "controls.option.isActive" msgstr "Actif" -#: app/configurator/components/chart-controls/control-tab.tsx:308 +#: app/configurator/components/chart-controls/control-tab.tsx:334 msgid "controls.option.isNotActive" msgstr "Inactif" -#: app/configurator/components/chart-options-selector.tsx:779 +#: app/configurator/components/chart-options-selector.tsx:776 msgid "controls.scale.type" msgstr "Type d'échelle" @@ -487,15 +478,15 @@ msgstr "Type d'échelle" msgid "controls.search.clear" msgstr "Effacer la recherche" -#: app/configurator/components/chart-options-selector.tsx:356 +#: app/configurator/components/chart-options-selector.tsx:353 msgid "controls.section.additional-information" msgstr "Informations supplémentaires" -#: app/configurator/components/chart-configurator.tsx:549 +#: app/configurator/components/chart-configurator.tsx:545 msgid "controls.section.chart.options" msgstr "Paramètres graphiques" -#: app/configurator/table/table-chart-configurator.tsx:164 +#: app/configurator/table/table-chart-configurator.tsx:165 msgid "controls.section.columns" msgstr "Colonnes" @@ -503,16 +494,16 @@ msgstr "Colonnes" msgid "controls.section.columnstyle" msgstr "Style de la colonne" -#: app/configurator/components/chart-configurator.tsx:567 +#: app/configurator/components/chart-configurator.tsx:563 msgid "controls.section.data.filters" msgstr "Filtres" -#: app/configurator/components/chart-annotator.tsx:24 +#: app/configurator/components/chart-annotator.tsx:50 msgid "controls.section.description" msgstr "Titre & description" -#: app/configurator/components/chart-options-selector.tsx:411 -#: app/configurator/components/chart-options-selector.tsx:415 +#: app/configurator/components/chart-options-selector.tsx:408 +#: app/configurator/components/chart-options-selector.tsx:412 #: app/configurator/table/table-chart-options.tsx:314 #: app/configurator/table/table-chart-options.tsx:318 #: app/configurator/table/table-chart-options.tsx:338 @@ -520,31 +511,32 @@ msgstr "Titre & description" msgid "controls.section.filter" msgstr "Filtre" -#: app/configurator/table/table-chart-configurator.tsx:155 +#: app/configurator/table/table-chart-configurator.tsx:156 msgid "controls.section.groups" msgstr "Groupes" -#: app/configurator/components/chart-options-selector.tsx:915 +#: app/configurator/components/chart-options-selector.tsx:912 msgid "controls.section.imputation" msgstr "Valeurs manquantes" -#: app/configurator/components/chart-options-selector.tsx:920 +#: app/configurator/components/chart-options-selector.tsx:917 msgid "controls.section.imputation.explanation" msgstr "En raison du type de graphique sélectionné, les valeurs manquantes doivent être remplies. Décidez de la logique d'imputation ou choisissez un autre type de graphique." -#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:78 +#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:98 +#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:157 msgid "controls.section.interactive.filters" msgstr "Filtres interactifs" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:117 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:128 msgid "controls.section.interactiveFilters.dataFilters" msgstr "Filtres de données" -#: app/configurator/components/chart-options-selector.tsx:365 +#: app/configurator/components/chart-options-selector.tsx:362 msgid "controls.section.show-standard-error" msgstr "Afficher l'erreur type" -#: app/configurator/components/chart-options-selector.tsx:557 +#: app/configurator/components/chart-options-selector.tsx:554 msgid "controls.section.sorting" msgstr "Trier" @@ -552,21 +544,25 @@ msgstr "Trier" msgid "controls.section.tableSettings" msgstr "Paramètres du tableau" -#: app/configurator/table/table-chart-sorting-options.tsx:384 +#: app/configurator/table/table-chart-sorting-options.tsx:386 msgid "controls.section.tableSorting" msgstr "Tri du tableau" -#: app/configurator/table/table-chart-configurator.tsx:130 +#: app/configurator/table/table-chart-configurator.tsx:131 msgid "controls.section.tableoptions" msgstr "Options du tableau" -#: app/configurator/components/chart-configurator.tsx:541 -#: app/configurator/components/chart-type-selector.tsx:135 +#: app/configurator/components/chart-annotator.tsx:30 +msgid "controls.section.title.warning" +msgstr "Ajoutez un titre et une description" + +#: app/configurator/components/chart-configurator.tsx:537 +#: app/configurator/components/chart-type-selector.tsx:131 #: app/configurator/table/table-chart-configurator.tsx:123 msgid "controls.select.chart.type" msgstr "Type de graphique" -#: app/configurator/components/chart-options-selector.tsx:461 +#: app/configurator/components/chart-options-selector.tsx:458 msgid "controls.select.column.layout" msgstr "Mise en forme de la colonne" @@ -602,13 +598,14 @@ msgstr "Couleur du texte" msgid "controls.select.columnStyle.textStyle" msgstr "Style du texte" -#: app/configurator/components/chart-options-selector.tsx:220 +#: app/configurator/components/chart-options-selector.tsx:217 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:310 msgid "controls.select.dimension" msgstr "Sélectionner une dimension" -#: app/configurator/components/chart-options-selector.tsx:221 -#: app/configurator/components/chart-options-selector.tsx:647 -#: app/configurator/components/chart-options-selector.tsx:725 +#: app/configurator/components/chart-options-selector.tsx:218 +#: app/configurator/components/chart-options-selector.tsx:644 +#: app/configurator/components/chart-options-selector.tsx:722 msgid "controls.select.measure" msgstr "Sélectionner une variable" @@ -619,32 +616,32 @@ msgstr "Sélectionner une variable" #~ msgid "controls.select.optional" #~ msgstr "optionnel" -#: app/configurator/components/filters.tsx:712 +#: app/configurator/components/filters.tsx:701 msgid "controls.set-filters" msgstr "Appliquer les filtres" -#: app/configurator/components/filters.tsx:719 +#: app/configurator/components/filters.tsx:708 msgid "controls.set-filters-caption" msgstr "Pour de meilleurs résultats, ne sélectionnez pas plus de 7 valeurs dans la visualisation." -#: app/configurator/components/filters.tsx:751 +#: app/configurator/components/filters.tsx:740 msgid "controls.set-values-apply" msgstr "Appliquer les filtres" -#: app/configurator/components/chart-options-selector.tsx:639 +#: app/configurator/components/chart-options-selector.tsx:636 msgid "controls.size" msgstr "Taille" -#: app/configurator/table/table-chart-sorting-options.tsx:251 +#: app/configurator/table/table-chart-sorting-options.tsx:264 msgid "controls.sorting.addDimension" msgstr "Ajouter une dimension" -#: app/configurator/components/chart-options-selector.tsx:509 +#: app/configurator/components/chart-options-selector.tsx:506 msgid "controls.sorting.byAuto" -msgstr "" +msgstr "Auto" -#: app/configurator/components/chart-options-selector.tsx:503 -#: app/configurator/components/chart-options-selector.tsx:513 +#: app/configurator/components/chart-options-selector.tsx:500 +#: app/configurator/components/chart-options-selector.tsx:510 msgid "controls.sorting.byDimensionLabel" msgstr "Nom" @@ -658,7 +655,7 @@ msgstr "A → Z" msgid "controls.sorting.byDimensionLabel.descending" msgstr "Z → A" -#: app/configurator/components/chart-options-selector.tsx:505 +#: app/configurator/components/chart-options-selector.tsx:502 msgid "controls.sorting.byMeasure" msgstr "Mesure" @@ -670,7 +667,7 @@ msgstr "1 → 9" msgid "controls.sorting.byMeasure.descending" msgstr "9 → 1" -#: app/configurator/components/chart-options-selector.tsx:507 +#: app/configurator/components/chart-options-selector.tsx:504 msgid "controls.sorting.byTotalSize" msgstr "Taille totale" @@ -690,20 +687,20 @@ msgstr "Décroissant" msgid "controls.sorting.byTotalSize.largestTop" msgstr "Décroissant de haut en bas" -#: app/configurator/table/table-chart-sorting-options.tsx:161 +#: app/configurator/table/table-chart-sorting-options.tsx:174 msgid "controls.sorting.removeOption" msgstr "Supprimer la dimension de tri" -#: app/configurator/table/table-chart-sorting-options.tsx:213 +#: app/configurator/table/table-chart-sorting-options.tsx:226 msgid "controls.sorting.selectDimension" msgstr "Sélectionner une dimension…" #: app/configurator/components/field-i18n.ts:43 -#: app/configurator/table/table-chart-sorting-options.tsx:322 +#: app/configurator/table/table-chart-sorting-options.tsx:335 msgid "controls.sorting.sortBy" msgstr "Trier par" -#: app/configurator/components/chart-type-selector.tsx:140 +#: app/configurator/components/chart-type-selector.tsx:136 msgid "controls.switch.chart.type" msgstr "Passer à une autre visualisation tout en conservant la plupart des filtres" @@ -715,11 +712,11 @@ msgstr "Grouper selon cette colonne" msgid "controls.table.column.hide" msgstr "Masquer la colonne" -#: app/configurator/table/table-chart-configurator.tsx:142 +#: app/configurator/table/table-chart-configurator.tsx:143 msgid "controls.table.settings" msgstr "Paramètres" -#: app/configurator/table/table-chart-configurator.tsx:148 +#: app/configurator/table/table-chart-configurator.tsx:149 msgid "controls.table.sorting" msgstr "Tri" @@ -751,7 +748,7 @@ msgstr "Source des données" msgid "data.source.notTrusted" msgstr "Ce graphique n'utilise pas une source de données fiable." -#: app/configurator/components/select-dataset-step.tsx:179 +#: app/configurator/components/select-dataset-step.tsx:221 msgid "dataset-preview.back-to-results" msgstr "Revenir aux jeux de données" @@ -771,7 +768,7 @@ msgstr "Mise à jour" msgid "dataset.hasImputedValues" msgstr "Certaines données de cet ensemble de données sont manquantes et ont été interpolées pour combler les lacunes." -#: app/configurator/components/dataset-browse.tsx:427 +#: app/configurator/components/dataset-browse.tsx:447 msgid "dataset.includeDrafts" msgstr "Inclure les brouillons" @@ -788,7 +785,7 @@ msgid "dataset.metadata.furtherinformation" msgstr "Informations complémentaires" #: app/components/chart-footnotes.tsx:200 -#: app/configurator/components/dataset-metadata.tsx:118 +#: app/configurator/components/dataset-metadata.tsx:114 msgid "dataset.metadata.learnmore" msgstr "En savoir plus sur le jeu de données" @@ -800,21 +797,21 @@ msgstr "Source" msgid "dataset.metadata.version" msgstr "Version" -#: app/configurator/components/dataset-browse.tsx:351 +#: app/configurator/components/dataset-browse.tsx:404 msgid "dataset.order.newest" msgstr "Plus récent en premier" -#: app/configurator/components/dataset-browse.tsx:343 +#: app/configurator/components/dataset-browse.tsx:396 msgid "dataset.order.relevance" msgstr "Pertinence" -#: app/configurator/components/dataset-browse.tsx:347 +#: app/configurator/components/dataset-browse.tsx:400 msgid "dataset.order.title" msgstr "Titre" -#: app/components/chart-preview.tsx:85 +#: app/components/chart-preview.tsx:103 #: app/components/chart-published.tsx:126 -#: app/configurator/components/dataset-preview.tsx:109 +#: app/configurator/components/dataset-preview.tsx:120 msgid "dataset.publicationStatus.draft.warning" msgstr "Attention, ce jeu de données est à l'état d'ébauche.<0/><1>Ne l'utilisez pas pour une publication!" @@ -822,27 +819,27 @@ msgstr "Attention, ce jeu de données est à l'état d'ébauche.<0/><1>Ne l'util msgid "dataset.publicationStatus.expires.warning" msgstr "Attention, ce jeu de données est expiré.<0/><1>Ne l'utilisez pas pour une publication!" -#: app/configurator/components/dataset-browse.tsx:415 +#: app/configurator/components/dataset-browse.tsx:435 msgid "dataset.results" msgstr "{0, plural, zero {Aucun jeu de données} one {# jeu de données} other {# jeux de données}}" -#: app/configurator/components/dataset-browse.tsx:355 +#: app/configurator/components/dataset-browse.tsx:328 msgid "dataset.search.label" msgstr "Chercher" #: app/configurator/components/dataset-browse.tsx:360 -msgid "dataset.search.placeholder" -msgstr "Nom, description, organisation, catégorie, mots clés..." +#~ msgid "dataset.search.placeholder" +#~ msgstr "Nom, description, organisation, catégorie, mots clés..." -#: app/configurator/components/dataset-browse.tsx:446 +#: app/configurator/components/dataset-browse.tsx:459 msgid "dataset.sortby" msgstr "Trier par" -#: app/configurator/components/dataset-browse.tsx:1152 +#: app/configurator/components/dataset-browse.tsx:1157 msgid "dataset.tag.draft" msgstr "Brouillon" -#: app/configurator/components/dataset-preview.tsx:171 +#: app/configurator/components/dataset-preview.tsx:182 msgid "datatable.showing.first.rows" msgstr "Seules les 10 premières lignes sont affichées" @@ -882,7 +879,7 @@ msgstr "Les données géographiques n’ont pas pu être chargées, merci de ré msgid "hint.coordinatesloadingerror.title" msgstr "Erreur de chargement des coordonnées" -#: app/pages/v/[chartId].tsx:129 +#: app/pages/v/[chartId].tsx:128 msgid "hint.create.your.own.chart" msgstr "Copiez cette visualisation ou créez une nouvelle visualisation à partir des données ouvertes de l’administration publique suisse." @@ -898,7 +895,7 @@ msgstr "Consultez la page de statut pour plus d'informations" msgid "hint.dataloadingerror.title" msgstr "Problème de téléchargement des données" -#: app/pages/v/[chartId].tsx:123 +#: app/pages/v/[chartId].tsx:122 msgid "hint.how.to.share" msgstr "Vous pouvez partager cette visualisation en copiant l'URL ou en l'intégrant sur votre site Web. Vous pouvez également créer une toute nouvelle visualisation, ou bien copier et modifier la visualisation ci-dessus." @@ -906,7 +903,7 @@ msgstr "Vous pouvez partager cette visualisation en copiant l'URL ou en l'intég msgid "hint.loading.data" msgstr "Chargement des données..." -#: app/configurator/components/chart-type-selector.tsx:153 +#: app/configurator/components/chart-type-selector.tsx:149 msgid "hint.no.visualization.with.dataset" msgstr "Aucune visualisation ne peut être créée avec le jeu de données sélectionné." @@ -938,8 +935,8 @@ msgstr "Masquer les filtres" msgid "interactive.data.filters.show" msgstr "Afficher les filtres" -#: app/components/header.tsx:188 -#: app/components/header.tsx:207 +#: app/components/header.tsx:201 +#: app/components/header.tsx:220 msgid "logo.swiss.confederation" msgstr "Logo de la Confédération Suisse" @@ -999,18 +996,12 @@ msgstr "Voici une visualisation que j'ai créée sur visualize.admin.ch" msgid "publication.share.mail.subject" msgstr "visualize.admin.ch" -#: app/configurator/components/filters.tsx:632 +#: app/configurator/components/dataset-browse.tsx:333 +#: app/configurator/components/dataset-browse.tsx:369 +#: app/configurator/components/filters.tsx:621 msgid "select.controls.filters.search" msgstr "Chercher" -#: app/configurator/components/stepper.tsx:209 -msgid "step.annotate" -msgstr "Avant de publier, ajoutez un titre et une description à votre tableau et choisissez quels éléments doivent être interactifs." - -#: app/configurator/components/stepper.tsx:198 -msgid "step.visualize" -msgstr "Personnalisez votre visualisation en utilisant les options de filtrage et de segmentation des couleurs dans les barres latérales." - #: app/configurator/components/chart-controls/drag-and-drop-tab.tsx:101 msgid "table.column.no" msgstr "Colonne {0}" diff --git a/app/locales/it/messages.po b/app/locales/it/messages.po index 0d02c1b0e..0625c238a 100644 --- a/app/locales/it/messages.po +++ b/app/locales/it/messages.po @@ -13,60 +13,60 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: app/configurator/components/chart-configurator.tsx:647 +#: app/configurator/components/chart-configurator.tsx:648 msgid "Add filter" msgstr "Aggiungi filtro" -#: app/configurator/components/chart-configurator.tsx:620 +#: app/configurator/components/chart-configurator.tsx:621 msgid "Drag filters to reorganize" msgstr "Trascina i filtri per riorganizzarli" -#: app/configurator/components/chart-configurator.tsx:617 +#: app/configurator/components/chart-configurator.tsx:618 msgid "Move filter down" msgstr "Sposta il filtro in basso" -#: app/configurator/components/chart-configurator.tsx:614 +#: app/configurator/components/chart-configurator.tsx:615 msgid "Move filter up" msgstr "Sposta il filtro in alto" -#: app/configurator/components/dataset-browse.tsx:1037 -#: app/configurator/components/filters.tsx:730 +#: app/configurator/components/dataset-browse.tsx:1043 +#: app/configurator/components/filters.tsx:719 msgid "No results" msgstr "Nessun risultato" -#: app/components/chart-preview.tsx:128 +#: app/components/chart-preview.tsx:157 msgid "annotation.add.description" msgstr "[ Nessuna descrizione ]" -#: app/components/chart-preview.tsx:106 +#: app/components/chart-preview.tsx:129 msgid "annotation.add.title" msgstr "[ Nessun titolo ]" -#: app/configurator/components/dataset-browse.tsx:968 +#: app/configurator/components/dataset-browse.tsx:974 msgid "browse-panel.organizations" msgstr "Organizzazioni" -#: app/configurator/components/dataset-browse.tsx:950 +#: app/configurator/components/dataset-browse.tsx:956 msgid "browse-panel.themes" msgstr "Categorie" -#: app/configurator/components/dataset-preview.tsx:128 +#: app/configurator/components/dataset-preview.tsx:139 msgid "browse.dataset.create-visualization" msgstr "Iniziare una visualizzazione" -#: app/configurator/components/select-dataset-step.tsx:284 +#: app/configurator/components/select-dataset-step.tsx:295 msgid "browse.datasets.all-datasets" msgstr "Tutti i set di dati" -#: app/configurator/components/select-dataset-step.tsx:217 +#: app/configurator/components/select-dataset-step.tsx:189 msgid "browse.datasets.description" msgstr "Esplora i set di dati forniti dal LINDAS Linked Data Service filtrando per categorie o organizzazioni oppure cercando direttamente per parole chiave specifiche. Clicca su un set di dati per vedere informazioni più dettagliate e iniziare a creare le tue visualizzazioni." #: app/configurator/components/stepper.tsx:65 -msgid "button.back" -msgstr "Torna indietro" +#~ msgid "button.back" +#~ msgstr "Torna indietro" -#: app/pages/v/[chartId].tsx:167 +#: app/pages/v/[chartId].tsx:166 msgid "button.copy.visualization" msgstr "Copia e modifica questa visualizzazione" @@ -103,15 +103,15 @@ msgstr "Clicca per copiare" msgid "button.hint.copied" msgstr "Copiato!" -#: app/pages/v/[chartId].tsx:152 +#: app/pages/v/[chartId].tsx:151 msgid "button.new.visualization" msgstr "Crea una nuova visualizzazione" #: app/configurator/components/stepper.tsx:70 -msgid "button.next" -msgstr "Successivo" +#~ msgid "button.next" +#~ msgstr "Successivo" -#: app/configurator/components/stepper.tsx:68 +#: app/components/chart-selection-tabs.tsx:182 msgid "button.publish" msgstr "Pubblica questa visualizzazione" @@ -143,17 +143,17 @@ msgstr "Aree" #~ msgid "chart.map.layers.area.discretization.quantize" #~ msgstr "Intervalli uguali" -#: app/configurator/components/chart-configurator.tsx:696 -#: app/configurator/components/chart-options-selector.tsx:989 +#: app/configurator/components/chart-configurator.tsx:697 +#: app/configurator/components/chart-options-selector.tsx:986 #: app/configurator/components/field-i18n.ts:31 msgid "chart.map.layers.base" msgstr "Visualizzazione della mappa" -#: app/configurator/components/chart-options-selector.tsx:993 +#: app/configurator/components/chart-options-selector.tsx:990 msgid "chart.map.layers.base.show" msgstr "Mostra mappa del mondo" -#: app/configurator/components/chart-options-selector.tsx:1001 +#: app/configurator/components/chart-options-selector.tsx:998 msgid "chart.map.layers.base.view.locked" msgstr "Vista bloccata" @@ -203,10 +203,18 @@ msgstr "Grassetto" msgid "columnStyle.textStyle.regular" msgstr "Regular" -#: app/configurator/interactive-filters/editor-time-brush.tsx:168 +#: app/configurator/interactive-filters/editor-time-brush.tsx:170 msgid "controls..interactiveFilters.time.defaultSettings" msgstr "Impostazioni predefinite" +#: app/configurator/components/chart-annotator.tsx:67 +msgid "controls.annotator.add-description-warning" +msgstr "Aggiungi una descrizione" + +#: app/configurator/components/chart-annotator.tsx:57 +msgid "controls.annotator.add-title-warning" +msgstr "Aggiungi un titolo" + #: app/configurator/components/field-i18n.ts:5 msgid "controls.axis.horizontal" msgstr "Asse orizzontale" @@ -247,16 +255,16 @@ msgstr "Scatterplot" msgid "controls.chart.type.table" msgstr "Tabella" -#: app/configurator/components/chart-options-selector.tsx:720 +#: app/configurator/components/chart-options-selector.tsx:717 #: app/configurator/components/field-i18n.ts:17 msgid "controls.color" msgstr "Colore" -#: app/configurator/components/chart-controls/control-tab.tsx:45 +#: app/configurator/components/chart-controls/control-tab.tsx:47 msgid "controls.color.add" msgstr "Aggiungi ..." -#: app/configurator/components/chart-options-selector.tsx:749 +#: app/configurator/components/chart-options-selector.tsx:746 msgid "controls.color.opacity" msgstr "Trasparenza" @@ -267,7 +275,7 @@ msgstr "Palette di colori" #: app/configurator/components/chart-controls/color-ramp.tsx:155 msgid "controls.color.palette.diverging" -msgstr "" +msgstr "Divergente" #: app/configurator/components/chart-controls/color-palette.tsx:261 msgid "controls.color.palette.reset" @@ -277,35 +285,35 @@ msgstr "Ripristina la tavolozza dei colori" msgid "controls.color.palette.sequential" msgstr "Sequenziale" -#: app/configurator/components/chart-options-selector.tsx:836 +#: app/configurator/components/chart-options-selector.tsx:833 msgid "controls.color.scale.discretization.jenks" msgstr "Jenks (interruzioni naturali)" -#: app/configurator/components/chart-options-selector.tsx:829 +#: app/configurator/components/chart-options-selector.tsx:826 msgid "controls.color.scale.discretization.quantiles" msgstr "Quantili (distribuzione omogenea dei valori)" -#: app/configurator/components/chart-options-selector.tsx:822 +#: app/configurator/components/chart-options-selector.tsx:819 msgid "controls.color.scale.discretization.quantize" msgstr "Intervalli uguali" -#: app/configurator/components/chart-options-selector.tsx:814 +#: app/configurator/components/chart-options-selector.tsx:811 msgid "controls.color.scale.interpolation" msgstr "Interpolazione" -#: app/configurator/components/chart-options-selector.tsx:846 +#: app/configurator/components/chart-options-selector.tsx:843 msgid "controls.color.scale.number.of.classes" msgstr "Numero di classi" -#: app/configurator/components/chart-options-selector.tsx:786 +#: app/configurator/components/chart-options-selector.tsx:783 msgid "controls.color.scale.type.continuous" msgstr "Continuo" -#: app/configurator/components/chart-options-selector.tsx:797 +#: app/configurator/components/chart-options-selector.tsx:794 msgid "controls.color.scale.type.discrete" msgstr "Discreto" -#: app/configurator/components/chart-options-selector.tsx:739 +#: app/configurator/components/chart-options-selector.tsx:736 msgid "controls.color.select" msgstr "Seleziona un colore" @@ -339,33 +347,33 @@ msgstr "Descrizione" msgid "controls.dimensionvalue.none" msgstr "Nessun filtro" -#: app/configurator/components/filters.tsx:480 +#: app/configurator/components/filters.tsx:469 msgid "controls.filter.nb-elements" msgstr "{0} di {1}" -#: app/configurator/components/filters.tsx:414 -#: app/configurator/components/filters.tsx:658 +#: app/configurator/components/filters.tsx:403 +#: app/configurator/components/filters.tsx:647 msgid "controls.filter.select.all" msgstr "Seleziona tutti" -#: app/configurator/components/filters.tsx:421 -#: app/configurator/components/filters.tsx:656 +#: app/configurator/components/filters.tsx:410 +#: app/configurator/components/filters.tsx:645 msgid "controls.filter.select.none" msgstr "Deseleziona tutto" -#: app/configurator/components/filters.tsx:431 +#: app/configurator/components/filters.tsx:420 msgid "controls.filters.select.filters" msgstr "Filtri" -#: app/configurator/components/filters.tsx:461 +#: app/configurator/components/filters.tsx:450 msgid "controls.filters.select.refresh-colors" msgstr "Aggiorna i colori" -#: app/configurator/components/filters.tsx:445 +#: app/configurator/components/filters.tsx:434 msgid "controls.filters.select.reset-colors" msgstr "Reimpostare i colori" -#: app/configurator/components/filters.tsx:438 +#: app/configurator/components/filters.tsx:427 msgid "controls.filters.select.selected-filters" msgstr "Filtri selezionati" @@ -377,70 +385,54 @@ msgstr "intervallo di tempo" msgid "controls.groups.empty-help" msgstr "Trascina qui le colonne per creare gruppi." -#: app/configurator/map/map-chart-options.tsx:204 -#~ msgid "controls.hierarchy" -#~ msgstr "Livello gerarchico" - -#: app/configurator/map/map-chart-options.tsx:209 -#~ msgid "controls.hierarchy.select" -#~ msgstr "Selezionare un livello gerarchico" - -#: app/configurator/components/empty-right-panel.tsx:24 -msgid "controls.hint.configuring.chart" -msgstr "Seleziona un elemento di design o una dimensione dei dati per modificarne le opzioni." - -#: app/configurator/components/empty-right-panel.tsx:31 -msgid "controls.hint.describing.chart" -msgstr "Seleziona una delle annotazioni proposte per modificarla." - #: app/configurator/components/field-i18n.ts:87 msgid "controls.imputation" msgstr "Tipo di imputazione" -#: app/configurator/components/chart-options-selector.tsx:881 +#: app/configurator/components/chart-options-selector.tsx:878 #: app/configurator/components/field-i18n.ts:99 msgid "controls.imputation.type.linear" msgstr "Interpolazione lineare" -#: app/configurator/components/chart-options-selector.tsx:874 -#: app/configurator/components/chart-options-selector.tsx:886 +#: app/configurator/components/chart-options-selector.tsx:871 +#: app/configurator/components/chart-options-selector.tsx:883 #: app/configurator/components/field-i18n.ts:91 msgid "controls.imputation.type.none" msgstr "-" -#: app/configurator/components/chart-options-selector.tsx:876 +#: app/configurator/components/chart-options-selector.tsx:873 #: app/configurator/components/field-i18n.ts:95 msgid "controls.imputation.type.zeros" msgstr "Zeri" -#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:117 +#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:137 msgid "controls.interactive.filters.dataFilter" msgstr "Filtri di dati" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:104 -#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:97 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:115 +#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:117 msgid "controls.interactive.filters.timeSlider" msgstr "Cursore del tempo" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:327 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:375 msgid "controls.interactiveFilters.dataFilters.toggledataFilters" msgstr "Mostra i filtri di dati" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:77 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:89 msgid "controls.interactiveFilters.legend.toggleInteractiveLegend" msgstr "Mostra la legenda filtrante" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:222 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:233 msgid "controls.interactiveFilters.time.noTimeDimension" msgstr "Nessuna dimensione temporale disponibile!" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:197 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:208 msgid "controls.interactiveFilters.time.toggleTimeFilter" msgstr "Mostra i filtri temporali" #: app/configurator/interactive-filters/interactive-filters-config-options.tsx:263 -msgid "controls.interactiveFilters.time.toggleTimeSliderFilter" -msgstr "Mostra il cursore del tempo" +#~ msgid "controls.interactiveFilters.time.toggleTimeSliderFilter" +#~ msgstr "Mostra il cursore del tempo" #: app/configurator/components/field-i18n.ts:135 msgid "controls.language.english" @@ -467,19 +459,23 @@ msgstr "Italiano" msgid "controls.measure" msgstr "Misura" -#: app/configurator/components/field.tsx:817 -#~ msgid "controls.none" -#~ msgstr "Nessuno" +#: app/configurator/components/configurator.tsx:107 +msgid "controls.nav.back-to-preview" +msgstr "Torna all'anteprima" -#: app/configurator/components/chart-controls/control-tab.tsx:312 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:292 +msgid "controls.none" +msgstr "Nessuno" + +#: app/configurator/components/chart-controls/control-tab.tsx:338 msgid "controls.option.isActive" msgstr "Attivo" -#: app/configurator/components/chart-controls/control-tab.tsx:308 +#: app/configurator/components/chart-controls/control-tab.tsx:334 msgid "controls.option.isNotActive" msgstr "Inattivo" -#: app/configurator/components/chart-options-selector.tsx:779 +#: app/configurator/components/chart-options-selector.tsx:776 msgid "controls.scale.type" msgstr "Tipo di scala" @@ -487,15 +483,15 @@ msgstr "Tipo di scala" msgid "controls.search.clear" msgstr "Cancella la ricerca" -#: app/configurator/components/chart-options-selector.tsx:356 +#: app/configurator/components/chart-options-selector.tsx:353 msgid "controls.section.additional-information" msgstr "Informazioni aggiuntive" -#: app/configurator/components/chart-configurator.tsx:549 +#: app/configurator/components/chart-configurator.tsx:545 msgid "controls.section.chart.options" msgstr "Opzioni del grafico" -#: app/configurator/table/table-chart-configurator.tsx:164 +#: app/configurator/table/table-chart-configurator.tsx:165 msgid "controls.section.columns" msgstr "Colonne" @@ -503,16 +499,16 @@ msgstr "Colonne" msgid "controls.section.columnstyle" msgstr "Stile della colonna" -#: app/configurator/components/chart-configurator.tsx:567 +#: app/configurator/components/chart-configurator.tsx:563 msgid "controls.section.data.filters" msgstr "Filtri" -#: app/configurator/components/chart-annotator.tsx:24 +#: app/configurator/components/chart-annotator.tsx:50 msgid "controls.section.description" msgstr "Titolo e descrizione" -#: app/configurator/components/chart-options-selector.tsx:411 -#: app/configurator/components/chart-options-selector.tsx:415 +#: app/configurator/components/chart-options-selector.tsx:408 +#: app/configurator/components/chart-options-selector.tsx:412 #: app/configurator/table/table-chart-options.tsx:314 #: app/configurator/table/table-chart-options.tsx:318 #: app/configurator/table/table-chart-options.tsx:338 @@ -520,31 +516,32 @@ msgstr "Titolo e descrizione" msgid "controls.section.filter" msgstr "Filtro" -#: app/configurator/table/table-chart-configurator.tsx:155 +#: app/configurator/table/table-chart-configurator.tsx:156 msgid "controls.section.groups" msgstr "Gruppi" -#: app/configurator/components/chart-options-selector.tsx:915 +#: app/configurator/components/chart-options-selector.tsx:912 msgid "controls.section.imputation" msgstr "Valori mancanti" -#: app/configurator/components/chart-options-selector.tsx:920 +#: app/configurator/components/chart-options-selector.tsx:917 msgid "controls.section.imputation.explanation" msgstr "Per questo tipo di grafico, i valori di sostituzione devono essere assegnati ai valori mancanti. Decidi la logica di imputazione o passa a un altro tipo di grafico." -#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:78 +#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:98 +#: app/configurator/interactive-filters/interactive-filters-configurator.tsx:157 msgid "controls.section.interactive.filters" msgstr "Filtri interattivi" -#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:117 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:128 msgid "controls.section.interactiveFilters.dataFilters" msgstr "Filtri di dati" -#: app/configurator/components/chart-options-selector.tsx:365 +#: app/configurator/components/chart-options-selector.tsx:362 msgid "controls.section.show-standard-error" msgstr "Mostra l'errore standard" -#: app/configurator/components/chart-options-selector.tsx:557 +#: app/configurator/components/chart-options-selector.tsx:554 msgid "controls.section.sorting" msgstr "Ordina" @@ -552,21 +549,25 @@ msgstr "Ordina" msgid "controls.section.tableSettings" msgstr "Impostazioni della tabella" -#: app/configurator/table/table-chart-sorting-options.tsx:384 +#: app/configurator/table/table-chart-sorting-options.tsx:386 msgid "controls.section.tableSorting" msgstr "Ordinamento della tabella" -#: app/configurator/table/table-chart-configurator.tsx:130 +#: app/configurator/table/table-chart-configurator.tsx:131 msgid "controls.section.tableoptions" msgstr "Opzioni della tabella" -#: app/configurator/components/chart-configurator.tsx:541 -#: app/configurator/components/chart-type-selector.tsx:135 +#: app/configurator/components/chart-annotator.tsx:30 +msgid "controls.section.title.warning" +msgstr "Aggiungi un titolo o una descrizione" + +#: app/configurator/components/chart-configurator.tsx:537 +#: app/configurator/components/chart-type-selector.tsx:131 #: app/configurator/table/table-chart-configurator.tsx:123 msgid "controls.select.chart.type" msgstr "Tipo di grafico" -#: app/configurator/components/chart-options-selector.tsx:461 +#: app/configurator/components/chart-options-selector.tsx:458 msgid "controls.select.column.layout" msgstr "Layout a colonne" @@ -602,13 +603,14 @@ msgstr "Colore del testo" msgid "controls.select.columnStyle.textStyle" msgstr "Stile del testo" -#: app/configurator/components/chart-options-selector.tsx:220 +#: app/configurator/components/chart-options-selector.tsx:217 +#: app/configurator/interactive-filters/interactive-filters-config-options.tsx:310 msgid "controls.select.dimension" msgstr "Seleziona una dimensione" -#: app/configurator/components/chart-options-selector.tsx:221 -#: app/configurator/components/chart-options-selector.tsx:647 -#: app/configurator/components/chart-options-selector.tsx:725 +#: app/configurator/components/chart-options-selector.tsx:218 +#: app/configurator/components/chart-options-selector.tsx:644 +#: app/configurator/components/chart-options-selector.tsx:722 msgid "controls.select.measure" msgstr "Seleziona una misura" @@ -619,32 +621,32 @@ msgstr "Seleziona una misura" #~ msgid "controls.select.optional" #~ msgstr "facoltativo" -#: app/configurator/components/filters.tsx:712 +#: app/configurator/components/filters.tsx:701 msgid "controls.set-filters" msgstr "Filtrer" -#: app/configurator/components/filters.tsx:719 +#: app/configurator/components/filters.tsx:708 msgid "controls.set-filters-caption" msgstr "Pour de meilleurs résultats, ne sélectionnez pas plus de 7 valeurs dans la visualisation" -#: app/configurator/components/filters.tsx:751 +#: app/configurator/components/filters.tsx:740 msgid "controls.set-values-apply" msgstr "Appliquer les filtres" -#: app/configurator/components/chart-options-selector.tsx:639 +#: app/configurator/components/chart-options-selector.tsx:636 msgid "controls.size" msgstr "Grandezza" -#: app/configurator/table/table-chart-sorting-options.tsx:251 +#: app/configurator/table/table-chart-sorting-options.tsx:264 msgid "controls.sorting.addDimension" msgstr "Aggiungi una dimensione" -#: app/configurator/components/chart-options-selector.tsx:509 +#: app/configurator/components/chart-options-selector.tsx:506 msgid "controls.sorting.byAuto" msgstr "" -#: app/configurator/components/chart-options-selector.tsx:503 -#: app/configurator/components/chart-options-selector.tsx:513 +#: app/configurator/components/chart-options-selector.tsx:500 +#: app/configurator/components/chart-options-selector.tsx:510 msgid "controls.sorting.byDimensionLabel" msgstr "Nome" @@ -658,7 +660,7 @@ msgstr "A → Z" msgid "controls.sorting.byDimensionLabel.descending" msgstr "Z → A" -#: app/configurator/components/chart-options-selector.tsx:505 +#: app/configurator/components/chart-options-selector.tsx:502 msgid "controls.sorting.byMeasure" msgstr "Misura" @@ -670,7 +672,7 @@ msgstr "1 → 9" msgid "controls.sorting.byMeasure.descending" msgstr "9 → 1" -#: app/configurator/components/chart-options-selector.tsx:507 +#: app/configurator/components/chart-options-selector.tsx:504 msgid "controls.sorting.byTotalSize" msgstr "Grandezza totale" @@ -690,20 +692,20 @@ msgstr "Il più grande per primo" msgid "controls.sorting.byTotalSize.largestTop" msgstr "Il più grande sopra" -#: app/configurator/table/table-chart-sorting-options.tsx:161 +#: app/configurator/table/table-chart-sorting-options.tsx:174 msgid "controls.sorting.removeOption" msgstr "Rimuovi l'ordinamento" -#: app/configurator/table/table-chart-sorting-options.tsx:213 +#: app/configurator/table/table-chart-sorting-options.tsx:226 msgid "controls.sorting.selectDimension" msgstr "Seleziona una dimensione ..." #: app/configurator/components/field-i18n.ts:43 -#: app/configurator/table/table-chart-sorting-options.tsx:322 +#: app/configurator/table/table-chart-sorting-options.tsx:335 msgid "controls.sorting.sortBy" msgstr "Ordina per" -#: app/configurator/components/chart-type-selector.tsx:140 +#: app/configurator/components/chart-type-selector.tsx:136 msgid "controls.switch.chart.type" msgstr "Passa a un altro tipo di grafico mantenendo la maggior parte delle impostazioni dei filtri" @@ -715,11 +717,11 @@ msgstr "Raggruppa secondo questa colonna" msgid "controls.table.column.hide" msgstr "Nascondi la colonna" -#: app/configurator/table/table-chart-configurator.tsx:142 +#: app/configurator/table/table-chart-configurator.tsx:143 msgid "controls.table.settings" msgstr "Opzioni" -#: app/configurator/table/table-chart-configurator.tsx:148 +#: app/configurator/table/table-chart-configurator.tsx:149 msgid "controls.table.sorting" msgstr "Ordinamento" @@ -751,7 +753,7 @@ msgstr "Fonte di dati" msgid "data.source.notTrusted" msgstr "Questo grafico non utilizza una fonte di dati affidabile." -#: app/configurator/components/select-dataset-step.tsx:179 +#: app/configurator/components/select-dataset-step.tsx:221 msgid "dataset-preview.back-to-results" msgstr "Torna ai set di dati" @@ -771,7 +773,7 @@ msgstr "Ultimo aggiornamento" msgid "dataset.hasImputedValues" msgstr "In questo set di dati mancano alcuni dati. Questi sono stati interpolati per colmare le lacune.." -#: app/configurator/components/dataset-browse.tsx:427 +#: app/configurator/components/dataset-browse.tsx:447 msgid "dataset.includeDrafts" msgstr "Includere le bozze" @@ -788,7 +790,7 @@ msgid "dataset.metadata.furtherinformation" msgstr "Addizionali informazioni" #: app/components/chart-footnotes.tsx:200 -#: app/configurator/components/dataset-metadata.tsx:118 +#: app/configurator/components/dataset-metadata.tsx:114 msgid "dataset.metadata.learnmore" msgstr "Ulteriori informazioni sul set di dati" @@ -800,21 +802,21 @@ msgstr "Fonte" msgid "dataset.metadata.version" msgstr "versione" -#: app/configurator/components/dataset-browse.tsx:351 +#: app/configurator/components/dataset-browse.tsx:404 msgid "dataset.order.newest" msgstr "Più recente" -#: app/configurator/components/dataset-browse.tsx:343 +#: app/configurator/components/dataset-browse.tsx:396 msgid "dataset.order.relevance" msgstr "Rilevanza" -#: app/configurator/components/dataset-browse.tsx:347 +#: app/configurator/components/dataset-browse.tsx:400 msgid "dataset.order.title" msgstr "Titolo" -#: app/components/chart-preview.tsx:85 +#: app/components/chart-preview.tsx:103 #: app/components/chart-published.tsx:126 -#: app/configurator/components/dataset-preview.tsx:109 +#: app/configurator/components/dataset-preview.tsx:120 msgid "dataset.publicationStatus.draft.warning" msgstr "Attenzione, questo set di dati è una bozza.<0/><1>Non utilizzare questo grafico per un rapporto!" @@ -822,27 +824,27 @@ msgstr "Attenzione, questo set di dati è una bozza.<0/><1>Non utilizzare questo msgid "dataset.publicationStatus.expires.warning" msgstr "Attenzione, questo set di dati è scaduto.<0/><1>Non utilizzare questo grafico per un rapporto!" -#: app/configurator/components/dataset-browse.tsx:415 +#: app/configurator/components/dataset-browse.tsx:435 msgid "dataset.results" msgstr "{0, plural, zero {Nessun set di dati} one {# set di dati} other {# set di dati}}" -#: app/configurator/components/dataset-browse.tsx:355 +#: app/configurator/components/dataset-browse.tsx:328 msgid "dataset.search.label" msgstr "Cerca" #: app/configurator/components/dataset-browse.tsx:360 -msgid "dataset.search.placeholder" -msgstr "" +#~ msgid "dataset.search.placeholder" +#~ msgstr "" -#: app/configurator/components/dataset-browse.tsx:446 +#: app/configurator/components/dataset-browse.tsx:459 msgid "dataset.sortby" msgstr "Ordina per" -#: app/configurator/components/dataset-browse.tsx:1152 +#: app/configurator/components/dataset-browse.tsx:1157 msgid "dataset.tag.draft" msgstr "Bozza" -#: app/configurator/components/dataset-preview.tsx:171 +#: app/configurator/components/dataset-preview.tsx:182 msgid "datatable.showing.first.rows" msgstr "Sono mostrate soltanto le prime 10 righe" @@ -882,7 +884,7 @@ msgstr "C'è stato un problema con il caricamento delle coordinate dalle dimensi msgid "hint.coordinatesloadingerror.title" msgstr "Errore di caricamento delle coordinate" -#: app/pages/v/[chartId].tsx:129 +#: app/pages/v/[chartId].tsx:128 msgid "hint.create.your.own.chart" msgstr "Copia questa visualizzazione o crea una nuova visualizzazione usando «dati aperti» dell’amministrazione pubblica svizzera" @@ -898,7 +900,7 @@ msgstr "Controlla la pagina di stato per ulteriori informazioni”" msgid "hint.dataloadingerror.title" msgstr "Problema di caricamento dei dati" -#: app/pages/v/[chartId].tsx:123 +#: app/pages/v/[chartId].tsx:122 msgid "hint.how.to.share" msgstr "È possibile condividere questa visualizzazione copiando l'URL o incorporandola nel vostro sito Web. Puoi anche creare una nuova visualizzazione partendo da zero oppure copiando e modificando la visualizzazione sopra." @@ -906,7 +908,7 @@ msgstr "È possibile condividere questa visualizzazione copiando l'URL o incorpo msgid "hint.loading.data" msgstr "Caricamento dei dati..." -#: app/configurator/components/chart-type-selector.tsx:153 +#: app/configurator/components/chart-type-selector.tsx:149 msgid "hint.no.visualization.with.dataset" msgstr "Nessuna visualizzazione può essere creata con il dataset selezionato." @@ -938,8 +940,8 @@ msgstr "Nascondi i filtri" msgid "interactive.data.filters.show" msgstr "Mostra i filtri" -#: app/components/header.tsx:188 -#: app/components/header.tsx:207 +#: app/components/header.tsx:201 +#: app/components/header.tsx:220 msgid "logo.swiss.confederation" msgstr "Logo della Confederazione svizzera" @@ -999,18 +1001,12 @@ msgstr "Ecco una visualizzazione che ho creato usando visualize.admin.ch" msgid "publication.share.mail.subject" msgstr "visualize.admin.ch" -#: app/configurator/components/filters.tsx:632 +#: app/configurator/components/dataset-browse.tsx:333 +#: app/configurator/components/dataset-browse.tsx:369 +#: app/configurator/components/filters.tsx:621 msgid "select.controls.filters.search" msgstr "Cerca" -#: app/configurator/components/stepper.tsx:209 -msgid "step.annotate" -msgstr "Prima di pubblicare, aggiungere un titolo e una descrizione al tuo grafico e scegliere quali elementi possono essere interattivi." - -#: app/configurator/components/stepper.tsx:198 -msgid "step.visualize" -msgstr "Personalizza la tua visualizzazione utilizzando le opzioni di segmentazione del filtro e del colore, nelle barre laterali." - #: app/configurator/components/chart-controls/drag-and-drop-tab.tsx:101 msgid "table.column.no" msgstr "Colonna {0}" diff --git a/app/pages/docs/index.tsx b/app/pages/docs/index.tsx index 9ecc7c363..5f4096d6f 100644 --- a/app/pages/docs/index.tsx +++ b/app/pages/docs/index.tsx @@ -181,12 +181,6 @@ const pages: ConfigPageOrGroup[] = [ title: "Publish actions", content: require("@/docs/publish-actions.docs"), }, - - { - path: "/components/steps", - title: "Stepper", - content: require("@/docs/steps.docs"), - }, { path: "/components/table", title: "Preview Table", diff --git a/app/themes/federal.tsx b/app/themes/federal.tsx index 70cb81150..da5396ef9 100644 --- a/app/themes/federal.tsx +++ b/app/themes/federal.tsx @@ -734,6 +734,9 @@ theme.components = { display: "none", }, }, + flexContainer: { + height: 60, + }, }, }, MuiTab: { @@ -741,19 +744,17 @@ theme.components = { root: { justifyContent: "center", alignItems: "center", - height: 49, + height: "100%", paddingTop: 0, paddingRight: 24, paddingBottom: 0, paddingLeft: 24, - backgroundColor: theme.palette.grey[100], color: theme.palette.grey[900], - borderTopLeftRadius: 12, - borderTopRightRadius: 12, - boxShadow: shadows[6], + border: "1px solid", + borderBottomWidth: 0, + borderColor: theme.palette.divider, "&.Mui-selected": { - height: 50, color: theme.palette.primary.main, }, }, diff --git a/e2e/actions.ts b/e2e/actions.ts index 866bfd137..dca398770 100644 --- a/e2e/actions.ts +++ b/e2e/actions.ts @@ -11,7 +11,7 @@ const selectActiveEditorField = ).findByText(field); await fieldLocator.click(); await selectors.panels - .right() + .drawer() .within() .findByText(field, undefined, { timeout: 3000 }); }; diff --git a/e2e/filter-position.spec.ts b/e2e/filter-position.spec.ts index a2d367ae6..ab6691688 100644 --- a/e2e/filter-position.spec.ts +++ b/e2e/filter-position.spec.ts @@ -15,14 +15,14 @@ test("Filters should be sorted by position", async ({ await actions.editor.selectActiveField("Color"); const selectorLocator = await selectors.panels - .right() + .drawer() .within() .findByText("None"); await selectorLocator.click(); await actions.mui.selectOption("Status"); - const panelRight = await selectors.panels.right().within(); + const panelRight = await selectors.panels.drawer().within(); await panelRight.findByText("Selected filters", undefined, { timeout: 10_000, }); diff --git a/e2e/ordinal-measures.spec.ts b/e2e/ordinal-measures.spec.ts index ce82f1471..1e5180975 100644 --- a/e2e/ordinal-measures.spec.ts +++ b/e2e/ordinal-measures.spec.ts @@ -39,7 +39,6 @@ describe("viewing a dataset with only ordinal measures", () => { actions, within, }) => { - const ctx = { page, screen }; await loadChartInLocalStorage(page, key, config); page.goto(`/en/create/${key}`); diff --git a/e2e/selectors.ts b/e2e/selectors.ts index 24254417b..5c092efca 100644 --- a/e2e/selectors.ts +++ b/e2e/selectors.ts @@ -32,7 +32,7 @@ export const createSelectors = ({ screen, page, within }: Ctx) => { }, panels: { left: () => screen.getByTestId("panel-left"), - right: () => screen.getByTestId("panel-right"), + drawer: () => screen.getByTestId("panel-drawer"), middle: () => screen.getByTestId("panel-middle"), }, edition: { diff --git a/e2e/sorting.spec.ts b/e2e/sorting.spec.ts index bdf2ec01b..a19c71989 100644 --- a/e2e/sorting.spec.ts +++ b/e2e/sorting.spec.ts @@ -75,6 +75,8 @@ test("Segment sorting", async ({ .click(); await actions.mui.selectOption("Automatic"); + + await page.locator('text="Back to main"').click(); } });