@insticc/react-datagrid-2 1.0.14 → 1.0.16

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.
@@ -0,0 +1,201 @@
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;
@@ -0,0 +1,105 @@
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;
@@ -0,0 +1,368 @@
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;