@insticc/react-datagrid-2 1.0.17 → 1.0.18
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/package.json +42 -39
- package/build/ActionButton.js +0 -201
- package/build/ColumnFilter.js +0 -105
- package/build/ExportActions.js +0 -368
- package/build/styles/styles.css +0 -15
- package/build/utils/filters.js +0 -63
package/package.json
CHANGED
|
@@ -1,39 +1,42 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@insticc/react-datagrid-2",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "",
|
|
5
|
-
"main": "build/index.js",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"build": "babel src -d build --copy-files"
|
|
8
|
-
},
|
|
9
|
-
"repository": {
|
|
10
|
-
"type": "git",
|
|
11
|
-
"url": "https://set1.insticc.org/Bonobo.Git.Server/React-Datagrid-2.git"
|
|
12
|
-
},
|
|
13
|
-
"author": "Bernardo Lagos",
|
|
14
|
-
"license": "ISC",
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"@
|
|
26
|
-
"@
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@insticc/react-datagrid-2",
|
|
3
|
+
"version": "1.0.18",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "build/index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"build": "babel src -d build --copy-files"
|
|
8
|
+
},
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "https://set1.insticc.org/Bonobo.Git.Server/React-Datagrid-2.git"
|
|
12
|
+
},
|
|
13
|
+
"author": "Bernardo Lagos",
|
|
14
|
+
"license": "ISC",
|
|
15
|
+
"peerDependencies": {
|
|
16
|
+
"react": "^18.2.0",
|
|
17
|
+
"react-dom": "^18.2.0",
|
|
18
|
+
"semantic-ui-react": "^2.1.5",
|
|
19
|
+
"react-bootstrap": "^2.10.2",
|
|
20
|
+
"semantic-ui-css": "^2.5.0",
|
|
21
|
+
"bootstrap": "^5.3.3",
|
|
22
|
+
"prop-types": "^15.6.1"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@babel/cli": "^7.26.4",
|
|
26
|
+
"@babel/core": "^7.26.0",
|
|
27
|
+
"@babel/preset-env": "^7.26.0",
|
|
28
|
+
"@babel/preset-react": "^7.26.3"
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"@emotion/react": "^11.11.4",
|
|
32
|
+
"@emotion/styled": "^11.11.5",
|
|
33
|
+
"@mui/icons-material": "^5.15.15",
|
|
34
|
+
"@mui/x-data-grid": "^7.1.0",
|
|
35
|
+
"@mui/x-date-pickers": "^7.1.0",
|
|
36
|
+
"@mui/material": "^5.15.15",
|
|
37
|
+
"jspdf": "^2.5.1",
|
|
38
|
+
"jspdf-autotable": "^3.8.2",
|
|
39
|
+
"material-react-table": "^2.12.1",
|
|
40
|
+
"xlsx": "^0.18.5"
|
|
41
|
+
}
|
|
42
|
+
}
|
package/build/ActionButton.js
DELETED
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports["default"] = void 0;
|
|
8
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
-
var _semanticUiReact = require("semantic-ui-react");
|
|
11
|
-
var _material = require("@mui/material");
|
|
12
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
13
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
14
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
15
|
-
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
16
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
17
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
18
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
19
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
20
|
-
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
21
|
-
var ActionButton = function ActionButton(_ref) {
|
|
22
|
-
var table = _ref.table,
|
|
23
|
-
name = _ref.name,
|
|
24
|
-
tooltip = _ref.tooltip,
|
|
25
|
-
onClick = _ref.onClick,
|
|
26
|
-
_ref$color = _ref.color,
|
|
27
|
-
color = _ref$color === void 0 ? 'blue' : _ref$color,
|
|
28
|
-
icon = _ref.icon,
|
|
29
|
-
_ref$selectionMode = _ref.selectionMode,
|
|
30
|
-
selectionMode = _ref$selectionMode === void 0 ? 'always' : _ref$selectionMode,
|
|
31
|
-
_ref$confirmMessage = _ref.confirmMessage,
|
|
32
|
-
confirmMessage = _ref$confirmMessage === void 0 ? 'Are you sure you want to perform this action?' : _ref$confirmMessage,
|
|
33
|
-
_ref$hasConfirmMessag = _ref.hasConfirmMessage,
|
|
34
|
-
hasConfirmMessage = _ref$hasConfirmMessag === void 0 ? true : _ref$hasConfirmMessag;
|
|
35
|
-
var _useState = (0, _react.useState)(false),
|
|
36
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
37
|
-
enableConfirmMessage = _useState2[0],
|
|
38
|
-
setEnableConfirmMessage = _useState2[1];
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Renders the action button icon.
|
|
42
|
-
* If `icon` is a string, it will render it as an image.
|
|
43
|
-
* Otherwise, it will render the provided React element.
|
|
44
|
-
* @returns the action button icon.
|
|
45
|
-
*/
|
|
46
|
-
var renderIcon = function renderIcon() {
|
|
47
|
-
if (typeof icon === 'string') {
|
|
48
|
-
return /*#__PURE__*/_react["default"].createElement("img", {
|
|
49
|
-
src: icon,
|
|
50
|
-
alt: name,
|
|
51
|
-
color: color,
|
|
52
|
-
height: 15,
|
|
53
|
-
style: {
|
|
54
|
-
marginRight: '.2em'
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
} else {
|
|
58
|
-
return icon;
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Determines if the action button should be disabled.
|
|
64
|
-
* The button will be disabled based on the selection mode provided and the number of selected rows.
|
|
65
|
-
* - `single`: The button is enabled only when exactly one row is selected.
|
|
66
|
-
* - `multi`: The button is enabled when one or more rows are selected.
|
|
67
|
-
* - `always`: The button is never disabled.
|
|
68
|
-
* @param {Object} table - The data grid table instance.
|
|
69
|
-
* @returns {boolean} `true` if the action button should be disabled; otherwise, `false`.
|
|
70
|
-
*/
|
|
71
|
-
var shouldDisableActionButton = function shouldDisableActionButton(table) {
|
|
72
|
-
var selectedRowCount = table.getSelectedRowModel().flatRows.length;
|
|
73
|
-
if (selectionMode === 'single') {
|
|
74
|
-
return selectedRowCount !== 1;
|
|
75
|
-
} else if (selectionMode === 'multi') {
|
|
76
|
-
return selectedRowCount < 1;
|
|
77
|
-
} else {
|
|
78
|
-
return false;
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Handles the confirmation action.
|
|
84
|
-
* If the confirmation message is enabled, it will close the confirmation window and proceed with the action.
|
|
85
|
-
*/
|
|
86
|
-
var handleConfirm = function handleConfirm() {
|
|
87
|
-
setEnableConfirmMessage(false);
|
|
88
|
-
handleClick(table);
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Executes the action associated with the button.
|
|
93
|
-
* It retrieves the selected rows based on the selection mode and passes them to the `onClick` callback.
|
|
94
|
-
* @param {Object} table - The data grid table instance.
|
|
95
|
-
*/
|
|
96
|
-
var handleClick = function handleClick(table) {
|
|
97
|
-
var rows = getSelectedRows(table);
|
|
98
|
-
onClick(rows);
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Retrieves the data of the selected rows based on the selection mode.
|
|
103
|
-
* - `single`: Returns the data of the first selected row.
|
|
104
|
-
* - `multi`: Returns the data of all selected rows.
|
|
105
|
-
* - `always`: Returns the data of all rows in the current view.
|
|
106
|
-
* @param {Object} table - The data grid table instance.
|
|
107
|
-
* @returns {Object|Array} The data of the selected rows.
|
|
108
|
-
*/
|
|
109
|
-
var getSelectedRows = function getSelectedRows(table) {
|
|
110
|
-
var selectedRows = table.getSelectedRowModel().flatRows;
|
|
111
|
-
if (selectionMode === 'single') {
|
|
112
|
-
var _selectedRows$;
|
|
113
|
-
return (_selectedRows$ = selectedRows[0]) === null || _selectedRows$ === void 0 ? void 0 : _selectedRows$.original;
|
|
114
|
-
} else if (selectionMode === 'multi') {
|
|
115
|
-
return selectedRows.map(function (row) {
|
|
116
|
-
return row.original;
|
|
117
|
-
});
|
|
118
|
-
} else {
|
|
119
|
-
return table.getPrePaginationRowModel().rows.map(function (row) {
|
|
120
|
-
return row.original;
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
|
|
125
|
-
title: tooltip || name,
|
|
126
|
-
arrow: true
|
|
127
|
-
}, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button, {
|
|
128
|
-
disabled: shouldDisableActionButton(table),
|
|
129
|
-
onClick: function onClick() {
|
|
130
|
-
return hasConfirmMessage ? setEnableConfirmMessage(true) : handleConfirm();
|
|
131
|
-
},
|
|
132
|
-
icon: renderIcon(),
|
|
133
|
-
content: name,
|
|
134
|
-
basic: true,
|
|
135
|
-
color: color,
|
|
136
|
-
style: {
|
|
137
|
-
display: 'flex',
|
|
138
|
-
height: '40px',
|
|
139
|
-
alignItems: 'center',
|
|
140
|
-
justifyContent: 'center'
|
|
141
|
-
}
|
|
142
|
-
}))), /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Confirm, {
|
|
143
|
-
style: {
|
|
144
|
-
height: 'fit-content',
|
|
145
|
-
textAlign: 'center',
|
|
146
|
-
top: 'auto',
|
|
147
|
-
right: 'auto',
|
|
148
|
-
left: 'auto',
|
|
149
|
-
bottom: 'auto',
|
|
150
|
-
fontSize: '14px'
|
|
151
|
-
},
|
|
152
|
-
open: enableConfirmMessage,
|
|
153
|
-
size: "mini",
|
|
154
|
-
content: confirmMessage,
|
|
155
|
-
cancelButton: /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button, {
|
|
156
|
-
content: "No",
|
|
157
|
-
size: "small",
|
|
158
|
-
color: "red",
|
|
159
|
-
icon: "cancel"
|
|
160
|
-
}),
|
|
161
|
-
confirmButton: /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button, {
|
|
162
|
-
content: "Yes",
|
|
163
|
-
size: "small",
|
|
164
|
-
color: "green",
|
|
165
|
-
icon: "check"
|
|
166
|
-
}),
|
|
167
|
-
onCancel: function onCancel() {
|
|
168
|
-
return setEnableConfirmMessage(false);
|
|
169
|
-
},
|
|
170
|
-
onConfirm: function onConfirm() {
|
|
171
|
-
return handleConfirm();
|
|
172
|
-
}
|
|
173
|
-
}));
|
|
174
|
-
};
|
|
175
|
-
ActionButton.propTypes = {
|
|
176
|
-
table: _propTypes["default"].object.isRequired,
|
|
177
|
-
// the data grid table
|
|
178
|
-
name: _propTypes["default"].string.isRequired,
|
|
179
|
-
// the name of the action button
|
|
180
|
-
tooltip: _propTypes["default"].string,
|
|
181
|
-
// the tooltip for the action button
|
|
182
|
-
onClick: _propTypes["default"].func.isRequired,
|
|
183
|
-
// the callback to be called when the action button is clicked
|
|
184
|
-
color: _propTypes["default"].oneOf(['blue', 'red', 'green', 'yellow', 'orange', 'black', 'grey', 'purple', 'teal', 'brown', 'violet', 'purple', 'olive', 'pink']),
|
|
185
|
-
// the color of the action button
|
|
186
|
-
icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].string]).isRequired,
|
|
187
|
-
// the action button icon
|
|
188
|
-
selectionMode: _propTypes["default"].oneOf(['single', 'multi', 'always']),
|
|
189
|
-
// the action button selection mode
|
|
190
|
-
confirmMessage: _propTypes["default"].string,
|
|
191
|
-
// the action confirming message
|
|
192
|
-
hasConfirmMessage: _propTypes["default"].bool // defines whether there is a confirm message for the action button
|
|
193
|
-
};
|
|
194
|
-
|
|
195
|
-
// ActionButton.defaultProps = {
|
|
196
|
-
// color: 'blue',
|
|
197
|
-
// selectionMode: 'always',
|
|
198
|
-
// confirmMessage: 'Are you sure you want to perform this action?',
|
|
199
|
-
// hasConfirmMessage: true,
|
|
200
|
-
// }
|
|
201
|
-
var _default = exports["default"] = ActionButton;
|
package/build/ColumnFilter.js
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
var _react = _interopRequireDefault(require("react"));
|
|
8
|
-
var _material = require("@mui/material");
|
|
9
|
-
var _semanticUiReact = require("semantic-ui-react");
|
|
10
|
-
var _reactBootstrap = require("react-bootstrap");
|
|
11
|
-
var _filters = require("./utils/filters");
|
|
12
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
13
|
-
var ColumnFilter = function ColumnFilter(props) {
|
|
14
|
-
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_material.MenuItem, {
|
|
15
|
-
key: "regex",
|
|
16
|
-
onClick: function onClick() {
|
|
17
|
-
return props.onSelectFilterMode('regex');
|
|
18
|
-
}
|
|
19
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
20
|
-
style: {
|
|
21
|
-
display: 'flex',
|
|
22
|
-
justifyContent: 'space-between',
|
|
23
|
-
width: '100%'
|
|
24
|
-
}
|
|
25
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
26
|
-
style: {
|
|
27
|
-
display: 'flex',
|
|
28
|
-
gap: '5px'
|
|
29
|
-
}
|
|
30
|
-
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
31
|
-
style: {
|
|
32
|
-
minWidth: '36px'
|
|
33
|
-
}
|
|
34
|
-
}, /*#__PURE__*/_react["default"].createElement("b", null, "(.*)")), /*#__PURE__*/_react["default"].createElement("span", null, "Regex")), /*#__PURE__*/_react["default"].createElement(_reactBootstrap.OverlayTrigger, {
|
|
35
|
-
placement: "right-start",
|
|
36
|
-
key: "regex-tooltip",
|
|
37
|
-
overlay: /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Tooltip, {
|
|
38
|
-
id: "tooltip-regex",
|
|
39
|
-
style: {
|
|
40
|
-
zIndex: 99999
|
|
41
|
-
}
|
|
42
|
-
}, _filters.regexFilterTooltip)
|
|
43
|
-
}, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Icon, {
|
|
44
|
-
name: "info circle",
|
|
45
|
-
fitted: true
|
|
46
|
-
})))), /*#__PURE__*/_react["default"].createElement(_material.MenuItem, {
|
|
47
|
-
key: "logical",
|
|
48
|
-
onClick: function onClick() {
|
|
49
|
-
return props.onSelectFilterMode('logical');
|
|
50
|
-
}
|
|
51
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
52
|
-
style: {
|
|
53
|
-
display: 'flex',
|
|
54
|
-
justifyContent: 'space-between',
|
|
55
|
-
width: '100%'
|
|
56
|
-
}
|
|
57
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
58
|
-
style: {
|
|
59
|
-
display: 'flex',
|
|
60
|
-
gap: '5px'
|
|
61
|
-
}
|
|
62
|
-
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
63
|
-
style: {
|
|
64
|
-
minWidth: '36px'
|
|
65
|
-
}
|
|
66
|
-
}, /*#__PURE__*/_react["default"].createElement("b", null, "\u03A8")), /*#__PURE__*/_react["default"].createElement("span", null, "Logical")), /*#__PURE__*/_react["default"].createElement(_reactBootstrap.OverlayTrigger, {
|
|
67
|
-
placement: "right-start",
|
|
68
|
-
key: "logical-tooltip",
|
|
69
|
-
overlay: /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Tooltip, {
|
|
70
|
-
id: "tooltip-logical",
|
|
71
|
-
style: {
|
|
72
|
-
zIndex: 99999
|
|
73
|
-
}
|
|
74
|
-
}, _filters.logicalFilterTooltip)
|
|
75
|
-
}, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Icon, {
|
|
76
|
-
name: "info circle",
|
|
77
|
-
fitted: true
|
|
78
|
-
})))), /*#__PURE__*/_react["default"].createElement(_material.Divider, {
|
|
79
|
-
style: {
|
|
80
|
-
borderColor: 'rgba(0, 0, 0, 0.51)'
|
|
81
|
-
}
|
|
82
|
-
}), props.filterOptions.map(function (filter, index) {
|
|
83
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
84
|
-
key: filter.option
|
|
85
|
-
}, /*#__PURE__*/_react["default"].createElement(_material.MenuItem, {
|
|
86
|
-
onClick: function onClick() {
|
|
87
|
-
return props.onSelectFilterMode(filter.option);
|
|
88
|
-
}
|
|
89
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
90
|
-
style: {
|
|
91
|
-
display: 'flex',
|
|
92
|
-
gap: '5px'
|
|
93
|
-
}
|
|
94
|
-
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
95
|
-
style: {
|
|
96
|
-
minWidth: '36px'
|
|
97
|
-
}
|
|
98
|
-
}, /*#__PURE__*/_react["default"].createElement("b", null, filter.symbol)), /*#__PURE__*/_react["default"].createElement("span", null, filter.label))), filter.divider && /*#__PURE__*/_react["default"].createElement(_material.Divider, {
|
|
99
|
-
style: {
|
|
100
|
-
borderColor: 'rgba(0, 0, 0, 0.51)'
|
|
101
|
-
}
|
|
102
|
-
}));
|
|
103
|
-
}));
|
|
104
|
-
};
|
|
105
|
-
var _default = exports["default"] = ColumnFilter;
|
package/build/ExportActions.js
DELETED
|
@@ -1,368 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
var _material = require("@mui/material");
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _semanticUiReact = require("semantic-ui-react");
|
|
10
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
var XLSX = _interopRequireWildcard(require("xlsx"));
|
|
12
|
-
var _jspdf = require("jspdf");
|
|
13
|
-
var _jspdfAutotable = _interopRequireDefault(require("jspdf-autotable"));
|
|
14
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
15
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
16
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
17
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
18
|
-
var ExportActions = function ExportActions(props) {
|
|
19
|
-
/**
|
|
20
|
-
* Exports the data grid data to an excel file.
|
|
21
|
-
* @returns Error if the data is invalid or empty.
|
|
22
|
-
*/
|
|
23
|
-
var handleExcelExportData = function handleExcelExportData() {
|
|
24
|
-
var data = props.data;
|
|
25
|
-
if (!Array.isArray(data) || data.length === 0) {
|
|
26
|
-
console.log('Invalid data format or empty data array');
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
var fieldNames = Object.keys(data[0]);
|
|
30
|
-
var dataArray = [fieldNames];
|
|
31
|
-
data.forEach(function (item) {
|
|
32
|
-
var rowData = [];
|
|
33
|
-
fieldNames.forEach(function (fieldName) {
|
|
34
|
-
var value = item[fieldName];
|
|
35
|
-
if (_typeof(value) === 'object' && value !== null) {
|
|
36
|
-
rowData.push(JSON.stringify(value));
|
|
37
|
-
} else {
|
|
38
|
-
rowData.push(value);
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
dataArray.push(rowData);
|
|
42
|
-
});
|
|
43
|
-
var worksheet = XLSX.utils.aoa_to_sheet(dataArray);
|
|
44
|
-
var workbook = XLSX.utils.book_new();
|
|
45
|
-
XLSX.utils.book_append_sheet(workbook, worksheet, 'All Data');
|
|
46
|
-
XLSX.writeFile(workbook, 'all_data.xlsx');
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Exports the rows based on the type provided to an excel file.
|
|
51
|
-
* @param {Object|Array} rows - the rows to export.
|
|
52
|
-
* @param {string} type - the type of export to be performed.
|
|
53
|
-
*/
|
|
54
|
-
var handleExcelExportRows = function handleExcelExportRows(rows, type) {
|
|
55
|
-
var rowData = rows.map(function (row) {
|
|
56
|
-
return row._valuesCache;
|
|
57
|
-
});
|
|
58
|
-
var fileName = getFileNameByType(type);
|
|
59
|
-
var worksheet = XLSX.utils.json_to_sheet(rowData);
|
|
60
|
-
var workbook = XLSX.utils.book_new();
|
|
61
|
-
XLSX.utils.book_append_sheet(workbook, worksheet, 'Rows Data');
|
|
62
|
-
XLSX.writeFile(workbook, "".concat(fileName, ".xlsx"));
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Exports the data grid data to a pdf file.
|
|
67
|
-
* @returns Error if the data is invalid or empty.
|
|
68
|
-
*/
|
|
69
|
-
var handlePdfExportData = function handlePdfExportData() {
|
|
70
|
-
var data = props.data;
|
|
71
|
-
if (!Array.isArray(data) || data.length === 0) {
|
|
72
|
-
console.log('Invalid data format or empty data array');
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
var doc = new _jspdf.jsPDF();
|
|
76
|
-
var fileName = getFileNameByType('all');
|
|
77
|
-
var tableData = data.map(function (item) {
|
|
78
|
-
return Object.values(item);
|
|
79
|
-
});
|
|
80
|
-
var tableHeaders = Object.keys(data[0]);
|
|
81
|
-
(0, _jspdfAutotable["default"])(doc, {
|
|
82
|
-
head: [tableHeaders],
|
|
83
|
-
body: tableData
|
|
84
|
-
});
|
|
85
|
-
doc.save("".concat(fileName, ".pdf"));
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Exports the rows based on the type provided to a pdf file.
|
|
90
|
-
* @param {Object|Array} rows - the rows to export.
|
|
91
|
-
* @param {string} type - the type of export to be performed.
|
|
92
|
-
*/
|
|
93
|
-
// const handlePdfExportRows = (rows, type) => {
|
|
94
|
-
// const doc = new jsPDF();
|
|
95
|
-
// const fileName = getFileNameByType(type);
|
|
96
|
-
// const tableData = rows.map((row) => Object.values(row.original));
|
|
97
|
-
// const tableHeaders = props.columns.map((c) => c.header);
|
|
98
|
-
|
|
99
|
-
// autoTable(doc, {
|
|
100
|
-
// head: [tableHeaders],
|
|
101
|
-
// body: tableData,
|
|
102
|
-
// });
|
|
103
|
-
|
|
104
|
-
// doc.save(`${fileName}.pdf`);
|
|
105
|
-
// }
|
|
106
|
-
var handlePdfExportRows = function handlePdfExportRows(rows, type) {
|
|
107
|
-
var doc = new _jspdf.jsPDF();
|
|
108
|
-
var fileName = getFileNameByType(type);
|
|
109
|
-
var tableData = rows.map(function (row) {
|
|
110
|
-
return Object.values(row.original);
|
|
111
|
-
});
|
|
112
|
-
var columnsToExport = ["templateCodeCustom", "subject", "body"];
|
|
113
|
-
// Get the column headers and data for the selected columns
|
|
114
|
-
// Iterate through the rows and format the data for the PDF
|
|
115
|
-
var pageWidth = doc.internal.pageSize.width; // Get page width
|
|
116
|
-
var pageHeight = doc.internal.pageSize.height; // Get page height
|
|
117
|
-
var margin = 5; // Set margin
|
|
118
|
-
var maxWidth = pageWidth - 2 * margin; // Calculate usable width
|
|
119
|
-
var fontSize = 8; // Set desired font size
|
|
120
|
-
var lineHeight = fontSize / 2; // Adjust line height based on font size
|
|
121
|
-
|
|
122
|
-
doc.setFontSize(fontSize); // Apply the font size globally
|
|
123
|
-
|
|
124
|
-
rows.forEach(function (row, rowIndex) {
|
|
125
|
-
if (rowIndex > 0) {
|
|
126
|
-
doc.addPage(); // Add a new page for every record except the first
|
|
127
|
-
}
|
|
128
|
-
var yPosition = margin; // Reset yPosition for each new page
|
|
129
|
-
|
|
130
|
-
columnsToExport.forEach(function (columnId) {
|
|
131
|
-
var value = row.original[columnId]; // Get the value of the column
|
|
132
|
-
|
|
133
|
-
if (columnId === "body") {
|
|
134
|
-
// Handle wrapping for 'body' column (longer text)
|
|
135
|
-
var wrappedText = doc.splitTextToSize(value, maxWidth); // Wrap text to fit
|
|
136
|
-
|
|
137
|
-
doc.text("".concat(columnId, ":"), margin, yPosition); // Print column label
|
|
138
|
-
yPosition += lineHeight; // Small gap after the label
|
|
139
|
-
doc.text(wrappedText, margin, yPosition); // Print wrapped text
|
|
140
|
-
yPosition += wrappedText.length * lineHeight; // Adjust Y position based on text length
|
|
141
|
-
doc.text("-------end of template-------", margin + 30, yPosition);
|
|
142
|
-
} else {
|
|
143
|
-
// Handle normal text for other columns
|
|
144
|
-
doc.text("".concat(columnId, ": ").concat(value), margin, yPosition);
|
|
145
|
-
yPosition += lineHeight; // Standard line spacing
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
});
|
|
149
|
-
|
|
150
|
-
// Save the PDF
|
|
151
|
-
//doc.save("exported-columns.pdf");
|
|
152
|
-
|
|
153
|
-
doc.save("".concat(fileName, ".pdf"));
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Defines the export file name base on the export type.
|
|
158
|
-
* @param {string} type - the export type.
|
|
159
|
-
* @returns the export file name.
|
|
160
|
-
*/
|
|
161
|
-
var getFileNameByType = function getFileNameByType(type) {
|
|
162
|
-
switch (type) {
|
|
163
|
-
case 'page':
|
|
164
|
-
return 'page_rows_data';
|
|
165
|
-
case 'all':
|
|
166
|
-
return 'all_rows_data';
|
|
167
|
-
case 'selected':
|
|
168
|
-
return 'selected_rows_data';
|
|
169
|
-
default:
|
|
170
|
-
return 'rows_data';
|
|
171
|
-
}
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Renders the chosen excel export.
|
|
176
|
-
* @returns the excel export button element.
|
|
177
|
-
*/
|
|
178
|
-
var getExcelExports = function getExcelExports() {
|
|
179
|
-
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, props.excelOption === 'all' && /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
|
|
180
|
-
title: "Export All Data to Excel",
|
|
181
|
-
arrow: true
|
|
182
|
-
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
183
|
-
style: {
|
|
184
|
-
height: '35px'
|
|
185
|
-
}
|
|
186
|
-
}, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button, {
|
|
187
|
-
onClick: handleExcelExportData,
|
|
188
|
-
icon: /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Icon, {
|
|
189
|
-
name: "file excel"
|
|
190
|
-
}),
|
|
191
|
-
label: {
|
|
192
|
-
basic: true,
|
|
193
|
-
color: 'green',
|
|
194
|
-
content: "Export All Data",
|
|
195
|
-
style: 'height: 100%'
|
|
196
|
-
},
|
|
197
|
-
basic: true,
|
|
198
|
-
color: "green",
|
|
199
|
-
style: {
|
|
200
|
-
height: '40px'
|
|
201
|
-
}
|
|
202
|
-
}))), props.excelOption === 'allRows' && /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
|
|
203
|
-
title: "Export All Rows to Excel",
|
|
204
|
-
arrow: true
|
|
205
|
-
}, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button, {
|
|
206
|
-
disabled: props.table.getPrePaginationRowModel().rows.length === 0,
|
|
207
|
-
onClick: function onClick() {
|
|
208
|
-
return handleExcelExportRows(props.table.getPrePaginationRowModel().rows, 'all');
|
|
209
|
-
},
|
|
210
|
-
icon: "file excel",
|
|
211
|
-
label: {
|
|
212
|
-
basic: true,
|
|
213
|
-
color: 'green',
|
|
214
|
-
content: "Export All Rows"
|
|
215
|
-
},
|
|
216
|
-
basic: true,
|
|
217
|
-
color: "green",
|
|
218
|
-
style: {
|
|
219
|
-
height: '40px'
|
|
220
|
-
}
|
|
221
|
-
}))), props.excelOption === 'pageRows' && /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
|
|
222
|
-
title: "Export Page Rows to Excel",
|
|
223
|
-
arrow: true
|
|
224
|
-
}, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button, {
|
|
225
|
-
disabled: props.table.getRowModel().rows.length === 0,
|
|
226
|
-
onClick: function onClick() {
|
|
227
|
-
return handleExcelExportRows(props.table.getRowModel().rows, 'page');
|
|
228
|
-
},
|
|
229
|
-
icon: "file excel",
|
|
230
|
-
label: {
|
|
231
|
-
basic: true,
|
|
232
|
-
color: 'green',
|
|
233
|
-
content: "Export Page Rows"
|
|
234
|
-
},
|
|
235
|
-
basic: true,
|
|
236
|
-
color: "green",
|
|
237
|
-
style: {
|
|
238
|
-
height: '40px'
|
|
239
|
-
}
|
|
240
|
-
}))), props.excelOption === 'selectedRows' && /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
|
|
241
|
-
title: "Export Selected Rows to Excel",
|
|
242
|
-
arrow: true
|
|
243
|
-
}, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button, {
|
|
244
|
-
disabled: !props.table.getIsSomeRowsSelected() && !props.table.getIsAllRowsSelected(),
|
|
245
|
-
onClick: function onClick() {
|
|
246
|
-
return handleExcelExportRows(props.table.getSelectedRowModel().rows, 'selected');
|
|
247
|
-
},
|
|
248
|
-
icon: "file excel",
|
|
249
|
-
label: {
|
|
250
|
-
basic: true,
|
|
251
|
-
color: 'green',
|
|
252
|
-
content: "Export Selected Rows"
|
|
253
|
-
},
|
|
254
|
-
basic: true,
|
|
255
|
-
color: "green",
|
|
256
|
-
style: {
|
|
257
|
-
height: '40px'
|
|
258
|
-
}
|
|
259
|
-
}))));
|
|
260
|
-
};
|
|
261
|
-
|
|
262
|
-
/**
|
|
263
|
-
* Renders the chosen pdf export.
|
|
264
|
-
* @returns the excel pdf button element.
|
|
265
|
-
*/
|
|
266
|
-
var getPdfExports = function getPdfExports() {
|
|
267
|
-
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, props.pdfOption === 'all' && /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
|
|
268
|
-
title: "Export All Data to PDF",
|
|
269
|
-
arrow: true
|
|
270
|
-
}, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button, {
|
|
271
|
-
onClick: handlePdfExportData,
|
|
272
|
-
icon: /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Icon, {
|
|
273
|
-
name: "file pdf"
|
|
274
|
-
}),
|
|
275
|
-
label: {
|
|
276
|
-
basic: true,
|
|
277
|
-
color: 'red',
|
|
278
|
-
content: "Export All Data"
|
|
279
|
-
},
|
|
280
|
-
basic: true,
|
|
281
|
-
color: "red",
|
|
282
|
-
style: {
|
|
283
|
-
height: '40px'
|
|
284
|
-
}
|
|
285
|
-
}))), props.pdfOption === 'allRows' && /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
|
|
286
|
-
title: "Export All Rows to PDF",
|
|
287
|
-
arrow: true
|
|
288
|
-
}, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button, {
|
|
289
|
-
disabled: props.table.getPrePaginationRowModel().rows.length === 0,
|
|
290
|
-
onClick: function onClick() {
|
|
291
|
-
return handlePdfExportRows(props.table.getPrePaginationRowModel().rows, 'all');
|
|
292
|
-
},
|
|
293
|
-
icon: "file pdf",
|
|
294
|
-
label: {
|
|
295
|
-
basic: true,
|
|
296
|
-
color: 'red',
|
|
297
|
-
content: "Export All Rows"
|
|
298
|
-
},
|
|
299
|
-
basic: true,
|
|
300
|
-
color: "red",
|
|
301
|
-
style: {
|
|
302
|
-
height: '40px'
|
|
303
|
-
}
|
|
304
|
-
}))), props.pdfOption === 'pageRows' && /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
|
|
305
|
-
title: "Export Page Rows to PDF",
|
|
306
|
-
arrow: true
|
|
307
|
-
}, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button, {
|
|
308
|
-
disabled: props.table.getRowModel().rows.length === 0,
|
|
309
|
-
onClick: function onClick() {
|
|
310
|
-
return handlePdfExportRows(props.table.getRowModel().rows, 'page');
|
|
311
|
-
},
|
|
312
|
-
icon: "file pdf",
|
|
313
|
-
label: {
|
|
314
|
-
basic: true,
|
|
315
|
-
color: 'red',
|
|
316
|
-
content: "Export Page Rows"
|
|
317
|
-
},
|
|
318
|
-
basic: true,
|
|
319
|
-
color: "red",
|
|
320
|
-
style: {
|
|
321
|
-
height: '40px'
|
|
322
|
-
}
|
|
323
|
-
}))), props.pdfOption === 'selectedRows' && /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
|
|
324
|
-
title: "Export Selected Rows to PDF",
|
|
325
|
-
arrow: true
|
|
326
|
-
}, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Button
|
|
327
|
-
// disabled={!props.table.getIsSomeRowsSelected() && !props.table.getIsAllRowsSelected()}
|
|
328
|
-
, {
|
|
329
|
-
onClick: function onClick() {
|
|
330
|
-
return handlePdfExportRows(props.table.getSelectedRowModel().rows, 'selected');
|
|
331
|
-
},
|
|
332
|
-
icon: "file pdf",
|
|
333
|
-
label: {
|
|
334
|
-
basic: true,
|
|
335
|
-
color: 'red',
|
|
336
|
-
content: "Export Selected Rows"
|
|
337
|
-
},
|
|
338
|
-
basic: true,
|
|
339
|
-
color: "red",
|
|
340
|
-
style: {
|
|
341
|
-
height: '40px'
|
|
342
|
-
}
|
|
343
|
-
}))));
|
|
344
|
-
};
|
|
345
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
346
|
-
style: {
|
|
347
|
-
display: 'flex',
|
|
348
|
-
flexDirection: 'row',
|
|
349
|
-
gap: '.5em'
|
|
350
|
-
}
|
|
351
|
-
}, props.hasExcelExport && getExcelExports(), props.hasPdfExport && getPdfExports());
|
|
352
|
-
};
|
|
353
|
-
ExportActions.propTypes = {
|
|
354
|
-
hasExcelExport: _propTypes["default"].bool.isRequired,
|
|
355
|
-
// defines whether the excel export should be shown
|
|
356
|
-
hasPdfExport: _propTypes["default"].bool.isRequired,
|
|
357
|
-
// defines whether the pdf export should be shown
|
|
358
|
-
excelOption: _propTypes["default"].string.isRequired,
|
|
359
|
-
// defines the excel export option
|
|
360
|
-
pdfOption: _propTypes["default"].string.isRequired,
|
|
361
|
-
// defines the pdf export option
|
|
362
|
-
table: _propTypes["default"].object.isRequired,
|
|
363
|
-
// the data grid table
|
|
364
|
-
data: _propTypes["default"].array.isRequired,
|
|
365
|
-
// the data grid data
|
|
366
|
-
columns: _propTypes["default"].array.isRequired // the data grid columns
|
|
367
|
-
};
|
|
368
|
-
var _default = exports["default"] = ExportActions;
|
package/build/styles/styles.css
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
.clearFilter {
|
|
2
|
-
background-color: #ffb66c;
|
|
3
|
-
cursor: pointer;
|
|
4
|
-
display: flex;
|
|
5
|
-
align-items: center;
|
|
6
|
-
padding: 5px;
|
|
7
|
-
border-radius: .28571429rem;
|
|
8
|
-
transition: opacity 0.2s ease;
|
|
9
|
-
/* box-shadow: 0 0 0 1px rgb(253, 175, 27); */
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
.clearFilter:hover {
|
|
13
|
-
background-color: #ff8c18;
|
|
14
|
-
/* box-shadow: 0 0 0 1px rgb(206, 145, 0); */
|
|
15
|
-
}
|
package/build/utils/filters.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.regexFilterTooltip = exports.logicalFilterTooltip = exports.logicalFilter = void 0;
|
|
7
|
-
var _react = _interopRequireDefault(require("react"));
|
|
8
|
-
var _semanticUiReact = require("semantic-ui-react");
|
|
9
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
10
|
-
var logicalFilter = exports.logicalFilter = function logicalFilter(row, id, filterValue) {
|
|
11
|
-
var rowValue = row.getValue(id).toLowerCase();
|
|
12
|
-
var contains = function contains(value, term) {
|
|
13
|
-
return value.includes(term.toLowerCase());
|
|
14
|
-
};
|
|
15
|
-
var parseFilter = function parseFilter(filter) {
|
|
16
|
-
var regex = /(\w+|\&\&|\|\||\~)/g;
|
|
17
|
-
return filter.match(regex);
|
|
18
|
-
};
|
|
19
|
-
var analyseParts = function analyseParts(parts) {
|
|
20
|
-
var result = null;
|
|
21
|
-
var currentOperator = null;
|
|
22
|
-
if (parts.includes('&&') || parts.includes('||') || parts.includes('~')) {
|
|
23
|
-
parts.forEach(function (p) {
|
|
24
|
-
if (p === '&&' || p === '||' || p === '~') {
|
|
25
|
-
currentOperator = p;
|
|
26
|
-
} else {
|
|
27
|
-
if (currentOperator === '&&') {
|
|
28
|
-
result = result && contains(rowValue, p);
|
|
29
|
-
currentOperator = null;
|
|
30
|
-
} else if (currentOperator === '||') {
|
|
31
|
-
result = result || contains(rowValue, p);
|
|
32
|
-
currentOperator = null;
|
|
33
|
-
} else if (currentOperator === '~') {
|
|
34
|
-
result = result ? result && !contains(rowValue, p) : !contains(rowValue, p);
|
|
35
|
-
currentOperator = null;
|
|
36
|
-
} else {
|
|
37
|
-
result = contains(rowValue, p);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
} else {
|
|
42
|
-
result = rowValue.includes(filterValue.toLowerCase());
|
|
43
|
-
}
|
|
44
|
-
return result;
|
|
45
|
-
};
|
|
46
|
-
var parts = parseFilter(filterValue);
|
|
47
|
-
if (!parts) return false;
|
|
48
|
-
return analyseParts(parts);
|
|
49
|
-
};
|
|
50
|
-
var logicalFilterTooltip = exports.logicalFilterTooltip = /*#__PURE__*/_react["default"].createElement("div", {
|
|
51
|
-
style: {
|
|
52
|
-
display: 'flex',
|
|
53
|
-
flexDirection: 'column',
|
|
54
|
-
textAlign: 'start'
|
|
55
|
-
}
|
|
56
|
-
}, "This filter admits logical operators such as:", /*#__PURE__*/_react["default"].createElement("ul", null, /*#__PURE__*/_react["default"].createElement("li", null, "'&&' (AND) "), /*#__PURE__*/_react["default"].createElement("li", null, "'||' (OR) "), /*#__PURE__*/_react["default"].createElement("li", null, "'~' (NOT) ")), /*#__PURE__*/_react["default"].createElement("br", null), "These operators can be combined.", /*#__PURE__*/_react["default"].createElement("br", null), "For example, 'John Doe && Smith || James' will return rows that have both 'John Doe' and 'Smith', or 'James'.");
|
|
57
|
-
var regexFilterTooltip = exports.regexFilterTooltip = /*#__PURE__*/_react["default"].createElement("div", {
|
|
58
|
-
style: {
|
|
59
|
-
display: 'flex',
|
|
60
|
-
flexDirection: 'column',
|
|
61
|
-
textAlign: 'start'
|
|
62
|
-
}
|
|
63
|
-
}, "This filter enables the use of regular expression to search for patterns in the row data.", /*#__PURE__*/_react["default"].createElement("br", null), "For example, '^[A-Z]' will find entries that start with a capital letter.");
|