@iobroker/adapter-react-v5 4.2.1 → 4.3.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 (61) hide show
  1. package/Components/ComplexCron.js +20 -28
  2. package/Components/ComplexCron.js.map +1 -1
  3. package/Components/CustomModal.js +8 -12
  4. package/Components/CustomModal.js.map +1 -1
  5. package/Components/FileViewer.js +10 -18
  6. package/Components/FileViewer.js.map +1 -1
  7. package/Components/Icon.js +10 -17
  8. package/Components/Icon.js.map +1 -1
  9. package/Components/IconPicker.js +6 -8
  10. package/Components/IconPicker.js.map +1 -1
  11. package/Components/IconSelector.js +13 -22
  12. package/Components/IconSelector.js.map +1 -1
  13. package/Components/JsonConfigComponent/ConfigTable.js +357 -38
  14. package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
  15. package/Components/Loader.js +1 -1
  16. package/Components/Loader.js.map +1 -1
  17. package/Components/Logo.js +11 -13
  18. package/Components/Logo.js.map +1 -1
  19. package/Components/MDUtils.js +1 -1
  20. package/Components/MDUtils.js.map +1 -1
  21. package/Components/ObjectBrowser.d.ts +13 -1
  22. package/Components/ObjectBrowser.js +568 -568
  23. package/Components/ObjectBrowser.js.map +1 -1
  24. package/Components/Router.d.ts +1 -1
  25. package/Components/Router.js +6 -6
  26. package/Components/Router.js.map +1 -1
  27. package/Components/SaveCloseButtons.js +11 -13
  28. package/Components/SaveCloseButtons.js.map +1 -1
  29. package/Components/Schedule.js +135 -129
  30. package/Components/Schedule.js.map +1 -1
  31. package/Components/SelectWithIcon.js.map +1 -1
  32. package/Components/TabContainer.js +3 -4
  33. package/Components/TabContainer.js.map +1 -1
  34. package/Components/TabContent.js +2 -2
  35. package/Components/TabContent.js.map +1 -1
  36. package/Components/TabHeader.js +2 -2
  37. package/Components/TabHeader.js.map +1 -1
  38. package/Components/TableResize.js +6 -6
  39. package/Components/TableResize.js.map +1 -1
  40. package/Components/ToggleThemeMenu.js +5 -8
  41. package/Components/ToggleThemeMenu.js.map +1 -1
  42. package/Components/TreeTable.js +44 -64
  43. package/Components/TreeTable.js.map +1 -1
  44. package/Components/UploadImage.js +11 -12
  45. package/Components/UploadImage.js.map +1 -1
  46. package/Components/Utils.d.ts +13 -6
  47. package/Components/Utils.js +61 -41
  48. package/Components/Utils.js.map +1 -1
  49. package/README.md +6 -0
  50. package/i18n/de.json +9 -1
  51. package/i18n/en.json +9 -1
  52. package/i18n/es.json +9 -1
  53. package/i18n/fr.json +9 -1
  54. package/i18n/it.json +9 -1
  55. package/i18n/nl.json +9 -1
  56. package/i18n/pl.json +9 -1
  57. package/i18n/pt.json +9 -1
  58. package/i18n/ru.json +9 -1
  59. package/i18n/uk.json +9 -1
  60. package/i18n/zh-cn.json +9 -1
  61. package/package.json +3 -3
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = void 0;
9
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
11
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
13
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -20,24 +21,21 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
20
21
  var _react = _interopRequireWildcard(require("react"));
21
22
  var _propTypes = _interopRequireDefault(require("prop-types"));
22
23
  var _styles = require("@mui/styles");
24
+ var _reactDropzone = _interopRequireDefault(require("react-dropzone"));
23
25
  var _FormHelperText = _interopRequireDefault(require("@mui/material/FormHelperText"));
24
26
  var _material = require("@mui/material");
25
- var _Add = _interopRequireDefault(require("@mui/icons-material/Add"));
26
- var _Delete = _interopRequireDefault(require("@mui/icons-material/Delete"));
27
- var _Close = _interopRequireDefault(require("@mui/icons-material/Close"));
28
- var _ArrowUpward = _interopRequireDefault(require("@mui/icons-material/ArrowUpward"));
29
- var _ArrowDownward = _interopRequireDefault(require("@mui/icons-material/ArrowDownward"));
30
- var _FilterAlt = _interopRequireDefault(require("@mui/icons-material/FilterAlt"));
31
- var _FilterAltOff = _interopRequireDefault(require("@mui/icons-material/FilterAltOff"));
32
- var _ContentCopy = _interopRequireDefault(require("@mui/icons-material/ContentCopy"));
27
+ var _iconsMaterial = require("@mui/icons-material");
33
28
  var _i18n = _interopRequireDefault(require("./wrapper/i18n"));
34
29
  var _Utils = _interopRequireDefault(require("./wrapper/Components/Utils"));
35
30
  var _ConfigGeneric2 = _interopRequireDefault(require("./ConfigGeneric"));
36
31
  var _ConfigPanel = _interopRequireDefault(require("./ConfigPanel"));
32
+ var _Close = _interopRequireDefault(require("@mui/icons-material/Close"));
37
33
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
38
34
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
35
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
40
36
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
37
+ var MAX_SIZE = 1024 * 1024; // 1MB
38
+
41
39
  var styles = function styles(theme) {
42
40
  return {
43
41
  fullWidth: {
@@ -104,6 +102,71 @@ var styles = function styles(theme) {
104
102
  },
105
103
  buttonCell: {
106
104
  whiteSpace: 'nowrap'
105
+ },
106
+ dropZone: {
107
+ width: '100%',
108
+ height: 100,
109
+ position: 'relative'
110
+ },
111
+ dropZoneEmpty: {},
112
+ uploadDiv: {
113
+ position: 'relative',
114
+ width: '100%',
115
+ height: 300,
116
+ opacity: 0.9,
117
+ marginTop: 30,
118
+ cursor: 'pointer',
119
+ outline: 'none'
120
+ },
121
+ uploadDivDragging: {
122
+ opacity: 1,
123
+ background: 'rgba(128,255,128,0.1)'
124
+ },
125
+ image: {
126
+ objectFit: 'contain',
127
+ margin: 'auto',
128
+ display: 'flex',
129
+ width: '100%',
130
+ height: '100%'
131
+ },
132
+ uploadCenterDiv: {
133
+ margin: 5,
134
+ border: '3px dashed grey',
135
+ borderRadius: 5,
136
+ width: 'calc(100% - 10px)',
137
+ height: 'calc(100% - 10px)',
138
+ minHeight: 300,
139
+ position: 'relative',
140
+ display: 'flex'
141
+ },
142
+ uploadCenterIcon: {
143
+ paddingTop: 10,
144
+ width: 48,
145
+ height: 48
146
+ },
147
+ uploadCenterText: {
148
+ fontSize: 16
149
+ },
150
+ uploadCenterTextAndIcon: {
151
+ textAlign: 'center',
152
+ position: 'absolute',
153
+ top: 0,
154
+ bottom: 0,
155
+ left: 0,
156
+ right: 0,
157
+ display: 'flex',
158
+ flexDirection: 'column',
159
+ alignItems: 'center',
160
+ justifyContent: 'center'
161
+ },
162
+ buttonRemoveWrapper: {
163
+ position: 'absolute',
164
+ zIndex: 222,
165
+ right: 0
166
+ },
167
+ error: {
168
+ border: '2px solid red',
169
+ boxSizing: 'border-box'
107
170
  }
108
171
  };
109
172
  };
@@ -432,7 +495,7 @@ var ConfigTable = /*#__PURE__*/function (_ConfigGeneric) {
432
495
  color: "primary",
433
496
  disabled: !!doAnyFilterSet && !_this3.props.schema.allowAddByFilter,
434
497
  onClick: _this3.onAdd
435
- }, /*#__PURE__*/_react["default"].createElement(_Add["default"], null)))) : null, headCell.sort && /*#__PURE__*/_react["default"].createElement(_material.TableSortLabel, {
498
+ }, /*#__PURE__*/_react["default"].createElement(_iconsMaterial.Add, null)))) : null, headCell.sort && /*#__PURE__*/_react["default"].createElement(_material.TableSortLabel, {
436
499
  active: true,
437
500
  className: _Utils["default"].clsx(orderBy !== headCell.attr && classes.silver),
438
501
  direction: orderBy === headCell.attr ? order : 'asc',
@@ -455,7 +518,7 @@ var ConfigTable = /*#__PURE__*/function (_ConfigGeneric) {
455
518
  _this3.filterRefs[headCell.attr].current.children[0].children[0].value = '';
456
519
  _this3.applyFilter();
457
520
  }
458
- }, /*#__PURE__*/_react["default"].createElement(_Close["default"], null)))
521
+ }, /*#__PURE__*/_react["default"].createElement(_iconsMaterial.Close, null)))
459
522
  },
460
523
  fullWidth: true,
461
524
  placeholder: _this3.getText(headCell.title)
@@ -481,7 +544,7 @@ var ConfigTable = /*#__PURE__*/function (_ConfigGeneric) {
481
544
  }
482
545
  });
483
546
  }
484
- }, _this3.state.filterOn.includes(headCell.attr) ? /*#__PURE__*/_react["default"].createElement(_FilterAltOff["default"], null) : /*#__PURE__*/_react["default"].createElement(_FilterAlt["default"], null)) : null));
547
+ }, _this3.state.filterOn.includes(headCell.attr) ? /*#__PURE__*/_react["default"].createElement(_iconsMaterial.FilterAltOff, null) : /*#__PURE__*/_react["default"].createElement(_iconsMaterial.FilterAlt, null)) : null));
485
548
  }), !schema.noDelete && /*#__PURE__*/_react["default"].createElement(_material.TableCell, {
486
549
  style: {
487
550
  paddingLeft: 20,
@@ -490,24 +553,138 @@ var ConfigTable = /*#__PURE__*/function (_ConfigGeneric) {
490
553
  textAlign: 'right'
491
554
  },
492
555
  padding: "checkbox"
493
- }, /*#__PURE__*/_react["default"].createElement(_material.IconButton, {
556
+ }, schema["import"] ? /*#__PURE__*/_react["default"].createElement(_material.IconButton, {
557
+ style: {
558
+ marginRight: 10
559
+ },
560
+ size: "small",
561
+ onClick: function onClick() {
562
+ return _this3.setState({
563
+ showImportDialog: true
564
+ });
565
+ },
566
+ title: _i18n["default"].t('ra_import data from %s file', 'CSV')
567
+ }, /*#__PURE__*/_react["default"].createElement(_iconsMaterial.UploadFile, null)) : null, schema["export"] ? /*#__PURE__*/_react["default"].createElement(_material.IconButton, {
568
+ style: {
569
+ marginRight: 10
570
+ },
571
+ size: "small",
572
+ onClick: function onClick() {
573
+ return _this3.onExport();
574
+ },
575
+ title: _i18n["default"].t('ra_Export data to %s file', 'CSV')
576
+ }, /*#__PURE__*/_react["default"].createElement(_iconsMaterial.Download, null)) : null, /*#__PURE__*/_react["default"].createElement(_material.IconButton, {
494
577
  disabled: true,
495
578
  size: "small"
496
- }, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null)))));
579
+ }, /*#__PURE__*/_react["default"].createElement(_iconsMaterial.Delete, null)))));
580
+ }
581
+ }, {
582
+ key: "onExport",
583
+ value: function onExport() {
584
+ var schema = this.props.schema;
585
+ var value = this.state.value;
586
+ var cols = schema.items.map(function (it) {
587
+ return it.attr;
588
+ });
589
+ var lines = [cols.join(';')];
590
+ value.forEach(function (row) {
591
+ var line = [];
592
+ schema.items.forEach(function (it) {
593
+ if (row[it.attr].includes(';')) {
594
+ line.push("\"".concat(row[it.attr], "\""));
595
+ } else {
596
+ line.push(row[it.attr]);
597
+ }
598
+ });
599
+ lines.push(line.join(';'));
600
+ });
601
+ var el = document.createElement('a');
602
+ el.setAttribute('href', "data:text/csv;charset=utf-8,".concat(encodeURIComponent(lines.join('\n'))));
603
+ var now = new Date();
604
+ el.setAttribute('download', "".concat(now.getFullYear(), "_").concat((now.getMonth() + 1).toString().padStart(2, '0'), "_").concat(now.getDate().toString().padStart(2, '0'), "_").concat(this.props.adapterName, ".").concat(this.props.instance, "_").concat(this.props.attr, ".csv"));
605
+ el.style.display = 'none';
606
+ document.body.appendChild(el);
607
+ el.click();
608
+ document.body.removeChild(el);
609
+ }
610
+ }, {
611
+ key: "onImport",
612
+ value: function onImport(text) {
613
+ var _this4 = this;
614
+ var lines = text.split('\n').map(function (line) {
615
+ return line.replace('\r', '').trim();
616
+ });
617
+ // the first line is header
618
+ var schema = this.props.schema;
619
+ var header = lines.shift().split(';').filter(function (it) {
620
+ return it && schema.items.find(function (it2) {
621
+ return it2.attr === it;
622
+ });
623
+ });
624
+ var values = [];
625
+ lines.forEach(function (line) {
626
+ var parts = line.split(';');
627
+ var obj = {};
628
+ var _loop = function _loop(_p) {
629
+ var value = parts[_p];
630
+ if (value.startsWith('"')) {
631
+ value = value.substring(1);
632
+ while (_p < parts.length && !value.endsWith('"')) {
633
+ value += ";".concat(parts[++_p]);
634
+ }
635
+ value = value.substring(0, value.length - 1);
636
+ }
637
+ if (parts[_p] === 'true') {
638
+ parts[_p] = true;
639
+ } else if (parts[_p] === 'false') {
640
+ parts[_p] = false;
641
+ } else if (window.isFinite(parts[_p])) {
642
+ var attr = _this4.props.schema.items.find(function (it) {
643
+ return it.attr === header[_p];
644
+ });
645
+ if (attr && attr.type === 'number') {
646
+ // if a type of attribute is a "number"
647
+ parts[_p] = parseFloat(parts[_p]);
648
+ }
649
+ }
650
+ obj[header[_p]] = parts[_p];
651
+ p = _p;
652
+ };
653
+ for (var p = 0; p < parts.length; p++) {
654
+ _loop(p);
655
+ }
656
+ values.push(obj);
657
+ });
658
+ if (values.length) {
659
+ var _this$state$value;
660
+ if ((_this$state$value = this.state.value) !== null && _this$state$value !== void 0 && _this$state$value.length) {
661
+ this.setState({
662
+ showTypeOfImportDialog: values,
663
+ showImportDialog: false
664
+ });
665
+ } else {
666
+ this.setState({
667
+ value: values,
668
+ showImportDialog: false
669
+ });
670
+ }
671
+ } else {
672
+ window.alert('ra_No data found in file');
673
+ }
497
674
  }
498
675
  }, {
499
676
  key: "isAnyFilterSet",
500
677
  value: function isAnyFilterSet() {
501
- var _this4 = this;
678
+ var _this5 = this;
502
679
  return Object.keys(this.filterRefs).find(function (attr) {
503
- var _this4$filterRefs$att;
504
- return (_this4$filterRefs$att = _this4.filterRefs[attr].current) === null || _this4$filterRefs$att === void 0 ? void 0 : _this4$filterRefs$att.children[0].children[0].value;
680
+ var _this5$filterRefs$att;
681
+ return (_this5$filterRefs$att = _this5.filterRefs[attr].current) === null || _this5$filterRefs$att === void 0 ? void 0 : _this5$filterRefs$att.children[0].children[0].value;
505
682
  });
506
683
  }
507
684
  }, {
508
685
  key: "onMoveUp",
509
686
  value: function onMoveUp(idx) {
510
- var _this5 = this;
687
+ var _this6 = this;
511
688
  var newValue = JSON.parse(JSON.stringify(this.state.value));
512
689
  var item = newValue[idx];
513
690
  newValue.splice(idx, 1);
@@ -516,15 +693,15 @@ var ConfigTable = /*#__PURE__*/function (_ConfigGeneric) {
516
693
  value: newValue,
517
694
  iteration: this.state.iteration + 10000
518
695
  }, function () {
519
- return _this5.applyFilter(false, null, function () {
520
- return _this5.onChangeWrapper(newValue);
696
+ return _this6.applyFilter(false, null, function () {
697
+ return _this6.onChangeWrapper(newValue);
521
698
  });
522
699
  });
523
700
  }
524
701
  }, {
525
702
  key: "onMoveDown",
526
703
  value: function onMoveDown(idx) {
527
- var _this6 = this;
704
+ var _this7 = this;
528
705
  var newValue = JSON.parse(JSON.stringify(this.state.value));
529
706
  var item = newValue[idx];
530
707
  newValue.splice(idx, 1);
@@ -533,15 +710,157 @@ var ConfigTable = /*#__PURE__*/function (_ConfigGeneric) {
533
710
  value: newValue,
534
711
  iteration: this.state.iteration + 10000
535
712
  }, function () {
536
- return _this6.applyFilter(false, null, function () {
537
- return _this6.onChangeWrapper(newValue);
713
+ return _this7.applyFilter(false, null, function () {
714
+ return _this7.onChangeWrapper(newValue);
538
715
  });
539
716
  });
540
717
  }
718
+ }, {
719
+ key: "onDrop",
720
+ value: function onDrop(acceptedFiles) {
721
+ var _this8 = this;
722
+ var file = acceptedFiles[0];
723
+ var reader = new FileReader();
724
+ reader.onabort = function () {
725
+ return console.log('file reading was aborted');
726
+ };
727
+ reader.onerror = function () {
728
+ return console.log('file reading has failed');
729
+ };
730
+ reader.onload = function () {
731
+ if (file.size > MAX_SIZE) {
732
+ return window.alert(_i18n["default"].t('ra_File is too big. Max %sk allowed. Try use SVG.', Math.round(MAX_SIZE / 1024)));
733
+ }
734
+ var text = new Uint8Array(reader.result).reduce(function (data, _byte) {
735
+ return data + String.fromCharCode(_byte);
736
+ }, '');
737
+ _this8.onImport(text);
738
+ };
739
+ reader.readAsArrayBuffer(file);
740
+ }
741
+ }, {
742
+ key: "showTypeOfImportDialog",
743
+ value: function showTypeOfImportDialog() {
744
+ var _this9 = this;
745
+ if (!this.state.showTypeOfImportDialog) {
746
+ return null;
747
+ }
748
+ return /*#__PURE__*/_react["default"].createElement(_material.Dialog, {
749
+ open: !0,
750
+ onClose: function onClose() {
751
+ return _this9.setState({
752
+ showTypeOfImportDialog: false
753
+ });
754
+ },
755
+ maxWidth: "md"
756
+ }, /*#__PURE__*/_react["default"].createElement(_material.DialogTitle, null, _i18n["default"].t('ra_Append or replace?')), /*#__PURE__*/_react["default"].createElement(_material.DialogContent, null, _i18n["default"].t('ra_Append %s entries or replace existing?', this.state.showTypeOfImportDialog.length)), /*#__PURE__*/_react["default"].createElement(_material.DialogActions, null, /*#__PURE__*/_react["default"].createElement(_material.Button, {
757
+ variant: "contained",
758
+ color: "primary",
759
+ autoFocus: true,
760
+ onClick: function onClick() {
761
+ var value = JSON.parse(JSON.stringify(_this9.state.value));
762
+ _this9.state.showTypeOfImportDialog.forEach(function (obj) {
763
+ return value.push(obj);
764
+ });
765
+ _this9.setState({
766
+ value: value,
767
+ iteration: _this9.state.iteration + 10000,
768
+ showTypeOfImportDialog: false
769
+ }, function () {
770
+ return _this9.applyFilter(false, null, function () {
771
+ return _this9.onChangeWrapper(value);
772
+ });
773
+ });
774
+ }
775
+ }, _i18n["default"].t('ra_Append')), /*#__PURE__*/_react["default"].createElement(_material.Button, {
776
+ variant: "contained",
777
+ color: "secondary",
778
+ autoFocus: true,
779
+ onClick: function onClick() {
780
+ var value = _this9.state.showTypeOfImportDialog;
781
+ _this9.setState({
782
+ value: value,
783
+ iteration: _this9.state.iteration + 10000,
784
+ showTypeOfImportDialog: false
785
+ }, function () {
786
+ return _this9.applyFilter(false, null, function () {
787
+ return _this9.onChangeWrapper(value);
788
+ });
789
+ });
790
+ }
791
+ }, _i18n["default"].t('ra_Replace'))));
792
+ }
793
+ }, {
794
+ key: "showImportDialog",
795
+ value: function showImportDialog() {
796
+ var _this10 = this;
797
+ if (!this.state.showImportDialog) {
798
+ return null;
799
+ }
800
+ return /*#__PURE__*/_react["default"].createElement(_material.Dialog, {
801
+ open: !0,
802
+ onClose: function onClose() {
803
+ return _this10.setState({
804
+ showImportDialog: false
805
+ });
806
+ },
807
+ maxWidth: "md",
808
+ fullWidth: true
809
+ }, /*#__PURE__*/_react["default"].createElement(_material.DialogTitle, null, _i18n["default"].t('ra_Import from %s', 'CSV')), /*#__PURE__*/_react["default"].createElement(_material.DialogContent, null, /*#__PURE__*/_react["default"].createElement(_reactDropzone["default"], {
810
+ multiple: false,
811
+ accept: {
812
+ 'text/csv': ['.csv']
813
+ },
814
+ maxSize: MAX_SIZE,
815
+ onDragEnter: function onDragEnter() {
816
+ return _this10.setState({
817
+ uploadFile: 'dragging'
818
+ });
819
+ },
820
+ onDragLeave: function onDragLeave() {
821
+ return _this10.setState({
822
+ uploadFile: true
823
+ });
824
+ },
825
+ onDrop: function onDrop(acceptedFiles, errors) {
826
+ _this10.setState({
827
+ uploadFile: false
828
+ });
829
+ if (!acceptedFiles.length) {
830
+ window.alert(errors && errors[0] && errors[0].errors && errors[0].errors[0] && errors[0].errors[0].message || _i18n["default"].t('ra_Cannot upload'));
831
+ } else {
832
+ return _this10.onDrop(acceptedFiles);
833
+ }
834
+ }
835
+ }, function (_ref) {
836
+ var getRootProps = _ref.getRootProps,
837
+ getInputProps = _ref.getInputProps;
838
+ return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
839
+ className: _Utils["default"].clsx(_this10.props.classes.uploadDiv, _this10.state.uploadFile === 'dragging' && _this10.props.classes.uploadDivDragging, _this10.props.classes.dropZone, !_this10.state.icon && _this10.props.classes.dropZoneEmpty)
840
+ }, getRootProps()), /*#__PURE__*/_react["default"].createElement("input", getInputProps()), /*#__PURE__*/_react["default"].createElement("div", {
841
+ className: _Utils["default"].clsx(_this10.props.classes.uploadCenterDiv)
842
+ }, /*#__PURE__*/_react["default"].createElement("div", {
843
+ className: _this10.props.classes.uploadCenterTextAndIcon
844
+ }, /*#__PURE__*/_react["default"].createElement(_iconsMaterial.UploadFile, {
845
+ className: _this10.props.classes.uploadCenterIcon
846
+ }), /*#__PURE__*/_react["default"].createElement("div", {
847
+ className: _this10.props.classes.uploadCenterText
848
+ }, _this10.state.uploadFile === 'dragging' ? _i18n["default"].t('ra_Drop file here') : _i18n["default"].t('ra_Place your files here or click here to open the browse dialog')))));
849
+ })), /*#__PURE__*/_react["default"].createElement(_material.DialogActions, null, /*#__PURE__*/_react["default"].createElement(_material.Button, {
850
+ variant: "contained",
851
+ onClick: function onClick() {
852
+ return _this10.setState({
853
+ showImportDialog: false
854
+ });
855
+ },
856
+ color: "primary",
857
+ startIcon: /*#__PURE__*/_react["default"].createElement(_Close["default"], null)
858
+ }, _i18n["default"].t('Cancel'))));
859
+ }
541
860
  }, {
542
861
  key: "renderItem",
543
862
  value: function renderItem(error, disabled, defaultValue) {
544
- var _this7 = this;
863
+ var _this11 = this;
545
864
  var _this$props2 = this.props,
546
865
  classes = _this$props2.classes,
547
866
  schema = _this$props2.schema;
@@ -557,7 +876,7 @@ var ConfigTable = /*#__PURE__*/function (_ConfigGeneric) {
557
876
  var doAnyFilterSet = this.isAnyFilterSet();
558
877
  return /*#__PURE__*/_react["default"].createElement(_material.Paper, {
559
878
  className: classes.paper
560
- }, /*#__PURE__*/_react["default"].createElement("div", {
879
+ }, this.showImportDialog(), this.showTypeOfImportDialog(), /*#__PURE__*/_react["default"].createElement("div", {
561
880
  className: classes.addIcon
562
881
  }, schema.label ? /*#__PURE__*/_react["default"].createElement(_material.Toolbar, {
563
882
  variant: "dense",
@@ -578,39 +897,39 @@ var ConfigTable = /*#__PURE__*/function (_ConfigGeneric) {
578
897
  return /*#__PURE__*/_react["default"].createElement(_material.TableCell, {
579
898
  key: "".concat(headCell.attr, "_").concat(idx),
580
899
  align: "left"
581
- }, _this7.itemTable(headCell.attr, value[idx], idx));
900
+ }, _this11.itemTable(headCell.attr, value[idx], idx));
582
901
  }), !schema.noDelete && /*#__PURE__*/_react["default"].createElement(_material.TableCell, {
583
902
  align: "left",
584
903
  className: classes.buttonCell
585
- }, !doAnyFilterSet && !_this7.state.orderBy ? i ? /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
904
+ }, !doAnyFilterSet && !_this11.state.orderBy ? i ? /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
586
905
  title: _i18n["default"].t('ra_Move up')
587
906
  }, /*#__PURE__*/_react["default"].createElement(_material.IconButton, {
588
907
  size: "small",
589
908
  onClick: function onClick() {
590
- return _this7.onMoveUp(idx);
909
+ return _this11.onMoveUp(idx);
591
910
  }
592
- }, /*#__PURE__*/_react["default"].createElement(_ArrowUpward["default"], null))) : /*#__PURE__*/_react["default"].createElement("div", {
911
+ }, /*#__PURE__*/_react["default"].createElement(_iconsMaterial.ArrowUpward, null))) : /*#__PURE__*/_react["default"].createElement("div", {
593
912
  className: classes.buttonEmpty
594
- }) : null, !doAnyFilterSet && !_this7.state.orderBy ? i < visibleValue.length - 1 ? /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
913
+ }) : null, !doAnyFilterSet && !_this11.state.orderBy ? i < visibleValue.length - 1 ? /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
595
914
  title: _i18n["default"].t('ra_Move down')
596
915
  }, /*#__PURE__*/_react["default"].createElement(_material.IconButton, {
597
916
  size: "small",
598
917
  onClick: function onClick() {
599
- return _this7.onMoveDown(idx);
918
+ return _this11.onMoveDown(idx);
600
919
  }
601
- }, /*#__PURE__*/_react["default"].createElement(_ArrowDownward["default"], null))) : /*#__PURE__*/_react["default"].createElement("div", {
920
+ }, /*#__PURE__*/_react["default"].createElement(_iconsMaterial.ArrowDownward, null))) : /*#__PURE__*/_react["default"].createElement("div", {
602
921
  className: classes.buttonEmpty
603
922
  }) : null, /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
604
923
  title: _i18n["default"].t('ra_Delete current row')
605
924
  }, /*#__PURE__*/_react["default"].createElement(_material.IconButton, {
606
925
  size: "small",
607
- onClick: _this7.onDelete(idx)
608
- }, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null))), _this7.props.schema.clone ? /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
926
+ onClick: _this11.onDelete(idx)
927
+ }, /*#__PURE__*/_react["default"].createElement(_iconsMaterial.Delete, null))), _this11.props.schema.clone ? /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
609
928
  title: _i18n["default"].t('ra_Clone current row')
610
929
  }, /*#__PURE__*/_react["default"].createElement(_material.IconButton, {
611
930
  size: "small",
612
- onClick: _this7.onClone(idx)
613
- }, /*#__PURE__*/_react["default"].createElement(_ContentCopy["default"], null))) : null));
931
+ onClick: _this11.onClone(idx)
932
+ }, /*#__PURE__*/_react["default"].createElement(_iconsMaterial.ContentCopy, null))) : null));
614
933
  }), !schema.noDelete && visibleValue.length >= (schema.showSecondAddAt || 5) ? /*#__PURE__*/_react["default"].createElement(_material.TableRow, null, /*#__PURE__*/_react["default"].createElement(_material.TableCell, {
615
934
  colSpan: schema.items.length + 1
616
935
  }, /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
@@ -620,7 +939,7 @@ var ConfigTable = /*#__PURE__*/function (_ConfigGeneric) {
620
939
  color: "primary",
621
940
  disabled: !!doAnyFilterSet && !this.props.schema.allowAddByFilter,
622
941
  onClick: this.onAdd
623
- }, /*#__PURE__*/_react["default"].createElement(_Add["default"], null)))))) : null)), !visibleValue.length && value.length ? /*#__PURE__*/_react["default"].createElement("div", {
942
+ }, /*#__PURE__*/_react["default"].createElement(_iconsMaterial.Add, null)))))) : null)), !visibleValue.length && value.length ? /*#__PURE__*/_react["default"].createElement("div", {
624
943
  className: classes.filteredOut
625
944
  }, /*#__PURE__*/_react["default"].createElement(_material.Typography, {
626
945
  className: classes.title,
@@ -630,9 +949,9 @@ var ConfigTable = /*#__PURE__*/function (_ConfigGeneric) {
630
949
  }, _i18n["default"].t('ra_All items are filtered out'), /*#__PURE__*/_react["default"].createElement(_material.IconButton, {
631
950
  size: "small",
632
951
  onClick: function onClick() {
633
- return _this7.applyFilter(true);
952
+ return _this11.applyFilter(true);
634
953
  }
635
- }, /*#__PURE__*/_react["default"].createElement(_Close["default"], null)))) : null), schema.help ? /*#__PURE__*/_react["default"].createElement(_FormHelperText["default"], null, this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)) : null);
954
+ }, /*#__PURE__*/_react["default"].createElement(_iconsMaterial.Close, null)))) : null), schema.help ? /*#__PURE__*/_react["default"].createElement(_FormHelperText["default"], null, this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)) : null);
636
955
  }
637
956
  }], [{
638
957
  key: "descendingComparator",