@gridsuite/commons-ui 0.111.0 → 0.113.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 (74) hide show
  1. package/dist/components/csvDownloader/csv-export.d.ts +1 -1
  2. package/dist/components/csvDownloader/csv-export.js +2 -3
  3. package/dist/components/csvDownloader/csv-export.type.d.ts +0 -3
  4. package/dist/components/dnd-table/dnd-table.js +2 -2
  5. package/dist/components/index.js +27 -6
  6. package/dist/components/inputs/reactHookForm/provider/CustomFormProvider.js +0 -4
  7. package/dist/components/inputs/reactHookForm/text/DescriptionField.js +0 -3
  8. package/dist/components/inputs/reactQueryBuilder/OperatorSelector.js +1 -0
  9. package/dist/components/parameters/common/index.js +0 -2
  10. package/dist/components/parameters/common/limitreductions/columns-definitions.d.ts +7 -2
  11. package/dist/components/parameters/common/limitreductions/columns-definitions.js +16 -3
  12. package/dist/components/parameters/common/limitreductions/limit-reduction-table-cell.d.ts +3 -3
  13. package/dist/components/parameters/common/limitreductions/limit-reduction-table-cell.js +4 -1
  14. package/dist/components/parameters/common/limitreductions/limit-reduction-table-row.d.ts +2 -2
  15. package/dist/components/parameters/common/name-element-editor/name-element-editor-form.js +5 -28
  16. package/dist/components/parameters/common/name-element-editor/name-element-editor-utils.d.ts +2 -2
  17. package/dist/components/parameters/common/name-element-editor/name-element-editor-utils.js +2 -2
  18. package/dist/components/parameters/common/parameters-edition-dialog-props.d.ts +0 -4
  19. package/dist/components/parameters/common/parameters-edition-dialog-props.js +1 -14
  20. package/dist/components/parameters/common/voltage-level-table/custom-voltage-level-table-cell.d.ts +2 -2
  21. package/dist/components/parameters/common/voltage-level-table/custom-voltage-level-table-row.d.ts +2 -2
  22. package/dist/components/parameters/common/voltage-level-table/custom-voltage-level-table.d.ts +2 -2
  23. package/dist/components/parameters/index.d.ts +1 -1
  24. package/dist/components/parameters/index.js +27 -6
  25. package/dist/components/parameters/loadflow/load-flow-parameters-content.js +1 -1
  26. package/dist/components/parameters/loadflow/load-flow-parameters-dialog.js +1 -1
  27. package/dist/components/parameters/loadflow/load-flow-parameters-utils.js +1 -1
  28. package/dist/components/parameters/loadflow/use-load-flow-parameters-form.js +0 -2
  29. package/dist/components/parameters/network-visualizations/map-parameters.js +1 -1
  30. package/dist/components/parameters/network-visualizations/single-line-diagram-parameters.js +1 -1
  31. package/dist/components/parameters/parameters-style.d.ts +0 -1
  32. package/dist/components/parameters/security-analysis/security-analysis-parameters-dialog.js +8 -2
  33. package/dist/components/parameters/security-analysis/security-analysis-parameters-form.js +2 -1
  34. package/dist/components/parameters/security-analysis/security-analysis-parameters-selector.js +1 -1
  35. package/dist/components/parameters/security-analysis/use-security-analysis-parameters-form.js +1 -1
  36. package/dist/components/parameters/sensi/columns-definitions.d.ts +222 -0
  37. package/dist/components/parameters/sensi/columns-definitions.js +305 -0
  38. package/dist/components/parameters/sensi/constants.d.ts +29 -0
  39. package/dist/components/parameters/sensi/constants.js +48 -0
  40. package/dist/components/parameters/sensi/index.d.ts +10 -0
  41. package/dist/components/parameters/sensi/index.js +29 -0
  42. package/dist/components/parameters/sensi/sensitivity-Flow-parameters.d.ts +7 -0
  43. package/dist/components/parameters/sensi/sensitivity-Flow-parameters.js +72 -0
  44. package/dist/components/parameters/sensi/sensitivity-analysis-parameters-dialog.d.ts +2 -0
  45. package/dist/components/parameters/sensi/sensitivity-analysis-parameters-dialog.js +113 -0
  46. package/dist/components/parameters/sensi/sensitivity-analysis-parameters-form.d.ts +8 -0
  47. package/dist/components/parameters/sensi/sensitivity-analysis-parameters-form.js +129 -0
  48. package/dist/components/parameters/sensi/sensitivity-analysis-parameters-inline.d.ts +13 -0
  49. package/dist/components/parameters/sensi/sensitivity-analysis-parameters-inline.js +185 -0
  50. package/dist/components/parameters/sensi/sensitivity-parameters-selector.d.ts +16 -0
  51. package/dist/components/parameters/sensi/sensitivity-parameters-selector.js +274 -0
  52. package/dist/components/parameters/sensi/sensitivity-table.d.ts +15 -0
  53. package/dist/components/parameters/sensi/sensitivity-table.js +134 -0
  54. package/dist/components/parameters/sensi/table-cell.d.ts +8 -0
  55. package/dist/components/parameters/sensi/table-cell.js +86 -0
  56. package/dist/components/parameters/sensi/table-row.d.ts +11 -0
  57. package/dist/components/parameters/sensi/table-row.js +42 -0
  58. package/dist/components/parameters/sensi/use-sensitivity-analysis-parameters.d.ts +49 -0
  59. package/dist/components/parameters/sensi/use-sensitivity-analysis-parameters.js +413 -0
  60. package/dist/components/parameters/sensi/utils.d.ts +419 -0
  61. package/dist/components/parameters/sensi/utils.js +357 -0
  62. package/dist/components/parameters/voltage-init/general-parameters.js +1 -1
  63. package/dist/hooks/index.d.ts +1 -0
  64. package/dist/hooks/index.js +2 -0
  65. package/dist/hooks/use-create-row-data-sensi.d.ts +4 -0
  66. package/dist/hooks/use-create-row-data-sensi.js +20 -0
  67. package/dist/index.js +29 -6
  68. package/dist/services/sensitivity-analysis.d.ts +12 -0
  69. package/dist/services/sensitivity-analysis.js +87 -0
  70. package/dist/translations/en/parameters.d.ts +64 -0
  71. package/dist/translations/en/parameters.js +70 -1
  72. package/dist/translations/fr/parameters.d.ts +64 -0
  73. package/dist/translations/fr/parameters.js +70 -1
  74. package/package.json +1 -1
@@ -0,0 +1,29 @@
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 ACTIVATED = "activated";
8
+ export declare const CONTINGENCIES = "contingencies";
9
+ export declare const EQUIPMENTS_IN_VOLTAGE_REGULATION = "equipmentsInVoltageRegulation";
10
+ export declare const SUPERVISED_VOLTAGE_LEVELS = "monitoredVoltageLevels";
11
+ export declare const MONITORED_BRANCHES = "monitoredBranches";
12
+ export declare const HVDC_LINES = "hvdcs";
13
+ export declare const SENSITIVITY_TYPE = "sensitivityType";
14
+ export declare const INJECTIONS = "injections";
15
+ export declare const DISTRIBUTION_TYPE = "distributionType";
16
+ export declare const PSTS = "psts";
17
+ export declare const FLOW_FLOW_SENSITIVITY_VALUE_THRESHOLD = "flowFlowSensitivityValueThreshold";
18
+ export declare const ANGLE_FLOW_SENSITIVITY_VALUE_THRESHOLD = "angleFlowSensitivityValueThreshold";
19
+ export declare const FLOW_VOLTAGE_SENSITIVITY_VALUE_THRESHOLD = "flowVoltageSensitivityValueThreshold";
20
+ export declare const PARAMETER_SENSI_INJECTIONS_SET = "sensitivityInjectionsSet";
21
+ export declare const SENSI_INJECTIONS_SET = "sensitivityInjectionsSet";
22
+ export declare const SENSI_INJECTION = "sensiInjection";
23
+ export declare const PARAMETER_SENSI_INJECTION = "sensitivityInjection";
24
+ export declare const PARAMETER_SENSI_HVDC = "sensitivityHVDC";
25
+ export declare const PARAMETER_SENSI_PST = "sensitivityPST";
26
+ export declare const PARAMETER_SENSI_NODES = "sensitivityNodes";
27
+ export declare const CONTAINER_ID = "containerId";
28
+ export declare const CONTAINER_NAME = "containerName";
29
+ export declare const COUNT = "count";
@@ -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
+ };