@gridsuite/commons-ui 0.97.0 → 0.99.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 (122) hide show
  1. package/dist/components/dialogs/customMuiDialog/CustomMuiDialog.js +1 -1
  2. package/dist/components/index.d.ts +1 -0
  3. package/dist/components/index.js +94 -1
  4. package/dist/components/inputs/index.js +2 -1
  5. package/dist/components/inputs/reactHookForm/DirectoryItemsInput.d.ts +3 -1
  6. package/dist/components/inputs/reactHookForm/DirectoryItemsInput.js +15 -3
  7. package/dist/components/inputs/reactHookForm/index.js +2 -1
  8. package/dist/components/inputs/reactHookForm/utils/HelperPreviousValue.js +1 -1
  9. package/dist/components/parameters/common/ProviderParam.d.ts +7 -0
  10. package/dist/components/parameters/common/ProviderParam.js +51 -0
  11. package/dist/components/parameters/common/computing-type.d.ts +20 -0
  12. package/dist/components/parameters/common/computing-type.js +46 -0
  13. package/dist/components/parameters/common/constant.d.ts +8 -0
  14. package/dist/components/parameters/common/constant.js +18 -0
  15. package/dist/components/parameters/common/index.d.ts +15 -0
  16. package/dist/components/parameters/common/index.js +61 -0
  17. package/dist/components/parameters/common/limitreductions/columns-definitions.d.ts +77 -0
  18. package/dist/components/parameters/common/limitreductions/columns-definitions.js +83 -0
  19. package/dist/components/parameters/common/limitreductions/index.d.ts +11 -0
  20. package/dist/components/parameters/common/limitreductions/index.js +21 -0
  21. package/dist/components/parameters/common/limitreductions/limit-reduction-table-cell.d.ts +5 -0
  22. package/dist/components/parameters/common/limitreductions/limit-reduction-table-cell.js +38 -0
  23. package/dist/components/parameters/common/limitreductions/limit-reduction-table-row.d.ts +7 -0
  24. package/dist/components/parameters/common/limitreductions/limit-reduction-table-row.js +9 -0
  25. package/dist/components/parameters/common/limitreductions/limit-reductions-form-util.d.ts +29 -0
  26. package/dist/components/parameters/common/limitreductions/limit-reductions-form-util.js +27 -0
  27. package/dist/components/parameters/common/limitreductions/limit-reductions-table-form.d.ts +4 -0
  28. package/dist/components/parameters/common/limitreductions/limit-reductions-table-form.js +87 -0
  29. package/dist/components/parameters/common/line-separator.d.ts +1 -0
  30. package/dist/components/parameters/common/line-separator.js +8 -0
  31. package/dist/components/parameters/common/parameters-creation-dialog.d.ts +13 -0
  32. package/dist/components/parameters/common/parameters-creation-dialog.js +88 -0
  33. package/dist/components/parameters/common/parameters.d.ts +20 -0
  34. package/dist/components/parameters/common/parameters.js +42 -0
  35. package/dist/components/parameters/common/voltage-level-table/custom-voltage-level-table-cell.d.ts +6 -0
  36. package/dist/components/parameters/common/voltage-level-table/custom-voltage-level-table-cell.js +42 -0
  37. package/dist/components/parameters/common/voltage-level-table/custom-voltage-level-table-row.d.ts +8 -0
  38. package/dist/components/parameters/common/voltage-level-table/custom-voltage-level-table-row.js +17 -0
  39. package/dist/components/parameters/common/voltage-level-table/custom-voltage-level-table.d.ts +8 -0
  40. package/dist/components/parameters/common/voltage-level-table/custom-voltage-level-table.js +55 -0
  41. package/dist/components/parameters/common/voltage-level-table/index.d.ts +9 -0
  42. package/dist/components/parameters/common/voltage-level-table/index.js +8 -0
  43. package/dist/components/parameters/common/widget/index.d.ts +11 -0
  44. package/dist/components/parameters/common/widget/index.js +13 -0
  45. package/dist/components/parameters/common/widget/parameter-float.d.ts +10 -0
  46. package/dist/components/parameters/common/widget/parameter-float.js +51 -0
  47. package/dist/components/parameters/common/widget/parameter-group.d.ts +11 -0
  48. package/dist/components/parameters/common/widget/parameter-group.js +54 -0
  49. package/dist/components/parameters/common/widget/parameter-line-directory-items-input.d.ts +15 -0
  50. package/dist/components/parameters/common/widget/parameter-line-directory-items-input.js +55 -0
  51. package/dist/components/parameters/common/widget/parameter-line-slider.d.ts +12 -0
  52. package/dist/components/parameters/common/widget/parameter-line-slider.js +70 -0
  53. package/dist/components/parameters/common/widget/parameter-switch.d.ts +7 -0
  54. package/dist/components/parameters/common/widget/parameter-switch.js +9 -0
  55. package/dist/components/parameters/index.d.ts +9 -0
  56. package/dist/components/parameters/index.js +94 -0
  57. package/dist/components/parameters/loadflow/constants.d.ts +33 -0
  58. package/dist/components/parameters/loadflow/constants.js +59 -0
  59. package/dist/components/parameters/loadflow/index.d.ts +9 -0
  60. package/dist/components/parameters/loadflow/index.js +31 -0
  61. package/dist/components/parameters/loadflow/load-flow-general-parameters.d.ts +8 -0
  62. package/dist/components/parameters/loadflow/load-flow-general-parameters.js +179 -0
  63. package/dist/components/parameters/loadflow/load-flow-parameter-field.d.ts +19 -0
  64. package/dist/components/parameters/loadflow/load-flow-parameter-field.js +90 -0
  65. package/dist/components/parameters/loadflow/load-flow-parameters-content.d.ts +13 -0
  66. package/dist/components/parameters/loadflow/load-flow-parameters-content.js +82 -0
  67. package/dist/components/parameters/loadflow/load-flow-parameters-context.d.ts +13 -0
  68. package/dist/components/parameters/loadflow/load-flow-parameters-context.js +5 -0
  69. package/dist/components/parameters/loadflow/load-flow-parameters-dialog.d.ts +15 -0
  70. package/dist/components/parameters/loadflow/load-flow-parameters-dialog.js +112 -0
  71. package/dist/components/parameters/loadflow/load-flow-parameters-form.d.ts +9 -0
  72. package/dist/components/parameters/loadflow/load-flow-parameters-form.js +102 -0
  73. package/dist/components/parameters/loadflow/load-flow-parameters-header.d.ts +12 -0
  74. package/dist/components/parameters/loadflow/load-flow-parameters-header.js +84 -0
  75. package/dist/components/parameters/loadflow/load-flow-parameters-inline.d.ts +10 -0
  76. package/dist/components/parameters/loadflow/load-flow-parameters-inline.js +162 -0
  77. package/dist/components/parameters/loadflow/load-flow-parameters-provider.d.ts +4 -0
  78. package/dist/components/parameters/loadflow/load-flow-parameters-provider.js +20 -0
  79. package/dist/components/parameters/loadflow/load-flow-parameters-utils.d.ts +100 -0
  80. package/dist/components/parameters/loadflow/load-flow-parameters-utils.js +158 -0
  81. package/dist/components/parameters/loadflow/use-load-flow-context.d.ts +7 -0
  82. package/dist/components/parameters/loadflow/use-load-flow-context.js +12 -0
  83. package/dist/components/parameters/loadflow/use-load-flow-parameters-form.d.ts +32 -0
  84. package/dist/components/parameters/loadflow/use-load-flow-parameters-form.js +263 -0
  85. package/dist/components/parameters/parameters-style.d.ts +150 -0
  86. package/dist/components/parameters/parameters-style.js +146 -0
  87. package/dist/hooks/index.d.ts +1 -0
  88. package/dist/hooks/index.js +3 -0
  89. package/dist/hooks/use-parameters-backend.d.ts +11 -0
  90. package/dist/hooks/use-parameters-backend.js +217 -0
  91. package/dist/index.js +115 -3
  92. package/dist/services/explore.d.ts +3 -0
  93. package/dist/services/explore.js +26 -1
  94. package/dist/services/index.js +6 -3
  95. package/dist/services/loadflow.d.ts +9 -0
  96. package/dist/services/loadflow.js +59 -0
  97. package/dist/services/utils.d.ts +3 -8
  98. package/dist/services/utils.js +5 -0
  99. package/dist/translations/en/index.d.ts +1 -0
  100. package/dist/translations/en/index.js +2 -0
  101. package/dist/translations/en/parameters.d.ts +67 -0
  102. package/dist/translations/en/parameters.js +64 -0
  103. package/dist/translations/fr/index.d.ts +1 -0
  104. package/dist/translations/fr/index.js +2 -0
  105. package/dist/translations/fr/parameters.d.ts +67 -0
  106. package/dist/translations/fr/parameters.js +64 -0
  107. package/dist/utils/index.js +9 -0
  108. package/dist/utils/types/dynamic-security-analysis.type.d.ts +13 -0
  109. package/dist/utils/types/dynamic-security-analysis.type.js +1 -0
  110. package/dist/utils/types/dynamic-simulation.type.d.ts +111 -0
  111. package/dist/utils/types/dynamic-simulation.type.js +8 -0
  112. package/dist/utils/types/index.d.ts +6 -0
  113. package/dist/utils/types/index.js +9 -0
  114. package/dist/utils/types/loadflow.type.d.ts +11 -0
  115. package/dist/utils/types/loadflow.type.js +1 -0
  116. package/dist/utils/types/non-evacuated-energy.type.d.ts +60 -0
  117. package/dist/utils/types/non-evacuated-energy.type.js +12 -0
  118. package/dist/utils/types/parameters.type.d.ts +41 -0
  119. package/dist/utils/types/parameters.type.js +12 -0
  120. package/dist/utils/types/sensitivity-analysis.type.d.ts +101 -0
  121. package/dist/utils/types/sensitivity-analysis.type.js +16 -0
  122. package/package.json +2 -1
@@ -0,0 +1,102 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { Box, LinearProgress } from "@mui/material";
3
+ import LoadFlowParametersHeader from "./load-flow-parameters-header.js";
4
+ import LoadFlowParametersContent from "./load-flow-parameters-content.js";
5
+ import "react-intl";
6
+ import "@mui/icons-material";
7
+ import "react";
8
+ import "react-hook-form";
9
+ import { CustomFormProvider } from "../../inputs/reactHookForm/provider/CustomFormProvider.js";
10
+ import "yup";
11
+ import "notistack";
12
+ import "../../overflowableText/OverflowableText.js";
13
+ import "../../treeViewFinder/TreeViewFinder.js";
14
+ import "../../inputs/reactHookForm/agGridTable/BottomRightButtons.js";
15
+ import "../../customAGGrid/customAggrid.js";
16
+ import "ag-grid-community";
17
+ import "react-papaparse";
18
+ import "react-csv-downloader";
19
+ import "../../inputs/reactHookForm/numbers/RangeInput.js";
20
+ import "localized-countries";
21
+ import "localized-countries/data/fr";
22
+ import "localized-countries/data/en";
23
+ import "../../../utils/conversionUtils.js";
24
+ import "../../../utils/types/equipmentType.js";
25
+ import "../../../utils/yupConfig.js";
26
+ import "@react-querybuilder/material";
27
+ import "../../filter/expert/expertFilterConstants.js";
28
+ import "../../inputs/reactQueryBuilder/CustomReactQueryBuilder.js";
29
+ import "uuid";
30
+ import "../../inputs/reactQueryBuilder/PropertyValueEditor.js";
31
+ import "react-querybuilder";
32
+ function LoadFlowParametersForm({
33
+ loadflowMethods,
34
+ renderTitleFields,
35
+ renderActions
36
+ }) {
37
+ const {
38
+ formMethods,
39
+ formSchema,
40
+ selectedTab,
41
+ handleTabChange,
42
+ tabIndexesWithError,
43
+ formattedProviders,
44
+ specificParameters,
45
+ params,
46
+ currentProvider,
47
+ defaultLimitReductions,
48
+ paramsLoaded
49
+ } = loadflowMethods;
50
+ return /* @__PURE__ */ jsxs(CustomFormProvider, { validationSchema: formSchema, ...formMethods, removeOptional: true, children: [
51
+ renderTitleFields == null ? void 0 : renderTitleFields(),
52
+ /* @__PURE__ */ jsxs(
53
+ Box,
54
+ {
55
+ sx: {
56
+ height: "100%",
57
+ display: "flex",
58
+ position: "relative",
59
+ flexDirection: "column"
60
+ },
61
+ children: [
62
+ paramsLoaded ? /* @__PURE__ */ jsxs(
63
+ Box,
64
+ {
65
+ sx: {
66
+ height: "100%",
67
+ display: "flex",
68
+ position: "relative",
69
+ flexDirection: "column"
70
+ },
71
+ children: [
72
+ /* @__PURE__ */ jsx(
73
+ LoadFlowParametersHeader,
74
+ {
75
+ selectedTab,
76
+ handleTabChange,
77
+ tabIndexesWithError,
78
+ formattedProviders
79
+ }
80
+ ),
81
+ /* @__PURE__ */ jsx(
82
+ LoadFlowParametersContent,
83
+ {
84
+ selectedTab,
85
+ currentProvider: currentProvider ?? "",
86
+ specificParameters,
87
+ params,
88
+ defaultLimitReductions
89
+ }
90
+ )
91
+ ]
92
+ }
93
+ ) : /* @__PURE__ */ jsx(LinearProgress, {}),
94
+ renderActions == null ? void 0 : renderActions()
95
+ ]
96
+ }
97
+ )
98
+ ] });
99
+ }
100
+ export {
101
+ LoadFlowParametersForm
102
+ };
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ import { TabValues } from './load-flow-parameters-utils';
3
+ declare function LoadFlowParametersHeader({ selectedTab, handleTabChange, tabIndexesWithError, formattedProviders, }: Readonly<{
4
+ selectedTab: string;
5
+ handleTabChange: (event: React.SyntheticEvent, newValue: TabValues) => void;
6
+ tabIndexesWithError: TabValues[];
7
+ formattedProviders: {
8
+ id: string;
9
+ label: string;
10
+ }[];
11
+ }>): import("react/jsx-runtime").JSX.Element;
12
+ export default LoadFlowParametersHeader;
@@ -0,0 +1,84 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Box, Grid, Tabs, Tab } from "@mui/material";
3
+ import { FormattedMessage } from "react-intl";
4
+ import { TabValues } from "./load-flow-parameters-utils.js";
5
+ import { parametersStyles, getTabStyle } from "../parameters-style.js";
6
+ import "@mui/icons-material";
7
+ import "react";
8
+ import "react-hook-form";
9
+ import "../../inputs/reactHookForm/provider/CustomFormProvider.js";
10
+ import "yup";
11
+ import "notistack";
12
+ import "../../overflowableText/OverflowableText.js";
13
+ import "../../treeViewFinder/TreeViewFinder.js";
14
+ import "../../inputs/reactHookForm/agGridTable/BottomRightButtons.js";
15
+ import "../../customAGGrid/customAggrid.js";
16
+ import "ag-grid-community";
17
+ import "react-papaparse";
18
+ import "react-csv-downloader";
19
+ import "../../inputs/reactHookForm/numbers/RangeInput.js";
20
+ import "localized-countries";
21
+ import "localized-countries/data/fr";
22
+ import "localized-countries/data/en";
23
+ import { MuiSelectInput } from "../../inputs/reactHookForm/selectInputs/MuiSelectInput.js";
24
+ import "../../../utils/conversionUtils.js";
25
+ import "../../../utils/types/equipmentType.js";
26
+ import "../../../utils/yupConfig.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 { PROVIDER } from "../common/constant.js";
34
+ import { LineSeparator } from "../common/line-separator.js";
35
+ import "../../dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
36
+ import "../../dialogs/elementSaveDialog/ElementSaveDialog.js";
37
+ import "../common/widget/parameter-line-slider.js";
38
+ import "../common/limitreductions/columns-definitions.js";
39
+ function LoadFlowParametersHeader({
40
+ selectedTab,
41
+ handleTabChange,
42
+ tabIndexesWithError,
43
+ formattedProviders
44
+ }) {
45
+ return /* @__PURE__ */ jsx(Box, { sx: { flexGrow: 0, paddingLeft: 1, paddingTop: 1 }, children: /* @__PURE__ */ jsxs(
46
+ Grid,
47
+ {
48
+ container: true,
49
+ spacing: 1,
50
+ sx: {
51
+ padding: 0,
52
+ paddingBottom: 0,
53
+ height: "fit-content"
54
+ },
55
+ justifyContent: "space-between",
56
+ children: [
57
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 5, sx: parametersStyles.parameterName, children: /* @__PURE__ */ jsx(FormattedMessage, { id: "Provider" }) }),
58
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: "auto", sx: parametersStyles.controlItem, children: /* @__PURE__ */ jsx(MuiSelectInput, { name: PROVIDER, size: "small", options: Object.values(formattedProviders) }) }),
59
+ /* @__PURE__ */ jsx(LineSeparator, {}),
60
+ /* @__PURE__ */ jsx(Grid, { item: true, sx: { width: "100%" }, children: /* @__PURE__ */ jsxs(Tabs, { value: selectedTab, onChange: handleTabChange, children: [
61
+ /* @__PURE__ */ jsx(
62
+ Tab,
63
+ {
64
+ label: /* @__PURE__ */ jsx(FormattedMessage, { id: TabValues.GENERAL }),
65
+ value: TabValues.GENERAL,
66
+ sx: getTabStyle(tabIndexesWithError, TabValues.GENERAL)
67
+ }
68
+ ),
69
+ /* @__PURE__ */ jsx(
70
+ Tab,
71
+ {
72
+ label: /* @__PURE__ */ jsx(FormattedMessage, { id: TabValues.LIMIT_REDUCTIONS }),
73
+ value: TabValues.LIMIT_REDUCTIONS,
74
+ sx: getTabStyle(tabIndexesWithError, TabValues.LIMIT_REDUCTIONS)
75
+ }
76
+ )
77
+ ] }) })
78
+ ]
79
+ }
80
+ ) });
81
+ }
82
+ export {
83
+ LoadFlowParametersHeader as default
84
+ };
@@ -0,0 +1,10 @@
1
+ import { Dispatch, SetStateAction } from 'react';
2
+ import { UUID } from 'crypto';
3
+ import { UseParametersBackendReturnProps } from '../../../utils/types/parameters.type';
4
+ import { ComputingType } from '../common/computing-type';
5
+ export declare function LoadFlowParametersInline({ studyUuid, parametersBackend, setHaveDirtyFields, enableDeveloperMode, }: Readonly<{
6
+ studyUuid: UUID | null;
7
+ parametersBackend: UseParametersBackendReturnProps<ComputingType.LOAD_FLOW>;
8
+ setHaveDirtyFields: Dispatch<SetStateAction<boolean>>;
9
+ enableDeveloperMode: boolean;
10
+ }>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,162 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useState, useCallback, useEffect } from "react";
3
+ import { Box, Grid } from "@mui/material";
4
+ import { useIntl, FormattedMessage } from "react-intl";
5
+ import { LoadFlowProvider } from "./load-flow-parameters-provider.js";
6
+ import { parametersStyles } from "../parameters-style.js";
7
+ import "../../../utils/types/equipmentType.js";
8
+ import "localized-countries";
9
+ import "localized-countries/data/fr";
10
+ import "localized-countries/data/en";
11
+ import { useSnackMessage } from "../../../hooks/useSnackMessage.js";
12
+ import "@mui/icons-material";
13
+ import "react-hook-form";
14
+ import "../../inputs/reactHookForm/provider/CustomFormProvider.js";
15
+ import "yup";
16
+ import { mergeSx } from "../../../utils/styles.js";
17
+ import "../../overflowableText/OverflowableText.js";
18
+ import { DirectoryItemSelector } from "../../directoryItemSelector/DirectoryItemSelector.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 { ElementType } from "../../../utils/types/elementType.js";
27
+ import "../../../utils/yupConfig.js";
28
+ import { SubmitButton } from "../../inputs/reactHookForm/utils/SubmitButton.js";
29
+ import "@react-querybuilder/material";
30
+ import "../../filter/expert/expertFilterConstants.js";
31
+ import "../../inputs/reactQueryBuilder/CustomReactQueryBuilder.js";
32
+ import "uuid";
33
+ import "../../inputs/reactQueryBuilder/PropertyValueEditor.js";
34
+ import "react-querybuilder";
35
+ import { LabelledButton } from "../common/parameters.js";
36
+ import { LineSeparator } from "../common/line-separator.js";
37
+ import { CreateParameterDialog } from "../common/parameters-creation-dialog.js";
38
+ import "../common/widget/parameter-line-slider.js";
39
+ import "../common/limitreductions/columns-definitions.js";
40
+ import { fetchLoadFlowParameters } from "../../../services/loadflow.js";
41
+ import { useLoadFlowParametersForm } from "./use-load-flow-parameters-form.js";
42
+ import { LoadFlowParametersForm } from "./load-flow-parameters-form.js";
43
+ function LoadFlowParametersInline({
44
+ studyUuid,
45
+ parametersBackend,
46
+ setHaveDirtyFields,
47
+ enableDeveloperMode
48
+ }) {
49
+ const [, , , , resetProvider, , , , resetParameters, , ,] = parametersBackend;
50
+ const loadflowMethods = useLoadFlowParametersForm(parametersBackend, enableDeveloperMode, null, null, null);
51
+ const intl = useIntl();
52
+ const [openCreateParameterDialog, setOpenCreateParameterDialog] = useState(false);
53
+ const [openSelectParameterDialog, setOpenSelectParameterDialog] = useState(false);
54
+ const { snackError } = useSnackMessage();
55
+ const resetLFParametersAndProvider = useCallback(() => {
56
+ resetParameters();
57
+ resetProvider();
58
+ }, [resetParameters, resetProvider]);
59
+ const resetLFParameters = useCallback(() => {
60
+ resetParameters();
61
+ }, [resetParameters]);
62
+ const { reset, getValues, formState, handleSubmit } = loadflowMethods.formMethods;
63
+ const handleLoadParameter = useCallback(
64
+ (newParams) => {
65
+ if (newParams && newParams.length > 0) {
66
+ setOpenSelectParameterDialog(false);
67
+ fetchLoadFlowParameters(newParams[0].id).then((parameters) => {
68
+ loadflowMethods.setCurrentProvider(parameters.provider);
69
+ console.info(`loading the following loadflow parameters : ${parameters.uuid}`);
70
+ reset(loadflowMethods.toLoadFlowFormValues(parameters), {
71
+ keepDefaultValues: true
72
+ });
73
+ }).catch((error) => {
74
+ console.error(error);
75
+ snackError({
76
+ messageTxt: error.message,
77
+ headerId: "paramsRetrievingError"
78
+ });
79
+ });
80
+ }
81
+ setOpenSelectParameterDialog(false);
82
+ },
83
+ [loadflowMethods, reset, snackError]
84
+ );
85
+ useEffect(() => {
86
+ setHaveDirtyFields(!!Object.keys(formState.dirtyFields).length);
87
+ }, [formState, setHaveDirtyFields]);
88
+ return /* @__PURE__ */ jsx(LoadFlowProvider, { children: /* @__PURE__ */ jsx(
89
+ LoadFlowParametersForm,
90
+ {
91
+ loadflowMethods,
92
+ renderActions: () => {
93
+ return /* @__PURE__ */ jsxs(Box, { children: [
94
+ /* @__PURE__ */ jsx(LineSeparator, {}),
95
+ /* @__PURE__ */ jsxs(
96
+ Grid,
97
+ {
98
+ container: true,
99
+ item: true,
100
+ sx: mergeSx(parametersStyles.controlParametersItem, parametersStyles.marginTopButton, {
101
+ paddingBottom: 0
102
+ }),
103
+ children: [
104
+ /* @__PURE__ */ jsx(
105
+ LabelledButton,
106
+ {
107
+ callback: () => setOpenSelectParameterDialog(true),
108
+ label: "settings.button.chooseSettings"
109
+ }
110
+ ),
111
+ /* @__PURE__ */ jsx(LabelledButton, { callback: () => setOpenCreateParameterDialog(true), label: "save" }),
112
+ /* @__PURE__ */ jsx(LabelledButton, { callback: resetLFParametersAndProvider, label: "resetToDefault" }),
113
+ /* @__PURE__ */ jsx(LabelledButton, { label: "resetProviderValuesToDefault", callback: resetLFParameters }),
114
+ /* @__PURE__ */ jsx(
115
+ SubmitButton,
116
+ {
117
+ onClick: handleSubmit(
118
+ loadflowMethods.onSaveInline,
119
+ loadflowMethods.onValidationError
120
+ ),
121
+ variant: "outlined",
122
+ children: /* @__PURE__ */ jsx(FormattedMessage, { id: "validate" })
123
+ }
124
+ )
125
+ ]
126
+ }
127
+ ),
128
+ openCreateParameterDialog && /* @__PURE__ */ jsx(
129
+ CreateParameterDialog,
130
+ {
131
+ studyUuid,
132
+ open: openCreateParameterDialog,
133
+ onClose: () => setOpenCreateParameterDialog(false),
134
+ parameterValues: () => loadflowMethods.formatNewParams(getValues()),
135
+ parameterFormatter: (newParams) => newParams,
136
+ parameterType: ElementType.LOADFLOW_PARAMETERS
137
+ }
138
+ ),
139
+ openSelectParameterDialog && /* @__PURE__ */ jsx(
140
+ DirectoryItemSelector,
141
+ {
142
+ open: openSelectParameterDialog,
143
+ onClose: handleLoadParameter,
144
+ types: [ElementType.LOADFLOW_PARAMETERS],
145
+ title: intl.formatMessage({
146
+ id: "showSelectParameterDialog"
147
+ }),
148
+ onlyLeaves: true,
149
+ multiSelect: false,
150
+ validationButtonText: intl.formatMessage({
151
+ id: "validate"
152
+ })
153
+ }
154
+ )
155
+ ] });
156
+ }
157
+ }
158
+ ) });
159
+ }
160
+ export {
161
+ LoadFlowParametersInline
162
+ };
@@ -0,0 +1,4 @@
1
+ import { ReactNode } from 'react';
2
+ export declare function LoadFlowProvider({ children }: Readonly<{
3
+ children: ReactNode;
4
+ }>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,20 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useState, useMemo } from "react";
3
+ import { LoadFlowContext } from "./load-flow-parameters-context.js";
4
+ function LoadFlowProvider({ children }) {
5
+ const [showAdvancedLfParams, setShowAdvancedLfParams] = useState(false);
6
+ const [showSpecificLfParams, setShowSpecificLfParams] = useState(false);
7
+ const contextValue = useMemo(
8
+ () => ({
9
+ showAdvancedLfParams,
10
+ setShowAdvancedLfParams,
11
+ showSpecificLfParams,
12
+ setShowSpecificLfParams
13
+ }),
14
+ [showAdvancedLfParams, showSpecificLfParams]
15
+ );
16
+ return /* @__PURE__ */ jsx(LoadFlowContext.Provider, { value: contextValue, children });
17
+ }
18
+ export {
19
+ LoadFlowProvider
20
+ };
@@ -0,0 +1,100 @@
1
+ import { UseFormReturn } from 'react-hook-form';
2
+ import { ILimitReductionsByVoltageLevel } from '../common/limitreductions/columns-definitions';
3
+ import { default as yup } from '../../../utils/yupConfig';
4
+ import { SpecificParameterInfos } from '../../../utils/types/parameters.type';
5
+ import { SpecificParametersPerProvider } from '../../../utils/types/loadflow.type';
6
+ export declare enum TabValues {
7
+ GENERAL = "General",
8
+ LIMIT_REDUCTIONS = "LimitReductions"
9
+ }
10
+ export declare const getBasicLoadFlowParametersFormSchema: () => yup.ObjectSchema<{
11
+ transformerVoltageControlOn: NonNullable<boolean | undefined>;
12
+ phaseShifterRegulationOn: NonNullable<boolean | undefined>;
13
+ dc: NonNullable<boolean | undefined>;
14
+ balanceType: string;
15
+ countriesToBalance: (string | undefined)[];
16
+ connectedComponentMode: string;
17
+ hvdcAcEmulation: NonNullable<boolean | undefined>;
18
+ }, yup.AnyObject, {
19
+ transformerVoltageControlOn: undefined;
20
+ phaseShifterRegulationOn: undefined;
21
+ dc: undefined;
22
+ balanceType: undefined;
23
+ countriesToBalance: "";
24
+ connectedComponentMode: undefined;
25
+ hvdcAcEmulation: undefined;
26
+ }, "">;
27
+ export declare const getAdvancedLoadFlowParametersFormSchema: () => yup.ObjectSchema<{
28
+ voltageInitMode: string;
29
+ useReactiveLimits: NonNullable<boolean | undefined>;
30
+ twtSplitShuntAdmittance: NonNullable<boolean | undefined>;
31
+ readSlackBus: NonNullable<boolean | undefined>;
32
+ writeSlackBus: NonNullable<boolean | undefined>;
33
+ distributedSlack: NonNullable<boolean | undefined>;
34
+ shuntCompensatorVoltageControlOn: NonNullable<boolean | undefined>;
35
+ dcUseTransformerRatio: NonNullable<boolean | undefined>;
36
+ dcPowerFactor: number;
37
+ }, yup.AnyObject, {
38
+ voltageInitMode: undefined;
39
+ useReactiveLimits: undefined;
40
+ twtSplitShuntAdmittance: undefined;
41
+ readSlackBus: undefined;
42
+ writeSlackBus: undefined;
43
+ distributedSlack: undefined;
44
+ shuntCompensatorVoltageControlOn: undefined;
45
+ dcUseTransformerRatio: undefined;
46
+ dcPowerFactor: undefined;
47
+ }, "">;
48
+ export declare const getDialogLoadFlowParametersFormSchema: (name: string | null) => {
49
+ [key: string]: yup.AnySchema;
50
+ };
51
+ export declare const getCommonLoadFlowParametersFormSchema: () => yup.ObjectSchema<{
52
+ commonParameters: {
53
+ transformerVoltageControlOn?: unknown;
54
+ phaseShifterRegulationOn?: unknown;
55
+ dc?: unknown;
56
+ balanceType?: unknown;
57
+ countriesToBalance?: unknown;
58
+ connectedComponentMode?: unknown;
59
+ hvdcAcEmulation?: unknown;
60
+ voltageInitMode?: unknown;
61
+ useReactiveLimits?: unknown;
62
+ twtSplitShuntAdmittance?: unknown;
63
+ readSlackBus?: unknown;
64
+ writeSlackBus?: unknown;
65
+ distributedSlack?: unknown;
66
+ shuntCompensatorVoltageControlOn?: unknown;
67
+ dcUseTransformerRatio?: unknown;
68
+ dcPowerFactor?: unknown;
69
+ };
70
+ }, yup.AnyObject, {
71
+ commonParameters: {
72
+ voltageInitMode: undefined;
73
+ useReactiveLimits: undefined;
74
+ twtSplitShuntAdmittance: undefined;
75
+ readSlackBus: undefined;
76
+ writeSlackBus: undefined;
77
+ distributedSlack: undefined;
78
+ shuntCompensatorVoltageControlOn: undefined;
79
+ dcUseTransformerRatio: undefined;
80
+ dcPowerFactor: undefined;
81
+ transformerVoltageControlOn: undefined;
82
+ phaseShifterRegulationOn: undefined;
83
+ dc: undefined;
84
+ balanceType: undefined;
85
+ countriesToBalance: undefined;
86
+ connectedComponentMode: undefined;
87
+ hvdcAcEmulation: undefined;
88
+ };
89
+ }, "">;
90
+ export declare const getSpecificLoadFlowParametersFormSchema: (specificParameters: SpecificParameterInfos[]) => yup.ObjectSchema<{
91
+ specificParametersPerProvider: {};
92
+ }, yup.AnyObject, {
93
+ specificParametersPerProvider: {
94
+ [x: string]: any;
95
+ };
96
+ }, "">;
97
+ export declare const getDefaultSpecificParamsValues: (specificParams: SpecificParameterInfos[]) => SpecificParametersPerProvider;
98
+ export declare const setSpecificParameters: (provider: string, specificParamsDescriptions: Record<string, SpecificParameterInfos[]> | null, formMethods: UseFormReturn) => void;
99
+ export declare const setLimitReductions: (provider: string, defaultLimitReductions: ILimitReductionsByVoltageLevel[], formMethods: UseFormReturn) => void;
100
+ export declare const mapLimitReductions: (vlLimits: ILimitReductionsByVoltageLevel, formLimits: Record<string, unknown>[], indexVl: number) => ILimitReductionsByVoltageLevel;
@@ -0,0 +1,158 @@
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, TRANSFORMER_VOLTAGE_CONTROL_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
+ import "../../../utils/yupConfig.js";
5
+ import { ParameterType } from "../../../utils/types/parameters.type.js";
6
+ import "react/jsx-runtime";
7
+ import "react-intl";
8
+ import "@mui/material";
9
+ import { NAME, DESCRIPTION_INPUT } from "../../inputs/reactHookForm/DirectoryItemsInput.js";
10
+ import "react-hook-form";
11
+ import "../../inputs/reactHookForm/agGridTable/BottomRightButtons.js";
12
+ import "react";
13
+ import "../../customAGGrid/customAggrid.js";
14
+ import "ag-grid-community";
15
+ import "react-papaparse";
16
+ import "react-csv-downloader";
17
+ import * as yup from "yup";
18
+ import "../../inputs/reactHookForm/provider/CustomFormProvider.js";
19
+ import "@mui/icons-material";
20
+ import "../../inputs/reactHookForm/numbers/RangeInput.js";
21
+ import "localized-countries";
22
+ import "localized-countries/data/fr";
23
+ import "localized-countries/data/en";
24
+ import "../../../utils/conversionUtils.js";
25
+ import "../../../utils/types/equipmentType.js";
26
+ import "notistack";
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
+ var TabValues = /* @__PURE__ */ ((TabValues2) => {
34
+ TabValues2["GENERAL"] = "General";
35
+ TabValues2["LIMIT_REDUCTIONS"] = "LimitReductions";
36
+ return TabValues2;
37
+ })(TabValues || {});
38
+ const getBasicLoadFlowParametersFormSchema = () => {
39
+ return yup.object().shape({
40
+ [TRANSFORMER_VOLTAGE_CONTROL_ON]: yup.boolean().required(),
41
+ [PHASE_SHIFTER_REGULATION_ON]: yup.boolean().required(),
42
+ [DC]: yup.boolean().required(),
43
+ [BALANCE_TYPE]: yup.string().required(),
44
+ [COUNTRIES_TO_BALANCE]: yup.array().of(yup.string()).required(),
45
+ [CONNECTED_COMPONENT_MODE]: yup.string().required(),
46
+ [HVDC_AC_EMULATION]: yup.boolean().required()
47
+ });
48
+ };
49
+ const getAdvancedLoadFlowParametersFormSchema = () => {
50
+ return yup.object().shape({
51
+ [VOLTAGE_INIT_MODE]: yup.string().required(),
52
+ [USE_REACTIVE_LIMITS]: yup.boolean().required(),
53
+ [TWT_SPLIT_SHUNT_ADMITTANCE]: yup.boolean().required(),
54
+ [READ_SLACK_BUS]: yup.boolean().required(),
55
+ [WRITE_SLACK_BUS]: yup.boolean().required(),
56
+ [DISTRIBUTED_SLACK]: yup.boolean().required(),
57
+ [SHUNT_COMPENSATOR_VOLTAGE_CONTROL_ON]: yup.boolean().required(),
58
+ [DC_USE_TRANSFORMER_RATIO]: yup.boolean().required(),
59
+ [DC_POWER_FACTOR]: yup.number().required().positive("dcPowerFactorGreaterThan0").max(1, "dcPowerFactorLessOrEqualThan1")
60
+ });
61
+ };
62
+ const getDialogLoadFlowParametersFormSchema = (name) => {
63
+ const shape = {};
64
+ if (name) {
65
+ shape[NAME] = yup.string().required();
66
+ shape[DESCRIPTION_INPUT] = yup.string();
67
+ }
68
+ return shape;
69
+ };
70
+ const getCommonLoadFlowParametersFormSchema = () => {
71
+ return yup.object().shape({
72
+ [COMMON_PARAMETERS]: yup.object().shape({
73
+ ...getBasicLoadFlowParametersFormSchema().fields,
74
+ ...getAdvancedLoadFlowParametersFormSchema().fields
75
+ })
76
+ });
77
+ };
78
+ const getSpecificLoadFlowParametersFormSchema = (specificParameters) => {
79
+ const shape = {};
80
+ specificParameters == null ? void 0 : specificParameters.forEach((param) => {
81
+ switch (param.type) {
82
+ case ParameterType.STRING:
83
+ shape[param.name] = yup.string().required();
84
+ break;
85
+ case ParameterType.DOUBLE:
86
+ shape[param.name] = yup.number().required();
87
+ break;
88
+ case ParameterType.INTEGER:
89
+ shape[param.name] = yup.number().required();
90
+ break;
91
+ case ParameterType.BOOLEAN:
92
+ shape[param.name] = yup.boolean().required();
93
+ break;
94
+ case ParameterType.STRING_LIST:
95
+ shape[param.name] = yup.array().of(yup.string()).required();
96
+ break;
97
+ default:
98
+ shape[param.name] = yup.mixed().required();
99
+ }
100
+ });
101
+ return yup.object().shape({
102
+ [SPECIFIC_PARAMETERS]: yup.object().shape(shape)
103
+ });
104
+ };
105
+ const getDefaultSpecificParamsValues = (specificParams) => {
106
+ return specificParams == null ? void 0 : specificParams.reduce((acc, param) => {
107
+ if (param.type === ParameterType.STRING_LIST && param.defaultValue === null) {
108
+ acc[param.name] = [];
109
+ } else if ((param.type === ParameterType.DOUBLE || param.type === ParameterType.INTEGER) && Number.isNaN(Number(param.defaultValue))) {
110
+ acc[param.name] = 0;
111
+ } else {
112
+ acc[param.name] = param.defaultValue;
113
+ }
114
+ return acc;
115
+ }, {});
116
+ };
117
+ const setSpecificParameters = (provider, specificParamsDescriptions, formMethods) => {
118
+ const specificParams = provider ? (specificParamsDescriptions == null ? void 0 : specificParamsDescriptions[provider]) ?? [] : [];
119
+ const specificParamsValues = getDefaultSpecificParamsValues(specificParams);
120
+ formMethods.setValue(SPECIFIC_PARAMETERS, specificParamsValues);
121
+ };
122
+ const setLimitReductions = (provider, defaultLimitReductions, formMethods) => {
123
+ if (provider === PARAM_PROVIDER_OPENLOADFLOW) {
124
+ formMethods.setValue(
125
+ LIMIT_REDUCTIONS_FORM,
126
+ toFormValuesLimitReductions(defaultLimitReductions)[LIMIT_REDUCTIONS_FORM]
127
+ );
128
+ formMethods.setValue(PARAM_LIMIT_REDUCTION, null);
129
+ } else {
130
+ formMethods.setValue(PARAM_LIMIT_REDUCTION, DEFAULT_LIMIT_REDUCTION_VALUE);
131
+ formMethods.setValue(LIMIT_REDUCTIONS_FORM, []);
132
+ }
133
+ };
134
+ const mapLimitReductions = (vlLimits, formLimits, indexVl) => {
135
+ const vlLNewLimits = {
136
+ ...vlLimits,
137
+ permanentLimitReduction: formLimits[indexVl][IST_FORM]
138
+ };
139
+ vlLimits.temporaryLimitReductions.forEach((temporaryLimit, index) => {
140
+ vlLNewLimits.temporaryLimitReductions[index] = {
141
+ ...temporaryLimit,
142
+ reduction: formLimits[indexVl][LIMIT_DURATION_FORM + index]
143
+ };
144
+ });
145
+ return vlLNewLimits;
146
+ };
147
+ export {
148
+ TabValues,
149
+ getAdvancedLoadFlowParametersFormSchema,
150
+ getBasicLoadFlowParametersFormSchema,
151
+ getCommonLoadFlowParametersFormSchema,
152
+ getDefaultSpecificParamsValues,
153
+ getDialogLoadFlowParametersFormSchema,
154
+ getSpecificLoadFlowParametersFormSchema,
155
+ mapLimitReductions,
156
+ setLimitReductions,
157
+ setSpecificParameters
158
+ };
@@ -0,0 +1,7 @@
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 useLoadFlowContext: () => import('./load-flow-parameters-context').LoadFlowContextProps;