@gridsuite/commons-ui 0.284.0 → 0.285.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/components/ui/reactHookForm/utils/HelperPreviousValue.js +1 -1
  2. package/dist/features/index.js +48 -6
  3. package/dist/features/network-modifications/battery/modification/BatteryDialogTabsContent.d.ts +2 -2
  4. package/dist/features/network-modifications/common/index.js +2 -5
  5. package/dist/features/network-modifications/common/measurements/PowerMeasurementsForm.js +3 -9
  6. package/dist/features/network-modifications/common/measurements/branchActiveReactivePowerForm.utils.d.ts +4 -17
  7. package/dist/features/network-modifications/common/measurements/branchActiveReactivePowerForm.utils.js +0 -8
  8. package/dist/features/network-modifications/common/measurements/index.js +1 -2
  9. package/dist/features/network-modifications/common/measurements/injectionActiveReactivePowerForm.utils.d.ts +6 -9
  10. package/dist/features/network-modifications/common/measurements/measurement.type.d.ts +7 -1
  11. package/dist/features/network-modifications/common/measurements/powerWithValidity.utils.d.ts +3 -3
  12. package/dist/features/network-modifications/common/reactiveLimits/index.js +1 -3
  13. package/dist/features/network-modifications/common/reactiveLimits/reactiveCapabilityCurve/index.js +1 -3
  14. package/dist/features/network-modifications/common/reactiveLimits/reactiveCapabilityCurve/reactiveCapability.utils.d.ts +0 -4
  15. package/dist/features/network-modifications/common/reactiveLimits/reactiveCapabilityCurve/reactiveCapability.utils.js +0 -8
  16. package/dist/features/network-modifications/common/reactiveLimits/reactiveLimits.type.d.ts +1 -0
  17. package/dist/features/network-modifications/generator/modification/GeneratorDialogTabsContent.d.ts +2 -2
  18. package/dist/features/network-modifications/hvdcLine/index.d.ts +7 -0
  19. package/dist/features/network-modifications/hvdcLine/index.js +47 -0
  20. package/dist/features/network-modifications/hvdcLine/vsc/common/characteristics/VscHvdcLineCharacteristicsPane.d.ts +8 -0
  21. package/dist/features/network-modifications/hvdcLine/vsc/common/characteristics/VscHvdcLineCharacteristicsPane.js +235 -0
  22. package/dist/features/network-modifications/hvdcLine/vsc/common/characteristics/index.d.ts +8 -0
  23. package/dist/features/network-modifications/hvdcLine/vsc/common/characteristics/index.js +11 -0
  24. package/dist/features/network-modifications/hvdcLine/vsc/common/characteristics/vscHvdcLineCharacteristicsPane.utils.d.ts +67 -0
  25. package/dist/features/network-modifications/hvdcLine/vsc/common/characteristics/vscHvdcLineCharacteristicsPane.utils.js +106 -0
  26. package/dist/features/network-modifications/hvdcLine/vsc/common/converterStation/VscConverterStationPane.d.ts +12 -0
  27. package/dist/features/network-modifications/hvdcLine/vsc/common/converterStation/VscConverterStationPane.js +198 -0
  28. package/dist/features/network-modifications/hvdcLine/vsc/common/converterStation/index.d.ts +8 -0
  29. package/dist/features/network-modifications/hvdcLine/vsc/common/converterStation/index.js +13 -0
  30. package/dist/features/network-modifications/hvdcLine/vsc/common/converterStation/vscConverterStationPane.utils.d.ts +156 -0
  31. package/dist/features/network-modifications/hvdcLine/vsc/common/converterStation/vscConverterStationPane.utils.js +199 -0
  32. package/dist/features/network-modifications/hvdcLine/vsc/common/form/VscHvdcLineDialogHeader.d.ts +6 -0
  33. package/dist/features/network-modifications/hvdcLine/vsc/common/form/VscHvdcLineDialogHeader.js +106 -0
  34. package/dist/features/network-modifications/hvdcLine/vsc/common/form/VscHvdcLineDialogTabs.d.ts +9 -0
  35. package/dist/features/network-modifications/hvdcLine/vsc/common/form/VscHvdcLineDialogTabs.js +129 -0
  36. package/dist/features/network-modifications/hvdcLine/vsc/common/form/VscHvdcLineDialogTabsContent.d.ts +10 -0
  37. package/dist/features/network-modifications/hvdcLine/vsc/common/form/VscHvdcLineDialogTabsContent.js +139 -0
  38. package/dist/features/network-modifications/hvdcLine/vsc/common/form/VscHvdcLineForm.d.ts +11 -0
  39. package/dist/features/network-modifications/hvdcLine/vsc/common/form/VscHvdcLineForm.js +43 -0
  40. package/dist/features/network-modifications/hvdcLine/vsc/common/form/index.d.ts +11 -0
  41. package/dist/features/network-modifications/hvdcLine/vsc/common/form/index.js +13 -0
  42. package/dist/features/network-modifications/hvdcLine/vsc/common/form/vscHvdcLine.utils.d.ts +8 -0
  43. package/dist/features/network-modifications/hvdcLine/vsc/common/form/vscHvdcLine.utils.js +34 -0
  44. package/dist/features/network-modifications/hvdcLine/vsc/common/index.d.ts +10 -0
  45. package/dist/features/network-modifications/hvdcLine/vsc/common/index.js +36 -0
  46. package/dist/features/network-modifications/hvdcLine/vsc/common/vscHvdcLine.types.d.ts +52 -0
  47. package/dist/features/network-modifications/hvdcLine/vsc/common/vscHvdcLine.types.js +25 -0
  48. package/dist/features/network-modifications/hvdcLine/vsc/creation/index.d.ts +8 -0
  49. package/dist/features/network-modifications/hvdcLine/vsc/creation/index.js +7 -0
  50. package/dist/features/network-modifications/hvdcLine/vsc/creation/vscHvdcLineCreation.types.d.ts +45 -0
  51. package/dist/features/network-modifications/hvdcLine/vsc/creation/vscHvdcLineCreation.types.js +1 -0
  52. package/dist/features/network-modifications/hvdcLine/vsc/creation/vscHvdcLineCreation.utils.d.ts +159 -0
  53. package/dist/features/network-modifications/hvdcLine/vsc/creation/vscHvdcLineCreation.utils.js +88 -0
  54. package/dist/features/network-modifications/hvdcLine/vsc/index.d.ts +9 -0
  55. package/dist/features/network-modifications/hvdcLine/vsc/index.js +47 -0
  56. package/dist/features/network-modifications/hvdcLine/vsc/modification/index.d.ts +8 -0
  57. package/dist/features/network-modifications/hvdcLine/vsc/modification/index.js +8 -0
  58. package/dist/features/network-modifications/hvdcLine/vsc/modification/vscHvdcLineModification.types.d.ts +49 -0
  59. package/dist/features/network-modifications/hvdcLine/vsc/modification/vscHvdcLineModification.types.js +1 -0
  60. package/dist/features/network-modifications/hvdcLine/vsc/modification/vscHvdcLineModification.utils.d.ts +230 -0
  61. package/dist/features/network-modifications/hvdcLine/vsc/modification/vscHvdcLineModification.utils.js +145 -0
  62. package/dist/features/network-modifications/index.d.ts +1 -0
  63. package/dist/features/network-modifications/index.js +48 -6
  64. package/dist/features/network-modifications/static-var-compensator/common/static-var-compensator-dialog-tabs.js +3 -3
  65. package/dist/hooks/useModificationLabelComputer.js +7 -5
  66. package/dist/index.js +48 -6
  67. package/dist/translations/en/networkModificationsEn.d.ts +23 -4
  68. package/dist/translations/en/networkModificationsEn.js +23 -4
  69. package/dist/translations/fr/networkModificationsFr.d.ts +23 -4
  70. package/dist/translations/fr/networkModificationsFr.js +23 -4
  71. package/dist/utils/constants/fieldConstants.d.ts +15 -0
  72. package/dist/utils/constants/fieldConstants.js +15 -0
  73. package/package.json +1 -1
@@ -0,0 +1,88 @@
1
+ import { object, string } from "yup";
2
+ import { FieldConstants } from "../../../../../utils/constants/fieldConstants.js";
3
+ import "../../../../../utils/conversionUtils.js";
4
+ import "../../../../../utils/types/equipmentType.js";
5
+ import { ModificationType } from "../../../../../utils/types/modificationType.js";
6
+ import "react/jsx-runtime";
7
+ import "@mui/icons-material";
8
+ import { sanitizeString } from "../../../../../utils/ts-utils.js";
9
+ import "react";
10
+ import "react-hook-form";
11
+ import { creationPropertiesSchema, getFilledPropertiesFromModification, toModificationProperties } from "../../../common/properties/propertyUtils.js";
12
+ import "@mui/material";
13
+ import "react-intl";
14
+ import "../../../../../components/ui/overflowableText/OverflowableText.js";
15
+ import "localized-countries";
16
+ import "localized-countries/data/fr";
17
+ import "localized-countries/data/en";
18
+ import "notistack";
19
+ import "../../../../../components/ui/reactHookForm/provider/CustomFormProvider.js";
20
+ import "../../../../../components/ui/treeViewFinder/TreeViewFinder.js";
21
+ import "../../../../../components/ui/reactHookForm/numbers/RangeInput.js";
22
+ import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
23
+ import "@material-symbols/svg-400/outlined/arrows_output.svg?react";
24
+ import "@material-symbols/svg-400/outlined/arrows_input.svg?react";
25
+ import "@material-symbols/svg-400/outlined/left_panel_close.svg?react";
26
+ import "@material-symbols/svg-400/outlined/add_notes-fill.svg?react";
27
+ import "../../../../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
28
+ import "../../../../../components/ui/reactHookForm/expandableInput/ExpandableInput.js";
29
+ import "../../../../../components/ui/reactHookForm/directory-item-input/directory-item-utils.js";
30
+ import "@hello-pangea/dnd";
31
+ import "../../../../../components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js";
32
+ import "../../../../../components/ui/snackbarProvider/SnackbarProvider.js";
33
+ import "mui-nested-menu";
34
+ import "react-resizable-panels";
35
+ import "react-papaparse";
36
+ import { getVscHvdcLineCharacteristicsCreationSchema, getVscHvdcLineCharacteristicsEmptyFormData, getVscHvdcLineCharacteristicsCreationDtoToForm } from "../common/characteristics/vscHvdcLineCharacteristicsPane.utils.js";
37
+ import { getVscConverterStationCreationSchema, getVscConverterStationEmptyFormData, converterStationCreationDtoToForm, converterStationCreationFormToDto } from "../common/converterStation/vscConverterStationPane.utils.js";
38
+ const vscHvdcLineCreationFormSchema = object().shape({
39
+ [FieldConstants.EQUIPMENT_ID]: string().required(),
40
+ [FieldConstants.EQUIPMENT_NAME]: string().nullable(),
41
+ [FieldConstants.HVDC_LINE]: getVscHvdcLineCharacteristicsCreationSchema(),
42
+ [FieldConstants.CONVERTER_STATION_1]: getVscConverterStationCreationSchema(),
43
+ [FieldConstants.CONVERTER_STATION_2]: getVscConverterStationCreationSchema()
44
+ }).concat(creationPropertiesSchema).required();
45
+ const vscHvdcLineCreationEmptyFormData = {
46
+ [FieldConstants.EQUIPMENT_ID]: null,
47
+ [FieldConstants.EQUIPMENT_NAME]: null,
48
+ [FieldConstants.HVDC_LINE]: getVscHvdcLineCharacteristicsEmptyFormData(false),
49
+ [FieldConstants.CONVERTER_STATION_1]: getVscConverterStationEmptyFormData(false),
50
+ [FieldConstants.CONVERTER_STATION_2]: getVscConverterStationEmptyFormData(false),
51
+ [FieldConstants.ADDITIONAL_PROPERTIES]: []
52
+ };
53
+ const vscHvdcLineCreationDtoToForm = (lineDto) => {
54
+ return {
55
+ [FieldConstants.EQUIPMENT_ID]: lineDto.equipmentId,
56
+ [FieldConstants.EQUIPMENT_NAME]: lineDto.equipmentName ?? "",
57
+ [FieldConstants.HVDC_LINE]: getVscHvdcLineCharacteristicsCreationDtoToForm(lineDto),
58
+ [FieldConstants.CONVERTER_STATION_1]: converterStationCreationDtoToForm(lineDto.converterStation1),
59
+ [FieldConstants.CONVERTER_STATION_2]: converterStationCreationDtoToForm(lineDto.converterStation2),
60
+ [FieldConstants.ADDITIONAL_PROPERTIES]: getFilledPropertiesFromModification(lineDto.properties)
61
+ };
62
+ };
63
+ const vscHvdcLineCreationFormToDto = (lineForm) => {
64
+ return {
65
+ type: ModificationType.VSC_CREATION,
66
+ equipmentId: lineForm.equipmentID,
67
+ equipmentName: sanitizeString(lineForm.equipmentName),
68
+ properties: toModificationProperties(lineForm),
69
+ nominalV: lineForm.hvdcLine.nominalV,
70
+ r: lineForm.hvdcLine.r,
71
+ maxP: lineForm.hvdcLine.maxP,
72
+ operatorActivePowerLimitFromSide1ToSide2: lineForm.hvdcLine.operatorActivePowerLimitSide1 ?? null,
73
+ operatorActivePowerLimitFromSide2ToSide1: lineForm.hvdcLine.operatorActivePowerLimitSide2 ?? null,
74
+ convertersMode: lineForm.hvdcLine.convertersMode,
75
+ activePowerSetpoint: lineForm.hvdcLine.activePowerSetpoint,
76
+ angleDroopActivePowerControl: lineForm.hvdcLine.angleDroopActivePowerControl ?? null,
77
+ p0: lineForm.hvdcLine.p0 ?? null,
78
+ droop: lineForm.hvdcLine.droop ?? null,
79
+ converterStation1: converterStationCreationFormToDto(lineForm.converterStation1),
80
+ converterStation2: converterStationCreationFormToDto(lineForm.converterStation2)
81
+ };
82
+ };
83
+ export {
84
+ vscHvdcLineCreationDtoToForm,
85
+ vscHvdcLineCreationEmptyFormData,
86
+ vscHvdcLineCreationFormSchema,
87
+ vscHvdcLineCreationFormToDto
88
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Copyright (c) 2026, RTE (http://www.rte-france.com)
3
+ * This Source Code Form is subject to the terms of the Mozilla Public
4
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
+ */
7
+ export * from './common';
8
+ export * from './creation';
9
+ export * from './modification';
@@ -0,0 +1,47 @@
1
+ import { getVscHvdcLineCharacteristicsCreationDtoToForm, getVscHvdcLineCharacteristicsCreationSchema, getVscHvdcLineCharacteristicsEmptyFormData, getVscHvdcLineCharacteristicsFromCopy, getVscHvdcLineCharacteristicsModificationDtoToForm, getVscHvdcLineCharacteristicsModificationSchema } from "./common/characteristics/vscHvdcLineCharacteristicsPane.utils.js";
2
+ import { VscHvdcLineCharacteristicsPane } from "./common/characteristics/VscHvdcLineCharacteristicsPane.js";
3
+ import { converterStationCreationDtoToForm, converterStationCreationFormToDto, converterStationCreationFromCopy, converterStationModificationDtoToForm, converterStationModificationFormToDto, getVscConverterStationCreationSchema, getVscConverterStationEmptyFormData, getVscConverterStationModificationSchema } from "./common/converterStation/vscConverterStationPane.utils.js";
4
+ import { VscConverterStationPane } from "./common/converterStation/VscConverterStationPane.js";
5
+ import { HVDC_LINE_TAB_FIELDS, VscHvdcLineDialogTab } from "./common/form/vscHvdcLine.utils.js";
6
+ import { VscHvdcLineDialogTabs } from "./common/form/VscHvdcLineDialogTabs.js";
7
+ import { VscHvdcLineDialogTabsContent } from "./common/form/VscHvdcLineDialogTabsContent.js";
8
+ import { VscHvdcLineDialogHeader } from "./common/form/VscHvdcLineDialogHeader.js";
9
+ import { VscHvdcLineForm } from "./common/form/VscHvdcLineForm.js";
10
+ import { VSC_CONVERTER_MODE, VscConverterMode } from "./common/vscHvdcLine.types.js";
11
+ import { vscHvdcLineCreationDtoToForm, vscHvdcLineCreationEmptyFormData, vscHvdcLineCreationFormSchema, vscHvdcLineCreationFormToDto } from "./creation/vscHvdcLineCreation.utils.js";
12
+ import { vscHvdcLineEstimationFormSchema, vscHvdcLineModificationDtoToForm, vscHvdcLineModificationEmptyFormData, vscHvdcLineModificationFormSchema, vscHvdcLineModificationFormToDto } from "./modification/vscHvdcLineModification.utils.js";
13
+ export {
14
+ HVDC_LINE_TAB_FIELDS,
15
+ VSC_CONVERTER_MODE,
16
+ VscConverterMode,
17
+ VscConverterStationPane,
18
+ VscHvdcLineCharacteristicsPane,
19
+ VscHvdcLineDialogHeader,
20
+ VscHvdcLineDialogTab,
21
+ VscHvdcLineDialogTabs,
22
+ VscHvdcLineDialogTabsContent,
23
+ VscHvdcLineForm,
24
+ converterStationCreationDtoToForm,
25
+ converterStationCreationFormToDto,
26
+ converterStationCreationFromCopy,
27
+ converterStationModificationDtoToForm,
28
+ converterStationModificationFormToDto,
29
+ getVscConverterStationCreationSchema,
30
+ getVscConverterStationEmptyFormData,
31
+ getVscConverterStationModificationSchema,
32
+ getVscHvdcLineCharacteristicsCreationDtoToForm,
33
+ getVscHvdcLineCharacteristicsCreationSchema,
34
+ getVscHvdcLineCharacteristicsEmptyFormData,
35
+ getVscHvdcLineCharacteristicsFromCopy,
36
+ getVscHvdcLineCharacteristicsModificationDtoToForm,
37
+ getVscHvdcLineCharacteristicsModificationSchema,
38
+ vscHvdcLineCreationDtoToForm,
39
+ vscHvdcLineCreationEmptyFormData,
40
+ vscHvdcLineCreationFormSchema,
41
+ vscHvdcLineCreationFormToDto,
42
+ vscHvdcLineEstimationFormSchema,
43
+ vscHvdcLineModificationDtoToForm,
44
+ vscHvdcLineModificationEmptyFormData,
45
+ vscHvdcLineModificationFormSchema,
46
+ vscHvdcLineModificationFormToDto
47
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright (c) 2026, RTE (http://www.rte-france.com)
3
+ * This Source Code Form is subject to the terms of the Mozilla Public
4
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
+ */
7
+ export * from './vscHvdcLineModification.types';
8
+ export * from './vscHvdcLineModification.utils';
@@ -0,0 +1,8 @@
1
+ import { vscHvdcLineEstimationFormSchema, vscHvdcLineModificationDtoToForm, vscHvdcLineModificationEmptyFormData, vscHvdcLineModificationFormSchema, vscHvdcLineModificationFormToDto } from "./vscHvdcLineModification.utils.js";
2
+ export {
3
+ vscHvdcLineEstimationFormSchema,
4
+ vscHvdcLineModificationDtoToForm,
5
+ vscHvdcLineModificationEmptyFormData,
6
+ vscHvdcLineModificationFormSchema,
7
+ vscHvdcLineModificationFormToDto
8
+ };
@@ -0,0 +1,49 @@
1
+ import { UUID } from 'node:crypto';
2
+ import { AttributeModification, ModificationType } from '../../../../../utils';
3
+ import { Property } from '../../../common/properties/properties.type';
4
+ import { ReactiveCapabilityCurvePoints } from '../../../common/reactiveLimits/reactiveLimits.type';
5
+ interface InjectionModificationDto {
6
+ type: ModificationType;
7
+ equipmentId: string;
8
+ equipmentName: AttributeModification<string> | null;
9
+ voltageLevelId: AttributeModification<string> | null;
10
+ busOrBusbarSectionId: AttributeModification<string> | null;
11
+ connectionDirection: AttributeModification<string> | null;
12
+ connectionName: AttributeModification<string> | null;
13
+ connectionPosition: AttributeModification<number> | null;
14
+ terminalConnected: AttributeModification<boolean> | null;
15
+ pMeasurementValue: AttributeModification<number> | null;
16
+ pMeasurementValidity: AttributeModification<boolean> | null;
17
+ qMeasurementValue: AttributeModification<number> | null;
18
+ qMeasurementValidity: AttributeModification<boolean> | null;
19
+ }
20
+ export interface ConverterStationModificationDto extends InjectionModificationDto {
21
+ lossFactor: AttributeModification<number> | null;
22
+ reactivePowerSetpoint: AttributeModification<number> | null;
23
+ voltageRegulationOn: AttributeModification<boolean> | null;
24
+ voltageSetpoint: AttributeModification<number> | null;
25
+ reactiveCapabilityCurve: AttributeModification<boolean> | null;
26
+ minQ: AttributeModification<number> | null;
27
+ maxQ: AttributeModification<number> | null;
28
+ reactiveCapabilityCurvePoints: ReactiveCapabilityCurvePoints[];
29
+ }
30
+ export interface VscHdvLineModificationDto {
31
+ type: ModificationType;
32
+ uuid?: UUID;
33
+ equipmentId: string;
34
+ equipmentName: AttributeModification<string> | null;
35
+ properties: Property[] | null;
36
+ nominalV: AttributeModification<number> | null;
37
+ r: AttributeModification<number> | null;
38
+ maxP: AttributeModification<number> | null;
39
+ operatorActivePowerLimitFromSide1ToSide2: AttributeModification<number> | null;
40
+ operatorActivePowerLimitFromSide2ToSide1: AttributeModification<number> | null;
41
+ convertersMode: AttributeModification<string> | null;
42
+ activePowerSetpoint: AttributeModification<number> | null;
43
+ angleDroopActivePowerControl: AttributeModification<boolean> | null;
44
+ p0: AttributeModification<number> | null;
45
+ droop: AttributeModification<number> | null;
46
+ converterStation1: ConverterStationModificationDto;
47
+ converterStation2: ConverterStationModificationDto;
48
+ }
49
+ export {};
@@ -0,0 +1,230 @@
1
+ import { InferType } from 'yup';
2
+ import { DeepNullable } from '../../../../../utils';
3
+ import { VscHdvLineModificationDto } from './vscHvdcLineModification.types';
4
+ export declare const vscHvdcLineEstimationFormSchema: import('yup').ObjectSchema<{
5
+ converterStation1: {
6
+ [x: string]: {
7
+ validity?: boolean | null | undefined;
8
+ value?: number | null | undefined;
9
+ };
10
+ [x: number]: {
11
+ validity?: boolean | null | undefined;
12
+ value?: number | null | undefined;
13
+ };
14
+ };
15
+ converterStation2: {
16
+ [x: string]: {
17
+ validity?: boolean | null | undefined;
18
+ value?: number | null | undefined;
19
+ };
20
+ [x: number]: {
21
+ validity?: boolean | null | undefined;
22
+ value?: number | null | undefined;
23
+ };
24
+ };
25
+ }, import('yup').AnyObject, {
26
+ converterStation1: {
27
+ [x: string]: {
28
+ value: undefined;
29
+ validity: undefined;
30
+ };
31
+ };
32
+ converterStation2: {
33
+ [x: string]: {
34
+ value: undefined;
35
+ validity: undefined;
36
+ };
37
+ };
38
+ }, "">;
39
+ export declare const vscHvdcLineModificationFormSchema: import('yup').ObjectSchema<NonNullable<{
40
+ equipmentID: string;
41
+ equipmentName: string | null | undefined;
42
+ hvdcLine: {
43
+ activePowerSetpoint?: number | null | undefined;
44
+ angleDroopActivePowerControl?: boolean | null | undefined;
45
+ convertersMode?: string | null | undefined;
46
+ droop?: number | null | undefined;
47
+ maxP?: number | null | undefined;
48
+ operatorActivePowerLimitSide1?: number | null | undefined;
49
+ operatorActivePowerLimitSide2?: number | null | undefined;
50
+ p0?: number | null | undefined;
51
+ r?: number | null | undefined;
52
+ nominalV?: number | null | undefined;
53
+ };
54
+ converterStation1: {
55
+ converterStationId?: string | undefined;
56
+ converterStationName?: string | null | undefined;
57
+ lossFactor?: number | null | undefined;
58
+ reactivePower?: number | null | undefined;
59
+ voltage?: number | null | undefined;
60
+ voltageRegulationOn?: boolean | null | undefined;
61
+ connectivity: {
62
+ terminalConnected?: boolean | null | undefined;
63
+ connectionDirection?: string | null | undefined;
64
+ connectionName?: string | undefined;
65
+ connectionPosition?: number | null | undefined;
66
+ busOrBusbarSection: {
67
+ id?: string | undefined;
68
+ } | null;
69
+ voltageLevel: {
70
+ id?: string | undefined;
71
+ } | null;
72
+ };
73
+ reactiveLimits: {
74
+ minimumReactivePower?: number | null | undefined;
75
+ maximumReactivePower?: number | null | undefined;
76
+ reactiveCapabilityCurveTable?: {
77
+ minQ: number | null;
78
+ maxQ: number | null;
79
+ p: number | null;
80
+ }[] | null | undefined;
81
+ reactiveCapabilityCurveChoice: string;
82
+ };
83
+ };
84
+ converterStation2: {
85
+ converterStationId?: string | undefined;
86
+ converterStationName?: string | null | undefined;
87
+ lossFactor?: number | null | undefined;
88
+ reactivePower?: number | null | undefined;
89
+ voltage?: number | null | undefined;
90
+ voltageRegulationOn?: boolean | null | undefined;
91
+ connectivity: {
92
+ terminalConnected?: boolean | null | undefined;
93
+ connectionDirection?: string | null | undefined;
94
+ connectionName?: string | undefined;
95
+ connectionPosition?: number | null | undefined;
96
+ busOrBusbarSection: {
97
+ id?: string | undefined;
98
+ } | null;
99
+ voltageLevel: {
100
+ id?: string | undefined;
101
+ } | null;
102
+ };
103
+ reactiveLimits: {
104
+ minimumReactivePower?: number | null | undefined;
105
+ maximumReactivePower?: number | null | undefined;
106
+ reactiveCapabilityCurveTable?: {
107
+ minQ: number | null;
108
+ maxQ: number | null;
109
+ p: number | null;
110
+ }[] | null | undefined;
111
+ reactiveCapabilityCurveChoice: string;
112
+ };
113
+ };
114
+ stateEstimation: {
115
+ converterStation1: {
116
+ [x: string]: {
117
+ validity?: boolean | null | undefined;
118
+ value?: number | null | undefined;
119
+ };
120
+ [x: number]: {
121
+ validity?: boolean | null | undefined;
122
+ value?: number | null | undefined;
123
+ };
124
+ };
125
+ converterStation2: {
126
+ [x: string]: {
127
+ validity?: boolean | null | undefined;
128
+ value?: number | null | undefined;
129
+ };
130
+ [x: number]: {
131
+ validity?: boolean | null | undefined;
132
+ value?: number | null | undefined;
133
+ };
134
+ };
135
+ };
136
+ } & {
137
+ AdditionalProperties: {
138
+ previousValue?: string | null | undefined;
139
+ value?: string | null | undefined;
140
+ added: NonNullable<boolean | undefined>;
141
+ deletionMark: NonNullable<boolean | undefined>;
142
+ name: string;
143
+ }[] | undefined;
144
+ }>, import('yup').AnyObject, {
145
+ equipmentID: undefined;
146
+ equipmentName: undefined;
147
+ hvdcLine: {
148
+ nominalV: undefined;
149
+ r: undefined;
150
+ maxP: undefined;
151
+ operatorActivePowerLimitSide1: undefined;
152
+ operatorActivePowerLimitSide2: undefined;
153
+ convertersMode: undefined;
154
+ angleDroopActivePowerControl: undefined;
155
+ activePowerSetpoint: undefined;
156
+ p0: undefined;
157
+ droop: undefined;
158
+ };
159
+ converterStation1: {
160
+ converterStationId: undefined;
161
+ converterStationName: undefined;
162
+ lossFactor: undefined;
163
+ voltageRegulationOn: undefined;
164
+ reactivePower: undefined;
165
+ voltage: undefined;
166
+ connectivity: {
167
+ voltageLevel: {
168
+ id: undefined;
169
+ };
170
+ busOrBusbarSection: {
171
+ id: undefined;
172
+ };
173
+ connectionDirection: undefined;
174
+ connectionName: undefined;
175
+ connectionPosition: undefined;
176
+ terminalConnected: undefined;
177
+ };
178
+ reactiveLimits: {
179
+ reactiveCapabilityCurveChoice: undefined;
180
+ minimumReactivePower: undefined;
181
+ maximumReactivePower: undefined;
182
+ reactiveCapabilityCurveTable: "";
183
+ };
184
+ };
185
+ converterStation2: {
186
+ converterStationId: undefined;
187
+ converterStationName: undefined;
188
+ lossFactor: undefined;
189
+ voltageRegulationOn: undefined;
190
+ reactivePower: undefined;
191
+ voltage: undefined;
192
+ connectivity: {
193
+ voltageLevel: {
194
+ id: undefined;
195
+ };
196
+ busOrBusbarSection: {
197
+ id: undefined;
198
+ };
199
+ connectionDirection: undefined;
200
+ connectionName: undefined;
201
+ connectionPosition: undefined;
202
+ terminalConnected: undefined;
203
+ };
204
+ reactiveLimits: {
205
+ reactiveCapabilityCurveChoice: undefined;
206
+ minimumReactivePower: undefined;
207
+ maximumReactivePower: undefined;
208
+ reactiveCapabilityCurveTable: "";
209
+ };
210
+ };
211
+ stateEstimation: {
212
+ converterStation1: {
213
+ [x: string]: {
214
+ value: undefined;
215
+ validity: undefined;
216
+ };
217
+ };
218
+ converterStation2: {
219
+ [x: string]: {
220
+ value: undefined;
221
+ validity: undefined;
222
+ };
223
+ };
224
+ };
225
+ AdditionalProperties: "";
226
+ }, "">;
227
+ export type VscHvdcLineModificationFormData = InferType<typeof vscHvdcLineModificationFormSchema>;
228
+ export declare const vscHvdcLineModificationEmptyFormData: DeepNullable<VscHvdcLineModificationFormData>;
229
+ export declare const vscHvdcLineModificationDtoToForm: (lineDto: VscHdvLineModificationDto, includePreviousValues?: boolean) => VscHvdcLineModificationFormData;
230
+ export declare const vscHvdcLineModificationFormToDto: (lineForm: VscHvdcLineModificationFormData) => VscHdvLineModificationDto;
@@ -0,0 +1,145 @@
1
+ import { object, string } from "yup";
2
+ import { FieldConstants } from "../../../../../utils/constants/fieldConstants.js";
3
+ import { toModificationOperation } from "../../../../../utils/conversionUtils.js";
4
+ import "../../../../../utils/types/equipmentType.js";
5
+ import { ModificationType } from "../../../../../utils/types/modificationType.js";
6
+ import "react/jsx-runtime";
7
+ import "@mui/icons-material";
8
+ import { sanitizeString } from "../../../../../utils/ts-utils.js";
9
+ import "react";
10
+ import "react-hook-form";
11
+ import { modificationPropertiesSchema, getPropertiesFromModification, toModificationProperties } from "../../../common/properties/propertyUtils.js";
12
+ import "@mui/material";
13
+ import "react-intl";
14
+ import "../../../../../components/ui/overflowableText/OverflowableText.js";
15
+ import "localized-countries";
16
+ import "localized-countries/data/fr";
17
+ import "localized-countries/data/en";
18
+ import "notistack";
19
+ import "../../../../../components/ui/reactHookForm/provider/CustomFormProvider.js";
20
+ import "../../../../../components/ui/treeViewFinder/TreeViewFinder.js";
21
+ import "../../../../../components/ui/reactHookForm/numbers/RangeInput.js";
22
+ import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
23
+ import "@material-symbols/svg-400/outlined/arrows_output.svg?react";
24
+ import "@material-symbols/svg-400/outlined/arrows_input.svg?react";
25
+ import "@material-symbols/svg-400/outlined/left_panel_close.svg?react";
26
+ import "@material-symbols/svg-400/outlined/add_notes-fill.svg?react";
27
+ import "../../../../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
28
+ import "../../../../../components/ui/reactHookForm/expandableInput/ExpandableInput.js";
29
+ import "../../../../../components/ui/reactHookForm/directory-item-input/directory-item-utils.js";
30
+ import "@hello-pangea/dnd";
31
+ import "../../../../../components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js";
32
+ import "../../../../../components/ui/snackbarProvider/SnackbarProvider.js";
33
+ import "mui-nested-menu";
34
+ import "react-resizable-panels";
35
+ import "react-papaparse";
36
+ import { getVscHvdcLineCharacteristicsModificationSchema, getVscHvdcLineCharacteristicsEmptyFormData, getVscHvdcLineCharacteristicsModificationDtoToForm } from "../common/characteristics/vscHvdcLineCharacteristicsPane.utils.js";
37
+ import { getVscConverterStationModificationSchema, getVscConverterStationEmptyFormData, converterStationModificationDtoToForm, converterStationModificationFormToDto } from "../common/converterStation/vscConverterStationPane.utils.js";
38
+ import { getInjectionActiveReactivePowerValidationSchemaProperties, getInjectionActiveReactivePowerEditDataProperties } from "../../../common/measurements/injectionActiveReactivePowerForm.utils.js";
39
+ import "react-dom";
40
+ import "autosuggest-highlight/match";
41
+ import "autosuggest-highlight/parse";
42
+ import "clsx";
43
+ import "../../../../../components/composite/filter/FilterCreationDialog.js";
44
+ import "../../../../../components/composite/filter/HeaderFilterForm.js";
45
+ import "../../../../../components/composite/filter/explicitNaming/ExplicitNamingFilterForm.js";
46
+ import "../../../../../components/composite/filter/expert/ExpertFilterForm.js";
47
+ import "../../../../../components/composite/filter/expert/ExpertFilterEditionDialog.js";
48
+ import "../../../../../components/composite/filter/expert/expertFilterConstants.js";
49
+ import "react-querybuilder";
50
+ import "uuid";
51
+ import "../../../../../components/composite/filter/explicitNaming/ExplicitNamingFilterEditionDialog.js";
52
+ import "../../../../../components/composite/filter/utils/filterFormUtils.js";
53
+ import "@react-querybuilder/material";
54
+ import "../../../../../components/composite/reactQueryBuilder/CustomReactQueryBuilder.js";
55
+ import "../../../../../components/composite/reactQueryBuilder/PropertyValueEditor.js";
56
+ import "../../../../../components/composite/agGridTable/BottomTableButtons.js";
57
+ import "../../../../../components/composite/agGridTable/CustomAgGridTable.js";
58
+ import "ag-grid-community";
59
+ import "../../../../../components/composite/customAGGrid/customAggrid.js";
60
+ import "../../../../../components/composite/customAGGrid/context/custom-aggrid-context.js";
61
+ import "mathjs";
62
+ import "../../../../../components/composite/report/report-viewer/log-table/log-table.js";
63
+ import "react-window";
64
+ import "../../../../../components/composite/report/report-treeview/treeview-item.js";
65
+ import "../../../../../components/composite/report/report-viewer/context/report-viewer-context.js";
66
+ import "../../../common/regulatingTerminal/RegulatingTerminalForm.js";
67
+ import "@mui/material/colors";
68
+ import "@mui/x-charts";
69
+ import "../../../common/currentLimits/limitsPane.utils.js";
70
+ const vscHvdcLineEstimationFormSchema = object().shape({
71
+ [FieldConstants.CONVERTER_STATION_1]: getInjectionActiveReactivePowerValidationSchemaProperties(),
72
+ [FieldConstants.CONVERTER_STATION_2]: getInjectionActiveReactivePowerValidationSchemaProperties()
73
+ });
74
+ const vscHvdcLineModificationFormSchema = object().shape({
75
+ [FieldConstants.EQUIPMENT_ID]: string().required(),
76
+ [FieldConstants.EQUIPMENT_NAME]: string().nullable(),
77
+ [FieldConstants.HVDC_LINE]: getVscHvdcLineCharacteristicsModificationSchema(),
78
+ [FieldConstants.CONVERTER_STATION_1]: getVscConverterStationModificationSchema(),
79
+ [FieldConstants.CONVERTER_STATION_2]: getVscConverterStationModificationSchema(),
80
+ [FieldConstants.STATE_ESTIMATION]: vscHvdcLineEstimationFormSchema
81
+ }).concat(modificationPropertiesSchema).required();
82
+ const vscHvdcLineModificationEmptyFormData = {
83
+ [FieldConstants.EQUIPMENT_ID]: null,
84
+ [FieldConstants.EQUIPMENT_NAME]: null,
85
+ [FieldConstants.HVDC_LINE]: getVscHvdcLineCharacteristicsEmptyFormData(true),
86
+ [FieldConstants.CONVERTER_STATION_1]: getVscConverterStationEmptyFormData(true),
87
+ [FieldConstants.CONVERTER_STATION_2]: getVscConverterStationEmptyFormData(true),
88
+ [FieldConstants.ADDITIONAL_PROPERTIES]: [],
89
+ [FieldConstants.STATE_ESTIMATION]: null
90
+ };
91
+ const vscHvdcLineModificationDtoToForm = (lineDto, includePreviousValues = true) => {
92
+ return {
93
+ [FieldConstants.EQUIPMENT_ID]: lineDto.equipmentId,
94
+ [FieldConstants.EQUIPMENT_NAME]: lineDto.equipmentName?.value,
95
+ [FieldConstants.HVDC_LINE]: getVscHvdcLineCharacteristicsModificationDtoToForm(lineDto),
96
+ [FieldConstants.CONVERTER_STATION_1]: converterStationModificationDtoToForm(lineDto.converterStation1),
97
+ [FieldConstants.CONVERTER_STATION_2]: converterStationModificationDtoToForm(lineDto.converterStation2),
98
+ [FieldConstants.STATE_ESTIMATION]: {
99
+ [FieldConstants.CONVERTER_STATION_1]: getInjectionActiveReactivePowerEditDataProperties(
100
+ lineDto.converterStation1
101
+ ),
102
+ [FieldConstants.CONVERTER_STATION_2]: getInjectionActiveReactivePowerEditDataProperties(
103
+ lineDto.converterStation2
104
+ )
105
+ },
106
+ ...getPropertiesFromModification(lineDto?.properties, includePreviousValues)
107
+ };
108
+ };
109
+ const vscHvdcLineModificationFormToDto = (lineForm) => {
110
+ return {
111
+ type: ModificationType.VSC_MODIFICATION,
112
+ equipmentId: lineForm.equipmentID,
113
+ equipmentName: toModificationOperation(sanitizeString(lineForm.equipmentName)),
114
+ properties: toModificationProperties(lineForm),
115
+ nominalV: toModificationOperation(lineForm.hvdcLine.nominalV),
116
+ r: toModificationOperation(lineForm.hvdcLine.r),
117
+ maxP: toModificationOperation(lineForm.hvdcLine.maxP),
118
+ operatorActivePowerLimitFromSide1ToSide2: toModificationOperation(
119
+ lineForm.hvdcLine.operatorActivePowerLimitSide1
120
+ ),
121
+ operatorActivePowerLimitFromSide2ToSide1: toModificationOperation(
122
+ lineForm.hvdcLine.operatorActivePowerLimitSide2
123
+ ),
124
+ convertersMode: toModificationOperation(lineForm.hvdcLine.convertersMode),
125
+ activePowerSetpoint: toModificationOperation(lineForm.hvdcLine.activePowerSetpoint),
126
+ angleDroopActivePowerControl: toModificationOperation(lineForm.hvdcLine.angleDroopActivePowerControl),
127
+ p0: toModificationOperation(lineForm.hvdcLine.p0),
128
+ droop: toModificationOperation(lineForm.hvdcLine.droop),
129
+ converterStation1: converterStationModificationFormToDto(
130
+ lineForm.converterStation1,
131
+ lineForm.stateEstimation.converterStation1
132
+ ),
133
+ converterStation2: converterStationModificationFormToDto(
134
+ lineForm.converterStation2,
135
+ lineForm.stateEstimation.converterStation2
136
+ )
137
+ };
138
+ };
139
+ export {
140
+ vscHvdcLineEstimationFormSchema,
141
+ vscHvdcLineModificationDtoToForm,
142
+ vscHvdcLineModificationEmptyFormData,
143
+ vscHvdcLineModificationFormSchema,
144
+ vscHvdcLineModificationFormToDto
145
+ };
@@ -13,6 +13,7 @@ export * from './by-filter';
13
13
  export * from './generator';
14
14
  export * from './battery';
15
15
  export * from './shunt-compensator';
16
+ export * from './hvdcLine';
16
17
  export * from './line';
17
18
  export * from './twoWindingsTransformer';
18
19
  export * from './static-var-compensator';