diff --git a/src/components/elementSearch/elementItem/EquipmentItem.tsx b/src/components/elementSearch/elementItem/EquipmentItem.tsx index 9eb8030e..1da29302 100644 --- a/src/components/elementSearch/elementItem/EquipmentItem.tsx +++ b/src/components/elementSearch/elementItem/EquipmentItem.tsx @@ -9,7 +9,7 @@ import parse from 'autosuggest-highlight/parse'; import clsx from 'clsx'; import { FormattedMessage } from 'react-intl'; import { Box, SxProps, Theme } from '@mui/material'; -import { EQUIPMENT_TYPE, EquipmentInfos } from '../../../utils/types/equipmentType'; +import { EquipmentInfos, SEARCH_TAG_EQUIPMENT_TYPES } from '../../../utils/types/equipmentType'; import { TagRenderer } from '../tagRenderer/TagRenderer'; import { OverflowableText } from '../../overflowableText'; import { mergeSx } from '../../../utils/styles'; @@ -57,7 +57,7 @@ export function EquipmentItem({ className={clsx(props.classes?.equipmentTag, props.classes?.equipmentTypeTag)} sx={mergeSx(props.styles?.equipmentTag, props.styles?.equipmentTypeTag)} > - + )} { - if (watchEquipmentType && !((watchEquipmentType as EquipmentType) in FILTER_EQUIPMENTS)) { + if (watchEquipmentType && !((watchEquipmentType as EquipmentType) in FILTER_EQUIPMENT_TYPES)) { snackError({ headerId: 'obsoleteFilter', }); @@ -216,7 +216,7 @@ export function ExplicitNamingFilterForm({ sourceFilterForExplicitNamingConversi ; props: { @@ -158,79 +142,43 @@ export const CONTINGENCY_LIST_EQUIPMENTS: Record< fields: [countries, nominalVoltage], }, }; -export const FILTER_EQUIPMENTS: Record< - | EquipmentType.SUBSTATION - | EquipmentType.VOLTAGE_LEVEL - | EquipmentType.LINE - | EquipmentType.TWO_WINDINGS_TRANSFORMER - | EquipmentType.THREE_WINDINGS_TRANSFORMER - | EquipmentType.GENERATOR - | EquipmentType.BATTERY - | EquipmentType.LOAD - | EquipmentType.SHUNT_COMPENSATOR - | EquipmentType.STATIC_VAR_COMPENSATOR - | EquipmentType.HVDC_LINE - | EquipmentType.DANGLING_LINE, - FormEquipment -> = { - SUBSTATION: { - id: 'SUBSTATION', - label: 'Substations', - fields: [countries], - }, - VOLTAGE_LEVEL: { - id: 'VOLTAGE_LEVEL', - label: 'VoltageLevels', - fields: [countries, nominalVoltage], + +// order is important +export const FILTER_EQUIPMENT_TYPES: Partial> = { + [EquipmentType.SUBSTATION]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.SUBSTATION], }, - LINE: { - id: 'LINE', - label: 'Lines', - fields: [countries1, countries2, nominalVoltage1, nominalVoltage2], + [EquipmentType.VOLTAGE_LEVEL]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.VOLTAGE_LEVEL], }, - TWO_WINDINGS_TRANSFORMER: { - id: 'TWO_WINDINGS_TRANSFORMER', - label: 'TwoWindingsTransformers', - fields: [countries, nominalVoltage1, nominalVoltage2], + [EquipmentType.LINE]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.LINE], }, - THREE_WINDINGS_TRANSFORMER: { - id: 'THREE_WINDINGS_TRANSFORMER', - label: 'ThreeWindingsTransformers', - fields: [countries, nominalVoltage1, nominalVoltage2, nominalVoltage3], + [EquipmentType.TWO_WINDINGS_TRANSFORMER]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.TWO_WINDINGS_TRANSFORMER], }, - GENERATOR: { - id: 'GENERATOR', - label: 'Generators', - fields: [countries, energySource, nominalVoltage], + [EquipmentType.THREE_WINDINGS_TRANSFORMER]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.THREE_WINDINGS_TRANSFORMER], }, - BATTERY: { - id: 'BATTERY', - label: 'Batteries', - fields: [countries, nominalVoltage], + [EquipmentType.GENERATOR]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.GENERATOR], }, - LOAD: { - id: 'LOAD', - label: 'Loads', - fields: [countries, nominalVoltage], + [EquipmentType.BATTERY]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.BATTERY], }, - SHUNT_COMPENSATOR: { - id: 'SHUNT_COMPENSATOR', - label: 'ShuntCompensators', - fields: [countries, nominalVoltage], + [EquipmentType.LOAD]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.LOAD], }, - STATIC_VAR_COMPENSATOR: { - id: 'STATIC_VAR_COMPENSATOR', - label: 'StaticVarCompensators', - fields: [countries, nominalVoltage], + [EquipmentType.SHUNT_COMPENSATOR]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.SHUNT_COMPENSATOR], }, - HVDC_LINE: { - id: 'HVDC_LINE', - label: 'Hvdc', - fields: [countries1, countries2, nominalVoltage], + [EquipmentType.STATIC_VAR_COMPENSATOR]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.STATIC_VAR_COMPENSATOR], }, - DANGLING_LINE: { - id: 'DANGLING_LINE', - label: 'DanglingLines', - fields: [countries, nominalVoltage], + [EquipmentType.DANGLING_LINE]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.DANGLING_LINE], + }, + [EquipmentType.HVDC_LINE]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.HVDC_LINE], }, }; diff --git a/src/hooks/useModificationLabelComputer.tsx b/src/hooks/useModificationLabelComputer.tsx index 38415137..ff435cc3 100644 --- a/src/hooks/useModificationLabelComputer.tsx +++ b/src/hooks/useModificationLabelComputer.tsx @@ -9,7 +9,7 @@ import { useIntl } from 'react-intl'; import { useCallback } from 'react'; import { UUID } from 'crypto'; import { MODIFICATION_TYPES } from '../utils/types/modificationType'; -import { EQUIPMENT_TYPE } from '../utils/types/equipmentType'; +import { EquipmentType } from '../utils/types/equipmentType'; export interface NetworkModificationMetadata { uuid: UUID; @@ -70,7 +70,7 @@ export const useModificationLabelComputer = () => { case MODIFICATION_TYPES.BY_FILTER_DELETION.type: return intl.formatMessage({ id: - modificationMetadata.equipmentType === EQUIPMENT_TYPE.HVDC_LINE + modificationMetadata.equipmentType === EquipmentType.HVDC_LINE ? 'Hvdc' : modificationMetadata.equipmentType, }); diff --git a/src/translations/en/equipmentSearchEn.ts b/src/translations/en/equipmentSearchEn.ts index 17a108d1..06a1fb97 100644 --- a/src/translations/en/equipmentSearchEn.ts +++ b/src/translations/en/equipmentSearchEn.ts @@ -18,6 +18,8 @@ export const equipmentSearchEn = { 'equipment_search/shuntTag': 'SHUNT', 'equipment_search/svcTag': 'SVC', 'equipment_search/hvdcLineTag': 'HVDC LINE', + 'equipment_search/hvdcLineVscTag': 'HVDC LINE (VSC)', + 'equipment_search/hvdcLineLccTag': 'HVDC LINE (LCC)', 'equipment_search/hvdcStationTag': 'HVDC STATION', 'equipment_search/voltageLevelTag': 'VOLTAGE LEVEL', 'equipment_search/substationTag': 'SUBSTATION', diff --git a/src/translations/fr/equipmentSearchFr.ts b/src/translations/fr/equipmentSearchFr.ts index 6d4ee2e8..7df15cea 100644 --- a/src/translations/fr/equipmentSearchFr.ts +++ b/src/translations/fr/equipmentSearchFr.ts @@ -18,6 +18,8 @@ export const equipmentSearchFr = { 'equipment_search/shuntTag': 'MCS', 'equipment_search/svcTag': 'CSPR', 'equipment_search/hvdcLineTag': 'LIGNE HVDC', + 'equipment_search/hvdcLineVscTag': 'LIGNE HVDC (VSC)', + 'equipment_search/hvdcLineLccTag': 'LIGNE HVDC (LCC)', 'equipment_search/hvdcStationTag': 'STATION HVDC', 'equipment_search/voltageLevelTag': 'POSTE', 'equipment_search/substationTag': 'SITE', diff --git a/src/utils/types/equipmentType.ts b/src/utils/types/equipmentType.ts index b76047ac..3448a885 100644 --- a/src/utils/types/equipmentType.ts +++ b/src/utils/types/equipmentType.ts @@ -76,90 +76,158 @@ export enum EquipmentType { TIE_LINE = 'TIE_LINE', DISCONNECTOR = 'DISCONNECTOR', BREAKER = 'BREAKER', + HVDC_LINE_LCC = 'HVDC_LINE_LCC', + HVDC_LINE_VSC = 'HVDC_LINE_VSC', } -export enum HvdcType { - LCC = 'LCC', - VSC = 'VSC', -} +// order is not important,should cover all elements in EquipmentType +export const BASE_INFOS_EQUIPMENT_TYPES: Partial> = { + [EquipmentType.SUBSTATION]: { + label: 'Substations', + }, + [EquipmentType.VOLTAGE_LEVEL]: { + label: 'VoltageLevels', + }, + [EquipmentType.LINE]: { + label: 'Lines', + }, + [EquipmentType.TWO_WINDINGS_TRANSFORMER]: { + label: 'TwoWindingsTransformers', + }, + [EquipmentType.THREE_WINDINGS_TRANSFORMER]: { + label: 'ThreeWindingsTransformers', + }, + [EquipmentType.GENERATOR]: { + label: 'Generators', + }, + [EquipmentType.BATTERY]: { + label: 'Batteries', + }, + [EquipmentType.LOAD]: { + label: 'Loads', + }, + [EquipmentType.SHUNT_COMPENSATOR]: { + label: 'ShuntCompensators', + }, + [EquipmentType.STATIC_VAR_COMPENSATOR]: { + label: 'StaticVarCompensators', + }, + [EquipmentType.DANGLING_LINE]: { + label: 'DanglingLines', + }, + [EquipmentType.HVDC_LINE]: { + label: 'Hvdc', + }, + [EquipmentType.HVDC_LINE_LCC]: { + label: 'LCC', + }, + [EquipmentType.HVDC_LINE_VSC]: { + label: 'VSC', + }, +}; -// Must be equivalent as the back enum -export const EQUIPMENT_TYPE: Record = { +// order is not important +export const SEARCH_TAG_EQUIPMENT_TYPES: Partial> = { [EquipmentType.SUBSTATION]: { - name: EquipmentType.SUBSTATION, tagLabel: 'equipment_search/substationTag', }, [EquipmentType.VOLTAGE_LEVEL]: { - name: EquipmentType.VOLTAGE_LEVEL, tagLabel: 'equipment_search/voltageLevelTag', }, [EquipmentType.LINE]: { - name: EquipmentType.LINE, tagLabel: 'equipment_search/lineTag', }, [EquipmentType.TWO_WINDINGS_TRANSFORMER]: { - name: EquipmentType.TWO_WINDINGS_TRANSFORMER, tagLabel: 'equipment_search/2wtTag', }, [EquipmentType.THREE_WINDINGS_TRANSFORMER]: { - name: EquipmentType.THREE_WINDINGS_TRANSFORMER, tagLabel: 'equipment_search/3wtTag', }, - [EquipmentType.HVDC_LINE]: { - name: EquipmentType.HVDC_LINE, - tagLabel: 'equipment_search/hvdcLineTag', + [EquipmentType.HVDC_LINE_LCC]: { + tagLabel: 'equipment_search/hvdcLineLccTag', + }, + [EquipmentType.HVDC_LINE_VSC]: { + tagLabel: 'equipment_search/hvdcLineVscTag', }, [EquipmentType.GENERATOR]: { - name: EquipmentType.GENERATOR, tagLabel: 'equipment_search/generatorTag', }, [EquipmentType.BATTERY]: { - name: EquipmentType.BATTERY, tagLabel: 'equipment_search/batteryTag', }, [EquipmentType.LOAD]: { - name: EquipmentType.LOAD, tagLabel: 'equipment_search/loadTag', }, [EquipmentType.SHUNT_COMPENSATOR]: { - name: EquipmentType.SHUNT_COMPENSATOR, tagLabel: 'equipment_search/shuntTag', }, [EquipmentType.DANGLING_LINE]: { - name: EquipmentType.DANGLING_LINE, tagLabel: 'equipment_search/lineTag', }, [EquipmentType.STATIC_VAR_COMPENSATOR]: { - name: EquipmentType.STATIC_VAR_COMPENSATOR, tagLabel: 'equipment_search/svcTag', }, [EquipmentType.HVDC_CONVERTER_STATION]: { - name: EquipmentType.HVDC_CONVERTER_STATION, tagLabel: 'equipment_search/hvdcStationTag', }, [EquipmentType.BUSBAR_SECTION]: { - name: EquipmentType.BUSBAR_SECTION, tagLabel: 'equipment_search/busbarSectionTag', }, [EquipmentType.BUS]: { - name: EquipmentType.BUS, tagLabel: 'equipment_search/busTag', }, [EquipmentType.SWITCH]: { - name: EquipmentType.SWITCH, tagLabel: 'equipment_search/switchTag', }, [EquipmentType.VSC_CONVERTER_STATION]: { - name: EquipmentType.VSC_CONVERTER_STATION, tagLabel: 'equipment_search/vscConverterStationTag', }, [EquipmentType.LCC_CONVERTER_STATION]: { - name: EquipmentType.LCC_CONVERTER_STATION, tagLabel: 'equipment_search/lccConverterStationTag', }, - [EquipmentType.TIE_LINE]: undefined, // Not used in the UI - [EquipmentType.DISCONNECTOR]: undefined, // Not used in the UI - [EquipmentType.BREAKER]: undefined, // Not used in the UI +}; + +// order is important +export const SEARCH_FILTER_EQUIPMENT_TYPES: Partial> = { + [EquipmentType.SUBSTATION]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.SUBSTATION], + }, + [EquipmentType.VOLTAGE_LEVEL]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.VOLTAGE_LEVEL], + }, + [EquipmentType.LINE]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.LINE], + }, + [EquipmentType.TWO_WINDINGS_TRANSFORMER]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.TWO_WINDINGS_TRANSFORMER], + }, + [EquipmentType.THREE_WINDINGS_TRANSFORMER]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.THREE_WINDINGS_TRANSFORMER], + }, + [EquipmentType.GENERATOR]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.GENERATOR], + }, + [EquipmentType.BATTERY]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.BATTERY], + }, + [EquipmentType.LOAD]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.LOAD], + }, + [EquipmentType.SHUNT_COMPENSATOR]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.SHUNT_COMPENSATOR], + }, + [EquipmentType.STATIC_VAR_COMPENSATOR]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.STATIC_VAR_COMPENSATOR], + }, + [EquipmentType.DANGLING_LINE]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.DANGLING_LINE], + }, + [EquipmentType.HVDC_LINE_LCC]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.HVDC_LINE_LCC], + }, + [EquipmentType.HVDC_LINE_VSC]: { + ...BASE_INFOS_EQUIPMENT_TYPES[EquipmentType.HVDC_LINE_VSC], + }, }; export interface Identifiable {