@gridsuite/commons-ui 0.14.4 → 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;
@@ -17,7 +17,8 @@ var equipment_search_en = {
17
17
  'equipment_search/hvdcLinkTag': 'HVDC LINK',
18
18
  'equipment_search/hvdcStationTag': 'HVDC STATION',
19
19
  'equipment_search/voltageLevelTag': 'VOLTAGE LEVEL',
20
- 'equipment_search/substationTag': 'SUBSTATION'
20
+ 'equipment_search/substationTag': 'SUBSTATION',
21
+ 'equipment_search/busTag': 'BUS'
21
22
  };
22
23
  var _default = equipment_search_en;
23
24
  exports["default"] = _default;
@@ -17,7 +17,8 @@ var equipment_search_fr = {
17
17
  'equipment_search/hvdcLinkTag': 'LIAISON HVDC',
18
18
  'equipment_search/hvdcStationTag': 'STATION HVDC',
19
19
  'equipment_search/voltageLevelTag': 'POSTE',
20
- 'equipment_search/substationTag': 'SITE'
20
+ 'equipment_search/substationTag': 'SITE',
21
+ 'equipment_search/busTag': 'NOEUD'
21
22
  };
22
23
  var _default = equipment_search_fr;
23
24
  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;
@@ -10,12 +10,8 @@ var _LibraryBooksOutlined = _interopRequireDefault(require("@material-ui/icons/L
10
10
 
11
11
  var _Description = _interopRequireDefault(require("@material-ui/icons/Description"));
12
12
 
13
- var _PanTool = _interopRequireDefault(require("@material-ui/icons/PanTool"));
14
-
15
13
  var _FilterList = _interopRequireDefault(require("@material-ui/icons/FilterList"));
16
14
 
17
- var _Filter = _interopRequireDefault(require("@material-ui/icons/Filter"));
18
-
19
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
20
16
 
21
17
  /**
@@ -28,9 +24,7 @@ var elementType = {
28
24
  DIRECTORY: 'DIRECTORY',
29
25
  STUDY: 'STUDY',
30
26
  FILTER: 'FILTER',
31
- SCRIPT: 'SCRIPT',
32
- SCRIPT_CONTINGENCY_LIST: 'SCRIPT_CONTINGENCY_LIST',
33
- FILTERS_CONTINGENCY_LIST: 'FILTERS_CONTINGENCY_LIST'
27
+ CONTINGENCY_LIST: 'CONTINGENCY_LIST'
34
28
  };
35
29
  exports.elementType = elementType;
36
30
 
@@ -41,26 +35,16 @@ function getFileIcon(type, theme) {
41
35
  className: theme
42
36
  });
43
37
 
44
- case elementType.SCRIPT_CONTINGENCY_LIST:
38
+ case elementType.CONTINGENCY_LIST:
45
39
  return /*#__PURE__*/_react["default"].createElement(_Description["default"], {
46
40
  className: theme
47
41
  });
48
42
 
49
- case elementType.FILTERS_CONTINGENCY_LIST:
50
- return /*#__PURE__*/_react["default"].createElement(_PanTool["default"], {
51
- className: theme
52
- });
53
-
54
43
  case elementType.FILTER:
55
44
  return /*#__PURE__*/_react["default"].createElement(_FilterList["default"], {
56
45
  className: theme
57
46
  });
58
47
 
59
- case elementType.SCRIPT:
60
- return /*#__PURE__*/_react["default"].createElement(_Filter["default"], {
61
- className: theme
62
- });
63
-
64
48
  case elementType.DIRECTORY:
65
49
  // to easily use in TreeView we do not give icons for directories
66
50
  return;
@@ -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,11 +52,17 @@ 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
- }; // Must be equivalent as the back enum (Powsybl)
65
+ }; // Must be equivalent as the back enum
56
66
 
57
67
 
58
68
  exports.equipmentStyles = equipmentStyles;
@@ -127,19 +137,24 @@ var EQUIPMENT_TYPE = {
127
137
  sortOrder: 13,
128
138
  tagLabel: 'equipment_search/busbarSectionTag'
129
139
  },
140
+ CONFIGURED_BUS: {
141
+ name: 'CONFIGURED_BUS',
142
+ sortOrder: 14,
143
+ tagLabel: 'equipment_search/busTag'
144
+ },
130
145
  BREAKER: {
131
146
  name: 'BREAKER',
132
- sortOrder: 14,
147
+ sortOrder: 15,
133
148
  tagLabel: 'equipment_search/switchTag'
134
149
  },
135
150
  DISCONNECTOR: {
136
151
  name: 'DISCONNECTOR',
137
- sortOrder: 15,
152
+ sortOrder: 16,
138
153
  tagLabel: 'equipment_search/switchTag'
139
154
  },
140
155
  LOAD_BREAK_SWITCH: {
141
156
  name: 'LOAD_BREAK_SWITCH',
142
- sortOrder: 16,
157
+ sortOrder: 17,
143
158
  tagLabel: 'equipment_search/switchTag'
144
159
  }
145
160
  };
@@ -152,12 +167,13 @@ var getEquipmentsInfosForSearchBar = function getEquipmentsInfosForSearchBar(equ
152
167
  label: label,
153
168
  id: e.id,
154
169
  type: e.type
155
- }] : e.voltageLevelsIds.map(function (vli) {
170
+ }] : e.voltageLevels.map(function (vli) {
156
171
  return {
157
172
  label: label,
158
173
  id: e.id,
159
174
  type: e.type,
160
- voltageLevelId: vli
175
+ voltageLevelLabel: equipmentLabelling ? vli.name : vli.id,
176
+ voltageLevelId: vli.id
161
177
  };
162
178
  });
163
179
  }).sort(sortEquipments);
@@ -172,7 +188,10 @@ var sortEquipments = function sortEquipments(a, b) {
172
188
  var renderEquipmentForSearchBar = function renderEquipmentForSearchBar(classes, intl) {
173
189
  return function (element, _ref) {
174
190
  var inputValue = _ref.inputValue;
175
- var matches = (0, _match["default"])(element.label, inputValue);
191
+ var matches = (0, _match["default"])(element.label, inputValue, {
192
+ insideWords: true,
193
+ findAllOccurrences: true
194
+ });
176
195
  var parts = (0, _parse["default"])(element.label, matches);
177
196
  return /*#__PURE__*/_react["default"].createElement("div", {
178
197
  className: classes.equipmentOption
@@ -180,18 +199,22 @@ var renderEquipmentForSearchBar = function renderEquipmentForSearchBar(classes,
180
199
  className: (0, _clsx["default"])(classes.equipmentTag, classes.equipmentTypeTag)
181
200
  }, intl.formatMessage({
182
201
  id: EQUIPMENT_TYPE[element.type].tagLabel
183
- })), /*#__PURE__*/_react["default"].createElement("div", {
184
- className: classes.equipmentOption
185
- }, /*#__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) {
186
208
  return /*#__PURE__*/_react["default"].createElement("span", {
187
209
  key: index,
188
210
  style: {
189
211
  fontWeight: part.highlight ? 'bold' : 'inherit'
190
212
  }
191
213
  }, part.text);
192
- })), 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,
193
216
  className: (0, _clsx["default"])(classes.equipmentTag, classes.equipmentVlTag)
194
- }, element.voltageLevelId)));
217
+ }));
195
218
  };
196
219
  };
197
220
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gridsuite/commons-ui",
3
- "version": "0.14.4",
3
+ "version": "0.15.0",
4
4
  "description": "common react components for gridsuite applications",
5
5
  "main": "lib/index.js",
6
6
  "files": [
@@ -20,7 +20,7 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "@svgr/webpack": "^5.4.0",
23
- "autosuggest-highlight": "^3.1.1",
23
+ "autosuggest-highlight": "^3.2.0",
24
24
  "clsx": "^1.0.4",
25
25
  "jwt-decode": "^3.0.0",
26
26
  "memoize-one": "^5.1.1",