@gridsuite/commons-ui 0.109.1 → 0.110.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 (53) hide show
  1. package/dist/components/index.js +9 -2
  2. package/dist/components/inputs/index.js +3 -2
  3. package/dist/components/inputs/reactHookForm/DirectoryItemsInput.d.ts +0 -2
  4. package/dist/components/inputs/reactHookForm/DirectoryItemsInput.js +2 -5
  5. package/dist/components/inputs/reactHookForm/constants.d.ts +8 -0
  6. package/dist/components/inputs/reactHookForm/constants.js +6 -0
  7. package/dist/components/inputs/reactHookForm/index.d.ts +1 -0
  8. package/dist/components/inputs/reactHookForm/index.js +3 -2
  9. package/dist/components/parameters/common/index.js +2 -0
  10. package/dist/components/parameters/common/limitreductions/columns-definitions.d.ts +1 -1
  11. package/dist/components/parameters/common/limitreductions/columns-definitions.js +3 -1
  12. package/dist/components/parameters/common/name-element-editor/name-element-editor-utils.js +4 -3
  13. package/dist/components/parameters/common/parameters-edition-dialog-props.d.ts +4 -0
  14. package/dist/components/parameters/common/parameters-edition-dialog-props.js +14 -1
  15. package/dist/components/parameters/index.d.ts +1 -0
  16. package/dist/components/parameters/index.js +6 -0
  17. package/dist/components/parameters/loadflow/load-flow-parameters-content.js +1 -1
  18. package/dist/components/parameters/loadflow/load-flow-parameters-dialog.js +1 -1
  19. package/dist/components/parameters/loadflow/load-flow-parameters-utils.d.ts +1 -1
  20. package/dist/components/parameters/loadflow/load-flow-parameters-utils.js +34 -4
  21. package/dist/components/parameters/loadflow/use-load-flow-parameters-form.js +4 -2
  22. package/dist/components/parameters/network-visualizations/map-parameters.js +1 -1
  23. package/dist/components/parameters/network-visualizations/single-line-diagram-parameters.js +1 -1
  24. package/dist/components/parameters/network-visualizations/use-network-visualizations-parameters-form.js +4 -3
  25. package/dist/components/parameters/security-analysis/index.d.ts +8 -0
  26. package/dist/components/parameters/security-analysis/index.js +6 -0
  27. package/dist/components/parameters/security-analysis/security-analysis-parameters-dialog.d.ts +2 -0
  28. package/dist/components/parameters/security-analysis/security-analysis-parameters-dialog.js +107 -0
  29. package/dist/components/parameters/security-analysis/security-analysis-parameters-form.d.ts +8 -0
  30. package/dist/components/parameters/security-analysis/security-analysis-parameters-form.js +139 -0
  31. package/dist/components/parameters/security-analysis/security-analysis-parameters-inline.d.ts +10 -0
  32. package/dist/components/parameters/security-analysis/security-analysis-parameters-inline.js +197 -0
  33. package/dist/components/parameters/security-analysis/security-analysis-parameters-selector.d.ts +7 -0
  34. package/dist/components/parameters/security-analysis/security-analysis-parameters-selector.js +84 -0
  35. package/dist/components/parameters/security-analysis/security-analysis-violations-hiding.d.ts +7 -0
  36. package/dist/components/parameters/security-analysis/security-analysis-violations-hiding.js +138 -0
  37. package/dist/components/parameters/security-analysis/use-security-analysis-parameters-form.d.ts +24 -0
  38. package/dist/components/parameters/security-analysis/use-security-analysis-parameters-form.js +162 -0
  39. package/dist/components/parameters/short-circuit/use-short-circuit-parameters-form.js +5 -4
  40. package/dist/components/parameters/voltage-init/general-parameters.js +1 -1
  41. package/dist/components/parameters/voltage-init/use-voltage-init-parameters-form.js +4 -3
  42. package/dist/components/parameters/voltage-init/voltage-init-form-utils.js +2 -1
  43. package/dist/hooks/use-parameters-backend.d.ts +1 -1
  44. package/dist/index.js +20 -2
  45. package/dist/services/index.d.ts +1 -0
  46. package/dist/services/index.js +11 -0
  47. package/dist/services/security-analysis.d.ts +11 -0
  48. package/dist/services/security-analysis.js +91 -0
  49. package/dist/translations/en/parameters.d.ts +8 -0
  50. package/dist/translations/en/parameters.js +9 -1
  51. package/dist/translations/fr/parameters.d.ts +8 -0
  52. package/dist/translations/fr/parameters.js +9 -1
  53. package/package.json +1 -1
@@ -53,7 +53,7 @@ import "@mui/material";
53
53
  import "react-intl";
54
54
  import { SelectClearable } from "./inputs/SelectClearable.js";
55
55
  import { ChipItemsInput } from "./inputs/reactHookForm/chip-items-input.js";
56
- import { DESCRIPTION_INPUT, DirectoryItemsInput, NAME } from "./inputs/reactHookForm/DirectoryItemsInput.js";
56
+ import { DirectoryItemsInput } from "./inputs/reactHookForm/DirectoryItemsInput.js";
57
57
  import { RawReadOnlyInput } from "./inputs/reactHookForm/RawReadOnlyInput.js";
58
58
  import { BottomRightButtons } from "./inputs/reactHookForm/agGridTable/BottomRightButtons.js";
59
59
  import { CustomAgGridTable } from "./inputs/reactHookForm/agGridTable/CustomAgGridTable.js";
@@ -91,6 +91,7 @@ import { SubmitButton } from "./inputs/reactHookForm/utils/SubmitButton.js";
91
91
  import { TextFieldWithAdornment } from "./inputs/reactHookForm/utils/TextFieldWithAdornment.js";
92
92
  import { genHelperError, gridItem, identity, isFieldRequired, toFloatOrNullValue } from "./inputs/reactHookForm/utils/functions.js";
93
93
  import { HelperPreviousValue } from "./inputs/reactHookForm/utils/HelperPreviousValue.js";
94
+ import { DESCRIPTION, NAME } from "./inputs/reactHookForm/constants.js";
94
95
  import { AddButton } from "./inputs/reactQueryBuilder/AddButton.js";
95
96
  import { AutocompleteWithFavorites } from "./inputs/reactQueryBuilder/AutocompleteWithFavorites.js";
96
97
  import { CombinatorSelector } from "./inputs/reactQueryBuilder/CombinatorSelector.js";
@@ -125,6 +126,7 @@ import { LeftPanelCloseIcon } from "./icons/LeftPanelCloseIcon.js";
125
126
  import { DeviceHubIcon } from "./icons/DeviceHubIcon.js";
126
127
  import { ComputingType, formatComputingTypeLabel, isValidComputingType } from "./parameters/common/computing-type.js";
127
128
  import { PARAM_SA_FLOW_PROPORTIONAL_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_LOW_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_LOW_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_PROVIDER, PROVIDER, ReactivePowerAdornment, VOLTAGE_LEVEL, VoltageAdornment } from "./parameters/common/constant.js";
129
+ import { getDialogParametersFormSchema } from "./parameters/common/parameters-edition-dialog-props.js";
128
130
  import { LineSeparator } from "./parameters/common/line-separator.js";
129
131
  import { LabelledButton, SwitchWithLabel, TabPanel } from "./parameters/common/parameters.js";
130
132
  import { CreateParameterDialog } from "./parameters/common/parameters-creation-dialog.js";
@@ -157,6 +159,8 @@ import { DEFAULT_GENERAL_APPLY_MODIFICATIONS, DEFAULT_REACTIVE_SLACKS_THRESHOLD,
157
159
  import { EquipmentsSelectionType } from "./parameters/voltage-init/voltage-init.type.js";
158
160
  import { VoltageInitParametersEditionDialog } from "./parameters/voltage-init/voltage-init-parameters-dialog.js";
159
161
  import { VoltageInitParametersInLine } from "./parameters/voltage-init/voltage-init-parameters-inline.js";
162
+ import { SecurityAnalysisParametersInline } from "./parameters/security-analysis/security-analysis-parameters-inline.js";
163
+ import { SecurityAnalysisParametersDialog } from "./parameters/security-analysis/security-analysis-parameters-dialog.js";
160
164
  import { CustomMenuItem, CustomNestedMenuItem } from "./menus/custom-nested-menu.js";
161
165
  export {
162
166
  AboutDialog,
@@ -214,7 +218,7 @@ export {
214
218
  DEFAULT_REACTIVE_SLACKS_THRESHOLD,
215
219
  DEFAULT_SHUNT_COMPENSATOR_ACTIVATION_THRESHOLD,
216
220
  DEFAULT_UPDATE_BUS_VOLTAGE,
217
- DESCRIPTION_INPUT,
221
+ DESCRIPTION,
218
222
  DIAGONAL_LABEL,
219
223
  DISTRIBUTED_SLACK,
220
224
  DISTRIBUTION_KEY,
@@ -383,6 +387,8 @@ export {
383
387
  SPECIFIC_PARAMETERS,
384
388
  SUBSTATION_LAYOUT,
385
389
  SVAR_REGULATION_MODE_OPTIONS,
390
+ SecurityAnalysisParametersDialog,
391
+ SecurityAnalysisParametersInline,
386
392
  SelectClearable,
387
393
  SelectInput,
388
394
  ShortCircuitParametersEditionDialog,
@@ -441,6 +447,7 @@ export {
441
447
  generateTreeViewFinderClass,
442
448
  getCriteriaBasedFormData,
443
449
  getCriteriaBasedSchema,
450
+ getDialogParametersFormSchema,
444
451
  getExpertFilterEmptyFormData,
445
452
  getExplicitNamingFilterEmptyFormData,
446
453
  getLimitReductionsFormSchema,
@@ -1,6 +1,6 @@
1
1
  import { SelectClearable } from "./SelectClearable.js";
2
2
  import { ChipItemsInput } from "./reactHookForm/chip-items-input.js";
3
- import { DESCRIPTION_INPUT, DirectoryItemsInput, NAME } from "./reactHookForm/DirectoryItemsInput.js";
3
+ import { DirectoryItemsInput } from "./reactHookForm/DirectoryItemsInput.js";
4
4
  import { RawReadOnlyInput } from "./reactHookForm/RawReadOnlyInput.js";
5
5
  import { BottomRightButtons } from "./reactHookForm/agGridTable/BottomRightButtons.js";
6
6
  import { CustomAgGridTable } from "./reactHookForm/agGridTable/CustomAgGridTable.js";
@@ -38,6 +38,7 @@ import { SubmitButton } from "./reactHookForm/utils/SubmitButton.js";
38
38
  import { TextFieldWithAdornment } from "./reactHookForm/utils/TextFieldWithAdornment.js";
39
39
  import { genHelperError, gridItem, identity, isFieldRequired, toFloatOrNullValue } from "./reactHookForm/utils/functions.js";
40
40
  import { HelperPreviousValue } from "./reactHookForm/utils/HelperPreviousValue.js";
41
+ import { DESCRIPTION, NAME } from "./reactHookForm/constants.js";
41
42
  import { AddButton } from "./reactQueryBuilder/AddButton.js";
42
43
  import { AutocompleteWithFavorites } from "./reactQueryBuilder/AutocompleteWithFavorites.js";
43
44
  import { CombinatorSelector } from "./reactQueryBuilder/CombinatorSelector.js";
@@ -74,7 +75,7 @@ export {
74
75
  CustomFormProvider,
75
76
  CustomReactQueryBuilder,
76
77
  DEFAULT_RANGE_VALUE,
77
- DESCRIPTION_INPUT,
78
+ DESCRIPTION,
78
79
  DescriptionField,
79
80
  DirectoryItemsInput,
80
81
  ElementValueEditor,
@@ -1,6 +1,4 @@
1
1
  import { ElementAttributes } from '../../../utils';
2
- export declare const NAME = "name";
3
- export declare const DESCRIPTION_INPUT = "description";
4
2
  export interface DirectoryItemsInputProps {
5
3
  label: string | undefined;
6
4
  name: string;
@@ -15,8 +15,7 @@ import { OverflowableText } from "../../overflowableText/OverflowableText.js";
15
15
  import { MidFormError } from "./errorManagement/MidFormError.js";
16
16
  import { DirectoryItemSelector } from "../../directoryItemSelector/DirectoryItemSelector.js";
17
17
  import { fetchDirectoryElementPath } from "../../../services/directory.js";
18
- const NAME = "name";
19
- const DESCRIPTION_INPUT = "description";
18
+ import { NAME } from "./constants.js";
20
19
  const styles = {
21
20
  formDirectoryElements1: {
22
21
  display: "flex",
@@ -213,7 +212,5 @@ function DirectoryItemsInput({
213
212
  ] });
214
213
  }
215
214
  export {
216
- DESCRIPTION_INPUT,
217
- DirectoryItemsInput,
218
- NAME
215
+ DirectoryItemsInput
219
216
  };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright (c) 2025, 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 declare const NAME = "name";
8
+ export declare const DESCRIPTION = "description";
@@ -0,0 +1,6 @@
1
+ const NAME = "name";
2
+ const DESCRIPTION = "description";
3
+ export {
4
+ DESCRIPTION,
5
+ NAME
6
+ };
@@ -17,3 +17,4 @@ export * from './selectInputs';
17
17
  export * from './tableInputs';
18
18
  export * from './text';
19
19
  export * from './utils';
20
+ export * from './constants';
@@ -1,5 +1,5 @@
1
1
  import { ChipItemsInput } from "./chip-items-input.js";
2
- import { DESCRIPTION_INPUT, DirectoryItemsInput, NAME } from "./DirectoryItemsInput.js";
2
+ import { DirectoryItemsInput } from "./DirectoryItemsInput.js";
3
3
  import { RawReadOnlyInput } from "./RawReadOnlyInput.js";
4
4
  import { BottomRightButtons } from "./agGridTable/BottomRightButtons.js";
5
5
  import { CustomAgGridTable } from "./agGridTable/CustomAgGridTable.js";
@@ -37,6 +37,7 @@ import { SubmitButton } from "./utils/SubmitButton.js";
37
37
  import { TextFieldWithAdornment } from "./utils/TextFieldWithAdornment.js";
38
38
  import { genHelperError, gridItem, identity, isFieldRequired, toFloatOrNullValue } from "./utils/functions.js";
39
39
  import { HelperPreviousValue } from "./utils/HelperPreviousValue.js";
40
+ import { DESCRIPTION, NAME } from "./constants.js";
40
41
  export {
41
42
  AutocompleteInput,
42
43
  BooleanInput,
@@ -50,7 +51,7 @@ export {
50
51
  CustomFormContext,
51
52
  CustomFormProvider,
52
53
  DEFAULT_RANGE_VALUE,
53
- DESCRIPTION_INPUT,
54
+ DESCRIPTION,
54
55
  DescriptionField,
55
56
  DirectoryItemsInput,
56
57
  ErrorInput,
@@ -1,5 +1,6 @@
1
1
  import { ComputingType, formatComputingTypeLabel, isValidComputingType } from "./computing-type.js";
2
2
  import { PARAM_SA_FLOW_PROPORTIONAL_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_LOW_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_LOW_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_PROVIDER, PROVIDER, ReactivePowerAdornment, VOLTAGE_LEVEL, VoltageAdornment } from "./constant.js";
3
+ import { getDialogParametersFormSchema } from "./parameters-edition-dialog-props.js";
3
4
  import { LineSeparator } from "./line-separator.js";
4
5
  import { LabelledButton, SwitchWithLabel, TabPanel } from "./parameters.js";
5
6
  import { CreateParameterDialog } from "./parameters-creation-dialog.js";
@@ -54,6 +55,7 @@ export {
54
55
  VOLTAGE_LEVELS_FORM,
55
56
  VoltageAdornment,
56
57
  formatComputingTypeLabel,
58
+ getDialogParametersFormSchema,
57
59
  getLimitReductionsFormSchema,
58
60
  getSAParametersFromSchema,
59
61
  isValidComputingType,
@@ -58,7 +58,7 @@ export declare const getLimitReductionsFormSchema: (nbTemporaryLimits: number) =
58
58
  }, yup.AnyObject, {
59
59
  limitReductionsForm: "";
60
60
  }, "">;
61
- export declare const getSAParametersFromSchema: (limitReductions?: ILimitReductionsByVoltageLevel[]) => yup.ObjectSchema<{
61
+ export declare const getSAParametersFromSchema: (name: string | null, limitReductions?: ILimitReductionsByVoltageLevel[]) => yup.ObjectSchema<{
62
62
  flowProportionalThreshold: unknown;
63
63
  lowVoltageProportionalThreshold: unknown;
64
64
  lowVoltageAbsoluteThreshold: unknown;
@@ -1,5 +1,6 @@
1
1
  import "../../../../utils/yupConfig.js";
2
2
  import { PARAM_SA_PROVIDER, PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_LOW_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_LOW_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_FLOW_PROPORTIONAL_THRESHOLD } from "../constant.js";
3
+ import { getDialogParametersFormSchema } from "../parameters-edition-dialog-props.js";
3
4
  import * as yup from "yup";
4
5
  const LIMIT_REDUCTIONS_FORM = "limitReductionsForm";
5
6
  const VOLTAGE_LEVELS_FORM = "voltageLevelsForm";
@@ -50,7 +51,7 @@ const getLimitReductionsFormSchema = (nbTemporaryLimits) => {
50
51
  )
51
52
  }).required();
52
53
  };
53
- const getSAParametersFromSchema = (limitReductions) => {
54
+ const getSAParametersFromSchema = (name, limitReductions) => {
54
55
  const providerSchema = yup.object().shape({
55
56
  [PARAM_SA_PROVIDER]: yup.string().required()
56
57
  });
@@ -65,6 +66,7 @@ const getSAParametersFromSchema = (limitReductions) => {
65
66
  [PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD]: yup.number().required()
66
67
  });
67
68
  return yup.object().shape({
69
+ ...getDialogParametersFormSchema(name),
68
70
  ...providerSchema.fields,
69
71
  ...limitReductionsSchema.fields,
70
72
  ...thresholdsSchema.fields
@@ -13,7 +13,8 @@ import "../../../inputs/reactHookForm/provider/CustomFormProvider.js";
13
13
  import "@mui/icons-material";
14
14
  import * as yup from "yup";
15
15
  import "../../../overflowableText/OverflowableText.js";
16
- import { DESCRIPTION_INPUT, NAME } from "../../../inputs/reactHookForm/DirectoryItemsInput.js";
16
+ import "../../../treeViewFinder/TreeViewFinder.js";
17
+ import { DESCRIPTION, NAME } from "../../../inputs/reactHookForm/constants.js";
17
18
  import "../../../inputs/reactHookForm/agGridTable/BottomRightButtons.js";
18
19
  import "../../../customAGGrid/customAggrid.js";
19
20
  import "ag-grid-community";
@@ -30,7 +31,7 @@ import "react-querybuilder";
30
31
  function getNameElementEditorEmptyFormData(initialElementName, initialElementdescripton) {
31
32
  return {
32
33
  [NAME]: initialElementName,
33
- [DESCRIPTION_INPUT]: initialElementdescripton
34
+ [DESCRIPTION]: initialElementdescripton
34
35
  };
35
36
  }
36
37
  function getNameElementEditorSchema(initialElementName) {
@@ -40,7 +41,7 @@ function getNameElementEditorSchema(initialElementName) {
40
41
  then: () => yup.string().required(),
41
42
  otherwise: () => yup.string()
42
43
  }),
43
- [DESCRIPTION_INPUT]: yup.string()
44
+ [DESCRIPTION]: yup.string()
44
45
  });
45
46
  }
46
47
  export {
@@ -1,5 +1,6 @@
1
1
  import { UUID } from 'crypto';
2
2
  import { User } from 'oidc-client';
3
+ import { default as yup } from '../../../utils/yupConfig';
3
4
  export interface ParametersEditionDialogProps {
4
5
  id: UUID;
5
6
  open: boolean;
@@ -12,3 +13,6 @@ export interface ParametersEditionDialogProps {
12
13
  user: User | null;
13
14
  enableDeveloperMode?: boolean;
14
15
  }
16
+ export declare const getDialogParametersFormSchema: (name: string | null) => {
17
+ [key: string]: yup.AnySchema;
18
+ };
@@ -1 +1,14 @@
1
-
1
+ import "../../../utils/yupConfig.js";
2
+ import { NAME, DESCRIPTION } from "../../inputs/reactHookForm/constants.js";
3
+ import * as yup from "yup";
4
+ const getDialogParametersFormSchema = (name) => {
5
+ const shape = {};
6
+ if (name) {
7
+ shape[NAME] = yup.string().required();
8
+ shape[DESCRIPTION] = yup.string();
9
+ }
10
+ return shape;
11
+ };
12
+ export {
13
+ getDialogParametersFormSchema
14
+ };
@@ -10,3 +10,4 @@ export * from './parameters-style';
10
10
  export * from './loadflow';
11
11
  export * from './short-circuit';
12
12
  export * from './voltage-init';
13
+ export * from './security-analysis';
@@ -1,5 +1,6 @@
1
1
  import { ComputingType, formatComputingTypeLabel, isValidComputingType } from "./common/computing-type.js";
2
2
  import { PARAM_SA_FLOW_PROPORTIONAL_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_LOW_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_LOW_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_PROVIDER, PROVIDER, ReactivePowerAdornment, VOLTAGE_LEVEL, VoltageAdornment } from "./common/constant.js";
3
+ import { getDialogParametersFormSchema } from "./common/parameters-edition-dialog-props.js";
3
4
  import { LineSeparator } from "./common/line-separator.js";
4
5
  import { LabelledButton, SwitchWithLabel, TabPanel } from "./common/parameters.js";
5
6
  import { CreateParameterDialog } from "./common/parameters-creation-dialog.js";
@@ -32,6 +33,8 @@ import { DEFAULT_GENERAL_APPLY_MODIFICATIONS, DEFAULT_REACTIVE_SLACKS_THRESHOLD,
32
33
  import { EquipmentsSelectionType } from "./voltage-init/voltage-init.type.js";
33
34
  import { VoltageInitParametersEditionDialog } from "./voltage-init/voltage-init-parameters-dialog.js";
34
35
  import { VoltageInitParametersInLine } from "./voltage-init/voltage-init-parameters-inline.js";
36
+ import { SecurityAnalysisParametersInline } from "./security-analysis/security-analysis-parameters-inline.js";
37
+ import { SecurityAnalysisParametersDialog } from "./security-analysis/security-analysis-parameters-dialog.js";
35
38
  export {
36
39
  BALANCE_TYPE,
37
40
  CENTER_LABEL,
@@ -141,6 +144,8 @@ export {
141
144
  SHUNT_COMPENSATOR_VOLTAGE_CONTROL_ON,
142
145
  SPECIFIC_PARAMETERS,
143
146
  SUBSTATION_LAYOUT,
147
+ SecurityAnalysisParametersDialog,
148
+ SecurityAnalysisParametersInline,
144
149
  ShortCircuitParametersEditionDialog,
145
150
  ShortCircuitParametersInLine,
146
151
  SubstationLayout,
@@ -167,6 +172,7 @@ export {
167
172
  WRITE_SLACK_BUS,
168
173
  alertThresholdMarks,
169
174
  formatComputingTypeLabel,
175
+ getDialogParametersFormSchema,
170
176
  getLimitReductionsFormSchema,
171
177
  getSAParametersFromSchema,
172
178
  getTabIndicatorStyle,
@@ -2,6 +2,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { Box, Grid } from "@mui/material";
3
3
  import { TabValues } from "./load-flow-parameters-utils.js";
4
4
  import LoadFlowGeneralParameters from "./load-flow-general-parameters.js";
5
+ import "../../../utils/yupConfig.js";
5
6
  import { TabPanel } from "../common/parameters.js";
6
7
  import "react";
7
8
  import "react-intl";
@@ -26,7 +27,6 @@ import "react-papaparse";
26
27
  import "react-csv-downloader";
27
28
  import "../../inputs/reactHookForm/numbers/RangeInput.js";
28
29
  import "../../../utils/conversionUtils.js";
29
- import "../../../utils/yupConfig.js";
30
30
  import "@react-querybuilder/material";
31
31
  import "../../filter/expert/expertFilterConstants.js";
32
32
  import "../../inputs/reactQueryBuilder/CustomReactQueryBuilder.js";
@@ -12,6 +12,7 @@ import "../../treeViewFinder/TreeViewFinder.js";
12
12
  import "notistack";
13
13
  import { getLoadFlowDefaultLimitReductions, getLoadFlowSpecificParametersDescription, setLoadFlowParameters, fetchLoadFlowParameters, getDefaultLoadFlowProvider, getLoadFlowProviders } from "../../../services/loadflow.js";
14
14
  import { ComputingType } from "../common/computing-type.js";
15
+ import "../../../utils/yupConfig.js";
15
16
  import "../../../utils/types/equipmentType.js";
16
17
  import "localized-countries";
17
18
  import "localized-countries/data/fr";
@@ -28,7 +29,6 @@ import "react-papaparse";
28
29
  import "react-csv-downloader";
29
30
  import "../../inputs/reactHookForm/numbers/RangeInput.js";
30
31
  import "../../../utils/conversionUtils.js";
31
- import "../../../utils/yupConfig.js";
32
32
  import "@react-querybuilder/material";
33
33
  import "../../filter/expert/expertFilterConstants.js";
34
34
  import "../../inputs/reactQueryBuilder/CustomReactQueryBuilder.js";
@@ -1,5 +1,5 @@
1
1
  import { UseFormReturn } from 'react-hook-form';
2
- import { ILimitReductionsByVoltageLevel } from '../common/limitreductions/columns-definitions';
2
+ import { ILimitReductionsByVoltageLevel } from '../common';
3
3
  import { default as yup } from '../../../utils/yupConfig';
4
4
  import { SpecificParameterInfos } from '../../../utils/types/parameters.type';
5
5
  import { SpecificParametersPerProvider } from '../../../utils/types/loadflow.type';
@@ -1,9 +1,39 @@
1
- import { LIMIT_REDUCTIONS_FORM, IST_FORM, LIMIT_DURATION_FORM } from "../common/limitreductions/columns-definitions.js";
2
- import { HVDC_AC_EMULATION, CONNECTED_COMPONENT_MODE, COUNTRIES_TO_BALANCE, BALANCE_TYPE, DC, PHASE_SHIFTER_REGULATION_ON, DC_POWER_FACTOR, DC_USE_TRANSFORMER_RATIO, SHUNT_COMPENSATOR_VOLTAGE_CONTROL_ON, DISTRIBUTED_SLACK, WRITE_SLACK_BUS, READ_SLACK_BUS, TWT_SPLIT_SHUNT_ADMITTANCE, USE_REACTIVE_LIMITS, VOLTAGE_INIT_MODE, COMMON_PARAMETERS, SPECIFIC_PARAMETERS, PARAM_PROVIDER_OPENLOADFLOW, PARAM_LIMIT_REDUCTION, DEFAULT_LIMIT_REDUCTION_VALUE } from "./constants.js";
3
- import { toFormValuesLimitReductions } from "../common/limitreductions/limit-reductions-form-util.js";
4
1
  import "../../../utils/yupConfig.js";
5
- import { ParameterType } from "../../../utils/types/parameters.type.js";
2
+ import "react/jsx-runtime";
3
+ import "@mui/material";
4
+ import "react-intl";
5
+ import "react";
6
+ import "../../../utils/types/equipmentType.js";
7
+ import "localized-countries";
8
+ import "localized-countries/data/fr";
9
+ import "localized-countries/data/en";
10
+ import "notistack";
11
+ import "react-hook-form";
12
+ import "../../inputs/reactHookForm/provider/CustomFormProvider.js";
13
+ import "../../dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
14
+ import "../../dialogs/elementSaveDialog/ElementSaveDialog.js";
15
+ import "@mui/icons-material";
16
+ import "../../treeViewFinder/TreeViewFinder.js";
6
17
  import * as yup from "yup";
18
+ import "../../overflowableText/OverflowableText.js";
19
+ import "../../inputs/reactHookForm/agGridTable/BottomRightButtons.js";
20
+ import "../../customAGGrid/customAggrid.js";
21
+ import "ag-grid-community";
22
+ import "react-papaparse";
23
+ import "react-csv-downloader";
24
+ import "../../inputs/reactHookForm/numbers/RangeInput.js";
25
+ import "../../../utils/conversionUtils.js";
26
+ import { ParameterType } from "../../../utils/types/parameters.type.js";
27
+ import "@react-querybuilder/material";
28
+ import "../../filter/expert/expertFilterConstants.js";
29
+ import "../../inputs/reactQueryBuilder/CustomReactQueryBuilder.js";
30
+ import "uuid";
31
+ import "../../inputs/reactQueryBuilder/PropertyValueEditor.js";
32
+ import "react-querybuilder";
33
+ import "../common/widget/parameter-line-slider.js";
34
+ import { LIMIT_REDUCTIONS_FORM, IST_FORM, LIMIT_DURATION_FORM } from "../common/limitreductions/columns-definitions.js";
35
+ import { toFormValuesLimitReductions } from "../common/limitreductions/limit-reductions-form-util.js";
36
+ import { HVDC_AC_EMULATION, CONNECTED_COMPONENT_MODE, COUNTRIES_TO_BALANCE, BALANCE_TYPE, DC, PHASE_SHIFTER_REGULATION_ON, DC_POWER_FACTOR, DC_USE_TRANSFORMER_RATIO, SHUNT_COMPENSATOR_VOLTAGE_CONTROL_ON, DISTRIBUTED_SLACK, WRITE_SLACK_BUS, READ_SLACK_BUS, TWT_SPLIT_SHUNT_ADMITTANCE, USE_REACTIVE_LIMITS, VOLTAGE_INIT_MODE, COMMON_PARAMETERS, SPECIFIC_PARAMETERS, PARAM_PROVIDER_OPENLOADFLOW, PARAM_LIMIT_REDUCTION, DEFAULT_LIMIT_REDUCTION_VALUE } from "./constants.js";
7
37
  var TabValues = /* @__PURE__ */ ((TabValues2) => {
8
38
  TabValues2["GENERAL"] = "General";
9
39
  TabValues2["LIMIT_REDUCTIONS"] = "LimitReductions";
@@ -4,6 +4,7 @@ import { useState, useCallback, useMemo, useEffect } from "react";
4
4
  import { TabValues, getDefaultSpecificParamsValues, getSpecificLoadFlowParametersFormSchema, getCommonLoadFlowParametersFormSchema, mapLimitReductions, setSpecificParameters, setLimitReductions } from "./load-flow-parameters-utils.js";
5
5
  import { ParameterType } from "../../../utils/types/parameters.type.js";
6
6
  import { PROVIDER } from "../common/constant.js";
7
+ import { getDialogParametersFormSchema } from "../common/parameters-edition-dialog-props.js";
7
8
  import "react/jsx-runtime";
8
9
  import "@mui/material";
9
10
  import "react-intl";
@@ -21,7 +22,7 @@ import { ElementType } from "../../../utils/types/elementType.js";
21
22
  import "../../treeViewFinder/TreeViewFinder.js";
22
23
  import * as yup from "yup";
23
24
  import "../../overflowableText/OverflowableText.js";
24
- import { DESCRIPTION_INPUT, NAME } from "../../inputs/reactHookForm/DirectoryItemsInput.js";
25
+ import { DESCRIPTION, NAME } from "../../inputs/reactHookForm/constants.js";
25
26
  import "../../inputs/reactHookForm/agGridTable/BottomRightButtons.js";
26
27
  import "../../customAGGrid/customAggrid.js";
27
28
  import "ag-grid-community";
@@ -80,6 +81,7 @@ const useLoadFlowParametersForm = (parametersBackend, enableDeveloperMode, param
80
81
  const formSchema = useMemo(() => {
81
82
  var _a;
82
83
  return yup.object({
84
+ ...getDialogParametersFormSchema(name),
83
85
  [PROVIDER]: yup.string().required(),
84
86
  [PARAM_LIMIT_REDUCTION]: yup.number().nullable(),
85
87
  ...getCommonLoadFlowParametersFormSchema().fields,
@@ -220,7 +222,7 @@ const useLoadFlowParametersForm = (parametersBackend, enableDeveloperMode, param
220
222
  formatNewParams(formData),
221
223
  formData[NAME],
222
224
  ElementType.LOADFLOW_PARAMETERS,
223
- formData[DESCRIPTION_INPUT] ?? ""
225
+ formData[DESCRIPTION] ?? ""
224
226
  );
225
227
  }
226
228
  },
@@ -2,6 +2,7 @@ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import { Grid } from "@mui/material";
3
3
  import { FormattedMessage } from "react-intl";
4
4
  import { MAP_BASE_MAP, NetworkVisualizationTabValues, PARAM_MAP_BASEMAP, INTL_MAP_BASE_MAP_OPTIONS, PARAM_LINE_FULL_PATH, PARAM_LINE_PARALLEL_PATH, INTL_LINE_FLOW_MODE_OPTIONS, LINE_FLOW_MODE, PARAM_LINE_FLOW_MODE, MAP_MANUAL_REFRESH, PARAM_MAP_MANUAL_REFRESH } from "./constants.js";
5
+ import "../../../utils/yupConfig.js";
5
6
  import { LineSeparator } from "../common/line-separator.js";
6
7
  import { parametersStyles } from "../parameters-style.js";
7
8
  import "react";
@@ -27,7 +28,6 @@ import { SwitchInput } from "../../inputs/reactHookForm/booleans/SwitchInput.js"
27
28
  import "../../inputs/reactHookForm/numbers/RangeInput.js";
28
29
  import { MuiSelectInput } from "../../inputs/reactHookForm/selectInputs/MuiSelectInput.js";
29
30
  import "../../../utils/conversionUtils.js";
30
- import "../../../utils/yupConfig.js";
31
31
  import "@react-querybuilder/material";
32
32
  import "../../filter/expert/expertFilterConstants.js";
33
33
  import "../../inputs/reactQueryBuilder/CustomReactQueryBuilder.js";
@@ -2,6 +2,7 @@ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import { Grid } from "@mui/material";
3
3
  import { useMemo } from "react";
4
4
  import { FormattedMessage } from "react-intl";
5
+ import "../../../utils/yupConfig.js";
5
6
  import { LineSeparator } from "../common/line-separator.js";
6
7
  import { parametersStyles } from "../parameters-style.js";
7
8
  import "../../../utils/types/equipmentType.js";
@@ -26,7 +27,6 @@ import { SwitchInput } from "../../inputs/reactHookForm/booleans/SwitchInput.js"
26
27
  import "../../inputs/reactHookForm/numbers/RangeInput.js";
27
28
  import { MuiSelectInput } from "../../inputs/reactHookForm/selectInputs/MuiSelectInput.js";
28
29
  import "../../../utils/conversionUtils.js";
29
- import "../../../utils/yupConfig.js";
30
30
  import "@react-querybuilder/material";
31
31
  import "../../filter/expert/expertFilterConstants.js";
32
32
  import "../../inputs/reactQueryBuilder/CustomReactQueryBuilder.js";
@@ -17,7 +17,9 @@ import "../../inputs/reactHookForm/provider/CustomFormProvider.js";
17
17
  import "@mui/icons-material";
18
18
  import * as yup from "yup";
19
19
  import "../../overflowableText/OverflowableText.js";
20
- import { DESCRIPTION_INPUT, NAME } from "../../inputs/reactHookForm/DirectoryItemsInput.js";
20
+ import { ElementType } from "../../../utils/types/elementType.js";
21
+ import "../../treeViewFinder/TreeViewFinder.js";
22
+ import { DESCRIPTION, NAME } from "../../inputs/reactHookForm/constants.js";
21
23
  import "../../inputs/reactHookForm/agGridTable/BottomRightButtons.js";
22
24
  import "../../customAGGrid/customAggrid.js";
23
25
  import "ag-grid-community";
@@ -25,7 +27,6 @@ import "react-papaparse";
25
27
  import "react-csv-downloader";
26
28
  import "../../inputs/reactHookForm/numbers/RangeInput.js";
27
29
  import "../../../utils/conversionUtils.js";
28
- import { ElementType } from "../../../utils/types/elementType.js";
29
30
  import "@react-querybuilder/material";
30
31
  import "../../filter/expert/expertFilterConstants.js";
31
32
  import "../../inputs/reactQueryBuilder/CustomReactQueryBuilder.js";
@@ -112,7 +113,7 @@ const useNetworkVisualizationParametersForm = ({
112
113
  formData,
113
114
  formData[NAME],
114
115
  ElementType.NETWORK_VISUALIZATIONS_PARAMETERS,
115
- formData[DESCRIPTION_INPUT] ?? ""
116
+ formData[DESCRIPTION] ?? ""
116
117
  ).catch((error) => {
117
118
  snackError({
118
119
  messageTxt: error.message,
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright (c) 2025, 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 https://mozilla.org/MPL/2.0/.
6
+ */
7
+ export * from './security-analysis-parameters-inline';
8
+ export * from './security-analysis-parameters-dialog';
@@ -0,0 +1,6 @@
1
+ import { SecurityAnalysisParametersInline } from "./security-analysis-parameters-inline.js";
2
+ import { SecurityAnalysisParametersDialog } from "./security-analysis-parameters-dialog.js";
3
+ export {
4
+ SecurityAnalysisParametersDialog,
5
+ SecurityAnalysisParametersInline
6
+ };
@@ -0,0 +1,2 @@
1
+ import { ParametersEditionDialogProps } from '../common';
2
+ export declare function SecurityAnalysisParametersDialog({ id, open, onClose, titleId, name, description, activeDirectory, language, user, enableDeveloperMode, }: Readonly<ParametersEditionDialogProps>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,107 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import "react";
3
+ import "react-intl";
4
+ import "../../../utils/types/equipmentType.js";
5
+ import { getSecurityAnalysisDefaultLimitReductions, updateSecurityAnalysisParameters, fetchSecurityAnalysisParameters, fetchDefaultSecurityAnalysisProvider, fetchSecurityAnalysisProviders } from "../../../services/security-analysis.js";
6
+ import "@mui/material";
7
+ import "localized-countries";
8
+ import "localized-countries/data/fr";
9
+ import "localized-countries/data/en";
10
+ import "notistack";
11
+ import { useParametersBackend, OptionalServicesStatus } from "../../../hooks/use-parameters-backend.js";
12
+ import { useSecurityAnalysisParametersForm } from "./use-security-analysis-parameters-form.js";
13
+ import { ComputingType } from "../common/computing-type.js";
14
+ import "../../../utils/yupConfig.js";
15
+ import { CustomMuiDialog } from "../../dialogs/customMuiDialog/CustomMuiDialog.js";
16
+ import "../../dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
17
+ import "../../dialogs/elementSaveDialog/ElementSaveDialog.js";
18
+ import "react-hook-form";
19
+ import "@mui/icons-material";
20
+ import { ElementType } from "../../../utils/types/elementType.js";
21
+ import "../../treeViewFinder/TreeViewFinder.js";
22
+ import "../../inputs/reactHookForm/provider/CustomFormProvider.js";
23
+ import "yup";
24
+ import "../../overflowableText/OverflowableText.js";
25
+ import "../../inputs/reactHookForm/agGridTable/BottomRightButtons.js";
26
+ import "../../customAGGrid/customAggrid.js";
27
+ import "ag-grid-community";
28
+ import "react-papaparse";
29
+ import "react-csv-downloader";
30
+ import "../../inputs/reactHookForm/numbers/RangeInput.js";
31
+ import "../../../utils/conversionUtils.js";
32
+ import "@react-querybuilder/material";
33
+ import "../../filter/expert/expertFilterConstants.js";
34
+ import "../../inputs/reactQueryBuilder/CustomReactQueryBuilder.js";
35
+ import "uuid";
36
+ import "../../inputs/reactQueryBuilder/PropertyValueEditor.js";
37
+ import "react-querybuilder";
38
+ import "../common/widget/parameter-line-slider.js";
39
+ import "../common/limitreductions/columns-definitions.js";
40
+ import { SecurityAnalysisParametersForm } from "./security-analysis-parameters-form.js";
41
+ import { NameElementEditorForm } from "../common/name-element-editor/name-element-editor-form.js";
42
+ function SecurityAnalysisParametersDialog({
43
+ id,
44
+ open,
45
+ onClose,
46
+ titleId,
47
+ name,
48
+ description,
49
+ activeDirectory,
50
+ language,
51
+ user,
52
+ enableDeveloperMode = false
53
+ }) {
54
+ const parametersBackend = useParametersBackend(
55
+ user,
56
+ id,
57
+ ComputingType.SECURITY_ANALYSIS,
58
+ OptionalServicesStatus.Up,
59
+ fetchSecurityAnalysisProviders,
60
+ null,
61
+ fetchDefaultSecurityAnalysisProvider,
62
+ null,
63
+ fetchSecurityAnalysisParameters,
64
+ updateSecurityAnalysisParameters,
65
+ void 0,
66
+ getSecurityAnalysisDefaultLimitReductions
67
+ );
68
+ const securityAnalysisMethods = useSecurityAnalysisParametersForm(parametersBackend, id, name, description);
69
+ const {
70
+ formState: { errors, dirtyFields }
71
+ } = securityAnalysisMethods.formMethods;
72
+ const disableSave = Object.keys(errors).length > 0 || Object.keys(dirtyFields).length === 0;
73
+ return /* @__PURE__ */ jsx(
74
+ CustomMuiDialog,
75
+ {
76
+ open,
77
+ onClose,
78
+ onSave: securityAnalysisMethods.onSaveDialog,
79
+ formSchema: securityAnalysisMethods.formSchema,
80
+ formMethods: securityAnalysisMethods.formMethods,
81
+ titleId,
82
+ removeOptional: true,
83
+ language,
84
+ disabledSave: disableSave,
85
+ children: /* @__PURE__ */ jsx(
86
+ SecurityAnalysisParametersForm,
87
+ {
88
+ securityAnalysisMethods,
89
+ enableDeveloperMode,
90
+ renderTitleFields: () => {
91
+ return /* @__PURE__ */ jsx(
92
+ NameElementEditorForm,
93
+ {
94
+ initialElementName: name,
95
+ activeDirectory,
96
+ elementType: ElementType.LOADFLOW_PARAMETERS
97
+ }
98
+ );
99
+ }
100
+ }
101
+ )
102
+ }
103
+ );
104
+ }
105
+ export {
106
+ SecurityAnalysisParametersDialog
107
+ };
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+ import { UseSecurityAnalysisParametersFormReturn } from './use-security-analysis-parameters-form';
3
+ export declare function SecurityAnalysisParametersForm({ securityAnalysisMethods, renderTitleFields, renderActions, enableDeveloperMode, }: Readonly<{
4
+ securityAnalysisMethods: UseSecurityAnalysisParametersFormReturn;
5
+ renderTitleFields?: () => ReactNode;
6
+ renderActions?: () => ReactNode;
7
+ enableDeveloperMode: boolean;
8
+ }>): import("react/jsx-runtime").JSX.Element;