@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.
- package/lib/components/ElementSearchDialog/element-search-dialog.js +0 -11
- package/lib/components/OverflowableText/index.js +12 -0
- package/lib/components/OverflowableText/overflowable-text.js +86 -0
- package/lib/components/translations/equipment-search-en.js +2 -1
- package/lib/components/translations/equipment-search-fr.js +2 -1
- package/lib/index.js +4 -0
- package/lib/utils/ElementType.js +2 -18
- package/lib/utils/EquipmentType.js +36 -13
- package/package.json +2 -2
|
@@ -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;
|
package/lib/utils/ElementType.js
CHANGED
|
@@ -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
|
-
|
|
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.
|
|
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
|
|
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:
|
|
147
|
+
sortOrder: 15,
|
|
133
148
|
tagLabel: 'equipment_search/switchTag'
|
|
134
149
|
},
|
|
135
150
|
DISCONNECTOR: {
|
|
136
151
|
name: 'DISCONNECTOR',
|
|
137
|
-
sortOrder:
|
|
152
|
+
sortOrder: 16,
|
|
138
153
|
tagLabel: 'equipment_search/switchTag'
|
|
139
154
|
},
|
|
140
155
|
LOAD_BREAK_SWITCH: {
|
|
141
156
|
name: 'LOAD_BREAK_SWITCH',
|
|
142
|
-
sortOrder:
|
|
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.
|
|
170
|
+
}] : e.voltageLevels.map(function (vli) {
|
|
156
171
|
return {
|
|
157
172
|
label: label,
|
|
158
173
|
id: e.id,
|
|
159
174
|
type: e.type,
|
|
160
|
-
|
|
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("
|
|
184
|
-
|
|
185
|
-
|
|
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("
|
|
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
|
-
}
|
|
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.
|
|
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.
|
|
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",
|