@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,217 @@
1
+ import { useRef, useState, useMemo, useCallback, useEffect } from "react";
2
+ import { useSnackMessage } from "./useSnackMessage.js";
3
+ import { useDebounce } from "./useDebounce.js";
4
+ import { formatComputingTypeLabel } from "../components/parameters/common/computing-type.js";
5
+ const INITIAL_PROVIDERS = {};
6
+ var OptionalServicesStatus = /* @__PURE__ */ ((OptionalServicesStatus2) => {
7
+ OptionalServicesStatus2["Up"] = "UP";
8
+ OptionalServicesStatus2["Down"] = "DOWN";
9
+ OptionalServicesStatus2["Pending"] = "PENDING";
10
+ return OptionalServicesStatus2;
11
+ })(OptionalServicesStatus || {});
12
+ const useParametersBackend = (user, studyUuid, type, optionalServiceStatus, backendFetchProviders, backendFetchProvider, backendFetchDefaultProvider, backendUpdateProvider, backendFetchParameters, backendUpdateParameters, backendFetchSpecificParametersDescription, backendFetchDefaultLimitReductions) => {
13
+ const { snackError, snackWarning } = useSnackMessage();
14
+ const providersRef = useRef(INITIAL_PROVIDERS);
15
+ const [provider, setProvider] = useState();
16
+ const providerRef = useRef(provider);
17
+ providerRef.current = provider;
18
+ const [params, setParams] = useState(null);
19
+ const [specificParamsDescription, setSpecificParamsDescription] = useState(null);
20
+ const [defaultLimitReductions, setDefaultLimitReductions] = useState([]);
21
+ const optionalServiceStatusRef = useRef(optionalServiceStatus);
22
+ optionalServiceStatusRef.current = optionalServiceStatus;
23
+ const currentParams = useMemo(() => {
24
+ if (params && "provider" in params && provider) {
25
+ return { ...params, provider };
26
+ }
27
+ return params;
28
+ }, [params, provider]);
29
+ const updateProvider = useCallback(
30
+ (newProvider) => {
31
+ if (!studyUuid) {
32
+ return;
33
+ }
34
+ const oldProvider = providerRef.current;
35
+ setProvider(newProvider);
36
+ backendUpdateProvider == null ? void 0 : backendUpdateProvider(studyUuid, newProvider).catch((error) => {
37
+ setProvider(oldProvider);
38
+ snackError({
39
+ messageTxt: error.message,
40
+ headerId: `update${formatComputingTypeLabel(type)}ProviderError`
41
+ });
42
+ });
43
+ },
44
+ [backendUpdateProvider, studyUuid, snackError, type]
45
+ );
46
+ const resetProvider = useCallback(() => {
47
+ backendFetchDefaultProvider().then((defaultProvider) => {
48
+ const providerNames = Object.keys(providersRef.current);
49
+ if (providerNames.length > 0) {
50
+ const newProvider = defaultProvider in providersRef.current ? defaultProvider : providerNames[0];
51
+ if (newProvider !== providerRef.current) {
52
+ updateProvider(newProvider);
53
+ }
54
+ }
55
+ }).catch((error) => {
56
+ snackError({
57
+ messageTxt: error.message,
58
+ headerId: `fetchDefault${formatComputingTypeLabel(type)}ProviderError`
59
+ });
60
+ });
61
+ }, [backendFetchDefaultProvider, updateProvider, snackError, type]);
62
+ const fetchAvailableProviders = useCallback(() => {
63
+ return backendFetchProviders().then((providers) => {
64
+ const providersObj = providers.reduce((acc, v) => {
65
+ return {
66
+ ...acc,
67
+ [v]: v
68
+ };
69
+ }, {});
70
+ providersRef.current = providersObj;
71
+ }).catch((error) => {
72
+ snackError({
73
+ messageTxt: error.message,
74
+ headerId: `fetch${formatComputingTypeLabel(type)}ProvidersError`
75
+ });
76
+ });
77
+ }, [backendFetchProviders, snackError, type]);
78
+ const fetchProvider = useCallback(
79
+ (_studyUuid) => {
80
+ backendFetchProvider == null ? void 0 : backendFetchProvider(_studyUuid).then((newProvider) => {
81
+ if (newProvider in providersRef.current) {
82
+ setProvider(newProvider);
83
+ } else {
84
+ resetProvider();
85
+ }
86
+ }).catch((error) => {
87
+ snackError({
88
+ messageTxt: error.message,
89
+ headerId: `fetch${formatComputingTypeLabel(type)}ProviderError`
90
+ });
91
+ });
92
+ },
93
+ [backendFetchProvider, resetProvider, snackError, type]
94
+ );
95
+ useEffect(() => {
96
+ if (user !== null && studyUuid && optionalServiceStatus === "UP") {
97
+ fetchAvailableProviders().then(() => fetchProvider(studyUuid));
98
+ }
99
+ }, [fetchAvailableProviders, fetchProvider, optionalServiceStatus, studyUuid, user]);
100
+ const fetchSpecificParametersDescription = useCallback(() => {
101
+ backendFetchSpecificParametersDescription == null ? void 0 : backendFetchSpecificParametersDescription().then((specificParams) => {
102
+ setSpecificParamsDescription(specificParams);
103
+ }).catch((error) => {
104
+ snackError({
105
+ messageTxt: error.message,
106
+ headerId: `fetch${formatComputingTypeLabel(type)}SpecificParametersError`
107
+ });
108
+ });
109
+ }, [backendFetchSpecificParametersDescription, snackError, type]);
110
+ useEffect(() => {
111
+ if (optionalServiceStatus === "UP") {
112
+ fetchSpecificParametersDescription();
113
+ }
114
+ }, [optionalServiceStatus, studyUuid, fetchSpecificParametersDescription]);
115
+ const fetchDefaultLimitReductions = useCallback(() => {
116
+ backendFetchDefaultLimitReductions == null ? void 0 : backendFetchDefaultLimitReductions().then((defaultLimits) => {
117
+ setDefaultLimitReductions(defaultLimits);
118
+ }).catch((error) => {
119
+ snackError({
120
+ messageTxt: error.message,
121
+ headerId: "fetchDefaultLimitReductionsError"
122
+ });
123
+ });
124
+ }, [backendFetchDefaultLimitReductions, snackError]);
125
+ useEffect(() => {
126
+ fetchDefaultLimitReductions();
127
+ }, [fetchDefaultLimitReductions]);
128
+ const backendUpdateParametersCb = useCallback(
129
+ (_studyUuid, newParams, oldParams) => {
130
+ backendUpdateParameters == null ? void 0 : backendUpdateParameters(_studyUuid, newParams).catch((error) => {
131
+ setParams(oldParams);
132
+ if (oldParams && "provider" in oldParams) {
133
+ setProvider(oldParams.provider);
134
+ } else {
135
+ setProvider(void 0);
136
+ }
137
+ snackError({
138
+ messageTxt: error.message,
139
+ headerId: `update${formatComputingTypeLabel(type)}ParametersError`
140
+ });
141
+ });
142
+ },
143
+ [backendUpdateParameters, snackError, type]
144
+ );
145
+ const debouncedBackendUpdateParameters = useDebounce(backendUpdateParametersCb, 1e3);
146
+ const updateParameter = useCallback(
147
+ (newParams) => {
148
+ if (!studyUuid) {
149
+ return;
150
+ }
151
+ const oldParams = currentParams ? { ...currentParams } : null;
152
+ setParams(newParams);
153
+ if (newParams && "provider" in newParams) {
154
+ setProvider(newParams.provider);
155
+ } else {
156
+ setProvider(void 0);
157
+ }
158
+ debouncedBackendUpdateParameters(studyUuid, newParams, oldParams);
159
+ },
160
+ [debouncedBackendUpdateParameters, currentParams, studyUuid]
161
+ );
162
+ const resetParameters = useCallback(() => {
163
+ if (!studyUuid || !backendUpdateParameters) {
164
+ return Promise.reject();
165
+ }
166
+ return backendUpdateParameters(studyUuid, null).then((response) => {
167
+ if (response.status === 204) {
168
+ snackWarning({
169
+ headerId: `reset${formatComputingTypeLabel(type)}ParametersWarning`
170
+ });
171
+ }
172
+ }).catch((error) => {
173
+ snackError({
174
+ messageTxt: error.message,
175
+ headerId: `update${formatComputingTypeLabel(type)}ParametersError`
176
+ });
177
+ });
178
+ }, [studyUuid, type, backendUpdateParameters, snackError, snackWarning]);
179
+ const fetchParameters = useCallback(
180
+ (_studyUuid) => {
181
+ backendFetchParameters(_studyUuid).then((_params) => {
182
+ setParams(_params);
183
+ if ("provider" in _params) {
184
+ setProvider(_params.provider);
185
+ }
186
+ }).catch((error) => {
187
+ snackError({
188
+ messageTxt: error.message,
189
+ headerId: `fetch${formatComputingTypeLabel(type)}ParametersError`
190
+ });
191
+ });
192
+ },
193
+ [backendFetchParameters, type, snackError]
194
+ );
195
+ useEffect(() => {
196
+ if (studyUuid && optionalServiceStatus === "UP") {
197
+ fetchParameters(studyUuid);
198
+ }
199
+ }, [optionalServiceStatus, studyUuid, fetchParameters]);
200
+ return [
201
+ providersRef.current,
202
+ provider,
203
+ fetchProvider,
204
+ updateProvider,
205
+ resetProvider,
206
+ currentParams,
207
+ fetchParameters,
208
+ updateParameter,
209
+ resetParameters,
210
+ specificParamsDescription,
211
+ defaultLimitReductions
212
+ ];
213
+ };
214
+ export {
215
+ OptionalServicesStatus,
216
+ useParametersBackend
217
+ };
package/dist/index.js CHANGED
@@ -42,7 +42,7 @@ import { saveExpertFilter, saveExplicitNamingFilter } from "./components/filter/
42
42
  import { CONTINGENCY_LIST_EQUIPMENTS, FILTER_EQUIPMENTS } from "./components/filter/utils/filterFormUtils.js";
43
43
  import { FlatParameters, extractDefault } from "./components/flatParameters/FlatParameters.js";
44
44
  import { SelectClearable } from "./components/inputs/SelectClearable.js";
45
- import { DirectoryItemsInput, NAME } from "./components/inputs/reactHookForm/DirectoryItemsInput.js";
45
+ import { DESCRIPTION_INPUT, DirectoryItemsInput, NAME } from "./components/inputs/reactHookForm/DirectoryItemsInput.js";
46
46
  import { RawReadOnlyInput } from "./components/inputs/reactHookForm/RawReadOnlyInput.js";
47
47
  import { BottomRightButtons } from "./components/inputs/reactHookForm/agGridTable/BottomRightButtons.js";
48
48
  import { CustomAgGridTable } from "./components/inputs/reactHookForm/agGridTable/CustomAgGridTable.js";
@@ -108,6 +108,29 @@ import { useNotificationsListener } from "./components/notifications/hooks/useNo
108
108
  import { useListenerManager } from "./components/notifications/hooks/useListenerManager.js";
109
109
  import { LeftPanelOpenIcon } from "./components/icons/LeftPanelOpenIcon.js";
110
110
  import { LeftPanelCloseIcon } from "./components/icons/LeftPanelCloseIcon.js";
111
+ import { ComputingType, formatComputingTypeLabel, isValidComputingType } from "./components/parameters/common/computing-type.js";
112
+ import { PARAM_SA_FLOW_PROPORTIONAL_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_LOW_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_LOW_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_PROVIDER, PROVIDER, VOLTAGE_LEVEL } from "./components/parameters/common/constant.js";
113
+ import { LineSeparator } from "./components/parameters/common/line-separator.js";
114
+ import { LabelledButton, SwitchWithLabel, TabPanel } from "./components/parameters/common/parameters.js";
115
+ import { CreateParameterDialog } from "./components/parameters/common/parameters-creation-dialog.js";
116
+ import { ProviderParam } from "./components/parameters/common/ProviderParam.js";
117
+ import { ParameterFloat } from "./components/parameters/common/widget/parameter-float.js";
118
+ import { ParameterGroup } from "./components/parameters/common/widget/parameter-group.js";
119
+ import { ParameterLineDirectoryItemsInput } from "./components/parameters/common/widget/parameter-line-directory-items-input.js";
120
+ import { ParameterLineSlider, sanitizePercentageValue } from "./components/parameters/common/widget/parameter-line-slider.js";
121
+ import { ParameterSwitch } from "./components/parameters/common/widget/parameter-switch.js";
122
+ import { CustomVoltageLevelTable } from "./components/parameters/common/voltage-level-table/custom-voltage-level-table.js";
123
+ import { CustomVoltageLevelTableCell } from "./components/parameters/common/voltage-level-table/custom-voltage-level-table-cell.js";
124
+ import { CustomVoltageLevelTableRow } from "./components/parameters/common/voltage-level-table/custom-voltage-level-table-row.js";
125
+ import { COLUMNS_DEFINITIONS_LIMIT_REDUCTIONS, IST_FORM, LIMIT_DURATION_FORM, LIMIT_REDUCTIONS_FORM, TAB_INFO, TabValues, VOLTAGE_LEVELS_FORM, getLimitReductionsFormSchema, getSAParametersFromSchema } from "./components/parameters/common/limitreductions/columns-definitions.js";
126
+ import { toFormValueSaParameters, toFormValuesLimitReductions } from "./components/parameters/common/limitreductions/limit-reductions-form-util.js";
127
+ import { LimitReductionsTableForm } from "./components/parameters/common/limitreductions/limit-reductions-table-form.js";
128
+ import { LimitReductionTableRow } from "./components/parameters/common/limitreductions/limit-reduction-table-row.js";
129
+ import { LimitReductionTableCell } from "./components/parameters/common/limitreductions/limit-reduction-table-cell.js";
130
+ import { getTabIndicatorStyle, getTabStyle, parametersStyles } from "./components/parameters/parameters-style.js";
131
+ import { BALANCE_TYPE, COMMON_PARAMETERS, CONNECTED_COMPONENT_MODE, COUNTRIES_TO_BALANCE, DC, DC_POWER_FACTOR, DC_USE_TRANSFORMER_RATIO, DEFAULT_LIMIT_REDUCTION_VALUE, DISTRIBUTED_SLACK, HVDC_AC_EMULATION, MAX_VALUE_ALLOWED_FOR_LIMIT_REDUCTION, MIN_VALUE_ALLOWED_FOR_LIMIT_REDUCTION, PARAM_LIMIT_REDUCTION, PARAM_PROVIDER_OPENLOADFLOW, PHASE_SHIFTER_REGULATION_ON, READ_SLACK_BUS, SHUNT_COMPENSATOR_VOLTAGE_CONTROL_ON, SPECIFIC_PARAMETERS, TRANSFORMER_VOLTAGE_CONTROL_ON, TWT_SPLIT_SHUNT_ADMITTANCE, USE_REACTIVE_LIMITS, VOLTAGE_INIT_MODE, WRITE_SLACK_BUS, alertThresholdMarks } from "./components/parameters/loadflow/constants.js";
132
+ import { LoadFlowParametersInline } from "./components/parameters/loadflow/load-flow-parameters-inline.js";
133
+ import { LoadFlowParametersEditionDialog } from "./components/parameters/loadflow/load-flow-parameters-dialog.js";
111
134
  import { CustomMenuItem, CustomNestedMenuItem } from "./components/menus/custom-nested-menu.js";
112
135
  import { useStateBoolean } from "./hooks/customStates/useStateBoolean.js";
113
136
  import { useStateNumber } from "./hooks/customStates/useStateNumber.js";
@@ -121,10 +144,11 @@ import { usePrevious } from "./hooks/usePrevious.js";
121
144
  import { useSnackMessage } from "./hooks/useSnackMessage.js";
122
145
  import { useFormatLabelWithUnit } from "./hooks/useFormatLabelWithUnit.js";
123
146
  import { useSelectAppearance } from "./hooks/useSelectAppearance.js";
147
+ import { OptionalServicesStatus, useParametersBackend } from "./hooks/use-parameters-backend.js";
124
148
  import { LOGOUT_ERROR, RESET_AUTHENTICATION_ROUTER_ERROR, SHOW_AUTH_INFO_LOGIN, SIGNIN_CALLBACK_ERROR, UNAUTHORIZED_USER_INFO, USER, USER_VALIDATION_ERROR, resetAuthenticationRouterError, setLoggedUser, setLogoutError, setShowAuthenticationRouterLogin, setSignInCallbackError, setUnauthorizedUserInfo, setUserValidationError } from "./redux/actions/authActions.js";
125
149
  import { getUserToken, setCommonStore } from "./redux/commonStore.js";
126
- import { backendFetch, backendFetchJson, catchErrorHandler, getRequestParamFromList } from "./services/utils.js";
127
- import { createFilter, fetchElementsInfos, saveFilter } from "./services/explore.js";
150
+ import { backendFetch, backendFetchJson, backendFetchText, catchErrorHandler, getRequestParamFromList } from "./services/utils.js";
151
+ import { createFilter, createParameter, fetchElementsInfos, saveFilter, updateParameter } from "./services/explore.js";
128
152
  import { fetchAppsMetadata, fetchDefaultCountry, fetchEnv, fetchFavoriteAndDefaultCountries, fetchStudyMetadata, isStudyMetadata } from "./services/appsMetadata.js";
129
153
  import { elementAlreadyExists, fetchDirectoryContent, fetchDirectoryElementPath, fetchRootFolders } from "./services/directory.js";
130
154
  import { exportFilter } from "./services/study.js";
@@ -144,6 +168,10 @@ import { BASE_EQUIPMENTS, EQUIPMENT_TYPE, EquipmentType, ExtendedEquipmentType,
144
168
  import { Battery, BusBar, DanglingLine, Generator, Hvdc, LCC, Line, Load, SVC, ShuntCompensator, Substation, ThreeWindingTransfo, TwoWindingTransfo, VSC, VoltageLevel } from "./utils/types/equipmentTypes.js";
145
169
  import { MODIFICATION_TYPES, ModificationType } from "./utils/types/modificationType.js";
146
170
  import { FieldType } from "./utils/types/fieldType.js";
171
+ import { ParameterType } from "./utils/types/parameters.type.js";
172
+ import { SolverTypeInfos } from "./utils/types/dynamic-simulation.type.js";
173
+ import { EnergySource } from "./utils/types/non-evacuated-energy.type.js";
174
+ import { DistributionType, SensitivityType } from "./utils/types/sensitivity-analysis.type.js";
147
175
  import "./utils/yupConfig.js";
148
176
  import { cardErrorBoundaryEn } from "./translations/en/cardErrorBoundaryEn.js";
149
177
  import { commonButtonEn } from "./translations/en/commonButtonEn.js";
@@ -167,6 +195,7 @@ import { networkModificationsEn } from "./translations/en/networkModificationsEn
167
195
  import { exportParamsEn } from "./translations/en/external/exportParamsEn.js";
168
196
  import { importParamsEn } from "./translations/en/external/importParamsEn.js";
169
197
  import { componentsEn } from "./translations/en/componentsEn.js";
198
+ import { parametersEn } from "./translations/en/parameters.js";
170
199
  import { cardErrorBoundaryFr } from "./translations/fr/cardErrorBoundaryFr.js";
171
200
  import { commonButtonFr } from "./translations/fr/commonButtonFr.js";
172
201
  import { csvFr } from "./translations/fr/csvFr.js";
@@ -189,6 +218,7 @@ import { networkModificationsFr } from "./translations/fr/networkModificationsFr
189
218
  import { exportParamsFr } from "./translations/fr/external/exportParamsFr.js";
190
219
  import { importParamsFr } from "./translations/fr/external/importParamsFr.js";
191
220
  import { componentsFr } from "./translations/fr/componentsFr.js";
221
+ import { parametersFr } from "./translations/fr/parameters.js";
192
222
  import * as yup from "yup";
193
223
  export {
194
224
  AMPERE,
@@ -199,14 +229,19 @@ export {
199
229
  default3 as AuthenticationRouterErrorDisplay,
200
230
  AutocompleteInput,
201
231
  AutocompleteWithFavorites,
232
+ BALANCE_TYPE,
202
233
  BASE_EQUIPMENTS,
203
234
  Battery,
204
235
  BooleanInput,
205
236
  BottomRightButtons,
206
237
  BusBar,
238
+ COLUMNS_DEFINITIONS_LIMIT_REDUCTIONS,
207
239
  COMBINATOR_OPTIONS,
240
+ COMMON_PARAMETERS,
241
+ CONNECTED_COMPONENT_MODE,
208
242
  CONTINGENCY_LIST_EQUIPMENTS,
209
243
  CONVERTERS_MODE_OPTIONS,
244
+ COUNTRIES_TO_BALANCE,
210
245
  CUSTOM_AGGRID_THEME,
211
246
  CancelButton,
212
247
  CardErrorBoundary,
@@ -214,8 +249,10 @@ export {
214
249
  CheckboxInput,
215
250
  CombinatorSelector,
216
251
  CombinatorType,
252
+ ComputingType,
217
253
  CountriesInput,
218
254
  CountryValueEditor,
255
+ CreateParameterDialog,
219
256
  CriteriaBasedForm,
220
257
  CsvUploader,
221
258
  CustomAGGrid,
@@ -226,9 +263,18 @@ export {
226
263
  CustomMuiDialog,
227
264
  CustomNestedMenuItem,
228
265
  CustomReactQueryBuilder,
266
+ CustomVoltageLevelTable,
267
+ CustomVoltageLevelTableCell,
268
+ CustomVoltageLevelTableRow,
229
269
  DARK_THEME,
270
+ DC,
271
+ DC_POWER_FACTOR,
272
+ DC_USE_TRANSFORMER_RATIO,
273
+ DEFAULT_LIMIT_REDUCTION_VALUE,
230
274
  DEFAULT_RANGE_VALUE,
231
275
  DEGREE,
276
+ DESCRIPTION_INPUT,
277
+ DISTRIBUTED_SLACK,
232
278
  DISTRIBUTION_KEY,
233
279
  DanglingLine,
234
280
  DataType,
@@ -236,6 +282,7 @@ export {
236
282
  DescriptionModificationDialog,
237
283
  DirectoryItemSelector,
238
284
  DirectoryItemsInput,
285
+ DistributionType,
239
286
  ENERGY_SOURCE_OPTIONS,
240
287
  EQUIPMENT_TYPE,
241
288
  EXPERT_FILTER_EQUIPMENTS,
@@ -246,6 +293,7 @@ export {
246
293
  ElementSearchInput,
247
294
  ElementType,
248
295
  ElementValueEditor,
296
+ EnergySource,
249
297
  EquipmentItem,
250
298
  EquipmentType,
251
299
  ErrorInLogoutAlert,
@@ -274,9 +322,11 @@ export {
274
322
  Generator,
275
323
  GridLogo,
276
324
  GroupValueEditor,
325
+ HVDC_AC_EMULATION,
277
326
  HelperPreviousValue,
278
327
  Hvdc,
279
328
  HvdcType,
329
+ IST_FORM,
280
330
  InputWithPopupConfirmation,
281
331
  IntegerInput,
282
332
  KILO_AMPERE,
@@ -287,20 +337,31 @@ export {
287
337
  LANG_SYSTEM,
288
338
  LCC,
289
339
  LIGHT_THEME,
340
+ LIMIT_DURATION_FORM,
341
+ LIMIT_REDUCTIONS_FORM,
290
342
  LOAD_TYPE_OPTIONS,
291
343
  LOGOUT_ERROR,
344
+ LabelledButton,
292
345
  LeftPanelCloseIcon,
293
346
  LeftPanelOpenIcon,
347
+ LimitReductionTableCell,
348
+ LimitReductionTableRow,
349
+ LimitReductionsTableForm,
294
350
  Line,
351
+ LineSeparator,
295
352
  Load,
353
+ LoadFlowParametersEditionDialog,
354
+ LoadFlowParametersInline,
296
355
  Login,
297
356
  LogoText,
298
357
  Logout,
299
358
  MAX_CHAR_DESCRIPTION,
359
+ MAX_VALUE_ALLOWED_FOR_LIMIT_REDUCTION,
300
360
  MEGA_VAR,
301
361
  MEGA_VOLT_AMPERE,
302
362
  MEGA_WATT,
303
363
  MICRO_SIEMENS,
364
+ MIN_VALUE_ALLOWED_FOR_LIMIT_REDUCTION,
304
365
  MODIFICATION_TYPES,
305
366
  MidFormError,
306
367
  ModificationType,
@@ -317,12 +378,31 @@ export {
317
378
  OPERATOR_OPTIONS,
318
379
  OperatingStatus,
319
380
  OperatorType,
381
+ OptionalServicesStatus,
320
382
  OverflowableText,
383
+ PARAM_LIMIT_REDUCTION,
384
+ PARAM_PROVIDER_OPENLOADFLOW,
385
+ PARAM_SA_FLOW_PROPORTIONAL_THRESHOLD,
386
+ PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD,
387
+ PARAM_SA_HIGH_VOLTAGE_PROPORTIONAL_THRESHOLD,
388
+ PARAM_SA_LOW_VOLTAGE_ABSOLUTE_THRESHOLD,
389
+ PARAM_SA_LOW_VOLTAGE_PROPORTIONAL_THRESHOLD,
390
+ PARAM_SA_PROVIDER,
321
391
  PERCENTAGE,
322
392
  PHASE_REGULATION_MODE_OPTIONS,
393
+ PHASE_SHIFTER_REGULATION_ON,
394
+ PROVIDER,
395
+ ParameterFloat,
396
+ ParameterGroup,
397
+ ParameterLineDirectoryItemsInput,
398
+ ParameterLineSlider,
399
+ ParameterSwitch,
400
+ ParameterType,
323
401
  PopupConfirmationDialog,
324
402
  PropertyValueEditor,
403
+ ProviderParam,
325
404
  RATIO_REGULATION_MODE_OPTIONS,
405
+ READ_SLACK_BUS,
326
406
  REGULATION_TYPE_OPTIONS,
327
407
  RESET_AUTHENTICATION_ROUTER_ERROR,
328
408
  RULES,
@@ -335,21 +415,31 @@ export {
335
415
  SEARCH_EQUIPMENTS,
336
416
  SHOW_AUTH_INFO_LOGIN,
337
417
  SHUNT_COMPENSATOR_TYPE_OPTIONS,
418
+ SHUNT_COMPENSATOR_VOLTAGE_CONTROL_ON,
338
419
  SIEMENS,
339
420
  SIGNIN_CALLBACK_ERROR,
421
+ SPECIFIC_PARAMETERS,
340
422
  SVAR_REGULATION_MODE_OPTIONS,
341
423
  SVC,
342
424
  SelectClearable,
343
425
  SelectInput,
426
+ SensitivityType,
344
427
  ShuntCompensator,
345
428
  SignInCallbackHandler,
346
429
  SilentRenewCallbackHandler,
347
430
  SliderInput,
348
431
  SnackbarProvider,
432
+ SolverTypeInfos,
349
433
  SubmitButton,
350
434
  Substation,
351
435
  SwitchInput,
436
+ SwitchWithLabel,
437
+ TAB_INFO,
438
+ TRANSFORMER_VOLTAGE_CONTROL_ON,
439
+ TWT_SPLIT_SHUNT_ADMITTANCE,
352
440
  TYPE_TAG_MAX_SIZE,
441
+ TabPanel,
442
+ TabValues,
353
443
  TagRenderer,
354
444
  TextFieldWithAdornment,
355
445
  TextInput,
@@ -362,17 +452,24 @@ export {
362
452
  UNAUTHORIZED_USER_INFO,
363
453
  USER,
364
454
  USER_VALIDATION_ERROR,
455
+ USE_REACTIVE_LIMITS,
365
456
  UnauthorizedAccessAlert,
366
457
  UniqueNameInput,
367
458
  UserManagerMock,
368
459
  VL_TAG_MAX_SIZE,
460
+ VOLTAGE_INIT_MODE,
461
+ VOLTAGE_LEVEL,
462
+ VOLTAGE_LEVELS_FORM,
369
463
  VSC,
370
464
  ValueEditor,
371
465
  ValueSelector,
372
466
  VoltageLevel,
467
+ WRITE_SLACK_BUS,
468
+ alertThresholdMarks,
373
469
  areArrayElementsUnique,
374
470
  backendFetch,
375
471
  backendFetchJson,
472
+ backendFetchText,
376
473
  cardErrorBoundaryEn,
377
474
  cardErrorBoundaryFr,
378
475
  catchErrorHandler,
@@ -384,6 +481,7 @@ export {
384
481
  convertOutputValue,
385
482
  countRules,
386
483
  createFilter,
484
+ createParameter,
387
485
  csvEn,
388
486
  csvFr,
389
487
  descriptionEn,
@@ -423,6 +521,7 @@ export {
423
521
  filterFr,
424
522
  flatParametersEn,
425
523
  flatParametersFr,
524
+ formatComputingTypeLabel,
426
525
  genHelperError,
427
526
  generateTreeViewFinderClass,
428
527
  getComputedLanguage,
@@ -432,12 +531,16 @@ export {
432
531
  getExpertFilterEmptyFormData,
433
532
  getExplicitNamingFilterEmptyFormData,
434
533
  getFileIcon,
534
+ getLimitReductionsFormSchema,
435
535
  getNumberOfSiblings,
436
536
  getOperators,
437
537
  getPreLoginPath,
438
538
  getRangeInputSchema,
439
539
  getRequestParamFromList,
540
+ getSAParametersFromSchema,
440
541
  getSystemLanguage,
542
+ getTabIndicatorStyle,
543
+ getTabStyle,
441
544
  getUserToken,
442
545
  gridItem,
443
546
  handleSigninCallback,
@@ -456,6 +559,7 @@ export {
456
559
  isIntegerNumber,
457
560
  isObjectEmpty,
458
561
  isStudyMetadata,
562
+ isValidComputingType,
459
563
  keyGenerator,
460
564
  kiloUnitToUnit,
461
565
  login,
@@ -469,6 +573,9 @@ export {
469
573
  multipleSelectionDialogFr,
470
574
  networkModificationsEn,
471
575
  networkModificationsFr,
576
+ parametersEn,
577
+ parametersFr,
578
+ parametersStyles,
472
579
  queryValidator,
473
580
  recursiveRemove,
474
581
  reportViewerEn,
@@ -477,6 +584,7 @@ export {
477
584
  roundToDefaultPrecision,
478
585
  roundToPrecision,
479
586
  rqbQuerySchemaValidator,
587
+ sanitizePercentageValue,
480
588
  saveExpertFilter,
481
589
  saveExplicitNamingFilter,
482
590
  saveFilter,
@@ -493,6 +601,8 @@ export {
493
601
  tableFr,
494
602
  testQuery,
495
603
  toFloatOrNullValue,
604
+ toFormValueSaParameters,
605
+ toFormValuesLimitReductions,
496
606
  toNestedGlobalSelectors,
497
607
  topBarEn,
498
608
  topBarFr,
@@ -501,6 +611,7 @@ export {
501
611
  unitToKiloUnit,
502
612
  unitToMicroUnit,
503
613
  unscrollableDialogStyles,
614
+ updateParameter,
504
615
  useConfidentialityWarning,
505
616
  useConvertValue,
506
617
  useCustomFormContext,
@@ -512,6 +623,7 @@ export {
512
623
  useLocalizedCountries,
513
624
  useModificationLabelComputer,
514
625
  useNotificationsListener,
626
+ useParametersBackend,
515
627
  usePredefinedProperties,
516
628
  usePrevious,
517
629
  useSelectAppearance,
@@ -1,6 +1,9 @@
1
1
  import { UUID } from 'crypto';
2
2
  import { ElementAttributes } from '../utils/types/types';
3
3
  import { NewFilterType } from '../components/filter/filter.type';
4
+ import { ElementType } from '../utils';
4
5
  export declare function createFilter(newFilter: NewFilterType, name: string, description: string, parentDirectoryUuid: UUID | undefined | null, token?: string): Promise<Response>;
5
6
  export declare function saveFilter(filter: NewFilterType, name: string, description: string, token?: string): Promise<Response>;
6
7
  export declare function fetchElementsInfos(ids: UUID[], elementTypes?: string[], equipmentTypes?: string[]): Promise<ElementAttributes[]>;
8
+ export declare function createParameter(newParameter: any, name: string, parameterType: ElementType, description: string, parentDirectoryUuid: UUID): Promise<Response>;
9
+ export declare function updateParameter(id: UUID, newParameter: any, name: string, parameterType: ElementType, description: string): Promise<Response>;
@@ -58,8 +58,33 @@ async function fetchElementsInfos(ids, elementTypes, equipmentTypes) {
58
58
  }
59
59
  return final;
60
60
  }
61
+ function createParameter(newParameter, name, parameterType, description, parentDirectoryUuid) {
62
+ const urlSearchParams = new URLSearchParams();
63
+ urlSearchParams.append("name", name);
64
+ urlSearchParams.append("type", parameterType);
65
+ urlSearchParams.append("description", description);
66
+ urlSearchParams.append("parentDirectoryUuid", parentDirectoryUuid);
67
+ return backendFetch(`${PREFIX_EXPLORE_SERVER_QUERIES}/v1/explore/parameters?${urlSearchParams.toString()}`, {
68
+ method: "post",
69
+ headers: { "Content-Type": "application/json" },
70
+ body: JSON.stringify(newParameter)
71
+ });
72
+ }
73
+ function updateParameter(id, newParameter, name, parameterType, description) {
74
+ const urlSearchParams = new URLSearchParams();
75
+ urlSearchParams.append("name", name);
76
+ urlSearchParams.append("type", parameterType);
77
+ urlSearchParams.append("description", description);
78
+ return backendFetch(`${PREFIX_EXPLORE_SERVER_QUERIES}/v1/explore/parameters/${id}?${urlSearchParams.toString()}`, {
79
+ method: "put",
80
+ headers: { "Content-Type": "application/json" },
81
+ body: JSON.stringify(newParameter)
82
+ });
83
+ }
61
84
  export {
62
85
  createFilter,
86
+ createParameter,
63
87
  fetchElementsInfos,
64
- saveFilter
88
+ saveFilter,
89
+ updateParameter
65
90
  };
@@ -1,13 +1,15 @@
1
- import { backendFetch, backendFetchJson, catchErrorHandler, getRequestParamFromList } from "./utils.js";
2
- import { createFilter, fetchElementsInfos, saveFilter } from "./explore.js";
1
+ import { backendFetch, backendFetchJson, backendFetchText, catchErrorHandler, getRequestParamFromList } from "./utils.js";
2
+ import { createFilter, createParameter, fetchElementsInfos, saveFilter, updateParameter } from "./explore.js";
3
3
  import { fetchAppsMetadata, fetchDefaultCountry, fetchEnv, fetchFavoriteAndDefaultCountries, fetchStudyMetadata, isStudyMetadata } from "./appsMetadata.js";
4
4
  import { elementAlreadyExists, fetchDirectoryContent, fetchDirectoryElementPath, fetchRootFolders } from "./directory.js";
5
5
  import { exportFilter } from "./study.js";
6
6
  export {
7
7
  backendFetch,
8
8
  backendFetchJson,
9
+ backendFetchText,
9
10
  catchErrorHandler,
10
11
  createFilter,
12
+ createParameter,
11
13
  elementAlreadyExists,
12
14
  exportFilter,
13
15
  fetchAppsMetadata,
@@ -21,5 +23,6 @@ export {
21
23
  fetchStudyMetadata,
22
24
  getRequestParamFromList,
23
25
  isStudyMetadata,
24
- saveFilter
26
+ saveFilter,
27
+ updateParameter
25
28
  };
@@ -0,0 +1,9 @@
1
+ import { UUID } from 'crypto';
2
+ export declare const PREFIX_STUDY_QUERIES: string;
3
+ export declare function getLoadFlowUrl(): string;
4
+ export declare function getLoadFlowProviders(): Promise<any>;
5
+ export declare function getLoadFlowSpecificParametersDescription(): Promise<any>;
6
+ export declare function getLoadFlowDefaultLimitReductions(): Promise<any>;
7
+ export declare function getDefaultLoadFlowProvider(): Promise<string>;
8
+ export declare function fetchLoadFlowParameters(parameterUuid: string): Promise<any>;
9
+ export declare function setLoadFlowParameters(parameterUuid: UUID, newParams: any): Promise<Response>;