diff --git a/src/features/parameters/common/constants.ts b/src/features/parameters/common/constants.ts index 389b222c1..e6a976655 100644 --- a/src/features/parameters/common/constants.ts +++ b/src/features/parameters/common/constants.ts @@ -17,6 +17,7 @@ export const PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD = 'highVoltageAbsoluteThre export const VERSION_PARAMETER = 'version'; export const COMMON_PARAMETERS = 'commonParameters'; +export const ADVANCED_PARAMETERS = 'advancedParameters'; export const SPECIFIC_PARAMETERS = 'specificParametersPerProvider'; export const CONTINGENCY_LISTS_INFOS = 'contingencyListsInfos'; diff --git a/src/features/parameters/common/parameter-field.tsx b/src/features/parameters/common/parameter-field.tsx index dbe03bd00..0b9f267bc 100644 --- a/src/features/parameters/common/parameter-field.tsx +++ b/src/features/parameters/common/parameter-field.tsx @@ -21,18 +21,29 @@ import { TextInput, } from '../../../components/ui'; import { LineSeparator } from './index'; +import { mergeSx } from '../../../utils'; interface ParameterFieldProps { id: string; name: string; type: string; label?: string; + inputLabel?: string; description?: string; possibleValues?: { id: string; label: string }[] | string[]; sx?: SxProps; } -function ParameterField({ id, name, type, label, description, possibleValues, sx }: Readonly) { +function ParameterField({ + id, + name, + type, + label, + inputLabel, + description, + possibleValues, + sx, +}: Readonly) { const renderField = () => { switch (type) { case ParameterType.STRING: @@ -42,7 +53,7 @@ function ParameterField({ id, name, type, label, description, possibleValues, sx options={possibleValues} size="small" data-testid={`${id}.${name}`} - sx={sx} + sx={mergeSx(sx, { overflow: 'hidden' })} /> ) : ( @@ -50,7 +61,13 @@ function ParameterField({ id, name, type, label, description, possibleValues, sx case ParameterType.BOOLEAN: return ; case ParameterType.COUNTRIES: - return ; + return ( + + ); case ParameterType.DOUBLE: return ; case ParameterType.STRING_LIST: @@ -58,7 +75,7 @@ function ParameterField({ id, name, type, label, description, possibleValues, sx - + {label ? : name} - + {renderField()} diff --git a/src/features/parameters/loadflow/load-flow-advanced-parameters.tsx b/src/features/parameters/loadflow/load-flow-advanced-parameters.tsx new file mode 100644 index 000000000..ec4390361 --- /dev/null +++ b/src/features/parameters/loadflow/load-flow-advanced-parameters.tsx @@ -0,0 +1,96 @@ +/** + * Copyright (c) 2026, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +import { memo } from 'react'; +import ParameterField from '../common/parameter-field'; +import { + DC_POWER_FACTOR, + DC_USE_TRANSFORMER_RATIO, + DISTRIBUTED_SLACK, + READ_SLACK_BUS, + SHUNT_COMPENSATOR_VOLTAGE_CONTROL_ON, + TWT_SPLIT_SHUNT_ADMITTANCE, + USE_REACTIVE_LIMITS, + VOLTAGE_INIT_MODE, + WRITE_SLACK_BUS, +} from './constants'; +import { ParameterType, SpecificParameterInfos } from '../../../utils/types/parameters.type'; +import { ADVANCED_PARAMETERS } from '../common'; + +export const advancedParams: SpecificParameterInfos[] = [ + { + name: VOLTAGE_INIT_MODE, + type: ParameterType.STRING, + label: 'descLfVoltageInitMode', + possibleValues: [ + { + id: 'UNIFORM_VALUES', + label: 'descLfUniformValues', + }, + { + id: 'PREVIOUS_VALUES', + label: 'descLfPreviousValues', + }, + { + id: 'DC_VALUES', + label: 'descLfDcValues', + }, + ], + }, + { + name: USE_REACTIVE_LIMITS, + type: ParameterType.BOOLEAN, + label: 'descLfUseReactiveLimits', + }, + { + name: TWT_SPLIT_SHUNT_ADMITTANCE, + type: ParameterType.BOOLEAN, + label: 'descLfTwtSplitShuntAdmittance', + }, + { + name: READ_SLACK_BUS, + type: ParameterType.BOOLEAN, + label: 'descLfReadSlackBus', + }, + { + name: WRITE_SLACK_BUS, + type: ParameterType.BOOLEAN, + label: 'descLfWriteSlackBus', + }, + { + name: DISTRIBUTED_SLACK, + type: ParameterType.BOOLEAN, + label: 'descLfDistributedSlack', + }, + { + name: SHUNT_COMPENSATOR_VOLTAGE_CONTROL_ON, + type: ParameterType.BOOLEAN, + label: 'descLfShuntCompensatorVoltageControlOn', + }, + { + name: DC_USE_TRANSFORMER_RATIO, + type: ParameterType.BOOLEAN, + label: 'descLfDcUseTransformerRatio', + }, + { + name: DC_POWER_FACTOR, + type: ParameterType.DOUBLE, + label: 'descLfDcPowerFactor', + }, +]; + +function LoadFlowAdvancedParameters() { + return ( + <> + {advancedParams.map((item) => ( + + ))} + + ); +} + +export default memo(LoadFlowAdvancedParameters); diff --git a/src/features/parameters/loadflow/load-flow-general-parameters.tsx b/src/features/parameters/loadflow/load-flow-general-parameters.tsx index dbe5534e7..396c5ceed 100644 --- a/src/features/parameters/loadflow/load-flow-general-parameters.tsx +++ b/src/features/parameters/loadflow/load-flow-general-parameters.tsx @@ -12,22 +12,11 @@ import { CONNECTED_MODE, COUNTRIES_TO_BALANCE, DC, - DC_POWER_FACTOR, - DC_USE_TRANSFORMER_RATIO, - DISTRIBUTED_SLACK, HVDC_AC_EMULATION, PHASE_SHIFTER_REGULATION_ON, - READ_SLACK_BUS, - SHUNT_COMPENSATOR_VOLTAGE_CONTROL_ON, - TWT_SPLIT_SHUNT_ADMITTANCE, - USE_REACTIVE_LIMITS, - VOLTAGE_INIT_MODE, - WRITE_SLACK_BUS, } from './constants'; -import { useLoadFlowContext } from './use-load-flow-context'; import { ParameterType, SpecificParameterInfos } from '../../../utils/types/parameters.type'; -import { ParameterGroup } from '../common/widget'; -import { COMMON_PARAMETERS, SPECIFIC_PARAMETERS } from '../common'; +import { COMMON_PARAMETERS } from '../common'; const basicParams: SpecificParameterInfos[] = [ { @@ -54,6 +43,7 @@ const basicParams: SpecificParameterInfos[] = [ { name: COUNTRIES_TO_BALANCE, type: ParameterType.COUNTRIES, + inputLabel: 'inputLabelLfCountriesToBalance', label: 'descLfCountriesToBalance', }, { @@ -82,101 +72,12 @@ const basicParams: SpecificParameterInfos[] = [ }, ]; -const advancedParams: SpecificParameterInfos[] = [ - { - name: VOLTAGE_INIT_MODE, - type: ParameterType.STRING, - label: 'descLfVoltageInitMode', - possibleValues: [ - { - id: 'UNIFORM_VALUES', - label: 'descLfUniformValues', - }, - { - id: 'PREVIOUS_VALUES', - label: 'descLfPreviousValues', - }, - { - id: 'DC_VALUES', - label: 'descLfDcValues', - }, - ], - }, - { - name: USE_REACTIVE_LIMITS, - type: ParameterType.BOOLEAN, - label: 'descLfUseReactiveLimits', - }, - { - name: TWT_SPLIT_SHUNT_ADMITTANCE, - type: ParameterType.BOOLEAN, - label: 'descLfTwtSplitShuntAdmittance', - }, - { - name: READ_SLACK_BUS, - type: ParameterType.BOOLEAN, - label: 'descLfReadSlackBus', - }, - { - name: WRITE_SLACK_BUS, - type: ParameterType.BOOLEAN, - label: 'descLfWriteSlackBus', - }, - { - name: DISTRIBUTED_SLACK, - type: ParameterType.BOOLEAN, - label: 'descLfDistributedSlack', - }, - { - name: SHUNT_COMPENSATOR_VOLTAGE_CONTROL_ON, - type: ParameterType.BOOLEAN, - label: 'descLfShuntCompensatorVoltageControlOn', - }, - { - name: DC_USE_TRANSFORMER_RATIO, - type: ParameterType.BOOLEAN, - label: 'descLfDcUseTransformerRatio', - }, - { - name: DC_POWER_FACTOR, - type: ParameterType.DOUBLE, - label: 'descLfDcPowerFactor', - }, -]; - -interface LoadFlowGeneralParametersProps { - provider: string; - specificParams: SpecificParameterInfos[]; -} - -function LoadFlowGeneralParameters({ provider, specificParams }: Readonly) { - const { showAdvancedLfParams, setShowAdvancedLfParams, showSpecificLfParams, setShowSpecificLfParams } = - useLoadFlowContext(); +function LoadFlowGeneralParameters() { return ( <> {basicParams.map((item) => ( ))} - - {showAdvancedLfParams && - advancedParams.map((item) => )} - - - {showSpecificLfParams && - specificParams?.map((item) => ( - - ))} - ); } diff --git a/src/features/parameters/loadflow/load-flow-parameters-content.tsx b/src/features/parameters/loadflow/load-flow-parameters-content.tsx index 7457fd078..8405b9bf5 100644 --- a/src/features/parameters/loadflow/load-flow-parameters-content.tsx +++ b/src/features/parameters/loadflow/load-flow-parameters-content.tsx @@ -7,7 +7,9 @@ import { Box, Grid2 as Grid } from '@mui/material'; import { TabValues } from './load-flow-parameters-utils'; +import LoadFlowAdvancedParameters from './load-flow-advanced-parameters'; import LoadFlowGeneralParameters from './load-flow-general-parameters'; +import LoadFlowProviderSpecificParameters from './load-flow-provider-specific-parameters'; import { LimitReductionsTableForm } from '../common'; import { alertThresholdMarks, @@ -27,7 +29,7 @@ import type { MuiStyles } from '../../../utils/styles'; type LoadFlowParametersContentProps = { selectedTab: TabValues; currentProvider: string; - specificParameters: SpecificParameterInfos[]; + specificParameters?: SpecificParameterInfos[]; params: LoadFlowParametersInfos | null; defaultLimitReductions: ILimitReductionsByVoltageLevel[]; }; @@ -59,7 +61,7 @@ function LoadFlowParametersContent({ - + @@ -76,6 +78,12 @@ function LoadFlowParametersContent({ )} + + + + + + diff --git a/src/features/parameters/loadflow/load-flow-parameters-form.tsx b/src/features/parameters/loadflow/load-flow-parameters-form.tsx index 31c64d464..ae1d9c10c 100644 --- a/src/features/parameters/loadflow/load-flow-parameters-form.tsx +++ b/src/features/parameters/loadflow/load-flow-parameters-form.tsx @@ -35,6 +35,7 @@ export function LoadFlowParametersForm({ loadflowMethods }: Readonly diff --git a/src/features/parameters/loadflow/load-flow-parameters-header.tsx b/src/features/parameters/loadflow/load-flow-parameters-header.tsx index 0e0a45f03..222f95d2f 100644 --- a/src/features/parameters/loadflow/load-flow-parameters-header.tsx +++ b/src/features/parameters/loadflow/load-flow-parameters-header.tsx @@ -17,11 +17,13 @@ function LoadFlowParametersHeader({ handleTabChange, tabIndexesWithError, formattedProviders, + disableSpecificProviderParams, }: Readonly<{ selectedTab: string; handleTabChange: (event: React.SyntheticEvent, newValue: TabValues) => void; tabIndexesWithError: TabValues[]; formattedProviders: { id: string; label: string }[]; + disableSpecificProviderParams: boolean; }>) { return ( @@ -39,6 +41,19 @@ function LoadFlowParametersHeader({ sx={getTabStyle(tabIndexesWithError, TabValues.LIMIT_REDUCTIONS)} data-testid="LfLimitReductionsTab" /> + } + value={TabValues.ADVANCED} + sx={getTabStyle(tabIndexesWithError, TabValues.ADVANCED)} + data-testid="LfAdvancedTab" + /> + } + value={TabValues.PROVIDER_SPECIFIC} + sx={getTabStyle(tabIndexesWithError, TabValues.PROVIDER_SPECIFIC)} + data-testid="LfProviderSpecificTab" + disabled={disableSpecificProviderParams} + /> ); diff --git a/src/features/parameters/loadflow/load-flow-parameters-type.ts b/src/features/parameters/loadflow/load-flow-parameters-type.ts index d963bcccf..274e2dab1 100644 --- a/src/features/parameters/loadflow/load-flow-parameters-type.ts +++ b/src/features/parameters/loadflow/load-flow-parameters-type.ts @@ -9,11 +9,13 @@ import type { UUID } from 'node:crypto'; import { ILimitReductionsByVoltageLevel } from '../common'; import { SpecificParametersPerProvider } from '../../../utils'; +export type ParameterValue = boolean | string | string[] | number; + export interface LoadFlowParametersInfos { uuid?: UUID; provider: string; limitReduction: number; - commonParameters: Record; + commonParameters: Record; specificParametersPerProvider: SpecificParametersPerProvider; limitReductions: ILimitReductionsByVoltageLevel[]; } diff --git a/src/features/parameters/loadflow/load-flow-parameters-utils.ts b/src/features/parameters/loadflow/load-flow-parameters-utils.ts index 5a8c871a3..89086cbfe 100644 --- a/src/features/parameters/loadflow/load-flow-parameters-utils.ts +++ b/src/features/parameters/loadflow/load-flow-parameters-utils.ts @@ -8,6 +8,7 @@ import { UseFormReturn } from 'react-hook-form'; import * as yup from 'yup'; import { + ADVANCED_PARAMETERS, COMMON_PARAMETERS, ILimitReductionsByVoltageLevel, IST_FORM, @@ -35,9 +36,13 @@ import { VOLTAGE_INIT_MODE, WRITE_SLACK_BUS, } from './constants'; +import { ParameterValue } from './load-flow-parameters-type'; +import { advancedParams } from './load-flow-advanced-parameters'; export enum TabValues { GENERAL = 'General', + ADVANCED = 'Advanced', + PROVIDER_SPECIFIC = 'ProviderSpecific', LIMIT_REDUCTIONS = 'LimitReductions', } @@ -52,7 +57,7 @@ export const getBasicLoadFlowParametersFormSchema = () => { }); }; -export const getAdvancedLoadFlowParametersFormSchema = () => { +export const getAdvancedLoadFlowParametersFormSchemaFields = () => { return yup.object().shape({ [VOLTAGE_INIT_MODE]: yup.string().required(), [USE_REACTIVE_LIMITS]: yup.boolean().required(), @@ -74,7 +79,14 @@ export const getCommonLoadFlowParametersFormSchema = () => { return yup.object().shape({ [COMMON_PARAMETERS]: yup.object().shape({ ...getBasicLoadFlowParametersFormSchema().fields, - ...getAdvancedLoadFlowParametersFormSchema().fields, + }), + }); +}; + +export const getAdvancedLoadFlowParametersFormSchema = () => { + return yup.object().shape({ + [ADVANCED_PARAMETERS]: yup.object().shape({ + ...getAdvancedLoadFlowParametersFormSchemaFields().fields, }), }); }; @@ -114,3 +126,35 @@ export const mapLimitReductions = ( }); return vlLNewLimits; }; + +export function splitCommonParameters(commonParameters?: Record): { + advancedParameters: Record; + commonParameters: Record; +} { + if (!commonParameters) { + return { + advancedParameters: {}, + commonParameters: {}, + }; + } + const advancedParamNames = new Set(advancedParams.map((param) => param.name)); + + return Object.entries(commonParameters).reduce( + (acc, [key, value]) => { + if (advancedParamNames.has(key)) { + acc.advancedParameters[key] = value; + } else { + acc.commonParameters[key] = value; + } + + return acc; + }, + { + advancedParameters: {}, + commonParameters: {}, + } as { + advancedParameters: Record; + commonParameters: Record; + } + ); +} diff --git a/src/features/parameters/loadflow/load-flow-provider-specific-parameters.tsx b/src/features/parameters/loadflow/load-flow-provider-specific-parameters.tsx new file mode 100644 index 000000000..51f3157a6 --- /dev/null +++ b/src/features/parameters/loadflow/load-flow-provider-specific-parameters.tsx @@ -0,0 +1,27 @@ +/** + * Copyright (c) 2026, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +import { memo } from 'react'; +import ParameterField from '../common/parameter-field'; +import { SpecificParameterInfos } from '../../../utils'; +import { SPECIFIC_PARAMETERS } from '../common'; + +interface LoadFlowProviderSpecificParametersProps { + specificParameters?: SpecificParameterInfos[]; +} + +function LoadFlowProviderSpecificParameters({ specificParameters }: Readonly) { + return ( + <> + {specificParameters?.map((item) => ( + + ))} + + ); +} + +export default memo(LoadFlowProviderSpecificParameters); diff --git a/src/features/parameters/loadflow/use-load-flow-parameters-form.ts b/src/features/parameters/loadflow/use-load-flow-parameters-form.ts index 89486a96f..fe4cee9a2 100644 --- a/src/features/parameters/loadflow/use-load-flow-parameters-form.ts +++ b/src/features/parameters/loadflow/use-load-flow-parameters-form.ts @@ -11,13 +11,16 @@ import { SyntheticEvent, useCallback, useEffect, useEffectEvent, useMemo, useRef import type { UUID } from 'node:crypto'; import * as yup from 'yup'; import { + getAdvancedLoadFlowParametersFormSchema, getCommonLoadFlowParametersFormSchema, mapLimitReductions, setLimitReductions, + splitCommonParameters, TabValues, } from './load-flow-parameters-utils'; import { LoadFlowParametersInfos } from './load-flow-parameters-type'; import { + ADVANCED_PARAMETERS, COMMON_PARAMETERS, PROVIDER, SPECIFIC_PARAMETERS, @@ -37,9 +40,9 @@ import { getNameElementEditorEmptyFormData, getNameElementEditorSchema } from '. import { useSnackMessage } from '../../../hooks'; import { formatSpecificParameters, + getAllSpecificParametersValues, getDefaultSpecificParamsValues, getSpecificParametersFormSchema, - getAllSpecificParametersValues, setSpecificParameters, } from '../common/utils'; import { snackWithFallback } from '../../../utils/error'; @@ -72,7 +75,6 @@ export const useLoadFlowParametersForm = ( ): UseLoadFlowParametersFormReturn => { const { providers, params, updateParameters, specificParamsDescription, defaultLimitReductions } = parametersBackend; - const [selectedTab, setSelectedTab] = useState(TabValues.GENERAL); const [limitReductionNumber, setLimitReductionNumber] = useState(0); const [tabIndexesWithError, setTabIndexesWithError] = useState([]); @@ -82,6 +84,7 @@ export const useLoadFlowParametersForm = ( return params?.provider && specificParamsDescription ? specificParamsDescription[params.provider] : []; }); const { snackError } = useSnackMessage(); + const previousWatchProviderRef = useRef(undefined); const handleTabChange = useCallback((event: SyntheticEvent, newValue: TabValues) => { @@ -98,19 +101,28 @@ export const useLoadFlowParametersForm = ( [PROVIDER]: yup.string().required(), [PARAM_LIMIT_REDUCTION]: yup.number().nullable(), ...getCommonLoadFlowParametersFormSchema().fields, + ...getAdvancedLoadFlowParametersFormSchema().fields, ...getLimitReductionsFormSchema(limitReductionNumber).fields, ...getSpecificParametersFormSchema(specificParametersDescriptionForProvider).fields, }) .concat(getNameElementEditorSchema(name)); }, [name, limitReductionNumber, specificParametersDescriptionForProvider]); + const { advancedParameters, commonParameters } = useMemo( + () => splitCommonParameters(params?.commonParameters), + [params?.commonParameters] + ); + const formMethods = useForm({ defaultValues: { ...getNameElementEditorEmptyFormData(name, description), [PROVIDER]: params?.provider, [PARAM_LIMIT_REDUCTION]: null, [COMMON_PARAMETERS]: { - ...params?.commonParameters, + ...commonParameters, + }, + [ADVANCED_PARAMETERS]: { + ...advancedParameters, }, [SPECIFIC_PARAMETERS]: { ...specificParametersDefaultValues, @@ -119,8 +131,8 @@ export const useLoadFlowParametersForm = ( }, resolver: yupResolver(formSchema as unknown as yup.ObjectSchema), }); - const { watch, reset } = formMethods; + const watchProvider = watch(PROVIDER); useEffect(() => { @@ -160,6 +172,7 @@ export const useLoadFlowParametersForm = ( commonParameters: { [VERSION_PARAMETER]: formData[COMMON_PARAMETERS][VERSION_PARAMETER], // PowSyBl requires that "version" appears first ...formData[COMMON_PARAMETERS], + ...formData[ADVANCED_PARAMETERS], }, specificParametersPerProvider: specificParametersDefaultValues ? { @@ -180,12 +193,18 @@ export const useLoadFlowParametersForm = ( (_params: LoadFlowParametersInfos) => { const specificParamsListForCurrentProvider = _params.specificParametersPerProvider[_params.provider]; const specificParametersForLoadedProvider = specificParamsDescription?.[_params.provider] ?? []; + const { advancedParameters: advancedParams, commonParameters: commonParams } = splitCommonParameters( + _params.commonParameters + ); return { [PROVIDER]: _params.provider, [PARAM_LIMIT_REDUCTION]: _params.limitReduction, [COMMON_PARAMETERS]: { - ..._params.commonParameters, + ...commonParams, + }, + [ADVANCED_PARAMETERS]: { + ...advancedParams, }, [SPECIFIC_PARAMETERS]: { ...formatSpecificParameters( @@ -214,15 +233,19 @@ export const useLoadFlowParametersForm = ( const onValidationError = useCallback( (errors: FieldErrors) => { const tabsInError = []; + console.log('ERRORS', errors); if (errors?.[LIMIT_REDUCTIONS_FORM] && TabValues.LIMIT_REDUCTIONS !== selectedTab) { tabsInError.push(TabValues.LIMIT_REDUCTIONS); } - if ( - (errors?.[SPECIFIC_PARAMETERS] || errors?.[COMMON_PARAMETERS] || errors?.[PROVIDER]) && - TabValues.GENERAL !== selectedTab - ) { + if (errors?.[COMMON_PARAMETERS] && TabValues.GENERAL !== selectedTab) { tabsInError.push(TabValues.GENERAL); } + if (errors?.[SPECIFIC_PARAMETERS] && TabValues.PROVIDER_SPECIFIC !== selectedTab) { + tabsInError.push(TabValues.PROVIDER_SPECIFIC); + } + if (errors?.[ADVANCED_PARAMETERS] && TabValues.ADVANCED !== selectedTab) { + tabsInError.push(TabValues.ADVANCED); + } setTabIndexesWithError(tabsInError); }, [selectedTab] diff --git a/src/translations/en/parameters.ts b/src/translations/en/parameters.ts index f14871c3b..a30990ae6 100644 --- a/src/translations/en/parameters.ts +++ b/src/translations/en/parameters.ts @@ -16,8 +16,7 @@ export const parametersEn = { descLfDcValues: 'DC Values', resetToDefault: 'Reset All', resetParamsConfirmation: 'Do you really want to reset these parameters ?', - showAdvancedParameters: 'Advanced settings', - showSpecificParameters: 'Specific settings', + ProviderSpecific: 'Provider specific', save: 'Save', saveParameters: 'Save parameters', 'settings.button.chooseSettings': 'Choose parameters', @@ -50,7 +49,8 @@ export const parametersEn = { descLfBalanceTypeConformLoad: 'conform load', descLfCountries: 'Countries', descLfAllCountries: 'All countries', - descLfCountriesToBalance: 'Countries participating in balancing', + descLfCountriesToBalance: 'Balancing countries', + inputLabelLfCountriesToBalance: 'Countries participating in balancing', editParameters: 'Edit parameters', RealPercentage: 'This value must be between 0 and 1', @@ -67,6 +67,8 @@ export const parametersEn = { leftOpenBracket: '(', rightOpenBracket: ')', + Advanced: 'Advanced', + Provider: 'Provider', LimitReduction: 'Limit reduction', Default: 'Default', diff --git a/src/translations/fr/parameters.ts b/src/translations/fr/parameters.ts index 13ff18d2c..749f6ddab 100644 --- a/src/translations/fr/parameters.ts +++ b/src/translations/fr/parameters.ts @@ -17,8 +17,7 @@ export const parametersFr = { descLfDcValues: 'DC', resetToDefault: 'Tout réinitialiser ', resetParamsConfirmation: 'Souhaitez vous réellement réinitialiser ces paramètres ?', - showAdvancedParameters: 'Paramètres avancés', - showSpecificParameters: 'Paramètres spécifiques', + ProviderSpecific: 'Spécifique au simulateur', save: 'Enregistrer', saveParameters: 'Enregistrer des paramètres', 'settings.button.chooseSettings': 'Sélectionner', @@ -52,7 +51,8 @@ export const parametersFr = { descLfBalanceTypeConformLoad: 'part variable de la consommation', descLfCountries: 'Pays', descLfAllCountries: 'Tous les pays', - descLfCountriesToBalance: 'Pays participant à la compensation', + descLfCountriesToBalance: 'Pays réglant', + inputLabelLfCountriesToBalance: 'Pays participant à la compensation', editParameters: 'Éditer les paramètres', RealPercentage: 'Cette valeur doit être comprise entre 0 et 1', @@ -69,6 +69,8 @@ export const parametersFr = { leftOpenBracket: ']', rightOpenBracket: '[', + Advanced: 'Avancés', + Provider: 'Simulateur', LimitReduction: 'Abattement des seuils', Default: 'Défaut', diff --git a/src/utils/types/parameters.type.ts b/src/utils/types/parameters.type.ts index d3b38cb4d..57ca05a88 100644 --- a/src/utils/types/parameters.type.ts +++ b/src/utils/types/parameters.type.ts @@ -35,6 +35,7 @@ export type SpecificParameterInfos = { categoryKey?: string; description?: string; label?: string; + inputLabel?: string; }; export type SpecificParametersDescription = Record;