@gridsuite/commons-ui 0.138.0 → 0.139.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 (55) hide show
  1. package/dist/components/cardErrorBoundary/CardErrorBoundary.d.ts +1 -1
  2. package/dist/components/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js +2 -6
  3. package/dist/components/directoryItemSelector/DirectoryItemSelector.js +2 -4
  4. package/dist/components/elementSearch/hooks/useElementSearch.js +2 -4
  5. package/dist/components/filter/FilterCreationDialog.js +3 -16
  6. package/dist/components/filter/expert/ExpertFilterEditionDialog.js +4 -23
  7. package/dist/components/filter/expert/expertFilterUtils.d.ts +0 -1
  8. package/dist/components/filter/expert/expertFilterUtils.js +0 -11
  9. package/dist/components/filter/expert/index.js +1 -2
  10. package/dist/components/filter/explicitNaming/ExplicitNamingFilterEditionDialog.js +3 -7
  11. package/dist/components/filter/explicitNaming/ExplicitNamingFilterForm.js +2 -4
  12. package/dist/components/filter/index.js +1 -2
  13. package/dist/components/filter/utils/filterApi.js +1 -1
  14. package/dist/components/index.js +1 -2
  15. package/dist/components/inputs/reactHookForm/DirectoryItemsInput.js +7 -4
  16. package/dist/components/inputs/reactHookForm/OverflowableChipWithHelperText.js +1 -1
  17. package/dist/components/parameters/common/parameters-creation-dialog.js +4 -9
  18. package/dist/components/parameters/loadflow/load-flow-parameters-inline.js +3 -6
  19. package/dist/components/parameters/loadflow/use-load-flow-parameters-form.js +3 -5
  20. package/dist/components/parameters/network-visualizations/network-visualizations-parameters-inline.js +2 -5
  21. package/dist/components/parameters/network-visualizations/use-network-visualizations-parameters-form.js +4 -12
  22. package/dist/components/parameters/security-analysis/security-analysis-parameters-inline.js +2 -5
  23. package/dist/components/parameters/security-analysis/use-security-analysis-parameters-form.js +3 -5
  24. package/dist/components/parameters/sensi/sensitivity-analysis-parameters-inline.js +3 -9
  25. package/dist/components/parameters/sensi/use-sensitivity-analysis-parameters.js +4 -12
  26. package/dist/components/parameters/short-circuit/short-circuit-parameters-inline.js +2 -5
  27. package/dist/components/parameters/short-circuit/use-short-circuit-parameters-form.js +5 -16
  28. package/dist/components/parameters/voltage-init/use-voltage-init-parameters-form.js +4 -12
  29. package/dist/components/parameters/voltage-init/voltage-init-parameters-inline.js +3 -8
  30. package/dist/hooks/use-parameters-backend.js +10 -20
  31. package/dist/hooks/usePredefinedProperties.js +2 -3
  32. package/dist/hooks/useSnackMessage.d.ts +1 -2
  33. package/dist/index.js +9 -4
  34. package/dist/services/index.d.ts +0 -1
  35. package/dist/services/index.js +1 -4
  36. package/dist/services/utils.d.ts +0 -1
  37. package/dist/services/utils.js +7 -10
  38. package/dist/translations/en/businessErrorsEn.d.ts +18 -0
  39. package/dist/translations/en/businessErrorsEn.js +19 -1
  40. package/dist/translations/en/equipmentShortEn.js +3 -3
  41. package/dist/translations/fr/businessErrorsFr.d.ts +18 -0
  42. package/dist/translations/fr/businessErrorsFr.js +19 -1
  43. package/dist/translations/fr/equipmentShortFr.js +3 -3
  44. package/dist/utils/error.d.ts +4 -0
  45. package/dist/utils/error.js +28 -0
  46. package/dist/utils/index.d.ts +2 -0
  47. package/dist/utils/index.js +9 -0
  48. package/dist/utils/labelUtils.d.ts +8 -0
  49. package/dist/utils/labelUtils.js +17 -0
  50. package/dist/{services/businessErrorCode.d.ts → utils/types/CustomError.d.ts} +3 -1
  51. package/dist/utils/types/CustomError.js +20 -0
  52. package/dist/utils/types/index.d.ts +1 -0
  53. package/dist/utils/types/index.js +3 -0
  54. package/package.json +1 -1
  55. package/dist/services/businessErrorCode.js +0 -10
@@ -22,6 +22,6 @@ export declare class CardErrorBoundary extends Component<PropsWithChildren<{}>,
22
22
  componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
23
23
  private handleExpandClick;
24
24
  private handleReloadClick;
25
- render(): string | number | boolean | import("react/jsx-runtime").JSX.Element | Iterable<import('react').ReactNode> | null | undefined;
25
+ render(): string | number | boolean | Iterable<import('react').ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
26
26
  }
27
27
  export {};
@@ -9,6 +9,7 @@ import { useSnackMessage } from "../../../hooks/useSnackMessage.js";
9
9
  import { CustomMuiDialog } from "../customMuiDialog/CustomMuiDialog.js";
10
10
  import { ExpandingTextField } from "../../inputs/reactHookForm/text/ExpandingTextField.js";
11
11
  import { MAX_CHAR_DESCRIPTION } from "../../../utils/constants/uiConstants.js";
12
+ import { snackWithFallback } from "../../../utils/error.js";
12
13
  import * as yup from "yup";
13
14
  const schema = yup.object().shape({
14
15
  [FieldConstants.DESCRIPTION]: yup.string().max(MAX_CHAR_DESCRIPTION, "descriptionLimitError")
@@ -40,12 +41,7 @@ function DescriptionModificationDialog({
40
41
  updateElement(elementUuid, {
41
42
  [FieldConstants.DESCRIPTION]: data[FieldConstants.DESCRIPTION]?.trim() ?? ""
42
43
  }).catch((error) => {
43
- if (error instanceof Object && "message" in error && typeof error.message === "string") {
44
- snackError({
45
- messageTxt: error.message,
46
- headerId: "descriptionModificationError"
47
- });
48
- }
44
+ snackWithFallback(snackError, error, { headerId: "descriptionModificationError" });
49
45
  });
50
46
  },
51
47
  [elementUuid, updateElement, snackError]
@@ -7,6 +7,7 @@ import { useSnackMessage } from "../../hooks/useSnackMessage.js";
7
7
  import { fetchElementsInfos } from "../../services/explore.js";
8
8
  import { fetchRootFolders, fetchDirectoryContent } from "../../services/directory.js";
9
9
  import { getExpansionPathsForSelected, fetchChildrenForExpandedNodes, initializeFromLastSelected, saveLastSelectedDirectoryFromNode } from "./utils.js";
10
+ import { snackWithFallback } from "../../utils/error.js";
10
11
  const styles = {
11
12
  icon: (theme) => ({
12
13
  marginRight: theme.spacing(1),
@@ -168,10 +169,7 @@ function DirectoryItemSelector({
168
169
  nodeMap.current = mdr;
169
170
  setData(convertRoots(nrs));
170
171
  }).catch((error) => {
171
- snackError({
172
- messageTxt: error.message,
173
- headerId: "DirectoryItemSelector"
174
- });
172
+ snackWithFallback(snackError, error, { headerId: "DirectoryItemSelector" });
175
173
  }).finally(() => {
176
174
  setIsRootsLoaded(true);
177
175
  });
@@ -1,6 +1,7 @@
1
1
  import { useState, useRef, useCallback } from "react";
2
2
  import { useDebounce } from "../../../hooks/useDebounce.js";
3
3
  import { useSnackMessage } from "../../../hooks/useSnackMessage.js";
4
+ import { snackWithFallback } from "../../../utils/error.js";
4
5
  const SEARCH_FETCH_TIMEOUT_MILLIS = 1e3;
5
6
  const useElementSearch = (props) => {
6
7
  const { fetchElements } = props;
@@ -32,10 +33,7 @@ const useElementSearch = (props) => {
32
33
  setElementsFound([]);
33
34
  setTotalElements(0);
34
35
  setIsLoading(false);
35
- snackError({
36
- messageTxt: error.message,
37
- headerId: "equipmentsSearchingError"
38
- });
36
+ snackWithFallback(snackError, error, { headerId: "equipmentsSearchingError" });
39
37
  }
40
38
  });
41
39
  },
@@ -14,10 +14,7 @@ import { FilterType } from "./constants/FilterConstants.js";
14
14
  import { MAX_CHAR_DESCRIPTION } from "../../utils/constants/uiConstants.js";
15
15
  import { EXPERT_FILTER_QUERY } from "./expert/expertFilterConstants.js";
16
16
  import { FILTER_EQUIPMENTS_ATTRIBUTES } from "./explicitNaming/ExplicitNamingFilterConstants.js";
17
- import { CustomError } from "../../services/businessErrorCode.js";
18
- import "../../utils/conversionUtils.js";
19
- import "@mui/icons-material";
20
- import "../../utils/types/equipmentType.js";
17
+ import { snackWithFallback } from "../../utils/error.js";
21
18
  import * as yup from "yup";
22
19
  const emptyFormData = {
23
20
  [FieldConstants.NAME]: "",
@@ -63,9 +60,7 @@ function FilterCreationDialog({
63
60
  filterForm[FieldConstants.DESCRIPTION],
64
61
  null,
65
62
  (error) => {
66
- snackError({
67
- messageTxt: error.message
68
- });
63
+ snackWithFallback(snackError, error);
69
64
  },
70
65
  onClose,
71
66
  activeDirectory
@@ -81,15 +76,7 @@ function FilterCreationDialog({
81
76
  activeDirectory,
82
77
  onClose,
83
78
  (error) => {
84
- if (error instanceof CustomError && error.businessErrorCode != null) {
85
- snackError({
86
- messageId: error.businessErrorCode
87
- });
88
- } else {
89
- snackError({
90
- messageTxt: error.message
91
- });
92
- }
79
+ snackWithFallback(snackError, error);
93
80
  }
94
81
  );
95
82
  }
@@ -13,12 +13,8 @@ import { saveExpertFilter } from "../utils/filterApi.js";
13
13
  import { expertFilterSchema } from "./ExpertFilterForm.js";
14
14
  import { importExpertRules } from "./expertFilterUtils.js";
15
15
  import { HeaderFilterSchema } from "../HeaderFilterForm.js";
16
- import { catchErrorHandler } from "../../../services/utils.js";
17
- import "../../../utils/conversionUtils.js";
18
- import "@mui/icons-material";
19
- import "../../../utils/types/equipmentType.js";
20
- import { CustomError } from "../../../services/businessErrorCode.js";
21
16
  import { EXPERT_FILTER_QUERY } from "./expertFilterConstants.js";
17
+ import { snackWithFallback } from "../../../utils/error.js";
22
18
  import * as yup from "yup";
23
19
  const formSchema = yup.object().shape({
24
20
  ...HeaderFilterSchema,
@@ -61,13 +57,8 @@ function ExpertFilterEditionDialog({
61
57
  [EXPERT_FILTER_QUERY]: importExpertRules(response[EXPERT_FILTER_QUERY])
62
58
  });
63
59
  }).catch((error) => {
64
- catchErrorHandler(error, (message) => {
65
- setDataFetchStatus(FetchStatus.FETCH_ERROR);
66
- snackError({
67
- messageTxt: message,
68
- headerId: "cannotRetrieveFilter"
69
- });
70
- });
60
+ setDataFetchStatus(FetchStatus.FETCH_ERROR);
61
+ snackWithFallback(snackError, error, { headerId: "cannotRetrieveFilter" });
71
62
  });
72
63
  }
73
64
  }, [id, name, open, reset, snackError, getFilterById, description]);
@@ -83,17 +74,7 @@ function ExpertFilterEditionDialog({
83
74
  null,
84
75
  onClose,
85
76
  (error) => {
86
- if (error instanceof CustomError && error.businessErrorCode != null) {
87
- snackError({
88
- messageId: error.businessErrorCode,
89
- headerId: "cannotSaveFilter"
90
- });
91
- } else {
92
- snackError({
93
- messageTxt: error.message,
94
- headerId: "cannotSaveFilter"
95
- });
96
- }
77
+ snackWithFallback(snackError, error, { headerId: "cannotSaveFilter" });
97
78
  }
98
79
  );
99
80
  if (itemSelectionForCopy.sourceItemUuid === id) {
@@ -12,4 +12,3 @@ export declare const queryValidator: QueryValidator;
12
12
  export declare const testQuery: (check: string, query: RuleGroupTypeAny) => boolean;
13
13
  export declare function getNumberOfSiblings(path: number[], query: RuleGroupTypeAny): number;
14
14
  export declare function recursiveRemove(query: RuleGroupTypeAny, path: number[]): RuleGroupTypeAny;
15
- export declare function getFilterEquipmentTypeLabel(equipmentType: string | undefined): string;
@@ -4,10 +4,6 @@ import { DataType } from "./expertFilter.type.js";
4
4
  import { OPERATOR_OPTIONS, RULES, FIELDS_OPTIONS } from "./expertFilterConstants.js";
5
5
  import { isBlankOrEmpty, convertOutputValue, convertInputValue } from "../../../utils/conversionUtils.js";
6
6
  import { FieldType } from "../../../utils/types/fieldType.js";
7
- import "react/jsx-runtime";
8
- import "@mui/icons-material";
9
- import { ALL_EQUIPMENTS } from "../../../utils/types/equipmentType.js";
10
- import "../../../utils/yupConfig.js";
11
7
  const searchTree = (tree, key, value) => {
12
8
  const stack = Object.values(tree);
13
9
  while (stack.length) {
@@ -361,16 +357,9 @@ function recursiveRemove(query, path) {
361
357
  }
362
358
  return remove(query, path);
363
359
  }
364
- function getFilterEquipmentTypeLabel(equipmentType) {
365
- if (!equipmentType) {
366
- return "";
367
- }
368
- return ALL_EQUIPMENTS[equipmentType]?.label ?? "";
369
- }
370
360
  export {
371
361
  countRules,
372
362
  exportExpertRules,
373
- getFilterEquipmentTypeLabel,
374
363
  getNumberOfSiblings,
375
364
  getOperators,
376
365
  importExpertRules,
@@ -2,7 +2,7 @@ import { ExpertFilterEditionDialog } from "./ExpertFilterEditionDialog.js";
2
2
  import { ExpertFilterForm, expertFilterSchema, getExpertFilterEmptyFormData } from "./ExpertFilterForm.js";
3
3
  import { CombinatorType, DataType, OperatorType } from "./expertFilter.type.js";
4
4
  import { COMBINATOR_OPTIONS, CONVERTERS_MODE_OPTIONS, ENERGY_SOURCE_OPTIONS, EXPERT_FILTER_EQUIPMENTS, EXPERT_FILTER_FIELDS, EXPERT_FILTER_QUERY, FIELDS_OPTIONS, LOAD_TYPE_OPTIONS, OPERATOR_OPTIONS, PHASE_REGULATION_MODE_OPTIONS, RATIO_REGULATION_MODE_OPTIONS, REGULATION_TYPE_OPTIONS, RULES, SHUNT_COMPENSATOR_TYPE_OPTIONS, SVAR_REGULATION_MODE_OPTIONS } from "./expertFilterConstants.js";
5
- import { countRules, exportExpertRules, getFilterEquipmentTypeLabel, getNumberOfSiblings, getOperators, importExpertRules, queryValidator, recursiveRemove, testQuery } from "./expertFilterUtils.js";
5
+ import { countRules, exportExpertRules, getNumberOfSiblings, getOperators, importExpertRules, queryValidator, recursiveRemove, testQuery } from "./expertFilterUtils.js";
6
6
  export {
7
7
  COMBINATOR_OPTIONS,
8
8
  CONVERTERS_MODE_OPTIONS,
@@ -28,7 +28,6 @@ export {
28
28
  expertFilterSchema,
29
29
  exportExpertRules,
30
30
  getExpertFilterEmptyFormData,
31
- getFilterEquipmentTypeLabel,
32
31
  getNumberOfSiblings,
33
32
  getOperators,
34
33
  importExpertRules,
@@ -15,6 +15,7 @@ import { FilterForm } from "../FilterForm.js";
15
15
  import { NO_ITEM_SELECTION_FOR_COPY, FilterType } from "../constants/FilterConstants.js";
16
16
  import { HeaderFilterSchema } from "../HeaderFilterForm.js";
17
17
  import { FILTER_EQUIPMENTS_ATTRIBUTES } from "./ExplicitNamingFilterConstants.js";
18
+ import { snackWithFallback } from "../../../utils/error.js";
18
19
  import * as yup from "yup";
19
20
  const formSchema = yup.object().shape({
20
21
  ...HeaderFilterSchema,
@@ -61,10 +62,7 @@ function ExplicitNamingFilterEditionDialog({
61
62
  });
62
63
  }).catch((error) => {
63
64
  setDataFetchStatus(FetchStatus.FETCH_ERROR);
64
- snackError({
65
- messageTxt: error.message,
66
- headerId: "cannotRetrieveFilter"
67
- });
65
+ snackWithFallback(snackError, error, { headerId: "cannotRetrieveFilter" });
68
66
  });
69
67
  }
70
68
  }, [id, name, open, reset, snackError, getFilterById, description]);
@@ -78,9 +76,7 @@ function ExplicitNamingFilterEditionDialog({
78
76
  filterForm[FieldConstants.DESCRIPTION] ?? "",
79
77
  id,
80
78
  (error) => {
81
- snackError({
82
- messageTxt: error.message
83
- });
79
+ snackWithFallback(snackError, error);
84
80
  },
85
81
  onClose
86
82
  );
@@ -23,6 +23,7 @@ import "../../dialogs/descriptionModificationDialog/DescriptionModificationDialo
23
23
  import "../../dialogs/elementSaveDialog/ElementSaveDialog.js";
24
24
  import { FILTER_EQUIPMENTS_ATTRIBUTES } from "./ExplicitNamingFilterConstants.js";
25
25
  import { filterStyles } from "../HeaderFilterForm.js";
26
+ import { snackWithFallback } from "../../../utils/error.js";
26
27
  import * as yup from "yup";
27
28
  function isGeneratorOrLoad(equipmentType) {
28
29
  return equipmentType === Generator.type || equipmentType === Load.type;
@@ -147,10 +148,7 @@ function ExplicitNamingFilterForm({ sourceFilterForExplicitNamingConversion }) {
147
148
  }))
148
149
  );
149
150
  }).catch(
150
- (error) => snackError({
151
- messageTxt: error.message,
152
- headerId: "convertIntoExplicitNamingFilterError"
153
- })
151
+ (error) => snackWithFallback(snackError, error, { headerId: "convertIntoExplicitNamingFilterError" })
154
152
  );
155
153
  };
156
154
  return /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -5,7 +5,7 @@ import { ExpertFilterEditionDialog } from "./expert/ExpertFilterEditionDialog.js
5
5
  import { ExpertFilterForm, expertFilterSchema, getExpertFilterEmptyFormData } from "./expert/ExpertFilterForm.js";
6
6
  import { CombinatorType, DataType, OperatorType } from "./expert/expertFilter.type.js";
7
7
  import { COMBINATOR_OPTIONS, CONVERTERS_MODE_OPTIONS, ENERGY_SOURCE_OPTIONS, EXPERT_FILTER_EQUIPMENTS, EXPERT_FILTER_FIELDS, EXPERT_FILTER_QUERY, FIELDS_OPTIONS, LOAD_TYPE_OPTIONS, OPERATOR_OPTIONS, PHASE_REGULATION_MODE_OPTIONS, RATIO_REGULATION_MODE_OPTIONS, REGULATION_TYPE_OPTIONS, RULES, SHUNT_COMPENSATOR_TYPE_OPTIONS, SVAR_REGULATION_MODE_OPTIONS } from "./expert/expertFilterConstants.js";
8
- import { countRules, exportExpertRules, getFilterEquipmentTypeLabel, getNumberOfSiblings, getOperators, importExpertRules, queryValidator, recursiveRemove, testQuery } from "./expert/expertFilterUtils.js";
8
+ import { countRules, exportExpertRules, getNumberOfSiblings, getOperators, importExpertRules, queryValidator, recursiveRemove, testQuery } from "./expert/expertFilterUtils.js";
9
9
  import { ExplicitNamingFilterEditionDialog } from "./explicitNaming/ExplicitNamingFilterEditionDialog.js";
10
10
  import { ExplicitNamingFilterForm, explicitNamingFilterSchema, getExplicitNamingFilterEmptyFormData } from "./explicitNaming/ExplicitNamingFilterForm.js";
11
11
  import { FILTER_EQUIPMENTS_ATTRIBUTES } from "./explicitNaming/ExplicitNamingFilterConstants.js";
@@ -48,7 +48,6 @@ export {
48
48
  exportExpertRules,
49
49
  getExpertFilterEmptyFormData,
50
50
  getExplicitNamingFilterEmptyFormData,
51
- getFilterEquipmentTypeLabel,
52
51
  getNumberOfSiblings,
53
52
  getOperators,
54
53
  importExpertRules,
@@ -3,8 +3,8 @@ import { Generator, Load } from "../../../utils/types/equipmentTypes.js";
3
3
  import { exportExpertRules } from "../expert/expertFilterUtils.js";
4
4
  import { DISTRIBUTION_KEY, FilterType } from "../constants/FilterConstants.js";
5
5
  import { createFilter, saveFilter } from "../../../services/explore.js";
6
- import { catchErrorHandler } from "../../../services/utils.js";
7
6
  import "../../../utils/conversionUtils.js";
7
+ import { catchErrorHandler } from "../../../utils/error.js";
8
8
  import "react/jsx-runtime";
9
9
  import "@mui/icons-material";
10
10
  import "../../../utils/types/equipmentType.js";
@@ -43,7 +43,7 @@ import { ExpertFilterEditionDialog } from "./filter/expert/ExpertFilterEditionDi
43
43
  import { ExpertFilterForm, expertFilterSchema, getExpertFilterEmptyFormData } from "./filter/expert/ExpertFilterForm.js";
44
44
  import { CombinatorType, DataType, OperatorType } from "./filter/expert/expertFilter.type.js";
45
45
  import { COMBINATOR_OPTIONS, CONVERTERS_MODE_OPTIONS, ENERGY_SOURCE_OPTIONS, EXPERT_FILTER_EQUIPMENTS, EXPERT_FILTER_FIELDS, EXPERT_FILTER_QUERY, FIELDS_OPTIONS, LOAD_TYPE_OPTIONS, OPERATOR_OPTIONS, PHASE_REGULATION_MODE_OPTIONS, RATIO_REGULATION_MODE_OPTIONS, REGULATION_TYPE_OPTIONS, RULES, SHUNT_COMPENSATOR_TYPE_OPTIONS, SVAR_REGULATION_MODE_OPTIONS } from "./filter/expert/expertFilterConstants.js";
46
- import { countRules, exportExpertRules, getFilterEquipmentTypeLabel, getNumberOfSiblings, getOperators, importExpertRules, queryValidator, recursiveRemove, testQuery } from "./filter/expert/expertFilterUtils.js";
46
+ import { countRules, exportExpertRules, getNumberOfSiblings, getOperators, importExpertRules, queryValidator, recursiveRemove, testQuery } from "./filter/expert/expertFilterUtils.js";
47
47
  import { ExplicitNamingFilterEditionDialog } from "./filter/explicitNaming/ExplicitNamingFilterEditionDialog.js";
48
48
  import { ExplicitNamingFilterForm, explicitNamingFilterSchema, getExplicitNamingFilterEmptyFormData } from "./filter/explicitNaming/ExplicitNamingFilterForm.js";
49
49
  import { FILTER_EQUIPMENTS_ATTRIBUTES } from "./filter/explicitNaming/ExplicitNamingFilterConstants.js";
@@ -487,7 +487,6 @@ export {
487
487
  generateTreeViewFinderClass,
488
488
  getExpertFilterEmptyFormData,
489
489
  getExplicitNamingFilterEmptyFormData,
490
- getFilterEquipmentTypeLabel,
491
490
  getLimitReductionsFormSchema,
492
491
  getNumberOfSiblings,
493
492
  getOperators,
@@ -10,7 +10,7 @@ import "./provider/CustomFormProvider.js";
10
10
  import { useCustomFormContext } from "./provider/useCustomFormContext.js";
11
11
  import { ErrorInput } from "./errorManagement/ErrorInput.js";
12
12
  import { MidFormError } from "./errorManagement/MidFormError.js";
13
- import { ALL_EQUIPMENTS } from "../../../utils/types/equipmentType.js";
13
+ import "../../../utils/types/equipmentType.js";
14
14
  import { fetchDirectoryElementPath } from "../../../services/directory.js";
15
15
  import "localized-countries";
16
16
  import "localized-countries/data/fr";
@@ -20,6 +20,7 @@ import { DirectoryItemSelector } from "../../directoryItemSelector/DirectoryItem
20
20
  import "../../../utils/conversionUtils.js";
21
21
  import { mergeSx } from "../../../utils/styles.js";
22
22
  import { ArrayAction } from "../../../utils/types/types.js";
23
+ import { getEquipmentTypeShortLabel } from "../../../utils/labelUtils.js";
23
24
  import "../../../utils/yupConfig.js";
24
25
  import { NAME } from "./constants.js";
25
26
  import { OverflowableChip } from "./OverflowableChip.js";
@@ -187,7 +188,9 @@ function DirectoryItemsInput({
187
188
  ),
188
189
  elements?.length > 0 && /* @__PURE__ */ jsx(FormControl, { sx: styles.formDirectoryElements2, children: elements.map((item, index) => {
189
190
  const elementName = watchedElements?.[index]?.[NAME] ?? getValues(`${name}.${index}.${NAME}`) ?? item?.[NAME];
190
- const equipmentTypeTagLabel = item?.specificMetadata?.equipmentType && ALL_EQUIPMENTS[item.specificMetadata.equipmentType]?.shortLabel || "";
191
+ const equipmentTypeShortLabel = getEquipmentTypeShortLabel(
192
+ item?.specificMetadata?.equipmentType
193
+ );
191
194
  const { sx: chipSx, ...otherChipProps } = chipProps ?? {};
192
195
  return /* @__PURE__ */ jsx(
193
196
  ChipComponent,
@@ -195,9 +198,9 @@ function DirectoryItemsInput({
195
198
  onDelete: () => removeElements(index),
196
199
  onClick: () => handleChipClick(index),
197
200
  label: elementName ? /* @__PURE__ */ jsx(RawReadOnlyInput, { name: `${name}.${index}.${NAME}` }) : intl.formatMessage({ id: "elementNotFound" }),
198
- ...equipmentTypeTagLabel && {
201
+ ...equipmentTypeShortLabel && {
199
202
  helperText: intl.formatMessage({
200
- id: equipmentTypeTagLabel
203
+ id: equipmentTypeShortLabel
201
204
  })
202
205
  },
203
206
  sx: mergeSx(
@@ -7,7 +7,7 @@ function OverflowableChipWithHelperText({
7
7
  }) {
8
8
  return /* @__PURE__ */ jsxs(Box, { sx: { display: "flex", alignItems: "left", flexDirection: "column" }, children: [
9
9
  /* @__PURE__ */ jsx(OverflowableChip, { ...otherProps }),
10
- helperText && /* @__PURE__ */ jsx(FormHelperText, { sx: { paddingLeft: 1.5, fontSize: "x-small" }, children: helperText })
10
+ helperText && /* @__PURE__ */ jsx(FormHelperText, { sx: { fontSize: "x-small" }, children: helperText })
11
11
  ] });
12
12
  }
13
13
  export {
@@ -4,6 +4,7 @@ import "react-intl";
4
4
  import "../../../utils/types/equipmentType.js";
5
5
  import { createParameter, updateParameter } from "../../../services/explore.js";
6
6
  import "../../../utils/conversionUtils.js";
7
+ import { snackWithFallback } from "../../../utils/error.js";
7
8
  import "@mui/icons-material";
8
9
  import "../../../utils/yupConfig.js";
9
10
  import "@mui/material";
@@ -41,11 +42,7 @@ function CreateParameterDialog({
41
42
  }
42
43
  });
43
44
  }).catch((error) => {
44
- console.error(error);
45
- snackError({
46
- messageTxt: error.message,
47
- headerId: "paramsCreatingError"
48
- });
45
+ snackWithFallback(snackError, error, { headerId: "paramsCreatingError" });
49
46
  });
50
47
  },
51
48
  [parameterFormatter, parameterType, parameterValues, snackError, snackInfo]
@@ -59,10 +56,8 @@ function CreateParameterDialog({
59
56
  }
60
57
  });
61
58
  }).catch((error) => {
62
- console.error(error);
63
- snackError({
64
- messageTxt: error.message,
65
- headerId: "paramsUpdatingError",
59
+ snackWithFallback(snackError, error, {
60
+ headerId: "paramsUpdateError",
66
61
  headerValues: {
67
62
  item: elementFullPath
68
63
  }
@@ -6,6 +6,7 @@ import { LoadFlowProvider } from "./load-flow-parameters-provider.js";
6
6
  import { parametersStyles } from "../parameters-style.js";
7
7
  import "../../../utils/types/equipmentType.js";
8
8
  import "../../../utils/conversionUtils.js";
9
+ import { snackWithFallback } from "../../../utils/error.js";
9
10
  import "@mui/icons-material";
10
11
  import { ElementType } from "../../../utils/types/elementType.js";
11
12
  import { mergeSx } from "../../../utils/styles.js";
@@ -50,7 +51,7 @@ function LoadFlowParametersInline({
50
51
  setHaveDirtyFields,
51
52
  enableDeveloperMode
52
53
  }) {
53
- const [, , , , resetProvider, , , , resetParameters, , ,] = parametersBackend;
54
+ const [, , , , resetProvider, , , , resetParameters, ,] = parametersBackend;
54
55
  const loadflowMethods = useLoadFlowParametersForm(parametersBackend, enableDeveloperMode, null, null, null);
55
56
  const intl = useIntl();
56
57
  const [openCreateParameterDialog, setOpenCreateParameterDialog] = useState(false);
@@ -92,11 +93,7 @@ function LoadFlowParametersInline({
92
93
  keepDefaultValues: true
93
94
  });
94
95
  }).catch((error) => {
95
- console.error(error);
96
- snackError({
97
- messageTxt: error.message,
98
- headerId: "paramsRetrievingError"
99
- });
96
+ snackWithFallback(snackError, error, { headerId: "paramsRetrievingError" });
100
97
  });
101
98
  }
102
99
  setOpenSelectParameterDialog(false);
@@ -10,6 +10,7 @@ import "react-intl";
10
10
  import "../../../utils/types/equipmentType.js";
11
11
  import { updateParameter } from "../../../services/explore.js";
12
12
  import "../../../utils/conversionUtils.js";
13
+ import { snackWithFallback } from "../../../utils/error.js";
13
14
  import "@mui/icons-material";
14
15
  import { ElementType } from "../../../utils/types/elementType.js";
15
16
  import "../../../utils/yupConfig.js";
@@ -222,11 +223,8 @@ const useLoadFlowParametersForm = (parametersBackend, enableDeveloperMode, param
222
223
  formData[NAME],
223
224
  ElementType.LOADFLOW_PARAMETERS,
224
225
  formData[DESCRIPTION] ?? ""
225
- ).catch((errmsg) => {
226
- snackError({
227
- messageTxt: errmsg,
228
- headerId: "updateLoadFlowParametersError"
229
- });
226
+ ).catch((error) => {
227
+ snackWithFallback(snackError, error, { headerId: "updateLoadFlowParametersError" });
230
228
  });
231
229
  }
232
230
  },
@@ -4,6 +4,7 @@ import { Box, Grid } from "@mui/material";
4
4
  import { useIntl, FormattedMessage } from "react-intl";
5
5
  import "../../../utils/types/equipmentType.js";
6
6
  import "../../../utils/conversionUtils.js";
7
+ import { snackWithFallback } from "../../../utils/error.js";
7
8
  import "@mui/icons-material";
8
9
  import { ElementType } from "../../../utils/types/elementType.js";
9
10
  import "../../../utils/yupConfig.js";
@@ -63,11 +64,7 @@ function NetworkVisualizationParametersInline({
63
64
  keepDefaultValues: true
64
65
  });
65
66
  }).catch((error) => {
66
- console.error(error);
67
- snackError({
68
- messageTxt: error.message,
69
- headerId: "paramsRetrievingError"
70
- });
67
+ snackWithFallback(snackError, error, { headerId: "paramsRetrievingError" });
71
68
  });
72
69
  }
73
70
  setOpenSelectParameterDialog(false);
@@ -9,6 +9,7 @@ import "../../overflowableText/OverflowableText.js";
9
9
  import "../../../utils/types/equipmentType.js";
10
10
  import { updateParameter } from "../../../services/explore.js";
11
11
  import "../../../utils/conversionUtils.js";
12
+ import { snackWithFallback } from "../../../utils/error.js";
12
13
  import "@mui/icons-material";
13
14
  import { ElementType } from "../../../utils/types/elementType.js";
14
15
  import { setStudyNetworkVisualizationParameters } from "../../../services/study.js";
@@ -96,10 +97,7 @@ const useNetworkVisualizationParametersForm = ({
96
97
  (formData) => {
97
98
  if (studyUuid) {
98
99
  setStudyNetworkVisualizationParameters(studyUuid, formData).catch((error) => {
99
- snackError({
100
- messageTxt: error.message,
101
- headerId: "updateNetworkVisualizationsParametersError"
102
- });
100
+ snackWithFallback(snackError, error, { headerId: "updateNetworkVisualizationsParametersError" });
103
101
  });
104
102
  }
105
103
  },
@@ -115,10 +113,7 @@ const useNetworkVisualizationParametersForm = ({
115
113
  ElementType.NETWORK_VISUALIZATIONS_PARAMETERS,
116
114
  formData[DESCRIPTION] ?? ""
117
115
  ).catch((error) => {
118
- snackError({
119
- messageTxt: error.message,
120
- headerId: "updateNetworkVisualizationsParametersError"
121
- });
116
+ snackWithFallback(snackError, error, { headerId: "updateNetworkVisualizationsParametersError" });
122
117
  });
123
118
  }
124
119
  },
@@ -132,10 +127,7 @@ const useNetworkVisualizationParametersForm = ({
132
127
  getNetworkVisualizationsParameters(parametersUuid).then((params) => {
133
128
  reset(params);
134
129
  }).catch((error) => {
135
- snackError({
136
- messageTxt: error.message,
137
- headerId: "getNetworkVisualizationsParametersError"
138
- });
130
+ snackWithFallback(snackError, error, { headerId: "getNetworkVisualizationsParametersError" });
139
131
  }).finally(() => {
140
132
  clearTimeout(timer);
141
133
  setParamsLoading(false);
@@ -3,6 +3,7 @@ import { useState, useCallback, useEffect } from "react";
3
3
  import { Box, Grid } from "@mui/material";
4
4
  import { useIntl, FormattedMessage } from "react-intl";
5
5
  import "../../../utils/conversionUtils.js";
6
+ import { snackWithFallback } from "../../../utils/error.js";
6
7
  import "@mui/icons-material";
7
8
  import { ElementType } from "../../../utils/types/elementType.js";
8
9
  import { mergeSx } from "../../../utils/styles.js";
@@ -90,11 +91,7 @@ function SecurityAnalysisParametersInline({
90
91
  keepDefaultValues: true
91
92
  });
92
93
  }).catch((error) => {
93
- console.error(error);
94
- snackError({
95
- messageTxt: error.message,
96
- headerId: "paramsRetrievingError"
97
- });
94
+ snackWithFallback(snackError, error, { headerId: "paramsRetrievingError" });
98
95
  });
99
96
  }
100
97
  setOpenSelectParameterDialog(false);
@@ -2,6 +2,7 @@ import { useForm } from "react-hook-form";
2
2
  import { useState, useMemo, useCallback, useEffect } from "react";
3
3
  import { yupResolver } from "@hookform/resolvers/yup";
4
4
  import "../../../utils/conversionUtils.js";
5
+ import { snackWithFallback } from "../../../utils/error.js";
5
6
  import "react/jsx-runtime";
6
7
  import "@mui/icons-material";
7
8
  import { ElementType } from "../../../utils/types/elementType.js";
@@ -118,11 +119,8 @@ const useSecurityAnalysisParametersForm = (parametersBackend, parametersUuid, na
118
119
  formData[NAME],
119
120
  ElementType.SECURITY_ANALYSIS_PARAMETERS,
120
121
  formData[DESCRIPTION] ?? ""
121
- ).catch((errmsg) => {
122
- snackError({
123
- messageTxt: errmsg,
124
- headerId: "updateSecurityAnalysisParametersError"
125
- });
122
+ ).catch((error) => {
123
+ snackWithFallback(snackError, error, { headerId: "updateSecurityAnalysisParametersError" });
126
124
  });
127
125
  }
128
126
  },
@@ -3,6 +3,7 @@ import { Grid, DialogActions, Button } from "@mui/material";
3
3
  import { useState, useCallback, useEffect } from "react";
4
4
  import { useIntl, FormattedMessage } from "react-intl";
5
5
  import "../../../utils/conversionUtils.js";
6
+ import { snackWithFallback } from "../../../utils/error.js";
6
7
  import "@mui/icons-material";
7
8
  import { ElementType } from "../../../utils/types/elementType.js";
8
9
  import { mergeSx } from "../../../utils/styles.js";
@@ -74,11 +75,7 @@ function SensitivityAnalysisParametersInline({
74
75
  });
75
76
  sensitivityAnalysisMethods.initRowsCount();
76
77
  }).catch((error) => {
77
- console.error(error);
78
- snackError({
79
- messageTxt: error.message,
80
- headerId: "paramsRetrievingError"
81
- });
78
+ snackWithFallback(snackError, error, { headerId: "paramsRetrievingError" });
82
79
  });
83
80
  }
84
81
  setOpenSelectParameterDialog(false);
@@ -87,10 +84,7 @@ function SensitivityAnalysisParametersInline({
87
84
  );
88
85
  const resetSensitivityAnalysisParameters = useCallback(() => {
89
86
  setSensitivityAnalysisParameters(studyUuid, null).catch((error) => {
90
- snackError({
91
- messageTxt: error.message,
92
- headerId: "paramsChangingError"
93
- });
87
+ snackWithFallback(snackError, error, { headerId: "paramsChangingError" });
94
88
  });
95
89
  }, [studyUuid, snackError]);
96
90
  const clear = useCallback(() => {
@@ -9,6 +9,7 @@ import "../../../utils/types/equipmentType.js";
9
9
  import { updateParameter } from "../../../services/explore.js";
10
10
  import { FieldConstants } from "../../../utils/constants/fieldConstants.js";
11
11
  import "../../../utils/conversionUtils.js";
12
+ import { snackWithFallback } from "../../../utils/error.js";
12
13
  import "@mui/icons-material";
13
14
  import { ElementType } from "../../../utils/types/elementType.js";
14
15
  import "../../../utils/yupConfig.js";
@@ -157,10 +158,7 @@ const useSensitivityAnalysisParametersForm = ({
157
158
  });
158
159
  }).catch((error) => {
159
160
  setLaunchLoader(false);
160
- snackError({
161
- messageTxt: error.message,
162
- headerId: "getSensitivityAnalysisFactorsCountError"
163
- });
161
+ snackWithFallback(snackError, error, { headerId: "getSensitivityAnalysisFactorsCountError" });
164
162
  });
165
163
  },
166
164
  [snackError, studyUuid, currentRootNetworkUuid, formatFilteredParams, setValue, getResultCount, currentNodeUuid]
@@ -332,10 +330,7 @@ const useSensitivityAnalysisParametersForm = ({
332
330
  updateParameters(formattedParams);
333
331
  initRowsCount();
334
332
  }).catch((error) => {
335
- snackError({
336
- messageTxt: error.message,
337
- headerId: "updateSensitivityAnalysisParametersError"
338
- });
333
+ snackWithFallback(snackError, error, { headerId: "updateSensitivityAnalysisParametersError" });
339
334
  });
340
335
  },
341
336
  [setSensitivityAnalysisParams, snackError, studyUuid, formatNewParams, initRowsCount, updateParameters]
@@ -350,10 +345,7 @@ const useSensitivityAnalysisParametersForm = ({
350
345
  ElementType.SENSITIVITY_PARAMETERS,
351
346
  formData[FieldConstants.DESCRIPTION] ?? ""
352
347
  ).catch((error) => {
353
- snackError({
354
- messageTxt: error.message,
355
- headerId: "updateSensitivityAnalysisParametersError"
356
- });
348
+ snackWithFallback(snackError, error, { headerId: "updateSensitivityAnalysisParametersError" });
357
349
  });
358
350
  }
359
351
  },