@gridsuite/commons-ui 0.14.7 → 0.15.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.
@@ -37,22 +37,12 @@ var styles = function styles(theme) {
37
37
  alignItems: 'end',
38
38
  padding: '20px',
39
39
  paddingRight: '0px'
40
- },
41
- popper: {
42
- maxWidth: 'fit-content'
43
40
  }
44
41
  };
45
42
  };
46
43
 
47
44
  var useStyles = (0, _styles.makeStyles)(styles);
48
45
 
49
- var PopperWithFitToContent = function PopperWithFitToContent(props) {
50
- return /*#__PURE__*/_react["default"].createElement(_core.Popper, _extends({}, props, {
51
- style: styles.popper,
52
- placement: "bottom-start"
53
- }));
54
- };
55
-
56
46
  var ElementSearchDialog = function ElementSearchDialog(props) {
57
47
  var classes = useStyles();
58
48
  var intl = (0, _reactIntl.useIntl)();
@@ -102,7 +92,6 @@ var ElementSearchDialog = function ElementSearchDialog(props) {
102
92
  }), /*#__PURE__*/_react["default"].createElement(_core.DialogContent, null, /*#__PURE__*/_react["default"].createElement(_lab.Autocomplete, {
103
93
  id: "element-search",
104
94
  forcePopupIcon: false,
105
- PopperComponent: PopperWithFitToContent,
106
95
  open: expanded,
107
96
  onOpen: function onOpen() {
108
97
  setElements([]);
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = void 0;
5
+
6
+ var _overflowableText = _interopRequireDefault(require("./overflowable-text"));
7
+
8
+ exports["default"] = _overflowableText["default"];
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+
12
+ module.exports = exports.default;
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = exports.OverflowableText = void 0;
5
+
6
+ var _react = _interopRequireWildcard(require("react"));
7
+
8
+ var _core = require("@material-ui/core");
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _styles = require("@material-ui/core/styles");
13
+
14
+ var _clsx = _interopRequireDefault(require("clsx"));
15
+
16
+ var _excluded = ["text", "className", "children"];
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
+
20
+ 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); }
21
+
22
+ 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; }
23
+
24
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
25
+
26
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
27
+
28
+ var overflowStyle = function overflowStyle(theme) {
29
+ return {
30
+ overflow: {
31
+ display: 'inline-block',
32
+ whiteSpace: 'nowrap',
33
+ textOverflow: 'ellipsis',
34
+ overflow: 'hidden'
35
+ },
36
+ tooltip: {
37
+ whiteSpace: 'nowrap',
38
+ width: 'fit-content',
39
+ maxWidth: 'fit-content'
40
+ }
41
+ };
42
+ };
43
+
44
+ var useStyles = (0, _styles.makeStyles)(overflowStyle);
45
+
46
+ var OverflowableText = function OverflowableText(_ref) {
47
+ var text = _ref.text,
48
+ className = _ref.className,
49
+ children = _ref.children,
50
+ props = _objectWithoutPropertiesLoose(_ref, _excluded);
51
+
52
+ var element = (0, _react.useRef)();
53
+ var classes = useStyles();
54
+
55
+ var _useState = (0, _react.useState)(false),
56
+ overflowed = _useState[0],
57
+ setOverflowed = _useState[1];
58
+
59
+ var checkOverflow = (0, _react.useCallback)(function () {
60
+ if (!element.current) return;
61
+ setOverflowed(element.current.scrollWidth > element.current.clientWidth);
62
+ }, [setOverflowed, element]);
63
+ (0, _react.useEffect)(function () {
64
+ checkOverflow();
65
+ }, [checkOverflow]);
66
+ return /*#__PURE__*/_react["default"].createElement(_core.Tooltip, {
67
+ title: text || '',
68
+ disableHoverListener: !overflowed,
69
+ classes: {
70
+ tooltip: classes.tooltip
71
+ }
72
+ }, /*#__PURE__*/_react["default"].createElement("div", _extends({}, props, {
73
+ ref: element,
74
+ children: children || text,
75
+ className: (0, _clsx["default"])(className, classes.overflow)
76
+ })));
77
+ };
78
+
79
+ exports.OverflowableText = OverflowableText;
80
+ OverflowableText.propTypes = process.env.NODE_ENV !== "production" ? {
81
+ children: _propTypes["default"].array,
82
+ text: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]).isRequired,
83
+ className: _propTypes["default"].string
84
+ } : {};
85
+ var _default = OverflowableText;
86
+ exports["default"] = _default;
package/lib/index.js CHANGED
@@ -31,6 +31,10 @@ var _ReportViewerDialog2 = _interopRequireDefault(require("./components/ReportVi
31
31
 
32
32
  exports.ReportViewerDialog = _ReportViewerDialog2["default"];
33
33
 
34
+ var _OverflowableText2 = _interopRequireDefault(require("./components/OverflowableText"));
35
+
36
+ exports.OverflowableText = _OverflowableText2["default"];
37
+
34
38
  var _EquipmentType = require("./utils/EquipmentType");
35
39
 
36
40
  exports.EQUIPMENT_TYPE = _EquipmentType.EQUIPMENT_TYPE;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.renderEquipmentForSearchBar = exports.getEquipmentsInfosForSearchBar = exports.EQUIPMENT_TYPE = exports.equipmentStyles = exports.TYPE_TAG_MAX_SIZE = void 0;
4
+ exports.renderEquipmentForSearchBar = exports.getEquipmentsInfosForSearchBar = exports.EQUIPMENT_TYPE = exports.equipmentStyles = exports.VL_TAG_MAX_SIZE = exports.TYPE_TAG_MAX_SIZE = void 0;
5
5
 
6
6
  var _match = _interopRequireDefault(require("autosuggest-highlight/match"));
7
7
 
@@ -13,6 +13,8 @@ var _react = _interopRequireDefault(require("react"));
13
13
 
14
14
  var _TopBar = require("../components/TopBar/TopBar");
15
15
 
16
+ var _OverflowableText = _interopRequireDefault(require("../components/OverflowableText"));
17
+
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
19
 
18
20
  /**
@@ -23,6 +25,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
23
25
  */
24
26
  var TYPE_TAG_MAX_SIZE = '90px';
25
27
  exports.TYPE_TAG_MAX_SIZE = TYPE_TAG_MAX_SIZE;
28
+ var VL_TAG_MAX_SIZE = '100px';
29
+ exports.VL_TAG_MAX_SIZE = VL_TAG_MAX_SIZE;
26
30
 
27
31
  var equipmentStyles = function equipmentStyles(theme) {
28
32
  return {
@@ -48,8 +52,14 @@ var equipmentStyles = function equipmentStyles(theme) {
48
52
  background: 'lightblue'
49
53
  },
50
54
  equipmentVlTag: {
55
+ width: VL_TAG_MAX_SIZE,
56
+ minWidth: VL_TAG_MAX_SIZE,
57
+ maxWidth: VL_TAG_MAX_SIZE,
51
58
  background: 'lightgray',
52
59
  fontStyle: 'italic'
60
+ },
61
+ result: {
62
+ width: '100%'
53
63
  }
54
64
  };
55
65
  }; // Must be equivalent as the back enum
@@ -189,18 +199,22 @@ var renderEquipmentForSearchBar = function renderEquipmentForSearchBar(classes,
189
199
  className: (0, _clsx["default"])(classes.equipmentTag, classes.equipmentTypeTag)
190
200
  }, intl.formatMessage({
191
201
  id: EQUIPMENT_TYPE[element.type].tagLabel
192
- })), /*#__PURE__*/_react["default"].createElement("div", {
193
- className: classes.equipmentOption
194
- }, /*#__PURE__*/_react["default"].createElement("span", null, parts.map(function (part, index) {
202
+ })), /*#__PURE__*/_react["default"].createElement(_OverflowableText["default"], {
203
+ text: parts.map(function (e) {
204
+ return e.text;
205
+ }).join(),
206
+ className: classes.result
207
+ }, parts.map(function (part, index) {
195
208
  return /*#__PURE__*/_react["default"].createElement("span", {
196
209
  key: index,
197
210
  style: {
198
211
  fontWeight: part.highlight ? 'bold' : 'inherit'
199
212
  }
200
213
  }, part.text);
201
- })), element.type !== EQUIPMENT_TYPE.SUBSTATION.name && element.type !== EQUIPMENT_TYPE.VOLTAGE_LEVEL.name && /*#__PURE__*/_react["default"].createElement("span", {
214
+ })), element.type !== EQUIPMENT_TYPE.SUBSTATION.name && element.type !== EQUIPMENT_TYPE.VOLTAGE_LEVEL.name && /*#__PURE__*/_react["default"].createElement(_OverflowableText["default"], {
215
+ text: element.voltageLevelLabel,
202
216
  className: (0, _clsx["default"])(classes.equipmentTag, classes.equipmentVlTag)
203
- }, element.voltageLevelLabel)));
217
+ }));
204
218
  };
205
219
  };
206
220
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gridsuite/commons-ui",
3
- "version": "0.14.7",
3
+ "version": "0.15.0",
4
4
  "description": "common react components for gridsuite applications",
5
5
  "main": "lib/index.js",
6
6
  "files": [