@gridsuite/commons-ui 0.245.0 → 0.246.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.
@@ -1,25 +1,18 @@
1
1
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
- import { styled, IconButton, Grid2, Box, Button } from "@mui/material";
2
+ import { styled, IconButton, Grid2, Box } from "@mui/material";
3
3
  import { ControlPoint, Delete, ArrowCircleUp, ArrowCircleDown } from "@mui/icons-material";
4
- import { FormattedMessage } from "react-intl";
5
- import { useCSVDownloader } from "react-papaparse";
6
4
  import { ErrorInput } from "../../ui/reactHookForm/errorManagement/ErrorInput.js";
7
5
  import { FieldErrorAlert } from "../../ui/reactHookForm/errorManagement/FieldErrorAlert.js";
6
+ import { CsvDownloadButton } from "../../ui/csvDownloader/csv-download-button.js";
7
+ import "react";
8
+ import "react-intl";
8
9
  import "../../../utils/conversionUtils.js";
9
10
  import "../../../utils/types/equipmentType.js";
10
- import { getCsvDelimiter } from "../../../utils/langs.js";
11
11
  const InnerColoredButton = styled(IconButton)(({ theme }) => {
12
12
  return {
13
13
  color: theme.palette.primary.main
14
14
  };
15
15
  });
16
- function CsvDownloadButton({ data, fileName, delimiter, labelId, disabled }) {
17
- const { CSVDownloader } = useCSVDownloader();
18
- if (disabled) {
19
- return /* @__PURE__ */ jsx(Button, { variant: "outlined", disabled: true, children: /* @__PURE__ */ jsx(FormattedMessage, { id: labelId }) });
20
- }
21
- return /* @__PURE__ */ jsx(CSVDownloader, { data, filename: fileName, config: { delimiter }, children: /* @__PURE__ */ jsx(Button, { variant: "outlined", children: /* @__PURE__ */ jsx(FormattedMessage, { id: labelId }) }) });
22
- }
23
16
  function BottomTableButtons({
24
17
  name,
25
18
  disableUp,
@@ -32,24 +25,16 @@ function BottomTableButtons({
32
25
  csvProps
33
26
  }) {
34
27
  return /* @__PURE__ */ jsxs(Fragment, { children: [
35
- /* @__PURE__ */ jsxs(Grid2, { container: true, paddingTop: 1, alignItems: "center", spacing: 1, children: [
36
- csvProps?.getTemplateData && /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx(
37
- CsvDownloadButton,
38
- {
39
- data: csvProps.getTemplateData,
40
- fileName: csvProps.fileName,
41
- delimiter: getCsvDelimiter(csvProps.language),
42
- labelId: "GenerateCSV"
43
- }
44
- ) }),
28
+ /* @__PURE__ */ jsxs(Grid2, { container: true, paddingTop: 1, paddingLeft: 1, alignItems: "center", spacing: 1, children: [
45
29
  csvProps?.getTableData && /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx(
46
30
  CsvDownloadButton,
47
31
  {
48
32
  data: csvProps.getTableData,
49
33
  fileName: csvProps.fileName,
50
- delimiter: getCsvDelimiter(csvProps.language),
34
+ language: csvProps.language,
51
35
  labelId: "DownloadCSV",
52
- disabled: !csvProps.hasTableData
36
+ disabled: !csvProps.hasTableData,
37
+ withExportButton: true
53
38
  }
54
39
  ) }),
55
40
  csvProps?.extraButtons && /* @__PURE__ */ jsx(Grid2, { children: csvProps.extraButtons }),
@@ -2,7 +2,6 @@ import { ReactNode } from 'react';
2
2
  export interface CsvProps {
3
3
  fileName: string;
4
4
  language?: string;
5
- getTemplateData?: () => unknown[];
6
5
  getTableData?: () => unknown[];
7
6
  extraButtons?: ReactNode;
8
7
  hasTableData?: boolean;
@@ -1,4 +1,4 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
1
+ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
2
  import { useEffect, useMemo, useCallback, useState, useRef } from "react";
3
3
  import { useIntl } from "react-intl";
4
4
  import { useWatch } from "react-hook-form";
@@ -45,6 +45,7 @@ import "../../../ui/dialogs/elementSaveDialog/ElementSaveDialog.js";
45
45
  import "../../../ui/snackbarProvider/SnackbarProvider.js";
46
46
  import "mui-nested-menu";
47
47
  import "react-resizable-panels";
48
+ import { CsvDownloadButton } from "../../../ui/csvDownloader/csv-download-button.js";
48
49
  import { CsvPicker } from "../../../ui/csvPicker/csv-picker.js";
49
50
  const explicitNamingFilterSchema = {
50
51
  [FILTER_EQUIPMENTS_ATTRIBUTES]: yup.array().of(
@@ -193,77 +194,87 @@ function ExplicitNamingFilterForm({
193
194
  padding: 1,
194
195
  sx: { flexGrow: 1, flexWrap: "nowrap", minHeight: 0 },
195
196
  children: [
196
- /* @__PURE__ */ jsxs(Grid2, { container: true, justifyContent: "space-between", alignItems: "center", children: [
197
- /* @__PURE__ */ jsxs(Grid2, { children: [
198
- /* @__PURE__ */ jsx(
199
- InputWithPopupConfirmation,
197
+ /* @__PURE__ */ jsxs(Grid2, { children: [
198
+ /* @__PURE__ */ jsx(
199
+ InputWithPopupConfirmation,
200
+ {
201
+ Input: SelectInput,
202
+ name: FieldConstants.EQUIPMENT_TYPE,
203
+ options: Object.values(FILTER_EQUIPMENTS),
204
+ disabled: !!sourceFilterForExplicitNamingConversion || isEditing && !isDeveloperMode,
205
+ label: "equipmentType",
206
+ shouldOpenPopup: openConfirmationPopup,
207
+ resetOnConfirmation: handleResetOnConfirmation,
208
+ message: "changeTypeMessage",
209
+ validateButtonLabel: "button.changeType",
210
+ sx: { width: 400, maxWidth: "100%" },
211
+ "data-testid": "EquipmentTypeSelector"
212
+ }
213
+ ),
214
+ sourceFilterForExplicitNamingConversion && /* @__PURE__ */ jsx(
215
+ ModifyElementSelection,
216
+ {
217
+ elementType: ElementType.STUDY,
218
+ onElementValidated: onStudySelected,
219
+ dialogOpeningButtonLabel: "selectStudyDialogButton",
220
+ dialogTitleLabel: "selectStudyDialogTitle",
221
+ dialogMessageLabel: "selectStudyText",
222
+ noElementMessageLabel: "noSelectedStudyText"
223
+ }
224
+ )
225
+ ] }),
226
+ watchEquipmentType && /* @__PURE__ */ jsxs(Fragment, { children: [
227
+ /* @__PURE__ */ jsxs(Grid2, { container: true, spacing: 2, justifyContent: "space-between", alignItems: "center", children: [
228
+ /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx(
229
+ CsvDownloadButton,
200
230
  {
201
- Input: SelectInput,
202
- name: FieldConstants.EQUIPMENT_TYPE,
203
- options: Object.values(FILTER_EQUIPMENTS),
204
- disabled: !!sourceFilterForExplicitNamingConversion || isEditing && !isDeveloperMode,
205
- label: "equipmentType",
206
- shouldOpenPopup: openConfirmationPopup,
207
- resetOnConfirmation: handleResetOnConfirmation,
208
- message: "changeTypeMessage",
209
- validateButtonLabel: "button.changeType",
210
- sx: { width: 400, maxWidth: "100%" },
211
- "data-testid": "EquipmentTypeSelector"
231
+ data: getTemplateData,
232
+ fileName: intl.formatMessage({ id: "filterCsvFileName" }),
233
+ language,
234
+ labelId: "GenerateCSV",
235
+ variant: "contained"
212
236
  }
213
- ),
214
- sourceFilterForExplicitNamingConversion && /* @__PURE__ */ jsx(
215
- ModifyElementSelection,
237
+ ) }),
238
+ /* @__PURE__ */ jsx(Grid2, { sx: { flex: 1, minWidth: 0 }, children: /* @__PURE__ */ jsx(
239
+ CsvPicker,
216
240
  {
217
- elementType: ElementType.STUDY,
218
- onElementValidated: onStudySelected,
219
- dialogOpeningButtonLabel: "selectStudyDialogButton",
220
- dialogTitleLabel: "selectStudyDialogTitle",
221
- dialogMessageLabel: "selectStudyText",
222
- noElementMessageLabel: "noSelectedStudyText"
241
+ label: "UploadCSV",
242
+ requiredColumns: csvFileHeaders,
243
+ language: language ?? LANG_SYSTEM,
244
+ selectedFile,
245
+ onFileChange: setSelectedFile,
246
+ onFileError: setFileErrorMessage,
247
+ getTableData: () => getValues(FILTER_EQUIPMENTS_ATTRIBUTES),
248
+ onAppend: (results) => tableRef.current?.append(getDataFromCsvFile(results.data)),
249
+ onReplace: (results) => tableRef.current?.replace(getDataFromCsvFile(results.data))
223
250
  }
224
- )
251
+ ) })
225
252
  ] }),
226
- /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx(
227
- CsvPicker,
253
+ fileErrorMessage && /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx(Alert, { severity: "error", children: fileErrorMessage }) }),
254
+ /* @__PURE__ */ jsx(Grid2, { sx: { flexGrow: 1, minHeight: 0, display: "flex", flexDirection: "column" }, children: /* @__PURE__ */ jsx(
255
+ CustomAgGridTable,
228
256
  {
229
- label: "UploadCSV",
230
- requiredColumns: csvFileHeaders,
231
- language: language ?? LANG_SYSTEM,
232
- disabled: !watchEquipmentType,
233
- selectedFile,
234
- onFileChange: setSelectedFile,
235
- onFileError: setFileErrorMessage,
236
- getTableData: () => getValues(FILTER_EQUIPMENTS_ATTRIBUTES),
237
- onAppend: (results) => tableRef.current?.append(getDataFromCsvFile(results.data)),
238
- onReplace: (results) => tableRef.current?.replace(getDataFromCsvFile(results.data))
257
+ ref: tableRef,
258
+ name: FILTER_EQUIPMENTS_ATTRIBUTES,
259
+ columnDefs,
260
+ defaultColDef,
261
+ makeDefaultRowData,
262
+ pagination: true,
263
+ rowSelection: {
264
+ mode: "multiRow",
265
+ enableClickSelection: false,
266
+ checkboxes: true,
267
+ headerCheckbox: true
268
+ },
269
+ alwaysShowVerticalScroll: true,
270
+ csvProps: {
271
+ fileName: intl.formatMessage({ id: "filterCsvFileName" }),
272
+ language,
273
+ getTableData
274
+ }
239
275
  }
240
276
  ) })
241
- ] }),
242
- fileErrorMessage && /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx(Alert, { severity: "error", children: fileErrorMessage }) }),
243
- watchEquipmentType && /* @__PURE__ */ jsx(Grid2, { sx: { flexGrow: 1, minHeight: 0, display: "flex", flexDirection: "column" }, children: /* @__PURE__ */ jsx(
244
- CustomAgGridTable,
245
- {
246
- ref: tableRef,
247
- name: FILTER_EQUIPMENTS_ATTRIBUTES,
248
- columnDefs,
249
- defaultColDef,
250
- makeDefaultRowData,
251
- pagination: true,
252
- rowSelection: {
253
- mode: "multiRow",
254
- enableClickSelection: false,
255
- checkboxes: true,
256
- headerCheckbox: true
257
- },
258
- alwaysShowVerticalScroll: true,
259
- csvProps: {
260
- fileName: intl.formatMessage({ id: "filterCsvFileName" }),
261
- language,
262
- getTemplateData,
263
- getTableData
264
- }
265
- }
266
- ) })
277
+ ] })
267
278
  ]
268
279
  }
269
280
  );
@@ -68,6 +68,7 @@ import { EditNoteIcon } from "./ui/icons/EditNoteIcon.js";
68
68
  import { VoltageUnitIcon } from "./ui/icons/VoltageUnitIcon.js";
69
69
  import { CustomMenuItem, CustomNestedMenuItem } from "./ui/menus/custom-nested-menu.js";
70
70
  import { ResizeHandle } from "./ui/resizablePanels/ResizeHandle.js";
71
+ import { CsvDownloadButton } from "./ui/csvDownloader/csv-download-button.js";
71
72
  import { CsvExport } from "./ui/csvDownloader/csv-export.js";
72
73
  import { ExportCsvButton } from "./ui/csvDownloader/export-csv-button.js";
73
74
  import { ManagedExportCsvButton } from "./ui/csvDownloader/managed-export-csv-button.js";
@@ -182,6 +183,7 @@ export {
182
183
  CountriesInput,
183
184
  CountrySelectionInput,
184
185
  CountryValueEditor,
186
+ CsvDownloadButton,
185
187
  CsvExport,
186
188
  CsvPicker,
187
189
  CustomAGGrid,
@@ -0,0 +1,11 @@
1
+ import { ButtonProps } from '@mui/material';
2
+ export interface CsvDownloadButtonProps {
3
+ labelId: string;
4
+ data: () => unknown[];
5
+ fileName: string;
6
+ language?: string;
7
+ withExportButton?: boolean;
8
+ disabled?: boolean;
9
+ variant?: ButtonProps['variant'];
10
+ }
11
+ export declare function CsvDownloadButton({ labelId, data, fileName, language, withExportButton, disabled, variant, }: Readonly<CsvDownloadButtonProps>): import("react").JSX.Element;
@@ -0,0 +1,28 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { Button } from "@mui/material";
3
+ import { FormattedMessage } from "react-intl";
4
+ import { useCSVDownloader } from "react-papaparse";
5
+ import "../../../utils/conversionUtils.js";
6
+ import "../../../utils/types/equipmentType.js";
7
+ import { getCsvDelimiter } from "../../../utils/langs.js";
8
+ import "@mui/icons-material";
9
+ import { ExportCsvButton } from "./export-csv-button.js";
10
+ function CsvDownloadButton({
11
+ labelId,
12
+ data,
13
+ fileName,
14
+ language,
15
+ withExportButton = false,
16
+ disabled,
17
+ variant = "outlined"
18
+ }) {
19
+ const { CSVDownloader } = useCSVDownloader();
20
+ const button = withExportButton ? /* @__PURE__ */ jsx(ExportCsvButton, { labelId, disabled }) : /* @__PURE__ */ jsx(Button, { variant, disabled, children: /* @__PURE__ */ jsx(FormattedMessage, { id: labelId }) });
21
+ if (disabled) {
22
+ return button;
23
+ }
24
+ return /* @__PURE__ */ jsx(CSVDownloader, { data, filename: fileName, config: { delimiter: getCsvDelimiter(language) }, children: button });
25
+ }
26
+ export {
27
+ CsvDownloadButton
28
+ };
@@ -1,7 +1,8 @@
1
1
  export interface ExportButtonProps {
2
+ labelId?: string;
2
3
  disabled?: boolean;
3
- onClick: () => void;
4
+ onClick?: () => void;
4
5
  isDownloadLoading?: boolean;
5
6
  isDownloadSuccessful?: boolean;
6
7
  }
7
- export declare function ExportCsvButton({ onClick, disabled, isDownloadLoading: isCsvLoading, isDownloadSuccessful, }: Readonly<ExportButtonProps>): import("react").JSX.Element;
8
+ export declare function ExportCsvButton({ labelId, onClick, disabled, isDownloadLoading: isCsvLoading, isDownloadSuccessful, }: Readonly<ExportButtonProps>): import("react").JSX.Element;
@@ -3,13 +3,14 @@ import { Box, IconButton, CircularProgress } from "@mui/material";
3
3
  import { FormattedMessage } from "react-intl";
4
4
  import { Check, GetApp } from "@mui/icons-material";
5
5
  function ExportCsvButton({
6
+ labelId = "MuiVirtualizedTable/exportCSV",
6
7
  onClick,
7
8
  disabled = false,
8
9
  isDownloadLoading: isCsvLoading = false,
9
10
  isDownloadSuccessful = false
10
11
  }) {
11
12
  return /* @__PURE__ */ jsxs(Box, { sx: { display: "flex", alignItems: "center" }, children: [
12
- /* @__PURE__ */ jsx(FormattedMessage, { id: "MuiVirtualizedTable/exportCSV" }),
13
+ /* @__PURE__ */ jsx(FormattedMessage, { id: labelId }),
13
14
  /* @__PURE__ */ jsxs(Box, { sx: { position: "relative" }, children: [
14
15
  /* @__PURE__ */ jsx(IconButton, { disabled, "aria-label": "exportCSVButton", onClick, children: isDownloadSuccessful ? /* @__PURE__ */ jsx(Check, {}) : /* @__PURE__ */ jsx(GetApp, {}) }),
15
16
  isCsvLoading && /* @__PURE__ */ jsx(
@@ -4,6 +4,7 @@
4
4
  * License, v. 2.0. If a copy of the MPL was not distributed with this
5
5
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
6
  */
7
+ export * from './csv-download-button';
7
8
  export * from './csv-export';
8
9
  export * from './csv-export.type';
9
10
  export * from './export-csv-button';
@@ -1,8 +1,10 @@
1
+ import { CsvDownloadButton } from "./csv-download-button.js";
1
2
  import { CsvExport } from "./csv-export.js";
2
3
  import { ExportCsvButton } from "./export-csv-button.js";
3
4
  import { ManagedExportCsvButton } from "./managed-export-csv-button.js";
4
5
  import { fetchCsvSeparator, useCsvExport } from "./use-csv-export.js";
5
6
  export {
7
+ CsvDownloadButton,
6
8
  CsvExport,
7
9
  ExportCsvButton,
8
10
  ManagedExportCsvButton,
@@ -1,7 +1,7 @@
1
1
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import { useState, useCallback } from "react";
3
3
  import { useIntl, FormattedMessage } from "react-intl";
4
- import { Button } from "@mui/material";
4
+ import { Grid2, Tooltip, Typography, Button } from "@mui/material";
5
5
  import { useCSVReader } from "react-papaparse";
6
6
  import "../../../utils/conversionUtils.js";
7
7
  import "../../../utils/types/equipmentType.js";
@@ -74,31 +74,17 @@ function CsvPicker({
74
74
  ...parseConfig
75
75
  },
76
76
  onUploadAccepted: handleUploadAccepted,
77
- children: ({ getRootProps, ProgressBar }) => /* @__PURE__ */ jsxs(Fragment, { children: [
78
- /* @__PURE__ */ jsx(
79
- "span",
77
+ children: ({ getRootProps }) => /* @__PURE__ */ jsxs(Grid2, { container: true, spacing: 1, alignItems: "center", justifyContent: "right", wrap: "nowrap", children: [
78
+ /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx(Tooltip, { title: selectedFile?.name, children: /* @__PURE__ */ jsx(Typography, { sx: { fontWeight: "bold", overflow: "hidden", textOverflow: "ellipsis" }, children: selectedFile ? selectedFile.name : /* @__PURE__ */ jsx(FormattedMessage, { id: "uploadMessage" }) }) }) }),
79
+ /* @__PURE__ */ jsx(Grid2, { size: "auto", children: /* @__PURE__ */ jsx(
80
+ Button,
80
81
  {
81
- style: {
82
- marginRight: "10px",
83
- fontWeight: "bold"
84
- },
85
- children: selectedFile ? selectedFile.name : intl.formatMessage({ id: "uploadMessage" })
82
+ ...getRootProps(),
83
+ variant: selectedFile ? "contained" : "text",
84
+ disabled,
85
+ children: /* @__PURE__ */ jsx(FormattedMessage, { id: label })
86
86
  }
87
- ),
88
- /* @__PURE__ */ jsxs(Button, { ...getRootProps(), variant: "outlined", disabled, children: [
89
- /* @__PURE__ */ jsx(FormattedMessage, { id: label }),
90
- /* @__PURE__ */ jsx(
91
- ProgressBar,
92
- {
93
- style: {
94
- position: "absolute",
95
- inset: 0,
96
- width: "100%",
97
- height: "100%"
98
- }
99
- }
100
- )
101
- ] })
87
+ ) })
102
88
  ] })
103
89
  }
104
90
  ),
@@ -68,6 +68,7 @@ import { EditNoteIcon } from "./icons/EditNoteIcon.js";
68
68
  import { VoltageUnitIcon } from "./icons/VoltageUnitIcon.js";
69
69
  import { CustomMenuItem, CustomNestedMenuItem } from "./menus/custom-nested-menu.js";
70
70
  import { ResizeHandle } from "./resizablePanels/ResizeHandle.js";
71
+ import { CsvDownloadButton } from "./csvDownloader/csv-download-button.js";
71
72
  import { CsvExport } from "./csvDownloader/csv-export.js";
72
73
  import { ExportCsvButton } from "./csvDownloader/export-csv-button.js";
73
74
  import { ManagedExportCsvButton } from "./csvDownloader/managed-export-csv-button.js";
@@ -93,6 +94,7 @@ export {
93
94
  ChipItemsInput,
94
95
  CountriesInput,
95
96
  CountrySelectionInput,
97
+ CsvDownloadButton,
96
98
  CsvExport,
97
99
  CsvPicker,
98
100
  CustomFormContext,
package/dist/index.js CHANGED
@@ -69,6 +69,7 @@ import { EditNoteIcon } from "./components/ui/icons/EditNoteIcon.js";
69
69
  import { VoltageUnitIcon } from "./components/ui/icons/VoltageUnitIcon.js";
70
70
  import { CustomMenuItem, CustomNestedMenuItem } from "./components/ui/menus/custom-nested-menu.js";
71
71
  import { ResizeHandle } from "./components/ui/resizablePanels/ResizeHandle.js";
72
+ import { CsvDownloadButton } from "./components/ui/csvDownloader/csv-download-button.js";
72
73
  import { CsvExport } from "./components/ui/csvDownloader/csv-export.js";
73
74
  import { ExportCsvButton } from "./components/ui/csvDownloader/export-csv-button.js";
74
75
  import { ManagedExportCsvButton } from "./components/ui/csvDownloader/managed-export-csv-button.js";
@@ -596,6 +597,7 @@ export {
596
597
  CountrySelectionInput,
597
598
  CountryValueEditor,
598
599
  CreateParameterDialog,
600
+ CsvDownloadButton,
599
601
  CsvExport,
600
602
  CsvPicker,
601
603
  CustomAGGrid,
@@ -1,10 +1,10 @@
1
1
  const csvEn = {
2
2
  noDataInCsvFile: "No data found in file ''{filename}''",
3
- wrongCsvHeadersError: "The file ''{filename}'' has the wrong headers. Use Generate CSV template button to get supported CSV format",
3
+ wrongCsvHeadersError: "The file ''{filename}'' has the wrong headers. Use ''Generate template'' button to get supported CSV format",
4
4
  keepCSVDataMessage: "Do you want to replace or add the new data to the current list ?",
5
- GenerateCSV: "Generate CSV template",
5
+ GenerateCSV: "Generate template",
6
6
  DownloadCSV: "Download CSV",
7
- UploadCSV: "Upload CSV",
7
+ UploadCSV: "Import CSV",
8
8
  uploadMessage: " No file selected",
9
9
  tooManyLinesInCsvFile: "The number of lines in file ''{filename}'' must not exceed {value}"
10
10
  };
@@ -1,10 +1,10 @@
1
1
  const csvFr = {
2
2
  noDataInCsvFile: 'Aucune donnée trouvée dans le fichier "{filename}"',
3
- wrongCsvHeadersError: 'Les en-têtes du fichier "{filename}" sont incorrects. Utilisez le bouton Générer le modèle CSV pour obtenir le format CSV pris en charge',
3
+ wrongCsvHeadersError: 'Les en-têtes du fichier "{filename}" sont incorrects. Utilisez le bouton "Générer le modèle" pour obtenir le format CSV pris en charge',
4
4
  keepCSVDataMessage: "Voulez-vous remplacer la liste existante ou y ajouter les nouvelles données ?",
5
- GenerateCSV: "Générer le modèle CSV",
5
+ GenerateCSV: "Générer le modèle",
6
6
  DownloadCSV: "Télécharger en CSV",
7
- UploadCSV: "Charger un CSV",
7
+ UploadCSV: "Importer un CSV",
8
8
  uploadMessage: " Aucun fichier sélectionné",
9
9
  tooManyLinesInCsvFile: 'Le nombre de lignes dans le fichier "{filename}" ne doit pas dépasser {value}'
10
10
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gridsuite/commons-ui",
3
- "version": "0.245.0",
3
+ "version": "0.246.0",
4
4
  "description": "common react components for gridsuite applications",
5
5
  "author": "gridsuite team",
6
6
  "homepage": "https://github.com/gridsuite",