@iobroker/adapter-react-v5 4.0.4 → 4.0.5

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.
@@ -19,7 +19,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
19
19
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
20
20
  var _react = _interopRequireWildcard(require("react"));
21
21
  var _propTypes = _interopRequireDefault(require("prop-types"));
22
- var _copyToClipboard = _interopRequireDefault(require("./copy-to-clipboard"));
23
22
  var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles"));
24
23
  var _reactInlinesvg = _interopRequireDefault(require("react-inlinesvg"));
25
24
  var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
@@ -294,6 +293,18 @@ var styles = function styles(theme) {
294
293
  height: SMALL_BUTTON_SIZE
295
294
  },
296
295
  cellIdIconOwn: {},
296
+ cellIdTooltip: {
297
+ fontSize: 14
298
+ },
299
+ cellIdTooltipLink: {
300
+ color: "#7ec2fd",
301
+ "&:hover": {
302
+ color: "#7ec2fd"
303
+ },
304
+ "&:visited": {
305
+ color: "#7ec2fd"
306
+ }
307
+ },
297
308
  cellCopyButton: {
298
309
  width: SMALL_BUTTON_SIZE,
299
310
  height: SMALL_BUTTON_SIZE,
@@ -788,17 +799,17 @@ function getSelectIdIcon(objects, id, imagePrefix) {
788
799
  } else {
789
800
  return null; // '<i class="material-icons iob-list-icon">' + objects[_id_].common.icon + '</i>';
790
801
  }
791
- }
792
-
793
- if (aIcon.startsWith('data:image/svg')) {
794
- src = /*#__PURE__*/_react["default"].createElement(_reactInlinesvg["default"], {
795
- className: "iconOwn",
796
- src: aIcon,
797
- width: 28,
798
- height: 28
799
- });
800
802
  } else {
801
- src = aIcon;
803
+ if (aIcon.startsWith('data:image/svg')) {
804
+ src = /*#__PURE__*/_react["default"].createElement(_reactInlinesvg["default"], {
805
+ className: "iconOwn",
806
+ src: aIcon,
807
+ width: 28,
808
+ height: 28
809
+ });
810
+ } else {
811
+ src = aIcon;
812
+ }
802
813
  }
803
814
  } else {
804
815
  var common = objects[id] && objects[id].common;
@@ -1079,6 +1090,34 @@ function getSystemIcon(objects, id, k, imagePrefix) {
1079
1090
  }
1080
1091
  return icon || null;
1081
1092
  }
1093
+ function getIdFieldTooltip(data, classes, lang) {
1094
+ var _data$obj2, _data$obj2$common;
1095
+ if (data !== null && data !== void 0 && (_data$obj2 = data.obj) !== null && _data$obj2 !== void 0 && (_data$obj2$common = _data$obj2.common) !== null && _data$obj2$common !== void 0 && _data$obj2$common.desc && data.obj.common.desc !== '') {
1096
+ var _data$obj3, _data$obj3$common, _data$obj4, _data$obj4$common, _data$obj5, _data$obj5$common, _tooltip;
1097
+ var tooltip = '';
1098
+ if ((0, _typeof2["default"])(data === null || data === void 0 ? void 0 : (_data$obj3 = data.obj) === null || _data$obj3 === void 0 ? void 0 : (_data$obj3$common = _data$obj3.common) === null || _data$obj3$common === void 0 ? void 0 : _data$obj3$common.desc) === 'object' && data.obj.common.desc[lang] !== undefined) {
1099
+ tooltip = data.obj.common.desc[lang];
1100
+ } else if ((0, _typeof2["default"])(data === null || data === void 0 ? void 0 : (_data$obj4 = data.obj) === null || _data$obj4 === void 0 ? void 0 : (_data$obj4$common = _data$obj4.common) === null || _data$obj4$common === void 0 ? void 0 : _data$obj4$common.desc) === 'object' && data.obj.common.desc['en'] !== undefined) {
1101
+ tooltip = data.obj.common.desc['en'];
1102
+ } else if ((0, _typeof2["default"])(data === null || data === void 0 ? void 0 : (_data$obj5 = data.obj) === null || _data$obj5 === void 0 ? void 0 : (_data$obj5$common = _data$obj5.common) === null || _data$obj5$common === void 0 ? void 0 : _data$obj5$common.desc) === 'object' && data.obj.common.desc[lang] === undefined) {
1103
+ return data.id;
1104
+ } else {
1105
+ tooltip = data.obj.common.desc;
1106
+ }
1107
+ if ((_tooltip = tooltip) !== null && _tooltip !== void 0 && _tooltip.startsWith('http')) {
1108
+ return /*#__PURE__*/_react["default"].createElement("a", {
1109
+ className: _Utils["default"].clsx(classes.cellIdTooltipLink),
1110
+ href: tooltip,
1111
+ target: "_blank",
1112
+ rel: "noreferrer"
1113
+ }, tooltip);
1114
+ }
1115
+ return /*#__PURE__*/_react["default"].createElement("span", {
1116
+ className: _Utils["default"].clsx(classes.cellIdTooltip)
1117
+ }, tooltip);
1118
+ }
1119
+ return data.id;
1120
+ }
1082
1121
  function buildTree(objects, options) {
1083
1122
  options = options || {};
1084
1123
  var imagePrefix = options.imagePrefix || '.';
@@ -3952,7 +3991,7 @@ var ObjectBrowser = /*#__PURE__*/function (_Component) {
3952
3991
  value: function onCopy(e, text) {
3953
3992
  e.stopPropagation();
3954
3993
  e.preventDefault();
3955
- (0, _copyToClipboard["default"])(text, null);
3994
+ _Utils["default"].copyToClipboard(text, null);
3956
3995
  if (text.length < 50) {
3957
3996
  this.setState({
3958
3997
  toast: this.props.t('ra_Copied %s', text)
@@ -3994,7 +4033,19 @@ var ObjectBrowser = /*#__PURE__*/function (_Component) {
3994
4033
  "aria-label": "delete",
3995
4034
  title: this.texts.deleteObject,
3996
4035
  onClick: function onClick() {
3997
- return _this27.props.onObjectDelete(id, !!(item.children && item.children.length), false);
4036
+ // calculate number of children
4037
+ var keys = Object.keys(_this27.objects);
4038
+ keys.sort();
4039
+ var count = 0;
4040
+ var start = "".concat(id, ".");
4041
+ for (var i = 0; i < keys.length; i++) {
4042
+ if (keys[i].startsWith(start)) {
4043
+ count++;
4044
+ } else if (keys[i] > start) {
4045
+ break;
4046
+ }
4047
+ }
4048
+ _this27.props.onObjectDelete(id, !!(item.children && item.children.length), false, count + 1);
3998
4049
  }
3999
4050
  }, /*#__PURE__*/_react["default"].createElement(_Delete["default"], {
4000
4051
  className: classes.cellButtonsButtonIcon
@@ -4041,7 +4092,18 @@ var ObjectBrowser = /*#__PURE__*/function (_Component) {
4041
4092
  "aria-label": "delete",
4042
4093
  onClick: function onClick() {
4043
4094
  var _item$children3, _item$data$obj$common2;
4044
- return _this27.props.onObjectDelete(id, !!((_item$children3 = item.children) !== null && _item$children3 !== void 0 && _item$children3.length), !((_item$data$obj$common2 = item.data.obj.common) !== null && _item$data$obj$common2 !== void 0 && _item$data$obj$common2.dontDelete));
4095
+ var keys = Object.keys(_this27.objects);
4096
+ keys.sort();
4097
+ var count = 0;
4098
+ var start = "".concat(id, ".");
4099
+ for (var i = 0; i < keys.length; i++) {
4100
+ if (keys[i].startsWith(start)) {
4101
+ count++;
4102
+ } else if (keys[i] > start) {
4103
+ break;
4104
+ }
4105
+ }
4106
+ _this27.props.onObjectDelete(id, !!((_item$children3 = item.children) !== null && _item$children3 !== void 0 && _item$children3.length), !((_item$data$obj$common2 = item.data.obj.common) !== null && _item$data$obj$common2 !== void 0 && _item$data$obj$common2.dontDelete), count);
4045
4107
  },
4046
4108
  title: this.texts.deleteObject
4047
4109
  }, /*#__PURE__*/_react["default"].createElement(_Delete["default"], {
@@ -4774,7 +4836,11 @@ var ObjectBrowser = /*#__PURE__*/function (_Component) {
4774
4836
  invertBackground = this.props.themeType === 'dark' ? '#9a9a9a' : '#565656';
4775
4837
  }
4776
4838
  }
4777
- if (!checkColor || this.state.selected.includes(id)) {
4839
+ if (id === 'system') {
4840
+ checkColor = COLOR_NAME_SYSTEM;
4841
+ } else if (id === 'system.adapter') {
4842
+ checkColor = COLOR_NAME_SYSTEM_ADAPTER;
4843
+ } else if (!checkColor || this.state.selected.includes(id)) {
4778
4844
  checkColor = 'inherit';
4779
4845
  }
4780
4846
  var icons = [];
@@ -4910,12 +4976,13 @@ var ObjectBrowser = /*#__PURE__*/function (_Component) {
4910
4976
  }
4911
4977
  }, checkbox, iconFolder), /*#__PURE__*/_react["default"].createElement(_Grid["default"], {
4912
4978
  item: true,
4913
- title: id,
4914
- className: _Utils["default"].clsx(classes.cellIdSpan, invertBackground && classes.invertedBackground),
4915
4979
  style: {
4916
- color: id === 'system' ? COLOR_NAME_SYSTEM : id === 'system.adapter' ? COLOR_NAME_SYSTEM_ADAPTER : checkColor
4917
- }
4918
- }, item.data.name, alias, icons), /*#__PURE__*/_react["default"].createElement("div", {
4980
+ color: checkColor
4981
+ },
4982
+ className: _Utils["default"].clsx(classes.cellIdSpan, invertBackground && classes.invertedBackground)
4983
+ }, /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
4984
+ title: getIdFieldTooltip(item.data, this.props.classes, this.props.lang)
4985
+ }, /*#__PURE__*/_react["default"].createElement("div", null, item.data.name)), alias, icons), /*#__PURE__*/_react["default"].createElement("div", {
4919
4986
  className: _Utils["default"].clsx(classes.grow, invertBackground && classes.invertedBackgroundFlex)
4920
4987
  }), /*#__PURE__*/_react["default"].createElement(_Grid["default"], {
4921
4988
  item: true,
@@ -5874,7 +5941,7 @@ ObjectBrowser.propTypes = {
5874
5941
  modalEditOfAccessControl: _propTypes["default"].func,
5875
5942
  // modal Edit Of Access Control
5876
5943
  onObjectDelete: _propTypes["default"].func,
5877
- // optional function (id, hasChildren, objectExists) { }
5944
+ // optional function (id, hasChildren, objectExists, childrenCount+1) { }
5878
5945
  customFilter: _propTypes["default"].object,
5879
5946
  // optional
5880
5947
  // `{common: {custom: true}}` - show only objects with some custom settings