@gridsuite/commons-ui 0.112.0 → 0.114.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/components/dnd-table/dnd-table.js +2 -2
  2. package/dist/components/index.js +27 -6
  3. package/dist/components/inputs/reactHookForm/provider/CustomFormProvider.js +0 -4
  4. package/dist/components/inputs/reactHookForm/text/DescriptionField.js +0 -3
  5. package/dist/components/inputs/reactQueryBuilder/OperatorSelector.js +1 -0
  6. package/dist/components/parameters/common/index.js +0 -2
  7. package/dist/components/parameters/common/limitreductions/columns-definitions.d.ts +7 -2
  8. package/dist/components/parameters/common/limitreductions/columns-definitions.js +16 -3
  9. package/dist/components/parameters/common/limitreductions/limit-reduction-table-cell.d.ts +3 -3
  10. package/dist/components/parameters/common/limitreductions/limit-reduction-table-cell.js +4 -1
  11. package/dist/components/parameters/common/limitreductions/limit-reduction-table-row.d.ts +2 -2
  12. package/dist/components/parameters/common/name-element-editor/name-element-editor-form.js +5 -28
  13. package/dist/components/parameters/common/name-element-editor/name-element-editor-utils.d.ts +2 -2
  14. package/dist/components/parameters/common/name-element-editor/name-element-editor-utils.js +2 -2
  15. package/dist/components/parameters/common/parameters-edition-dialog-props.d.ts +0 -4
  16. package/dist/components/parameters/common/parameters-edition-dialog-props.js +1 -14
  17. package/dist/components/parameters/common/voltage-level-table/custom-voltage-level-table-cell.d.ts +2 -2
  18. package/dist/components/parameters/common/voltage-level-table/custom-voltage-level-table-row.d.ts +2 -2
  19. package/dist/components/parameters/common/voltage-level-table/custom-voltage-level-table.d.ts +2 -2
  20. package/dist/components/parameters/index.d.ts +1 -1
  21. package/dist/components/parameters/index.js +27 -6
  22. package/dist/components/parameters/loadflow/load-flow-parameters-content.js +1 -1
  23. package/dist/components/parameters/loadflow/load-flow-parameters-dialog.js +1 -1
  24. package/dist/components/parameters/loadflow/load-flow-parameters-utils.js +1 -1
  25. package/dist/components/parameters/loadflow/use-load-flow-parameters-form.js +0 -2
  26. package/dist/components/parameters/network-visualizations/map-parameters.js +1 -1
  27. package/dist/components/parameters/network-visualizations/single-line-diagram-parameters.js +1 -1
  28. package/dist/components/parameters/parameters-style.d.ts +0 -1
  29. package/dist/components/parameters/security-analysis/security-analysis-parameters-dialog.js +8 -2
  30. package/dist/components/parameters/security-analysis/security-analysis-parameters-form.js +2 -1
  31. package/dist/components/parameters/security-analysis/security-analysis-parameters-selector.js +1 -1
  32. package/dist/components/parameters/security-analysis/use-security-analysis-parameters-form.js +1 -1
  33. package/dist/components/parameters/sensi/columns-definitions.d.ts +222 -0
  34. package/dist/components/parameters/sensi/columns-definitions.js +305 -0
  35. package/dist/components/parameters/sensi/constants.d.ts +29 -0
  36. package/dist/components/parameters/sensi/constants.js +48 -0
  37. package/dist/components/parameters/sensi/index.d.ts +10 -0
  38. package/dist/components/parameters/sensi/index.js +29 -0
  39. package/dist/components/parameters/sensi/sensitivity-Flow-parameters.d.ts +7 -0
  40. package/dist/components/parameters/sensi/sensitivity-Flow-parameters.js +72 -0
  41. package/dist/components/parameters/sensi/sensitivity-analysis-parameters-dialog.d.ts +2 -0
  42. package/dist/components/parameters/sensi/sensitivity-analysis-parameters-dialog.js +113 -0
  43. package/dist/components/parameters/sensi/sensitivity-analysis-parameters-form.d.ts +8 -0
  44. package/dist/components/parameters/sensi/sensitivity-analysis-parameters-form.js +129 -0
  45. package/dist/components/parameters/sensi/sensitivity-analysis-parameters-inline.d.ts +13 -0
  46. package/dist/components/parameters/sensi/sensitivity-analysis-parameters-inline.js +185 -0
  47. package/dist/components/parameters/sensi/sensitivity-parameters-selector.d.ts +16 -0
  48. package/dist/components/parameters/sensi/sensitivity-parameters-selector.js +274 -0
  49. package/dist/components/parameters/sensi/sensitivity-table.d.ts +15 -0
  50. package/dist/components/parameters/sensi/sensitivity-table.js +134 -0
  51. package/dist/components/parameters/sensi/table-cell.d.ts +8 -0
  52. package/dist/components/parameters/sensi/table-cell.js +86 -0
  53. package/dist/components/parameters/sensi/table-row.d.ts +11 -0
  54. package/dist/components/parameters/sensi/table-row.js +42 -0
  55. package/dist/components/parameters/sensi/use-sensitivity-analysis-parameters.d.ts +49 -0
  56. package/dist/components/parameters/sensi/use-sensitivity-analysis-parameters.js +413 -0
  57. package/dist/components/parameters/sensi/utils.d.ts +419 -0
  58. package/dist/components/parameters/sensi/utils.js +357 -0
  59. package/dist/components/parameters/voltage-init/general-parameters.js +1 -1
  60. package/dist/hooks/index.d.ts +1 -0
  61. package/dist/hooks/index.js +2 -0
  62. package/dist/hooks/use-create-row-data-sensi.d.ts +4 -0
  63. package/dist/hooks/use-create-row-data-sensi.js +20 -0
  64. package/dist/index.js +29 -6
  65. package/dist/services/sensitivity-analysis.d.ts +12 -0
  66. package/dist/services/sensitivity-analysis.js +87 -0
  67. package/dist/translations/en/parameters.d.ts +64 -0
  68. package/dist/translations/en/parameters.js +70 -1
  69. package/dist/translations/fr/parameters.d.ts +64 -0
  70. package/dist/translations/fr/parameters.js +70 -1
  71. package/dist/utils/types/fieldType.d.ts +3 -1
  72. package/dist/utils/types/fieldType.js +2 -0
  73. package/package.json +1 -1
@@ -0,0 +1,48 @@
1
+ const ACTIVATED = "activated";
2
+ const CONTINGENCIES = "contingencies";
3
+ const EQUIPMENTS_IN_VOLTAGE_REGULATION = "equipmentsInVoltageRegulation";
4
+ const SUPERVISED_VOLTAGE_LEVELS = "monitoredVoltageLevels";
5
+ const MONITORED_BRANCHES = "monitoredBranches";
6
+ const HVDC_LINES = "hvdcs";
7
+ const SENSITIVITY_TYPE = "sensitivityType";
8
+ const INJECTIONS = "injections";
9
+ const DISTRIBUTION_TYPE = "distributionType";
10
+ const PSTS = "psts";
11
+ const FLOW_FLOW_SENSITIVITY_VALUE_THRESHOLD = "flowFlowSensitivityValueThreshold";
12
+ const ANGLE_FLOW_SENSITIVITY_VALUE_THRESHOLD = "angleFlowSensitivityValueThreshold";
13
+ const FLOW_VOLTAGE_SENSITIVITY_VALUE_THRESHOLD = "flowVoltageSensitivityValueThreshold";
14
+ const PARAMETER_SENSI_INJECTIONS_SET = "sensitivityInjectionsSet";
15
+ const SENSI_INJECTIONS_SET = "sensitivityInjectionsSet";
16
+ const SENSI_INJECTION = "sensiInjection";
17
+ const PARAMETER_SENSI_INJECTION = "sensitivityInjection";
18
+ const PARAMETER_SENSI_HVDC = "sensitivityHVDC";
19
+ const PARAMETER_SENSI_PST = "sensitivityPST";
20
+ const PARAMETER_SENSI_NODES = "sensitivityNodes";
21
+ const CONTAINER_ID = "containerId";
22
+ const CONTAINER_NAME = "containerName";
23
+ const COUNT = "count";
24
+ export {
25
+ ACTIVATED,
26
+ ANGLE_FLOW_SENSITIVITY_VALUE_THRESHOLD,
27
+ CONTAINER_ID,
28
+ CONTAINER_NAME,
29
+ CONTINGENCIES,
30
+ COUNT,
31
+ DISTRIBUTION_TYPE,
32
+ EQUIPMENTS_IN_VOLTAGE_REGULATION,
33
+ FLOW_FLOW_SENSITIVITY_VALUE_THRESHOLD,
34
+ FLOW_VOLTAGE_SENSITIVITY_VALUE_THRESHOLD,
35
+ HVDC_LINES,
36
+ INJECTIONS,
37
+ MONITORED_BRANCHES,
38
+ PARAMETER_SENSI_HVDC,
39
+ PARAMETER_SENSI_INJECTION,
40
+ PARAMETER_SENSI_INJECTIONS_SET,
41
+ PARAMETER_SENSI_NODES,
42
+ PARAMETER_SENSI_PST,
43
+ PSTS,
44
+ SENSITIVITY_TYPE,
45
+ SENSI_INJECTION,
46
+ SENSI_INJECTIONS_SET,
47
+ SUPERVISED_VOLTAGE_LEVELS
48
+ };
@@ -0,0 +1,10 @@
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 './sensitivity-analysis-parameters-inline';
8
+ export * from './sensitivity-analysis-parameters-dialog';
9
+ export * from './columns-definitions';
10
+ export * from './sensitivity-table';
@@ -0,0 +1,29 @@
1
+ import { SensitivityAnalysisParametersInline } from "./sensitivity-analysis-parameters-inline.js";
2
+ import { SensitivityAnalysisParametersDialog } from "./sensitivity-analysis-parameters-dialog.js";
3
+ import { COLUMNS_DEFINITIONS_HVDCS, COLUMNS_DEFINITIONS_INJECTIONS, COLUMNS_DEFINITIONS_INJECTIONS_SET, COLUMNS_DEFINITIONS_NODES, COLUMNS_DEFINITIONS_PSTS, EQUIPMENTS_IN_VOLTAGE_REGULATION_TYPES, HVDC_EQUIPMENT_TYPES, INJECTIONS_EQUIPMENT_TYPES, INJECTION_DISTRIBUTION_TYPES, MONITORED_BRANCHES_EQUIPMENT_TYPES, MONITORED_VOLTAGE_LEVELS_EQUIPMENT_TYPES, PSTS_EQUIPMENT_TYPES, SENSITIVITY_TYPES, SensiBranchesTabValues, SensiHvdcs, SensiInjection, SensiInjectionsSet, SensiNodes, SensiPsts, SensiTabValues } from "./columns-definitions.js";
4
+ import { SensitivityTable } from "./sensitivity-table.js";
5
+ export {
6
+ COLUMNS_DEFINITIONS_HVDCS,
7
+ COLUMNS_DEFINITIONS_INJECTIONS,
8
+ COLUMNS_DEFINITIONS_INJECTIONS_SET,
9
+ COLUMNS_DEFINITIONS_NODES,
10
+ COLUMNS_DEFINITIONS_PSTS,
11
+ EQUIPMENTS_IN_VOLTAGE_REGULATION_TYPES,
12
+ HVDC_EQUIPMENT_TYPES,
13
+ INJECTIONS_EQUIPMENT_TYPES,
14
+ INJECTION_DISTRIBUTION_TYPES,
15
+ MONITORED_BRANCHES_EQUIPMENT_TYPES,
16
+ MONITORED_VOLTAGE_LEVELS_EQUIPMENT_TYPES,
17
+ PSTS_EQUIPMENT_TYPES,
18
+ SENSITIVITY_TYPES,
19
+ SensiBranchesTabValues,
20
+ SensiHvdcs,
21
+ SensiInjection,
22
+ SensiInjectionsSet,
23
+ SensiNodes,
24
+ SensiPsts,
25
+ SensiTabValues,
26
+ SensitivityAnalysisParametersDialog,
27
+ SensitivityAnalysisParametersInline,
28
+ SensitivityTable
29
+ };
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Copyright (c) 2023, 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 function SensitivityAnalysisFields(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,72 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { Grid } from "@mui/material";
3
+ import { FormattedMessage } from "react-intl";
4
+ import { FLOW_FLOW_SENSITIVITY_VALUE_THRESHOLD, ANGLE_FLOW_SENSITIVITY_VALUE_THRESHOLD, FLOW_VOLTAGE_SENSITIVITY_VALUE_THRESHOLD } from "./constants.js";
5
+ import "react";
6
+ import "react-hook-form";
7
+ import "../../../utils/types/equipmentType.js";
8
+ import "localized-countries";
9
+ import "localized-countries/data/fr";
10
+ import "localized-countries/data/en";
11
+ import "notistack";
12
+ import "../../inputs/reactHookForm/provider/CustomFormProvider.js";
13
+ import "@mui/icons-material";
14
+ import "yup";
15
+ import "../../overflowableText/OverflowableText.js";
16
+ import "../../treeViewFinder/TreeViewFinder.js";
17
+ import "../../inputs/reactHookForm/agGridTable/BottomRightButtons.js";
18
+ import "../../customAGGrid/customAggrid.js";
19
+ import "ag-grid-community";
20
+ import "react-papaparse";
21
+ import "react-csv-downloader";
22
+ import { FloatInput } from "../../inputs/reactHookForm/numbers/FloatInput.js";
23
+ import "../../inputs/reactHookForm/numbers/RangeInput.js";
24
+ import "../../../utils/conversionUtils.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 SensitivityAnalysisFields() {
33
+ return /* @__PURE__ */ jsxs(Grid, { container: true, children: [
34
+ /* @__PURE__ */ jsx(
35
+ Grid,
36
+ {
37
+ item: true,
38
+ sx: {
39
+ fontWeight: "bold",
40
+ marginBottom: "10px"
41
+ },
42
+ children: /* @__PURE__ */ jsx(FormattedMessage, { id: "flowSensitivityValue" })
43
+ }
44
+ ),
45
+ /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 1, children: [
46
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsx(
47
+ FloatInput,
48
+ {
49
+ name: FLOW_FLOW_SENSITIVITY_VALUE_THRESHOLD,
50
+ label: "flowFlowSensitivityValueThreshold"
51
+ }
52
+ ) }),
53
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsx(
54
+ FloatInput,
55
+ {
56
+ name: ANGLE_FLOW_SENSITIVITY_VALUE_THRESHOLD,
57
+ label: "angleFlowSensitivityValueThreshold"
58
+ }
59
+ ) }),
60
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsx(
61
+ FloatInput,
62
+ {
63
+ name: FLOW_VOLTAGE_SENSITIVITY_VALUE_THRESHOLD,
64
+ label: "flowVoltageSensitivityValueThreshold"
65
+ }
66
+ ) })
67
+ ] })
68
+ ] });
69
+ }
70
+ export {
71
+ SensitivityAnalysisFields
72
+ };
@@ -0,0 +1,2 @@
1
+ import { ParametersEditionDialogProps } from '../common';
2
+ export declare function SensitivityAnalysisParametersDialog({ id, open, onClose, titleId, name, description, activeDirectory, language, user, enableDeveloperMode, }: Readonly<ParametersEditionDialogProps>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,113 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { ComputingType } from "../common/computing-type.js";
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 { useParametersBackend, OptionalServicesStatus } from "../../../hooks/use-parameters-backend.js";
12
+ import "react-hook-form";
13
+ import { CustomMuiDialog } from "../../dialogs/customMuiDialog/CustomMuiDialog.js";
14
+ import "../../dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
15
+ import "../../dialogs/elementSaveDialog/ElementSaveDialog.js";
16
+ import "@mui/icons-material";
17
+ import { ElementType } from "../../../utils/types/elementType.js";
18
+ import "../../treeViewFinder/TreeViewFinder.js";
19
+ import "../../inputs/reactHookForm/provider/CustomFormProvider.js";
20
+ import "yup";
21
+ import "../../overflowableText/OverflowableText.js";
22
+ import "../../inputs/reactHookForm/agGridTable/BottomRightButtons.js";
23
+ import "../../customAGGrid/customAggrid.js";
24
+ import "ag-grid-community";
25
+ import "react-papaparse";
26
+ import "react-csv-downloader";
27
+ import "../../inputs/reactHookForm/numbers/RangeInput.js";
28
+ import "../../../utils/conversionUtils.js";
29
+ import "../../../utils/yupConfig.js";
30
+ import "@react-querybuilder/material";
31
+ import "../../filter/expert/expertFilterConstants.js";
32
+ import "../../inputs/reactQueryBuilder/CustomReactQueryBuilder.js";
33
+ import "uuid";
34
+ import "../../inputs/reactQueryBuilder/PropertyValueEditor.js";
35
+ import "react-querybuilder";
36
+ import "../common/widget/parameter-line-slider.js";
37
+ import "../common/limitreductions/columns-definitions.js";
38
+ import { updateSensitivityAnalysisParameters, fetchSensitivityAnalysisParameters, fetchDefaultSensitivityAnalysisProvider, fetchSensitivityAnalysisProviders } from "../../../services/sensitivity-analysis.js";
39
+ import { NameElementEditorForm } from "../common/name-element-editor/name-element-editor-form.js";
40
+ import { useSensitivityAnalysisParametersForm } from "./use-sensitivity-analysis-parameters.js";
41
+ import { SensitivityAnalysisParametersForm } from "./sensitivity-analysis-parameters-form.js";
42
+ function SensitivityAnalysisParametersDialog({
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.SENSITIVITY_ANALYSIS,
58
+ OptionalServicesStatus.Up,
59
+ fetchSensitivityAnalysisProviders,
60
+ null,
61
+ fetchDefaultSensitivityAnalysisProvider,
62
+ null,
63
+ fetchSensitivityAnalysisParameters,
64
+ updateSensitivityAnalysisParameters
65
+ );
66
+ const sensitivityAnalysisMethods = useSensitivityAnalysisParametersForm({
67
+ studyUuid: null,
68
+ currentNodeUuid: null,
69
+ currentRootNetworkUuid: null,
70
+ parametersBackend,
71
+ parametersUuid: id,
72
+ name,
73
+ description
74
+ });
75
+ const {
76
+ formState: { errors, dirtyFields }
77
+ } = sensitivityAnalysisMethods.formMethods;
78
+ const disableSave = Object.keys(errors).length > 0 || Object.keys(dirtyFields).length === 0;
79
+ return /* @__PURE__ */ jsx(
80
+ CustomMuiDialog,
81
+ {
82
+ open,
83
+ onClose,
84
+ onSave: sensitivityAnalysisMethods.onSaveDialog,
85
+ formSchema: sensitivityAnalysisMethods.formSchema,
86
+ formMethods: sensitivityAnalysisMethods.formMethods,
87
+ titleId,
88
+ removeOptional: true,
89
+ language,
90
+ disabledSave: disableSave,
91
+ children: /* @__PURE__ */ jsx(
92
+ SensitivityAnalysisParametersForm,
93
+ {
94
+ sensitivityAnalysisMethods,
95
+ enableDeveloperMode,
96
+ renderTitleFields: () => {
97
+ return /* @__PURE__ */ jsx(
98
+ NameElementEditorForm,
99
+ {
100
+ initialElementName: name,
101
+ activeDirectory,
102
+ elementType: ElementType.SENSITIVITY_PARAMETERS
103
+ }
104
+ );
105
+ }
106
+ }
107
+ )
108
+ }
109
+ );
110
+ }
111
+ export {
112
+ SensitivityAnalysisParametersDialog
113
+ };
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+ import { UseSensitivityAnalysisParametersReturn } from './use-sensitivity-analysis-parameters';
3
+ export declare function SensitivityAnalysisParametersForm({ sensitivityAnalysisMethods, renderTitleFields, renderActions, enableDeveloperMode, }: Readonly<{
4
+ sensitivityAnalysisMethods: UseSensitivityAnalysisParametersReturn;
5
+ renderTitleFields?: () => ReactNode;
6
+ renderActions?: () => ReactNode;
7
+ enableDeveloperMode: boolean;
8
+ }>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,129 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Box, Grid, LinearProgress } from "@mui/material";
3
+ import { FormattedMessage } from "react-intl";
4
+ import { parametersStyles } from "../parameters-style.js";
5
+ import "react";
6
+ import "react-hook-form";
7
+ import "../../../utils/types/equipmentType.js";
8
+ import "localized-countries";
9
+ import "localized-countries/data/fr";
10
+ import "localized-countries/data/en";
11
+ import "notistack";
12
+ import { CustomFormProvider } from "../../inputs/reactHookForm/provider/CustomFormProvider.js";
13
+ import "@mui/icons-material";
14
+ import "yup";
15
+ import "../../overflowableText/OverflowableText.js";
16
+ import { mergeSx } from "../../../utils/styles.js";
17
+ import "../../treeViewFinder/TreeViewFinder.js";
18
+ import "../../inputs/reactHookForm/agGridTable/BottomRightButtons.js";
19
+ import "../../customAGGrid/customAggrid.js";
20
+ import "ag-grid-community";
21
+ import "react-papaparse";
22
+ import "react-csv-downloader";
23
+ import "../../inputs/reactHookForm/numbers/RangeInput.js";
24
+ import { MuiSelectInput } from "../../inputs/reactHookForm/selectInputs/MuiSelectInput.js";
25
+ import "../../../utils/conversionUtils.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
+ import { SensitivityAnalysisFields } from "./sensitivity-Flow-parameters.js";
40
+ import SensitivityParametersSelector from "./sensitivity-parameters-selector.js";
41
+ const styles = {
42
+ sensibilityAnalysisParameters: {
43
+ flexGrow: 1,
44
+ paddingLeft: 1,
45
+ overflow: "auto",
46
+ display: "flex",
47
+ flexDirection: "column",
48
+ height: "100%"
49
+ },
50
+ actions: (theme) => ({
51
+ flexGrow: 0,
52
+ paddingBottom: theme.spacing(3)
53
+ })
54
+ };
55
+ function SensitivityAnalysisParametersForm({
56
+ sensitivityAnalysisMethods,
57
+ renderTitleFields,
58
+ renderActions,
59
+ enableDeveloperMode
60
+ }) {
61
+ return /* @__PURE__ */ jsx(
62
+ CustomFormProvider,
63
+ {
64
+ validationSchema: sensitivityAnalysisMethods.formSchema,
65
+ ...sensitivityAnalysisMethods.formMethods,
66
+ children: /* @__PURE__ */ jsxs(Box, { sx: styles.sensibilityAnalysisParameters, children: [
67
+ renderTitleFields == null ? void 0 : renderTitleFields(),
68
+ sensitivityAnalysisMethods.paramsLoaded ? /* @__PURE__ */ jsxs(Box, { sx: mergeSx(parametersStyles.scrollableGrid, { paddingTop: 0, maxHeight: "100%" }), children: [
69
+ /* @__PURE__ */ jsxs(
70
+ Grid,
71
+ {
72
+ container: true,
73
+ spacing: 1,
74
+ sx: {
75
+ padding: 0,
76
+ paddingBottom: 2,
77
+ height: "fit-content"
78
+ },
79
+ justifyContent: "space-between",
80
+ children: [
81
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 8, xl: 4, sx: parametersStyles.parameterName, children: /* @__PURE__ */ jsx(FormattedMessage, { id: "Provider" }) }),
82
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, xl: 2, sx: parametersStyles.controlItem, children: /* @__PURE__ */ jsx(
83
+ MuiSelectInput,
84
+ {
85
+ name: PROVIDER,
86
+ size: "small",
87
+ options: Object.values(sensitivityAnalysisMethods.formattedProviders)
88
+ }
89
+ ) })
90
+ ]
91
+ }
92
+ ),
93
+ /* @__PURE__ */ jsx(
94
+ Box,
95
+ {
96
+ sx: {
97
+ flexGrow: 1,
98
+ overflow: "auto",
99
+ paddingLeft: 1
100
+ },
101
+ children: /* @__PURE__ */ jsxs(Grid, { container: true, children: [
102
+ /* @__PURE__ */ jsxs(Grid, { xl: 6, children: [
103
+ /* @__PURE__ */ jsx(Grid, { container: true, paddingTop: 1, paddingBottom: 1, children: /* @__PURE__ */ jsx(LineSeparator, {}) }),
104
+ /* @__PURE__ */ jsx(SensitivityAnalysisFields, {})
105
+ ] }),
106
+ /* @__PURE__ */ jsx(Grid, { container: true, paddingTop: 4, paddingBottom: 2, children: /* @__PURE__ */ jsx(LineSeparator, {}) }),
107
+ /* @__PURE__ */ jsx(
108
+ SensitivityParametersSelector,
109
+ {
110
+ onFormChanged: sensitivityAnalysisMethods.onFormChanged,
111
+ onChangeParams: sensitivityAnalysisMethods.onChangeParams,
112
+ launchLoader: sensitivityAnalysisMethods.launchLoader,
113
+ analysisComputeComplexity: sensitivityAnalysisMethods.analysisComputeComplexity,
114
+ enableDeveloperMode,
115
+ isStudyLinked: sensitivityAnalysisMethods.isStudyLinked
116
+ }
117
+ )
118
+ ] }, "sensitivityAnalysisParameters")
119
+ }
120
+ )
121
+ ] }) : /* @__PURE__ */ jsx(LinearProgress, {}),
122
+ renderActions && /* @__PURE__ */ jsx(Box, { sx: styles.actions, children: renderActions() })
123
+ ] })
124
+ }
125
+ );
126
+ }
127
+ export {
128
+ SensitivityAnalysisParametersForm
129
+ };
@@ -0,0 +1,13 @@
1
+ import { UUID } from 'crypto';
2
+ import { UseParametersBackendReturnProps } from '../../../utils';
3
+ import { ComputingType } from '../common';
4
+ interface SensitivityAnalysisParametersProps {
5
+ studyUuid: UUID | null;
6
+ currentNodeUuid: UUID | null;
7
+ currentRootNetworkUuid: UUID | null;
8
+ parametersBackend: UseParametersBackendReturnProps<ComputingType.SENSITIVITY_ANALYSIS>;
9
+ setHaveDirtyFields: any;
10
+ enableDeveloperMode: boolean;
11
+ }
12
+ export declare function SensitivityAnalysisParametersInline({ studyUuid, currentNodeUuid, currentRootNetworkUuid, parametersBackend, setHaveDirtyFields, enableDeveloperMode, }: Readonly<SensitivityAnalysisParametersProps>): import("react/jsx-runtime").JSX.Element;
13
+ export {};
@@ -0,0 +1,185 @@
1
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
+ import { Grid, DialogActions, Button } from "@mui/material";
3
+ import { useState, useCallback, useEffect } from "react";
4
+ import { useIntl, FormattedMessage } from "react-intl";
5
+ import "../../../utils/conversionUtils.js";
6
+ import "@mui/icons-material";
7
+ import { ElementType } from "../../../utils/types/elementType.js";
8
+ import { mergeSx } from "../../../utils/styles.js";
9
+ import "../../../utils/types/equipmentType.js";
10
+ import "../../../utils/yupConfig.js";
11
+ import { parametersStyles } from "../parameters-style.js";
12
+ import { CreateParameterDialog } from "../common/parameters-creation-dialog.js";
13
+ import "react-hook-form";
14
+ import "localized-countries";
15
+ import "localized-countries/data/fr";
16
+ import "localized-countries/data/en";
17
+ import { useSnackMessage } from "../../../hooks/useSnackMessage.js";
18
+ import "../../inputs/reactHookForm/provider/CustomFormProvider.js";
19
+ import { SubmitButton } from "../../inputs/reactHookForm/utils/SubmitButton.js";
20
+ import "yup";
21
+ import "../../overflowableText/OverflowableText.js";
22
+ import { DirectoryItemSelector } from "../../directoryItemSelector/DirectoryItemSelector.js";
23
+ import "../../inputs/reactHookForm/agGridTable/BottomRightButtons.js";
24
+ import "../../customAGGrid/customAggrid.js";
25
+ import "ag-grid-community";
26
+ import "react-papaparse";
27
+ import "react-csv-downloader";
28
+ import "../../inputs/reactHookForm/numbers/RangeInput.js";
29
+ import { PopupConfirmationDialog } from "../../dialogs/popupConfirmationDialog/PopupConfirmationDialog.js";
30
+ import "@react-querybuilder/material";
31
+ import "../../filter/expert/expertFilterConstants.js";
32
+ import "../../inputs/reactQueryBuilder/CustomReactQueryBuilder.js";
33
+ import "uuid";
34
+ import "../../inputs/reactQueryBuilder/PropertyValueEditor.js";
35
+ import "react-querybuilder";
36
+ import "../common/widget/parameter-line-slider.js";
37
+ import "../common/limitreductions/columns-definitions.js";
38
+ import { fetchSensitivityAnalysisParameters, setSensitivityAnalysisParameters } from "../../../services/sensitivity-analysis.js";
39
+ import { useSensitivityAnalysisParametersForm } from "./use-sensitivity-analysis-parameters.js";
40
+ import { SensitivityAnalysisParametersForm } from "./sensitivity-analysis-parameters-form.js";
41
+ import "../../dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
42
+ import "../../dialogs/elementSaveDialog/ElementSaveDialog.js";
43
+ function SensitivityAnalysisParametersInline({
44
+ studyUuid,
45
+ currentNodeUuid,
46
+ currentRootNetworkUuid,
47
+ parametersBackend,
48
+ setHaveDirtyFields,
49
+ enableDeveloperMode
50
+ }) {
51
+ const intl = useIntl();
52
+ const { snackError } = useSnackMessage();
53
+ const sensitivityAnalysisMethods = useSensitivityAnalysisParametersForm({
54
+ studyUuid,
55
+ currentNodeUuid,
56
+ currentRootNetworkUuid,
57
+ parametersBackend,
58
+ name: null,
59
+ description: null,
60
+ parametersUuid: null
61
+ });
62
+ const [openCreateParameterDialog, setOpenCreateParameterDialog] = useState(false);
63
+ const [openSelectParameterDialog, setOpenSelectParameterDialog] = useState(false);
64
+ const [openResetConfirmation, setOpenResetConfirmation] = useState(false);
65
+ const { reset, handleSubmit, formState, getValues } = sensitivityAnalysisMethods.formMethods;
66
+ const handleSensibilityParameter = useCallback(
67
+ (newParams) => {
68
+ if (newParams && newParams.length > 0) {
69
+ setOpenSelectParameterDialog(false);
70
+ fetchSensitivityAnalysisParameters(newParams[0].id).then((parameters) => {
71
+ console.info(`loading the following sensi parameters : ${parameters.uuid}`);
72
+ reset(sensitivityAnalysisMethods.fromSensitivityAnalysisParamsDataToFormValues(parameters), {
73
+ keepDefaultValues: true
74
+ });
75
+ sensitivityAnalysisMethods.initRowsCount();
76
+ }).catch((error) => {
77
+ console.error(error);
78
+ snackError({
79
+ messageTxt: error.message,
80
+ headerId: "paramsRetrievingError"
81
+ });
82
+ });
83
+ }
84
+ setOpenSelectParameterDialog(false);
85
+ },
86
+ [reset, sensitivityAnalysisMethods, snackError]
87
+ );
88
+ const resetSensitivityAnalysisParameters = useCallback(() => {
89
+ setSensitivityAnalysisParameters(studyUuid, null).catch((error) => {
90
+ snackError({
91
+ messageTxt: error.message,
92
+ headerId: "paramsChangingError"
93
+ });
94
+ });
95
+ }, [studyUuid, snackError]);
96
+ const clear = useCallback(() => {
97
+ reset(sensitivityAnalysisMethods.emptyFormData);
98
+ resetSensitivityAnalysisParameters();
99
+ sensitivityAnalysisMethods.setAnalysisComputeComplexity(0);
100
+ setOpenResetConfirmation(false);
101
+ }, [reset, sensitivityAnalysisMethods, resetSensitivityAnalysisParameters]);
102
+ const handleResetClick = useCallback(() => {
103
+ setOpenResetConfirmation(true);
104
+ }, []);
105
+ const handleCancelReset = useCallback(() => {
106
+ setOpenResetConfirmation(false);
107
+ }, []);
108
+ useEffect(() => {
109
+ setHaveDirtyFields(!!Object.keys(formState.dirtyFields).length);
110
+ }, [formState, setHaveDirtyFields]);
111
+ return /* @__PURE__ */ jsx(
112
+ SensitivityAnalysisParametersForm,
113
+ {
114
+ sensitivityAnalysisMethods,
115
+ enableDeveloperMode,
116
+ renderActions: () => {
117
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
118
+ /* @__PURE__ */ jsx(Grid, { item: true, container: true, children: /* @__PURE__ */ jsxs(
119
+ DialogActions,
120
+ {
121
+ sx: mergeSx(parametersStyles.controlParametersItem, {
122
+ paddingLeft: 0,
123
+ paddingBottom: 2
124
+ }),
125
+ children: [
126
+ /* @__PURE__ */ jsx(Button, { onClick: () => setOpenSelectParameterDialog(true), children: /* @__PURE__ */ jsx(FormattedMessage, { id: "settings.button.chooseSettings" }) }),
127
+ /* @__PURE__ */ jsx(Button, { onClick: () => setOpenCreateParameterDialog(true), children: /* @__PURE__ */ jsx(FormattedMessage, { id: "save" }) }),
128
+ /* @__PURE__ */ jsx(Button, { onClick: handleResetClick, children: /* @__PURE__ */ jsx(FormattedMessage, { id: "resetToDefault" }) }),
129
+ /* @__PURE__ */ jsx(
130
+ SubmitButton,
131
+ {
132
+ onClick: handleSubmit(sensitivityAnalysisMethods.onSaveInline),
133
+ variant: "outlined",
134
+ disabled: sensitivityAnalysisMethods.launchLoader || sensitivityAnalysisMethods.isMaxReached,
135
+ children: /* @__PURE__ */ jsx(FormattedMessage, { id: "validate" })
136
+ }
137
+ )
138
+ ]
139
+ }
140
+ ) }),
141
+ openCreateParameterDialog && /* @__PURE__ */ jsx(
142
+ CreateParameterDialog,
143
+ {
144
+ studyUuid,
145
+ open: openCreateParameterDialog,
146
+ onClose: () => setOpenCreateParameterDialog(false),
147
+ parameterValues: () => sensitivityAnalysisMethods.formatNewParams(getValues()),
148
+ parameterFormatter: (newParams) => newParams,
149
+ parameterType: ElementType.SENSITIVITY_PARAMETERS
150
+ }
151
+ ),
152
+ openSelectParameterDialog && /* @__PURE__ */ jsx(
153
+ DirectoryItemSelector,
154
+ {
155
+ open: openSelectParameterDialog,
156
+ onClose: handleSensibilityParameter,
157
+ types: [ElementType.SENSITIVITY_PARAMETERS],
158
+ title: intl.formatMessage({
159
+ id: "showSelectParameterDialog"
160
+ }),
161
+ onlyLeaves: true,
162
+ multiSelect: false,
163
+ validationButtonText: intl.formatMessage({
164
+ id: "validate"
165
+ })
166
+ }
167
+ ),
168
+ openResetConfirmation && /* @__PURE__ */ jsx(
169
+ PopupConfirmationDialog,
170
+ {
171
+ message: "resetParamsConfirmation",
172
+ validateButtonLabel: "validate",
173
+ openConfirmationPopup: openResetConfirmation,
174
+ setOpenConfirmationPopup: handleCancelReset,
175
+ handlePopupConfirmation: clear
176
+ }
177
+ )
178
+ ] });
179
+ }
180
+ }
181
+ );
182
+ }
183
+ export {
184
+ SensitivityAnalysisParametersInline
185
+ };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright (c) 2023, 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
+ interface SensitivityParametersSelectorProps {
8
+ onFormChanged: (hasFormChanged: boolean) => void;
9
+ onChangeParams: (a: any, b: any, c: number) => void;
10
+ launchLoader: boolean;
11
+ analysisComputeComplexity: number;
12
+ enableDeveloperMode: boolean;
13
+ isStudyLinked: boolean;
14
+ }
15
+ declare function SensitivityParametersSelector({ onFormChanged, onChangeParams, launchLoader, analysisComputeComplexity, enableDeveloperMode, isStudyLinked, }: Readonly<SensitivityParametersSelectorProps>): import("react/jsx-runtime").JSX.Element;
16
+ export default SensitivityParametersSelector;