@gridsuite/commons-ui 0.29.2 → 0.30.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.
@@ -21,8 +21,6 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
21
21
 
22
22
  function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
23
23
 
24
- var TERM_MIN_SIZE_BEFORE_SEARCH = 3;
25
-
26
24
  var ElementSearchDialog = function ElementSearchDialog(props) {
27
25
  var intl = (0, _reactIntl.useIntl)();
28
26
  var open = props.open,
@@ -48,7 +46,7 @@ var ElementSearchDialog = function ElementSearchDialog(props) {
48
46
  }, [elementsFound]);
49
47
 
50
48
  var handleSearchTermChange = function handleSearchTermChange(term) {
51
- if (term.length >= TERM_MIN_SIZE_BEFORE_SEARCH) {
49
+ if (term) {
52
50
  setLoading(true);
53
51
  onSearchTermChange(term);
54
52
  setExpanded(true);
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = exports.ColumnHeader = void 0;
5
+
6
+ var _react = _interopRequireDefault(require("react"));
7
+
8
+ var _clsx = _interopRequireDefault(require("clsx"));
9
+
10
+ var _styles = require("@mui/styles");
11
+
12
+ var _FilterAltOutlined = _interopRequireDefault(require("@mui/icons-material/FilterAltOutlined"));
13
+
14
+ var _ArrowUpward = _interopRequireDefault(require("@mui/icons-material/ArrowUpward"));
15
+
16
+ var _ArrowDownward = _interopRequireDefault(require("@mui/icons-material/ArrowDownward"));
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
+
20
+ /**
21
+ * Copyright (c) 2022, RTE (http://www.rte-france.com)
22
+ * This Source Code Form is subject to the terms of the Mozilla Public
23
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
24
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
25
+ */
26
+ var useStyles = (0, _styles.makeStyles)(function (theme) {
27
+ return {
28
+ label: {
29
+ fontWeight: 'bold',
30
+ fontSize: '0.875rem' // to mimic TableCellRoot 'binding'
31
+
32
+ },
33
+ divFlex: {
34
+ display: 'flex',
35
+ flexDirection: 'row',
36
+ alignItems: 'center',
37
+ height: '100%'
38
+ },
39
+ divNum: {
40
+ flexDirection: 'row-reverse',
41
+ textAlign: 'right'
42
+ },
43
+ sortDiv: {
44
+ display: 'flex',
45
+ flexDirection: 'column',
46
+ alignItems: 'center'
47
+ },
48
+ sortButton: {
49
+ fill: 'currentcolor'
50
+ },
51
+ filterButton: {
52
+ stroke: 'currentcolor'
53
+ },
54
+ filterTooLossy: {
55
+ stroke: theme.palette.secondary.main
56
+ },
57
+ transparent: {
58
+ opacity: 0
59
+ },
60
+ hovered: {
61
+ opacity: 0.5
62
+ }
63
+ };
64
+ }); // Shows an arrow pointing to smaller value when sorting is active.
65
+ // signedRank of 0 means no sorting, we only show the arrow on hovering of the header,
66
+ // in the same direction as it will get if clicked (once).
67
+ // signedRank > 0 means sorted by ascending value from lower indices to higher indices
68
+ // so lesser values are at top, so the upward arrow
69
+
70
+ var SortButton = function SortButton(props) {
71
+ var classes = useStyles();
72
+ var sortRank = Math.abs(props.signedRank);
73
+ var visibilityClass = !props.signedRank && (props.headerHovered ? classes.hovered : classes.transparent);
74
+ return /*#__PURE__*/_react["default"].createElement("div", {
75
+ className: (0, _clsx["default"])(classes.sortDiv),
76
+ onClick: props.onClick
77
+ }, props.signedRank >= 0 ? /*#__PURE__*/_react["default"].createElement(_ArrowUpward["default"], {
78
+ className: (0, _clsx["default"])(visibilityClass)
79
+ }) : /*#__PURE__*/_react["default"].createElement(_ArrowDownward["default"], {
80
+ className: (0, _clsx["default"])(visibilityClass)
81
+ }), sortRank > 1 && !props.hovered && /*#__PURE__*/_react["default"].createElement("sub", null, sortRank));
82
+ };
83
+
84
+ var FilterButton = function FilterButton(props) {
85
+ var classes = useStyles();
86
+ var visibilityClass = !props.filterLevel && (props.headerHovered ? classes.hovered : classes.transparent);
87
+ return /*#__PURE__*/_react["default"].createElement(_FilterAltOutlined["default"], {
88
+ onClick: props.onClick,
89
+ className: (0, _clsx["default"])(classes.filterButton, props.filterLevel > 1 && classes.filterTooLossy, visibilityClass)
90
+ });
91
+ };
92
+
93
+ var ColumnHeader = _react["default"].forwardRef(function (props, ref) {
94
+ var className = props.className,
95
+ label = props.label,
96
+ numeric = props.numeric,
97
+ sortSignedRank = props.sortSignedRank,
98
+ filterLevel = props.filterLevel,
99
+ onSortClick = props.onSortClick,
100
+ onFilterClick = props.onFilterClick,
101
+ onContextMenu = props.onContextMenu,
102
+ style = props.style;
103
+ var classes = useStyles();
104
+
105
+ var _React$useState = _react["default"].useState(),
106
+ hovered = _React$useState[0],
107
+ setHovered = _React$useState[1];
108
+
109
+ var onHover = _react["default"].useCallback(function (evt) {
110
+ setHovered(evt.type === 'mouseenter');
111
+ }, []);
112
+
113
+ var handleFilterClick = _react["default"].useMemo(function () {
114
+ if (!onFilterClick) return undefined;
115
+ return function (evt) {
116
+ onFilterClick(evt, evt.target.parentNode.parentNode);
117
+ };
118
+ }, [onFilterClick]);
119
+
120
+ return /*#__PURE__*/_react["default"].createElement("div", {
121
+ onMouseEnter: onHover,
122
+ onMouseLeave: onHover,
123
+ className: (0, _clsx["default"])(classes.divFlex, numeric && classes.divNum, className),
124
+ style: style,
125
+ onContextMenu: onContextMenu
126
+ }, /*#__PURE__*/_react["default"].createElement("div", {
127
+ ref: ref,
128
+ className: (0, _clsx["default"])(classes.label)
129
+ }, label), onSortClick && /*#__PURE__*/_react["default"].createElement(SortButton, {
130
+ headerHovered: hovered,
131
+ onClick: onSortClick,
132
+ signedRank: sortSignedRank
133
+ }), handleFilterClick && /*#__PURE__*/_react["default"].createElement(FilterButton, {
134
+ headerHovered: hovered,
135
+ onClick: handleFilterClick,
136
+ filterLevel: filterLevel
137
+ }));
138
+ });
139
+
140
+ exports.ColumnHeader = ColumnHeader;
141
+ var _default = ColumnHeader;
142
+ exports["default"] = _default;