@gridsuite/commons-ui 0.249.0 → 0.250.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 (30) hide show
  1. package/dist/components/composite/reactQueryBuilder/CustomReactQueryBuilder.js +23 -18
  2. package/dist/components/composite/reactQueryBuilder/PropertyValueEditor.js +1 -1
  3. package/dist/features/index.js +6 -2
  4. package/dist/features/network-modifications/common/currentLimits/limitsPane.utils.d.ts +3 -3
  5. package/dist/features/network-modifications/common/currentLimits/limitsPane.utils.js +1 -1
  6. package/dist/features/network-modifications/common/index.js +1 -2
  7. package/dist/features/network-modifications/common/measurements/branchActiveReactivePowerForm.utils.js +1 -1
  8. package/dist/features/network-modifications/common/measurements/index.js +1 -2
  9. package/dist/features/network-modifications/common/measurements/injectionActiveReactivePowerForm.utils.d.ts +0 -8
  10. package/dist/features/network-modifications/common/measurements/injectionActiveReactivePowerForm.utils.js +0 -8
  11. package/dist/features/network-modifications/index.js +6 -2
  12. package/dist/features/network-modifications/line/catalog/segment.utils.d.ts +1 -1
  13. package/dist/features/network-modifications/line/common/LineDialogTabsContent.js +2 -2
  14. package/dist/features/network-modifications/line/common/line.types.d.ts +7 -0
  15. package/dist/features/network-modifications/line/creation/lineCreation.types.d.ts +1 -7
  16. package/dist/features/network-modifications/line/creation/lineCreation.utils.d.ts +1 -1
  17. package/dist/features/network-modifications/line/index.d.ts +1 -0
  18. package/dist/features/network-modifications/line/index.js +6 -1
  19. package/dist/features/network-modifications/line/modification/index.d.ts +8 -0
  20. package/dist/features/network-modifications/line/modification/index.js +7 -0
  21. package/dist/features/network-modifications/line/modification/lineModification.types.d.ts +43 -0
  22. package/dist/features/network-modifications/line/modification/lineModification.types.js +1 -0
  23. package/dist/features/network-modifications/line/modification/lineModification.utils.d.ts +154 -0
  24. package/dist/features/network-modifications/line/modification/lineModification.utils.js +193 -0
  25. package/dist/index.js +6 -2
  26. package/dist/translations/en/networkModificationsEn.d.ts +2 -0
  27. package/dist/translations/en/networkModificationsEn.js +2 -0
  28. package/dist/translations/fr/networkModificationsFr.d.ts +2 -0
  29. package/dist/translations/fr/networkModificationsFr.js +2 -0
  30. package/package.json +1 -1
@@ -16,7 +16,7 @@ import { ValueSelector } from "./ValueSelector.js";
16
16
  import { COMBINATOR_OPTIONS } from "../filter/expert/expertFilterConstants.js";
17
17
  import { ErrorInput } from "../../ui/reactHookForm/errorManagement/ErrorInput.js";
18
18
  import { FieldErrorAlert } from "../../ui/reactHookForm/errorManagement/FieldErrorAlert.js";
19
- import { countRules, queryValidator, getOperators } from "../filter/expert/expertFilterUtils.js";
19
+ import { getOperators, countRules, queryValidator } from "../filter/expert/expertFilterUtils.js";
20
20
  import { RemoveButton } from "./RemoveButton.js";
21
21
  import { FieldSelector } from "./FieldSelector.js";
22
22
  import { OperatorSelector } from "./OperatorSelector.js";
@@ -38,6 +38,22 @@ const customTranslations = {
38
38
  value: { title: "" },
39
39
  combinators: { title: "" }
40
40
  };
41
+ const dnd = { ...ReactDnD, ...ReactDndHtml5Backend };
42
+ const controlElements = {
43
+ addRuleAction: RuleAddButton,
44
+ addGroupAction: GroupAddButton,
45
+ combinatorSelector: CombinatorSelector,
46
+ removeRuleAction: RemoveButton,
47
+ removeGroupAction: RemoveButton,
48
+ valueEditor: ValueEditor,
49
+ operatorSelector: OperatorSelector,
50
+ fieldSelector: FieldSelector,
51
+ valueSourceSelector: ValueSelector
52
+ };
53
+ const accessibleDescriptionGenerator = () => "";
54
+ const controlClassnames = {
55
+ queryBuilder: "queryBuilder-branches"
56
+ };
41
57
  function CustomReactQueryBuilder(props) {
42
58
  const { name, fields } = props;
43
59
  const {
@@ -49,6 +65,7 @@ function CustomReactQueryBuilder(props) {
49
65
  } = useFormContext();
50
66
  const intl = useIntl();
51
67
  const query = watch(name);
68
+ const getOperatorsMemo = useCallback((fieldName) => getOperators(fieldName, intl), [intl]);
52
69
  const handleQueryChange = useCallback(
53
70
  (newQuery) => {
54
71
  const oldQuery = getValues(name);
@@ -68,7 +85,7 @@ function CustomReactQueryBuilder(props) {
68
85
  }));
69
86
  }, [intl]);
70
87
  return /* @__PURE__ */ jsxs(Fragment, { children: [
71
- /* @__PURE__ */ jsx(QueryBuilderMaterial, { children: /* @__PURE__ */ jsx(QueryBuilderDnD, { dnd: { ...ReactDnD, ...ReactDndHtml5Backend }, children: /* @__PURE__ */ jsx(
88
+ /* @__PURE__ */ jsx(QueryBuilderMaterial, { children: /* @__PURE__ */ jsx(QueryBuilderDnD, { dnd, children: /* @__PURE__ */ jsx(
72
89
  QueryBuilder,
73
90
  {
74
91
  fields,
@@ -76,24 +93,12 @@ function CustomReactQueryBuilder(props) {
76
93
  addRuleToNewGroups: true,
77
94
  combinators,
78
95
  onQueryChange: handleQueryChange,
79
- getOperators: (fieldName) => getOperators(fieldName, intl),
96
+ getOperators: getOperatorsMemo,
80
97
  validator: queryValidator,
81
- controlClassnames: {
82
- queryBuilder: "queryBuilder-branches"
83
- },
84
- controlElements: {
85
- addRuleAction: RuleAddButton,
86
- addGroupAction: GroupAddButton,
87
- combinatorSelector: CombinatorSelector,
88
- removeRuleAction: RemoveButton,
89
- removeGroupAction: RemoveButton,
90
- valueEditor: ValueEditor,
91
- operatorSelector: OperatorSelector,
92
- fieldSelector: FieldSelector,
93
- valueSourceSelector: ValueSelector
94
- },
98
+ controlClassnames,
99
+ controlElements,
95
100
  listsAsArrays: true,
96
- accessibleDescriptionGenerator: () => "",
101
+ accessibleDescriptionGenerator,
97
102
  translations: customTranslations
98
103
  }
99
104
  ) }) }),
@@ -46,7 +46,7 @@ function PropertyValueEditor(props) {
46
46
  },
47
47
  [valueEditorProps]
48
48
  );
49
- return /* @__PURE__ */ jsxs(Grid2, { container: true, spacing: 1, children: [
49
+ return /* @__PURE__ */ jsxs(Grid2, { container: true, spacing: 1, width: "100%", alignItems: "center", children: [
50
50
  /* @__PURE__ */ jsx(Grid2, { size: 4, children: /* @__PURE__ */ jsx(
51
51
  Autocomplete,
52
52
  {
@@ -74,7 +74,7 @@ import { PropertiesForm } from "./network-modifications/common/properties/Proper
74
74
  import { PropertyForm } from "./network-modifications/common/properties/PropertyForm.js";
75
75
  import { copyEquipmentPropertiesForCreation, createPropertyModification, creationPropertiesSchema, emptyProperties, fetchPredefinedProperties, getConcatenatedProperties, getFilledPropertiesFromModification, getPropertiesFromModification, getPropertyValue, initializedProperty, mergeModificationAndEquipmentProperties, modificationPropertiesSchema, toModificationProperties } from "./network-modifications/common/properties/propertyUtils.js";
76
76
  import { getPowerWithValidityEditData, getPowerWithValidityEmptyFormData, getPowerWithValidityValidationSchema } from "./network-modifications/common/measurements/powerWithValidity.utils.js";
77
- import { getInjectionActiveReactivePowerEditData, getInjectionActiveReactivePowerEditDataProperties, getInjectionActiveReactivePowerEmptyFormData, getInjectionActiveReactivePowerEmptyFormDataProperties, getInjectionActiveReactivePowerValidationSchema, getInjectionActiveReactivePowerValidationSchemaProperties } from "./network-modifications/common/measurements/injectionActiveReactivePowerForm.utils.js";
77
+ import { getInjectionActiveReactivePowerEditDataProperties, getInjectionActiveReactivePowerEmptyFormData, getInjectionActiveReactivePowerEmptyFormDataProperties, getInjectionActiveReactivePowerValidationSchema, getInjectionActiveReactivePowerValidationSchemaProperties } from "./network-modifications/common/measurements/injectionActiveReactivePowerForm.utils.js";
78
78
  import { getBranchActiveReactivePowerEditData, getBranchActiveReactivePowerEditDataProperties, getBranchActiveReactivePowerEmptyFormData, getBranchActiveReactivePowerEmptyFormDataProperties, getBranchActiveReactivePowerValidationSchema, getBranchActiveReactivePowerValidationSchemaObject, getBranchActiveReactivePowerValidationSchemaProperties } from "./network-modifications/common/measurements/branchActiveReactivePowerForm.utils.js";
79
79
  import { PowerWithValidityForm } from "./network-modifications/common/measurements/PowerWithValidityForm.js";
80
80
  import { PowerMeasurementsForm } from "./network-modifications/common/measurements/PowerMeasurementsForm.js";
@@ -206,6 +206,7 @@ import { LineDialogTabsContent } from "./network-modifications/line/common/LineD
206
206
  import { LineDialogHeader } from "./network-modifications/line/common/LineDialogHeader.js";
207
207
  import { LineForm } from "./network-modifications/line/common/LineForm.js";
208
208
  import { lineCreationDtoToForm, lineCreationEmptyFormData, lineCreationFormSchema, lineCreationFormToDto } from "./network-modifications/line/creation/lineCreation.utils.js";
209
+ import { lineModificationDtoToForm, lineModificationEmptyFormData, lineModificationFormSchema, lineModificationFormToDto } from "./network-modifications/line/modification/lineModification.utils.js";
209
210
  import { BuildStatusChip } from "./node/build-status-chip.js";
210
211
  import { BuildStatus } from "./node/constant.js";
211
212
  import { COLUMNS_WITHOUT_BORDER, DEPTH_CELL_WIDTH, DROP_FORBIDDEN_INDICATOR_BOTTOM, DROP_FORBIDDEN_INDICATOR_TOP, DROP_INDICATOR_BOTTOM, DROP_INDICATOR_TOP, MODIFICATION_ROW_HEIGHT, createCellBorderColor, createCellContentWrapperSx, createCellStyle, createEditDescriptionStyle, createHeaderCellStyle, createModificationNameCellStyle, createNameCellLabelBoxSx, createNameCellRootStyle, createRootNetworkChipCellSx, createRowSx, networkModificationTableStyles } from "./network-modification-table/network-modification-table-styles.js";
@@ -675,7 +676,6 @@ export {
675
676
  getCreateSwitchesValidationSchema,
676
677
  getFilledPropertiesFromModification,
677
678
  getHvdcLccDeletionSchema,
678
- getInjectionActiveReactivePowerEditData,
679
679
  getInjectionActiveReactivePowerEditDataProperties,
680
680
  getInjectionActiveReactivePowerEmptyFormData,
681
681
  getInjectionActiveReactivePowerEmptyFormDataProperties,
@@ -739,6 +739,10 @@ export {
739
739
  lineCreationEmptyFormData,
740
740
  lineCreationFormSchema,
741
741
  lineCreationFormToDto,
742
+ lineModificationDtoToForm,
743
+ lineModificationEmptyFormData,
744
+ lineModificationFormSchema,
745
+ lineModificationFormToDto,
742
746
  loadCreationDtoToForm,
743
747
  loadCreationEmptyFormData,
744
748
  loadCreationFormSchema,
@@ -68,7 +68,7 @@ export declare const getLimitsValidationSchemaProps: (isEquipmentModification?:
68
68
  }[] | undefined;
69
69
  selectedOperationalLimitsGroupId1: string | null | undefined;
70
70
  selectedOperationalLimitsGroupId2: string | null | undefined;
71
- enableOLGModification: boolean | undefined;
71
+ enableOLGModification: NonNullable<boolean | undefined>;
72
72
  }, import('yup').AnyObject, {
73
73
  operationalLimitsGroups: undefined;
74
74
  selectedOperationalLimitsGroupId1: undefined;
@@ -105,7 +105,7 @@ declare const limitsValidationSchemaCreation: (id: string, isModification: boole
105
105
  }[] | undefined;
106
106
  selectedOperationalLimitsGroupId1: string | null | undefined;
107
107
  selectedOperationalLimitsGroupId2: string | null | undefined;
108
- enableOLGModification: boolean | undefined;
108
+ enableOLGModification: NonNullable<boolean | undefined>;
109
109
  }, import('yup').AnyObject, {
110
110
  operationalLimitsGroups: undefined;
111
111
  selectedOperationalLimitsGroupId1: undefined;
@@ -142,7 +142,7 @@ export declare const getLimitsValidationSchema: (id?: string, isModification?: b
142
142
  }[] | undefined;
143
143
  selectedOperationalLimitsGroupId1: string | null | undefined;
144
144
  selectedOperationalLimitsGroupId2: string | null | undefined;
145
- enableOLGModification: boolean | undefined;
145
+ enableOLGModification: NonNullable<boolean | undefined>;
146
146
  }, import('yup').AnyObject, {
147
147
  operationalLimitsGroups: undefined;
148
148
  selectedOperationalLimitsGroupId1: undefined;
@@ -114,7 +114,7 @@ const getLimitsValidationSchemaProps = (isEquipmentModification = false) => obje
114
114
  }) : array(limitsGroupValidationSchema).required(),
115
115
  [FieldConstants.SELECTED_OPERATIONAL_LIMITS_GROUP_ID1]: string().nullable(),
116
116
  [FieldConstants.SELECTED_OPERATIONAL_LIMITS_GROUP_ID2]: string().nullable(),
117
- [FieldConstants.ENABLE_OLG_MODIFICATION]: boolean()
117
+ [FieldConstants.ENABLE_OLG_MODIFICATION]: boolean().required()
118
118
  });
119
119
  const limitsValidationSchemaCreation = (id, isModification) => {
120
120
  return { [id]: getLimitsValidationSchemaProps(isModification) };
@@ -3,7 +3,7 @@ import { PropertiesForm } from "./properties/PropertiesForm.js";
3
3
  import { PropertyForm } from "./properties/PropertyForm.js";
4
4
  import { copyEquipmentPropertiesForCreation, createPropertyModification, creationPropertiesSchema, emptyProperties, fetchPredefinedProperties, getConcatenatedProperties, getFilledPropertiesFromModification, getPropertiesFromModification, getPropertyValue, initializedProperty, mergeModificationAndEquipmentProperties, modificationPropertiesSchema, toModificationProperties } from "./properties/propertyUtils.js";
5
5
  import { getPowerWithValidityEditData, getPowerWithValidityEmptyFormData, getPowerWithValidityValidationSchema } from "./measurements/powerWithValidity.utils.js";
6
- import { getInjectionActiveReactivePowerEditData, getInjectionActiveReactivePowerEditDataProperties, getInjectionActiveReactivePowerEmptyFormData, getInjectionActiveReactivePowerEmptyFormDataProperties, getInjectionActiveReactivePowerValidationSchema, getInjectionActiveReactivePowerValidationSchemaProperties } from "./measurements/injectionActiveReactivePowerForm.utils.js";
6
+ import { getInjectionActiveReactivePowerEditDataProperties, getInjectionActiveReactivePowerEmptyFormData, getInjectionActiveReactivePowerEmptyFormDataProperties, getInjectionActiveReactivePowerValidationSchema, getInjectionActiveReactivePowerValidationSchemaProperties } from "./measurements/injectionActiveReactivePowerForm.utils.js";
7
7
  import { getBranchActiveReactivePowerEditData, getBranchActiveReactivePowerEditDataProperties, getBranchActiveReactivePowerEmptyFormData, getBranchActiveReactivePowerEmptyFormDataProperties, getBranchActiveReactivePowerValidationSchema, getBranchActiveReactivePowerValidationSchemaObject, getBranchActiveReactivePowerValidationSchemaProperties } from "./measurements/branchActiveReactivePowerForm.utils.js";
8
8
  import { PowerWithValidityForm } from "./measurements/PowerWithValidityForm.js";
9
9
  import { PowerMeasurementsForm } from "./measurements/PowerMeasurementsForm.js";
@@ -124,7 +124,6 @@ export {
124
124
  getConnectivityWithoutPositionValidationSchema,
125
125
  getCont1Cont2WithPositionEmptyFormData,
126
126
  getFilledPropertiesFromModification,
127
- getInjectionActiveReactivePowerEditData,
128
127
  getInjectionActiveReactivePowerEditDataProperties,
129
128
  getInjectionActiveReactivePowerEmptyFormData,
130
129
  getInjectionActiveReactivePowerEmptyFormDataProperties,
@@ -1,5 +1,5 @@
1
1
  import { object } from "yup";
2
- import { getPowerWithValidityEmptyFormData, getPowerWithValidityEditData, getPowerWithValidityValidationSchema } from "./powerWithValidity.utils.js";
2
+ import { getPowerWithValidityEmptyFormData, getPowerWithValidityValidationSchema, getPowerWithValidityEditData } from "./powerWithValidity.utils.js";
3
3
  import { FieldConstants } from "../../../../utils/constants/fieldConstants.js";
4
4
  import "../../../../utils/conversionUtils.js";
5
5
  import "../../../../utils/types/equipmentType.js";
@@ -1,5 +1,5 @@
1
1
  import { getPowerWithValidityEditData, getPowerWithValidityEmptyFormData, getPowerWithValidityValidationSchema } from "./powerWithValidity.utils.js";
2
- import { getInjectionActiveReactivePowerEditData, getInjectionActiveReactivePowerEditDataProperties, getInjectionActiveReactivePowerEmptyFormData, getInjectionActiveReactivePowerEmptyFormDataProperties, getInjectionActiveReactivePowerValidationSchema, getInjectionActiveReactivePowerValidationSchemaProperties } from "./injectionActiveReactivePowerForm.utils.js";
2
+ import { getInjectionActiveReactivePowerEditDataProperties, getInjectionActiveReactivePowerEmptyFormData, getInjectionActiveReactivePowerEmptyFormDataProperties, getInjectionActiveReactivePowerValidationSchema, getInjectionActiveReactivePowerValidationSchemaProperties } from "./injectionActiveReactivePowerForm.utils.js";
3
3
  import { getBranchActiveReactivePowerEditData, getBranchActiveReactivePowerEditDataProperties, getBranchActiveReactivePowerEmptyFormData, getBranchActiveReactivePowerEmptyFormDataProperties, getBranchActiveReactivePowerValidationSchema, getBranchActiveReactivePowerValidationSchemaObject, getBranchActiveReactivePowerValidationSchemaProperties } from "./branchActiveReactivePowerForm.utils.js";
4
4
  import { PowerWithValidityForm } from "./PowerWithValidityForm.js";
5
5
  import { PowerMeasurementsForm } from "./PowerMeasurementsForm.js";
@@ -17,7 +17,6 @@ export {
17
17
  getBranchActiveReactivePowerValidationSchema,
18
18
  getBranchActiveReactivePowerValidationSchemaObject,
19
19
  getBranchActiveReactivePowerValidationSchemaProperties,
20
- getInjectionActiveReactivePowerEditData,
21
20
  getInjectionActiveReactivePowerEditDataProperties,
22
21
  getInjectionActiveReactivePowerEmptyFormData,
23
22
  getInjectionActiveReactivePowerEmptyFormDataProperties,
@@ -48,11 +48,3 @@ export declare function getInjectionActiveReactivePowerEditDataProperties(inject
48
48
  validity: boolean;
49
49
  };
50
50
  };
51
- export declare function getInjectionActiveReactivePowerEditData(id: string, injectionData: any): {
52
- [id]: {
53
- [x: string]: {
54
- value: number;
55
- validity: boolean;
56
- };
57
- };
58
- };
@@ -37,15 +37,7 @@ function getInjectionActiveReactivePowerEditDataProperties(injectionData) {
37
37
  })
38
38
  };
39
39
  }
40
- function getInjectionActiveReactivePowerEditData(id, injectionData) {
41
- return {
42
- [id]: {
43
- ...getInjectionActiveReactivePowerEditDataProperties(injectionData)
44
- }
45
- };
46
- }
47
40
  export {
48
- getInjectionActiveReactivePowerEditData,
49
41
  getInjectionActiveReactivePowerEditDataProperties,
50
42
  getInjectionActiveReactivePowerEmptyFormData,
51
43
  getInjectionActiveReactivePowerEmptyFormDataProperties,
@@ -3,7 +3,7 @@ import { PropertiesForm } from "./common/properties/PropertiesForm.js";
3
3
  import { PropertyForm } from "./common/properties/PropertyForm.js";
4
4
  import { copyEquipmentPropertiesForCreation, createPropertyModification, creationPropertiesSchema, emptyProperties, fetchPredefinedProperties, getConcatenatedProperties, getFilledPropertiesFromModification, getPropertiesFromModification, getPropertyValue, initializedProperty, mergeModificationAndEquipmentProperties, modificationPropertiesSchema, toModificationProperties } from "./common/properties/propertyUtils.js";
5
5
  import { getPowerWithValidityEditData, getPowerWithValidityEmptyFormData, getPowerWithValidityValidationSchema } from "./common/measurements/powerWithValidity.utils.js";
6
- import { getInjectionActiveReactivePowerEditData, getInjectionActiveReactivePowerEditDataProperties, getInjectionActiveReactivePowerEmptyFormData, getInjectionActiveReactivePowerEmptyFormDataProperties, getInjectionActiveReactivePowerValidationSchema, getInjectionActiveReactivePowerValidationSchemaProperties } from "./common/measurements/injectionActiveReactivePowerForm.utils.js";
6
+ import { getInjectionActiveReactivePowerEditDataProperties, getInjectionActiveReactivePowerEmptyFormData, getInjectionActiveReactivePowerEmptyFormDataProperties, getInjectionActiveReactivePowerValidationSchema, getInjectionActiveReactivePowerValidationSchemaProperties } from "./common/measurements/injectionActiveReactivePowerForm.utils.js";
7
7
  import { getBranchActiveReactivePowerEditData, getBranchActiveReactivePowerEditDataProperties, getBranchActiveReactivePowerEmptyFormData, getBranchActiveReactivePowerEmptyFormDataProperties, getBranchActiveReactivePowerValidationSchema, getBranchActiveReactivePowerValidationSchemaObject, getBranchActiveReactivePowerValidationSchemaProperties } from "./common/measurements/branchActiveReactivePowerForm.utils.js";
8
8
  import { PowerWithValidityForm } from "./common/measurements/PowerWithValidityForm.js";
9
9
  import { PowerMeasurementsForm } from "./common/measurements/PowerMeasurementsForm.js";
@@ -135,6 +135,7 @@ import { LineDialogTabsContent } from "./line/common/LineDialogTabsContent.js";
135
135
  import { LineDialogHeader } from "./line/common/LineDialogHeader.js";
136
136
  import { LineForm } from "./line/common/LineForm.js";
137
137
  import { lineCreationDtoToForm, lineCreationEmptyFormData, lineCreationFormSchema, lineCreationFormToDto } from "./line/creation/lineCreation.utils.js";
138
+ import { lineModificationDtoToForm, lineModificationEmptyFormData, lineModificationFormSchema, lineModificationFormToDto } from "./line/modification/lineModification.utils.js";
138
139
  export {
139
140
  APPLICABILITY,
140
141
  ActivePowerControlForm,
@@ -310,7 +311,6 @@ export {
310
311
  getCreateSwitchesValidationSchema,
311
312
  getFilledPropertiesFromModification,
312
313
  getHvdcLccDeletionSchema,
313
- getInjectionActiveReactivePowerEditData,
314
314
  getInjectionActiveReactivePowerEditDataProperties,
315
315
  getInjectionActiveReactivePowerEmptyFormData,
316
316
  getInjectionActiveReactivePowerEmptyFormDataProperties,
@@ -357,6 +357,10 @@ export {
357
357
  lineCreationEmptyFormData,
358
358
  lineCreationFormSchema,
359
359
  lineCreationFormToDto,
360
+ lineModificationDtoToForm,
361
+ lineModificationEmptyFormData,
362
+ lineModificationFormSchema,
363
+ lineModificationFormToDto,
360
364
  loadCreationDtoToForm,
361
365
  loadCreationEmptyFormData,
362
366
  loadCreationFormSchema,
@@ -1,7 +1,7 @@
1
1
  import { InferType } from 'yup';
2
2
  import { CurrentLimitsInfo } from './lineCatalog.type';
3
3
  import { OperationalLimitsGroupFormSchema } from '../../common/currentLimits/operationalLimitsGroups/operationalLimitsGroups.types';
4
- import { LineSegmentInfos } from '../creation/lineCreation.types';
4
+ import { LineSegmentInfos } from '../common/line.types';
5
5
  import { FieldConstants } from '../../../../utils';
6
6
  export declare const SegmentTemporaryLimitSchema: import('yup').ObjectSchema<{
7
7
  limitValue: number;
@@ -86,8 +86,8 @@ function LineDialogTabsContent({
86
86
  }
87
87
  )
88
88
  ] }),
89
- /* @__PURE__ */ jsx(Box, { hidden: tabIndex !== LineDialogTab.CHARACTERISTICS_TAB, p: 1, children: /* @__PURE__ */ jsx(LineCharacteristicsPane, { lineToModify, isModification }) }),
90
- /* @__PURE__ */ jsx(Box, { hidden: tabIndex !== LineDialogTab.LIMITS_TAB, p: 1, children: /* @__PURE__ */ jsx(LimitsPane, { equipmentToModify: lineToModify, clearableFields }) }),
89
+ /* @__PURE__ */ jsx(Box, { hidden: tabIndex !== LineDialogTab.CHARACTERISTICS_TAB, children: /* @__PURE__ */ jsx(LineCharacteristicsPane, { lineToModify, isModification }) }),
90
+ /* @__PURE__ */ jsx(Box, { hidden: tabIndex !== LineDialogTab.LIMITS_TAB, children: /* @__PURE__ */ jsx(LimitsPane, { equipmentToModify: lineToModify, clearableFields }) }),
91
91
  isModification && /* @__PURE__ */ jsx(Box, { hidden: tabIndex !== LineDialogTab.STATE_ESTIMATION_TAB, children: /* @__PURE__ */ jsx(BranchActiveReactivePowerMeasurementsForm, { equipmentToModify: lineToModify }) })
92
92
  ] });
93
93
  }
@@ -1,6 +1,13 @@
1
1
  import { ConnectablePositionInfos } from '../../common/connectivity/connectivity.type';
2
2
  import { CurrentLimitsData } from '../../common/currentLimits/limits.types';
3
3
  import { EquipmentWithProperties } from '../../common/properties/propertyUtils';
4
+ export interface LineSegmentInfos {
5
+ segmentTypeId: string;
6
+ segmentDistanceValue: number;
7
+ area: string | null;
8
+ temperature: string;
9
+ shapeFactor: number | null;
10
+ }
4
11
  export type BranchInfos = EquipmentWithProperties & {
5
12
  name: string;
6
13
  voltageLevelId1: string;
@@ -1,13 +1,7 @@
1
1
  import { ModificationType } from '../../../../utils';
2
2
  import { Property } from '../../common/properties/properties.type';
3
3
  import { OperationalLimitsGroupFormSchema } from '../../common/currentLimits/operationalLimitsGroups/operationalLimitsGroups.types';
4
- export interface LineSegmentInfos {
5
- segmentTypeId: string;
6
- segmentDistanceValue: number;
7
- area: string | null;
8
- temperature: string;
9
- shapeFactor: number | null;
10
- }
4
+ import { LineSegmentInfos } from '../common/line.types';
11
5
  export interface LineCreationDto {
12
6
  type: ModificationType;
13
7
  uuid?: string | null;
@@ -39,7 +39,6 @@ export declare const lineCreationFormSchema: (displayConnectivity: boolean) => i
39
39
  x?: number | null | undefined;
40
40
  };
41
41
  limits: {
42
- enableOLGModification?: boolean | undefined;
43
42
  operationalLimitsGroups?: {
44
43
  AdditionalProperties?: {
45
44
  previousValue?: string | null | undefined;
@@ -67,6 +66,7 @@ export declare const lineCreationFormSchema: (displayConnectivity: boolean) => i
67
66
  }[] | undefined;
68
67
  selectedOperationalLimitsGroupId1?: string | null | undefined;
69
68
  selectedOperationalLimitsGroupId2?: string | null | undefined;
69
+ enableOLGModification: NonNullable<boolean | undefined>;
70
70
  };
71
71
  stateEstimation: {
72
72
  [x: string]: {
@@ -8,3 +8,4 @@ export * from './characteristics';
8
8
  export * from './catalog';
9
9
  export * from './common';
10
10
  export * from './creation';
11
+ export * from './modification';
@@ -8,6 +8,7 @@ import { LineDialogTabsContent } from "./common/LineDialogTabsContent.js";
8
8
  import { LineDialogHeader } from "./common/LineDialogHeader.js";
9
9
  import { LineForm } from "./common/LineForm.js";
10
10
  import { lineCreationDtoToForm, lineCreationEmptyFormData, lineCreationFormSchema, lineCreationFormToDto } from "./creation/lineCreation.utils.js";
11
+ import { lineModificationDtoToForm, lineModificationEmptyFormData, lineModificationFormSchema, lineModificationFormToDto } from "./modification/lineModification.utils.js";
11
12
  export {
12
13
  CATEGORIES_TABS,
13
14
  LINE_TAB_FIELDS,
@@ -33,5 +34,9 @@ export {
33
34
  lineCreationDtoToForm,
34
35
  lineCreationEmptyFormData,
35
36
  lineCreationFormSchema,
36
- lineCreationFormToDto
37
+ lineCreationFormToDto,
38
+ lineModificationDtoToForm,
39
+ lineModificationEmptyFormData,
40
+ lineModificationFormSchema,
41
+ lineModificationFormToDto
37
42
  };
@@ -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 './lineModification.types';
8
+ export * from './lineModification.utils';
@@ -0,0 +1,7 @@
1
+ import { lineModificationDtoToForm, lineModificationEmptyFormData, lineModificationFormSchema, lineModificationFormToDto } from "./lineModification.utils.js";
2
+ export {
3
+ lineModificationDtoToForm,
4
+ lineModificationEmptyFormData,
5
+ lineModificationFormSchema,
6
+ lineModificationFormToDto
7
+ };
@@ -0,0 +1,43 @@
1
+ import { Property } from '../../common/properties/properties.type';
2
+ import { AttributeModification, ModificationType } from '../../../../utils';
3
+ import { OperationalLimitsGroup } from '../../common/currentLimits/operationalLimitsGroups/operationalLimitsGroups.types';
4
+ import { LineSegmentInfos } from '../common/line.types';
5
+ export interface LineModificationDto {
6
+ type: ModificationType;
7
+ equipmentId: string;
8
+ equipmentName: AttributeModification<string> | null;
9
+ properties: Property[] | null;
10
+ r: AttributeModification<number> | null;
11
+ x: AttributeModification<number> | null;
12
+ enableOLGModification: boolean;
13
+ operationalLimitsGroups: OperationalLimitsGroup[];
14
+ operationalLimitsGroupsModificationType: 'MODIFY' | 'REPLACE' | null;
15
+ selectedOperationalLimitsGroupId1: AttributeModification<string> | null;
16
+ selectedOperationalLimitsGroupId2: AttributeModification<string> | null;
17
+ voltageLevelId1: AttributeModification<string> | null;
18
+ voltageLevelId2: AttributeModification<string> | null;
19
+ busOrBusbarSectionId1: AttributeModification<string> | null;
20
+ busOrBusbarSectionId2: AttributeModification<string> | null;
21
+ connectionName1: AttributeModification<string> | null;
22
+ connectionName2: AttributeModification<string> | null;
23
+ connectionDirection1: AttributeModification<string> | null;
24
+ connectionDirection2: AttributeModification<string> | null;
25
+ connectionPosition1: AttributeModification<number> | null;
26
+ connectionPosition2: AttributeModification<number> | null;
27
+ terminal1Connected: AttributeModification<boolean> | null;
28
+ terminal2Connected: AttributeModification<boolean> | null;
29
+ p1MeasurementValue: AttributeModification<number> | null;
30
+ p1MeasurementValidity: AttributeModification<boolean> | null;
31
+ q1MeasurementValue: AttributeModification<number> | null;
32
+ q1MeasurementValidity: AttributeModification<boolean> | null;
33
+ p2MeasurementValue: AttributeModification<number> | null;
34
+ p2MeasurementValidity: AttributeModification<boolean> | null;
35
+ q2MeasurementValue: AttributeModification<number> | null;
36
+ q2MeasurementValidity: AttributeModification<boolean> | null;
37
+ g1: AttributeModification<number> | null;
38
+ b1: AttributeModification<number> | null;
39
+ g2: AttributeModification<number> | null;
40
+ b2: AttributeModification<number> | null;
41
+ lineSegments?: LineSegmentInfos[];
42
+ applySegmentsLimits: boolean;
43
+ }
@@ -0,0 +1,154 @@
1
+ import { InferType } from 'yup';
2
+ import { IntlShape } from 'react-intl';
3
+ import { DeepNullable } from '../../../../utils';
4
+ import { LineModificationDto } from './lineModification.types';
5
+ export declare const lineModificationFormSchema: import('yup').ObjectSchema<NonNullable<{
6
+ equipmentID: string;
7
+ equipmentName: string | null | undefined;
8
+ connectivity: {
9
+ connectivity1: {
10
+ terminalConnected?: boolean | null | undefined;
11
+ connectionDirection?: string | null | undefined;
12
+ connectionName?: string | undefined;
13
+ connectionPosition?: number | null | undefined;
14
+ busOrBusbarSection: {
15
+ id?: string | undefined;
16
+ } | null;
17
+ voltageLevel: {
18
+ id?: string | undefined;
19
+ } | null;
20
+ };
21
+ connectivity2: {
22
+ terminalConnected?: boolean | null | undefined;
23
+ connectionDirection?: string | null | undefined;
24
+ connectionName?: string | undefined;
25
+ connectionPosition?: number | null | undefined;
26
+ busOrBusbarSection: {
27
+ id?: string | undefined;
28
+ } | null;
29
+ voltageLevel: {
30
+ id?: string | undefined;
31
+ } | null;
32
+ };
33
+ };
34
+ characteristics: {
35
+ b1?: number | null | undefined;
36
+ b2?: number | null | undefined;
37
+ g1?: number | null | undefined;
38
+ g2?: number | null | undefined;
39
+ r?: number | null | undefined;
40
+ x?: number | null | undefined;
41
+ };
42
+ limits: {
43
+ operationalLimitsGroups?: {
44
+ AdditionalProperties?: {
45
+ previousValue?: string | null | undefined;
46
+ added: NonNullable<boolean | undefined>;
47
+ deletionMark: NonNullable<boolean | undefined>;
48
+ name: string;
49
+ value: string;
50
+ }[] | undefined;
51
+ limitsProperties?: {
52
+ name: string;
53
+ value: string;
54
+ }[] | undefined;
55
+ operationalLimitsGroupsIsDuplicate?: boolean | null | undefined;
56
+ applicability: string;
57
+ currentLimits: {
58
+ temporaryLimits?: {
59
+ name?: string | null | undefined;
60
+ value?: number | null | undefined;
61
+ acceptableDuration?: number | null | undefined;
62
+ }[] | undefined;
63
+ permanentLimit: number;
64
+ };
65
+ id: string;
66
+ name: string;
67
+ }[] | undefined;
68
+ selectedOperationalLimitsGroupId1?: string | null | undefined;
69
+ selectedOperationalLimitsGroupId2?: string | null | undefined;
70
+ enableOLGModification: NonNullable<boolean | undefined>;
71
+ };
72
+ stateEstimation: {
73
+ [x: string]: {
74
+ validity?: boolean | null | undefined;
75
+ value?: number | null | undefined;
76
+ };
77
+ [x: number]: {
78
+ validity?: boolean | null | undefined;
79
+ value?: number | null | undefined;
80
+ };
81
+ };
82
+ lineSegments: {
83
+ segmentDistanceValue: number;
84
+ segmentTypeId: string;
85
+ area: string | null;
86
+ temperature: string | null;
87
+ shapeFactor: number | null;
88
+ }[] | undefined;
89
+ applySegmentsLimits: NonNullable<boolean | undefined>;
90
+ } & {
91
+ AdditionalProperties: {
92
+ previousValue?: string | null | undefined;
93
+ value?: string | null | undefined;
94
+ added: NonNullable<boolean | undefined>;
95
+ deletionMark: NonNullable<boolean | undefined>;
96
+ name: string;
97
+ }[] | undefined;
98
+ }>, import('yup').AnyObject, {
99
+ equipmentID: undefined;
100
+ equipmentName: undefined;
101
+ connectivity: {
102
+ connectivity1: {
103
+ voltageLevel: {
104
+ id: undefined;
105
+ };
106
+ busOrBusbarSection: {
107
+ id: undefined;
108
+ };
109
+ connectionDirection: undefined;
110
+ connectionName: undefined;
111
+ connectionPosition: undefined;
112
+ terminalConnected: undefined;
113
+ };
114
+ connectivity2: {
115
+ voltageLevel: {
116
+ id: undefined;
117
+ };
118
+ busOrBusbarSection: {
119
+ id: undefined;
120
+ };
121
+ connectionDirection: undefined;
122
+ connectionName: undefined;
123
+ connectionPosition: undefined;
124
+ terminalConnected: undefined;
125
+ };
126
+ };
127
+ characteristics: {
128
+ r: undefined;
129
+ x: undefined;
130
+ b1: undefined;
131
+ g1: undefined;
132
+ b2: undefined;
133
+ g2: undefined;
134
+ };
135
+ limits: {
136
+ operationalLimitsGroups: undefined;
137
+ selectedOperationalLimitsGroupId1: undefined;
138
+ selectedOperationalLimitsGroupId2: undefined;
139
+ enableOLGModification: undefined;
140
+ };
141
+ stateEstimation: {
142
+ [x: string]: {
143
+ value: undefined;
144
+ validity: undefined;
145
+ };
146
+ };
147
+ lineSegments: "";
148
+ applySegmentsLimits: undefined;
149
+ AdditionalProperties: "";
150
+ }, "">;
151
+ export type LineModificationFormData = InferType<typeof lineModificationFormSchema>;
152
+ export declare const lineModificationEmptyFormData: DeepNullable<LineModificationFormData>;
153
+ export declare const lineModificationDtoToForm: (lineDto: LineModificationDto, includePreviousValues?: boolean) => LineModificationFormData;
154
+ export declare const lineModificationFormToDto: (line: LineModificationFormData, intl: IntlShape) => LineModificationDto;
@@ -0,0 +1,193 @@
1
+ import { object, boolean, string } from "yup";
2
+ import { FieldConstants } from "../../../../utils/constants/fieldConstants.js";
3
+ import { convertInputValue, toModificationOperation, convertOutputValue } from "../../../../utils/conversionUtils.js";
4
+ import "../../../../utils/types/equipmentType.js";
5
+ import { ModificationType } from "../../../../utils/types/modificationType.js";
6
+ import { FieldType } from "../../../../utils/types/fieldType.js";
7
+ import "react/jsx-runtime";
8
+ import "@mui/icons-material";
9
+ import { sanitizeString } from "../../../../utils/ts-utils.js";
10
+ import { getBranchConnectivityWithPositionSchema, getBranchConnectivityWithPositionEmptyFormDataProps, getConnectivityFormDataProps } from "../../common/connectivity/connectivityForm.utils.js";
11
+ import "@mui/material";
12
+ import "react";
13
+ import "react-intl";
14
+ import "../../../../components/ui/overflowableText/OverflowableText.js";
15
+ import "react-hook-form";
16
+ import "localized-countries";
17
+ import "localized-countries/data/fr";
18
+ import "localized-countries/data/en";
19
+ import "notistack";
20
+ import "../../../../components/ui/reactHookForm/provider/CustomFormProvider.js";
21
+ import "../../../../components/ui/treeViewFinder/TreeViewFinder.js";
22
+ import "../../../../components/ui/reactHookForm/numbers/RangeInput.js";
23
+ import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
24
+ import "@material-symbols/svg-400/outlined/arrows_output.svg?react";
25
+ import "@material-symbols/svg-400/outlined/arrows_input.svg?react";
26
+ import "@material-symbols/svg-400/outlined/left_panel_close.svg?react";
27
+ import "@material-symbols/svg-400/outlined/add_notes.svg?react";
28
+ import "../../../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
29
+ import "../../../../components/ui/reactHookForm/expandableInput/ExpandableInput.js";
30
+ import "../../../../components/ui/reactHookForm/directory-item-input/directory-item-utils.js";
31
+ import "@hello-pangea/dnd";
32
+ import "../../../../components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js";
33
+ import "../../../../components/ui/snackbarProvider/SnackbarProvider.js";
34
+ import "mui-nested-menu";
35
+ import "react-resizable-panels";
36
+ import "react-papaparse";
37
+ import { modificationPropertiesSchema, getPropertiesFromModification, toModificationProperties } from "../../common/properties/propertyUtils.js";
38
+ import { getLineCharacteristicsValidationSchemaProps, getLineCharacteristicsEmptyFormData } from "../characteristics/lineCharacteristicsPane.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 { getLimitsValidationSchemaProps, getLimitsEmptyFormDataProps, getAllLimitsFormDataProperties, formatOpLimitGroupsToFormInfos, addOperationTypeToSelectedOpLG, addModificationTypeToOpLimitsGroups, sanitizeLimitsGroups } from "../../common/currentLimits/limitsPane.utils.js";
67
+ import { getBranchActiveReactivePowerValidationSchemaObject, getBranchActiveReactivePowerEmptyFormDataProperties, getBranchActiveReactivePowerEditDataProperties } from "../../common/measurements/branchActiveReactivePowerForm.utils.js";
68
+ import { LineSegmentsInfoSchema, convertToLineSegmentInfos } from "../catalog/segment.utils.js";
69
+ import "../../common/regulatingTerminal/RegulatingTerminalForm.js";
70
+ import "@mui/material/colors";
71
+ import "@mui/x-charts";
72
+ import { OPERATIONAL_LIMITS_GROUPS_MODIFICATION_TYPE } from "../../common/currentLimits/operationalLimitsGroups/operationalLimitsGroups.types.js";
73
+ const lineModificationFormSchema = object().shape({
74
+ [FieldConstants.EQUIPMENT_ID]: string().required(),
75
+ [FieldConstants.EQUIPMENT_NAME]: string().nullable(),
76
+ [FieldConstants.CONNECTIVITY]: getBranchConnectivityWithPositionSchema(true, true),
77
+ [FieldConstants.CHARACTERISTICS]: getLineCharacteristicsValidationSchemaProps(true),
78
+ [FieldConstants.LIMITS]: getLimitsValidationSchemaProps(true),
79
+ [FieldConstants.STATE_ESTIMATION]: getBranchActiveReactivePowerValidationSchemaObject(),
80
+ [FieldConstants.LINE_SEGMENTS]: LineSegmentsInfoSchema,
81
+ [FieldConstants.APPLY_SEGMENTS_LIMITS]: boolean().required()
82
+ }).concat(modificationPropertiesSchema).required();
83
+ const lineModificationEmptyFormData = {
84
+ [FieldConstants.EQUIPMENT_ID]: "",
85
+ [FieldConstants.EQUIPMENT_NAME]: "",
86
+ [FieldConstants.CONNECTIVITY]: getBranchConnectivityWithPositionEmptyFormDataProps(true),
87
+ [FieldConstants.CHARACTERISTICS]: getLineCharacteristicsEmptyFormData(),
88
+ [FieldConstants.LIMITS]: getLimitsEmptyFormDataProps(true),
89
+ [FieldConstants.STATE_ESTIMATION]: getBranchActiveReactivePowerEmptyFormDataProperties(),
90
+ [FieldConstants.LINE_SEGMENTS]: [],
91
+ [FieldConstants.APPLY_SEGMENTS_LIMITS]: false,
92
+ AdditionalProperties: []
93
+ };
94
+ const lineModificationDtoToForm = (lineDto, includePreviousValues = true) => {
95
+ return {
96
+ equipmentID: lineDto.equipmentId,
97
+ equipmentName: lineDto.equipmentName?.value ?? "",
98
+ ...getPropertiesFromModification(lineDto?.properties, includePreviousValues),
99
+ limits: getAllLimitsFormDataProperties(
100
+ formatOpLimitGroupsToFormInfos(lineDto.operationalLimitsGroups),
101
+ lineDto.selectedOperationalLimitsGroupId1?.value ?? null,
102
+ lineDto.selectedOperationalLimitsGroupId2?.value ?? null,
103
+ lineDto.enableOLGModification
104
+ ),
105
+ connectivity: {
106
+ connectivity1: getConnectivityFormDataProps({
107
+ voltageLevelId: lineDto?.voltageLevelId1?.value ?? null,
108
+ busbarSectionId: lineDto?.busOrBusbarSectionId1?.value ?? null,
109
+ connectionName: lineDto?.connectionName1?.value ?? "",
110
+ connectionDirection: lineDto?.connectionDirection1?.value ?? null,
111
+ connectionPosition: lineDto?.connectionPosition1?.value ?? null,
112
+ terminalConnected: lineDto?.terminal1Connected?.value ?? null,
113
+ isEquipmentModification: true
114
+ }),
115
+ connectivity2: getConnectivityFormDataProps({
116
+ voltageLevelId: lineDto?.voltageLevelId2?.value ?? null,
117
+ busbarSectionId: lineDto?.busOrBusbarSectionId2?.value ?? null,
118
+ connectionName: lineDto?.connectionName2?.value ?? "",
119
+ connectionDirection: lineDto?.connectionDirection2?.value ?? null,
120
+ connectionPosition: lineDto?.connectionPosition2?.value ?? null,
121
+ terminalConnected: lineDto?.terminal2Connected?.value ?? null,
122
+ isEquipmentModification: true
123
+ })
124
+ },
125
+ stateEstimation: getBranchActiveReactivePowerEditDataProperties(lineDto),
126
+ characteristics: {
127
+ r: lineDto.r?.value ?? null,
128
+ x: lineDto.x?.value ?? null,
129
+ g1: convertInputValue(FieldType.G1, lineDto.g1?.value ?? null),
130
+ b1: convertInputValue(FieldType.B1, lineDto.b1?.value ?? null),
131
+ g2: convertInputValue(FieldType.G2, lineDto.g2?.value ?? null),
132
+ b2: convertInputValue(FieldType.B2, lineDto.b2?.value ?? null)
133
+ },
134
+ lineSegments: lineDto.lineSegments,
135
+ applySegmentsLimits: lineDto.applySegmentsLimits ?? true
136
+ };
137
+ };
138
+ const lineModificationFormToDto = (line, intl) => {
139
+ const connectivity1 = line.connectivity?.connectivity1;
140
+ const connectivity2 = line.connectivity?.connectivity2;
141
+ const { characteristics, limits } = line;
142
+ return {
143
+ type: ModificationType.LINE_MODIFICATION,
144
+ equipmentId: line.equipmentID,
145
+ equipmentName: toModificationOperation(sanitizeString(line.equipmentName) ?? ""),
146
+ r: toModificationOperation(characteristics.r),
147
+ x: toModificationOperation(characteristics.x),
148
+ g1: toModificationOperation(convertOutputValue(FieldType.G1, characteristics.g1)),
149
+ g2: toModificationOperation(convertOutputValue(FieldType.G2, characteristics.g2)),
150
+ b1: toModificationOperation(convertOutputValue(FieldType.B1, characteristics.b1)),
151
+ b2: toModificationOperation(convertOutputValue(FieldType.B2, characteristics.b2)),
152
+ enableOLGModification: limits.enableOLGModification,
153
+ operationalLimitsGroupsModificationType: limits.enableOLGModification ? OPERATIONAL_LIMITS_GROUPS_MODIFICATION_TYPE.REPLACE : null,
154
+ operationalLimitsGroups: limits.enableOLGModification ? addModificationTypeToOpLimitsGroups(sanitizeLimitsGroups(limits.operationalLimitsGroups)) : [],
155
+ selectedOperationalLimitsGroupId1: addOperationTypeToSelectedOpLG(
156
+ limits.selectedOperationalLimitsGroupId1,
157
+ intl.formatMessage({ id: "None" })
158
+ ),
159
+ selectedOperationalLimitsGroupId2: addOperationTypeToSelectedOpLG(
160
+ limits.selectedOperationalLimitsGroupId2,
161
+ intl.formatMessage({ id: "None" })
162
+ ),
163
+ voltageLevelId1: toModificationOperation(connectivity1.voltageLevel?.id),
164
+ busOrBusbarSectionId1: toModificationOperation(connectivity1.busOrBusbarSection?.id),
165
+ connectionName1: toModificationOperation(sanitizeString(connectivity1.connectionName)),
166
+ connectionDirection1: toModificationOperation(connectivity1.connectionDirection),
167
+ connectionPosition1: toModificationOperation(connectivity1.connectionPosition),
168
+ terminal1Connected: toModificationOperation(connectivity1.terminalConnected),
169
+ voltageLevelId2: toModificationOperation(connectivity2.voltageLevel?.id),
170
+ busOrBusbarSectionId2: toModificationOperation(connectivity2.busOrBusbarSection?.id),
171
+ connectionName2: toModificationOperation(sanitizeString(connectivity2.connectionName)),
172
+ connectionDirection2: toModificationOperation(connectivity2.connectionDirection),
173
+ connectionPosition2: toModificationOperation(connectivity2.connectionPosition),
174
+ terminal2Connected: toModificationOperation(connectivity2.terminalConnected),
175
+ properties: toModificationProperties(line),
176
+ p1MeasurementValue: toModificationOperation(line.stateEstimation?.measurementP1?.value),
177
+ p1MeasurementValidity: toModificationOperation(line.stateEstimation?.measurementP1?.validity),
178
+ q1MeasurementValue: toModificationOperation(line.stateEstimation?.measurementQ1?.value),
179
+ q1MeasurementValidity: toModificationOperation(line.stateEstimation?.measurementQ1?.validity),
180
+ p2MeasurementValue: toModificationOperation(line.stateEstimation?.measurementP2?.value),
181
+ p2MeasurementValidity: toModificationOperation(line.stateEstimation?.measurementP2?.validity),
182
+ q2MeasurementValue: toModificationOperation(line.stateEstimation?.measurementQ2?.value),
183
+ q2MeasurementValidity: toModificationOperation(line.stateEstimation?.measurementQ2?.validity),
184
+ lineSegments: convertToLineSegmentInfos(line.lineSegments),
185
+ applySegmentsLimits: line.applySegmentsLimits ?? true
186
+ };
187
+ };
188
+ export {
189
+ lineModificationDtoToForm,
190
+ lineModificationEmptyFormData,
191
+ lineModificationFormSchema,
192
+ lineModificationFormToDto
193
+ };
package/dist/index.js CHANGED
@@ -232,7 +232,7 @@ import { PropertiesForm } from "./features/network-modifications/common/properti
232
232
  import { PropertyForm } from "./features/network-modifications/common/properties/PropertyForm.js";
233
233
  import { copyEquipmentPropertiesForCreation, createPropertyModification, creationPropertiesSchema, emptyProperties, fetchPredefinedProperties, getConcatenatedProperties, getFilledPropertiesFromModification, getPropertiesFromModification, getPropertyValue, initializedProperty, mergeModificationAndEquipmentProperties, modificationPropertiesSchema, toModificationProperties } from "./features/network-modifications/common/properties/propertyUtils.js";
234
234
  import { getPowerWithValidityEditData, getPowerWithValidityEmptyFormData, getPowerWithValidityValidationSchema } from "./features/network-modifications/common/measurements/powerWithValidity.utils.js";
235
- import { getInjectionActiveReactivePowerEditData, getInjectionActiveReactivePowerEditDataProperties, getInjectionActiveReactivePowerEmptyFormData, getInjectionActiveReactivePowerEmptyFormDataProperties, getInjectionActiveReactivePowerValidationSchema, getInjectionActiveReactivePowerValidationSchemaProperties } from "./features/network-modifications/common/measurements/injectionActiveReactivePowerForm.utils.js";
235
+ import { getInjectionActiveReactivePowerEditDataProperties, getInjectionActiveReactivePowerEmptyFormData, getInjectionActiveReactivePowerEmptyFormDataProperties, getInjectionActiveReactivePowerValidationSchema, getInjectionActiveReactivePowerValidationSchemaProperties } from "./features/network-modifications/common/measurements/injectionActiveReactivePowerForm.utils.js";
236
236
  import { getBranchActiveReactivePowerEditData, getBranchActiveReactivePowerEditDataProperties, getBranchActiveReactivePowerEmptyFormData, getBranchActiveReactivePowerEmptyFormDataProperties, getBranchActiveReactivePowerValidationSchema, getBranchActiveReactivePowerValidationSchemaObject, getBranchActiveReactivePowerValidationSchemaProperties } from "./features/network-modifications/common/measurements/branchActiveReactivePowerForm.utils.js";
237
237
  import { PowerWithValidityForm } from "./features/network-modifications/common/measurements/PowerWithValidityForm.js";
238
238
  import { PowerMeasurementsForm } from "./features/network-modifications/common/measurements/PowerMeasurementsForm.js";
@@ -397,6 +397,7 @@ import { LineDialogTabsContent } from "./features/network-modifications/line/com
397
397
  import { LineDialogHeader } from "./features/network-modifications/line/common/LineDialogHeader.js";
398
398
  import { LineForm } from "./features/network-modifications/line/common/LineForm.js";
399
399
  import { lineCreationDtoToForm, lineCreationEmptyFormData, lineCreationFormSchema, lineCreationFormToDto } from "./features/network-modifications/line/creation/lineCreation.utils.js";
400
+ import { lineModificationDtoToForm, lineModificationEmptyFormData, lineModificationFormSchema, lineModificationFormToDto } from "./features/network-modifications/line/modification/lineModification.utils.js";
400
401
  import { BuildStatusChip } from "./features/node/build-status-chip.js";
401
402
  import { BuildStatus } from "./features/node/constant.js";
402
403
  import { COLUMNS_WITHOUT_BORDER, DEPTH_CELL_WIDTH, DROP_FORBIDDEN_INDICATOR_BOTTOM, DROP_FORBIDDEN_INDICATOR_TOP, DROP_INDICATOR_BOTTOM, DROP_INDICATOR_TOP, MODIFICATION_ROW_HEIGHT, createCellBorderColor, createCellContentWrapperSx, createCellStyle, createEditDescriptionStyle, createHeaderCellStyle, createModificationNameCellStyle, createNameCellLabelBoxSx, createNameCellRootStyle, createRootNetworkChipCellSx, createRowSx, networkModificationTableStyles } from "./features/network-modification-table/network-modification-table-styles.js";
@@ -1367,7 +1368,6 @@ export {
1367
1368
  getHvdcLccDeletionSchema,
1368
1369
  getIdOrSelf,
1369
1370
  getIdOrValue,
1370
- getInjectionActiveReactivePowerEditData,
1371
1371
  getInjectionActiveReactivePowerEditDataProperties,
1372
1372
  getInjectionActiveReactivePowerEmptyFormData,
1373
1373
  getInjectionActiveReactivePowerEmptyFormDataProperties,
@@ -1483,6 +1483,10 @@ export {
1483
1483
  lineCreationEmptyFormData,
1484
1484
  lineCreationFormSchema,
1485
1485
  lineCreationFormToDto,
1486
+ lineModificationDtoToForm,
1487
+ lineModificationEmptyFormData,
1488
+ lineModificationFormSchema,
1489
+ lineModificationFormToDto,
1486
1490
  loadCreationDtoToForm,
1487
1491
  loadCreationEmptyFormData,
1488
1492
  loadCreationFormSchema,
@@ -275,7 +275,9 @@ export declare const networkModificationsEn: {
275
275
  GeneratorModificationError: string;
276
276
  NoBusbarSectionFound: string;
277
277
  CreateLine: string;
278
+ LineModificationError: string;
278
279
  LineCreationError: string;
280
+ ModifyLine: string;
279
281
  SelectedOperationalLimitGroups: string;
280
282
  LimitSets: string;
281
283
  DeleteFromMenu: string;
@@ -280,7 +280,9 @@ const networkModificationsEn = {
280
280
  GeneratorModificationError: "Error while modifying generator",
281
281
  NoBusbarSectionFound: "No busbar section found for this voltage level",
282
282
  CreateLine: "Create line",
283
+ LineModificationError: "Error while modifying line",
283
284
  LineCreationError: "Error while creating line",
285
+ ModifyLine: "Modify line",
284
286
  SelectedOperationalLimitGroups: "Active limit sets",
285
287
  LimitSets: "Limit sets",
286
288
  DeleteFromMenu: "Delete",
@@ -276,6 +276,8 @@ export declare const networkModificationsFr: {
276
276
  NoBusbarSectionFound: string;
277
277
  CreateLine: string;
278
278
  LineCreationError: string;
279
+ ModifyLine: string;
280
+ LineModificationError: string;
279
281
  SelectedOperationalLimitGroups: string;
280
282
  LimitSets: string;
281
283
  DeleteFromMenu: string;
@@ -281,6 +281,8 @@ const networkModificationsFr = {
281
281
  NoBusbarSectionFound: "Aucun jeu de barres trouvé pour ce poste",
282
282
  CreateLine: "Créer une ligne",
283
283
  LineCreationError: "Erreur lors de la création d'une ligne",
284
+ ModifyLine: "Modifier une ligne",
285
+ LineModificationError: "Erreur lors de la modification d'une ligne",
284
286
  SelectedOperationalLimitGroups: "Jeux de limites actifs",
285
287
  LimitSets: "Jeux de limites",
286
288
  DeleteFromMenu: "Supprimer",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gridsuite/commons-ui",
3
- "version": "0.249.0",
3
+ "version": "0.250.0",
4
4
  "description": "common react components for gridsuite applications",
5
5
  "author": "gridsuite team",
6
6
  "homepage": "https://github.com/gridsuite",