@iobroker/json-config 8.4.8 → 8.4.9

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 (94) hide show
  1. package/README.md +3 -0
  2. package/build/JsonConfig.js +7 -7
  3. package/build/JsonConfig.js.map +1 -1
  4. package/build/JsonConfigComponent/ConfigAccordion.js +9 -9
  5. package/build/JsonConfigComponent/ConfigAccordion.js.map +1 -1
  6. package/build/JsonConfigComponent/ConfigAlive.js +2 -2
  7. package/build/JsonConfigComponent/ConfigAlive.js.map +1 -1
  8. package/build/JsonConfigComponent/ConfigAutocompleteSendTo.js +1 -1
  9. package/build/JsonConfigComponent/ConfigAutocompleteSendTo.js.map +1 -1
  10. package/build/JsonConfigComponent/ConfigCRON.js +1 -1
  11. package/build/JsonConfigComponent/ConfigCRON.js.map +1 -1
  12. package/build/JsonConfigComponent/ConfigCertCollection.js +2 -2
  13. package/build/JsonConfigComponent/ConfigCertCollection.js.map +1 -1
  14. package/build/JsonConfigComponent/ConfigCertificates.js +6 -6
  15. package/build/JsonConfigComponent/ConfigCertificates.js.map +1 -1
  16. package/build/JsonConfigComponent/ConfigCheckDocker.js +4 -4
  17. package/build/JsonConfigComponent/ConfigCheckDocker.js.map +1 -1
  18. package/build/JsonConfigComponent/ConfigCheckLicense.js +31 -31
  19. package/build/JsonConfigComponent/ConfigCheckLicense.js.map +1 -1
  20. package/build/JsonConfigComponent/ConfigCheckbox.js +1 -1
  21. package/build/JsonConfigComponent/ConfigCheckbox.js.map +1 -1
  22. package/build/JsonConfigComponent/ConfigChip.js +1 -1
  23. package/build/JsonConfigComponent/ConfigChip.js.map +1 -1
  24. package/build/JsonConfigComponent/ConfigCoordinates.js +7 -7
  25. package/build/JsonConfigComponent/ConfigCoordinates.js.map +1 -1
  26. package/build/JsonConfigComponent/ConfigCredentialSelect.js +11 -11
  27. package/build/JsonConfigComponent/ConfigCredentialSelect.js.map +1 -1
  28. package/build/JsonConfigComponent/ConfigFileSelector.js +6 -6
  29. package/build/JsonConfigComponent/ConfigFileSelector.js.map +1 -1
  30. package/build/JsonConfigComponent/ConfigGeneric.js +6 -6
  31. package/build/JsonConfigComponent/ConfigGeneric.js.map +1 -1
  32. package/build/JsonConfigComponent/ConfigIFrameSendTo.js +1 -1
  33. package/build/JsonConfigComponent/ConfigIFrameSendTo.js.map +1 -1
  34. package/build/JsonConfigComponent/ConfigIP.js +2 -2
  35. package/build/JsonConfigComponent/ConfigIP.js.map +1 -1
  36. package/build/JsonConfigComponent/ConfigImageSendTo.js +2 -2
  37. package/build/JsonConfigComponent/ConfigImageSendTo.js.map +1 -1
  38. package/build/JsonConfigComponent/ConfigJsonEditor.js +2 -2
  39. package/build/JsonConfigComponent/ConfigJsonEditor.js.map +1 -1
  40. package/build/JsonConfigComponent/ConfigLanguage.js +2 -2
  41. package/build/JsonConfigComponent/ConfigLanguage.js.map +1 -1
  42. package/build/JsonConfigComponent/ConfigLicense.js +3 -3
  43. package/build/JsonConfigComponent/ConfigLicense.js.map +1 -1
  44. package/build/JsonConfigComponent/ConfigNumber.js +5 -5
  45. package/build/JsonConfigComponent/ConfigNumber.js.map +1 -1
  46. package/build/JsonConfigComponent/ConfigOAuth2.js +9 -9
  47. package/build/JsonConfigComponent/ConfigOAuth2.js.map +1 -1
  48. package/build/JsonConfigComponent/ConfigPassword.js +4 -4
  49. package/build/JsonConfigComponent/ConfigPassword.js.map +1 -1
  50. package/build/JsonConfigComponent/ConfigPattern.js +1 -1
  51. package/build/JsonConfigComponent/ConfigPattern.js.map +1 -1
  52. package/build/JsonConfigComponent/ConfigPort.js +7 -7
  53. package/build/JsonConfigComponent/ConfigPort.js.map +1 -1
  54. package/build/JsonConfigComponent/ConfigQrCodeSendTo.js +3 -3
  55. package/build/JsonConfigComponent/ConfigQrCodeSendTo.js.map +1 -1
  56. package/build/JsonConfigComponent/ConfigSelectSendTo.js +2 -2
  57. package/build/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -1
  58. package/build/JsonConfigComponent/ConfigSendto.js +10 -10
  59. package/build/JsonConfigComponent/ConfigSendto.js.map +1 -1
  60. package/build/JsonConfigComponent/ConfigSetState.js +2 -2
  61. package/build/JsonConfigComponent/ConfigSetState.js.map +1 -1
  62. package/build/JsonConfigComponent/ConfigState.js +1 -1
  63. package/build/JsonConfigComponent/ConfigState.js.map +1 -1
  64. package/build/JsonConfigComponent/ConfigStaticImage.js +2 -2
  65. package/build/JsonConfigComponent/ConfigStaticImage.js.map +1 -1
  66. package/build/JsonConfigComponent/ConfigStaticInfo.js +1 -1
  67. package/build/JsonConfigComponent/ConfigStaticInfo.js.map +1 -1
  68. package/build/JsonConfigComponent/ConfigTable.js +33 -33
  69. package/build/JsonConfigComponent/ConfigTable.js.map +1 -1
  70. package/build/JsonConfigComponent/ConfigText.js +3 -3
  71. package/build/JsonConfigComponent/ConfigText.js.map +1 -1
  72. package/build/JsonConfigComponent/ConfigTextSendTo.js +2 -2
  73. package/build/JsonConfigComponent/ConfigTextSendTo.js.map +1 -1
  74. package/build/JsonConfigComponent/ConfigUUID.js +2 -2
  75. package/build/JsonConfigComponent/ConfigUUID.js.map +1 -1
  76. package/build/JsonConfigComponent/ConfigYamlEditor.js +2 -2
  77. package/build/JsonConfigComponent/ConfigYamlEditor.js.map +1 -1
  78. package/build/JsonConfigComponent/i18n/de.json +116 -0
  79. package/build/JsonConfigComponent/i18n/en.json +136 -0
  80. package/build/JsonConfigComponent/i18n/es.json +116 -0
  81. package/build/JsonConfigComponent/i18n/fr.json +116 -0
  82. package/build/JsonConfigComponent/i18n/it.json +116 -0
  83. package/build/JsonConfigComponent/i18n/nl.json +116 -0
  84. package/build/JsonConfigComponent/i18n/pl.json +116 -0
  85. package/build/JsonConfigComponent/i18n/pt.json +116 -0
  86. package/build/JsonConfigComponent/i18n/ru.json +116 -0
  87. package/build/JsonConfigComponent/i18n/uk.json +116 -0
  88. package/build/JsonConfigComponent/i18n/zh-cn.json +116 -0
  89. package/build/JsonConfigComponent/index.d.ts +1 -0
  90. package/build/JsonConfigComponent/index.js +28 -0
  91. package/build/JsonConfigComponent/index.js.map +1 -1
  92. package/build/JsonConfigComponent/wrapper/Components/CustomModal.js +3 -3
  93. package/build/JsonConfigComponent/wrapper/Components/CustomModal.js.map +1 -1
  94. package/package.json +13 -9
@@ -385,7 +385,7 @@ export default class ConfigTable extends ConfigGeneric {
385
385
  // Set error message based on the first error found (or clear if no errors)
386
386
  if (firstErrorColumn) {
387
387
  this.setState({
388
- errorMessage: I18n.t('Non-allowed duplicate entry "%s" in column "%s"', firstErrorValue, firstErrorColumn),
388
+ errorMessage: I18n.t('jc_Non-allowed duplicate entry "%s" in column "%s"', firstErrorValue, firstErrorColumn),
389
389
  });
390
390
  }
391
391
  else {
@@ -463,7 +463,7 @@ export default class ConfigTable extends ConfigGeneric {
463
463
  if (!headCell.filter) {
464
464
  return null;
465
465
  }
466
- return (React.createElement(IconButton, { title: I18n.t('ra_Show/hide filter input'), size: "small", onClick: () => {
466
+ return (React.createElement(IconButton, { title: I18n.t('jc_Show/hide filter input'), size: "small", onClick: () => {
467
467
  const filterOn = [...this.state.filterOn];
468
468
  const pos = this.state.filterOn.indexOf(headCell.attr);
469
469
  if (pos === -1) {
@@ -482,17 +482,17 @@ export default class ConfigTable extends ConfigGeneric {
482
482
  }
483
483
  renderImportExportButtons(schema) {
484
484
  return (React.createElement(React.Fragment, null,
485
- !schema.noDelete && schema.import ? (React.createElement(Tooltip, { title: I18n.t('ra_Import data from %s file', 'CSV'), slotProps: { popper: { sx: styles.tooltip } } },
485
+ !schema.noDelete && schema.import ? (React.createElement(Tooltip, { title: I18n.t('jc_Import data from %s file', 'CSV'), slotProps: { popper: { sx: styles.tooltip } } },
486
486
  React.createElement(IconButton, { size: "small", onClick: () => this.setState({ showImportDialog: true }) },
487
487
  React.createElement(ImportIcon, null)))) : null,
488
- schema.export ? (React.createElement(Tooltip, { title: I18n.t('ra_Export data to %s file', 'CSV'), slotProps: { popper: { sx: styles.tooltip } } },
488
+ schema.export ? (React.createElement(Tooltip, { title: I18n.t('jc_Export data to %s file', 'CSV'), slotProps: { popper: { sx: styles.tooltip } } },
489
489
  React.createElement(IconButton, { size: "small", onClick: () => this.onExport() },
490
490
  React.createElement(ExportIcon, null)))) : null,
491
491
  schema.noDelete ? null : (React.createElement(IconButton, { disabled: true, size: "small" },
492
492
  React.createElement(DeleteIcon, null)))));
493
493
  }
494
494
  renderAddButton(doAnyFilterSet) {
495
- return (React.createElement(Tooltip, { title: doAnyFilterSet ? I18n.t('ra_Cannot add items with set filter') : I18n.t('ra_Add row'), slotProps: { popper: { sx: styles.tooltip } } },
495
+ return (React.createElement(Tooltip, { title: doAnyFilterSet ? I18n.t('jc_Cannot add items with set filter') : I18n.t('jc_Add row'), slotProps: { popper: { sx: styles.tooltip } } },
496
496
  React.createElement("span", null,
497
497
  React.createElement(IconButton, { size: "small", color: "primary", disabled: !!doAnyFilterSet && !this.props.schema.allowAddByFilter, onClick: this.onAdd },
498
498
  React.createElement(AddIcon, null)))));
@@ -631,7 +631,7 @@ export default class ConfigTable extends ConfigGeneric {
631
631
  }
632
632
  }
633
633
  else {
634
- window.alert('ra_No data found in file');
634
+ window.alert('jc_No data found in file');
635
635
  }
636
636
  }
637
637
  onClone = (index) => () => {
@@ -794,7 +794,7 @@ export default class ConfigTable extends ConfigGeneric {
794
794
  reader.onerror = () => console.log('file reading has failed');
795
795
  reader.onload = () => {
796
796
  if (file.size > MAX_SIZE) {
797
- window.alert(I18n.t('ra_File is too big. Max %sk allowed. Try use SVG.', Math.round(MAX_SIZE / 1024)));
797
+ window.alert(I18n.t('jc_File is too big. Max %sk allowed. Try use SVG.', Math.round(MAX_SIZE / 1024)));
798
798
  return;
799
799
  }
800
800
  const text = new Uint8Array(reader.result).reduce((data, byte) => data + String.fromCharCode(byte), '');
@@ -807,8 +807,8 @@ export default class ConfigTable extends ConfigGeneric {
807
807
  return null;
808
808
  }
809
809
  return (React.createElement(Dialog, { open: !0, onClose: () => this.setState({ showTypeOfImportDialog: false }), maxWidth: "md" },
810
- React.createElement(DialogTitle, null, I18n.t('ra_Append or replace?')),
811
- React.createElement(DialogContent, null, I18n.t('ra_Append %s entries or replace existing?', this.state.showTypeOfImportDialog.length)),
810
+ React.createElement(DialogTitle, null, I18n.t('jc_Append or replace?')),
811
+ React.createElement(DialogContent, null, I18n.t('jc_Append %s entries or replace existing?', this.state.showTypeOfImportDialog.length)),
812
812
  React.createElement(DialogActions, null,
813
813
  React.createElement(Button, { variant: "contained", color: "primary", autoFocus: true, onClick: () => {
814
814
  const value = JSON.parse(JSON.stringify(this.state.value));
@@ -818,7 +818,7 @@ export default class ConfigTable extends ConfigGeneric {
818
818
  iteration: this.state.iteration + 10000,
819
819
  showTypeOfImportDialog: false,
820
820
  }, () => this.applyFilter(false, null, () => this.onChangeWrapper(value)));
821
- } }, I18n.t('ra_Append')),
821
+ } }, I18n.t('jc_Append')),
822
822
  React.createElement(Button, { variant: "contained", color: "secondary", autoFocus: true, onClick: () => {
823
823
  const value = this.state.showTypeOfImportDialog;
824
824
  this.setState({
@@ -826,7 +826,7 @@ export default class ConfigTable extends ConfigGeneric {
826
826
  iteration: this.state.iteration + 10000,
827
827
  showTypeOfImportDialog: false,
828
828
  }, () => this.applyFilter(false, null, () => this.onChangeWrapper(value)));
829
- } }, I18n.t('ra_Replace')))));
829
+ } }, I18n.t('jc_Replace')))));
830
830
  }
831
831
  showImportDialog() {
832
832
  if (!this.state.showImportDialog) {
@@ -837,7 +837,7 @@ export default class ConfigTable extends ConfigGeneric {
837
837
  minHeight: 500,
838
838
  },
839
839
  }, maxWidth: "md", fullWidth: true },
840
- React.createElement(DialogTitle, null, I18n.t('ra_Import from %s', 'CSV')),
840
+ React.createElement(DialogTitle, null, I18n.t('jc_Import from %s', 'CSV')),
841
841
  React.createElement(DialogContent, null,
842
842
  React.createElement(Dropzone, { multiple: false, accept: { 'text/csv': ['.csv'] }, maxSize: MAX_SIZE, onDragEnter: () => this.setState({ uploadFile: 'dragging' }), onDragLeave: () => this.setState({ uploadFile: true }), onDrop: (acceptedFiles, errors) => {
843
843
  this.setState({ uploadFile: false });
@@ -847,7 +847,7 @@ export default class ConfigTable extends ConfigGeneric {
847
847
  errors[0].errors &&
848
848
  errors[0].errors[0] &&
849
849
  errors[0].errors[0].message) ||
850
- I18n.t('ra_Cannot upload'));
850
+ I18n.t('jc_Cannot upload'));
851
851
  }
852
852
  else {
853
853
  this.onDrop(acceptedFiles);
@@ -863,10 +863,10 @@ export default class ConfigTable extends ConfigGeneric {
863
863
  React.createElement("div", { style: styles.uploadCenterTextAndIcon },
864
864
  React.createElement(ImportIcon, { style: styles.uploadCenterIcon }),
865
865
  React.createElement("div", { style: styles.uploadCenterText }, this.state.uploadFile === 'dragging'
866
- ? I18n.t('ra_Drop file here')
867
- : I18n.t('ra_Place your files here or click here to open the browse dialog')))))))),
866
+ ? I18n.t('jc_Drop file here')
867
+ : I18n.t('jc_Place your files here or click here to open the browse dialog')))))))),
868
868
  React.createElement(DialogActions, null,
869
- React.createElement(Button, { variant: "contained", onClick: () => this.setState({ showImportDialog: false }), color: "primary", startIcon: React.createElement(IconClose, null) }, I18n.t('Cancel')))));
869
+ React.createElement(Button, { variant: "contained", onClick: () => this.setState({ showImportDialog: false }), color: "primary", startIcon: React.createElement(IconClose, null) }, I18n.t('jc_Cancel')))));
870
870
  }
871
871
  renderOneFilter(props) {
872
872
  return (React.createElement(TableCell, { key: `${props.headCell.attr}_${props.index}`, style: props.style, align: "left", sortDirection: props.orderBy === props.headCell.attr ? props.order : false },
@@ -876,7 +876,7 @@ export default class ConfigTable extends ConfigGeneric {
876
876
  } },
877
877
  props.showAddButton ? this.renderAddButton(props.doAnyFilterSet) : null,
878
878
  props.headCell.sort && (React.createElement(TableSortLabel, { active: true, style: props.orderBy !== props.headCell.attr ? styles.silver : undefined, direction: props.orderBy === props.headCell.attr ? props.order : 'asc', onClick: () => this.handleRequestSort(props.headCell.attr) })),
879
- props.headCell.filter && this.state.filterOn.includes(props.headCell.attr) ? (React.createElement(TextField, { variant: "standard", ref: this.filterRefs[props.headCell.attr], onChange: () => this.applyFilter(), title: I18n.t('ra_You can filter entries by entering here some text'), slotProps: {
879
+ props.headCell.filter && this.state.filterOn.includes(props.headCell.attr) ? (React.createElement(TextField, { variant: "standard", ref: this.filterRefs[props.headCell.attr], onChange: () => this.applyFilter(), title: I18n.t('jc_You can filter entries by entering here some text'), slotProps: {
880
880
  input: {
881
881
  endAdornment: ConfigTable.getFilterValue(this.filterRefs[props.headCell.attr]) && (React.createElement(InputAdornment, { position: "end" },
882
882
  React.createElement(IconButton, { size: "small", tabIndex: -1, onClick: () => {
@@ -908,7 +908,7 @@ export default class ConfigTable extends ConfigGeneric {
908
908
  React.createElement(Paper, { style: styles.paper },
909
909
  React.createElement(Accordion, { style: styles.paper },
910
910
  React.createElement(AccordionSummary, { expandIcon: React.createElement(ExpandMoreIcon, null) },
911
- React.createElement(Typography, null, I18n.t('ra_Filter and Data Actions'))),
911
+ React.createElement(Typography, null, I18n.t('jc_Filter and Data Actions'))),
912
912
  React.createElement(AccordionDetails, null,
913
913
  React.createElement(Table, null,
914
914
  React.createElement(TableBody, null,
@@ -925,7 +925,7 @@ export default class ConfigTable extends ConfigGeneric {
925
925
  })))),
926
926
  importExportVisible ? (React.createElement(TableRow, null,
927
927
  React.createElement(TableCell, { align: "left", style: tdStyle },
928
- React.createElement("span", { style: styles.headerText }, I18n.t('ra_Actions'))),
928
+ React.createElement("span", { style: styles.headerText }, I18n.t('jc_Actions'))),
929
929
  React.createElement(TableCell, { style: tdStyle }, this.renderImportExportButtons(schema)))) : null))))))));
930
930
  }
931
931
  return null;
@@ -977,21 +977,21 @@ export default class ConfigTable extends ConfigGeneric {
977
977
  this.props.schema.titleAttribute ? (React.createElement(Box, { sx: styles.cardHeader },
978
978
  React.createElement("div", null, this.state.value[idx][this.props.schema.titleAttribute]),
979
979
  React.createElement("div", null,
980
- !doAnyFilterSet && !this.state.orderBy ? (React.createElement(Tooltip, { title: I18n.t('ra_Move up'), slotProps: { popper: { sx: styles.tooltip } } },
980
+ !doAnyFilterSet && !this.state.orderBy ? (React.createElement(Tooltip, { title: I18n.t('jc_Move up'), slotProps: { popper: { sx: styles.tooltip } } },
981
981
  React.createElement("span", null,
982
982
  React.createElement(IconButton, { size: "small", onClick: () => this.onMoveUp(idx), disabled: i === 0 },
983
983
  React.createElement(UpIcon, null))))) : null,
984
- !doAnyFilterSet && !this.state.orderBy ? (React.createElement(Tooltip, { title: I18n.t('ra_Move down'), slotProps: { popper: { sx: styles.tooltip } } },
984
+ !doAnyFilterSet && !this.state.orderBy ? (React.createElement(Tooltip, { title: I18n.t('jc_Move down'), slotProps: { popper: { sx: styles.tooltip } } },
985
985
  React.createElement("span", null,
986
986
  React.createElement(IconButton, { size: "small", onClick: () => this.onMoveDown(idx), disabled: i === visibleValue.length - 1 },
987
987
  React.createElement(DownIcon, null))))) : null,
988
- React.createElement(Tooltip, { title: I18n.t('ra_Delete current row'), slotProps: { popper: { sx: styles.tooltip } } },
988
+ React.createElement(Tooltip, { title: I18n.t('jc_Delete current row'), slotProps: { popper: { sx: styles.tooltip } } },
989
989
  React.createElement(IconButton, { size: "small", onClick: this.onDelete(idx) },
990
990
  React.createElement(DeleteIcon, null))),
991
- this.props.schema.clone ? (React.createElement(Tooltip, { title: I18n.t('ra_Clone current row'), slotProps: { popper: { sx: styles.tooltip } } },
991
+ this.props.schema.clone ? (React.createElement(Tooltip, { title: I18n.t('jc_Clone current row'), slotProps: { popper: { sx: styles.tooltip } } },
992
992
  React.createElement(IconButton, { size: "small", onClick: this.onClone(idx) },
993
993
  React.createElement(CopyContentIcon, null)))) : null,
994
- React.createElement(Tooltip, { title: I18n.t('ra_Expand/Collapse card'), slotProps: { popper: { sx: styles.tooltip } } },
994
+ React.createElement(Tooltip, { title: I18n.t('jc_Expand/Collapse card'), slotProps: { popper: { sx: styles.tooltip } } },
995
995
  React.createElement(IconButton, { size: "small", onClick: () => {
996
996
  const collapsed = [...this.state.collapsed];
997
997
  const pos = collapsed.indexOf(idx);
@@ -1024,18 +1024,18 @@ export default class ConfigTable extends ConfigGeneric {
1024
1024
  React.createElement(TableCell, { align: "left", style: tdStyle },
1025
1025
  React.createElement("span", { style: styles.headerText }, this.getText('Actions'))),
1026
1026
  React.createElement(TableCell, { align: "left", style: tdStyle },
1027
- !doAnyFilterSet && !this.state.orderBy ? (React.createElement(Tooltip, { title: I18n.t('ra_Move up'), slotProps: { popper: { sx: styles.tooltip } } },
1027
+ !doAnyFilterSet && !this.state.orderBy ? (React.createElement(Tooltip, { title: I18n.t('jc_Move up'), slotProps: { popper: { sx: styles.tooltip } } },
1028
1028
  React.createElement("span", null,
1029
1029
  React.createElement(IconButton, { size: "small", onClick: () => this.onMoveUp(idx), disabled: i === 0 },
1030
1030
  React.createElement(UpIcon, null))))) : null,
1031
- !doAnyFilterSet && !this.state.orderBy ? (React.createElement(Tooltip, { title: I18n.t('ra_Move down'), slotProps: { popper: { sx: styles.tooltip } } },
1031
+ !doAnyFilterSet && !this.state.orderBy ? (React.createElement(Tooltip, { title: I18n.t('jc_Move down'), slotProps: { popper: { sx: styles.tooltip } } },
1032
1032
  React.createElement("span", null,
1033
1033
  React.createElement(IconButton, { size: "small", onClick: () => this.onMoveDown(idx), disabled: i === visibleValue.length - 1 },
1034
1034
  React.createElement(DownIcon, null))))) : null,
1035
- React.createElement(Tooltip, { title: I18n.t('ra_Delete current row'), slotProps: { popper: { sx: styles.tooltip } } },
1035
+ React.createElement(Tooltip, { title: I18n.t('jc_Delete current row'), slotProps: { popper: { sx: styles.tooltip } } },
1036
1036
  React.createElement(IconButton, { size: "small", onClick: this.onDelete(idx) },
1037
1037
  React.createElement(DeleteIcon, null))),
1038
- this.props.schema.clone ? (React.createElement(Tooltip, { title: I18n.t('ra_Clone current row'), slotProps: { popper: { sx: styles.tooltip } } },
1038
+ this.props.schema.clone ? (React.createElement(Tooltip, { title: I18n.t('jc_Clone current row'), slotProps: { popper: { sx: styles.tooltip } } },
1039
1039
  React.createElement(IconButton, { size: "small", onClick: this.onClone(idx) },
1040
1040
  React.createElement(CopyContentIcon, null)))) : null))))))))))),
1041
1041
  this.enhancedBottomCard()));
@@ -1062,23 +1062,23 @@ export default class ConfigTable extends ConfigGeneric {
1062
1062
  visibleValue.map((idx, i) => (React.createElement(TableRow, { hover: true, key: `${idx}_${i}`, sx: this.state.tableErrors[idx] ? { outline: '1px solid red' } : undefined },
1063
1063
  schema.items?.map((headCell) => (React.createElement(TableCell, { key: `${headCell.attr}_${idx}`, align: "left", style: tdStyle }, this.itemTable(headCell.attr, this.state.value[idx], idx, false)))),
1064
1064
  !schema.noDelete && (React.createElement(TableCell, { align: "left", style: { ...tdStyle, ...styles.buttonCell } },
1065
- !doAnyFilterSet && !this.state.orderBy ? (i ? (React.createElement(Tooltip, { title: I18n.t('ra_Move up'), slotProps: { popper: { sx: styles.tooltip } } },
1065
+ !doAnyFilterSet && !this.state.orderBy ? (i ? (React.createElement(Tooltip, { title: I18n.t('jc_Move up'), slotProps: { popper: { sx: styles.tooltip } } },
1066
1066
  React.createElement(IconButton, { size: "small", onClick: () => this.onMoveUp(idx) },
1067
1067
  React.createElement(UpIcon, null)))) : (React.createElement("div", { style: styles.buttonEmpty }))) : null,
1068
- !doAnyFilterSet && !this.state.orderBy ? (i < visibleValue.length - 1 ? (React.createElement(Tooltip, { title: I18n.t('ra_Move down'), slotProps: { popper: { sx: styles.tooltip } } },
1068
+ !doAnyFilterSet && !this.state.orderBy ? (i < visibleValue.length - 1 ? (React.createElement(Tooltip, { title: I18n.t('jc_Move down'), slotProps: { popper: { sx: styles.tooltip } } },
1069
1069
  React.createElement(IconButton, { size: "small", onClick: () => this.onMoveDown(idx) },
1070
1070
  React.createElement(DownIcon, null)))) : (React.createElement("div", { style: styles.buttonEmpty }))) : null,
1071
- React.createElement(Tooltip, { title: I18n.t('ra_Delete current row'), slotProps: { popper: { sx: styles.tooltip } } },
1071
+ React.createElement(Tooltip, { title: I18n.t('jc_Delete current row'), slotProps: { popper: { sx: styles.tooltip } } },
1072
1072
  React.createElement(IconButton, { size: "small", onClick: this.onDelete(idx) },
1073
1073
  React.createElement(DeleteIcon, null))),
1074
- this.props.schema.clone ? (React.createElement(Tooltip, { title: I18n.t('ra_Clone current row'), slotProps: { popper: { sx: styles.tooltip } } },
1074
+ this.props.schema.clone ? (React.createElement(Tooltip, { title: I18n.t('jc_Clone current row'), slotProps: { popper: { sx: styles.tooltip } } },
1075
1075
  React.createElement(IconButton, { size: "small", onClick: this.onClone(idx) },
1076
1076
  React.createElement(CopyContentIcon, null)))) : null))))),
1077
1077
  !schema.noDelete && visibleValue.length >= (schema.showSecondAddAt || 5) ? (React.createElement(TableRow, null,
1078
1078
  React.createElement(TableCell, { colSpan: schema.items.length + 1, style: { ...tdStyle } }, this.renderAddButton(doAnyFilterSet)))) : null)),
1079
1079
  !visibleValue.length && this.state.value.length ? (React.createElement("div", { style: styles.filteredOut },
1080
1080
  React.createElement(Typography, { style: styles.title, variant: "h6", id: "tableTitle", component: "div" },
1081
- I18n.t('ra_All items are filtered out'),
1081
+ I18n.t('jc_All items are filtered out'),
1082
1082
  React.createElement(IconButton, { size: "small", onClick: () => this.applyFilter(true) },
1083
1083
  React.createElement(CloseIcon, null))))) : null),
1084
1084
  schema.help ? (React.createElement(FormHelperText, { style: { paddingLeft: 16 } }, this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation))) : null,